@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:200 1000;font-display:swap;src:url(assets/fonts/nunito-sans-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:200 1000;font-display:swap;src:url(assets/fonts/nunito-sans-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Nunito Sans";font-style:italic;font-weight:200 1000;font-display:swap;src:url(assets/fonts/nunito-sans-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Nunito Sans";font-style:italic;font-weight:200 1000;font-display:swap;src:url(assets/fonts/nunito-sans-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --black:#231f20; --ink:#171415; --gold:#f6be22; --gold-d:#d4a534; --grey:#d1d5d8; --slate:#424a49;
  --card:#2c2829; --line:#3b3637; --text:#f2f2f0; --muted:#a9adaf; --err:#ff7a6b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);font:16px/1.6 "Nunito Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:inherit;font-weight:300;line-height:1.15;margin:0 0 .5em}
h2{font-size:clamp(1.8rem,4vw,2.6rem)}
h2::after{content:"";display:block;width:56px;height:3px;background:var(--gold);margin-top:.5rem}
.wrap{max-width:1040px;margin:0 auto;padding:4rem 1rem}

.nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;background:rgba(23,20,21,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}
.nav nav{display:flex;align-items:center;gap:1.2rem}
.nav nav a{text-decoration:none;font-size:.9rem}
.nav nav a:not(.btn):hover{color:var(--gold)}
@media(max-width:760px){.brand span{display:none}}
.nav nav a{white-space:nowrap}

.btn{display:inline-block;background:var(--gold);color:var(--black);border:0;border-radius:999px;padding:.8rem 1.6rem;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s,transform .15s}
.btn:hover{background:var(--gold-d)}
.btn:active{transform:scale(.98)}
.btn-sm{padding:.4rem 1rem;font-size:.85rem}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--slate)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn[disabled]{opacity:.5;cursor:wait}


.grid{columns:3 220px;column-gap:12px;margin-top:2rem}
.grid button{display:block;width:100%;margin:0 0 12px;padding:0;border:0;background:var(--card);cursor:zoom-in;overflow:hidden;border-radius:4px;break-inside:avoid}
.grid img{width:100%;height:auto;transition:transform .4s,opacity .3s}
.grid button:hover img{transform:scale(1.04);opacity:.9}
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:1rem;cursor:zoom-out}
.lightbox[hidden]{display:none}
.lightbox img{max-height:94vh;max-width:96vw;object-fit:contain}

.about p{max-width:42rem;color:var(--muted);font-size:1.1rem}
.lead{color:var(--muted);max-width:40rem}

form{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.5rem;margin-top:2rem}
.progress{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 1.5rem}
.progress li{flex:1;height:4px;background:var(--slate);border-radius:2px;position:relative}
.progress li.is-done{background:var(--gold-d)}
.progress li.is-on{background:var(--gold)}
fieldset{border:0;margin:0;padding:0;display:none}
fieldset.on{display:block}
legend{font-family:inherit;font-weight:600;font-size:1.5rem;color:var(--gold);margin-bottom:1rem;padding:0}
label{display:block;margin-bottom:1rem;font-size:.9rem;color:var(--grey)}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;margin-top:.3rem;padding:.7rem .8rem;background:var(--ink);color:var(--text);border:1px solid var(--slate);border-radius:8px;font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
input[type=file]{padding:.5rem;border-style:dashed}
small{color:var(--muted);display:block;margin-top:.3rem}
.row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
@media(max-width:560px){.row{grid-template-columns:1fr}}
.q{display:block;margin-bottom:.5rem;color:var(--grey);font-size:.9rem}
.radio,.checks{margin-bottom:1.2rem}
.radio label,.checks>label{display:flex;gap:.6rem;align-items:center;margin:.3rem 0;font-size:1rem;color:var(--text);cursor:pointer}
input[type=checkbox],input[type=radio]{accent-color:var(--gold);width:1.1rem;height:1.1rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips label{margin:0}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;padding:.5rem 1rem;border:1px solid var(--slate);border-radius:999px;cursor:pointer;color:var(--text);font-size:.9rem;user-select:none}
.chips input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:700}
.chips input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.previews{display:flex;gap:.5rem;flex-wrap:wrap;margin:-.5rem 0 1rem}
.previews img{width:72px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--slate)}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
.consent{display:flex!important;gap:.7rem;align-items:flex-start;font-size:.85rem;color:var(--muted);cursor:pointer}
.consent input{margin-top:.25rem;flex:none}

.booking{margin:1.5rem 0;padding:1rem;border:1px solid var(--line);border-radius:10px;background:var(--ink)}
.cal{max-width:340px}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.cal-head b{text-transform:capitalize}
.cal-head button{background:none;border:1px solid var(--slate);color:var(--text);border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:1rem}
.cal-head button:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}
.cal-head button:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.cal-grid .dow{font-size:.7rem;color:var(--muted);text-transform:uppercase;padding:.3rem 0}
.cal-grid button{aspect-ratio:1;border:0;border-radius:8px;background:var(--card);color:var(--text);cursor:pointer;font:inherit;font-size:.85rem}
.cal-grid button:hover:not(:disabled){background:var(--slate)}
.cal-grid button:disabled{background:none;color:#5b5e60;cursor:default}
.cal-grid button.sel{background:var(--gold);color:var(--black);font-weight:700}
.cal-grid button.today{box-shadow:inset 0 0 0 1px var(--gold-d)}
.picked{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:.8rem 0}
.picked li{display:flex;align-items:center;gap:.4rem;background:var(--card);border:1px solid var(--gold-d);border-radius:999px;padding:.2rem .3rem .2rem .8rem;font-size:.85rem}
.picked button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1}
.picked button:hover{color:var(--err)}

.actions{display:flex;justify-content:space-between;gap:.7rem;margin-top:1.5rem}

