
/* Caratteri incorporati (licenza SIL OFL 1.1): nessun collegamento ai server di Google */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/cormorant-garamond.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300 700;font-display:swap;src:url(../fonts/cormorant-garamond-italic.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/jost.woff2) format("woff2")}
:root{
  color-scheme:dark;
  --rosa:#CA36A3; --rosa-chiaro:#F3A6DD; --viola:#8D198F;
  --nero:#0C0B0B; --nero-2:#221D20; --sfondo:#151213; --cipria:#1C171A;
  --testo:#F4ECF1; --testo-2:#C4B6BF; --bordo:#352C31;
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:"Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
  background:var(--nero);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(64px + env(safe-area-inset-top,0px))}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--sfondo);color:var(--testo);font:400 17px/1.6 var(--sans)}
img,svg{max-width:100%}
a{color:var(--rosa-chiaro)}
:focus-visible{outline:3px solid var(--rosa);outline-offset:3px;border-radius:4px}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05;margin:0}
h2{font-size:clamp(38px,5.6vw,58px);margin-bottom:18px}
h3{font-size:27px;margin-bottom:6px}
p{margin:0 0 14px;max-width:62ch}
.ph{background:rgba(202,54,163,.24);border-radius:3px;padding:0 3px}
[hidden]{display:none!important}

