/* ─────────────────────────────────────────
   PIELLE YOUNG — stylesheet
   Navy / powder blue / orange academy system
   ───────────────────────────────────────── */

:root{
  /* Palette piellelivorno.it — light blue + navy + giallo */
  --navy: #1E5BA8;
  --navy-deep: #103E7E;
  --navy-800: #18509A;
  --royal: #3A7BD5;
  --sky: #5AA0E8;
  --powder: #B4D2EE;
  --powder-soft: #E3EEFA;
  --yellow: #FFC93C;
  --yellow-deep: #F5B400;
  --cream: #FFFFFF;
  --paper: #F4F8FD;
  --ink: #103E7E;
  --muted: #5A6B85;
  --line: rgba(16,62,126,.12);
  --accent: var(--yellow);
  --accent-deep: var(--yellow-deep);
  --maxw: 1280px;
  --r: 14px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  font-family:'Inter Tight', system-ui, sans-serif;
  background:var(--cream);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
  overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; cursor:pointer; border:0; background:none; color:inherit}

.display{font-family:'Anton', Impact, sans-serif; letter-spacing:.01em; line-height:.92; text-transform:uppercase}
.mono{font-family:'JetBrains Mono', ui-monospace, monospace}

/* ── layout ── */
.container{max-width:var(--maxw); margin:0 auto; padding:0 24px}
@media (max-width:640px){ .container{padding:0 18px} }

.section-label{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono', monospace; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted);
}
.section-label::before{
  content:""; width:28px; height:1px; background:currentColor; opacity:.6;
}
.section-num{
  font-family:'JetBrains Mono', monospace; font-size:11px;
  color:var(--muted); letter-spacing:.1em;
}

/* ── buttons ── */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 22px; border-radius:999px;
  font-weight:700; font-size:15px; letter-spacing:.01em;
  transition:transform .15s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--accent); color:var(--ink); box-shadow:0 8px 20px -8px rgba(245,180,0,.5)}
