/* ============================================================
   DE LEONIBUS — VARIANT ("Costa / Metodo")
   CSS master della variante redesign.
   Direzione: giovane-premium, costiero (Pescara/Abruzzo), sportivo
   ma elegante. Navy + oro + avorio con misura. Grotesk + Inter.
   Token-first: solo var() nei componenti. A11y: oro MAI testo/bordo
   su fondi chiari (2.11:1) — su avorio il testo e' navy.
   Basato sulla ricerca in _DESIGN/SISTEMA.md + tokens.css.
   ============================================================ */

/* ---------- TOKEN (adattati da _DESIGN/tokens.css) ---------- */
:root{
  /* Colore — inchiostri navy */
  --ink:#0a1a2e; --ink-2:#0e2340; --ink-3:#081524;
  /* Oro (mondo "far crescere") */
  --gold:#c9a227; --gold-2:#e6cd78;
  /* Acciaio (mondo "proteggere") */
  --steel:#7fa8c9; --steel-2:#4d7ba3;
  /* Carta / avorio */
  --paper:#f4efe4; --paper-2:#cdd7e3; --muted:#8fa0b4;
  /* Testo su fondi CHIARI (avorio) — sempre navy, mai oro */
  --ink-soft:rgba(10,26,46,.72);   /* corpo su avorio */
  --ink-faint:rgba(10,26,46,.54);  /* didascalie su avorio */
  --line-ink:rgba(10,26,46,.12);   /* hairline su avorio */
  --line-ink-2:rgba(10,26,46,.08);
  /* Linee & veli su navy */
  --line:rgba(230,205,120,.16); --line-2:rgba(255,255,255,.09);
  --veil:rgba(8,21,36,.9);
  --tint-gold:rgba(201,162,39,.08); --tint-steel:rgba(127,168,201,.08);
  /* Funzionali */
  --wa:#25d366; --wa-ink:#04321a; --focus:var(--gold-2);
  /* Accento commutato dal toggle */
  --accent:var(--steel-2); --accent-soft:var(--steel);

  /* Tipografia — direzione scelta */
  --font-display:"Schibsted Grotesk","Segoe UI",system-ui,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;

  /* Scala fluida */
  --fs-micro:.72rem; --fs-xs:.8rem; --fs-sm:.9rem; --fs-base:1rem;
  --fs-md:clamp(1.03rem,.98rem + .3vw,1.16rem);
  --fs-lg:clamp(1.2rem,1.05rem + .8vw,1.55rem);
  --fs-xl:clamp(1.7rem,1.25rem + 2vw,2.7rem);
  --fs-2xl:clamp(2rem,1.35rem + 3vw,3.3rem);
  --fs-3xl:clamp(2.3rem,1.4rem + 4vw,4rem);
  --fs-hero:clamp(2.05rem,1.1rem + 5vw,5rem);

  --fw-reg:400; --fw-med:500; --fw-semi:600; --fw-bold:700; --fw-black:800;
  --lh-tight:1.02; --lh-snug:1.2; --lh-body:1.62;
  --ls-tight:-.02em; --ls-label:.16em; --ls-label-2:.1em;
  --measure:62ch; --measure-tight:40ch;

  /* Spazio */
  --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;
  --pad:clamp(20px,4vw,44px);
  --section-y:clamp(64px,9vw,124px);

  /* Layout */
  --maxw:1320px; --maxw-text:720px; --gutter:clamp(16px,2.4vw,30px);

  /* Raggi */
  --r-xs:3px; --r-sm:6px; --r-md:10px; --r-lg:16px; --r-pill:100px; --r-round:50%;

  /* Ombre */
  --sh-1:0 2px 10px -6px rgba(8,20,36,.5);
  --sh-2:0 14px 34px -20px rgba(8,20,36,.55);
  --sh-3:0 22px 50px -22px rgba(8,20,36,.6);
  --sh-light:0 18px 44px -26px rgba(10,26,46,.28);
  --glow:0 0 0 1px var(--line),0 14px 40px -20px rgba(201,162,39,.4);

  /* Motion */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-inout:cubic-bezier(.65,.05,.36,1);
  --d-fast:.16s; --d-med:.32s; --d-slow:.85s; --stagger:.08s;

  /* z */
  --z-nav:50; --z-float:60; --z-drawer:80;
}
body[data-mondo="finanziario"]{ --accent:var(--gold); --accent-soft:var(--gold-2); }
body[data-mondo="assicurativo"]{ --accent:var(--steel-2); --accent-soft:var(--steel); }

/* ---------- RESET / BASE ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--ink); color:var(--paper);
  font-family:var(--font-body); font-size:var(--fs-base); line-height:var(--lh-body);
  font-weight:var(--fw-reg); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:var(--fw-bold);
  line-height:var(--lh-snug); letter-spacing:var(--ls-tight); margin:0; text-wrap:balance;
  overflow-wrap:break-word; }
/* Blindaggio anti-overflow: gli item di grid/flex non si allargano oltre la traccia */
.hero-grid>*,.worlds-grid>*,.manifesto-grid>*,.about-grid>*,.numbers-grid>*,
.method-grid>*,.reviews-grid>*,.nav .wrap>*,.hero-cta>*{ min-width:0; }
p{ margin:0; }
:where(a,button,[role="tab"],input,textarea,select,[tabindex]):focus-visible{
  outline:2px solid var(--focus); outline-offset:3px; border-radius:var(--r-xs);
}
::selection{ background:var(--gold); color:var(--ink); }