/* barra */
header.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--nero);color:#fff;border-bottom:1px solid #231d20}
.bar .wrap{position:relative;display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.bar .marchio{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:.08em}
.bar .marchio img{height:40px;width:auto}
.bar nav{display:flex;gap:20px;font-size:15px}
.bar nav a{text-decoration:none;color:#fff;opacity:.8;padding:4px 0;border-bottom:2px solid transparent}
.bar nav a:hover{opacity:1;color:var(--rosa-chiaro)}
.bar nav a[aria-current="page"]{opacity:1;border-bottom-color:var(--rosa)}
.bar .cta{background:var(--rosa);color:#fff;text-decoration:none;padding:9px 16px;border-radius:999px;font-weight:500;letter-spacing:.03em;font-size:15px;white-space:nowrap}
.azioni-bar{display:flex;gap:8px;align-items:center}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:999px;padding:8px 14px;font:600 15px/1 var(--sans);cursor:pointer}
@media (max-width:980px){
  .menu-btn{display:inline-block}
  .bar nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--nero);flex-direction:column;gap:0;padding:6px 22px 16px;border-top:1px solid #333}
  .bar nav.aperto{display:flex}
  .bar nav a{padding:13px 0;font-size:18px;border-bottom:1px solid #2d2829}
  .bar nav a[aria-current="page"]{color:var(--rosa-chiaro);border-bottom-color:#2d2829}
}
.bar .marchio .scritta-barra{height:30px;width:auto;color:#fff;display:block}
@media (max-width:480px){.bar .marchio .scritta-barra{display:none}.bar .cta{padding:9px 13px}}

/* hero */
.hero{position:relative;overflow:hidden}
.cielo{position:relative;overflow:hidden;height:clamp(150px,min(40vw,30vh),300px);
  background:radial-gradient(ellipse 80% 120% at 50% 100%, #FBE3F3 0 18%, #EFA9DB 34%, #D55CB8 55%, #A82A9C 74%, var(--viola) 90%)}
.sole{position:absolute;z-index:1;left:50%;bottom:0;width:clamp(220px,min(46vw,44vh),420px);aspect-ratio:1;transform:translate(-50%,50%);
  border-radius:50%;background:var(--rosa);animation:sorge 1.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes sorge{from{transform:translate(-50%,80%)}to{transform:translate(-50%,50%)}}
.ginnaste{position:absolute;left:50%;bottom:0;width:calc(clamp(220px,min(46vw,44vh),420px) * .8);transform:translateX(-52%);color:var(--nero);z-index:2}
.nastro{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible}
.nastro path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.nastro .n1{stroke:#fff;stroke-width:5;opacity:.9;stroke-dasharray:3000;stroke-dashoffset:3000;animation:traccia 2.6s .5s cubic-bezier(.3,.6,.2,1) forwards}
.nastro .n2{stroke:#FFD3F0;stroke-width:3;opacity:.7;stroke-dasharray:3000;stroke-dashoffset:3000;animation:traccia 2.2s .9s cubic-bezier(.3,.6,.2,1) forwards}
@keyframes traccia{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.nastro path{stroke-dashoffset:0!important}}
.pedana{position:relative;z-index:1;overflow:hidden;background:var(--nero);color:#fff;padding:clamp(24px,4vh,44px) 0 clamp(36px,6vh,56px)}
.pedana h1{position:relative;margin:0 auto clamp(16px,3vh,30px);width:min(100%,640px,62vh);color:var(--rosa)}
.pedana h1 svg{display:block;width:100%;height:auto}
.pedana p{margin:0 auto clamp(24px,4vh,40px);text-align:center;color:#E7DCE3;font-size:19px}
.azioni{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;text-decoration:none;padding:13px 22px;border-radius:999px;font-weight:500;letter-spacing:.03em}
.btn.pieno{background:var(--rosa);color:#fff}
.btn.vuoto{border:1.5px solid #fff;color:#fff}

/* testata delle pagine interne */
.testata{position:relative;overflow:hidden;background:var(--nero);padding:clamp(40px,7vw,72px) 0 clamp(36px,6vw,60px);border-bottom:4px solid var(--rosa)}
.testata h1{color:var(--rosa);font-size:clamp(48px,8.6vw,94px)}
.testata p{color:#E7DCE3;margin:12px 0 0;font-size:18px}

/* nastri */
.nastro-nero{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.nastro-nero path,.nastro-sezione path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.nastro-nero .r1{stroke:var(--rosa);stroke-width:4;opacity:.8}
.nastro-nero .r2{stroke:var(--rosa);stroke-width:2.5;opacity:.55}
@media (max-width:700px){.n-pedana .r1{opacity:.6}.n-pedana .r2{opacity:.4}}
.pedana .wrap,.testata .wrap,.contatti>div,footer .wrap{position:relative;z-index:1}
section{position:relative;padding:84px 0}
section>.wrap{position:relative;z-index:1}
section.alt{background:var(--cipria)}
.nastro-sezione{position:absolute;left:0;top:6px;width:100%;height:clamp(44px,6vw,72px);pointer-events:none}
.nastro-sezione .r1{stroke:var(--rosa);stroke-width:3.5;opacity:.75}
.nastro-sezione .r2{stroke:var(--rosa);stroke-width:2;opacity:.4}

/* chi siamo + reel */
.chi{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:56px;align-items:center}
.chi-testo .cifre{margin-top:28px}
.lead{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(24px,2.9vw,31px);line-height:1.3;color:var(--rosa-chiaro);margin-bottom:20px}
.motto{margin:24px 0 0;padding:4px 0 4px 18px;border-left:4px solid var(--rosa);font-family:var(--serif);font-style:italic;font-weight:500;font-size:26px;color:var(--testo)}
.cifre{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--bordo)}
.cifre div{padding:18px 0;border-bottom:1px solid var(--bordo)}
.cifre b{display:block;font-family:var(--serif);font-weight:400;font-size:40px;color:var(--rosa);line-height:1}
.cifre span{color:var(--testo-2);font-size:15px}
.reel{margin:0;position:relative;border-radius:18px;overflow:hidden;background:var(--nero);border:5px solid var(--rosa);aspect-ratio:9/16;max-height:80vh;justify-self:center;width:100%}
.reel video{display:block;width:100%;height:100%;object-fit:cover}
.reel-comandi{position:absolute;left:12px;right:12px;bottom:12px;display:flex;gap:8px;justify-content:space-between}
.reel-comandi button{font:600 14px/1 var(--sans);color:#fff;background:rgba(12,11,11,.72);border:1px solid rgba(255,255,255,.35);padding:10px 14px;border-radius:999px;cursor:pointer}
.reel-comandi button[aria-pressed="true"]{background:var(--rosa);border-color:var(--rosa)}
@media (max-width:800px){.chi{grid-template-columns:1fr;gap:36px}.reel{max-width:360px;max-height:none}}

/* podio */
.medagliere{position:relative;margin:10px 0 0}
.med-intro{color:var(--testo-2)}
.podio{display:grid;grid-template-columns:repeat(3,minmax(0,200px));justify-content:center;align-items:end;gap:10px;margin-top:40px}
.gradino{position:relative;border:1px solid #3d3338;border-bottom:0;cursor:pointer;color:#fff;background:linear-gradient(180deg,#2B2429,#1A1618);border-radius:10px 10px 0 0;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:48px 8px 18px;font-family:var(--sans);transition:transform .2s}
.gradino.oro{height:280px}.gradino.argento{height:220px}.gradino.bronzo{height:180px}
.gradino:hover,.gradino[aria-expanded="true"]{transform:translateY(-6px)}
.gradino[aria-expanded="true"]{box-shadow:0 0 0 3px var(--rosa)}
.medaglia{position:absolute;top:-30px;width:60px;height:60px;border-radius:50%;border:4px solid var(--sfondo)}
section.alt .medaglia{border-color:var(--cipria)}
.oro .medaglia{background:radial-gradient(circle at 35% 30%,#FFF1B0,#E2B33C 55%,#A97C12)}
.argento .medaglia{background:radial-gradient(circle at 35% 30%,#FFFFFF,#C4C7CC 55%,#80858C)}
.bronzo .medaglia{background:radial-gradient(circle at 35% 30%,#F8D1A8,#C27A3E 55%,#7E4A1E)}
.conta{font-family:var(--serif);font-weight:400;font-size:clamp(56px,9vw,96px);line-height:1;color:var(--rosa)}
.oro .conta{font-size:clamp(72px,12vw,128px)}
.tipo{font-size:15px;color:#E7DCE3;margin-top:6px}
.med-lista{max-width:640px;margin:0 auto;background:var(--nero);color:#fff;border-radius:0 0 12px 12px;border-top:4px solid var(--rosa);padding:18px 22px;max-height:340px;overflow:auto}
.med-lista h3{font-size:22px;margin-bottom:10px}
.med-lista ul,.albo ul{list-style:none;margin:0;padding:0}
.med-lista li,.albo li{display:grid;grid-template-columns:1.2fr 1.4fr auto;gap:12px;padding:10px 0;border-bottom:1px solid #332c30;font-size:15px}
.med-lista li:last-child{border-bottom:0}
.nome{font-weight:600}
.gara{color:#E7DCE3}
.med-lista time,.albo time{color:var(--rosa-chiaro);white-space:nowrap}
@media (max-width:560px){.gradino.oro{height:220px}.gradino.argento{height:175px}.gradino.bronzo{height:145px}
  .gradino{padding-top:40px}.medaglia{width:48px;height:48px;top:-24px}
  .med-lista li,.albo li{grid-template-columns:1fr auto}.med-lista .gara,.albo .gara{grid-column:1/-1;order:3}}
.albo{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.albo h3{display:flex;align-items:center;gap:10px}
.albo h3::before{content:"";width:22px;height:22px;border-radius:50%}
.albo .c-oro h3::before{background:#E2B33C}.albo .c-argento h3::before{background:#C4C7CC}.albo .c-bronzo h3::before{background:#C27A3E}
.albo li{grid-template-columns:1fr auto}.albo .gara{grid-column:1/-1;order:3}
@media (max-width:860px){.albo{grid-template-columns:1fr}}

/* news */
.titolo-riga{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.titolo-riga h2{margin:0}
.link-freccia{font-weight:600;text-decoration:none}
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media (max-width:860px){.news{grid-template-columns:1fr}}
.news article{border-top:4px solid var(--rosa);padding-top:16px}
.news time{font-size:14px;color:var(--testo-2)}
.news .esito{font-family:var(--serif);font-size:20px;color:var(--rosa-chiaro)}

/* invito */
.invito{background:var(--nero);text-align:center;border-top:4px solid var(--rosa)}
.invito p{margin:0 auto 24px;color:#E7DCE3}

/* corsi */
.schede{display:inline-flex;gap:6px;background:var(--nero-2);padding:6px;border-radius:999px;margin-bottom:28px;flex-wrap:wrap}
.schede button{font:600 16px/1 var(--sans);color:var(--testo);background:none;border:0;padding:12px 20px;border-radius:999px;cursor:pointer}
.schede button[aria-selected="true"]{background:var(--rosa);color:#fff}
.sede-info{color:var(--testo-2)}
.corsi{display:grid;border-top:2px solid var(--testo)}
.corso{display:grid;grid-template-columns:1.1fr 1.4fr 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--bordo)}
.corso .eta{color:var(--rosa-chiaro);font-weight:600}
.corso ul{list-style:none;margin:0;padding:0}
.corso li{padding:2px 0}
@media (max-width:760px){.corso{grid-template-columns:1fr;gap:6px}}
.nota{color:var(--testo-2);font-size:15px;margin-top:18px}

/* galleria */
.album{margin-bottom:56px}
.album h2{font-size:clamp(28px,4vw,40px)}
.album time{color:var(--testo-2)}
.galleria{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:10px}
.galleria div{background:linear-gradient(160deg,var(--rosa),var(--viola));border-radius:6px;display:flex;align-items:flex-end;padding:12px;color:#fff;font-size:14px}
.galleria div:nth-child(1){grid-column:span 2;grid-row:span 2}
.galleria div:nth-child(2n){background:linear-gradient(160deg,#2B2429,#141112);border:1px solid var(--bordo)}
@media (max-width:700px){.galleria{grid-template-columns:1fr 1fr;grid-auto-rows:130px}}

/* iscrizioni */
.passi{counter-reset:p;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:28px 0 64px;padding:0}
@media (max-width:800px){.passi{grid-template-columns:1fr}}
.passi li{list-style:none;counter-increment:p;position:relative;padding-top:58px}
.passi li::before{content:counter(p);position:absolute;top:0;left:0;width:44px;height:44px;border-radius:50%;background:var(--rosa);color:#fff;font-family:var(--serif);font-size:24px;display:grid;place-items:center}
.contatti{position:relative;overflow:hidden;display:grid;grid-template-columns:repeat(2,1fr);gap:24px;background:var(--nero);border:1px solid var(--bordo);color:#fff;border-radius:14px;padding:32px}
.contatti span{overflow-wrap:anywhere}
.contatti small{display:block;color:var(--rosa-chiaro);font-size:14px;margin-bottom:4px}
@media (max-width:760px){.contatti{grid-template-columns:1fr}}

footer{position:relative;overflow:hidden;background:var(--nero);color:#bdb2b9;padding:34px 0;font-size:14px;border-top:1px solid #2a2326}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.credito{display:flex;align-items:center;gap:8px;text-decoration:none;color:#bdb2b9;opacity:.8}
.credito:hover{opacity:1}

/* stagioni */
.stagioni{display:grid;gap:14px;margin-top:24px}
.stagione{border:1px solid var(--bordo);border-radius:12px;background:var(--nero);overflow:hidden}
.stagione summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 22px}
.stagione summary::-webkit-details-marker{display:none}
.stagione summary::after{content:"▸";color:var(--rosa);font-size:20px;transition:transform .2s}
.stagione[open] summary::after{transform:rotate(90deg)}
.stagione[open] summary{border-bottom:1px solid var(--bordo)}
.st-titolo{font-family:var(--serif);font-weight:500;font-size:clamp(27px,3.3vw,36px);color:var(--testo)}
.st-conti{display:flex;align-items:center;gap:6px;margin-left:auto;font-weight:600}
.pt{display:inline-block;width:14px;height:14px;border-radius:50%;margin-left:10px}
.pt.oro{background:#E2B33C}.pt.argento{background:#C4C7CC}.pt.bronzo{background:#C27A3E}
.podio.fisso{margin:48px auto 0;grid-template-columns:repeat(3,minmax(0,150px))}
.podio.fisso .gradino{cursor:default;padding-top:36px}
.podio.fisso .gradino:hover{transform:none}
.podio.fisso .oro{height:170px}.podio.fisso .argento{height:135px}.podio.fisso .bronzo{height:110px}
.podio.fisso .conta{font-size:clamp(40px,6vw,56px)}.podio.fisso .oro .conta{font-size:clamp(48px,7vw,68px)}
.podio.fisso .medaglia{width:44px;height:44px;top:-22px;border-color:var(--nero)}
.stagione .albo{padding:28px 22px 24px;border-top:4px solid var(--rosa)}
@media (max-width:560px){.podio.fisso .oro{height:140px}.podio.fisso .argento{height:112px}.podio.fisso .bronzo{height:92px}}

/* chi siamo pagina */
.scopri{margin-top:18px}
.testo-pagina .lead{max-width:34ch}
.staff{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
@media (max-width:900px){.staff{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.staff{grid-template-columns:1fr}}
.tecnica{background:var(--nero);border:1px solid var(--bordo);border-top:4px solid var(--rosa);border-radius:12px;padding:22px}
.iniziali{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--rosa);color:#fff;font-family:var(--serif);font-size:22px;margin-bottom:14px}
.tecnica h3{font-size:24px}
.ruolo{display:block;color:var(--rosa-chiaro);font-weight:600;font-size:14px;margin-bottom:8px}
.tecnica ul{list-style:none;margin:10px 0 0;padding:0}
.tecnica li{padding:6px 0;border-top:1px solid var(--bordo);color:var(--testo-2);font-size:15px}
.palestre{list-style:none;padding:0;margin:0 0 20px;color:var(--testo-2)}
.palestre li{padding:4px 0}
.palestre b{color:var(--testo);font-weight:600}
.contatti a{color:#fff}
.invito a{color:#fff}

/* cammino dei corsi */
.intro-corsi{margin-bottom:36px}
.intro-corsi .lead{max-width:40ch}
.scegli-sede{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.scegli-sede>span{color:var(--testo-2)}
.scegli-sede .schede{margin-bottom:0}
.cammino-box{position:relative;margin-top:28px}
.nastro-cammino{position:absolute;left:4px;top:0;width:40px;height:100%;pointer-events:none}
.nastro-cammino path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.nastro-cammino .r1{stroke:var(--rosa);stroke-width:4;opacity:.85}
.nastro-cammino .r2{stroke:var(--rosa);stroke-width:2;opacity:.4}
.cammino{list-style:none;margin:0;padding:0}
.tappa{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;padding:28px 0 28px 76px;border-bottom:1px solid var(--bordo)}
.tappa:last-child{border-bottom:0}
.segno{position:absolute;left:0;top:26px;width:48px;height:48px;border-radius:50%;background:var(--rosa);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:24px;border:4px solid var(--sfondo)}
.tappa:last-child .segno{width:56px;height:56px;left:-4px;background:radial-gradient(circle at 35% 30%,#FFF1B0,#E2B33C 55%,#A97C12);color:var(--nero)}
.tappa h3{font-size:clamp(29px,3.3vw,36px)}
.tappa .eta{display:block;color:var(--rosa-chiaro);font-weight:600;margin-bottom:10px}
.orari{background:var(--nero);border:1px solid var(--bordo);border-radius:10px;padding:16px 18px;align-self:start}
.orari small{display:block;color:var(--rosa-chiaro);font-size:13px;margin-bottom:6px}
.orari ul{list-style:none;margin:0;padding:0}
.orari li{padding:3px 0}
@media (max-width:760px){.tappa{grid-template-columns:1fr;gap:14px;padding-left:64px}.segno{width:42px;height:42px;font-size:20px}.tappa:last-child .segno{width:48px;height:48px}}
.tecnica li.laurea{color:var(--testo)}
.tecnica li.laurea::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--rosa);margin-right:8px;vertical-align:middle}

/* prenotazione prova */
.prova-wrap{max-width:860px}
.demo-nota{display:inline-block;font-size:14px;margin-bottom:22px}
.passi-prova{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 28px;flex-wrap:wrap}
.passi-prova li{display:flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--nero-2);color:var(--testo-2);font-size:15px}
.passi-prova span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--bordo);color:var(--testo);font-weight:600;font-size:14px}
.passi-prova li[aria-current="step"]{color:#fff;background:var(--nero);box-shadow:inset 0 0 0 1.5px var(--rosa)}
.passi-prova li[aria-current="step"] span,.passi-prova li.fatto-p span{background:var(--rosa);color:#fff}
.fase{border:0;margin:0;padding:0}
.fase legend{font-family:var(--serif);font-weight:500;font-size:clamp(32px,4.4vw,42px);margin-bottom:16px;padding:0;outline:none}
.sotto{font-size:22px;margin:26px 0 12px}
.sotto-legend{color:var(--testo-2)}
.campi{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
@media (max-width:600px){.campi{grid-template-columns:1fr}}
.campi label{display:flex;flex-direction:column;gap:6px;font-size:15px;color:var(--testo-2)}
.facolt{color:var(--testo-2);font-size:13px}
.campi input,.campi select{font:inherit;font-size:16px;color:var(--testo);background:var(--nero);border:1px solid var(--bordo);border-radius:10px;padding:12px 14px;min-height:48px;width:100%;color-scheme:dark}
.campi input:focus,.campi select:focus{outline:none;border-color:var(--rosa);box-shadow:0 0 0 3px rgba(202,54,163,.3)}
.consiglio{margin:18px 0 6px;padding:14px 18px;border-left:4px solid var(--rosa);background:var(--nero-2);border-radius:0 10px 10px 0;max-width:none}
.consiglio b{color:var(--rosa-chiaro)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.errore{color:#FF9AD5;font-weight:600;margin-top:16px}
.nav-fasi{display:flex;justify-content:space-between;gap:12px;margin-top:28px;flex-wrap:wrap}
.nav-fasi .btn{border:0;cursor:pointer;font:600 16px/1 var(--sans)}
.nav-fasi .btn.vuoto{border:1.5px solid #fff;background:none}
.slot{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.slot-card{position:relative;display:grid;gap:2px;padding:16px 18px;border:1.5px solid var(--bordo);border-radius:12px;background:var(--nero);cursor:pointer}
.slot-card input{position:absolute;opacity:0}
.slot-card:hover{border-color:var(--rosa-chiaro)}
.slot-card:has(input:checked){border-color:var(--rosa);box-shadow:0 0 0 3px rgba(202,54,163,.35);background:#1f1119}
.slot-card:has(input:focus-visible){outline:3px solid var(--rosa);outline-offset:2px}
.s-data{font-weight:600;text-transform:capitalize}
.s-ora{font-family:var(--serif);font-weight:600;font-size:34px;color:var(--rosa);line-height:1.1}
.s-pal{color:var(--testo-2);font-size:14px}
.s-posti{font-size:13px;color:var(--rosa-chiaro);margin-top:4px}
.slot-card.pieno{opacity:.45;cursor:not-allowed}
.slot-card.pieno .s-posti{color:var(--testo-2)}
.riepilogo dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:0 0 24px;padding:20px 22px;background:var(--nero);border:1px solid var(--bordo);border-radius:12px}
.riepilogo dt{color:var(--rosa-chiaro);font-size:14px}
.riepilogo dd{margin:0}
@media (max-width:520px){.riepilogo dl{grid-template-columns:1fr;gap:2px}.riepilogo dd{margin-bottom:10px}}
.spunta{display:flex;gap:12px;align-items:flex-start;margin:12px 0;cursor:pointer}
.spunta input{width:22px;height:22px;accent-color:var(--rosa);flex:none;margin-top:2px}
.fatto{outline:none}
.fatto h2{color:var(--rosa)}
.anteprima-tit{margin:36px 0 14px}
.mail-anteprime{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px}
@media (max-width:760px){.mail-anteprime{grid-template-columns:1fr}}
.mail{background:#F7F2F5;color:#1A1718;border-radius:12px;overflow:hidden;font-size:15px}
.mail header{background:#fff;border-bottom:1px solid #E6DCE2;padding:12px 16px;display:grid;gap:2px}
.mail header small{color:#8D198F;font-size:12px}
.mail>div{padding:14px 16px}
.mail p{margin:0 0 10px}
.mail a{color:#8D198F}
.mail .ph{background:rgba(202,54,163,.18)}
.golee{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center;background:var(--nero);border:1px solid var(--bordo);border-left:4px solid var(--rosa);border-radius:14px;padding:28px;margin:0 0 64px}
.golee h2{font-size:clamp(28px,4vw,38px)}
.golee p{margin:0;color:var(--testo-2)}
.golee-azioni{display:flex;flex-direction:column;gap:10px;align-items:stretch;text-align:center}
.golee-azioni small{font-size:13px}
@media (max-width:760px){.golee{grid-template-columns:1fr}}

.orari li b{text-transform:capitalize;font-weight:600}
.orari .non-qui{color:var(--testo-2);font-style:italic}

/* numeri "dritti" nei punti dove contano (Cormorant di base usa numeri all'antica) */
.cifre b,.conta,.s-ora,.st-titolo,.segno,.passi li::before,.st-conti,h1,h2,h3{font-variant-numeric:lining-nums}

/* immagini chi siamo e gare */
.storia{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px;align-items:center}
.storia-foto{margin:0;border:5px solid var(--rosa);border-radius:18px;overflow:hidden;background:var(--nero);aspect-ratio:880/1168}
.storia-foto img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:800px){.storia{grid-template-columns:1fr;gap:32px}.storia-foto{order:-1;max-width:380px;width:100%;justify-self:center}}
.testata-foto{min-height:clamp(260px,30vw,400px);display:flex;align-items:flex-end;
  background:linear-gradient(90deg,rgba(12,11,11,.96) 0%,rgba(12,11,11,.82) 32%,rgba(12,11,11,.25) 62%,rgba(12,11,11,0) 80%),
  linear-gradient(0deg,rgba(12,11,11,.9) 0%,rgba(12,11,11,0) 45%),
  url(../img/testata-gare.webp) right center/cover no-repeat,var(--nero)}
.testata-foto .wrap{width:100%}
@media (max-width:700px){.testata-foto{background:linear-gradient(0deg,rgba(12,11,11,.97) 0%,rgba(12,11,11,.75) 45%,rgba(12,11,11,.2) 100%),url(../img/testata-gare.webp) 70% center/cover no-repeat,var(--nero)}}

.testata-corsi{background:linear-gradient(90deg,rgba(12,11,11,.9) 0%,rgba(12,11,11,.55) 30%,rgba(12,11,11,0) 55%),
  linear-gradient(0deg,rgba(12,11,11,.85) 0%,rgba(12,11,11,0) 40%),
  url(../img/testata-corsi.webp) right 85%/cover no-repeat,var(--nero)}
@media (max-width:700px){.testata-corsi{background:linear-gradient(0deg,rgba(12,11,11,.97) 0%,rgba(12,11,11,.7) 45%,rgba(12,11,11,.15) 100%),url(../img/testata-corsi.webp) 78% center/cover no-repeat,var(--nero)}}

.testata-iscr{background:linear-gradient(90deg,rgba(12,11,11,.9) 0%,rgba(12,11,11,.5) 30%,rgba(12,11,11,0) 55%),
  linear-gradient(0deg,rgba(12,11,11,.85) 0%,rgba(12,11,11,0) 40%),
  url(../img/testata-iscrizioni.webp) right 40%/cover no-repeat,var(--nero)}
@media (max-width:700px){.testata-iscr{background:linear-gradient(0deg,rgba(12,11,11,.97) 0%,rgba(12,11,11,.7) 45%,rgba(12,11,11,.15) 100%),url(../img/testata-iscrizioni.webp) 80% center/cover no-repeat,var(--nero)}}

.testata-chi{background:linear-gradient(90deg,rgba(12,11,11,.85) 0%,rgba(12,11,11,.35) 30%,rgba(12,11,11,0) 50%),
  linear-gradient(0deg,rgba(12,11,11,.6) 0%,rgba(12,11,11,0) 22%),
  url(../img/testata-chi-siamo.webp) right bottom/auto 100% no-repeat,var(--nero);min-height:clamp(320px,34vw,470px)}
@media (max-width:700px){.testata-chi{background:linear-gradient(0deg,rgba(12,11,11,.95) 0%,rgba(12,11,11,.6) 40%,rgba(12,11,11,.1) 100%),url(../img/testata-chi-siamo.webp) 100% 80%/cover no-repeat,var(--nero)}}

.testata-gal{background:linear-gradient(0deg,rgba(12,11,11,.6) 0%,rgba(12,11,11,0) 22%),
  url(../img/testata-galleria.webp) right bottom/auto 100% no-repeat,var(--nero);min-height:clamp(320px,34vw,470px)}
@media (max-width:700px){.testata-gal{background:linear-gradient(0deg,rgba(12,11,11,.95) 0%,rgba(12,11,11,.6) 40%,rgba(12,11,11,.1) 100%),url(../img/testata-galleria.webp) 75% 80%/cover no-repeat,var(--nero)}}

/* ====== MOVIMENTO ======
   1) i nastri si disegnano quando entrano nello schermo
   2) i nastri delle fasce nere "respirano" lentamente
   3) i contenuti entrano in scena con una dissolvenza dal basso
   Tutto spento per chi ha chiesto meno animazioni. */
.js-anim .da-disegnare path{stroke-dasharray:5000;stroke-dashoffset:5000;transition:stroke-dashoffset 2.4s cubic-bezier(.35,.6,.2,1)}
.js-anim .da-disegnare path.r2{transition-delay:.35s;transition-duration:2.1s}
.js-anim .da-disegnare.visto path{stroke-dashoffset:0}
@keyframes respiro{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-7px) scaleY(1.07)}}
@keyframes respiro2{0%,100%{transform:translateX(0) scaleY(1)}50%{transform:translateX(-10px) scaleY(.94)}}
.testata .nastro-nero,.n-pedana,footer .nastro-nero{transform-origin:50% 60%;animation:respiro 11s ease-in-out infinite}
.contatti .nastro-nero{transform-origin:100% 0;animation:respiro2 13s ease-in-out infinite}
.cielo .nastro{transform-origin:60% 60%;animation:respiro 12s 3s ease-in-out infinite}
.js-anim .rivela{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.js-anim .rivela.visto{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js-anim .da-disegnare path{stroke-dashoffset:0!important;transition:none}
  .js-anim .rivela{opacity:1!important;transform:none!important}
  .testata .nastro-nero,.n-pedana,footer .nastro-nero,.contatti .nastro-nero,.cielo .nastro{animation:none}
}

.med-vuoto{padding:22px 24px;border:1px dashed var(--bordo);border-radius:12px;color:var(--testo-2);font-style:italic;max-width:none}
.intro-prova{color:var(--testo);max-width:62ch;margin-bottom:24px}


/* contenuti scritti in WordPress (es. privacy) */
.testo-libero{max-width:760px}.testo-libero h2{margin-top:36px}.testo-libero p,.testo-libero li{color:var(--testo)}

/* tappa 2: contenuti dal pannello */
.news h3 a{color:inherit;text-decoration:none}.news h3 a:hover{color:var(--rosa-chiaro)}
.news .news-foto img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;margin-bottom:12px}
.galleria.foto{grid-auto-rows:170px}
.galleria.foto a{display:block;border-radius:6px;overflow:hidden;background:var(--nero-2)}
.galleria.foto a:first-child{grid-column:span 2;grid-row:span 2}
.galleria.foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.galleria.foto a:hover img{transform:scale(1.04)}
.tecnica-foto{width:96px;height:96px;border-radius:50%;object-fit:cover;margin-bottom:14px;border:3px solid var(--rosa)}
.news-copertina{margin:0 0 28px}.news-copertina img{width:100%;height:auto;border-radius:12px}
.testo-libero a{color:var(--rosa-chiaro)}

/* tappa 3 */
.annulla-box{max-width:640px}.annulla-box h2{color:var(--rosa)}.annulla-box .btn{margin:6px 8px 6px 0;border:0;cursor:pointer;font:500 16px/1 var(--sans)}.annulla-box .btn.vuoto{border:1.5px solid #fff;background:none}
.nav-fasi .btn:disabled{opacity:.6;cursor:wait}

/* 1.2.1 */
footer .link-privacy{color:#bdb2b9;text-decoration:none;opacity:.8}footer .link-privacy:hover{opacity:1;color:var(--rosa-chiaro)}
