/* ===========================================================================
   Landing Fitness Lover — layout v2 di `Bulb_ landing FL/` (BULB Landing v2.dc.html).
   Struttura e testi sono i nostri, lo stile è quello del layout, con i valori
   del file (colori, misure, angoli, bottoni). I caratteri restano quelli del
   nostro set tipografico: dove il layout usa Red Hat Mono qui c'è il ruolo
   --font-mono, dove usa Red Hat Display per il testo c'è --font-sans.
   Questo file si carica solo sulle pagine con questo template (A e B), quindi
   veste anche testata, moduli, gallery, cartina e popup di queste pagine. Il
   footer rosso della v2 è quello predefinito, in sv-base.css.

   Dal 25/9 le due landing hanno lo stesso layout, la v2: dal 24/9 sera questa
   aveva la v1 (BULB Landing.dc.html), ora nel backup 2026-09-25-prima-di-fl-v2.
   Questo file è il riferimento, come il template: il CSS della trainer si
   rigenera da qui con .claude/tools/riporta-landing-pt.py.

   Scostamenti voluti dal layout, per le regole del sito:
   - segnaposto dei campi #B4B3B4 invece di #8E8A93 (4.4:1, sotto la soglia);
   - testo rosso piccolo sul grigio (sopratitolo dei benefici, stelle delle
     recensioni) #BC0430 invece di #DC0034, che lì fa 3.5:1;
   - etichette dei campi a 12px invece di 11.5;
   - niente note "Segnaposto — …" a schermo, niente telefono nel footer.
   =========================================================================== */

:root {
  --bg: #170144;
  --bg-alt: #1D1A1F;
  --bg-deep: #1D1A1F;
  --surface: #1D1A1F;
  --border: rgba(255,255,255,.14);
  --border-soft: rgba(255,255,255,.08);
  --accent: var(--bulb-red);
  --accent-dark: var(--bulb-lime);
  --accent-hot: #fff;
  --accent-soft: rgba(220,0,52,.30);
  --accent-tint: rgba(220,0,52,.14);
  --radius-s: 12px;
  --radius-m: 20px;
  --radius-l: 24px;
  --container: 1200px;
  --gutter: 28px;
}
body { line-height: 1.5; }
a:hover { color: var(--bulb-lime); text-decoration: none; }