.skip{ position:absolute; left:-9999px; top:0; z-index:200; background:var(--gold); color:var(--ink);
  padding:.7rem 1.1rem; font-weight:600; border-radius:0 0 var(--r-sm) 0; }
.skip:focus{ left:0; }

/* ---------- LAYOUT HELPERS ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:var(--section-y); position:relative; }
.section--light{ background:var(--paper); color:var(--ink); }
.section--deep{ background:var(--ink-3); }
.narrow{ max-width:var(--maxw-text); }

/* Eyebrow / kicker (label tracciata, no mono cliche) */
.eyebrow{ display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-display); font-size:var(--fs-micro); font-weight:var(--fw-semi);
  letter-spacing:var(--ls-label); text-transform:uppercase; color:var(--accent-soft); }
.eyebrow::before{ content:""; width:26px; height:1px; background:currentColor; opacity:.6; }
.eyebrow.center{ justify-content:center; }
.section--light .eyebrow{ color:var(--steel-2); }

/* Section head */
.shead{ margin-bottom:clamp(28px,4vw,52px); }
.shead.center{ text-align:center; margin-inline:auto; max-width:56ch; }
.shead h2{ font-size:var(--fs-2xl); margin-top:.7rem; }
.shead .lead{ margin-top:1rem; font-size:var(--fs-md); color:var(--paper-2); max-width:56ch; }
.shead.center .lead{ margin-inline:auto; }
.section--light .shead .lead{ color:var(--ink-soft); }

/* Numero indice editoriale (spina "sommario") */
.ix{ font-family:var(--font-display); font-variant-numeric:tabular-nums;
  font-weight:var(--fw-bold); letter-spacing:.02em; }

/* ---------- BOTTONI ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:48px; padding:.82rem 1.5rem; border-radius:var(--r-pill);
  font-family:var(--font-display); font-weight:var(--fw-semi); font-size:.96rem;
  letter-spacing:.005em; border:1px solid transparent; transition:transform var(--d-fast) var(--ease),
  background var(--d-med) var(--ease), box-shadow var(--d-med) var(--ease), border-color var(--d-med) var(--ease); }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.99); }
.btn-gold{ background:var(--gold); color:var(--ink); box-shadow:var(--sh-1); }
.btn-gold:hover{ background:var(--gold-2); box-shadow:var(--glow); }
.btn-ghost{ background:transparent; color:var(--paper); border-color:var(--line-2); }
.btn-ghost:hover{ border-color:var(--accent-soft); background:rgba(255,255,255,.04); }
.section--light .btn-ghost{ color:var(--ink); border-color:var(--line-ink); }
.section--light .btn-ghost:hover{ border-color:var(--steel-2); background:rgba(10,26,46,.04); }
.btn-wa{ background:var(--wa); color:#04321a; }
.btn-wa:hover{ filter:brightness(1.06); }
.btn-sm{ min-height:42px; padding:.6rem 1.1rem; font-size:.9rem; }

/* Link con freccia */
.lnk{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-display);
  font-weight:var(--fw-semi); font-size:.96rem; color:var(--accent-soft);
  padding-bottom:2px; border-bottom:1px solid transparent; transition:gap var(--d-fast) var(--ease),
  border-color var(--d-fast) var(--ease); }
.section--light .lnk{ color:var(--steel-2); }
.lnk svg{ width:1.05em; height:1.05em; transition:transform var(--d-fast) var(--ease); }
.lnk:hover{ gap:.75rem; border-color:currentColor; }
.lnk:hover svg{ transform:translateX(3px); }

/* ---------- TOPBAR ---------- */
.topbar{ background:var(--ink-3); border-bottom:1px solid var(--line-2); font-size:var(--fs-xs); }
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  min-height:38px; padding-block:6px; }
.topbar .creds{ display:flex; gap:1.4rem; flex-wrap:wrap; color:var(--muted); }
.topbar .creds b{ color:var(--paper-2); font-weight:var(--fw-med); }
.topbar .dot{ display:inline-block; width:5px; height:5px; border-radius:50%;
  background:var(--gold); margin-right:.45rem; vertical-align:middle; }
.topbar .tcontact a{ color:var(--paper-2); font-weight:var(--fw-med); }
.topbar .tcontact a:hover{ color:var(--gold-2); }
@media (max-width:760px){ .topbar .creds span:nth-child(n+3){ display:none; } }
@media (max-width:560px){ .topbar .creds span:nth-child(n+2){ display:none; } }

/* ---------- NAV ---------- */
.nav{ position:sticky; top:0; z-index:var(--z-nav);
  background:transparent; border-bottom:1px solid transparent;
  transition:background var(--d-med) var(--ease), backdrop-filter var(--d-med) var(--ease),
  border-color var(--d-med) var(--ease); }
.nav.scrolled{ background:rgba(8,21,36,.94); backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line); }
.nav .wrap{ display:flex; align-items:center; gap:1rem; min-height:72px; }
.brand{ display:inline-flex; align-items:center; gap:.7rem; flex:none; }
.brand img{ width:42px; height:42px; border-radius:50%; object-fit:cover;
  border:1px solid var(--line); }
.brand-txt{ display:flex; flex-direction:column; line-height:1.15; }
.brand-txt b{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:.98rem; letter-spacing:-.01em; }
.brand-txt span{ font-size:var(--fs-xs); color:var(--muted); letter-spacing:.02em; }

