/* ==========================================================================
   FucinAI — foglio di stile del sito
   Token ripresi dal design (Claude Design) e dal brand manual:
   ink #12202F · teal #0F8F8F · teal scuro #0A6D6D · teal chiaro #4EC7C7
   ========================================================================== */

:root {
  --ink: #12202f;
  --testo: #42566b;
  --teal: #0f8f8f;
  --teal-scuro: #0a6d6d;
  --teal-chiaro: #4ec7c7;
  --bordo: #dce3ea;
  --muto: #8496a8;
  --muto-scuro: #6b7f93;
  --fondo-tenue: #f5f8fb;
  --fondo-card: #f9fbfd;
  --su-ink: #cfe0ef;
  --whatsapp: #25a366;
  --ambra: #b45309;
  --rosso: #9b2c2c;
  --wrap: 940px;
  --wrap-stretto: 720px;
  --wrap-adv: 780px;
  --raggio: 10px;
  --titolo: Archivo, "Archivo Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --corpo: "Source Sans 3", "Source Sans 3 Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body {
  margin: 0;
  background: #fff;
  color: var(--testo);
  font: 17px/1.65 var(--corpo);
  -webkit-font-smoothing: antialiased;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

a { color: var(--teal-scuro); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: var(--teal); }
img { max-width: 100%; }
input, select, button, textarea { font-family: inherit; }

:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 2px;
  border-radius: 4px;
}

.salta-al-contenuto {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--ink);
  color: #fff;
  padding: 12px 20px;
  border-radius: 0 0 var(--raggio) 0;
  text-decoration: none;
  font-weight: 700;
}
.salta-al-contenuto:focus { left: 0; color: #fff; }

/* --- impalcatura ---------------------------------------------------------- */

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 22px; }
.wrap-stretto { max-width: var(--wrap-stretto); margin: 0 auto; padding: 0 22px; }
.wrap-adv { max-width: var(--wrap-adv); margin: 0 auto; padding: 0 22px; }

main { flex: 1; }