.btn-primary:hover{background:var(--accent-deep); color:var(--ink)}
.btn-ghost{background:transparent; color:var(--ink); border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--ink); background:var(--ink); color:var(--cream)}
.btn-navy{background:var(--navy); color:#fff}
.btn-navy:hover{background:var(--navy-deep)}
.btn-white{background:#fff; color:var(--navy)}
.btn-white:hover{background:var(--powder-soft)}
.btn-sm{padding:10px 16px; font-size:13px}
.btn-lg{padding:20px 28px; font-size:16px}

/* ── header ── */
.site-header{
  position:sticky; top:0; z-index:40;
  background:rgba(255,255,255,.55);
  transition:background .35s ease, box-shadow .35s ease, border-color .35s ease;
  backdrop-filter:saturate(1.4) blur(20px);
  -webkit-backdrop-filter:saturate(1.4) blur(20px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.site-header.is-scrolled{
  background:rgba(255,255,255,.86);
  border-bottom-color:var(--line);
  box-shadow:0 8px 32px -16px rgba(16,62,126,.18);
}
/* Hero is dark, so initial header is dark-mode */
.hero ~ * .site-header,
.site-header:not(.is-scrolled){
  /* default state: dark background context (over hero) */
}
.site-header:not(.is-scrolled){
  background:linear-gradient(180deg, rgba(8,36,83,.55) 0%, rgba(8,36,83,.2) 70%, transparent 100%);
  border-bottom-color:transparent;
}
.site-header:not(.is-scrolled) .nav-links a{color:rgba(255,255,255,.85)}
.site-header:not(.is-scrolled) .nav-links a:hover{color:#fff}
.site-header:not(.is-scrolled) .nav-links a span::after{background:var(--yellow)}
.site-header:not(.is-scrolled) .brand-text b{color:#fff}
.site-header:not(.is-scrolled) .brand-text span{color:rgba(255,255,255,.55)}
.site-header:not(.is-scrolled) .nav-phone{color:rgba(255,255,255,.8); border-color:rgba(255,255,255,.18)}
.site-header:not(.is-scrolled) .nav-phone:hover{color:#fff; border-color:rgba(255,255,255,.4)}
.site-header:not(.is-scrolled) .burger{color:#fff; border-color:rgba(255,255,255,.2)}

.nav{display:flex; align-items:center; justify-content:space-between; padding:22px 0; position:relative}
.site-header.is-scrolled .nav{padding:18px 0}

/* brand with overflowing medal logo */
.brand{display:flex; align-items:center; gap:18px; text-decoration:none}
.brand-medal{
  position:relative;
  width:88px; height:88px; flex-shrink:0;
  display:grid; place-items:center;
  background:#fff; border-radius:50%;
  box-shadow:
    0 18px 40px -12px rgba(8,36,83,.55),
    0 6px 14px -4px rgba(8,36,83,.3),
    0 0 0 4px rgba(255,201,60,.0),
    inset 0 0 0 1px rgba(16,62,126,.08);
  transform:translateY(14px); /* overflow below header line */
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease;
}
.brand:hover .brand-medal{
  transform:translateY(14px) rotate(-4deg) scale(1.04);
  box-shadow:
    0 24px 48px -12px rgba(8,36,83,.65),
    0 8px 18px -4px rgba(8,36,83,.35),
    0 0 0 5px rgba(255,201,60,.45),
    inset 0 0 0 1px rgba(16,62,126,.08);
}
.brand-medal img{
  width:78%; height:78%; object-fit:contain;
}
.brand-medal-ring{
  position:absolute; inset:-4px; border-radius:50%;
  border:1px solid rgba(255,201,60,.45);
  opacity:0; transition:opacity .35s ease;
}
.site-header.is-scrolled .brand-medal{
  transform:translateY(8px) scale(.86);
}
.site-header.is-scrolled .brand-medal-ring{opacity:.7}
.brand-text{display:flex; flex-direction:column; line-height:1.05; gap:4px}
.brand-text b{
  font-family:'Anton'; font-size:26px; letter-spacing:.05em; color:var(--navy-deep);
  transition:color .3s ease;
}
.brand-text span{
  font-family:'JetBrains Mono'; font-size:11px; color:var(--muted);
  letter-spacing:.22em; text-transform:uppercase;
  transition:color .3s ease;
}

/* Premium nav links with underline reveal */
.nav-links{display:flex; gap:8px; align-items:center}
.nav-links a{
  position:relative; padding:12px 18px;
  font-weight:500; font-size:15px; letter-spacing:.02em;
  color:var(--ink); text-decoration:none;
  transition:color .2s ease;
}
.nav-links a span{position:relative; display:inline-block}
.nav-links a span::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px;
  height:2px; background:var(--navy);
  transform:scaleX(0); transform-origin:center;
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.nav-links a:hover span::after{transform:scaleX(1)}
.nav-links a:hover{color:var(--navy)}

.nav-cta{display:flex; gap:14px; align-items:center}
.nav-phone{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono'; font-size:12px; letter-spacing:.08em;
  color:var(--ink); text-decoration:none;
  padding:9px 14px; border-radius:999px;
  border:1px solid var(--line);
  transition:all .25s ease;
}
.nav-phone:hover{
  border-color:var(--navy); color:var(--navy);
  background:rgba(30,91,168,.04);
}

.burger{
  display:none; width:42px; height:42px;
  align-items:center; justify-content:center;
  border-radius:12px; border:1px solid var(--line);
  background:transparent; color:var(--ink);
  transition:all .25s;
}
@media (max-width:1020px){
  .nav-links{display:none}
}
@media (max-width:760px){
  .nav-phone{display:none}
  .burger{display:inline-flex}
  .brand-medal{width:64px; height:64px; transform:translateY(10px)}
  .brand-text b{font-size:18px}
  .brand-text span{font-size:9px}
}

/* mobile menu */
.mmenu{
  position:fixed; inset:0; z-index:60;
  background:var(--navy-deep); color:#fff;
  transform:translateY(-100%); transition:transform .35s cubic-bezier(.7,0,.2,1), visibility 0s linear .35s;
  display:flex; flex-direction:column;
  visibility:hidden; pointer-events:none;
  overflow:hidden;
}
.mmenu.open{transform:translateY(0); visibility:visible; pointer-events:auto; transition:transform .35s cubic-bezier(.7,0,.2,1), visibility 0s linear 0s}
.mmenu-head{display:flex; align-items:center; justify-content:space-between; padding:18px; border-bottom:1px solid rgba(255,255,255,.08)}
.mmenu-list{padding:16px 24px; display:flex; flex-direction:column; flex:1; overflow-y:auto; min-height:0}
.mmenu-list a{padding:12px 0; font-family:'Anton'; font-size:26px; letter-spacing:.02em; border-bottom:1px solid rgba(255,255,255,.06)}
.mmenu-foot{padding:18px 24px 24px; display:flex; flex-direction:column; gap:10px; border-top:1px solid rgba(255,255,255,.08); background:var(--navy-deep)}

/* ── hero ── */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, #1E5BA8 0%, #0F3676 45%, #082453 100%);
  color:#fff;
  isolation:isolate;
}
.hero-atmos{position:absolute; inset:0; pointer-events:none; z-index:0}
.atmos-aurora{
  position:absolute; border-radius:50%; filter:blur(80px);
  mix-blend-mode:screen; opacity:.55;
}
.atmos-aurora-1{
  width:720px; height:720px; left:-180px; top:-220px;
  background:radial-gradient(circle, rgba(90,160,232,.7), transparent 70%);
  animation:floatA 18s ease-in-out infinite;
}
.atmos-aurora-2{
  width:640px; height:640px; right:-160px; top:-100px;
  background:radial-gradient(circle, rgba(255,201,60,.45), transparent 70%);
  animation:floatB 22s ease-in-out infinite;
}
.atmos-aurora-3{
  width:880px; height:520px; left:50%; bottom:-260px; transform:translateX(-50%);
  background:radial-gradient(ellipse, rgba(180,210,238,.45), transparent 70%);
  animation:floatC 26s ease-in-out infinite;
}
@keyframes floatA{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(60px,40px)}
}
@keyframes floatB{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(-50px,30px)}
}
@keyframes floatC{
  0%,100%{transform:translateX(-50%)}
  50%{transform:translate(calc(-50% + 40px),-20px)}
}
.atmos-noise{
  position:absolute; inset:0; opacity:.06; mix-blend-mode:overlay;
  background-image:
    radial-gradient(circle at 25% 30%, rgba(255,255,255,.4) 0, transparent 1px),
    radial-gradient(circle at 75% 70%, rgba(255,255,255,.4) 0, transparent 1px),
    radial-gradient(circle at 45% 80%, rgba(255,255,255,.4) 0, transparent 1px),
    radial-gradient(circle at 90% 20%, rgba(255,255,255,.4) 0, transparent 1px);
  background-size:7px 7px, 11px 11px, 13px 13px, 9px 9px;
}
.atmos-vignette{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at center, transparent 40%, rgba(8,36,83,.6) 100%),
    linear-gradient(180deg, transparent 60%, rgba(8,36,83,.5) 100%);
}

/* court motif fades top + bottom */
.court-lines{
  position:absolute; inset:0; pointer-events:none; opacity:.32; z-index:1;
  animation:courtPulse 9s ease-in-out infinite;
}
@keyframes courtPulse{
  0%,100%{opacity:.32}
  50%{opacity:.5}
}

/* large faded watermark */
.hero-watermark{
  position:absolute;
  left:50%; top:50%; transform:translate(-50%,-50%);
  font-family:'Anton', Impact, sans-serif;
  font-size:clamp(220px, 32vw, 460px);
  letter-spacing:.04em;
  color:transparent;
  -webkit-text-stroke:1px rgba(180,210,238,.08);
  text-stroke:1px rgba(180,210,238,.08);
  pointer-events:none; user-select:none;
  white-space:nowrap; z-index:1;
}

.hero-grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1fr; gap:0;
  padding:120px 0 140px; align-items:center;
}
@media (max-width:960px){ .hero-grid{padding:80px 0 90px} }

.hero-stage{
  text-align:center; max-width:980px; margin:0 auto;
  display:flex; flex-direction:column; align-items:center;
}

.hero-eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:'JetBrains Mono'; font-size:11px; text-transform:uppercase; letter-spacing:.18em;
  background:rgba(255,255,255,.06); color:#E3EEFA;
  padding:9px 18px; border:1px solid rgba(255,255,255,.14);
  border-radius:999px; margin-bottom:36px;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  box-shadow:0 4px 20px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.08);
}
.hero-eyebrow .dot{
  width:7px; height:7px; background:var(--yellow); border-radius:50%;
  box-shadow:0 0 12px var(--yellow);
  animation:pulse 1.6s infinite;
}
.hero-eyebrow .eyebrow-sep{color:rgba(255,255,255,.3)}
.hero-eyebrow .eyebrow-loc{color:var(--yellow); letter-spacing:.2em}
@keyframes pulse{0%,100%{opacity:1; transform:scale(1)} 50%{opacity:.4; transform:scale(.7)}}

.hero h1{
  font-family:'Anton', Impact, sans-serif;
  font-size:clamp(56px, 8.4vw, 132px);
  font-weight:400; letter-spacing:.005em;
  line-height:.92;
  margin:0 0 32px;
  text-wrap:balance;
  color:#fff;
}
.hero h1 .accent{
  position:relative; display:inline-block;
}
.hero h1 .accent .accent-glow{
  position:absolute; inset:0; color:var(--yellow);
  filter:blur(28px); opacity:.55; pointer-events:none;
}
.hero h1 .accent .accent-text{
  position:relative;
  background:linear-gradient(180deg, #FFD96A 0%, var(--yellow) 50%, #E5A800 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  text-shadow:0 0 60px rgba(255,201,60,.25);
}

.hero p.lead{
  font-size:clamp(17px, 1.7vw, 21px); line-height:1.6;
  color:rgba(255,255,255,.78); max-width:640px; margin:0 0 40px;
  font-weight:400;
}
.hero p.lead b{color:#fff; font-weight:600}

.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; justify-content:center}

/* shine sweep on primary CTA */
.btn-shine{
  position:relative; overflow:hidden;
}
.btn-shine::before{
  content:""; position:absolute; top:0; bottom:0; width:35%;
  left:-50%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-20deg);
  animation:shineSweep 3.5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes shineSweep{
  0%,60%{left:-50%}
  100%{left:140%}
}

.btn-hero-ghost{
  border:1.5px solid rgba(255,255,255,.22); color:#fff !important;
  background:rgba(255,255,255,.04); backdrop-filter:blur(10px);
}
.btn-hero-ghost:hover{
  border-color:#fff; background:rgba(255,255,255,.1); color:#fff !important;
}

.hero-meta{
  margin-top:60px;
  display:inline-flex; align-items:center; gap:32px;
  padding:24px 36px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:0 12px 40px -12px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.06);
}
.meta-cell{display:flex; flex-direction:column; align-items:center; gap:6px}
.hero-meta .k{
  font-family:'Anton'; font-size:38px; line-height:1; letter-spacing:.01em;
  background:linear-gradient(180deg, #fff 0%, #B4D2EE 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero-meta .v{
  font-family:'JetBrains Mono'; font-size:10px; color:rgba(255,255,255,.55);
  text-transform:uppercase; letter-spacing:.16em;
}
.meta-divider{
  width:1px; height:36px; background:linear-gradient(180deg, transparent, rgba(255,255,255,.22), transparent);
}
@media (max-width:640px){
  .hero-meta{flex-wrap:wrap; gap:20px; padding:20px 24px}
  .meta-divider{display:none}
}

/* scroll cue at bottom */
.hero-scroll-cue{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-decoration:none; z-index:3;
}
.hero-scroll-cue .cue-line{
  width:1px; height:42px; background:linear-gradient(180deg, transparent, rgba(255,255,255,.6));
  position:relative; overflow:hidden;
}
.hero-scroll-cue .cue-line::after{
  content:""; position:absolute; top:-42px; left:0; right:0; height:42px;
  background:linear-gradient(180deg, transparent, var(--yellow));
  animation:cueDrop 2.2s ease-in-out infinite;
}
@keyframes cueDrop{
  0%{transform:translateY(0)}
  100%{transform:translateY(84px)}
}
.hero-scroll-cue .cue-label{
  font-family:'JetBrains Mono'; font-size:9px; letter-spacing:.24em;
  text-transform:uppercase; color:rgba(255,255,255,.5);
}
@media (max-width:640px){ .hero-scroll-cue{display:none} }

/* hero right — visual panel */
.hero-visual{
  position:relative; border-radius:20px; overflow:hidden;
  aspect-ratio: 4/5; background:var(--navy-800);
  border:1px solid rgba(184,203,232,.2);
}
.hero-visual .ph{
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(135deg, rgba(184,203,232,.08) 0 14px, rgba(184,203,232,.16) 14px 28px);
}
.hero-visual .ph-label{
  position:absolute; left:20px; top:20px;
  font-family:'JetBrains Mono'; font-size:11px; color:var(--powder);
  letter-spacing:.1em; text-transform:uppercase;
  background:rgba(14,20,48,.7); padding:6px 10px; border-radius:6px;
  border:1px solid rgba(184,203,232,.2);
}
.hero-visual .badge-card{
  position:absolute; right:-1px; bottom:-1px; left:auto;
  background:var(--cream); color:var(--ink);
  padding:20px 24px; border-top-left-radius:16px;
  max-width:78%;
  box-shadow:-8px -8px 30px rgba(0,0,0,.15);
}
.hero-visual .badge-card .display{font-size:28px; color:var(--navy); margin:2px 0}
.hero-visual .badge-card .sub{font-size:12px; color:var(--muted); font-family:'JetBrains Mono'; text-transform:uppercase; letter-spacing:.1em}

.hero-visual .logo-float{
  position:absolute; right:22px; top:22px; width:76px; opacity:.95;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.3));
}

.ticker{
  background:var(--navy);
  color:var(--powder);
  border-top:1px solid rgba(184,203,232,.2);
  border-bottom:1px solid rgba(184,203,232,.2);
  overflow:hidden; position:relative;
}
.ticker-track{
  display:flex; gap:48px; padding:14px 0;
  animation:marquee 28s linear infinite;
  white-space:nowrap;
  font-family:'Anton'; font-size:22px; letter-spacing:.04em; text-transform:uppercase;
}
.ticker-track span{display:inline-flex; align-items:center; gap:24px}
.ticker-track .sep{width:8px; height:8px; background:var(--accent); border-radius:50%; display:inline-block}
@keyframes marquee{from{transform:translateX(0)} to{transform:translateX(-50%)}}

/* court line motif */
.court-lines{
  position:absolute; inset:0; pointer-events:none; opacity:.12;
}

/* ── generic section ── */
section{position:relative}
.section{padding:96px 0}
@media (max-width:640px){ .section{padding:64px 0} }
.section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:48px}
@media (max-width:720px){ .section-head{flex-direction:column; align-items:flex-start} }
.section-head h2{
  font-family:'Anton'; font-size:clamp(40px, 5.5vw, 72px);
  margin:14px 0 0; line-height:.9; color:var(--ink);
  text-wrap:balance; max-width:18ch;
}
.section-head .right{max-width:420px; color:var(--muted); font-size:16px; line-height:1.55}

