/* =============================================================================
   Farmacia Ciacco — stile del sito (refresh 2026, design system Farmacia Ciacco v2)
   Foglio scritto a mano, caricato per ultimo dai layout. Ogni selettore ha davanti html.fc (la
   classe sul <html> di Base.astro e HomeLayout.astro): gli altri fogli del sito hanno la stessa
   guardia sulle regole del tema scuro, quindi a parità di specificità vince questo foglio perché
   arriva dopo. Le regole nuove vanno scritte con lo stesso prefisso.
   Colori per ruolo (--tema-*): valori chiari in :root, scuri sotto prefers-color-scheme: dark.
   Regola: niente tinte verdi tenui sulla carta; su carta gli stati usano i toni carta.
   Riferimento: design system Farmacia Ciacco (Claude Design), guidelines/marchio.md.
   ============================================================================= */

/* ---- Caratteri: Nunito (titoli, cifre) + Nunito Sans (testi), OFL ---- */
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("/css/fonts/nunito-latin-wght-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Nunito";
  font-style: italic;
  font-weight: 200 1000;
  font-display: swap;
  src: url("/css/fonts/nunito-latin-wght-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Nunito Sans";
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("/css/fonts/nunito-sans-latin-wght-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Nunito Sans";
  font-style: italic;
  font-weight: 200 1000;
  font-display: swap;
  src: url("/css/fonts/nunito-sans-latin-wght-italic.woff2") format("woff2");
}

/* ---- Token del refresh + token del sito riallineati ---- */
:root.fc {
  --fc-verde-50: #ebfbf7; --fc-verde-100: #d5f5ec; --fc-verde-200: #b0eadd; --fc-verde-300: #7fdec9; --fc-verde-400: #48cbb5;
  --fc-verde-500: #23b59f; --fc-verde-600: #128f80; --fc-verde-700: #0d746b; --fc-verde-800: #005b56; --fc-verde-900: #074544; --fc-verde-950: #052d2d;
  --fc-carta-50: #fcfaf4; --fc-carta-100: #f7f2e7; --fc-carta-200: #ede6d6; --fc-carta-300: #dfd5c0; --fc-carta-400: #c9bda1; --fc-carta-500: #a99d84;
  --fc-inchiostro-100: #ebf2f0; --fc-inchiostro-200: #d9e2e0; --fc-inchiostro-300: #c2cdcb; --fc-inchiostro-400: #a0aeac; --fc-inchiostro-500: #7a8a87;
  --fc-inchiostro-600: #5b6d6a; --fc-inchiostro-700: #435451; --fc-inchiostro-800: #2f3e3b; --fc-inchiostro-900: #1d2927; --fc-inchiostro-950: #0e1817;
  --fc-corallo-100: #ffe7de; --fc-corallo-400: #f98c6c; --fc-corallo-500: #ef5f3b; --fc-corallo-600: #d43f22; --fc-corallo-700: #b43220;
  --fc-sole-100: #fff4c7; --fc-sole-300: #fddf69; --fc-sole-400: #fbd32c; --fc-sole-500: #f8ca10; --fc-sole-700: #b7810f;

  --fc-viola-light: #8e60ba; --fc-viola-base: #7c4ea6;
  --fc-arancio-light: #cb4a10; --fc-arancio-base: #b13d04;
  --fc-lampone-light: #c94761; --fc-lampone-base: #b43350;
  --fc-indaco-light: #5b6fc9; --fc-indaco-base: #4b5db5;
  --fc-azzurro-light: #067dac; --fc-azzurro-base: #076a93;
  --fc-ambra-light: #a7660f; --fc-ambra-base: #915702;
  --fc-prato-light: #36852f; --fc-prato-base: #21731a;
  --fc-rosa-light: #b1577f; --fc-rosa-base: #9d466d;

  --fc-gradient-brand: linear-gradient(160deg, color-mix(in oklab, var(--fc-verde-600) 50%, var(--fc-verde-700)), var(--fc-verde-700));
  --fc-gradient-deep: linear-gradient(160deg, var(--fc-verde-800), var(--fc-verde-900));
  --fc-gradient-accent: linear-gradient(135deg, var(--fc-corallo-600), var(--fc-corallo-700));

  --fc-font-display: "Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fc-font-text: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --fc-tracking-label: 0.08em;
  --fc-radius-sm: 8px;
  --fc-radius-md: 16px;
  --fc-radius-lg: 24px;
  --fc-shadow-soft: 0 1px 2px rgba(14, 24, 23, 0.06), 0 8px 24px rgba(14, 24, 23, 0.08);
  --fc-shadow-lifted: 0 2px 4px rgba(14, 24, 23, 0.08), 0 18px 40px rgba(14, 24, 23, 0.14);

  /* token del sito */
  --c-brand: var(--fc-verde-500);
  --c-brand-bright: var(--fc-verde-400);
  --c-brand-deep: var(--fc-verde-700);
  --c-brand-grad: var(--fc-verde-600);
  --c-accent-red: var(--fc-corallo-600);
  --c-black: var(--fc-inchiostro-950);
  --c-gray: var(--fc-inchiostro-800);
  --c-gray-light: var(--fc-inchiostro-300);
  --c-border-line: rgba(14, 24, 23, 0.1);
  --ff-ui: var(--fc-font-text);
}


/* ---- Ruoli di tema: chiaro ---- */
:root.fc {
  --tema-pagina: var(--fc-carta-50);
  --tema-superficie: #ffffff;
  --tema-pannello: var(--fc-carta-100);
  --tema-riquadro: var(--fc-carta-100);
  --tema-hover-carta: var(--fc-carta-200);
  --tema-bordo: var(--fc-carta-200);
  --tema-bordo-forte: var(--fc-carta-300);
  --tema-testo: var(--fc-inchiostro-900);
  --tema-testo-2: var(--fc-inchiostro-800);
  --tema-testo-muto: var(--fc-inchiostro-600);
  --tema-verde-testo: var(--fc-verde-700);
  --tema-verde-forte: var(--fc-verde-800);
  /* niente tinte verdi tenui: sulla carta calda il menta stona, i fondi morbidi restano toni carta
     e il verde compare solo pieno (600-800), nei testi, nelle icone e nei bordi dei giorni di turno */
  --tema-tinta: var(--fc-carta-100);
  --tema-tinta-2: var(--fc-carta-200);
  --tema-bordo-accento: var(--fc-carta-300);
  --tema-bordo-turno: var(--fc-verde-600);
  --tema-fondo-turno: var(--fc-carta-100);
  /* i loghi dei marchi hanno bisogno di un fondo chiaro anche nel tema scuro */
  --tema-tessera-logo: var(--fc-carta-50);
  --tema-tessera-logo-hover: #ffffff;
  --tema-sottolineatura: rgba(13, 116, 107, 0.35);
  --tema-chip: var(--fc-inchiostro-800);
  --tema-corallo-testo: var(--fc-corallo-700);
  --tema-corallo-bordo: rgba(180, 50, 32, 0.4);
  --tema-corallo-tinta: var(--fc-corallo-100);
  --tema-ombra: var(--fc-shadow-soft);
  --tema-ombra-su: var(--fc-shadow-lifted);
  --tema-ombra-riquadro: 0 1px 2px rgba(14, 24, 23, 0.08), 0 6px 16px rgba(14, 24, 23, 0.08);
  --tema-alone: var(--fc-carta-50);
  --tema-evento: var(--fc-corallo-600);

  /* token del sito legati ai ruoli */
  --c-page: var(--tema-pagina);
  --page-bg: var(--tema-pagina);
  --page-surface: var(--tema-pagina);
  --c-surface: var(--tema-superficie);
  --surface: var(--tema-superficie);
  --panel: var(--tema-superficie);
  --c-surface-2: var(--tema-riquadro);
  --c-border-soft: var(--tema-bordo);
  --panel-border: var(--tema-bordo);
  --line: var(--tema-bordo);
  --text: var(--tema-testo);
  --text-main: var(--tema-testo);
  --c-ink-strong: var(--tema-testo);
  --c-ink: var(--tema-testo-2);
  --c-ink-muted: var(--tema-testo-muto);
  --muted: var(--tema-testo-muto);
  --shadow-sm: var(--tema-ombra);
  --shadow-md: var(--tema-ombra);
  --shadow-lg: var(--tema-ombra);
  --shadow-soft: var(--tema-ombra);
  --shadow-card: var(--tema-ombra);
  --shadow-tile-rest: var(--tema-ombra-riquadro);
  --shadow-tile-hover: var(--tema-ombra-su);
  color-scheme: light;
}

/* ---- Ruoli di tema: scuro (inchiostro profondo, testi freddi, verdi schiariti) ---- */
@media (prefers-color-scheme: dark) {
  :root.fc {
    --tema-pagina: #0e1817;
    --tema-superficie: #1d2927;
    --tema-pannello: #1d2927;
    --tema-riquadro: #2a3835;
    --tema-hover-carta: rgba(235, 242, 240, 0.08);
    --tema-bordo: rgba(235, 242, 240, 0.09);
    --tema-bordo-forte: rgba(235, 242, 240, 0.16);
    --tema-testo: #ebf2f0;
    --tema-testo-2: #d9e2e0;
    --tema-testo-muto: #a0aeac;
    --tema-verde-testo: #7fdec9;
    --tema-verde-forte: #b0eadd;
    --tema-tinta: rgba(35, 181, 159, 0.14);
    --tema-tinta-2: rgba(35, 181, 159, 0.22);
    --tema-bordo-accento: rgba(72, 203, 181, 0.35);
    --tema-bordo-turno: rgba(72, 203, 181, 0.55);
    --tema-fondo-turno: rgba(35, 181, 159, 0.22);
    --tema-tessera-logo: #dfe7e4;
    --tema-tessera-logo-hover: #ebf2f0;
    --tema-sottolineatura: rgba(127, 222, 201, 0.4);
    --tema-chip: #435451;
    --tema-corallo-testo: #f98c6c;
    --tema-corallo-bordo: rgba(249, 140, 108, 0.45);
    --tema-corallo-tinta: rgba(239, 95, 59, 0.14);
    --tema-ombra: 0 1px 2px rgba(0, 0, 0, 0.35), 0 8px 24px rgba(0, 0, 0, 0.25);
    --tema-ombra-su: 0 2px 4px rgba(0, 0, 0, 0.4), 0 18px 40px rgba(0, 0, 0, 0.35);
    --tema-ombra-riquadro: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 16px rgba(0, 0, 0, 0.2);
    --tema-alone: #354541;
    --tema-evento: #f98c6c;
    color-scheme: dark;
  }
}

/* ---- Base ---- */
html.fc,
html.fc body {
  background: var(--tema-pagina);
}

html.fc body {
  font-family: var(--fc-font-text);
  color: var(--tema-testo);
  font-feature-settings: "kern";
}

html.fc h1,
html.fc h2,
html.fc h3,
html.fc h4 {
  font-family: var(--fc-font-display);
  letter-spacing: -0.005em;
  text-wrap: balance;
}

html.fc :where(a, button, [role="button"], input, select, textarea):focus-visible {
  outline: 2px solid var(--tema-verde-testo);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px var(--tema-pagina);
}

/* ---- Barra di navigazione: verde 800 piena, voce attiva a pillola carta ---- */
html.fc .topnav,
html.fc .topnav:hover,
html.fc .topnav:focus-within {
  background: var(--fc-verde-800);
  border: 0;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 1px 2px rgba(14, 24, 23, 0.1), 0 10px 26px rgba(14, 24, 23, 0.16);
  border-radius: 16px;
}

html.fc .topnav::before,
html.fc .topnav::after,
html.fc .topnav a.active::before,
html.fc .topnav a.active::after,
html.fc .topnav a[aria-current="page"]::before,
html.fc .topnav a[aria-current="page"]::after {
  display: none !important;
}

/* logo 9 + 32 + 9 = 50px: la barra è alta 50 e logo, pillole e menu stanno al centro */
html.fc #logo {
  padding-top: 9px;
  padding-bottom: 9px;
}

html.fc #logo-pic {
  height: 32px !important;
  width: auto;
}