.error{color:var(--err);margin:1rem 0 0;font-size:.9rem}
.done{text-align:center;padding:3rem 1rem;border:1px solid var(--gold-d);border-radius:12px;margin-top:2rem}
.done img{margin:0 auto 1rem}
.done[hidden],.error[hidden]{display:none}
input:user-invalid,textarea:user-invalid,select:user-invalid{border-color:var(--err)}
footer{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}
footer p{margin:0}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

[hidden]{display:none!important}
.cta{text-align:center}
.cta h2::after{margin-left:auto;margin-right:auto}
.cta p{color:var(--muted);margin-bottom:1.5rem}
.page{padding-top:3rem;min-height:70vh}
.nav a.btn[aria-current]{background:var(--gold-d)}

/* ---- pagine Esterna / Studio, riquadri home ---- */
.page-head{padding-bottom:1rem}
.page-head h1{font-size:clamp(2rem,5vw,3.2rem)}
.page-head h1::after{content:"";display:block;width:56px;height:3px;background:var(--gold);margin-top:.5rem}
.page-head p{max-width:42rem;color:var(--muted);font-size:1.1rem}
.gal{padding-top:1rem}
.gal .grid{margin-top:0}
.nav a.cur{color:var(--gold)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;text-decoration:none}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.tile:hover img{transform:scale(1.05)}
.tile span{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1rem 1rem;background:linear-gradient(transparent,rgba(0,0,0,.75));font-size:1.4rem;font-weight:300;letter-spacing:.04em}
.nav nav{gap:1rem}
@media(max-width:560px){.nav nav{gap:.7rem}.nav nav a{font-size:.8rem}.tiles{grid-template-columns:1fr}}