/* ── PERCHÉ grid ── */
.why{background:var(--cream)}
.why-grid{display:grid; grid-template-columns:repeat(12,1fr); gap:20px}
.why-card{
  grid-column:span 4;
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:28px; display:flex; flex-direction:column; gap:14px;
  min-height:240px; position:relative; transition:transform .2s ease, border-color .2s ease;
}
.why-card:hover{transform:translateY(-4px); border-color:var(--navy)}
.why-card .num{font-family:'JetBrains Mono'; font-size:11px; color:var(--muted); letter-spacing:.1em}
.why-card h3{font-family:'Anton'; font-size:28px; margin:0; color:var(--navy); line-height:1}
.why-card p{margin:0; color:var(--muted); font-size:15px; line-height:1.55}
.why-card.feature{
  grid-column:span 6; background:var(--navy); color:#fff; border-color:transparent; overflow:hidden;
}
.why-card.feature h3{color:#fff; font-size:44px}
.why-card.feature p{color:rgba(255,255,255,.7)}
.why-card.feature .num{color:var(--powder)}
.why-card .icon{
  width:44px; height:44px; border-radius:10px;
  background:var(--powder-soft); color:var(--navy);
  display:flex; align-items:center; justify-content:center;
}
.why-card.feature .icon{background:rgba(255,255,255,.1); color:var(--accent)}
@media (max-width:900px){
  .why-card, .why-card.feature{grid-column:span 12}
}

/* powered by strip */
.powered{
  background:transparent; padding:48px 0;
}
.powered-row{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px}
.powered .lbl{font-family:'JetBrains Mono'; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--powder)}
.powered .stack{display:flex; gap:28px; align-items:center; flex-wrap:wrap}
.powered .chip{
  font-family:'Anton'; font-size:22px; letter-spacing:.04em;
  padding:6px 14px; border:1px solid rgba(255,255,255,.2); border-radius:999px;
}

/* ── CATEGORIE ── */
.cat{background:var(--paper)}
.cat-head{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  margin-bottom:48px; gap:14px;
}
.cat-head h2{margin:0; max-width:none}
.cat-head .cat-sub{
  max-width:560px; color:var(--muted); font-size:16px;
  line-height:1.55; margin:0;
}
.cat-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0, 460px));
  gap:24px; justify-content:center;
}
@media (max-width:900px){ .cat-grid{grid-template-columns:1fr; max-width:460px; margin-inline:auto} }
.cat-card{
  position:relative; overflow:hidden;
  border-radius:18px; background:var(--navy); color:#fff;
  min-height:440px; display:flex; flex-direction:column; justify-content:flex-end;
  padding:28px; isolation:isolate; cursor:pointer;
  transition:transform .25s ease;
}
.cat-card:hover{transform:translateY(-6px)}
.cat-card .bg{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(14,20,48,0) 35%, rgba(14,20,48,.88) 100%),
    repeating-linear-gradient(45deg, rgba(184,203,232,.08) 0 18px, rgba(184,203,232,.18) 18px 36px);
}
.cat-card[data-i="0"] .bg{background:
    linear-gradient(180deg, rgba(16,62,126,0) 30%, rgba(16,62,126,.92) 100%),
    repeating-linear-gradient(45deg, rgba(255,201,60,.08) 0 18px, rgba(255,201,60,.2) 18px 36px),
    var(--navy)}
.cat-card[data-i="1"] .bg{background:
    linear-gradient(180deg, rgba(16,62,126,0) 30%, rgba(16,62,126,.92) 100%),
    repeating-linear-gradient(-45deg, rgba(180,210,238,.1) 0 18px, rgba(180,210,238,.25) 18px 36px),
    var(--navy-800)}
.cat-card .age{
  font-family:'JetBrains Mono'; font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--powder); margin-bottom:10px;
  display:inline-flex; align-items:center; gap:8px;
}
.cat-card h3{font-family:'Anton'; font-size:52px; line-height:.9; margin:0 0 10px}
.cat-card p{font-size:15px; color:rgba(255,255,255,.8); line-height:1.5; margin:0 0 20px; max-width:38ch}
.cat-card .arrow{
  width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.3);
  display:flex; align-items:center; justify-content:center; color:#fff;
  transition:all .2s;
}
.cat-card:hover .arrow{background:var(--accent); border-color:var(--accent); color:var(--ink); transform:translateX(4px)}
.cat-card .label-top{
  position:absolute; top:22px; left:22px; right:22px;
  display:flex; justify-content:space-between; align-items:flex-start;
  font-family:'JetBrains Mono'; font-size:11px; color:var(--powder); letter-spacing:.1em; text-transform:uppercase;
}

/* ── TARIFFE ── */
.tariffe-head{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:14px; margin-bottom:48px;
}
.tariffe-head h2{margin:0; max-width:none}
.tariffe{
  background:linear-gradient(180deg, var(--cream) 0%, var(--paper) 100%);
  position:relative; overflow:hidden;
}
.tariffe-bg-glow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 800px 400px at 20% 20%, rgba(180,210,238,.4), transparent 60%),
    radial-gradient(ellipse 600px 400px at 90% 80%, rgba(255,201,60,.18), transparent 60%);
}
.tariffe .container{position:relative; z-index:1}
.tariffe .accent-word{
  background:linear-gradient(180deg, #FFD96A 0%, var(--yellow) 50%, var(--yellow-deep) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}

.tariffe-block{margin-top:80px}
.tariffe-block:first-of-type{margin-top:64px}
.tariffe-block-head{
  display:flex; flex-direction:column; gap:14px;
  margin-bottom:32px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
}
.tariffe-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono'; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted);
}
.tariffe-eyebrow .dot{
  width:6px; height:6px; border-radius:50%; background:var(--yellow);
  box-shadow:0 0 10px var(--yellow);
}
.tariffe-block-head h3{
  font-family:'Anton'; font-size:clamp(36px, 5vw, 56px);
  letter-spacing:.02em; color:var(--navy-deep);
  line-height:.95; margin:0;
}

.tariffe-grid{
  display:grid; grid-template-columns:1.15fr 1fr; gap:28px;
  align-items:stretch;
}
@media (max-width:900px){ .tariffe-grid{grid-template-columns:1fr} }

.price-card{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:40px 36px 36px;
  display:flex; flex-direction:column; gap:24px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 24px 48px -28px rgba(16,62,126,.18);
  transition:transform .3s ease, box-shadow .3s ease;
}
.price-card:hover{
  transform:translateY(-4px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 36px 60px -28px rgba(16,62,126,.28);
}
.price-card--featured{
  background:
    radial-gradient(ellipse 600px 400px at 50% 0%, rgba(255,201,60,.12), transparent 60%),
    linear-gradient(180deg, #fff 0%, #FAFCFF 100%);
  border:1px solid rgba(255,201,60,.4);
  box-shadow:
    0 0 0 1px rgba(255,201,60,.15),
    0 1px 0 rgba(255,255,255,.8) inset,
    0 32px 60px -24px rgba(16,62,126,.25),
    0 0 60px -20px rgba(255,201,60,.4);
}
.price-card--featured::before{
  content:""; position:absolute; inset:0; border-radius:24px;
  padding:1px;
  background:linear-gradient(135deg, rgba(255,201,60,.6), rgba(30,91,168,.2), rgba(255,201,60,.4));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none;
}

.featured-ribbon{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  display:inline-flex; align-items:center; gap:6px;
  background:linear-gradient(180deg, var(--yellow) 0%, var(--yellow-deep) 100%);
  color:var(--navy-deep);
  font-family:'JetBrains Mono'; font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  padding:8px 16px; border-radius:999px;
  box-shadow:0 8px 20px -4px rgba(255,201,60,.5);
  white-space:nowrap;
}

.pc-head{display:flex; flex-direction:column; gap:6px}
.pc-name{
  font-family:'Anton'; font-size:42px; letter-spacing:.04em;
  color:var(--navy-deep); line-height:1;
}
.pc-tag{
  font-family:'JetBrains Mono'; font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted);
}

.pc-tiers{
  display:grid; grid-template-columns:1fr auto 1fr;
  gap:0; align-items:stretch;
  background:linear-gradient(180deg, rgba(180,210,238,.18), rgba(180,210,238,.06));
  border:1px solid var(--line);
  border-radius:18px;
  padding:22px 4px;
}
.pc-tiers--single{grid-template-columns:1fr; padding:22px}
.pc-tier{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:6px 16px; text-align:center;
}
.pc-tiers--single .pc-tier{flex-direction:row; justify-content:space-between; padding:0; text-align:left}
.pc-tier-label{
  display:flex; align-items:center; gap:10px;
  color:var(--muted); font-size:13px; line-height:1.2;
}
.pc-tier-label .tier-num{
  font-family:'Anton'; font-size:32px; color:var(--navy);
  line-height:1;
}
.pc-tier-price{
  display:flex; align-items:flex-start; gap:2px;
  color:var(--navy-deep);
}
.pc-tier-price .currency{
  font-family:'Anton'; font-size:24px; line-height:1; padding-top:6px;
  color:var(--muted);
}
.pc-tier-price .amount{
  font-family:'Anton'; font-size:64px; line-height:.9; letter-spacing:.01em;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.pc-tier-divider{
  width:1px;
  background:linear-gradient(180deg, transparent, var(--line), transparent);
}

.pc-yearly{
  text-align:center;
  font-family:'JetBrains Mono'; font-size:11px;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
  margin-top:-8px;
}

.pc-feats{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:14px;
}
.pc-feats li{
  display:flex; gap:12px; align-items:flex-start;
  font-size:14px; line-height:1.4;
}
.pc-check{
  flex-shrink:0; width:22px; height:22px; border-radius:50%;
  background:rgba(255,201,60,.18);
  color:var(--yellow-deep);
  display:grid; place-items:center;
  margin-top:1px;
}
.price-card--featured .pc-check{
  background:var(--yellow); color:var(--navy-deep);
}
.pc-feats li b{
  display:block; font-weight:600; color:var(--ink); font-size:14px;
  margin-bottom:2px;
}
.pc-feats li span{
  display:block;
  color:var(--muted); font-size:13px; line-height:1.4;
}

.pc-cta{
  margin-top:auto; width:100%; justify-content:center;
}

/* INFO card for giovanili */
.price-card--info{
  background:linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%);
  color:#fff; border:none;
  padding:48px;
  position:relative; overflow:hidden;
}
.price-card--info::after{
  content:""; position:absolute; right:-100px; top:-100px;
  width:400px; height:400px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,201,60,.2), transparent 70%);
  pointer-events:none;
}
.info-grid{
  display:grid; grid-template-columns:auto 1fr; gap:32px;
  align-items:center; position:relative; z-index:1;
}
@media (max-width:640px){ .info-grid{grid-template-columns:1fr; gap:20px} }
.info-icon{
  width:80px; height:80px; border-radius:50%;
  background:rgba(255,201,60,.15);
  border:1px solid rgba(255,201,60,.35);
  color:var(--yellow);
  display:grid; place-items:center;
  flex-shrink:0;
}
.price-card--info h4{
  font-family:'Anton'; font-size:32px; letter-spacing:.02em;
  color:#fff; margin:0 0 12px; line-height:1.05;
}
.price-card--info p{
  color:rgba(255,255,255,.78); font-size:15px; line-height:1.6;
  margin:0 0 22px; max-width:62ch;
}
.info-actions{display:flex; gap:12px; flex-wrap:wrap}
.price-card--info .btn-ghost{
  border-color:rgba(255,255,255,.25); color:#fff;
}
.price-card--info .btn-ghost:hover{
  background:rgba(255,255,255,.1); color:#fff; border-color:#fff;
}
.btn-md{padding:14px 22px; font-size:14px}

