/* ─────────────────────────────────────────────
   Progetto Diana — spa notturna, stile DaProd
   vetro scuro, oro liquido e lilla, bottoni perla lucidi,
   specchio-luna, polvere d'oro e perle che salgono
   ───────────────────────────────────────────── */

:root {
  --bg:     #0b0710;
  --bg2:    #130b1a;
  --txt:    #e9e0ef;
  --txt2:   #b3a5c2;
  --head:   #fff6ea;
  --gold:   #e8c074;
  --gold-l: #f8e3ae;
  --gold-d: #b98a3a;
  --lilac:  #bfa2ea;
  --lilac-l:#e2d3fb;
  --lilac-d:#7b54c4;
  --rose:   #f2a7c3;
  --sage:   #8fd8b8;
  --glass:  rgba(24,14,32,.62);
  --glass-b: rgba(236,210,255,.14);
  --shadow: 0 18px 44px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.35);
  --r: 22px;
  --nh: 64px;
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --body:  'Nunito', system-ui, -apple-system, sans-serif;
  --mono:  'Space Mono', ui-monospace, Menlo, monospace;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--nh) + 24px); -webkit-text-size-adjust:100%; }
body {
  font-family:var(--body); color:var(--txt); line-height:1.65; font-size:17px;
  background:var(--bg); overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
body.lock { overflow:hidden; }
img, video { display:block; max-width:100%; height:auto; }
[hidden] { display:none !important; }
a { color:var(--gold-l); text-decoration:none; }
b, strong { font-weight:800; color:var(--head); }
button { font:inherit; color:inherit; }
::selection { background:rgba(232,192,116,.35); color:#fff; }
.wrap { max-width:1180px; margin:0 auto; padding:0 20px; }
.mono { font-family:var(--mono); }
.skip { position:fixed; left:12px; top:-60px; z-index:300; padding:.6em 1em; border-radius:999px; background:var(--gold); color:#2b1a06; font-weight:800; transition:top .2s; }
.skip:focus { top:12px; }
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; border-radius:8px; }

/* ── CARICAMENTO ── */
#loader {
  position:fixed; inset:0; z-index:500; display:grid; place-items:center; background:var(--bg);
  transition:opacity .6s ease, visibility .6s ease;
}
#loader.off { opacity:0; visibility:hidden; }
.loader-moon {
  position:relative; width:150px; height:150px; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(circle,rgba(191,162,234,.18),transparent 70%);
}
.loader-moon::before {
  content:''; position:absolute; inset:0; border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0 60%,var(--gold) 80%,var(--lilac-l) 92%,transparent);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));
  animation:spin 1.1s linear infinite;
}
.loader-moon img { width:78px; height:auto; filter:drop-shadow(0 0 16px rgba(232,192,116,.5)); animation:breatheSoft 1.6s ease-in-out infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes breatheSoft { 50% { transform:scale(1.06); filter:drop-shadow(0 0 26px rgba(232,192,116,.8)); } }

/* ── SFONDO ── */
.sky { position:fixed; inset:0; z-index:-3; pointer-events:none; overflow:hidden; background:radial-gradient(120% 80% at 50% 0%,#1a0f24 0%,var(--bg) 60%); }
.aura { position:absolute; border-radius:50%; filter:blur(80px); opacity:.55; }
.a1 { width:760px; height:560px; top:-240px; right:-180px; background:radial-gradient(circle,rgba(232,192,116,.45),transparent 65%); animation:drift 22s ease-in-out infinite alternate; }
.a2 { width:780px; height:580px; bottom:-280px; left:-220px; background:radial-gradient(circle,rgba(123,84,196,.5),transparent 65%); animation:drift 26s ease-in-out infinite alternate-reverse; }
.a3 { width:540px; height:440px; top:38%; left:42%; background:radial-gradient(circle,rgba(242,167,195,.22),transparent 65%); animation:drift 30s ease-in-out infinite alternate; }
@keyframes drift { to { transform:translate3d(-40px,30px,0) scale(1.08); } }
.silk { position:absolute; left:0; right:0; bottom:0; width:100%; height:70vh; opacity:.9; }
#stelle { position:fixed; inset:0; z-index:-1; pointer-events:none; }
#progress {
  position:fixed; top:0; left:0; right:0; height:3px; z-index:200; transform-origin:0 50%; transform:scaleX(var(--p,0));
  background:linear-gradient(90deg,var(--gold),var(--lilac),var(--rose)); box-shadow:0 0 12px rgba(232,192,116,.6);
}

/* ── VETRO ── */
.glass {
  position:relative; background:var(--glass);
  -webkit-backdrop-filter:blur(16px) saturate(1.4); backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid var(--glass-b); border-radius:var(--r);
  box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.12);
  isolation:isolate;
}
.glass::before { /* riflesso in alto, come uno specchio */
  content:''; position:absolute; inset:1px 1px 60% 1px; pointer-events:none; z-index:-1;
  border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 50% 50% / calc(var(--r) - 1px) calc(var(--r) - 1px) 16px 16px;
  background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,0));
}