/* ---- pagina Candidati: split foto + form ---- */
body.app{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body.app footer{display:none}
body.app main{flex:1;min-height:0;display:flex}
.split{flex:1;min-height:0;display:grid;grid-template-columns:minmax(300px,5fr) 7fr;width:100%}
.visual{position:relative;overflow:hidden;background:var(--black)}
.visual img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .9s ease,transform 6s ease}
.visual img.bg.on{opacity:1;transform:scale(1)}
.visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,20,21,.55) 0,transparent 30%,transparent 50%,rgba(23,20,21,.9) 100%),linear-gradient(90deg,transparent 70%,var(--ink))}
.vcap{position:absolute;z-index:2;left:2rem;right:2rem;bottom:2rem}
.vcap small{display:block;color:var(--gold);letter-spacing:.3em;font-weight:700;font-size:.75rem;text-transform:uppercase;margin:0 0 .4rem}
.vcap b{display:block;font-size:clamp(2rem,3.4vw,3.2rem);font-weight:300;line-height:1.05}
.vcap em{display:block;margin-top:.7rem;color:var(--grey);font-style:normal;font-size:.95rem;max-width:22rem}
.vtop{position:absolute;z-index:2;left:2rem;top:1.6rem;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--grey)}
body.app form{background:none;border:0;border-radius:0;padding:2rem clamp(1.5rem,4vw,4rem) 1.5rem;display:flex;flex-direction:column;min-height:0;min-width:0;width:100%;max-width:860px;margin:0 auto}
body.app .progress{margin:0 0 1.2rem;gap:8px}
body.app .progress li{height:3px}
body.app legend{display:none}
body.app fieldset.on{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.85rem 1.2rem;align-content:safe center;flex:1;min-height:0;overflow:auto;padding:4px 6px 4px 2px}
body.app .row{display:contents}
body.app label{margin:0;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
body.app input:not([type=checkbox]):not([type=radio]):not([type=file]),body.app select,body.app textarea{background:transparent;border:0;border-bottom:1px solid var(--slate);border-radius:0;padding:.55rem .1rem;margin-top:.1rem;font-size:1.05rem;letter-spacing:0;text-transform:none;color:var(--text);transition:border-color .2s}
body.app input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,body.app select:focus,body.app textarea:focus{outline:0;border-bottom-color:var(--gold);box-shadow:0 1px 0 var(--gold)}
body.app select option{background:var(--ink)}
body.app input[type=file]{border:1px dashed var(--slate);border-radius:8px;padding:.7rem;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--grey)}
body.app textarea{resize:none}
body.app .radio,body.app .checks,body.app .previews,body.app .booking,body.app .file,body.app .consent,body.app label:has(textarea){grid-column:1/-1}
body.app .q{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
body.app .radio,body.app .checks{margin:0}
body.app .radio{display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center}
body.app .radio .q{flex-basis:100%}
body.app .radio label{display:inline-flex;margin:0;padding:.5rem 1.2rem;border:1px solid var(--slate);border-radius:999px;font-size:.9rem;letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer;gap:.5rem}
body.app .radio label:has(input:checked){background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:700}
body.app .radio input{position:absolute;opacity:0;pointer-events:none}
body.app .radio label:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
body.app .checks:not(:has(.chips)){display:flex;flex-wrap:wrap;gap:.45rem}
body.app .checks:not(:has(.chips)) .q{flex-basis:100%;margin-bottom:.1rem}
body.app .checks:not(:has(.chips))>label{display:inline-flex;margin:0;padding:.5rem 1rem;border:1px solid var(--slate);border-radius:999px;font-size:.88rem;letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer}
body.app .checks:not(:has(.chips))>label:has(input:checked){background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:700}
body.app .checks:not(:has(.chips))>label input{position:absolute;opacity:0;pointer-events:none}
body.app .checks:not(:has(.chips))>label:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
body.app .chips span{padding:.4rem .95rem;font-size:.85rem}
body.app .previews{margin:0}
body.app .previews img{width:48px;height:48px}
body.app small{margin-top:.3rem;font-size:.72rem;letter-spacing:0;text-transform:none}
body.app .booking{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.6rem;margin:.2rem 0;padding:1rem 1.2rem;background:rgba(255,255,255,.03);align-items:start}
body.app .booking>.q{grid-column:1/-1}
body.app .booking .cal{grid-row:2/4;max-width:270px}
body.app .booking .picked{margin:0;min-height:1.6rem}
body.app .cal-head{margin-bottom:.25rem}
body.app .cal-head button{width:28px;height:28px}
body.app .cal-grid{gap:2px}
body.app .cal-grid button{aspect-ratio:auto;height:26px;font-size:.78rem}
body.app .cal-grid .dow{padding:.1rem 0}
body.app .consent{font-size:.78rem;letter-spacing:0;text-transform:none;color:var(--muted)}
body.app .error{margin:.6rem 0 0;font-size:.85rem}
body.app .actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
body.app .done{margin:auto;max-width:480px}
@media(max-width:860px){
  .split{grid-template-columns:1fr;grid-template-rows:84px 1fr}
  .vcap{left:1.2rem;bottom:.8rem}.vcap em,.vtop{display:none}.vcap b{font-size:1.4rem}.vcap small{margin:0}
  .visual::after{background:linear-gradient(0deg,rgba(23,20,21,.9),transparent 70%)}
  body.app form{padding:1rem 1.1rem}
  body.app fieldset.on{align-content:start}
  body.app .booking{grid-template-columns:1fr}body.app .booking .cal{grid-row:auto}
}

/* ---- pagina 3D ---- */
.hero3d{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;padding-bottom:2rem}
.hero3d h1{font-size:clamp(2rem,5vw,3.4rem)}
.hero3d h1::after{content:"";display:block;width:56px;height:3px;background:var(--gold);margin-top:.6rem}
.hero3d p{color:var(--muted);font-size:1.1rem;max-width:36rem}
.mesh{width:100%;max-width:340px;justify-self:center;color:var(--gold);opacity:.85}
.cards3d{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card3d{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:2rem;overflow:hidden}
.card3d .num{position:absolute;right:1.2rem;top:.4rem;font-size:5rem;font-weight:200;color:rgba(246,190,34,.14);line-height:1}
.card3d h2{font-size:1.6rem}
.card3d p{color:var(--grey)}
.card3d ul{list-style:none;padding:0;margin:1.2rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
.card3d li{border:1px solid var(--slate);border-radius:999px;padding:.3rem .9rem;font-size:.85rem;color:var(--text)}
.flow ol{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:s}
.flow li{counter-increment:s;border-top:2px solid var(--gold);padding-top:1rem}
.flow li::before{content:"0" counter(s);display:block;color:var(--gold);font-weight:700;letter-spacing:.2em;font-size:.8rem;margin-bottom:.4rem}
.flow b{display:block;font-size:1.2rem;font-weight:600}
.flow span{color:var(--muted)}
@media(max-width:760px){.hero3d,.cards3d,.flow ol{grid-template-columns:1fr}.mesh{max-width:200px}}

/* ---- dotazione studio ---- */
.gear{padding-top:2rem}
.gear-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:2rem}
.gear-grid article{border-top:2px solid var(--gold);padding:1rem 0 0}
.gear-grid h3{font-size:1.25rem;font-weight:600;margin-bottom:.4rem}
.gear-grid p{margin:0;color:var(--muted);font-size:.95rem}

.zone{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1.2rem 0 0}
.zone li{border:1px solid var(--gold-d);color:var(--gold);border-radius:999px;padding:.35rem 1rem;font-size:.9rem}

/* ---- hero dinamico ---- */
.hero{position:relative;min-height:calc(100svh - 64px);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;isolation:isolate;padding:4rem 1rem}
.slides{position:absolute;inset:0;z-index:-2;background:var(--ink)}
.slide{position:absolute;inset:-4%;width:108%;height:108%;max-width:none;object-fit:cover;object-position:50% 25%;opacity:0;transform:scale(1.02);transition:opacity 1.6s ease}
.slide.on{opacity:1;z-index:1}
.slide.on,.slide.prev{animation:kb 16s linear forwards;will-change:transform,opacity}
@keyframes kb{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-1.5%,-1%,0)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 45%,rgba(23,20,21,.18) 0,rgba(23,20,21,.7) 80%),linear-gradient(180deg,rgba(23,20,21,.5),rgba(23,20,21,.1) 40%,var(--ink))}
.hero-in{width:100%;max-width:1200px}
.hero h1{font-size:clamp(1.9rem,7.2vw,5.4rem);font-weight:300;line-height:1.05;letter-spacing:-.01em;white-space:nowrap;text-shadow:0 2px 30px rgba(0,0,0,.5)}
.hero .line{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em}
.hero .line>span{display:inline-block;transform:translateY(110%);animation:rise .9s cubic-bezier(.2,.8,.2,1) forwards}
.hero .line:nth-child(1)>span{animation-delay:.15s}
.hero .line:nth-child(2)>span{animation-delay:.3s}
.hero .line:nth-child(3)>span{animation-delay:.45s}
@keyframes rise{to{transform:none}}
.rot{display:inline-block;text-align:left;color:var(--gold);font-style:italic;font-weight:400;transition:transform .5s cubic-bezier(.6,0,.2,1),opacity .5s}
.rot.out{transform:translateY(-100%)!important;opacity:0}
.rot.in{transform:translateY(100%)!important;opacity:0;transition:none}
.hero .dot{color:var(--gold)}
.hero p{margin:1.2rem auto 2rem;color:var(--grey);font-size:clamp(1rem,2.4vw,1.3rem);opacity:0;animation:fade 1s .9s forwards}
.hero-cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;opacity:0;animation:fade 1s 1.1s forwards}
@keyframes fade{to{opacity:1}}
.scroll{position:absolute;left:50%;bottom:1.4rem;width:26px;height:42px;margin-left:-13px;border:2px solid rgba(255,255,255,.55);border-radius:14px}
.scroll span{position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold);animation:wheel 1.8s infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
.dots{position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px}
.dots i{display:block;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);transition:.4s}
.dots i.on{background:var(--gold);transform:scale(1.5)}
@media(max-width:560px){.dots{display:none}}
@media(prefers-reduced-motion:reduce){
  .slide.on,.slide.prev{animation:none}.hero-logo{animation:none}
  .hero .line>span,.hero p,.hero-cta{animation:none;transform:none;opacity:1}
  .scroll span{animation:none}
}