.tariffe-foot{
  text-align:center; margin-top:48px; font-size:11px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  padding-top:24px; border-top:1px solid var(--line);
}

@media (max-width:520px){
  .price-card{padding:32px 24px 28px}
  .price-card--info{padding:32px 24px}
  .pc-name{font-size:34px}
  .pc-tier-price .amount{font-size:48px}
  .pc-tier-label .tier-num{font-size:26px}
}

/* GIFT BANNER — abbonamento Pielle in regalo */
.gift-banner{
  position:relative;
  margin-top:64px;
  border-radius:28px;
  overflow:hidden;
  isolation:isolate;
  min-height:440px;
  display:flex; align-items:center;
  box-shadow:
    0 40px 80px -30px rgba(8,36,83,.55),
    0 0 0 1px rgba(255,201,60,.25),
    0 0 80px -20px rgba(255,201,60,.3);
}
.gift-banner-bg{
  position:absolute; inset:0; z-index:0;
  background:url('assets/curva-pielle.jpg') center/cover no-repeat;
  filter:saturate(1.05);
}
.gift-banner-overlay{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(ellipse 80% 60% at 30% 50%, rgba(8,36,83,.55) 0%, rgba(8,36,83,.85) 100%),
    linear-gradient(120deg, rgba(8,36,83,.92) 0%, rgba(16,62,126,.78) 50%, rgba(8,36,83,.95) 100%);
}
.gift-banner-grain{
  position:absolute; inset:0; z-index:2; opacity:.08;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.6) 0, transparent 1px),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,.4) 0, transparent 1px),
    radial-gradient(circle at 40% 80%, rgba(255,255,255,.5) 0, transparent 1px);
  background-size:9px 9px, 13px 13px, 11px 11px;
  mix-blend-mode:overlay;
  pointer-events:none;
}
.gift-banner-content{
  position:relative; z-index:3;
  padding:72px 56px;
  max-width:780px;
  color:#fff;
}
@media (max-width:640px){ .gift-banner-content{padding:48px 28px} }

.gift-eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:'JetBrains Mono'; font-size:12px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--yellow);
  background:rgba(255,201,60,.12);
  border:1px solid rgba(255,201,60,.4);
  padding:10px 18px; border-radius:999px;
  backdrop-filter:blur(10px);
  margin-bottom:24px;
}
.gift-spark{
  color:var(--yellow); font-size:14px;
  text-shadow:0 0 12px var(--yellow);
  animation:giftTwinkle 2s ease-in-out infinite;
}
.gift-spark:nth-child(3){animation-delay:.5s}
@keyframes giftTwinkle{
  0%,100%{opacity:1; transform:scale(1)}
  50%{opacity:.4; transform:scale(.8)}
}

.gift-headline{
  font-family:'Anton'; font-weight:400;
  font-size:clamp(56px, 8vw, 110px);
  line-height:.88; letter-spacing:.01em;
  margin:0 0 24px;
  display:flex; flex-direction:column; gap:6px;
  text-wrap:balance;
}
.gift-line-1{
  color:rgba(255,255,255,.78);
  font-size:.6em;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.gift-line-2{
  background:linear-gradient(180deg, #FFE176 0%, var(--yellow) 45%, #E5A800 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 0 80px rgba(255,201,60,.4);
  position:relative;
  display:inline-block;
}
.gift-line-3{
  color:#fff;
  font-style:italic;
  font-size:.85em;
}

.gift-sub{
  font-size:18px; line-height:1.55;
  color:rgba(255,255,255,.85);
  max-width:58ch;
  margin:0 0 36px;
}
.gift-sub b{color:#fff; font-weight:600}

.gift-meta{
  display:inline-flex; align-items:center; gap:0;
  padding:20px 32px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 12px 40px -12px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.08);
}
.gift-meta-cell{
  display:flex; flex-direction:column; align-items:center;
  gap:4px; padding:0 24px;
}
.gift-meta-cell:first-child{padding-left:0}
.gift-meta-cell:last-child{padding-right:0}
.gift-meta-k{
  font-family:'Anton'; font-size:32px; line-height:1;
  background:linear-gradient(180deg, #fff 0%, #B4D2EE 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.gift-meta-v{
  font-family:'JetBrains Mono'; font-size:10px;
  letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.55);
}
.gift-meta-divider{
  width:1px; height:36px;
  background:linear-gradient(180deg, transparent, rgba(255,255,255,.22), transparent);
}
@media (max-width:580px){
  .gift-meta{flex-wrap:wrap; gap:14px; padding:18px 22px}
  .gift-meta-divider{display:none}
  .gift-meta-cell{padding:0}
}

/* ── METODO ── */
.method{background:var(--navy-deep); color:#fff; overflow:hidden}
.method .section-head h2{color:#fff}
.method .section-head .right{color:rgba(255,255,255,.7)}
.method-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.1); border-radius:16px; overflow:hidden}
@media (max-width:900px){ .method-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:500px){ .method-grid{grid-template-columns:1fr} }
.method-cell{
  background:var(--navy-deep); padding:28px 22px 32px; min-height:200px;
  display:flex; flex-direction:column; justify-content:space-between;
  transition:background .2s;
}
.method-cell:hover{background:var(--navy-800)}
.method-cell .n{font-family:'JetBrains Mono'; font-size:11px; color:var(--powder); letter-spacing:.12em}
.method-cell h4{font-family:'Anton'; font-size:32px; margin:16px 0 8px; color:#fff; line-height:1}
.method-cell p{font-size:13px; color:rgba(255,255,255,.65); margin:0; line-height:1.5}
.method-cell .ico{color:var(--accent); margin-bottom:14px}

/* ── STAFF ── */
.staff{background:var(--cream)}
.staff-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
@media (max-width:900px){ .staff-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:500px){ .staff-grid{grid-template-columns:1fr} }
.coach{
  background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;
  transition:transform .2s;
}
.coach:hover{transform:translateY(-4px)}
.coach .ph{
  aspect-ratio: 3/4; position:relative;
  background:
    repeating-linear-gradient(135deg, rgba(30,46,100,.08) 0 10px, rgba(30,46,100,.16) 10px 20px);
}
.coach .ph-label{
  position:absolute; left:14px; top:14px;
  font-family:'JetBrains Mono'; font-size:10px;
  background:var(--navy); color:#fff; padding:4px 8px; border-radius:4px;
  letter-spacing:.08em; text-transform:uppercase;
}
.coach .body{padding:20px}
.coach h4{font-family:'Anton'; font-size:26px; margin:0 0 4px; color:var(--navy); line-height:1}
.coach .role{font-family:'JetBrains Mono'; font-size:11px; color:var(--muted); letter-spacing:.1em; text-transform:uppercase}
.coach .bio{font-size:13px; color:var(--muted); line-height:1.55; margin-top:12px}

/* ── FAQ ── */
.faq{background:var(--paper)}
.faq-list{display:grid; grid-template-columns:1fr; gap:10px; max-width:860px; margin:0 auto}
.faq-item{
  background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden;
  transition:border-color .2s;
}
.faq-item[data-open="true"]{border-color:var(--navy)}
.faq-q{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:22px 24px; text-align:left;
  font-family:'Anton'; font-size:22px; color:var(--navy); letter-spacing:.01em;
}
.faq-q .plus{
  width:32px; height:32px; border-radius:50%;
  background:var(--powder-soft); color:var(--navy);
  display:grid; place-items:center; transition:transform .25s, background .2s;
  flex-shrink:0;
}
.faq-item[data-open="true"] .plus{background:var(--accent); color:var(--ink); transform:rotate(45deg)}
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .3s ease;
  padding:0 24px; color:var(--muted); font-size:15px; line-height:1.6;
}
.faq-item[data-open="true"] .faq-a{max-height:220px; padding:0 24px 22px}

/* spinner for form submit */
.spinner{
  display:inline-block; width:16px; height:16px;
  border:2px solid rgba(255,255,255,.3); border-top-color:#fff;
  border-radius:50%; animation:spin .7s linear infinite;
  vertical-align:middle; margin-right:6px;
}
@keyframes spin{to{transform:rotate(360deg)}}
.lead-submit:disabled{opacity:.7; cursor:not-allowed}

/* ── CTA FINALE ── */
.cta-final{
  background:var(--navy); color:#fff; position:relative; overflow:hidden;
}
.cta-final-inner{
  padding:110px 0; text-align:center; position:relative; z-index:1;
}
@media (max-width:640px){ .cta-final-inner{padding:72px 0} }
.cta-final h2{
  font-family:'Anton'; font-size:clamp(48px, 8vw, 120px); line-height:.9;
  margin:0 0 22px; color:#fff;
}
.cta-final h2 .accent{color:var(--accent)}
.cta-final p{font-size:18px; color:var(--powder); max-width:540px; margin:0 auto 38px}
.cta-final .bg-lines{
  position:absolute; inset:0; z-index:0; opacity:.08;
  background:
    repeating-linear-gradient(90deg, transparent 0 100px, rgba(255,255,255,.5) 100px 101px),
    repeating-linear-gradient(0deg, transparent 0 100px, rgba(255,255,255,.5) 100px 101px);
}
.cta-final .big-ball{
  position:absolute; right:-140px; top:50%; transform:translateY(-50%);
  width:520px; height:520px; border-radius:50%;
  border:40px solid rgba(232,122,62,.08);
  pointer-events:none;
}

/* ── LEAD FORM SECTION ── */
.lead-wrap{
  background:linear-gradient(180deg, var(--cream), var(--paper));
}
.lead-grid{
  display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:stretch;
}
@media (max-width:900px){ .lead-grid{grid-template-columns:1fr; gap:36px} }
.lead-copy h2{
  font-family:'Anton'; font-size:clamp(40px, 5vw, 64px); line-height:.9; margin:14px 0 18px; color:var(--navy);
}
.lead-copy p{color:var(--muted); font-size:16px; line-height:1.6; max-width:42ch}
.lead-copy ul{padding:0; margin:28px 0 0; list-style:none; display:grid; gap:12px}
.lead-copy li{display:flex; gap:10px; align-items:flex-start; font-size:15px}
.lead-copy li svg{color:var(--accent); flex-shrink:0; margin-top:2px}

.lead-form{
  background:#fff; border:1px solid var(--line); border-radius:18px;
  padding:32px; display:flex; flex-direction:column; gap:14px;
  box-shadow:0 20px 60px -30px rgba(14,20,48,.25);
}
.lead-form .form-head{
  display:flex; justify-content:space-between; align-items:center; margin-bottom:8px;
}
.lead-form .form-head .display{font-size:30px; color:var(--navy); line-height:1}
.lead-form .form-head .tag{
  font-family:'JetBrains Mono'; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--accent); background:rgba(232,122,62,.1); padding:6px 10px; border-radius:6px;
}
.field{display:flex; flex-direction:column; gap:6px}
.field label{font-family:'JetBrains Mono'; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted)}
.field input, .field select, .field textarea{
  font:inherit; color:var(--ink);
  padding:14px 16px; border:1.5px solid var(--line); border-radius:10px;
  background:var(--cream); transition:border-color .15s, background .15s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--navy); background:#fff;
}
.row-2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media (max-width:480px){ .row-2{grid-template-columns:1fr} }
.consent{display:flex; gap:10px; font-size:12px; color:var(--muted); line-height:1.5}
.consent input{margin-top:3px}
.lead-submit{margin-top:8px}