/* Toggle segmented (centro, baricentro) */
.toggle{ margin-inline:auto; position:relative; display:inline-flex; padding:4px;
  background:rgba(255,255,255,.05); border:1px solid var(--line-2); border-radius:var(--r-pill);
  transition:border-color var(--d-med) var(--ease), box-shadow var(--d-med) var(--ease); }
/* Mondo scelto: l'intero controllo si accende con l'accento */
body[data-mondo] .toggle{ border-color:color-mix(in srgb,var(--accent-soft) 55%, transparent);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-soft) 22%, transparent); }
/* Pill JS-posizionata abbandonata: l'evidenziatore è lo sfondo del tab attivo (robusto, sempre allineato) */
.toggle .pill{ display:none; }
.toggle button{ position:relative; z-index:1; min-height:40px; padding:0 1.15rem;
  background:none; border:0; border-radius:var(--r-pill);
  font-family:var(--font-display); font-weight:var(--fw-semi); font-size:.88rem;
  color:var(--muted); transition:color var(--d-med) var(--ease), background var(--d-med) var(--ease),
    transform var(--d-fast) var(--ease); white-space:nowrap; }
.toggle button:hover{ color:var(--paper-2); }
/* Home (hub neutro, nessun mondo attivo): entrambi i tab leggibili e invitanti al tap */
body:not([data-mondo]) .toggle button{ color:var(--paper-2); }
body:not([data-mondo]) .toggle button:hover{ color:var(--paper); }
.toggle button[aria-selected="true"]{ color:var(--ink); font-weight:var(--fw-bold);
  background:var(--accent-soft);
  box-shadow:0 2px 8px -2px rgba(0,0,0,.5),
    0 0 14px -3px color-mix(in srgb,var(--accent-soft) 60%, transparent); }
/* CTA hero che diventa "porta" verso il mondo scelto */
.btn-hasarrow::after{ content:"→"; margin-left:.5rem; font-size:1.05em; line-height:1;
  transition:transform var(--d-fast) var(--ease); }
.btn-hasarrow:hover::after{ transform:translateX(3px); }
.nav-links{ display:flex; align-items:center; gap:1.6rem; flex:none; }
.nav-link{ font-family:var(--font-display); font-weight:var(--fw-med); font-size:.94rem;
  color:var(--paper-2); position:relative; padding:.3rem 0; }
.nav-link::after{ content:""; position:absolute; left:0; bottom:-2px; width:100%; height:1.5px;
  background:var(--gold-2); transform:scaleX(0); transform-origin:left; transition:transform var(--d-fast) var(--ease); }
.nav-link:hover{ color:var(--paper); }
.nav-link:hover::after,.nav-link:focus-visible::after{ transform:scaleX(1); }
.nav-right{ display:flex; align-items:center; gap:.7rem; flex:none; }

.burger{ display:none; width:44px; height:44px; border:1px solid var(--line-2);
  border-radius:var(--r-sm); background:transparent; padding:0;
  flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.burger span{ display:block; width:20px; height:2px; border-radius:2px; background:var(--paper);
  transition:transform var(--d-med) var(--ease), opacity var(--d-med) var(--ease); }
.burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Drawer mobile */
.drawer{ position:fixed; inset:0; z-index:var(--z-drawer); background:rgba(8,21,36,.72);
  backdrop-filter:blur(6px); opacity:0; visibility:hidden; transition:opacity var(--d-med) var(--ease),visibility var(--d-med); }
.drawer.open{ opacity:1; visibility:visible; }
.drawer-panel{ position:absolute; top:0; right:0; width:min(340px,86vw); height:100%;
  background:var(--ink-2); border-left:1px solid var(--line); padding:var(--sp-6);
  display:flex; flex-direction:column; gap:1.1rem; transform:translateX(100%);
  transition:transform var(--d-med) var(--ease); overflow-y:auto; }
.drawer.open .drawer-panel{ transform:none; }
.drawer-head{ display:flex; justify-content:space-between; align-items:center; }
.drawer-close{ width:44px; height:44px; border:1px solid var(--line-2); border-radius:var(--r-sm);
  background:none; font-size:1.2rem; color:var(--paper); }
.drawer a.d-link{ font-family:var(--font-display); font-weight:var(--fw-semi); font-size:1.15rem;
  padding:.6rem 0; border-bottom:1px solid var(--line-2); }
.drawer .toggle{ margin:0; align-self:flex-start; }
.drawer .btn{ margin-top:auto; }
.drawer .d-contact{ display:flex; flex-direction:column; gap:.4rem; color:var(--muted); font-size:.9rem; }

/* ---------- HERO ---------- */
.hero{ position:relative; overflow:hidden; padding-block:clamp(48px,7vw,96px); }
.hero-grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(28px,5vw,72px); align-items:center; }
.hero-watermark{ position:absolute; right:-4%; top:-14%; width:min(560px,52vw); opacity:.05;
  pointer-events:none; filter:grayscale(1) brightness(1.6); }
