/* ===========================================================================
   Landing evento — BULB Celebrate (la prima: Bergamo, sabato 24 ottobre 2026).
   Stile del design `bulb-celebrate-landing.html` (ora in .materiali/), con i
   valori del suo CSS: grigio #CACACA (dal 19/10 #F5F4F1, vedi sotto), nero #0D0C0F, rosso #C4032F, rosa
   #F58BA6; angoli vivi; titoli in maiuscolo Black con la parte sottile sotto;
   etichette spaziate fra parentesi quadre; bottoni squadrati.
   I caratteri restano quelli del nostro set tipografico: dove il design usa
   Space Mono qui c'è il ruolo --font-mono, dove usa Red Hat Display per i
   titoli --font-display, per il testo --font-sans.

   Questo file si carica solo sulle pagine con questo template, quindi veste
   anche testata, modulo WPForms e footer di queste pagine.

   Scostamenti voluti dal design, per le regole del sito:
   - testo rosso piccolo sul grigio #A80230 invece di #C4032F, che lì fa 3.8:1
     (--ce-rosso-testo); sul bianco il rosso pieno va bene (6.2:1);
   - segnaposto dei campi #757478 invece di #A3A3A6 (2.5:1 sul bianco);
   - etichette e microtesti a 12px invece di 9.5–11px;
   - la scritta accanto al marchio a 24px invece di 22 (sotto i 24px il rosso
     pieno sul grigio non basta);
   - la riga «pausa» del programma sbiadita all'80% invece del 50% (l'orario
     scendeva a 2.6:1), e «Scelgo questo» al 70% invece del 60%;
   - da telefono la testata ha solo marchio e bottone (richiesta dell'utente:
     nel design le voci vanno a capo su due righe).
   - dal 19/10 il grigio è #F5F4F1, il «bianco grigino» della hero del mockup della
     Professional Gallery (richiesta dell'utente: schiarirlo su tutte le pagine in
     questo stile); prima #CACACA, nel backup 2026-10-19-prima-del-grigio-chiaro.
     Come nel mockup, i riquadri bianchi sul grigio hanno un bordo rgba(0,0,0,.1):
     sul fondo chiaro senza bordo sparirebbero.
   =========================================================================== */

:root {
  --ce-rosso: #C4032F;
  --ce-rosso-testo: #A80230;
  --ce-rosa: #F58BA6;
  --ce-nero: #0D0C0F;
  --ce-grigio: #F5F4F1;
  --ce-grigio-medio: #9A9A9C;
  --ce-bianco: #FFFFFF;
  --ce-bordo-bianco: rgba(0,0,0,.1);
  --ce-linea: rgba(13,12,15,.14);
  --ce-linea-chiara: rgba(255,255,255,.14);

  --bg: var(--ce-grigio);
  --bg-alt: var(--ce-grigio);
  --bg-deep: var(--ce-nero);
  --surface: var(--ce-bianco);
  --ink: var(--ce-nero);
  --ink-soft: #2B2A2E;
  --ink-mute: #4A494D;
  --accent: var(--ce-rosso);
  --accent-dark: var(--ce-rosso-testo);
  --accent-hot: var(--ce-rosso);
  --border: var(--ce-linea);
  --border-soft: var(--ce-linea);
  --placeholder: #757478;
  --radius-s: 0;
  --radius-m: 0;
  --radius-l: 0;
  --container: 1320px;
}
/* Il layout tiene 40px di margine fino a 980px; sv-responsive.css lo porta a
   20px già sotto i 1200: html:root pesa di più. Su telefono 16px, come ovunque. */
html:root { --gutter: 40px; scroll-padding-top: 64px; }
@media (max-width: 980px) { html:root { --gutter: 22px; } }
@media (max-width: 640px) { html:root { --gutter: 16px; } }

body { background: var(--ce-grigio); color: var(--ce-nero); }
a:hover { text-decoration: none; }

/* --- Microtesti spaziati e parentesi quadre --------------------------------- */
.ce-mono {
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: var(--mono-tracking); text-transform: uppercase;
}
.ce-parentesi::before { content: "[ " / ""; }
.ce-parentesi::after { content: " ]" / ""; }
.eyebrow {
  font-size: 12px; letter-spacing: var(--mono-tracking);
  color: var(--ce-rosso-testo);
}
.eyebrow::before, .eyebrow::after { color: inherit; font-weight: inherit; letter-spacing: 0; }
.eyebrow::before { margin-right: .6em; }
.eyebrow::after { margin-left: .6em; }

/* --- Testata: grigio velato, marchio nero e FNCTNL rosso --------------------- */
.site-header {
  background: rgba(245,244,241,.94); /* --ce-grigio velato */
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--ce-linea);
}
/* L'altezza è --nav-h: la usa anche lo spazio della testata fissa da telefono. */
html:root { --nav-h: 64px; }
.nav { height: var(--nav-h); gap: 14px; justify-content: flex-start; }
.site-header .brand-logo { height: 26px; width: 26px; object-fit: contain; filter: brightness(0); }
.nav-claim {
  font-family: var(--font-display); font-size: 24px; font-weight: 400;
  letter-spacing: .01em; text-transform: none; color: var(--ce-rosso);
}
.nav-links { margin-left: auto; gap: 24px; }
.nav-links a {
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: var(--mono-tracking); color: var(--ce-nero);
}
.nav-links a:hover, .nav-links a.active { color: var(--ce-rosso-testo); }
.nav-links a.active::after { content: none; }
.nav-cta { margin-left: 10px; }