html.fc .topnav a {
  color: var(--fc-carta-50);
  font-family: var(--fc-font-display);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-shadow: none;
}

html.fc .topnav a:hover {
  color: #ffffff;
  text-shadow: none;
}

html.fc .topnav a:not(#logo):not(.icon) {
  margin: 8px 3px;
  padding: 4px 14px;
  line-height: 26px;
  border-radius: 999px;
}

html.fc .topnav a:not(#logo):not(.icon):hover,
html.fc .topnav a:not(#logo):not(.icon):focus-visible {
  background: rgba(252, 250, 244, 0.14);
  box-shadow: none;
}

html.fc .topnav a.active,
html.fc .topnav a[aria-current="page"],
html.fc .topnav a[aria-current="page"]:hover {
  background: var(--fc-carta-50);
  color: var(--fc-verde-800);
  border: 0;
  box-shadow: none;
  text-shadow: none;
}

/* niente contorno di focus dopo un tocco o un clic: resta per la tastiera (:focus-visible) */
html.fc .topnav a:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

/* Tra 801 e 900px le voci delle lingue più lunghe (tagalog, spagnolo) andrebbero a capo: pillole
   un po' più strette e testo a 13px. L'altezza resta 34px, quindi restano gli 8px di respiro. */
@media (min-width: 801px) and (max-width: 900px) {
  html.fc .topnav a:not(#logo):not(.icon) {
    margin-left: 2px;
    margin-right: 2px;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 13px;
    letter-spacing: 0.05em;
  }
}

/* Su desktop la pillola della voce attiva respira uguale sopra, sotto e a destra: 8px
   (8 + 34 + 8 = 50, come il logo). Le voci stanno a destra in float: la prima dopo il logo
   è l'ultima a destra. */
@media (min-width: 801px) {
  html.fc .topnav #logo + a:not(.icon) {
    margin-right: 8px;
  }
}

