/* ============================================================
   COBALTO — Design system globale
   Token + reset + tipografia + componenti base (bottoni, card,
   form, badge) + header a pill flottante + footer editoriale.
   Caricato DOPO style.css su ogni pagina: qui vive la nuova
   identità chiara del sito, style.css resta solo per le regole
   di sezione non ancora migrate.
   ============================================================ */

/* ============ TOKEN ============ */
:root{
  /* --- Blu --- */
  --blu-50:#EEF3FF; --blu-100:#DCE6FF; --blu-200:#BACCFF; --blu-300:#8FAAFF;
  --blu-400:#5C82FA; --blu-500:#2F5BEB; --blu-600:#1A3FCC; --blu-700:#14329F;
  --blu-800:#112873; --blu-900:#0D1E4F; --blu-950:#070F2B;

  /* --- Azzurro --- */
  --azz-50:#ECFAFF; --azz-100:#D3F3FF; --azz-200:#A6E7FF; --azz-300:#6FD8FF;
  --azz-400:#33C5FF; --azz-500:#06B0F0; --azz-600:#008CC7; --azz-700:#016E9E;
  --azz-800:#075B80; --azz-900:#0B4C6B;

  /* --- Neutrali --- */
  --n-0:#FFFFFF; --n-50:#F7F9FC; --n-100:#EFF2F7; --n-200:#E1E6EF; --n-300:#C8D0DC;
  --n-400:#8A94A6; --n-500:#6B7688; --n-600:#4D5768; --n-700:#39424F;
  --n-800:#232A34; --n-900:#141922; --n-950:#0A0D12;

  /* --- Semantici --- */
  --success:#0A7A54; --success-bg:#E6F7F0;
  --warning:#8F5600; --warning-bg:#FFF6E6;
  --error:#C42B2B;   --error-bg:#FDECEC;

  /* --- Superfici / testo / bordi / azioni (token semantici — i componenti usano solo questi) --- */
  --surface-page: var(--n-0);
  --surface-raised: var(--n-50);
  --surface-sunken: var(--n-100);
  --surface-tinted: var(--blu-50);
  --surface-highlight: var(--azz-50);
  --surface-inverse: var(--blu-950);
  --surface-inverse-raised:#0E1A3D;
  --surface-inverse-pill:#1B2A54;

  --text-heading: var(--n-950);
  --text-body: var(--n-900);
  --text-secondary: var(--n-600);
  --text-muted: var(--n-500);
  --text-brand: var(--blu-600);
  --text-accent: var(--azz-700);
  --text-on-inverse: var(--n-0);
  --text-secondary-inv: var(--n-300);
  --text-accent-inv: var(--azz-300);

  --border-subtle: var(--n-200);
  --border-default: var(--n-300);
  --border-strong: var(--n-400);
  --border-brand: var(--blu-600);
  --border-inverse: rgba(255,255,255,.14);

  --action-primary: var(--blu-600);
  --action-primary-hover: var(--blu-700);
  --action-primary-active: var(--blu-800);
  --focus-ring: var(--blu-600);
  --focus-ring-inverse: var(--azz-300);

  /* --- Gradienti --- */
  --gradient-brand: linear-gradient(135deg,#1A3FCC 0%,#06B0F0 100%);
  --gradient-deep:  linear-gradient(160deg,#070F2B 0%,#112873 55%,#14329F 100%);
  --gradient-glow:  radial-gradient(60% 60% at 50% 0%, rgba(51,197,255,.28) 0%, rgba(51,197,255,0) 70%);
  --gradient-hairline: linear-gradient(90deg, transparent, #33C5FF, transparent);

  /* --- Font --- */
  --font-display:'Space Grotesk',ui-sans-serif,system-ui,sans-serif;
  --font-body:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',monospace;

  /* --- Scala tipografica --- */
  --fs-display: clamp(2.75rem, 1.4rem + 6.8vw, 6.5rem);
  --fs-h1:      clamp(2.125rem, 1.15rem + 4.9vw, 4.5rem);
  --fs-h2:      clamp(1.75rem, 1.1rem + 3.2vw, 3.25rem);
  --fs-h3:      clamp(1.4375rem, 1.05rem + 1.9vw, 2.25rem);
  --fs-h4:      clamp(1.25rem, 1.1rem + 0.75vw, 1.625rem);
  --fs-h5:      clamp(1.125rem, 1.08rem + 0.22vw, 1.25rem);
  --fs-lead:    clamp(1.125rem, 1.0rem + 0.6vw, 1.375rem);
  --fs-body:    clamp(1rem, 0.98rem + 0.1vw, 1.0625rem);
  --fs-small:   clamp(0.875rem, 0.86rem + 0.08vw, 0.9375rem);
  --fs-caption: 0.8125rem;
  --fs-eyebrow: clamp(0.75rem, 0.74rem + 0.05vw, 0.8125rem);
  --fs-quote:   clamp(1.5rem, 1.0rem + 2.5vw, 2.5rem);

  /* --- Spaziatura --- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --sp-8:32px; --sp-10:40px; --sp-12:48px; --sp-16:64px; --sp-20:80px;
  --sp-24:96px; --sp-32:128px; --sp-40:160px; --sp-48:192px;
  --section-py: clamp(4rem, 2rem + 8vw, 8rem);
  --section-py-lg: clamp(5rem, 2rem + 11vw, 10rem);

  /* --- Radius --- */
  --r-xs:4px; --r-sm:8px; --r-md:12px; --r-lg:20px; --r-xl:28px; --r-2xl:40px; --r-full:999px;

  /* --- Ombre --- */
  --sh-xs: 0 1px 2px rgba(10,20,40,.06);
  --sh-sm: 0 2px 8px rgba(10,20,40,.06), 0 1px 2px rgba(10,20,40,.04);
  --sh-md: 0 8px 24px rgba(10,20,40,.08), 0 2px 6px rgba(10,20,40,.04);
  --sh-lg: 0 16px 48px rgba(10,20,40,.10), 0 4px 12px rgba(10,20,40,.05);
  --sh-xl: 0 32px 80px rgba(10,20,40,.12), 0 8px 24px rgba(10,20,40,.06);
  --sh-brand: 0 12px 32px rgba(26,63,204,.24);
  --sh-glow:  0 0 0 1px rgba(51,197,255,.2), 0 8px 40px rgba(51,197,255,.18);

  /* --- Motion --- */
  --dur-instant:100ms; --dur-fast:180ms; --dur-base:280ms; --dur-slow:480ms;
  --dur-reveal:720ms; --dur-page:900ms;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-expo:cubic-bezier(.16,1,.3,1);
}

/* ============ RESET & BASE ============ */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--surface-page);
  color:var(--text-body);
  font-size:var(--fs-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

h1,h2,h3,h4{
  font-family:var(--font-display); font-weight:500; color:var(--text-heading);
  margin:0 0 .5em; letter-spacing:-.03em; text-wrap:balance; line-height:1.1;
}
h1{ font-size:var(--fs-h1); letter-spacing:-.035em; }
h2{ font-size:var(--fs-h2); letter-spacing:-.03em; }
h3{ font-size:var(--fs-h3); letter-spacing:-.02em; }
h4{ font-size:var(--fs-h4); font-weight:600; letter-spacing:-.01em; }
h5{ font-family:var(--font-body); font-weight:600; font-size:var(--fs-h5); color:var(--text-heading); margin:0 0 .5em; }
p{ margin:0 0 1em; text-wrap:pretty; }
.on-dark{ color:var(--text-on-inverse); }
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{ color:var(--text-on-inverse); }

.container{ width:100%; max-width:1280px; margin-inline:auto; padding-inline:clamp(1.25rem,5vw,4rem); }
.container--wide{ max-width:1440px; }
.container--narrow{ max-width:720px; }
.u-vh{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* eyebrow di sezione */
.eyebrow{ display:inline-flex; align-items:center;
  font:500 var(--fs-eyebrow)/1 var(--font-mono); letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-muted); margin:0 0 var(--sp-4); }
.on-dark .eyebrow{ color:var(--azz-300); }

/* sezione scura standard (gradient-deep + glow) */
.sec-dark{ position:relative; background:var(--gradient-deep); color:var(--text-on-inverse); overflow:hidden; }
.sec-dark::before{ content:""; position:absolute; inset:0; pointer-events:none; background:var(--gradient-glow); opacity:.6; }
.sec-dark > *{ position:relative; z-index:1; }

/* focus ring globale */
:focus-visible{ outline:2px solid var(--focus-ring); outline-offset:3px; border-radius:var(--r-sm); }
.on-dark :focus-visible, .sec-dark :focus-visible{ outline-color:var(--focus-ring-inverse); }

/* scroll reveal (vedi js/cobalto-reveal.js) */
[data-reveal]{ opacity:0; transform:translateY(24px); transition:opacity var(--dur-reveal) var(--ease-expo), transform var(--dur-reveal) var(--ease-expo); }
[data-reveal].is-visible{ opacity:1; transform:none; }

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

/* ============ BOTTONI ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2);
  height:48px; padding:0 var(--sp-6); border-radius:var(--r-md); border:0; cursor:pointer;
  font:500 15px/1 var(--font-body); letter-spacing:-.01em; text-decoration:none; white-space:nowrap;
  transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-base) var(--ease-out),
             transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out);
}
.btn svg{ width:18px; height:18px; flex:none; }
.btn--sm{ height:40px; padding:0 var(--sp-4); font-size:14px; }
.btn--lg{ height:56px; padding:0 var(--sp-8); font-size:16px; }
.btn--xl{ height:64px; padding:0 var(--sp-10); font-size:17px; border-radius:var(--r-full); }

.btn--primary{ background:var(--blu-600); color:#fff; box-shadow:var(--sh-brand); }
.btn--primary:hover{ background:var(--blu-700); transform:translateY(-2px); }
.btn--primary:active{ background:var(--blu-800); transform:translateY(0); }

.btn--primary-gradient{ background:var(--gradient-brand); color:#fff; }
.btn--primary-gradient:hover{ filter:brightness(1.06); box-shadow:var(--sh-glow); }
.btn--primary-gradient:active{ transform:scale(.98); }

.btn--secondary{ background:transparent; color:var(--n-900); border:1px solid var(--n-300); }
.btn--secondary:hover{ border-color:var(--blu-600); color:var(--blu-600); background:var(--blu-50); }
.btn--secondary:active{ background:var(--blu-100); }

.btn--ghost{ background:transparent; color:var(--n-700); }
.btn--ghost:hover{ background:var(--n-100); }
.btn--ghost:active{ background:var(--n-200); }

.btn--inverse{ background:#fff; color:var(--blu-950); }
.btn--inverse:hover{ background:var(--azz-300); }
.btn--inverse:active{ background:var(--azz-400); }

.btn--inverse-outline{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.24); }
.btn--inverse-outline:hover{ border-color:var(--azz-300); color:var(--azz-300); }

.btn[disabled]{ opacity:.45; pointer-events:none; cursor:not-allowed; }

.link-arrow{ display:inline-flex; align-items:center; gap:7px; color:var(--blu-600);
  font:500 var(--fs-small)/1 var(--font-body); text-decoration:none; }
.link-arrow svg,.link-arrow i{ transition:transform var(--dur-base) var(--ease-out); font-style:normal; }
.link-arrow:hover svg,.link-arrow:hover i{ transform:translateX(4px); }
.on-dark .link-arrow{ color:var(--azz-300); }

/* ============ BADGE / TAG ============ */
.tag{ display:inline-flex; align-items:center; padding:6px 12px; border-radius:var(--r-full);
  background:var(--n-100); color:var(--n-700); font:400 var(--fs-caption)/1 var(--font-body); }
.tag--brand{ background:var(--blu-50); color:var(--blu-700); border:1px solid var(--blu-100); }
.tag--accent{ background:var(--azz-50); color:var(--azz-900); }

/* ============ CARD ============ */
.card{ padding:var(--sp-6); border-radius:var(--r-lg); background:var(--n-0);
  border:1px solid var(--n-200); box-shadow:var(--sh-xs);
  transition:border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out),
             transform var(--dur-base) var(--ease-out); }
@media (min-width:768px){ .card{ padding:var(--sp-8); } }

/* Service card */
.c-service{ display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit; padding:var(--sp-4); }
.c-service:hover{ border-color:var(--blu-200); transform:translateY(-4px); box-shadow:var(--sh-md); }
.c-service__media{ position:relative; aspect-ratio:4/3; border-radius:var(--r-md); overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:var(--n-50); border:1px solid var(--n-200); margin-bottom:var(--sp-6);
  transition:border-color var(--dur-base) var(--ease-out); }
.c-service:hover .c-service__media{ border-color:var(--blu-200); }
.c-service__play{ width:40px; height:40px; border-radius:var(--r-full); border:1.5px solid var(--blu-600);
  color:var(--blu-600); display:grid; place-items:center; transition:transform var(--dur-base) var(--ease-out); }
.c-service__play svg{ width:16px; height:16px; }
.c-service:hover .c-service__play{ transform:scale(1.08); }
.c-service__ph{ font:400 13px/1 var(--font-body); color:var(--n-500); }
.c-service h3{ font-size:var(--fs-h4); margin-bottom:var(--sp-2); }
.c-service p{ color:var(--text-secondary); margin-bottom:var(--sp-6); }
.c-service .btn{ width:100%; justify-content:center; }
.c-service[aria-disabled="true"] .btn{ opacity:.45; pointer-events:none; }

/* Stat card */
.c-stat{ text-align:left; }
.c-stat__num{ font-family:var(--font-display); font-weight:500; font-size:var(--fs-h1);
  font-variant-numeric:tabular-nums; background:var(--gradient-brand); -webkit-background-clip:text;
  background-clip:text; -webkit-text-fill-color:transparent; line-height:1; }
.sec-dark .c-stat__num{ -webkit-text-fill-color:unset; background:none; color:#fff; }
.c-stat__label{ margin-top:var(--sp-3); font:500 var(--fs-eyebrow)/1.3 var(--font-mono);
  text-transform:uppercase; letter-spacing:.1em; color:var(--n-500); }
.sec-dark .c-stat__label{ color:var(--n-300); }

/* Feature card scura */
.c-feature-dark{ background:var(--gradient-deep); color:#fff; border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-lg); padding:var(--sp-8); position:relative; overflow:hidden; }
.c-feature-dark::before{ content:""; position:absolute; inset:0; background:var(--gradient-glow); opacity:.5; pointer-events:none; }
.c-feature-dark > *{ position:relative; z-index:1; }

/* ============ FORM ============ */
.field{ margin-bottom:var(--sp-5); }
.field label{ display:block; font:500 var(--fs-small)/1 var(--font-body); color:var(--n-800); margin-bottom:var(--sp-2); }
.field input[type="text"],.field input[type="email"],.field input[type="tel"],
.field textarea,.field select{
  width:100%; height:52px; padding:14px 16px; border-radius:var(--r-sm); border:1px solid var(--n-400);
  background:var(--n-0); font:400 var(--fs-body)/1.4 var(--font-body); color:var(--n-900);
  transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.field textarea{ height:auto; min-height:140px; padding-top:14px; resize:vertical; }
.field input:hover,.field textarea:hover{ border-color:var(--n-500); }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--blu-600); box-shadow:0 0 0 3px rgba(26,63,204,.14); }
.field input::placeholder,.field textarea::placeholder{ color:var(--n-400); }
.field-helper{ margin-top:6px; font-size:var(--fs-caption); color:var(--text-muted); }

/* ============ HEADER — pill flottante ============ */
.site-header{ position:fixed; top:var(--sp-4); left:var(--sp-6); right:var(--sp-6); z-index:1000;
  display:flex; justify-content:center; pointer-events:none;
  transition:transform var(--dur-base) var(--ease-out); }
.site-header[data-hidden="true"]{ transform:translateY(-140%); }

.navpill{ pointer-events:auto; display:flex; align-items:center; gap:var(--sp-5);
  width:fit-content; max-width:1120px; height:64px; padding:var(--sp-2) var(--sp-3);
  border-radius:var(--r-full); overflow:visible;
  background:rgba(255,255,255,.78); border:1px solid var(--n-200); box-shadow:var(--sh-md);
  transition:height var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
@supports (backdrop-filter:blur(1px)){
  .navpill{ backdrop-filter:blur(24px) saturate(180%); -webkit-backdrop-filter:blur(24px) saturate(180%); }
}
.site-header[data-scrolled="true"] .navpill{ height:56px; box-shadow:var(--sh-lg); }
.site-header[data-theme="dark"] .navpill{ background:rgba(14,26,61,.72); border-color:rgba(255,255,255,.10);
  box-shadow:0 8px 32px rgba(7,15,43,.40); }

.brand{ display:flex; align-items:center; padding-inline:var(--sp-3); text-decoration:none; white-space:nowrap; }
.brand img{ height:22px; width:auto; transition:opacity var(--dur-base) var(--ease-out); }
.brand .brand-dark{ display:none; }
.site-header[data-theme="dark"] .brand .brand-light{ display:none; }
.site-header[data-theme="dark"] .brand .brand-dark{ display:block; }

.divider{ width:1px; height:24px; flex:none; background:var(--n-200); transition:background-color var(--dur-base) var(--ease-out); }
.site-header[data-theme="dark"] .divider{ background:rgba(255,255,255,.10); }

.nav{ display:flex; align-items:center; gap:var(--sp-1); list-style:none; margin:0; padding:0; }
.nav__link{ display:inline-flex; align-items:center; gap:6px;
  font:500 15px/1 var(--font-body); letter-spacing:-.01em; color:var(--n-700);
  background:transparent; border:0; cursor:pointer; padding:13px 16px; border-radius:var(--r-full);
  text-decoration:none; white-space:nowrap;
  transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out); }
.site-header[data-theme="dark"] .nav__link{ color:var(--n-300); }
.nav__link:hover{ background:var(--n-100); color:var(--n-950); }
.site-header[data-theme="dark"] .nav__link:hover{ background:rgba(255,255,255,.06); color:#fff; }
.nav__link[aria-current="page"],.nav__link[aria-expanded="true"]{ background:var(--blu-50); color:var(--blu-800); }
.site-header[data-theme="dark"] .nav__link[aria-current="page"],
.site-header[data-theme="dark"] .nav__link[aria-expanded="true"]{ background:var(--surface-inverse-pill); color:#fff; }
.nav__link .caret{ width:10px; height:10px; transition:transform var(--dur-fast) var(--ease-out); opacity:.7; }
.nav__link[aria-expanded="true"] .caret{ transform:rotate(180deg); opacity:1; }

.header-cta{ display:inline-flex; align-items:center; justify-content:center; white-space:nowrap;
  height:40px; padding:0 20px; border-radius:var(--r-full); border:0; cursor:pointer;
  font:500 15px/1 var(--font-body); letter-spacing:-.01em; text-decoration:none;
  background:var(--blu-600); color:#fff;
  transition:background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out),
             transform var(--dur-fast) var(--ease-out), color var(--dur-base) var(--ease-out); }
.header-cta:hover{ background:var(--blu-700); box-shadow:var(--sh-brand); transform:translateY(-1px); }
.site-header[data-theme="dark"] .header-cta{ background:var(--azz-300); color:var(--blu-950); }
.site-header[data-theme="dark"] .header-cta:hover{ background:var(--azz-200); box-shadow:var(--sh-glow); }

.skip{ position:absolute; left:50%; translate:-50% 0; top:-100px; z-index:1200; pointer-events:auto;
  background:var(--blu-600); color:#fff; padding:12px 22px; border-radius:var(--r-full);
  font:500 15px/1 var(--font-body); text-decoration:none; transition:top var(--dur-fast) var(--ease-out); }
.skip:focus{ top:var(--sp-4); }

/* ---- Mega menu ---- */
.mega{ position:absolute; top:calc(100% + var(--sp-3)); left:50%; translate:-50% 0;
  width:min(1120px, calc(100vw - 48px)); z-index:999; pointer-events:auto;
  padding:var(--sp-8); border-radius:var(--r-2xl);
  background:rgba(255,255,255,.94); border:1px solid var(--n-200); box-shadow:var(--sh-lg);
  opacity:0; transform:translateY(-8px) scale(.985); visibility:hidden;
  transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility 0s linear var(--dur-fast); }
@supports (backdrop-filter:blur(1px)){
  .mega{ backdrop-filter:blur(24px) saturate(180%); -webkit-backdrop-filter:blur(24px) saturate(180%); }
}
.site-header[data-theme="dark"] .mega{ background:rgba(14,26,61,.94); border-color:rgba(255,255,255,.10);
  box-shadow:0 24px 64px rgba(7,15,43,.5); }
.mega[data-open="true"]{ opacity:1; transform:none; visibility:visible;
  transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility 0s; }
.mega__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-6); list-style:none; margin:0; padding:0; }
.mega[data-open="true"] .mega__item{ animation:mega-rise var(--dur-base) var(--ease-out) backwards; }
.mega[data-open="true"] .mega__item:nth-child(2){ animation-delay:40ms; }
.mega[data-open="true"] .mega__item:nth-child(3){ animation-delay:80ms; }
@keyframes mega-rise{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }

.mcard{ display:block; text-decoration:none; color:inherit; }
.mcard__media{ position:relative; aspect-ratio:16/9; border-radius:var(--r-lg); overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:var(--n-50); border:1px solid var(--n-200);
  transition:border-color var(--dur-base) var(--ease-out); }
.site-header[data-theme="dark"] .mcard__media{ background:rgba(255,255,255,.03); border-color:rgba(255,255,255,.10); }
.mcard:hover .mcard__media{ border-color:rgba(111,216,255,.55); }
.mcard__play{ width:40px; height:40px; border-radius:var(--r-full); border:1.5px solid var(--azz-600);
  color:var(--azz-600); display:grid; place-items:center; transition:transform var(--dur-base) var(--ease-out); }
.site-header[data-theme="dark"] .mcard__play{ border-color:var(--azz-300); color:var(--azz-300); }
.mcard:hover .mcard__play{ transform:scale(1.08); }
.mcard__ph{ font:400 13px/1 var(--font-body); color:var(--n-500); }
.site-header[data-theme="dark"] .mcard__ph{ color:var(--n-400); }
.mcard__eyebrow{ display:block; margin-top:var(--sp-4); font:500 12px/1.2 var(--font-mono);
  letter-spacing:.12em; text-transform:uppercase; color:var(--azz-700); }
.site-header[data-theme="dark"] .mcard__eyebrow{ color:var(--azz-300); }
.mcard__title{ margin:10px 0 0; font:600 19px/1.3 var(--font-display); letter-spacing:-.015em;
  color:var(--n-950); text-wrap:balance; }
.site-header[data-theme="dark"] .mcard__title{ color:#fff; }
.mcard__desc{ margin:8px 0 0; font:400 14.5px/1.55 var(--font-body); color:var(--n-600); }
.site-header[data-theme="dark"] .mcard__desc{ color:var(--n-300); }
.mcard__link{ display:inline-flex; align-items:center; gap:7px; margin-top:var(--sp-4);
  font:500 14.5px/1 var(--font-body); color:var(--blu-600); }
.site-header[data-theme="dark"] .mcard__link{ color:var(--azz-300); }
.mcard__link i{ font-style:normal; transition:transform var(--dur-base) var(--ease-out); }
.mcard:hover .mcard__link i{ transform:translateX(4px); }

/* ---- Mobile ---- */
.burger{ display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer;
  border-radius:var(--r-full); place-items:center; color:var(--n-950); }
.site-header[data-theme="dark"] .burger{ color:#fff; }
.burger span{ display:block; width:20px; height:1.5px; background:currentColor; border-radius:2px;
  transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out); }
.burger span+span{ margin-top:5px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.mobile-overlay{ position:fixed; inset:0; z-index:1001; background:var(--gradient-deep);
  clip-path:inset(0 0 100% 0); pointer-events:none;
  transition:clip-path var(--dur-base) var(--ease-expo); overflow-y:auto; }
.mobile-overlay::before{ content:""; position:absolute; inset:0; background:var(--gradient-glow); opacity:.6; pointer-events:none; }
.mobile-overlay[data-open="true"]{ clip-path:inset(0 0 0 0); pointer-events:auto; }
.mobile-overlay__inner{ position:relative; z-index:1; padding:calc(var(--sp-16) + 56px) var(--sp-6) var(--sp-10); min-height:100%; }
.mobile-nav{ list-style:none; margin:0 0 var(--sp-10); padding:0; }
.mobile-nav > li{ border-bottom:1px solid rgba(255,255,255,.1); }
.mobile-nav a,.mobile-nav .mnav-trigger{ display:flex; align-items:center; justify-content:space-between;
  width:100%; padding:18px 0; font:500 var(--fs-h3)/1.15 var(--font-display); letter-spacing:-.02em;
  color:#fff; text-decoration:none; background:none; border:0; cursor:pointer; text-align:left; }
.mnav-trigger svg{ width:20px; height:20px; transition:transform var(--dur-fast) var(--ease-out); flex:none; margin-left:12px; }
.mnav-trigger[aria-expanded="true"] svg{ transform:rotate(180deg); }
.mnav-panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--dur-slow) var(--ease-out); }
.mnav-panel > div{ overflow:hidden; }
.mnav-trigger[aria-expanded="true"] + .mnav-panel{ grid-template-rows:1fr; }
.mnav-panel a{ padding:12px 0 12px var(--sp-4); font:500 var(--fs-h5)/1.3 var(--font-body); color:var(--n-300); border:0; }
.mobile-overlay .header-cta{ display:flex; width:100%; height:56px; }

@media (max-width:1023px){
  .site-header{ left:var(--sp-4); right:var(--sp-4); }
  .navpill{ width:100%; height:56px; justify-content:space-between; gap:var(--sp-3); }
  .divider,.nav,.navpill > .header-cta{ display:none; }
  .burger{ display:grid; }
}
@media (min-width:1024px){ .mobile-overlay{ display:none; } }

/* ============ FOOTER (sempre bianco) ============ */
.ftr{ background:var(--n-0); color:var(--n-900); padding-top:clamp(6rem, 3rem + 10vw, 9rem); position:relative; overflow:hidden; }
.ftr__in{ max-width:1280px; margin-inline:auto; padding-inline:clamp(1.25rem,5vw,4rem); }
.ftr__rule{ border:0; border-top:1px solid var(--n-200); margin:clamp(3rem,6vw,4rem) 0; }
.ftr__label{ font:500 12.5px/1.2 var(--font-mono); letter-spacing:.12em; text-transform:uppercase;
  color:var(--n-500); margin:0 0 var(--sp-5); white-space:nowrap; }
.ftr__label::before{ content:"["; } .ftr__label::after{ content:"]"; }
.ftr__label--second{ margin-top:var(--sp-8); }
.ftr__cols{ display:grid; grid-template-columns:repeat(5,1fr); gap:var(--sp-8); }
.ftr__col ul{ list-style:none; margin:0; padding:0; }
.ftr__col li{ margin-bottom:var(--sp-3); }
.ftr__col a{ display:inline-block; padding-block:6px; margin-block:-6px;
  font:400 16.5px/1.4 var(--font-body); color:var(--n-700); text-decoration:none;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px; background-repeat:no-repeat; background-position:0 100%;
  transition:color var(--dur-fast) var(--ease-out), background-size var(--dur-base) var(--ease-out); }
.ftr__col a:hover{ color:var(--n-950); background-size:100% 1px; }
.ftr__whatsapp{ margin-top:var(--sp-4); }

.ftr__mid{ display:grid; grid-template-columns:7fr 5fr; gap:clamp(2rem,6vw,5rem); align-items:start; }
.ftr__news-title{ font:500 clamp(1.4375rem, 1.05rem + 1.9vw, 2.25rem)/1.15 var(--font-display);
  letter-spacing:-.025em; color:var(--n-950); max-width:22ch; margin:0 0 var(--sp-8); text-wrap:balance; }
.nlform{ display:flex; align-items:center; gap:var(--sp-4); max-width:560px; }
.nlform__input{ flex:1; min-width:0; border:0; border-bottom:1px solid var(--n-400);
  background:transparent; padding:12px 0; font:400 19px/1.4 var(--font-body); color:var(--n-950); }
.nlform__input::placeholder{ color:var(--n-400); }
.nlform__input:focus{ outline:none; border-bottom:2px solid var(--blu-600); padding-bottom:11px; }
.nlform__submit{ flex:none; width:48px; height:48px; border-radius:var(--r-full);
  border:1px solid var(--n-400); background:transparent; color:var(--n-700); cursor:pointer;
  display:grid; place-items:center;
  transition:background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out); }
.nlform__submit svg{ width:20px; height:20px; transition:transform var(--dur-base) var(--ease-out); }
.nlform__submit:hover{ background:var(--blu-600); border-color:var(--blu-600); color:#fff; }
.nlform__submit:hover svg{ transform:rotate(90deg); }
.nlform__consent{ display:flex; gap:10px; align-items:flex-start; margin:var(--sp-5) 0 0; max-width:52ch;
  font:400 13px/1.5 var(--font-body); color:var(--n-500); }
.nlform__consent input{ margin-top:2px; accent-color:var(--blu-600); width:16px; height:16px; flex:none; }
.nlform__consent a{ color:var(--n-700); text-underline-offset:3px; }
.nlform__note{ margin-top:var(--sp-4); font-size:var(--fs-caption); color:var(--success); display:none; }
.nlform__note.is-visible{ display:block; }

.ftr__legal p{ margin:0 0 8px; font:400 16.5px/1.6 var(--font-body); color:var(--n-600); }
.ftr__legal strong{ color:var(--n-950); font-weight:600; }
.ftr__vat{ margin-top:var(--sp-4) !important; color:var(--n-500) !important; }

.ftr__mark{ display:block; width:clamp(260px,68vw,1400px); margin-inline:auto;
  padding-block:clamp(2rem,6vw,4rem) clamp(3rem,8vw,6rem); opacity:.5; user-select:none; }
.ftr__copy{ position:relative; z-index:1; text-align:center; margin:0; padding:0 var(--sp-4) var(--sp-10);
  font:400 13px/1.4 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--n-500); }

.totop{ position:fixed; left:var(--sp-6); bottom:var(--sp-6); z-index:900;
  width:56px; height:56px; border-radius:var(--r-full); border:0; cursor:pointer;
  background:var(--blu-600); color:#fff; display:grid; place-items:center; box-shadow:var(--sh-brand);
  opacity:0; scale:.8; pointer-events:none;
  transition:opacity var(--dur-base) var(--ease-out), scale var(--dur-base) var(--ease-out),
             background-color var(--dur-fast) var(--ease-out), translate var(--dur-fast) var(--ease-out); }
.totop svg{ width:20px; height:20px; }
.totop[data-show="true"]{ opacity:1; scale:1; pointer-events:auto; }
.totop:hover{ background:var(--blu-700); translate:0 -3px; }

@media (max-width:1023px){
  .ftr__cols{ grid-template-columns:repeat(2,1fr); gap:var(--sp-8) var(--sp-6); }
  .ftr__mid{ grid-template-columns:1fr; gap:var(--sp-16); }
}
@media (max-width:600px){
  .ftr__cols{ grid-template-columns:1fr; }
  .nlform{ flex-wrap:wrap; }
  .totop{ width:48px; height:48px; }
}