.hero-lines{ position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--line-2) 1px,transparent 1px);
  background-size:100% clamp(58px,7vw,86px);
  -webkit-mask-image:linear-gradient(transparent,#000 14%,#000 78%,transparent);
          mask-image:linear-gradient(transparent,#000 14%,#000 78%,transparent); opacity:.7; }
.hero-text{ position:relative; z-index:2; }
.hero h1{ font-size:var(--fs-hero); font-weight:var(--fw-black); line-height:1.03; margin-top:1.1rem; }
.hero h1 em{ font-style:normal; color:var(--accent-soft); transition:color var(--d-med) var(--ease); }
.hero-sub{ margin-top:1.3rem; font-size:var(--fs-md); color:var(--paper-2); max-width:50ch; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.8rem; }
.hero-offer{ display:flex; align-items:baseline; gap:.55rem; margin-top:1.2rem;
  font-size:.9rem; font-weight:var(--fw-med); color:var(--gold-2); max-width:44ch; }
.hero-offer .d{ width:7px; height:7px; border-radius:50%; background:var(--gold); flex:none;
  position:relative; top:-1px; }
.credlock{ display:flex; flex-wrap:wrap; gap:0; margin-top:2rem; border-top:1px solid var(--line-2); }
.credlock .c{ padding:1rem 1.4rem 0 0; margin-right:1.4rem; border-right:1px solid var(--line-2); }
.credlock .c:last-child{ border-right:0; margin-right:0; }
.credlock .k{ display:block; font-family:var(--font-display); font-weight:var(--fw-bold);
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-2); }
.credlock .v{ display:block; font-size:.84rem; color:var(--muted); margin-top:.15rem; }

/* Hero foto — cornice sartoriale */
.hero-card{ position:relative; z-index:2; }
.hero-photo{ position:relative; border-radius:var(--r-md); overflow:hidden;
  box-shadow:var(--sh-3); border:1px solid var(--line-2); aspect-ratio:4/5; }
.hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.hero-card::before{ content:""; position:absolute; inset:14px -14px -14px 14px; z-index:-1;
  border:1px solid var(--line); border-radius:var(--r-md); }
.hero-tag{ position:absolute; left:14px; bottom:14px; z-index:3; background:var(--veil);
  backdrop-filter:blur(6px); border:1px solid var(--line-2); border-radius:var(--r-sm);
  padding:.55rem .85rem; display:flex; flex-direction:column; line-height:1.25; }
.hero-tag b{ font-family:var(--font-display); font-weight:var(--fw-semi); font-size:.92rem; }
.hero-tag span{ font-size:var(--fs-xs); color:var(--muted); }
.hero-seal{ position:absolute; top:-16px; right:-16px; z-index:4; width:64px; height:64px;
  border-radius:50%; background:var(--ink-3); border:1px solid var(--line);
  display:grid; place-items:center; box-shadow:var(--sh-2); }
.hero-seal img{ width:40px; height:40px; border-radius:50%; }

/* Lavaggio-accento sulla foto: vira acciaio↔oro al cambio mondo */
.hero-photo::after{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(150deg,
    color-mix(in srgb, var(--accent-soft) 34%, transparent) 0%,
    transparent 52%);
  mix-blend-mode:soft-light; opacity:.9;
  transition:background var(--d-slow) var(--ease); }
/* Ramo attivo sulla targhetta */
.hero-ramo{ font-family:var(--font-mono); font-size:.6rem; letter-spacing:var(--ls-mono-2);
  text-transform:uppercase; color:var(--accent-soft); margin-bottom:.28rem;
  padding-bottom:.28rem; border-bottom:1px solid var(--line-2);
  transition:color var(--d-med) var(--ease); }

/* Cross-fade dei testi hero durante lo switch mondo */
#heroKicker, #heroLead, #heroSub, #heroRamo{ transition:opacity var(--d-med) var(--ease); }
.hero.is-swapping #heroKicker,
.hero.is-swapping #heroLead,
.hero.is-swapping #heroSub,
.hero.is-swapping #heroRamo{ opacity:0; }

/* ---------- PARTNER MARQUEE (fine hero) ---------- */
.pmarquee{ padding:clamp(26px,4vw,44px) 0; background:var(--ink-2);
  border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); }
.pm-kicker{ display:flex; justify-content:center; margin-bottom:clamp(16px,2.4vw,26px);
  color:var(--muted); }
.pmarquee-viewport{ position:relative; overflow:hidden; padding-block:4px;
  scrollbar-width:none; -ms-overflow-style:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); }
.pmarquee-viewport::-webkit-scrollbar{ display:none; }
.pmarquee-track{ display:flex; align-items:center; width:max-content;
  gap:clamp(16px,2vw,28px); will-change:transform;
  animation:pm-scroll 38s linear infinite; }
.pmarquee:hover .pmarquee-track{ animation-play-state:paused; }
.pm-logo{ flex:none; display:grid; place-items:center; height:66px; width:138px;
  background:#fff; border:1px solid var(--line-ink); border-radius:var(--r-sm); padding:.75rem 1.1rem;
  transition:transform var(--d-fast) var(--ease), box-shadow var(--d-med) var(--ease); }
.pm-logo:hover{ transform:translateY(-3px); box-shadow:var(--sh-light); }
.pm-logo img{ max-height:100%; max-width:100%; width:auto; object-fit:contain;
  filter:grayscale(.25); transition:filter var(--d-med) var(--ease); }
.pm-logo:hover img{ filter:grayscale(0); }
@keyframes pm-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){
  /* Niente scroll orizzontale (quindi nessuna barra): i loghi vanno a capo, centrati */
  .pmarquee-viewport{ overflow:hidden; -webkit-mask-image:none; mask-image:none; }
  .pmarquee-track{ animation:none; flex-wrap:wrap; justify-content:center; width:auto; row-gap:12px; }
  .pmarquee-track .pm-logo[aria-hidden="true"]{ display:none; }
}
@media (max-width:640px){ .pm-logo{ height:56px; width:118px; padding:.6rem .9rem; } }