@media (max-width: 800px) {
  html.fc .topnav.responsive a:not(#logo):not(.icon) {
    margin: 2px 8px;
    width: calc(100% - 16px);
    border-top: 0;
    padding: 10px;
  }

  html.fc .topnav.responsive a#logo {
    margin-bottom: 8px; /* 9 di padding + 8: sotto il logo, a menu aperto, lo stesso spazio di prima */
  }
}

@supports (-webkit-touch-callout: none) {
  @media (hover: none) and (pointer: coarse) {
    html.fc .topnav {
      background: var(--fc-verde-800);
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
    }
  }
}

/* ---- Piè di pagina: pannello carta, etichette maiuscole spaziate ---- */
html.fc .footer {
  background: var(--tema-pannello);
  border: 0;
  border-radius: 24px;
  box-shadow: none;
  color: var(--tema-testo-2);
  padding: 28px 0 22px;
}

html.fc .title-footer {
  font-family: var(--fc-font-display);
  font-size: 12.5px;
  font-weight: 900;
  letter-spacing: var(--fc-tracking-label);
  color: var(--tema-verde-forte);
  margin-bottom: 8px;
}

html.fc .footer-a,
html.fc .footer-b {
  width: auto;
  margin-left: clamp(20px, 4.5vw, 50px);
  margin-right: clamp(20px, 4.5vw, 50px);
}

html.fc .footer-text,
html.fc .link-footer {
  color: var(--tema-testo-2);
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}

html.fc .footer-a .link-footer {
  text-decoration: underline;
  text-decoration-color: var(--tema-sottolineatura);
  text-underline-offset: 3px;
}

html.fc .footer-a .link-footer:hover {
  color: var(--tema-verde-forte);
  text-decoration-color: currentColor;
}

html.fc .footer-b {
  border-top-color: var(--tema-bordo);
  margin-top: 16px;
  padding-top: 16px;
}

/* Riga in fondo: tasti (cookie, notifiche) a sinistra, social a destra; su schermi stretti vanno a capo
   senza sovrapporsi (prima i tasti erano posizionati in assoluto sopra la riga dei social) */
html.fc .footer-b .footer-column-b.fc-cookie-managed-row {
  position: static;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 14px 24px;
  min-height: 0;
}

html.fc .footer-b .fc-cookie-manage-wrap {
  position: static;
  transform: none;
  width: auto;
  margin: 0 auto 0 0;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

html.fc .footer-social-group {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

@media (max-width: 720px) {
  html.fc .footer-b .footer-column-b.fc-cookie-managed-row {
    justify-content: flex-start;
  }

  html.fc .footer-b .fc-cookie-manage-wrap {
    width: 100%;
  }
}

/* Icone Lucide (le stesse del design system) al posto del biscotto e della campana disegnati a mano */
html.fc .footer-b .fc-cookie-manage-btn::before {
  -webkit-mask-image: url("/immagini/icone/cookie.svg");
  mask-image: url("/immagini/icone/cookie.svg");
}

html.fc #fc-push-container .fc-push-bell-icon svg {
  display: none;
}

html.fc #fc-push-container .fc-push-bell-icon {
  background: currentColor;
  -webkit-mask: url("/immagini/icone/bell.svg") center / contain no-repeat;
  mask: url("/immagini/icone/bell.svg") center / contain no-repeat;
}

