/* BackupME Institute — sistema di design (5/9/2026, rev. palette reale)
   Pattern strutturale (header/hero-video/cookie-banner/FAQ/footer) riusato
   da FUERTE-01. Palette sostituita con i colori reali del brand
   (logo + CSS del sito live backupmeinstitute.com), confermata da Riccardo
   il 5/9/2026: sfondo CHIARO (non dark, scelta deliberata per questo brand,
   diversa da FuerteVenture) + famiglia di accenti blu/viola/magenta.
   Le sezioni hero (Home/Prodotti/Quiz) restano isole scure con testo chiaro
   sopra immagine/video — stesso principio già usato su FUERTE-01 per gli
   hero fotografici dentro un sito altrimenti chiaro.
*/
:root{
  --bm-bg:#ffffff;
  --bm-bg-soft:#f6f7fb;
  --bm-panel:#f5f6fa;
  --bm-panel-2:#eef0f7;
  --bm-text:#14162a;
  --bm-soft:rgba(20,22,42,.74);
  --bm-muted:rgba(20,22,42,.56);
  --bm-line:rgba(20,22,42,.12);

  /* famiglia di accenti reali (logo + CSS live), variati in tonalita'/
     saturazione per ottenere un azzurro e un violetto distinti */
  --bm-blue:#007BDA;       /* primario: CTA, link, trattino decorativo, corsivi */
  --bm-azzurro:#2FA7E0;    /* variante piu' chiara/ciano dello stesso blu */
  --bm-indigo:#3C5BFF;     /* ponte blu-viola, decorativo */
  --bm-violet:#8F52B8;     /* viola (dal brain del logo #B266C4, scurito per contrasto AA su bianco) */
  --bm-magenta:#DB0EB7;    /* accento piu' vivido, solo per dettagli puntuali */

  --bm-accent:var(--bm-blue);
  --bm-accent-soft:rgba(0,123,218,.09);
  --bm-accent-text:#ffffff;

  /* hero scure: overlay + nodi, sulla stessa famiglia colore */
  --bm-hero-bg:#0b1020;
  --bm-hero-text:#f5f7ff;
  --bm-hero-soft:rgba(245,247,255,.82);

  --bm-radius:14px;
  --bm-maxw:1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body.bm{
  margin:0; background:var(--bm-bg); color:var(--bm-text);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
.bm h1,.bm h2,.bm h3,.bm h4{
  font-family:"Fraunces","Playfair Display",Georgia,serif;
  font-weight:500; line-height:1.18; margin:0 0 .5em; color:var(--bm-text);
}
.bm em.bm-accent{ font-style:italic; color:var(--bm-violet); }
.bm p{ margin:0 0 1em; color:var(--bm-soft); }
.bm a{ color:inherit; text-decoration:none; }
.bm img,.bm video{ max-width:100%; display:block; }
.bm .skip-link{ position:absolute; left:-999px; top:0; background:var(--bm-blue); color:#fff; padding:10px 16px; z-index:200; }
.bm .skip-link:focus{ left:10px; top:10px; }

/* ---------- layout helpers ---------- */
.bm-wrap{ max-width:var(--bm-maxw); margin:0 auto; padding:0 24px; }
.bm-section{ padding:88px 0; }
.bm-section--tight{ padding:56px 0; }
.bm-kicker{
  display:inline-flex; align-items:center; gap:10px; font-size:12.5px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--bm-blue);
  font-weight:600; margin-bottom:16px;
}
.bm-kicker::before{ content:""; width:20px; height:1px; background:var(--bm-blue); box-shadow:0 0 4px rgba(0,123,218,.65); }
.bm-head{ max-width:680px; margin:0 0 44px; }
.bm-head--center{ margin-left:auto; margin-right:auto; text-align:center; }
.bm-head h2{ font-size:clamp(28px,3.4vw,40px); }
.bm-head p{ font-size:17px; }

.bm-btn{
  display:inline-flex; align-items:center; gap:8px; padding:14px 26px;
  border-radius:999px; font-size:15px; font-weight:600; border:1px solid transparent;
  cursor:pointer; transition:transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}
.bm-btn--solid{ background:var(--bm-blue); color:#fff; }
.bm-btn--solid:hover{ transform:translateY(-2px); background:#0068ba; }
.bm-btn--outline{ border-color:var(--bm-line); color:var(--bm-text); }
.bm-btn--outline:hover{ border-color:var(--bm-blue); color:var(--bm-blue); }
.bm-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.bm-head--center .bm-actions{ justify-content:center; }

/* hero (scure): bottoni chiari sopra media scuro */
.bm-hero .bm-btn--outline{ border-color:rgba(245,247,255,.35); color:var(--bm-hero-text); }
.bm-hero .bm-btn--outline:hover{ border-color:#fff; color:#fff; }

/* ---------- header ---------- */
.bm-header{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.86);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--bm-line);
}
.bm-header__inner{
  max-width:var(--bm-maxw); margin:0 auto; padding:0 24px;
  min-height:78px; display:grid; grid-template-columns:150px 1fr 150px; align-items:center;
}
.bm-header__left{ display:flex; justify-self:start; }
.bm-header__logo{ justify-self:center; display:flex; align-items:center; }
.bm-header__logo-img{ height:32px; width:auto; display:block; }
@media (max-width:480px){ .bm-header__logo-img{ height:26px; } }
.bm-header__actions{ display:flex; justify-self:end; align-items:center; gap:6px; }
.bm-burger{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--bm-line);
  background:transparent; color:var(--bm-text); display:flex; align-items:center; justify-content:center;
  cursor:pointer;
}
.bm-burger span{ position:relative; display:block; width:16px; height:1px; background:currentColor; }
.bm-burger span::before,.bm-burger span::after{ content:""; position:absolute; left:0; width:16px; height:1px; background:currentColor; transition:.2s; }
.bm-burger span::before{ top:-5px; } .bm-burger span::after{ top:5px; }
.bm-header.is-open .bm-burger span{ background:transparent; }
.bm-header.is-open .bm-burger span::before{ top:0; transform:rotate(45deg); }
.bm-header.is-open .bm-burger span::after{ top:0; transform:rotate(-45deg); }
.bm-header__lang{ display:flex; gap:2px; }
.bm-header__lang a{
  display:inline-flex; align-items:center; justify-content:center; min-width:28px; height:28px;
  padding:0 6px; border-radius:999px; font-size:11px; font-weight:600; color:var(--bm-muted);
}
.bm-header__lang a:hover,.bm-header__lang a.is-active{ color:#fff; background:var(--bm-blue); }
.bm-header__panel{
  display:none; border-top:1px solid var(--bm-line); background:var(--bm-bg-soft);
}
.bm-header.is-open .bm-header__panel{ display:block; }
.bm-header__panel a{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 24px; border-bottom:1px solid var(--bm-line); font-size:15px; max-width:var(--bm-maxw); margin:0 auto;
  color:var(--bm-text);
}
.bm-header__panel a:hover{ color:var(--bm-blue); }
.bm-header__panel a span{ color:var(--bm-muted); font-size:12px; }
@media (max-width:860px){
  .bm-header__inner{ grid-template-columns:76px 1fr 132px; }
  .bm-header__lang{ gap:1px; }
  .bm-header__lang a{ min-width:24px; height:24px; padding:0 4px; font-size:10px; }
}
@media (max-width:480px){
  .bm-header__inner{ grid-template-columns:64px 1fr 118px; padding-left:16px; padding-right:16px; }
  .bm-header__lang a{ min-width:21px; height:21px; padding:0 2px; font-size:9px; }
}
/* footer lang switch riusa gli stessi stili header ma su sfondo chiaro-soft: invariato */
.bm-footer .bm-header__lang a{ color:var(--bm-muted); }
.bm-footer .bm-header__lang a:hover,.bm-footer .bm-header__lang a.is-active{ color:#fff; background:var(--bm-blue); }

/* ---------- hero (isole scure, come su FUERTE-01) ---------- */
.bm-hero{ position:relative; min-height:88vh; display:flex; align-items:center; padding:120px 0 80px; overflow:hidden; background:var(--bm-hero-bg); }
.bm-hero--page{
  min-height:auto; padding:76px 0 56px; background:var(--bm-bg-soft); color:var(--bm-text);
}
/* Selettori doppi (.bm-hero.bm-hero--page, non solo .bm-hero--page) per
   battere in specificita', non solo per ordine, le regole "hero scura"
   sotto (.bm-hero h1 ecc.) - con pari specificita' e ordine sfortunato nel
   file, il testo chiaro pensato per le hero scure finiva applicato anche
   qui, quasi invisibile su sfondo chiaro (bug trovato 5/9/2026, stesso
   pattern di specificita' gia' documentato su FUERTE-01). */
.bm-hero.bm-hero--page h1{ color:var(--bm-text); }
.bm-hero.bm-hero--page .bm-hero__lead{ color:var(--bm-soft); }
.bm-hero.bm-hero--page .bm-kicker{ color:var(--bm-blue); }
.bm-hero.bm-hero--page .bm-kicker::before{ background:var(--bm-blue); box-shadow:0 0 4px rgba(0,123,218,.65); }
.bm-hero__media{ position:absolute; inset:0; z-index:0; overflow:hidden; background:var(--bm-hero-bg); }
.bm-hero__media video,.bm-hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bm-hero__media::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(6,9,20,.45) 0%,rgba(6,9,20,.68) 55%,rgba(6,9,20,.9) 100%);
}
[data-video-media].is-video-blocked video{ display:none; }
[data-video-media] .bm-hero__fallback{ display:none; }
[data-video-media].is-video-blocked .bm-hero__fallback,
[data-video-media].bm-no-media .bm-hero__fallback{ display:block; }
[data-video-media].bm-no-media video{ display:none; }

/* fallback animato: "luce + nodi sinaptici" nella famiglia blu/viola/magenta
   reale, finche' i video Krea non sono pronti. */
.bm-hero__fallback{ position:absolute; inset:0; }
.bm-hero__fallback i{
  position:absolute; border-radius:50%; filter:blur(2px);
  background:radial-gradient(circle,var(--bm-blue) 0%,rgba(0,123,218,0) 70%);
  opacity:0; animation:bmPulse 7s ease-in-out infinite;
}
.bm-hero__fallback i:nth-child(1){ width:180px; height:180px; top:18%; left:12%; animation-delay:.2s; }
.bm-hero__fallback i:nth-child(2){ width:120px; height:120px; top:60%; left:22%; background:radial-gradient(circle,var(--bm-indigo) 0%,rgba(60,91,255,0) 70%); animation-delay:2.1s; }
.bm-hero__fallback i:nth-child(3){ width:220px; height:220px; top:8%; left:62%; background:radial-gradient(circle,var(--bm-magenta) 0%,rgba(219,14,183,0) 70%); animation-delay:3.4s; }
.bm-hero__fallback i:nth-child(4){ width:140px; height:140px; top:66%; left:70%; background:radial-gradient(circle,var(--bm-violet) 0%,rgba(155,95,192,0) 70%); animation-delay:1.1s; }
.bm-hero__fallback i:nth-child(5){ width:100px; height:100px; top:38%; left:44%; background:radial-gradient(circle,var(--bm-azzurro) 0%,rgba(47,167,224,0) 70%); animation-delay:4.6s; }
@keyframes bmPulse{ 0%,100%{ opacity:0; transform:scale(.85); } 45%{ opacity:.6; transform:scale(1.05); } 70%{ opacity:.18; transform:scale(1); } }
/* variante "sala d'attesa" per il Quiz: un solo respiro calmo */
.bm-hero--calm .bm-hero__fallback i{ animation:none; opacity:0; }
.bm-hero--calm .bm-hero__fallback i:nth-child(1){
  width:340px; height:340px; top:30%; left:38%; opacity:.4; background:radial-gradient(circle,var(--bm-azzurro) 0%,rgba(47,167,224,0) 70%);
  animation:bmBreathe 8s ease-in-out infinite;
}
.bm-hero--calm .bm-hero__fallback i:not(:nth-child(1)){ display:none; }
@keyframes bmBreathe{ 0%,100%{ transform:scale(.92); opacity:.24; } 50%{ transform:scale(1.08); opacity:.44; } }

.bm-hero__in{ position:relative; z-index:2; max-width:760px; }
.bm-hero__in.bm-center{ margin:0 auto; text-align:center; max-width:820px; }
.bm-hero h1{ font-size:clamp(34px,5vw,58px); color:var(--bm-hero-text); }
.bm-hero .bm-hero__lead{ font-size:clamp(16px,1.9vw,19px); color:var(--bm-hero-soft); max-width:620px; }
.bm-hero.bm-center .bm-hero__lead{ margin-left:auto; margin-right:auto; }
.bm-hero__actions{ margin-top:30px; }
.bm-hero .bm-kicker{ color:#bcd7ff; }
.bm-hero .bm-kicker::before{ background:#bcd7ff; box-shadow:0 0 4px rgba(188,215,255,.7); }

/* ---------- fascia scura di transizione (sotto l'hero video Home) ---------- */
/* Blu/viola scuro coerente con i colori del video hero, non nero neutro -
   attutisce lo stacco netto tra il video scuro e il bianco della pagina. */
.bm-section--dark{
  background:linear-gradient(160deg,var(--bm-hero-bg) 0%,#170f30 100%);
  color:var(--bm-hero-text);
}
/* Selettori .bm-section.bm-section--dark (non solo .bm-section--dark) per
   avere specificita' garantita sopra .bm-card p ecc. a prescindere
   dall'ordine nel file - stesso accorgimento gia' preso per le hero. */
/* h2/p diretti nella sezione, non solo dentro .bm-head - bug trovato
   5/9/2026: la sezione "Collaborazioni aperte" non usava il wrapper
   .bm-head, quindi restava scuro-su-scuro (nessuna delle due regole
   sopra la intercettava). */
.bm-section.bm-section--dark h2{ color:var(--bm-hero-text); }
.bm-section.bm-section--dark p{ color:var(--bm-hero-soft); }
.bm-section.bm-section--dark .bm-kicker{ color:var(--bm-azzurro); }
.bm-section.bm-section--dark .bm-kicker::before{ background:var(--bm-azzurro); box-shadow:0 0 4px rgba(47,167,224,.7); }
.bm-section.bm-section--dark .bm-card{ background:rgba(245,247,255,.06); border-color:rgba(245,247,255,.14); }
.bm-section.bm-section--dark .bm-card h3{ color:var(--bm-hero-text); }
.bm-section.bm-section--dark .bm-card p{ color:var(--bm-hero-soft); }
.bm-section.bm-section--dark .bm-card__link{ color:var(--bm-azzurro); }

/* ---------- cards ---------- */
.bm-grid{ display:grid; gap:22px; }
.bm-grid--3{ grid-template-columns:repeat(3,1fr); }
.bm-grid--2{ grid-template-columns:repeat(2,1fr); }
@media (max-width:900px){ .bm-grid--3,.bm-grid--2{ grid-template-columns:1fr; } }
.bm-card{
  background:var(--bm-panel); border:1px solid var(--bm-line); border-radius:var(--bm-radius);
  padding:32px; display:flex; flex-direction:column; gap:14px;
}
.bm-card h3{ font-size:21px; }
.bm-card p{ color:var(--bm-muted); font-size:15px; margin:0; }
.bm-card .bm-tag{
  align-self:flex-start; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px; font-weight:700;
  background:var(--bm-accent-soft); color:var(--bm-blue);
}
/* tag differenziato per prodotto: stesso accento primario per CTA, ma un
   accento secondario diverso per card, cosi' i tre prodotti restano
   riconoscibili senza appesantire la gerarchia (mai tutti allo stesso peso) */
.bm-card .bm-tag--violet{ background:rgba(155,95,192,.12); color:var(--bm-violet); }
.bm-card .bm-tag--magenta{ background:rgba(219,14,183,.10); color:var(--bm-magenta); }
/* Sui riquadri scuri (card prodotto della Home) i colori chiari pensati per
   sfondo bianco scendono sotto AA - varianti piu' chiare, verificate
   >6.5:1 sul fondo scuro delle card (trovato dall'audit del 5/9/2026). */
.bm-section.bm-section--dark .bm-card .bm-tag{ background:rgba(47,167,224,.16); color:var(--bm-azzurro); }
.bm-section.bm-section--dark .bm-card .bm-tag--violet{ background:rgba(201,166,230,.16); color:#C9A6E6; }
.bm-section.bm-section--dark .bm-card .bm-tag--magenta{ background:rgba(242,127,209,.16); color:#F27FD1; }
.bm-card__link{ margin-top:auto; font-weight:600; color:var(--bm-blue); display:inline-flex; align-items:center; gap:6px; }

/* ---------- prodotti (pagina unica, sezioni interne) ---------- */
.bm-product{ padding:70px 0; border-top:1px solid var(--bm-line); }
.bm-product:first-of-type{ border-top:0; }
.bm-product__grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
@media (max-width:900px){ .bm-product__grid{ grid-template-columns:1fr; gap:28px; } }
.bm-product h2{ font-size:clamp(26px,3vw,34px); }
.bm-disclaimer{
  margin-top:18px; padding:16px 18px; border-radius:10px; background:var(--bm-accent-soft);
  border:1px solid rgba(0,123,218,.22); font-size:14px; color:var(--bm-text);
}
.bm-disclaimer strong{ color:var(--bm-blue); }
.bm-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.bm-list li{ padding-left:22px; position:relative; color:var(--bm-soft); font-size:15px; }
.bm-list li::before{ content:"\2713"; position:absolute; left:0; color:var(--bm-blue); font-weight:700; }
.bm-qualify{ margin-top:36px; background:var(--bm-bg-soft); }
.bm-qualify h4{ font-family:"Fraunces",serif; font-size:19px; font-weight:500; margin-bottom:16px; color:var(--bm-text); }
.bm-qualify .bm-list{ gap:10px; }
.bm-qualify .bm-list li::before{ color:var(--bm-violet); }

/* ---------- steps (come funziona) ---------- */
.bm-steps{ counter-reset:bmstep; display:flex; flex-direction:column; gap:0; }
.bm-step{ display:grid; grid-template-columns:56px 1fr; gap:20px; padding:26px 0; border-top:1px solid var(--bm-line); }
.bm-step:first-child{ border-top:0; }
.bm-step__num{ font-family:"Fraunces",serif; font-size:22px; color:var(--bm-blue); }
.bm-step__num::before{ counter-increment:bmstep; content:counter(bmstep,decimal-leading-zero); }
.bm-step h3{ font-size:19px; margin-bottom:6px; }
.bm-step p{ margin:0; color:var(--bm-muted); font-size:15px; }

.bm-icon-row{ display:flex; gap:36px; flex-wrap:wrap; margin-top:48px; padding-top:40px; border-top:1px solid var(--bm-line); }
.bm-icon-row figure{ margin:0; display:flex; align-items:center; gap:14px; flex:1; min-width:220px; }
.bm-icon-row img{ width:44px; height:44px; flex:none; }
.bm-icon-row figcaption{ font-size:14.5px; color:var(--bm-muted); }

.bm-inline-figure{ margin:44px 0 0; text-align:center; }
.bm-inline-figure img{ max-width:340px; margin:0 auto; }
.bm-inline-figure figcaption{ margin-top:14px; font-size:13.5px; color:var(--bm-muted); }

/* ---------- FAQ ---------- */
.bm-faq{ display:flex; flex-direction:column; gap:10px; }
.bm-faq__item{ border:1px solid var(--bm-line); border-radius:12px; background:var(--bm-panel); overflow:hidden; }
.bm-faq__q{
  width:100%; text-align:left; background:none; border:0; color:var(--bm-text); cursor:pointer;
  padding:20px 22px; font-size:16px; font-weight:600; display:flex; justify-content:space-between; gap:16px; align-items:center;
  font-family:inherit;
}
.bm-faq__q::after{ content:"+"; color:var(--bm-blue); font-size:20px; flex:none; transition:transform .2s; }
.bm-faq__item.is-open .bm-faq__q::after{ transform:rotate(45deg); }
.bm-faq__a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.bm-faq__a-in{ padding:0 22px 20px; color:var(--bm-muted); font-size:15px; }
.bm-faq__item.is-open .bm-faq__a{ max-height:600px; }

/* ---------- quiz ---------- */
/* Card scura per scelta visiva (5/9/2026), coerente con la palette
   dell'hero video del Quiz - non lo sfondo bianco del resto della pagina. */
.bm-quiz{ max-width:640px; margin:0 auto; background:#12162a; border:1px solid rgba(245,247,255,.12); border-radius:18px; padding:40px; color:var(--bm-hero-text); }
.bm-quiz__progress{ display:flex; gap:6px; margin-bottom:26px; }
.bm-quiz__progress i{ flex:1; height:3px; border-radius:99px; background:rgba(245,247,255,.16); }
.bm-quiz__progress i.is-done{ background:var(--bm-azzurro); }
.bm-quiz .bm-quiz__q{ font-size:22px; margin-bottom:22px; color:var(--bm-hero-text); }
.bm-quiz__opts{ display:flex; flex-direction:column; gap:10px; }
.bm-quiz__opt{
  text-align:left; padding:16px 18px; border-radius:12px; border:1px solid rgba(245,247,255,.16); background:rgba(245,247,255,.05);
  color:var(--bm-hero-text); cursor:pointer; font-size:15px; font-family:inherit;
}
.bm-quiz__opt:hover{ border-color:var(--bm-azzurro); }
.bm-quiz__result{ display:none; }
.bm-quiz.is-done .bm-quiz__step{ display:none; }
.bm-quiz.is-done .bm-quiz__result{ display:block; }
.bm-quiz .bm-quiz__result h3{ font-size:24px; color:var(--bm-hero-text); }
.bm-quiz .bm-quiz__result p{ color:var(--bm-hero-soft); }
.bm-quiz__restart{ margin-top:18px; background:none; border:0; color:var(--bm-hero-soft); text-decoration:underline; cursor:pointer; font-family:inherit; font-size:14px; display:none; }
.bm-quiz.is-done .bm-quiz__restart{ display:inline-block; }
.bm-quiz .bm-form label{ color:var(--bm-hero-soft); }
.bm-quiz .bm-form-status{ color:var(--bm-azzurro); }
.bm-quiz__email-kicker{ margin:0 0 10px; font-weight:600; color:var(--bm-hero-text); }

/* ---------- legal ---------- */
.bm-legal{ max-width:760px; margin:0 auto; }
.bm-legal__meta{ color:var(--bm-muted); font-size:14px; margin-bottom:30px; }
.bm-legal h2{ font-size:21px; margin-top:2.2em; }
.bm-legal ul{ color:var(--bm-soft); padding-left:20px; }
.bm-legal .bm-draft-note{
  margin:0 0 30px; padding:18px 20px; border-radius:10px; border:1px dashed rgba(0,123,218,.4);
  background:var(--bm-accent-soft); color:var(--bm-text); font-size:14.5px;
}

/* ---------- footer ---------- */
.bm-footer{ border-top:1px solid var(--bm-line); background:var(--bm-bg-soft); padding:64px 0 28px; }
.bm-footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
@media (max-width:900px){ .bm-footer__top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .bm-footer__top{ grid-template-columns:1fr; } }
.bm-footer h4{ font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--bm-muted); margin-bottom:14px; font-family:"Inter",sans-serif; }
.bm-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.bm-footer a{ color:var(--bm-soft); font-size:14.5px; }
.bm-footer a:hover{ color:var(--bm-blue); }
.bm-footer__brand{ margin-bottom:14px; }
.bm-footer__logo-img{ height:34px; width:auto; display:block; }
.bm-footer__bottom{ margin-top:50px; padding-top:24px; border-top:1px solid var(--bm-line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:var(--bm-muted); font-size:13px; }

/* ---------- cookie banner ---------- */
.bm-cookienotice{ position:fixed; left:0; right:0; bottom:0; z-index:150; background:var(--bm-panel-2); border-top:1px solid var(--bm-line); }
.bm-cookienotice.is-hidden{ display:none; }
.bm-cookienotice__in{ max-width:var(--bm-maxw); margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.bm-cookienotice p{ margin:0; font-size:14px; color:var(--bm-soft); }
.bm-cookienotice a{ color:var(--bm-blue); text-decoration:underline; }
.bm-cookienotice__btn{ background:var(--bm-blue); color:#fff; border:0; padding:10px 20px; border-radius:999px; font-weight:600; cursor:pointer; }

/* ---------- banner CTA quiz (sopra/sotto la nav) ---------- */
/* Stesso pattern strutturale di FUERTE-01 (fv-qzcta): barra sottile,
   chiudibile, dismiss via cookie 7gg. Qui senza modal di instradamento
   (un solo quiz, non tre) - il bottone linka direttamente a /quiz/. */
.bm-qzcta{ background:var(--bm-hero-bg); color:var(--bm-hero-text); border-bottom:1px solid rgba(245,247,255,.08); }
.bm-qzcta--bottom{ border-bottom:none; border-top:1px solid rgba(245,247,255,.08); }
.bm-qzcta.is-hidden{ display:none; }
.bm-qzcta-inner{
  max-width:var(--bm-maxw); margin:0 auto; padding:11px 44px 11px 24px;
  display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; position:relative;
}
.bm-qzcta-text{ margin:0; font-size:14px; text-align:center; color:var(--bm-hero-text); }
.bm-qzcta-accent{ color:var(--bm-azzurro); font-weight:600; }
.bm-qzcta-btn{
  border:1px solid rgba(245,247,255,.3); background:transparent; color:var(--bm-hero-text);
  border-radius:999px; padding:7px 18px; font-size:13px; font-weight:600; cursor:pointer;
  white-space:nowrap; transition:border-color .2s,color .2s; font-family:inherit;
}
.bm-qzcta-btn:hover{ border-color:var(--bm-azzurro); color:var(--bm-azzurro); }
.bm-qzcta-close{
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:24px; height:24px; border:none; background:none; color:rgba(245,247,255,.5);
  cursor:pointer; font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center;
}
.bm-qzcta-close:hover{ color:var(--bm-hero-text); }
@media (max-width:640px){ .bm-qzcta-text{ text-align:left; font-size:13px; } }

/* ---------- form (Contatti, email Quiz) ---------- */
.bm-form{ display:flex; flex-direction:column; gap:14px; }
.bm-form label{ display:flex; flex-direction:column; gap:6px; font-size:13.5px; color:var(--bm-muted); font-weight:600; }
.bm-form input,.bm-form textarea{
  border:1px solid var(--bm-line); border-radius:10px; padding:12px 14px; font-size:15px;
  font-family:inherit; background:var(--bm-bg); color:var(--bm-text);
}
.bm-form input:focus,.bm-form textarea:focus{ outline:2px solid var(--bm-blue); outline-offset:1px; }
.bm-form textarea{ min-height:120px; resize:vertical; }
.bm-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .bm-form-row{ grid-template-columns:1fr; } }
.bm-form-status{ font-size:14px; color:var(--bm-blue); min-height:1.2em; }
.bm-form.is-success .bm-form-fields{ display:none; }
.bm-honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- sezione con video di sfondo (non hero a tutta pagina) ---------- */
/* Riusa il markup .bm-hero__media (video+overlay+autoplay via main.js,
   nessun JS nuovo) dentro una sezione di altezza libera, non min-height:88vh -
   per la card "Candidatura", sfondo video reale invece di colore piatto. */
.bm-mediasection{ position:relative; overflow:hidden; color:var(--bm-hero-text); padding:88px 0; }
.bm-mediasection .bm-wrap{ position:relative; z-index:2; }
.bm-section.bm-mediasection h2{ color:var(--bm-hero-text); }
.bm-section.bm-mediasection p{ color:var(--bm-hero-soft); }
.bm-section.bm-mediasection .bm-kicker{ color:var(--bm-azzurro); }
.bm-section.bm-mediasection .bm-kicker::before{ background:var(--bm-azzurro); box-shadow:0 0 4px rgba(47,167,224,.7); }
.bm-section.bm-mediasection .bm-form label{ color:var(--bm-hero-soft); }
.bm-section.bm-mediasection .bm-form input,
.bm-section.bm-mediasection .bm-form textarea{ background:rgba(255,255,255,.95); color:var(--bm-text); border-color:rgba(245,247,255,.3); }
.bm-section.bm-mediasection .bm-form-status{ color:var(--bm-azzurro); }
.bm-section.bm-mediasection .bm-inline-figure figcaption{ color:var(--bm-hero-soft); }

/* ---------- reveal ---------- */
.bm-reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.bm-reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .bm-reveal{ opacity:1; transform:none; }
  .bm-hero__fallback i{ animation:none; opacity:.25; }
}