.hero-logo{margin:0 auto 1.2rem;width:clamp(84px,12vw,120px);height:auto;border-radius:50%;animation:pulse 2.8s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(246,190,34,.55),0 6px 24px rgba(0,0,0,.5)}50%{transform:scale(1.07);box-shadow:0 0 0 18px rgba(246,190,34,0),0 6px 24px rgba(0,0,0,.5)}}

/* ---- pulsante musica ---- */
.music{position:fixed;left:1rem;bottom:1rem;z-index:30;display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem .55rem .8rem;border-radius:999px;border:1px solid var(--slate);background:rgba(23,20,21,.82);backdrop-filter:blur(8px);color:var(--text);font:inherit;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s}
.music:hover{border-color:var(--gold);color:var(--gold)}
.music.on{border-color:var(--gold-d)}
.music .eq{display:flex;align-items:flex-end;gap:2px;height:14px}
.music .eq i{display:block;width:3px;height:3px;background:var(--gold);border-radius:1px}
.music.on .eq i{animation:eq 1s ease-in-out infinite}
.music.on .eq i:nth-child(2){animation-delay:.2s}.music.on .eq i:nth-child(3){animation-delay:.4s}.music.on .eq i:nth-child(4){animation-delay:.6s}
@keyframes eq{0%,100%{height:3px}50%{height:14px}}
@media(max-width:560px){.music .mt{display:none}.music{padding:.6rem .7rem}}
@media(prefers-reduced-motion:reduce){.music.on .eq i{animation:none;height:10px}}
body.app .music{left:1rem;right:auto;bottom:auto;top:calc(64px + 3.8rem)}
@media(max-width:860px){body.app .music{left:auto;right:1rem;top:auto;bottom:5.6rem}}

/* ---- modulo contatto 3D ---- */
.cform{margin-top:2rem;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.8rem;max-width:760px}
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.6rem}
.cform label{display:block;margin-bottom:1.1rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cform input:not([type=checkbox]):not([type=file]),.cform select,.cform textarea{display:block;width:100%;margin-top:.1rem;padding:.55rem .1rem;background:transparent;color:var(--text);border:0;border-bottom:1px solid var(--slate);border-radius:0;font:inherit;font-size:1.05rem;letter-spacing:0;text-transform:none;transition:border-color .2s}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:0;border-bottom-color:var(--gold);box-shadow:0 1px 0 var(--gold)}
.cform select option{background:var(--ink)}
.cform textarea{resize:vertical}
.cform input[type=file]{margin-top:.4rem;border:1px dashed var(--slate);border-radius:8px;padding:.7rem;font-size:.9rem;color:var(--grey)}
.cform .previews{margin:-.4rem 0 1rem}
.cform .cconsent{display:flex;gap:.7rem;align-items:flex-start;font-size:.78rem;letter-spacing:0;text-transform:none;color:var(--muted);cursor:pointer}
.cform .cconsent input{width:1.1rem;height:1.1rem;margin-top:.2rem;flex:none;accent-color:var(--gold)}
.cform .error{margin:0 0 1rem}
.hero3d .btn{margin-top:1rem}
@media(max-width:620px){.cgrid{grid-template-columns:1fr}.cform{padding:1.2rem}}

/* ---- eventi e contatti nel footer ---- */
.evsec{padding-top:1.5rem;padding-bottom:1.5rem}
.evlist{display:grid;gap:16px;margin-top:1.5rem}
.event{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:0;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.event:not(:has(img)){grid-template-columns:1fr}
.event img{width:100%;height:100%;min-height:200px;object-fit:cover}
.ev-body{padding:1.4rem 1.6rem}
.ev-tag{display:inline-block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold-d);border-radius:999px;padding:.15rem .7rem}
.ev-body h3{font-size:1.5rem;font-weight:400;margin:.7rem 0 .2rem}
.ev-meta{margin:0 0 .8rem;color:var(--grey)}
.ev-desc{margin:0 0 1rem;color:var(--muted);white-space:pre-line}
.event.past{opacity:.75}
.event.past:hover{opacity:1}
.ev-empty{color:var(--muted);padding:1rem 0}
.ev-year{font-size:1rem;letter-spacing:.3em;color:var(--gold);font-weight:700;margin:1.2rem 0 0}
@media(max-width:700px){.event{grid-template-columns:1fr}.event img{max-height:240px}}
.contacts{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;justify-content:center;margin:0 0 .4rem}
.contacts a{color:var(--grey);text-decoration:none}
.contacts a:hover{color:var(--gold)}

