/* Punto IT — sito generale. Mondo del furgone: bianco, giallo, nero. */
:root{
  --giallo:#FFC61A; --giallo-scuro:#E9A800; --giallo-chiaro:#FFE680;
  --nero:#111110; --grafite:#1E1D1B; --carta:#F7F5EF; --bianco:#FFFFFF;
  --testo:#2B2925; --grigio:#6B675F; --linea:rgba(17,17,16,.12);
  --seam:#3F6752;
  --ease:cubic-bezier(.16,1,.3,1);
  --f-titolo:"Jost", "Futura", system-ui, sans-serif;
  --f-testo:"Instrument Sans", system-ui, sans-serif;
  --f-mono:"JetBrains Mono", ui-monospace, monospace;
  --margine:clamp(16px,5vw,80px);
  /* tracce di circuito come sulla fiancata del furgone */
  --circuito:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220' fill='none' stroke='%23000' stroke-opacity='.09' stroke-width='2'><path d='M0 40h60l20 20h60l20-20h60M0 120h30l20 20v40M110 0v40l20 20v60l30 30h60M60 220v-40l30-30h40M190 220v-50l-20-20'/><g fill='%23000' fill-opacity='.09' stroke='none'><circle cx='60' cy='40' r='5'/><circle cx='160' cy='40' r='5'/><circle cx='50' cy='180' r='5'/><circle cx='130' cy='150' r='5'/><circle cx='160' cy='150' r='5'/><circle cx='190' cy='170' r='5'/></g></svg>");
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--carta);-webkit-text-size-adjust:100%}
body{background:var(--carta);color:var(--testo);font-family:var(--f-testo);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--giallo);outline-offset:3px}
.salta{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--giallo);color:var(--nero);padding:10px 16px;border-radius:8px;font-weight:600}
.salta:focus{left:8px}

/* ---------- testata ---------- */
.testata{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px var(--margine);color:#fff;transition:color .4s var(--ease),background .4s var(--ease),box-shadow .4s}
.testata::before{content:"";position:absolute;inset:0 0 auto 0;height:170%;z-index:-1;background:linear-gradient(to bottom,rgba(8,8,6,.55),rgba(8,8,6,0));transition:opacity .4s;pointer-events:none}
.testata.chiara{color:var(--nero)}
.testata.chiara::before{opacity:0}
.testata.piena{background:rgba(247,245,239,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--nero);box-shadow:0 1px 0 var(--linea)}
.testata.piena::before{opacity:0}
.targa{display:block;flex:none;background:#fff;border-radius:14px;padding:6px 12px;box-shadow:0 6px 22px rgba(0,0,0,.18)}
.targa img{height:54px;width:auto}
@media (max-width:720px){.targa img{height:42px}}
.menu-princ{display:flex;align-items:center;gap:clamp(12px,1.8vw,28px);font-size:14.5px;font-weight:500}
.menu-princ a{text-decoration:none;position:relative;padding:6px 0;white-space:nowrap}
.testata:not(.chiara):not(.piena) .menu-princ a{text-shadow:0 1px 14px rgba(0,0,0,.45)}
.menu-princ a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--giallo);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.menu-princ a:hover::after,.menu-princ a[aria-current="page"]::after{transform:scaleX(1)}
.btn-mini{display:inline-flex;align-items:center;gap:8px;background:var(--giallo);color:var(--nero)!important;text-shadow:none!important;border-radius:999px;padding:10px 18px!important;font-weight:600}
.btn-mini::after{display:none}
.apri-menu{display:none;align-items:center;gap:10px;background:var(--giallo);color:var(--nero);border:0;border-radius:999px;padding:10px 16px;font:600 14px var(--f-testo);cursor:pointer}
.apri-menu i{display:block;width:18px;height:2px;background:currentColor;position:relative}
.apri-menu i::before,.apri-menu i::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;transition:transform .3s var(--ease)}
.apri-menu i::before{top:-6px}.apri-menu i::after{top:6px}
.menu-aperto .apri-menu i{background:transparent}
.menu-aperto .apri-menu i::before{transform:translateY(6px) rotate(45deg)}
.menu-aperto .apri-menu i::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1080px){.menu-princ{display:none}.apri-menu{display:inline-flex}}

.pannello{position:fixed;inset:0;z-index:55;background:var(--giallo) var(--circuito);color:var(--nero);padding:110px var(--margine) 40px;display:flex;flex-direction:column;justify-content:space-between;gap:30px;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .7s var(--ease),visibility 0s .7s;overflow-y:auto}
.menu-aperto .pannello{clip-path:inset(0);visibility:visible;transition:clip-path .7s var(--ease)}
.pannello ul{list-style:none;display:flex;flex-direction:column;gap:2px}
.pannello li a{display:flex;align-items:baseline;gap:14px;text-decoration:none;font:600 clamp(30px,8vw,52px)/1.12 var(--f-titolo);letter-spacing:-.02em}
.pannello li a span{font:500 12px var(--f-mono);letter-spacing:.1em;opacity:.55}
.pannello li a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}
.pannello .rec{font-size:16px;display:flex;flex-direction:column;gap:6px}
.pannello .rec a{font-weight:600;text-decoration:none}
.menu-aperto{overflow:hidden}