/* ---------- INDEX STRIP (sommario) ---------- */
.indexstrip{ background:transparent; }
.indexstrip .wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(10px,1.2vw,16px);
  padding-block:clamp(22px,3.4vw,40px); }
.ixcell{ position:relative; display:flex; flex-direction:column; gap:.55rem; min-height:118px;
  padding:clamp(16px,1.7vw,22px); padding-bottom:clamp(30px,3vw,40px); overflow:hidden;
  background:var(--ink-2); border:1px solid var(--line-2); border-radius:var(--r-md);
  transition:transform var(--d-med) var(--ease), border-color var(--d-med) var(--ease),
    box-shadow var(--d-med) var(--ease), background var(--d-med) var(--ease); }
.ixcell:hover{ transform:translateY(-3px); background:var(--ink); border-color:var(--line);
  box-shadow:var(--sh-2); }
/* linea-accento in alto, appare all'hover */
.ixcell::before{ content:""; position:absolute; left:0; top:0; width:100%; height:2px;
  background:var(--gold-2); transform:scaleX(0); transform-origin:left;
  transition:transform var(--d-med) var(--ease); }
.ixcell:hover::before{ transform:scaleX(1); }
/* freccia = affordance "cliccami" */
.ixcell::after{ content:"→"; position:absolute; right:clamp(14px,1.5vw,20px); bottom:clamp(12px,1.4vw,18px);
  font-size:1.1rem; line-height:1; color:var(--muted);
  transition:transform var(--d-med) var(--ease), color var(--d-med) var(--ease); }
.ixcell:hover::after{ transform:translateX(4px); color:var(--gold-2); }
.ixcell .n{ font-family:var(--font-mono); font-weight:var(--fw-semi); font-size:.72rem;
  letter-spacing:var(--ls-mono-2); color:var(--gold-2); font-variant-numeric:tabular-nums; }
.ixcell .t{ font-family:var(--font-display); font-weight:var(--fw-semi); font-size:1.08rem;
  color:var(--paper); line-height:1.22; }

/* ---------- DUE MONDI ---------- */
.worlds-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,2.5vw,32px); }
.world{ position:relative; background:var(--ink-2); border:1px solid var(--line-2);
  border-radius:var(--r-md); overflow:hidden; display:flex; flex-direction:column;
  transition:transform var(--d-med) var(--ease), border-color var(--d-med) var(--ease),
  box-shadow var(--d-med) var(--ease); }
.world:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); border-color:var(--line); }
.world.active{ border-color:var(--accent-soft); box-shadow:var(--glow); order:-1; }
.world-media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.world-media img{ width:100%; height:100%; object-fit:cover;
  transition:transform var(--d-slow) var(--ease); }
.world:hover .world-media img{ transform:scale(1.04); }
.world-media::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(to top,rgba(8,21,36,.7),transparent 55%); }
.world-num{ position:absolute; top:16px; left:18px; z-index:2; font-family:var(--font-display);
  font-weight:var(--fw-black); font-size:1.4rem; color:var(--paper);
  text-shadow:0 2px 10px rgba(0,0,0,.5); }
.world-kind{ position:absolute; bottom:14px; left:18px; z-index:2; font-family:var(--font-display);
  font-size:var(--fs-micro); font-weight:var(--fw-semi); letter-spacing:.1em; text-transform:uppercase;
  color:var(--paper); background:rgba(8,21,36,.55); border:1px solid var(--line-2);
  padding:.3rem .6rem; border-radius:var(--r-pill); backdrop-filter:blur(4px); }
.world-body{ padding:clamp(20px,2.4vw,30px); display:flex; flex-direction:column; flex:1; }
.world-body h3{ font-size:var(--fs-lg); }
.world-body>p{ margin-top:.6rem; color:var(--paper-2); }
.world-list{ list-style:none; margin:1.2rem 0 0; padding:0; display:grid; gap:.6rem; }
.world-list li{ position:relative; padding-left:1.4rem; font-size:.95rem; color:var(--paper-2); }
.world-list li::before{ content:""; position:absolute; left:0; top:.62em; width:8px; height:1.5px;
  background:var(--accent-soft); }
.world .world-cta{ margin-top:1.5rem; align-self:flex-start; }
/* Intera card cliccabile (stretched link): grande "pulsante" di scelta */
.world{ cursor:pointer; }
.world .world-cta::after{ content:""; position:absolute; inset:0; z-index:2; }

/* ---------- SCELTA "Come posso aiutarti" (compatta, smart) ---------- */
.choice-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px,1.6vw,18px);
  margin-top:clamp(24px,3vw,40px); }
.choice{ --c:var(--accent-soft); position:relative; display:flex; align-items:center;
  gap:clamp(14px,1.7vw,18px); padding:clamp(16px,1.9vw,22px) clamp(18px,2vw,24px);
  background:var(--ink-2); border:1px solid var(--line-2); border-radius:var(--r-md);
  transition:transform var(--d-med) var(--ease), border-color var(--d-med) var(--ease),
    box-shadow var(--d-med) var(--ease), background var(--d-med) var(--ease); }
.choice:hover{ transform:translateY(-3px); background:var(--ink);
  border-color:color-mix(in srgb,var(--c) 55%,transparent); box-shadow:var(--sh-2); }
