/* =====================================================================
   CAMBRIDGE HALL — style.css
   Palette: Ink #081524 · Navy #0E2338 · Red #D9474A · Cloud #DBE6E9 · White #FBFBFB
   Font: Playfair Display (titoli) · Mulish (testi) — self-hosted in /assets/fonts
   ===================================================================== */

/* ---------- Font ---------- */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 900;font-display:swap;src:url("../fonts/playfair-latin.woff2") format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 900;font-display:swap;src:url("../fonts/playfair-italic-latin.woff2") format("woff2")}
@font-face{font-family:"Mulish";font-style:normal;font-weight:200 1000;font-display:swap;src:url("../fonts/mulish-latin.woff2") format("woff2")}

/* ---------- Token ---------- */
:root{
  --ink:#081524; --navy:#0E2338; --navy-2:#0C1C2E; --navy-3:#193A59;
  --red:#D9474A; --red-2:#BE343A; --rose:#EFAEB0; --rose-2:#F5D2D3;
  --cloud:#DBE6E9; --cloud-2:#EEF3F4; --white:#FBFBFB;
  --card-dark:#152F48; --card-dark-2:#1A374F;
  --text:#0D1620; --muted:#566574; --line:rgba(255,255,255,.10); --line-dark:rgba(14,35,56,.14);
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Mulish",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:16px; --r-s:10px; --shadow:0 18px 50px rgba(8,21,36,.18);
  --wrap:1180px; --gutter:clamp(16px,4vw,40px);
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--text);background:var(--white);overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:800;line-height:1.08;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,6vw,4.4rem)}
h2{font-size:clamp(1.9rem,4.2vw,3rem)}
h3{font-size:clamp(1.25rem,2.2vw,1.55rem);font-weight:700}
p{margin:0 0 1em}
.em{font-style:italic;font-weight:700;color:var(--rose)}
.light .em,.white .em,.on-light .em{color:var(--red)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(64px,9vw,120px) 0;position:relative}
.section.tight{padding:clamp(40px,6vw,72px) 0}
.dark{background:var(--ink);color:var(--white)}
.navy{background:var(--navy);color:var(--white)}
.light{background:var(--cloud);color:var(--text)}
.white{background:var(--white);color:var(--text)}
.red{background:var(--red);color:var(--white)}
.center{text-align:center}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:inherit;opacity:.85;max-width:62ch}
.center .lead{margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:900;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rose);margin-bottom:18px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--red);border-radius:2px}
.light .eyebrow,.white .eyebrow{color:var(--red)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.skip{position:absolute;left:8px;top:-60px;background:var(--red);color:#fff;padding:10px 14px;border-radius:8px;z-index:999;transition:top .2s}
.skip:focus{top:8px}

/* ---------- Bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:999px;border:2px solid transparent;font-weight:800;font-size:.98rem;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s;white-space:nowrap;line-height:1.1}
.btn svg{width:18px;height:18px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-red{background:var(--red);color:#fff;box-shadow:0 10px 26px rgba(217,71,74,.35)}
.btn-red:hover{background:var(--red-2)}
.btn-white{background:var(--white);color:var(--navy)}
.btn-white:hover{background:#fff}
.btn-ghost{background:transparent;color:inherit;border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.light .btn-ghost,.white .btn-ghost{border-color:var(--navy);color:var(--navy)}
.light .btn-ghost:hover,.white .btn-ghost:hover{background:var(--navy);color:#fff}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-3)}
.btn-wa{background:#25D366;color:#062b13}
.btn-wa:hover{background:#1ebe5a}
.btn-lg{padding:18px 32px;font-size:1.05rem}
.btn-sm{padding:10px 18px;font-size:.88rem}
.btn[disabled],.btn.is-disabled{opacity:.6;pointer-events:none}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.center .cta-row{justify-content:center}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:100;background:rgba(8,21,36,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:background .3s}
.header.scrolled{background:rgba(8,21,36,.95)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:74px}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:38px;width:auto}
.nav{display:flex;align-items:center;gap:6px}
.nav a{color:#fff;text-decoration:none;font-weight:700;font-size:.88rem;padding:9px 11px;white-space:nowrap;border-radius:999px;opacity:.85;transition:opacity .2s,background .2s}
.nav a:hover,.nav a.active{opacity:1;background:rgba(255,255,255,.08)}
.nav .btn{margin-left:8px;opacity:1}
.burger{display:none;width:46px;height:46px;border-radius:12px;border:1px solid var(--line);background:transparent;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}
.burger span{display:block;width:22px;height:2px;background:#fff;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:980px){
  .burger{display:flex}
  .nav{position:absolute;top:100%;left:0;right:0;height:calc(100vh - 74px);height:calc(100dvh - 74px);background:var(--ink);flex-direction:column;align-items:stretch;padding:24px var(--gutter);gap:4px;clip-path:inset(0 0 0 100%);transition:clip-path .35s var(--ease);overflow:auto}
  .nav.open{clip-path:inset(0)}
  .nav a{font-size:1.15rem;padding:14px 10px;border-bottom:1px solid var(--line);border-radius:0}
  .nav .btn{margin:18px 0 0;border-radius:999px;border-bottom:0;justify-content:center}
}

/* ---------- Promo bar ---------- */
.promo{background:var(--red);color:#fff;font-size:.9rem;font-weight:700}
.promo .wrap{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;min-height:46px;padding-top:6px;padding-bottom:6px}
.promo .badge{background:#fff;color:var(--red);padding:2px 10px;border-radius:999px;font-weight:900;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.promo a{color:#fff;font-weight:900;text-underline-offset:3px}
.countdown{display:inline-flex;gap:6px;align-items:center}
.countdown b{display:inline-grid;place-items:center;min-width:34px;padding:3px 6px;background:rgba(0,0,0,.22);border-radius:6px;font-family:var(--serif);font-size:1rem;font-variant-numeric:tabular-nums}
.countdown i{font-style:normal;font-size:.62rem;opacity:.85;letter-spacing:.08em}
.countdown .unit{display:grid;text-align:center;line-height:1}
.promo[hidden]{display:none}
@media (max-width:640px){.promo .long{display:none}.promo{font-size:.82rem}.promo .wrap{gap:8px 12px}}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:clamp(70px,10vw,130px) 0 clamp(60px,8vw,100px)}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 60% at 80% 20%,rgba(25,58,89,.55),transparent 60%),
  radial-gradient(40% 50% at 10% 90%,rgba(217,71,74,.25),transparent 60%);pointer-events:none}
.hero .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,70px);align-items:center;position:relative}
.hero h1{margin-bottom:22px}
.hero .lead{margin-bottom:34px}
.hero-visual{position:relative;display:grid;place-items:center;min-height:360px}
.shield{width:min(300px,60vw);filter:drop-shadow(0 30px 60px rgba(0,0,0,.45));animation:float 6s ease-in-out infinite}
.orbit{position:absolute;inset:0;pointer-events:none}
.chip{position:absolute;background:rgba(14,35,56,.8);border:1px solid var(--line);backdrop-filter:blur(8px);padding:10px 14px;border-radius:12px;font-size:.85rem;font-weight:700;box-shadow:var(--shadow);animation:float 7s ease-in-out infinite}
.chip small{display:block;font-weight:400;opacity:.75;font-size:.75rem}
.chip.c1{top:6%;left:0;animation-delay:-2s}
.chip.c2{top:18%;right:0;animation-delay:-4s}
.chip.c3{bottom:12%;left:4%;animation-delay:-1s}
.chip.c4{bottom:2%;right:6%;animation-delay:-3s}
.chip .ok{color:#7ee2a8}.chip .no{color:var(--rose);text-decoration:line-through}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero-meta{display:flex;flex-wrap:wrap;gap:22px;margin-top:38px;font-size:.88rem;opacity:.85}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.hero-meta svg{width:18px;height:18px;color:var(--rose)}
.fix{display:inline-block;position:relative}
.fix .wrong{text-decoration:line-through;text-decoration-color:var(--rose);text-decoration-thickness:3px;opacity:.55;font-style:normal}
@media (max-width:900px){.hero .grid{grid-template-columns:1fr}.hero-visual{min-height:280px;order:-1}.shield{width:min(200px,50vw)}.chip{font-size:.78rem;padding:8px 11px}.chip.c1{top:0;left:0}.chip.c2{top:auto;bottom:0;right:0}.chip.c3,.chip.c4{display:none}}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--navy);color:#fff;padding:14px 0;white-space:nowrap}
.marquee .track{display:inline-flex;gap:48px;animation:slide 40s linear infinite;font-family:var(--serif);font-size:1.15rem;font-weight:700}
.marquee .track span{display:inline-flex;gap:14px;align-items:center}
.marquee em{color:var(--rose)}
.marquee .track span::after{content:"·";color:var(--rose);opacity:.7}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- Griglie / card ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}
.card{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;transition:transform .3s var(--ease),border-color .3s,box-shadow .3s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.22);box-shadow:var(--shadow)}
.light .card,.white .card{background:#fff;border-color:var(--line-dark)}
.light .card:hover,.white .card:hover{border-color:var(--navy)}
.card .num{font-family:var(--serif);font-size:2.2rem;font-weight:800;color:var(--rose);line-height:1;margin-bottom:12px}
.light .card .num,.white .card .num{color:var(--red)}
.card h3{margin-bottom:10px}
.card p{margin:0;opacity:.85;font-size:.97rem}
.card .tag{display:inline-block;font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);border:1px solid rgba(239,174,176,.5);padding:4px 10px;border-radius:999px;margin-bottom:14px}
.light .card .tag,.white .card .tag{color:var(--red);border-color:rgba(217,71,74,.35)}
.card .ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--navy);color:#fff;margin-bottom:18px}
.card .ico svg{width:26px;height:26px}
.dark .card .ico{background:rgba(255,255,255,.08)}
.card.red{background:var(--red);border-color:transparent;color:#fff}
.card.red .num,.card.red .tag{color:#fff;border-color:rgba(255,255,255,.5)}
.card.navy{background:var(--navy);border-color:transparent;color:#fff}
.card.navy .num{color:var(--rose)}
.card .more{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-weight:800;text-decoration:none;color:var(--rose)}
.light .card .more,.white .card .more{color:var(--red)}
.card:hover .more{gap:12px}
.card .more svg{width:16px;height:16px;transition:transform .2s}
.card.link{display:block;text-decoration:none;color:inherit}
.card.link.navy,.card.link.red{color:#fff}
.card.navy .ico,.card.red .ico{background:rgba(255,255,255,.14)}
.card.navy .more,.card.red .more,.white .card.navy .more,.light .card.navy .more{color:var(--rose)}
.section-head{max-width:760px;margin-bottom:clamp(30px,5vw,56px)}
.section-head.center{margin-inline:auto}
.section-head h2{margin-bottom:14px}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:step;position:relative}
.step{padding:28px 24px 28px 0;position:relative}
.step::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--red),rgba(217,71,74,.15))}
.step .n{font-family:var(--serif);font-size:2.6rem;font-weight:800;color:var(--red);line-height:1;margin:18px 0 10px}
.light .step .n{color:var(--red)}
.step h3{font-size:1.2rem}
.step p{font-size:.95rem;opacity:.85;margin:0}
.step .free{display:inline-block;font-size:.66rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;background:var(--red);color:#fff;padding:3px 9px;border-radius:999px;margin-left:8px;vertical-align:middle}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr);gap:0 24px}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- Split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px);align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.split .media{position:relative}
.frame{background:var(--navy);border-radius:var(--r);padding:34px;color:#fff;box-shadow:var(--shadow);border:1px solid var(--line)}
.frame .kicker{font-size:.7rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--rose);margin-bottom:14px;display:flex;gap:10px;align-items:center}
.frame .kicker::before{content:"";width:18px;height:2px;background:var(--red)}
.frame .big{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:800;line-height:1.05}
.frame .big .wrong{display:block;text-decoration:line-through;text-decoration-color:var(--rose);opacity:.5;font-size:.8em;font-style:normal}
.frame .big .right{display:flex;align-items:center;gap:12px}
.frame .big .right::before{content:"✓";display:grid;place-items:center;width:.9em;height:.9em;border-radius:50%;background:var(--red);font-size:.5em;font-family:var(--sans);font-weight:900}
.frame .sub{opacity:.8;margin-top:12px;font-size:.95rem}
.frame .foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:.78rem;opacity:.65;display:flex;justify-content:space-between}
.checks{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:12px}
.checks li{position:relative;padding-left:34px}
.checks li::before{content:"";position:absolute;left:0;top:3px;width:22px;height:22px;border-radius:50%;background:var(--red);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat,linear-gradient(#000,#000);-webkit-mask-composite:destination-out;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat,linear-gradient(#000,#000);mask-composite:exclude}
.checks li b{display:block}

/* ---------- Punti GPS ---------- */
.gps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0}
.gps div{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:var(--r-s);padding:18px 20px;display:flex;justify-content:space-between;align-items:baseline}
.gps b{font-family:var(--serif);font-size:1.6rem}
.gps strong{font-family:var(--serif);font-size:2.2rem;color:var(--rose)}
.gps small{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-left:4px}
@media (max-width:560px){.gps{grid-template-columns:1fr}}

/* ---------- Testimonianze / quote ---------- */
.quote{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:700;font-style:italic;line-height:1.35}
.quote + .who{margin-top:14px;font-size:.85rem;opacity:.75;letter-spacing:.06em;text-transform:uppercase;font-weight:800}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line-dark);padding:6px 0}
.dark .faq details{border-color:var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;font-family:var(--serif);font-weight:700;font-size:1.15rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:400;font-size:1.6rem;color:var(--red);transition:transform .3s;flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 18px;opacity:.85;max-width:70ch}