/* --- Bottoni: squadrati, maiuscolo spaziato --------------------------------- */
.btn {
  gap: 14px; border-radius: 0; padding: 20px 30px;
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 13px; letter-spacing: var(--mono-tracking); text-transform: uppercase;
  transition: background .2s, color .2s, transform .2s, border-color .2s;
}
.btn-primary { background: var(--ce-rosso); color: var(--ce-bianco); }
.btn-primary:hover { background: var(--ce-nero); color: var(--ce-bianco); transform: translateY(-2px); }
.btn-primary::after { content: none; }
.btn-linea { background: transparent; color: inherit; border: 1px solid currentColor; }
.btn-linea:hover { background: var(--ce-nero); color: var(--ce-bianco); border-color: var(--ce-nero); }
.btn-bianco { background: var(--ce-bianco); color: var(--ce-rosso); }
.btn-bianco:hover { background: var(--ce-nero); color: var(--ce-bianco); }
.btn-sm { padding: 12px 20px; font-size: 12px; }

/* --- Titoli di sezione -------------------------------------------------------- */
.ce-h2 {
  font-family: var(--font-display); font-size: clamp(44px, 7vw, 112px);
  font-weight: 900; line-height: .88; letter-spacing: -.02em; text-transform: uppercase;
}
.ce-h2 em, .ce-hero-titolo em, .ce-hc-titolo em, .ce-chiusura-titolo em {
  display: block; font-style: normal; font-weight: 300;
}
.ce-testa {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 32px; flex-wrap: wrap; margin-bottom: 56px;
}
.ce-testa-titolo { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.ce-testa > p { font-size: 17px; line-height: 1.6; max-width: 400px; text-wrap: pretty; }
.ce-testa b, .ce-iscr-sx b, .ce-hero-testo b { font-weight: 700; }


/* --- Hero ------------------------------------------------------------------------ */
section.ce-hero {
  padding: 0 !important;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: calc(100svh - 64px);
}
.ce-hero-sx {
  background: var(--ce-grigio); padding: 48px 40px;
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
  gap: 40px; border-right: 1px solid var(--ce-linea);
}
.ce-hero-testo { font-size: 18px; line-height: 1.55; max-width: 360px; text-wrap: pretty; }
.ce-bottoni { display: flex; gap: 10px; flex-wrap: wrap; }
.ce-hero-dx {
  position: relative; overflow: hidden; isolation: isolate;
  color: var(--ce-bianco); padding: 48px;
  display: flex; flex-direction: column; justify-content: flex-end;
  background:
    radial-gradient(ellipse at 18% 78%, #FF9BB4 0%, #E8637F 22%, transparent 52%),
    radial-gradient(ellipse at 64% 58%, #5C0014 0%, transparent 45%),
    linear-gradient(100deg, #F07A95 0%, #B8243F 36%, #3A030C 66%, #050304 100%);
}
/* Le righe verticali del sipario, e il velo scuro in basso sotto al testo. */
.ce-hero-dx::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0) 0px, rgba(255,255,255,.10) 14px, rgba(0,0,0,.18) 28px, rgba(255,255,255,0) 42px);
  mix-blend-mode: overlay;
}
.ce-hero-dx::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(to top, rgba(0,0,0,.35), transparent 50%);
}
.ce-hero-tag {
  position: absolute; top: 48px; right: 48px; text-align: right;
  font-family: var(--font-display); font-size: 28px; font-weight: 300; line-height: 1.1;
}
.ce-hero-titolo {
  font-family: var(--font-display); font-size: clamp(50px, 8.4vw, 150px);
  font-weight: 900; line-height: .86; letter-spacing: -.02em; text-transform: uppercase;
}
.ce-hero-titolo em { letter-spacing: -.01em; }
.ce-hero-sotto {
  font-family: var(--font-display); font-size: clamp(16px, 2.52vw, 45px);
  font-weight: 500; line-height: 1.15; max-width: 16em; margin-top: .5em; text-wrap: balance;
}
.ce-hero-base {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--ce-nero); color: var(--ce-bianco);
}
.ce-hero-base > div {
  padding: 28px 40px; border-right: 1px solid var(--ce-linea-chiara);
  display: flex; flex-direction: column; gap: 8px;
}
.ce-hero-base > div:last-child { border-right: none; }
.ce-hero-k { color: var(--ce-grigio-medio); }
.ce-hero-v { font-family: var(--font-display); font-size: 20px; font-weight: 500; }
/* «Dove» col link a Google Maps (14/10): sottolineato, si apre in una scheda nuova. */
a.ce-hero-v {
  color: var(--ce-bianco); text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: 5px;
}
a.ce-hero-v:hover { color: var(--ce-rosa); }
a.ce-hero-v:focus-visible { outline: 2px solid var(--ce-rosa); outline-offset: 3px; }
.ce-hero-badge { background: var(--ce-rosso); align-items: center; justify-content: center; text-align: center; }