html.fc #fc-push-container .fc-push-widget--active .fc-push-bell-icon {
  -webkit-mask-image: url("/immagini/icone/bell-ring.svg");
  mask-image: url("/immagini/icone/bell-ring.svg");
}

html.fc #fc-push-container .fc-push-widget--denied .fc-push-bell-icon {
  -webkit-mask-image: url("/immagini/icone/bell-off.svg");
  mask-image: url("/immagini/icone/bell-off.svg");
}

/* notifiche bloccate: corallo del marchio invece del rosso generico */
html.fc .footer-b #fc-push-container .fc-push-widget--denied .fc-push-toggle {
  border-color: var(--tema-corallo-bordo);
  color: var(--tema-corallo-testo);
}

html.fc .footer-b #fc-push-container .fc-push-widget--denied .fc-push-toggle:hover {
  background: var(--tema-corallo-tinta);
}

html.fc .footer-b .link-footer,
html.fc .footer-pill {
  background: var(--tema-superficie);
  border: 1px solid var(--tema-bordo);
  box-shadow: none;
}

html.fc .footer-pill {
  color: var(--tema-verde-forte);
  font-family: var(--fc-font-display);
  font-weight: 800;
  font-size: 13px;
}

html.fc .footer-b .link-footer::before {
  background: var(--tema-verde-testo);
}

html.fc .footer-b .link-footer:hover,
html.fc .footer-b .link-footer:focus-visible,
html.fc .footer-pill:hover,
html.fc .footer-pill:focus-visible {
  /* su carta niente menta: lo stato attivo è un tono carta più scuro */
  background: var(--tema-hover-carta);
  border-color: var(--tema-bordo-forte);
  box-shadow: none;
  transform: none;
}

/* Selettore della lingua (lo aggiunge i18n.js in fondo alla riga): a destra accanto ai social, come
   nel design system (SiteFooter); se la riga va a capo resta a destra. Qui si annullano la posizione
   assoluta e i colori menta che lo script gli dà nel suo <style>. */
html.fc[dir="rtl"] .footer-b .fc-cookie-manage-wrap {
  margin: 0 0 0 auto;
}

html.fc .footer-b .footer-column-b.fc-cookie-managed-row .fc-lang-switch {
  position: static;
  transform: none;
  width: auto;
  padding: 0;
  justify-content: flex-end;
  gap: 10px;
}

html.fc .fc-lang-label {
  color: var(--tema-verde-testo);
  font-family: var(--fc-font-display);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: var(--fc-tracking-label);
  text-transform: uppercase;
}

html.fc .fc-lang-select {
  min-height: 40px;
  min-width: 150px;
  padding: 8px 12px;
  border: 1px solid var(--tema-bordo-forte);
  border-radius: 8px;
  background: var(--tema-superficie);
  color: var(--tema-testo);
  font-family: var(--fc-font-text);
  font-size: 15px;
  font-weight: 600;
  color-scheme: inherit;
}

html.fc .fc-lang-select option {
  color: var(--tema-testo);
  background: var(--tema-superficie);
}

/* =============================================================================
   HOME
   ============================================================================= */

/* Logo in testata: resta la filigrana discreta di prima (immagine originale) */

/* Riquadri: superfici piene, raggio 16, niente riflessi né bordi luminosi */
html.fc .card-home,
html.fc .card-home-2,
html.fc .card-home-3 {
  --card-radius: 16px;
  border: 0;
  box-shadow: var(--shadow-tile-rest);
}

html.fc .card-home::before,
html.fc .card-home-2::before,
html.fc .card-home-3::before,
html.fc .card-home::after,
html.fc .card-home-2::after,
html.fc .card-home-3::after {
  opacity: 0 !important;
  background: none !important;
}

html.fc .card-home:hover,
html.fc .card-home-2:hover,
html.fc .card-home-3:hover,
html.fc .card-home:focus-within,
html.fc .card-home-2:focus-within,
html.fc .card-home-3:focus-within,
html.fc .card-home.is-active-card,
html.fc .card-home-2.is-active-card,
html.fc .card-home-3.is-active-card {
  border: 0;
  transform: translateY(-2px);
  box-shadow: var(--tema-ombra-su);
}

html.fc #orari,
html.fc #eventi-card,
html.fc #servizi-card {
  background: var(--fc-gradient-brand);
}

html.fc .titolo-card {
  font-family: var(--fc-font-display);
  font-weight: 900;
  font-size: 32px;
  letter-spacing: 0.01em;
  text-shadow: none;
}

html.fc .testo-orari,
html.fc #aperti-ora-p {
  font-family: var(--fc-font-text);
  font-variant-numeric: tabular-nums;
}

html.fc #orari-matt,
html.fc #orari-pom,
html.fc #orari-matt2 {
  font-family: var(--fc-font-display);
  font-weight: 700;
}

html.fc #orari .spacerline {
  background-color: rgba(252, 250, 244, 0.28);
}

/* "Controlla turni": solo contorno quando siamo aperti; pieno quando siamo chiusi
   (serve una farmacia di turno) o col riquadro in primo piano, come prima del refresh */
html.fc #orari-turni-cta {
  border: 1.5px solid rgba(252, 250, 244, 0.9);
  background: transparent;
  color: var(--fc-carta-50);
  font-family: var(--fc-font-display);
  font-weight: 900;
  letter-spacing: 0.05em;
  box-shadow: none;
}

html.fc #orari-turni-cta::before {
  display: none;
}

html.fc #orari.orari-turni-state-urgent #orari-turni-cta,
html.fc #orari:hover #orari-turni-cta,
html.fc #orari:focus-visible #orari-turni-cta,
html.fc #orari:focus-within #orari-turni-cta,
html.fc #orari.is-active-card #orari-turni-cta,
html.fc #orari.is-mobile-centered #orari-turni-cta {
  border-color: var(--fc-carta-50);
  background: var(--fc-carta-50);
  color: var(--fc-verde-900);
  box-shadow: none;
}