.choice-ic{ flex:none; width:52px; height:52px; border-radius:var(--r-sm); display:grid; place-items:center;
  color:var(--c); background:color-mix(in srgb,var(--c) 13%, transparent);
  border:1px solid color-mix(in srgb,var(--c) 32%, transparent); }
.choice-ic svg{ width:26px; height:26px; }
.choice-body{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.choice-body b{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:1.16rem; color:var(--paper); }
.choice-body span{ font-size:.94rem; color:var(--paper-2); }
.choice-go{ flex:none; margin-left:auto; font-size:1.3rem; line-height:1; color:var(--c);
  transition:transform var(--d-med) var(--ease); }
.choice:hover .choice-go{ transform:translateX(4px); }
.choice--ass{ --c:var(--steel); }
.choice--cred{ --c:var(--gold-2); }
@media (max-width:640px){ .choice-grid{ grid-template-columns:1fr; } }

/* ---------- MANIFESTO (band light) ---------- */
.manifesto{ background:var(--paper); color:var(--ink); }
.manifesto-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,5vw,64px); align-items:center; }
.manifesto h2{ font-size:var(--fs-2xl); }
.manifesto .quote{ font-family:var(--font-display); font-weight:var(--fw-bold); font-size:var(--fs-xl);
  line-height:1.18; letter-spacing:var(--ls-tight); margin-top:.4rem; }
.manifesto .quote .mk{ color:var(--steel-2); }
.manifesto p{ margin-top:1.2rem; color:var(--ink-soft); max-width:52ch; }
.why-list{ list-style:none; margin:1.6rem 0 0; padding:0; display:grid; gap:.75rem; }
.why-list li{ position:relative; padding-left:1.8rem; color:var(--ink); font-weight:var(--fw-med); }
.why-list li svg{ position:absolute; left:0; top:.15em; width:1.15rem; height:1.15rem; color:var(--steel-2); }
.manifesto-photo{ position:relative; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--sh-light);
  aspect-ratio:4/5; }
.manifesto-photo img{ width:100%; height:100%; object-fit:cover; }
.manifesto-photo .stamp{ position:absolute; right:14px; bottom:14px; width:60px; height:60px;
  border-radius:50%; background:var(--ink-3); border:1px solid var(--line);
  display:grid; place-items:center; }
.manifesto-photo .stamp img{ width:38px; height:38px; border-radius:50%; }

/* ---------- NUMERI ---------- */
.numbers{ background:var(--ink-3); }
.numbers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,40px); text-align:center; }
.nstat .v{ font-family:var(--font-display); font-weight:var(--fw-black); font-size:clamp(2.6rem,1.6rem + 3.4vw,4rem);
  color:var(--gold-2); line-height:1; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.nstat .l{ display:block; margin-top:.7rem; color:var(--paper-2); font-size:var(--fs-sm); }
.nstat+.nstat{ border-left:1px solid var(--line-2); }

/* ---------- METODO ---------- */
.method-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:clamp(20px,3vw,40px); }
.mstep{ padding:0 clamp(16px,1.8vw,28px); border-left:1px solid var(--line-ink); }
.mstep:first-child{ border-left:0; padding-left:0; }
.section--light .mstep{ border-color:var(--line-ink); }
.mstep .mn{ font-family:var(--font-display); font-weight:var(--fw-black); font-size:1.5rem;
  color:var(--steel-2); font-variant-numeric:tabular-nums; }
.mstep h3{ font-size:1.15rem; margin-top:.7rem; }
.mstep p{ margin-top:.5rem; color:var(--ink-soft); font-size:.95rem; }

/* ---------- TERRITORIO (band full-bleed foto) ---------- */
.territory{ position:relative; min-height:clamp(420px,52vw,600px); display:flex; align-items:flex-end;
  overflow:hidden; }
.territory-bg{ position:absolute; inset:0; z-index:0; }
.territory-bg img{ width:100%; height:100%; object-fit:cover; object-position:center 60%; }
.territory-bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(105deg,rgba(8,21,36,.92) 0%,rgba(8,21,36,.6) 46%,rgba(8,21,36,.15) 78%); }
.territory .wrap{ position:relative; z-index:1; padding-block:clamp(40px,6vw,72px); }
.territory-inner{ max-width:560px; }
.territory h2{ font-size:var(--fs-2xl); margin-top:.7rem; }
.territory p{ margin-top:1rem; color:var(--paper-2); max-width:48ch; }
.zone-list{ list-style:none; margin:1.4rem 0 1.7rem; padding:0; display:flex; flex-wrap:wrap; gap:.55rem; }
.zone-list li{ font-family:var(--font-display); font-weight:var(--fw-med); font-size:.86rem;
  padding:.4rem .85rem; border:1px solid var(--line-2); border-radius:var(--r-pill);
  background:rgba(255,255,255,.05); color:var(--paper-2); }

/* ---------- PARTNER ---------- */
.partner-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:clamp(12px,1.5vw,18px);
  margin-top:clamp(24px,3vw,44px); }
.pt{ background:#fff; border:1px solid var(--line-ink); border-radius:var(--r-sm);
  aspect-ratio:3/2; display:grid; place-items:center; padding:1rem;
  transition:transform var(--d-fast) var(--ease), box-shadow var(--d-med) var(--ease); }
