/* GENERATO da tools/ds-build/build.js — non modificare a mano.
   Fonte: kit.css (primitivi) + pages.css del DS + site-overrides.css */
/* Multidialogo — Marketing home (new.multidialogo.it/old) recreation */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-body); font-weight:var(--fw-medium); color:var(--md-testo);
  background:#fff; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
.container { width:100%; max-width:var(--page-maxw, none); margin:0 auto; padding:0 var(--page-pad, 6%); }
.lucide { stroke-width:2; }

/* ---------- buttons ---------- */
.btn { font-family:var(--font-sans); font-weight:700; font-size:15px; border:0; cursor:pointer;
  display:inline-flex; align-items:center; gap:9px; padding:14px 28px; border-radius:999px;
  transition:transform .14s var(--ease-out), background .14s var(--ease-out); white-space:nowrap; }
.btn:active { transform:translateY(1px) scale(.99); }
.btn-cta { background:var(--accent); color:#fff; box-shadow:var(--shadow-cta); }
.btn-cta:hover { background:var(--accent-hover); }
.btn-navy { background:var(--md-principale); color:#fff; border-radius:999px; padding:11px 22px; font-size:13.5px; }
.btn-navy:hover { background:var(--accent-hover); }
.btn-text { background:transparent; color:var(--md-principale); font-weight:700; padding:14px 6px; }
.btn-text:hover { color:var(--accent); }


/* ============================================================================
   Multidialogo — Internal pages (Servizi + Chi siamo)
   Recreates new.multidialogo.it/old internal pages, on the brand design system.
   Loads AFTER colors_and_type.css + kit.css.
   ========================================================================= */

/* ---- band background tokens (sampled from the legacy captures) ---- */
:root{
  --band-blue: linear-gradient(180deg,#E9F0F8 0%,#F4F9FD 60%,#FFFFFF 100%);
  --band-blue-flat:#EBF1F9;
  --band-teal:#A1F1EE;
  --band-warm:#ECEBE6;
  --value-orange:#DA6A2B;
  --value-cream:#F7E1D2;
  --value-slate:#58799A;
  --nforma-hero:linear-gradient(180deg,#E1E5EE 0%,#CDD3DF 100%);
}

/* active nav underline (dropdown trigger / link) */
.nav a.active{ position:relative; }
.nav a.active::after{ content:""; position:absolute; left:0; right:14px; bottom:-7px; height:2px;
  background:var(--accent); border-radius:2px; }
.nav .nav-drop-trigger.active::after{ right:18px; }

/* ---------- generic blocks ---------- */
.ip { background:#fff; --page-pad:10%; }
.ip-section{ padding:96px 0; }
.ip-hero{ position:relative; overflow:hidden; min-height:100vh; display:flex; align-items:center; }
.ip-hero-in{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
  padding-top:112px; padding-bottom:72px; position:relative; z-index:1; width:100%; }
.ip-hero-icon{ height:96px; width:auto; display:block; margin-bottom:26px; }
.ip-h1{ font-family:var(--font-sans); font-weight:900; font-size:42px; line-height:1.1;
  letter-spacing:-.01em; text-transform:uppercase; color:var(--md-principale); }
.ip-h1.blue{ color:var(--md-blu-multi); }
.ip-sub{ font-size:18px; font-weight:500; line-height:1.55; color:var(--md-testo);
  margin-top:22px; max-width:520px; }
.ip-cta-row{ display:flex; align-items:center; gap:26px; margin-top:36px; flex-wrap:wrap; }

/* team hero — fade-in-up entrance (staggered) */
@keyframes tmUp{ from{ opacity:0; transform:translateY(34px); } to{ opacity:1; transform:none; } }
.tm-hero .ip-h1{ animation:tmUp .8s var(--ease-out) both; }
.tm-hero .ip-sub{ animation:tmUp .8s var(--ease-out) .12s both; }
.tm-hero .ip-cta-row{ animation:tmUp .8s var(--ease-out) .24s both; }
.tm-hero .ip-visual{ animation:tmUp .95s var(--ease-out) 1.05s both; }
@media (prefers-reduced-motion: reduce){
  .tm-hero .ip-h1,.tm-hero .ip-sub,.tm-hero .ip-cta-row,.tm-hero .ip-visual{ animation:none; }
}

/* servizi hero — fade-in-left entrance on page load (staggered) */
@keyframes srvLeft{ from{ opacity:0; transform:translateX(-46px); } to{ opacity:1; transform:none; } }
.srv-hero .ip-hero-icon{ animation:srvLeft .7s var(--ease-out) both; }
.srv-hero .ip-h1{ animation:srvLeft .75s var(--ease-out) .08s both; }
.srv-hero .ip-sub{ animation:srvLeft .75s var(--ease-out) .18s both; }
.srv-hero .ip-cta-row{ animation:srvLeft .75s var(--ease-out) .28s both; }
@media (prefers-reduced-motion: reduce){
  .srv-hero .ip-hero-icon,.srv-hero .ip-h1,.srv-hero .ip-sub,.srv-hero .ip-cta-row{ animation:none; }
}

/* buttons that extend kit.css */
.btn-blue{ background:var(--md-blu-hover); color:#fff; box-shadow:0 8px 20px rgba(10,58,107,.22); }
.btn-blue:hover{ background:var(--md-blu-multi); }
.btn-link{ background:transparent; padding:13px 4px; color:var(--md-blu-multi); font-weight:800;
  font-family:var(--font-sans); display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.btn-link:hover{ color:var(--accent); }
.btn-pill-outline{ background:#fff; color:var(--md-principale); border:1.5px solid var(--border);
  box-shadow:var(--shadow-sm); }
.btn-pill-outline:hover{ border-color:var(--accent); color:var(--accent); }

/* visuals */
.ip-visual{ display:flex; justify-content:center; align-items:center; }
.ip-visual img{ max-width:100%; height:auto; display:block; }
.ip-visual.shadow img{ filter:drop-shadow(0 26px 50px rgba(31,42,55,.18)); }

/* multicerta hero — transparent 3D logo, enlarged, right edge aligned to container (Accedi) */
.mc-visual{ justify-content:flex-end; overflow:visible; }

/* sostenibilità render sits on a near-white plate — multiply melts it into the warm band
   so no rectangular edge shows; intersecting linear masks feather all four edges */
.mc-green-visual{ mix-blend-mode:multiply;
  -webkit-mask-image:
    linear-gradient(to right, transparent 0, #000 15%, #000 85%, transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 13%, #000 87%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to right, transparent 0, #000 15%, #000 85%, transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 13%, #000 87%, transparent 100%);
  mask-composite:intersect; }
[data-theme="dark"] .mc-green-visual{ mix-blend-mode:normal;
  -webkit-mask-image:none; mask-image:none; }

/* multinforma hero — laptop (transparent, baked-in shadow) as the hero element on the right */
.mf-hero .ip-hero-in{ grid-template-columns:1fr; }
.mf-hero-text{ max-width:520px; position:relative; z-index:1; }
.mf-hero-bg{ position:absolute; right:-3%; top:52%; transform:translateY(-50%);
  width:66%; max-width:1040px; height:auto; z-index:0; pointer-events:none; }
.hero-photo{ width:100%; border-radius:0; }
.hero-photo.cut{ -webkit-mask-image:linear-gradient(#000 88%,transparent); mask-image:linear-gradient(#000 88%,transparent); }

/* faint brand watermark behind a section */
.ip-watermark{ position:absolute; opacity:.06; pointer-events:none; z-index:0; }

/* two-column text/visual content row */
.ip-2col{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.ip-2col.narrow-text .col-text{ max-width:560px; }
.ip-h2{ font-family:var(--font-sans); font-weight:900; font-size:34px; line-height:1.12;
  letter-spacing:-.005em; text-transform:uppercase; color:var(--md-principale); }
.ip-h3{ font-family:var(--font-sans); font-weight:900; font-size:21px; line-height:1.2;
  text-transform:uppercase; color:var(--md-principale); margin-top:30px; }
.ip-h3.blue{ color:var(--md-blu-multi); }
.ip-body{ font-size:16px; font-weight:500; line-height:1.65; color:var(--md-testo); margin-top:14px; }
.ip-body.lead{ font-size:17px; }
.ip-body b, .ip-body strong{ color:var(--md-principale); font-weight:800; }
.ip-block-gap{ margin-top:34px; }

/* ---------- multimav full-bleed hero ---------- */
.mav-hero{ background:#fff; }
.mav-hero-bg{ position:absolute; top:0; right:0; bottom:0; width:60%; z-index:0;
  background-position:center right; background-repeat:no-repeat; background-size:cover; }
.mav-hero-bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, #fff 0%, rgba(255,255,255,.82) 4%, rgba(255,255,255,0) 13%); }
.mav-hero-in{ grid-template-columns:1fr; }
.mav-hero-text{ max-width:560px; position:relative; z-index:1; }
.mav-hero-plane{ height:104px; }
@media (max-width:700px){
  .mav-hero-bg{ width:100%; background-position:center right -40%; }
  .mav-hero-bg::after{ background:linear-gradient(90deg, #fff 0%, rgba(255,255,255,.9) 42%, rgba(255,255,255,.55) 100%); }
}

/* ---------- multimav MAV slider (modern showcase) ---------- */
.mav-slider{ position:relative; overflow:hidden; min-height:80vh; display:flex; align-items:center;
  padding:80px 0;
  background:
    radial-gradient(60% 70% at 88% 16%, rgba(42,111,219,.10), transparent 60%),
    radial-gradient(50% 60% at 4% 94%, rgba(217,106,43,.07), transparent 60%),
    linear-gradient(135deg,#F7FAFD 0%, #E9F1FA 58%, #F3F8FC 100%); }
.mav-slider .container{ position:relative; z-index:2; width:100%; }
.mav-slider-in{ display:grid; grid-template-columns:1fr 1.05fr; gap:64px; align-items:center; }

.mav-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-sans);
  font-weight:800; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.mav-eyebrow::before{ content:""; width:28px; height:2px; background:var(--accent); border-radius:2px; }
.mav-count{ display:flex; align-items:baseline; gap:9px; margin-top:22px; font-family:var(--font-sans); }
.mav-count .cur{ font-weight:900; font-size:46px; line-height:1; color:var(--md-blu-multi); letter-spacing:-.02em; }
.mav-count .sep{ font-weight:700; font-size:26px; color:var(--border-strong); }
.mav-count .tot{ font-weight:800; font-size:20px; color:var(--md-principale-70); }
.mav-slide-text{ max-width:520px; }
.mav-slide-title{ font-family:var(--font-sans); font-weight:900; font-size:34px; line-height:1.12;
  text-transform:uppercase; letter-spacing:-.005em; color:var(--md-blu-multi); margin-top:16px;
  animation:mavFadeInDown .6s var(--ease-out) both; }
.mav-slide-body{ font-size:17px; font-weight:500; line-height:1.65; color:var(--md-testo); margin-top:18px;
  animation:mavFadeInDown .6s var(--ease-out) .1s both; }
.mav-progress{ position:relative; height:4px; border-radius:3px; background:rgba(0,36,77,.10);
  margin-top:40px; overflow:hidden; max-width:420px; }
.mav-progress-fill{ position:absolute; left:0; top:0; bottom:0; width:0; border-radius:3px;
  background:linear-gradient(90deg, var(--accent-strong), var(--accent));
  animation:mavProg 6s linear forwards; }
@keyframes mavProg{ from{ width:0; } to{ width:100%; } }
.mav-dots{ display:flex; gap:10px; margin-top:22px; }
.mav-dot{ width:9px; height:9px; border-radius:999px; background:rgba(0,36,77,.16);
  border:0; padding:0; cursor:pointer; transition:background .2s var(--ease-out), transform .2s var(--ease-out); }
.mav-dot.on{ background:var(--accent); transform:scale(1.3); }

.mav-showcase{ position:relative; }
.mav-showcase::before{ content:""; position:absolute; inset:-8% -5%; z-index:0;
  background:radial-gradient(closest-side, rgba(42,111,219,.18), transparent 72%); }
.mav-shot{ position:relative; z-index:1; aspect-ratio:4/3; border-radius:var(--radius-xl);
  background-repeat:no-repeat; background-position:center; background-size:cover;
  box-shadow:0 30px 64px rgba(15,32,56,.20);
  animation:mavShotIn .7s var(--ease-out) both; }
@keyframes mavShotIn{ from{ opacity:0; transform:translateX(48px) scale(.98); } to{ opacity:1; transform:none; } }

.mav-arrow{ color:var(--md-blu-multi); width:54px; height:54px; border-radius:50%;
  background:rgba(255,255,255,.82); box-shadow:var(--shadow-md); backdrop-filter:blur(4px);
  transition:background .2s var(--ease-out), color .2s var(--ease-out), box-shadow .2s var(--ease-out); }
.mav-arrow.prev{ left:26px; } .mav-arrow.next{ right:26px; }
.mav-arrow:hover{ color:#fff; background:var(--accent); box-shadow:var(--shadow-lg); }
@keyframes mavFadeInDown{ from{ opacity:0; transform:translateY(-26px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  .mav-slide-title,.mav-slide-body,.mav-shot{ animation:none; }
  .mav-progress-fill{ animation:none; width:100%; }
}
@media (max-width:980px){
  .mav-slider{ min-height:auto; padding:64px 0; }
  .mav-slider-in{ grid-template-columns:1fr; gap:40px; }
  .mav-showcase{ order:2; }
}

/* ---------- bands ---------- */
.band-blue{ background:var(--band-blue); }
.band-warm{ background:var(--band-warm); }
.band-teal{ background:var(--band-teal); }

/* section heading (left aligned, big) */
.ip-shead .eyebrow-line{ display:flex; align-items:center; gap:18px; }
.ip-shead h2{ font-family:var(--font-sans); font-weight:900; font-size:36px; line-height:1.1;
  text-transform:uppercase; letter-spacing:-.005em; color:var(--md-principale); }
.ip-shead p{ font-size:16px; font-weight:500; line-height:1.6; color:var(--md-testo); margin-top:14px; max-width:560px; }

/* ---------- multinvio: automation section (balanced two-column) ---------- */
.mv-auto-grid{ display:grid; grid-template-columns:1.04fr .96fr; gap:60px; align-items:center; }
.mv-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-sans);
  font-weight:800; font-size:12px; letter-spacing:.17em; text-transform:uppercase; color:var(--accent); }
.mv-eyebrow::before{ content:""; width:28px; height:2px; background:var(--accent); border-radius:2px; }
.mv-auto-text .ip-h2{ margin-top:16px; }
.mv-chan-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.mv-chan{ display:inline-flex; align-items:center; gap:10px; padding:8px 17px 8px 8px;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-pill);
  box-shadow:var(--shadow-xs); font-family:var(--font-sans); font-weight:700; font-size:13.5px;
  color:var(--md-principale); transition:transform .25s var(--ease-out), box-shadow .25s var(--ease-out); }
.mv-chan:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.mv-chan-ic{ width:30px; height:30px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; background:linear-gradient(145deg,#FB8A3C 0%, var(--accent-strong) 60%, #C2410C 100%);
  box-shadow:0 4px 10px rgba(241,89,0,.30); }
.mv-chan-ic .lucide{ stroke-width:2.1; }

.mv-integr-card{ position:relative; background:linear-gradient(168deg,#FFFFFF 0%, #FFF6EF 100%);
  border:1px solid var(--border); border-radius:var(--radius-xl); padding:36px 34px 32px;
  box-shadow:var(--shadow-md); }
.mv-integr-head{ display:flex; align-items:center; gap:15px; }
.mv-integr-ic{ width:54px; height:54px; flex:none; border-radius:16px; display:flex; align-items:center; justify-content:center;
  color:#fff; background:linear-gradient(145deg, #0A4178 0%, var(--md-blu-multi) 100%);
  box-shadow:0 10px 22px rgba(0,36,77,.26), inset 0 1px 0 rgba(255,255,255,.18); }
.mv-integr-head h3{ font-family:var(--font-sans); font-weight:900; font-size:19px; text-transform:uppercase;
  line-height:1.16; color:var(--md-principale); }
.mv-integr-card p{ font-size:15.5px; font-weight:500; line-height:1.62; color:var(--md-testo); margin-top:20px; }
.mv-integr-card p b{ color:var(--md-principale); font-weight:800; }
.mv-gest-label{ font-family:var(--font-sans); font-weight:800; font-size:11px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--md-principale-70); margin-top:24px; padding-top:22px; border-top:1px solid var(--border); }
.mv-gest-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.mv-gest-chip{ font-family:var(--font-sans); font-weight:800; font-size:12.5px; letter-spacing:.01em;
  color:var(--md-blu-multi); background:var(--md-blu-soft); padding:8px 15px; border-radius:var(--radius-pill); }
.mv-gest-chip.more{ color:var(--accent); background:var(--md-secondario-soft); }

/* ---------- feature/option cards (cosa comprende / spedisci / download) ---------- */
.opt-cards{ display:grid; gap:36px; margin-top:72px; }
.opt-cards.c3{ grid-template-columns:repeat(3,1fr); }
.opt-cards.c2{ grid-template-columns:repeat(2,minmax(0,360px)); justify-content:center; }
.opt-card{ background:rgba(255,255,255,.55); border:1px solid rgba(31,42,55,.06);
  border-radius:18px; padding:44px 32px 34px; text-align:center; box-shadow:0 10px 30px rgba(31,42,55,.06);
  display:flex; flex-direction:column; align-items:center; transition:transform .18s var(--ease-out), box-shadow .18s var(--ease-out); }
.opt-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(31,42,55,.12); }
.opt-icon{ height:88px; display:flex; align-items:center; justify-content:center; margin-bottom:26px; }
.opt-icon .lucide{ stroke-width:2; }
.opt-card .oc-title{ font-family:var(--font-sans); font-weight:800; font-size:16px; letter-spacing:.02em;
  text-transform:uppercase; color:var(--md-blu-multi); line-height:1.3; }
.opt-card .oc-sub{ font-family:var(--font-sans); font-style:italic; font-weight:600; font-size:14px;
  color:var(--accent); margin-top:18px; }
.store-badge{ width:96px; height:96px; border-radius:24px; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 26px rgba(31,42,55,.16); }

/* ---------- multinvio: "cosa comprende" — full-height, elevated cards ---------- */
.mv-comprende{ min-height:100vh; display:flex; flex-direction:column; justify-content:center; }
.mv-comprende .opt-cards{ margin-top:60px; }
.mv-comprende .opt-card{ position:relative; overflow:hidden; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--radius-xl); padding:48px 34px 40px;
  box-shadow:var(--shadow-md);
  transition:transform .32s var(--ease-out), box-shadow .32s var(--ease-out), border-color .32s var(--ease-out); }
.mv-comprende .opt-card::before{ content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg, #4AA3E8, var(--md-blu-multi)); transform:scaleX(0); transform-origin:left;
  transition:transform .32s var(--ease-out); }
.mv-comprende .opt-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.mv-comprende .opt-card:hover::before{ transform:scaleX(1); }
.mv-comp-tile{ width:88px; height:88px; margin:0 auto 26px; border-radius:26px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg,#F4F9FE 0%, #E4EFFA 100%);
  box-shadow:inset 0 0 0 1px rgba(0,36,77,.07);
  transition:transform .32s var(--ease-out), box-shadow .32s var(--ease-out); }
.mv-comprende .opt-card:hover .mv-comp-tile{ transform:translateY(-2px) scale(1.05);
  box-shadow:inset 0 0 0 1px rgba(0,36,77,.10), 0 12px 24px rgba(0,36,77,.14); }
.mv-comp-tile .lucide{ stroke-width:1.9; stroke:url(#mvBlueIcon); }
.mv-comp-desc{ font-size:14.5px; font-weight:500; line-height:1.55; color:var(--md-testo);
  margin-top:14px; max-width:248px; }
.mv-mode{ display:inline-flex; align-items:center; margin-top:22px; padding:8px 18px;
  border-radius:var(--radius-pill); font-family:var(--font-sans); font-weight:800; font-size:12px;
  letter-spacing:.05em; text-transform:uppercase; }
.mv-mode.sub{ color:var(--accent); background:var(--md-secondario-soft); }
.mv-mode.ppu{ color:var(--md-blu-multi); background:var(--md-blu-soft); }
.mv-comp-link{ cursor:pointer; }
.mv-comp-link:focus-visible{ outline:none; box-shadow:var(--shadow-lg), 0 0 0 3px rgba(217,106,43,.4); }
.slider-attiva{ margin-top:28px; align-self:flex-start; font-size:24px; padding:22px 52px; border-radius:var(--radius-pill); }

/* ---- download section: 100vh, square glass cards, 3D icons, free-download button ---- */
.mc-download{ min-height:100vh; display:flex; flex-direction:column; justify-content:center;
  position:relative; overflow:hidden;
  background:
    radial-gradient(58% 50% at 16% 14%, rgba(42,111,219,.14), transparent 62%),
    radial-gradient(52% 46% at 86% 84%, rgba(0,196,176,.13), transparent 60%),
    radial-gradient(40% 38% at 70% 18%, rgba(217,106,43,.06), transparent 64%),
    linear-gradient(168deg,#ECF3FC 0%,#D9E8F7 52%,#E7F1FB 100%);
}
.mc-download .container{ position:relative; z-index:1; }
.mc-download .opt-cards.c2{ grid-template-columns:repeat(2,minmax(0,300px)); gap:44px; margin-top:56px; }
.glass-card{
  aspect-ratio:1/1; justify-content:center; gap:6px;
  padding:34px 28px;
  background:linear-gradient(155deg, rgba(255,255,255,.55), rgba(255,255,255,.28));
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  backdrop-filter:blur(20px) saturate(150%);
  border:1px solid rgba(255,255,255,.7);
  border-radius:26px;
  box-shadow:0 24px 50px rgba(31,42,55,.12), inset 0 1px 0 rgba(255,255,255,.85);
}
.glass-card:hover{ transform:translateY(-5px); box-shadow:0 30px 60px rgba(31,42,55,.18), inset 0 1px 0 rgba(255,255,255,.85); }
.store-icon-3d{ width:118px; height:118px; object-fit:contain; display:block;
  filter:drop-shadow(0 14px 22px rgba(31,42,55,.20)); }
.glass-card .oc-title{ margin-top:14px; }
.glass-card .oc-dl{ margin-top:22px; text-transform:lowercase; letter-spacing:.01em; }

/* round logo chip for the "spedisci con multimav" cards */
.logo-chip{ width:118px; height:118px; border-radius:999px; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-sans); font-weight:800; box-shadow:0 10px 24px rgba(31,42,55,.14); }

/* ---------- reportistica slider band ---------- */
.slider-band{ background:linear-gradient(180deg,#EEF1F4 0%,#FBFCFD 100%); position:relative; overflow:hidden; }
.slider-light{ background:var(--md-blu-soft); }
.slider-in{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center;
  padding-top:84px; padding-bottom:96px; min-height:82vh; }
/* fluid size keeps the heading on 2–3 lines from mobile to desktop; no narrow max-width cap */
.slider-text h2{ font-family:var(--font-sans); font-weight:900; font-size:clamp(26px,3.3vw,42px); line-height:1.1;
  text-transform:uppercase; color:var(--md-blu-multi); text-wrap:balance; max-width:none; }
.slider-text p{ font-size:16.5px; font-weight:600; line-height:1.6; color:var(--md-testo); margin-top:22px; max-width:480px; }
.slider-visual{ display:flex; justify-content:center; align-items:center; }
/* photos carry their own soft background — frame them as cards so they read cleanly on the neutral band */
.slider-visual img{ width:auto; max-height:62vh; max-width:100%; height:auto; display:block;
  border-radius:20px; box-shadow:0 26px 54px rgba(31,42,55,.18); }
@keyframes slideFadeUp{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:none; } }
.slide-anim{ animation:slideFadeUp .55s var(--ease-out) both; }
.slider-visual img{ animation:slideFadeUp .6s var(--ease-out) both; }
.slider-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px;
  display:flex; align-items:center; justify-content:center; color:#5B6675; cursor:pointer; background:none; border:0;
  transition:color .15s var(--ease-out), transform .15s var(--ease-out); z-index:3; }
.slider-arrow:hover{ color:var(--md-blu-multi); }
.slider-light .slider-arrow{ color:#7d93b5; }
.slider-light .slider-arrow:hover{ color:var(--md-blu-multi); }
.slider-arrow.prev{ left:1.5%; }
.slider-arrow.prev:hover{ transform:translateY(-50%) translateX(-3px); }
.slider-arrow.next{ right:1.5%; }
.slider-arrow.next:hover{ transform:translateY(-50%) translateX(3px); }
.slider-dots{ position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
  display:flex; gap:11px; z-index:3; }
.slider-dot{ width:10px; height:10px; border-radius:999px; border:0; padding:0; cursor:pointer;
  background:rgba(0,36,77,.22); transition:background .2s var(--ease-out), transform .2s var(--ease-out); }
.slider-dot:hover{ background:rgba(0,36,77,.4); }
.slider-dot.on{ background:var(--md-blu-multi); transform:scale(1.15); }

/* ---------- pricing card ---------- */
.price-wrap{ display:flex; justify-content:flex-end; }
.price-card{ width:390px; border-radius:20px; overflow:hidden; box-shadow:var(--shadow-lg); background:#fff;
  opacity:0; transform:translateY(46px) rotate(-3deg) scale(.95); transform-origin:center bottom;
  transition:transform .55s var(--ease-out), box-shadow .35s var(--ease-out), opacity .55s var(--ease-out); }
.price-card.in{ opacity:1; transform:none; }
.price-card.in:hover{ transform:translateY(-8px) rotate(1.6deg) scale(1.02); box-shadow:0 34px 72px rgba(31,42,55,.24); }
@media (prefers-reduced-motion:reduce){
  .price-card{ opacity:1; transform:none; transition:box-shadow .35s var(--ease-out); }
  .price-card.in:hover{ transform:none; }
}
.price-head{ background:var(--accent); color:#fff; padding:34px 30px 30px; text-align:center; }
.price-head h3{ font-family:var(--font-sans); font-weight:900; font-size:26px; text-transform:uppercase; letter-spacing:.01em; }
.price-head p{ font-size:14px; font-weight:600; margin-top:6px; opacity:.95; }
.price-body{ padding:40px 30px; text-align:center; }
.price-now{ font-family:var(--font-sans); font-weight:900; }
.price-old{ font-family:var(--font-sans); font-weight:800; font-size:28px; color:var(--accent);
  text-decoration:line-through; margin-right:12px; }
.price-big{ font-size:54px; color:var(--md-blu-multi); }
.price-cur{ font-size:26px; vertical-align:super; }
.price-note{ font-size:14px; font-weight:600; color:var(--md-testo); margin-top:18px; }

/* ---------- chi siamo: hero (full-bleed background video; text fades in when it ends) ---------- */
.cs-hero{ position:relative; overflow:hidden; min-height:100vh; }
.cs-hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; background:#EFF0ED; }
.cs-hero .ip-hero-in{ position:relative; z-index:2; grid-template-columns:1fr; }
.cs-hero-content{ opacity:0; transform:translateY(16px); transition:opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out); }
.cs-hero-content.in{ opacity:1; transform:none; }
.cs-hero-text{ max-width:560px; }
.ip [id]{ scroll-margin-top:84px; }

/* ---------- chi siamo: numbers ---------- */
.numbers-sec{ position:relative; overflow:hidden; }
.numbers-in{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:72px; align-items:center; padding-top:112px; padding-bottom:112px; position:relative; z-index:1; }
.numbers-eyebrow{ display:flex; align-items:center; gap:14px; font-family:var(--font-sans); font-weight:800;
  font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:24px; }
.numbers-eyebrow .rule{ height:2px; width:48px; background:var(--accent); border-radius:2px; }
.numbers-title{ font-family:var(--font-sans); font-weight:900; font-size:72px; line-height:.98;
  text-transform:uppercase; color:var(--accent); }
.numbers-sub{ font-size:16px; font-weight:600; color:var(--md-principale); margin-top:18px; max-width:380px; }

.num-panel{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--border);
  border-radius:24px; box-shadow:var(--shadow-md); overflow:hidden; }
.num-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px 36px;
  position:relative; opacity:0; transform:translateY(20px);
  transition:opacity .6s var(--ease-out), transform .6s var(--ease-out), background .25s var(--ease-out); }
.num-panel.in .num-row{ opacity:1; transform:none; }
.num-row + .num-row{ border-top:1px solid var(--border); }
.num-row::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--accent);
  transform:scaleY(0); transform-origin:center; transition:transform .35s var(--ease-out); }
.num-row:hover{ background:var(--md-soft-bkg); }
.num-row:hover::before{ transform:scaleY(1); }
.num-n{ font-family:var(--font-sans); font-weight:900; font-size:60px; line-height:1; letter-spacing:-.02em; color:var(--md-principale); }
.num-l{ font-size:16px; font-weight:700; color:var(--accent); margin-top:8px; }
.num-ic{ flex:none; width:62px; height:62px; border-radius:18px; display:grid; place-items:center;
  background:var(--md-soft-bkg); color:var(--accent); transition:background .25s var(--ease-out), transform .25s var(--ease-out); }
.num-row:hover .num-ic{ background:#fff; transform:translateY(-2px); }

/* ---------- chi siamo: value bands (pinned scroll scrubber) ---------- */
.values-scroll{ position:relative; height:300vh; }
.values-sticky{ position:sticky; top:0; height:100vh; overflow:hidden; }
.vlayer{ position:absolute; inset:0; display:flex; align-items:center;
  opacity:0; transform:translateY(14%); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);
  will-change:opacity,transform; pointer-events:none; }
.vlayer.on{ opacity:1; transform:translateY(0); z-index:2; pointer-events:auto; }
.vlayer.up{ opacity:0; transform:translateY(-14%); z-index:1; }
.vlayer.down{ opacity:0; transform:translateY(14%); z-index:1; }
.vlayer > .value-in{ width:100%; }
.value-in{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; min-height:430px; }
.vs-progress{ position:absolute; right:48px; top:50%; transform:translateY(-50%); z-index:5;
  display:flex; flex-direction:column; gap:12px; }
.vp-dot{ width:10px; height:10px; border-radius:999px; background:rgba(255,255,255,.45); transition:all .3s var(--ease-out); }
.vp-dot.on{ background:#fff; height:30px; }
.value-orange{ background:var(--value-orange); }
.value-cream{ background:var(--value-cream); }
.value-slate{ background:var(--value-slate); }
.value-eyebrow{ display:flex; align-items:center; gap:18px; font-family:var(--font-sans); font-weight:800;
  font-size:13px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:26px; }
.value-eyebrow .rule{ width:170px; height:2px; }
.value-title{ font-family:var(--font-sans); font-weight:900; font-size:48px; line-height:1.04;
  text-transform:uppercase; letter-spacing:-.01em; }
.value-text{ font-size:17px; font-weight:500; line-height:1.55; margin-top:24px; max-width:420px; }
.value-text .em{ display:block; font-weight:800; margin-top:18px; }
/* colour schemes */
.value-orange .value-eyebrow,.value-orange .value-title,.value-orange .value-text{ color:#fff; }
.value-orange .value-eyebrow .rule{ background:rgba(255,255,255,.7); }
.value-cream .value-eyebrow,.value-cream .value-title{ color:var(--md-blu-multi); }
.value-cream .value-text{ color:var(--md-testo); } .value-cream .value-text .em{ color:var(--md-principale); }
.value-cream .value-eyebrow .rule{ background:var(--md-blu-multi); }
.value-slate .value-eyebrow,.value-slate .value-title,.value-slate .value-text{ color:#fff; }
.value-slate .value-eyebrow .rule{ background:rgba(255,255,255,.75); }
.value-illus{ display:flex; justify-content:center; align-items:center; position:relative; }
.illus-stack{ position:relative; width:90%; max-width:540px; }
.illus-frame{ position:absolute; inset:0; border-radius:28px; border:2px solid; transform:translate(20px,20px);
  z-index:0; opacity:.55; transition:transform .8s var(--ease-out); }
.illus-index{ position:absolute; top:-34px; left:-20px; z-index:3; font-family:var(--font-sans); font-weight:900;
  font-size:96px; line-height:1; letter-spacing:-.04em; opacity:.16; pointer-events:none; }
.illus-stack .card{ position:relative; z-index:2; width:100%; aspect-ratio:4/3; border-radius:24px; overflow:hidden;
  background:#9fe0d8; box-shadow:var(--shadow-lg); transform:scale(.94); opacity:0;
  transition:transform .8s var(--ease-out), opacity .7s var(--ease-out); }
.illus-stack .card img{ width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease-out); }
.vlayer.on .illus-stack .card{ transform:scale(1); opacity:1; }
.vlayer.on .illus-frame{ transform:translate(28px,28px); }
.vlayer.on .illus-stack .card img{ transform:scale(1.05); }
.value-orange .illus-frame{ border-color:rgba(255,255,255,.55); }
.value-orange .illus-index{ color:#fff; }
.value-cream .illus-frame{ border-color:var(--md-blu-multi); }
.value-cream .illus-index{ color:var(--md-blu-multi); }
.value-slate .illus-frame{ border-color:rgba(255,255,255,.6); }
.value-slate .illus-index{ color:#fff; }

/* ---------- mission / vision slider (contained card, loops) ---------- */
.mission-slider{ position:relative; height:min(72vh,700px);
  margin:clamp(40px,6vw,88px) clamp(20px,5vw,72px) clamp(64px,8vw,112px);
  border-radius:30px; overflow:hidden; background:#08222e; box-shadow:var(--shadow-lg);
  display:flex; align-items:center; justify-content:center; }
.mslide{ position:absolute; inset:0; opacity:0; transition:opacity 1s var(--ease-out); z-index:0; }
.mslide.on{ opacity:1; z-index:1; }
.ms-bg{ position:absolute; inset:0; overflow:hidden; }
.ms-bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.04); transform-origin:center; }
/* slow, fluid ken burns — zoom-in on slide 1, zoom-out on slide 2 */
.mslide.on.zoom-in .ms-bg img{ animation:kbIn 8s ease-out forwards; }
.mslide.on.zoom-out .ms-bg img{ animation:kbOut 8s ease-out forwards; }
@keyframes kbIn{ from{ transform:scale(1.02); } to{ transform:scale(1.16); } }
@keyframes kbOut{ from{ transform:scale(1.16); } to{ transform:scale(1.02); } }
/* strong brand-tinted overlay: darkens the photo (and the original baked-in text) so the animated text reads on top */
.ms-overlay{ position:absolute; inset:0; z-index:2; }
.ms-overlay.tint-teal{ background:linear-gradient(180deg, rgba(15,23,34,.5) 0%, rgba(8,14,24,.66) 100%); }
.ms-overlay.tint-navy{ background:linear-gradient(180deg, rgba(22,32,50,.48) 0%, rgba(11,19,33,.64) 100%); }
.ms-shade{ position:absolute; inset:0; z-index:2; background:radial-gradient(120% 90% at 50% 50%, rgba(0,0,0,0) 30%, rgba(0,0,0,.22) 100%); }
.ms-content{ position:relative; z-index:3; text-align:center; padding:40px; }
.ms-eyebrow{ display:inline-flex; align-items:center; gap:8px; padding:8px 18px; border-radius:999px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.24); backdrop-filter:blur(8px);
  font-family:var(--font-sans); font-weight:800; font-size:12px; letter-spacing:.3em;
  text-transform:uppercase; color:#fff; animation:msUp .8s var(--ease-out) both; }
.ms-title{ font-family:var(--font-sans); font-weight:900; font-size:clamp(28px,2.7vw,46px); line-height:1.12;
  text-transform:uppercase; letter-spacing:-.005em; color:#fff; margin:22px auto 0; max-width:1000px;
  text-shadow:0 4px 30px rgba(0,0,0,.5); animation:msUp .9s var(--ease-out) .12s both; }
.ms-content::after{ content:""; display:block; width:64px; height:4px; border-radius:3px;
  background:var(--accent); margin:28px auto 0; animation:msUp 1s var(--ease-out) .2s both; }
@keyframes msUp{ from{ opacity:0; transform:translateY(32px); } to{ opacity:1; transform:none; } }
.ms-dots{ position:absolute; bottom:36px; left:50%; transform:translateX(-50%); z-index:4; display:flex; gap:10px; }
.ms-dot{ width:10px; height:10px; border-radius:999px; background:rgba(255,255,255,.45); border:0; padding:0;
  cursor:pointer; transition:background .3s var(--ease-out), width .3s var(--ease-out); }
.ms-dot.on{ background:#fff; width:30px; }

/* ---------- multinforma: feature cards ---------- */
.feat-icons{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; max-width:920px; margin-top:8px; }
.feat-ic{ text-align:center; }
.feat-ic .ic{ width:64px; height:64px; margin:0 auto 16px; color:var(--md-principale);
  display:flex; align-items:center; justify-content:center; }
.feat-ic .ic .lucide{ stroke-width:2; }
.feat-ic .lbl{ font-family:var(--font-sans); font-weight:800; font-size:14px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--md-principale); line-height:1.3; }

/* ---------- multinforma: "guarda dove e quando vuoi" ---------- */
.mf-guarda{ background:linear-gradient(180deg,#FFFFFF 0%, #F3F8FD 100%); }
.mf-guarda-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.mf-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-sans);
  font-weight:800; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.mf-eyebrow::before{ content:""; width:28px; height:2px; background:var(--accent); border-radius:2px; }
.mf-guarda-text .ip-h2{ margin-top:16px; }

.mf-feat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; max-width:1040px; }
.mf-guarda .mf-feat-grid{ grid-template-columns:repeat(2,1fr); gap:22px; max-width:none; }
.mf-feat-card{ position:relative; display:block; text-decoration:none; color:inherit;
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-xl); padding:34px 28px 30px; text-align:center; overflow:hidden;
  box-shadow:var(--shadow-sm); opacity:0;
  transition:transform .32s var(--ease-out), box-shadow .32s var(--ease-out), border-color .32s var(--ease-out); }
.mf-feat-card::before{ content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg, var(--accent-strong), var(--accent)); transform:scaleX(0);
  transform-origin:left; transition:transform .32s var(--ease-out); }
.mf-feat-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.mf-feat-card:hover::before{ transform:scaleX(1); }
.mf-feat-tile{ height:60px; margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
  transition:transform .32s var(--ease-out); }
.mf-feat-card:hover .mf-feat-tile{ transform:translateY(-3px) scale(1.06); }
.mf-feat-tile .lucide{ stroke-width:1.9; stroke:url(#mfBlueIcon); }
.mf-feat-lbl{ font-family:var(--font-sans); font-weight:800; font-size:14px; letter-spacing:.05em;
  text-transform:uppercase; color:var(--md-principale); line-height:1.32; }
.mf-feat-desc{ font-size:13.5px; font-weight:500; line-height:1.5; color:var(--md-testo); margin-top:9px; }
/* left-aligned cards in the two-column layout */
.mf-guarda .mf-feat-card{ text-align:left; padding:30px 26px 26px; }
.mf-guarda .mf-feat-tile{ margin:0 0 16px; justify-content:flex-start; }
/* staggered scroll-in (animation, not transition, so hover transform stays free) */
.mf-feat-grid.in .mf-feat-card{ opacity:1; animation:mfCardUp .6s var(--ease-out) backwards; }
.mf-feat-grid.in .mf-feat-card:nth-child(1){ animation-delay:.04s; }
.mf-feat-grid.in .mf-feat-card:nth-child(2){ animation-delay:.12s; }
.mf-feat-grid.in .mf-feat-card:nth-child(3){ animation-delay:.20s; }
.mf-feat-grid.in .mf-feat-card:nth-child(4){ animation-delay:.28s; }
@keyframes mfCardUp{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  .mf-feat-card{ opacity:1; }
  .mf-feat-grid.in .mf-feat-card{ animation:none; }
}

/* ---------- team page: culture split slider ---------- */
.culture-slider{ position:relative; display:grid; grid-template-columns:0.82fr 1.18fr;
  border-radius:24px; overflow:hidden; height:560px; box-shadow:0 30px 60px rgba(15,30,55,.22); background:var(--md-blu-multi); }
.cs-stage{ position:relative; overflow:hidden; order:2; }
.cslide{ position:absolute; inset:0; opacity:0; transition:opacity 1s var(--ease-out); z-index:0; }
.cslide.on{ opacity:1; z-index:1; }
.cs-bg{ position:absolute; inset:0; overflow:hidden; }
.cs-bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.04); }
.cslide.on .cs-bg img{ animation:kenburns 9s ease-out forwards; }
@keyframes kenburns{ from{ transform:scale(1.04) translate(0,0); } to{ transform:scale(1.18) translate(-2.5%,-2%); } }
.cs-ov{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,36,77,.85) 0%, rgba(0,36,77,.18) 34%, rgba(0,36,77,0) 60%); }
/* dark content panel */
.cs-panel{ position:relative; z-index:3; order:1; display:flex; flex-direction:column; padding:46px 44px; color:#fff;
  background:linear-gradient(165deg,#0c2c57 0%, var(--md-blu-multi) 72%); }
.cs-eyebrow{ font-family:var(--font-sans); font-weight:800; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.62); }
.cs-panel-body{ flex:1; display:flex; flex-direction:column; justify-content:center; padding:24px 0;
  animation:csIn .6s var(--ease-out) both; }
.cs-num{ font-family:var(--font-sans); font-weight:900; font-size:62px; line-height:1; letter-spacing:-.03em; color:var(--accent); }
.cs-num-tot{ font-size:22px; font-weight:800; color:rgba(255,255,255,.45); margin-left:10px; }
.cs-title{ font-family:var(--font-sans); font-weight:900; font-size:30px; line-height:1.08;
  text-transform:uppercase; letter-spacing:-.01em; color:#fff; margin-top:14px; }
.cs-desc{ font-size:15px; font-weight:500; line-height:1.6; color:rgba(255,255,255,.84); margin-top:16px; max-width:440px; }
.cs-panel-body .btn-ghost-light{ align-self:flex-start; margin-top:24px; display:inline-flex; align-items:center; gap:8px;
  padding:12px 24px; border-radius:999px; border:1.5px solid rgba(255,255,255,.35); background:transparent; color:#fff;
  font-family:var(--font-sans); font-weight:700; font-size:14px; letter-spacing:.02em; text-transform:uppercase;
  cursor:pointer; transition:all .25s var(--ease-out); }
.cs-panel-body .btn-ghost-light:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.cs-controls{ display:flex; align-items:center; justify-content:space-between; gap:22px; }
.cs-arrows{ display:flex; gap:10px; }
.cs-arrow{ width:46px; height:46px; border-radius:999px; border:1.5px solid rgba(255,255,255,.28); background:transparent;
  color:#fff; display:grid; place-items:center; cursor:pointer; transition:all .25s var(--ease-out); }
.cs-arrow:hover{ background:#fff; color:var(--md-blu-multi); border-color:#fff; }
.cs-progress{ display:flex; gap:8px; flex:1; max-width:190px; }
.cs-seg{ position:relative; flex:1; height:4px; border-radius:3px; background:rgba(255,255,255,.22);
  border:0; padding:0; cursor:pointer; overflow:hidden; }
.cs-seg-fill{ position:absolute; left:0; top:0; bottom:0; width:0; background:var(--accent); border-radius:3px; }
.cs-seg.on .cs-seg-fill{ animation:csFill 6s linear forwards; }
.culture-slider:hover .cs-seg.on .cs-seg-fill{ animation-play-state:paused; }
@keyframes csFill{ from{ width:0; } to{ width:100%; } }
@keyframes csIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (max-width:980px){
  .culture-slider{ grid-template-columns:1fr; height:auto; }
  .cs-stage{ order:1; height:300px; }
  .cs-panel{ order:2; padding:36px 30px; }
  .cs-ov{ background:linear-gradient(180deg, rgba(0,36,77,0) 40%, rgba(0,36,77,.4) 100%); }
}

.team-tabs{ display:flex; flex-wrap:wrap; gap:30px; margin:34px 0 44px; }
.team-tab{ font-family:var(--font-sans); font-weight:700; font-size:15px; color:var(--md-blu-hover); cursor:pointer;
  background:none; border:0; padding:0; }
.team-tab.on{ color:var(--accent); }
.team-tab:hover{ color:var(--accent); }
.team-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:22px; }
/* slide-left card: back panel slides in from the right over the front */
.tcard{ position:relative; height:418px; border-radius:16px; overflow:hidden; cursor:pointer;
  box-shadow:0 10px 26px rgba(31,42,55,.07); }
.tcard-face{ position:absolute; inset:0; border-radius:16px; }
.tcard-front{ background:#fff; border:1px solid var(--border);
  display:flex; flex-direction:column; align-items:center; justify-content:center; padding:30px 16px; text-align:center;
  transition:transform .45s var(--ease-out); will-change:transform; }
.tcard-back{ background:var(--md-blu-multi); color:#fff;
  padding:28px 24px; display:flex; flex-direction:column;
  background-image:radial-gradient(120% 80% at 80% 0%, #0c3360 0%, var(--md-blu-multi) 60%);
  transform:translateX(100%); transition:transform .45s var(--ease-out); will-change:transform; }
.tcard:hover .tcard-back, .tcard.slid .tcard-back{ transform:translateX(0); }
.team-photo{ width:128px; height:128px; border-radius:999px; margin:0 auto 22px; overflow:hidden;
  background:var(--md-soft-gray); display:flex; align-items:center; justify-content:center; flex:none;
  box-shadow:0 6px 16px rgba(31,42,55,.12); }
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-name{ font-family:var(--font-sans); font-weight:800; font-size:17px; color:var(--md-blu-multi); line-height:1.2; }
.team-role{ font-style:italic; font-size:13.5px; color:var(--md-testo); margin-top:9px; }
.tcard-back .tb-quote{ font-style:italic; font-size:13.5px; line-height:1.5; color:#BFD6EE;
  border-left:2px solid var(--accent); padding-left:12px; }
.tcard-back .tb-bio{ font-size:12.5px; line-height:1.55; color:#EAF1F8; margin-top:14px; flex:1;
  overflow:auto; font-weight:500; }
.tcard-back .tb-bio::-webkit-scrollbar{ width:4px; }
.tcard-back .tb-bio::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.25); border-radius:4px; }
.tcard-back .tb-name{ font-family:var(--font-sans); font-weight:800; font-size:15px; color:#fff; margin-bottom:12px; }
.tcard-back .btn-li{ margin-top:16px; align-self:flex-start; background:#fff; color:var(--md-blu-multi);
  border:0; border-radius:999px; padding:9px 18px; font-family:var(--font-sans); font-weight:800; font-size:12.5px;
  display:inline-flex; align-items:center; gap:7px; cursor:pointer; transition:background .15s var(--ease-out), color .15s var(--ease-out); }
.tcard-back .btn-li:hover{ background:var(--accent); color:#fff; }
.team-pager{ display:flex; align-items:center; justify-content:center; gap:12px; margin:44px 0 30px;
  font-family:var(--font-sans); font-weight:700; font-size:14px; }
.team-pager .pg-nav{ color:var(--accent); letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.team-pager .pg-num{ color:var(--md-blu-multi); cursor:pointer; padding:0 3px; }
.team-pager .pg-num.on{ color:var(--accent); }
.team-cta{ text-align:center; }

/* ---------- team page: full-height sections + lavora background ---------- */
.team-page .ip-hero{ min-height:100vh; display:flex; align-items:center; }
.team-page .ip-hero-in{ padding-top:90px; padding-bottom:90px; }
.team-page .ip-section{ min-height:100vh; display:flex; flex-direction:column; justify-content:center; }
.team-page .ip-section > .container{ width:100%; }
.team-page [id]{ scroll-margin-top:80px; }
.lavora-sec{ background:url("../../assets/multi_bkg3.jpg") center/cover no-repeat; }

/* ---------- missing-asset placeholder ---------- */
.imgph{ position:relative; background:
    repeating-linear-gradient(135deg,#EEF1F4 0 14px,#E6EAEE 14px 28px);
  border:1px solid var(--border); border-radius:12px; display:flex; align-items:center; justify-content:center;
  color:#8B97A4; overflow:hidden; }
.imgph .tag{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:12px;
  letter-spacing:.04em; text-transform:uppercase; text-align:center; padding:8px 14px;
  background:rgba(255,255,255,.78); border-radius:6px; }
.imgph.dark{ background:
    repeating-linear-gradient(135deg,#2A3A49 0 14px,#243340 14px 28px); color:#9fb0bf; border-color:#2f4150; }
.imgph.dark .tag{ background:rgba(20,32,42,.6); color:#cdd9e2; }

/* ============================================================================
   MULTIPREMIO — operazione a premi landing
   ========================================================================= */
.mp-hero{ background:var(--band-warm); }
.mp-hero.bg-blue{ background:var(--band-blue); }
.mp-hero.bg-light{ background:linear-gradient(180deg,#F7F8F9 0%,#FFFFFF 100%); }
.mp-hero .ip-hero-in{ padding-bottom:44px; align-items:center; }
.mp-badge{ display:inline-flex; align-items:center; gap:10px; padding:8px 16px; border-radius:999px;
  background:#fff; border:1px solid var(--border); box-shadow:var(--shadow-sm);
  font-family:var(--font-sans); font-weight:800; font-size:12.5px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--md-principale); margin-bottom:26px; }
.mp-badge .dot{ width:8px; height:8px; border-radius:999px; background:var(--accent);
  box-shadow:0 0 0 4px var(--md-secondario-soft); }
.mp-hero .ip-h1 .em{ color:var(--accent); }
.mp-rating{ display:flex; align-items:center; gap:16px; margin-top:30px; flex-wrap:wrap;
  font-size:13.5px; font-weight:600; color:var(--md-testo); }
.mp-rating .stars{ color:var(--accent); display:inline-flex; gap:2px; }
.mp-rating b{ color:var(--md-principale); font-weight:800; }
.mp-rating .sep{ width:1px; height:15px; background:var(--border); }
.mp-rating .ck{ color:var(--accent); }
.mp-rating .grp{ display:inline-flex; align-items:center; gap:7px; }

/* hero voucher fan */
.mp-vouchers{ position:relative; width:100%; max-width:440px; height:430px; margin:0 auto; }
.mp-voucher{ position:absolute; width:300px; background:#fff; border:1px solid var(--border);
  border-radius:18px; box-shadow:var(--shadow-lg); padding:22px 24px 20px;
  transition:transform .25s var(--ease-out), box-shadow .25s var(--ease-out); }
.mp-voucher:hover{ box-shadow:0 26px 56px rgba(31,42,55,.2); z-index:20 !important; }
.mp-voucher-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.mp-voucher-brand{ font-family:var(--font-sans); font-weight:900; font-size:18px; line-height:1.05;
  letter-spacing:-.01em; color:var(--md-blu-multi); text-transform:uppercase; }
.mp-voucher .mp-voucher-logo{ height:36px; max-width:160px; width:auto; object-fit:contain; object-position:left center; }
.mp-voucher-tag{ font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase;
  color:var(--fg-muted); padding-top:3px; }
.mp-voucher-val{ font-family:var(--font-sans); font-weight:900; font-size:28px; color:var(--accent); margin-top:16px; }
.mp-voucher-strip{ height:7px; border-radius:999px;
  background:linear-gradient(90deg,var(--accent),#F0A875); margin-top:16px; width:58%; }

/* hero stats strip */
.mp-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border);
  border:1px solid var(--border); border-radius:18px; overflow:hidden; box-shadow:var(--shadow-sm); }
.mp-stat{ background:#fff; padding:26px 22px; text-align:center; }
.mp-stat .n{ font-family:var(--font-sans); font-weight:900; font-size:34px; line-height:1;
  color:var(--md-principale); letter-spacing:-.02em; }
.mp-stat .n .pre{ font-size:14px; color:var(--accent); font-weight:800; margin-right:5px;
  text-transform:uppercase; letter-spacing:.02em; }
.mp-stat .l{ font-size:13px; font-weight:700; color:var(--md-testo); margin-top:9px; }

/* shared section heading (eyebrow + h2 + intro), centred */
.mp-shead{ text-align:center; max-width:680px; margin:0 auto; }
.mp-shead .eyebrow{ display:inline-block; }
.mp-shead h2{ font-family:var(--font-sans); font-weight:900; font-size:34px; line-height:1.12;
  letter-spacing:-.005em; text-transform:uppercase; color:var(--md-principale); margin-top:14px; }
.mp-shead p{ font-size:16px; font-weight:500; line-height:1.6; color:var(--md-testo); margin-top:16px; }

/* come funziona — 3 steps */
.mp-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:60px; }
.mp-step{ position:relative; background:#fff; border:1px solid var(--border); border-radius:22px;
  padding:36px 32px 32px; box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease-out), box-shadow .18s var(--ease-out), border-color .18s var(--ease-out); }
.mp-step:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:transparent; }
.mp-step-n{ font-family:var(--font-sans); font-weight:900; font-size:13px; letter-spacing:.14em;
  color:var(--accent); }
.mp-step-ic{ width:58px; height:58px; border-radius:16px; display:grid; place-items:center;
  background:var(--md-soft-bkg); color:var(--accent); margin:16px 0 22px; }
.mp-step-ic .lucide{ stroke-width:2; }
.mp-step h3{ font-family:var(--font-sans); font-weight:900; font-size:19px; text-transform:uppercase;
  color:var(--md-principale); line-height:1.15; }
.mp-step p{ font-size:14.5px; font-weight:500; line-height:1.6; color:var(--md-testo); margin-top:12px; }

/* catalogo — category cards */
.mp-cats{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:56px; }
.mp-cat{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--border);
  border-radius:18px; padding:28px 26px 26px; box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease-out), box-shadow .18s var(--ease-out), border-color .18s var(--ease-out); }
.mp-cat:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.mp-cat-ic{ display:flex; margin-bottom:18px; }
.mp3d{ position:relative; width:60px; height:60px; border-radius:19px; isolation:isolate;
  display:grid; place-items:center;
  background:linear-gradient(150deg, var(--c1) 0%, var(--c2) 100%);
  box-shadow:0 12px 22px -8px color-mix(in srgb, var(--c2) 62%, transparent),
             inset 0 2px 2px rgba(255,255,255,.55),
             inset 0 -7px 11px rgba(0,0,0,.16);
  transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out); }
.mp3d::before{ content:""; position:absolute; inset:0; border-radius:inherit; z-index:0;
  background:linear-gradient(157deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 52%); }
.mp3d svg{ position:relative; z-index:1; width:32px; height:32px; fill:#fff;
  filter:drop-shadow(0 2px 2.5px rgba(0,0,0,.25)); }
.mp-cat:hover .mp3d{ transform:translateY(-3px) rotate(-4deg);
  box-shadow:0 18px 28px -8px color-mix(in srgb, var(--c2) 66%, transparent),
             inset 0 2px 2px rgba(255,255,255,.55),
             inset 0 -7px 11px rgba(0,0,0,.16); }
.mp-cat h3{ font-family:var(--font-sans); font-weight:900; font-size:15.5px; text-transform:uppercase;
  color:var(--md-principale); line-height:1.2; }
.mp-cat p{ font-size:13px; font-weight:500; line-height:1.5; color:var(--md-testo); margin-top:9px; min-height:39px; }
.mp-cat-brands{ display:flex; flex-wrap:wrap; gap:6px; margin-top:16px; }
.mp-chip{ font-family:var(--font-sans); font-weight:700; font-size:11px; padding:4px 10px;
  border-radius:999px; background:var(--md-soft-gray); color:var(--md-principale-70); white-space:nowrap; }
.mp-chip.more{ background:transparent; color:var(--accent); font-weight:800; padding-left:4px; }

/* brand grid */
.mp-brandgrid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; margin-top:48px; }
.mp-brandcell{ display:flex; align-items:center; justify-content:center; height:112px; text-align:center;
  padding:16px 18px; background:#fff; border:1px solid var(--border); border-radius:14px;
  transition:border-color .16s var(--ease-out), box-shadow .16s var(--ease-out), transform .16s var(--ease-out); }
.mp-brandcell img{ max-width:78%; max-height:32px; width:auto; object-fit:contain; }
.mp-brandcell:hover{ border-color:var(--accent); box-shadow:var(--shadow-sm); transform:translateY(-2px); }
.mp-brand-more{ text-align:center; margin:34px auto 0; max-width:780px;
  font-size:15px; font-weight:500; line-height:1.6; color:var(--md-testo); }
.mp-brand-more b{ color:var(--md-principale); font-weight:800; }

/* fidelity tiers */
.mp-tiers{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:60px; align-items:start; }
.mp-tier{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--border);
  border-radius:24px; padding:36px 32px 34px; box-shadow:var(--shadow-md); }
.mp-tier.top{ border:2px solid var(--accent); box-shadow:var(--shadow-lg); }
.mp-tier-ribbon{ position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:var(--accent); color:#fff; font-family:var(--font-sans); font-weight:800; font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; padding:6px 18px; border-radius:999px; box-shadow:var(--shadow-cta); }
.mp-tier-name{ font-family:var(--font-sans); font-weight:900; font-size:26px; text-transform:uppercase;
  color:var(--md-principale); }
.mp-tier-tag{ font-size:14px; font-weight:600; font-style:italic; color:var(--md-testo); margin-top:8px; min-height:40px; }
.mp-tier-price{ font-family:var(--font-sans); font-weight:900; font-size:19px; text-transform:uppercase;
  color:var(--accent); margin-top:20px; }
.mp-tier-note{ font-size:12.5px; font-weight:600; color:var(--fg-muted); margin-top:7px; line-height:1.45; }
.mp-tier-feats{ list-style:none; margin:24px 0 28px; display:flex; flex-direction:column; gap:13px; flex:1; }
.mp-tier-feats li{ display:flex; gap:11px; font-size:13.5px; font-weight:500; line-height:1.5; color:var(--md-testo); }
.mp-tier-feats li b{ color:var(--md-principale); font-weight:800; }
.mp-tier-feats .ck{ flex:none; color:var(--accent); margin-top:1px; }
.mp-tier-feats li.off{ color:var(--fg-muted); }
.mp-tier-feats li.off .ck{ color:var(--border-strong); }
.mp-tier-feats .soon{ font-style:italic; color:var(--fg-muted); font-weight:600; }
.mp-tier .btn{ width:100%; justify-content:center; }

/* attiva — two paths */
.mp-paths{ display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:48px; }
.mp-path{ background:#fff; border:1px solid var(--border); border-radius:22px; padding:42px 40px;
  box-shadow:var(--shadow-sm); display:flex; flex-direction:column; align-items:flex-start; }
.mp-path h3{ font-family:var(--font-sans); font-weight:900; font-size:21px; text-transform:uppercase;
  color:var(--md-principale); line-height:1.15; }
.mp-path p{ font-size:15px; font-weight:500; line-height:1.65; color:var(--md-testo); margin:16px 0 28px; }
.mp-path p b{ color:var(--md-principale); font-weight:800; }
.mp-path .btn{ margin-top:auto; }

/* faq accordion */
.mp-faq{ max-width:880px; margin:48px auto 0; }
.mp-faq-item{ border-bottom:1px solid var(--border); }
.mp-faq-q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:24px 2px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  font-family:var(--font-sans); font-weight:800; font-size:17px; line-height:1.3; color:var(--md-principale);
  transition:color .16s var(--ease-out); }
.mp-faq-q:hover{ color:var(--accent); }
.mp-faq-q .ic{ flex:none; color:var(--accent); transition:transform .28s var(--ease-out); }
.mp-faq-item.open .mp-faq-q .ic{ transform:rotate(45deg); }
.mp-faq-a{ overflow:hidden; max-height:0; transition:max-height .32s var(--ease-out); }
.mp-faq-item.open .mp-faq-a{ max-height:420px; }
.mp-faq-a-in{ padding:0 2px 26px; font-size:15px; font-weight:500; line-height:1.65; color:var(--md-testo); max-width:780px; }
.mp-faq-a-in a{ color:var(--md-blu-hover); font-weight:700; }

/* closing banner */
.mp-closing{ background:var(--md-blu-multi); text-align:center; position:relative; overflow:hidden; }
.mp-closing .container{ position:relative; z-index:1; }
.mp-closing h2{ font-family:var(--font-sans); font-weight:900; font-size:40px; line-height:1.1;
  letter-spacing:-.005em; text-transform:uppercase; color:#fff; max-width:820px; margin:0 auto; }
.mp-closing h2 .em{ color:var(--accent); }
.mp-closing p{ font-size:15px; font-weight:600; letter-spacing:.04em; color:rgba(255,255,255,.66); margin-top:18px; }
.mp-closing .btn{ margin-top:34px; }

@media (max-width:980px){
  .mp-stats{ grid-template-columns:repeat(2,1fr); }
  .mp-steps{ grid-template-columns:1fr; }
  .mp-cats{ grid-template-columns:repeat(2,1fr); }
  .mp-brandgrid{ grid-template-columns:repeat(3,1fr); }
  .mp-tiers{ grid-template-columns:1fr; }
  .mp-paths{ grid-template-columns:1fr; }
  .mp-vouchers{ max-width:340px; height:400px; }
  .mp-closing h2{ font-size:30px; }
}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .ip-hero-in,.ip-2col,.numbers-in,.value-in,.slider-in{ grid-template-columns:1fr; gap:40px; }
  .mv-auto-grid{ grid-template-columns:1fr; gap:40px; }
  .mv-comprende{ min-height:auto; }
  .ip-hero-in{ padding-top:130px; padding-bottom:64px; }
  .mf-hero{ flex-direction:column; min-height:auto; }
  .mf-hero-text{ max-width:none; }
  .mf-hero-bg{ position:relative; right:auto; top:auto; transform:none;
    width:100%; max-width:100%; margin:36px auto 0; }
  .opt-cards.c3{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:repeat(2,1fr); }
  .feat-icons{ grid-template-columns:repeat(2,1fr); }
  .mf-feat-grid{ grid-template-columns:repeat(2,1fr); }
  .mf-guarda-grid{ grid-template-columns:1fr; gap:44px; }
  .ip-h1{ font-size:33px; } .numbers-title{ font-size:52px; } .value-title{ font-size:38px; }
  .mission-band h2{ font-size:34px; } .price-wrap{ justify-content:center; }
  .ip-section{ padding:64px 0; }
}

/* ============================================================================
   MULTIPREMIO — Fidelity Card visuals (Base / Silver / Gold)
   ========================================================================= */
.mp-card-art{ position:relative; aspect-ratio:1.586/1; border-radius:16px; overflow:hidden;
  padding:22px 24px; display:flex; flex-direction:column; justify-content:space-between;
  box-shadow:0 18px 36px -16px rgba(31,42,55,.55); margin-bottom:30px; }
.mp-card-art::after{ content:""; position:absolute; top:-40%; right:-10%; width:70%; height:180%;
  background:linear-gradient(105deg, rgba(255,255,255,0) 40%, rgba(255,255,255,.22) 50%, rgba(255,255,255,0) 60%);
  transform:rotate(8deg); pointer-events:none; }
.mp-card-art .ca-top{ display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1; }
.mp-card-art .ca-mark{ height:22px; width:auto; display:block; }
.mp-card-art .ca-chip{ width:38px; height:28px; border-radius:6px; flex:none;
  background:linear-gradient(135deg,#F0D89A 0%,#D8B25E 48%,#B98A38 100%);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.5); }
.mp-card-art .ca-bottom{ position:relative; z-index:1; }
.mp-card-art .ca-label{ font-family:var(--font-sans); font-weight:700; font-size:10px;
  letter-spacing:.22em; text-transform:uppercase; opacity:.72; }
.mp-card-art .ca-tier{ font-family:var(--font-sans); font-weight:900; font-size:26px;
  letter-spacing:.02em; text-transform:uppercase; line-height:1; margin-top:5px; }
.mp-card-art.base{ background:linear-gradient(135deg,#0c3360 0%,var(--md-blu-multi) 72%); color:#fff; }
.mp-card-art.silver{ background:linear-gradient(135deg,#CED4DB 0%,#F3F6F8 40%,#B6BEC8 100%); color:#1F2A37; }
.mp-card-art.gold{ background:linear-gradient(135deg,#E59A3A 0%,#F2C277 45%,#C26224 100%); color:#fff; }

/* ============================================================================
   DARK THEME — internal-page (.ip / bands / mp-*) overrides
   ========================================================================= */
[data-theme="dark"] .ip{ background:#14181E; }
[data-theme="dark"] .band-blue{ background:#161B22; }
[data-theme="dark"] .band-warm{ background:#15191F; }
[data-theme="dark"] .band-teal{ background:#10242B; }
[data-theme="dark"] .ip-hero.band-blue{ background:linear-gradient(180deg,#10141A 0%,#14181E 100%); }
[data-theme="dark"] .mp-hero{ background:#15191F; }
[data-theme="dark"] .mp-hero.bg-blue{ background:#141A22; }
[data-theme="dark"] .mp-hero.bg-light{ background:linear-gradient(180deg,#10141A 0%,#14181E 100%); }
[data-theme="dark"] .mp-badge,
[data-theme="dark"] .mp-step,
[data-theme="dark"] .mp-cat,
[data-theme="dark"] .mp-tier,
[data-theme="dark"] .mp-path,
[data-theme="dark"] .mp-voucher{ background:#1E2530; border-color:#2E3744; }
[data-theme="dark"] .mp-brandcell{ background:#F4F6F8; border-color:#2E3744; }
[data-theme="dark"] .mp-voucher{ background:#F7F9FB; }
[data-theme="dark"] .mp-stats{ background:#2E3744; border-color:#2E3744; }
[data-theme="dark"] .mp-stat{ background:#1E2530; }
[data-theme="dark"] .mp-step-ic,
[data-theme="dark"] .mp-cat-ic{ background:#2A2018; }
[data-theme="dark"] .mp-voucher-brand{ color:#E4E8ED; }
[data-theme="dark"] .mp-chip{ background:#2A323D; color:#AEB7C2; }
[data-theme="dark"] .mp-tier.top{ border-color:var(--accent); }
[data-theme="dark"] .mp-faq-q .ic{ color:var(--accent); }
/* secondary hero link: navy is too dark on the dark page bg */
[data-theme="dark"] .btn-link{ color:#7FB0E8; }
[data-theme="dark"] .btn-link:hover{ color:var(--accent); }
/* keep the navy closing band readable (it stays navy in both themes) */
[data-theme="dark"] .mp-closing{ background:#0B1B33; }

/* ============================================================================
   BLOG — archivio editoriale
   ========================================================================= */
.blog-hero{ position:relative; overflow:hidden;
  background:linear-gradient(180deg,#CFE2F5 0%,#E4F0FA 48%,#F4F9FD 100%); }
.blog-hero::after{ content:""; position:absolute; left:0; right:0; bottom:-40px; height:200px;
  background:radial-gradient(60% 90% at 18% 100%, #fff 0%, rgba(255,255,255,0) 60%),
             radial-gradient(50% 80% at 50% 100%, #fff 0%, rgba(255,255,255,0) 62%),
             radial-gradient(60% 90% at 82% 100%, #fff 0%, rgba(255,255,255,0) 60%); pointer-events:none; }
.blog-hero-in{ position:relative; z-index:1; padding-top:150px; padding-bottom:96px; }
.blog-hero-mark{ width:64px; height:64px; display:block; margin-bottom:20px; }
.blog-hero h1{ font-family:var(--font-sans); font-weight:900; font-size:43px; line-height:1.08;
  letter-spacing:-.01em; text-transform:uppercase; color:var(--md-principale); max-width:15ch; }
.blog-hero .lead{ font-size:17px; font-weight:500; line-height:1.5; color:var(--md-testo);
  margin-top:18px; max-width:560px; }
.blog-hero .lead b{ color:var(--md-principale); font-weight:800; }

/* segmented toggle (Ultimi articoli / Popolari) */
.blog-toggle{ display:flex; justify-content:center; }
.seg{ display:inline-flex; gap:4px; padding:5px; border-radius:999px; background:var(--md-soft-gray); }
.seg button{ font-family:var(--font-sans); font-weight:700; font-size:14px; letter-spacing:.01em;
  border:0; cursor:pointer; padding:11px 28px; border-radius:999px; background:transparent; color:var(--accent);
  transition:background .18s var(--ease-out), color .18s var(--ease-out); }
.seg button:hover{ color:var(--accent-hover); }
.seg button.on{ background:var(--md-principale); color:#fff; }
.seg button.on:hover{ color:#fff; }

/* featured block */
.blog-feat{ padding:54px 0 26px; }
.blog-feat-card{ background:#fff; border:1px solid var(--border); border-radius:22px; padding:30px 36px 36px;
  box-shadow:0 18px 44px rgba(20,46,86,.07); }
.blog-feat-head{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding-bottom:24px; margin-bottom:30px; border-bottom:1px solid var(--border); }
.blog-kicker{ font-family:var(--font-sans); font-weight:800; font-size:13px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent); }
.blog-feat-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:44px; align-items:start; }
.blog-side{ display:flex; flex-direction:column; }
.blog-sidepost{ padding:20px 0; border-bottom:1px solid var(--border); }
.blog-sidepost:first-child{ padding-top:0; }
.blog-sidepost:last-child{ border-bottom:0; padding-bottom:0; }
.blog-sidepost .blog-tagline{ margin-bottom:11px; }

/* branded cover (gradient + topic icon, per category) */
.blog-cover{ position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden;
  border-radius:16px; aspect-ratio:16/10; box-shadow:var(--shadow-sm);
  transition:box-shadow .22s var(--ease-out); }
.blog-cover .cv-icon{ position:relative; z-index:2; color:#fff; opacity:.96;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.22)); transition:transform .26s var(--ease-out); }
.blog-cover .cv-wm{ position:absolute; right:-14px; bottom:-22px; z-index:1; color:#fff; opacity:.12; }
.blog-cover > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.blog-cover-img::after{ background:linear-gradient(180deg, rgba(6,33,63,0) 55%, rgba(6,33,63,.28) 100%); }
.blog-cover::after{ content:""; position:absolute; inset:0; z-index:1;
  background:radial-gradient(120% 90% at 22% 12%, rgba(255,255,255,.16), transparent 55%); }
.blog-tag{ position:absolute; top:14px; left:14px; z-index:3; display:inline-flex; align-items:center;
  font-family:var(--font-sans); font-weight:800; font-size:10.5px; letter-spacing:.07em; text-transform:uppercase;
  padding:6px 12px; border-radius:999px; background:rgba(255,255,255,.93); color:var(--md-principale);
  box-shadow:0 4px 12px rgba(20,46,86,.16); }
.cv-sentenze{ background:linear-gradient(150deg,#123f76 0%,#00244D 80%); }
.cv-guide{ background:linear-gradient(150deg,#2F73C2 0%,#0A3A6B 82%); }
.cv-fiscali{ background:linear-gradient(150deg,#E68A40 0%,#B85722 84%); }
.cv-suggerimenti{ background:linear-gradient(150deg,#1F9A8F 0%,#0C5B54 84%); }
.cv-news{ background:linear-gradient(150deg,#62809C 0%,#3A536F 84%); }

/* category-coloured eyebrow used on text-only side posts */
.blog-tagline{ font-family:var(--font-sans); font-weight:800; font-size:11px; letter-spacing:.09em;
  text-transform:uppercase; display:inline-flex; align-items:center; gap:8px; }
.blog-tagline .dot{ width:7px; height:7px; border-radius:999px; flex:none; }
.tl-sentenze{ color:#1c4f8a; } .tl-sentenze .dot{ background:#1c4f8a; }
.tl-guide{ color:#0A3A6B; } .tl-guide .dot{ background:#2F73C2; }
.tl-fiscali{ color:#B85722; } .tl-fiscali .dot{ background:#E68A40; }
.tl-suggerimenti{ color:#0C5B54; } .tl-suggerimenti .dot{ background:#1F9A8F; }
.tl-news{ color:#3A536F; } .tl-news .dot{ background:#62809C; }

/* titles / excerpt / read-more */
.blog-title{ font-family:var(--font-sans); font-weight:900; line-height:1.18; letter-spacing:.002em;
  text-transform:uppercase; color:var(--md-principale); text-wrap:pretty; }
.blog-title a{ transition:color .16s var(--ease-out); }
.blog-title a:hover{ color:var(--accent); }
.blog-excerpt{ font-size:14.5px; font-weight:500; line-height:1.6; color:var(--md-testo); margin-top:12px; }
.blog-readmore{ display:inline-flex; align-items:center; gap:7px; margin-top:18px;
  font-family:var(--font-sans); font-weight:800; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent); }
.blog-readmore .lucide{ transition:transform .18s var(--ease-out); }
.blog-readmore:hover .lucide{ transform:translateX(3px); }

.blog-lead .blog-title{ font-size:25px; margin-top:22px; }
.blog-sidepost .blog-title{ font-size:18.5px; }

/* filter bar */
.blog-filterbar{ display:flex; flex-wrap:wrap; gap:4px 30px; align-items:center;
  padding-top:30px; border-top:1px solid var(--border); }
.blog-filter{ font-family:var(--font-sans); font-weight:800; font-size:12.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--md-principale-70); background:none; border:0; cursor:pointer;
  padding:9px 0; position:relative; transition:color .16s var(--ease-out); }
.blog-filter:hover{ color:var(--accent); }
.blog-filter.on{ color:var(--accent); }
.blog-filter.on::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--accent); border-radius:2px; }

/* article grid */
.blog-sec{ padding:34px 0 100px; }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px 30px; margin-top:42px; }
.blog-card{ display:flex; flex-direction:column; background:var(--surface, #fff); border:1px solid var(--border);
  border-radius:18px; overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .22s var(--ease-out), box-shadow .22s var(--ease-out); }
.blog-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.blog-card .blog-cover{ border-radius:0; box-shadow:none; cursor:pointer; }
.blog-card-body{ display:flex; flex-direction:column; flex:1; padding:26px 26px 28px; }
.blog-card .blog-title{ font-size:17.5px; margin-top:0; }
.blog-card .blog-excerpt{ margin-top:13px; }
.blog-card .blog-readmore{ margin-top:auto; padding-top:20px; }
.blog-card:hover .blog-cover .cv-icon{ transform:scale(1.07); }
.blog-loadmore{ grid-column:1 / -1; display:flex; align-items:center; justify-content:center; gap:12px;
  margin-top:44px; font-family:var(--font-sans); font-weight:700; font-size:13px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--md-principale-70); }
.blog-spinner{ width:20px; height:20px; border-radius:50%; border:2.5px solid var(--border);
  border-top-color:var(--accent); animation:blog-spin .7s linear infinite; }
@keyframes blog-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .blog-spinner{ animation-duration:1.6s; } }

/* dark theme */
[data-theme="dark"] .blog-hero{ background:linear-gradient(180deg,#10141A 0%,#14181E 100%); }
[data-theme="dark"] .blog-hero::after{ display:none; }
[data-theme="dark"] .blog-feat-card{ background:#1E2530; border-color:#2E3744; box-shadow:0 18px 44px rgba(0,0,0,.4); }
[data-theme="dark"] .blog-card{ background:#1E2530; border-color:#2E3744; box-shadow:0 6px 20px rgba(0,0,0,.32); }
[data-theme="dark"] .blog-card:hover{ box-shadow:0 18px 44px rgba(0,0,0,.46); }
[data-theme="dark"] .blog-feat-head{ border-bottom-color:#2E3744; }
[data-theme="dark"] .seg{ background:#1E2530; }
[data-theme="dark"] .seg button.on{ background:#2A323D; }
[data-theme="dark"] .blog-tag{ background:rgba(18,24,32,.86); color:#E4E8ED; }
[data-theme="dark"] .blog-filterbar{ border-top-color:#2E3744; }
[data-theme="dark"] .blog-sidepost{ border-bottom-color:#2E3744; }
[data-theme="dark"] .tl-sentenze{ color:#7FB0E8; } [data-theme="dark"] .tl-guide{ color:#7FB0E8; }
[data-theme="dark"] .tl-fiscali{ color:#E89B5E; } [data-theme="dark"] .tl-suggerimenti{ color:#4FC3B6; }
[data-theme="dark"] .tl-news{ color:#9FB3C9; }

@media (max-width:980px){
  .blog-feat-grid{ grid-template-columns:1fr; gap:36px; }
  .blog-grid{ grid-template-columns:repeat(2,1fr); }
  .blog-hero h1{ font-size:33px; }
}
@media (max-width:620px){
  .blog-grid{ grid-template-columns:1fr; }
  .blog-hero-in{ padding-top:128px; }
  .blog-hero h1{ font-size:28px; }
}

/* ============================================================================
   ARTICLE — single post
   ========================================================================= */
.art-hero{ margin-top:76px; background:var(--md-blu-multi); position:relative; overflow:hidden; }.art-hero-in{ padding-top:52px; padding-bottom:48px; position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,1fr) 336px; }
.art-hero-head{ grid-column:1; }
.art-hero h1{ font-family:var(--font-sans); font-weight:900; font-size:30px; line-height:1.2;
  letter-spacing:.004em; text-transform:uppercase; color:#fff; max-width:62ch; }
.art-meta{ display:flex; flex-wrap:wrap; gap:14px 26px; margin-top:20px; }
.art-meta span{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:rgba(255,255,255,.82); }
.art-meta .lucide{ color:var(--accent); }

.art-wrap{ padding-top:56px; }
.art-grid{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,1fr) 336px; gap:0; align-items:start; }
.art-main{ min-width:0; grid-column:1; }

/* lead abstract */
.art-lead{ border-left:3px solid var(--accent); padding:0 0 0 24px; margin-bottom:30px; }
.art-lead p{ font-size:16px; line-height:1.5; font-weight:500; color:var(--md-principale-90); letter-spacing:.002em; }
.art-lead .ref, .art-body .ref{ color:var(--accent); font-weight:700; font-style:normal; }

/* featured cover */
.art-figure{ margin:0 0 6px; }
.art-figure .blog-cover{ aspect-ratio:16/9; border-radius:16px; }
.art-figure .cv-icon{ width:72px; height:72px; }

/* audio player */
.art-audio{ display:flex; align-items:center; gap:14px; padding:11px 16px; border:1px solid var(--border);
  border-radius:12px; background:var(--md-soft-gray); margin-top:18px; }
.art-audio .ap-play{ width:38px; height:38px; flex:none; border-radius:999px; border:0; cursor:pointer;
  background:var(--md-principale); color:#fff; display:grid; place-items:center; transition:background .15s var(--ease-out); }
.art-audio .ap-play:hover{ background:var(--accent); }
.art-audio .ap-play .lucide{ margin-left:1px; }
.art-audio .ap-time{ font-size:12.5px; font-weight:700; color:var(--md-principale); font-variant-numeric:tabular-nums; white-space:nowrap; }
.art-audio .ap-bar{ position:relative; flex:1; height:5px; border-radius:999px; background:var(--border); }
.art-audio .ap-bar i{ position:absolute; left:0; top:0; bottom:0; width:9%; border-radius:999px; background:var(--accent); }
.art-audio .ap-bar i::after{ content:""; position:absolute; right:-5px; top:50%; transform:translateY(-50%);
  width:12px; height:12px; border-radius:999px; background:var(--accent); box-shadow:0 1px 4px rgba(0,0,0,.25); }
.art-audio .ap-vol{ color:var(--md-principale-70); display:inline-flex; }
.art-cap{ font-size:13px; font-style:italic; color:var(--fg-muted); margin-top:11px; }

/* body typography */
.art-body{ margin-top:36px; }
.art-body h2{ font-family:var(--font-sans); font-weight:900; font-size:25px; line-height:1.22;
  letter-spacing:-.004em; color:var(--md-principale); margin-top:44px; text-wrap:balance; }
.art-body h2:first-child{ margin-top:0; }
.art-body h3{ font-family:var(--font-sans); font-weight:800; font-size:17.5px; line-height:1.3;
  color:var(--md-principale); margin-top:32px; }
.art-body p{ font-size:16px; font-weight:500; line-height:1.72; color:var(--md-testo); margin-top:18px; }
.art-body strong, .art-body b{ color:var(--md-principale); font-weight:800; }
.art-body ul, .art-body ol{ margin-top:18px; list-style:none; display:flex; flex-direction:column; gap:15px; }
.art-body ul li{ position:relative; padding-left:26px; font-size:16px; font-weight:500; line-height:1.62; color:var(--md-testo); }
.art-body ul li::before{ content:""; position:absolute; left:3px; top:9px; width:8px; height:8px; border-radius:2px;
  background:var(--accent); transform:rotate(45deg); }
.art-body ol{ counter-reset:artol; }
.art-body ol li{ position:relative; padding-left:38px; font-size:16px; font-weight:500; line-height:1.62; color:var(--md-testo); counter-increment:artol; }
.art-body ol li::before{ content:counter(artol); position:absolute; left:0; top:1px; width:24px; height:24px;
  border-radius:999px; background:var(--md-soft-bkg); color:var(--accent); font-family:var(--font-sans);
  font-weight:800; font-size:12.5px; display:grid; place-items:center; }
.art-body li b{ color:var(--md-principale); font-weight:800; }

/* references */
.art-refs{ margin-top:16px; display:flex; flex-direction:column; gap:8px; }
.art-ref{ display:flex; gap:10px; font-size:13.5px; line-height:1.45; color:var(--md-testo); }
.art-ref .rn{ flex:none; min-width:24px; color:var(--fg-muted); font-weight:500; font-size:12px; }
.art-ref .rb{ color:var(--md-principale-90); font-weight:600; }
.art-ref .rt{ color:var(--md-testo); }
.art-ref a{ color:var(--accent); font-weight:700; }
.art-ref a:hover{ color:var(--accent-hover); }

/* promo banner */
.art-promo{ position:relative; overflow:hidden; background:var(--md-blu-multi); border-radius:18px; margin-top:48px;
  display:flex; flex-wrap:wrap; align-items:center; gap:20px 30px; padding:26px 40px; }
.art-promo-photo{ flex:0 0 auto; align-self:stretch; width:210px; min-height:154px; position:relative;
  margin:-26px 0 -26px -40px; }
.art-promo-photo img{ position:absolute; left:0; bottom:0; width:100%; height:100%; max-width:none;
  object-fit:contain; object-position:left bottom; z-index:1; }
.art-promo h3{ flex:1 1 220px; font-family:var(--font-sans); font-weight:900; font-size:clamp(19px, 1.9vw, 25px);
  line-height:1.12; text-transform:uppercase; letter-spacing:.004em; color:#fff; }
.art-promo .btn{ flex:0 0 auto; white-space:nowrap; }
@media (max-width:900px){
  .art-promo{ flex-direction:column; align-items:flex-start; text-align:left; gap:15px; padding:0 32px 30px; }
  .art-promo-photo{ width:calc(100% + 64px); aspect-ratio:867 / 650; min-height:0; align-self:flex-start; margin:0 -32px; }
  .art-promo h3{ flex:none; font-size:18px; line-height:1.16; text-wrap:balance; }
  .art-promo .btn{ flex:none; }
}

/* sidebar */
.art-side{ grid-column:3; position:sticky; top:96px; display:flex; flex-direction:column; gap:30px; }
.art-share{ display:flex; align-items:center; gap:18px; padding:20px 0 22px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.art-share .lbl{ font-family:var(--font-sans); font-weight:800; font-size:13px; letter-spacing:.06em;
  text-transform:uppercase; margin-right:auto;
  background:linear-gradient(90deg,var(--accent) 0%,var(--md-blu-multi) 62%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.art-share a{ flex:none; display:inline-flex; color:var(--md-principale); transition:color .15s var(--ease-out); }
.art-share a:hover{ color:var(--accent); }
.art-share a svg{ width:18px; height:18px; display:block; }
.art-related h4{ font-family:var(--font-sans); font-weight:800; font-size:13px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--accent); margin-bottom:8px; }
.art-rel{ display:flex; gap:14px; align-items:center; padding:16px 0; border-bottom:1px solid var(--border); }
.art-rel .blog-cover{ width:104px; height:74px; flex:none; aspect-ratio:auto; border-radius:10px; box-shadow:none; }
.art-rel .blog-cover .cv-icon{ width:26px; height:26px; }
.art-rel .blog-cover .cv-wm{ display:none; }
.art-rel h5{ font-family:var(--font-sans); font-weight:600; font-size:12px; line-height:1.35;
  text-transform:none; color:var(--md-principale); }
.art-rel:hover h5{ color:var(--accent); }

/* prev / next */
.art-nav{ background:var(--md-soft-gray); border-top:1px solid var(--border); margin-top:80px; }
.art-nav-in{ display:flex; align-items:flex-start; justify-content:space-between; gap:40px; padding-top:28px; padding-bottom:28px; }
.art-nav a{ display:flex; flex-direction:column; gap:7px; max-width:46%; }
.art-nav .next{ margin-left:auto; text-align:right; align-items:flex-end; }
.art-nav .lab{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-sans); font-weight:700;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.art-nav .ttl{ font-family:var(--font-sans); font-weight:600; font-size:14.5px; line-height:1.42;
  text-transform:none; color:var(--md-principale); text-wrap:pretty; }
.art-nav a:hover .ttl{ color:var(--accent); }

/* dark theme */
[data-theme="dark"] .art-hero{ background:#0B1B33; }
[data-theme="dark"] .art-audio{ background:#1E2530; border-color:#2E3744; }
[data-theme="dark"] .art-audio .ap-play{ background:#2A323D; }
[data-theme="dark"] .art-audio .ap-bar{ background:#2E3744; }
[data-theme="dark"] .art-body ol li::before, [data-theme="dark"] .art-promo-photo .circ{ }
[data-theme="dark"] .art-share{ border-bottom-color:#2E3744; }
[data-theme="dark"] .art-share a{ border-color:#2E3744; }
[data-theme="dark"] .art-rel{ border-bottom-color:#2E3744; }
[data-theme="dark"] .art-promo{ background:#0B1B33; }
[data-theme="dark"] .art-nav{ background:#161B22; border-top-color:#2E3744; }

@media (max-width:980px){
  .art-grid{ grid-template-columns:1fr; gap:48px; }
  .art-hero-in{ grid-template-columns:1fr; }
  .art-main, .art-side, .art-hero-head{ grid-column:auto; }
  .art-side{ position:static; }
  .art-hero h1{ font-size:24px; }
}

/* ===================================================================
   Multinvio — pinned scroll flow (3 scenes)
   =================================================================== */
.mvf{ position:relative; height:560vh; background:linear-gradient(180deg,#FFFDFB 0%,#FFF7F1 50%,#FFFDFB 100%); }
.mvf-pin{ position:sticky; top:0; height:100vh; display:flex; flex-direction:column; align-items:center;
  justify-content:center; overflow:hidden; }
.mvf-pin::before{ content:""; position:absolute; left:-10%; top:6%; width:46%; height:50%;
  background:radial-gradient(circle, rgba(241,89,0,.10), transparent 68%); pointer-events:none; }

.mvf-head{ position:absolute; top:9vh; left:0; right:0; text-align:center; padding:0 24px; z-index:3; }
.mvf-head .mv-eyebrow{ display:inline-block; }
.mvf-cap{ position:relative; height:1.35em; margin-top:10px; }
.mvf-cap-line{ position:absolute; left:0; right:0; margin:0; opacity:0; transform:translateY(14px);
  transition:opacity .8s cubic-bezier(.4,0,.2,1), transform .8s cubic-bezier(.4,0,.2,1); }
.mvf-cap-line.on{ opacity:1; transform:translateY(0); }
.mvf-cap-n{ color:var(--accent); font-weight:900; margin-right:.5em; }

.mvf-stage{ position:relative; width:min(820px,92vw); height:62vh; }
.mvf-scene{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(.97); transition:opacity .9s cubic-bezier(.4,0,.2,1), transform .9s cubic-bezier(.4,0,.2,1); pointer-events:none; }
.mvf-scene.on{ opacity:1; transform:scale(1); }
.mvf-scene-in{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; }

.mvf-steps{ position:absolute; bottom:7vh; display:flex; gap:11px; z-index:3; }
.mvf-step{ width:34px; height:4px; border-radius:3px; background:rgba(31,42,55,.16); transition:background .4s; }
.mvf-step.done{ background:rgba(241,89,0,.4); }
.mvf-step.on{ background:var(--accent); }

/* — Scene 1: tablet — */
.mvf-tablet-wrap{ perspective:1500px; }
.mvf-tablet{ width:min(620px,88vw); border-radius:26px; background:#0e2742; padding:14px;
  box-shadow:0 40px 80px rgba(14,39,66,.30); transform:rotateX(7deg) rotateY(-9deg);
  animation:mvfTabletIn .7s cubic-bezier(.2,.7,.3,1) both; }
@keyframes mvfTabletIn{ from{ opacity:0; transform:rotateX(13deg) rotateY(-14deg) translateY(26px); } }
.mvf-tablet-bar{ display:flex; align-items:center; gap:12px; padding:6px 10px 12px; }
.mvf-dots{ display:flex; gap:6px; }
.mvf-dots i{ width:9px; height:9px; border-radius:50%; background:#3a557a; }
.mvf-tablet-title{ color:#cdd9e8; font-size:13px; font-weight:600; }
.mvf-tablet-body{ background:#eef2f6; border-radius:14px; padding:26px 28px 30px; position:relative; }
.mvf-ey{ color:var(--accent); font-weight:800; font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.mvf-skel{ height:11px; border-radius:6px; margin-top:13px; background:linear-gradient(90deg,#dde4ec 30%,#e9eef4 50%,#dde4ec 70%);
  background-size:200% 100%; animation:mvfShimmer 1.6s linear infinite; }
.mvf-skel.s1{ width:88%; } .mvf-skel.s2{ width:74%; } .mvf-skel.s3{ width:46%; }
@keyframes mvfShimmer{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }
.mvf-file{ display:flex; align-items:center; gap:14px; background:#fff; border-radius:12px; padding:15px 18px;
  margin-top:22px; box-shadow:0 8px 22px rgba(14,39,66,.08); animation:mvfRise .6s .25s both; }
.mvf-file-ic{ width:40px; height:40px; flex:none; border-radius:10px; display:grid; place-items:center;
  background:var(--md-secondario-soft); color:var(--accent); }
.mvf-file-name{ font-weight:800; color:var(--md-principale); font-size:15px; }
.mvf-file-sub{ color:#8a97a6; font-size:13px; margin-top:2px; }
.mvf-send-wrap{ position:relative; display:flex; justify-content:center; margin-top:26px; }
.mvf-send{ display:inline-flex; align-items:center; gap:9px; background:var(--accent); color:#fff;
  border:none; font-family:var(--font-sans); font-weight:800; font-size:16px; padding:13px 30px; border-radius:999px;
  box-shadow:0 12px 24px rgba(217,106,43,.34); animation:mvfPress 1.6s ease-out .9s infinite; }
@keyframes mvfPress{ 0%,60%,100%{ transform:scale(1); } 68%{ transform:scale(.93); } 76%{ transform:scale(1); } }
.mvf-ring{ position:absolute; top:50%; left:50%; width:130px; height:54px; transform:translate(-50%,-50%);
  border:2px solid var(--accent); border-radius:999px; opacity:0; animation:mvfRing 1.6s ease-out .9s infinite; }
@keyframes mvfRing{ 0%{ transform:translate(-50%,-50%) scale(.85); opacity:0; } 30%{ opacity:.5; }
  100%{ transform:translate(-50%,-50%) scale(1.55); opacity:0; } }
.mvf-cursor{ position:absolute; color:var(--md-principale); filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));
  left:54%; top:6px; animation:mvfCursor 1.6s ease-in-out .3s infinite; }
@keyframes mvfCursor{ 0%{ transform:translate(54px,40px); opacity:0; } 16%{ opacity:1; }
  52%{ transform:translate(6px,4px); } 64%{ transform:translate(6px,4px) scale(.8); }
  74%{ transform:translate(6px,4px) scale(1); } 100%{ transform:translate(6px,4px); } }

/* — Scene 2: hub — */
.mvf-hub{ position:relative; width:720px; max-width:96%; aspect-ratio:720/460; }
.mvf-hub-svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.mvf-line{ fill:none; stroke:var(--accent); stroke-width:2; opacity:.55; stroke-linecap:round;
  stroke-dasharray:300; stroke-dashoffset:300; animation:mvfDraw .75s ease forwards; }
@keyframes mvfDraw{ to{ stroke-dashoffset:0; } }
.mvf-flow-dot{ fill:var(--accent-strong); filter:drop-shadow(0 0 5px rgba(241,89,0,.6)); }
.mvf-node{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:128px; height:128px;
  border-radius:50%; background:radial-gradient(circle at 50% 38%,#12345e,#00244D); color:#fff;
  display:grid; place-items:center; font-weight:800; font-size:15px; letter-spacing:.01em;
  box-shadow:0 0 0 10px rgba(0,36,77,.07), 0 18px 40px rgba(0,36,77,.32); z-index:2;
  animation:mvfNode .6s cubic-bezier(.2,.8,.3,1.2) both; }
@keyframes mvfNode{ from{ transform:translate(-50%,-50%) scale(.5); opacity:0; } }
.mvf-node-dot{ position:absolute; top:30px; width:9px; height:9px; border-radius:50%; background:var(--accent-strong);
  box-shadow:0 0 12px rgba(241,89,0,.8); }
.mvf-card{ position:absolute; width:min(228px,40%); display:flex; align-items:center; gap:11px;
  background:#fff; border:1.5px solid rgba(217,106,43,.5); border-radius:14px; padding:12px 14px; z-index:2;
  box-shadow:0 10px 26px rgba(14,39,66,.10), 0 0 0 4px rgba(241,89,0,.05);
  animation:mvfCardIn .55s cubic-bezier(.2,.8,.3,1.1) both; }
.mvf-card.tl{ left:0; top:8%; } .mvf-card.tr{ right:0; top:8%; }
.mvf-card.bl{ left:0; bottom:8%; } .mvf-card.br{ right:0; bottom:8%; }
@keyframes mvfCardIn{ from{ opacity:0; transform:scale(.8); } }
.mvf-card-ic{ width:38px; height:38px; flex:none; border-radius:10px; display:grid; place-items:center;
  background:var(--accent); color:#fff; }
.mvf-card-txt{ flex:1; min-width:0; }
.mvf-card-t{ font-weight:800; color:var(--md-blu-multi); font-size:15px; }
.mvf-card-s{ color:#8a97a6; font-size:12.5px; margin-top:1px; }
.mvf-card-ok{ flex:none; color:#1f9d57; display:grid; place-items:center; animation:mvfPop .4s ease both; }
@keyframes mvfPop{ from{ transform:scale(0); opacity:0; } 60%{ transform:scale(1.25); } to{ transform:scale(1); opacity:1; } }

/* — Scene 3: report — */
.mvf-report{ width:min(700px,94%); background:#fff; border-radius:20px; padding:26px 30px 30px;
  box-shadow:0 30px 70px rgba(14,39,66,.16); animation:mvfRise .6s both; }
.mvf-rep-head{ display:flex; align-items:center; justify-content:space-between; padding-bottom:18px;
  border-bottom:1px solid var(--border); }
.mvf-rep-head h3{ font-family:var(--font-sans); font-weight:900; font-size:20px; color:var(--md-principale); margin:0; }
.mvf-rep-live{ display:inline-flex; align-items:center; gap:7px; color:#1f9d57; font-weight:700; font-size:13px; }
.mvf-rep-live i{ width:8px; height:8px; border-radius:50%; background:#1f9d57; animation:mvfBlink 1.4s ease-in-out infinite; }
@keyframes mvfBlink{ 50%{ opacity:.3; } }
.mvf-rep-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:20px 0 8px; }
.mvf-stat{ border:1px solid var(--border); border-radius:14px; padding:14px 16px; }
.mvf-stat-l{ font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9aa5b1; }
.mvf-stat-v{ font-family:var(--font-sans); font-weight:900; font-size:34px; line-height:1.1; margin-top:6px; }
.mvf-stat-v.navy{ color:var(--md-principale); } .mvf-stat-v.orange{ color:var(--accent); } .mvf-stat-v.green{ color:#1f9d57; }
.mvf-rep-row{ display:grid; grid-template-columns:1fr 150px 24px; align-items:center; gap:16px;
  padding:14px 0; border-top:1px solid var(--border); }
.mvf-rep-t{ font-weight:800; color:var(--md-principale); font-size:15px; }
.mvf-rep-s{ color:#9aa5b1; font-size:13px; margin-top:2px; }
.mvf-rep-bar{ height:8px; border-radius:5px; background:#eef2f6; overflow:hidden; }
.mvf-rep-bar span{ display:block; height:100%; width:0; border-radius:5px;
  background:linear-gradient(90deg,var(--accent),var(--accent-strong)); transition:width .9s cubic-bezier(.3,.7,.3,1); }
.mvf-rep-ok{ color:#1f9d57; display:grid; place-items:center; animation:mvfPop .4s ease both; }

@keyframes mvfRise{ from{ opacity:0; transform:translateY(22px); } }

@media (max-width:760px){
  .mvf{ height:480vh; }
  .mvf-cap-line{ font-size:19px; }
  .mvf-stage{ height:58vh; }
  .mvf-card{ width:44%; padding:9px 10px; }
  .mvf-card-s{ display:none; }
  .mvf-node{ width:92px; height:92px; font-size:12px; }
  .mvf-rep-stats{ gap:8px; }
  .mvf-stat{ padding:10px; }
  .mvf-stat-v{ font-size:24px; }
  .mvf-rep-row{ grid-template-columns:1fr 90px 20px; gap:10px; }
}
@media (prefers-reduced-motion:reduce){
  .mvf-skel, .mvf-send, .mvf-ring, .mvf-cursor, .mvf-flow-dot, .mvf-rep-live i{ animation:none; }
  .mvf-cursor{ opacity:1; transform:translate(6px,4px); }
}

/* ============================================================================
   Override del sito Multidialogo applicati SOPRA il pages.css del DS.
   Vengono appesi a ds-body.css dalla build (build.js). Gestiti a mano qui,
   così sopravvivono alla rigenerazione del CSS dal kit.
   (Il chrome e la fondazione del tema scuro stanno in site-chrome.css.)
   ========================================================================== */

/* Container "fluid": larghezza piena, padding 8% desktop / 5% mobile,
   allineato all'header (.hdr-in). */
.ip { --page-maxw: none; --page-pad: 8%; }
@media (max-width: 768px) { .ip { --page-pad: 5%; } }

/* Hero "Chi siamo": su mobile niente video di sfondo, solo testo su fondo chiaro. */
@media (max-width: 980px) {
  .cs-hero { min-height: auto; background: var(--md-soft-white, #FAFAF8); }
  .cs-hero-bg { display: none; }
  .cs-hero .ip-hero-in { padding: 118px 0 64px; }
  .cs-hero-content { opacity: 1; transform: none; }
  .cs-hero-text { max-width: none; }
}

/* Tema scuro: card/sezioni con sfondo bianco fisso nel kit -> superfici scure. */
[data-theme="dark"] .mav-hero,
[data-theme="dark"] .mav-slider { background: #14181E; }
[data-theme="dark"] .num-panel,
[data-theme="dark"] .price-card,
[data-theme="dark"] .tcard-front,
[data-theme="dark"] .btn-pill-outline,
[data-theme="dark"] .mp-voucher,
[data-theme="dark"] .mp-stat,
[data-theme="dark"] .mp-step,
[data-theme="dark"] .mp-cat,
[data-theme="dark"] .mp-tier,
[data-theme="dark"] .mp-path { background: #1E2530; border-color: #2E3744; }

/* Slider Multinvio: card centrata con l'immagine intera come sfondo.
   La card è 16:9 = stesso rapporto delle immagini (1920x1080) -> "cover"
   le mostra per intero, senza tagli. Testo a sinistra (spazio libero). */
.slider-cover { background: var(--md-soft-gray, #F1F3F5); padding: 64px 0; }
.slider-card {
  max-width: 1040px; margin: 0 auto;
  aspect-ratio: 16 / 9;
  border-radius: 24px; overflow: hidden;
  box-shadow: var(--shadow-lg);
  background-size: cover; background-position: center; background-repeat: no-repeat;
  display: flex; align-items: center;
  padding: clamp(28px, 5vw, 60px);
}
.slider-card .slider-text { max-width: 52%; margin: 0; }
.slider-card .slider-text p { max-width: none; }
@media (max-width: 768px) {
  .slider-cover { padding: 32px 0; }
  .slider-card { aspect-ratio: 4 / 3; padding: 22px; align-items: flex-start; }
  .slider-card .slider-text { max-width: 100%; }
}

/* Pulsante "slide successiva": mostra il titolo della prossima opzione + freccia
   animata, così l'utente capisce che può scegliere tra più opzioni. */
.slider-card { position: relative; }
.slider-next {
  position: absolute; right: clamp(16px, 4%, 44px); top: 50%; transform: translateY(-50%);
  display: inline-flex; align-items: center; gap: 10px; max-width: 300px;
  background: rgba(255,255,255,.85); backdrop-filter: blur(4px);
  border: 1px solid var(--border); border-radius: 999px;
  padding: 13px 20px; cursor: pointer; text-align: left;
  font-family: var(--font-sans); font-weight: 800; font-size: 14px; color: var(--md-principale);
  box-shadow: var(--shadow-md); transition: background .14s, box-shadow .14s;
}
.slider-next:hover { background: #fff; box-shadow: var(--shadow-lg); }
.slider-next > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.slider-next .lucide { flex: none; color: var(--accent); animation: snpArrow 1.1s ease-in-out infinite; }
@keyframes snpArrow { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@media (max-width: 768px) {
  .slider-next { position: static; transform: none; margin-top: 18px; max-width: 100%; }
}

/* Card Multinvio: niente frecce laterali, pallini dentro la card (in basso a sinistra). */
.slider-card .slider-dots { position: absolute; left: clamp(28px, 5vw, 60px); bottom: 22px; margin: 0; }

/* Multipremio — riflesso "metallico" SOLO sulle tessere Fidelity interne (.mp-card-art:
   le card grafiche Base / Silver / Gold dentro ogni card prezzo .mp-tier).
   Passando il mouse sulla card, una banda di luce bianca attraversa in diagonale la
   tessera, come un bagliore che scivola sul metallo.
   .mp-card-art ha già overflow:hidden + border-radius -> la banda viene clippata alla
   tessera. Uso ::before perché il kit usa già ::after per il gloss statico; resta sotto
   ai contenuti (logo/nome), che hanno z-index:1. */
.mp-card-art::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(115deg,
    transparent 32%,
    rgba(255, 255, 255, .45) 46%,
    rgba(255, 255, 255, .85) 50%,
    rgba(255, 255, 255, .45) 54%,
    transparent 68%);
  background-size: 250% 100%;
  background-position: 160% 0;   /* riflesso parcheggiato fuori, a destra */
  opacity: 0;
}
.mp-tier:hover .mp-card-art::before {
  opacity: 1;
  background-position: -60% 0;   /* la luce attraversa la tessera da destra a sinistra */
  transition: background-position .8s var(--ease-out), opacity .2s ease;
}