/* Mese del calendario a filo del titolo: l'asta della prima lettera cade su quella della E di
   EVENTI. Titolo a 18px + 2px di spalla della E (Nunito 900 a 32px) = 20px; la griglia parte
   da 12px e le aste di Nunito Sans 700 a 12px hanno 1px di spalla: 7px di rientro. */
html.fc .eventi-cal-header {
  padding-left: 7px;
}

/* Schedina del riquadro Eventi: superficie del tema e alone carta (niente menta sulla carta).
   Gli eventi con foto prendono i colori dalla foto (lo script li scrive in linea); il turno ha
   sempre i suoi: calendar-tile.js azzera i colori a ogni cambio di giorno. */
html.fc .eventi-event-card,
html.fc .eventi-event-card.is-turno {
  --ev-bg-tint: var(--tema-riquadro);
  --ev-bg-tint-50: color-mix(in srgb, var(--tema-riquadro) 50%, transparent);
  --ev-bg-tint-85: color-mix(in srgb, var(--tema-riquadro) 85%, transparent);
  --ev-text-dark: var(--tema-testo);
  --ev-text-muted: var(--tema-testo-muto);
}

html.fc .eventi-event-card.is-turno {
  --ev-accent: var(--tema-verde-testo);
}

html.fc .eventi-event-card.is-turno .ev-card-photo-wrap {
  background: radial-gradient(circle at 50% 36%, var(--tema-alone) 0%, var(--tema-riquadro) 65%);
}

/* Badge del turno ("Tra 10 giorni"): testo color pagina su verde forte. Col bianco sull'accento del turno
   nel tema scuro (menta chiaro) il contrasto era 1,6:1; in chiaro 5,6:1, che scende a 4,1:1 sul telefono,
   dove il riquadro non centrato è velato al 90%. Così: 7,7:1 in chiaro, 13,5:1 in scuro. */
html.fc .eventi-event-card.is-turno .ev-card-badge {
  background: var(--tema-verde-forte);
  color: var(--tema-pagina);
}

/* Dove siamo: fondo inchiostro profondo sotto la mappa, pulsanti "vetro" sobri */
html.fc #dove-siamo-card {
  background: var(--fc-verde-950);
}

html.fc .mapsButton {
  border-radius: 12px;
  border: 1px solid rgba(252, 250, 244, 0.22);
  background: rgba(252, 250, 244, 0.16);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: none;
}

html.fc .mapsButton:hover {
  background: rgba(252, 250, 244, 0.26);
}

html.fc .map-location-line {
  font-family: var(--fc-font-text);
}

/* Chi siamo: riquadro carta con titolo verde, come nel design system */
html.fc #chi-siamo-card {
  background: var(--tema-pannello);
  background-image: none;
}

html.fc #chi-siamo-card .titolo-card {
  color: var(--tema-verde-forte);
}

html.fc #sfondo-chi-siamo-card {
  opacity: 0;
}

html.fc #descrizione-chi-siamo-card {
  color: var(--tema-testo-2);
  font-family: var(--fc-font-text);
}

/* Contatti: verde 900 con pulsanti vetro */
html.fc #contatti-card {
  background: var(--fc-gradient-deep);
}

html.fc .contatti-quick-btn {
  border-radius: 14px;
  border: 1px solid rgba(252, 250, 244, 0.2);
  background: rgba(252, 250, 244, 0.12);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: none;
  font-family: var(--fc-font-display);
  font-weight: 800;
}

html.fc .contatti-quick-btn:hover,
html.fc .contatti-quick-btn:focus-visible {
  background: rgba(252, 250, 244, 0.22);
  border-color: rgba(252, 250, 244, 0.34);
}

/* Domande frequenti in fondo alla home */
html.fc .fc-faq-section {
  max-width: 912px !important;
  margin: 12px auto 20px !important;
  padding: 24px 26px !important;
  border: 1px solid var(--tema-bordo) !important;
  border-radius: 24px !important;
  background: var(--tema-superficie) !important;
}

html.fc .fc-faq-section h2 {
  font-family: var(--fc-font-display);
  font-weight: 900;
  color: var(--tema-testo) !important;
}

html.fc .fc-faq-section details {
  border: 1px solid var(--tema-bordo) !important;
  border-radius: 16px !important;
  background: var(--tema-pagina) !important;
}

html.fc .fc-faq-section summary {
  font-family: var(--fc-font-display);
  font-weight: 800 !important;
  color: var(--tema-testo) !important;
}

html.fc .fc-faq-section p {
  color: var(--tema-testo-2) !important;
}

/* =============================================================================
   SERVIZI
   ============================================================================= */
html.fc .card-servizi {
  border: 0;
  border-radius: 24px;
  box-shadow: var(--shadow-tile-rest);
}

html.fc .card-servizi::before,
html.fc .card-servizi::after {
  display: none;
}

html.fc .card-servizi:hover,
html.fc .card-servizi:focus-within,
html.fc .card-servizi.is-active-card {
  box-shadow: var(--tema-ombra-su);
}

html.fc .sezione-servizi .titolo-card {
  font-size: 1.5rem;
  line-height: 1.12;
  letter-spacing: -0.005em;
  text-transform: none;
  text-shadow: none;
}

html.fc .descrizione-card {
  color: #ffffff;
  font-family: var(--fc-font-text);
  text-shadow: none;
}

