/* FarmyPoint — impaginazione scelta dall'amministratore (app/src/Layout.php, admin/layout.php).
   Caricato da Site::head solo quando è scelto uno stile diverso da «Come sempre»: le pagine di sempre non lo scaricano. */

/* =====================================================================================================================
   Impaginazione scelta dall'amministratore (Layout, admin/layout.php): data-lr = pagina dei risultati, data-ls = scheda
   del punto. Senza attributo vale l'impaginazione di sempre. Stessi contenuti in ogni stile; cambiano ordine e disposizione.
   ===================================================================================================================== */

/* ---------- Risultati 1: lista compatta + mappa fissa ---------- */
@media (min-width: 900px) { [data-lr="1"] .st-split { grid-template-columns: minmax(360px, 420px) minmax(0, 1fr); } }
[data-lr="1"] .st-list .st-item { padding: 12px 14px; gap: 2px; }
[data-lr="1"] .st-list .st-item .st-actions [data-report],
[data-lr="1"] .st-list .st-item .st-actions [data-share] { display: none; }
[data-lr="1"] .st-list .st-item .st-actions { gap: 6px; }
[data-lr="1"] .st-list .st-item .st-actions .st-btn { min-height: 38px; padding: 0 12px; font-size: 13px; }
[data-lr="1"] .st-list .st-item.st-active { border-color: var(--corallo); box-shadow: 0 0 0 2px var(--corallo-tint); }

/* ---------- Risultati 2: mappa a tutto schermo con l'elenco in un pannello ---------- */
[data-lr="2"] .st-split { position: relative; display: block; }
[data-lr="2"] .st-mapcol { position: relative; top: auto; }
[data-lr="2"] .st-results .st-mapcol .st-map, [data-lr="2"] .st-mapcol .st-map { height: calc(100vh - var(--head-h) - 24px); min-height: 520px; }
[data-lr="2"] .st-split > .st-list { position: absolute; z-index: 5; background: var(--surface); border-radius: 18px; box-shadow: 0 10px 30px rgba(0, 0, 0, .22);
  overflow: auto; padding: 12px; gap: 8px; align-content: start; }
[data-lr="2"] .st-split > .st-list:empty { display: none; }
@media (min-width: 900px) { [data-lr="2"] .st-split > .st-list { top: 14px; left: 14px; bottom: 14px; width: 400px; } }
@media (max-width: 899px) {
  [data-lr="2"] .st-mapcol { order: 0; }
  [data-lr="2"] .st-results .st-mapcol .st-map { height: 78vh; min-height: 420px; }
  [data-lr="2"] .st-split > .st-list { left: 0; right: 0; bottom: 0; max-height: 52%; border-radius: 20px 20px 0 0; padding-top: 22px; }
  [data-lr="2"] .st-split > .st-list::before { content: ''; position: absolute; top: 8px; left: 50%; width: 44px; height: 5px; margin-left: -22px; border-radius: 5px; background: var(--line); }
}
[data-lr="2"] .st-split > .st-list .st-item { box-shadow: none; }

/* ---------- Risultati 3: griglia di schede, mappa sopra ---------- */
[data-lr="3"] .st-split { grid-template-columns: minmax(0, 1fr); }
[data-lr="3"] .st-mapcol { order: -1; position: relative; top: auto; }
[data-lr="3"] .st-results .st-mapcol .st-map, [data-lr="3"] .st-mapcol .st-map { height: 300px; min-height: 0; }
[data-lr="3"] .st-map-big .st-mapcol .st-map { height: 60vh; }
[data-lr="3"] .st-list { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
[data-lr="3"] .st-list .st-item { align-content: start; border-top: 5px solid var(--brand); }
[data-lr="3"] .st-list .st-item:has(.st-segnalato, .st-ss-segnalato) { border-top-color: var(--warn); }
[data-lr="3"] .st-list .st-item:has(.st-non_verificato, .st-ss-non_verificato) { border-top-color: var(--line); }
[data-lr="3"] .st-list .st-item h3 { font-size: 18px; }

/* ---------- Risultati 4: elenco a righe, mappa piccola sopra ---------- */
[data-lr="4"] .st-split { grid-template-columns: minmax(0, 1fr); }
[data-lr="4"] .st-mapcol { order: -1; position: relative; top: auto; }
[data-lr="4"] .st-results .st-mapcol .st-map, [data-lr="4"] .st-mapcol .st-map { height: 200px; min-height: 0; }
[data-lr="4"] .st-map-big .st-mapcol .st-map { height: 60vh; }
[data-lr="4"] .st-list { gap: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); }
[data-lr="4"] .st-list .st-item { border: 0; border-radius: 0; border-top: 1px solid var(--line); padding: 10px 14px; }
[data-lr="4"] .st-list .st-item:first-child { border-top: 0; }
@media (min-width: 900px) {
  [data-lr="4"] .st-list .st-item { grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) auto; column-gap: 18px; align-items: center; }
  [data-lr="4"] .st-list .st-item > .st-item-top { grid-column: 3; grid-row: 1; justify-content: flex-end; }
  [data-lr="4"] .st-list .st-item > h3 { grid-column: 1; grid-row: 1; }
  [data-lr="4"] .st-list .st-item > .st-addr { grid-column: 1; grid-row: 2; }
  [data-lr="4"] .st-list .st-item > .st-item-meta, [data-lr="4"] .st-list .st-item > .st-hours { grid-column: 2; margin: 0; }
  [data-lr="4"] .st-list .st-item > .st-item-meta { grid-row: 1; }
  [data-lr="4"] .st-list .st-item > .st-hours { grid-row: 2; }
  [data-lr="4"] .st-list .st-item > .st-svcs, [data-lr="4"] .st-list .st-item > .st-offers { grid-column: 1 / 3; }
  [data-lr="4"] .st-list .st-item > .st-actions { grid-column: 3; grid-row: 2 / span 3; margin: 0; justify-content: flex-end; }
}
[data-lr="4"] .st-list .st-item .st-kicker { display: none; }
[data-lr="4"] .st-list .st-item .st-actions [data-report], [data-lr="4"] .st-list .st-item .st-actions [data-share] { display: none; }
[data-lr="4"] .st-list .st-item .st-actions .st-btn { min-height: 36px; padding: 0 12px; font-size: 13px; }

/* ---------- Risultati 5: filtri in una colonna a sinistra ---------- */
@media (min-width: 1000px) {
  .st-l-res5 { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 18px; align-items: start; }
  .st-l-filters { position: sticky; top: calc(var(--head-h) + var(--net-h, 0px) + 16px); background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--radius); padding: 14px; }
  .st-l-filters .st-filterbar { flex-direction: column; align-items: stretch; gap: 12px; margin: 0; }
  .st-l-filters .st-filters { flex-direction: column; align-items: stretch; gap: 12px; }
  .st-l-filters .st-seg { flex-wrap: wrap; border-radius: 14px; }
  /* Colonna dei filtri: il pannello resta sempre aperto, senza pulsante «Filtri» né pulsanti in fondo */
  .st-l-filters .st-fbtn, .st-l-filters .st-fpanel-foot { display: none; }
  .st-l-filters .st-fpanel[hidden] { display: block !important; }
  .st-l-filters .st-fpanel { margin: 0; padding: 0; border: 0; box-shadow: none; background: none; }
  .st-l-filters .st-fpanel-grid { grid-template-columns: 1fr; }
  [data-lr="5"] .st-l-main .st-split { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); }
  [data-lr="5"] .st-l-main .st-mapcol { order: 2; }
  [data-lr="5"] .st-l-main .st-mapcol .st-map { height: calc(100vh - var(--head-h) - 32px); }
}

/* ---------- Scheda: struttura comune degli stili con colonna laterale ---------- */
.st-ls1 .st-detail-card, .st-ls2 .st-detail-card, .st-ls3 .st-detail-card, .st-ls4 .st-detail-card, .st-ls5 .st-detail-card { margin-bottom: 16px; }
.st-l-cols { display: grid; gap: 16px; align-items: start; }
.st-l-main, .st-l-side { display: grid; gap: 16px; min-width: 0; }
.st-l-main > *, .st-l-side > * { margin-top: 0 !important; }
@media (min-width: 900px) {
  .st-l-cols { grid-template-columns: minmax(0, 1fr) 360px; }
  .st-l-side { position: sticky; top: calc(var(--head-h) + var(--net-h, 0px) + 16px); }
}
.st-l-side .st-detail-map .st-map { height: 260px; }

/* ---------- Scheda 2: stile app, barra delle azioni in basso ---------- */
.st-ls2 { padding-top: 0; padding-bottom: 110px; }
.st-ls2 > .st-detail-map { margin: 0 -16px; border-radius: 0; border-left: 0; border-right: 0; padding: 0; }
.st-ls2 > .st-detail-map .st-map { height: 300px; border-radius: 0; }
.st-l-app { max-width: 820px; margin: -70px auto 0; position: relative; z-index: 2; display: grid; gap: 16px; }
.st-l-app > * { margin-top: 0 !important; }
.st-l-app > .st-detail-card { box-shadow: 0 12px 30px rgba(0, 0, 0, .14); margin-bottom: 0; }
.st-ls2 > .st-back { position: relative; z-index: 3; margin: 12px 0; }
.st-actbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: var(--surface); border-top: 1px solid var(--line);
  box-shadow: 0 -4px 18px rgba(0, 0, 0, .1); padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
.st-actbar-in { max-width: 820px; margin: 0 auto; display: flex; gap: 8px; justify-content: center; }
.st-actbar-in > * { flex: 1 1 0; min-width: 0; justify-content: center; }
.st-actbar .st-fav-bar { min-height: 44px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); justify-content: center; }
@media (max-width: 600px) { .st-ls2 > .st-detail-map .st-map { height: 220px; } .st-l-app { margin-top: -50px; } .st-actbar-in .st-btn { padding: 0 8px; font-size: 14px; } }

/* ---------- Scheda 3: indice delle sezioni ---------- */
.st-ls3 > * { margin-top: 0; margin-bottom: 16px; }
.st-secnav { position: sticky; top: calc(var(--head-h) + var(--net-h, 0px)); z-index: 10; background: var(--bg); padding: 8px 0; margin-bottom: 16px; }
.st-secnav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; overflow-x: auto; }
.st-secnav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface);
  font-weight: 700; text-decoration: none; white-space: nowrap; color: var(--text); }