.pt:hover{ transform:translateY(-3px); box-shadow:var(--sh-light); }
.pt img{ max-height:44px; width:auto; object-fit:contain; filter:grayscale(.25); }

/* ---------- RECENSIONI ---------- */
.reviews-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
.review{ background:var(--ink-2); border:1px solid var(--line-2); border-radius:var(--r-md);
  padding:clamp(20px,2.4vw,28px); display:flex; flex-direction:column; }
.review .stars{ color:var(--gold); letter-spacing:.12em; font-size:.95rem; }
.review blockquote{ margin:1rem 0 0; font-family:var(--font-display); font-weight:var(--fw-med);
  font-size:1.08rem; line-height:1.5; color:var(--paper); }
.review figcaption{ display:flex; align-items:center; gap:.75rem; margin-top:1.4rem;
  padding-top:1.1rem; border-top:1px solid var(--line-2); }
.review .av{ width:40px; height:40px; border-radius:50%; background:var(--ink-3); border:1px solid var(--line);
  display:grid; place-items:center; font-family:var(--font-display); font-weight:var(--fw-bold);
  color:var(--gold-2); flex:none; }
.review figcaption b{ display:block; font-family:var(--font-display); font-size:.95rem; }
.review figcaption span{ display:block; font-size:var(--fs-xs); color:var(--muted); }
.grating{ display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem;
  font-size:.9rem; color:var(--paper-2); }
.grating .stars{ color:var(--gold); }
.grating b{ color:var(--paper); }
.reviews-note{ margin-top:1.6rem; text-align:center; font-size:var(--fs-xs); color:var(--muted); }

/* ---------- CHI SONO ---------- */
.about-grid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(28px,5vw,64px); align-items:center; }
.about-photo{ position:relative; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--sh-light);
  aspect-ratio:5/6; }
.about-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.about-badge{ position:absolute; left:14px; bottom:14px; background:var(--veil); backdrop-filter:blur(6px);
  border:1px solid var(--line-2); border-radius:var(--r-sm); padding:.6rem .9rem; }
.about-badge b{ display:block; font-family:var(--font-display); font-weight:var(--fw-semi); font-size:.95rem; color:var(--paper); }
.about-badge span{ display:block; font-size:var(--fs-xs); color:var(--muted); }
.about h2{ font-size:var(--fs-2xl); margin-top:.7rem; }
.about p{ margin-top:1.2rem; color:var(--ink-soft); max-width:54ch; }
.about-mini{ display:flex; gap:0; margin:1.8rem 0; }
.about-mini .m{ padding-right:1.6rem; margin-right:1.6rem; border-right:1px solid var(--line-ink); }
.about-mini .m:last-child{ border-right:0; }
.about-mini .m b{ display:block; font-family:var(--font-display); font-weight:var(--fw-black);
  font-size:1.7rem; color:var(--ink); }
.about-mini .m span{ display:block; font-size:var(--fs-xs); color:var(--ink-faint); margin-top:.2rem; }

/* ---------- CTA FINALE ---------- */
.cta-final{ background:var(--ink-3); text-align:center; }
.cta-final h2{ font-size:var(--fs-3xl); }
.cta-final h2 em{ font-style:normal; color:var(--gold-2); }
.cta-final p{ margin:1.2rem auto 0; max-width:48ch; color:var(--paper-2); }
.cta-row{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:1.8rem; }
.cta-meta{ display:flex; flex-wrap:wrap; gap:1.4rem; justify-content:center; margin-top:1.6rem;
  font-size:.92rem; color:var(--muted); }
.cta-meta a:hover{ color:var(--gold-2); }

/* ---------- FOOTER ---------- */
.footer{ background:var(--ink-3); border-top:1px solid var(--line-2); padding-block:clamp(48px,6vw,72px) 0; }
.footer-top{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:clamp(24px,3vw,40px); }
.footer-about{ margin-top:1rem; color:var(--muted); font-size:.92rem; max-width:38ch; }
.footer-col h4{ font-family:var(--font-display); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-2); margin-bottom:1rem; }
.footer-col a{ display:block; color:var(--paper-2); font-size:.94rem; padding:.28rem 0; }
.footer-col a:hover{ color:var(--paper); }
.footer-note{ display:block; margin-top:.6rem; font-size:.82rem; color:var(--muted); line-height:1.6; }
.footer-bar{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem;
  margin-top:clamp(32px,4vw,52px); padding-block:1.4rem; border-top:1px solid var(--line-2);
  font-size:var(--fs-xs); color:var(--muted); }

/* ---------- FLOATING WA ---------- */
.wa-fab{ position:fixed; right:20px; bottom:20px; z-index:var(--z-float);
  height:56px; min-width:56px; border-radius:28px; background:var(--wa); color:#fff;
  display:flex; align-items:center; justify-content:center; padding:0; white-space:nowrap;
  box-shadow:var(--sh-3); overflow:hidden;
  transition:transform var(--d-fast) var(--ease), padding var(--d-med) var(--ease); }
.wa-fab:hover{ transform:scale(1.06); }
.wa-fab svg{ width:28px; height:28px; flex:none; }
.wa-fab-label{ display:inline-block; max-width:0; opacity:0; overflow:hidden;
  font-family:var(--font-display); font-weight:var(--fw-semi); font-size:.95rem;
  transition:max-width var(--d-slow) var(--ease), opacity var(--d-med) var(--ease),
    margin var(--d-med) var(--ease); }