/* Un colore per servizio (testo bianco leggibile in ogni punto della sfumatura) */
html.fc #ricette { background: linear-gradient(135deg, var(--fc-viola-light), var(--fc-viola-base)); }
html.fc #holter { background: linear-gradient(135deg, var(--fc-arancio-light), var(--fc-arancio-base)); }
html.fc #pressione { background: linear-gradient(135deg, var(--fc-lampone-light), var(--fc-lampone-base)); }
html.fc #autoanalisi { background: linear-gradient(135deg, var(--fc-indaco-light), var(--fc-indaco-base)); }
html.fc #cup { background: linear-gradient(135deg, var(--fc-azzurro-light), var(--fc-azzurro-base)); }
html.fc #alimenti { background: linear-gradient(135deg, var(--fc-ambra-light), var(--fc-ambra-base)); }
html.fc #ecg { background: linear-gradient(135deg, var(--fc-prato-light), var(--fc-prato-base)); }
html.fc #tiralatte { background: linear-gradient(135deg, var(--fc-rosa-light), var(--fc-rosa-base)); }

/* Schede di dettaglio */
html.fc .sezione-servizio {
  border: 1px solid var(--tema-bordo);
  border-radius: 24px;
  background: var(--tema-superficie);
  box-shadow: var(--tema-ombra);
}

html.fc .sezione-servizio h1 {
  font-family: var(--fc-font-display);
  font-weight: 900;
  color: var(--tema-testo);
  letter-spacing: -0.01em;
}

html.fc .testo-servizio {
  color: var(--tema-testo-2);
}

html.fc .back-link {
  color: var(--tema-verde-testo);
  font-family: var(--fc-font-display);
  font-weight: 800;
}

html.fc .back-link:hover {
  color: var(--tema-verde-forte);
}

html.fc .servizio-choice-card,
html.fc .servizio-choice-card:nth-child(2) {
  border: 0;
  border-radius: 24px;
  background: linear-gradient(135deg, var(--fc-arancio-light), var(--fc-arancio-base));
  box-shadow: var(--shadow-tile-rest);
}

html.fc .servizio-choice-card:hover {
  box-shadow: var(--tema-ombra-su);
}

html.fc .servizio-choice-title,
html.fc .faq-title {
  font-family: var(--fc-font-display);
  font-weight: 900;
  text-transform: none;
  letter-spacing: -0.005em;
}

html.fc .cta-btn-ricetta {
  border-radius: 999px;
  font-family: var(--fc-font-display);
  font-weight: 800;
}

html.fc .cta-btn-ricetta-whatsapp,
html.fc .cta-btn-ricetta-email {
  background: var(--fc-verde-700);
  box-shadow: none;
}

html.fc .cta-btn-ricetta:hover {
  background: var(--fc-verde-800);
  box-shadow: none;
}

/* =============================================================================
   TURNI E CALENDARIO
   ============================================================================= */
:root.fc {
  --today-main-bg: var(--fc-verde-900);
  --today-main-color: var(--fc-carta-50);
  --today-main-inverse: var(--fc-verde-950);
  --turni-tag-bg: var(--tema-chip);
  --turni-tag-fill: var(--tema-chip);
  --turni-tag-ink: var(--fc-carta-50);
  --turni-tag-action-ink: var(--tema-chip);
  --turni-label-tone: var(--tema-testo-muto);
  --turni-tag-border: transparent;
  --turni-tag-text: var(--fc-carta-50);
  --turni-tag-ciacco-bg: var(--fc-verde-700);
  --turni-tag-ciacco-border: transparent;
  --turni-detail-sub-bg: var(--tema-riquadro);
  --turni-calendar-panel-bg: var(--tema-superficie);
  --turni-calendar-toolbar-bg: var(--tema-riquadro);
  --turni-calendar-head-color: var(--tema-testo);
  --turni-calendar-nav-bg: var(--tema-superficie);
  --turni-calendar-nav-hover-bg: var(--tema-hover-carta);
  --turni-calendar-day-bg: var(--tema-superficie);
  --turni-calendar-day-border: var(--tema-bordo);
  --turni-calendar-day-text: var(--tema-testo);
  --turni-calendar-day-event-bg: var(--tema-riquadro);
  --turni-calendar-day-ciacco-bg: var(--tema-fondo-turno);
  --turni-calendar-day-ciacco-border: var(--tema-bordo-turno);
  --turni-calendar-day-ciacco-text: var(--tema-verde-forte);
  --turni-calendar-day-selected-bg: var(--fc-verde-700);
  --turni-calendar-day-selected-border: var(--fc-verde-700);
  --turni-calendar-day-past-bg: var(--tema-pagina);
  --turni-calendar-day-past-border: var(--tema-bordo);
  --turni-calendar-day-past-text: var(--fc-inchiostro-500);
}

html.fc .turni-hero h1 {
  font-family: var(--fc-font-display);
  font-weight: 900;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--tema-testo);
}

html.fc .turni-panel,
html.fc .turni-today {
  border-radius: 24px;
  background: var(--tema-superficie);
  box-shadow: var(--tema-ombra);
}

html.fc .turni-info-card-main {
  border-radius: 16px;
}

html.fc .turni-status-live {
  border: 0;
  background: #ffffff;
  color: var(--fc-inchiostro-900);
  font-family: var(--fc-font-display);
  font-weight: 800;
}

html.fc .turni-action-btn {
  border: 0;
  background: var(--fc-carta-50);
  color: var(--fc-verde-900);
  font-family: var(--fc-font-display);
  font-weight: 800;
}

html.fc .turni-action-btn-secondary {
  border: 1.5px solid rgba(252, 250, 244, 0.7);
  background: transparent;
  color: var(--fc-carta-50);
}

/* hover: il pieno si schiarisce appena, il contorno prende un velo chiaro; il testo resta leggibile */
html.fc .turni-action-btn:hover,
html.fc .turni-action-btn:focus-visible {
  transform: none;
  background: #ffffff;
  color: var(--fc-verde-900);
  box-shadow: none;
}

html.fc .turni-action-btn-secondary:hover,
html.fc .turni-action-btn-secondary:focus-visible {
  background: rgba(252, 250, 244, 0.14);
  border-color: var(--fc-carta-50);
  color: var(--fc-carta-50);
}