.sezione { padding: 64px 0; }
.sezione-hero { padding: 72px 0 56px; background: linear-gradient(180deg, #f7fafc, #fff); }
.sezione-pagina { padding: 56px 0 64px; }
.sezione-tenue { background: var(--fondo-tenue); border-top: 1px solid var(--bordo); border-bottom: 1px solid var(--bordo); }
.sezione-ink { background: var(--ink); color: var(--su-ink); }
.sezione-ink h2, .sezione-ink h3 { color: #fff; }

/* --- barra di servizio e header ------------------------------------------ */

.barra-servizio { background: var(--ink); color: #fff; font-size: .95rem; }
.barra-servizio .wrap {
  padding: 10px 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}
.barra-servizio span { opacity: .75; }
.barra-servizio a { color: #fff; text-decoration: none; font-weight: 600; }
.barra-servizio a:hover { color: var(--teal-chiaro); text-decoration: underline; }
.barra-servizio .spinta { margin-left: auto; }

.testata {
  border-bottom: 1px solid var(--bordo);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 20;
}
.testata .wrap {
  padding: 14px 22px;
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
}
.marchio { display: flex; align-items: center; gap: 14px; text-decoration: none; flex-shrink: 0; }
.marchio img { height: 58px; width: auto; display: block; }
.menu {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-left: auto;
  font-size: .95rem;
  font-weight: 600;
}
.menu a { color: var(--testo); text-decoration: none; }
.menu a:hover { color: var(--teal); }
.menu a[aria-current="page"] { color: var(--teal-scuro); text-decoration: underline; text-underline-offset: 6px; }

@media (max-width: 700px) {
  .marchio img { height: 46px; }
  .menu { gap: 14px; font-size: .9rem; width: 100%; margin-left: 0; }
  .testata .wrap { gap: 12px; }
}

/* --- tipografia ----------------------------------------------------------- */

.occhiello {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .78rem;
  font-weight: 800;
  color: var(--teal-scuro);
  margin: 0 0 14px;
}
.sezione-ink .occhiello { color: var(--teal-chiaro); }

h1, h2, h3 { font-family: var(--titolo); color: var(--ink); }

h1 {
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.1;
  font-size: clamp(2rem, 5vw, 3.1rem);
  margin: 0 0 .5em;
}
h1.h1-pagina { font-size: clamp(1.9rem, 4.4vw, 2.7rem); line-height: 1.12; }

h2 {
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.2;
  font-size: clamp(1.45rem, 3.2vw, 2.1rem);
  margin: 0 0 .5em;
}
h2.h2-interno { font-size: 1.7rem; margin: 48px 0 .5em; }
h2.h2-articolo { font-size: 1.35rem; margin: 38px 0 .4em; }
h2.h2-legale { font-size: 1.25rem; margin: 32px 0 .4em; }

h3 { font-size: 1.1rem; font-weight: 700; margin: 0 0 .5em; }

.guida { max-width: 18ch; }
.guida-24 { max-width: 24ch; }
.guida-26 { max-width: 26ch; }
.guida-22 { max-width: 22ch; }

.occhio { font-size: 1.18rem; max-width: 60ch; margin: 0 0 1rem; }
.occhio-largo { max-width: 62ch; }
.piccolo { font-size: .97rem; }
.minuto { font-size: .92rem; opacity: .85; }
.meta { font-size: .9rem; color: var(--muto); }

/* --- bottoni -------------------------------------------------------------- */

.btn {
  display: inline-block;
  padding: 15px 26px;
  border-radius: var(--raggio);
  font-weight: 700;
  text-decoration: none;
  font-size: 1.02rem;
  border: 1px solid transparent;
  cursor: pointer;
  text-align: center;
}
.btn-wa { background: var(--whatsapp); color: #fff; }
.btn-wa:hover { background: #1e8b55; color: #fff; }
.btn-teal { background: var(--teal); color: #fff; }
.btn-teal:hover { background: var(--teal-scuro); color: #fff; }
.btn-chiaro { border-color: var(--bordo); background: #fff; color: var(--ink); }
.btn-chiaro:hover { border-color: var(--teal); color: var(--ink); }
.btn-fantasma { background: transparent; border-color: rgba(255, 255, 255, .35); color: #fff; }
.btn-fantasma:hover { border-color: #fff; color: #fff; }
.btn-piccolo { padding: 12px 22px; font-size: .98rem; }

.bottoniera { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 0; }
.bottoniera-centro { justify-content: center; }

/* --- griglie e schede ----------------------------------------------------- */

.griglia { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: 30px; }
.griglia-larga { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 34px; margin-top: 0; }
.griglia-media { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 22px; }

.scheda { background: #fff; border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 24px; }
.scheda-fitta { border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 22px; }
.scheda p { margin: 0; }
.scheda h3 { margin: 0 0 .5em; }

.numero-famiglia { font-family: var(--titolo); font-weight: 800; color: var(--teal); font-size: .85rem; }
.scheda-fitta h3 { font-size: 1.08rem; margin: .3em 0 .4em; }

.riquadro { margin-top: 48px; padding: 28px; border: 1px solid var(--bordo); border-radius: var(--raggio); }
.riquadro-tenue { background: var(--fondo-tenue); }
.riquadro h3 { margin: 0 0 .5em; font-size: 1.15rem; }
.riquadro p { margin: 0; }

.nota-teal {
  background: var(--fondo-tenue);
  border-left: 3px solid var(--teal);
  border-radius: 0 var(--raggio) var(--raggio) 0;
  padding: 20px 22px;
}

blockquote.citazione {
  margin: 34px 0;
  padding: 24px 26px;
  background: var(--fondo-tenue);
  border-left: 3px solid var(--teal);
  border-radius: 0 var(--raggio) var(--raggio) 0;
  font-size: 1.12rem;
  color: var(--ink);
}

.reparto { border-left: 3px solid var(--teal); padding-left: 18px; margin-bottom: 18px; }
.reparto:last-child { margin-bottom: 0; }
.reparto h3 { font-size: 1.1rem; margin: 0 0 .2rem; }
.reparto p { margin: 0; font-size: .97rem; }

/* --- numeri in evidenza --------------------------------------------------- */

.numeri {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin-top: 38px;
  padding-top: 24px;
  border-top: 1px solid var(--bordo);
}
.numeri div { font-size: .94rem; }
.numeri b {
  display: block;
  color: var(--ink);
  font-size: 1.45rem;
  font-family: var(--titolo);
}

/* --- elenchi -------------------------------------------------------------- */

.spunte { list-style: none; padding: 0; margin: 0; }
.spunte li { padding: 9px 0 9px 30px; position: relative; }
.spunte li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--teal);
  font-weight: 800;
}

/* --- tabelle -------------------------------------------------------------- */

.tabella-wrap { overflow-x: auto; }
table.tabella {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  font-size: .97rem;
}
table.tabella th, table.tabella td {
  text-align: left;
  padding: 13px 12px;
  border-bottom: 1px solid var(--bordo);
  vertical-align: top;
}
table.tabella th {
  color: var(--ink);
  font-weight: 700;
  font-family: var(--titolo);
}
table.tabella td.ora {
  white-space: nowrap;
  color: var(--teal-scuro);
  font-weight: 700;
  width: 86px;
}
table.tabella td b { color: var(--ink); }
table.tabella td.caso { color: var(--ink); font-weight: 600; }
table.tabella td.diff { font-weight: 700; white-space: nowrap; }
table.tabella td.nota { font-size: .94rem; }
.diff-basso { color: var(--teal-scuro); font-weight: 700; }
.diff-medio { color: var(--ambra); font-weight: 700; }
.diff-alto { color: var(--rosso); font-weight: 700; }

/* --- prezzi --------------------------------------------------------------- */

.prezzo-grande {
  font-family: var(--titolo);
  font-size: 3.4rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  margin: 0 0 1rem;
}
.griglia-listino { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: 36px; }
.voce-listino { border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 26px; }
.voce-listino.in-evidenza { border: 2px solid var(--teal); position: relative; }
.voce-listino h3 { font-size: 1.05rem; margin: 0 0 .3em; }
.voce-listino .cifra {
  font-family: var(--titolo);
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--ink);
  line-height: 1;
  margin: 0 0 .5rem;
}
.voce-listino p { margin: 0; font-size: .97rem; }
.etichetta-oggi {
  position: absolute;
  top: -11px;
  left: 22px;
  background: var(--teal);
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 20px;
  font-family: var(--titolo);
}

/* --- domande frequenti ---------------------------------------------------- */

details.faq {
  border: 1px solid var(--bordo);
  border-radius: var(--raggio);
  padding: 16px 20px;
  margin-bottom: 10px;
  background: #fff;
}
details.faq summary {
  font-weight: 700;
  color: var(--ink);
  cursor: pointer;
  font-family: var(--titolo);
  list-style: none;
}
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary::after { content: " +"; color: var(--teal); font-weight: 800; }
details.faq[open] summary::after { content: " −"; }
details.faq p { margin: 12px 0 0; }

/* --- guide ---------------------------------------------------------------- */

.blocco-guida { margin-top: 40px; border: 1px solid var(--bordo); border-radius: var(--raggio); overflow: hidden; }
.blocco-guida .testa { padding: 30px; border-bottom: 1px solid var(--bordo); background: var(--fondo-tenue); }
.blocco-guida .corpo { padding: 8px 30px 22px; }
.tag-pubblicata {
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--teal-scuro);
}
.blocco-guida .testa h2 { font-size: 1.6rem; margin: .4em 0 .4em; }
.riga-in-arrivo {
  display: flex;
  gap: 16px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid var(--bordo);
}
.tag-in-arrivo {
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muto);
  white-space: nowrap;
  font-family: var(--titolo);
}
.titolo-in-arrivo { color: var(--ink); font-weight: 600; }

/* --- piè di pagina -------------------------------------------------------- */

.piede {
  border-top: 1px solid var(--bordo);
  padding: 34px 0;
  font-size: .9rem;
  background: #fff;
}
.piede .wrap { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.piede-identita { min-width: 240px; }
.piede-identita img { height: 52px; width: auto; display: block; margin: 0 0 4px -6px; }
.piede-identita p { margin: 12px 0 0; }
.piede-colonne { display: flex; gap: 40px; flex-wrap: wrap; margin-left: auto; }
.piede-colonne div { display: flex; flex-direction: column; gap: 8px; }
.piede-colonne a { color: var(--testo); text-decoration: none; }
.piede-colonne a:hover { color: var(--teal); text-decoration: underline; }
.piede-colonne .minori a { color: var(--muto); }
.piede-nota {
  border-top: 1px solid var(--bordo);
  margin-top: 26px;
  padding-top: 18px;
  font-size: .85rem;
  color: var(--muto);
}
.btn-gestisci-cookie {
  background: none;
  border: none;
  padding: 0;
  color: var(--teal-scuro);
  font-weight: 600;
  font-size: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* --- configuratore -------------------------------------------------------- */

.configuratore {
  background: #fff;
  border-radius: 12px;
  padding: 30px;
  color: var(--testo);
  font: 17px/1.6 var(--corpo);
}
@media (max-width: 560px) { .configuratore { padding: 20px; } }

.cfg-avanzamento { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.cfg-barra { flex: 1; height: 5px; background: #eef3f7; border-radius: 3px; overflow: hidden; }
.cfg-barra > div { height: 100%; background: var(--teal); border-radius: 3px; transition: width .25s; }
.cfg-passo {
  font-size: .82rem;
  font-weight: 700;
  color: var(--muto);
  white-space: nowrap;
  font-family: var(--titolo);
}

.cfg-domanda h3 {
  font-family: var(--titolo);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 6px;
  letter-spacing: -.02em;
}
.cfg-domanda > p { margin: 0 0 20px; font-size: .97rem; color: var(--muto-scuro); }

.cfg-opzione {
  display: flex;
  width: 100%;
  text-align: left;
  align-items: center;
  gap: 12px;
  padding: 15px 18px;
  margin-bottom: 9px;
  border-radius: var(--raggio);
  cursor: pointer;
  font-size: 1.02rem;
  font-weight: 600;
  background: #fff;
  border: 1.5px solid var(--bordo);
  color: var(--ink);
  transition: border-color .12s, background .12s;
}
.cfg-opzione:hover { border-color: var(--teal); }
.cfg-opzione[aria-pressed="true"], .cfg-opzione.scelta {
  background: #eef8f8;
  border-color: var(--teal);
}
.cfg-segno {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  flex-shrink: 0;
  border: 1.5px solid var(--bordo);
  background: #fff;
}
.cfg-opzione[aria-pressed="true"] .cfg-segno, .cfg-opzione.scelta .cfg-segno {
  border-color: var(--teal);
  background: var(--teal);
}

.cfg-cursore { padding: 8px 0 4px; }
.cfg-ore { font-family: var(--titolo); font-size: 2.6rem; font-weight: 800; color: var(--ink); line-height: 1; }
.cfg-cursore input[type="range"] { width: 100%; margin: 18px 0 4px; accent-color: var(--teal); }
.cfg-estremi { display: flex; justify-content: space-between; font-size: .85rem; color: var(--muto); }

.cfg-navigazione { display: flex; gap: 12px; align-items: center; margin-top: 22px; flex-wrap: wrap; }
.cfg-avanti {
  padding: 14px 26px;
  border-radius: var(--raggio);
  border: none;
  background: var(--teal);
  color: #fff;
  font-weight: 700;
  font-size: 1.02rem;
  cursor: pointer;
}
.cfg-avanti:hover { background: var(--teal-scuro); }
.cfg-indietro {
  padding: 14px 20px;
  border-radius: var(--raggio);
  border: 1px solid var(--bordo);
  background: #fff;
  color: var(--testo);
  font-weight: 600;
  cursor: pointer;
}
.cfg-indietro:hover { border-color: var(--teal); }

.cfg-esito { animation: fadeUp .3s ease both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.cfg-sintesi {
  display: flex;
  flex-wrap: wrap;
  gap: 26px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--bordo);
}
.cfg-sintesi > div { flex: 1; min-width: 210px; }
.cfg-etichetta {
  font-size: .85rem;
  font-weight: 700;
  color: var(--muto);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 6px;
}
.cfg-cifra { font-family: var(--titolo); font-size: 2.5rem; font-weight: 800; color: var(--ink); line-height: 1.05; }
.cfg-valore { font-family: var(--titolo); font-size: 1.25rem; font-weight: 700; color: var(--teal); margin-top: 4px; }
.cfg-postilla { font-size: .85rem; color: var(--muto); margin: 8px 0 0; }
.cfg-livello { font-family: var(--titolo); font-size: 1.35rem; font-weight: 800; color: var(--ink); line-height: 1.2; }
.cfg-tacche { display: flex; gap: 5px; margin: 12px 0 10px; }
.cfg-tacche div { height: 7px; flex: 1; border-radius: 4px; background: #e4ebf1; }
.cfg-tacche div.piena { background: var(--teal); }

.cfg-esito h3 { font-family: var(--titolo); font-size: 1.3rem; font-weight: 700; color: var(--ink); margin: 28px 0 6px; letter-spacing: -.02em; }
.cfg-introduzione-strumenti { font-size: .97rem; color: var(--muto-scuro); margin: 0 0 18px; }
.cfg-strumento {
  display: flex;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--bordo);
  border-radius: var(--raggio);
  margin-bottom: 10px;
  background: var(--fondo-card);
}
.cfg-strumento > span { font-family: var(--titolo); font-weight: 800; color: var(--teal); font-size: 1.1rem; flex-shrink: 0; }
.cfg-strumento strong { display: block; font-family: var(--titolo); font-weight: 700; color: var(--ink); font-size: 1.05rem; }
.cfg-strumento p { margin: 5px 0 0; font-size: .97rem; }

.cfg-obiezione { margin-top: 24px; }
.cfg-obiezione strong { display: block; font-family: var(--titolo); font-weight: 700; color: var(--ink); margin-bottom: 5px; }
.cfg-obiezione p { margin: 0; font-size: .99rem; }

.cfg-contatto { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--bordo); }
.cfg-contatto h3 { font-size: 1.2rem; margin: 0 0 6px; }
.cfg-contatto > p { font-size: .97rem; margin: 0 0 16px; }
.cfg-contatto input[type="text"] {
  flex: 1;
  min-width: 200px;
  padding: 14px 16px;
  border: 1.5px solid var(--bordo);
  border-radius: var(--raggio);
  font-size: 1rem;
  color: var(--ink);
}
.cfg-riga-nome { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.cfg-azioni { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.cfg-ricomincia {
  padding: 15px 20px;
  border-radius: var(--raggio);
  border: none;
  background: transparent;
  color: var(--muto-scuro);
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
}
.cfg-chiusura { font-size: .87rem; color: var(--muto); margin: 16px 0 0; }

.cfg-senza-js {
  border: 1px solid var(--bordo);
  border-radius: var(--raggio);
  padding: 20px 22px;
  background: var(--fondo-tenue);
}
.cfg-senza-js p:last-child { margin-bottom: 0; }

/* --- banner cookie -------------------------------------------------------- */

.cookie-banner {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 60;
  background: #fff;
  border-top: 2px solid var(--ink);
  box-shadow: 0 -6px 24px rgba(18, 32, 47, .12);
  padding: 22px 0;
}
.cookie-banner[hidden] { display: none; }
.cookie-banner .wrap { display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-start; }
.cookie-testo { flex: 1; min-width: 280px; font-size: .95rem; }
.cookie-testo h2 {
  font-size: 1.15rem;
  margin: 0 0 .35em;
  letter-spacing: -.01em;
  line-height: 1.3;
}
.cookie-testo p { margin: 0; }
.cookie-azioni { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cookie-azioni .btn { padding: 13px 22px; font-size: .98rem; }
.btn-rifiuta {
  background: #fff;
  border-color: var(--ink);
  color: var(--ink);
}
.btn-rifiuta:hover { background: var(--fondo-tenue); color: var(--ink); }
.btn-personalizza {
  background: none;
  border: none;
  color: var(--teal-scuro);
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: 13px 6px;
  font-size: .95rem;
}

.cookie-dettaglio {
  flex-basis: 100%;
  border-top: 1px solid var(--bordo);
  margin-top: 4px;
  padding-top: 18px;
}
.cookie-dettaglio[hidden] { display: none; }
.cookie-categoria {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 12px 0;
  border-bottom: 1px solid var(--bordo);
}
.cookie-categoria:last-of-type { border-bottom: none; }
.cookie-categoria input[type="checkbox"] { margin-top: 5px; width: 18px; height: 18px; accent-color: var(--teal); flex-shrink: 0; }
.cookie-categoria label { font-weight: 700; color: var(--ink); font-family: var(--titolo); cursor: pointer; }
.cookie-categoria p { margin: 3px 0 0; font-size: .92rem; }
.cookie-sempre-attivi { font-size: .82rem; color: var(--muto); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }

@media (max-width: 700px) {
  .cookie-banner { max-height: 80vh; overflow-y: auto; padding: 18px 0; }
  .cookie-banner .wrap { gap: 16px; }
  .cookie-testo { font-size: .9rem; }
  .cookie-testo h2 { font-size: 1.05rem; }
  .cookie-azioni { width: 100%; gap: 8px; }
  .cookie-azioni .btn, .cookie-azioni .btn-personalizza { width: 100%; }
  .cookie-azioni .btn { padding: 12px 18px; }
}

/* --- pagine legali -------------------------------------------------------- */

.legale h2 { margin-top: 32px; }
.legale table.tabella { font-size: .93rem; }
.legale table.tabella td:first-child { font-weight: 600; color: var(--ink); white-space: nowrap; }
.avviso-dati {
  border: 1px solid var(--ambra);
  background: #fffbf3;
  border-radius: var(--raggio);
  padding: 18px 22px;
  margin: 24px 0;
  font-size: .95rem;
}
.avviso-dati p { margin: 0; }

/* --- pagina 404 ----------------------------------------------------------- */

.errore { padding: 90px 0; text-align: center; }
.errore h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); }

/* --- utilità di accessibilità --------------------------------------------- */

.visivamente-nascosto {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