/* ---- area modelli, iscrizioni ---- */
.acc{max-width:640px}
.acc h1{font-size:clamp(2rem,5vw,3rem)}
.acform{display:block;margin-top:1.5rem;max-width:none}
.acform label{display:block;margin-bottom:1rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.acform input{display:block;width:100%;margin-top:.1rem;padding:.55rem .1rem;background:transparent;color:var(--text);border:0;border-bottom:1px solid var(--slate);font:inherit;font-size:1.05rem;letter-spacing:0;text-transform:none}
.acform input:focus{outline:0;border-bottom-color:var(--gold);box-shadow:0 1px 0 var(--gold)}
.acform h2{font-size:1.2rem}.acform h2::after{display:none}
.row2{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.linklike{background:none;border:0;color:var(--gold);cursor:pointer;font:inherit;font-size:.9rem;text-decoration:underline;padding:0}
.hint2{color:var(--muted);font-size:.9rem;margin:1.2rem 0 0}
.hint2 a{color:var(--gold)}
.msg-ok{background:rgba(120,200,120,.12);border:1px solid #5a9a5a;border-radius:8px;padding:1rem}
.card2{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.3rem;margin-top:1rem}
.card2 h2{font-size:1.3rem;margin:0 0 .6rem}.card2 h2::after{display:none}
.regs{list-style:none;margin:0 0 1rem;padding:0}
.reg{display:grid;grid-template-columns:1fr auto auto;gap:.8rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--line)}
.reg:first-child{border-top:0}
.reg small{display:block;color:var(--muted)}
.st{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--slate);border-radius:999px;padding:.15rem .7rem;color:var(--muted)}
.st-accettata{border-color:#5a9a5a;color:#8fd08f}.st-rifiutata{border-color:var(--err);color:var(--err)}.st-inattesa{border-color:var(--gold-d);color:var(--gold)}
.acchint{grid-column:1/-1;margin:-.3rem 0 .6rem}
.ev-reg{margin-top:1rem}
.ev-reg textarea{display:block;width:100%;margin:.6rem 0;padding:.6rem;background:var(--ink);color:var(--text);border:1px solid var(--slate);border-radius:8px;font:inherit}
.ev-reg .ev-status{display:inline-block}

/* ---- form 3D progressivo ---- */
.cform .cstep{border:0;margin:0;padding:0;display:none;min-width:0}
.cform .cstep.on{display:block}
.cform legend{font-size:1.15rem;font-weight:600;color:var(--gold);margin:0 0 1rem;padding:0}
.cform .progress{margin-bottom:1.5rem}
.cactions{display:flex;justify-content:space-between;gap:.7rem;margin-top:1.2rem}
.cactions .btn{margin-left:0}
.cactions [hidden]{display:none!important}

/* passo "Disponibilità" più compatto, così sta in una schermata */
body.app .cal-grid button{height:30px;font-size:.78rem}
body.app .cal-head{margin-bottom:.1rem}
body.app .cal-head button{width:34px;height:34px;font-size:.95rem;flex:none}
body.app .cal-head b{font-size:.9rem}
body.app .booking{padding:.55rem 1rem;gap:.2rem 1.4rem;margin:0}
body.app .chips span{padding:.28rem .8rem}
body.app .consent{margin-bottom:.1rem;line-height:1.35}
body.app .booking textarea{rows:1}

/* ---- accesso modelli nell'header, pagine legali ---- */
.nav-login{display:inline-flex;align-items:center;gap:.4rem;color:var(--text);text-decoration:none;font-size:.9rem;padding:.3rem .2rem;border-radius:999px;position:relative}
.nav-login:hover{color:var(--gold)}
.nav-login .nl-t{display:none}
@media(min-width:960px){.nav-login .nl-t{display:inline}}
.nav-login.in{color:var(--gold)}
.nav-login.in::after{content:"";position:absolute;top:2px;right:-1px;width:8px;height:8px;border-radius:50%;background:#6fd16f;border:2px solid var(--ink)}
.legal{max-width:780px;padding-top:3rem}
.legal h1{font-size:clamp(2rem,5vw,3rem)}
.legal h1::after{content:"";display:block;width:56px;height:3px;background:var(--gold);margin-top:.5rem}
.legal h2{font-size:1.35rem;margin:2.2rem 0 .6rem}.legal h2::after{display:none}
.legal h3{font-size:1.05rem;font-weight:700;margin:1.2rem 0 .3rem}
.legal p,.legal li{color:var(--grey)}
.legal a{color:var(--gold)}
.legal .upd{color:var(--muted);font-size:.9rem}
.legal .lg:empty::before{content:"(da completare)";color:#e8a;font-style:italic}
.legal code{background:var(--card);padding:.1rem .4rem;border-radius:4px}
.tbl{overflow-x:auto;margin:1rem 0}
.tbl table{border-collapse:collapse;width:100%;font-size:.92rem}
.tbl th,.tbl td{border:1px solid var(--line);padding:.6rem .8rem;text-align:left;vertical-align:top;color:var(--grey)}
.tbl th{color:var(--text);background:var(--card)}

.prefs{display:flex;gap:.7rem;align-items:center;cursor:pointer;color:var(--text)}
.prefs input{width:1.15rem;height:1.15rem;accent-color:var(--gold);flex:none}

/* ---- cubo 3D rotante (pagina 3D) ---- */
.cubewrap{justify-self:center;width:260px;height:260px;display:grid;place-items:center;perspective:900px}
.cube3d{position:relative;width:150px;height:150px;transform-style:preserve-3d;animation:cubespin 16s linear infinite}
.cube{position:absolute;inset:0;transform-style:preserve-3d}
.cube.c2{transform:scale(.55);animation:cubeinner 9s linear infinite}
.cube .f{position:absolute;inset:0;border:1.5px solid var(--gold);background:rgba(246,190,34,.04);box-shadow:0 0 18px rgba(246,190,34,.12) inset}
.cube.c2 .f{border-color:rgba(246,190,34,.75);background:rgba(246,190,34,.08)}
.f1{transform:rotateY(0deg) translateZ(75px)}.f2{transform:rotateY(90deg) translateZ(75px)}
.f3{transform:rotateY(180deg) translateZ(75px)}.f4{transform:rotateY(-90deg) translateZ(75px)}
.f5{transform:rotateX(90deg) translateZ(75px)}.f6{transform:rotateX(-90deg) translateZ(75px)}
@keyframes cubespin{from{transform:rotateX(-24deg) rotateY(0deg)}to{transform:rotateX(-24deg) rotateY(360deg)}}
@keyframes cubeinner{from{transform:scale(.55) rotateX(0deg) rotateZ(0deg)}to{transform:scale(.55) rotateX(360deg) rotateZ(360deg)}}
@media(prefers-reduced-motion:reduce){.cube3d,.cube.c2{animation:none}.cube3d{transform:rotateX(-24deg) rotateY(35deg)}}
@media(max-width:760px){.cubewrap{width:200px;height:200px;transform:scale(.8)}}

/* menù più stretto sugli schermi piccoli: "Chi sono" resta raggiungibile dalla home */
@media(max-width:700px){.nav nav a[href="/#chi"]{display:none}.nav nav{gap:.6rem}.nav nav a{font-size:.78rem}}

/* ultimo passo della candidatura: più compatto (calendario + consensi) */
body.app .booking textarea{height:2.1rem;min-height:0;padding:.3rem .1rem;font-size:.9rem}
body.app .booking>label{margin:0}
body.app .consent{font-size:.72rem;line-height:1.3;margin:0}
body.app .consent input{margin-top:.15rem}
body.app .chips{gap:.35rem}
body.app .checks .q{margin-bottom:.25rem}

/* ---- area modelli: profilo, galleria, servizi, liberatorie ---- */
.acc.wide,#accbox.wide{max-width:none}
.acc:has(.wide){max-width:980px}
.ahead{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.ahead h2{margin:0;font-size:1.6rem}.ahead h2::after{display:none}
.atabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.2rem}
.atabs button{position:relative;font:inherit;font-size:.9rem;padding:.5rem 1rem;border-radius:999px;border:1px solid var(--slate);background:transparent;color:var(--text);cursor:pointer}
.atabs button:hover{border-color:var(--gold);color:var(--gold)}
.atabs button.on{background:var(--gold);color:var(--black);border-color:var(--gold);font-weight:700}
.bubble{display:inline-block;margin-left:.45rem;min-width:1.2rem;height:1.2rem;line-height:1.2rem;border-radius:999px;background:var(--err);color:#fff;font-size:.72rem;text-align:center;font-weight:700}
.pform .hint2{margin:0 0 1rem}
.ro{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;margin-bottom:1rem;font-size:.9rem}
.ro span{color:var(--muted)}
.psec{display:block;border:0;margin:0 0 1.4rem;padding:0;min-width:0}
.psec legend{font-size:1.05rem;font-weight:700;color:var(--gold);padding:0;margin-bottom:.6rem}
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem 1.2rem}
.pf{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pf.full{grid-column:1/-1}
.pf input:not([type=checkbox]):not([type=radio]),.pf select,.pf textarea{display:block;width:100%;margin-top:.2rem;padding:.5rem .1rem;background:transparent;color:var(--text);border:0;border-bottom:1px solid var(--slate);font:inherit;font-size:1rem;text-transform:none;letter-spacing:0}
.pf select option{background:var(--ink)}
.pf textarea{resize:vertical;border:1px solid var(--slate);border-radius:8px;padding:.5rem;margin-top:.3rem}
.pf input:focus,.pf select:focus,.pf textarea:focus{outline:0;border-color:var(--gold)}
.pf .q,.q{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.pills{display:flex;flex-wrap:wrap;gap:.4rem}
.pill{display:inline-flex;margin:0;cursor:pointer;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--text)}
.pill input{position:absolute;opacity:0;pointer-events:none}
.pill span{padding:.4rem .9rem;border:1px solid var(--slate);border-radius:999px}
.pill input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:700}
.pill input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.priv .lock{background:rgba(246,190,34,.08);border:1px solid var(--gold-d);border-radius:8px;padding:.7rem 1rem;color:var(--text)}
.upl{display:inline-block;cursor:pointer;margin:.6rem 0}
.upl input{position:absolute;opacity:0;width:1px;height:1px}
.upl:focus-within .btn{outline:2px solid var(--gold);outline-offset:2px}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:1rem}
.acell{position:relative;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:var(--card)}
.acell .zoom{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.acell img{width:100%;height:100%;object-fit:cover}
.acell .by{position:absolute;left:6px;bottom:6px;background:var(--gold);color:var(--black);font-size:.68rem;font-weight:700;padding:.1rem .5rem;border-radius:999px}
.acell .xdel{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;cursor:pointer}
.acell .xdel:hover{background:var(--err)}
.lightbox{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.93);display:flex;align-items:center;justify-content:center;padding:1rem;cursor:zoom-out}
.lightbox img{max-width:96vw;max-height:94vh;object-fit:contain}
.svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:1rem}
.svcard{background:var(--ink);border:1px solid var(--line);border-radius:10px;padding:1.1rem}
.svcard h3{font-size:1.2rem;font-weight:600;margin:0 0 .3rem}
.svcard p{color:var(--muted);margin:0 0 .8rem}
.svcard textarea{display:block;width:100%;margin:.6rem 0;padding:.6rem;background:var(--card);color:var(--text);border:1px solid var(--slate);border-radius:8px;font:inherit}
.steps{margin:.6rem 0 0;padding-left:1.2rem;color:var(--grey)}
.steps li{margin:.3rem 0}
.rel .relhead{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.8rem}
.rel h3{font-size:1.15rem;font-weight:600;margin:0}.rel small{color:var(--muted)}
.st-emessa{border-color:var(--gold-d);color:var(--gold)}.st-caricata{border-color:#6aa0e0;color:#8ab8f0}.st-approvata{border-color:#5a9a5a;color:#8fd08f}.st-rifiutata{border-color:var(--err);color:var(--err)}
.st-presaincarico{border-color:#6aa0e0;color:#8ab8f0}.st-completata{border-color:#5a9a5a;color:#8fd08f}
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%);background:var(--card);border:1px solid var(--gold-d);color:var(--text);padding:.7rem 1.2rem;border-radius:999px;z-index:90;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.rel .row2{margin-bottom:.4rem}

/* passi con campi di larghezza diversa (6 colonne) */
body.app fieldset.g6.on{grid-template-columns:repeat(6,minmax(0,1fr))}
body.app fieldset.g6 .s2{grid-column:span 2}
body.app fieldset.g6 .s3{grid-column:span 3}
body.app fieldset.g6 .s4{grid-column:span 4}
body.app fieldset.g6 .s6{grid-column:1/-1}
@media(max-width:700px){body.app fieldset.g6.on{grid-template-columns:1fr}body.app fieldset.g6 .s2,body.app fieldset.g6 .s3,body.app fieldset.g6 .s4,body.app fieldset.g6 .s6{grid-column:1/-1}}

/* ---- campi sempre scuri, testo chiaro: anche compilati, selezionati o riempiti dal browser ---- */
:root{color-scheme:dark;--fbg:var(--ink)}
.cform,.card2{--fbg:var(--card)}
::selection{background:var(--gold);color:var(--black)}
input,textarea,select{color:var(--text);caret-color:var(--gold)}
input::placeholder,textarea::placeholder{color:#7d8183;opacity:1}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,
textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:active,
select:-webkit-autofill,select:-webkit-autofill:hover,select:-webkit-autofill:focus,select:-webkit-autofill:active{
  /* lo sfondo azzurro di Chrome (anche nell'anteprima del suggerimento) viene ritagliato dentro le lettere e coperto dal colore del campo */
  -webkit-background-clip:text!important;background-clip:text!important;
  -webkit-box-shadow:inset 0 0 0 1000px var(--fbg)!important;box-shadow:inset 0 0 0 1000px var(--fbg)!important;
  -webkit-text-fill-color:var(--text)!important;color:var(--text)!important;caret-color:var(--gold);
  transition:background-color 600000s 0s,color 600000s 0s!important}
input:autofill,textarea:autofill,select:autofill{background-color:var(--fbg)!important;color:var(--text)!important;filter:none}
select,select option{background-color:var(--fbg);color:var(--text)}
input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.2);cursor:pointer}

/* pulsanti "carica file": il campo nascosto resta dentro al pulsante e non allarga la pagina */
.upl{position:relative;display:inline-block;overflow:hidden;border-radius:999px;vertical-align:middle}
.upl input[type=file]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:0}

.motivi ul{margin:.3rem 0 0;padding-left:1.2rem}
.motivi li{margin:.15rem 0}

/* ---- shooting: scelta dei provini e foto consegnate ---- */
.pickcount{margin:.2rem 0 .8rem;color:var(--grey)}.pickcount b{color:var(--gold);font-size:1.3rem}.pickcount .lim{color:var(--gold)}
.pick .chk{position:absolute;right:8px;top:8px;width:34px;height:34px;border-radius:50%;border:2px solid #fff;background:rgba(0,0,0,.45);color:transparent;font-size:1.1rem;cursor:pointer;display:grid;place-items:center}
.pick.on{outline:4px solid var(--gold);outline-offset:-4px}
.pick.on .chk{background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:800}
.dlbtn{position:absolute;right:8px;bottom:8px;width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--black);display:grid;place-items:center;text-decoration:none;font-weight:800}
.bigv{flex-direction:column;gap:.8rem;cursor:default}
.bigv img{max-width:94vw;max-height:78vh}
.bigcap{display:flex;gap:1rem;align-items:center;color:var(--grey)}
.bign{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:64px;border:0;border-radius:10px;background:rgba(23,20,21,.75);color:#fff;font-size:1.3rem;cursor:pointer}
.bign:hover,.bigc:hover{background:var(--gold);color:var(--black)}.bigp{left:10px}.bigx{right:10px}
.bigc{position:absolute;top:12px;right:14px;width:42px;height:42px;border-radius:50%;border:1px solid var(--slate);background:rgba(23,20,21,.85);color:#fff;cursor:pointer}
.shoot .row2{margin:.4rem 0 .8rem}

/* barra di scorrimento verticale sempre presente: il sito non "salta" cambiando pagina */
html{overflow-y:scroll;scrollbar-color:#5a6362 #171415}

/* fotocamera: i pulsanti "Scatta" si vedono solo su telefoni e tablet (dispositivi touch) */
.only-touch{display:none!important}
@media (hover:none) and (pointer:coarse){.only-touch{display:inline-flex!important}.camrow.only-touch{display:flex!important}.upl.only-touch{display:inline-block!important}}
.camrow{gap:.6rem;flex-wrap:wrap;margin:.2rem 0 .4rem}
.previews .pv{margin:0;text-align:center;position:relative}
.previews .pv figcaption{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.15rem}

.card2.danger{border-color:#7a3b34}
.btn.danger,.btn2.danger.btn{background:transparent;color:var(--err);border:1px solid var(--err)}
.btn.danger:hover{background:var(--err);color:#fff}

/* ---- menù: sui telefoni diventa a tendina (nessun elemento esce più dallo schermo) ---- */
.nav .links{display:contents}
.nav-toggle{display:none}
@media(max-width:880px){
  .nav{padding:.5rem .8rem}
  .nav nav{gap:.4rem}
  .nav .links{display:none}
  .nav.open .links{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:rgba(23,20,21,.985);border-bottom:1px solid var(--line);padding:.3rem 1.1rem 1rem;box-shadow:0 18px 30px rgba(0,0,0,.5);z-index:25}
  .nav.open .links a{padding:.95rem .2rem;font-size:1.1rem;border-bottom:1px solid var(--line)}
  .nav.open .links a:last-child{border-bottom:0}
  .nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 11px;background:none;border:1px solid var(--slate);border-radius:12px;cursor:pointer}
  .nav-toggle span{display:block;height:2px;background:var(--text);border-radius:2px;transition:transform .2s,opacity .2s}
  .nav.open .nav-toggle{border-color:var(--gold)}
  .nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav.open .nav-toggle span:nth-child(2){opacity:0}
  .nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-login{min-width:44px;min-height:44px;justify-content:center}
  .nav-login .nl-t{display:none}
  .nav .btn-sm{padding:.7rem 1rem;min-height:44px;display:inline-flex;align-items:center}
}

.shoot .relhead{align-items:center;user-select:none}.shoot .relhead:focus-visible{outline:2px solid #f5c031;outline-offset:4px;border-radius:6px}.shoot .relhead .chev{color:#f5c031;font-size:1.1rem;display:inline-block;width:1.2rem}.shoot .relhead>div{flex:1}
/* mobile: bersagli del tocco più ampi */
footer a{display:inline-block;padding:.5rem .4rem}
@media(max-width:700px){.xdel{width:40px;height:40px;font-size:1.05rem}}

.mats{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}
.mats li{background:var(--card);border:1px solid var(--line,#3a3a3c);border-radius:14px;padding:.9rem 1rem}
.mats b{display:block;color:var(--gold);font-size:1.1rem;margin-bottom:.2rem}.mats span{color:var(--muted);font-size:.9rem;line-height:1.4}
#matbox{margin:.2rem 0 1rem}#matbox .lbl{margin:0 0 .5rem;color:var(--muted);font-size:.9rem}
.timenote{margin:1.2rem 0 0;padding:.9rem 1.1rem;border-left:3px solid var(--gold);background:var(--card);border-radius:0 12px 12px 0;color:var(--text);line-height:1.5}
.flow .timenote{font-size:1rem}.flow .timenote b{display:inline;font-size:inherit;font-weight:800;margin:0;color:inherit}

.cform .lbl{margin:.2rem 0 .5rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.qchips{margin-bottom:1.2rem}

.g3grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.2rem}
.g3card{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.g3open{display:block;width:100%;text-align:left;background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}
.g3open:hover .g3cover,.g3open:focus-visible .g3cover{filter:brightness(1.12)}.g3open:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.g3cover{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:#1b1819;transition:filter .2s}.g3cover img{width:100%;height:100%;object-fit:cover;display:block}.g3cover svg{width:34%;height:auto}
.g3badge{position:absolute;left:.6rem;top:.6rem;background:#141213cc;border:1px solid var(--gold);color:var(--gold);border-radius:999px;padding:.15rem .6rem;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.g3body{display:block;padding:.9rem 1rem 1rem}.g3body b{display:block;font-size:1.1rem;margin-bottom:.3rem}.g3body span{display:block;color:var(--muted);font-size:.9rem;line-height:1.4}.g3body small{display:block;margin-top:.6rem;color:var(--gold);font-weight:700}

.optcards{display:grid;gap:.6rem;margin:.2rem 0 1rem}.opt{display:block;margin:0!important;cursor:pointer}.opt input{position:absolute;opacity:0;pointer-events:none}
.opt span{display:block;padding:.8rem 1rem;border:1px solid var(--slate);border-radius:12px;background:var(--card);transition:border-color .15s,background .15s}.opt b{display:block;color:var(--text);font-size:1rem;letter-spacing:0;text-transform:none}
.opt small{display:block;margin-top:.15rem;color:var(--muted);font-size:.85rem;letter-spacing:0;text-transform:none;font-weight:400}.opt:hover span{border-color:var(--gold-d,#b98a14)}
.opt input:checked+span{border-color:var(--gold);background:#2a2415;box-shadow:inset 0 0 0 1px var(--gold)}.opt input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.hint3{margin:.4rem 0 .8rem;color:var(--muted);font-size:.88rem;line-height:1.45}.hint3:empty{display:none}.hint3 b{color:var(--gold)}#r3note{padding:.6rem .9rem;border-left:3px solid var(--gold);background:var(--card);border-radius:0 10px 10px 0;color:var(--text)}

/* pagina personale dell'ordine 3D */
.ord{max-width:900px}.ordcard{margin:1.2rem 0}.ordtable{overflow-x:auto}.ordtable table{width:100%;border-collapse:collapse}.ordtable th,.ordtable td{padding:.55rem .4rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.ordtable .num{text-align:right;white-space:nowrap}.ordtable small{display:block;color:var(--muted);font-size:.85rem}
.ordtot{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;margin:1rem 0 .6rem;max-width:340px;margin-left:auto}.ordtot dd{margin:0;text-align:right}.ordtot .big{font-size:1.2rem;font-weight:800;color:var(--gold)}
.ordok{padding:.7rem 1rem;border:1px solid #3d6b45;background:#18271b;border-radius:10px}.ordko{padding:.7rem 1rem;border:1px solid #7a4040;background:#2a1a1a;border-radius:10px}.ordask{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}.ordask .row2{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}
.pbarwrap{display:flex;align-items:center;gap:.9rem;margin:.6rem 0}.pbar{flex:1;height:16px;border-radius:999px;background:#1f1c1d;border:1px solid var(--line);overflow:hidden}.pbar i{display:block;height:100%;background:linear-gradient(90deg,#d49a0a,#f5c031);border-radius:999px;transition:width .6s ease}.ppct{font-size:1.2rem;min-width:3.2rem;text-align:right}.pcur{margin:.2rem 0 .8rem}
.psteps{list-style:none;margin:1rem 0 0;padding:0}.psteps li{display:flex;gap:.9rem;padding:.55rem 0;position:relative}.psteps li:not(:last-child)::before{content:"";position:absolute;left:11px;top:2rem;bottom:-.4rem;width:2px;background:var(--line)}
.pdot{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--slate);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;color:#141213;background:#141213}.psteps li.ps-done .pdot{background:var(--gold);border-color:var(--gold)}.psteps li.ps-doing .pdot{border-color:var(--gold);box-shadow:0 0 0 4px #f5c03133;animation:pp 1.6s ease-in-out infinite}
.psteps li.ps-todo b{color:var(--muted);font-weight:600}.psteps small{display:block;color:var(--muted);font-size:.85rem}@keyframes pp{50%{box-shadow:0 0 0 7px #f5c03111}}@media(prefers-reduced-motion:reduce){.psteps li.ps-doing .pdot{animation:none}}
a.g3open{text-decoration:none;color:inherit}
.pj h1{margin-bottom:.6rem}.pj h2{font-size:1.15rem;margin:1.6rem 0 .4rem;color:var(--gold)}.pj dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1.2rem}.pj dt{color:var(--muted)}.pj dd{margin:0;font-weight:600}.pjinfo p{max-width:70ch;line-height:1.6}

.faq3d details{border-bottom:1px solid var(--line);padding:.8rem 0}.faq3d summary{cursor:pointer;font-weight:700;font-size:1.02rem}.faq3d details p{margin:.6rem 0 0;color:var(--muted);line-height:1.6;max-width:70ch}

.grid img{width:100%;height:auto}