/* --- Manifesto -------------------------------------------------------------------- */
.ce-manifesto { background: var(--ce-grigio); padding: 140px 0 120px; border-top: 1px solid var(--ce-linea); }
.ce-manifesto-testo {
  font-family: var(--font-display); font-size: clamp(34px, 5.4vw, 84px);
  font-weight: 300; line-height: 1.04; letter-spacing: -.02em; max-width: 1180px; text-wrap: balance;
}
.ce-manifesto-testo b { font-weight: 900; }
.ce-manifesto-testo em { font-style: normal; font-weight: 900; color: var(--ce-rosso); }
.ce-celle {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 88px; border-top: 1px solid var(--ce-linea);
}
.ce-cella {
  padding: 28px 28px 8px 0; border-right: 1px solid var(--ce-linea);
  display: flex; flex-direction: column; gap: 14px;
}
.ce-cella + .ce-cella { padding-left: 28px; }
.ce-cella:last-child { border-right: none; }
.ce-cella .ce-mono { color: var(--ce-rosso-testo); }
.ce-cella h3 { font-size: 24px; font-weight: 900; text-transform: uppercase; line-height: 1; letter-spacing: 0; }
.ce-cella p { font-size: 15px; line-height: 1.6; color: #2B2A2E; text-wrap: pretty; }

/* --- Lo spazio: foto in fila ------------------------------------------------------ */
.ce-spazio { background: var(--ce-grigio); padding: 0 0 120px; }
.ce-foto-fila {
  display: flex; gap: 10px; overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: max(40px, calc((100vw - 1320px) / 2 + 40px));
  padding: 0 max(40px, calc((100vw - 1320px) / 2 + 40px));
  scrollbar-width: none; cursor: grab;
}
.ce-foto-fila::-webkit-scrollbar { display: none; }
.ce-foto-fila:focus-visible { outline: 2px solid var(--ce-rosso); outline-offset: 4px; }
.ce-foto {
  flex: 0 0 auto; height: min(68vh, 620px); margin: 0;
  position: relative; overflow: hidden; background: var(--ce-nero);
  scroll-snap-align: start;
}
.ce-foto img {
  height: 100%; width: auto; max-width: none; aspect-ratio: 16 / 9; object-fit: cover;
  transition: transform 1.2s cubic-bezier(.16,1,.3,1);
}
.ce-foto.is-verticale img { aspect-ratio: 9 / 16; }
.ce-foto:hover img { transform: scale(1.03); }
.ce-foto figcaption {
  position: absolute; left: 14px; bottom: 14px;
  background: var(--ce-nero); color: var(--ce-bianco); padding: 8px 12px;
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
}
.ce-foto.is-evidenza figcaption { background: var(--ce-rosso); }
.ce-foto-barra { display: flex; align-items: center; gap: 16px; margin-top: 22px; }
.ce-foto-avanzamento { flex: 1; height: 1px; background: var(--ce-linea); position: relative; }
.ce-foto-avanzamento i {
  position: absolute; left: 0; top: -1px; height: 3px; width: 10%;
  background: var(--ce-rosso); transition: width .2s;
}
.ce-foto-frecce { display: flex; gap: 8px; }
.ce-freccia {
  width: 56px; height: 56px; display: grid; place-items: center;
  border: 1px solid var(--ce-nero); background: transparent; color: var(--ce-nero);
  transition: background .2s, color .2s;
}
.ce-freccia:hover { background: var(--ce-nero); color: var(--ce-bianco); }
.ce-freccia.is-indietro svg { transform: scaleX(-1); }

/* --- La giornata: programma su fondo nero ---------------------------------------- */
.ce-giornata { background: var(--ce-nero); color: var(--ce-bianco); padding: 120px 0; }
.ce-giornata .eyebrow { color: var(--ce-rosa); }
.ce-giornata .ce-testa > p { color: #BDBDC0; }
.ce-programma { border-top: 1px solid var(--ce-linea-chiara); }
/* Ogni riga era una griglia a sé con l'ultima colonna «quanto serve»: l'etichetta
   cambia larghezza da riga a riga («Pausa», «Iscriviti · 3 slot liberi») e si portava
   dietro descrizione e nome (corretto il 14/10). Ora le righe prendono le colonne della
   lista (subgrid) e l'ultima è larga quanto l'etichetta più lunga; senza subgrid è
   fissa. */
.ce-prog {
  display: grid; grid-template-columns: 200px minmax(0, 1.1fr) minmax(0, 1.4fr) 260px;
  gap: 32px; align-items: baseline;
  padding: 32px 0; border-bottom: 1px solid var(--ce-linea-chiara);
  transition: background .25s;
}
@supports (grid-template-columns: subgrid) {
  @media (min-width: 981px) {
    .ce-programma {
      display: grid; column-gap: 32px;
      grid-template-columns: 200px minmax(0, 1.1fr) minmax(0, 1.4fr) max-content;
    }
    .ce-prog { grid-column: 1 / -1; grid-template-columns: subgrid; }
  }
}
.ce-prog:hover { background: rgba(255,255,255,.03); }
.ce-prog-ora {
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 15px; letter-spacing: .06em; color: var(--ce-grigio-medio);
}
.ce-prog-nome {
  font-family: var(--font-display); font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 900; line-height: 1; text-transform: uppercase;
}
.ce-prog-testo { font-size: 15px; line-height: 1.6; color: #C9C9CC; text-wrap: pretty; }
.ce-prog-tag {
  justify-self: end; white-space: nowrap; padding: 7px 10px;
  border: 1px solid var(--ce-linea-chiara); color: #E8E8EA;
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
}
.ce-prog.is-evidenza .ce-prog-ora { color: var(--ce-rosa); }
.ce-prog.is-evidenza .ce-prog-tag { background: var(--ce-rosso); border-color: var(--ce-rosso); color: var(--ce-bianco); }
.ce-prog.is-pausa { opacity: .8; }
.ce-prog.is-pausa .ce-prog-nome { font-weight: 300; }

/* --- Challenge: i test, premi e contenuti ----------------------------------------- */
.ce-challenge { background: var(--ce-grigio); padding: 120px 0; }
.ce-test-elenco {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid var(--ce-linea);
}
.ce-carta-test {
  padding: 28px 24px 26px; border-right: 1px solid var(--ce-linea);
  display: flex; flex-direction: column; gap: 64px;
  color: var(--ce-nero); transition: background .2s, color .2s;
}
.ce-carta-test:last-child { border-right: none; }
.ce-carta-test:hover, .ce-carta-test:focus-visible { background: var(--ce-nero); color: var(--ce-bianco); }
.ce-carta-test.is-scelto { background: var(--ce-rosso); color: var(--ce-bianco); }
.ce-test-nome {
  font-family: var(--font-display); font-size: clamp(24px, 2.6vw, 38px);
  font-weight: 900; line-height: .95; text-transform: uppercase;
}
.ce-test-vai {
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .7;
}
.ce-premi-blocco { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 2px; }
.ce-premi { background: var(--ce-nero); color: var(--ce-bianco); padding: 40px; }
.ce-bonus { background: var(--ce-rosso); color: var(--ce-bianco); padding: 40px; display: flex; flex-direction: column; }
.ce-blocco-etichetta { display: block; margin-bottom: 28px; }
.ce-premi .ce-blocco-etichetta { color: var(--ce-rosa); }
/* I livelli, dal 14/10 come nel mockup v9 (nel nostro ordine, dal più difficile): la
   scala sopra, e per ogni livello i pallini rosa sopra il nome, tutti pieni e bianchi
   (prima L3/L2/L1 grandi, il secondo in rosa). */
.ce-livelli-scala {
  display: flex; justify-content: space-between; gap: 16px;
  padding-top: 16px; border-top: 1px solid var(--ce-linea-chiara);
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #A9A9AD;
}
.ce-livelli-scala + .ce-livello { margin-top: 16px; }
.ce-livello {
  display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 20px; align-items: center;
  padding: 20px 0; border-top: 1px solid var(--ce-linea-chiara);
}
.ce-livello-n {
  display: flex; flex-direction: column; gap: 8px;
  font-family: var(--font-display); font-size: 30px; font-weight: 900;
  line-height: 1; letter-spacing: -.01em; text-transform: uppercase;
}
.ce-livello-n i {
  font-style: normal; font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 14px; letter-spacing: .2em; color: var(--ce-rosa);
}
.ce-livello-t { font-family: var(--font-display); font-size: 19px; font-weight: 700; text-transform: uppercase; }
.ce-livello-d { font-size: 14px; color: #A9A9AD; margin-top: 4px; }
.ce-bonus-voce {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  padding: 18px 0; border-top: 1px solid rgba(255,255,255,.28);
}
.ce-bonus-voce b { font-family: var(--font-display); font-size: 22px; font-weight: 900; text-transform: uppercase; }
.ce-bonus-voce .ce-mono { text-align: right; letter-spacing: .14em; }
.ce-bonus-testo { margin-top: auto; padding-top: 28px; font-size: 15px; line-height: 1.6; text-wrap: pretty; }
.ce-bonus-testo b { font-weight: 700; }

/* --- Hero Class ---------------------------------------------------------------------- */
section.ce-hc {
  padding: 0 !important;
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  min-height: 78vh; background: var(--ce-nero); color: var(--ce-bianco);
}
.ce-hc-sx {
  position: relative; overflow: hidden; isolation: isolate;
  padding: 100px 40px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 48px;
  background: var(--ce-nero);
}
.ce-hc-foto {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 40%;
}
.ce-hc-sx::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(ellipse at 10% 90%, rgba(196,3,47,.85) 0%, transparent 55%),
    linear-gradient(to top, rgba(13,12,15,.94) 20%, rgba(13,12,15,.5));
}
.ce-hc-sx .eyebrow { color: var(--ce-rosa); }
.ce-hc-titolo {
  font-family: var(--font-display); font-size: clamp(52px, 8.6vw, 140px);
  font-weight: 900; line-height: .86; letter-spacing: -.02em; text-transform: uppercase;
  margin-top: 20px;
}
.ce-hc-testo { font-size: 18px; line-height: 1.6; max-width: 460px; color: #D9D9DB; }
.ce-hc-dx {
  display: grid; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  border-left: 1px solid var(--ce-linea-chiara);
}
.ce-coach {
  padding: 40px; border-bottom: 1px solid var(--ce-linea-chiara);
  display: flex; flex-direction: column; justify-content: flex-end; gap: 10px;
}
.ce-coach:last-child { border-bottom: none; }
.ce-coach .ce-mono { color: var(--ce-grigio-medio); }
.ce-coach-nome {
  font-family: var(--font-display); font-size: clamp(48px, 5.6vw, 88px);
  font-weight: 300; line-height: .9; letter-spacing: -.02em; text-transform: uppercase;
}
.ce-coach p { font-size: 15px; line-height: 1.6; color: #C9C9CC; max-width: 380px; }
.ce-hc-piede {
  grid-column: 1 / -1;
  display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap;
  padding: 24px 40px; background: var(--ce-rosso);
}
.ce-hc-piede p { font-family: var(--font-display); font-size: 18px; font-weight: 500; }

/* --- Per i personal trainer (14/10, dalla v9): foto a sinistra, testo a destra, sul bianco */
section.ce-pt {
  padding: 0 !important;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  background: var(--ce-bianco); color: var(--ce-nero);
}
section.ce-pt.is-senza-foto { grid-template-columns: minmax(0, 1fr); }
.ce-pt-foto { position: relative; min-height: 640px; overflow: hidden; background: var(--ce-nero); }
.ce-pt-foto img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.ce-pt-testo {
  padding: 100px 40px;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 32px;
}
.ce-pt-titolo { font-size: clamp(44px, 5.6vw, 96px); }
.ce-pt-intro { font-size: 18px; line-height: 1.6; max-width: 480px; text-wrap: pretty; }
.ce-pt-punti { list-style: none; margin: 0; padding: 0; align-self: stretch; max-width: 560px; }
.ce-pt-punti li {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px;
  padding: 20px 0; border-top: 1px solid var(--ce-linea);
}
.ce-pt-punti li:last-child { border-bottom: 1px solid var(--ce-linea); }
.ce-pt-punti .ce-mono { color: var(--ce-rosso-testo); padding-top: 3px; }
.ce-pt-punti b {
  display: block; margin-bottom: 4px;
  font-family: var(--font-display); font-size: 19px; font-weight: 900; text-transform: uppercase;
}
.ce-pt-punti p { font-size: 15px; line-height: 1.55; color: #2B2A2E; }

/* --- Iscrizione ------------------------------------------------------------------------ */
.ce-iscr { background: var(--ce-grigio); padding: 120px 0; }
.ce-iscr-layout {
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 72px; align-items: start;
}
.ce-iscr-sx {
  position: sticky; top: 100px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 28px;
}
.ce-iscr-sx > p { font-size: 17px; line-height: 1.6; max-width: 420px; text-wrap: pretty; }
.ce-contatore {
  align-self: stretch; display: flex; align-items: center; gap: 20px;
  padding: 24px 0; border-top: 1px solid var(--ce-linea); border-bottom: 1px solid var(--ce-linea);
}
.ce-contatore-n {
  font-family: var(--font-display); font-size: 88px; font-weight: 900;
  line-height: .8; letter-spacing: -.04em; color: var(--ce-rosso);
}
.ce-contatore-l {
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; line-height: 1.6;
}
.ce-modulo { background: var(--ce-bianco); padding: 40px; border: 1px solid var(--ce-bordo-bianco); }
.ce-modulo-nota { margin-top: 20px; font-size: 13px; line-height: 1.6; color: #6B6A6E; }

/* Il modulo WPForms sul bianco: campi a riga sotto, etichette spaziate.
   Tutto !important: il foglio di WPForms è accodato dopo quello del tema. */
.ce-modulo .wpforms-container .wpforms-field-container { gap: 20px 16px !important; }
.ce-modulo .wpforms-container .wpforms-field-name,
.ce-modulo .wpforms-container .wpforms-field-email,
.ce-modulo .wpforms-container .wpforms-field-select { grid-column: auto !important; }
.ce-modulo .wpforms-container .wpforms-field-label {
  font-family: var(--font-mono) !important; font-weight: var(--mono-weight) !important;
  font-size: 12px !important; letter-spacing: var(--mono-tracking) !important;
  text-transform: uppercase !important; color: #4A494D !important; margin-bottom: 8px !important;
}
.ce-modulo .wpforms-container .wpforms-required-label { color: var(--ce-rosso) !important; }
.ce-modulo .wpforms-container input[type="text"],
.ce-modulo .wpforms-container input[type="email"],
.ce-modulo .wpforms-container input[type="tel"],
.ce-modulo .wpforms-container select {
  background-color: transparent !important; border: 0 !important;
  border-bottom: 1px solid #BDBDBF !important; border-radius: 0 !important;
  padding: 10px 0 12px !important; box-shadow: none !important;
  font-family: var(--font-sans) !important; font-size: 17px !important; font-weight: 500 !important;
  color: var(--ce-nero) !important;
}
.ce-modulo .wpforms-container input:focus,
.ce-modulo .wpforms-container select:focus { border-bottom-color: var(--ce-rosso) !important; box-shadow: none !important; }
.ce-modulo .wpforms-container input.wpforms-error,
.ce-modulo .wpforms-container select.wpforms-error { border-bottom-color: var(--ce-rosso) !important; background-color: rgba(196,3,47,.05) !important; }
.ce-modulo .wpforms-container select {
  -webkit-appearance: none !important; appearance: none !important; cursor: pointer; padding-right: 22px !important;
  background-image: linear-gradient(45deg, transparent 50%, var(--ce-nero) 50%), linear-gradient(135deg, var(--ce-nero) 50%, transparent 50%) !important;
  background-position: calc(100% - 12px) 55%, calc(100% - 7px) 55% !important;
  background-size: 5px 5px !important; background-repeat: no-repeat !important;
}
.ce-modulo .wpforms-container .wpforms-error,
.ce-modulo .wpforms-container label.wpforms-error,
.ce-modulo .wpforms-container .wpforms-error-container { color: var(--ce-rosso-testo) !important; font-size: 13px !important; }

/* Scelte a riquadro (attività, turni, test): il controllo nativo resta, per la
   tastiera e gli screen reader, ma invisibile; si vede l'etichetta. I gruppi
   con -2 sono quelli di chi porti («Porto qualcuno»): stessa grafica. */
.ce-modulo :is(.ce-attivita, .ce-attivita-2, .ce-turno, .ce-turno-2, .ce-test, .ce-test-2) li input {
  position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important;
  margin: 0 !important; pointer-events: none;
}
.ce-modulo :is(.ce-attivita, .ce-attivita-2, .ce-turno, .ce-turno-2, .ce-test, .ce-test-2) li {
  position: relative; display: block !important; margin: 0 !important; padding: 0 !important;
  border: 0 !important; background: none !important; width: auto !important;
}
.ce-modulo :is(.ce-attivita, .ce-attivita-2, .ce-turno, .ce-turno-2, .ce-test, .ce-test-2) li input:focus-visible + label { outline: 2px solid var(--ce-rosso); outline-offset: 2px; }
.ce-modulo :is(.ce-attivita, .ce-attivita-2, .ce-turno, .ce-turno-2) li.is-pieno label { opacity: .45; cursor: not-allowed; text-decoration: line-through; }

/* Da WPForms 2.0 l'etichetta di un gruppo di scelte è il <legend> del suo
   fieldset. Porto qualcuno e Privacy (una casella sola) non la mostrano: lo fa
   sv-base.css per tutti i moduli. */
.ce-modulo .wpforms-container fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }

/* A cosa ti registri: quattro riquadri su due colonne. */
.ce-modulo .wpforms-field-checkbox:is(.ce-attivita, .ce-attivita-2) .wpforms-field-label { display: block; }
.ce-modulo :is(.ce-attivita, .ce-attivita-2) ul {
  display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important; flex-direction: row !important;
}
.ce-modulo :is(.ce-attivita, .ce-attivita-2) li label {
  display: flex !important; flex-direction: column; gap: 4px; height: 100%;
  border: 1px solid #D3D3D5; padding: 14px 16px; cursor: pointer; user-select: none;
  transition: background .2s, border-color .2s, color .2s;
  font-size: inherit !important; color: var(--ce-nero) !important;
}
.ce-modulo :is(.ce-attivita, .ce-attivita-2) li label:hover { border-color: var(--ce-nero); }
.ce-modulo :is(.ce-attivita, .ce-attivita-2) li input:checked + label { background: var(--ce-nero); border-color: var(--ce-nero); color: var(--ce-bianco) !important; }
/* Con .ce-modulo davanti: WPForms azzera text-transform e font-size su tutto
   quello che sta nel modulo (div.wpforms-container-full *), e senza vincerebbe. */
.ce-modulo .ce-scelta-orario {
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .08em; color: var(--ce-rosso);
}
.ce-modulo .ce-scelta-nome { font-family: var(--font-display); font-size: 16px; font-weight: 700; text-transform: uppercase; line-height: 1.2; }
/* Solo nelle attività: nei turni ce-scelta-posti è il <small>, che resta del
   colore del riquadro (bianco sul turno scelto). */
.ce-modulo :is(.ce-attivita, .ce-attivita-2) .ce-scelta-posti { font-size: 12px; color: #6B6A6E; }
.ce-modulo .wpforms-container label, .ce-modulo .wpforms-container legend { hyphens: manual !important; }
.ce-modulo :is(.ce-attivita, .ce-attivita-2) li input:checked + label .ce-scelta-orario { color: var(--ce-rosa); }
.ce-modulo :is(.ce-attivita, .ce-attivita-2) li input:checked + label .ce-scelta-posti { color: #C9C9CC; }

/* Turno e test: un riquadro grigio, i turni in fila da sei, i test a pastiglia. */
.ce-modulo :is(.ce-turno, .ce-turno-2, .ce-test, .ce-test-2) { background: var(--ce-grigio); padding: 20px !important; }
.ce-modulo :is(.ce-test, .ce-test-2) { margin-top: -20px !important; padding-top: 6px !important; }
.ce-modulo :is(.ce-turno, .ce-turno-2) ul {
  display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 6px !important; flex-direction: row !important;
}
.ce-modulo :is(.ce-turno, .ce-turno-2) li label {
  display: flex !important; flex-direction: column; align-items: center; gap: 2px;
  background: var(--ce-bianco); padding: 12px 4px; text-align: center;
  border: 1px solid var(--ce-bordo-bianco); cursor: pointer; user-select: none;
  transition: background .2s, border-color .2s, color .2s;
  font-size: inherit !important; color: var(--ce-nero) !important;
}
.ce-modulo :is(.ce-turno, .ce-turno-2) li label:hover { border-color: var(--ce-nero); }
.ce-modulo :is(.ce-turno, .ce-turno-2) li label b { font-family: var(--font-display); font-size: 15px; font-weight: 900; }
.ce-modulo :is(.ce-turno, .ce-turno-2) li label small { font-size: 12px; line-height: 1.2; }
.ce-modulo :is(.ce-turno, .ce-turno-2) li input:checked + label { background: var(--ce-rosso); color: var(--ce-bianco) !important; }
.ce-modulo :is(.ce-test, .ce-test-2) ul { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; flex-direction: row !important; }
.ce-modulo :is(.ce-test, .ce-test-2) li label {
  display: block !important; background: var(--ce-bianco); padding: 10px 14px;
  border: 1px solid var(--ce-bordo-bianco); cursor: pointer; user-select: none;
  font-family: var(--font-display) !important; font-size: 13px !important; font-weight: 700 !important;
  text-transform: uppercase; color: var(--ce-nero) !important;
  transition: background .2s, border-color .2s, color .2s;
}
.ce-modulo :is(.ce-test, .ce-test-2) li label:hover { border-color: var(--ce-nero); }
.ce-modulo :is(.ce-test, .ce-test-2) li input:checked + label { background: var(--ce-nero); color: var(--ce-bianco) !important; }

/* Porto qualcuno e privacy: casella rossa, testo pieno. */
.ce-modulo .wpforms-field-checkbox:not(.ce-attivita, .ce-attivita-2) label {
  font-size: 15px !important; line-height: 1.5 !important; color: var(--ce-nero) !important;
}
.ce-modulo .wpforms-field-checkbox:not(.ce-attivita, .ce-attivita-2) input[type="checkbox"] { width: 18px !important; height: 18px !important; accent-color: var(--ce-rosso); }

/* Chi porti: l'email a tutta riga (sotto nome e cognome, da sola lascerebbe
   mezza riga vuota). */
.ce-modulo .wpforms-container .wpforms-field.ce-intera { grid-column: 1 / -1 !important; }

.ce-modulo .wpforms-container .wpforms-submit-container { margin-top: 4px; }
.ce-modulo .wpforms-container button.wpforms-submit {
  width: 100% !important; border-radius: 0 !important; padding: 22px !important;
  background: var(--ce-rosso) !important; color: var(--ce-bianco) !important;
  font-family: var(--font-mono) !important; font-weight: var(--mono-weight) !important;
  font-size: 14px !important; letter-spacing: var(--mono-tracking) !important;
}
.ce-modulo .wpforms-container button.wpforms-submit::after { content: none; }
.ce-modulo .wpforms-container button.wpforms-submit:hover { background: var(--ce-nero) !important; transform: none; }

/* Dopo l'invio: «Sei dentro.» sul rosso, al posto del modulo. */
.ce-modulo:has(.wpforms-confirmation-container-full) { padding: 0; background: var(--ce-rosso); }
.ce-modulo:has(.wpforms-confirmation-container-full) .ce-modulo-nota { display: none; }
.ce-modulo .wpforms-confirmation-container-full {
  background: var(--ce-rosso) !important; border: 0 !important; border-radius: 0 !important;
  color: var(--ce-bianco) !important; padding: 48px 40px !important; margin: 0 !important;
}
.ce-modulo .ce-ok { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
/* WPForms dà ai paragrafi della conferma il suo grigio scuro. */
.ce-modulo .ce-ok, .ce-modulo .ce-ok p, .ce-modulo .ce-ok span, .ce-modulo .ce-ok b { color: var(--ce-bianco) !important; }
.ce-modulo .ce-ok .eyebrow { color: var(--ce-bianco); font-size: 12px; text-transform: uppercase; }
.ce-modulo .ce-ok-titolo {
  font-family: var(--font-display); font-size: clamp(48px, 6vw, 88px);
  font-weight: 900; line-height: .9; text-transform: uppercase;
}
.ce-modulo .ce-ok-testo { font-size: 17px; line-height: 1.6; max-width: 460px; }
.ce-modulo .ce-ok-badge {
  background: var(--ce-nero); padding: 12px 16px;
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: var(--mono-tracking); text-transform: uppercase;
}
/* Uno per persona: con «Porto qualcuno» il secondo porta il suo nome. */
.ce-modulo .ce-ok-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.ce-modulo .ce-ok-badge::before { content: "[ " / ""; }
.ce-modulo .ce-ok-badge::after { content: " ]" / ""; }
.ce-modulo .ce-ok-chiusura {
  align-self: stretch; margin-top: 16px; padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.3);
  font-family: var(--font-display); font-size: 22px; font-weight: 300; line-height: 1.35; text-wrap: pretty;
}
.ce-modulo .ce-ok-chiusura b { font-weight: 900; }

/* --- Domande ------------------------------------------------------------------------ */
.ce-faq { background: var(--ce-bianco); padding: 120px 0; }
.ce-faq-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 64px; }
.ce-faq .eyebrow { color: var(--ce-rosso); display: block; margin-bottom: 20px; }
.ce-faq-titolo { font-size: clamp(36px, 4.4vw, 64px); overflow-wrap: anywhere; }
.ce-faq .faq-item { border-bottom: 0; border-top: 1px solid var(--ce-linea); }
.ce-faq .faq-item:last-child { border-bottom: 1px solid var(--ce-linea); }
.ce-faq .faq-q {
  gap: 24px; padding: 24px 0; color: var(--ce-nero);
  font-family: var(--font-display); font-size: 19px; font-weight: 700;
}
.ce-faq .faq-q:hover { color: var(--ce-rosso-testo); }
.ce-faq-segno {
  flex-shrink: 0; font-family: var(--font-mono); font-size: 20px; line-height: 1;
  color: var(--ce-rosso); transition: transform .3s;
}
.ce-faq-segno::before { content: "+"; }
.ce-faq .faq-item.open .ce-faq-segno { transform: rotate(45deg); }
.ce-faq .faq-item.open .faq-a { padding-bottom: 0; }
.ce-faq .faq-a > div { padding: 0 0 26px; font-size: 16px; line-height: 1.7; color: #3A393D; max-width: 680px; }
.ce-faq .faq-a b { color: var(--ce-nero); }

/* --- Chiusura rossa -------------------------------------------------------------------- */
.ce-chiusura { background: var(--ce-rosso); color: var(--ce-bianco); padding: 140px 0 0; overflow: hidden; }
.ce-chiusura-titolo {
  font-family: var(--font-display); font-size: clamp(48px, 9vw, 150px);
  font-weight: 900; line-height: .86; letter-spacing: -.02em; text-transform: uppercase;
}
.ce-chiusura-marchio {
  margin-top: 28px; font-family: var(--font-display); font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 300; letter-spacing: .01em;
}
.ce-chiusura-marchio b { font-weight: 900; }
.ce-chiusura-piede {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap;
  margin-top: 48px; padding-bottom: 80px;
}
.ce-chiusura-piede p { font-size: 18px; line-height: 1.6; max-width: 440px; }

/* --- Footer della pagina: una riga nera ----------------------------------------------- */
.site-footer-pagina { background: var(--ce-nero); color: var(--ce-grigio-medio); padding: 28px 0 96px; }
.foot-pagina { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: center; }
.foot-pagina-col { font-family: var(--font-display); font-size: 15px; }
.foot-pagina-col:nth-child(2) {
  text-align: center; font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: var(--mono-tracking); text-transform: uppercase;
}
.foot-pagina-col:nth-child(2)::before { content: "[ " / ""; }
.foot-pagina-col:nth-child(2)::after { content: " ]" / ""; }
.foot-pagina-col:last-child { text-align: right; }
.foot-pagina-logo { display: inline; }
.foot-pagina-logo img { display: inline-block; width: 22px; height: 22px; object-fit: contain; vertical-align: middle; margin-right: 10px; }
.site-footer-pagina .foot-bottom { margin-top: 16px; color: var(--ce-grigio-medio); }
.site-footer-pagina a { color: var(--ce-grigio-medio); }
.site-footer-pagina a:hover { color: var(--ce-bianco); }

/* --- Barra fissa in fondo ---------------------------------------------------------------- */
/* Nascosta anche per il Tab e gli screen reader (visibility, e aria-hidden da
   celebrate.js), non solo spostata fuori dallo schermo. */
.ce-barra {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 12px 40px; background: var(--ce-nero); color: var(--ce-bianco);
  transform: translateY(100%); visibility: hidden;
  transition: transform .4s cubic-bezier(.16,1,.3,1), visibility .4s;
}
.ce-barra.is-visibile { transform: none; visibility: visible; }
.ce-barra-testo { display: flex; gap: 28px; align-items: center; flex-wrap: wrap; }
.ce-barra-testo b { font-family: var(--font-display); font-weight: 900; text-transform: uppercase; font-size: 15px; }
.ce-barra .ce-mono { color: var(--ce-rosa); }
.ce-barra .btn { padding: 12px 22px; font-size: 12px; }
@media (prefers-reduced-motion: reduce) {
  .ce-barra, .ce-foto img, .ce-faq-segno { transition: none; }
}

/* --- Tablet e telefono (il design passa a una colonna sotto i 980px) --------------------- */
@media (max-width: 980px) {
  section.ce-hero { grid-template-columns: 1fr; grid-template-rows: auto; min-height: 0; }
  .ce-hero-sx { order: 2; padding: 40px 22px; border-right: none; }
  .ce-hero-dx { min-height: 78svh; padding: 96px 22px 36px; }
  .ce-hero-tag { top: 28px; right: 22px; font-size: 20px; }
  .ce-hero-titolo { font-size: clamp(34px, 11.5vw, 80px); }
  .ce-hero-base { order: 3; grid-template-columns: 1fr 1fr; }
  .ce-hero-base > div { padding: 20px 22px; }
  .ce-hero-base > div:nth-child(2) { border-right: none; }
  .ce-hero-badge { grid-column: 1 / -1; }

  .ce-celle { grid-template-columns: 1fr 1fr; }
  .ce-cella, .ce-cella + .ce-cella { padding: 24px 16px 16px 0; border-bottom: 1px solid var(--ce-linea); }
  .ce-cella:nth-child(2n) { border-right: none; padding-left: 16px; }

  .ce-prog { grid-template-columns: 1fr; gap: 10px; }
  .ce-prog-tag { justify-self: start; }

  .ce-test-elenco { grid-template-columns: 1fr 1fr; }
  .ce-carta-test { border-bottom: 1px solid var(--ce-linea); gap: 36px; }
  .ce-carta-test:nth-child(2n) { border-right: none; }
  .ce-carta-test:last-child { grid-column: 1 / -1; border-bottom: none; }

  .ce-premi-blocco, section.ce-hc, section.ce-pt, .ce-iscr-layout, .ce-faq-layout { grid-template-columns: 1fr; }
  .ce-pt-foto { min-height: 0; aspect-ratio: 4 / 3; }
  .ce-pt-testo { padding: 72px 22px; }
  .ce-iscr-layout, .ce-faq-layout { gap: 40px; }
  .ce-iscr-sx { position: static; }
  .ce-hc-dx { border-left: none; border-top: 1px solid var(--ce-linea-chiara); }
  .ce-hc-sx, .ce-coach { padding: 56px 22px; }
  .ce-hc-piede { padding: 22px; }
  .ce-premi, .ce-bonus { padding: 32px 22px; }
  .ce-modulo { padding: 28px 20px; }
  .ce-modulo :is(.ce-attivita, .ce-attivita-2) ul { grid-template-columns: 1fr !important; }
  .ce-modulo :is(.ce-turno, .ce-turno-2) ul { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

  .ce-spazio { padding-bottom: 80px; }
  .ce-foto-fila { padding: 0 22px; scroll-padding-left: 22px; }
  .ce-foto { height: 62vh; }
  .ce-foto:not(.is-verticale) { width: 86vw; }
  .ce-foto:not(.is-verticale) img { width: 100%; }
  .ce-freccia { width: 48px; height: 48px; }

  .foot-pagina { grid-template-columns: 1fr; gap: 12px; }
  .foot-pagina-col, .foot-pagina-col:nth-child(2), .foot-pagina-col:last-child { text-align: left; }
  .ce-barra { padding: 10px 22px; }
  .ce-barra .ce-mono { display: none; }

  /* Testata da telefono: solo marchio (con l'etichetta, dal 14/10 «Celebrate
     Bergamo») e bottone rosso. Il menu
     delle sezioni non c'è, quindi niente burger. */
  .site-header .nav-claim { display: inline; }
  .site-header#main-nav .nav-burger { display: none !important; }
  .site-header#main-nav .nav-cta { display: flex !important; margin-left: auto; }
}

@media (max-width: 640px) {
  /* Margine laterale unico da 16px, e 16px dentro i riquadri. */
  .ce-hero-sx { padding: 36px 16px; }
  .ce-hero-dx { padding: 88px 16px 32px; }
  .ce-hero-tag { right: 16px; }
  .ce-hero-base > div { padding: 18px 16px; }
  /* sv-responsive.css ferma tutti gli h1 a 40px: questo è il titolo del design. */
  .ce-hero .ce-hero-titolo { font-size: clamp(34px, 11.5vw, 80px) !important; }
  .ce-hc-sx, .ce-coach { padding: 48px 16px; }
  .ce-hc-piede { padding: 20px 16px; }
  .ce-premi, .ce-bonus { padding: 28px 16px; }
  .ce-modulo { padding: 24px 16px; }
  .ce-modulo .wpforms-confirmation-container-full { padding: 36px 16px !important; }
  .ce-foto-fila { padding: 0 16px; scroll-padding-left: 16px; }
  .ce-barra { padding: 10px 16px; }
  .ce-hc-piede .btn, .ce-chiusura-piede .btn { width: 100%; white-space: normal; text-align: center; }
  .ce-livello { grid-template-columns: 112px minmax(0, 1fr); gap: 14px; }
  .ce-livello-n { font-size: 26px; }
  .ce-pt-testo { padding: 56px 16px; }
  .ce-pt-punti li { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }
  .site-header .btn-sm { padding: 11px 14px; letter-spacing: .1em; }
  /* «Celebrate Bergamo» (dal 14/10, prima «FNCTNL») su una riga accanto al bottone. */
  .site-header .nav-claim { font-size: 18px; white-space: nowrap; }
}