/* ---------- Form ---------- */
.form{display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){.form .row{grid-template-columns:1fr}}
.field{display:grid;gap:6px}
.field label,.field .lbl{font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.8}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border-radius:var(--r-s);border:1px solid var(--line-dark);background:#fff;color:var(--text);transition:border-color .2s,box-shadow .2s}
.dark .field input,.dark .field select,.dark .field textarea,.navy .field input,.navy .field select,.navy .field textarea{background:rgba(255,255,255,.06);border-color:var(--line);color:#fff}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(217,71,74,.18)}
.field textarea{min-height:120px;resize:vertical}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23A71F27' stroke-width='2.5' stroke-linecap='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:44px}
.dark .field select option,.navy .field select option{color:var(--text)}
.pref{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:480px){.pref{grid-template-columns:1fr}}
.pref label{position:relative;cursor:pointer}
.pref input{position:absolute;opacity:0;inset:0}
.pref span{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 10px;border-radius:var(--r-s);border:1px solid var(--line-dark);font-weight:800;font-size:.9rem;transition:all .2s;background:#fff}
.dark .pref span,.navy .pref span{background:rgba(255,255,255,.06);border-color:var(--line)}
.pref span svg{width:18px;height:18px}
.pref input:checked + span{background:var(--navy);color:#fff;border-color:var(--navy)}
.dark .pref input:checked + span,.navy .pref input:checked + span{background:var(--red);border-color:var(--red)}
.pref input:focus-visible + span{box-shadow:0 0 0 4px rgba(217,71,74,.25)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;opacity:.85}
.consent input{margin-top:4px;accent-color:var(--red);width:18px;height:18px;flex:none}
.consent a{text-decoration:underline}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-msg{padding:14px 16px;border-radius:var(--r-s);font-weight:700;display:none}
.form-msg.ok{display:block;background:rgba(37,211,102,.15);color:#0f5d2a;border:1px solid rgba(37,211,102,.5)}
.dark .form-msg.ok,.navy .form-msg.ok{color:#9ff2c1}
.form-msg.err{display:block;background:rgba(217,71,74,.12);color:var(--red);border:1px solid rgba(217,71,74,.4)}
.dark .form-msg.err,.navy .form-msg.err{color:var(--rose)}
.form-msg .btn{margin-top:10px}
.form-card{background:#fff;border-radius:var(--r);padding:clamp(24px,4vw,44px);box-shadow:var(--shadow);color:var(--text)}
.dark .form-card,.navy .form-card{background:var(--navy);color:#fff;border:1px solid var(--line)}
.form-card h3{margin-bottom:6px}
.form-card .hint{font-size:.9rem;opacity:.75;margin-bottom:22px}

/* ---------- Contatti ---------- */
.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.contact-list li{display:flex;gap:16px;align-items:flex-start}
.contact-list .ico{flex:none;width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center}
.light .contact-list .ico,.white .contact-list .ico{background:var(--navy);color:#fff}
.contact-list .ico svg{width:22px;height:22px}
.contact-list b{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:2px}
.contact-list a{text-decoration:none;font-weight:700}
.contact-list a:hover{text-decoration:underline}
.map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line-dark);aspect-ratio:16/10;background:var(--cloud)}
.map iframe{width:100%;height:100%;border:0;display:block}

/* ---------- Banner CTA ---------- */
.cta-band{background:linear-gradient(120deg,var(--red),#B32226);color:#fff;border-radius:var(--r);padding:clamp(34px,5vw,60px);display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:center;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.08)}
.cta-band h2{margin-bottom:8px}
.cta-band p{opacity:.9;margin:0}
.cta-band .cta-row{justify-content:flex-end;position:relative;z-index:1}
@media (max-width:820px){.cta-band{grid-template-columns:1fr}.cta-band .cta-row{justify-content:flex-start}}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:#fff;padding:60px 0 30px;border-top:1px solid var(--line)}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px;margin-bottom:40px}
@media (max-width:900px){.footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer .cols{grid-template-columns:1fr}}
.footer h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rose);margin-bottom:16px}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px;font-size:.93rem}
.footer a{color:#fff;text-decoration:none;opacity:.8}
.footer a:hover{opacity:1;text-decoration:underline}
.footer .logo img{height:44px;margin-bottom:16px}
.footer p{font-size:.9rem;opacity:.75;max-width:38ch}
.footer .bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.78rem;opacity:.6}
.footer .social{display:flex;gap:10px;margin-top:14px}
.footer .social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;opacity:1}
.footer .social svg{width:18px;height:18px}

/* ---------- WhatsApp float ---------- */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;align-items:center;gap:10px;text-decoration:none}
.wa-float .bubble{background:#fff;color:var(--text);padding:9px 14px;border-radius:12px;font-size:.85rem;font-weight:700;box-shadow:var(--shadow);opacity:0;transform:translateX(10px);transition:opacity .3s,transform .3s;pointer-events:none}
.wa-float.show .bubble{opacity:1;transform:none}
.wa-float .dot{width:58px;height:58px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 28px rgba(37,211,102,.45);position:relative;transition:transform .25s}
.wa-float:hover .dot{transform:scale(1.06)}
.wa-float .dot svg{width:30px;height:30px}
.wa-float .dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #25D366;animation:pulse 2.2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.85);opacity:.9}100%{transform:scale(1.35);opacity:0}}
@media (max-width:640px){.wa-float .bubble{display:none}}

/* ---------- Cookie ---------- */
.cookie{position:fixed;left:18px;right:18px;bottom:18px;z-index:95;max-width:520px;margin:0 auto;background:#fff;color:var(--text);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow);font-size:.88rem;display:none;border:1px solid var(--line-dark)}
.cookie.show{display:block}
.cookie p{margin:0 0 14px}
.cookie .cta-row{gap:10px}
@media (max-width:640px){.cookie{left:10px;right:86px;bottom:10px}}

/* ---------- Quiz ---------- */
.quiz{max-width:760px;margin:0 auto}
.progress{height:8px;background:rgba(255,255,255,.12);border-radius:999px;overflow:hidden;margin-bottom:28px}
.progress i{display:block;height:100%;background:var(--red);width:0;transition:width .4s var(--ease)}
.q{display:none;animation:fadeup .45s var(--ease) both}
.q.active{display:block}
.q .qn{font-size:.72rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--rose);margin-bottom:12px}
.q h3{font-family:var(--serif);font-size:clamp(1.4rem,3vw,2rem);margin-bottom:22px}
.q h3 span.blank{display:inline-block;min-width:3ch;border-bottom:3px solid var(--rose);margin:0 4px}
.opts{display:grid;gap:10px}
.opts button{text-align:left;padding:16px 18px;border-radius:var(--r-s);border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;cursor:pointer;font-weight:700;font-size:1.02rem;transition:all .2s;display:flex;gap:14px;align-items:center}
.opts button::before{content:attr(data-letter);width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:.8rem;flex:none}
.opts button:hover{border-color:var(--rose);background:rgba(255,255,255,.09);transform:translateX(4px)}
.opts button.picked{background:var(--red);border-color:var(--red)}
.opts button.picked::before{background:#fff;color:var(--red);border-color:#fff}
.quiz-nav{display:flex;justify-content:space-between;gap:12px;margin-top:26px}
.result{display:none;text-align:center;animation:fadeup .5s var(--ease) both}
.result.show{display:block}
.result .lvl{font-family:var(--serif);font-size:clamp(4rem,12vw,7rem);font-weight:800;line-height:1;color:var(--rose);margin:10px 0}
.result .bar{display:flex;gap:6px;justify-content:center;margin:20px 0 26px}
.result .bar span{padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:.78rem;font-weight:900;letter-spacing:.08em;opacity:.55}
.result .bar span.on{background:var(--red);border-color:var(--red);opacity:1}
@keyframes fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}

/* ---------- Page hero (pagine interne) ---------- */
.page-hero{background:var(--ink);color:#fff;padding:clamp(56px,8vw,96px) 0 clamp(44px,6vw,72px);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 70% at 90% 10%,rgba(25,58,89,.6),transparent 60%);pointer-events:none}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(2.2rem,5.5vw,3.8rem)}
.page-hero .grid2{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,60px);align-items:center}
@media (max-width:900px){.page-hero .grid2{grid-template-columns:1fr}}
.crumbs{font-size:.78rem;opacity:.7;margin-bottom:18px}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* ---------- Corsi: dettaglio ---------- */
.course{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,5vw,60px);align-items:start;padding:clamp(40px,6vw,70px) 0;border-top:1px solid var(--line-dark)}
.course:first-of-type{border-top:0}
@media (max-width:860px){.course{grid-template-columns:1fr}}
.course .side{position:sticky;top:96px}
.course .side .tag{display:inline-block;font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--red);border:1px solid rgba(217,71,74,.35);padding:4px 10px;border-radius:999px;margin-bottom:14px}
.course h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.spec{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0 26px}
.spec div{background:#fff;border:1px solid var(--line-dark);border-radius:var(--r-s);padding:14px 16px}
.spec b{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;opacity:.65;margin-bottom:4px}
.spec span{font-weight:700}
@media (max-width:480px){.spec{grid-template-columns:1fr}}

/* ---------- Pillole / tabella livelli ---------- */
.levels{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:26px 0}
.levels div{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:var(--r-s);padding:14px 10px;text-align:center}
.light .levels div,.white .levels div{background:#fff;border-color:var(--line-dark)}
.levels b{font-family:var(--serif);font-size:1.5rem;display:block;color:var(--rose)}
.light .levels b,.white .levels b{color:var(--red)}
.levels small{font-size:.7rem;opacity:.75;line-height:1.25;display:block}
@media (max-width:700px){.levels{grid-template-columns:repeat(3,1fr)}}

/* ---------- Prose (privacy) ---------- */
.prose{max-width:800px;margin:0 auto}
.prose h2{font-size:1.6rem;margin-top:2em}
.prose h3{font-size:1.15rem;margin-top:1.6em}
.prose ul{padding-left:1.2em}
.prose li{margin-bottom:.4em}
.prose table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1em 0}
.prose th,.prose td{border:1px solid var(--line-dark);padding:10px 12px;text-align:left;vertical-align:top}
.prose th{background:var(--cloud)}
.notice{background:var(--cloud);border-left:4px solid var(--red);padding:16px 20px;border-radius:0 var(--r-s) var(--r-s) 0;font-size:.92rem}

/* ---------- Utility ---------- */
.mt-0{margin-top:0}.mt-2{margin-top:24px}.mt-3{margin-top:40px}.mb-0{margin-bottom:0}
.small{font-size:.85rem;opacity:.75}
.pill{display:inline-block;padding:5px 12px;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.1);border:1px solid var(--line)}
.light .pill,.white .pill{background:var(--navy);color:#fff;border-color:transparent}
.pill.red{background:var(--red);color:#fff;border-color:transparent}
.soon{white-space:nowrap;font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;background:#fff;color:var(--red);padding:3px 9px;border-radius:999px;margin-left:6px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ===================== v1.1 ===================== */
/* ---------- Hero 2: piattaforma ---------- */
.hero2{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:clamp(56px,8vw,110px) 0 clamp(56px,7vw,90px);isolation:isolate}
.hero2::before{content:"";position:absolute;inset:0;z-index:-2;background:
  radial-gradient(55% 60% at 85% 15%,rgba(25,58,89,.75),transparent 60%),
  radial-gradient(45% 55% at 5% 95%,rgba(217,71,74,.28),transparent 60%),
  radial-gradient(30% 40% at 60% 100%,rgba(239,174,176,.12),transparent 60%)}
.hero2::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(70% 80% at 60% 40%,#000 30%,transparent 100%);mask-image:radial-gradient(70% 80% at 60% 40%,#000 30%,transparent 100%)}
.blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(70px);opacity:.55;animation:drift 14s ease-in-out infinite alternate}
.blob.b1{width:420px;height:420px;background:#193A59;top:-120px;right:8%}
.blob.b2{width:320px;height:320px;background:#D9474A;bottom:-140px;left:-60px;opacity:.35;animation-delay:-6s}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(40px,30px) scale(1.12)}}
.hero2 .grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,5vw,70px);align-items:center;position:relative}
.hero2 h1{margin-bottom:20px;font-size:clamp(2.5rem,5.8vw,4.3rem)}
.hero2 h1 .rot{display:inline-block;color:var(--rose);font-style:italic;min-width:1ch}
.hero2 .lead{margin-bottom:30px}
.hero2 .cta-row .btn-red{padding:19px 32px;font-size:1.08rem}
.hero-proof{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px;font-size:.86rem;opacity:.85}
.hero-proof span{display:inline-flex;align-items:center;gap:8px}
.hero-proof svg{width:17px;height:17px;color:var(--rose)}
/* mock app */
.app{position:relative;margin:0 auto;width:min(520px,100%)}
.app .win{background:linear-gradient(160deg,#132D49,#0C1C2E 70%);border:1px solid rgba(255,255,255,.14);border-radius:18px;box-shadow:0 40px 90px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);overflow:hidden;transform:perspective(1400px) rotateY(-8deg) rotateX(3deg);animation:tilt 9s ease-in-out infinite alternate}
@keyframes tilt{from{transform:perspective(1400px) rotateY(-8deg) rotateX(3deg) translateY(0)}to{transform:perspective(1400px) rotateY(-4deg) rotateX(1deg) translateY(-10px)}}
.app .bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:.72rem;opacity:.8}
.app .bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.25)}
.app .bar i:first-child{background:var(--red)}
.app .bar span{margin-left:auto;min-width:0;font-family:monospace;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}
.app .body{padding:18px}
.app .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.app .head b{font-family:var(--serif);font-size:1.15rem}
.app .head small{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);font-weight:900}
.crs{display:grid;gap:10px}
.crs .c{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 14px;transition:transform .3s var(--ease)}
.crs .c:hover{transform:translateX(4px)}
.crs .ic{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--navy-3);color:#fff}
.crs .ic svg{width:22px;height:22px}
.crs .ic.red{background:var(--red)}.crs .ic.cloud{background:var(--cloud);color:var(--navy)}
.crs b{display:block;font-size:.92rem}
.crs small{display:block;font-size:.72rem;opacity:.7;margin-top:2px}
.crs .pb{height:5px;border-radius:999px;background:rgba(255,255,255,.12);margin-top:8px;overflow:hidden}
.crs .pb i{display:block;height:100%;border-radius:999px;background:var(--rose);width:0;animation:fill 2.4s var(--ease) forwards}
.crs .pb i.p2{background:#fff;animation-delay:.4s}
.crs .pb i.p3{background:var(--rose-2);animation-delay:.8s}
@keyframes fill{to{width:var(--w)}}
.crs .pct{font-family:var(--serif);font-weight:800;font-size:1.1rem;color:var(--rose)}
.crs .new{font-size:.62rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;background:var(--red);padding:4px 8px;border-radius:999px}
.app .cta{margin-top:14px;display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--red);border-radius:12px;padding:12px 14px;font-weight:800;font-size:.9rem}
.app .cta svg{width:18px;height:18px}
.fl{position:absolute;z-index:2;background:#fff;color:var(--text);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);font-size:.82rem;font-weight:700;display:flex;gap:10px;align-items:center;animation:float 6s ease-in-out infinite}
.fl small{display:block;font-weight:400;opacity:.7;font-size:.72rem}
.fl .dotlive{width:10px;height:10px;border-radius:50%;background:#25D366;box-shadow:0 0 0 0 rgba(37,211,102,.6);animation:pulse2 1.8s infinite}
@keyframes pulse2{to{box-shadow:0 0 0 10px rgba(37,211,102,0)}}
.fl.f1{top:-34px;left:-30px;animation-delay:-2s}
.fl.f2{bottom:-34px;right:-28px;animation-delay:-4s;background:var(--navy);color:#fff}
.fl.f2 .ok{width:30px;height:30px;border-radius:50%;background:var(--red);display:grid;place-items:center;font-size:.9rem}
.fl img{width:30px;height:35px}
@media (max-width:900px){.hero2 .grid{grid-template-columns:minmax(0,1fr)}.app{width:min(440px,100%);margin-top:10px}.app .win{transform:none;animation:none}.fl.f1{left:0;top:-16px}.fl.f2{right:0;bottom:-14px}.hero2 .cta-row .btn{width:100%;white-space:normal;text-align:center}}
@media (max-width:480px){.crs .c{grid-template-columns:38px 1fr auto;padding:10px 12px}.fl{font-size:.74rem;padding:9px 11px}}

/* ---------- Header: bottone piattaforma ---------- */
.nav .btn-plat{background:var(--red);color:#fff;box-shadow:0 8px 20px rgba(217,71,74,.35)}
.nav .btn-plat svg{width:16px;height:16px}

/* ---------- Calcolatore tempi di studio ---------- */
.study{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,48px);align-items:start}
@media (max-width:900px){.study{grid-template-columns:1fr}}
.study-ctl{display:grid;gap:18px}
.study-ctl label{font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;opacity:.75;display:block;margin-bottom:8px}
.study-ctl output{font-family:var(--serif);font-size:1.6rem;font-weight:800;display:block;margin-bottom:6px;color:var(--rose)}
.light .study-ctl output,.white .study-ctl output{color:var(--red)}
input[type=range].rng{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;background:rgba(255,255,255,.15);outline:none}
.light input[type=range].rng,.white input[type=range].rng{background:rgba(14,35,56,.15)}
input[type=range].rng::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.3);cursor:pointer}
input[type=range].rng::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--red);border:3px solid #fff;cursor:pointer}
.rng-scale{display:flex;justify-content:space-between;font-size:.7rem;opacity:.6;margin-top:6px}
.study-ctl select{width:100%;padding:13px 40px 13px 14px;border-radius:var(--r-s);border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F4A3A8' stroke-width='2.5' stroke-linecap='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
.study-ctl select option{color:var(--text)}
.light .study-ctl select,.white .study-ctl select{background-color:#fff;color:var(--text);border-color:var(--line-dark)}
.chart-box{position:relative;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 8px}
.light .chart-box,.white .chart-box{background:#fff;border-color:var(--line-dark)}
.chart-box .ttl{font-size:.72rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;opacity:.75;margin-bottom:6px}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;font-size:.78rem;padding:8px 11px;border-radius:8px;box-shadow:var(--shadow);max-width:220px;line-height:1.35;z-index:2;border:1px solid var(--line)}
.tip[hidden]{display:none}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
@media (max-width:520px){.tiles{grid-template-columns:1fr}}
.tile{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;transition:all .2s}
.light .tile,.white .tile{background:var(--cloud-2);border-color:var(--line-dark)}
.tile b{display:block;font-family:var(--serif);font-size:1.15rem;line-height:1.15}
.tile span{font-size:.72rem;opacity:.7}
.tile.on{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.study-note{font-size:.78rem;opacity:.65;margin-top:12px}

/* ---------- Modalità dal vivo ---------- */
.modes{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width:980px){.modes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.modes{grid-template-columns:1fr}}
.mode{border-radius:var(--r);padding:26px 24px;background:rgba(255,255,255,.04);border:1px solid var(--line);position:relative;overflow:hidden}
.light .mode,.white .mode{background:#fff;border-color:var(--line-dark)}
.mode .k{font-size:.66rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--rose);margin-bottom:10px;display:block}
.light .mode .k,.white .mode .k{color:var(--red)}
.mode h3{font-size:1.25rem;margin-bottom:8px}
.mode p{font-size:.93rem;opacity:.85;margin:0}
.mode .ic{width:48px;height:48px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;margin-bottom:16px}
.dark .mode .ic{background:rgba(255,255,255,.1)}
.mode .ic svg{width:24px;height:24px}
.mode.hl{background:var(--navy);color:#fff;border-color:transparent}
.mode.hl .k{color:var(--rose)}.mode.hl .ic{background:var(--red)}

/* ---------- Bottone accedi grande ---------- */
.plat-cta{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:linear-gradient(120deg,var(--navy),#193A59);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,4vw,40px);color:#fff;position:relative;overflow:hidden}
.plat-cta::before{content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(239,174,176,.12)}
.plat-cta h3{font-size:clamp(1.3rem,2.4vw,1.8rem);margin-bottom:6px}
.plat-cta p{margin:0;opacity:.85;font-size:.95rem}
.plat-cta .url{font-family:monospace;font-size:.78rem;opacity:.65;display:block;margin-top:8px}
@media (max-width:760px){.plat-cta{grid-template-columns:1fr}}

/* ===================== v1.2 · logo e sede ===================== */
/* Hero: scudo grande dietro il mock + logo nell'eyebrow */
.hero2 .shield-bg{position:absolute;right:-4%;top:-6%;width:min(640px,64vw);opacity:.13;filter:blur(7px);pointer-events:none;z-index:-1;animation:float 9s ease-in-out infinite}
.hero2 .brand-line{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.hero2 .brand-line img{height:88px;width:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.4))}
.hero2 .brand-line span{font-size:.72rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:var(--rose)}
.app .head .lg{display:flex;align-items:center;gap:8px}
.app .head .lg img{width:22px;height:26px}
.app .bar .mini{width:14px;height:16px;margin-right:4px}
@media (max-width:900px){.hero2 .shield-bg{right:-20%;top:auto;bottom:-10%;width:80vw}.hero2 .brand-line img{height:64px}}

/* Sezione sede */
.sede-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center}
@media (max-width:900px){.sede-grid{grid-template-columns:1fr}}
.photo{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:1/1;background:var(--navy)}
.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.photo:hover img{transform:scale(1.04)}
.photo .lab{position:absolute;left:18px;bottom:18px;right:18px;display:flex;align-items:center;gap:12px;background:rgba(8,21,36,.82);backdrop-filter:blur(8px);color:#fff;padding:12px 14px;border-radius:12px;font-size:.85rem;font-weight:700;border:1px solid var(--line)}
.photo .lab img{width:34px;height:40px;flex:none}
.photo .lab small{display:block;font-weight:400;opacity:.75;font-size:.74rem}
.photo .badge-top{position:absolute;top:18px;left:18px;background:var(--red);color:#fff;font-size:.66rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;padding:6px 11px;border-radius:999px}
.sede-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:24px 0 26px}
@media (max-width:520px){.sede-list{grid-template-columns:1fr}}
.sede-list>div{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px}
.light .sede-list>div,.white .sede-list>div{background:#fff;border-color:var(--line-dark)}
.sede-list>div>div{display:block}
.sede-list .ic{flex:none;width:38px;height:38px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center}
.dark .sede-list .ic,.navy .sede-list .ic{background:var(--red)}
.sede-list .ic svg{width:20px;height:20px}
.sede-list b{display:block;font-size:.95rem}
.sede-list span{font-size:.82rem;opacity:.8}
.sedi{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.sedi span{font-size:.74rem;font-weight:800;padding:6px 12px;border-radius:999px;border:1px solid var(--line-dark);background:#fff}
.dark .sedi span,.navy .sedi span{border-color:var(--line);background:rgba(255,255,255,.06)}
.sedi span.main{background:var(--navy);color:#fff;border-color:transparent}

/* Scudo come filigrana nelle hero interne e nelle fasce */
.page-hero::after{content:"";position:absolute;right:-40px;top:50%;width:340px;height:400px;transform:translateY(-50%);background:url("../img/scudo-monobianco.svg") center/contain no-repeat;opacity:.06;pointer-events:none}
.cta-band::after{background:url("../img/scudo-monobianco.svg") center/contain no-repeat;opacity:.14;border-radius:0;width:200px;height:240px;right:20px;top:-30px}
.plat-cta::after{content:"";position:absolute;right:-10px;bottom:-40px;width:180px;height:210px;background:url("../img/scudo-monobianco.svg") center/contain no-repeat;opacity:.08;pointer-events:none}
.frame{position:relative}
.frame .wm{position:absolute;right:16px;top:16px;width:26px;height:30px;opacity:.6}
.section-head .lg{display:inline-flex;align-items:center;gap:10px;margin-bottom:14px}
.section-head .lg img{height:34px;width:auto}
.logo-strip{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;padding:18px 0 0;opacity:.85}
.logo-strip img{height:40px;width:auto}
.logo-strip span{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:900;opacity:.7}

/* Sezione sede v1.3 (senza foto) */
#sede{overflow:hidden}
.sede-wm{position:absolute;left:-80px;bottom:-120px;width:420px;opacity:.06;filter:blur(2px);pointer-events:none}
.sede-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,60px);align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.sede-head h2{margin-bottom:0}
@media (max-width:900px){.sede-head{grid-template-columns:1fr}}
.sede-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:clamp(24px,4vw,40px);padding-top:24px;border-top:1px solid var(--line)}
.sedi span{display:inline-flex;align-items:center;gap:6px}
.sedi span svg{width:14px;height:14px}
.navy .sedi span{border-color:var(--line);background:rgba(255,255,255,.06);color:#fff}
.navy .sedi span.main{background:var(--red);border-color:transparent}

/* ===================== v3.1 · superfici su scuro (card più chiare del fondo) ===================== */
.dark .card,.navy .card{background:var(--card-dark);border-color:rgba(255,255,255,.08)}
.dark .card:hover,.navy .card:hover{background:var(--card-dark-2);border-color:rgba(255,255,255,.2)}
.card.navy{background:var(--card-dark)}
.frame{background:var(--card-dark);border-color:rgba(255,255,255,.08)}
.dark .mode,.navy .mode{background:var(--card-dark)}
.mode.hl{background:var(--card-dark-2)}
.chart-box{background:var(--card-dark)}
.light .chart-box,.white .chart-box{background:#fff}
.tile{background:rgba(255,255,255,.06)}
.gps div{background:var(--card-dark)}
.dark .contact-list .ico,.navy .contact-list .ico{background:var(--card-dark-2)}
.dark .form-card,.navy .form-card{background:var(--card-dark);border-color:rgba(255,255,255,.08)}
.dark .field input,.dark .field select,.dark .field textarea,.navy .field input,.navy .field select,.navy .field textarea{background:rgba(255,255,255,.05)}
.dark .pref span,.navy .pref span{background:rgba(255,255,255,.05)}
.step::before{background:linear-gradient(90deg,var(--red),rgba(217,71,74,.15))}
.levels div{background:var(--card-dark)}
.dark .sede-list>div,.navy .sede-list>div{background:var(--card-dark)}
.app .win{background:linear-gradient(160deg,var(--card-dark-2),var(--navy-2) 70%)}
.crs .c{background:rgba(255,255,255,.05)}
.fl.f2{background:var(--card-dark-2)}
.opts button{background:var(--card-dark)}
.opts button:hover{background:var(--card-dark-2)}
.plat-cta{background:linear-gradient(120deg,var(--card-dark),var(--navy-3))}
.hero2::before{background:radial-gradient(55% 60% at 85% 15%,rgba(27,62,88,.85),transparent 60%),radial-gradient(45% 55% at 5% 95%,rgba(217,71,74,.22),transparent 60%),radial-gradient(30% 40% at 60% 100%,rgba(239,174,176,.10),transparent 60%)}
/* Payoff */
.payoff{font-family:var(--serif);font-style:italic;font-weight:700;font-size:1.05rem;color:var(--rose);letter-spacing:.01em}
.light .payoff,.white .payoff{color:var(--red)}
.hero2 .brand-line img{height:132px}
.hero2 .brand-line span{display:none}
@media (max-width:900px){.hero2 .brand-line img{height:104px}}
.footer .logo img{height:auto;width:230px}
.footer .tag{font-family:var(--serif);font-style:italic;font-weight:700;color:var(--rose);font-size:1.05rem;margin:-6px 0 14px}
/* Filigrane: scudo con contorno (mai tutto bianco) */
.page-hero::after{background-image:url("../img/scudo-bianco.svg");opacity:.14}
.cta-band::after{background-image:url("../img/scudo-bianco.svg");opacity:.25}
.plat-cta::after{background-image:url("../img/scudo-bianco.svg");opacity:.18}
.hero2 .shield-bg{opacity:.16;filter:blur(5px)}
.sede-wm{opacity:.14;filter:none}
.logo img{height:46px}
.footer .tag{font-size:.95rem;opacity:.9}