html.fc .turni-info-label,
html.fc .turni-section h3,
html.fc .turni-detail .turni-section h3,
html.fc .turni-item-row-label,
html.fc .turni-weekday {
  font-family: var(--fc-font-display);
  font-weight: 900;
  letter-spacing: var(--fc-tracking-label);
}

html.fc .turni-month-label {
  font-family: var(--fc-font-display);
  font-weight: 900;
}

html.fc .turni-today-jump {
  white-space: nowrap;
  border: 1px solid var(--tema-bordo-accento);
  border-radius: 999px;
  background: var(--tema-superficie);
  color: var(--tema-verde-forte);
  font-family: var(--fc-font-display);
  font-weight: 900;
  box-shadow: none;
}

html.fc .turni-today-jump:hover {
  background: var(--tema-tinta);
}

html.fc .turni-day {
  font-family: var(--fc-font-display);
  font-variant-numeric: tabular-nums;
}

html.fc .turni-pill {
  font-family: var(--fc-font-display);
}

/* il chip chiuso eredita il colore dal <details>, che il tema scuro dei fogli del sito schiarisce:
   testo scuro su chip scuro. Fondo e testo vengono solo dai ruoli del chip. */
html.fc details.turni-tag {
  border-color: transparent;
  background: transparent;
  color: var(--turni-tag-ink);
}

/* tag in più nei selettori: lo stile della pagina calendario arriva dopo questo foglio */
html.fc .turni-day .cal-dot-evento,
html.fc .cal-legend i.l-evento {
  background: var(--tema-evento);
}

html.fc .cal-legend i.l-turno {
  background: var(--tema-fondo-turno);
  border-color: var(--tema-bordo-turno);
}

/* giorni di turno: stesso segno in chiaro e in scuro, anche quando sono già passati (solo più spenti) */
html.fc .turni-calendar .turni-day.ciacco-turn {
  background: var(--turni-calendar-day-ciacco-bg);
  border-color: var(--turni-calendar-day-ciacco-border);
  color: var(--turni-calendar-day-ciacco-text);
}

html.fc .turni-calendar .turni-day.ciacco-turn.is-past {
  opacity: 0.62;
}

html.fc .turni-calendar .turni-day.ciacco-turn.is-selected {
  background: var(--turni-calendar-day-selected-bg);
  border-color: var(--turni-calendar-day-selected-border);
  color: var(--turni-calendar-day-selected-text);
  opacity: 1;
}

html.fc .cal-detail-note {
  color: var(--tema-verde-testo);
}

/* =============================================================================
   CHI SIAMO
   ============================================================================= */
html.fc .sezione-chi-siamo {
  border-radius: 24px;
  background: var(--tema-superficie);
  box-shadow: var(--tema-ombra);
}

html.fc .chi-panel {
  border: 1px solid var(--tema-bordo);
  border-radius: 16px;
  background: var(--tema-superficie);
  box-shadow: none;
}

html.fc .chi-panel:hover {
  box-shadow: var(--tema-ombra);
}

html.fc .chi-panel-reviews,
html.fc .chi-panel-reviews:hover {
  border: 0;
  box-shadow: none;
}

html.fc .chi-panel-title {
  font-family: var(--fc-font-display);
  font-weight: 900;
  font-size: 1.4rem;
  letter-spacing: -0.005em;
  text-transform: none;
  color: var(--tema-testo);
}

html.fc .chi-review-card {
  border: 1px solid var(--tema-bordo);
  border-radius: 16px;
  background: var(--tema-superficie);
  box-shadow: var(--tema-ombra);
}

html.fc .chi-review-source {
  font-family: var(--fc-font-display);
  font-weight: 900;
  letter-spacing: var(--fc-tracking-label);
  color: var(--tema-verde-testo);
}

html.fc .chi-review-cta,
html.fc .chi-brands-toggle {
  border: 1px solid var(--tema-bordo-accento);
  border-radius: 999px !important;
  background: var(--tema-superficie);
  color: var(--tema-verde-forte);
  font-family: var(--fc-font-display);
  font-weight: 800;
  box-shadow: none;
}

html.fc .chi-review-cta:hover,
html.fc .chi-review-cta:focus-visible,
html.fc .chi-brands-toggle:hover,
html.fc .chi-brands-toggle:focus-visible {
  border-radius: 999px !important;
  background: var(--tema-tinta);
  box-shadow: none;
}

html.fc .chi-brand-item {
  border: 1px solid var(--tema-bordo);
  border-radius: 16px;
  background: var(--tema-tessera-logo);
  box-shadow: none;
}

html.fc .chi-brand-item:hover,
html.fc .chi-brand-item:focus-visible {
  background: var(--tema-tessera-logo-hover);
  box-shadow: var(--tema-ombra);
}

/* =============================================================================
   CONTATTI
   ============================================================================= */
html.fc .metodo-quad,
html.fc .contact-card,
html.fc .intro-box {
  border: 1px solid var(--tema-bordo);
  border-radius: 16px;
  background: var(--tema-superficie);
  box-shadow: none;
}

html.fc .intro-box {
  border-radius: 24px;
}

html.fc .metodo-quad:hover,
html.fc .contact-card:hover {
  background: var(--tema-superficie);
  border-color: var(--tema-bordo-accento);
  box-shadow: var(--tema-ombra) !important;
}

html.fc .metodo-icon {
  border: 1px solid var(--tema-tinta-2);
  border-radius: 12px;
  background: var(--tema-tinta);
}

html.fc .metodo-quad:hover .metodo-icon {
  background: var(--tema-tinta-2);
}

html.fc .metodo-cta,
html.fc .contact-card-cta {
  color: var(--tema-verde-testo);
  font-family: var(--fc-font-display);
  font-weight: 900;
  letter-spacing: var(--fc-tracking-label);
}