/* ── BOTTONI PERLA ── */
.pearl {
  --a1:#fff4d6; --a2:#e8bf6c; --a3:#a9772a; --ink:#2b1a06; --glow:rgba(232,192,116,.45);
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:.8em 1.45em; border-radius:999px; border:1px solid rgba(0,0,0,.45);
  font:800 .98rem/1 var(--body); color:var(--ink); letter-spacing:.01em; cursor:pointer;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
  background:linear-gradient(180deg,var(--a1) 0%,var(--a2) 50%,var(--a3) 51%,var(--a2) 100%);
  box-shadow:0 0 20px var(--glow), 0 6px 14px rgba(0,0,0,.45), inset 0 -3px 6px rgba(255,255,255,.3), inset 0 1px 0 rgba(255,255,255,.9);
  transition:transform .15s, box-shadow .2s, filter .2s; overflow:hidden; white-space:nowrap; isolation:isolate;
}
.pearl::before { /* lucido */
  content:''; position:absolute; left:8%; right:8%; top:2px; height:46%; border-radius:999px; pointer-events:none; z-index:-1;
  background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.06));
}
.pearl::after { /* bagliore che attraversa */
  content:''; position:absolute; top:0; bottom:0; left:-60%; width:40%; transform:skewX(-20deg); pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); transition:left .6s ease;
}
.pearl:hover { filter:brightness(1.08) saturate(1.1); transform:translateY(-2px); box-shadow:0 0 30px var(--glow), 0 10px 22px rgba(0,0,0,.5), inset 0 -3px 6px rgba(255,255,255,.35), inset 0 1px 0 #fff; }
.pearl:hover::after { left:130%; }
.pearl:active { transform:translateY(1px); }
.pearl.lilac { --a1:#f1e6ff; --a2:#8a5cd6; --a3:#4f2a96; --ink:#fff; --glow:rgba(138,92,214,.5); text-shadow:0 1px 1px rgba(30,5,60,.6); }
.pearl.sage  { --a1:#e3fff2; --a2:#5ccf9f; --a3:#1f855d; --ink:#052016; --glow:rgba(92,207,159,.4); }
.pearl.ghost {
  color:var(--txt); text-shadow:none; border-color:rgba(236,210,255,.25); --glow:transparent;
  background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.04) 50%,rgba(0,0,0,.2) 51%,rgba(255,255,255,.05));
  box-shadow:0 6px 14px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.2);
}
.pearl.ghost::before { background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0)); }
.pearl.ghost:hover { color:#fff; border-color:var(--gold); box-shadow:0 0 18px rgba(232,192,116,.25), inset 0 1px 0 rgba(255,255,255,.25); }
.pearl.sm { padding:.62em 1.1em; font-size:.88rem; }
.pearl.wide { width:100%; padding:1em 1.4em; font-size:1.02rem; }
.link { background:none; border:0; color:var(--gold-l); font-weight:700; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }

/* ── ICONE LUCIDE ── */
.ico {
  --i1:#fff0c4; --i2:#c08d34;
  position:relative; display:inline-grid; place-items:center; flex:none;
  width:60px; height:60px; border-radius:18px; color:#fff; font-size:1.55rem;
  background:linear-gradient(160deg,var(--i1),var(--i2));
  box-shadow:0 0 20px color-mix(in srgb,var(--i2) 35%,transparent), 0 8px 16px rgba(0,0,0,.45), inset 0 -4px 8px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.3);
  text-shadow:0 2px 3px rgba(0,0,0,.3); overflow:hidden;
}
.ico::before {
  content:''; position:absolute; left:-10%; right:-10%; top:-30%; height:78%; border-radius:0 0 50% 50%;
  background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.08));
}
.ico i { position:relative; }
.ico.sm { width:42px; height:42px; border-radius:12px; font-size:1.05rem; }
.i-oro    { --i1:#fff0c4; --i2:#c08d34; }
.i-lilla  { --i1:#eadcff; --i2:#7b54c4; }
.i-rosa   { --i1:#ffd9e8; --i2:#d0508a; }
.i-salvia { --i1:#d9fff0; --i2:#2f9c73; }

/* ── NAV ── */
#nav { position:fixed; top:10px; left:0; right:0; z-index:100; pointer-events:none; }
.nav-in {
  pointer-events:auto; position:relative; height:var(--nh); display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:rgba(16,9,22,.6); -webkit-backdrop-filter:blur(18px) saturate(1.5); backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid var(--glass-b); border-radius:999px; padding:0 10px 0 16px;
  box-shadow:0 10px 30px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.12);
  max-width:1140px; margin:0 auto; width:calc(100% - 24px);
  transition:background .3s, box-shadow .3s;
}
#nav.scrolled .nav-in { background:rgba(16,9,22,.86); box-shadow:0 10px 30px rgba(0,0,0,.6), 0 0 24px rgba(232,192,116,.08), inset 0 1px 0 rgba(255,255,255,.12); }
.brand { display:flex; align-items:center; gap:10px; color:var(--head); }
.brand img { width:30px; height:auto; filter:drop-shadow(0 0 8px rgba(232,192,116,.45)); }
.brand span { display:flex; flex-direction:column; line-height:1.05; }
.brand b { font:600 1.28rem/1 var(--serif); letter-spacing:.01em; }
.brand small { font:700 .58rem/1.4 var(--mono); letter-spacing:.24em; text-transform:uppercase; color:var(--lilac); }
#links { display:flex; list-style:none; gap:2px; align-items:center; }
#links a:not(.pearl) {
  display:block; padding:.62em .85em; border-radius:999px; color:var(--txt2); font:700 .78rem/1 var(--mono);
  transition:background .2s, color .2s, box-shadow .2s;
}
#links a:not(.pearl):hover, #links a.act { color:var(--gold-l); background:rgba(232,192,116,.08); box-shadow:inset 0 0 0 1px rgba(232,192,116,.28); }
#links li:last-child { margin-left:6px; }
#menu { display:none; width:44px; height:44px; border-radius:50%; border:1px solid var(--glass-b); background:linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.02)); cursor:pointer; flex-direction:column; justify-content:center; align-items:center; gap:4px; }
#menu span { display:block; width:18px; height:2px; border-radius:2px; background:var(--gold); transition:transform .25s, opacity .25s; }
#menu.on span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
#menu.on span:nth-child(2) { opacity:0; }
#menu.on span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

/* ── HERO ── */
.hero { position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; padding:calc(var(--nh) + 64px) 0 120px; }
.hero-in { display:grid; grid-template-columns:1.2fr .95fr; gap:56px; align-items:center; width:100%; }
.hello {
  display:inline-flex; align-items:center; gap:10px; padding:.5em 1.05em; border-radius:999px;
  background:rgba(232,192,116,.07); border:1px solid rgba(232,192,116,.28); font:700 .8rem/1.2 var(--mono); color:var(--gold-l);
  animation:rise .8s ease both .2s;
}
.dot { width:9px; height:9px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#fff7df,var(--gold)); box-shadow:0 0 0 3px rgba(232,192,116,.22); animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 7px rgba(232,192,116,0); } }
@keyframes rise { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
.chrome { margin:22px 0 18px; animation:rise .9s ease both .35s; }
.chrome span { display:block; color:transparent; -webkit-background-clip:text; background-clip:text; }
.chrome .c-top {
  font:600 clamp(3.3rem,8.6vw,6.6rem)/.92 var(--serif); letter-spacing:-.01em; padding-bottom:.08em;
  background:linear-gradient(180deg,#fffaf0 0%,#f8e3ae 34%,#e8c074 49%,#8f6320 57%,#d9ad5c 72%,#fbe7b5 100%);
  -webkit-background-clip:text; background-clip:text;
  filter:drop-shadow(0 0 22px rgba(232,192,116,.3));
}
.chrome .c-bot {
  font:700 clamp(.78rem,1.9vw,1.02rem)/1.2 var(--mono); letter-spacing:.34em; text-transform:uppercase; margin-top:.9em;
  background:linear-gradient(180deg,#faf4ff,var(--lilac) 60%,#8b62d4); -webkit-background-clip:text; background-clip:text;
  filter:drop-shadow(0 0 10px rgba(191,162,234,.5));
}
.hero-line { font:700 clamp(1rem,2.3vw,1.28rem)/1.45 var(--mono); color:var(--txt); min-height:1.5em; animation:rise .9s ease both .5s; }
.hero-line .pr { color:var(--gold); }
.tw { color:var(--lilac-l); text-shadow:0 0 12px rgba(191,162,234,.5); }
.caret { display:inline-block; width:.6em; height:1.1em; margin-left:2px; vertical-align:-.2em; background:var(--gold); box-shadow:0 0 8px var(--gold); animation:blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity:0; } }
.hero-sub { max-width:33em; margin:18px 0 30px; color:var(--txt2); font-size:1.08rem; animation:rise .9s ease both .65s; }
.hero-btns { display:flex; flex-wrap:wrap; gap:14px; animation:rise .9s ease both .8s; }

.hero-side { display:flex; flex-direction:column; align-items:center; animation:rise 1s ease both .5s; }
.mirror { --m:clamp(230px,27vw,330px); position:relative; width:var(--m); height:var(--m); }
.mirror-rim {
  position:absolute; inset:0; border-radius:50%;
  background:conic-gradient(from 0deg,#f8e3ae,#b98a3a,#e2d3fb,#f2a7c3,#e8c074,#7b54c4,#f8e3ae);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));
  animation:spin 22s linear infinite; filter:drop-shadow(0 0 10px rgba(232,192,116,.5));
}
.mirror-glass {
  position:absolute; inset:12px; border-radius:50%; overflow:hidden; background:#f2f0f3;
  box-shadow:0 0 60px rgba(248,227,174,.28), 0 0 140px rgba(191,162,234,.28), inset 0 0 40px rgba(123,84,196,.25);
}
.mirror-glass video { width:100%; height:100%; object-fit:cover; transform:scale(1.14); }
.mirror-glass::after { /* riflesso dello specchio */
  content:''; position:absolute; inset:0; border-radius:50%; pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 32%,rgba(255,255,255,0) 70%,rgba(191,162,234,.18) 100%);
}
.orbit {
  --rad:calc(var(--m) / 2 + 18px);
  position:absolute; left:50%; top:50%; width:14px; height:14px; margin:-7px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff,#efe3ff 40%,#9c7ad6);
  box-shadow:0 0 12px rgba(226,211,251,.8);
  animation:orbit 16s linear infinite;
}
.o2 { width:9px; height:9px; margin:-4.5px; animation-duration:11s; animation-delay:-4s; background:radial-gradient(circle at 35% 30%,#fff,#fbe7b5 45%,#b98a3a); box-shadow:0 0 12px rgba(248,227,174,.8); }
.o3 { width:6px; height:6px; margin:-3px; animation-duration:24s; animation-delay:-9s; animation-direction:reverse; }
@keyframes orbit { from { transform:rotate(0) translateX(var(--rad)); } to { transform:rotate(360deg) translateX(var(--rad)); } }

.gadget { padding:10px; border-radius:24px; max-width:390px; width:100%; margin-top:-26px; z-index:1; }
.gadget-bar { display:flex; align-items:center; gap:8px; padding:8px 12px 12px; font:700 .7rem/1 var(--mono); text-transform:uppercase; letter-spacing:.14em; color:var(--txt2); }
.gadget-bar i { width:8px; height:8px; border-radius:50%; background:var(--gold); box-shadow:0 0 8px var(--gold); }
.g-row {
  display:flex; align-items:center; gap:12px; padding:10px; border-radius:14px; color:var(--txt);
  transition:background .2s, transform .2s;
}
.g-row + .g-row { margin-top:4px; }
a.g-row:hover { background:rgba(255,255,255,.06); transform:translateX(4px); }
.g-row b { display:block; font:800 .98rem/1.25 var(--body); }
.g-row small { display:block; font:400 .74rem/1.45 var(--mono); color:var(--txt2); }
.g-row > span:nth-child(2) { flex:1; min-width:0; }
.g-go { color:var(--txt2); font-size:.8rem; }
.led { width:9px; height:9px; border-radius:50%; flex:none; background:var(--sage); box-shadow:0 0 8px var(--sage), 0 0 2px #fff inset; }
.led.off { background:#ff8aa8; box-shadow:0 0 8px #ff8aa8, 0 0 2px #fff inset; }
.scroll-cue { position:absolute; left:50%; bottom:28px; width:26px; height:42px; margin-left:-13px; border-radius:14px; border:1.5px solid rgba(236,210,255,.35); }
.scroll-cue span { position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px; border-radius:2px; background:var(--gold); animation:cue 1.8s ease-in-out infinite; }
@keyframes cue { 0% { opacity:0; transform:translateY(0); } 30% { opacity:1; } 100% { opacity:0; transform:translateY(14px); } }

/* ── TICKER ── */
.ticker {
  overflow:hidden; position:relative; border-block:1px solid rgba(232,192,116,.2);
  background:linear-gradient(180deg,rgba(232,192,116,.1),rgba(232,192,116,.03) 50%,rgba(0,0,0,.28) 51%,rgba(232,192,116,.05));
  -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.ticker-in { display:flex; width:max-content; animation:marquee 60s linear infinite; }
.ticker-in span { padding:14px 22px; font:700 .82rem/1 var(--mono); color:var(--gold-l); white-space:nowrap; letter-spacing:.06em; }
.ticker-in span::after { content:'✦'; margin-left:44px; color:var(--lilac); }
@keyframes marquee { to { transform:translateX(-50%); } }

/* ── SEZIONI ── */
.sec { padding:120px 0; position:relative; }
.sec-head { max-width:680px; margin-bottom:54px; }
.sec-head.center { margin-inline:auto; text-align:center; }
.sec-head.split { max-width:none; display:flex; justify-content:space-between; align-items:flex-end; gap:28px; flex-wrap:wrap; }
.sec-head.split > div:first-child { max-width:640px; }
.kicker { font:700 .78rem/1.2 var(--mono); color:var(--gold); letter-spacing:.08em; margin-bottom:14px; }
.title { font:600 clamp(2.3rem,4.8vw,3.7rem)/1.04 var(--serif); color:var(--head); letter-spacing:-.005em; margin-bottom:18px; }
.title em {
  font-style:italic; color:transparent; -webkit-background-clip:text; background-clip:text;
  background-image:linear-gradient(100deg,var(--gold-l),var(--gold) 40%,var(--lilac-l) 100%);
}
.lead { color:var(--txt2); font-size:1.06rem; }
.rv:not(.in) { opacity:0; transform:translateY(26px); }
.rv.in { animation:reveal .75s cubic-bezier(.2,.7,.2,1) var(--d,0s) backwards; }
@keyframes reveal { from { opacity:0; transform:translateY(26px); } }

/* ── CHI SIAMO ── */
.about { display:grid; grid-template-columns:1fr 1.08fr; gap:70px; align-items:center; }
.about-media { position:relative; }
.frame { padding:2px; border-radius:30px; background:linear-gradient(140deg,var(--gold-l),var(--gold-d) 30%,var(--lilac-d) 70%,var(--lilac-l)); box-shadow:0 30px 70px rgba(0,0,0,.55), 0 0 60px rgba(123,84,196,.18); }
.frame img { border-radius:28px; aspect-ratio:1; object-fit:cover; width:100%; }
.chip-float { position:absolute; display:flex; align-items:center; gap:8px; padding:.7em 1.1em; border-radius:999px; font:800 .85rem/1 var(--body); color:var(--head); animation:float 6s ease-in-out infinite; }
.chip-float i { color:var(--lilac); }
.cf1 { left:-18px; bottom:48px; }
.cf2 { right:-14px; top:36px; animation-delay:-3s; }
@keyframes float { 50% { transform:translateY(-10px); } }
.about-txt > p { color:var(--txt2); margin-bottom:16px; }
.values { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:26px; }
.value { display:flex; gap:14px; padding:16px; border-radius:18px; transition:transform .25s, border-color .25s; }
.value:hover { transform:translateY(-3px); border-color:rgba(232,192,116,.35); }
.value h3 { font:800 .98rem/1.3 var(--body); color:var(--head); margin-bottom:3px; }
.value p { font-size:.86rem; color:var(--txt2); line-height:1.5; }

/* ── NUMERI ── */
.stats { display:grid; grid-template-columns:repeat(4,1fr); padding:34px 20px; border-radius:28px; }
.stat { text-align:center; position:relative; }
.stat + .stat::before { content:''; position:absolute; left:0; top:12%; bottom:12%; width:1px; background:linear-gradient(transparent,rgba(236,210,255,.2),transparent); }
.num {
  display:block; font:700 clamp(2.6rem,5vw,3.6rem)/1 var(--serif); color:transparent; -webkit-background-clip:text; background-clip:text;
  background-image:linear-gradient(180deg,#fffaf0,#f8e3ae 40%,#e8c074 55%,#b98a3a);
  font-variant-numeric:tabular-nums;
}
.lbl { display:block; margin-top:8px; font:700 .72rem/1.3 var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--txt2); }

/* ── TRATTAMENTI ── */
.svc-tools { display:flex; flex-direction:column; align-items:center; gap:16px; margin-bottom:34px; }
.tabs { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.tab {
  display:inline-flex; align-items:center; gap:8px; padding:.62em 1.05em; border-radius:999px; cursor:pointer;
  border:1px solid var(--glass-b); background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
  color:var(--txt2); font:700 .86rem/1 var(--body); transition:all .2s;
}
.tab i { color:var(--gold); }
.tab em { font:700 .68rem/1 var(--mono); font-style:normal; padding:.28em .5em; border-radius:999px; background:rgba(255,255,255,.08); }
.tab:hover { color:var(--head); border-color:rgba(232,192,116,.35); }
.tab[aria-selected="true"] { color:#2b1a06; border-color:rgba(0,0,0,.4); background:linear-gradient(180deg,#fff4d6 0%,#e8bf6c 50%,#b98a3a 51%,#e8bf6c 100%); box-shadow:0 0 18px rgba(232,192,116,.35), inset 0 1px 0 rgba(255,255,255,.9); }
.tab[aria-selected="true"] i { color:#5a3a0c; }
.tab[aria-selected="true"] em { background:rgba(0,0,0,.12); }
.search {
  display:flex; align-items:center; gap:10px; width:min(100%,460px); padding:.2em .4em .2em 1em; border-radius:999px;
  border:1px solid var(--glass-b); background:rgba(0,0,0,.25); box-shadow:inset 0 2px 8px rgba(0,0,0,.35); transition:border-color .2s, box-shadow .2s;
}
.search:focus-within { border-color:var(--gold); box-shadow:inset 0 2px 8px rgba(0,0,0,.35), 0 0 0 3px rgba(232,192,116,.18); }
.search .pr { font:700 .8rem/1 var(--mono); color:var(--gold); }
.search input { flex:1; min-width:0; background:none; border:0; outline:none; color:var(--head); font:400 .92rem/1 var(--mono); padding:.75em 0; }
.search input::placeholder { color:rgba(179,165,194,.6); }
.svc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(258px,1fr)); gap:20px; }
.card {
  --mx:50%; --my:0%;
  text-align:left; cursor:pointer; padding:0; overflow:hidden; display:flex; flex-direction:column;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s;
  animation:pop .5s cubic-bezier(.2,.7,.2,1) both; animation-delay:var(--d,0s);
}
.card::after { /* luce che segue il cursore */
  content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .3s;
  background:radial-gradient(420px circle at var(--mx) var(--my),rgba(248,227,174,.14),transparent 45%);
}
.card:hover { transform:translateY(-6px); border-color:rgba(232,192,116,.4); box-shadow:var(--shadow), 0 0 40px rgba(232,192,116,.12); }
.card:hover::after { opacity:1; }
@keyframes pop { from { opacity:0; transform:translateY(18px) scale(.98); } to { opacity:1; transform:none; } }
.card-img { position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0; }
.card-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.card:hover .card-img img { transform:scale(1.06); }
.card-img::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(11,7,16,.85)); }
.card-ico { position:relative; height:0; z-index:2; }
.card-ico .ico { position:absolute; left:16px; top:-21px; }
.card-link { all:unset; cursor:pointer; }
.card-link::before { content:''; position:absolute; inset:0; z-index:3; border-radius:inherit; }
.card:has(.card-link:focus-visible) { outline:2px solid var(--gold); outline-offset:3px; }
.card-body { padding:30px 18px 16px; display:flex; flex-direction:column; gap:4px; flex:1; }
.card h3 { font:600 1.42rem/1.12 var(--serif); color:var(--head); }
.card p { font-size:.88rem; color:var(--txt2); }
.card-foot { margin-top:auto; padding-top:12px; display:flex; justify-content:space-between; align-items:center; gap:8px; }
.note {
  position:absolute; top:12px; right:12px; z-index:1; max-width:calc(100% - 24px);
  font:700 .64rem/1.2 var(--mono); letter-spacing:.04em; color:var(--head); padding:.5em .8em; border-radius:999px;
  background:rgba(11,7,16,.55); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid rgba(248,227,174,.3);
}
.cat { font:700 .64rem/1.2 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--txt2); }
.more { font:800 .8rem/1 var(--body); color:var(--gold); display:inline-flex; gap:6px; align-items:center; transition:gap .2s; white-space:nowrap; }
.card:hover .more { gap:10px; }
.empty { text-align:center; color:var(--txt2); padding:40px 0; }

/* ── QUIZ ── */
.quiz-wrap { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center; }
.quiz-perks { list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.quiz-perks li { display:inline-flex; align-items:center; gap:8px; padding:.5em .95em; border-radius:999px; border:1px solid var(--glass-b); font:700 .74rem/1 var(--mono); color:var(--txt2); background:rgba(255,255,255,.03); }
.quiz-perks i { color:var(--gold); }
.quiz { padding:14px 22px 24px; border-radius:28px; min-height:410px; }
.quiz-bar { display:flex; justify-content:space-between; align-items:center; padding:4px 0 12px; font:700 .72rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--txt2); }
.gadget-dots { display:flex; gap:6px; }
.gadget-dots i { width:10px; height:10px; border-radius:50%; background:var(--rose); box-shadow:inset 0 -2px 3px rgba(0,0,0,.25), 0 0 6px rgba(242,167,195,.5); }
.gadget-dots i:nth-child(2) { background:var(--gold); box-shadow:inset 0 -2px 3px rgba(0,0,0,.25), 0 0 6px rgba(232,192,116,.5); }
.gadget-dots i:nth-child(3) { background:var(--sage); box-shadow:inset 0 -2px 3px rgba(0,0,0,.25), 0 0 6px rgba(143,216,184,.5); }
.quiz-progress { height:4px; border-radius:4px; background:rgba(255,255,255,.08); overflow:hidden; margin-bottom:22px; }
.quiz-progress span { display:block; height:100%; width:33%; background:linear-gradient(90deg,var(--gold),var(--lilac)); box-shadow:0 0 10px rgba(232,192,116,.6); transition:width .5s ease; }
.q-step { border:0; display:none; }
.q-step.active { display:block; animation:stepIn .45s cubic-bezier(.2,.7,.2,1) both; }
@keyframes stepIn { from { opacity:0; transform:translateX(24px); } to { opacity:1; transform:none; } }
.q-step legend { font:600 clamp(1.6rem,3vw,2.05rem)/1.15 var(--serif); color:var(--head); margin-bottom:18px; }
.q-opts { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.q-opts button {
  display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:12px; align-items:center; text-align:left;
  padding:14px; border-radius:18px; cursor:pointer; border:1px solid var(--glass-b);
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02)); transition:transform .2s, border-color .2s, background .2s, box-shadow .2s;
}
.q-opts button i { grid-row:span 2; width:40px; height:40px; border-radius:12px; display:grid; place-items:center; font-size:1.05rem; color:var(--gold-l); background:rgba(232,192,116,.1); border:1px solid rgba(232,192,116,.22); }
.q-opts button b { font:800 .98rem/1.2 var(--body); }
.q-opts button small { font-size:.8rem; color:var(--txt2); line-height:1.35; }
.q-opts button:hover { transform:translateY(-2px); border-color:rgba(232,192,116,.45); box-shadow:0 0 22px rgba(232,192,116,.12); }
.q-opts button.sel { border-color:var(--gold); background:linear-gradient(180deg,rgba(232,192,116,.18),rgba(232,192,116,.05)); }
.q-opts button:last-child:nth-child(odd) { grid-column:span 2; }
.q-opts.two button:last-child { grid-column:auto; }
.q-back { margin-top:16px; background:none; border:0; color:var(--txt2); font:700 .76rem/1 var(--mono); cursor:pointer; display:inline-flex; gap:8px; align-items:center; }
.q-back:hover { color:var(--gold-l); }
.q-result { animation:stepIn .5s cubic-bezier(.2,.7,.2,1) both; }
.q-res-kicker { font:700 .74rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.q-result h3 { font:600 clamp(1.8rem,3.4vw,2.4rem)/1.1 var(--serif); color:var(--head); margin-bottom:16px; }
.q-picks { display:flex; flex-direction:column; gap:10px; }
.pick {
  display:flex; align-items:center; gap:14px; padding:10px; border-radius:16px; cursor:pointer; text-align:left; width:100%;
  border:1px solid var(--glass-b); background:rgba(255,255,255,.04); transition:border-color .2s, transform .2s;
  animation:pop .5s cubic-bezier(.2,.7,.2,1) both; animation-delay:var(--d,0s);
}
.pick:hover { border-color:rgba(232,192,116,.45); transform:translateX(4px); }
.pick img { width:62px; height:62px; border-radius:12px; object-fit:cover; flex:none; }
.pick span { flex:1; min-width:0; }
.pick b { display:block; font:600 1.2rem/1.15 var(--serif); }
.pick small { display:block; font-size:.82rem; color:var(--txt2); }
.pick .rank { font:700 .7rem/1 var(--mono); color:var(--gold); flex:none; }
.q-note { font-size:.8rem; color:var(--txt2); margin:14px 0 18px; padding-left:12px; border-left:2px solid rgba(191,162,234,.4); }
.q-actions { display:flex; gap:12px; flex-wrap:wrap; }

/* ── TECNOLOGIE ── */
.tech-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.tech { padding:12px 12px 20px; border-radius:22px; transition:transform .3s, border-color .3s; }
.tech:hover { transform:translateY(-5px); border-color:rgba(191,162,234,.4); }
.tech-img { aspect-ratio:16/11; border-radius:14px; overflow:hidden; margin-bottom:14px; }
.tech-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.tech:hover .tech-img img { transform:scale(1.06); }
.tech h3 { font:600 1.3rem/1.15 var(--serif); color:var(--head); padding:0 6px; margin-bottom:6px; }
.tech p { font-size:.86rem; color:var(--txt2); padding:0 6px; line-height:1.55; }
.tag { display:inline-block; margin:12px 6px 0; font:700 .64rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--gold-l); padding:.5em .8em; border-radius:999px; background:rgba(232,192,116,.1); border:1px solid rgba(232,192,116,.22); }

/* ── RESPIRA ── */
#respira { background:radial-gradient(60% 70% at 70% 50%,rgba(123,84,196,.14),transparent 70%); }
.breathe-wrap { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.patterns { display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }
.patterns button {
  display:flex; flex-direction:column; gap:4px; padding:.8em 1.2em; border-radius:16px; cursor:pointer; text-align:left;
  border:1px solid var(--glass-b); background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02)); transition:border-color .2s, background .2s;
}
.patterns b { font:800 .95rem/1 var(--body); }
.patterns small { font:700 .7rem/1 var(--mono); color:var(--txt2); }
.patterns button[aria-checked="true"] { border-color:var(--lilac); background:linear-gradient(180deg,rgba(191,162,234,.2),rgba(191,162,234,.05)); box-shadow:0 0 18px rgba(191,162,234,.2); }
.breathe { padding:28px; border-radius:30px; }
.orb-stage { position:relative; aspect-ratio:1; max-width:340px; margin:0 auto; display:grid; place-items:center; }
.orb-ring { position:absolute; inset:0; border-radius:50%; border:1px dashed rgba(232,192,116,.35); }
.orb-ring::before { content:''; position:absolute; inset:18%; border-radius:50%; border:1px solid rgba(191,162,234,.18); }
.orb {
  position:relative; width:92%; aspect-ratio:1; border-radius:50%; transform:scale(.45);
  background:radial-gradient(circle at 34% 28%,#ffffff 0%,#f5ecff 16%,#d9c3fa 42%,#9f78de 72%,#5b36a3 100%);
  box-shadow:0 0 60px rgba(191,162,234,.55), 0 0 140px rgba(232,192,116,.22), inset -18px -24px 50px rgba(60,20,110,.45), inset 10px 10px 30px rgba(255,255,255,.5);
  transition:transform var(--dur,4s) cubic-bezier(.45,.05,.55,.95), box-shadow 1s;
}
.orb-shine { position:absolute; left:18%; top:12%; width:34%; height:22%; border-radius:50%; background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,255,255,0)); filter:blur(2px); transform:rotate(-24deg); }
.orb.idle { animation:idle 5s ease-in-out infinite; }
@keyframes idle { 50% { transform:scale(.52); } }
.orb-label { text-align:center; margin-top:18px; min-height:3.2em; }
.orb-label b { display:block; font:600 1.9rem/1.1 var(--serif); color:var(--head); }
.orb-label span { font:700 .76rem/1.6 var(--mono); color:var(--txt2); letter-spacing:.08em; }
.breathe-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:18px; padding-top:16px; border-top:1px solid rgba(236,210,255,.1); flex-wrap:wrap; }
.breathe-foot .mono { font-size:.8rem; color:var(--txt2); }

/* ── METODO ── */
.steps { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative; }
.steps::before {
  content:''; position:absolute; left:12.5%; right:12.5%; top:56px; height:2px; transform-origin:0 50%; transform:scaleX(0);
  background:linear-gradient(90deg,var(--gold),var(--lilac),var(--rose),var(--gold)); box-shadow:0 0 12px rgba(232,192,116,.5);
  transition:transform 1.6s cubic-bezier(.2,.7,.2,1) .3s;
}
.steps.on::before { transform:scaleX(1); }
.step { text-align:center; position:relative; }
.step-img { width:112px; height:112px; margin:0 auto 16px; border-radius:50%; padding:3px; background:conic-gradient(from 200deg,var(--gold-l),var(--gold-d),var(--lilac),var(--gold-l)); box-shadow:0 0 30px rgba(232,192,116,.25); position:relative; z-index:1; }
.step-img img { width:100%; height:100%; object-fit:cover; border-radius:50%; border:3px solid var(--bg); }
.step-n { font:700 .78rem/1 var(--mono); color:var(--gold); letter-spacing:.14em; }
.step h3 { font:600 1.6rem/1.2 var(--serif); color:var(--head); margin:6px 0 8px; }
.step p { font-size:.9rem; color:var(--txt2); max-width:24em; margin:0 auto; }

/* ── RISULTATI ── */
.filters { display:flex; gap:8px; flex-wrap:wrap; }
.filters button { padding:.6em 1.1em; border-radius:999px; cursor:pointer; border:1px solid rgba(232,192,116,.3); background:none; color:var(--txt2); font:700 .76rem/1 var(--mono); letter-spacing:.08em; text-transform:uppercase; transition:all .2s; }
.filters button:hover { color:var(--head); }
.filters button.on { background:var(--gold); border-color:var(--gold); color:#2b1a06; box-shadow:0 0 18px rgba(232,192,116,.35); }
.res-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.res { position:relative; border-radius:24px; overflow:hidden; aspect-ratio:3/4; border:1px solid rgba(232,192,116,.18); box-shadow:var(--shadow); transition:opacity .35s, transform .35s; }
.res img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.res:hover img { transform:scale(1.05); }
.res.off { display:none; }
.res-lbl { position:absolute; top:16px; left:16px; font:700 .66rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:#2b1a06; background:var(--gold); padding:.5em .8em; border-radius:999px; }
.res figcaption { position:absolute; left:14px; right:14px; bottom:14px; padding:12px 16px; border-radius:16px; background:rgba(16,9,22,.74); }
.res figcaption b { display:block; font:600 1.25rem/1.2 var(--serif); color:var(--gold-l); }
.res figcaption span { font-size:.82rem; color:var(--txt2); }

/* ── RECENSIONI ── */
.rating { display:flex; flex-direction:column; align-items:center; padding:16px 26px; border-radius:22px; }
.rating .big { font:700 3.2rem/1 var(--serif); color:var(--head); }
.stars { color:var(--gold); letter-spacing:3px; font-size:.9rem; }
.rating small { font:700 .7rem/1.6 var(--mono); color:var(--txt2); }
.reviews { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.review { padding:28px; border-radius:24px; display:flex; flex-direction:column; gap:16px; transition:transform .3s, border-color .3s; }
.review:hover { transform:translateY(-4px); border-color:rgba(232,192,116,.35); }
.review::after { content:'\201C'; position:absolute; top:4px; right:20px; font:700 5.5rem/1 var(--serif); color:rgba(232,192,116,.18); }
.review p { font:500 1.18rem/1.55 var(--serif); font-style:italic; color:var(--txt); flex:1; }
.review footer { display:flex; align-items:center; gap:12px; }
.review footer b { display:block; font-size:.95rem; }
.review footer small { font-size:.78rem; color:var(--txt2); }
.avatar { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; font:700 1.2rem/1 var(--serif); color:#2b1a06; background:linear-gradient(135deg,var(--gold-l),var(--lilac-l)); box-shadow:0 0 16px rgba(232,192,116,.3); }

/* ── TEAM ── */
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.member { padding:30px 24px; border-radius:26px; text-align:center; transition:transform .3s, border-color .3s; }
.member:hover { transform:translateY(-6px); border-color:rgba(232,192,116,.35); }
.avatar-xl { width:150px; height:150px; margin:0 auto 18px; border-radius:50%; padding:3px; background:conic-gradient(from 0deg,var(--gold-l),var(--lilac),var(--rose),var(--gold),var(--gold-l)); box-shadow:0 0 36px rgba(191,162,234,.25); }
.avatar-xl img { width:100%; height:100%; border-radius:50%; object-fit:cover; border:4px solid var(--bg2); }
.member h3 { font:600 1.8rem/1.1 var(--serif); color:var(--head); }
.role { font:700 .7rem/1.4 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin:6px 0 12px; }
.member > p:not(.role) { font-size:.9rem; color:var(--txt2); }
.tags { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin-top:16px; }
.tags li { font:700 .68rem/1 var(--mono); padding:.5em .75em; border-radius:999px; color:var(--lilac-l); background:rgba(191,162,234,.1); border:1px solid rgba(191,162,234,.2); }

/* ── FAQ ── */
.faq-wrap { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:start; }
.faq-wrap .sec-head { position:sticky; top:calc(var(--nh) + 40px); margin-bottom:0; }
.faq-wrap .sec-head .pearl { margin-top:14px; }
.faq-list { display:flex; flex-direction:column; gap:12px; }
.faq { border-radius:18px; transition:border-color .25s; }
.faq[open] { border-color:rgba(232,192,116,.4); }
.faq summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 20px; font:700 1rem/1.4 var(--body); color:var(--head); border-radius:18px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary i { flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-size:.8rem; color:var(--gold); background:rgba(232,192,116,.1); border:1px solid rgba(232,192,116,.25); transition:transform .3s, background .3s, color .3s; }
.faq[open] summary i { transform:rotate(45deg); background:var(--gold); color:#2b1a06; }
.faq p { padding:0 20px 20px; color:var(--txt2); font-size:.94rem; animation:rise .4s ease both; }

/* ── PRENOTA ── */
#prenota { background:radial-gradient(70% 60% at 20% 30%,rgba(232,192,116,.08),transparent 70%); }
.book { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:start; }
.contacts { list-style:none; display:flex; flex-direction:column; gap:18px; margin-top:30px; }
.contacts li { display:flex; gap:14px; align-items:flex-start; }
.contacts b { display:flex; align-items:center; gap:10px; font-size:.95rem; margin-bottom:2px; }
.contacts a, .contacts .hours { display:block; color:var(--txt2); font-size:.92rem; }
.contacts a:hover { color:var(--gold-l); }
.badge-open { font:700 .62rem/1 var(--mono); font-style:normal; letter-spacing:.08em; text-transform:uppercase; padding:.4em .65em; border-radius:999px; }
.badge-open.on { color:#052016; background:var(--sage); }
.badge-open.off { color:#3a0614; background:#ff9db5; }
.badge-open:empty { display:none; }
.socials { display:flex; gap:10px; margin-top:26px; }
.socials a { width:46px; height:46px; border-radius:50%; display:grid; place-items:center; color:var(--txt); font-size:1.1rem; border:1px solid var(--glass-b); background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.02)); transition:all .2s; }
.socials a:hover { color:#2b1a06; background:var(--gold); border-color:var(--gold); transform:translateY(-3px); box-shadow:0 0 18px rgba(232,192,116,.4); }
.book-form { padding:30px; border-radius:30px; }
.f-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.f { display:block; margin-bottom:14px; border:0; }
.f > span, .f legend { display:block; font:700 .7rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--txt2); margin-bottom:8px; }
.f input, .f select, .f textarea {
  width:100%; padding:.85em 1em; border-radius:14px; border:1px solid rgba(236,210,255,.14); outline:none;
  background:rgba(0,0,0,.28); color:var(--head); font:400 .95rem/1.4 var(--body);
  box-shadow:inset 0 2px 8px rgba(0,0,0,.3); transition:border-color .2s, box-shadow .2s;
}
.f textarea { resize:vertical; min-height:92px; }
.f select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%); background-position:calc(100% - 20px) 55%, calc(100% - 15px) 55%; background-size:5px 5px; background-repeat:no-repeat; padding-right:2.4em; }
.f select option, .f select optgroup { background:#1a1022; color:var(--head); }
.f input::placeholder, .f textarea::placeholder { color:rgba(179,165,194,.55); }
.f input:focus, .f select:focus, .f textarea:focus { border-color:var(--gold); box-shadow:inset 0 2px 8px rgba(0,0,0,.3), 0 0 0 3px rgba(232,192,116,.16); }
.f input.bad, .f select.bad { border-color:#ff8aa8; }
.when { display:flex; flex-wrap:wrap; gap:8px; }
.when legend { width:100%; }
.when label { cursor:pointer; position:relative; }
.f.when input { position:absolute; left:0; top:0; width:1px; height:1px; opacity:0; pointer-events:none; }
.when span { display:inline-block; padding:.55em 1em; border-radius:999px; border:1px solid var(--glass-b); font:700 .82rem/1 var(--body); color:var(--txt2); background:rgba(255,255,255,.03); transition:all .2s; }
.when input:checked + span { color:#2b1a06; background:var(--gold); border-color:var(--gold); box-shadow:0 0 14px rgba(232,192,116,.35); }
.when input:focus-visible + span { outline:2px solid var(--gold); outline-offset:2px; }
.consent { display:flex; gap:10px; align-items:flex-start; font-size:.84rem; color:var(--txt2); margin:4px 0 16px; cursor:pointer; }
.consent input { margin-top:3px; accent-color:var(--gold); width:16px; height:16px; flex:none; }
.f-err { color:#ffb3c6; font-size:.86rem; margin-bottom:12px; }
.done { text-align:center; padding:20px 6px; animation:rise .6s ease both; }
.done-moon { width:110px; height:110px; margin:0 auto 18px; border-radius:50%; display:grid; place-items:center; background:radial-gradient(circle,rgba(232,192,116,.25),transparent 70%); animation:breatheSoft 3s ease-in-out infinite; }
.done h3 { font:600 2.1rem/1.1 var(--serif); color:var(--head); margin-bottom:10px; }
.done p { color:var(--txt2); max-width:28em; margin:0 auto 22px; }
.done-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:18px; }

/* ── FOOTER ── */
.foot { padding:80px 0 30px; border-top:1px solid rgba(236,210,255,.08); background:linear-gradient(180deg,transparent,rgba(0,0,0,.35)); }
.foot-in { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; margin-bottom:50px; }
.foot-brand img { width:200px; height:auto; margin-bottom:14px; }
.foot-brand p { color:var(--txt2); font-size:.9rem; max-width:22em; }
.foot-col h4 { font:700 .72rem/1 var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.foot-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.foot-col a { color:var(--txt2); font-size:.92rem; transition:color .2s; }
.foot-col a:hover { color:var(--gold-l); }
.foot-bottom { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:24px; border-top:1px solid rgba(236,210,255,.08); font-size:.8rem; color:rgba(179,165,194,.7); }
.credit { font-family:var(--mono); font-size:.74rem; }
.credit a { color:var(--gold-l); }
.heart { color:var(--rose); display:inline-block; animation:beat 1.6s ease-in-out infinite; }
@keyframes beat { 15%,45% { transform:scale(1.25); } 30% { transform:scale(1); } }

/* ── SCHEDA TRATTAMENTO ── */
dialog { border:0; padding:0; background:none; color:inherit; max-width:min(880px,calc(100% - 24px)); width:100%; margin:auto; overflow:visible; }
dialog::backdrop { background:rgba(8,4,12,.7); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
dialog[open] .sheet { animation:sheetIn .45s cubic-bezier(.2,.7,.2,1) both; }
@keyframes sheetIn { from { opacity:0; transform:translateY(30px) scale(.97); } to { opacity:1; transform:none; } }
.sheet {
  position:relative; display:grid; grid-template-columns:1fr 1.1fr; border-radius:28px; overflow:hidden; max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px);
  background:linear-gradient(160deg,#1c1227,#120b19); border:1px solid rgba(232,192,116,.25); box-shadow:0 30px 80px rgba(0,0,0,.7), 0 0 60px rgba(123,84,196,.2);
}
.sheet-img img { width:100%; height:100%; object-fit:cover; }
.sheet-body { padding:34px 30px; overflow:auto; }
.sheet-body h3 { font:600 2.3rem/1.05 var(--serif); color:var(--head); margin-bottom:6px; }
.sheet-sub { color:var(--txt2); margin-bottom:18px; }
.sheet-list { list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:20px; }
.sheet-list li { display:flex; gap:12px; font-size:.95rem; }
.sheet-list li::before { content:'✦'; color:var(--gold); flex:none; }
.sheet-note { font:700 .76rem/1.4 var(--mono); color:var(--lilac-l); margin-bottom:24px; }
.sheet-note i { color:var(--gold); }
.sheet-x { position:absolute; top:14px; right:14px; z-index:2; width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:rgba(11,7,16,.6); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); color:#fff; cursor:pointer; font-size:1rem; transition:transform .2s, background .2s; }
.sheet-x:hover { transform:rotate(90deg); background:rgba(232,192,116,.3); }

/* ── EXTRA ── */
#su { position:fixed; right:18px; bottom:18px; z-index:90; width:50px; height:50px; border-radius:50%; cursor:pointer; border:1px solid rgba(0,0,0,.4); color:#2b1a06; font-size:1rem; background:radial-gradient(circle at 35% 30%,#fffaf0,#f8e3ae 35%,#e8c074 65%,#a9772a); box-shadow:0 0 20px rgba(232,192,116,.45), 0 8px 18px rgba(0,0,0,.45); opacity:0; transform:translateY(20px) scale(.8); pointer-events:none; transition:opacity .3s, transform .3s; }
#su.on { opacity:1; transform:none; pointer-events:auto; }
#su:hover { transform:translateY(-3px); }
#toast { position:fixed; left:50%; bottom:24px; z-index:400; transform:translate(-50%,30px); opacity:0; pointer-events:none; padding:.9em 1.4em; border-radius:999px; font:700 .9rem/1.2 var(--body); color:var(--head); background:rgba(24,14,32,.9); border:1px solid rgba(232,192,116,.4); box-shadow:0 0 30px rgba(232,192,116,.25), 0 10px 30px rgba(0,0,0,.5); transition:opacity .35s, transform .35s; max-width:calc(100% - 32px); text-align:center; }
#toast.on { opacity:1; transform:translate(-50%,0); }

/* ── RESPONSIVE ── */
@media (max-width:1060px) {
  #links a:not(.pearl) { padding:.6em .6em; font-size:.72rem; }
  .tech-grid { grid-template-columns:repeat(2,1fr); }
  .foot-in { grid-template-columns:1fr 1fr; }
}
@media (max-width:920px) {
  #menu { display:flex; }
  #links {
    position:absolute; top:calc(100% + 10px); left:0; right:0; flex-direction:column; align-items:stretch; gap:4px; padding:12px;
    background:linear-gradient(180deg,#1b1124,#120b19); border:1px solid var(--glass-b); border-radius:24px;
    box-shadow:0 20px 40px rgba(0,0,0,.6); opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .25s, transform .25s, visibility .25s;
  }
  #links.open { opacity:1; visibility:visible; transform:none; }
  #links a:not(.pearl) { padding:.95em 1em; font-size:.88rem; }
  #links li:last-child { margin:6px 0 0; }
  #links .pearl { width:100%; }
  .hero { padding-top:calc(var(--nh) + 44px); }
  .hero-in { grid-template-columns:1fr; gap:40px; }
  .hero-side { order:2; }
  .about, .quiz-wrap, .breathe-wrap, .faq-wrap, .book { grid-template-columns:1fr; gap:40px; }
  .faq-wrap .sec-head { position:static; }
  .stats { grid-template-columns:repeat(2,1fr); row-gap:28px; }
  .stat:nth-child(3)::before { display:none; }
  .steps { grid-template-columns:repeat(2,1fr); row-gap:40px; }
  .steps::before { display:none; }
  .res-grid, .reviews, .team-grid { grid-template-columns:repeat(2,1fr); }
  .sheet { grid-template-columns:1fr; }
  .sheet-img { max-height:34vh; overflow:hidden; }
}
@media (max-width:620px) {
  body { font-size:16px; }
  .sec { padding:84px 0; }
  .brand small { display:none; }
  .hero-btns .pearl { flex:1 1 100%; }
  .tabs { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scroll-snap-type:x proximity; width:calc(100% + 40px); margin:0 -20px; padding:4px 20px 8px; scrollbar-width:none; }
  .tabs::-webkit-scrollbar { display:none; }
  .tab { flex:none; scroll-snap-align:start; }
  .q-opts { grid-template-columns:1fr; }
  .q-opts button:last-child:nth-child(odd) { grid-column:auto; }
  .quiz { padding:12px 16px 20px; }
  .tech-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .tech { padding:8px 8px 14px; }
  .tech h3 { font-size:1.1rem; }
  .tech p { display:none; }
  .steps { grid-template-columns:1fr; }
  .res-grid, .reviews, .team-grid { grid-template-columns:1fr; }
  .reviews { grid-auto-flow:column; grid-auto-columns:86%; grid-template-columns:none; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; }
  .review { scroll-snap-align:center; }
  .res { aspect-ratio:4/3; }
  .f-row { grid-template-columns:1fr; gap:0; }
  .book-form { padding:22px 18px; }
  .cf1 { left:10px; } .cf2 { right:10px; }
  .foot-in { grid-template-columns:1fr; gap:30px; }
  .sheet-body { padding:24px 20px; }
  .sheet-body h3 { font-size:1.9rem; }
  .breathe { padding:20px; }
}

/* meno movimento, se richiesto */
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  html { scroll-behavior:auto; }
  .rv:not(.in) { opacity:1; transform:none; }
  .orb { transition:transform var(--dur,4s) linear !important; }
}