.st-secnav a:hover { border-color: var(--brand); color: var(--brand); }
.st-ls3 [id] { scroll-margin-top: calc(var(--head-h) + 76px); }
.st-ls3 .st-detail-map .st-map { height: 320px; }

/* ---------- Scheda 4: prima i prodotti ---------- */
.st-ls4 .st-detail-products h2 { font-size: 22px; }
.st-ls4 .st-detail-card .st-facts { display: none; }

/* ---------- Scheda 5: cruscotto con mappa larga ---------- */
.st-ls5 > .st-detail-map { margin: 0 0 16px; padding: 0; overflow: hidden; }
.st-ls5 > .st-detail-map .st-map { height: 260px; border: 0; }
.st-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 16px; }
.st-tile { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; }
.st-tile p { margin: 0; }
.st-tile-k { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); }
.st-tile-v { font-size: 21px; font-weight: 800; color: var(--text); margin-top: 2px; }
.st-tile-v.st-tile-confermato { color: var(--ok); } .st-tile-v.st-tile-segnalato { color: var(--warn); }
.st-tile-s { font-size: 13px; color: var(--text-2); }
.st-ls5 .st-notices { margin: 0 0 16px; }

/* =====================================================================================================================
   Risultati 6–13: le otto proposte con 25 risultati per pagina (docs/stili/risultati-6…13). La barra delle pagine è in
   site.css (vale per ogni stile); qui il pulsante Elenco / Mappa, i gruppi per stato e il riquadro sopra i risultati.
   ===================================================================================================================== */
