/* Piero Napoli Fotografo · design system «Natale caldo» (piano §2)
   Font ospitati in locale (SECURITY.md §2.1). Nessuno stile in linea: tutto qui, per rispettare la CSP.
   Ordine: font · token · base · componenti condivisi · pagina principale · altre pagine · movimento · responsive. */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500 600;font-display:swap;src:url(fonts/cormorant-garamond.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-italic.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/dm-sans.woff2) format("woff2")}

/* ---------- Token ---------- */
:root{
  /* palette (§2.1) */
  --night:#1a0b10; --wine-deep:#2a0a12; --wine:#4a0f1e; --plum:#3b1431;
  --bordeaux:#8e1328; --cranberry:#b3122e;
  --gold:#e7b75f; --gold-soft:#f2d49b; --gold-ink:#8a5f1c; --gold-tint:#fbf1dc;
  --pine:#1f3d2e; --pine-deep:#14281e; --pine-soft:#e6efe9;
  --cream:#fbf6ef; --paper:#fffaf4; --surface:#ffffff;
  --ink:#2a1b1f; --ink-soft:#5f4b52; --ink-faint:#7a6570;
  --line:#ecdfd6; --line-strong:#9c8577;
  --focus:#8e1328;
  --ok:#17663f; --ok-bg:#e3f3ea; --err:#a3201c; --err-bg:#fbe8e6; --todo:#fff1c7; --todo-ink:#6b4f00;
  --wa:#1f7a4d;
  /* alias di compatibilità: le pagine non ancora migrate non si rompono */
  --burgundy-deep:var(--wine); --burgundy:var(--bordeaux); --rose:var(--cranberry);
  /* gradienti (§2.2) */
  --grad-hero:radial-gradient(70% 45% at 85% 0%,rgba(231,183,95,.24) 0,transparent 70%),
              radial-gradient(80% 55% at 0% 100%,rgba(179,18,46,.30) 0,transparent 70%),
              linear-gradient(170deg,#1a0b10 0%,#2a0a12 50%,#4a0f1e 100%);
  --grad-pine:radial-gradient(60% 50% at 90% 10%,rgba(231,183,95,.18) 0,transparent 70%),
              linear-gradient(165deg,#14281e 0%,#1f3d2e 60%,#24452f 100%);
  --grad-cta:linear-gradient(135deg,#c41e3a 0%,#8e1328 100%);
  --grad-gold:linear-gradient(135deg,#f8e1b0 0%,#e7b75f 55%,#d49a3f 100%);
  --grad-soft:linear-gradient(180deg,#fffaf4 0%,#f8efe4 100%);
  /* tipografia (§2.3) */
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-display:clamp(36px,9.6vw,76px); --fs-h2:clamp(30px,7.4vw,48px); --fs-h3:18px;
  --fs-body:16px; --fs-small:14px; --fs-micro:12px; --fs-price:clamp(48px,12vw,60px);
  /* spazi e forma (§2.4) */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:72px;
  --r-sm:12px; --r:18px; --r-lg:24px;
  --radius:var(--r); --radius-lg:var(--r-lg);
  --shadow-sm:0 1px 2px rgba(42,10,18,.06),0 8px 20px -14px rgba(42,10,18,.35);
  --shadow:0 2px 4px rgba(42,10,18,.05),0 24px 48px -28px rgba(42,10,18,.5);
  /* movimento (§2.6) */
  --ease-out:cubic-bezier(.2,.7,.2,1); --dur-1:160ms; --dur-2:260ms; --dur-3:520ms;
  /* icone disegnate (il font non ha i glifi delle spunte) */
  --tick-ok:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317663f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
  --tick-gold:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2d49b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
  --cross-err:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3201c' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6.5 6.5l11 11M17.5 6.5l-11 11'/%3E%3C/svg%3E");
  --tick-wine:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238e1328' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
}
@media (min-width:861px){:root{--fs-body:17px}}

/* ---------- Base ---------- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;background:var(--cream);color:var(--ink);font:400 var(--fs-body)/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;display:block}
a{color:inherit}
button{font:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.hero,.final,.set,.area-hero,.ticket-head,.sticky-cta,footer.site,.topbar:not(.light-bar){--focus:var(--gold-soft)}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:720px}
h1,h2{font-family:var(--serif);font-weight:600;margin:0;text-wrap:balance}
h1{font-size:var(--fs-display);line-height:1.02;letter-spacing:-.015em}
h2{font-size:var(--fs-h2);line-height:1.06;letter-spacing:-.01em;color:var(--wine)}
h3{font:700 var(--fs-h3)/1.3 var(--sans);letter-spacing:-.01em;margin:0;text-wrap:balance}
h1 em,h2 em{font-style:italic;font-weight:500;color:var(--cranberry)}
.hero h1 em,.final h2 em,.set h2 em{background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em}
p{margin:0 0 14px}
.eyebrow{font:700 var(--fs-micro)/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);margin:0}
.hero .eyebrow,.final .eyebrow,.set .eyebrow,.area-hero .eyebrow{color:var(--gold-soft)}
.lead{font-size:18px;color:var(--ink-soft)}
.muted{color:var(--ink-soft)}
.small{font-size:var(--fs-small)}
section{padding:clamp(44px,9vw,88px) 0}
.section-head{display:grid;gap:8px;margin-bottom:clamp(20px,4vw,34px)}
.center{text-align:center;justify-items:center}
[id]{scroll-margin-top:16px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--bordeaux);color:#fff;padding:10px 16px;border-radius:10px;z-index:100}
.skip:focus{left:8px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.todo{background:var(--todo);color:var(--todo-ink);padding:1px 7px;border-radius:6px;border:1px dashed #c9a63a;font-weight:500}
.draft-bar{background:var(--todo);color:var(--todo-ink);font-size:13px;text-align:center;padding:6px 14px}

/* ---------- Pulsanti ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 26px;border-radius:999px;font:700 16px/1.2 var(--sans);text-align:center;text-decoration:none;border:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;text-wrap:balance}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--grad-cta);color:#fff}
.btn-gold{background:var(--grad-gold);color:var(--night)}
.btn-primary,.btn-gold{box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 28px -14px rgba(142,19,40,.7)}
.btn-outline{background:var(--surface);color:var(--wine);border:1.5px solid var(--line-strong)}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.42)}
.btn-sm{min-height:44px;padding:10px 18px;font-size:15px}
.btn-lg{min-height:56px;padding:16px 30px;font-size:17px}
.btn-block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;filter:none}
.btn .arrow{flex:none}
.link-arrow{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.tap{padding:12px 0;font-weight:700;text-underline-offset:4px;white-space:nowrap}
.link-arrow svg{flex:none}

/* Rassicurazione sotto un pulsante: spunta disegnata, testo vero */
.reassure{display:flex;flex-wrap:wrap;gap:6px 14px;margin:12px 0 0;font-size:var(--fs-small);line-height:1.4;color:var(--ink-soft)}
.reassure span{display:inline-flex;align-items:flex-start;gap:6px}
.reassure span::before{content:"";flex:none;width:14px;height:14px;margin-top:2px;background:var(--tick-ok) center/contain no-repeat}
.hero .reassure,.final .reassure,.sticky-cta .reassure{color:rgba(255,255,255,.8)}
.hero .reassure span::before,.final .reassure span::before{background-image:var(--tick-gold)}

/* Pill di disponibilità */
.pill{display:inline-flex;align-items:center;gap:8px;margin:0;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(242,212,155,.3);color:#fff;font:600 13px/1.2 var(--sans)}
.dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(231,183,95,.2)}
.dot.off{background:rgba(255,255,255,.35);box-shadow:none}

/* Etichetta di provenienza (foto, video, illustrazioni): sempre testo vero */
.stamp{position:absolute;left:10px;bottom:10px;z-index:2;margin:0;max-width:calc(100% - 20px);padding:5px 10px;border-radius:999px;background:rgba(26,11,16,.72);color:#fff;font:700 12px/1.25 var(--sans);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.badge{display:inline-block;margin:0;padding:7px 12px;border-radius:999px;background:var(--grad-gold);color:var(--night);font:700 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.chip-light{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);font-size:13px}

/* Giorno (link o pulsante) */
.day-chip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;min-width:92px;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font:700 15px/1.15 var(--sans);text-decoration:none;cursor:pointer;font-variant-numeric:lining-nums}
.day-chip small{display:block;margin-top:2px;font:700 12px/1.2 var(--sans);color:var(--gold-ink)}
.final .day-chip,.hero .day-chip{background:rgba(255,255,255,.07);border-color:rgba(242,212,155,.5);color:#fff}
.final .day-chip small,.hero .day-chip small{color:var(--gold-soft)}

/* Card unica: .look, .panel, .summary, .pkg ne riprendono i valori */
.card,.look,.panel,.summary,.pkg{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(18px,4.5vw,28px);box-shadow:var(--shadow-sm)}

/* Campi */
label{font-size:15px;font-weight:600}
input,select,textarea{font:inherit;font-size:16px;width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(179,18,46,.28);outline-offset:0;border-color:var(--cranberry)}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--err)}
textarea{min-height:92px;resize:vertical}
.field{display:grid;gap:6px}
.field.full,.field-error.full{grid-column:1/-1}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hint{font-size:13px;color:var(--ink-soft)}
.field-error{font-size:var(--fs-small);color:var(--err);font-weight:600;margin:0}
.field-error:empty{display:none}
.req{color:var(--bordeaux)}
.check{display:flex;gap:12px;align-items:flex-start;font-size:15px;font-weight:400;cursor:pointer;margin-top:16px;min-height:44px}
.check input{width:22px;height:22px;min-height:0;margin:2px 0 0;flex:none;accent-color:var(--bordeaux)}
.check a{color:var(--bordeaux)}
.check + .hint{margin:6px 0 0 34px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.alert{padding:13px 16px;border-radius:var(--r-sm);font-size:15px;margin-bottom:18px}
.alert.err{background:var(--err-bg);color:var(--err)}
.alert.ok{background:var(--ok-bg);color:var(--ok)}
.alert.info{background:var(--todo);color:var(--todo-ink)}
.ok-line::before{content:"";flex:none;width:14px;height:14px;margin-top:3px;background:var(--tick-ok) center/contain no-repeat}

/* Colori del set */
.palette-dots{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.palette-dots span{width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 2px 6px -2px rgba(0,0,0,.4)}
.sw-panna{background:#f3ead8}.sw-beige{background:#d9c3a1}.sw-cammello{background:#b08a5a}.sw-cioccolato{background:#5c3a28}.sw-bosco{background:#2f4a3a}.sw-bordeaux{background:#6e1d27}
.sw-tartan{background:repeating-linear-gradient(0deg,rgba(0,0,0,.25) 0 6px,transparent 6px 14px),repeating-linear-gradient(90deg,#2f4a3a 0 6px,#8f2430 6px 14px)}

/* Striscia di foto vere (si mostra solo quando i file esistono: public/media.js) */
.media-strip{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;margin:0 -16px;padding:4px 16px 10px;scrollbar-width:none;overscroll-behavior-x:contain}
.media-strip::-webkit-scrollbar{display:none}
.media-strip figure{position:relative;margin:0;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;scroll-snap-align:start;background:rgba(0,0,0,.25)}
.media-strip img{width:100%;height:100%;object-fit:cover}

/* Lista d'attesa «Avvisami» */
.waitlist{--focus:var(--bordeaux);max-width:520px;margin:28px auto 0;padding:clamp(20px,5vw,30px);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);text-align:left;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);border:1px solid rgba(242,212,155,.4)}
.waitlist h3{font-size:20px;color:var(--wine)}
.waitlist .wl-text{margin:6px 0 16px;color:var(--ink-soft);font-size:15px}
.waitlist form{display:grid;gap:14px}
.waitlist .check{margin-top:0}
.waitlist .check + .field-error{margin-top:-10px}
.waitlist .btn{margin-top:4px}
.waitlist .alert{margin:0}
.wl-done{margin:0;padding:14px 16px 14px 44px;border-radius:var(--r-sm);background:var(--ok-bg) 14px 16px/18px 18px no-repeat var(--tick-ok);color:var(--ok);font-weight:600}
.wl-done:focus{outline:none}

/* ---------- Barra in alto ---------- */
.topbar{position:relative;z-index:30;background:var(--night)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;height:56px}
.brand{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1;text-decoration:none;color:#fff;white-space:nowrap}
.brand span{color:var(--gold-soft);font-style:italic;font-weight:500}
.topbar nav{display:flex;align-items:center;gap:22px;font-size:14px}
.topbar nav a:not(.btn){color:rgba(255,255,255,.82);text-decoration:none;font-weight:500}
.topbar .btn{white-space:nowrap}
.home .topbar nav{display:none}
.home .topbar{position:absolute;top:0;left:0;right:0;background:transparent}
.home .hero{padding-top:74px}
.light-bar{position:sticky;top:0;background:linear-gradient(135deg,#c41e3a 0%,#8e1328 100%) top/100% 3px no-repeat,rgba(255,250,244,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.light-bar .brand{color:var(--wine)}
.light-bar .brand span{color:var(--gold-ink)}
.light-bar nav a:not(.btn){color:var(--ink-soft)}

/* ---------- Barra fissa in basso (solo telefono) e WhatsApp ---------- */
.sticky-cta{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:6px;margin:0;padding:6px 6px 6px 14px;border-radius:999px;background:rgba(26,11,16,.94);border:1px solid rgba(242,212,155,.22);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;box-shadow:0 18px 40px -16px rgba(0,0,0,.65);transform:translateY(140%);visibility:hidden}
.sticky-cta.is-on{transform:none;visibility:visible}
.sc-text{flex:1;min-width:0;margin:0;line-height:1.18}
.sc-text strong{display:block;font-size:14px;white-space:nowrap}
@media (max-width:359px){.sc-text strong{white-space:normal}} /* sotto i 360 px va a capo invece di finire sotto WhatsApp */
.sc-text small{display:block;font-size:12px;color:rgba(255,255,255,.75);text-wrap:balance}
.sc-wa{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--wa);color:#fff}
.sticky-cta .btn{flex:none;padding:10px 15px;font-size:14px}
.wa-float{display:none}

/* ---------- Pagina principale ---------- */
/* Apertura */
.hero{position:relative;overflow:hidden;background:var(--grad-hero);color:#fff;padding:18px 0 30px}
.snow{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.snow i{position:absolute;top:-10px;border-radius:50%;background:radial-gradient(circle,#fff 0,rgba(255,255,255,.7) 45%,rgba(255,255,255,0) 72%)}
.hero-grid{position:relative;display:grid;gap:20px}
.hero-copy{position:relative;z-index:2}
.hero h1{margin:14px 0 12px;color:#fff}
.hero .sub{margin:0 0 14px;max-width:34em;font-size:16px;line-height:1.45;color:rgba(255,255,255,.86)}
.price-line{margin:0 0 16px;font-size:15px;line-height:1.35;color:rgba(255,255,255,.84)}
.price-line b{font:600 38px/1 var(--serif);color:#fff;font-variant-numeric:lining-nums tabular-nums;margin:0 2px}
.pl-more{display:block;margin-top:4px;font-size:14px;color:rgba(255,255,255,.72)}
.pl-sep{display:none}
.hero-cta{width:100%}
.btn.to-waitlist{padding-left:20px;padding-right:20px;font-size:16px}
.btn.to-waitlist .arrow{display:none}
.hero .btn-gold{box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 14px 34px -12px rgba(231,183,95,.5)}
.hero .reassure{margin-top:12px}
.meta{list-style:none;display:grid;gap:6px;margin:16px 0 0;padding:0;font-size:var(--fs-small);line-height:1.4;color:rgba(255,255,255,.8)}
.meta li{display:flex;align-items:flex-start;gap:8px}
.meta svg{flex:none;margin-top:1px;color:var(--gold-soft)}
.meta-few{padding-left:24px;color:var(--gold-soft);font-weight:700}

/* Illustrazione «Il pacchetto» (e video vero, quando c'è) */
.hero-media{position:relative;margin:0;width:100%;aspect-ratio:4/3;max-height:240px;border-radius:var(--r-lg);overflow:hidden;background:radial-gradient(60% 70% at 60% 38%,rgba(231,183,95,.22),transparent 70%),linear-gradient(180deg,#3d1420 0%,#2a0a12 70%,#21090f 100%);border:1px solid rgba(242,212,155,.18);box-shadow:0 30px 60px -32px rgba(0,0,0,.8)}
.hero-media .pkg-art{width:100%;height:100%}
/* Foto vere come stampe 10×15 sparse (site.js, media.js hero:true) */
.hero-prints{aspect-ratio:4/3;max-height:300px}
.hp-print{--r:0deg;position:absolute;top:12%;width:36%;margin:0;padding:5px 5px 17px;background:#fffaf2;border-radius:3px;box-shadow:0 18px 30px -14px rgba(0,0,0,.75),0 2px 6px rgba(0,0,0,.25);transform:rotate(var(--r))}
.hp-print img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:1px}
.hp-size{position:absolute;right:7px;bottom:2px;font:600 9px/1 var(--sans);letter-spacing:.06em;color:#9a7b58}
.hp-1{--r:-9deg;left:4%;top:24%;z-index:1}
.hp-2{--r:2deg;left:32%;top:11%;z-index:3}
.hp-3{--r:9deg;right:4%;top:22%;z-index:2}
.hp-4{--r:-4deg;left:20%;top:30%;z-index:0;opacity:.95}
.hero-prints[data-n="4"] .hp-print{width:29%}
.hero-prints[data-n="4"] .hp-1{left:5%;top:28%}
.hero-prints[data-n="4"] .hp-2{left:26%;top:13%}
.hero-prints[data-n="4"] .hp-3{left:46%;top:19%;right:auto}
.hero-prints[data-n="4"] .hp-4{--r:10deg;left:auto;right:5%;top:30%;z-index:2}
.hp-lights{position:absolute;inset:0 0 auto;height:22%;pointer-events:none}
.hp-lights i{position:absolute;top:30%;width:5px;height:5px;border-radius:50%;background:#f6d48a;box-shadow:0 0 8px 2px rgba(246,212,138,.55)}
.hp-lights i:nth-child(1){left:6%;top:20%}.hp-lights i:nth-child(2){left:17%;top:42%}.hp-lights i:nth-child(3){left:29%;top:26%}
.hp-lights i:nth-child(4){left:41%;top:48%}.hp-lights i:nth-child(5){left:53%;top:28%}.hp-lights i:nth-child(6){left:65%;top:46%}
.hp-lights i:nth-child(7){left:76%;top:24%}.hp-lights i:nth-child(8){left:87%;top:44%}.hp-lights i:nth-child(9){left:96%;top:22%}
.hero-prints .stamp{z-index:5}
.video-toggle{position:absolute;top:10px;right:10px;z-index:3;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(26,11,16,.6);color:#fff;cursor:pointer}
.hero-video video{width:100%;height:100%;object-fit:cover}
.hero.has-video .snow{display:none}

/* Come funziona */
.how{background:var(--cream)}
.how .section-head{margin-bottom:20px}
.timeline-steps{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.timeline-steps li{position:relative;display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start}
.timeline-steps li:not(:last-child)::after{content:"";position:absolute;left:27px;top:60px;bottom:-12px;width:2px;border-radius:2px;background:linear-gradient(var(--gold),rgba(231,183,95,.15))}
.t-min{display:grid;place-items:center;align-content:center;width:56px;height:56px;border-radius:50%;background:var(--surface);border:1.5px solid rgba(138,95,28,.35);box-shadow:var(--shadow-sm);color:var(--gold-ink);font:700 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.t-min b{display:block;font:600 26px/.9 var(--serif);letter-spacing:0;color:var(--wine);font-variant-numeric:lining-nums}
.timeline-steps h3{margin:4px 0 2px;color:var(--wine)}
.timeline-steps p{margin:0;font-size:15px;line-height:1.45;color:var(--ink-soft)}
.value-strip{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0 0;padding:0;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.value-strip li{display:grid;align-content:start;gap:4px;padding:12px 6px;text-align:center}
.value-strip li + li{border-left:1px solid var(--line)}
.value-strip b{font:600 28px/1 var(--serif);color:var(--gold-ink);font-variant-numeric:lining-nums;white-space:nowrap}
.value-strip span{font-size:13px;line-height:1.3;color:var(--ink-soft)}
.how-note{margin:16px 0 0;font-size:15px;line-height:1.45;color:var(--ink)}

/* Il set 2026 */
.set{position:relative;background:var(--grad-pine);color:#fff}
.set h2{color:#fff;margin:8px 0 10px}
.set-grid{display:grid;gap:36px}
.set-text{color:rgba(255,255,255,.86);font-size:16px;line-height:1.5;margin:0 0 12px}
.set .media-strip{margin-bottom:16px}
.set .stamp{left:8px;bottom:8px}
.set-colors{display:flex;flex-wrap:wrap;align-items:center;gap:0 16px;margin:0 0 12px}
.set-colors .link-arrow{color:var(--gold-soft)}
.set-wa{width:100%;justify-content:flex-start;gap:14px;padding-left:22px;padding-right:22px;font-size:15px;text-align:left;text-wrap:pretty}
.set-wa .wa-ico{flex:none}
.set-small{margin:12px 0 0;font-size:var(--fs-small);line-height:1.45;color:rgba(255,255,255,.78)}
.note{position:relative;margin:0;padding:22px 18px 16px;border-radius:var(--r-lg);background:var(--paper);color:var(--ink);box-shadow:0 30px 60px -30px rgba(0,0,0,.55);--focus:var(--bordeaux)}
.note::before{content:"";position:absolute;left:18px;top:-14px;width:40px;height:28px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 28'%3E%3Cpath d='M0 28V16C0 6.5 5.3 1.2 15 0l1.5 4C11 5.6 8.6 8.7 8.4 13H16v15zm22 0V16c0-9.5 5.3-14.8 15-16l1.5 4C33 5.6 30.6 8.7 30.4 13H38v15z' fill='%23e7b75f'/%3E%3C/svg%3E") center/contain no-repeat}
.note .eyebrow{color:var(--gold-ink)}
.note-text{margin:8px 0 10px;font-size:16px;line-height:1.5}
.signature{margin:0 0 6px;font:italic 500 26px/1.1 var(--serif);color:var(--wine)}
.note-links{margin:0;font-size:15px;line-height:1.6;color:var(--ink-faint)}
.note-links a{color:var(--bordeaux)}

/* Pacchetti */
.packages{background:var(--grad-soft)}
.packages .section-head h2{max-width:16em}
.common{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;max-width:760px;margin:0 auto 26px;font-size:var(--fs-small);line-height:1.4;color:var(--ink-soft);text-align:center}
.common span{display:inline-flex;align-items:flex-start;gap:6px}
.common span:not(.common-lead)::before{content:"";flex:none;width:14px;height:14px;margin-top:2px;background:var(--tick-ok) center/contain no-repeat}
.common-lead{font-weight:700;color:var(--ink)}
.pkg-grid{display:grid;gap:20px;max-width:920px;margin:0 auto}
.pkg{position:relative;display:flex;flex-direction:column;padding:24px 18px 16px}
.pkg.featured{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(135deg,#e7b75f,#b3122e) border-box;box-shadow:0 0 0 6px rgba(231,183,95,.12),var(--shadow)}
.pkg .badge{position:absolute;top:-13px;left:20px}
.pkg h3{font:600 30px/1.05 var(--serif);letter-spacing:-.01em;color:var(--wine)}
.pkg .tagline{margin:2px 0 8px;font-size:15px;color:var(--ink-soft)}
.price{margin:0;font:600 var(--fs-price)/1 var(--serif);color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.price small{font:600 15px/1 var(--sans);color:var(--ink-soft);margin-left:4px}
.pkg-photo{position:relative;margin:14px 0 0;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--cream)}
.pkg-photo img{width:100%;height:100%;object-fit:cover}
.ticks{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}
.ticks li{display:flex;gap:10px;align-items:flex-start;font-size:16px;line-height:1.4}
.ticks svg{flex:none;margin-top:2px;color:var(--cranberry)}
.ticks li.off{color:var(--ink-faint)}
.ticks li.off svg{color:#b9a89d}
.ticks li.off > span{text-decoration:line-through;text-decoration-color:rgba(122,101,112,.6)}
.pkg-note{margin:8px 0 0;font-size:13px;line-height:1.4;color:var(--ink-soft)}
.pkg-xmas{color:var(--gold-ink);font-weight:700}
.gift{margin:12px 0 0;padding:10px 12px;border-radius:var(--r-sm);background:var(--gold-tint);border:1px solid #efd9a8;color:var(--wine);font-size:var(--fs-small);line-height:1.45}
.pkg .btn{margin-top:16px}
.pkg .reassure{justify-content:center;margin-top:8px;font-size:13px}
.fine{max-width:720px;margin:18px auto 0;text-align:center;font-size:var(--fs-small);line-height:1.45;color:var(--ink-soft)}
.extras-line{margin-top:8px}

/* Prenotate tranquilli */
.calm{background:var(--cream)}
.guarantees{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 22px;padding:0}
.guarantees li{display:grid;grid-template-columns:20px minmax(0,1fr);align-content:start;gap:4px 8px;padding:12px 12px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.guarantees svg{color:var(--cranberry);margin-top:0}
.guarantees b{font-size:15px;line-height:1.3;color:var(--wine)}
.guarantees span{grid-column:1/-1;font-size:var(--fs-small);line-height:1.4;color:var(--ink-soft)}
.faq-list{max-width:760px;margin:0 auto;border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line)}
summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:10px 0;cursor:pointer;list-style:none;font:700 17px/1.35 var(--sans);color:var(--wine)}
summary::-webkit-details-marker{display:none}
summary::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:var(--surface) center/14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3122e' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");border:1px solid var(--line)}
details[open] summary::after{transform:rotate(45deg)}
details p{margin:0 0 14px;color:var(--ink-soft);font-size:15px;line-height:1.5}
details a{color:var(--bordeaux)}
.calm-wa{max-width:760px;margin:16px auto 0;text-align:center;font-size:15px;line-height:1.6;color:var(--ink-soft)}
.calm-wa a{color:var(--bordeaux)}

/* Chiusura */
.final{position:relative;overflow:hidden;background:var(--grad-hero);color:#fff;text-align:center}
.final h2{max-width:13em;margin:0 auto 10px;color:#fff}
.final-text{max-width:32em;margin:0 auto 20px;font-size:16px;line-height:1.5;color:rgba(255,255,255,.85)}
.days{margin:0 auto 20px;max-width:760px}
.days-label{margin:0 0 10px;font:700 var(--fs-micro)/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.day-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.final .btn-lg{width:100%;max-width:420px}
.final .reassure{display:block;text-align:center}
.final .reassure span{display:inline}
.final .reassure span::before{display:inline-block;vertical-align:-2px;margin-right:6px}
.final-share{margin:22px 0 0}
.final-small{margin:14px 0 0;font-size:var(--fs-small);line-height:1.6;color:rgba(255,255,255,.75)}
.final-small a{color:var(--gold-soft)}

/* Piè di pagina */
footer.site{background:var(--night);color:rgba(255,255,255,.72);padding:32px 0 96px;font-size:var(--fs-small);line-height:1.5}
footer.site .wrap{display:flex;justify-content:space-between;gap:16px 24px;flex-wrap:wrap}
footer.site .brand{font-size:22px}
footer.site p{margin:6px 0 0}
footer.site a{color:rgba(255,255,255,.88);padding:10px 0;text-underline-offset:3px}
footer.site ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
footer.site .foot-links{display:flex;flex-wrap:wrap;gap:4px 18px}

/* ---------- Altre pagine ---------- */
.cta-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* Guida outfit (piano §5.3) */
.guide{max-width:820px;padding-top:40px;padding-bottom:64px}
.guide h1{font-size:clamp(38px,6vw,56px);color:var(--wine);margin:12px 0 14px}
.guide h2{font-size:clamp(28px,5vw,34px);margin:38px 0 16px}
.swatches{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-wrap:wrap;gap:16px 22px}
.swatches li{display:grid;justify-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.sw{width:58px;height:58px;border-radius:50%;border:1px solid var(--line)}
.combos{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.combo{display:flex;align-items:center;gap:16px;padding:16px 18px}
.combo p{margin:0;font-size:16px;line-height:1.45}
.combo b{color:var(--wine)}
.combo-sw{display:flex;flex:none}
.combo-sw .sw{width:34px;height:34px;border:2px solid var(--surface);box-shadow:0 2px 6px -2px rgba(42,10,18,.35)}
.combo-sw .sw + .sw{margin-left:-10px}
.looks{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.look{padding:20px}
.look h3{color:var(--wine);margin-bottom:6px}
.look p{margin:0;color:var(--ink-soft);font-size:15px}
.outfit-tips{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.outfit-tips h3{color:var(--wine);margin-bottom:10px}
.outfit-tips ul,.ok-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.outfit-tips li,.ok-list li{display:flex;gap:10px;align-items:flex-start;line-height:1.45}
.outfit-tips li{color:var(--ink-soft)}
.outfit-tips li::before,.ok-list li::before{content:"";flex:none;width:16px;height:16px;margin-top:3px;background:var(--tick-ok) center/contain no-repeat}
.tips-no li::before{background-image:var(--cross-err)}
.guide-list{color:var(--ink-soft);padding-left:20px}
.bag,.guide-help{margin-top:18px}
.bag h3,.guide-help h3{color:var(--wine);margin-bottom:10px}
.guide-help p{margin:0 0 14px;color:var(--ink-soft)}
.guide-cta{margin:32px 0 0;text-align:center}
.guide-cta .btn{width:100%;max-width:420px}
.booked-box{display:grid;gap:2px;margin:22px 0 0;padding:16px 18px;border-radius:var(--r);border:1.5px dashed var(--line-strong);background:var(--paper)}
.booked-box p{margin:0;color:var(--ink-soft)}
.booked-box .link-arrow{justify-self:start;color:var(--bordeaux)}
footer.site.plain{padding-bottom:32px}

/* Pagine con form (prenotazione, area clienti, conferma): parti condivise */
.app-page{background:radial-gradient(90% 38% at 50% 0%,rgba(231,183,95,.16),transparent 70%),var(--cream);min-height:100dvh}
.step-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;flex-wrap:wrap}
.link-back{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--ink-soft);font:600 15px var(--sans);cursor:pointer;min-height:44px;padding:0 4px;text-decoration:underline;text-underline-offset:3px}
.link-back svg{flex:none}
fieldset{border:0;padding:0;margin:0;min-width:0}

.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice{position:relative;display:block;border:1.5px solid var(--line-strong);border-radius:var(--r);padding:20px;cursor:pointer;background:var(--paper);font-weight:400}
.choice input{position:absolute;left:0;top:0;width:1px;height:1px;min-height:0;margin:0;padding:0;opacity:0;pointer-events:none}
.choice:has(input:checked){border-color:var(--bordeaux);box-shadow:0 0 0 4px rgba(142,19,40,.12);background:var(--surface)}
.choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}
.choice .c-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font:700 var(--fs-h3)/1.3 var(--sans);color:var(--wine)}
.choice .c-price{font:600 28px var(--serif);color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.choice ul{margin:10px 0 0;padding-left:18px;color:var(--ink-soft);font-size:15px}
.choice .c-badge{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bordeaux)}
.choice .c-desc{display:block;color:var(--ink-soft);font-size:15px;line-height:1.45;margin:8px 0 0}
.choice[aria-disabled="true"]{opacity:.5;cursor:not-allowed}

.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.slot{min-height:52px;border-radius:12px;border:1.5px solid var(--line-strong);background:#fff;font:700 16px var(--sans);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.slot[aria-pressed="true"]{background:var(--grad-cta);color:#fff;border-color:transparent}
.slot[disabled]{background:transparent;color:var(--ink-faint);cursor:not-allowed;text-decoration:line-through;font-weight:400}

.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line-strong);border-radius:999px;background:#fff}
.stepper button{display:grid;place-items:center;width:50px;height:50px;padding:0;border:0;background:none;font:500 26px var(--sans);color:var(--bordeaux);cursor:pointer;border-radius:50%}
.stepper button[disabled]{color:var(--line);cursor:not-allowed}
.booking-page .stepper button[disabled]{color:#cdbdb3}
.stepper output{min-width:48px;text-align:center;font:600 28px var(--serif)}
.stepper-sm button{width:44px;height:44px;font-size:22px}
.stepper-sm output{min-width:36px;font-size:26px}
.extras-list{display:grid;gap:10px;margin-top:10px}
.extra-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1.5px solid var(--line-strong);border-radius:var(--r);padding:14px 16px;background:var(--paper)}
.extra-item.on{border-color:var(--bordeaux);background:#fff}
.extra-item b{display:block;font-size:16px}
.extra-item span{display:block;font-size:14px;color:var(--ink-soft)}
.extra-item .x-price{color:var(--bordeaux);font-weight:700}
.addon-head{margin:26px 0 4px;font:700 var(--fs-h3)/1.3 var(--sans);color:var(--wine)}
.disclosure{background:none;border:0;padding:0;font:700 15px var(--sans);color:var(--bordeaux);cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:44px;text-align:left}
.secure{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}
.secure svg{color:var(--ok)}

/* ---------- Prenotazione in 3 passi (piano §4): Giorno → Pacchetto → Conferma ---------- */
.booking-page{--tick-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --tick-night:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a0b10' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.resume-wait{margin:40px 0;text-align:center;color:var(--ink-soft)}
.loading{margin:0;color:var(--ink-soft);font-size:15px}

/* Avanzamento: 3 voci sempre etichettate */
.progress-label{margin:18px 0 0;font:700 13px/1.3 var(--sans);color:var(--ink-soft)}
.progress{list-style:none;margin:0;padding:8px 0 4px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.progress li{position:relative;padding-top:10px;font-size:13px;line-height:1.2;color:var(--ink-faint)}
.progress li::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:4px;background:var(--line)}
.progress li.done{color:var(--ink-soft)}
.progress li.done::before{background:var(--gold)}
.progress li.current{color:var(--wine);font-weight:700}
.progress li.current::before{background:var(--grad-cta)}

.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start;padding:14px 0 90px}
.step-panel,.gifts{padding:0}
.panel{padding:30px}
.panel h1{font-size:clamp(34px,4.6vw,42px);color:var(--wine);margin-bottom:6px}
.panel h1:focus{outline:none}
.hint-top{color:var(--ink-soft);margin-bottom:20px}
.sub-h{display:block;float:none;width:100%;margin:32px 0 4px;padding:0;font:600 26px/1.15 var(--serif);letter-spacing:-.005em;color:var(--wine)}
.sub-hint{margin:0 0 14px}
.check-hint{margin:6px 0 0 34px}
.check-error{margin:6px 0 0 34px}
.alert-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.alert > span{display:block}

/* Passo 1: scorciatoie, calendario, orari */
.quick-days{margin:0 0 18px}
.quick-label{margin:0 0 8px;font-size:var(--fs-small);font-weight:700;color:var(--ink-soft)}
.quick-list{display:flex;flex-wrap:wrap;gap:8px}
.day-chip[aria-pressed="true"]{background:var(--grad-cta);border-color:transparent;color:#fff}
.day-chip[aria-pressed="true"] small{color:var(--gold-soft)}

.cal{border:1px solid var(--line);border-radius:var(--r);padding:16px;background:var(--paper)}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.cal-head h2{font-size:26px;color:var(--ink);text-transform:capitalize}
.cal-head.single .cal-nav{visibility:hidden}
.cal-nav{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line-strong);background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--ink)}
.cal-nav[disabled]{opacity:.35;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-dow{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);text-align:center;padding:4px 0}
.cal-day{position:relative;display:grid;place-items:center;aspect-ratio:1;min-height:44px;min-width:0;padding:0;border-radius:12px;border:1px solid transparent;background:transparent;font:600 15px/1 var(--sans);color:var(--ink-faint);font-variant-numeric:lining-nums tabular-nums}
.cal-day.has{background:var(--surface);border:1.5px solid var(--line-strong);color:var(--ink);cursor:pointer}
.cal-day.has::after{content:"";position:absolute;left:50%;bottom:5px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--ok)}
.cal-day.few::after{background:var(--gold);box-shadow:0 0 0 1px var(--gold-ink)}
.cal-day.full{cursor:not-allowed;text-decoration:line-through;text-decoration-color:rgba(122,101,112,.8)}
.cal-day[aria-pressed="true"]{background:var(--grad-cta);border-color:transparent;color:#fff}
.cal-day[aria-pressed="true"]::after{background:var(--gold-soft);box-shadow:none}
.cal-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:12px 0 0;font-size:13px;color:var(--ink-soft)}
.lg{display:inline-flex;align-items:center;gap:6px}
.lg-free::before,.lg-few::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok)}
.lg-few::before{background:var(--gold);box-shadow:0 0 0 1px var(--gold-ink)}
.lg-full s{color:var(--ink-faint);font-weight:600;text-decoration-color:rgba(122,101,112,.8)}

.slots{margin-top:22px;scroll-margin-bottom:150px}
.slots-title{margin:0;font:700 var(--fs-h3)/1.3 var(--sans);letter-spacing:-.01em;color:var(--wine)}
.slot-group{margin-top:14px}
.slot-group-title{margin:0 0 8px;font:700 var(--fs-micro)/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.booking-page .slot{position:relative}
.booking-page .slot[aria-pressed="true"]::after{content:"";position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:var(--gold) center/13px 13px no-repeat var(--tick-night);box-shadow:0 0 0 2px var(--paper)}
.slot-tip{margin:14px 0 0;font-size:var(--fs-small);line-height:1.45;color:var(--ink-soft)}
.wl-open{margin:14px 0 0}
.booking-page .waitlist{max-width:none;margin:18px 0 0;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.wl-wa{margin:14px 0 0;font-size:15px;color:var(--ink-soft)}
.wl-wa a{color:var(--wa);font-weight:700}

/* Passo 2: pacchetti (200 € per primo), persone, nucleo familiare */
.both{margin:0 0 22px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line)}
.both p{margin:0 0 6px;font-size:var(--fs-small);font-weight:700;color:var(--ink)}
.both ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.both li{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-small);line-height:1.4;color:var(--ink-soft)}
.both li::before{content:"";flex:none;width:14px;height:14px;margin-top:2px;background:var(--tick-ok) center/contain no-repeat}
.pkg-choices,.pay-choices{display:grid;gap:22px;padding-top:12px}
.pay{margin-top:32px}
.pay > legend.sub-h{margin:0 0 6px}
.booking-page .choice{padding:20px 18px 18px 56px}
.booking-page .choice::before{content:"";position:absolute;left:16px;top:21px;width:26px;height:26px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);box-sizing:border-box}
.booking-page .choice:has(input:checked)::after{content:"";position:absolute;left:16px;top:21px;width:26px;height:26px;border-radius:50%;background:var(--bordeaux) center/14px 14px no-repeat var(--tick-white)}
.booking-page .choice .badge{position:absolute;top:-12px;left:56px}
/* Prezzo sempre a destra, sulla prima riga del nome: le due schede si confrontano a colpo d'occhio anche a 320 px */
.booking-page .choice .c-title{align-items:baseline;flex-wrap:nowrap}
.booking-page .choice .c-name{min-width:0}
.pkg-choice.featured{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(135deg,#e7b75f,#b3122e) border-box;box-shadow:0 0 0 5px rgba(231,183,95,.12),var(--shadow-sm)}
.pkg-choice.featured:has(input:checked){border-color:var(--bordeaux);box-shadow:0 0 0 4px rgba(142,19,40,.14),var(--shadow-sm)}
.c-name{font:600 28px/1.05 var(--serif);letter-spacing:-.01em;color:var(--wine)}
.booking-page .c-price{font:600 32px/1 var(--serif);color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.c-body,.c-list{display:block}
.c-list{margin-top:10px}
.c-li{display:flex;gap:8px;align-items:flex-start;margin-top:6px;font-size:15px;line-height:1.4;color:var(--ink)}
.c-li svg{flex:none;margin-top:2px;color:var(--cranberry)}
.c-note{display:block;margin-top:8px;font-size:13px;line-height:1.4;color:var(--ink-soft)}
.c-warn{display:block;margin-top:10px;padding:8px 10px;border-radius:10px;background:var(--gold-tint);color:var(--wine);font-size:13px;line-height:1.4;font-weight:600}
.upsell-row{display:grid;gap:10px;justify-items:start;margin:16px 0 0;padding:14px 16px;border-radius:var(--r);background:var(--gold-tint);border:1px solid #efd9a8}
.upsell-row p{margin:0;font-size:15px;line-height:1.45;color:var(--wine)}
.people .hint{display:block;margin:0 0 12px;font-size:var(--fs-small);line-height:1.45}
.people-note{margin:10px 0 0;font-size:var(--fs-small);color:var(--ink-soft)}
.people-note .extra{color:var(--bordeaux);font-weight:700}
.people + .check{margin-top:24px}

/* Passo 3: riepilogo breve, dati, regali, pagamento, consenso */
.mini-summary{margin:0 0 4px;padding:4px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.ms-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;line-height:1.3}
.ms-row:last-child{border-bottom:0}
.ms-edit{flex:none;min-height:44px;padding:0 2px;border:0;background:none;font:700 14px var(--sans);color:var(--bordeaux);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ms-total span{color:var(--ink-soft);font-weight:400}
.ms-total strong{font:600 30px/1 var(--serif);color:var(--wine);font-variant-numeric:lining-nums tabular-nums}
.fields.one{grid-template-columns:minmax(0,1fr);max-width:520px}
.email-fix{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:4px 0 0;font-size:var(--fs-small);font-weight:600;color:var(--ink)}
.note-box{margin-top:12px}
.note-box .field{margin-top:4px;max-width:520px}
.gift-list{display:grid;gap:10px}
.gift-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;align-items:center;padding:14px 16px;border:1.5px solid var(--line-strong);border-radius:var(--r);background:var(--paper)}
.gift-item.on{border-color:var(--bordeaux);background:var(--surface);box-shadow:0 0 0 3px rgba(142,19,40,.1)}
.gift-info b{display:block;font-size:16px;line-height:1.3}
.gift-desc{display:block;margin-top:2px;font-size:var(--fs-small);line-height:1.4;color:var(--ink-soft)}
.gift-price{display:block;margin-top:4px;font-weight:700;color:var(--bordeaux);font-variant-numeric:lining-nums tabular-nums}
.gift-ctl{display:grid;justify-items:end;gap:8px}
.gift-add{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--wine);font:700 15px var(--sans);cursor:pointer;white-space:nowrap}
.gift-add[aria-pressed="true"]{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}
.gift-add svg{flex:none}
.c-methods{display:block;margin-top:8px;font-size:13px;color:var(--ink-soft)}
.pay-reassure{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px;font-size:var(--fs-small);line-height:1.4;color:var(--ink-soft)}
.pay-reassure li{display:flex;gap:8px;align-items:flex-start}
.pay-reassure li::before{content:"";flex:none;width:14px;height:14px;margin-top:2px;background:var(--tick-ok) center/contain no-repeat}
.code-box{margin:24px 0 0}
.code-box .field{margin-top:4px;max-width:420px}
.code-row{display:flex;gap:10px}
.code-row input{text-transform:uppercase;letter-spacing:.06em}
.code-row .btn{flex:none;min-height:50px}
.code-ok{margin:0;font-size:var(--fs-small);font-weight:700;color:var(--ok)}
.code-ok:empty{display:none}
.consent{margin-top:24px}
.submit-row{margin-top:24px}
#submit-alert{margin:22px 0 0}
.wa-line{margin:14px 0 0;font-size:15px;color:var(--ink-soft)}
.wa-line a,.summary-wa a{color:var(--wa);font-weight:700}

/* Ritorno da Stripe */
.recovery-card{max-width:560px;margin:28px auto 72px}
.recovery-card h1{font-size:clamp(32px,6vw,42px);color:var(--wine);margin:10px 0 12px}
.recovery-card h1:focus{outline:none}
.rc-text{font-size:17px;line-height:1.5}
.rc-total{color:var(--ink-soft)}
.rc-total strong{margin-left:4px;font:600 30px/1 var(--serif);color:var(--wine);font-variant-numeric:lining-nums tabular-nums}
.rc-actions{display:grid;gap:10px;margin-top:18px}
.rc-actions .rc-other{justify-self:center}
#rc-alert{margin:12px 0 0}

/* Riepilogo laterale (da 961 px) */
.summary{position:sticky;top:76px;padding:24px}
.summary h2{font-size:26px;color:var(--wine);margin-bottom:14px}
.summary dl{margin:0;display:grid;gap:10px}
.summary dl div{display:flex;justify-content:space-between;gap:14px;font-size:15px}
.summary dt{color:var(--ink-soft)}
.summary dd{margin:0;font-weight:700;text-align:right}
.summary .total{border-top:1px solid var(--line);padding-top:12px;margin-top:4px;font-size:17px}
.summary .total dd{font:600 30px var(--serif);color:var(--wine)}
.summary .discount dd{color:var(--ok)}
.summary-foot{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:var(--fs-small);color:var(--ink-soft);display:grid;gap:7px}
.summary-foot li{display:flex;gap:8px;align-items:flex-start}
.summary-foot li::before{content:"";flex:none;width:14px;height:14px;margin-top:3px;background:var(--tick-ok) center/contain no-repeat}
.summary-wa{margin:12px 0 0;font-size:var(--fs-small);color:var(--ink-soft)}

/* Barra in basso (telefono e tablet, sotto i 961 px) */
.book-bar{display:none}
.bb-main{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:720px;margin:0 auto}
.bb-info{display:grid;gap:2px;min-width:0;margin:0}
.bb-when{font-size:13px;line-height:1.25;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.book-bar[data-step="1"] .bb-when{font-size:15px;font-weight:700;color:var(--ink);white-space:normal}
.bb-total{font:600 26px/1 var(--serif);color:var(--wine);font-variant-numeric:lining-nums tabular-nums;border-radius:6px}
.book-bar .btn{flex:none;min-height:52px;padding:12px 18px;font-size:15px}
.bb-reassure{display:flex;align-items:center;gap:6px;max-width:720px;margin:6px auto 0;font-size:12px;line-height:1.3;color:var(--ink-soft)}
.bb-reassure::before{content:"";flex:none;width:12px;height:12px;background:var(--tick-ok) center/contain no-repeat}
.bb-error{max-width:720px;margin:0 auto 8px;padding:8px 12px;border-radius:10px;background:var(--err-bg);color:var(--err);font-size:var(--fs-small);font-weight:600;line-height:1.35}

/* Pagine semplici (attesa, errore, /smetti, 404) */
.confirm-card{max-width:640px;margin:40px auto;text-align:center}
.confirm-card .tick{width:72px;height:72px;border-radius:50%;background:var(--ok-bg);display:grid;place-items:center;margin:0 auto 18px}
.confirm-card h1{font-size:clamp(34px,5vw,46px);color:var(--wine);margin-bottom:10px}
.confirm-card h1:focus{outline:none}
.confirm-card .eyebrow{margin-bottom:8px}
.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px}
.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--bordeaux);border-radius:50%;margin:0 auto 16px}
.lost-bow{margin:0 auto 10px;color:var(--gold-ink)}
.lost-help{margin:18px 0 0}
.lost-help a{color:var(--bordeaux);font-weight:700}
.kv{text-align:left;margin:0;display:grid;gap:10px;background:var(--paper);border-radius:var(--r);padding:16px 18px}
.kv div{display:flex;justify-content:space-between;gap:16px}
.kv dt{flex:none;color:var(--ink-soft)}
.kv dd{margin:0;font-weight:700;text-align:right;overflow-wrap:anywhere}
.btn-wa{background:var(--wa);color:#fff;box-shadow:0 12px 28px -16px rgba(31,122,77,.7)}
.link-btn{display:inline;padding:10px 2px;border:0;background:none;font-family:var(--sans);font-weight:700;font-size:inherit;line-height:inherit;color:var(--bordeaux);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* ---------- Conferma: il «biglietto di Natale» (piano §5.1) ---------- */
.confirm-page main{padding-bottom:56px}
.confirm-wrap{display:grid;gap:18px;max-width:560px;margin:24px auto 0}
.confirm-wrap > .confirm-card{margin:16px 0 0}
/* Ombra che segue anche i fori del taglio: drop-shadow sull'insieme, ogni parte ha il suo fondo */
.ticket{display:grid;filter:drop-shadow(0 1px 2px rgba(42,10,18,.08)) drop-shadow(0 16px 22px rgba(42,10,18,.15))}
.ticket > *{background:var(--surface)}
.ticket-head{--focus:var(--gold-soft);position:relative;overflow:hidden;padding:26px 22px 24px;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--grad-hero);color:#fff}
.ticket-bow{position:absolute;top:16px;right:16px;color:var(--gold)}
.ticket-head .eyebrow{color:var(--gold-soft);padding-right:52px}
.ticket-head h1{margin:10px 0 2px;padding-right:44px;font-size:clamp(28px,7.4vw,36px);line-height:1.08;color:#fff}
.ticket-head h1:focus{outline:none}
.ticket-date{margin:2px 0 6px;font:600 clamp(34px,9vw,44px)/1.06 var(--serif);background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:lining-nums;padding-right:.04em}
.ticket-when{margin:0;font-size:15px;line-height:1.45;color:rgba(255,255,255,.86);font-variant-numeric:lining-nums tabular-nums}
.ticket-body{padding:20px 22px 22px}
.ticket:not(.has-code) .ticket-body{border-radius:0 0 var(--r-lg) var(--r-lg)}
.ticket-lead{margin:0 0 8px;font-size:17px;line-height:1.5}
.ticket-mail{margin:0 0 16px;font-size:var(--fs-small);line-height:1.45;color:var(--ink-soft)}
.ticket-actions{display:grid;gap:10px}
.share-note{margin:10px 0 0;font-size:var(--fs-small);line-height:1.45;font-weight:600;color:var(--ok);overflow-wrap:anywhere}
.ticket-pay{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;padding:12px 14px;border-radius:var(--r-sm);font-size:15px;font-weight:600;line-height:1.4}
.ticket-pay:empty{display:none}
.ticket-pay.is-paid{background:var(--ok-bg);color:var(--ok)}
.ticket-pay.is-paid::before{content:"";flex:none;width:18px;height:18px;margin-top:1px;background:var(--tick-ok) center/contain no-repeat}
.ticket-pay.is-due{background:var(--gold-tint);color:var(--wine)}
/* Taglio a strappo: due fori veri ai lati (maschera) e una linea tratteggiata */
.ticket-cut{position:relative;height:30px;
  -webkit-mask:radial-gradient(circle at 0 50%,transparent 14px,#000 14.5px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 14px,#000 14.5px) right/51% 100% no-repeat;
  mask:radial-gradient(circle at 0 50%,transparent 14px,#000 14.5px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 14px,#000 14.5px) right/51% 100% no-repeat}
.ticket-cut::before{content:"";position:absolute;left:24px;right:24px;top:50%;border-top:2px dashed #dccbbd}
.ticket-stub{padding:4px 22px 22px;border-radius:0 0 var(--r-lg) var(--r-lg)}
.stub-label{margin:0 0 8px;font:700 var(--fs-micro)/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.stub-row{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap}
.access-code{font:700 24px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;color:var(--wine);overflow-wrap:anywhere}
.copy-btn{flex:none;gap:8px}
.stub-note{margin:10px 0 0;font-size:13px;line-height:1.45;color:var(--ink-soft)}
.next-card h2{margin-bottom:14px}
.h-note{font:500 15px var(--sans);color:var(--ink-soft);letter-spacing:0}
.next-steps{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.next-steps li{display:flex;gap:12px;align-items:flex-start;line-height:1.45}
.next-steps b{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--grad-cta);color:#fff;font-size:14px}
.next-steps a{color:var(--bordeaux);font-weight:700}
.calm-box{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;padding:16px 18px;border-radius:var(--r);background:var(--pine-soft);color:var(--pine-deep);font-size:15px;line-height:1.5}
.calm-box svg{margin-top:1px;color:var(--pine)}
.calm-box div{display:grid;gap:6px}
.calm-box p{margin:0}
.calm-box a{color:var(--pine-deep);font-weight:700}
.offer-card{padding:20px 20px 18px;border-radius:var(--r-lg);background:var(--gold-tint);border:1px solid #efd9a8}
.offer-card h2{margin:0 0 6px;font:700 var(--fs-h3)/1.3 var(--sans);letter-spacing:-.01em;color:var(--wine)}
.offer-card p{margin:0 0 14px;font-size:15px;line-height:1.5}
.offer-card strong{color:var(--bordeaux);white-space:nowrap}
.offer-card .offer-note{margin:-4px 0 14px;font-size:var(--fs-small);line-height:1.45;color:var(--ink-soft)}
.confirm-card .error-back{margin:18px 0 0}
.card.recap{padding:2px 18px}
.recap .kv{margin:2px 0 16px}
.confirm-actions{margin-top:0}
.confirm-actions .btn{flex:1 1 200px}
.word{margin:4px 0 0;text-align:center;font-size:var(--fs-small);line-height:1.5;color:var(--ink-soft)}
.word .link-btn{display:block;margin:2px auto 0;padding:10px 6px}

/* ---------- Area clienti (piano §5.2): biglietto, scorciatoie, sezioni. Prefisso ar- ---------- */
/* Regole condivise (titoli e pulsanti larghi nelle card di conferma, ritorno da Stripe, area clienti) */
.card h2{font-size:26px;color:var(--wine);margin-bottom:10px}
.card .btn-block{margin-top:12px}
.code-input{font:700 20px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase}

.sprite{position:absolute;width:0;height:0;overflow:hidden}
.area-page .i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.area-page main{padding-bottom:64px}
.area-page main:focus{outline:none}
.ar-noscript{max-width:560px;margin:24px auto}
.ar-logout{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--wine);font:700 14px var(--sans);cursor:pointer}
.ar-logout .i{width:18px;height:18px}

/* Caricamento (la rotellina compare solo dopo 200 ms) ed errore */
.ar-loading{display:grid;justify-items:center;gap:4px;padding:96px 0;color:var(--ink-soft);opacity:0}
.ar-loading.is-slow{opacity:1}
.ar-loading p{margin:0}
.ar-state{max-width:520px;margin:40px auto 0;text-align:center}
.area-page .ar-state-icon{width:44px;height:44px;margin:0 auto 12px;color:var(--bordeaux)}
.ar-state h1{font-size:clamp(30px,6vw,38px);color:var(--wine);margin-bottom:10px}
.ar-state h1:focus{outline:none}
.ar-state-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}

/* Accesso: stesso linguaggio del biglietto (testa vino, corpo bianco) */
.area-page .ar-login{max-width:460px;margin:32px auto 0;padding:0;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}
.ar-login-head{--focus:var(--gold-soft);position:relative;padding:26px 22px 24px;background:var(--grad-hero);color:#fff}
.ar-login-head .eyebrow{color:var(--gold-soft);padding-right:52px}
.ar-login-head h1{margin:10px 0 8px;font-size:clamp(34px,8vw,42px);color:#fff}
.ar-login-head h1:focus{outline:none}
.ar-login-lead{margin:0;font-size:16px;line-height:1.5;color:rgba(255,255,255,.86)}
.ar-login-body{display:grid;gap:18px;padding:24px 22px 6px}
.ar-login .hint{margin:0}
.ar-label-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ar-count-chars{font:600 13px var(--sans);color:var(--ink-faint);font-variant-numeric:lining-nums tabular-nums}
.ar-count-chars.is-full{color:var(--ok)}
.ar-login .code-input::placeholder{color:#8f7c71;letter-spacing:.12em}
.ar-login .btn-block{margin-top:2px}
.ar-error{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding:12px 14px;border-radius:var(--r-sm);background:var(--err-bg);color:var(--err)}
.area-page .ar-error .i{width:22px;height:22px;margin-top:1px}
.ar-error-title{margin:0;font-weight:700;line-height:1.35}
.ar-error-text{margin:3px 0 0;font-size:var(--fs-small);line-height:1.45;color:#7d1916}
.ar-secure{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:13px;line-height:1.45;color:var(--ink-soft)}
.area-page .ar-secure .i{width:16px;height:16px;margin-top:1px;color:var(--ok)}
.ar-login-foot{margin:16px 22px 22px;padding:16px;border-radius:var(--r);background:var(--paper);border:1.5px dashed var(--line);font-size:15px;line-height:1.5;color:var(--ink-soft)}
.ar-login-foot p{margin:0 0 12px}
.ar-login-foot b{color:var(--ink)}
.ar-wa-ico{color:var(--wa)}

/* Pulsanti in attesa di risposta */
.ar-btn-spin{display:none;flex:none;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%}
.is-busy .ar-btn-spin{display:inline-block}
.btn.is-busy[disabled]{opacity:.85}

/* Impaginazione: telefono una colonna (biglietto, scorciatoie, sezioni); computer biglietto a sinistra, sezioni a destra */
.ar{display:flex;flex-direction:column;gap:16px;padding-top:16px}
.ar-side,.ar-content{display:contents}
.ar-alert{order:-20}
.ar-ticket{order:-10}
.ar-tiles{order:-9}
.ar-review{order:-8}
.ar.is-soon .ar-prep{order:-7}
.ar-shop{order:-6}
.ar-move{order:-5}
.ar-prep{order:-4}
.ar-recap{order:-3}
.ar-after{order:-2}
.ar-help{order:10}

/* Avviso dopo un'azione */
.ar-alert{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:14px 16px;border-radius:var(--r);font-size:15px;line-height:1.45;font-weight:600;scroll-margin:90px}
.ar-alert p{margin:0}
.area-page .ar-alert .i{width:22px;height:22px;stroke-width:2.4}
.ar-alert.is-ok{background:var(--ok-bg);color:var(--ok);border:1px solid #bfe0cc}
.ar-alert.is-err{background:var(--err-bg);color:var(--err);border:1px solid #f0c9c5}
.ar-alert.is-info{background:var(--gold-tint);color:var(--wine);border:1px solid #efd9a8}
.ar-alert:focus{outline:none}
.ar-alert:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/* Il biglietto */
.ar-ticket .ticket-head{padding:24px 20px 22px}
.ar-ticket .ticket-date{font-size:clamp(32px,9vw,48px);text-wrap:balance}
.ar-ticket .ticket-date[hidden] + .ticket-when{margin-top:6px}
.ticket.ar-ticket .ticket-body{border-radius:0}
.ar[data-phase="noshow"] .ar-ticket .ticket-body{border-radius:0 0 var(--r-lg) var(--r-lg)}
.ar-count{margin-top:18px;padding-top:16px;border-top:1px solid rgba(242,212,155,.2)}
.ar-count-label{margin:0;font:600 15px/1.35 var(--sans);color:var(--gold-soft)}
.ar-count-boxes{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;max-width:320px;margin-top:10px}
.ar-count-box{padding:10px 6px 9px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(242,212,155,.24);text-align:center}
.ar-count-box b{display:block;font:600 36px/1 var(--serif);color:#fff;font-variant-numeric:lining-nums tabular-nums}
.ar-count-box span{display:block;margin-top:4px;font-size:12px;line-height:1.2;color:rgba(255,255,255,.78)}
.ar-head-note{margin:12px 0 0;font-size:16px;line-height:1.45;color:#fff;font-weight:600}
.ar-body{display:grid;gap:14px;padding:18px 20px 20px}
.ar-body .ticket-pay{margin:0}
.ticket-pay small{display:block;font-size:13px;font-weight:500;opacity:.9}
.area-page .ticket-pay .i{width:18px;height:18px;margin-top:1px}
.ar-actions{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:441px) and (max-width:960px){.ar-actions{grid-template-columns:1fr 1fr}}
.ar-actions .btn{min-height:52px;padding:12px 14px;font-size:15px;gap:8px}
.ar-share{justify-self:center;display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:-4px 0 -6px;padding:0 8px;border:0;background:none;color:var(--bordeaux);font:700 15px var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.area-page .ar-share .i{width:18px;height:18px}
.ar-body .share-note{margin:0;text-align:center}
.ar-pickup{display:grid;gap:10px}
.ar-h3{display:flex;align-items:center;gap:8px;margin:0;font:700 var(--fs-h3)/1.3 var(--sans);letter-spacing:-.01em;color:var(--wine)}
.area-page .ar-h3 .i{color:var(--gold-ink)}
.ar-pickup-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ar-pickup-list li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--r-sm);background:var(--paper);border:1px solid var(--line)}
.ar-pick-ico,.ar-line-ico,.ar-gift-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--gold-tint);color:var(--gold-ink)}
.ar-pick-text b{display:block;font-size:15px;line-height:1.3}
.ar-pick-text span{display:block;font-size:13px;line-height:1.35;color:var(--ink-soft)}
.ar-pickup-note{margin:0;font-size:var(--fs-small);line-height:1.5;color:var(--ink-soft)}
.ar-done{margin:0;font-size:16px;line-height:1.5}
.ar-body .btn-wa{margin:0}
.ar-body .btn{padding-left:18px;padding-right:18px}
/* Matrice: pacchetto, famiglia, durata */
.ar-stub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:2px 20px 20px}
.ar-stub div + div{padding-left:10px;border-left:1.5px dashed #dccbbd}
.ar-stub dt{font:700 11px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.ar-stub dd{margin:5px 0 0;font-size:15px;font-weight:700;line-height:1.3;color:var(--wine)}

/* Stati di pagamento: sempre testo, mai solo colore */
.ar-chip{display:inline-block;padding:4px 10px;border-radius:999px;font:700 12px/1.3 var(--sans);white-space:nowrap}
.ar-chip.is-paid{background:var(--ok-bg);color:var(--ok)}
.ar-chip.is-due{background:var(--gold-tint);color:#6e470d;box-shadow:inset 0 0 0 1px #efd9a8}
.ar-chip.is-pending{background:#eee8f4;color:#4a2c66}

/* Scorciatoie (telefono e tablet) */
.ar-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ar-tile{display:flex;align-items:center;gap:10px;min-height:64px;padding:11px 12px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink);text-decoration:none}
.ar-tile-ico{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:var(--gold-tint);color:var(--bordeaux)}
.ar-tile.is-wa .ar-tile-ico{background:var(--ok-bg);color:var(--wa)}
.ar-tile-text{min-width:0;line-height:1.25}
.ar-tile-text b{display:block;font-size:15px}
.ar-tile-text span{display:block;font-size:13px;color:var(--ink-soft)}

/* Sezioni */
.ar .card{margin:0}
.ar .card > .eyebrow + h2{margin-top:6px}
.ar-help p{margin:0 0 4px;color:var(--ink-soft)}
.ar-mail{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-top:6px;color:var(--bordeaux);font-size:15px;font-weight:700;text-underline-offset:3px;overflow-wrap:anywhere}
.area-page .ar-mail .i{width:18px;height:18px}
.ar-review{border-color:#efd9a8;background:linear-gradient(180deg,var(--gold-tint),var(--surface) 75%);text-align:center}
.ar-badge-ico{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 10px;border-radius:50%;background:var(--grad-gold);color:var(--night)}
.area-page .ar-badge-ico .i{width:26px;height:26px;fill:currentColor;stroke-width:1.5}
.ar-review p{max-width:34em;margin:0 auto}
.ar-prep-grid{display:grid;gap:12px;margin-top:14px}
.ar-prep-block{display:grid;gap:10px;align-content:start;padding:16px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line)}
.ar-prep-block p{margin:0;font-size:15px;line-height:1.5;color:var(--ink-soft)}
.ar-prep-block b{color:var(--ink)}
.ar-prep .ok-list{font-size:15px}
.ar-swatches span{width:26px;height:26px}
.ar-link{display:inline-flex;align-items:center;gap:6px;justify-self:start;min-height:44px;color:var(--bordeaux);font-weight:700;text-underline-offset:4px}
.area-page .ar-link .i{width:18px;height:18px}

/* Regali */
.ar-shop > .muted{margin:0}
.ar-gifts{display:grid;gap:10px;margin-top:16px}
.ar-gift{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 14px;padding:14px 16px;border:1.5px solid var(--line-strong);border-radius:var(--r);background:var(--paper)}
.ar-gift.on{border-color:var(--bordeaux);background:var(--surface);box-shadow:0 0 0 3px rgba(142,19,40,.1)}
.ar-gift .ar-gift-ico{width:44px;height:44px}
.ar-gift-info b{display:block;font-size:16px;line-height:1.3}
.ar-gift-have{display:block;margin-top:6px;font-size:13px;font-weight:700;color:var(--ok)}
.ar-gift-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.ar-gift-foot .gift-price{margin:0;font-size:17px}
.ar-gift-ctl{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
.ar-gift-max{font-size:13px;font-weight:700;color:var(--ink-soft)}
.area-page .gift-add .i{width:16px;height:16px;stroke-width:2.8}
.area-page .stepper .i-step{width:18px;height:18px;stroke-width:2.6}
.ar-checkout{display:grid;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.ar-cart{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;font-size:15px;line-height:1.4;color:var(--ink-soft)}
.ar-cart b{flex:none;font:600 30px/1 var(--serif);color:var(--wine);font-variant-numeric:lining-nums tabular-nums}
.ar-checkout .btn-block,.ar-checkout .field-error{margin:0}
.shop-pay{--tick-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.shop-pay legend.addon-head{margin:0 0 10px;padding:0}
.shop-pay .choice{padding:16px 16px 16px 52px}
.shop-pay .choice::before{content:"";position:absolute;left:14px;top:17px;width:26px;height:26px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);box-sizing:border-box}
.shop-pay .choice:has(input:checked)::after{content:"";position:absolute;left:14px;top:17px;width:26px;height:26px;border-radius:50%;background:var(--bordeaux) center/14px 14px no-repeat var(--tick-white)}
.shop-pay .c-desc{margin-top:2px}

/* Cambio data */
.ar-move-info{margin:0 0 14px;color:var(--ink-soft)}
.ar-move-info b{color:var(--ink)}
.ar-move .btn-block{margin-top:0}
.ar-move-foot{margin:14px 0 0;padding:12px 14px;border-radius:var(--r-sm);background:var(--pine-soft);color:var(--pine-deep);font-size:14px;line-height:1.5}
.ar-move-foot a{color:var(--pine-deep);font-weight:700}
.ar-picker{display:grid;gap:20px}
.ar-legend{margin:0 0 10px;padding:0;font:700 var(--fs-h3)/1.3 var(--sans);color:var(--wine)}
.ar-days{display:grid;gap:14px}
.ar-month-name{margin:0 0 8px;font:700 12px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.ar-day-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
.ar-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.ar-day,.ar-time{position:relative;display:block;margin:0;cursor:pointer;font-weight:400}
.ar-day input,.ar-time input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;cursor:pointer}
.ar-day-vis{display:grid;justify-items:center;gap:2px;padding:8px 4px;border:1.5px solid var(--line-strong);border-radius:14px;background:var(--surface);line-height:1.1}
.ar-day-vis small{font:600 12px/1.1 var(--sans);color:var(--ink-soft)}
.ar-day-vis b{font:600 24px/1 var(--serif);color:var(--ink);font-variant-numeric:lining-nums}
.ar-time span{display:grid;place-items:center;min-height:50px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--surface);font:700 16px var(--sans);color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.ar-day input:checked + .ar-day-vis,.ar-time input:checked + span{background:var(--grad-cta);border-color:transparent;color:#fff}
.ar-day input:checked + .ar-day-vis small,.ar-day input:checked + .ar-day-vis b{color:#fff}
.ar-day input:focus-visible + .ar-day-vis,.ar-time input:focus-visible + span{outline:3px solid var(--focus);outline-offset:2px}
.ar-swap{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);gap:10px;align-items:center;padding:14px;border-radius:var(--r);background:var(--gold-tint);border:1px solid #efd9a8}
.ar-swap span{display:block;font:700 11px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.ar-swap b{display:block;margin-top:4px;font-size:15px;line-height:1.3;color:var(--wine)}
.ar-swap div:first-child b{color:var(--ink-soft);font-weight:600;text-decoration:line-through;text-decoration-thickness:1px}
.area-page .ar-swap .i{color:var(--bordeaux)}
.ar-last{margin:0;padding:10px 12px;border-radius:var(--r-sm);background:var(--todo);color:var(--todo-ink);font-size:14px;font-weight:600;line-height:1.45}
.ar-picker-actions{display:grid;gap:4px;justify-items:center}
.ar-empty{margin:0;color:var(--ink-soft)}

/* Riepilogo */
.ar-lines{list-style:none;margin:4px 0 0;padding:0}
.ar-line{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line)}
.ar-line-text b{display:block;line-height:1.3}
.ar-line-text span{display:block;margin-top:2px;font-size:14px;line-height:1.4;color:var(--ink-soft)}
.ar-line-right{display:grid;justify-items:end;gap:6px}
.ar-line-price{font:600 24px/1 var(--serif);color:var(--wine);font-variant-numeric:lining-nums tabular-nums}
.ar-totals{display:grid;gap:8px;margin:14px 0 0;padding:14px 16px;border-radius:var(--r);background:var(--paper)}
.ar-totals div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.ar-totals dt{color:var(--ink-soft)}
.ar-totals dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:lining-nums tabular-nums}
.ar-totals .is-total dt{color:var(--ink);font-weight:700}
.ar-totals .is-total dd{font:600 30px/1 var(--serif);color:var(--wine);font-variant-numeric:lining-nums tabular-nums}
.ar-totals .is-paid dd{color:var(--ok)}
.ar-totals .is-due dd{color:#6e470d}
.ar-totals .is-pending dd{color:#4a2c66}
.ar-recap-note{margin:10px 0 0;font-size:13px;color:var(--ink-soft)}

/* Come funziona */
.timeline{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:16px}
.timeline li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px}
.timeline b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--grad-gold);color:var(--night);font-size:14px}
.timeline strong{display:block;font:700 var(--fs-h3)/1.3 var(--sans)}
.timeline span{display:block;margin-top:2px;font-size:15px;line-height:1.45;color:var(--ink-soft)}

@media (min-width:601px) and (max-width:960px){
  .ar,.area-page .ar-login{max-width:620px;margin-left:auto;margin-right:auto}
  .ar-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ar-tile{flex-direction:column;align-items:flex-start;gap:8px}
  .ar-prep-grid{grid-template-columns:1fr 1fr}
  .ar-prep-block:last-child{grid-column:1/-1}
}
@media (min-width:961px){
  .ar{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:28px;align-items:start;padding-top:28px}
  .ar-alert{grid-column:1/-1}
  .ar-side,.ar-content{display:flex;flex-direction:column;gap:20px}
  .ar-tiles{display:none}
  .ar.is-single{grid-template-columns:minmax(0,520px);justify-content:center}
  .ar.is-single .ar-content{display:none}
  .area-page .ar-login{margin-top:48px}
  .ar-prep-grid{grid-template-columns:1fr 1fr}
  .ar-prep-block:last-child{grid-column:1/-1}
}
/* Il biglietto resta in vista mentre si scorrono le sezioni, solo se ci sta tutto (lo dice area.js con .is-sticky) */
@media (min-width:961px){
  .ar.is-sticky .ar-side{position:sticky;top:84px}
  .ar-count{margin-top:14px;padding-top:12px}
  .ar-count-box{padding:8px 6px 7px}
  .ar-count-box b{font-size:30px}
  .ar-ticket .ticket-date{font-size:40px}
  .ar-body{gap:12px}
}
@media (max-width:600px){
  .area-page .ar-login{margin-top:16px}
  .ar-login-head,.ar-login-body{padding-left:18px;padding-right:18px}
  .ar-login-foot{margin:14px 16px 18px}
  .ar-ticket .ticket-head{padding:22px 18px 20px}
  .ar-body{padding:16px 18px 18px}
  .ar-stub{padding:2px 18px 18px}
}
@media (max-width:359px){.ar-tiles{grid-template-columns:1fr}.ar-stub{grid-template-columns:1fr}.ar-stub div + div{padding-left:0;border-left:0}}

/* Movimento sobrio, solo senza preferenza per il movimento ridotto */
@media (prefers-reduced-motion:no-preference){
  .ar-loading{transition:opacity var(--dur-2)}
  .ar-btn-spin{animation:spin .8s linear infinite}
  .ar-login:not([hidden]),.ar:not([hidden]) .ar-ticket{animation:arIn var(--dur-3) var(--ease-out) both}
  .ar:not([hidden]) .ar-tiles,.ar:not([hidden]) .ar-content > section:not([hidden]),.ar:not([hidden]) .ar-help{animation:arIn var(--dur-3) var(--ease-out) 90ms both}
  .ar-alert:not([hidden]),.ar-error:not([hidden]),.ar-picker:not([hidden]),.ar-fs:not([hidden]),.ar-swap:not([hidden]),.ar-checkout:not([hidden]){animation:arIn var(--dur-2) var(--ease-out)}
  .ar-tile,.ar-day-vis,.ar-time span,.ar-logout{transition:border-color var(--dur-1),background-color var(--dur-1),transform var(--dur-1) var(--ease-out)}
  .ar-tile:active{transform:scale(.98)}
  .ar-day input:checked + .ar-day-vis,.ar-time input:checked + span{animation:pop var(--dur-1) var(--ease-out)}
}
@keyframes arIn{from{opacity:0;transform:translateY(10px)}}
@media (hover:hover){
  .ar-tile:hover,.ar-day-vis:hover,.ar-time span:hover,.ar-logout:hover{border-color:var(--cranberry)}
  .ar-share:hover,.ar-link:hover,.ar-mail:hover{color:var(--cranberry)}
}

/* Pagine legali */
.legal{max-width:760px;padding-top:36px;padding-bottom:72px}
.legal h1{font-size:clamp(38px,5vw,52px);color:var(--wine);margin:10px 0 8px}
.legal h2{font-size:28px;margin:32px 0 8px}
.legal p,.legal li{color:var(--ink-soft)}
.legal b{color:var(--ink)}
.legal-date{font-size:var(--fs-small)}
.legal-links{margin:36px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:15px}
.legal-links a{display:inline-block;padding:10px 0;color:var(--bordeaux);font-weight:700}
.dev-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.price,.price-line b,.summary .total dd,.c-price,.stepper output{font-variant-numeric:lining-nums tabular-nums}

/* ---------- Movimento: tutto dentro «nessuna preferenza», al massimo 1-2 effetti per schermata (§2.6) ---------- */
@media (prefers-reduced-motion:no-preference){
  .btn{transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2),filter var(--dur-2),background-color var(--dur-2),border-color var(--dur-2)}
  .btn .arrow{transition:transform var(--dur-2) var(--ease-out)}
  .sticky-cta{transition:transform var(--dur-2) var(--ease-out),visibility 0s linear var(--dur-2)}
  .sticky-cta.is-on{transition:transform var(--dur-2) var(--ease-out),visibility 0s}
  summary::after{transition:transform var(--dur-2) var(--ease-out)}
  /* comparsa allo scroll (site.js aggiunge .js e poi .in, una volta sola) */
  .js .reveal{opacity:0;transform:translateY(14px);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}
  .js .reveal.in{opacity:1;transform:none}
  /* neve leggera: in pausa quando l'apertura esce dallo schermo */
  .snow i{animation:fall linear infinite}
  .snow.paused i{animation-play-state:paused}
  /* le tre stampe escono dalla busta una alla volta, una sola volta; le lucine brillano */
  .js .pkg-art .pr{animation:slideOut var(--dur-3) var(--ease-out) both}
  .js .pkg-art .pr1{animation-delay:150ms}
  .js .pkg-art .pr2{animation-delay:300ms}
  .js .pkg-art .pr3{animation-delay:450ms}
  /* stampe vere: entrano una alla volta, poi fluttuano piano (ognuna col suo ritmo); le lucine brillano */
  .js .hp-print{animation:hpIn 700ms var(--ease-out) both,hpFloat 7s ease-in-out 700ms infinite}
  .js .hp-2{animation-delay:120ms,820ms;animation-duration:700ms,8s}
  .js .hp-3{animation-delay:240ms,940ms;animation-duration:700ms,6.5s}
  .js .hp-4{animation-delay:360ms,1060ms;animation-duration:700ms,7.6s}
  .hp-lights i{animation:tw 3.2s ease-in-out infinite}
  .hp-lights i:nth-child(3n+2){animation-delay:-1.1s}
  .hp-lights i:nth-child(3n){animation-delay:-2.2s}
  @media (hover:hover){.hp-print{transition:box-shadow var(--dur-2)}.hp-print:hover{animation-play-state:paused;z-index:4;box-shadow:0 26px 40px -16px rgba(0,0,0,.85)}}
  .pkg-art .tw{animation:tw 3.2s ease-in-out infinite}
  .pkg-art .tw:nth-child(3n+2){animation-delay:-1.1s}
  .pkg-art .tw:nth-child(3n){animation-delay:-2.2s}
  .pkg-art .tw:nth-child(4n){animation-duration:4.1s}
  .spinner{animation:spin 1s linear infinite}
  .step-panel:not([hidden]){animation:stepIn var(--dur-2) var(--ease-out)}
  .flash{animation:flash 600ms ease-out}
  .booking-page .choice:has(input:checked)::after,.booking-page .slot[aria-pressed="true"]::after,.gift-add[aria-pressed="true"] svg{animation:pop var(--dur-1) var(--ease-out)}
}
@keyframes fall{to{transform:translateY(110vh)}}
@keyframes slideOut{from{transform:translateY(22px) rotate(0);opacity:0}}
@keyframes tw{50%{opacity:.45}}
@keyframes hpIn{from{opacity:0;transform:translateY(26px) scale(.92) rotate(0)}}
@keyframes hpFloat{0%,100%{transform:translateY(0) rotate(var(--r))}50%{transform:translateY(-9px) rotate(calc(var(--r) + 1.5deg))}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes stepIn{from{opacity:0;transform:translateX(12px)}}
@keyframes pop{from{transform:scale(.6);opacity:0}}
@keyframes flash{from{background-color:var(--gold-tint)}}

/* Effetti al passaggio del mouse solo dove esiste davvero (sul touch restano «appiccicati») */
@media (hover:hover){
  .btn-primary:hover{filter:brightness(1.08)}
  .btn-gold:hover{filter:brightness(1.05)}
  .btn-outline:hover{border-color:var(--bordeaux)}
  .btn-ghost:hover{background:rgba(255,255,255,.15)}
  .btn:hover .arrow{transform:translateX(3px)}
  .topbar nav a:not(.btn):hover{color:#fff}
  .light-bar nav a:not(.btn):hover{color:var(--ink)}
  .day-chip:hover{border-color:var(--bordeaux)}
  .final .day-chip:hover{border-color:var(--gold);background:rgba(255,255,255,.12)}
  .choice:hover,.cal-day.has:hover,.slot:hover,.gift-add:hover,.cal-nav:not([disabled]):hover{border-color:var(--cranberry)}
  .ms-edit:hover,.disclosure:hover{color:var(--cranberry)}
  .wa-float:hover,.btn-wa:hover{background:#18643f}
  .link-btn:hover{color:var(--cranberry)}
  summary:hover{color:var(--cranberry)}
}

/* ---------- Responsive ---------- */
@media (min-width:600px){
  .booking-page .cal-day{aspect-ratio:auto;height:54px}
  .hero-cta{width:auto}
  .hero-media{max-width:520px;max-height:390px}
  .set-wa{width:auto;justify-content:center}
  .guarantees li{padding:18px}
}
@media (min-width:861px){
  .topbar{position:sticky;top:0}
  .topbar:not(.light-bar){background:rgba(26,11,16,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(242,212,155,.12)}
  .topbar .wrap{height:64px}
  .home .topbar nav{display:flex}
  .home .topbar{position:sticky}
  .home .hero{padding-top:56px}
  [id]{scroll-margin-top:80px}
  .sticky-cta{display:none}
  .wa-float{position:fixed;right:18px;bottom:22px;z-index:45;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 18px;border-radius:999px;background:var(--wa);color:#fff;text-decoration:none;font:700 14px var(--sans);box-shadow:0 12px 28px -10px rgba(0,0,0,.45)}
  footer.site{padding-bottom:96px} /* spazio per il pulsante fisso «Domande?»: non copre l'ultima riga */
  footer.site .foot-links{display:grid;gap:6px}

  .hero{padding:56px 0 72px}
  .hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:center}
  .hero h1{margin:20px 0 18px;font-size:clamp(44px,5vw,66px)}
  .hero .sub{font-size:19px;margin-bottom:20px}
  .price-line{font-size:16px;margin-bottom:22px}
  .price-line b{font-size:44px}
  .pl-more{display:inline;font-size:16px;color:inherit}
  .pl-sep{display:inline}
  .hero .reassure{margin-top:14px}
  .hero-media{max-height:460px}
  .hero.has-video .hero-video{aspect-ratio:9/16;max-width:360px;max-height:640px;justify-self:center;border:1px solid rgba(242,212,155,.35);box-shadow:0 0 0 8px rgba(231,183,95,.08),0 0 70px -10px rgba(231,183,95,.4),0 30px 60px -30px rgba(0,0,0,.8)}

  .how .section-head{text-align:center;justify-items:center;margin-bottom:34px}
  .timeline-steps{grid-template-columns:repeat(3,1fr);gap:22px}
  .timeline-steps li{grid-template-columns:1fr;justify-items:center;text-align:center;gap:10px}
  .timeline-steps li:not(:last-child)::after{left:calc(50% + 40px);right:calc(-50% + 40px);top:28px;bottom:auto;width:auto;height:2px;background:linear-gradient(90deg,var(--gold),rgba(231,183,95,.2))}
  .timeline-steps p{max-width:20em}
  .value-strip{max-width:860px;margin:40px auto 0}
  .value-strip li{padding:20px 16px}
  .value-strip b{font-size:36px}
  .value-strip span{font-size:14px}
  .how-note{max-width:44em;margin:20px auto 0;text-align:center}

  .set-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
  .set-text{font-size:18px}
  .media-strip{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;margin:0 0 16px;padding:0}
  .note{padding:34px 32px 26px}
  .note-text{font-size:19px}
  .signature{font-size:28px}

  .pkg-grid{grid-template-columns:1fr 1fr;align-items:start}
  .pkg{padding:32px 28px 24px}
  .pkg .btn{margin-top:22px}
  .common{margin-bottom:34px}
  .common-lead{flex-basis:auto}

  .guarantees{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:34px}
  .final-text{font-size:18px}
}
@media (max-width:960px){
  .booking-grid{grid-template-columns:minmax(0,1fr)}
  .summary{position:static}
  .summary-foot{display:none}
  .booking-page .summary{display:none}
  .booking-page .booking-grid{padding-bottom:130px}
  .booking-page [data-next]{display:none}
  .book-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,250,244,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -10px 30px -18px rgba(42,10,18,.35)}
  /* mentre si scrive in un campo la barra si toglie di mezzo (la tastiera del telefono la spingerebbe sopra i campi) */
  .kb-open .book-bar{display:none}
  /* il campo che riceve il fuoco non finisce sotto la barra in alto né sotto quella in basso */
  html:has(body.booking-page){scroll-padding:72px 0 150px}
}
@media (max-width:860px){
  .topbar nav a:not(.btn){display:none}
  .light-bar{position:sticky}
  /* Video vero dell'apertura: sfondo a tutto schermo, testi nel terzo inferiore (zona del pollice) */
  .hero.has-video{display:flex;flex-direction:column;justify-content:flex-end;min-height:min(100svh,760px);padding-top:0}
  .hero.has-video .hero-grid{position:static}
  .hero.has-video .hero-video{position:absolute;inset:0;z-index:1;max-height:none;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none}
  .hero.has-video .hero-video::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(26,11,16,.94) 0,rgba(26,11,16,.55) 45%,transparent 75%);pointer-events:none}
  .hero.has-video .hero-video .stamp{top:64px;bottom:auto;left:16px}
  .hero.has-video .video-toggle{top:58px;right:16px}
}
@media (max-width:600px){
  .wrap{padding-left:16px;padding-right:16px}
  .choice-grid,.fields,.looks,.outfit-tips{grid-template-columns:1fr}
  .ticket-head,.ticket-body{padding-left:18px;padding-right:18px}
  .ticket-stub{padding-left:18px;padding-right:18px}
  .card.recap{padding:2px 16px}
  /* riepiloghi: etichetta sopra, valore sotto (i valori lunghi restano leggibili) */
  .kv div{display:grid;gap:1px}
  .kv dt{font-size:13px}
  .kv dd{text-align:left}
  .guide{padding-top:28px}
  .combo{padding:14px 16px;gap:14px}
  .panel,.card{padding:22px 16px}
  .booking-page .panel{padding:2px 0 0;background:none;border:0;border-radius:0;box-shadow:none}
  .booking-page .cal{padding:0;border:0;border-radius:0;background:none}
  .booking-page .cal-grid{gap:3px}
  .booking-page .cal-day{border-radius:10px}
  .booking-page .choice{padding:20px 16px 16px 52px}
  .booking-page .choice::before,.booking-page .choice:has(input:checked)::after{left:14px}
  .booking-page .choice .badge{left:52px}
  .c-name{font-size:27px}
  .booking-page .c-price{font-size:30px}
  .submit-row{flex-direction:column-reverse;align-items:stretch}
  .submit-row .link-back{align-self:flex-start}
  .submit-row .btn{width:100%}
  .recovery-card{margin:20px auto 48px}
  .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .confirm-card{margin:20px auto}
  .confirm-wrap{margin-top:16px}
  .secure span{display:none}
  .topbar .btn-sm{padding:10px 14px;font-size:14px}
}
/* Telefoni stretti: marchio e pulsante della barra chiara stanno sulla stessa riga; sotto i 370 px il marchio si accorcia */
@media (max-width:420px){.light-bar .brand{font-size:20px}.light-bar .btn-sm{font-size:13px;padding:10px 12px}}
@media (max-width:370px){.topbar .wrap:has(> .btn) .brand span{display:none}}
@media print{
  .topbar,.draft-bar,.wa-float,.sticky-cta,.no-print,.snow,footer.site{display:none!important}
  body{background:#fff}
}