.lead-success{
  display:flex; flex-direction:column; gap:8px; align-items:flex-start;
  padding:32px; background:#fff; border:1px solid var(--navy); border-radius:18px;
}
.lead-success .icon{
  width:52px; height:52px; border-radius:50%;
  background:var(--accent); color:var(--ink); display:grid; place-items:center; margin-bottom:8px;
}
.lead-success h3{font-family:'Anton'; font-size:34px; color:var(--navy); margin:0; line-height:1}
.lead-success p{color:var(--muted); margin:0; line-height:1.55}

/* ── FOOTER ── */
.footer{background:var(--navy-deep); color:#fff; padding:72px 0 32px}
.footer-grid{display:grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap:40px}
@media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr; gap:32px} }
@media (max-width:500px){ .footer-grid{grid-template-columns:1fr} }
.footer h5{
  font-family:'JetBrains Mono'; font-size:11px; text-transform:uppercase; letter-spacing:.14em;
  color:var(--powder); margin:0 0 18px; font-weight:500;
}
.footer ul{list-style:none; padding:0; margin:0; display:grid; gap:10px}
.footer a{color:rgba(255,255,255,.75); font-size:14px}
.footer a:hover{color:#fff}
/* Contatti list — keep icon fixed, email/text on the same row beside it */
.footer-contact li a{
  display:inline-flex; align-items:flex-start; gap:8px;
}
.footer-contact li a svg{ flex:none; margin-top:2px }
.footer-contact .footer-loc{ align-items:flex-start }
.footer-contact .footer-loc svg{ flex:none; margin-top:2px }
.footer .brand img{filter:brightness(0) invert(1) brightness(1.2); opacity:.95}

/* Premium footer brand: white circular medal so the logo is fully visible */
.brand-footer{align-items:center; gap:16px}
.brand-footer-medal{
  width:72px; height:72px; flex-shrink:0;
  display:grid; place-items:center;
  background:#fff; border-radius:50%;
  box-shadow:
    0 12px 32px -8px rgba(0,0,0,.45),
    0 0 0 4px rgba(255,201,60,.25),
    inset 0 0 0 1px rgba(16,62,126,.08);
}
.brand-footer-medal img{
  width:78%; height:78%; object-fit:contain;
  filter:none !important; opacity:1 !important;
}

/* Unify location list item typography with the rest of the footer links */
.footer-loc{
  display:flex; align-items:center; gap:8px;
  font-family:inherit !important;
  font-size:14px;
  color:rgba(255,255,255,.75);
}
.footer-loc span{
  font-family:inherit;
  font-size:14px;
  letter-spacing:0;
  text-transform:none;
}
.footer-about{font-size:14px; color:rgba(255,255,255,.6); line-height:1.6; max-width:36ch; margin-top:18px}
.social{display:flex; gap:10px; margin-top:18px}
.social a{
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.06); display:grid; place-items:center;
  color:#fff; transition:background .2s, color .2s;
}
.social a:hover{background:var(--accent); color:var(--ink)}
.footer-bot{
  margin-top:56px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1);
  display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;
  font-family:'JetBrains Mono'; font-size:11px; color:rgba(255,255,255,.5); letter-spacing:.08em; text-transform:uppercase;
}