.st-viewtog { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); }
.st-viewtog button { min-height: 44px; padding: 0 16px; border: 0; border-radius: 999px; background: transparent; color: var(--text-2);
  font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.st-viewtog button[aria-pressed='true'] { background: var(--brand); color: #fff; }

/* Stili con Elenco / Mappa: una vista alla volta, a tutta larghezza; nella vista Mappa resta la barra delle pagine */
:is([data-lr="6"], [data-lr="8"], [data-lr="10"]) .st-split { grid-template-columns: minmax(0, 1fr); }
:is([data-lr="6"], [data-lr="8"], [data-lr="10"]) .st-mapcol { order: 0; position: relative; top: auto; }
:is([data-lr="6"], [data-lr="8"], [data-lr="10"]) .st-results:not(.st-view-map) .st-mapcol { display: none; }
:is([data-lr="6"], [data-lr="8"], [data-lr="10"]) .st-results.st-view-map .st-split > .st-list > :not(.st-pager) { display: none; }
:is([data-lr="6"], [data-lr="8"], [data-lr="10"]) .st-results .st-mapcol .st-map { height: calc(100vh - var(--head-h) - 160px); min-height: 420px; }
:is([data-lr="6"], [data-lr="8"], [data-lr="10"]) .st-mapsize { display: none; }

/* ---------- Risultati 6: filtri a sinistra (come lo stile 5), schede ampie, mappa a richiesta ---------- */
[data-lr="6"] .st-list .st-item { padding: 16px 20px; }
[data-lr="6"] .st-list .st-item h3 { font-size: 18px; }
@media (min-width: 900px) {
  [data-lr="6"] .st-list .st-item { grid-template-columns: minmax(0, 1fr) auto; column-gap: 20px; }
  [data-lr="6"] .st-list .st-item > * { grid-column: 1; }
  [data-lr="6"] .st-list .st-item > .st-item-top { grid-column: 1 / 3; }
  [data-lr="6"] .st-list .st-item > .st-actions { grid-column: 1 / 3; }
}

/* ---------- Risultati 7: elenco in un pannello a righe, mappa grande fissa ---------- */
@media (min-width: 900px) {
  [data-lr="7"] .st-split { grid-template-columns: minmax(380px, 520px) minmax(0, 1fr); }
  [data-lr="7"] .st-mapcol .st-map { height: calc(100vh - var(--head-h) - 32px); }
}
[data-lr="7"] .st-split > .st-list { gap: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
[data-lr="7"] .st-split > .st-list > * { margin: 0; padding: 12px 16px; }
[data-lr="7"] .st-split > .st-list > .st-item { border: 0; border-radius: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
[data-lr="7"] .st-split > .st-list > .st-item.st-active { background: color-mix(in srgb, var(--brand) 7%, var(--surface)); box-shadow: inset 4px 0 0 var(--brand); }
[data-lr="7"] .st-list .st-item .st-actions { margin-top: 6px; gap: 6px; }
[data-lr="7"] .st-list .st-item .st-actions [data-report], [data-lr="7"] .st-list .st-item .st-actions [data-share] { display: none; }
[data-lr="7"] .st-list .st-item .st-actions .st-btn { padding: 0 12px; font-size: 13px; }

/* ---------- Risultati 8 (tabella) e 11 (mappa larga + elenco sotto): una riga per punto ---------- */
[data-lr="8"] .st-list { gap: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); }
[data-lr="8"] .st-list > .st-item { border: 0; border-radius: 0; border-top: 1px solid var(--line); box-shadow: none; padding: 10px 16px; }
[data-lr="8"] .st-list > .st-item:first-child { border-top: 0; }
[data-lr="8"] .st-list > :not(.st-item) { padding: 10px 16px; margin: 0; border-top: 1px solid var(--line); }
[data-lr="8"] .st-list > .st-item:nth-child(even) { background: color-mix(in srgb, var(--brand) 3%, var(--surface)); }
@media (min-width: 900px) {
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item { grid-template-columns: minmax(0, 2fr) minmax(0, 1.3fr) auto; column-gap: 18px; align-items: center; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-item-top { grid-column: 3; grid-row: 1; justify-content: flex-end; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > h3 { grid-column: 1; grid-row: 1; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-addr { grid-column: 1; grid-row: 2; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-item-meta, :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-hours { grid-column: 2; margin: 0; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-item-meta { grid-row: 1; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-hours { grid-row: 2; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-svcs, :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-offers { grid-column: 1 / 3; }
  :is([data-lr="8"], [data-lr="11"]) .st-list .st-item > .st-actions { grid-column: 3; grid-row: 2 / span 3; margin: 0; justify-content: flex-end; }
}
:is([data-lr="8"], [data-lr="11"]) .st-list .st-item .st-kicker { font-size: 12px; }
:is([data-lr="8"], [data-lr="11"]) .st-list .st-item .st-actions [data-report], :is([data-lr="8"], [data-lr="11"]) .st-list .st-item .st-actions [data-share] { display: none; }
:is([data-lr="8"], [data-lr="11"]) .st-list .st-item .st-actions .st-btn { padding: 0 12px; font-size: 13px; }
[data-lr="11"] .st-split { grid-template-columns: minmax(0, 1fr); }
[data-lr="11"] .st-mapcol { order: -1; position: relative; top: auto; }
[data-lr="11"] .st-results .st-mapcol .st-map { height: 400px; min-height: 0; }
[data-lr="11"] .st-map-big .st-mapcol .st-map { height: 65vh; }
@media (max-width: 899px) { [data-lr="11"] .st-results .st-mapcol .st-map { height: 260px; } }

/* ---------- Risultati 9: raggruppata per stato, con il riepilogo in alto ---------- */
.st-lrx { margin-bottom: 16px; }
.st-lrx[hidden] { display: none !important; }
.st-grp { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; margin: 12px 0 0; font-size: 15px; }
.st-grp:first-child { margin-top: 0; }
.st-grp-n { color: var(--text-2); font-weight: 700; }
[data-lr="9"] .st-lrx { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.st-lrx-tile { display: grid; gap: 2px; padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.st-lrx-tile b { font-size: 26px; line-height: 1.1; color: var(--text); }
.st-lrx-tile span { font-weight: 700; }
.st-lrx-tile small { color: var(--text-2); font-size: 13px; }
.st-lrx-confermato { border-color: var(--ok); }
.st-lrx-confermato b { color: var(--ok); }
.st-lrx-segnalato b { color: var(--warn); }

/* ---------- Risultati 10: griglia a tutta larghezza, mappa a richiesta ---------- */
[data-lr="10"] .st-list { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
[data-lr="10"] .st-list > :not(.st-item) { grid-column: 1 / -1; }
[data-lr="10"] .st-list .st-item { align-content: start; grid-template-rows: auto auto auto auto 1fr; }
[data-lr="10"] .st-list .st-item > .st-actions { align-self: end; border-top: 1px solid var(--line); padding-top: 10px; }
[data-lr="10"] .st-list .st-item .st-actions [data-report], [data-lr="10"] .st-list .st-item .st-actions [data-share] { display: none; }

/* ---------- Risultati 12: sul telefono elenco o mappa, barra delle pagine sempre in basso ---------- */
@media (min-width: 900px) { [data-lr="12"] .st-viewtog { display: none; } }
@media (max-width: 899px) {
  [data-lr="12"] .st-mapcol { order: 0; }
  [data-lr="12"] .st-mapsize { display: none; }
  [data-lr="12"] .st-results:not(.st-view-map) .st-mapcol { display: none; }
  [data-lr="12"] .st-results.st-view-map .st-split > .st-list > :not(.st-pager) { display: none; }
  [data-lr="12"] .st-results .st-mapcol .st-map { height: calc(100vh - var(--head-h) - 170px); min-height: 360px; }
  [data-lr="12"] .st-list { gap: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
  [data-lr="12"] .st-list > .st-item { border: 0; border-radius: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
  [data-lr="12"] .st-list > :not(.st-item):not(.st-pager) { padding: 10px 16px; margin: 0; }
  [data-lr="12"] .st-pager { position: sticky; bottom: 0; z-index: 20; margin: 0; padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: var(--surface); border-top: 1px solid var(--line); box-shadow: 0 -6px 16px rgba(0, 0, 0, .08); border-radius: 0 0 var(--radius) var(--radius); }
  [data-lr="12"] .st-pager-info small { display: none; }
  [data-lr="12"] .st-pager-info { font-size: 13px; }
  [data-lr="12"] .st-pg { padding: 0 10px; }
  [data-lr="12"] .st-pager { padding-right: 76px; }   /* lascia libero il pulsante «Torna su» */
  [data-lr="12"] .st-pager-list li:not(:first-child):not(:last-child) { display: none; }
  [data-lr="12"] .st-pager { flex-wrap: nowrap; }
  [data-lr="12"] .st-pager-list { flex-wrap: nowrap; }
  [data-lr="12"] .st-list .st-item .st-actions [data-report], [data-lr="12"] .st-list .st-item .st-actions [data-share] { display: none; }
}

/* ---------- Risultati 13: prima i tre distributori confermati più vicini ---------- */
[data-lr="13"] .st-lrx { padding: 16px 18px; border-radius: 20px; background: color-mix(in srgb, var(--ok) 7%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--ok) 30%, var(--line)); }
[data-lr="13"] .st-lrx h3 { margin: 0 0 12px; font-size: 18px; }
.st-lrx-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.st-lrx-card { display: grid; gap: 4px; align-content: start; padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.st-lrx-card p { margin: 0; }
.st-lrx-name { margin-top: 6px !important; font-size: 16px; font-weight: 800; }
.st-lrx-name a { color: var(--text); text-decoration: none; }
.st-lrx-name a:hover { color: var(--brand); }
.st-lrx-card .st-actions { margin-top: 8px; }

/* ---------- Scheda 6: scheda completa (pulsanti grandi, schede di navigazione, servizi, accessibilità, registro) ---------- */
.st-ls6 .sf-head { margin-bottom: 0; }
.sf-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px 18px; align-items: start; margin-top: 10px; }
.sf-logo { width: 64px; height: 64px; border-radius: 16px; border: 1px solid var(--line); background: var(--surface); object-fit: contain; }
.sf-logo-mark { box-sizing: border-box; width: 40px; height: 40px; margin-top: 8px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden;
  border: 0; border-radius: 50%; background: var(--muted-bg); color: var(--text-2); }
/* Icona tonda (stile scelto in «Scheda della farmacia», SchedaFarmacia::STILI_ICONA): il simbolo perde il suo fondo e prende il colore del cerchio */
.sf-logo-mark svg { width: 100%; height: 100%; }
.sf-logo-mark svg > rect { fill: transparent; }
.sf-logo-mark svg [fill="#fff"] { fill: currentColor; }
.sf-logo-mark svg [stroke="#fff"] { stroke: currentColor; }
.sf-ico-1, .sf-ico-10 { background: var(--brand-tint); color: var(--brand); }
.sf-ico-2 { background: linear-gradient(135deg, var(--brand-mid), var(--brand-dark)); color: #fff; }
.sf-ico-3 { background: linear-gradient(135deg, color-mix(in srgb, var(--turchese) 65%, #fff), var(--turchese)); color: #fff; }
.sf-ico-4 { background: var(--surface); border: 2px solid color-mix(in srgb, var(--brand) 25%, var(--surface)); color: var(--brand); }
.sf-ico-5 { background: var(--corallo-tint); color: var(--corallo-text); }
.sf-ico-6 { background: linear-gradient(135deg, var(--brand-dark), var(--ink)); color: #fff; }
.sf-ico-7 { background: var(--ok-bg); color: var(--ok); }
.sf-ico-8 { background: linear-gradient(135deg, #9b86d6, #d99bbf); color: #fff; }
.sf-ico-9 { background: var(--muted-bg); color: var(--text-2); }
.sf-ico-10 svg g > rect[fill] { fill: var(--corallo); }
.sf-ico-11 { background: linear-gradient(135deg, #7f86e8, #5a4fb8); color: #fff; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) :is(.sf-ico-1, .sf-ico-4, .sf-ico-10) { color: var(--brand-on-dark); } }
html[data-theme="dark"] :is(.sf-ico-1, .sf-ico-4, .sf-ico-10) { color: var(--brand-on-dark); }
.sf-id h1 { margin: 2px 0 4px; }
.st-detail-card.sf-head .sf-addr { margin: 0 0 4px; color: var(--text-2); font-size: 16px; }
.sf-id .st-hours { font-size: 16px; margin: 6px 0; }
.sf-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 6px 0 0; }
.sf-rate { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; color: var(--text); font-weight: 600; text-decoration: none; }
.sf-rate span[aria-hidden] { color: #c98a00; }
.sf-icons { display: flex; gap: 8px; }
/* Con il riquadro «Farmacia di turno»: su computer a destra, sotto i pulsanti; sul telefono sotto l'indirizzo (vedi max-width: 639px) */
.sf-top--turno .sf-id { grid-column: 2; grid-row: 1 / span 2; }
.sf-top--turno .sf-icons { grid-column: 3; grid-row: 1; justify-content: flex-end; }
.sf-top--turno .sf-lato { grid-column: 3; grid-row: 2; justify-self: end; align-items: stretch; }
.sf-icons .sf-iconbtn { width: 48px; min-height: 48px; padding: 0; border-radius: 14px; }
.sf-icons .sf-share { min-height: 48px; border-radius: 14px; }
.sf-acts { display: grid; gap: 10px; margin-top: 18px; }
@media (min-width: 640px) { .sf-acts { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } }
.sf-act { min-height: 52px; border-radius: 14px; gap: 8px; }
.sf-act-alt { background: var(--surface); color: var(--brand); border: 2px solid var(--brand); box-shadow: none; }
.sf-act-sub { font-weight: 500; color: var(--text-2); }
.sf-act svg { flex: none; }
.sf-more { margin-top: 10px; }
/* «Segnala» e «Mostra QR code» nell'intestazione (SchedaFarmacia::STILI_ALTRE, sfAltre in index.php) */
.sf-icons { align-items: flex-start; }
.sf-icons .sf-share { gap: 8px; }
.st-btn.sf-xico { position: relative; width: 48px; min-height: 48px; padding: 0; border-radius: 14px; }
.sf-xsep { width: 1px; align-self: stretch; margin: 8px 2px; background: var(--line); }
[data-tip]::after { content: attr(data-tip); position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); z-index: 20; padding: 6px 10px; border-radius: 8px;
  background: var(--text); color: var(--surface); font-size: 13px; font-weight: 600; line-height: 1.25; white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity .12s; }
.sf-icons > [data-tip]:last-child::after { left: auto; right: 0; transform: none; }
[data-tip]:hover::after, [data-tip]:focus-visible::after { opacity: 1; visibility: visible; }
.sf-xmenu { position: relative; }
.sf-xmenu > summary { list-style: none; cursor: pointer; }
.sf-xmenu > summary::-webkit-details-marker { display: none; }
.sf-xmenu[open] > summary.st-btn-ghost { border-color: var(--brand); background: var(--brand-tint); }
.sf-xlist { position: absolute; right: 0; top: calc(100% + 8px); z-index: 25; display: grid; min-width: 230px; padding: 6px; border: 1px solid var(--line); border-radius: 14px;
  background: var(--surface); box-shadow: 0 12px 32px rgba(20, 12, 40, .16); }
.sf-xitem { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 10px; background: none; color: var(--text);
  font: inherit; font-size: 15px; font-weight: 500; text-align: left; white-space: nowrap; cursor: pointer; }
.sf-xitem svg { flex: none; color: var(--brand); }
.sf-xitem:hover, .sf-xitem:focus-visible { background: var(--brand-tint); }
.sf-xitem[hidden] { display: none; }
.st-btn.sf-xprimary { gap: 8px; min-height: 48px; border-radius: 14px; }
.sf-xmenu[open] > .sf-xprimary svg:last-child { transform: rotate(180deg); }
.st-btn.sf-xchip { min-height: 36px; padding: 0 12px; gap: 6px; border-radius: 999px; font-size: 13px; }
.sf-acts.sf-acts-x4 { display: flex; flex-wrap: wrap; align-items: stretch; }
.sf-acts-x4 > .sf-act { flex: 1 1 180px; }
.sf-xtile { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 76px; min-height: 52px; padding: 4px 10px;
  border: 0; border-left: 1px solid var(--line); background: none; color: var(--brand); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.sf-xtile:hover { color: var(--text); }
.sf-xtile[hidden] { display: none; }
.st-btn.sf-xmin { border-color: transparent; background: transparent; }
.st-btn.sf-xmin:hover { border-color: transparent; background: var(--brand-tint); }
.st-fav.sf-xmin { border-color: transparent; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) :is(.sf-xitem svg, .sf-xtile) { color: var(--brand-on-dark); } }
html[data-theme="dark"] :is(.sf-xitem svg, .sf-xtile) { color: var(--brand-on-dark); }
@media (max-width: 639px) {
  .sf-xlist { right: auto; left: 0; }
  .sf-acts-x4 > .sf-xtile { flex: 1 1 40%; flex-direction: row; gap: 8px; min-height: 48px; border: 1px solid var(--line); border-radius: 14px; font-size: 15px; }
  .sf-icons > [data-tip]:last-child::after { left: 50%; right: auto; transform: translateX(-50%); }
}
/* Pulsante «Distributore» (stile scelto in «Scheda della farmacia», SchedaFarmacia::STILI_PULSANTE): colori tenui, testo piccolo sotto */
.st-btn.sf-dbtn { background: var(--db-bg); color: var(--db-fg); border: 1px solid var(--db-line, transparent); box-shadow: none; }
.st-btn.sf-dbtn:hover { filter: none; border-color: var(--db-fg); }
.sf-dbtn-t { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; text-align: left; }
.sf-dbtn small { margin-top: 3px; font-size: 12px; font-weight: 500; color: var(--db-sub); }
.sf-dbtn-1 { --db-bg: var(--brand-tint); --db-fg: var(--brand); --db-sub: var(--text-2); --db-line: color-mix(in srgb, var(--brand) 14%, var(--surface)); }
.sf-dbtn-2 { --db-bg: var(--surface); --db-fg: var(--text); --db-sub: var(--text-2); }
.st-btn.sf-dbtn-2 { border: 1.5px dashed color-mix(in srgb, var(--text-2) 50%, var(--surface)); }
.sf-dbtn-2 small { font-style: italic; }
.sf-dbtn-3 { --db-bg: var(--surface); --db-fg: var(--brand); --db-sub: var(--text-2); --db-line: var(--line); }
.sf-dbtn-3 small { display: inline-flex; align-items: center; gap: 5px; }
.sf-dbtn-3 small::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: color-mix(in srgb, var(--text-2) 45%, var(--surface)); }
.sf-dbtn-4 { --db-bg: var(--brand-tint); --db-fg: var(--brand); --db-sub: var(--text-2); }
.sf-dbtn-4 .sf-dbtn-t { display: block; }
.sf-dbtn-4 small { margin: 0; }
.sf-dbtn-5 { --db-bg: #eef4f1; --db-fg: #2f5d4a; --db-sub: #4f6d60; --db-line: #d7e6de; }
.sf-dbtn-6 { --db-bg: #f7f3ea; --db-fg: #5f4f30; --db-sub: #6f6040; --db-line: #ece3d0; }
.sf-dbtn-7 { --db-bg: #eef2f6; --db-fg: #34495e; --db-sub: #56636f; --db-line: #dce3ea; }
.sf-dbtn-8 { --db-bg: var(--surface); --db-fg: var(--brand); --db-sub: var(--text-2); --db-line: var(--line); }
.sf-dbtn-8 small { margin-top: 4px; padding: 1px 8px; border-radius: 999px; background: var(--muted-bg); font-size: 12px; }
/* Orari o telefono non inseriti: grigio tratteggiato, non cliccabile */
.st-btn.sf-off, .st-btn.sf-off:hover { background: var(--muted-bg); color: var(--text-2); border: 1.5px dashed color-mix(in srgb, var(--text-2) 40%, var(--surface)); box-shadow: none; filter: none; cursor: default; }
.sf-off-t { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; text-align: left; }
.sf-off small { margin-top: 3px; font-size: 12px; font-weight: 500; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) :is(.sf-dbtn-1, .sf-dbtn-3, .sf-dbtn-4, .sf-dbtn-8) { --db-fg: var(--brand-on-dark); }
  html:not([data-theme="light"]) :is(.sf-dbtn-1, .sf-dbtn-4) { --db-bg: color-mix(in srgb, var(--brand) 22%, var(--surface)); --db-line: transparent; }
  html:not([data-theme="light"]) .sf-dbtn-5 { --db-bg: color-mix(in srgb, #4f8a70 22%, var(--surface)); --db-fg: #bfe0d0; --db-sub: #a3c4b5; --db-line: transparent; }
  html:not([data-theme="light"]) .sf-dbtn-6 { --db-bg: color-mix(in srgb, #b89a5e 22%, var(--surface)); --db-fg: #ecdcb6; --db-sub: #d2c19b; --db-line: transparent; }
  html:not([data-theme="light"]) .sf-dbtn-7 { --db-bg: color-mix(in srgb, #5a7a99 24%, var(--surface)); --db-fg: #cfdbe7; --db-sub: #afbecc; --db-line: transparent; }
}
html[data-theme="dark"] :is(.sf-dbtn-1, .sf-dbtn-3, .sf-dbtn-4, .sf-dbtn-8) { --db-fg: var(--brand-on-dark); }
html[data-theme="dark"] :is(.sf-dbtn-1, .sf-dbtn-4) { --db-bg: color-mix(in srgb, var(--brand) 22%, var(--surface)); --db-line: transparent; }
html[data-theme="dark"] .sf-dbtn-5 { --db-bg: color-mix(in srgb, #4f8a70 22%, var(--surface)); --db-fg: #bfe0d0; --db-sub: #a3c4b5; --db-line: transparent; }
html[data-theme="dark"] .sf-dbtn-6 { --db-bg: color-mix(in srgb, #b89a5e 22%, var(--surface)); --db-fg: #ecdcb6; --db-sub: #d2c19b; --db-line: transparent; }
html[data-theme="dark"] .sf-dbtn-7 { --db-bg: color-mix(in srgb, #5a7a99 24%, var(--surface)); --db-fg: #cfdbe7; --db-sub: #afbecc; --db-line: transparent; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-act-alt { color: var(--brand-on-dark); border-color: var(--brand-on-dark); } }
html[data-theme="dark"] .sf-act-alt { color: var(--brand-on-dark); border-color: var(--brand-on-dark); }
@media (max-width: 639px) {
  .sf-top { grid-template-columns: auto minmax(0, 1fr); }
  .sf-icons { grid-column: 1 / -1; }
  .sf-top--turno .sf-id, .sf-top--turno .sf-icons, .sf-top--turno .sf-lato { grid-row: auto; }
  .sf-top--turno .sf-id { grid-column: 2; }
  .sf-top--turno .sf-icons { grid-column: 1 / -1; justify-content: flex-start; }
  .sf-top--turno .sf-lato { grid-column: 2; justify-self: start; align-items: flex-start; }
  .sf-logo { width: 52px; height: 52px; }
  .sf-logo-mark { width: 36px; height: 36px; margin-top: 6px; }
}

.sf-tabs { position: sticky; top: calc(var(--head-h) + var(--net-h, 0px)); z-index: 30; margin: 12px -4px 16px; padding: 8px 4px; background: var(--bg); }
.sf-tabs ul { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.sf-tabs a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface);
  color: var(--text); font-weight: 600; text-decoration: none; white-space: nowrap; }
.sf-tabs a:hover { border-color: var(--brand); }
.sf-tabs a[aria-current="true"] { background: var(--brand); border-color: var(--brand); color: #fff; }
.st-ls6 :is(#scheda, #orari, #servizi, #accessibilita, #prodotti, #recensioni) { scroll-margin-top: calc(var(--head-h) + var(--net-h, 0px) + 76px); }

/* Schede di navigazione come intestazione della colonna principale (stili 1–5 di «Scheda della farmacia»): le sezioni
   stanno in un'unica card, separate da una linea; l'intestazione resta in vista mentre si scorre la colonna */
.st-l-main.sf-body { gap: 0; align-content: start; grid-template-columns: minmax(0, 1fr); }
/* Senza la fila di schede sopra, le colonne si staccano dal blocco precedente (intestazione o distributore) come quello dall'intestazione */
.st-ls6 :not(.sf-tabs) + .sf-cols { margin-top: 16px; }
.sf-body > .sf-tabs { margin: 0; padding: 0; background: var(--surface); border: 1px solid var(--line); border-bottom: 0; border-radius: var(--radius) var(--radius) 0 0; }
.sf-body-card { background: var(--surface); border: 1px solid var(--line); border-radius: 0 0 var(--radius) var(--radius); min-width: 0; }
.sf-body-card > * { margin: 0 !important; }
.sf-body > .sf-body-card ~ * { margin-top: 16px !important; }
.sf-body-card > .st-card { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.sf-body-card > .st-card + .st-card { border-top: 1px solid var(--line); }
.sf-body-card > :not(.st-card) { margin: 16px 22px !important; }
.sf-tabs-title { margin: 0; font-weight: 700; }
.sf-tab-ico { flex: none; }
.st-ls6 .sf-body :is(#orari, #servizi, #accessibilita, #prodotti, #recensioni) { scroll-margin-top: calc(var(--head-h) + var(--net-h, 0px) + 96px); }
/* 1 · linguette sottolineate */
.sf-tabs--1 ul { gap: 26px; padding: 0 22px; border-bottom: 1px solid var(--line); }
.sf-tabs--1 a { gap: 7px; min-height: 52px; padding: 3px 0 0; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none; color: var(--text-2); font-weight: 700; }
.sf-tabs--1 a:hover { color: var(--brand); border-color: transparent; }
.sf-tabs--1 a[aria-current="true"] { background: none; color: var(--brand); border-color: var(--brand); }
/* 2 · testata con selettore */
.sf-tabs--2 { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px 10px 22px !important; background: var(--brand-tint) !important; border-bottom: 1px solid var(--line) !important; }
.sf-tabs--2 .sf-tabs-title { color: var(--brand); font-size: 16px; }
.sf-tabs--2 ul { max-width: 100%; gap: 2px; padding: 4px; border-radius: 999px; background: color-mix(in srgb, var(--brand) 12%, var(--surface)); }
.sf-tabs--2 a { min-height: 40px; padding: 0 16px; border: 0; background: none; color: var(--brand); font-weight: 700; }
.sf-tabs--2 a[aria-current="true"] { background: var(--surface); color: var(--brand); box-shadow: 0 2px 6px -2px color-mix(in srgb, var(--brand) 45%, transparent); }
/* 3 · linguette a cartella */
.sf-body > .sf-tabs--3 { position: sticky; background: var(--bg); border: 0; border-radius: 0; padding: 8px 0 0 12px; margin-bottom: -1px; z-index: 30; }
.sf-tabs--3 ul { gap: 4px; align-items: flex-end; }
.sf-tabs--3 a { min-height: 46px; padding: 0 20px; border: 1px solid var(--line); border-bottom: 0; border-radius: 12px 12px 0 0; background: var(--muted-bg); color: var(--text-2); font-weight: 700; }
.sf-tabs--3 a[aria-current="true"] { background: var(--surface); border-color: var(--line); color: var(--brand); box-shadow: inset 0 3px 0 var(--brand); }
.sf-body--3 > .sf-body-card { border-radius: var(--radius); }
/* 4 · testata viola */
.sf-tabs--4 { padding: 16px 22px 14px !important; border: 0 !important; color: #fff; background: linear-gradient(120deg, var(--brand-dark), var(--brand)) !important; }
.sf-tabs--4 .sf-tabs-title { margin-bottom: 10px; font-size: 19px; color: #fff; }
.sf-tabs--4 .sf-tabs-title small { display: block; font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; opacity: .85; }
.sf-tabs--4 a { min-height: 40px; border: 1.5px solid rgba(255, 255, 255, .55); background: none; color: #fff; font-weight: 700; }
.sf-tabs--4 a:hover { border-color: #fff; }
.sf-tabs--4 a[aria-current="true"] { background: #fff; border-color: #fff; color: var(--brand); }
.sf-body--4 > .sf-body-card { border-top: 0; }
/* 5 · tessere con stato */
.sf-tabs--5 ul { gap: 0; border-bottom: 1px solid var(--line); }
.sf-tabs--5 li { flex: 1 0 auto; }
.sf-tabs--5 li + li { border-left: 1px solid var(--line); }
.sf-tabs--5 a { width: 100%; gap: 12px; min-height: 64px; padding: 10px 16px; border: 0; border-radius: 0; background: none; color: var(--text); position: relative; }
.sf-tabs--5 li:first-child a { border-top-left-radius: var(--radius); }
.sf-tabs--5 li:last-child a { border-top-right-radius: var(--radius); }
.sf-tab-box { display: grid; place-items: center; width: 38px; height: 38px; flex: none; border-radius: 11px; background: var(--muted-bg); color: var(--text-2); }
.sf-tab-txt { display: grid; line-height: 1.25; }
.sf-tab-txt small { color: var(--text-2); font-weight: 500; font-size: 13px; }
.sf-tab-dot { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--warn); vertical-align: 1px; }
.sf-tabs--5 a:hover { border-color: transparent; background: var(--muted-bg); }
.sf-tabs--5 a[aria-current="true"] { background: var(--brand-tint); color: var(--text); box-shadow: inset 0 -3px 0 var(--brand); }
.sf-tabs--5 a[aria-current="true"] .sf-tab-box { background: var(--brand); color: #fff; }
.sf-tabs--5 a[aria-current="true"] b { color: var(--brand); }
.sf-tabs--5 a[aria-current="true"] small { color: var(--text); }
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) :is(.sf-tabs--1 a:hover, .sf-tabs--1 a[aria-current="true"], .sf-tabs--2 .sf-tabs-title, .sf-tabs--2 a, .sf-tabs--2 a[aria-current="true"], .sf-tabs--3 a[aria-current="true"], .sf-tabs--5 a[aria-current="true"] b) { color: var(--brand-on-dark); }
  html:not([data-theme="light"]) :is(.sf-tabs--1 a[aria-current="true"]) { border-color: var(--brand-on-dark); }
}
html[data-theme="dark"] :is(.sf-tabs--1 a:hover, .sf-tabs--1 a[aria-current="true"], .sf-tabs--2 .sf-tabs-title, .sf-tabs--2 a, .sf-tabs--2 a[aria-current="true"], .sf-tabs--3 a[aria-current="true"], .sf-tabs--5 a[aria-current="true"] b) { color: var(--brand-on-dark); }
html[data-theme="dark"] .sf-tabs--1 a[aria-current="true"] { border-color: var(--brand-on-dark); }

.sf-cover { margin: 0; position: relative; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--muted-bg); }
.sf-cover img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: cover; }
.sf-cover figcaption { position: absolute; left: 12px; bottom: 12px; padding: 4px 10px; border-radius: 8px; background: rgba(12, 42, 40, .78); color: #fff; font-size: 13px; font-weight: 600; }
.sf-site { margin: 0; }
.sf-site a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 17px; font-weight: 600; }

.sf-sec { padding: 20px 22px; }
.sf-sec h2 { font-size: 20px; margin: 0 0 10px; }
.sf-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sf-sec-head h2 { margin: 0; }
.sf-pill { padding: 3px 10px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; color: var(--text-2); white-space: nowrap; }
.sf-today { display: flex; justify-content: space-between; gap: 12px; margin: 10px 0 0; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 16px; }
.sf-today span { color: var(--text-2); }
.sf-week summary { display: inline-flex; align-items: center; min-height: 44px; color: var(--brand); font-weight: 700; cursor: pointer; }
.sf-week .st-hours-table { max-width: none; margin-bottom: 6px; }
.sf-week tr[aria-current="date"] { font-weight: 700; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) :is(.sf-week summary, .sf-link) { color: var(--brand-on-dark); } }
html[data-theme="dark"] :is(.sf-week summary, .sf-link) { color: var(--brand-on-dark); }

.sf-services { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 8px; padding: 0; list-style: none; }
.sf-services li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; background: var(--brand-tint); color: var(--ink); font-weight: 600; font-size: 15px; }
.sf-services svg { color: var(--brand); flex: none; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-services svg { color: var(--brand-on-dark); } }
html[data-theme="dark"] .sf-services svg { color: var(--brand-on-dark); }

/* Blocco centrale della scheda completa (proposta 3 del 18/10/2026): distributore, orari e servizi in ordine, titoli con icona */
.sf-body-card, .sf-dsec { --sf-acc: var(--brand); }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) :is(.sf-body-card, .sf-dsec) { --sf-acc: var(--brand-on-dark); } }
html[data-theme="dark"] :is(.sf-body-card, .sf-dsec) { --sf-acc: var(--brand-on-dark); }
.sf-sec-head { margin-bottom: 14px; flex-wrap: wrap; }
.sf-h { display: flex; align-items: center; gap: 10px; }
.sf-h-ico { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--brand-tint); color: var(--sf-acc); flex: none; }
.sf-pill--ok { border-color: transparent; background: var(--ok-bg); color: var(--ok); font-weight: 700; }
.sf-pill--no { border-color: transparent; background: var(--err-bg); color: var(--err); font-weight: 700; }
.sf-pill--ok::before, .sf-pill--no::before { content: '●'; margin-right: 6px; font-size: 10px; vertical-align: 1px; }
.sf-dsec { padding: 20px 22px; }
.sf-dsec h2 { font-size: 20px; margin: 0; }

/* Prodotti e tipi di prodotto: riquadro tenue in evidenza */
.sf-dprod { padding: 14px 18px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--muted-bg); }
.sf-dprod .st-cat-h { display: flex; align-items: center; gap: 6px; margin: 4px 0 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--sf-acc); }
.sf-dprod .st-offers { margin: 0 0 12px; }
.sf-dprod .st-offers { gap: 6px; }
.sf-dprod .st-offer { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.sf-dprod .st-types { margin: 0; }
.st-types-list { gap: 12px; }
.st-types-list b { margin-bottom: 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--sf-acc, var(--brand)); }
.st-types-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.st-types-chips li { padding: 7px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); font-size: 15px; font-weight: 600; line-height: 1.35; }
.st-types .st-muted { margin: 10px 0 0; }

/* Dettagli del distributore a gruppi */
.sf-dgroups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.sf-dg { padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); min-width: 0; }
.sf-dg--ritiro { grid-column: 1 / -1; }
.sf-dg--ritiro + .sf-dg--altro:last-child, .sf-dg:only-child { grid-column: 1 / -1; }
.sf-dg h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 15px; }
.sf-dg h3 svg { color: var(--sf-acc); }
.sf-dg-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sf-dg-list li { display: grid; gap: 1px; overflow-wrap: anywhere; }
.sf-dg-k { color: var(--text-2); font-size: 13px; }
.sf-dg-v { color: var(--ink); font-weight: 600; }
.sf-dg-steps { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); counter-reset: sf-step; }
.sf-dg-steps li { padding: 10px 12px; border-radius: var(--radius-sm); background: var(--muted-bg); counter-increment: sf-step; }
.sf-dg-steps .sf-dg-k::before { content: counter(sf-step) ' · '; color: var(--sf-acc); font-weight: 800; }
.sf-dg-steps .sf-dg-k { color: var(--sf-acc); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }

/* Riquadro unico: fonte, data, avviso e «Chiama la farmacia» */
.sf-dnote { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 16px; border-radius: var(--radius); background: var(--muted-bg); }
.sf-dnote > svg { flex: none; color: var(--text-2); align-self: flex-start; margin-top: 2px; }
.sf-dnote p { display: grid; gap: 2px; margin: 0; flex: 1; font-size: 14px; color: var(--text-2); }
.sf-dnote b { color: var(--text); }
.sf-dnote-call { flex: none; display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 560px) { .sf-dsec { padding: 18px 14px; } .sf-dprod { padding: 10px 8px 12px; } .sf-dprod .st-offer { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'main fav' 'side side'; gap: 6px 10px; }
  .sf-dprod .st-offer-main { grid-area: main; } .sf-dprod .st-offer-fav { grid-area: fav; } .sf-dprod .st-offer-side { grid-area: side; justify-items: start; text-align: left; } .sf-dnote { flex-wrap: wrap; } .sf-dnote-call { width: 100%; justify-content: center; } .sf-dgroups { grid-template-columns: 1fr; } }

/* Orari: sette caselle, oggi in evidenza */
.sf-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.sf-days li { display: grid; justify-items: center; align-content: start; gap: 2px; padding: 10px 4px; border-radius: var(--radius-sm); background: var(--muted-bg); text-align: center; font-size: 13px; font-variant-numeric: tabular-nums; }
.sf-days b { font-size: 14px; color: var(--ink); margin-bottom: 2px; }
.sf-days abbr { text-decoration: none; }
.sf-days li[aria-current="date"] { background: var(--brand); color: #fff; }
.sf-days li[aria-current="date"] b { color: #fff; }
.sf-day-off { color: var(--text-2); }
.sf-days li[aria-current="date"] .sf-day-off { color: #fff; }
@media (max-width: 560px) {
  .sf-days { grid-template-columns: 1fr; gap: 0; }
  .sf-days li { grid-template-columns: 1fr auto; justify-items: start; padding: 8px 12px; text-align: left; }
  .sf-days li span { grid-column: 2; }
}
.sf-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.sf-chips li { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border-radius: var(--radius-sm); background: var(--brand-tint); color: var(--ink); font-size: 14px; font-weight: 600; }
.sf-chips svg { color: var(--sf-acc); }
.sf-chips .sf-chip-no { background: var(--muted-bg); color: var(--text-2); }
.sf-sec .sf-src-note { margin: 10px 0 0; }

/* Servizi: griglia ordinata */
.sf-body-card .sf-services { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.sf-src-note { margin: 4px 0 0; }

.sf-acc-g { margin: 16px 0 2px; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-3); }
.sf-acc { margin: 0; padding: 0; list-style: none; }
.sf-acc li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 16px; }
.sf-acc li:last-child { border-bottom: 0; }
.sf-acc svg { flex: none; margin-top: 1px; }
.sf-acc-yes svg { color: var(--ok); }
.sf-acc-no svg { color: var(--err); }
.sf-acc-unk svg { color: var(--text-2); }
.sf-acc-unk span { color: var(--text); }
.sf-src { display: inline-block; margin-left: 4px; color: var(--text-2); font-size: 12px; }
.sf-acc-foot { margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.sf-links { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 6px 0 0; }
.sf-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--brand); text-decoration: none; cursor: pointer; }
.sf-link:hover { text-decoration: underline; }
.sf-link-muted { color: var(--text-2); font-weight: 500; }

.st-ls6 .st-l-side .st-detail-map .st-map { height: 240px; }
.sf-map-lazy { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; padding: 12px; box-sizing: border-box;
  background-color: var(--muted-bg);
  background-image: linear-gradient(100deg, transparent 47%, var(--surface) 47%, var(--surface) 51%, transparent 51%),
    linear-gradient(8deg, transparent 54%, var(--surface) 54%, var(--surface) 57%, transparent 57%),
    linear-gradient(80deg, transparent 72%, var(--surface) 72%, var(--surface) 74%, transparent 74%); }
.sf-map-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--surface); color: var(--brand); font: inherit; font-weight: 700; cursor: pointer; }
.sf-map-note { padding: 4px 8px; border-radius: 8px; background: var(--surface); color: var(--text-2); font-size: 12px; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-map-btn { color: var(--brand-on-dark); } }
html[data-theme="dark"] .sf-map-btn { color: var(--brand-on-dark); }

.sf-side { padding: 18px 20px; }
.sf-side h2 { font-size: 18px; margin: 0 0 8px; }
/* «Sei il titolare?»: 4 stili scelti in admin/scheda.php (sf-claim--a…d), tutti con i colori della palette in uso. */
.sf-claim { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px;
  margin-top: 16px; padding: 22px 24px; border-radius: var(--radius); }
.sf-claim-body { flex: 1 1 320px; min-width: 0; }
.sf-claim h2 { margin: 0 0 4px; font-size: 20px; }
.sf-claim p { margin: 0; }
.sf-claim-btn { flex: none; border-radius: 999px; box-shadow: none; }
.sf-claim-badge { display: inline-block; vertical-align: middle; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 800;
  letter-spacing: .05em; text-transform: uppercase; }
/* A · gradiente vivace */
.sf-claim--a { color: #fff; box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--brand) 75%, transparent);
  background: radial-gradient(circle at 95% 0, color-mix(in srgb, var(--corallo) 55%, transparent), transparent 42%),
    linear-gradient(120deg, var(--brand-dark), var(--brand) 50%, color-mix(in srgb, var(--turchese) 55%, var(--brand-dark))); }
.sf-claim--a::after { content: ""; position: absolute; z-index: -1; right: -40px; bottom: -70px; width: 190px; height: 190px; border-radius: 50%;
  border: 28px solid rgba(255, 255, 255, .08); }
.sf-claim--a h2 { color: #fff; }
.sf-claim--a p { color: #f4f1fa; }
.sf-claim--a .sf-claim-btn { background: #fff; color: var(--brand-dark); box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .35); }
/* B · accento corallo con icona */
.sf-claim--b { border: 1px solid color-mix(in srgb, var(--corallo) 35%, transparent); border-left: 6px solid var(--corallo);
  background: linear-gradient(135deg, var(--corallo-tint), var(--surface, #fff) 75%); }
.sf-claim-ico { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: var(--corallo-text);
  color: var(--surface, #fff); transform: rotate(-6deg); box-shadow: 0 8px 18px -8px var(--corallo); }
.sf-claim--b h2 { color: var(--ink); }
.sf-claim--b p { color: var(--text-2); }
.sf-claim--b .sf-claim-btn { background: var(--corallo-text); color: var(--surface, #fff); }
/* C · vetrina con vantaggi */
.sf-claim--c { color: #fff; background: var(--hero);
  background-image: radial-gradient(circle at 0 0, color-mix(in srgb, var(--turchese) 45%, transparent), transparent 42%),
    radial-gradient(circle at 100% 100%, color-mix(in srgb, var(--corallo) 35%, transparent), transparent 42%); }
.sf-claim--c .sf-claim-badge { margin-bottom: 10px; background: var(--corallo); color: var(--hero); }
.sf-claim--c h2 { color: #fff; font-size: 24px; }
.sf-claim--c p { color: var(--hero-text); }
.sf-claim-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.sf-claim-pills li { display: flex; align-items: center; gap: 8px; padding: 6px 13px; border-radius: 999px; font-size: 14px; font-weight: 600;
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); color: #fff; }
.sf-claim-pills li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--hero-hi); }
.sf-claim--c .sf-claim-btn { background: var(--corallo); color: var(--hero); box-shadow: 0 8px 20px -8px var(--corallo); }
/* D · tinta chiara del marchio */
.sf-claim--d { background: var(--brand-tint); border: 2px dashed color-mix(in srgb, var(--brand) 40%, transparent); }
.sf-claim--d h2 { color: var(--ink); }
.sf-claim--d p { color: var(--text); }
.sf-claim--d .sf-claim-badge { margin-left: 6px; background: var(--corallo-text); color: var(--surface, #fff); }
.sf-claim--d .sf-claim-btn { background: var(--brand); color: #fff; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-claim--a, html:not([data-theme="light"]) .sf-claim--c { border: 1px solid var(--line); } }
html[data-theme="dark"] .sf-claim--a, html[data-theme="dark"] .sf-claim--c { border: 1px solid var(--line); }
/* Colonna laterale della scheda completa: più lunga dello schermo con «Sei il titolare?» e «Come verifichiamo i dati», quindi non resta ferma */
@media (min-width: 900px) { .sf-cols > .st-l-side { position: static; } }
.st-l-side .sf-claim { padding: 22px; gap: 16px; }
.st-l-side .sf-claim-body { flex-basis: 100%; }
.st-l-side .sf-claim-btn { flex: 1 1 100%; justify-content: center; text-align: center; }
/* «Come verifichiamo i dati»: sotto «Sei il titolare?», tinta chiara del marchio come «Conosci questa farmacia?» */
.sf-check { position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; gap: 14px; padding: 14px 14px 14px 16px;
  border: 1px solid var(--line); border-radius: 999px; color: var(--ink); text-decoration: none;
  background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--turchese) 22%, transparent), transparent 55%), var(--brand-tint); }
.sf-check::after { content: ""; position: absolute; z-index: -1; right: -30px; bottom: -62px; width: 120px; height: 120px; border-radius: 50%;
  border: 18px solid color-mix(in srgb, var(--brand) 8%, transparent); }
.sf-check-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
  background: var(--brand); color: #fff; }
.sf-check h2 { flex: 1; margin: 0; font-size: 16px; line-height: 1.25; color: var(--ink); }
.sf-check-go { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%;
  background: var(--brand); color: #fff; font-size: 20px; font-weight: 700; transition: transform .15s; }
.sf-check:hover .sf-check-go { transform: translateX(3px); }
.sf-check:hover h2 { text-decoration: underline; }
/* Avviso sui medicinali: ultimo riquadro della colonna principale, con il gradiente di «Sei il titolare?» */
.sf-med { position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; gap: 16px; padding: 20px 24px; border-radius: var(--radius);
  color: #fff; box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--brand) 75%, transparent);
  background: radial-gradient(circle at 95% 0, color-mix(in srgb, var(--corallo) 55%, transparent), transparent 42%),
    linear-gradient(120deg, var(--brand-dark), var(--brand) 50%, color-mix(in srgb, var(--turchese) 55%, var(--brand-dark))); }
.sf-med::after { content: ""; position: absolute; z-index: -1; right: -40px; bottom: -70px; width: 170px; height: 170px; border-radius: 50%;
  border: 26px solid rgba(255, 255, 255, .08); }
.sf-med-ico { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .25); color: #fff; }
.sf-med p { margin: 0; font-size: 16px; font-weight: 600; color: #fff; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-med { border: 1px solid var(--line); } }
html[data-theme="dark"] .sf-med { border: 1px solid var(--line); }
.sf-tell { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px 18px;
  align-items: center; margin-top: 16px; padding: 20px 22px; border: 1px solid var(--line); border-radius: var(--radius);
  background: linear-gradient(135deg, var(--surface) 0%, var(--brand-tint) 100%); }
.sf-tell-ico { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 15px;
  background: var(--brand-tint); color: var(--brand); }
.sf-tell h2 { margin: 0 0 2px; font-size: 19px; color: var(--ink); }
.sf-tell p { margin: 0; color: var(--text-2); }
.sf-tell-btn { grid-column: 1 / -1; justify-self: start; min-height: 48px; padding: 0 22px; background: var(--surface); color: var(--brand); border: 1.5px solid var(--brand); box-shadow: none; }
.sf-tell-btn:hover { background: var(--brand-tint); color: var(--brand); filter: none; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) :is(.sf-tell-btn, .sf-tell-ico) { color: var(--brand-on-dark); border-color: var(--brand-on-dark); } }
html[data-theme="dark"] :is(.sf-tell-btn, .sf-tell-ico) { color: var(--brand-on-dark); border-color: var(--brand-on-dark); }
@media (min-width: 760px) {
  .sf-tell { grid-template-columns: auto minmax(0, 1fr) auto; }
  .sf-tell-btn { grid-column: 3; }
}
.sf-others { margin: 0; padding: 0; list-style: none; }
.sf-others li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.sf-others li:last-child { border-bottom: 0; }
.sf-others a { font-weight: 600; }
.sf-others small { display: block; color: var(--text-2); }
.st-ls6 :is(.st-l-main, .sf-body-card) > .st-notices, .st-ls6 .st-l-side > .st-nearby { padding: 18px 22px; }
.st-ls6 .st-l-side > .st-nearby h2, .st-ls6 :is(.st-l-main, .sf-body-card) > .st-notices h2 { font-size: 18px; margin: 0 0 8px; }
.sf-map-btn { white-space: nowrap; }
.sf-map-lazy .sf-map-note { max-width: 50%; }

/* ---------- Scheda completa: area del distributore (forma scelta in admin/scheda.php, SchedaFarmacia::STILI_DIST) ----------
   Riquadro scuro con i colori della palette in uso (stesso aspetto nei temi chiaro e scuro); «ask» (segnalato o non
   verificato) su fondo chiaro; «out» (fuori servizio) con il rosso degli errori. Testo sempre anche a parole. */
.sf-dist { position: relative; margin: 16px 0 0; padding: 22px 24px; border-radius: var(--radius); color: var(--hero-text, #e3efec);
  background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--turchese, #20A89E) 30%, transparent), transparent 55%), linear-gradient(135deg, var(--hero), var(--brand-dark) 60%, var(--brand)); }
.sf-dist h2 { margin: 0; font-size: 22px; line-height: 1.2; color: #fff; }
.sf-dist--compact { padding: 18px; }
.sf-dist--compact h2 { font-size: 19px; }
.sf-dist--out { background: linear-gradient(135deg, #3a1712, #7a3326); }
.sf-dist--ask { color: var(--text); background: var(--surface); border: 1px solid var(--line); }
.sf-dist--ask h2 { color: var(--ink); }
.sf-d-top { display: flex; gap: 14px; align-items: flex-start; }
.sf-d-id { flex: 1 1 auto; min-width: 0; }
.sf-d-ico { flex: none; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; background: rgba(255, 255, 255, .12); color: var(--hero-hi, #c8f0ea); }
.sf-d-ico--light, .sf-dist--ask .sf-d-ico { background: var(--brand-tint); color: var(--brand); }
.sf-d-ico--sm { width: 36px; height: 36px; border-radius: 11px; }
.sf-dist--compact .sf-d-ico { width: 46px; height: 46px; }
.sf-d-state { display: flex; align-items: center; gap: 8px; margin: 0 0 2px; font-size: 14px; font-weight: 700; }
.sf-d-state::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; }
.sf-d-state--ok::before { background: #4ade80; box-shadow: 0 0 0 4px rgba(74, 222, 128, .22); }
.sf-d-state--warn::before { background: #e0a800; box-shadow: 0 0 0 4px rgba(224, 168, 0, .2); }
.sf-d-state--off::before { background: #f87171; box-shadow: 0 0 0 4px rgba(248, 113, 113, .22); }
.sf-dist .sf-d-state--ok, .sf-split-r .sf-d-state--ok { color: #9ff3c9; }
.sf-dist .sf-d-state--warn, .sf-split-r .sf-d-state--warn { color: #ffd98a; }
.sf-dist .sf-d-state--off, .sf-split-r .sf-d-state--off { color: #ffc9bd; }
.sf-dist--ask .sf-d-state--warn, .sf-split-r.sf-dist--ask .sf-d-state--warn { color: var(--warn); }
.sf-d-side .sf-d-state--ok { color: var(--ok); }
.sf-d-side .sf-d-state--warn { color: var(--warn); }
.sf-d-sub { margin: 4px 0 0; font-size: 14px; color: var(--hero-text-2, #c5dad6); }
.sf-dist--out .sf-d-sub { color: #f6d7cf; }
.sf-dist--ask .sf-d-sub, .sf-dist--ask .sf-d-note { color: var(--text-2); }
.sf-d-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.sf-d-chips li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; font-size: 13px; font-weight: 600; background: rgba(255, 255, 255, .1); }
.sf-d-btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.sf-d-b { min-height: 48px; border-radius: 12px; gap: 8px; }
.sf-d-b small { font-weight: 600; opacity: .8; }
.sf-d-b svg { flex: none; }
/* Pulsanti sul fondo scuro: il principale bianco, gli altri contornati */
.sf-dist .sf-d-b, .sf-split-r .sf-d-b, .sf-dist .st-fav.sf-d-b, .sf-split-r .st-fav.sf-d-b { background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, .5); box-shadow: none; padding: 0 16px; font-size: 15px; }
.sf-dist .sf-d-b:hover, .sf-split-r .sf-d-b:hover { background: rgba(255, 255, 255, .1); filter: none; }
.sf-dist .sf-d-b--main, .sf-split-r .sf-d-b--main, .sf-dist .st-fav.sf-d-b--main { background: #fff; color: var(--hero); border-color: #fff; }
.sf-dist .sf-d-b--main:hover, .sf-split-r .sf-d-b--main:hover { background: #fff; filter: brightness(.95); }
.sf-dist .st-fav.st-fav-on.sf-d-b, .sf-split-r .st-fav.st-fav-on.sf-d-b { background: rgba(255, 255, 255, .18); }
.sf-dist--ask .sf-d-b, .sf-split-r.sf-dist--ask .sf-d-b { color: var(--brand); border-color: var(--brand); background: var(--surface); }
.sf-d-help { margin: 14px 0 0; font-weight: 700; color: var(--ink); }
.sf-d-vote { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; max-width: 460px; }
.sf-d-note { margin: 10px 0 0; font-size: 13px; }
/* Striscia dei primi prodotti (forma 1) */
.sf-d-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.sf-d-more { display: flex; }
.sf-d-more a { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 120px; padding: 12px; text-align: center; border: 1.5px dashed rgba(255, 255, 255, .45);
  border-radius: 12px; color: #fff; font-weight: 700; }
/* Scheda di un prodotto */
.sf-pc { overflow: hidden; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--text); }
.sf-pc-img { display: grid; max-width: 100%; place-items: center; width: 100%; height: 86px; margin-bottom: 6px; border-radius: 8px; object-fit: contain; background: var(--muted-bg); }
.sf-pc-tile { padding: 6px; font-size: 12px; font-weight: 700; text-align: center; color: var(--brand); }
.sf-tint-0 { background: var(--brand-tint); }
.sf-tint-1 { background: var(--warn-bg); color: var(--warn); }
.sf-tint-2 { background: color-mix(in srgb, #5b7bd5 14%, var(--surface)); color: color-mix(in srgb, #2f4a9a 80%, var(--text)); }
.sf-tint-3 { background: var(--corallo-tint); color: var(--corallo-text); }
.sf-pc-name { font-size: 15px; line-height: 1.25; color: var(--ink); }
.sf-pc-name a { color: inherit; }
.sf-pc-sub, .sf-pc-upd { color: var(--text-2); font-size: 12px; }
.sf-pc-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin-top: auto; padding-top: 4px; }
.sf-pc-row .st-price { font-size: 16px; }
.sf-pc-foot { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
/* Catalogo (forme 2 e 4) */
.sf-cat { min-width: 0; padding: 20px 22px; }
.sf-cat > * { min-width: 0; max-width: 100%; }
.sf-cat-head { display: flex; gap: 14px; align-items: center; margin-bottom: 6px; }
.sf-cat-head h2 { margin: 0; }
.sf-cat-head p { margin: 2px 0 0; }
.sf-cat-tools { margin: 12px 0; }
.sf-cat-q { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--bg); color: var(--text-2); }
.sf-cat-q:focus-within { border-color: var(--brand); }
.sf-cat-q input { flex: 1; min-width: 0; min-height: 44px; border: 0; background: transparent; font: inherit; color: var(--text); outline: none; }
.sf-cat-f { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.sf-cat-f button { flex: none; min-height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--text);
  font: inherit; font-size: 14px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.sf-cat-f button[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; }
.sf-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 12px 0; padding: 0; list-style: none; }
.sf-cat-grid .sf-pc-img { height: 110px; }
.sf-cat-grid .sf-pc[hidden] { display: none; }
@media (max-width: 520px) { .sf-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .sf-pc { padding: 10px; } .sf-cat-grid .sf-pc-img { height: 86px; } }
/* Testata divisa (forma 3) */
.sf-split { display: grid; margin-top: 18px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
@media (min-width: 760px) { .sf-split { grid-template-columns: 1fr 1fr; } }
.sf-split > div { padding: 18px 20px; }
.sf-split h3 { margin: 0 0 6px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-2); }
.sf-split .sf-acts { margin-top: 10px; }
@media (min-width: 640px) { .sf-split .sf-acts { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
.sf-split-r { color: var(--hero-text, #e3efec); background: linear-gradient(135deg, var(--hero), var(--brand-dark) 70%, var(--brand)); }
.sf-split-r h3 { color: var(--hero-link, #bdeee7); }
.sf-split-r.sf-dist--out { background: linear-gradient(135deg, #3a1712, #7a3326); }
.sf-split-r.sf-dist--ask { color: var(--text); background: var(--brand-tint); }
.sf-split-r.sf-dist--ask h3, .sf-split-r.sf-dist--ask .sf-d-sub { color: var(--text); }
.sf-split-r .sf-d-btns { margin-top: 12px; }
.sf-split-r .sf-d-b { flex: 1 1 140px; }
.sf-d-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 8px; margin-top: 10px; }
.sf-d-kpi div { padding: 8px 10px; border-radius: 10px; background: rgba(255, 255, 255, .09); }
.sf-d-kpi b { display: block; font-size: 18px; color: #fff; }
.sf-d-kpi span { font-size: 12px; color: var(--hero-text-2, #c5dad6); }
.sf-d-side h2 { display: flex; align-items: center; gap: 10px; }
.sf-d-facts { margin: 8px 0 0; padding: 0; list-style: none; }
.sf-d-facts li { padding: 8px 0; border-top: 1px solid var(--line); font-size: 14px; }
.sf-d-side .sf-d-btns { margin-top: 12px; }
.sf-d-side .sf-d-b { flex: 1 1 120px; white-space: nowrap; padding: 0 12px; }
.sf-d-b--bad { color: var(--err); border-color: var(--err-line); }
/* Barra fissa in basso (forma 4), solo su schermi stretti */
.sf-dbar, .sf-dbar-space { display: none; }
@media (max-width: 899px) {
  .sf-dbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background: var(--surface); border-top: 1px solid var(--line); box-shadow: 0 -6px 18px rgba(12, 42, 40, .12); }
  .sf-dbar-in { display: flex; gap: 8px; max-width: 640px; margin: 0 auto; }
  .sf-dbar-in > .sf-d-b { flex: 1 1 0; min-width: 0; padding: 0 10px; }
  .sf-dbar-in > .sf-dbar-fault { flex: 0 0 48px; color: var(--err); border-color: var(--err-line); }
  .sf-dbar-space { display: block; height: 80px; }
}
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-tint-2 { color: #b9c8f5; } html:not([data-theme="light"]) .sf-tint-0 { color: var(--brand-on-dark); } html:not([data-theme="light"]) .sf-dist--ask .sf-d-b { color: var(--brand-on-dark); border-color: var(--brand-on-dark); } }
html[data-theme="dark"] .sf-tint-2 { color: #b9c8f5; }
html[data-theme="dark"] .sf-tint-0 { color: var(--brand-on-dark); }
html[data-theme="dark"] .sf-dist--ask .sf-d-b { color: var(--brand-on-dark); border-color: var(--brand-on-dark); }

/* ---------- «C'è un distributore qui?»: stili A–E scelti in admin/scheda.php (SchedaFarmacia::STILI_ASK, predefinito E) ----------
   Colori dalla palette in uso; illustrazione del distributore e stradario in SVG nella pagina (sfMacchina, sfStradario). */
.sf-m-body { fill: var(--brand); }
.sf-m-shine { fill: #fff; opacity: .14; }
.sf-m-glass { fill: #fff; }
.sf-m-pa { fill: #F2A65A; } .sf-m-pb { fill: #7FD1C7; } .sf-m-pc { fill: #F28B82; } .sf-m-pd { fill: #9B8AE6; } .sf-m-pe { fill: #FFD166; }
.sf-m-shelf { stroke: #e2deea; stroke-width: 2; fill: none; }
.sf-m-keys { fill: #fff; opacity: .8; }
.sf-m-coin { fill: #FFD166; }
.sf-m-tray { fill: #000; opacity: .25; }
.sf-m-cross { stroke: #fff; stroke-width: 3; stroke-linecap: round; fill: none; }
.sf-ask { position: relative; margin: 16px 0 0; }
.sf-ask h2 { margin: 0; line-height: 1.15; }
.sf-ask-lead { margin: 4px 0 0; font-size: 14px; }
.sf-ask-note { margin: 8px 0 0; font-size: 12px; }
.sf-ask-tag { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.sf-ask-bs { display: flex; flex-wrap: wrap; gap: 10px; }
.sf-ask-b { gap: 7px; box-shadow: none; white-space: nowrap; border: 2px solid transparent; }
.sf-ask-b svg { flex: none; }
/* A · banner a gradiente con il distributore illustrato */
.sf-ask--a { display: flex; align-items: center; gap: 20px; padding: 18px 24px; border-radius: 20px; overflow: hidden; color: #fff;
  background: radial-gradient(circle at 85% 20%, rgba(255, 255, 255, .18), transparent 40%), linear-gradient(110deg, var(--brand-dark), var(--brand) 55%, var(--corallo)); }
.sf-ask--a .sf-ask-ill { flex: none; width: 74px; height: 92px; transform: rotate(-6deg); filter: drop-shadow(0 10px 14px rgba(0, 0, 0, .25)); }
.sf-ask--a .sf-m-body { fill: #fff; opacity: .2; }
.sf-ask--a .sf-ask-t { flex: 1; min-width: 0; }
.sf-ask--a h2 { font-size: 22px; color: #fff; }
.sf-ask--a .sf-ask-lead { color: rgba(255, 255, 255, .9); }
.sf-ask--a .sf-ask-tag { margin-bottom: 4px; background: rgba(255, 255, 255, .18); color: #fff; }
.sf-ask--a .sf-ask-y { background: #fff; color: var(--brand-dark); }
.sf-ask--a .sf-ask-n { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .65); }
.sf-ask--a .sf-ask-note { color: rgba(255, 255, 255, .85); }
/* B · card chiara con il distributore grande che esce dal bordo */
.sf-ask--b { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; gap: 8px 22px; padding: 18px 24px 18px 8px; margin-top: 30px; border-radius: 20px;
  background: linear-gradient(135deg, var(--brand-tint), var(--corallo-tint)); border: 1px solid color-mix(in srgb, var(--brand) 18%, transparent); }
.sf-ask--b .sf-ask-ill { width: 120px; height: 150px; margin: -34px 0 -24px 18px; filter: drop-shadow(0 14px 18px color-mix(in srgb, var(--brand) 35%, transparent)); }
.sf-ask--b h2 { margin-top: 6px; font-size: 23px; color: var(--ink); }
.sf-ask--b .sf-ask-lead { color: var(--text); }
.sf-ask--b .sf-ask-tag { background: var(--warn-bg); color: var(--warn); }
.sf-ask--b .sf-ask-bs { margin-top: 12px; }
.sf-ask--b .sf-ask-y { background: var(--ok); color: #fff; }
.sf-ask--b .sf-ask-n { background: var(--surface); color: var(--err); border-color: var(--err-line); }
.sf-ask--b .sf-ask-note { color: var(--text-2); }
/* C · stradario sullo sfondo e pannello in vetro */
.sf-ask--c { display: flex; align-items: center; min-height: 170px; padding: 18px; border-radius: 20px; overflow: hidden; border: 1px solid var(--line); }
.sf-ask-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.sf-map-bg { fill: var(--brand-tint); }
.sf-map-blk rect { fill: var(--surface); opacity: .9; }
.sf-map-road { stroke: color-mix(in srgb, var(--brand) 22%, transparent); stroke-width: 12; fill: none; }
.sf-map-lane { stroke: var(--surface); stroke-width: 2; stroke-dasharray: 10 10; fill: none; opacity: .8; }
.sf-map-halo { fill: var(--brand); opacity: .14; }
.sf-map-pin { fill: var(--brand); }
.sf-map-dot { fill: #fff; }
.sf-ask-glass { position: relative; max-width: 540px; padding: 16px 18px; border-radius: 16px; background: color-mix(in srgb, var(--surface) 86%, transparent);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 12px 30px -16px rgba(0, 0, 0, .35); }
.sf-ask--c h2 { margin-top: 8px; font-size: 21px; color: var(--ink); }
.sf-ask--c .sf-ask-lead { margin-bottom: 10px; color: var(--text); }
.sf-ask--c .sf-ask-tag { background: var(--brand); color: #fff; }
.sf-ask--c .sf-ask-y { background: var(--brand); color: #fff; }
.sf-ask--c .sf-ask-n { background: var(--surface); color: var(--brand); border-color: var(--brand); }
.sf-ask--c .sf-ask-note { color: var(--text-2); }
/* D · due grandi tessere */
.sf-ask--d { padding: 16px 18px; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); }
.sf-ask-top { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.sf-ask-mini { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: linear-gradient(135deg, var(--brand), var(--corallo)); }
.sf-ask-mini .sf-ask-ill { width: 30px; height: 38px; }
.sf-ask-mini .sf-m-body { fill: #fff; opacity: .25; }
.sf-ask--d h2 { font-size: 20px; color: var(--ink); }
.sf-ask--d .sf-ask-lead { margin-top: 2px; font-size: 13px; color: var(--text-2); }
.sf-ask-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sf-ask-tile { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 12px 16px; border: 2px solid transparent; border-radius: 16px; font: inherit; text-align: left; cursor: pointer; }
.sf-ask-tile b { display: block; font-size: 16px; }
.sf-ask-tile small { display: block; font-size: 12px; }
.sf-ask-tile-ic { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: #fff; }
.sf-ask-ty { background: var(--ok-bg); color: var(--ok); border-color: color-mix(in srgb, var(--ok) 30%, transparent); }
.sf-ask-ty .sf-ask-tile-ic { background: var(--ok); }
.sf-ask-tn { background: var(--err-bg); color: var(--err); border-color: var(--err-line); }
.sf-ask-tn .sf-ask-tile-ic { background: var(--err); }
.sf-ask-tile:hover { filter: brightness(.97); }
.sf-ask--d .sf-ask-note { margin-top: 10px; color: var(--text-2); }
/* E · striscia compatta con motivo a croci (predefinito) */
.sf-ask--e { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 14px; padding: 12px 14px 12px 12px; border-radius: 999px; color: #fff;
  background-color: var(--brand); box-shadow: 0 12px 26px -14px var(--brand);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath d='M15 9h6v6h6v6h-6v6h-6v-6H9v-6h6z' fill='%23fff' fill-opacity='.09'/%3E%3C/svg%3E"), linear-gradient(90deg, var(--brand-dark), var(--brand)); }
.sf-ask-dot { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #fff; }
.sf-ask-dot .sf-ask-ill { width: 26px; height: 32px; }
.sf-ask--e .sf-ask-t { flex: 1 1 260px; min-width: 0; }
.sf-ask--e h2 { font-size: 17px; color: #fff; }
.sf-ask--e .sf-ask-lead { margin-top: 2px; font-size: 13px; color: rgba(255, 255, 255, .9); }
.sf-ask--e .sf-ask-bs { gap: 8px; }
.sf-ask--e .sf-ask-y { background: #fff; color: var(--brand-dark); }
.sf-ask--e .sf-ask-n { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .55); }
@media (max-width: 640px) {
  .sf-ask--a { flex-wrap: wrap; padding: 16px; }
  .sf-ask--a .sf-ask-ill { width: 54px; height: 68px; }
  .sf-ask--a .sf-ask-t { flex: 1 1 60%; }
  .sf-ask--a .sf-ask-act { flex: 1 1 100%; }
  .sf-ask--b { grid-template-columns: 96px minmax(0, 1fr); padding: 14px 14px 14px 4px; }
  .sf-ask--b .sf-ask-ill { width: 84px; height: 106px; margin: -20px 0 -10px 8px; }
  .sf-ask--b h2 { font-size: 20px; }
  .sf-ask--c { min-height: 0; padding: 12px; }
  .sf-ask-tile { flex-direction: column; align-items: flex-start; gap: 8px; }
  .sf-ask--e { border-radius: 20px; }
  .sf-ask--e .sf-ask-bs { flex: 1 1 100%; }
  .sf-ask-bs .sf-ask-b { flex: 1 1 0; }
}
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-ask--b .sf-ask-n, html:not([data-theme="light"]) .sf-ask--c .sf-ask-n { color: var(--err); } html:not([data-theme="light"]) .sf-ask--c .sf-ask-n { color: var(--brand-on-dark); border-color: var(--brand-on-dark); } }
html[data-theme="dark"] .sf-ask--c .sf-ask-n { color: var(--brand-on-dark); border-color: var(--brand-on-dark); }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .sf-ask--b .sf-ask-y, html:not([data-theme="light"]) .sf-ask-tile-ic { color: var(--bg); } }
html[data-theme="dark"] .sf-ask--b .sf-ask-y, html[data-theme="dark"] .sf-ask-tile-ic { color: var(--bg); }

/* Turno nell'angolo (site.js turnoTag): con i pulsanti in una colonna a destra lo spazio si lascia sotto, non a fianco */
:is([data-lr="4"], [data-lr="8"], [data-lr="11"]) .st-list .st-item.st-has-turno { padding-bottom: 48px; }
:is([data-lr="4"], [data-lr="8"], [data-lr="11"]) .st-list .st-item.st-has-turno > .st-actions { padding-right: 0; }
/* Nota dell'asterisco dell'avviso della scheda (fonte dei dati pubblici) */
.sf-nota-dati { margin: 16px 0 0; }