/* Espansione temporanea: "Prenota una consulenza" accanto al logo */
.wa-fab.expanded{ padding:0 20px 0 14px; }
.wa-fab.expanded .wa-fab-label{ max-width:240px; opacity:1; margin-left:10px; }

/* ---------- REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity var(--d-slow) var(--ease),
  transform var(--d-slow) var(--ease); transition-delay:calc(var(--stagger) * var(--i,0)); }
.reveal.in{ opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .nav-links .nav-link{ display:none; }
  .burger{ display:flex; }
  .hero-grid{ grid-template-columns:1fr; }
  .hero-card{ max-width:440px; margin-inline:auto; order:-1; }
  .manifesto-grid,.about-grid{ grid-template-columns:1fr; }
  .manifesto-photo,.about-photo{ max-width:460px; }
  .method-grid{ grid-template-columns:1fr 1fr; gap:clamp(20px,4vw,32px) 0; }
  .mstep:nth-child(3){ border-left:0; padding-left:0; }
  .reviews-grid{ grid-template-columns:1fr 1fr; }
  .reviews-grid .review:nth-child(3){ display:none; }
  .partner-grid{ grid-template-columns:repeat(4,1fr); }
  .footer-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  :root{ --section-y:clamp(52px,12vw,80px); }
  /* Chi sono: i 3 numeri in griglia a 3 colonne, centrata ed equidistante */
  .about-mini{ display:grid; grid-template-columns:repeat(3,1fr); margin:1.7rem 0; text-align:center; }
  .about-mini .m{ padding:0 .3rem; margin:0; border-right:1px solid var(--line-ink);
    display:flex; flex-direction:column; align-items:center; }
  .about-mini .m:last-child{ border-right:0; }
  .about-mini .m b{ font-size:1.4rem; line-height:1.1; }
  .about-mini .m span{ font-size:.7rem; line-height:1.25; }
  .nav .wrap>.toggle{ display:none; } /* toggle desktop nascosto; vive nel drawer */
  .nav-right{ margin-left:auto; }        /* senza il toggle-spaziatore, spinge l'hamburger a destra */
  .nav-right .btn-gold{ display:none; }  /* CTA nel drawer + topbar/FAB */
  .hero-seal{ display:none; }            /* niente cerchietto logo sulla foto hero da mobile */
  /* Home: foto hero a TUTTA LARGHEZZA, crop orizzontale ravvicinato su di lui */
  body:not([data-mondo]) .hero-card{ width:100vw; max-width:none;
    margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
  body:not([data-mondo]) .hero-card::before{ display:none; }
  body:not([data-mondo]) .hero-photo{ aspect-ratio:4/3; border-radius:0;
    border-left:0; border-right:0; box-shadow:none; }
  body:not([data-mondo]) .hero-photo img{ object-position:center 38%; }
  body:not([data-mondo]) .hero-tag{ left:var(--pad); }
  .brand-txt span{ display:none; }        /* solo nome, evita overflow nav */
  .brand-txt{ min-width:0; }
  .brand-txt b{ white-space:nowrap; }
  .worlds-grid{ grid-template-columns:1fr; }
  .indexstrip .wrap{ grid-template-columns:1fr 1fr; }
  .ixcell{ min-height:104px; }
  .numbers-grid{ grid-template-columns:1fr; gap:2rem; }
  .nstat+.nstat{ border-left:0; border-top:1px solid var(--line-2); padding-top:2rem; }
  .method-grid{ grid-template-columns:1fr; }
  .mstep{ border-left:0; padding-left:0; border-top:1px solid var(--line-ink); padding-top:1.4rem; }
  .mstep:first-child{ border-top:0; padding-top:0; }
  .reviews-grid{ grid-template-columns:1fr; }
  .reviews-grid .review:nth-child(3){ display:flex; }
  .partner-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-top{ grid-template-columns:1fr; }
  .credlock{ flex-direction:column; }
  .credlock .c{ border-right:0; margin-right:0; padding:.7rem 0 0; }
  .hero-cta .btn{ flex:1 1 auto; }
}

@media (prefers-reduced-motion:reduce){
  *{ scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .btn:hover,.world:hover,.pt:hover,.wa-fab:hover{ transform:none; }
  .world:hover .world-media img{ transform:none; }
}

/* ==================================================================
   MICROINTERAZIONI & RIFINITURE MOBILE
   ================================================================== */
/* Nessun flash grigio al tap */
*{ -webkit-tap-highlight-color:transparent; }
/* Scroll morbido; le ancore non finiscono nascoste sotto la nav sticky */
html{ scroll-behavior:smooth; }
section[id], nav[id], main[id]{ scroll-margin-top:84px; }

/* Feedback tattile immediato al tocco (dove non esiste hover) */
@media (hover:none){
  .btn:active{ transform:translateY(1px) scale(.98); }
  .world:active, a.cmethod:active, .ixcell:active, .pt:active, .review:active{
    transform:scale(.985); }
  .nav-link:active, .d-link:active, .lnk:active, .world-cta:active,
  .toggle button:active, .email-line:active{ opacity:.6; }
  .pm-logo:active{ transform:translateY(-2px); }
  .wa-fab:active{ transform:scale(.9); }
  .burger:active{ transform:scale(.92); }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .btn:active, .world:active, a.cmethod:active, .ixcell:active, .pt:active,
  .review:active, .pm-logo:active, .wa-fab:active, .burger:active{ transform:none; }
}