/* ── STICKY WHATSAPP ── */
.wa-sticky{
  position:fixed; right:18px; bottom:18px; z-index:50;
  display:flex; align-items:center; gap:10px;
  background:#25D366; color:#fff;
  padding:14px 18px 14px 14px; border-radius:999px;
  box-shadow:0 12px 30px -10px rgba(37,211,102,.5), 0 2px 8px rgba(0,0,0,.15);
  font-weight:700; font-size:14px;
  transition:transform .2s;
}
.wa-sticky:hover{transform:translateY(-2px)}
.wa-sticky .pulse{position:absolute; inset:0; border-radius:inherit; border:2px solid #25D366; animation:wa-pulse 2s infinite; pointer-events:none}
@keyframes wa-pulse{0%{transform:scale(1); opacity:.6} 100%{transform:scale(1.15); opacity:0}}
@media (max-width:640px){
  .wa-sticky .wa-text{display:none}
  .wa-sticky{padding:14px}
}

/* ── TWEAKS PANEL ── */
.tweaks{
  position:fixed; right:18px; top:84px; z-index:55;
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:18px; width:280px;
  box-shadow:0 20px 60px -20px rgba(14,20,48,.3);
  display:none;
}
.tweaks.open{display:block}
.tweaks h6{font-family:'Anton'; font-size:20px; color:var(--navy); margin:0 0 14px; letter-spacing:.02em}
.tweaks .t-row{margin-bottom:14px}
.tweaks .t-row label{font-family:'JetBrains Mono'; font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); display:block; margin-bottom:6px}
.tweaks .chips{display:flex; flex-wrap:wrap; gap:6px}
.tweaks .chip{
  font-family:'JetBrains Mono'; font-size:11px; padding:6px 10px; border-radius:999px;
  border:1px solid var(--line); background:#fff; cursor:pointer; letter-spacing:.05em;
}
.tweaks .chip.active{background:var(--navy); color:#fff; border-color:var(--navy)}
.tweaks input[type="text"]{
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; font-size:13px;
}
.tweaks .t-toggle{display:flex; align-items:center; gap:8px; font-size:12px}

/* accent swaps */
body[data-accent="navy"]{ --accent: var(--navy); --accent-deep: var(--navy-deep) }
body[data-accent="royal"]{ --accent: #1E4FB3; --accent-deep:#15306E }
body[data-accent="powder"]{ --accent: #A9C2E8; --accent-deep:#7CA0D3 }

/* partner logos block */
.powered{background:transparent; padding:48px 0}
.powered-wrap{
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse at 15% 0%, rgba(255,201,60,.18) 0, transparent 55%),
    radial-gradient(ellipse at 85% 100%, rgba(90,160,232,.25) 0, transparent 55%),
    linear-gradient(135deg, #0F3676 0%, #1E5BA8 100%);
  border-radius:28px; padding:64px 56px;
  box-shadow:
    0 30px 60px -30px rgba(16,62,126,.45),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.powered-bg-grid{
  position:absolute; inset:0; pointer-events:none; opacity:.18;
  background-image:
    linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse at center, #000 0%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 0%, transparent 75%);
}
.powered-head{
  text-align:center; margin-bottom:48px; position:relative; z-index:1;
}
.powered-head .lbl{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono'; font-size:11px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--yellow);
  background:rgba(255,201,60,.12); border:1px solid rgba(255,201,60,.3);
  padding:8px 14px; border-radius:999px; margin-bottom:20px;
}
.powered-head .lbl-dot{
  width:6px; height:6px; border-radius:50%; background:var(--yellow);
  box-shadow:0 0 10px var(--yellow);
}
.powered-head h3{
  font-family:'Anton'; font-size:clamp(30px, 3.6vw, 46px);
  color:#fff; margin:0; line-height:1.05; letter-spacing:.01em;
  text-wrap:balance;
}

.partners-stage{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center; gap:28px; max-width:920px; margin:0 auto;
}
.partner-medal{
  display:flex; flex-direction:column; align-items:center;
  text-decoration:none; gap:18px;
  padding:8px; border-radius:20px;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.partner-medal:hover{transform:translateY(-4px)}
.partner-medal:nth-child(1){justify-self:end}
.partner-medal:nth-child(3){justify-self:start}
.medal-disc{
  width:128px; height:128px; border-radius:50%;
  background:#fff;
  display:grid; place-items:center;
  box-shadow:
    0 18px 40px -12px rgba(0,0,0,.4),
    inset 0 0 0 6px rgba(255,255,255,.95),
    inset 0 0 0 7px rgba(255,201,60,.5);
  position:relative; flex-shrink:0;
  transition:box-shadow .3s ease;
}
.partner-medal:hover .medal-disc{
  box-shadow:
    0 22px 50px -12px rgba(0,0,0,.5),
    inset 0 0 0 6px rgba(255,255,255,.95),
    inset 0 0 0 8px var(--yellow);
}
.medal-disc img{
  width:78%; height:78%; object-fit:contain;
  display:block;
}
.medal-meta{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  text-align:center;
}
.medal-meta .role{
  font-family:'JetBrains Mono'; font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--yellow);
}
.medal-meta .name{
  font-family:'Anton'; font-size:22px; color:#fff;
  letter-spacing:.02em; line-height:1;
}
.medal-meta .link{
  font-family:'JetBrains Mono'; font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(255,255,255,.55);
  transition:color .2s;
}
.partner-medal:hover .medal-meta .link{color:var(--yellow)}

.partners-bridge{
  display:flex; align-items:center; gap:12px;
  align-self:start; padding-top:48px;
}
.partners-bridge .bridge-line{
  width:48px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,201,60,.6), transparent);
}
.partners-bridge .bridge-glyph{
  font-family:'Anton'; font-size:34px; color:var(--yellow); line-height:1;
  text-shadow:0 0 20px rgba(255,201,60,.4);
}

@media (max-width:760px){
  .powered-wrap{padding:40px 24px; border-radius:20px}
  .partners-stage{
    grid-template-columns:1fr; gap:8px;
    max-width:320px;
  }
  .partner-medal:nth-child(1),
  .partner-medal:nth-child(3){justify-self:center}
  .partners-bridge{
    padding-top:0;
    flex-direction:column;
    height:72px;
    gap:8px;
  }
  .partners-bridge .bridge-line{
    width:1px; height:28px;
    background:linear-gradient(180deg, transparent, rgba(255,201,60,.6), transparent);
  }
  .partners-bridge .bridge-glyph{
    font-size:28px;
  }
  .medal-disc{width:108px; height:108px}
  .medal-meta .name{font-size:20px}
}

/* safeguarding */
.safe{background:#fff}
.safe-card{
  background:linear-gradient(135deg, var(--navy), var(--navy-deep));
  color:#fff; border-radius:18px; padding:48px;
  display:grid; grid-template-columns:auto 1fr auto; gap:32px; align-items:center;
}
@media (max-width:820px){ .safe-card{grid-template-columns:1fr; gap:20px; padding:32px} }
.safe-card .ico{
  width:72px; height:72px; border-radius:18px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
  display:grid; place-items:center; color:#fff; flex-shrink:0;
}
.safe-card h3{font-family:'Anton'; font-size:38px; margin:0 0 8px; line-height:1; color:#fff}
.safe-card p{margin:0; color:rgba(255,255,255,.78); line-height:1.55; font-size:15px; max-width:60ch}
.safe-card .mailbtn{
  display:inline-flex; align-items:center; gap:10px;
  background:#fff; color:var(--navy); padding:16px 22px; border-radius:999px;
  font-weight:700; font-size:14px; white-space:nowrap;
}
.safe-card .mailbtn:hover{background:var(--powder-soft)}

/* reveal — JS-driven (inline styles + Web Animations) */
.reveal{
  opacity:0;
  transform:translateY(28px) scale(.985);
  will-change:opacity, transform;
}
.reveal.in{
  opacity:1;
  transform:translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce){
  .reveal, .reveal.in{ animation:none; transform:none; opacity:1 }
  .atmos-aurora-1, .atmos-aurora-2, .atmos-aurora-3,
  .court-lines, .btn-shine::before, .hero-eyebrow .dot,
  .lavora-mail-cursor, .gift-spark, .ticker-track,
  .hero-scroll-cue .cue-line::after{ animation:none !important }
}

/* hero alt variant — full bleed center */
.hero.variant-center .hero-grid{grid-template-columns:1fr; text-align:center; padding:110px 0}
.hero.variant-center .hero-visual{display:none}
.hero.variant-center .hero-meta{margin-left:auto; margin-right:auto}
.hero.variant-center .hero-ctas{justify-content:center}
.hero.variant-center p.lead{margin-left:auto; margin-right:auto}
.hero.variant-center .hero-eyebrow{margin-left:auto; margin-right:auto; display:inline-flex}

/* hero alt variant — card stack */
.hero.variant-stack .hero-grid{grid-template-columns:1fr; padding:72px 0 60px}
.hero.variant-stack .hero-visual{
  max-width:760px; margin:40px auto 0; aspect-ratio:16/9; width:100%;
}
.hero.variant-stack p.lead{max-width:680px}


/* ═══════════════════════════════════════════════════════════
   UPGRADE BLOCK — Premium / Motion / New sections
   ═══════════════════════════════════════════════════════════ */

/* ── HERO POLISH ── */
.hero{ padding-bottom: 60px; }

/* Subtle cinematic spotlight from above */
.atmos-spotlight{
  position:absolute; left:50%; top:-20%; transform:translateX(-50%);
  width:1200px; height:800px; pointer-events:none;
  background: radial-gradient(ellipse 50% 60% at 50% 30%, rgba(255,255,255,.12), transparent 65%);
  mix-blend-mode:screen; opacity:.9;
}

/* Cinematic corner brackets framing the hero stage */
.hero-corner{
  position:absolute; width:48px; height:48px; pointer-events:none; z-index:2;
  border:1px solid rgba(255,201,60,.45);
  filter: drop-shadow(0 0 8px rgba(255,201,60,.25));
}
.hero-corner.hc-tl{ top:20px; left:20px; border-right:0; border-bottom:0 }
.hero-corner.hc-tr{ top:20px; right:20px; border-left:0; border-bottom:0 }
.hero-corner.hc-bl{ bottom:20px; left:20px; border-right:0; border-top:0 }
.hero-corner.hc-br{ bottom:20px; right:20px; border-left:0; border-top:0 }
@media (max-width:640px){ .hero-corner{ width:28px; height:28px } }

/* Watermark cinematic */
.hero-watermark{
  font-weight:400;
  -webkit-text-stroke:1.5px rgba(180,210,238,.12);
  text-stroke:1.5px rgba(180,210,238,.12);
  filter: drop-shadow(0 0 60px rgba(90,160,232,.18));
}

/* Headline — more aggressive, premium gradient + subtle stroke */
.hero h1{
  font-size:clamp(58px, 8.6vw, 140px);
  letter-spacing:-.005em;
  margin-bottom:24px;
  text-shadow:
    0 4px 24px rgba(8,36,83,.4),
    0 1px 0 rgba(255,255,255,.04);
}
.hero h1 .accent .accent-text{
  filter: drop-shadow(0 4px 24px rgba(255,201,60,.4));
}
.hero h1 .accent .accent-glow{ filter:blur(36px); opacity:.7 }

/* Tag strip between headline and lead */
.hero-tagstrip{
  display:inline-flex; align-items:center; gap:18px;
  margin:4px auto 22px; font-family:'JetBrains Mono';
  font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--powder);
}
.hero-tagstrip .hts-bar{
  width:48px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,201,60,.7), transparent);
}
.hero-tagstrip .hts-text{ color:#fff; font-weight:500; letter-spacing:.32em }

/* Premium CTA primary — slightly elevated gradient */
.hero-ctas .btn-primary{
  background:linear-gradient(180deg, #FFE176 0%, var(--yellow) 50%, var(--yellow-deep) 100%);
  box-shadow:
    0 12px 28px -10px rgba(255,201,60,.6),
    0 2px 0 rgba(0,0,0,.05) inset,
    0 -2px 0 rgba(255,255,255,.4) inset;
  border:1px solid rgba(255,201,60,.5);
  text-shadow:0 1px 0 rgba(255,255,255,.25);
}
.hero-ctas .btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:
    0 18px 36px -10px rgba(255,201,60,.7),
    0 2px 0 rgba(0,0,0,.05) inset,
    0 -2px 0 rgba(255,255,255,.4) inset;
}

/* Hero meta — depth */
.hero-meta{
  box-shadow:
    0 20px 50px -20px rgba(0,0,0,.6),
    inset 0 1px 0 rgba(255,255,255,.1);
}

/* ── FAMIGLIA SECTION (manifesto) ── */
.famiglia{
  position:relative; overflow:hidden; isolation:isolate;
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, #103E7E 0%, #082453 55%, #051a3e 100%);
  color:#fff;
  padding:140px 0 160px;
}
@media (max-width:720px){ .famiglia{ padding:96px 0 96px } }

.famiglia-bg{
  position:absolute; inset:0; pointer-events:none; z-index:0;
}
.famiglia-watermark{
  position:absolute; left:50%;
  font-family:'Anton', Impact, sans-serif;
  font-size:clamp(180px, 22vw, 340px);
  letter-spacing:.04em; line-height:.85;
  color:transparent;
  -webkit-text-stroke:1.5px rgba(180,210,238,.08);
  text-stroke:1.5px rgba(180,210,238,.08);
  white-space:nowrap; user-select:none; pointer-events:none;
  filter: drop-shadow(0 0 80px rgba(90,160,232,.12));
  will-change:transform;
}
.famiglia-watermark-1{ top:18%; transform:translate(-50%, -50%) }
.famiglia-watermark-2{
  top:78%; transform:translate(-50%, -50%);
  -webkit-text-stroke-color: rgba(255,201,60,.07);
  text-stroke-color: rgba(255,201,60,.07);
}

.famiglia-glow{
  position:absolute; border-radius:50%; filter:blur(120px);
  pointer-events:none; mix-blend-mode:screen;
}
.famiglia-glow-1{
  width:720px; height:720px; left:-200px; top:-100px;
  background:radial-gradient(circle, rgba(90,160,232,.55), transparent 70%);
  opacity:.5;
}
.famiglia-glow-2{
  width:680px; height:680px; right:-180px; bottom:-200px;
  background:radial-gradient(circle, rgba(255,201,60,.4), transparent 70%);
  opacity:.4;
}
.famiglia-grain{
  position:absolute; inset:0; opacity:.07; mix-blend-mode:overlay;
  background-image:
    radial-gradient(circle at 25% 30%, rgba(255,255,255,.5) 0, transparent 1.5px),
    radial-gradient(circle at 75% 70%, rgba(255,255,255,.4) 0, transparent 1.5px),
    radial-gradient(circle at 45% 80%, rgba(255,255,255,.4) 0, transparent 1.5px);
  background-size: 7px 7px, 11px 11px, 13px 13px;
}

.famiglia-wrap{ position:relative; z-index:1 }

.famiglia-eyebrow{
  display:inline-flex; align-items:center; gap:14px;
  font-family:'JetBrains Mono'; font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--yellow);
  background:rgba(255,201,60,.08);
  border:1px solid rgba(255,201,60,.28);
  padding:10px 18px; border-radius:999px;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  margin-bottom:36px;
}
.famiglia-eyebrow .dot{
  width:7px; height:7px; border-radius:50%; background:var(--yellow);
  box-shadow:0 0 12px var(--yellow);
  animation:pulse 1.6s infinite;
}
.famiglia-eyebrow .sep{ color:rgba(255,255,255,.3); margin:0 -4px }
.famiglia-eyebrow .dim{ color:rgba(255,255,255,.55); letter-spacing:.18em }

/* Massive headline — magazine cover */
.famiglia-title{
  font-family:'Anton', Impact, sans-serif; font-weight:400;
  font-size:clamp(72px, 13vw, 220px);
  line-height:.86; letter-spacing:-.01em;
  margin:0 0 56px; color:#fff;
  display:flex; flex-direction:column; gap:6px;
  text-wrap:balance;
}
.famiglia-title .fl{ display:block; position:relative }
.famiglia-title .fl-dot{ color:var(--yellow); margin-left:.04em }
.famiglia-title .is-accent{ display:inline-block; position:relative }
.famiglia-title .famiglia-accent-glow{
  position:absolute; inset:0; color:var(--yellow);
  filter:blur(48px); opacity:.6; pointer-events:none;
}
.famiglia-title .famiglia-accent-text{
  position:relative; display:inline-block;
  background:linear-gradient(180deg, #FFE176 0%, var(--yellow) 50%, #E5A800 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  text-shadow:0 0 60px rgba(255,201,60,.4);
}

.famiglia-intro{
  display:grid; grid-template-columns:1fr auto; gap:48px;
  align-items:center; margin-bottom:80px;
}
@media (max-width:880px){
  .famiglia-intro{ grid-template-columns:1fr; gap:28px }
}
.famiglia-lead{
  font-size:clamp(20px, 2vw, 26px); line-height:1.45;
  color:rgba(255,255,255,.85); max-width:34ch;
  margin:0; text-wrap:pretty;
}
.famiglia-lead b{ color:#fff; font-weight:600 }
.famiglia-mark{
  display:inline-flex; align-items:center; gap:14px; align-self:start;
  white-space:nowrap;
}
.famiglia-mark .fm-line{
  width:36px; height:1px; background:linear-gradient(90deg, transparent, rgba(255,201,60,.6), transparent);
}
.famiglia-mark .fm-text{
  font-family:'JetBrains Mono'; font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--yellow);
}

/* Cinema strip */
.famiglia-cinema{ margin:0 0 96px }
.cinema-frame{
  position:relative; aspect-ratio: 21/9;
  border-radius:18px; overflow:hidden; isolation:isolate;
  border:1px solid rgba(255,201,60,.25);
  box-shadow:
    0 50px 100px -40px rgba(0,0,0,.7),
    0 0 0 1px rgba(255,255,255,.04) inset,
    0 0 80px -20px rgba(255,201,60,.18);
}
@media (max-width:640px){ .cinema-frame{ aspect-ratio: 4/5 } }
.cinema-img{
  position:absolute; inset:0; z-index:0;
  background-image:url('assets/curva-pielle.jpg');
  background-size:cover; background-position:center 38%;
  filter:saturate(1.05) contrast(1.05);
  transform:scale(1.05);
  transition:transform 1.5s cubic-bezier(.2,.8,.2,1);
}
.famiglia-cinema.reveal.in .cinema-img{ transform:scale(1) }
.cinema-overlay{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(160deg, rgba(8,36,83,.55) 0%, transparent 35%, rgba(8,36,83,.6) 100%),
    linear-gradient(0deg, rgba(8,36,83,.9) 0%, transparent 50%, rgba(8,36,83,.35) 100%);
}
.cinema-grid{
  position:absolute; inset:0; z-index:2; opacity:.18;
  background-image:
    linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse at center, transparent 30%, #000 80%);
  -webkit-mask-image:radial-gradient(ellipse at center, transparent 30%, #000 80%);
}
.cinema-corner{
  position:absolute; width:28px; height:28px; z-index:3;
  border:1px solid rgba(255,201,60,.7);
}
.cinema-corner.cc-tl{ top:18px; left:18px; border-right:0; border-bottom:0 }
.cinema-corner.cc-tr{ top:18px; right:18px; border-left:0; border-bottom:0 }
.cinema-corner.cc-bl{ bottom:18px; left:18px; border-right:0; border-top:0 }
.cinema-corner.cc-br{ bottom:18px; right:18px; border-left:0; border-top:0 }
.cinema-meta{
  position:absolute; left:32px; top:32px; z-index:3;
  font-family:'JetBrains Mono'; font-size:11px; color:rgba(255,255,255,.7);
  letter-spacing:.18em; text-transform:uppercase;
}
.cinema-quote{
  position:absolute; left:0; right:0; bottom:0; padding:48px 56px; z-index:3;
  margin:0; color:#fff;
  font-family:'Anton', Impact, sans-serif; font-weight:400;
  font-size:clamp(34px, 5vw, 64px); line-height:.95;
  letter-spacing:.005em; text-wrap:balance;
  text-shadow:0 6px 28px rgba(0,0,0,.5);
}
.cinema-quote .cq-mark{
  display:inline-block; color:var(--yellow); margin-right:8px;
  font-size:1.4em; line-height:0; vertical-align:-.2em;
  text-shadow:0 0 24px rgba(255,201,60,.6);
}
.cinema-quote em{
  font-style:italic; font-family:'Anton', serif;
  background:linear-gradient(180deg, #FFE176 0%, var(--yellow) 70%, #E5A800 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
@media (max-width:640px){
  .cinema-quote{ padding:28px 24px; font-size:clamp(26px, 7vw, 42px) }
  .cinema-meta{ left:18px; top:18px }
}

/* Editorial pillar list */
.famiglia-pillars{
  display:flex; flex-direction:column;
  border-top:1px solid rgba(255,255,255,.1);
}
.pillar{
  display:grid; grid-template-columns:140px 1fr;
  gap:48px; align-items:start;
  padding:38px 0;
  border-bottom:1px solid rgba(255,255,255,.1);
  position:relative;
  transition:padding-left .5s cubic-bezier(.2,.8,.2,1);
}
.pillar::before{
  content:""; position:absolute; left:-24px; top:50%; width:8px; height:8px;
  background:var(--yellow); border-radius:50%;
  transform:translateY(-50%) scale(0);
  box-shadow:0 0 16px var(--yellow);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.pillar:hover{ padding-left:24px }
.pillar:hover::before{ transform:translateY(-50%) scale(1) }
.pillar-num{
  font-family:'Anton'; font-size:clamp(54px, 6vw, 88px);
  line-height:.9; letter-spacing:.02em;
  background:linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(180,210,238,.18) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  transition:background .35s ease;
}
.pillar:hover .pillar-num{
  background:linear-gradient(180deg, #FFE176 0%, var(--yellow) 60%, #E5A800 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.pillar-body{ padding-top:6px; max-width:64ch }
.pillar-title{
  font-family:'Anton'; font-weight:400; margin:0 0 10px;
  font-size:clamp(28px, 3.4vw, 44px); line-height:1;
  letter-spacing:.005em; color:#fff;
}
.pillar-text{
  margin:0; color:rgba(255,255,255,.72);
  font-size:clamp(15px, 1.3vw, 17px); line-height:1.55; max-width:56ch;
}
@media (max-width:720px){
  .pillar{ grid-template-columns:1fr; gap:8px; padding:30px 0 }
  .pillar-num{ font-size:clamp(44px, 12vw, 60px) }
}

/* ── LAVORA CON NOI ── */
.lavora{
  position:relative; overflow:hidden; isolation:isolate;
  background:
    linear-gradient(180deg, var(--paper) 0%, #EAF2FB 100%);
  padding:140px 0;
}
@media (max-width:720px){ .lavora{ padding:88px 0 } }

.lavora-bg{ position:absolute; inset:0; pointer-events:none; z-index:0 }
.lavora-gradient{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 700px 500px at 80% 20%, rgba(255,201,60,.15), transparent 60%),
    radial-gradient(ellipse 800px 500px at 10% 90%, rgba(90,160,232,.18), transparent 60%);
}
.lavora-grid-bg{
  position:absolute; inset:0; opacity:.5;
  background-image:
    linear-gradient(rgba(16,62,126,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,62,126,.06) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse at center, #000 0%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 0%, transparent 80%);
}
.lavora-glow{
  position:absolute; border-radius:50%; filter:blur(100px);
  opacity:.4; pointer-events:none;
}
.lavora-glow-1{
  width:480px; height:480px; right:8%; top:-100px;
  background:radial-gradient(circle, rgba(255,201,60,.5), transparent 70%);
}
.lavora-glow-2{
  width:520px; height:520px; left:5%; bottom:-160px;
  background:radial-gradient(circle, rgba(90,160,232,.55), transparent 70%);
}

.lavora .container{ position:relative; z-index:1 }
.lavora-grid{
  display:grid; grid-template-columns:1.05fr 1fr; gap:72px; align-items:center;
}
@media (max-width:900px){ .lavora-grid{ grid-template-columns:1fr; gap:48px } }

.lavora-copy .section-label{ color:var(--navy)!important; margin-bottom:18px }
.lavora-title{
  font-family:'Anton', Impact, sans-serif; font-weight:400;
  font-size:clamp(44px, 6.4vw, 92px);
  line-height:.92; letter-spacing:-.005em;
  margin:0 0 28px; color:var(--navy-deep);
  text-wrap:balance;
}
.lavora-title-accent{ position:relative; display:inline-block }
.lavora-title-accent .lt-glow{
  position:absolute; inset:0;
  background:linear-gradient(180deg, #FFE176, var(--yellow), #E5A800);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  filter:blur(22px); opacity:.5; pointer-events:none;
}
.lavora-title-accent .lt-text{
  position:relative;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}

.lavora-lead{
  font-size:clamp(17px, 1.5vw, 20px); line-height:1.6;
  color:var(--ink); max-width:48ch; margin:0 0 16px;
}
.lavora-lead b{ color:var(--navy-deep); font-weight:600 }
.lavora-sub{
  font-size:15px; line-height:1.6; color:var(--muted);
  max-width:48ch; margin:0 0 28px;
}
.lavora-badges{
  display:flex; flex-wrap:wrap; gap:10px;
}
.lavora-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:999px;
  background:rgba(255,255,255,.7); border:1px solid var(--line);
  font-family:'JetBrains Mono'; font-size:11px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--navy);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.lavora-badge svg{ color:var(--yellow-deep) }

/* Lavora MAIL CARD — premium glass */
.lavora-card{
  position:relative; isolation:isolate;
  perspective:1200px;
}
.lavora-card-glow{
  position:absolute; inset:-20px; z-index:0;
  border-radius:32px;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,201,60,.35), transparent 60%),
    radial-gradient(circle at 80% 80%, rgba(30,91,168,.45), transparent 60%);
  filter:blur(40px); opacity:.7;
  transition:opacity .5s ease;
}
.lavora-card:hover .lavora-card-glow{ opacity:1 }

.lavora-card-inner{
  position:relative; z-index:1;
  background:
    linear-gradient(135deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.65) 100%);
  border:1px solid rgba(255,255,255,.7);
  border-radius:24px;
  padding:36px 36px 32px;
  backdrop-filter:blur(24px) saturate(1.4);
  -webkit-backdrop-filter:blur(24px) saturate(1.4);
  box-shadow:
    0 30px 80px -30px rgba(16,62,126,.35),
    0 0 0 1px rgba(255,255,255,.6) inset,
    inset 0 -1px 0 rgba(255,255,255,.6);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease;
}
.lavora-card:hover .lavora-card-inner{
  transform:translateY(-4px);
  box-shadow:
    0 40px 100px -30px rgba(16,62,126,.45),
    0 0 0 1px rgba(255,201,60,.4) inset,
    inset 0 -1px 0 rgba(255,255,255,.6);
}

.lavora-card-head{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:28px;
  padding-bottom:18px;
  border-bottom:1px dashed rgba(16,62,126,.15);
}
.lavora-card-tag{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono'; font-size:10px;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--navy);
}
.lavora-card-tag .dot{
  width:8px; height:8px; border-radius:50%; background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.18), 0 0 12px rgba(34,197,94,.7);
  animation:pulse 1.6s infinite;
}
.lavora-card-num{
  font-family:'JetBrains Mono'; font-size:10px;
  color:var(--muted); letter-spacing:.16em;
}

.lavora-card-body{ display:flex; flex-direction:column; gap:18px }
.lavora-mail-label{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono'; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
}
.lavora-mail-label svg{ color:var(--yellow-deep) }

.lavora-mail{
  display:flex; align-items:baseline; gap:4px;
  font-family:'Anton', Impact, sans-serif;
  font-size:clamp(22px, 2.6vw, 36px); line-height:1;
  letter-spacing:-.005em;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  text-decoration:none; word-break:break-all;
  transition:opacity .25s ease;
}
.lavora-mail:hover{ opacity:.85 }
.lavora-mail-cursor{
  display:inline-block; width:3px; height:.85em; align-self:center;
  background:var(--yellow-deep);
  animation:caret 1.1s steps(2) infinite;
  margin-left:6px;
}
@keyframes caret{ 0%,49%{opacity:1} 50%,100%{opacity:0} }

.lavora-cta-row{
  display:flex; gap:10px; flex-wrap:wrap; margin-top:8px;
}
.lavora-copy-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 18px; border-radius:999px;
  background:rgba(16,62,126,.06); color:var(--navy);
  border:1px solid var(--line);
  font-family:'JetBrains Mono'; font-size:12px;
  letter-spacing:.06em; cursor:pointer;
  transition:all .25s ease;
}
.lavora-copy-btn:hover{
  background:var(--navy); color:#fff; border-color:var(--navy);
  transform:translateY(-1px);
}
.lavora-copy-btn.is-copied{
  background:#22c55e; color:#fff; border-color:#22c55e;
}

.lavora-card-foot{
  display:flex; align-items:center; gap:14px;
  margin-top:28px; padding-top:20px;
  border-top:1px dashed rgba(16,62,126,.15);
}
.lavora-card-foot .lcf-line{
  flex:1; height:1px;
  background:linear-gradient(90deg, transparent, rgba(16,62,126,.2), transparent);
}
.lavora-card-foot .lcf-text{
  font-family:'JetBrains Mono'; font-size:10px;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); white-space:nowrap;
}

@media (max-width:520px){
  .lavora-card-inner{ padding:28px 24px 26px }
  .lavora-card-foot{ flex-direction:column; align-items:flex-start; gap:8px }
  .lavora-card-foot .lcf-line{ width:100%; max-width:80px }
  .lavora-card-foot .lcf-text{ white-space:normal }
}

/* ── GLOBAL POLISH (hover, depth, micro-anim) ── */
.cat-card, .why-card, .price-card, .coach, .faq-item{
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .25s ease;
}

/* Category cards — deeper shadow + glow on hover */
.cat-card{
  box-shadow:
    0 30px 60px -30px rgba(8,36,83,.5),
    0 0 0 1px rgba(255,255,255,.05) inset;
}
.cat-card:hover{
  transform:translateY(-8px) scale(1.005);
  box-shadow:
    0 50px 80px -30px rgba(8,36,83,.65),
    0 0 0 1px rgba(255,201,60,.3) inset,
    0 0 60px -10px rgba(255,201,60,.25);
}
.cat-card .arrow{
  transition:transform .35s cubic-bezier(.2,.8,.2,1), background .25s ease;
}

/* Method cells — softer hover */
.method-cell{
  transition:background .35s ease, transform .25s ease;
}
.method-cell:hover{ transform:translateY(-2px) }
.method-cell .ico{
  transition:color .25s ease, transform .35s ease;
}
.method-cell:hover .ico{
  color:#fff; transform:scale(1.1);
}

/* FAQ — smoother */
.faq-q{ transition:color .2s ease }
.faq-item[data-open="true"] .faq-q{ color:var(--navy-deep) }

/* Mobile-nav: include Lavora link layout */
@media (max-width:1180px){
  .nav-links a{ padding:12px 12px; font-size:14px }
}
.nav-links a{ white-space:nowrap }

/* Mobile experience polish */
@media (max-width:640px){
  .section{ padding:72px 0 }
  .hero-eyebrow{ font-size:10px; padding:8px 14px; margin-bottom:24px }
  .hero h1{ font-size:clamp(48px, 13vw, 92px) }
  .famiglia-title{ font-size:clamp(56px, 18vw, 110px) }
  .famiglia-intro{ margin-bottom:48px }
  .famiglia-cinema{ margin-bottom:56px }
  .hero-ctas .btn{ width:100%; justify-content:center }
  .hero-tagstrip{ font-size:10px; gap:10px; margin:4px auto 22px }
  .hero-tagstrip .hts-bar{ width:24px }
}

/* Heading "Famiglia" anchor scroll offset — sticky header is ~80px */
#why{ scroll-margin-top:80px }
#lavora{ scroll-margin-top:80px }
#categorie, #tariffe, #safeguarding, #contatti{ scroll-margin-top:80px }

/* "PIELLE YOUNG" header text — slightly larger letterspacing on desktop for premium feel */
.brand-text b{ letter-spacing:.06em }

/* Premium powered partner medals hover glow */
.partner-medal:hover .medal-disc{
  transform:rotate(-2deg) scale(1.03);
  transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
}
.medal-disc{ transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease }

/* Tweaks panel float fix — make sure it doesn't clip on small screens */
@media (max-width:520px){
  .tweaks{ left:12px; right:12px; width:auto }
}
