@import url("https://fonts.googleapis.com/css2?family=Archivo:ital,wdth,wght@0,62..125,100..900;1,62..125,100..900&display=swap");
/* Dott.ssa Suha Khatib — filler labbra Torino · v3 «Misura» */

:root{
  --bianco:#F7F6F4;
  --cipria:#EEE4DE;
  --linea:#DAD4CE;
  --inchiostro:#1C1B1A;
  --grigio:#625D59;      /* 6.0:1 on bianco */
  --lacca:#8C1D2C;       /* lacquer lip red, 8.9:1 with white */
  --lacca-2:#6E1522;
  --rosa-scuro:#F3D9D6;  /* text on lacca */
  --err:#A3261B;
  --f:"Archivo V","Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:clamp(20px,4.6vw,68px);
  --max:1320px;
  --e:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--bianco);color:var(--inchiostro);font-family:var(--f);font-size:17px;line-height:1.6;font-stretch:100%;-webkit-font-smoothing:antialiased}
.lp{overflow-x:clip}
a{color:var(--lacca);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--inchiostro)}
:focus-visible{outline:2px solid var(--lacca);outline-offset:3px;border-radius:3px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.x{font-stretch:125%}                 /* expanded: display voice */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tbd{color:var(--lacca);font-style:italic}
.pend{display:inline-block;font-size:12.5px;font-weight:500;color:var(--lacca);background:var(--rosa-scuro);padding:1px 9px;border-radius:999px;white-space:nowrap;vertical-align:1px}

/* demo notice */
.demo{background:var(--inchiostro);color:#D6D2CE;font-size:13px;line-height:1.45}
.demo .wrap{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:space-between;padding-block:8px}
.demo strong{color:#fff;font-weight:600}
.demo button{font:inherit;color:#fff;background:none;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:5px 12px;min-height:32px;cursor:pointer}

/* header */
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:80px}
.mark{display:grid;gap:2px;text-decoration:none;color:var(--inchiostro);line-height:1.1}
a.mark:hover{color:var(--inchiostro)}
.mark .n{font-stretch:125%;font-weight:500;font-size:17px;letter-spacing:.01em}
.mark .r{font-size:13.5px;color:var(--grigio)}

/* buttons */
.btn{--mx:0px;--my:0px;position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 32px;border-radius:999px;border:0;background:var(--lacca);color:#fff;font:600 16px/1 var(--f);font-stretch:110%;letter-spacing:.01em;text-decoration:none;cursor:pointer;overflow:hidden;isolation:isolate;transform:translate(var(--mx),var(--my));transition:transform .4s var(--e),background .3s}
a.btn{color:#fff}
.btn::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--inchiostro);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--e);z-index:-1}
.btn:hover::before{transform:scaleX(1)}
a.btn:hover{color:#fff}
.btn.sm{min-height:46px;padding:0 22px;font-size:15px}
.btn.dark{background:var(--inchiostro)}
.btn.dark::before{background:var(--lacca)}
.btn.line{background:transparent;color:var(--inchiostro);box-shadow:inset 0 0 0 1px var(--inchiostro)}
.btn.line:hover{color:#fff}
.btn[disabled]{background:var(--cipria);color:#8E8883;cursor:not-allowed}
.btn[disabled]::before{display:none}
.tl{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--inchiostro);text-decoration:none;background:linear-gradient(var(--lacca),var(--lacca)) 0 calc(100% - 8px)/100% 1.5px no-repeat;transition:background-size .4s var(--e)}
.tl:hover{background-size:0 1.5px;background-position:100% calc(100% - 8px);color:var(--lacca)}

/* ================= HERO: kinetic type ================= */
.hero{position:relative;min-height:min(880px,calc(100svh - 112px));display:flex;flex-direction:column;justify-content:space-between;padding:clamp(16px,3vw,40px) 0 clamp(36px,4vw,56px)}
.h1{position:relative;margin:0;font-weight:300;font-stretch:125%;font-size:clamp(46px,8.2vw,132px);line-height:.88;letter-spacing:-.035em;text-transform:none}
.h1 .ln{display:block;white-space:nowrap}
.h1 .ln2{text-align:right}
.h1 .ch{display:inline-block;will-change:font-stretch,transform}
.oval{position:relative;display:block;margin:clamp(-18px,-1.2vw,-8px) auto;width:clamp(180px,26vw,380px);aspect-ratio:1.9/1;border-radius:50%;overflow:hidden;background:var(--cipria);z-index:1}
.oval .ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:12%;font-size:12px;font-weight:400;font-stretch:100%;letter-spacing:0;line-height:1.35;white-space:normal;color:var(--grigio)}
.oval .ph b{display:block;color:var(--inchiostro);font-weight:600}
.oval .tex{position:absolute;inset:-20%;background:radial-gradient(60% 60% at 40% 45%,#F6EDE8 0%,#EADCD5 45%,#DCC9C0 100%)}
.hero-low{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:24px clamp(32px,6vw,96px);align-items:end;margin-top:clamp(20px,2.4vw,36px)}
.lead{margin:0;font-size:clamp(18px,1.55vw,21px);line-height:1.5;max-width:30em;text-wrap:pretty}
.lead b{font-weight:600}
.act{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:22px}
.side-facts{margin:0;display:grid;gap:10px;font-size:15px;color:var(--grigio);justify-self:end;text-align:right}
.side-facts dt{font-size:12.5px;font-stretch:112%;font-weight:500;color:var(--inchiostro)}
.side-facts dd{margin:0 0 6px}
.scrollcue{position:absolute;left:50%;bottom:10px;width:1px;height:38px;background:linear-gradient(var(--linea),transparent);overflow:hidden}
.scrollcue::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--lacca);animation:cue 2.2s var(--e) infinite}
@keyframes cue{to{top:110%}}

/* ================= MANIFESTO: words fill on scroll ================= */
.manifesto{padding:clamp(100px,14vw,220px) 0}
.manifesto p{margin:0;font-weight:300;font-stretch:118%;font-size:clamp(30px,4.6vw,70px);line-height:1.08;letter-spacing:-.025em;max-width:16.5em;text-wrap:balance}
.manifesto .w{display:inline;transition:color .2s}
.manifesto .sig{margin-top:clamp(28px,3vw,44px);display:flex;gap:16px;align-items:center;max-width:none;font-size:15px;font-weight:400;font-stretch:100%;letter-spacing:0;line-height:1.4;color:var(--grigio)}
.manifesto .sig::before{content:"";width:44px;height:1px;background:var(--lacca)}

/* ================= PROFESSIONAL ================= */
.pro{padding:clamp(90px,11vw,160px) 0}
.pro .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,110px);align-items:center}
.pro-img{position:relative;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:var(--cipria)}
.pro-img .tex{position:absolute;inset:-12%;background:radial-gradient(70% 60% at 50% 40%,#F2E7E2,#DCCAC1)}
.pro-img .ph{position:absolute;left:16px;right:16px;bottom:16px;margin:0;font-size:12.5px;line-height:1.4;color:var(--inchiostro);background:rgba(247,246,244,.88);padding:10px 12px;border-radius:10px}
.pro-img .ph b{display:block;font-weight:600}
.h2{margin:0 0 24px;font-weight:300;font-stretch:122%;font-size:clamp(34px,4.2vw,64px);line-height:1;letter-spacing:-.03em;text-wrap:balance}
.intro{margin:0;font-size:18px;color:var(--grigio);max-width:32em;text-wrap:pretty}
.prose p{margin:0 0 16px;max-width:36em;color:#3A3735;text-wrap:pretty}
.creds{margin:34px 0 0;display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);font-size:15.5px}
.creds dt,.creds dd{margin:0;padding:14px 0;border-top:1px solid var(--linea)}
.creds dt{color:var(--grigio)}

/* ================= APPROACH: pinned convergence ================= */
.planes{position:relative;background:var(--inchiostro);color:#EDE9E5}
.planes .h2{color:#fff;font-size:clamp(32px,3.3vw,50px);max-width:13em}
.planes .intro{font-size:17px}
.stage-list li{padding:12px 0}
.planes-pin{min-height:100svh;display:grid;align-items:center;padding:clamp(64px,7vw,100px) 0}
.planes .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,90px);align-items:center}
.planes .intro{color:#BDB6B0}
.stage-list{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:4px}
.stage-list li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 14px;padding:14px 0;border-top:1px solid #3A3735;opacity:.38;transition:opacity .5s var(--e)}
.stage-list li.on{opacity:1}
.stage-list .k{font-stretch:125%;font-weight:300;font-size:22px;line-height:1.2;color:#E6A7A0}
.stage-list b{font-weight:500;font-stretch:118%;font-size:21px;line-height:1.2;color:#fff}
.stage-list li>span:not(.k){grid-column:2;font-size:15.5px;color:#BDB6B0}
.orbit{position:relative;width:100%;aspect-ratio:1.25/1;max-width:640px;justify-self:center}
.orbit svg{width:100%;height:100%;overflow:visible}
.orbit ellipse{fill:none;stroke:#EDE9E5;stroke-width:1}
.orbit .core{fill:var(--lacca);stroke:none;opacity:0}
.orbit .lbl{font-family:var(--f);font-size:22px;font-weight:300;font-stretch:118%;fill:#EDE9E5}
.orbit .ctr{font-family:var(--f);font-size:15px;font-weight:600;fill:#fff;opacity:0}

/* ================= PATH: horizontal on desktop ================= */
.path{position:relative;overflow:hidden}
.path-pin{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:clamp(72px,8vw,110px) 0}
.path-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 60px;margin-bottom:clamp(36px,4vw,60px)}
.path-head .h2{margin:0;max-width:11em}
.track{display:flex;gap:clamp(20px,2.4vw,36px);padding-left:var(--gut);width:max-content;will-change:transform}
.panel{position:relative;width:min(560px,78vw);min-height:360px;padding:36px 36px 34px;border-radius:24px;background:var(--cipria);display:flex;flex-direction:column}
.panel:nth-child(2){background:#E6D9D2}
.panel:nth-child(3){background:var(--bianco);box-shadow:inset 0 0 0 1px var(--linea)}
.panel .no{font-weight:200;font-stretch:125%;font-size:clamp(96px,10vw,150px);line-height:.8;letter-spacing:-.05em;color:var(--lacca)}
.panel h3{margin:auto 0 10px;font-weight:500;font-stretch:118%;font-size:26px;line-height:1.15;letter-spacing:-.01em}
.panel p{margin:0;color:#3A3735;font-size:16.5px;max-width:32em}
.panel .gate{position:absolute;top:30px;right:30px;font-size:13px;font-weight:600;color:#fff;background:var(--lacca);padding:6px 12px;border-radius:999px}
.panel.outro{background:var(--inchiostro);color:#fff;justify-content:space-between}
.panel.outro p{color:#D6D2CE;font-size:clamp(22px,2vw,28px);font-weight:300;font-stretch:115%;line-height:1.2}
.progress{height:2px;margin:clamp(30px,3vw,48px) var(--gut) 0;background:var(--linea);position:relative;max-width:calc(var(--max) - 2 * var(--gut))}
.progress i{position:absolute;inset:0;background:var(--lacca);transform:scaleX(0);transform-origin:left}

/* ================= INFO + FAQ ================= */
.info{padding:clamp(90px,11vw,170px) 0}
.info.alt{background:var(--cipria)}
.info .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,110px);align-items:start}
.info .side{position:sticky;top:40px}
.info .side p{margin:0;color:var(--grigio);font-size:15px;max-width:26em}
.acc{border-top:1px solid var(--inchiostro)}
.acc-item{border-bottom:1px solid var(--linea)}
.acc-btn{position:relative;width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;background:none;border:0;text-align:left;cursor:pointer;color:var(--inchiostro);font:400 clamp(19px,1.7vw,23px)/1.25 var(--f);font-stretch:112%;letter-spacing:-.01em;transition:color .25s,padding-left .45s var(--e)}
.acc-btn:hover{color:var(--lacca);padding-left:10px}
.pm{position:relative;flex:none;width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--linea);transition:background .35s,box-shadow .35s}
.pm::before,.pm::after{content:"";position:absolute;left:11px;right:11px;top:50%;height:1.5px;margin-top:-.75px;background:currentColor;transition:transform .45s var(--e)}
.pm::after{transform:rotate(90deg)}
.acc-item.open .pm{background:var(--lacca);color:#fff;box-shadow:none}
.acc-item.open .pm::after{transform:rotate(0)}
.acc-panel{height:0;overflow:hidden}
.acc-panel p{margin:0;padding:0 56px 28px 0;color:#3A3735;font-size:16.5px;max-width:42em;text-wrap:pretty}

/* ================= COSTS ================= */
.costs{padding:clamp(90px,11vw,170px) 0}
.costs .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,110px)}
.listino{list-style:none;margin:0;padding:0}
.listino li{padding:26px 0;border-bottom:1px solid var(--linea)}
.listino li:first-child{border-top:1px solid var(--inchiostro)}
.row{display:flex;align-items:baseline;gap:14px}
.row .t,.row .p{font-weight:400;font-stretch:115%;font-size:clamp(20px,1.9vw,27px);line-height:1.2;letter-spacing:-.01em}
.row .p{white-space:nowrap}
.row .dots{flex:1;min-width:24px;height:1px;background:repeating-linear-gradient(90deg,var(--grigio) 0 2px,transparent 2px 7px);transform-origin:left;align-self:center;transform:translateY(3px)}
.listino .s{margin:8px 0 0;font-size:15px;color:var(--grigio)}
.practical{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;margin-top:40px}
.practical h3{margin:0 0 4px;font-size:15px;font-weight:600;font-stretch:110%}
.practical p{margin:0;font-size:15.5px;color:var(--grigio)}

/* ================= TRUST ================= */
.trust{padding:0 0 clamp(90px,11vw,170px)}
.trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tcard{padding:30px 28px;border-radius:20px;background:var(--cipria);display:flex;flex-direction:column;gap:12px;min-height:250px}
.tcard h3{margin:0;font-weight:400;font-stretch:118%;font-size:24px;line-height:1.15;letter-spacing:-.01em}
.tcard p{margin:0;color:#3A3735;font-size:15.5px}
.tcard .go{margin-top:auto}
.trust-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 60px;margin-bottom:40px}
.trust-head .h2{margin:0;max-width:12em}

/* ================= BOOKING ================= */
.book{background:var(--lacca);color:var(--rosa-scuro);padding:clamp(90px,11vw,160px) 0 clamp(70px,8vw,110px)}
.book .h2{color:#fff}
.book .intro{color:#F0CFCB}
.book-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 60px;align-items:end;margin-bottom:clamp(36px,4vw,56px)}
.book-head .h2{margin:0}
.bk{display:grid;grid-template-columns:minmax(0,1fr) 310px;background:var(--bianco);color:var(--inchiostro);border-radius:30px;overflow:hidden;box-shadow:0 50px 100px -50px rgba(40,6,12,.7)}
.bk-main{padding:clamp(24px,3.6vw,50px);min-width:0;position:relative}
.bk-aside{background:var(--cipria);padding:clamp(24px,3vw,40px) 28px;display:flex;flex-direction:column;gap:22px}
.bk-aside h3{margin:0;font-weight:400;font-stretch:118%;font-size:24px;line-height:1.15}
.sim{align-self:flex-start;font-size:12.5px;font-weight:600;color:var(--lacca);background:var(--rosa-scuro);border-radius:999px;padding:4px 11px}
.meta{margin:0;display:grid;gap:14px;font-size:15px}
.meta div{display:grid;gap:1px}
.meta dt{font-size:13px;color:var(--grigio)}
.meta dd{margin:0;font-weight:600}
.meta dd span{display:block;font-weight:400;color:var(--grigio)}
.bk-note{margin:auto 0 0;font-size:13.5px;color:var(--grigio)}
.alt-line{margin:28px 0 0;text-align:center;font-size:15px;color:#F0CFCB}
.alt-line .tbd{color:#fff}

.steps-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 26px;padding:0;list-style:none;font-size:13px;color:#8E8883}
.steps-bar li{position:relative;padding-top:12px}
.steps-bar li::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--linea);border-radius:2px}
.steps-bar li::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--lacca);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--e)}
.steps-bar li.on,.steps-bar li.done{color:var(--inchiostro);font-weight:600}
.steps-bar li.on::after,.steps-bar li.done::after{transform:scaleX(1)}
.bk-title{margin:0 0 4px;font-weight:400;font-stretch:118%;font-size:clamp(26px,2.4vw,34px);line-height:1.1;letter-spacing:-.015em}
.bk-sub{margin:0 0 26px;color:var(--grigio);font-size:15px}

.pick{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,3.4vw,50px)}
.cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-m{font-weight:400;font-stretch:118%;font-size:24px;letter-spacing:-.01em;overflow:hidden}
.cal-m span{display:inline-block}
.cal-nav{display:flex;gap:6px}
.ib{width:46px;height:46px;border-radius:50%;border:0;box-shadow:inset 0 0 0 1px var(--linea);background:transparent;color:var(--inchiostro);display:grid;place-items:center;cursor:pointer;transition:box-shadow .2s,background .2s}
.ib:hover:not([disabled]){box-shadow:inset 0 0 0 1px var(--inchiostro)}
.ib[disabled]{opacity:.3;cursor:not-allowed}
.cal-clip{overflow:hidden}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:4px}
.dow{text-align:center;font-size:12.5px;color:#8E8883;padding:8px 0}
.cell{display:grid;place-items:center}
.day{position:relative;width:min(100%,48px);aspect-ratio:1;border-radius:50%;border:0;background:none;padding:0;font:500 16px/1 var(--f);font-variant-numeric:tabular-nums;color:#ABA5A0;display:grid;place-items:center;transition:background .2s,color .2s,transform .2s var(--e)}
.day.av{color:var(--inchiostro);font-weight:600;cursor:pointer;background:var(--cipria)}
.day.av:hover{background:#E3D3CB;transform:scale(1.06)}
.day.sel,.day.sel:hover{background:var(--lacca);color:#fff;transform:none}
.day.full{text-decoration:line-through;text-decoration-color:#C3BCB6}
.day.today::after{content:"";position:absolute;bottom:6px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--grigio)}
.legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:14px;font-size:13px;color:var(--grigio)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.lg-a{width:14px;height:14px;border-radius:50%;background:var(--cipria)}
.lg-x{text-decoration:line-through;color:#ABA5A0}
.slots-day{margin:0 0 18px;font-weight:400;font-stretch:115%;font-size:22px;line-height:1.2}
.slot-g{margin:0 0 18px}
.slot-g h4{margin:0 0 10px;font-size:13.5px;font-weight:600;color:var(--grigio)}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.slot{min-height:52px;border-radius:999px;border:0;box-shadow:inset 0 0 0 1px var(--linea);background:transparent;font:600 16px/1 var(--f);font-variant-numeric:tabular-nums;color:var(--inchiostro);cursor:pointer;transition:background .2s,box-shadow .2s,color .2s}
.slot:hover{box-shadow:inset 0 0 0 1px var(--inchiostro)}
.slot.sel{background:var(--lacca);box-shadow:none;color:#fff}
.wait{min-height:220px;height:100%;border-radius:20px;background:repeating-linear-gradient(135deg,transparent 0 12px,rgba(140,29,44,.05) 12px 13px),var(--bianco);box-shadow:inset 0 0 0 1px var(--linea);display:grid;place-items:center;text-align:center;padding:24px;color:var(--grigio);font-size:15px}

.bk-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;margin-top:28px;padding-top:22px;border-top:1px solid var(--linea)}
.choice{font-size:15px;color:var(--grigio)}
.choice b{color:var(--inchiostro)}
.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0;background:none;border:0;font:600 15px/1 var(--f);color:var(--inchiostro);cursor:pointer}
.back:hover{color:var(--lacca)}

.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 22px}
.fld{position:relative;display:grid;gap:7px;min-width:0}
.fld label{font-size:14.5px;font-weight:600}
.fld label span{font-weight:400;color:var(--grigio)}
.in{width:100%;min-height:58px;padding:0 18px;border:0;box-shadow:inset 0 0 0 1px #C7C0B9;border-radius:16px;background:#fff;font:400 17px var(--f);color:var(--inchiostro);transition:box-shadow .25s}
.in:hover{box-shadow:inset 0 0 0 1px #9C958F}
.in:focus{outline:none;box-shadow:inset 0 0 0 2px var(--inchiostro),0 0 0 5px rgba(140,29,44,.1)}
.in.bad{box-shadow:inset 0 0 0 2px var(--err)}
.in.good{box-shadow:inset 0 0 0 1px #7C9A84}
.tel{display:grid;grid-template-columns:auto minmax(0,1fr)}
.tel .pre{display:grid;place-items:center;padding:0 14px;box-shadow:inset 0 0 0 1px #C7C0B9;border-radius:16px 0 0 16px;background:var(--cipria);color:var(--grigio)}
.tel .in{border-radius:0 16px 16px 0}
.errm{margin:0;font-size:13.5px;color:var(--err)}
.calm{grid-column:1/-1;margin:0;padding:14px 16px;border-radius:14px;background:var(--cipria);font-size:14.5px;color:#3A3735}
.cons{grid-column:1/-1;display:grid;gap:12px}
.chk{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;font-size:14.5px;color:#3A3735;cursor:pointer}
.chk input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--lacca);cursor:pointer}
.tag{margin-left:8px;font-size:12.5px;font-weight:600;white-space:nowrap}
.tag.req{color:var(--lacca)}
.tag.opt{color:#77716C}
.shake{animation:shake .45s var(--e)}
@keyframes shake{20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}

.sum{margin:0;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px var(--linea);overflow:hidden}
.sum div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:16px 22px;border-top:1px solid #EFEBE7}
.sum div:first-child{border-top:0}
.sum dt{color:var(--grigio);font-size:14.5px}
.sum dd{margin:0;font-size:16px}
.fine{margin:14px 0 0;font-size:13.5px;color:var(--grigio)}

.done{display:grid;justify-items:center;text-align:center;gap:10px;padding:6px 0}
.seal{width:110px;height:110px;overflow:visible}
.seal ellipse{fill:none;stroke:var(--lacca);stroke-width:1.5}
.seal path{fill:none;stroke:var(--lacca);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.done h3{margin:8px 0 0;font-weight:400;font-stretch:118%;font-size:clamp(28px,2.8vw,40px);line-height:1.08;letter-spacing:-.02em;max-width:14em}
.done .when{margin:0;font-size:18px}
.done .when b{font-weight:600}
.done .where{margin:0;color:var(--grigio)}
.next{list-style:none;margin:14px 0 0;padding:0;width:100%;max-width:540px;text-align:left;counter-reset:n}
.next li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--linea);font-size:15px;color:#3A3735;counter-increment:n}
.next li::before{content:counter(n);font-weight:300;font-stretch:125%;font-size:20px;line-height:1.1;color:var(--lacca)}
.simbox{margin:10px 0 0;max-width:540px;text-align:left;font-size:14px;color:var(--lacca-2);background:var(--rosa-scuro);padding:14px 18px;border-radius:14px}

/* ================= FOOTER ================= */
.foot{background:var(--inchiostro);color:#B4AEA9;font-size:14px;padding:64px 0 40px}
.foot .big{margin:0 0 48px;font-weight:200;font-stretch:125%;font-size:clamp(40px,7vw,104px);line-height:.9;letter-spacing:-.04em;color:#F1EEEB}
.foot .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-top:28px;border-top:1px solid #34312F}
.foot h4{margin:0 0 10px;font-size:14px;font-weight:600;color:#E8E4E0}
.foot p{margin:0 0 6px}
.foot a{color:#E8E4E0}
.foot .disc{margin-top:36px;font-size:13px;color:#8A847F}

/* mobile action bar */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;grid-template-columns:68px 68px minmax(0,1fr);gap:8px;align-items:stretch;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(247,246,244,.92);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-top:1px solid var(--linea);transform:translateY(115%);transition:transform .5s var(--e);box-shadow:0 -18px 40px -30px rgba(28,27,26,.35)}
.bar.show{transform:none}
.qa{display:grid;justify-items:center;align-content:center;gap:3px;min-height:58px;border-radius:18px;background:var(--bianco);box-shadow:inset 0 0 0 1px var(--linea);color:var(--inchiostro);text-decoration:none;font-size:13px;font-weight:500;line-height:1;transition:background .2s,box-shadow .2s,scale .15s}
a.qa{color:var(--inchiostro)}
.qa:active{scale:.94;background:var(--cipria)}
.qa svg{color:var(--lacca)}
.qa-book{min-height:58px;border-radius:18px;font-size:16px;padding:0 16px}
.bar.show .qa,.bar.show .qa-book{animation:qaIn .5s var(--e) both}
.bar.show .qa:nth-child(2){animation-delay:.05s}
.bar.show .qa-book{animation-delay:.1s}
@keyframes qaIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.toast{position:fixed;left:12px;right:12px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:41;margin:0;padding:12px 16px;border-radius:14px;background:var(--inchiostro);color:#F1EEEB;font-size:14px;line-height:1.4;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .3s,transform .3s var(--e)}
.toast.on{opacity:1;transform:none}

/* tracking debug */
.dbg{position:fixed;right:16px;bottom:16px;z-index:60;width:min(390px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 70px -30px rgba(28,27,26,.5),inset 0 0 0 1px var(--linea);font-size:13px}
.dbg-hd{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--linea);position:sticky;top:0;background:#fff}
.dbg-hd b{font-size:14px}
.dbg-hd button{font:600 13px var(--f);background:none;border:0;box-shadow:inset 0 0 0 1px var(--linea);border-radius:999px;padding:4px 12px;min-height:32px;cursor:pointer}
.dbg table{width:100%;border-collapse:collapse}
.dbg td{padding:8px 16px;border-bottom:1px solid #EFEBE7;vertical-align:top}
.dbg td:last-child{text-align:right;font-weight:600;white-space:nowrap}
.dbg code{font:12px ui-monospace,Menlo,monospace;color:var(--lacca)}
.dbg .lv{display:block;color:var(--grigio);font-size:12px}
.dbg-log{padding:10px 16px}
.dbg-log p{margin:0 0 6px;color:var(--grigio)}
.dbg-log ul{margin:0;padding:0;list-style:none}
.dbg-log li{font:11.5px ui-monospace,Menlo,monospace;padding:3px 0;border-bottom:1px dotted var(--linea);word-break:break-word}
.dbg-note{margin:0;padding:10px 16px 14px;font-size:12px;color:var(--grigio);border-top:1px solid var(--linea)}

/* ================= TABLET ================= */
@media (max-width:1060px){
  .bk{grid-template-columns:minmax(0,1fr)}
  .bk-aside{order:2}
  .bk-note{margin-top:0}
  .info .wrap,.costs .wrap{grid-template-columns:minmax(0,1fr)}
  .info .side{position:static}
  .planes .wrap{grid-template-columns:minmax(0,1fr)}
  .orbit{max-width:520px}
  .trust-grid{grid-template-columns:minmax(0,1fr)}
  .tcard{min-height:0}
}

/* ================= PHONE — its own composition ================= */
@media (max-width:760px){
  body{font-size:16.5px}
  .top .wrap{min-height:64px}
  .top .btn{display:none}
  .hero{min-height:0;padding-top:8px;padding-bottom:56px;justify-content:flex-start}
  .h1{font-size:clamp(40px,13.2vw,60px);line-height:.9;letter-spacing:-.04em}
  .h1 .ln{white-space:normal}
  .h1 .ln2{text-align:left}
  .oval{width:58%;margin:14px 0 14px auto}
  .hero-low{grid-template-columns:minmax(0,1fr);margin-top:22px;gap:22px}
  .act{margin-top:22px}
  .act .btn{width:100%}
  .act .tl{margin:0 auto}
  .side-facts{display:none}
  .scrollcue{display:none}
  .manifesto{padding:90px 0}
  .pro .wrap{grid-template-columns:minmax(0,1fr)}
  .pro-img{aspect-ratio:4/4.2}
  .creds{grid-template-columns:minmax(0,1fr)}
  .creds dt{padding-bottom:0}
  .creds dd{border-top:0;padding-top:2px}
  .planes-pin{min-height:0;padding:80px 0}
  .stage-list li{opacity:1}
  .orbit{max-width:360px;margin-top:10px}
  .path-pin{min-height:0;padding:84px 0}
  .track{flex-direction:column;width:auto;padding:0 var(--gut);gap:14px}
  .panel{width:auto;min-height:0;padding:28px 24px 26px}
  .panel .no{font-size:84px}
  .panel h3{margin-top:22px;font-size:22px}
  .panel .gate{top:24px;right:20px}
  .progress{display:none}
  .practical{grid-template-columns:minmax(0,1fr);gap:18px}
  .row .t,.row .p{font-size:19px}
  .book-head{grid-template-columns:minmax(0,1fr)}
  .bk{margin-inline:calc(var(--gut) * -1 + 8px);border-radius:24px}
  .bk-main{padding:22px 18px 0}
  .bk-aside{padding:24px 18px}
  .pick{grid-template-columns:minmax(0,1fr);gap:26px}
  .form{grid-template-columns:minmax(0,1fr)}
  .sum div{grid-template-columns:minmax(0,1fr);gap:2px;padding:13px 16px}
  .bk-foot{position:sticky;bottom:0;z-index:3;margin:24px -18px 0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:rgba(247,246,244,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .bk-foot .btn{flex:1 1 100%}
  .bk-foot.split{flex-direction:column-reverse;align-items:stretch}
  .bk-foot.split .back{align-self:center}
  .choice{flex:1 1 100%;text-align:center}
  .done{padding-bottom:24px}
  .foot .grid{grid-template-columns:minmax(0,1fr)}
  .bar{display:grid}
  .has-bar .foot{padding-bottom:120px}
  .has-bar .foot{padding-bottom:110px}
  .dbg{left:8px;right:8px;width:auto;bottom:86px}
}

/* ===== CRO additions ===== */
.promise{margin:0 0 14px;font-weight:400;font-stretch:115%;font-size:clamp(22px,2.2vw,32px);line-height:1.15;letter-spacing:-.015em;max-width:20em;color:var(--inchiostro)}
.micro{margin:14px 0 0;font-size:14px;color:var(--grigio)}
.side-facts .tbd{font-size:14px}

.moves{padding:0 0 clamp(100px,12vw,180px)}
.moves-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 60px;align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.moves-head .h2{margin:0;max-width:12em}
.moves-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--inchiostro)}
.moves-list li{padding:30px clamp(18px,2.4vw,36px) 8px 0}
.moves-list li+li{padding-left:clamp(18px,2.4vw,36px);border-left:1px solid var(--linea)}
.mline{display:block;width:100%;max-width:240px;height:auto;margin:6px 0 26px;overflow:visible}
.mline path{fill:none;stroke:var(--lacca);stroke-width:2;stroke-linecap:round}
.moves-list h3{margin:0 0 12px;font-weight:400;font-stretch:122%;font-size:clamp(26px,2.6vw,38px);line-height:1.05;letter-spacing:-.025em}
.moves-list .what{margin:0 0 14px;color:#3A3735;font-size:16px}
.moves-list .why{margin:0;padding-top:14px;border-top:1px dashed var(--linea);font-size:15px;color:var(--grigio)}
.moves-note{margin:40px 0 0;font-size:14.5px;color:var(--grigio);max-width:46em}

.offer{padding:clamp(100px,12vw,170px) 0;background:var(--cipria)}
.offer-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,110px);align-items:start}
.offer-head{position:sticky;top:40px}
.offer-card{margin-top:32px;padding:28px;border-radius:24px;background:var(--bianco);box-shadow:0 30px 60px -40px rgba(28,27,26,.35)}
.oc-t{margin:0;font-size:14px;font-weight:600;color:var(--grigio)}
.oc-p{margin:6px 0 8px;font-weight:300;font-stretch:125%;font-size:clamp(34px,3.4vw,48px);line-height:1;letter-spacing:-.03em}
.oc-p span{font-size:15px;font-weight:400;font-stretch:100%;letter-spacing:0;color:var(--grigio)}
.oc-s{margin:0 0 22px;font-size:15px;color:#3A3735}
.offer-card .btn{width:100%}
.offer-list{list-style:none;margin:0;padding:0;counter-reset:o;border-top:1px solid var(--inchiostro)}
.offer-list li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:4px 16px;padding:24px 0;border-bottom:1px solid #D9CBC3;counter-increment:o}
.offer-list li::before{content:counter(o);grid-row:span 2;font-weight:200;font-stretch:125%;font-size:44px;line-height:.9;color:var(--lacca)}
.offer-list h3{margin:0;font-weight:500;font-stretch:115%;font-size:clamp(20px,1.8vw,24px);line-height:1.2;letter-spacing:-.01em}
.offer-list p{margin:0;color:#3A3735;font-size:16px;max-width:36em}
.track .panel:nth-child(4){background:var(--bianco);box-shadow:inset 0 0 0 1px var(--linea)}
.track .panel:nth-child(3){background:#E6D9D2}

@media (max-width:1060px){
  .offer-grid{grid-template-columns:minmax(0,1fr)}
  .offer-head{position:static}
}
@media (max-width:760px){
  .promise{font-size:23px}
  .micro{text-align:center}
  .moves-head{grid-template-columns:minmax(0,1fr)}
  .moves-list{grid-template-columns:minmax(0,1fr)}
  .moves-list li,.moves-list li+li{padding:26px 0 22px;border-left:0}
  .moves-list li+li{border-top:1px solid var(--linea)}
  .mline{max-width:180px;margin-bottom:16px}
  .offer-list li{grid-template-columns:44px minmax(0,1fr)}
  .offer-list li::before{font-size:34px}
  .offer-card{padding:24px 20px}
}


@media (min-width:761px) and (max-height:860px){
  .hero{padding-top:4px}
  .h1{font-size:clamp(46px,6.4vw,104px)}
  .oval{width:clamp(150px,18vw,260px)}
  .promise{font-size:clamp(20px,1.8vw,26px);margin-bottom:10px}
  .lead{font-size:16.5px}
  .act{margin-top:18px}
  .micro{margin-top:10px}
  .planes-pin{padding:40px 0}
  .planes .h2{font-size:clamp(28px,2.8vw,40px);margin-bottom:16px}
  .planes .intro{font-size:16px}
  .stage-list{margin-top:22px}
  .stage-list li{padding:10px 0}
  .stage-list li>span:not(.k){font-size:14.5px}
}


/* ===== mobile refinement ===== */
.demo-short{display:none}
button,a,.day,.slot{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.btn:active{scale:.97}
.day.av:active,.slot:active,.ib:active{scale:.93}
#slots-day{scroll-margin-top:20px}
#bk-panel{scroll-margin-top:12px}
@media (max-width:760px){
  .demo-long{display:none}
  .demo-short{display:inline}
  .dbg-long{display:none}
  .demo .wrap{flex-wrap:nowrap;padding-block:6px;gap:10px;font-size:12.5px}
  .demo span{min-width:0}
  .demo button{flex:none;min-height:36px;padding:4px 12px;font-size:13px}
  .mark{min-height:44px;align-content:center}
  .hero{padding-top:4px;padding-bottom:48px}
  .h1{font-size:clamp(40px,12.6vw,58px)}
  .oval{width:40%;margin:6px 0 -30px auto;aspect-ratio:1.75/1}
  .oval .ph{display:none}
  .hero-low{margin-top:28px;gap:26px}
  .promise{font-size:clamp(19px,5.4vw,22px);margin-bottom:10px}
  .lead{font-size:16.5px;line-height:1.5}
  .act{margin-top:20px}
  .side-facts{display:grid;justify-self:stretch;text-align:left;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;font-size:14.5px;padding-top:18px;border-top:1px solid var(--linea)}
  .side-facts dt{font-size:13px;padding-top:1px}
  .side-facts dd{margin:0}
  .pend,.tag,.sim,.dow,.legend,.oc-t{font-size:13px}
  .pro-img .ph{font-size:13px}
  .creds a,.foot a,.tl,.alt-line a{display:inline-block;padding:13px 0;margin:-13px 0}
  .tl{margin:0;padding:0}
  .bk-foot{padding-top:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .calm{font-size:14px}
}
@media (max-width:760px) and (max-height:700px){
  .h1{font-size:clamp(38px,11.4vw,52px)}
  .hero-low{margin-top:22px}
  .lead{font-size:16px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .stage-list li{opacity:1}
}

/* --- NUOVE COMPONENTI MULTI-PAGINA E SITO COMPLETO --- */

/* Navigazione arricchita */
.nav-links {
  display: flex;
  align-items: center;
  gap: 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-links a {
  color: var(--inchiostro);
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  transition: color .2s var(--e);
  padding: 6px 0;
  position: relative;
}
.nav-links a:hover,
.nav-links a.active {
  color: var(--lacca);
}
.nav-links a.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--lacca);
  border-radius: 2px;
}
.nav-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* Badge di localizzazione */
.loc-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--cipria);
  color: var(--lacca);
}
.loc-badge.torino {
  background: #E8E5DF;
  color: #1C1B1A;
}
.loc-badge.ivrea {
  background: var(--rosa-scuro);
  color: var(--lacca);
}

/* Griglia servizi clinici */
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 24px;
  margin-top: 48px;
}
.service-card {
  background: #FFFFFF;
  border: 1px solid var(--linea);
  border-radius: 16px;
  padding: 36px 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform .3s var(--e), box-shadow .3s var(--e), border-color .3s;
}
.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(28,27,26,0.06);
  border-color: #C0B7AF;
}
.service-card .svc-num {
  font-size: 13px;
  font-weight: 600;
  color: var(--lacca);
  letter-spacing: .08em;
  margin-bottom: 12px;
}
.service-card h3 {
  font-size: 24px;
  line-height: 1.25;
  margin: 0 0 14px;
  font-weight: 500;
  font-stretch: 110%;
}
.service-card p {
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--grigio);
  margin: 0 0 20px;
  flex-grow: 1;
}
.service-card .svc-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.service-card .svc-tag {
  font-size: 12px;
  background: var(--bianco);
  color: var(--inchiostro);
  padding: 3px 10px;
  border-radius: 6px;
  border: 1px solid var(--linea);
}
.service-card .svc-link {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--lacca);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}
.service-card .svc-link:hover {
  color: var(--inchiostro);
}

/* Card Sede a confronto */
.venues-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 28px;
  margin-top: 40px;
}
.venue-card {
  background: #FFFFFF;
  border: 1px solid var(--linea);
  border-radius: 20px;
  padding: 40px 34px;
  position: relative;
  display: flex;
  flex-direction: column;
}
.venue-card.featured {
  border-color: var(--lacca);
  box-shadow: 0 12px 30px rgba(140,29,44,0.08);
}
.venue-card h3 {
  font-size: 26px;
  margin: 12px 0 6px;
  font-stretch: 115%;
}
.venue-card .addr {
  font-size: 15px;
  color: var(--grigio);
  margin-bottom: 18px;
}
.venue-card ul {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: grid;
  gap: 12px;
  font-size: 15px;
  color: var(--inchiostro);
  flex-grow: 1;
}
.venue-card ul li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.venue-card ul li svg {
  flex-shrink: 0;
  margin-top: 4px;
  color: var(--lacca);
}

/* Box WhatsApp Veloce */
.wa-box {
  background: #EEF8F1;
  border: 1px solid #C4E3CC;
  border-radius: 16px;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 40px 0;
}
.wa-box .wa-text h4 {
  font-size: 18px;
  margin: 0 0 4px;
  color: #12572B;
}
.wa-box .wa-text p {
  margin: 0;
  font-size: 14.5px;
  color: #3B6B4C;
}
.wa-btn {
  background: #1FB357;
  color: #FFFFFF !important;
  font-weight: 600;
  font-size: 15px;
  padding: 12px 22px;
  border-radius: 999px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  transition: background .2s;
}
.wa-btn:hover {
  background: #179647;
}

/* Callout Etico Medico */
.medical-ethics {
  border-left: 3px solid var(--lacca);
  background: rgba(140,29,44,0.03);
  padding: 20px 24px;
  border-radius: 0 12px 12px 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--grigio);
  margin: 30px 0;
}
.medical-ethics strong {
  color: var(--inchiostro);
  display: block;
  margin-bottom: 4px;
}

/* Responsive navigation */
@media(max-width:960px){
  .nav-links {
    display: none; /* In mobile visualizziamo CTA diretta */
  }
  .wa-box {
    flex-direction: column;
    align-items: flex-start;
  }
}
