@import url('lab.css');
:root{--lab-height:44px}
html{scroll-padding-top:calc(var(--lab-height) + 100px);scroll-behavior:auto}
.wrap{padding-inline:32px}
.labbar{min-height:44px;padding:10px 24px;font-size:.8125rem;line-height:1.5;flex-wrap:nowrap}
.labbar a{text-decoration:underline;text-underline-offset:4px;padding:0;border:0;border-radius:0}
.nav,.nav.solid{padding:14px 32px;background:rgba(244,238,226,.98);backdrop-filter:none;transition:none}
.nav-links{gap:28px}.nav-links a{font-size:.9375rem}
.btn{min-height:48px;font-size:.875rem;letter-spacing:.035em;justify-content:center;white-space:normal}
.labbar{flex-wrap:wrap}.labbar a{white-space:normal}
.hero{min-height:min(880px,100svh);padding:140px 0 80px}
.hero-title{font-size:clamp(3.4rem,9.3vw,8.4rem)}
.hero-title .sub{line-height:1.3}
.hero-lead{font-size:1.0625rem;line-height:1.8;max-width:40ch}
.hero-eyebrow .dot{display:none}.hero-cta{margin-top:28px}.stamp{animation:none}
.eyebrow{font-size:.8125rem;letter-spacing:.16em}
.manifesto{padding:100px 0 96px}
.manifesto .big{font-size:clamp(2rem,4.4vw,3.6rem);max-width:23ch;line-height:1.15}
.manifesto .cols{gap:36px;margin-top:36px}.manifesto .cols p{font-size:1rem;line-height:1.85}
.manifesto .springs{margin-top:30px}.studio-band{height:clamp(260px,42vh,440px)}
.sb-cap{font-size:.75rem;letter-spacing:.1em}
.variant-grid .disc-pin{padding:0 32px 80px}
.variant-grid .disc-head{padding:80px 0 8px;gap:24px}
.disc-head h2{line-height:1.12;max-width:20ch}
.variant-grid .disc-track{gap:28px;padding-top:32px}
.variant-grid .panel{min-height:0;border-radius:20px}
.panel-body{padding:26px}.panel-body h3{font-size:2rem;line-height:1.15;margin:8px 0 16px}
.panel p{font-size:1rem;line-height:1.75;color:#dedbce}
.panel .cap{font-size:.75rem;letter-spacing:.035em;padding:5px 10px}
.panel-top{gap:12px;flex-wrap:wrap;margin-bottom:4px}
.panel:hover,.pcard:hover,.panel:hover .panel-photo img{transform:none}
.panel-photo{max-height:none;aspect-ratio:3/2}
.panel-typo .salsa-big{padding-top:34px;font-size:3.4rem}
.variant-grid .panel.panel-typo{min-height:320px}
.orari{padding:100px 0}.orari .wrap{max-width:1440px}
.orari .sec-head{margin-bottom:44px;gap:32px}.orari .sec-note{max-width:38ch;font-size:1rem;line-height:1.8}
.tt{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;align-items:start;overflow:visible;padding:0;scroll-snap-type:none}
.day{min-width:0;padding:22px 20px;border-radius:18px}
.day summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:var(--serif);font-size:1.5rem;line-height:1.3;color:var(--sage-ink);cursor:pointer;padding:4px 0}
.day summary::-webkit-details-marker{display:none}
.day summary::after{content:'+';font-family:var(--sans);font-weight:400;font-size:1.1rem;opacity:.7}
.day[open] summary::after{content:'−'}
.day[open] summary{padding-bottom:20px;margin-bottom:8px;border-bottom:1px solid rgba(88,104,73,.2)}
.slot{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;padding:14px 0;font-size:.9375rem;line-height:1.6;border-bottom:1px solid rgba(42,40,32,.09)}
.slot .tm{text-align:center;padding:3px 4px;font-size:.875rem;letter-spacing:0;line-height:1.6}
.slot .tm,.slot.ref .tm{background:var(--sage-deep);color:var(--paper)}
.legend .swatch{display:none}
.slot .nm{min-width:0;overflow-wrap:normal}.slot:last-child{padding-bottom:4px;border-bottom:0}
.legend{font-size:.9375rem;line-height:1.8;gap:12px 28px;margin-top:30px}
.orari .note{font-size:.9375rem;line-height:1.8;max-width:82ch;margin-top:18px}
.tt-hint{display:none;margin-top:20px;font-size:.9375rem;color:var(--ink2)}
.prezzi{padding:100px 0}.prezzi .lead{font-size:1rem;line-height:1.8}
.price-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.pcard{padding:36px;border-radius:20px;box-shadow:none}
.pcard .k,.combi .ct{font-size:.8125rem;letter-spacing:.12em}
.pcard h3{font-size:2rem;line-height:1.2;margin:14px 0 12px}
.pcard .sub{font-size:.9375rem;line-height:1.7;margin-bottom:22px}
.pline{padding:16px 0;gap:24px;font-size:1rem;line-height:1.6}
.pline .per{font-size:.875rem;line-height:1.6}.iscr{font-size:.9375rem;line-height:1.7}
.trial-note{display:grid;grid-template-columns:.85fr 1.2fr 1fr;gap:24px;align-items:start;margin-top:28px;padding:30px 32px;border:1px solid rgba(88,104,73,.22);border-radius:20px}
.trial-note h3{font-size:1.7rem;line-height:1.2;color:var(--sage-ink)}
.trial-note p{font-size:.9375rem;line-height:1.8;color:var(--ink2)}
.combi{border-style:solid;border-radius:20px;padding:30px 32px;margin-top:28px}
.combi-grid{gap:24px 32px}.citem span{font-size:.9375rem;line-height:1.75;margin-top:10px}
.cta{background:var(--sage-deep);padding:100px 0}.cta h2{font-size:clamp(2.5rem,5.5vw,4.2rem);line-height:1.12}
.cta p{font-size:1rem;line-height:1.8}.cta .mini{font-size:.875rem;letter-spacing:.05em;opacity:1}
.dove{padding:90px 0}.map-card{height:auto;display:flex;justify-content:space-between;align-items:center;gap:32px;padding:40px;box-shadow:none;border-radius:20px}
.map-card h3{font-size:2rem;line-height:1.2;margin:12px 0}.map-card p{font-size:1rem;line-height:1.8;color:var(--ink2)}
.map-alt{font-size:.9375rem;line-height:1.7}.sp-t{font-size:.8125rem;letter-spacing:.12em}.sp-row img{opacity:1;max-width:100%}
footer{padding-top:64px}.foot-top{grid-template-columns:1.2fr 1.2fr .8fr 1fr;gap:32px}
footer .f-h,.foot-note{font-size:.8125rem;line-height:1.8;letter-spacing:.06em}
footer a,footer p{font-size:.9375rem;line-height:1.8}
footer .brand img{max-width:160px;height:auto}
.doc-main{max-width:880px;padding:70px 28px;margin:auto;line-height:1.85}
.doc-main h1{font-size:clamp(2.4rem,5vw,3.7rem);line-height:1.1;margin:20px 0 30px}
.doc-main h2{font-size:1.8rem;line-height:1.2;margin:36px 0 16px}
.doc-main p,.doc-main li{font-size:1rem;line-height:1.85;margin-bottom:16px}
.doc-main ul,.doc-main ol{padding-left:24px}.doc-main a{overflow-wrap:anywhere}
.doc-list{padding:0!important}.doc-list h2{margin:0 0 12px}.doc-list li{margin-bottom:20px}
@media(min-width:981px) and (max-height:720px){
 .hero{padding:110px 0 56px;min-height:calc(100svh - 44px)}
 .hero-title{font-size:clamp(4rem,7.8vw,6.8rem)}.hero-title .sub{font-size:1.65rem}
 .hero-eyebrow{margin-bottom:16px}.hero-lead{margin-top:16px;font-size:1rem;line-height:1.7}
 .hero-cta{margin-top:20px}.hero-visual{width:280px;margin-right:32px}
 .stamp{width:94px;height:94px;left:-18px;bottom:-16px}
}
@media(max-width:1199px){
 .tt{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.day{padding:24px}
 .slot{grid-template-columns:60px minmax(0,1fr);gap:18px;font-size:1rem}.slot .tm{font-size:.9375rem}
 .foot-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.nav-links{gap:20px}
}
@media(max-width:980px){
 .hero{padding-top:116px}.variant-grid .disc-track{gap:24px}.hero-grid{gap:36px}.manifesto .cols{gap:24px}
 .trial-note{grid-template-columns:1fr 1fr}.trial-note h3{grid-column:1/-1}
 .price-cols{grid-template-columns:1fr}.map-card{align-items:start;flex-direction:column;padding:32px}
}
@media(max-width:680px){
 .wrap{padding-inline:20px}.labbar{padding:10px 14px;font-size:.75rem;gap:10px}
 .nav,.nav.solid{padding:12px 16px;gap:12px}.nav .btn{display:inline-flex;min-height:40px;padding:8px 16px;font-size:.75rem;letter-spacing:.02em;margin-left:auto}
 .brand img{height:38px}.menu-btn{width:42px;height:42px}
 .hero{padding:104px 0 54px}.hero-title{font-size:clamp(2.5rem,14vw,4.8rem)}
 .hero-title .w{max-width:100%;overflow-wrap:anywhere}.hero-title .sub{font-size:clamp(1.3rem,5vw,1.8rem);line-height:1.35}
 .hero-eyebrow{margin-bottom:22px}.hero-eyebrow .eyebrow{font-size:.75rem;letter-spacing:.09em}
 .hero-lead{font-size:1rem;line-height:1.8;margin-top:22px}.hero-cta{gap:12px;margin-top:24px}
 .hero-visual{width:calc(100% - 12px);max-width:400px;margin-top:12px}.stamp{width:88px;height:88px;right:-2px;bottom:-18px}
 .manifesto{padding:72px 0}.manifesto .big{font-size:2.1rem;line-height:1.18}.manifesto .cols{margin-top:30px}
 .variant-grid .disc-pin{padding:0 20px 64px}.variant-grid .disc-head{padding-top:64px}.disc-head h2{font-size:2.3rem;line-height:1.15}
 .variant-grid .disc-track{grid-template-columns:1fr;gap:24px;padding-top:28px}
 .variant-grid .panel,.variant-grid .panel:nth-child(4),.variant-grid .panel:nth-child(5){grid-column:auto;min-height:0}
 .variant-grid .panel-typo{min-height:320px}.panel-photo{aspect-ratio:3/2}.panel-body{padding:26px}
 .orari,.prezzi{padding:72px 0}.orari .sec-head{gap:24px;margin-bottom:30px}.orari .sec-note{max-width:none}
 .tt{grid-template-columns:1fr;gap:16px}.day{padding:20px 24px}.day[open] summary{padding-bottom:20px}
 .slot{padding:16px 0;gap:18px;font-size:1rem}.slot .tm{font-size:.9375rem}.tt-hint{display:block}
 .legend{margin-top:26px;gap:12px}.orari .note{margin-top:18px}
 .pcard{padding:28px}.pline{font-size:.9375rem;gap:18px}.pcard h3{font-size:1.85rem}
 .trial-note{grid-template-columns:1fr;padding:26px;gap:20px}.trial-note h3{grid-column:auto}
 .combi{padding:26px}.combi-grid{grid-template-columns:1fr;gap:26px}.citem b{font-size:2rem}
 .cta{padding:72px 0}.cta h2{font-size:2.6rem;line-height:1.15}.dove{padding:64px 0}
 .map-card{padding:28px}.map-card h3{font-size:1.8rem}.map-card .eyebrow{letter-spacing:.08em}
 .sp-row{gap:28px}.sp-t{line-height:1.8}.foot-top{grid-template-columns:1fr;gap:32px}
 .mnav{padding:calc(var(--lab-height) + 90px) 24px 32px;overflow-y:auto;justify-content:flex-start}
 .mnav a:not(.btn){font-size:1.65rem;min-height:56px;padding:12px 0}
}
@media print{.labbar,.nav,.mnav,.menu-check,.skip{display:none!important}body{padding:0}.hero{min-height:0}section,article,.day,.pcard{break-inside:avoid}}