/* ---------- elementi comuni ---------- */
.sez{position:relative;padding:clamp(80px,13vh,150px) var(--margine)}
.wrap{width:100%;max-width:1260px;margin:0 auto}
.eti{display:inline-flex;align-items:center;gap:10px;font:500 12px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--grigio);margin-bottom:22px}
.eti::before{content:"";width:10px;height:10px;background:var(--giallo);border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.titolo{font-family:var(--f-titolo);font-weight:600;font-size:clamp(38px,6.2vw,92px);line-height:.98;letter-spacing:-.03em;color:var(--nero);max-width:16ch}
.titolo.medio{font-size:clamp(32px,4.4vw,62px);max-width:20ch}
.evid{background:linear-gradient(transparent 60%,var(--giallo) 60%,var(--giallo) 92%,transparent 92%);padding:0 .06em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.lead{font-size:clamp(18px,1.55vw,21px);max-width:54ch;margin-top:26px;color:#3a3731}
.scuro{background:var(--nero);color:rgba(255,255,255,.86)}
.scuro .titolo{color:#fff}
.scuro .eti{color:rgba(255,255,255,.6)}
.scuro .lead{color:rgba(255,255,255,.74)}
.scuro .evid,.contatti .evid,.testa-pag .evid{background:none;color:var(--giallo)}
.gialla{background:var(--giallo) var(--circuito);color:var(--nero)}
.gialla .eti{color:rgba(17,17,16,.65)}
.gialla .eti::before{background:var(--nero)}
.gialla .evid{background:linear-gradient(transparent 60%,#fff 60%,#fff 92%,transparent 92%)}

.btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:18px 30px;border-radius:999px;background:var(--nero);color:#fff;text-decoration:none;font-weight:600;font-size:17px;border:0;cursor:pointer;font-family:inherit;overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--giallo);transform:translateY(101%);transition:transform .5s var(--ease)}
.btn>*{position:relative}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px -16px rgba(0,0,0,.45);color:var(--nero)}
.btn:hover::before{transform:none}
.btn span,.btn svg{position:relative;z-index:1}
.btn svg{width:20px;height:20px;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.giallo{background:var(--giallo);color:var(--nero)}
.btn.giallo::before{background:#fff}
.btn:active{transform:translateY(0) scale(.98)}
.link-freccia{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;border-bottom:2px solid var(--giallo);padding-bottom:2px}
.link-freccia svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.link-freccia:hover svg{transform:translateX(4px)}

/* ---------- film (solo home) ---------- */
#film{position:relative;height:900vh}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#0b0f0c}
#c{position:absolute;inset:0;width:100%;height:100%;display:block}
.grana{position:absolute;inset:-50%;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grana 1s steps(4) infinite}
@keyframes grana{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}
.vignetta{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 58%,rgba(6,6,4,.5))}
.sfuma{position:absolute;inset:0;pointer-events:none;background:var(--seam);opacity:0}
.beat{position:absolute;z-index:3;max-width:min(640px,86vw);opacity:0;will-change:opacity,transform;pointer-events:none;color:#fff}
.beat::before{content:"";position:absolute;z-index:-1;inset:-60% -22% -60% -16%;background:radial-gradient(60% 58% at 30% 50%,rgba(6,6,4,.62),rgba(6,6,4,.32) 48%,transparent 78%)}
.beat.sx{left:var(--margine);bottom:clamp(90px,15vh,170px)}
.beat.dx{right:clamp(16px,12vw,220px);bottom:clamp(90px,15vh,170px);text-align:right}
.beat.dx::before{background:radial-gradient(60% 58% at 70% 50%,rgba(6,6,4,.62),rgba(6,6,4,.32) 48%,transparent 78%)}
.beat .kicker{display:inline-block;font:500 12px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nero);background:var(--giallo);padding:5px 10px;border-radius:4px;margin-bottom:16px}
.beat h2{font:600 clamp(34px,5vw,72px)/1 var(--f-titolo);letter-spacing:-.03em;text-shadow:0 2px 30px rgba(0,0,0,.4)}
.beat h2 em{font-style:normal;color:var(--giallo)}
.beat p{margin-top:16px;font-size:clamp(16px,1.3vw,19px);max-width:44ch;color:rgba(255,255,255,.9)}
.beat.dx p{margin-left:auto}
.hero{left:var(--margine);top:50%;transform:translateY(-38%);max-width:min(980px,88vw)}
.hero p{max-width:42ch}
.hero h1{font:600 clamp(44px,7vw,108px)/.94 var(--f-titolo);letter-spacing:-.04em;text-shadow:0 2px 40px rgba(0,0,0,.4)}
.hero h1 em{font-style:normal;color:var(--giallo)}
.hero h1 .r{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .r>span{display:inline-block;transform:translateY(110%);animation:sali 1.3s var(--ease) forwards}
.hero h1 .r:nth-child(2)>span{animation-delay:.14s}
@keyframes sali{to{transform:none}}
.hero p{margin-top:22px;font-size:clamp(17px,1.45vw,21px);max-width:42ch}
.capitoli{position:absolute;z-index:4;right:clamp(16px,3vw,40px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:13px;font:500 11px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.capitoli li{list-style:none;display:flex;flex-direction:row-reverse;align-items:center;gap:10px;opacity:.42;transition:opacity .4s}
.capitoli li i{display:block;width:16px;height:2px;background:currentColor;transition:width .5s var(--ease)}
.capitoli li.on{opacity:1}
.capitoli li.on i{width:34px;background:var(--giallo)}
.livello{position:absolute;z-index:4;left:50%;bottom:22px;transform:translateX(-50%);font:500 11px var(--f-mono);letter-spacing:.2em;color:rgba(255,255,255,.8);text-transform:uppercase;display:flex;gap:12px;align-items:center}
.livello .barra{width:120px;height:2px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}
.livello .barra b{position:absolute;inset:0;background:var(--giallo);transform-origin:left;transform:scaleX(0)}
@media (max-width:720px){.capitoli,.grana{display:none}}
.film-fascia .beat.sx,.film-fascia .beat.dx,.film-fascia .hero{top:calc(var(--fascia-fine,60vh) - 30px);bottom:auto;left:max(16px,5vw);right:max(16px,5vw);max-width:none;text-align:left}
.film-fascia .hero{transform:none}
.film-fascia .capitoli{display:none}
.film-fascia .beat.dx p{margin-left:0}
.film-fascia .beat::before{inset:-20% -10% -30%;background:linear-gradient(180deg,transparent,rgba(6,6,4,.55) 30%,rgba(6,6,4,.55))}
@media (max-width:720px){
  .film-fascia .hero h1{font-size:clamp(38px,11vw,52px)}
  .film-fascia .beat h2{font-size:clamp(28px,8.4vw,40px)}
  .film-fascia .hero p,.film-fascia .beat p{font-size:15px;line-height:1.5;margin-top:12px}
  .film-fascia .livello{bottom:14px;font-size:10px}
  .film-fascia .livello .barra{width:72px}
}
#loader{position:fixed;inset:0;z-index:80;background:var(--giallo) var(--circuito);display:grid;place-items:center;transition:opacity .9s var(--ease),visibility .9s}
#loader.via{opacity:0;visibility:hidden;pointer-events:none}
#loader img{width:200px;margin:0 auto 24px;background:#fff;border-radius:16px;padding:10px 14px;box-shadow:0 20px 50px -20px rgba(0,0,0,.4)}
#loader .t{font:500 11px var(--f-mono);letter-spacing:.24em;color:rgba(17,17,16,.7);text-align:center}
#loader .l{width:200px;height:2px;background:rgba(17,17,16,.18);margin:14px auto 0;position:relative}
#loader .l b{position:absolute;inset:0;background:var(--nero);transform-origin:left;transform:scaleX(0);transition:transform .25s}
.dopo-film{background:linear-gradient(to bottom,var(--seam),var(--nero) 30vh)}

/* ---------- manifesto ---------- */
.manifesto{padding-top:clamp(110px,18vh,200px)}
.manifesto .testo-m{font:500 clamp(28px,3.6vw,54px)/1.16 var(--f-titolo);letter-spacing:-.02em;color:#fff;max-width:26ch}
.manifesto .testo-m b{font-weight:600;color:var(--giallo)}

/* ---------- servizi: binario orizzontale ---------- */
.servizi{overflow:hidden;background:var(--carta)}
.servizi-testa{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap}
.servizi .titolo{font-size:clamp(36px,5vw,76px);max-width:20ch}
.binario{display:flex;gap:clamp(16px,2vw,26px);margin-top:56px;padding-bottom:8px;will-change:transform}
.card-s{position:relative;flex:none;width:clamp(280px,27vw,380px);min-height:clamp(360px,48vh,440px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea);border-radius:26px;padding:28px 28px 26px;text-decoration:none;color:var(--testo);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s}
.card-s::after{content:"";position:absolute;inset:auto 0 0 0;height:6px;background:var(--giallo);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.card-s:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(0,0,0,.35);border-color:transparent}
.card-s:hover::after{transform:scaleX(1)}
.card-s .n{font:500 12px var(--f-mono);letter-spacing:.12em;color:var(--grigio)}
.card-s .card-foto{display:block;margin:16px -12px 0;border-radius:16px;overflow:hidden;aspect-ratio:16/10;background:var(--grafite)}
.card-s .card-foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.card-s:hover .card-foto img{transform:scale(1.06)}
.card-s .ico{position:relative;z-index:1;width:54px;height:54px;border-radius:16px;background:var(--giallo);display:grid;place-items:center;margin:-27px 0 auto 6px;box-shadow:0 8px 20px -8px rgba(0,0,0,.35)}
.card-s .ico svg{width:28px;height:28px;stroke:var(--nero);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.card-s h3{font:600 clamp(26px,2.3vw,32px)/1.05 var(--f-titolo);letter-spacing:-.02em;color:var(--nero);margin-top:22px}
.card-s p{margin-top:12px;font-size:15.5px;color:#4a463f}
.card-s .vai{margin-top:22px;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px}
.card-s .vai svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.card-s:hover .vai svg{transform:translateX(5px)}
.card-s.hotel{background:var(--nero) var(--circuito);color:rgba(255,255,255,.8);border-color:var(--nero)}
.card-s.hotel .n{color:var(--giallo)}
.card-s.hotel h3{color:#fff}
.card-s.hotel p{color:rgba(255,255,255,.72)}
.card-s.hotel .ico{background:#fff}
.card-s.hotel .vai{color:var(--giallo)}
@media (max-width:1023px){
  .binario{overflow-x:auto;scroll-snap-type:x mandatory;margin-left:calc(-1 * var(--margine));margin-right:calc(-1 * var(--margine));padding:0 var(--margine) 18px;scrollbar-width:none}
  .binario::-webkit-scrollbar{display:none}
  .card-s{scroll-snap-align:start;width:min(82vw,360px)}
}

/* ---------- strade: furgone che attraversa ---------- */
.strada{position:relative;background:var(--carta);padding:clamp(150px,22vh,230px) 0 clamp(40px,7vh,80px);overflow:hidden}
.strada .linea-strada{position:absolute;left:0;right:0;bottom:clamp(54px,8vh,90px);height:4px;background:repeating-linear-gradient(90deg,var(--nero) 0 46px,transparent 46px 80px);opacity:.85}
/* il furgone ha il muso a sinistra: entra da destra e va verso sinistra */
.strada .furgone{position:relative;z-index:1;width:clamp(260px,36vw,540px);margin-left:100vw;filter:drop-shadow(0 26px 22px rgba(0,0,0,.22));will-change:transform}
.strada .frase{position:absolute;z-index:2;left:var(--margine);top:clamp(40px,7vh,80px);font:600 clamp(28px,3.6vw,52px)/1.02 var(--f-titolo);letter-spacing:-.025em;color:var(--nero);max-width:22ch}
.strada .frase em{font-style:normal;background:linear-gradient(transparent 60%,var(--giallo) 60%,var(--giallo) 92%,transparent 92%)}
@media (prefers-reduced-motion:reduce){.strada .furgone{margin-left:auto;margin-right:var(--margine);display:block}}

/* ---------- blocco parallax ---------- */
.par{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,6vw,100px);align-items:center}
.par.inverti{grid-template-columns:.95fr 1.05fr}
.par.inverti>.par-media{order:2}
@media (max-width:900px){.par,.par.inverti{grid-template-columns:1fr}.par.inverti>.par-media{order:0}}
.par-media{position:relative}
.foto-par{position:relative;overflow:hidden;border-radius:28px;aspect-ratio:4/5;background:var(--grafite)}
.foto-par.largo{aspect-ratio:3/2}
.foto-par img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover}
.oggetto{position:absolute;z-index:2;filter:drop-shadow(0 24px 30px rgba(0,0,0,.28));pointer-events:none}
.oggetto img{width:100%;height:auto}
.etichetta-foto{position:absolute;left:18px;bottom:18px;z-index:2;background:rgba(17,17,16,.72);color:#fff;font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:7px 11px;border-radius:6px;backdrop-filter:blur(6px)}
/* segnaposto finché la foto non c'è */
.segnaposto{position:absolute;inset:0;display:grid;place-items:center;background:var(--giallo) var(--circuito)}
.segnaposto svg{width:28%;max-width:140px;height:auto;stroke:var(--nero);fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:.85}

.voci{display:flex;flex-direction:column;margin-top:40px;border-top:1px solid var(--linea)}
.voce{display:grid;grid-template-columns:52px 1fr;gap:6px 18px;padding:22px 0;border-bottom:1px solid var(--linea)}
.voce .n{font:500 12px var(--f-mono);color:var(--grigio);letter-spacing:.1em;padding-top:6px}
.voce h3{font:600 clamp(21px,1.8vw,25px)/1.2 var(--f-titolo);color:var(--nero);letter-spacing:-.01em}
.voce p{grid-column:2;color:#4a463f;font-size:16px;max-width:52ch}
.scuro .voci,.scuro .voce{border-color:rgba(255,255,255,.14)}
.scuro .voce h3{color:#fff}
.scuro .voce p{color:rgba(255,255,255,.7)}
.scuro .voce .n{color:var(--giallo)}

/* ---------- per chi ---------- */
.perchi{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);margin-top:60px}
@media (max-width:900px){.perchi{grid-template-columns:1fr}}
.chi{background:#fff;border-radius:24px;padding:clamp(24px,2.6vw,34px);border:1px solid var(--linea)}
.chi h3{font:600 clamp(26px,2.4vw,34px)/1.05 var(--f-titolo);letter-spacing:-.02em;color:var(--nero)}
.chi p{margin-top:12px;color:#4a463f;font-size:16px}
.chi ul{list-style:none;margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.chi li{font:500 12px var(--f-mono);letter-spacing:.04em;background:var(--carta);border:1px solid var(--linea);border-radius:999px;padding:7px 12px}
.chi li a{text-decoration:none}
.chi li:hover{background:var(--giallo)}

/* ---------- canoni ---------- */
.incluso{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:44px}
.incluso li{font:500 12px var(--f-mono);letter-spacing:.05em;color:var(--giallo);border:1px solid rgba(255,198,26,.4);border-radius:999px;padding:8px 14px}
.piani{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);margin-top:40px;align-items:stretch}
@media (max-width:960px){.piani{grid-template-columns:1fr}}
.piano{position:relative;display:flex;flex-direction:column;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:clamp(24px,2.6vw,34px)}
.piano.top{background:var(--giallo) var(--circuito);border-color:var(--giallo);color:var(--nero)}
.bollino{position:absolute;top:-13px;right:22px;background:#fff;color:var(--nero);font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:999px;box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
.piano h3{font:600 clamp(34px,3.2vw,46px)/1 var(--f-titolo);letter-spacing:-.02em;color:#fff}
.piano.top h3{color:var(--nero)}
.piano .sotto{display:block;margin-top:10px;font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.piano.top .sotto{color:rgba(17,17,16,.6)}
.piano ul{list-style:none;margin:22px 0 28px;flex:1}
.piano li{position:relative;padding:9px 0 9px 24px;border-top:1px solid rgba(255,255,255,.1);font-size:15.5px;color:rgba(255,255,255,.86)}
.piano.top li{border-color:rgba(17,17,16,.14);color:var(--nero)}
.piano li::before{content:"";position:absolute;left:2px;top:17px;width:10px;height:5px;border-left:2px solid var(--giallo);border-bottom:2px solid var(--giallo);transform:rotate(-45deg)}
.piano.top li::before{border-color:var(--nero)}
.piano-cta{align-self:flex-start;display:inline-flex;padding:12px 20px;border-radius:999px;border:1px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;font-weight:600;font-size:15px;transition:background .3s,color .3s,border-color .3s}
.piano-cta:hover{background:var(--giallo);border-color:var(--giallo);color:var(--nero)}
.piano.top .piano-cta{background:var(--nero);border-color:var(--nero);color:#fff}
.piano.top .piano-cta:hover{background:#fff;color:var(--nero);border-color:#fff}
.canoni-sotto{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(26px,5vw,70px);margin-top:clamp(48px,6vw,80px);align-items:start}
@media (max-width:900px){.canoni-sotto{grid-template-columns:1fr}}
.ibrido h3{font:600 clamp(28px,2.8vw,38px)/1.08 var(--f-titolo);color:#fff;letter-spacing:-.02em}
.ibrido h3 em{font-style:normal;color:var(--giallo)}
.ibrido p{margin-top:14px;color:rgba(255,255,255,.72);font-size:16px;max-width:44ch}
.faq details{border-top:1px solid rgba(255,255,255,.16)}
.faq details:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;position:relative;font-weight:600;font-size:17px;color:#fff}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font:400 22px var(--f-mono);color:var(--giallo);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding:0 0 20px;color:rgba(255,255,255,.72);font-size:16px;max-width:58ch}
.faq.chiaro details{border-color:var(--linea)}
.faq.chiaro summary{color:var(--nero)}
.faq.chiaro details p{color:#4a463f}
.faq.chiaro summary::after{color:var(--giallo-scuro)}

/* ---------- chi siamo: figure sedute sulle card ---------- */
.squadra{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,4vw,60px) clamp(110px,11vw,170px);align-items:end;margin-top:clamp(140px,22vw,300px)}
@media (max-width:900px){.squadra{grid-template-columns:1fr;margin-top:clamp(190px,58vw,330px)}}
.card-seduta{position:relative;background:var(--giallo) var(--circuito);border-radius:28px;padding:clamp(28px,3.4vw,46px);min-height:280px;color:var(--nero)}
.card-seduta .seduto{position:absolute;z-index:2;height:clamp(300px,34vw,470px);width:auto;
  /* il sedile (cosce) poggia sul bordo alto, le gambe pendono oltre il bordo destro */
  bottom:calc(100% - clamp(300px,34vw,470px) * .405);right:calc(clamp(300px,34vw,470px) * -.235);
  filter:drop-shadow(0 18px 22px rgba(0,0,0,.18))}
.card-seduta .ruolo{font:500 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.card-seduta h3{font:600 clamp(34px,3.6vw,52px)/1 var(--f-titolo);letter-spacing:-.03em;margin-top:10px;max-width:12ch}
.card-seduta p{margin-top:16px;max-width:42ch;font-size:16.5px}
@media (max-width:900px){.card-seduta .seduto{right:-4px;height:clamp(240px,62vw,330px);bottom:calc(100% - clamp(240px,62vw,330px) * .405)}}
/* Cristian: guarda a sinistra, siede sul bordo sinistro della sua card con le gambe oltre il bordo */
.card-seduta.cristian{--h:clamp(260px,25vw,370px);grid-column:2;background:#fff;border:1px solid var(--linea);min-height:220px;margin-top:calc(var(--h) * .5);padding-left:clamp(28px,3vw,40px)}
.card-seduta.cristian .seduto{height:var(--h);right:auto;left:calc(var(--h) * -.256);bottom:calc(100% - var(--h) * .454)}
.card-seduta.cristian h3{font-size:clamp(28px,2.6vw,38px)}
@media (max-width:900px){
  .card-seduta.cristian{grid-column:auto;--h:clamp(220px,56vw,300px);margin-top:calc(var(--h) * .55)}
  .card-seduta.cristian .seduto{left:4px}
  .card-seduta.cristian .ruolo,.card-seduta.cristian h3,.card-seduta.cristian p{margin-left:auto;max-width:62%;text-align:right}
}
.numeri{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);border-radius:24px;overflow:hidden;margin-top:clamp(60px,8vw,100px)}
@media (max-width:800px){.numeri{grid-template-columns:1fr 1fr}}
.numero{background:#fff;padding:clamp(22px,2.6vw,34px)}
.numero b{display:block;font:600 clamp(48px,5.4vw,80px)/1 var(--f-titolo);letter-spacing:-.04em;color:var(--nero);font-variant-numeric:tabular-nums}
.numero span{display:block;margin-top:10px;font:500 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grigio)}
.numero:first-child b{background:linear-gradient(transparent 62%,var(--giallo) 62%,var(--giallo) 90%,transparent 90%);display:inline-block}
.colleghi{display:flex;flex-direction:column;gap:16px}
.collega{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--linea);border-radius:20px;padding:18px 20px}
.collega .ini{flex:none;width:52px;height:52px;border-radius:50%;background:var(--nero);color:var(--giallo);display:grid;place-items:center;font:600 18px var(--f-titolo)}
.collega b{display:block;font:600 19px/1.2 var(--f-titolo);color:var(--nero)}
.collega span{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grigio)}
.tappe{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,2vw,26px);margin-top:clamp(60px,8vw,100px);border-top:2px solid var(--nero);padding-top:26px}
@media (max-width:900px){.tappe{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.tappe{grid-template-columns:1fr}}
.tappa b{display:block;font:600 clamp(34px,3.2vw,46px)/1 var(--f-titolo);letter-spacing:-.03em;color:var(--nero)}
.tappa h3{font-size:16px;font-weight:600;margin:10px 0 6px;color:var(--nero)}
.tappa p{font-size:15px;color:#4a463f}
.cert-riga{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px);margin-top:28px}
@media (max-width:700px){.cert-riga{grid-template-columns:1fr}}
.badge{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--linea);border-radius:18px;padding:16px 18px}
.badge img{width:64px;height:auto;border-radius:10px}
.badge b{display:block;font:500 12px var(--f-mono);letter-spacing:.14em;color:#1f5fd6}
.badge span{font:600 18px/1.2 var(--f-titolo);color:var(--nero)}
.loghi{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);border-radius:20px;overflow:hidden;margin-top:28px}
@media (max-width:900px){.loghi{grid-template-columns:repeat(2,1fr)}.lp:last-child{grid-column:1/-1}}
.lp{background:#fff;display:grid;place-items:center;height:clamp(100px,10vw,136px);padding:22px}
.lp img{max-width:min(160px,80%);max-height:44px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.7;transition:filter .4s,opacity .4s}
.lp:hover img{filter:none;opacity:1}
.lp .nome{font:600 22px var(--f-titolo);color:#4a463f}

/* ---------- contatti ---------- */
.contatti{background:var(--nero);color:rgba(255,255,255,.86)}
.contatti .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,6vw,96px);align-items:start}
@media (max-width:900px){.contatti .wrap{grid-template-columns:1fr}}
.contatti .titolo{color:#fff;max-width:12ch}
.recapiti{list-style:none;margin-top:40px;display:flex;flex-direction:column;gap:18px;font-size:clamp(18px,1.6vw,22px)}
.recapiti li{display:flex;flex-direction:column;gap:4px}
.recapiti span{font:500 11px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--giallo)}
.recapiti a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);align-self:flex-start;transition:border-color .3s}
.recapiti a:hover{border-color:var(--giallo)}
.recapiti small{font-size:15px;color:rgba(255,255,255,.6)}
.modulo{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:26px;padding:clamp(22px,3vw,40px);display:flex;flex-direction:column;gap:20px}
.campi{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
@media (max-width:600px){.campi{grid-template-columns:1fr}}
.campo{display:flex;flex-direction:column;gap:7px}
.campo>span,.interessi legend{font:500 11px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.campo input,.campo textarea{font:inherit;font-size:16px;color:#fff;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:13px 14px;transition:border-color .25s,box-shadow .25s;resize:vertical}
.campo input:focus,.campo textarea:focus{outline:none;border-color:var(--giallo);box-shadow:0 0 0 3px rgba(255,198,26,.2)}
.campo.err input,.campo.err textarea{border-color:#ff8a6b}
.interessi{border:0;display:flex;flex-wrap:wrap;gap:8px}
.interessi legend{margin-bottom:10px}
.interessi label{cursor:pointer}
.interessi input{position:absolute;opacity:0;pointer-events:none}
.interessi span{display:inline-block;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);font-size:14px;transition:background .25s,border-color .25s,color .25s}
.interessi input:checked+span{background:var(--giallo);border-color:var(--giallo);color:var(--nero)}
.interessi input:focus-visible+span{outline:2px solid var(--giallo);outline-offset:2px}
.trappola{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consenso{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:rgba(255,255,255,.72);cursor:pointer}
.consenso input{margin-top:3px;width:18px;height:18px;accent-color:var(--giallo);flex:none}
.consenso.err{color:#ffb39f}
.consenso a{color:var(--giallo)}
.modulo .btn{align-self:flex-start}
.modulo .btn[disabled]{opacity:.6;cursor:wait}
.esito{min-height:1.5em;font-size:15px}
.esito.ok{color:var(--giallo)}
.esito.ko{color:#ffb39f}

/* ---------- pagine servizio ---------- */
.testa-pag{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;padding:140px var(--margine) clamp(50px,8vh,90px);overflow:hidden;background:var(--nero);color:#fff}
.testa-pag .sfondo{position:absolute;inset:0;overflow:hidden}
.testa-pag .sfondo img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;object-position:50% 12%}
.testa-pag .sfondo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,8,.45),rgba(10,10,8,.2) 35%,rgba(10,10,8,.82))}
.testa-pag .wrap{position:relative;z-index:2}
.testa-pag .titolo{color:#fff;font-size:clamp(44px,7.6vw,118px);max-width:14ch}
.testa-pag .titolo em{font-style:normal;color:var(--giallo)}
.testa-pag .lead{color:rgba(255,255,255,.86)}
.testa-pag .eti{color:rgba(255,255,255,.75)}
.briciole{font:500 12px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px;color:rgba(255,255,255,.7)}
.briciole a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.griglia-p{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);border-radius:24px;overflow:hidden;margin-top:56px}
@media (max-width:960px){.griglia-p{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.griglia-p{grid-template-columns:1fr}}
.punto{background:#fff;padding:30px 28px 34px;transition:background .4s}
.punto:hover{background:#fffbea}
.punto .n{font:500 12px var(--f-mono);letter-spacing:.12em;color:var(--grigio)}
.punto h3{font:600 clamp(22px,1.9vw,27px)/1.12 var(--f-titolo);letter-spacing:-.01em;color:var(--nero);margin:16px 0 10px}
.punto p{font-size:16px;color:#4a463f}
.altri{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.altri a{text-decoration:none;font-weight:600;background:#fff;border:1px solid var(--linea);border-radius:999px;padding:12px 18px;transition:background .3s,border-color .3s}
.altri a:hover{background:var(--giallo);border-color:var(--giallo)}
.chiamata{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.chiamata .titolo{max-width:18ch}

/* ---------- piede ---------- */
.piede{background:#0a0a09;color:rgba(255,255,255,.6);padding:60px var(--margine) 34px;font-size:14px}
.piede .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:34px}
@media (max-width:800px){.piede .wrap{grid-template-columns:1fr}}
.piede .targa{display:inline-block}
.piede h4{font:500 11px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--giallo);margin-bottom:14px}
.piede ul{list-style:none;display:flex;flex-direction:column;gap:6px}
.piede a{text-decoration:none}
.piede a:hover{color:#fff}
.piede address{font-style:normal;grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:18px;font-size:12.5px;color:rgba(255,255,255,.45)}

/* ---------- comparse senza GSAP ---------- */
.js [data-fade]{opacity:0;transform:translateY(26px)}
.js [data-fade].in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}

@media (prefers-reduced-motion:reduce){
  .grana{animation:none}
  .hero h1 .r>span{animation:none;transform:none}
  .js [data-fade]{opacity:1;transform:none}
  .btn,.btn::before,.card-s,.pannello{transition:none}
}

/* sezione hotel: banner a tutta larghezza, testo sotto su fondo scuro */
.hotel-sez{position:relative;background:#0c1a24;color:#fff;padding-bottom:clamp(70px,11vh,130px)}
.hotel-banner{position:relative;overflow:hidden;height:clamp(240px,46vh,520px)}
.hotel-banner img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;object-position:50% 58%}
.hotel-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0c1a24 0%,rgba(12,26,36,0) 38%)}
.hotel-testo{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,6vw,100px);align-items:start;padding:clamp(20px,4vh,50px) var(--margine) 0;max-width:1400px;margin:0 auto}
.hotel-sez .eti{color:var(--giallo)}
.hotel-sez .titolo{color:#fff;max-width:none;font-size:clamp(38px,5vw,76px)}
.hotel-sez .evid{background:none;color:var(--giallo)}
.hotel-sez .lead{color:rgba(255,255,255,.82);max-width:46ch;margin-top:44px}
.hotel-voci{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 0;padding:0}
.hotel-voci li{list-style:none;padding:9px 16px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:14.5px;background:rgba(255,255,255,.06)}
.hotel-azione{margin-top:38px}
@media (max-width:900px){.hotel-testo{grid-template-columns:1fr;gap:0}.hotel-sez .lead{margin-top:24px}}
.btn.grande{padding:22px 36px;font-size:19px}
.menu-princ a.voce-hotel{border:1.5px solid var(--giallo);border-radius:999px;padding:8px 16px}
.menu-princ a.voce-hotel::after{display:none}
.testata.piena .menu-princ a.voce-hotel,.testata.chiara .menu-princ a.voce-hotel{border-color:var(--nero)}

/* stagioni: accessorio accanto al logo (il logo resta quello vero) + effetto leggero */
.targa{position:relative}
.targa .accessorio{position:absolute;right:-20px;top:-10px;height:44px;width:auto;max-width:none;transform:rotate(12deg);filter:drop-shadow(0 4px 6px rgba(0,0,0,.22));pointer-events:none}
html[data-stagione=estate] .targa .accessorio{height:26px;right:-24px;top:-8px;transform:rotate(-10deg)}
html[data-stagione=capodanno] .targa .accessorio{height:50px;top:-13px}
@media (max-width:720px){.targa .accessorio{height:34px;right:-14px;top:-8px}html[data-stagione=estate] .targa .accessorio{height:20px;right:-16px}}
@media (prefers-reduced-motion:no-preference){.targa .accessorio{animation:accessorio-entra .9s cubic-bezier(.34,1.56,.64,1) .6s both}}
@keyframes accessorio-entra{from{transform:scale(0) rotate(-30deg);opacity:0}}
.effetto-stagione{position:fixed;inset:0;width:100%;height:100%;z-index:50;pointer-events:none}
.targa .auguri{--bg:var(--giallo);--tx:var(--nero);position:absolute;left:-10px;top:calc(100% - 3px);transform:rotate(-4deg);white-space:nowrap;background:var(--bg);color:var(--tx);font:700 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:7px 12px 6px;border-radius:7px;border:2px solid var(--nero);box-shadow:3px 3px 0 var(--nero);pointer-events:none}
.targa .auguri::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin:0 7px 1px 0;vertical-align:middle}
html[data-stagione=halloween] .targa .auguri{--bg:#F28C28;--tx:#111110}
html[data-stagione=natale] .targa .auguri{--bg:#C8102E;--tx:#fff}
html[data-stagione=capodanno] .targa .auguri{--bg:#111110;--tx:#FFC61A;border-color:#FFC61A;box-shadow:3px 3px 0 #FFC61A}
html[data-stagione=befana] .targa .auguri{--bg:#FFC61A;--tx:#111110}
html[data-stagione=pasqua] .targa .auguri{--bg:#CDE8B0;--tx:#111110}
html[data-stagione=estate] .targa .auguri{--bg:#7FD3F5;--tx:#111110}
@media (max-width:720px){.targa .auguri{font-size:9.5px;padding:6px 9px 5px;left:-6px;top:calc(100% - 2px)}}
@media (prefers-reduced-motion:no-preference){.targa .auguri{animation:auguri-entra .7s cubic-bezier(.34,1.56,.64,1) 1s both}}
@keyframes auguri-entra{from{transform:rotate(-25deg) scale(.3);opacity:0}}

/* galleria Instagram */
.galleria-testa{padding:clamp(140px,20vh,200px) var(--margine) clamp(30px,5vh,60px);background:var(--carta)}
.galleria-testa .briciole{color:var(--grigio)}
.galleria-testa .briciole a{border-color:rgba(17,17,16,.25)}
.galleria-testa .titolo{max-width:20ch}
.galleria-segui{margin-top:30px}
.galleria-sez{padding:clamp(20px,4vh,40px) var(--margine) clamp(70px,11vh,120px);background:var(--carta)}
.galleria{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.4vw,18px)}
@media (max-width:720px){.galleria{grid-template-columns:repeat(2,1fr)}}
.galleria li{aspect-ratio:1;border-radius:18px;overflow:hidden;background:#e7e3d8}
.galleria li.vuoto{animation:ig-attesa 1.4s ease-in-out infinite alternate}
@keyframes ig-attesa{to{background:#f1eee6}}
.ig-voce{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;color:#fff;text-align:left;font:inherit}
.ig-voce img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ig-voce::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,10,8,.72),rgba(10,10,8,0) 55%);opacity:0;transition:opacity .35s}
.ig-testo{position:absolute;z-index:1;left:16px;right:16px;bottom:14px;font-size:14px;line-height:1.35;opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s var(--ease)}
.ig-voce:hover img,.ig-voce:focus-visible img{transform:scale(1.05)}
.ig-voce:hover::after,.ig-voce:focus-visible::after,.ig-voce:hover .ig-testo,.ig-voce:focus-visible .ig-testo{opacity:1;transform:none}
.ig-voce:focus-visible{outline:3px solid var(--giallo);outline-offset:-3px}
.ig-tipo{position:absolute;z-index:1;top:12px;right:12px;width:30px;height:30px;border-radius:50%;background:rgba(17,17,16,.55);display:grid;place-items:center;backdrop-filter:blur(4px)}
.ig-tipo svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2}
.ig-tipo svg path:only-child{fill:#fff;stroke:none}
@media (hover:none){.ig-testo,.ig-voce::after{display:none}}
.galleria-errore{margin-top:20px;font-size:18px}
.galleria-piu{margin-top:clamp(36px,6vh,60px);text-align:center}
@media (prefers-reduced-motion:reduce){.galleria li.vuoto{animation:none}.ig-voce img{transition:none}}

.lightbox{border:0;padding:0;margin:0;width:100vw;height:100vh;max-width:none;max-height:none;background:rgba(10,10,8,.97);color:#fff}
.lightbox[open]{display:flex;align-items:center;justify-content:center}
.lightbox::backdrop{background:rgba(10,10,8,.6)}
.lightbox figure{margin:0;display:grid;grid-template-columns:minmax(0,auto) minmax(260px,360px);gap:clamp(20px,3vw,44px);align-items:center;max-width:min(1200px,88vw);max-height:88vh}
.lightbox img{max-width:100%;max-height:84vh;border-radius:14px;object-fit:contain;justify-self:end}
.lightbox figcaption{display:flex;flex-direction:column;gap:16px;max-height:84vh}
.lightbox time{font:500 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--giallo)}
.lb-testo{white-space:pre-line;overflow:auto;font-size:15.5px;line-height:1.55;color:rgba(255,255,255,.85);max-height:52vh}
.lb-link{align-self:flex-start}
.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.1);color:#fff;width:52px;height:52px;border-radius:50%;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.lightbox button:hover,.lightbox button:focus-visible{background:var(--giallo);color:var(--nero)}
.lb-chiudi{top:20px;right:20px}
.lb-prec{left:20px;top:50%;transform:translateY(-50%)}
.lb-succ{right:20px;top:50%;transform:translateY(-50%)}
html.lb-aperta{overflow:hidden}
@media (max-width:900px){
  .lightbox figure{grid-template-columns:1fr;max-width:94vw;max-height:none;overflow:auto;padding:70px 0 30px}
  .lightbox img{max-height:58vh;justify-self:center}
  .lb-testo{max-height:none}
  .lb-prec,.lb-succ{top:auto;bottom:16px;transform:none;width:46px;height:46px}
  .lightbox[open]{align-items:flex-start;overflow:auto}
}