/* --- Testata --------------------------------------------------------------- */
.site-header {
  background: rgba(29,26,31,.88);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
/* L'altezza è --nav-h: la usa anche lo spazio della testata fissa da telefono. */
html:root { --nav-h: 68px; }
.nav { height: var(--nav-h); }
.nav-claim, .nav-links a {
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: #B4B3B4;
}
.nav-links a:hover, .nav-links a.active { color: var(--bulb-lime); }
.nav-links a.active::after { content: none; }
/* Testata essenziale (19/10, campo della pagina): solo marchio e bottone, anche da
   telefono, dove sv-responsive.css nasconde il bottone per far posto al burger (che
   qui non c'è, come il menu e «Another way»: li toglie il template). */
.testata-essenziale .nav-cta { margin-left: auto; }
@media (max-width: 960px) {
  .testata-essenziale .site-header#main-nav .nav-cta { display: flex !important; }
}
@media (max-width: 640px) {
  /* Accanto al marchio su 358px utili: spaziatura e lati più stretti. */
  .testata-essenziale .site-header .btn-sm { padding: 10px 12px; font-size: 12px; letter-spacing: .06em; white-space: nowrap; }
}

/* --- Bottoni: pillola rossa, al passaggio bianca col testo rosso ----------- */
.btn {
  gap: 8px; border-radius: 40px;
  font-family: var(--font-display); font-weight: 700; font-size: 16px;
  letter-spacing: 0; text-transform: none; line-height: 1.2;
  padding: 16px 28px; transition: background .2s ease, color .2s ease;
}
.btn:hover { transform: none; }
.btn-primary { background: var(--bulb-red); color: #fff; }
.btn-primary:hover { background: #fff; color: var(--bulb-red); }
.btn-primary::after { content: none; }
.btn-lg { font-size: 17px; padding: 17px 32px; }
.btn-sm { font-size: 14px; padding: 11px 20px; }
.mobile-cta {
  background: var(--bulb-red); border-radius: 40px;
  font-weight: 700; font-size: 16px; letter-spacing: 0; text-transform: none;
}

/* --- Tipografia di pagina --------------------------------------------------- */
/* Sopratitoli fra parentesi quadre dello stesso colore del testo. */
.eyebrow { font-size: 13px; letter-spacing: .24em; color: var(--bulb-lime); }
.eyebrow::before, .eyebrow::after { color: inherit; font-weight: inherit; }
.eyebrow::before { margin-right: .5em; }
.eyebrow::after { margin-left: .25em; }
h1 { text-transform: uppercase; letter-spacing: -.03em; line-height: .95; }
/* Nel titolo principale la parte in evidenza è sottolineata in lime. */
h1 .serif {
  color: #fff;
  text-decoration: underline; text-decoration-color: var(--bulb-lime);
  text-decoration-thickness: .09em; text-underline-offset: .12em;
}
h2 .serif { color: inherit; }
.band-glow::after, .band-griglia::after { content: none; }

/* --- Striscia città --------------------------------------------------------- */
.fl-strip {
  position: relative; text-align: center; overflow: hidden;
  padding: 84px 0 72px;
  background: radial-gradient(60% 80% at 100% 0%, rgba(220,0,52,.45), transparent 60%), #170144;
}
.fl-strip-titolo {
  font-weight: 800; letter-spacing: -.02em; line-height: 1.05; text-wrap: balance;
  font-size: clamp(30px, 4.6vw, 56px); max-width: 20ch; margin: 18px auto 0;
}
.fl-strip .ticker-track { letter-spacing: .12em; }
.fl-strip-foto { margin-top: 36px; }
.fl-strip .foto-nastro-voce, .fl-strip .foto-strip figure { border-radius: 20px; border: 0; }
.fl-strip-cta { margin-top: 36px; }
.fl-strip-nota { color: #B4B3B4; font-size: 15px; margin-top: 18px; }

/* --- Hero: rosso Functional con le righe verticali sfocate del layout ------ */
.fl-hero {
  padding: 96px 0;
  background:
    radial-gradient(55% 70% at 18% 22%, #170144 0%, rgba(23,1,68,0) 65%),
    radial-gradient(45% 60% at 88% 80%, #2B0B63 0%, rgba(43,11,99,0) 65%),
    radial-gradient(60% 70% at 70% 8%, #FF0A47 0%, rgba(255,10,71,0) 60%),
    #DC0034;
}
.fl-hero.band-glow::before {
  inset: -40px; animation: none; filter: blur(14px);
  background:
    radial-gradient(60% 55% at 20% 100%, rgba(23,1,68,.7), rgba(23,1,68,0) 70%),
    repeating-linear-gradient(90deg, rgba(255,255,255,0) 0px, rgba(255,255,255,.05) 34px, rgba(255,255,255,.015) 58px, rgba(0,0,0,.09) 76px, rgba(255,255,255,0) 86px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0) 0px, rgba(255,255,255,.03) 110px, rgba(0,0,0,.04) 190px, rgba(255,255,255,0) 210px),
    linear-gradient(98deg, #0A0004 0%, #3A0012 22%, #8A0A2E 50%, #D0164A 75%, #EE5F85 100%);
}
.fl-hero .eyebrow { color: #fff; }
.fl-hero-grid { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.fl-hero-testo { flex: 1 1 480px; }
.fl-hero-testo h1 { font-size: clamp(46px, 7.2vw, 100px); margin: 22px 0 0; }
.fl-hero-lead { font-size: clamp(17px, 1.9vw, 21px); color: #fff; max-width: 40ch; margin: 30px 0 0; text-wrap: pretty; }
/* La nota sotto il testo è una pastiglia, come quelle del layout. */
.fl-hero-nota {
  display: inline-block; margin-top: 28px; padding: 9px 14px; border-radius: 40px;
  background: #1D1A1F; color: var(--bulb-lime);
  font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase;
}

.fl-form-card {
  flex: 1 1 400px;
  background: #1D1A1F; border: 0; border-radius: 24px; padding: 32px 28px;
  box-shadow: 0 30px 80px rgba(23,1,68,.45);
}
.fl-form-eyebrow {
  font-family: var(--font-mono); font-weight: var(--mono-weight); font-size: 12px;
  letter-spacing: .2em; text-transform: uppercase; color: var(--bulb-lime);
}
.fl-form-eyebrow::before { content: "[" / ""; margin-right: .5em; }
.fl-form-eyebrow::after { content: "]" / ""; margin-left: .3em; }
.fl-form-titolo {
  font-family: var(--font-display); font-weight: 800; font-size: clamp(26px, 3vw, 32px);
  letter-spacing: -.02em; line-height: 1.1; margin: 10px 0 22px;
}

/* --- Moduli (WPForms): la skin è tutta !important, vedi sv-base.css ---------- */
.wpforms-container .wpforms-form,
.wpforms-container .wpforms-field-container { gap: 13px !important; }
.wpforms-container .wpforms-field-label {
  font-family: var(--font-mono) !important; font-weight: var(--mono-weight) !important;
  font-size: 12px !important; letter-spacing: .12em !important; text-transform: uppercase !important;
  color: #B4B3B4 !important; margin-bottom: 6px !important;
}
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="number"],
.wpforms-container select,
.wpforms-container textarea {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 12px !important; padding: 14px 15px !important;
  font-size: 16px !important; color: #fff !important;
}
.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus { border-color: var(--bulb-lime) !important; box-shadow: none !important; }
/* Tendina («Come ci hai trovato?», 9/10): la freccia (lo sfondo qui sopra copre
   quella di WPForms, e senza sembrerebbe un campo di testo), e «Scegli» grigio come
   gli altri segnaposto finché non si sceglie. Le voci della tendina aperta le
   scrive WPForms, scure su bianco: leggibili anche dove il menu prende i colori
   del campo (Windows). */
.wpforms-container select {
  -webkit-appearance: none !important; appearance: none !important; cursor: pointer; padding-right: 42px !important;
  background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%) !important;
  background-position: calc(100% - 22px) 52%, calc(100% - 16px) 52% !important;
  background-size: 6px 6px !important; background-repeat: no-repeat !important;
}
.wpforms-container select:has(option.placeholder:checked) { color: var(--placeholder) !important; }
.wpforms-container .wpforms-field-radio ul { gap: 10px !important; }
/* Due risposte per riga (dal 26/10: «Hai bisogno di un personal trainer?» ne ha quattro). */
.wpforms-container .wpforms-field-radio li {
  position: relative; flex: 1 1 calc(50% - 5px) !important; min-width: 0; justify-content: center;
  border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 12px 10px;
  background: transparent; transition: all .2s ease;
}
.wpforms-container .wpforms-field-radio input[type="radio"] {
  position: absolute; inset: 0; width: 100% !important; height: 100%; margin: 0 !important;
  opacity: 0; cursor: pointer;
}
/* hyphens: WPForms sillaba le etichette («pro-grammazione», «TRAI-NER»): si va a capo
   fra le parole, come sulla Celebrate. */
.wpforms-container .wpforms-field-radio legend { hyphens: manual !important; }
.wpforms-container .wpforms-field-radio label {
  font-size: 14px !important; font-weight: 600 !important; color: #fff !important;
  text-align: center; width: 100%; padding: 0 !important; hyphens: manual !important;
}
.wpforms-container .wpforms-field-radio li:has(input:checked) { border-color: var(--bulb-red); background: var(--bulb-red); }
.wpforms-container .wpforms-field-radio li:has(input:focus-visible) { outline: 2px solid var(--bulb-lime); outline-offset: 2px; }
.wpforms-container input[type="checkbox"] { accent-color: var(--bulb-red); }
/* Domande a più risposte (la trainer: «Che tipo di Personal Trainer sei?»): le
   risposte grandi come le scelte a pastiglia, non piccole come il consenso (19/10,
   richiesta dell'utente). La casella della privacy, da sola, resta com'è. */
.wpforms-container .wpforms-field-checkbox:has(li + li) label.wpforms-field-label-inline {
  font-size: 14px !important; font-weight: 600 !important; color: #fff !important; line-height: 1.35 !important;
}
.wpforms-container .wpforms-field-checkbox:has(li + li) ul { gap: 10px !important; }
.wpforms-container button.wpforms-submit {
  background: var(--bulb-red) !important; color: #fff !important; border-radius: 40px !important;
  font-family: var(--font-display) !important; font-size: 17px !important; font-weight: 700 !important;
  letter-spacing: 0 !important; text-transform: none !important; padding: 17px !important;
  margin-top: 6px; transition: background .2s ease, color .2s ease;
}
.wpforms-container button.wpforms-submit::after { content: none; }
.wpforms-container button.wpforms-submit:hover { background: #fff !important; color: var(--bulb-red) !important; transform: none; }

/* --- Titoli di sezione ------------------------------------------------------ */
.fl-h2, .fl-h2-grande {
  font-weight: 900; letter-spacing: -.03em; line-height: 1; text-transform: uppercase;
  font-size: clamp(34px, 5vw, 64px); margin: 16px 0 0;
}
.fl-lead { color: #D6D6D6; max-width: 54ch; font-size: 17px; margin-top: 20px; }

/* --- Come funziona: quattro tasselli, numeri grandi ------------------------- */
.fl-how { background: #1D1A1F; padding: 96px 0; }
.fl-passi {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 2px;
  margin-top: 48px; background: rgba(255,255,255,.1); border: 0; border-radius: 24px; overflow: hidden;
}
.fl-passo {
  background: #1D1A1F; padding: 32px 26px; min-height: 200px; border-right: 0;
  display: flex; flex-direction: column; align-items: flex-start;
}
/* Le icone dei passi non ci sono: al loro posto il numero grande. */
.fl-passo-ic { display: none; }
.fl-passo-n {
  font-family: var(--font-mono); color: var(--bulb-red); font-size: 44px; font-weight: 500;
  line-height: 1; letter-spacing: 0; margin-bottom: 40px;
}
.fl-passo:last-child .fl-passo-n { color: var(--bulb-lime); }
.fl-passo h3 { font-weight: 700; font-size: 21px; letter-spacing: -.01em; line-height: 1.25; }

/* --- Gallery ---------------------------------------------------------------- */
.fl-gallery { background: #170144; padding: 96px 0; }
.fl-gallery-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.fl-gallery-head p { color: #D6D6D6; max-width: 44ch; font-size: 17px; margin: 0; }
.trainer-carosello { margin-top: 44px; }
.trainer-carosello .bulb-carousel { --bulb-gap: 14px; --bulb-dot-active: var(--bulb-red); }
.trainer-carosello .bulb-carousel__arrow { border-radius: 50%; }
.trainer-carosello .bulb-carousel__dot::before { width: 8px; height: 8px; border-radius: 999px; }
.trainer-carosello .bulb-carousel__dot[aria-current="true"]::before { width: 20px; }
.trainer-carosello .bulb-card { background: #1D1A1F; border: 0; border-radius: 20px; }
.trainer-carosello .bulb-card:has(.bulb-card__open):hover { border: 0; box-shadow: 0 0 0 1px var(--bulb-red); }
.trainer-carosello .bulb-card__body { padding: 16px 18px 20px; }
.trainer-carosello .bulb-card__title { font-weight: 800; font-size: 17px; letter-spacing: 0; }
/* Le specialità come riga in maiuscolo spaziato, non pastiglie. */
.trainer-carosello .bulb-tag {
  background: none; border: 0; padding: 0; border-radius: 0;
  font-family: var(--font-mono); font-weight: var(--mono-weight); font-size: 12px;
  letter-spacing: .08em; text-transform: uppercase; color: #B4B3B4;
}

.fl-trainer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin-top: 44px; }
.fl-trainer { background: #1D1A1F; border: 0; border-radius: 20px; overflow: hidden; }
.fl-trainer img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.fl-trainer-vuoto {
  aspect-ratio: 4 / 5; display: grid; place-items: center; background: #1D1A1F;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #B4B3B4;
}
.fl-trainer-dati { padding: 16px 18px 20px; }
.fl-trainer-dati b { font-family: var(--font-display); font-weight: 800; font-size: 17px; display: block; }
.fl-trainer-dati span { font-family: var(--font-mono); color: #B4B3B4; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.fl-spazi { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 14px; }
.fl-spazio { flex: 1 1 220px; margin: 0; border-radius: 20px; overflow: hidden; border: 0; position: relative; height: 220px; }
.fl-spazio:first-child { flex: 2 1 360px; }
.fl-spazio img { width: 100%; height: 220px; object-fit: cover; }
.fl-spazio .foto-vuota { height: 220px; aspect-ratio: auto; border: 0; border-radius: 0; }
.fl-spazio figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 16px;
  background: linear-gradient(180deg, transparent, rgba(29,26,31,.85));
  font-family: var(--font-mono); font-weight: var(--mono-weight); font-size: 12px; letter-spacing: .1em;
  text-transform: uppercase; color: #fff;
}

/* --- Perché BULB: la fascia rossa ------------------------------------------ */
.fl-perche { background: var(--bulb-red); padding: 96px 0; }
.fl-perche .eyebrow { color: #fff; }
.fl-perche .fl-h2-grande { font-size: clamp(38px, 6vw, 80px); line-height: .98; max-width: 14ch; }
.fl-perche .fl-lead { color: #fff; max-width: 48ch; font-size: 18px; margin-top: 22px; }
.fl-card-grid { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 44px; }
.fl-card {
  flex: 1 1 260px; background: #750030; border: 0; border-radius: 20px; padding: 30px 26px;
  display: flex; flex-direction: column; gap: 12px;
}
.fl-card-k { font-family: var(--font-mono); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--bulb-lime); }
.fl-card h3 { font-weight: 800; font-size: 23px; letter-spacing: -.01em; line-height: 1.15; }
.fl-card p { color: #fff; font-size: 15.5px; }

/* --- Benefici: la fascia grigio chiaro ------------------------------------- */
.fl-benefici {
  --ink: #1D1A1F; --ink-soft: #4A474D; --ink-mute: #4A474D;
  background: #D6D6D6; color: #1D1A1F; padding: 96px 0;
}
.fl-eyebrow-lime { color: var(--bulb-red-deep); }
.fl-benefici-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin-top: 44px; }
.fl-beneficio {
  background: #fff; border: 0; border-radius: 18px; padding: 24px 22px;
  display: flex; gap: 14px; align-items: flex-start;
}
/* Il quadratino rosso del layout. */
.fl-bullet { width: 12px; height: 12px; background: var(--bulb-red); border-radius: 3px; flex-shrink: 0; margin-top: 7px; }
.fl-beneficio p { font-size: 17.5px; font-weight: 600; color: #1D1A1F; }
.fl-benefici-chiusura {
  font-family: var(--font-display); font-weight: 800; font-size: clamp(20px, 2.4vw, 26px);
  letter-spacing: -.01em; margin: 40px 0 0; max-width: 36ch; color: #1D1A1F;
}

/* --- App -------------------------------------------------------------------- */
.fl-app {
  position: relative; overflow: hidden; padding: 96px 0;
  background:
    radial-gradient(60% 80% at 100% 100%, rgba(220,0,52,.75), rgba(220,0,52,0) 60%),
    radial-gradient(50% 60% at 0% 0%, #3502D3, rgba(53,2,211,0) 60%),
    #170144;
}
.fl-app-grid { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.fl-app-grid > div:first-child { flex: 1 1 460px; }
.fl-app .fl-h2 { max-width: 14ch; }
.fl-app-media { flex: 0 1 300px; max-width: 300px; margin: 0 auto; }
/* Il riquadro dello screenshot del layout: niente cornice da telefono. */
.fl-app .telefono {
  aspect-ratio: 9 / 17; padding: 0; border: 0; border-radius: 32px; overflow: hidden;
  background: #170144; box-shadow: 0 30px 80px rgba(0,0,0,.45);
}
.fl-app .telefono > video, .fl-app .telefono > img { border-radius: 0; }
.fl-app-testo { color: #fff; font-size: 18px; max-width: 44ch; margin: 26px 0 0; }
.fl-app-claim { font-family: var(--font-display); font-weight: 800; font-size: 21px; margin: 14px 0 0; max-width: 48ch; }
.fl-app-cta { margin-top: 30px; }

/* --- Form principale -------------------------------------------------------- */
.fl-dati { background: #1D1A1F; padding: 96px 0; }
.fl-dati-in { max-width: 640px; margin: 0 auto; text-align: center; }
.fl-dati .fl-h2 { font-size: clamp(32px, 4.6vw, 56px); margin: 16px auto 0; }
.fl-dati .fl-lead { max-width: 46ch; margin: 20px auto 0; }
.fl-dati-form { margin-top: 34px; text-align: left; }
.fl-form-nota { font-size: 13px; color: #B4B3B4; text-align: center; margin-top: 10px; }
/* Il riquadro in evidenza sopra il modulo: la regola da non perdere (la stessa
   email nell'app), in lime come il sottolineato dell'hero. */
.fl-regola {
  max-width: 46ch; margin: 26px auto 0; padding: 18px 24px 20px;
  background: var(--bulb-lime); color: #1D1A1F; border-radius: 18px;
}
.fl-regola-k {
  display: block; font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #1D1A1F;
}
.fl-regola-k::before { content: "[" / ""; margin-right: .5em; }
.fl-regola-k::after { content: "]" / ""; margin-left: .3em; }
.fl-regola p {
  margin: 8px 0 0; font-family: var(--font-display); font-weight: 800;
  font-size: clamp(18px, 2vw, 21px); line-height: 1.3; letter-spacing: -.01em; text-wrap: balance;
}

/* --- Recensioni: la fascia bianca ------------------------------------------- */
.fl-recensioni { background: #fff; color: #1D1A1F; padding: 96px 0 40px; }
.fl-eyebrow-scuro { color: #4A474D; font-size: 12.5px; letter-spacing: .18em; }
.fl-voto .eyebrow::before, .fl-voto .eyebrow::after { content: none; }
.fl-voto { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.fl-voto-n { font-family: var(--font-display); font-weight: 900; font-size: clamp(48px, 8vw, 88px); letter-spacing: -.04em; line-height: 1; }
.fl-voto-n span { color: var(--bulb-red); }
.fl-voto-titolo { font-family: var(--font-display); font-weight: 800; font-size: 26px; margin-top: 4px; letter-spacing: -.02em; }
.fl-recensioni-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 40px; }
.fl-recensione { margin: 0; background: #D6D6D6; border: 0; border-radius: 20px; padding: 26px 24px; }
.fl-stelle { color: var(--bulb-red-deep); font-size: 16px; letter-spacing: 2px; }
.fl-recensione p { margin: 12px 0 18px; font-size: 17px; font-weight: 600; line-height: 1.45; }
.fl-recensione cite {
  font-family: var(--font-mono); font-style: normal; font-size: 12px; letter-spacing: .1em;
  color: #4A474D; text-transform: uppercase;
}
/* Recensione caricata come screenshot: l'immagine è la scheda. */
.fl-recensione-shot { padding: 0; overflow: hidden; align-self: flex-start; background: #fff; }
.fl-recensione-shot img { width: 100%; display: block; }
/* Da Trustpilot (inc/trustpilot.php): voto vero, link al profilo, testi veri e
   più lunghi di quelli scritti a mano, quindi un corpo più leggero. */
.fl-voto-link {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 10px;
  font-weight: 700; font-size: 15px; color: #1D1A1F;
  text-decoration: underline; text-underline-offset: 3px;
}
.fl-voto-link:hover { color: var(--bulb-red-deep); }
.fl-recensione-tp { display: flex; flex-direction: column; }
.fl-recensione-tp .fl-recensione-titolo { margin: 12px 0 0; font-family: var(--font-display); font-weight: 800; font-size: 19px; line-height: 1.25; }
.fl-recensione-tp p:not(.fl-recensione-titolo) { margin: 8px 0 18px; font-size: 16px; font-weight: 500; }
.fl-recensione-tp cite { margin-top: auto; }
.fl-recensione-leggi { margin-top: 8px; font-size: 14px; font-weight: 600; color: #1D1A1F; text-decoration: underline; text-underline-offset: 3px; }
.fl-recensione-leggi:hover { color: var(--bulb-red-deep); }
/* Senza la sezione dei video (spenta dalla pagina) le recensioni chiudono la fascia. */
.fl-recensioni:not(:has(+ .fl-video-rec)) { padding-bottom: 96px; }

/* --- Recensioni video ------------------------------------------------------- */
.fl-video-rec { background: #fff; color: #1D1A1F; padding: 40px 0 96px; }
.fl-videorec-titolo { font-weight: 800; font-size: 26px; margin: 8px 0 0; letter-spacing: -.02em; }
.fl-videorec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; margin-top: 28px; }
.fl-videorec-item { aspect-ratio: 9 / 16; border: 0; border-radius: 18px; overflow: hidden; background: linear-gradient(160deg, var(--bulb-red), #170144); }
.fl-videorec-item:nth-child(even) { background: linear-gradient(160deg, #170144, var(--bulb-red)); }
.fl-videorec-item video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* --- Dove ci trovi ---------------------------------------------------------- */
.fl-dove { background: #1D1A1F; padding: 96px 0; }
.fl-dove-grid { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 44px; align-items: flex-start; }
.fl-mappa-wrap { flex: 1 1 400px; }
/* In alto e non centrato: aprendo una città l'elenco si allunga, e centrato
   farebbe saltare verso l'alto anche le righe sopra. L'elenco è in sv-base.css. */
.fl-citta-lista { flex: 1 1 300px; display: flex; flex-direction: column; }
.fl-citta-lista .fl-lead { margin-top: 0; }

/* La cartina: fondo e reticolo del layout sopra l'Italia di notte. */
.fl-dove .mappa, .fl-dove .mappa-notte {
  border: 0; border-radius: 24px;
  background: radial-gradient(70% 60% at 35% 40%, rgba(220,0,52,.22), transparent 65%), #141116;
}
.fl-dove .mappa-notte::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 46px 46px;
}
.fl-dove .mappa-pin { z-index: 2; }
.fl-dove .mappa-pin:hover, .fl-dove .mappa-pin.is-evidenziata { z-index: 3; }
/* Città aperte in rosso, in arrivo in lime, con l'alone del layout. */
.fl-dove .mappa-notte .mappa-pin.is-attiva .mappa-punto {
  width: 16px; height: 16px; background: var(--bulb-red); animation: none;
  box-shadow: 0 0 0 6px rgba(220,0,52,.2), 0 0 24px 4px rgba(220,0,52,.6);
}
.fl-dove .mappa-notte .mappa-pin:not(.is-attiva) .mappa-punto {
  width: 14px; height: 14px; background: var(--bulb-lime); opacity: 1;
  box-shadow: 0 0 0 6px rgba(177,249,0,.2), 0 0 24px 4px rgba(177,249,0,.6);
}
.fl-dove .mappa-notte .mappa-onda { width: 16px; height: 16px; border: 1px solid rgba(220,0,52,.6); }
.fl-dove .mappa-notte .mappa-pin.is-evidenziata .mappa-punto { transform: scale(1.25); }
.fl-dove .mappa-nome {
  top: 50%; bottom: auto; left: calc(50% + 16px); transform: translateY(-50%);
  background: none; border: 0; padding: 0;
  font-family: var(--font-mono); font-size: 13px; letter-spacing: .06em; text-transform: none;
  text-shadow: 0 1px 6px #000;
}

/* Elenco delle città: righe piene, la città aperta in rosso. */
.fl-dove .sedi-citta { border: 0; border-radius: 14px; background: rgba(255,255,255,.05); box-shadow: none; }
.fl-dove .sedi-citta:has(> .sedi-citta-titolo [aria-expanded="true"]) { border: 0; box-shadow: none; }
.fl-dove .sedi-citta-btn, .fl-dove .sedi-citta-riga { padding: 16px 20px; border-radius: 14px; transition: background .2s ease; }
.fl-dove .sedi-citta-btn[aria-expanded="true"] { background: var(--bulb-red); }
.fl-dove .sedi-citta-btn[aria-expanded="true"] .stato { color: #fff; }
.fl-dove .sedi-citta-nome { font-weight: 800; font-size: 16px; }
.fl-dove .stato { font-size: 12px; letter-spacing: .1em; }
.fl-dove .stato-attiva { color: #B4B3B4; }
.fl-dove .stato-arrivo { color: var(--bulb-lime); }
.fl-dove .sedi-piu { border-radius: 50%; background: transparent; border-color: rgba(255,255,255,.3); }
.fl-dove .sedi-citta-btn[aria-expanded="true"] .sedi-piu { background: #fff; border-color: #fff; }
.fl-dove .sedi-citta-btn[aria-expanded="true"] .sedi-piu::before,
.fl-dove .sedi-citta-btn[aria-expanded="true"] .sedi-piu::after { background: var(--bulb-red); }
.fl-dove .sedi-lista { padding-top: 8px; }
.fl-dove .sede-btn:hover { background: rgba(255,255,255,.06); }

.fl-dove-card { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.fl-box { flex: 1 1 320px; border: 0; border-radius: 20px; padding: 26px 24px; }
.fl-box h4 { font-weight: 800; font-size: 20px; letter-spacing: -.01em; }
.fl-box p { font-size: 15px; margin-top: 6px; margin-bottom: 16px; }
/* Il primo riquadro è rosso con il bottone bianco… */
.fl-dove-card .fl-box:first-child { background: var(--bulb-red); }
.fl-dove-card .fl-box:first-child p { color: #fff; }
.fl-dove-card .fl-box:first-child .btn-primary { background: #fff; color: var(--bulb-red); font-size: 15px; padding: 13px 20px; }
.fl-dove-card .fl-box:first-child .btn-primary:hover { background: #1D1A1F; color: #fff; }
/* …il secondo indaco, con il bottone lime. */
.fl-dove-card .fl-box:last-child { background: #170144; }
.fl-dove-card .fl-box:last-child p { color: #D6D6D6; }
.fl-box:last-child .wpforms-container input[type="text"],
.fl-box:last-child .wpforms-container input[type="email"] {
  background: rgba(255,255,255,.06) !important; border-color: rgba(255,255,255,.16) !important; padding: 13px 15px !important;
}
.fl-box:last-child .wpforms-container button.wpforms-submit {
  background: var(--bulb-lime) !important; color: #1D1A1F !important; font-size: 15px !important; padding: 13px 20px !important;
}
.fl-box:last-child .wpforms-container button.wpforms-submit:hover { background: #fff !important; color: #1D1A1F !important; }

/* --- Popup delle sedi e dei trainer ---------------------------------------- */
.sede-dialog { background: #1D1A1F; border: 0; border-radius: 24px; }
.sede-dialog-chiudi, .sede-galleria-btn, .trainer-carosello .bulb-dialog__close { border-radius: 50%; }
.trainer-carosello .bulb-dialog { --bulb-dialog-bg: #1D1A1F; --bulb-radius: 24px; }

/* --- Footer: quello rosso di sv-base, con il menu di chi si allena --------- */
.foot-menu-col-2 { display: none; }

/* --- Telefono: riquadri con 16px ai lati, come il margine della pagina ---- */
@media (max-width: 640px) {
  .fl-form-card, .fl-passo, .fl-card, .fl-beneficio, .fl-box, .fl-regola,
  .fl-recensione:not(.fl-recensione-shot) { padding-left: 16px; padding-right: 16px; }
}

/* ===========================================================================
   Stile «Celebrate» (19/10/2026, richiesta dell'utente): la landing vestita come
   la pagina evento (pages/celebrate.css): grigio #F5F4F1 (fino al 19/10 sera #CACACA), nero #0D0C0F, rosso
   #C4032F, rosa #F58BA6 per gli accenti sul nero; angoli vivi; titoli Black in
   maiuscolo con la parte in evidenza sottile e a capo; etichette spaziate fra
   parentesi quadre; bottoni squadrati; moduli bianchi a campi sottolineati;
   celle divise da linee sottili al posto delle schede arrotondate.
   Vale solo col body .stile-celebrate, che il template mette quando nella
   pagina «Stile della pagina» = Celebrate: con «v2» la pagina resta com'era.
   Backup di prima: .backup/2026-10-19-prima-dello-stile-celebrate/.
   Scostamenti come in celebrate.css: rosso del testo piccolo sul grigio #A80230
   (il pieno lì fa 3.8:1), segnaposto #757478, etichette a 12px.
   =========================================================================== */
.stile-celebrate {
  --ce-rosso: #C4032F; --ce-rosso-testo: #A80230; --ce-rosa: #F58BA6;
  /* Grigio #F5F4F1 dal 19/10 sera (il «bianco grigino» del mockup della
     Professional Gallery; prima #CACACA): i riquadri bianchi sul grigio hanno il
     bordo del mockup, --ce-bordo-bianco. */
  --ce-nero: #0D0C0F; --ce-grigio: #F5F4F1; --ce-grigio-medio: #9A9A9C; --ce-bordo-bianco: rgba(0,0,0,.1);
  --ce-linea: rgba(13,12,15,.14); --ce-linea-chiara: rgba(255,255,255,.16);
  --bg: var(--ce-grigio); --bg-alt: var(--ce-grigio); --bg-deep: var(--ce-nero); --surface: #fff;
  --accent: var(--ce-rosso); --accent-dark: var(--ce-rosso-testo); --accent-hot: var(--ce-rosso);
  --accent-soft: rgba(196,3,47,.3); --accent-tint: rgba(196,3,47,.12);
  --border: var(--ce-linea); --border-soft: var(--ce-linea); --placeholder: #757478;
  --radius-s: 0; --radius-m: 0; --radius-l: 0;
  --bulb-red: var(--ce-rosso); --bulb-red-deep: var(--ce-rosso-testo);
  background: var(--ce-grigio); color: var(--ce-nero);
}

/* Testata: grigio velato, marchio nero, «Another way» rosso, bottone squadrato. */
.stile-celebrate .site-header {
  --ink: var(--ce-nero);
  background: rgba(245,244,241,.94); border-bottom: 1px solid var(--ce-linea);
}
/* --nav-h sul body: vale per la barra e per lo spazio della testata fissa. */
.stile-celebrate { --nav-h: 64px; }
.stile-celebrate .site-header .brand-logo { filter: brightness(0); }
.stile-celebrate .nav-claim {
  font-family: var(--font-display); font-weight: 400; font-size: 24px;
  letter-spacing: .01em; text-transform: none; color: var(--ce-rosso);
}
.stile-celebrate .nav-links a { font-family: var(--font-mono); font-weight: var(--mono-weight); letter-spacing: var(--mono-tracking); color: var(--ce-nero); }
.stile-celebrate .nav-links a:hover, .stile-celebrate .nav-links a.active { color: var(--ce-rosso-testo); }
/* Il menu a tendina del telefono (sv-responsive.css, sotto i 960px) sul grigio. */
@media (max-width: 960px) {
  .stile-celebrate #main-nav .nav-links { background: var(--ce-grigio); }
}

/* Bottoni: squadrati, maiuscolo spaziato; al passaggio neri. */
.stile-celebrate .btn {
  border-radius: 0; gap: 14px; padding: 20px 30px;
  font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 13px; letter-spacing: var(--mono-tracking); text-transform: uppercase;
}
.stile-celebrate .btn-primary { background: var(--ce-rosso); color: #fff; }
.stile-celebrate .btn-primary:hover { background: var(--ce-nero); color: #fff; }
.stile-celebrate .btn-lg { font-size: 14px; padding: 22px 34px; }
.stile-celebrate .btn-sm { font-size: 12px; padding: 12px 20px; }
.stile-celebrate .mobile-cta {
  background: var(--ce-rosso); border-radius: 0;
  font-family: var(--font-mono); font-weight: var(--mono-weight); font-size: 13px;
  letter-spacing: var(--mono-tracking); text-transform: uppercase;
}

/* Sopratitoli: rossi sul chiaro, rosa sul nero, bianchi sul rosso. */
.stile-celebrate .eyebrow { font-size: 12px; letter-spacing: var(--mono-tracking); color: var(--ce-rosso-testo); }
.stile-celebrate :is(.fl-how, .fl-app, .fl-dove) .eyebrow { color: var(--ce-rosa); }
.stile-celebrate :is(.fl-hero, .fl-perche) .eyebrow { color: #fff; }
.stile-celebrate :is(.fl-recensioni, .fl-benefici) .eyebrow { color: var(--ce-rosso); }

/* Titoli: Black in maiuscolo, la parte in evidenza sottile e a capo. */
.stile-celebrate :is(.fl-h2, .fl-h2-grande) {
  font-size: clamp(40px, 6.4vw, 104px); font-weight: 900; line-height: .88; letter-spacing: -.02em;
}
.stile-celebrate :is(h1, .fl-h2, .fl-h2-grande) .serif {
  display: block; font-weight: 300; color: inherit; text-decoration: none;
}

/* Striscia in alto: grigia, il titolo leggero e grande come il manifesto. */
.stile-celebrate .fl-strip { background: var(--ce-grigio); color: var(--ce-nero); padding: 104px 0 88px; border-bottom: 1px solid var(--ce-linea); }
.stile-celebrate .fl-strip-titolo { font-weight: 300; font-size: clamp(32px, 5vw, 76px); line-height: 1.04; max-width: 20ch; }
.stile-celebrate .fl-strip .ticker-track { color: var(--ce-nero); font-family: var(--font-mono); font-weight: var(--mono-weight); font-size: 13px; letter-spacing: var(--mono-tracking); }
.stile-celebrate .foto-nastro-voce,
.stile-celebrate .fl-strip .foto-nastro-voce, .stile-celebrate .fl-strip .foto-strip figure { border: 0; border-radius: 0; background: var(--ce-nero); }
.stile-celebrate .foto-nastro-voce figcaption { left: 12px; right: auto; bottom: 12px; padding: 7px 10px; background: var(--ce-nero); }
.stile-celebrate .fl-strip-nota {
  color: #3A393D; font-family: var(--font-mono); font-weight: var(--mono-weight);
  font-size: 12px; letter-spacing: var(--mono-tracking); text-transform: uppercase;
}

/* Hero: il sipario rosso della Celebrate, scuro a sinistra dove sta il testo. */
.stile-celebrate .fl-hero {
  /* Il nero sotto il sipario: è il fondo del testo, e quello che misura test-contrasto.js. */
  color: #fff; padding: 104px 0; background-color: var(--ce-nero);
  background-image:
    radial-gradient(ellipse at 84% 20%, #FF9BB4 0%, #E8637F 22%, transparent 52%),
    radial-gradient(ellipse at 40% 46%, #5C0014 0%, transparent 45%),
    linear-gradient(100deg, #050304 0%, #3A030C 34%, #B8243F 64%, #F07A95 100%);
}
.stile-celebrate .fl-hero.band-glow::before {
  inset: 0; filter: none; mix-blend-mode: overlay;
  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);
}
.stile-celebrate .fl-hero-testo h1 { line-height: .88; letter-spacing: -.02em; }
.stile-celebrate .fl-hero-nota { border-radius: 0; background: var(--ce-nero); color: var(--ce-rosa); letter-spacing: var(--mono-tracking); }
.stile-celebrate .fl-form-card { background: #fff; color: var(--ce-nero); border-radius: 0; padding: 40px; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.stile-celebrate .fl-form-eyebrow { color: var(--ce-rosso); letter-spacing: var(--mono-tracking); }
.stile-celebrate .fl-form-titolo { font-weight: 900; text-transform: uppercase; line-height: .95; font-size: clamp(26px, 2.6vw, 34px); }

/* Moduli sul bianco (hero, «Inserisci i tuoi dati», «Non c'è BULB da te?»): campi a
   riga sotto, etichette spaziate, scelte a riquadro, bottone squadrato a tutta
   larghezza. Come .ce-modulo della Celebrate. */
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .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; color: #4A494D !important;
}
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-required-label { color: var(--ce-rosso) !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea) {
  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;
}
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container :is(input, select, textarea):focus { border-bottom-color: var(--ce-rosso) !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container select {
  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;
}
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container select:has(option.placeholder:checked) { color: var(--placeholder) !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-radio li {
  border: 1px solid #D3D3D5; border-radius: 0; background: #fff; align-items: center;
}
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-radio label { margin: 0 !important; line-height: 1.3 !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-radio li:hover { border-color: var(--ce-nero); }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-radio label { color: var(--ce-nero) !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-radio li:has(input:checked) { background: var(--ce-nero); border-color: var(--ce-nero); }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-radio li:has(input:checked) label { color: #fff !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-radio li:has(input:focus-visible) { outline-color: var(--ce-rosso); }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-checkbox label { color: var(--ce-nero) !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-checkbox:has(li + li) label.wpforms-field-label-inline { color: var(--ce-nero) !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container input[type="checkbox"] { width: 18px !important; height: 18px !important; accent-color: var(--ce-rosso); }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container .wpforms-field-description { color: #6B6A6E !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container :is(.wpforms-error, label.wpforms-error, .wpforms-error-container) { color: var(--ce-rosso-testo) !important; }
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container button.wpforms-submit {
  width: 100% !important; border-radius: 0 !important; padding: 22px !important;
  background: var(--ce-rosso) !important; color: #fff !important;
  font-family: var(--font-mono) !important; font-weight: var(--mono-weight) !important;
  font-size: 14px !important; letter-spacing: var(--mono-tracking) !important; text-transform: uppercase !important;
}
.stile-celebrate :is(.fl-form-card, .fl-dati-form, .fl-box) .wpforms-container button.wpforms-submit:hover { background: var(--ce-nero) !important; color: #fff !important; }

/* Come funziona: il nero della «Giornata», celle divise da linee sottili. */
.stile-celebrate .fl-how { background: var(--ce-nero); color: #fff; padding: 120px 0; }
.stile-celebrate .fl-passi {
  gap: 1px; margin-top: 56px; border-radius: 0;
  background: var(--ce-linea-chiara); border: 1px solid var(--ce-linea-chiara);
}
.stile-celebrate .fl-passo { background: var(--ce-nero); padding: 28px 28px 32px; min-height: 0; }
.stile-celebrate .fl-passo-n,
.stile-celebrate .fl-passo:last-child .fl-passo-n { font-size: 15px; letter-spacing: .06em; color: var(--ce-rosa); margin-bottom: 56px; }
.stile-celebrate .fl-passo h3 { font-size: clamp(22px, 2.2vw, 30px); font-weight: 900; line-height: 1; text-transform: uppercase; }

/* Trainer e spazi: grigio, schede bianche squadrate, didascalie in un riquadro nero. */
.stile-celebrate .fl-gallery { background: var(--ce-grigio); color: var(--ce-nero); padding: 120px 0; }
.stile-celebrate .fl-gallery-head p { color: #2B2A2E; }
.stile-celebrate .trainer-carosello .bulb-carousel { --bulb-dot-active: var(--ce-rosso); }
.stile-celebrate .trainer-carosello .bulb-carousel__arrow, .stile-celebrate .trainer-carosello .bulb-carousel__dot::before { border-radius: 0; }
.stile-celebrate .trainer-carosello .bulb-card { background: #fff; color: var(--ce-nero); border-radius: 0; box-shadow: 0 0 0 1px var(--ce-bordo-bianco); }
.stile-celebrate .trainer-carosello .bulb-card:has(.bulb-card__open):hover { box-shadow: 0 0 0 1px var(--ce-nero); }
.stile-celebrate .trainer-carosello .bulb-card__title { color: var(--ce-nero); font-weight: 900; text-transform: uppercase; }
.stile-celebrate .trainer-carosello .bulb-card .bulb-tag { color: #4A494D; }
/* Il popup del trainer resta nero: lì sopra il rosso del testo e il grigio scuro
   delle schede non si leggono, quindi rosa e grigio chiaro. */
.stile-celebrate .trainer-carosello .bulb-dialog { --bulb-dialog-bg: var(--ce-nero); --bulb-radius: 0; --accent-dark: var(--ce-rosa); }
.stile-celebrate .trainer-carosello .bulb-dialog .bulb-popup__meta { color: var(--ce-rosa); }
.stile-celebrate .trainer-carosello .bulb-dialog .bulb-tag { color: #C9C9CC; }
.stile-celebrate :is(.fl-spazio, .fl-trainer) { border-radius: 0; }
.stile-celebrate .fl-trainer { background: #fff; color: var(--ce-nero); box-shadow: 0 0 0 1px var(--ce-bordo-bianco); }
.stile-celebrate .fl-spazio figcaption { left: 14px; right: auto; bottom: 14px; padding: 8px 12px; background: var(--ce-nero); }
.stile-celebrate .fl-spazio:first-child figcaption { background: var(--ce-rosso); }

/* Perché BULB: il rosso pieno, le schede diventano celle con le linee. */
.stile-celebrate .fl-perche { background: var(--ce-rosso); color: #fff; padding: 120px 0; }
.stile-celebrate .fl-perche .fl-h2-grande { font-size: clamp(44px, 7vw, 112px); max-width: 16ch; }
.stile-celebrate .fl-card-grid { gap: 1px; margin-top: 64px; background: rgba(255,255,255,.3); border: 1px solid rgba(255,255,255,.3); }
.stile-celebrate .fl-card { background: var(--ce-rosso); border-radius: 0; padding: 28px 28px 36px; }
.stile-celebrate .fl-card-k { color: #fff; letter-spacing: var(--mono-tracking); }
.stile-celebrate .fl-card h3 { font-size: 24px; font-weight: 900; line-height: 1; text-transform: uppercase; }

/* Benefici: il bianco, le voci in celle col quadratino rosso. */
.stile-celebrate .fl-benefici { background: #fff; color: var(--ce-nero); padding: 120px 0; }
.stile-celebrate .fl-benefici-grid { gap: 1px; margin-top: 56px; background: var(--ce-linea); border: 1px solid var(--ce-linea); }
.stile-celebrate .fl-beneficio { background: #fff; border-radius: 0; padding: 26px 24px; }
.stile-celebrate .fl-bullet { border-radius: 0; background: var(--ce-rosso); }
.stile-celebrate .fl-beneficio p { font-size: 18px; font-weight: 600; color: var(--ce-nero); }
.stile-celebrate .fl-benefici-chiusura { font-weight: 300; font-size: clamp(24px, 3vw, 40px); line-height: 1.15; max-width: 30ch; }

/* Per iniziare: il nero della Hero Class, col rosso che sale dal basso. */
.stile-celebrate .fl-app {
  color: #fff; padding: 120px 0;
  background: radial-gradient(ellipse at 8% 92%, rgba(196,3,47,.75) 0%, transparent 55%), var(--ce-nero);
}
.stile-celebrate .fl-app .telefono { border-radius: 0; background: var(--ce-nero); box-shadow: 0 0 0 1px var(--ce-linea-chiara); }
.stile-celebrate .fl-app-testo { color: #D9D9DB; }
.stile-celebrate .fl-app-claim { font-weight: 300; font-size: 26px; }

/* Il modulo in fondo: grigio, testo a sinistra che resta fermo, modulo bianco a
   destra (come «Iscriviti alle attività»); la regola sull'email in un riquadro nero. */
.stile-celebrate .fl-dati { background: var(--ce-grigio); color: var(--ce-nero); padding: 120px 0; }
.stile-celebrate .fl-dati-in {
  max-width: none; text-align: left;
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 72px; align-items: start;
}
.stile-celebrate .fl-dati-in > .reveal { position: sticky; top: 100px; }
.stile-celebrate .fl-dati .fl-h2 { font-size: clamp(40px, 5.4vw, 84px); margin: 20px 0 0; }
.stile-celebrate .fl-dati .fl-lead { color: #2B2A2E; margin: 24px 0 0; }
.stile-celebrate .fl-dati-form { margin-top: 0; background: #fff; padding: 40px; border: 1px solid var(--ce-bordo-bianco); }
.stile-celebrate .fl-form-nota { color: #6B6A6E; text-align: left; margin-top: 20px; }
.stile-celebrate .fl-regola { max-width: 460px; margin: 32px 0 0; background: var(--ce-nero); color: #fff; border-radius: 0; padding: 22px 24px 24px; }
.stile-celebrate .fl-regola-k { color: var(--ce-rosa); letter-spacing: var(--mono-tracking); }
.stile-celebrate .fl-regola p { font-weight: 900; font-size: clamp(20px, 2vw, 24px); line-height: 1.2; }

/* Recensioni: il bianco, voto grande, recensioni in celle. */
.stile-celebrate .fl-recensioni { background: #fff; color: var(--ce-nero); }
.stile-celebrate .fl-voto-n span { color: var(--ce-rosso); }
.stile-celebrate .fl-voto-titolo { font-weight: 900; text-transform: uppercase; font-size: clamp(26px, 3vw, 40px); line-height: .95; }
.stile-celebrate .fl-voto-link, .stile-celebrate .fl-recensione-leggi {
  font-family: var(--font-mono); font-weight: var(--mono-weight); font-size: 12px;
  letter-spacing: var(--mono-tracking); text-transform: uppercase;
}
.stile-celebrate .fl-voto-link:hover, .stile-celebrate .fl-recensione-leggi:hover { color: var(--ce-rosso-testo); }
.stile-celebrate .fl-recensioni-grid { gap: 1px; margin-top: 48px; background: var(--ce-linea); border: 1px solid var(--ce-linea); }
.stile-celebrate .fl-recensione { background: #fff; border-radius: 0; padding: 32px 28px; }
.stile-celebrate .fl-stelle { color: var(--ce-rosso); }
.stile-celebrate .fl-recensione-tp .fl-recensione-titolo { font-weight: 900; text-transform: uppercase; font-size: 20px; line-height: 1.05; }
.stile-celebrate .fl-video-rec { background: #fff; }
.stile-celebrate .fl-videorec-item { border-radius: 0; background: linear-gradient(160deg, var(--ce-rosso), var(--ce-nero)); }

/* Dove ci trovi: il nero, righe a filo, città aperta in rosso, città in arrivo in rosa. */
.stile-celebrate .fl-dove { background: var(--ce-nero); color: #fff; }
.stile-celebrate .fl-dove .mappa, .stile-celebrate .fl-dove .mappa-notte { border-radius: 0; }
.stile-celebrate .fl-dove .sedi-elenco { gap: 0; border-top: 1px solid var(--ce-linea-chiara); }
.stile-celebrate .fl-dove .sedi-citta { background: none; border-radius: 0; border-bottom: 1px solid var(--ce-linea-chiara); }
.stile-celebrate .fl-dove .sedi-citta-nome { font-weight: 900; text-transform: uppercase; }
.stile-celebrate .fl-dove .sedi-citta-btn[aria-expanded="true"] { background: var(--ce-rosso); }
.stile-celebrate .fl-dove .sedi-piu { border-radius: 0; }
.stile-celebrate .fl-dove .stato-arrivo { color: var(--ce-rosa); }
.stile-celebrate .fl-dove .mappa-notte .mappa-pin.is-attiva .mappa-punto { background: var(--ce-rosso); box-shadow: 0 0 0 6px rgba(196,3,47,.2), 0 0 24px 4px rgba(196,3,47,.6); }
.stile-celebrate .fl-dove .mappa-notte .mappa-pin:not(.is-attiva) .mappa-punto { background: var(--ce-rosa); box-shadow: 0 0 0 6px rgba(245,139,166,.2), 0 0 24px 4px rgba(245,139,166,.55); }
.stile-celebrate .sede-dialog { background: var(--ce-nero); }
.stile-celebrate .fl-box { border-radius: 0; padding: 32px 28px; }
.stile-celebrate .fl-box h4 { font-weight: 900; text-transform: uppercase; font-size: 22px; }
.stile-celebrate .fl-dove-card .fl-box:first-child { background: var(--ce-rosso); }
.stile-celebrate .fl-dove-card .fl-box:last-child { background: #fff; color: var(--ce-nero); }
.stile-celebrate .fl-dove-card .fl-box:last-child p { color: #2B2A2E; }
.stile-celebrate .fl-box:last-child .wpforms-container button.wpforms-submit { background: var(--ce-nero) !important; }
.stile-celebrate .fl-box:last-child .wpforms-container button.wpforms-submit:hover { background: var(--ce-rosso) !important; }

/* Footer: il rosso della Celebrate, scritta grande più stretta. */
.stile-celebrate .site-footer { background: var(--ce-rosso); }
.stile-celebrate .foot-manifesto-titolo { letter-spacing: -.02em; line-height: .86; }
.stile-celebrate .foot-hashtag { font-family: var(--font-display); font-weight: 300; }

/* Tablet e telefono: come la Celebrate, una colonna sotto i 980px. */
@media (max-width: 980px) {
  /* Una colonna: il testo sta sopra il modulo, quindi il sipario scende in
     verticale, scuro in alto sotto al testo bianco e rosso sotto il modulo. */
  .stile-celebrate .fl-hero {
    background-image:
      radial-gradient(ellipse at 50% 100%, #E8637F 0%, transparent 55%),
      linear-gradient(180deg, #050304 0%, #3A030C 38%, #8E0F2C 70%, #C4032F 100%);
  }
  .stile-celebrate .fl-dati-in { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .stile-celebrate .fl-dati-in > .reveal { position: static; }
  .stile-celebrate .fl-dati-form { padding: 28px 20px; }
  .stile-celebrate :is(.fl-how, .fl-gallery, .fl-perche, .fl-benefici, .fl-app, .fl-dati) { padding: 88px 0; }
}
@media (max-width: 640px) {
  .stile-celebrate .fl-form-card { padding: 28px 16px; }
  .stile-celebrate .fl-dati-form { padding: 24px 16px; }
  .stile-celebrate :is(.fl-passo, .fl-card, .fl-beneficio, .fl-box, .fl-recensione:not(.fl-recensione-shot)) { padding-left: 16px; padding-right: 16px; }
  .stile-celebrate .fl-regola { padding-left: 16px; padding-right: 16px; }
  .stile-celebrate .site-header .nav-claim { font-size: 20px; }
  .stile-celebrate .fl-passo-n, .stile-celebrate .fl-passo:last-child .fl-passo-n { margin-bottom: 24px; }
  .stile-celebrate .btn-lg { padding: 20px 24px; }
}