html.fc .fc-prodsearch-input {
  border: 1.5px solid var(--tema-bordo-forte);
  background: var(--tema-superficie);
  color: var(--tema-testo);
  border-radius: 16px;
  box-shadow: none;
  font-family: var(--fc-font-text);
}

html.fc .fc-prodsearch-badge--green {
  background: var(--tema-tinta);
  color: var(--tema-verde-testo);
}

html.fc .fc-prodsearch-input:focus-visible {
  border-color: var(--fc-verde-500);
  box-shadow: 0 0 0 4px rgba(35, 181, 159, 0.16);
}

/* =============================================================================
   PRIVACY
   ============================================================================= */
html.fc .privacy-panel {
  border: 1px solid var(--tema-bordo);
  border-radius: 24px;
  background: var(--tema-superficie);
  box-shadow: none;
}

html.fc .privacy-panel-cookie {
  background: var(--tema-pannello);
  border-color: var(--tema-bordo);
}

html.fc .privacy-lang-switch {
  border: 1px solid var(--tema-bordo);
  border-radius: 16px;
  background: var(--tema-riquadro);
}

html.fc .privacy-lang-switch-label {
  color: var(--tema-verde-testo);
  font-family: var(--fc-font-display);
  font-weight: 800;
}

html.fc .privacy-lang-switch a {
  border-radius: 999px;
  color: var(--tema-testo-2);
}

html.fc .privacy-lang-switch a:hover,
html.fc .privacy-lang-switch a:focus-visible {
  background: var(--tema-hover-carta);
}

html.fc .privacy-lang-switch a[aria-current="page"] {
  background: var(--fc-verde-700);
  color: var(--fc-carta-50);
}

/* =============================================================================
   BANNER COOKIE E NOTIFICHE
   ============================================================================= */
html.fc .fc-consent-banner,
html.fc .fc-consent-modal {
  font-family: var(--fc-font-text);
  border-radius: 24px;
}

html.fc .fc-consent-title,
html.fc .fc-consent-modal-title {
  font-family: var(--fc-font-display);
  font-weight: 900;
  color: var(--tema-testo);
}

html.fc .fc-consent-btn {
  border-radius: 999px;
  font-family: var(--fc-font-display);
  font-weight: 800;
}

html.fc .fc-consent-links a {
  color: var(--tema-verde-forte);
}

html.fc #fc-push-container .fc-push-toggle,
html.fc .fc-push-panel {
  font-family: var(--fc-font-display);
}

html.fc .fc-push-panel {
  border-color: var(--tema-bordo);
  background: var(--tema-superficie);
  color: var(--tema-testo);
}

html.fc .fc-push-msg,
html.fc .fc-push-switch-row {
  color: var(--tema-testo-2);
}

html.fc .fc-push-msg strong {
  color: var(--tema-verde-testo);
}

/* =============================================================================
   SEGNALINO DAVANTI AI TITOLI DI SEZIONE
   Il pezzo della croce del logo disegnato come una lettera di Nunito 900: asta larga quanto la I
   (0.184 em), alto quanto le maiuscole (0.705 em) con la base sulla linea di base, staccato di una I.
   Un peso solo: i titoli con il Segnalino sono in Nunito 900. Se un titolo ha un altro peso, o è
   sbagliato il peso o è sbagliato il Segnalino (per questo non c'è sul titolo in maiuscolo della privacy).
   Rientro sporgente: le righe a capo restano allineate al testo.
   Stessa geometria di CornerMark inline nel design system (segnalino.ts).
   ============================================================================= */
html.fc .turni-hero h1,
html.fc .turni-subtitle,
html.fc .chi-panel-title,
html.fc .sezione-contatti h1,
html.fc .sezione-servizio h1 {
  font-weight: 900;
  padding-left: 0.889em;
  text-indent: -0.889em;
}

html.fc .turni-hero h1::before,
html.fc .turni-subtitle::before,
html.fc .chi-panel-title::before,
html.fc .sezione-contatti h1::before,
html.fc .sezione-servizio h1::before {
  content: "";
  display: inline-block;
  width: 0.705em;
  height: 0.705em;
  margin-right: 0.184em;
  text-indent: 0;
  vertical-align: baseline;
  background-color: var(--fc-verde-500);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000'%3E%3Cpath d='M804.3 0H934.8A65.2 65.2 0 0 1 1000 65.2V934.8A65.2 65.2 0 0 1 934.8 1000H65.2A65.2 65.2 0 0 1 0 934.8V804.3A65.2 65.2 0 0 1 65.2 739H699.1A39.9 39.9 0 0 0 739 699.1V65.2A65.2 65.2 0 0 1 804.3 0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000'%3E%3Cpath d='M804.3 0H934.8A65.2 65.2 0 0 1 1000 65.2V934.8A65.2 65.2 0 0 1 934.8 1000H65.2A65.2 65.2 0 0 1 0 934.8V804.3A65.2 65.2 0 0 1 65.2 739H699.1A39.9 39.9 0 0 0 739 699.1V65.2A65.2 65.2 0 0 1 804.3 0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* Arabo (da destra a sinistra): il Segnalino sta a destra del titolo, girato verso il testo */
html.fc[dir="rtl"] .turni-hero h1,
html.fc[dir="rtl"] .turni-subtitle,
html.fc[dir="rtl"] .chi-panel-title,
html.fc[dir="rtl"] .sezione-contatti h1,
html.fc[dir="rtl"] .sezione-servizio h1 {
  padding-left: 0;
  padding-right: 0.889em;
}

html.fc[dir="rtl"] .turni-hero h1::before,
html.fc[dir="rtl"] .turni-subtitle::before,
html.fc[dir="rtl"] .chi-panel-title::before,
html.fc[dir="rtl"] .sezione-contatti h1::before,
html.fc[dir="rtl"] .sezione-servizio h1::before {
  margin-right: 0;
  margin-left: 0.184em;
  transform: scaleX(-1);
}
