@font-face{font-family:Bricolage;src:url('/assets/media/bricolage-grotesque-normal-800-latin.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:Bricolage;src:url('/assets/media/bricolage-grotesque-normal-700-latin.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Instrument;src:url('/assets/media/instrument-sans-normal-400-latin.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Instrument;src:url('/assets/media/instrument-sans-normal-600-latin.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--ink:#06141B;--paper:#CCD0CF;--muted:#253745;--border:#9BA8AB;--blue:#052659;--accent:#7DA0CA;--pale:#C1E8FF;--night:#021024;--slate:#11212D;--steel:#4A5C6A;--mid:#5483B3;--line:rgba(6,20,27,.25);--scroll:0;scroll-behavior:smooth;scroll-padding-top:105px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Instrument,Arial,sans-serif;font-size:17px;line-height:1.55}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit}img{display:block;max-width:100%;height:auto}figure{margin:0}p{margin:0 0 20px}h1,h2,h3{font-family:Bricolage,Arial,sans-serif;line-height:1.04;letter-spacing:-.045em;margin:0 0 22px;font-weight:800}h1,h2{text-transform:uppercase}h1{font-size:clamp(54px,7.4vw,112px)}h2{font-size:clamp(36px,4.6vw,68px)}h3{font-size:26px}em{font-style:normal;color:var(--blue)}::selection{background:var(--blue);color:var(--pale)}:focus-visible{outline:3px solid var(--mid);outline-offset:5px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}.wrap{width:min(1280px,calc(100% - 128px));margin-inline:auto}.section{padding-block:95px}.top-tight{padding-top:20px}.eyebrow{font-family:Bricolage,Arial,sans-serif;font-weight:700;font-size:12px;line-height:1.5;letter-spacing:.13em;text-transform:uppercase;margin-bottom:20px}.intro{font-size:22px;line-height:1.55;max-width:760px}.caption{font-size:13px;color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;border:2px solid var(--ink);border-radius:40px;background:var(--ink);color:var(--pale);font-family:Bricolage,Arial,sans-serif;font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.06em;line-height:1.35;text-decoration:none;padding:17px 24px;transition:transform .18s,background .18s}.button:hover{transform:translateY(-3px);background:var(--blue)}.button.outline{background:transparent;color:var(--ink)}.button.outline:hover{background:var(--accent)}.button.light{background:var(--pale);color:var(--night);border-color:var(--pale)}.button span{font-size:20px}.form-actions{display:flex;flex-wrap:wrap;gap:12px}.skip-link{position:fixed;left:10px;top:-80px;z-index:100;background:var(--pale);color:var(--ink);padding:15px}.skip-link:focus{top:10px}
.site-header{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line)}.nav-wrap{max-width:1600px;min-height:82px;margin:auto;padding:13px 32px;display:flex;align-items:center;gap:28px;justify-content:space-between}.brand{display:inline-block;flex-shrink:0;max-width:235px}.brand img{width:235px;height:auto}.site-header nav{display:flex;align-items:center;gap:24px}.site-header nav a{text-transform:uppercase;font-family:Bricolage,sans-serif;font-weight:700;font-size:12px;letter-spacing:.04em;text-decoration:none;white-space:nowrap}.site-header nav a:hover,.site-header nav a[aria-current]{box-shadow:0 2px 0 var(--blue)}.header-actions{display:flex;align-items:center;gap:7px}.lang{font-size:12px;font-weight:600;text-decoration:none}.lang.active{color:var(--blue);text-decoration:underline}.palette-bar{height:5px;background:linear-gradient(90deg,#06141B 0 20%,#052659 20% 40%,#5483B3 40% 60%,#7DA0CA 60% 80%,#C1E8FF 80%)}#theme-toggle{margin-left:12px;min-width:85px;border:1.5px solid var(--ink);border-radius:40px;background:transparent;display:flex;gap:8px;align-items:center;padding:7px 9px;box-shadow:3px 3px 0 var(--ink);font-size:15px}.toggle-dot{width:18px;height:18px;border:2px solid var(--ink);border-radius:50%;background:var(--accent);transition:transform .3s}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:5%;align-items:center;padding-top:75px;padding-bottom:85px}.hero h1{font-size:clamp(58px,7.7vw,116px);line-height:.94;letter-spacing:-.055em;margin-bottom:30px}.hero-desc{font-size:19px;max-width:520px}.hero .eyebrow{max-width:420px}.hero-visual{position:relative;margin-top:45px}.hero-photo{border:2px solid var(--ink);transform:rotate(2deg);background:var(--ink);box-shadow:14px 14px 0 var(--accent)}.hero-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}.hero-photo figcaption{color:var(--pale);font-size:11px;letter-spacing:.04em;font-weight:600;padding:14px 18px;display:flex;justify-content:space-between;gap:12px}.round-stamp{display:grid;place-content:center;text-align:center;position:absolute;z-index:2;top:-55px;left:-45px;width:122px;height:122px;background:var(--blue);color:var(--pale);font-size:12px;line-height:1.8;letter-spacing:.05em;border-radius:50%;transform:rotate(-15deg);border:2px solid var(--paper);animation:stamp 12s ease-in-out infinite}.hero-note{display:block;margin:30px 0 0;text-align:right;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.marquee{overflow:hidden;background:var(--blue);color:var(--pale);padding:18px 0;transform:rotate(-1deg);width:100%;font-family:Bricolage,sans-serif;font-weight:800;font-size:30px;text-transform:uppercase}.marquee>div{display:flex;width:max-content;animation:marquee 65s linear infinite}.marquee span{white-space:nowrap;padding:0 25px}.marquee i{font-style:normal;padding-left:35px;color:var(--accent)}.section-heading{display:flex;gap:30px;align-items:flex-end;justify-content:space-between;margin-bottom:35px}.section-heading h2{margin:0}.section-heading .button{flex-shrink:0;margin-bottom:7px}.section-intro{max-width:650px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.service-card{border:1.5px solid var(--ink);text-decoration:none;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;background:var(--paper)}.service-card:hover{transform:translateY(-6px);box-shadow:7px 7px 0 var(--accent)}.service-card img{aspect-ratio:1.7;object-fit:cover;width:100%;border-bottom:1.5px solid var(--ink)}.service-card>div{padding:25px;display:flex;flex-direction:column;flex:1}.service-number{font-size:13px;letter-spacing:.07em;color:var(--blue);margin-bottom:18px;font-weight:600}.service-card h3{font-size:27px}.service-card p{font-size:16px;color:var(--muted);flex:1}.text-link{font-family:Bricolage,sans-serif;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.07em}.extra-services{margin-top:25px;display:grid;grid-template-columns:1fr 1fr}.extra-services a{border-bottom:1px solid var(--line);padding:22px 20px;display:flex;justify-content:space-between;text-decoration:none;font-size:20px;font-weight:600}.extra-services a:hover{background:var(--accent)}.facts{background:var(--ink);color:var(--pale);padding:45px 0}.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.facts-grid>div{border-left:2px solid var(--mid);padding-left:25px}.facts strong{display:block;font-family:Bricolage,sans-serif;font-size:70px;line-height:1.1}.facts span{font-size:14px;color:var(--pale)}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.process-grid article{border-top:1px solid var(--ink);padding-top:18px}.step-number{font-family:Bricolage,sans-serif;color:var(--blue);font-size:42px;font-weight:800}.process-grid h3{font-size:24px;margin-top:15px}.process-grid p{font-size:16px;color:var(--muted)}.family-strip{background:var(--accent);padding:65px 0}.family-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;align-items:center}.family-grid>img{aspect-ratio:4/5;object-fit:cover;border:2px solid var(--ink);transform:rotate(-2deg);box-shadow:12px 12px 0 var(--blue)}.family-grid p{max-width:600px}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 25px}.project-card{display:block;width:100%;text-align:left;border:1.5px solid var(--ink);background:var(--paper);padding:0;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-5px);box-shadow:6px 6px 0 var(--accent)}.project-media{display:block;overflow:hidden;border-bottom:1.5px solid var(--ink)}.project-card img{aspect-ratio:1.25;object-fit:cover;width:100%}.project-caption{padding:20px;display:block;position:relative}.project-caption strong{display:block;font-family:Bricolage,sans-serif;font-size:21px;line-height:1.2;font-weight:700;letter-spacing:-.02em;padding-right:15px}.project-caption>.eyebrow{display:block;font-size:10px;margin-bottom:10px;color:var(--blue)}.project-caption>span:last-child{position:absolute;right:13px;bottom:18px}.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:22px}.filters button{padding:10px 17px;font-size:13px;border:1px solid var(--ink);border-radius:25px;background:transparent}.filters button[aria-pressed=true]{background:var(--ink);color:var(--pale)}.load-more{margin:40px auto 60px;display:flex}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-bottom:35px}.comparison h3{font-size:24px}.compare-frame{position:relative;aspect-ratio:1.5;background:var(--ink);border:1.5px solid var(--ink);overflow:hidden}.compare-frame>img{width:100%;height:100%;object-fit:contain}.compare-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--split)) 0 0);background:var(--ink)}.compare-before img{width:100%;height:100%;object-fit:contain}.compare-tag{position:absolute;top:12px;background:var(--pale);color:var(--night);padding:5px 9px;font-size:10px;text-transform:uppercase;font-weight:600;max-width:42%;border-radius:20px}.compare-tag.first{left:12px}.compare-tag.last{right:12px}.compare-line{position:absolute;top:0;bottom:0;left:var(--split);border-left:2px solid var(--pale);color:var(--pale);display:grid;align-items:center;font-size:24px;text-shadow:1px 1px 3px #06141B;pointer-events:none}.compare-frame input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:ew-resize}.compare-frame:focus-within{outline:3px solid var(--mid);outline-offset:4px}.comparison .caption{margin-top:10px}.clients{border-top:1px solid var(--line)}.clients>div{display:flex;flex-wrap:wrap;align-items:center;gap:28px 40px;margin:40px 0}.clients>div span{font-family:Bricolage,sans-serif;font-weight:800;font-size:clamp(18px,2.3vw,30px);letter-spacing:-.035em}.cta{background:var(--blue);color:var(--pale);padding:80px 0}.cta em{color:var(--accent)}.cta-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;align-items:center}.big-phone{display:block;font-family:Bricolage,sans-serif;font-weight:800;font-size:clamp(30px,4vw,54px);line-height:1.4;margin:22px 0;text-decoration:none}.cta p{font-size:16px;max-width:500px}.page-heading{padding-top:75px;padding-bottom:45px}.page-heading .eyebrow{margin-bottom:26px}.page-heading .intro{margin-top:30px}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.service-description .button{margin:15px 0 25px}.detail-photo{width:100%;max-height:660px;object-fit:cover;border:1.5px solid var(--ink)}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;align-items:center}.about-grid figcaption{font-size:13px;margin-top:10px}.people-grid{display:grid;grid-template-columns:1fr 1fr .8fr;gap:30px;align-items:center}.people-grid article{border-top:2px solid var(--ink);padding:24px 0}.cartoon-family{max-width:270px;justify-self:end}.cartoon-family img{border-radius:10px}.zones p{max-width:800px}.zone-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.zone-list span{border:1px solid var(--ink);border-radius:30px;padding:12px 22px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.contact-grid article{padding:30px;border:1.5px solid var(--ink)}.contact-grid p:last-child{margin:12px 0 0;font-size:14px}.contact-value{font-family:Bricolage,sans-serif;font-weight:700;font-size:30px;text-decoration:none;overflow-wrap:anywhere}.contact-value.email{font-size:24px}.visit{padding-block:75px;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;border-bottom:1px solid var(--line)}.hours{border:2px solid var(--ink);padding:35px;align-self:center;box-shadow:10px 10px 0 var(--accent)}.hours>span{font-size:13px;text-transform:uppercase;letter-spacing:.08em}.hours strong{display:block;font-family:Bricolage,sans-serif;font-weight:800;font-size:48px;margin:20px 0;line-height:1.15}.hours p{font-size:14px;margin:0}.quote-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.quote-grid>div>p{max-width:420px}.quote-summary{border:1px dashed var(--ink);padding:25px;margin-top:35px;max-width:420px}.quote-summary p{margin:0;white-space:pre-line;font-size:15px}form{border:1.5px solid var(--ink);padding:30px;background:var(--paper)}form label{display:flex;flex-direction:column;gap:7px;font-family:Bricolage,sans-serif;font-weight:700;font-size:12px;letter-spacing:.03em;margin-bottom:20px}input,textarea,select{width:100%;padding:12px;border:1px solid var(--border);border-bottom:1.5px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font-family:Instrument,sans-serif;font-weight:400;font-size:16px;letter-spacing:normal}textarea{resize:vertical}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.file-label{border:1px dashed var(--ink);padding:17px}.file-label input{border:0;padding:8px 0;font-size:13px}.photo-previews{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.photo-previews img{width:80px;height:80px;object-fit:cover}.form-explanation{font-size:13px;color:var(--muted)}#quote-status,#project-status{font-size:14px;margin-top:18px}#quote-status.error,#project-status.error{font-weight:600}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 30px}.video-grid video{width:100%;max-height:440px;aspect-ratio:1.4;background:var(--ink);border:1.5px solid var(--ink);object-fit:contain}.video-grid figcaption{font-family:Bricolage,sans-serif;font-weight:700;font-size:22px;margin-top:12px}.prose{max-width:850px}.prose h3{margin-top:45px}.prose h2{font-size:38px}.sitemap{display:grid;grid-template-columns:1fr 1fr;gap:12px 40px}.sitemap a{padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:20px}
footer{padding:65px 0 20px;border-top:1px solid var(--line);background:var(--ink);color:var(--pale)}footer .brand{background:var(--paper);padding:10px;border-radius:3px;margin-bottom:18px}footer .brand img{width:205px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr .6fr;gap:30px}footer h3{text-transform:uppercase;letter-spacing:.08em;font-size:13px;margin-bottom:18px}footer p,footer a{font-size:14px}footer .caption{color:var(--border)}.footer-grid>div>a:not(.brand){display:block;margin-bottom:8px;overflow-wrap:anywhere}.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #4A5C6A;margin-top:40px;padding-top:20px;font-size:11px}.footer-bottom>div{display:flex;gap:18px}.footer-bottom a{font-size:11px}.mascot{position:fixed;z-index:18;pointer-events:none;width:70px;top:calc(68% + var(--mascot-y,0px));transition:top .1s linear;filter:drop-shadow(0 5px 3px #06141B44)}.mascot img{width:100%;height:145px;object-fit:contain}.mascot-left{left:-13px;transform:rotate(calc(-8deg + var(--mascot-rot,0deg)))}.mascot-right{right:-13px;transform:rotate(calc(8deg - var(--mascot-rot,0deg)))}.mascot span{display:block;text-align:center;font-family:Bricolage,sans-serif;font-weight:800;font-size:8px;letter-spacing:.03em;background:var(--paper);padding:3px;color:var(--ink)}
dialog{border:0;max-width:1150px;width:94vw;max-height:94dvh;padding:25px;background:var(--night);color:var(--pale);overflow:auto}dialog::backdrop{background:#021024ed}.lightbox-close{position:absolute;right:12px;top:5px;background:transparent;border:0;color:var(--pale);font-size:35px;z-index:2}.lightbox-stage{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 0}/* Finestra delle foto a misura fissa: frecce e testo restano sempre nello stesso punto, qualunque foto o descrizione. */
#lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto;height:min(94dvh,960px);overflow:hidden}
#lightbox .lightbox-stage{min-height:0;height:100%}
#lightbox .lightbox-stage img{width:calc(100% - 90px);height:100%;max-height:none;object-fit:contain}
#lightbox .lightbox-meta{width:100%;height:118px}
#lightbox #lightbox-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#lightbox #lightbox-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
@media (max-width:640px){#lightbox .lightbox-stage img{width:calc(100% - 70px)}#lightbox .lightbox-meta{height:132px}#lightbox #lightbox-description{-webkit-line-clamp:3;line-clamp:3}}
.lightbox-stage img{max-width:calc(100% - 90px);max-height:65dvh;object-fit:contain;transition:opacity .2s}
.lightbox-stage img.is-loading{opacity:.35}.lightbox-stage button{background:transparent;border:1px solid var(--steel);border-radius:50%;color:var(--pale);width:40px;height:40px;flex-shrink:0}.lightbox-meta{max-width:800px;margin:auto}.lightbox-meta p{margin-bottom:7px}.lightbox-meta p:first-child{font-family:Bricolage,sans-serif;font-weight:700;font-size:23px}.lightbox-meta p:nth-child(2){font-size:14px;color:var(--border)}#lightbox-counter{font-size:12px}.admin-toolbar{display:flex;align-items:center;gap:25px}.admin-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:45px;align-items:start}.admin-grid h2{font-size:30px}.admin-grid form{position:sticky;top:110px}.admin-list-item{border-top:1px solid var(--border);padding:17px 0;display:grid;grid-template-columns:65px 1fr;gap:15px}.admin-list-item img{width:65px;height:65px;object-fit:cover}.admin-list-item h3{font-size:17px;margin:0 0 6px}.admin-list-item button{font-size:12px;background:transparent;border:1px solid var(--ink);padding:5px 10px;margin:5px 6px 0 0;border-radius:20px}.admin-list-item span{font-size:11px}.admin-notes{border-top:2px solid var(--ink)}.admin-notes h2{font-size:35px}.admin-notes li{margin-bottom:12px}.checkbox{flex-direction:row;align-items:start}.checkbox input{width:20px;flex-shrink:0}.admin-grid input[type=search]{margin-bottom:25px}
.night{color-scheme:dark;--paper:#021024;--ink:#C1E8FF;--muted:#9BA8AB;--blue:#7DA0CA;--border:#4A5C6A;--line:rgba(193,232,255,.25)}.night body{background:var(--paper);color:var(--ink)}.night .hero-photo{border-color:var(--mid);background:#11212D;box-shadow:14px 14px 0 #052659}.night .hero-photo figcaption{color:var(--pale)}.night .hero h1 em{text-shadow:0 0 25px #5483B3}.night .round-stamp{color:var(--night);background:var(--pale)}.night .marquee{background:#052659}.night .button{background:var(--pale);color:#021024;border-color:var(--pale)}.night .button.outline{background:transparent;color:var(--pale)}.night .button.outline:hover{background:#052659}.night .service-card,.night .project-card,.night form{background:#11212D}.night .service-card:hover,.night .project-card:hover{box-shadow:6px 6px 0 #052659}.night .facts{background:#11212D}.night .family-strip{background:#11212D}.night .cta{background:#052659}.night footer{background:#06141B}.night .extra-services a:hover{background:#11212D}.night .toggle-dot{background:var(--pale);box-shadow:0 0 15px #5483B3}.night .filters button[aria-pressed=true]{color:#021024}.night .caption{color:var(--muted)}.night .mascot span{background:#11212D}.night .quote-summary{border-color:#5483B3}
@keyframes marquee{to{transform:translateX(-50%)}}@keyframes stamp{50%{transform:rotate(15deg)}}
@media(min-width:1600px){.mascot{width:105px}.mascot img{height:210px}.mascot-left{left:5px}.mascot-right{right:5px}}
@media(max-width:1150px){.nav-wrap{gap:15px;padding-inline:24px}.site-header nav{gap:15px}.brand,.brand img{max-width:190px}.header-actions{gap:5px}#theme-toggle{margin-left:5px}.wrap{width:calc(100% - 96px)}.hero h1{font-size:8vw}.hero .form-actions .button{font-size:11px;padding:15px 17px}.family-grid{gap:45px}.quote-grid{gap:40px}.footer-grid{grid-template-columns:1fr 1fr}.service-grid{gap:18px}.service-card>div{padding:20px}.service-card h3{font-size:24px}.mascot{width:50px}.mascot img{height:110px}}
@media(max-width:920px){.nav-wrap{flex-wrap:wrap;min-height:78px}.menu-toggle{display:flex;margin-left:auto;background:transparent;border:1px solid var(--ink);border-radius:30px;font-family:Bricolage,sans-serif;font-weight:700;font-size:12px;gap:10px;padding:9px 12px}.site-header nav{display:none;order:4;flex-basis:100%;border-top:1px solid var(--line);padding:15px 0;flex-wrap:wrap;gap:18px}.site-header nav.open{display:flex}.hero{padding-top:55px;gap:35px}.hero h1{font-size:9vw}.hero-desc{font-size:17px}.hero-photo img{aspect-ratio:3/4}.round-stamp{width:90px;height:90px;font-size:9px;left:-20px;top:-35px}.hero .form-actions{gap:10px}.hero .button{font-size:10px}.service-grid,.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process-grid{grid-template-columns:1fr 1fr}.people-grid{grid-template-columns:1fr 1fr}.cartoon-family{grid-column:1/-1;justify-self:center;max-width:250px}.cta-grid{gap:30px}.cta h2{font-size:5vw}.facts strong{font-size:50px}.facts-grid{gap:18px}.facts-grid>div{padding-left:15px}.about-grid{gap:35px}.about-grid h2{font-size:4.5vw}.quote-grid{grid-template-columns:1fr}.quote-grid>div{display:grid;grid-template-columns:1fr 1fr;gap:10px 35px}.quote-grid>div>.eyebrow{grid-column:1/-1}.quote-grid h2{font-size:52px;grid-row:2/4}.quote-summary{margin-top:0}.contact-value{font-size:25px}.contact-value.email{font-size:19px}.visit{gap:35px}.hours strong{font-size:35px}.admin-grid{grid-template-columns:1fr}.admin-grid form{position:static}}
@media(max-width:640px){:root{scroll-padding-top:90px}body{font-size:16px}.wrap{width:calc(100% - 48px)}.section{padding-block:58px}.top-tight{padding-top:10px}.nav-wrap{padding:12px 20px;gap:12px}.brand,.brand img,.night .brand img{max-width:155px}.menu-toggle{font-size:0;gap:0;border:0;padding:8px}.menu-toggle span{font-size:22px}.header-actions{gap:5px}.lang{font-size:10px}#theme-toggle{min-width:58px;gap:4px;padding:5px;font-size:11px;margin-left:2px}.toggle-dot{width:13px;height:13px}.site-header nav a{font-size:13px}.hero{grid-template-columns:1fr;padding-top:42px;padding-bottom:55px;gap:32px}.hero h1{font-size:17vw;line-height:.95}.hero-desc{font-size:17px;max-width:95%}.hero .eyebrow{font-size:10px;max-width:280px}.hero-visual{margin:24px 12px 0 15px}.hero-photo img{aspect-ratio:1.15;object-fit:cover}.hero-photo{box-shadow:8px 8px 0 var(--accent)}.hero-note{font-size:10px;margin-top:23px}.round-stamp{left:-20px;top:-30px;width:85px;height:85px}.hero .button{font-size:10px;padding:14px 17px;gap:12px}.marquee{font-size:23px;padding-block:12px}.section-heading{display:block;margin-bottom:25px}.section-heading .button{margin:20px 0 0}.section-heading h2,h2{font-size:40px}.service-grid{grid-template-columns:1fr}.service-card{display:grid;grid-template-columns:.8fr 1.2fr}.service-card img{height:100%;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--ink);min-height:210px}.service-card>div{padding:19px}.service-card h3{font-size:22px;margin-bottom:12px}.service-card p{font-size:14px}.service-number{margin-bottom:10px}.text-link{font-size:9px}.extra-services{grid-template-columns:1fr}.extra-services a{font-size:18px;padding:17px 0}.facts-grid{grid-template-columns:1fr 1fr;gap:30px 20px}.facts strong{font-size:46px}.facts span{font-size:12px}.process-grid{gap:25px}.process-grid h3{font-size:20px}.process-grid p{font-size:14px}.step-number{font-size:35px}.family-grid{grid-template-columns:1fr;gap:40px}.family-grid>img{max-height:450px;aspect-ratio:1.25;width:100%;object-position:center 30%}.family-grid h2{font-size:40px}.family-strip{padding-block:45px}.projects-grid{grid-template-columns:1fr;gap:25px}.project-card img{aspect-ratio:1.3}.project-caption strong{font-size:21px}.comparison-grid{grid-template-columns:1fr;gap:30px}.comparison h3{font-size:23px}.clients>div{gap:20px 25px;margin:25px 0}.clients>div span{font-size:21px}.cta{padding-block:50px}.cta-grid{grid-template-columns:1fr;gap:20px}.cta h2{font-size:43px}.big-phone{font-size:36px}.page-heading{padding-top:42px;padding-bottom:35px}.page-heading h1{font-size:14vw}.page-heading .intro{font-size:18px}.service-detail,.about-grid{grid-template-columns:1fr;gap:35px}.service-detail .intro{font-size:20px}.service-detail figure{grid-row:1}.about-grid h2{font-size:40px}.people-grid{grid-template-columns:1fr;gap:20px}.cartoon-family{grid-column:auto}.contact-grid{grid-template-columns:1fr;gap:14px}.contact-grid article{padding:23px}.contact-value{font-size:28px}.contact-value.email{font-size:20px}.visit{grid-template-columns:1fr;gap:35px;padding-block:50px}.hours{padding:25px}.hours strong{font-size:42px}.quote-grid{gap:28px}.quote-grid>div{display:block}.quote-grid h2{font-size:45px}.quote-summary{margin-top:25px}.form-two{grid-template-columns:1fr;gap:0}form{padding:22px}.form-actions .button{font-size:11px}.video-grid{grid-template-columns:1fr;gap:35px}.sitemap{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:25px}.footer-bottom{display:block}.footer-bottom>div{margin-top:20px;flex-wrap:wrap}.footer-bottom a{font-size:12px}.mascot{width:32px;top:75%;opacity:.9}.mascot img{height:68px}.mascot-left{left:-12px}.mascot-right{right:-12px}.mascot span{display:none}.admin-toolbar{align-items:start;flex-direction:column;gap:15px}.admin-notes ul{padding-left:20px}.admin-notes h2{font-size:30px}dialog{padding:15px}.lightbox-stage{gap:4px}.lightbox-stage button{width:30px;height:30px}.lightbox-stage img{max-width:calc(100% - 70px)}.lightbox-meta p:first-child{font-size:20px}.night .hero-photo{box-shadow:8px 8px 0 #052659}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.mascot-left{transform:rotate(-5deg)}.mascot-right{transform:rotate(5deg)}}
/* I titoli dei servizi restano entro lo schermo anche nelle parole spagnole lunghe. */
.page-heading h1 { overflow-wrap: anywhere; }
.media-unavailable { min-height: 240px; display: grid; place-items: center; padding: 25px; background: #11212D; color: #C1E8FF; }
@media (max-width:640px) { .page-heading h1 { font-size:12vw; } }

/* Il tema modifica esclusivamente la palette: contenuti e geometria sono comuni. */
.site-header .brand { background:transparent; padding:0; border-radius:0; }
/* Il marchio originale è trasparente: su fondi scuri si schiarisce solo il disegno. */
footer .brand { background:transparent; padding:0; border-radius:0; }
.site-header .brand img { filter:brightness(.72); }
.night .site-header .brand img,
footer .brand img { filter:brightness(1.9) saturate(.75); }
#theme-toggle { position:relative; isolation:isolate; }
#theme-toggle > span:first-child,
#theme-toggle > span:last-child {
  transition:opacity .45s ease,transform .7s cubic-bezier(.22,1,.36,1);
}
#theme-toggle > span:last-child { opacity:.45; transform:rotate(-30deg); }
.night #theme-toggle > span:first-child { opacity:.45; transform:rotate(90deg); }
.night #theme-toggle > span:last-child { opacity:1; transform:rotate(0); }
.toggle-dot { transition:background-color .6s ease,box-shadow .6s ease,transform .8s cubic-bezier(.22,1,.36,1); }
.night .toggle-dot { transform:rotate(180deg); }
#theme-toggle[aria-busy="true"] { animation:none; }
@keyframes theme-switch-glow {
  0%,100% { box-shadow:3px 3px 0 var(--ink),0 0 0 0 transparent; }
  35% { box-shadow:3px 3px 0 var(--ink),0 0 25px 6px #5483B366; }
}
.theme-fading body,
.theme-fading .site-header,
.theme-fading .service-card,
.theme-fading .project-card,
.theme-fading .family-strip,
.theme-fading .facts,
.theme-fading .cta,
.theme-fading footer,
.theme-fading form,
.theme-fading input,
.theme-fading textarea,
.theme-fading select,
.theme-fading .button,
.theme-fading h1,
.theme-fading h2,
.theme-fading h3,
.theme-fading p,
.theme-fading a,
.theme-fading em {
  transition:background-color .65s ease,color .65s ease,border-color .65s ease,box-shadow .65s ease;
}
@media (prefers-reduced-motion:reduce) {
  ::view-transition-group(root),::view-transition-old(root),::view-transition-new(root) { animation:none !important; }
}
/* L'onda è un livello decorativo: nessuna cattura della pagina e nessun blocco dei clic. */
.theme-wave {
 position:fixed; inset:0; z-index:1000; pointer-events:none !important;
 will-change:clip-path,opacity;
}
.theme-wave-dark {
 background:radial-gradient(circle at var(--wave-x) var(--wave-y),#02102400 0%,#05265955 55%,#5483B388 85%,#C1E8FF44 100%);
}
.theme-wave-light {
 background:radial-gradient(circle at var(--wave-x) var(--wave-y),#C1E8FF00 0%,#C1E8FF55 55%,#7DA0CA88 85%,#CCD0CF44 100%);
}

/* Griglia comune: righe condivise, dimensionate dai contenuti reali in entrambe le lingue. */
/* Il contenitore determina il rapporto senza usare le dimensioni intrinseche
   della foto per calcolare le righe subgrid (che Firefox sovrastima). */
.service-image { display:block; position:relative; aspect-ratio:1.7; }
.service-image img { position:absolute; inset:0; width:100%; height:100%; }
@media(max-width:640px) {
 .service-image { aspect-ratio:auto; min-height:210px; }
}
:root { --layout-gutter:64px; --layout-gap:32px; }
.wrap { width:min(1280px,calc(100% - var(--layout-gutter)*2)); }
.nav-wrap { max-width:1408px; padding-inline:var(--layout-gutter); }
.prose { max-width:none; }
.prose > * { max-width:850px; }
:is(.service-grid,.projects-grid,.process-grid,.people-grid,.comparison-grid,.contact-grid,.video-grid) { gap:var(--layout-gap); align-items:stretch; }
:is(.hero,.family-grid,.service-detail,.about-grid,.cta-grid,.visit,.quote-grid,.footer-grid,.admin-grid) > * { min-width:0; }
.people-grid article { display:grid; grid-template-rows:subgrid; grid-row:span 4; row-gap:0; padding:24px 0; }
.people-grid { grid-template-columns:minmax(0,2fr) minmax(0,.8fr); align-items:start; }
.people-profiles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--layout-gap); }
.people-grid article .eyebrow { display:block; margin:0 0 8px; }
.people-grid article h3 { margin-bottom:24px; }
.people-grid article p { margin-bottom:24px; }
.people-grid article > a { justify-self:start; align-self:end; }
.cartoon-family { grid-row:auto; align-self:start; }
.process-grid article { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:0; }
.process-grid h3 { margin:16px 0 24px; }
.process-grid p { margin-bottom:0; }
.project-card { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:0; align-content:start; }
.project-caption { display:grid; grid-template-rows:subgrid; grid-row:span 2; row-gap:0; padding:24px; }
.project-caption strong { padding-right:24px; }
.comparison { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:0; }
.comparison h3 { margin:0 0 24px; }
.comparison .caption { margin:12px 0 0; }
.contact-grid article { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:0; }
.contact-value { align-self:start; }
.video-grid figure { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:0; }
.video-grid video { display:block; }
.video-grid figcaption { margin:16px 0 8px; }
.video-grid figure > a { justify-self:start; align-self:end; }
.sitemap a { display:flex; align-items:flex-start; }
.form-two { align-items:stretch; }
.form-two label :is(input,textarea,select) { margin-top:auto; }
.section-heading .button { margin-bottom:0; }
.form-actions { align-items:stretch; }
.button { min-height:56px; }
@media(min-width:641px) {
 .service-card { display:grid; grid-template-rows:subgrid; grid-row:span 5; row-gap:0; }
 .service-card > .service-image { align-self:start; }
 .service-card > div { display:contents; }
 .service-card .service-number { margin:24px 24px 12px; }
 .service-card h3 { margin:0 24px 12px; }
 .service-card p { margin:0 24px 24px; }
 .service-card .text-link { align-self:end; margin:0 24px 24px; }
}
@media(max-width:1150px) { :root { --layout-gutter:48px; --layout-gap:24px; } }
@media(max-width:920px) {
 .people-grid { grid-template-columns:1fr; }
 .cartoon-family { grid-column:1; }
}
@media(max-width:640px) {
 :root { --layout-gutter:24px; }
 .nav-wrap { padding-inline:var(--layout-gutter); }
 .people-grid article,.cartoon-family { grid-row:auto; }
 .people-grid article { grid-template-rows:auto; }
 .people-profiles { grid-template-columns:1fr; gap:24px; }
 .service-card { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
}

/* Direzione tipografica scelta: Space Grotesk per i titoli, DM Sans per la lettura. */
/* Taglia le decorazioni ai bordi senza creare contenitori di scroll:
   header sticky e fasce trascinabili mantengono il proprio comportamento. */
html,body{overflow-x:clip}
html{overscroll-behavior-x:none}
@font-face{font-family:"Space Grotesk";src:url('/assets/fonts/spacegrotesk.woff2') format('woff2'),url('/assets/fonts/spacegrotesk.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:"DM Sans";src:url('/assets/fonts/dmsans.woff2') format('woff2'),url('/assets/fonts/dmsans.ttf') format('truetype');font-weight:100 900;font-display:swap}
body,input,textarea,select{font-family:"DM Sans",Arial,sans-serif}
h1,h2,h3,.button,.eyebrow,.site-header nav a,.menu-toggle,.text-link,.facts strong,.step-number,.project-caption strong,.contact-value,.big-phone,.hours strong,.video-grid figcaption,.lightbox-meta p:first-child,form label{font-family:"Space Grotesk",Arial,sans-serif}
h1,h2{text-transform:none;font-weight:700;letter-spacing:-.03em;line-height:1.12}
h3{font-weight:700;letter-spacing:-.02em;line-height:1.2}
.hero h1{font-size:clamp(44px,4.5vw,64px);font-weight:700;letter-spacing:-.035em;line-height:1.1;margin-bottom:32px}
.hero-desc{line-height:1.65}
@media(max-width:920px){.hero h1{font-size:4.8vw}}
@media(max-width:640px){.hero h1{font-size:clamp(44px,12vw,72px);line-height:1.1;letter-spacing:-.03em}}

/* Le schede con immagini usano righe autonome: nessun dimensionamento
   intrinseco delle foto propagato attraverso subgrid annidate. */
.project-card{display:flex;flex-direction:column;grid-row:auto;align-content:normal}
.project-card>img{flex:none}
.project-caption{display:flex;flex-direction:column;grid-row:auto;flex:1;width:100%;padding:24px}
.project-caption>.eyebrow{min-height:3em}
.project-caption strong{flex:1}

/* Apertura: testo e fotografia partono dalla stessa linea. */
.hero{align-items:start;padding-top:64px;padding-bottom:64px}
.hero-visual{margin-top:0}
.hero-photo{transform:none;box-shadow:none;transition:transform .2s,box-shadow .2s}
.night .hero-photo{box-shadow:none}
.hero-photo:hover{transform:translateY(-5px);box-shadow:6px 6px 0 var(--accent)}
.night .hero-photo:hover{box-shadow:6px 6px 0 #052659}
.hero-photo img{aspect-ratio:1.2;object-fit:cover}
.hero-note{margin-top:16px}
@media(max-width:640px){
 .hero{padding-top:40px;padding-bottom:48px}
 .hero-visual{margin:0}
 .hero-photo img{aspect-ratio:1.15}
 .night .hero-photo{box-shadow:none}
}

/* Un solo progetto visibile, dentro un riquadro dalle dimensioni costanti. */
.hero-stage{position:relative;aspect-ratio:1.2;overflow:hidden;background:#06141B}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#06141B;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .65s ease,visibility .65s}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.hero-photo .hero-slide img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.hero-slide:focus-visible{outline:2px solid #C1E8FF;outline-offset:-5px}
.hero-photo .hero-caption-accessible{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hero-controls{display:flex;justify-content:center;margin-top:16px}
.hero-dots{display:flex;align-items:center;gap:8px;counter-reset:hero-project}
.hero-dots button{display:grid;place-items:center;width:36px;height:28px;border:1.5px solid var(--ink);padding:0;background:transparent;color:var(--ink);border-radius:40px;font-family:"Space Grotesk",Arial,sans-serif;font-size:11px;font-weight:700;line-height:1;transition:background .2s,color .2s;counter-increment:hero-project}
.hero-dots button::after{content:counter(hero-project,decimal-leading-zero)}
.hero-dots button:hover{background:var(--accent)}
.hero-dots button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.hero-note{margin-top:8px;text-align:center;font-size:10px;letter-spacing:.06em}
.clients{padding-block:64px}
.clients>.clients-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0}
.clients-heading .eyebrow{margin:0}
.clients>.clients-heading .client-hint,.clients>.clients-heading .client-hint span{font-family:"DM Sans",Arial,sans-serif;font-size:12px;letter-spacing:0;font-weight:400;color:var(--muted);white-space:nowrap}
.client-hint span{display:inline-block;margin-left:8px}
.clients>.client-strip{display:flex;flex-wrap:nowrap;align-items:stretch;gap:0;margin:26px 0 16px;padding:8px 0 12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab;touch-action:pan-x pan-y;overscroll-behavior-x:contain;user-select:none;-webkit-user-select:none;mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 28px),transparent)}
.client-strip::-webkit-scrollbar{display:none}
.client-strip.is-dragging,.client-strip.is-dragging *{cursor:grabbing}
.client-group{display:flex;flex:none;align-items:stretch;gap:18px;padding-right:18px}
.client-logo{display:flex;flex:none;align-items:center;justify-content:center;width:194px;height:108px;padding:24px;border:0;border-radius:0;background:transparent;box-shadow:none;transition:opacity .2s}
.client-logo:hover{background:transparent;box-shadow:none;opacity:.72}
.client-logo img{width:auto;height:auto;max-width:100%;max-height:60px;object-fit:contain;pointer-events:none}
.client-logo-negative img{filter:brightness(0)}
.night .client-logo img{filter:brightness(0) invert(1)}
.client-logo-compact img{max-width:80px;max-height:66px}
.client-strip:focus-visible{outline-offset:4px;border-radius:18px}
.clients>.caption{font-size:13px;margin:0;line-height:1.5}
@media(max-width:640px){
 .clients{padding-block:42px}
 .clients>.clients-heading{align-items:start;gap:12px}
 .clients-heading .eyebrow{max-width:180px;font-size:10px}
 .clients>.clients-heading .client-hint,.clients>.clients-heading .client-hint span{font-size:10px}
 .clients>.client-strip{margin-block:20px 12px;mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}
 .client-group{gap:12px;padding-right:12px}
 .client-logo{width:164px;height:96px;padding:20px;border-radius:14px}
 .client-logo img{max-height:54px}
 .client-logo-compact img{max-width:68px;max-height:58px}
}
/* Il fondo prosegue dietro le mascotte, ma il testo scorre solo nella
   corsia centrale. La sfumatura ai bordi evita tagli netti delle parole. */
.marquee{position:relative;transform:none;overflow:visible;background:transparent}
.night .marquee{background:transparent}
.marquee::before{content:"";position:absolute;inset:0;z-index:0;background:#052659;transform:rotate(-1deg);pointer-events:none}
.marquee>.marquee-window{display:block;position:relative;width:calc(100% - var(--layout-gutter)*2);margin-inline:auto;animation:none;overflow:hidden;transform:rotate(-1deg);mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 65s linear infinite}
.marquee i svg{display:inline-block;width:.7em;height:.7em;vertical-align:-.04em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
/* Il selettore usa una sola icona, con lo stesso peso delle linee del sito. */
#theme-toggle{display:grid;place-items:center;position:relative;flex-shrink:0;width:40px;height:40px;min-width:40px;margin-left:10px;padding:9px;border:0;border-radius:50%;background:transparent;box-shadow:none;transition:background .2s,color .2s}
#theme-toggle:hover{background:var(--line)}
.theme-icon{display:block;width:21px;height:21px;overflow:visible}
.theme-sun{opacity:1;transform-origin:12px 12px;transition:opacity .2s,transform .3s}
.theme-moon{opacity:0;transition:opacity .2s}
.night .theme-sun{opacity:0;transform:rotate(45deg) scale(.7)}
.night .theme-moon{opacity:1}
/* Le due sagome complete restano ai lati e non vengono tagliate dal viewport. */
.mascot{--mascot-image-width:clamp(150px,14vw,240px);width:calc(var(--mascot-image-width)*.78);top:clamp(110px,calc(50dvh - var(--mascot-image-width)*.707 - 20px + var(--mascot-y,0px)),calc(100dvh - var(--mascot-image-width)*1.414 - 72px))}
.mascot img{width:var(--mascot-image-width);max-width:none;height:auto;max-height:none;margin-left:calc(var(--mascot-image-width)*-.11);object-fit:contain}
.mascot span{font-family:"Space Grotesk",Arial,sans-serif;font-size:clamp(12px,1vw,16px);font-weight:700;letter-spacing:.08em;padding:7px 4px;border:1px solid var(--ink)}
.mascot-left{left:16px;transform:rotate(calc(-4deg + var(--mascot-rot,0deg)/3))}
.mascot-right{right:16px;transform:rotate(calc(4deg - var(--mascot-rot,0deg)/3))}
/* Spazio reale per sagome e rotazione, fuori dall'area dei contenuti. */
@media(min-width:1151px){
 :root{--layout-gutter:clamp(170px,13.5vw,248px)}
 .nav-wrap{max-width:calc(1280px + var(--layout-gutter)*2)}
}
@media(min-width:641px) and (max-width:1150px){
 :root{--layout-gutter:88px}
 .mascot{--mascot-image-width:84px}
 .mascot-left{left:6px}.mascot-right{right:6px}
 .mascot span{font-size:9px;padding:5px 0;letter-spacing:.02em}
}
@media(max-width:640px){
 #theme-toggle{width:34px;height:34px;min-width:34px;padding:7px;margin-left:2px}
 .theme-icon{width:20px;height:20px}
 .hero-stage{aspect-ratio:1.15}
 :root{--layout-gutter:40px}
 .mascot{--mascot-image-width:42px;opacity:1}
 .mascot-left{left:3px}.mascot-right{right:3px}
 .mascot span{display:block;font-size:6px;padding:3px 0;letter-spacing:0}
}
/* Sagome senza targhette, su tutte le dimensioni di schermo. */
.mascot span{display:none}
/* Mascotte (richiesta di Jonathan, 29-10-2026): Jonathan a sinistra, Leonardo a destra,
   misura media, tagliate dal bordo della pagina. In home partono appoggiate
   alla fascia blu e restano sempre sopra a tutto; --mascot-top lo calcola site.js. */
.mascot{--mascot-side:max(var(--layout-gutter),(100vw - 1280px)/2);--mascot-image-width:clamp(150px,calc((var(--mascot-side) - 24px)/.6),340px);width:calc(var(--mascot-image-width)*.78);top:clamp(96px,calc(var(--mascot-top,50dvh - var(--mascot-image-width)*.675) + var(--mascot-y,0px)),calc(100dvh - var(--mascot-image-width)*1.35 - 12px))}
.mascot-left{left:calc(var(--mascot-image-width)*-.17)}
.mascot-right{right:calc(var(--mascot-image-width)*-.17)}
@media(min-width:641px) and (max-width:1150px){.mascot{--mascot-image-width:calc((var(--mascot-side) - 12px)/.6)}}
/* Ferme alla fascia blu (31-10): scorrono con la pagina e passano sotto l'intestazione. */
.mascot-stage{display:contents}
@media(min-width:641px){
 .mascot-stage{display:block;position:absolute;top:0;left:0;right:0;height:0;overflow-x:clip;overflow-y:visible;z-index:18;pointer-events:none}
 .mascot{position:absolute;top:calc(var(--mascot-top,50vh - var(--mascot-image-width)*.675))}
}
.mascot-stage-note{display:none}
@media(max-width:640px){
 .hero{padding-bottom:16px}
 .hero-note{display:none}
 .mascot-stage{--mobile-mascot-width:clamp(128px,34vw,160px);display:block;position:relative;height:calc(var(--mobile-mascot-width)*1.45 + 20px);isolation:isolate}
 .mascot-stage .mascot{--mascot-image-width:var(--mobile-mascot-width);position:absolute;top:auto;bottom:8px}
 .mascot-stage-note{display:block;position:absolute;top:50%;left:50%;width:130px;margin:0;transform:translate(-50%,-50%);text-align:center;font-family:"Space Grotesk",Arial,sans-serif;font-size:11px;font-weight:700;line-height:1.9;letter-spacing:.07em;text-transform:uppercase;color:var(--blue)}
}
/* Prima riga dell'apertura e ruoli nelle schede del team. */
.hero-eyebrow{margin-bottom:18px}
.person-role{font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);margin:-14px 0 18px}
.night .person-role{color:var(--accent)}
/* Foto di Leonardo e del team che si alternano con una dissolvenza lenta. */
.team-photos{margin:0}
.team-photo-stage{display:grid;overflow:hidden}
.team-photo-stage>*{grid-area:1/1;opacity:0;transition:opacity 1.4s ease}
.team-photo-stage>.is-active{opacity:1}
.team-photos figcaption{display:grid;font-size:13px;margin-top:10px}
.team-caption{grid-area:1/1;opacity:0;transition:opacity .6s ease}
.team-caption.is-active{opacity:1}
.family-grid>.team-photos{transform:rotate(-2deg)}
.family-grid .team-photo-stage{border:2px solid var(--ink);box-shadow:12px 12px 0 var(--blue)}
.family-grid .team-photo-stage>img{width:100%;aspect-ratio:4/5;object-fit:cover}
.about-grid .team-photo-stage>img{aspect-ratio:4/5;max-height:none}
@media(max-width:640px){.family-grid .team-photo-stage>img{max-height:450px;aspect-ratio:1.25}}
@media(prefers-reduced-motion:reduce){.team-photo-stage>*,.team-caption{transition:none}}
/* Video senza link di download: due righe per scheda. */
.video-grid figure{grid-row:span 2}
/* Recensioni dei clienti: compaiono solo quando ce n'è almeno una. */
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:var(--layout-gap)}
.review{display:flex;flex-direction:column;gap:18px;margin:0;padding:32px;border:1.5px solid var(--ink);background:var(--paper)}
.review-stars{color:var(--blue);font-size:20px;letter-spacing:.12em}
.review blockquote{margin:0;font-size:19px;line-height:1.6;flex:1}
.review figcaption{display:grid;gap:2px;font-size:14px}
.review figcaption strong{font-family:"Space Grotesk",Arial,sans-serif;font-size:16px}
.review figcaption span{color:var(--muted)}
.night .review{background:#11212D;border-color:var(--mid)}
.night .review-stars{color:var(--accent)}
.review-invite{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:48px;padding:24px 0;border-top:1.5px solid var(--line);border-bottom:1.5px solid var(--line)}
.review-invite p{margin:0;font-size:19px}
.admin-reviews{border-top:2px solid var(--ink)}
.admin-review{grid-template-columns:1fr}
.admin-review p{margin:6px 0;font-size:15px}
@media(max-width:640px){.review{padding:24px}.review blockquote{font-size:17px}.review-invite p{font-size:17px}}
/* Preventivo a passi con anteprima della richiesta. */
.quote-step{border:0;margin:0;padding:0;min-width:0}
.quote-step+.quote-step{margin-top:32px}
.is-stepped .quote-step+.quote-step{margin-top:0}
.quote-step[hidden]{display:none}
.quote-step legend{font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;font-size:24px;letter-spacing:-.02em;padding:0;margin-bottom:22px}
.quote-progress{display:none;list-style:none;margin:0 0 30px;padding:0 0 22px;gap:8px;border-bottom:1px solid var(--line)}
.is-stepped .quote-progress{display:flex;flex-wrap:wrap}
.quote-progress button{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:6px 10px 6px 0;font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.quote-progress button span{display:grid;place-items:center;width:26px;height:26px;border:1.5px solid currentColor;border-radius:50%;font-size:11px;letter-spacing:0}
.quote-progress button[aria-current=step]{color:var(--ink)}
.quote-progress button[aria-current=step] span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.quote-progress button.is-done span{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.choice-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.choice-title{font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}
.choice-hint{margin:-12px 0 18px;font-size:14px;color:var(--muted)}
form label.choice{display:block;margin:0;font-size:14px;letter-spacing:0;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice span{display:block;padding:10px 16px;border:1.5px solid var(--ink);border-radius:40px;transition:background .15s,color .15s}
.choice:hover span{background:var(--line)}
.choice input:checked+span{background:var(--ink);color:var(--paper)}
.choice input:focus-visible+span{outline:3px solid var(--mid);outline-offset:3px}
.step-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
.quote-summary dl{margin:0;display:grid;gap:10px}
.quote-summary dl>div{display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:15px}
.quote-summary dt{font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding-top:3px;color:var(--muted)}
.quote-summary dd{margin:0;overflow-wrap:anywhere}
.night .quote-progress button[aria-current=step] span{background:var(--pale);border-color:var(--pale);color:#06141B}
.night .choice input:checked+span{background:var(--pale);color:#06141B}
@media(max-width:640px){.quote-step legend{font-size:20px}.choice span{padding:9px 13px}.quote-progress{gap:2px}.quote-progress button{font-size:10px;padding-right:4px}.quote-summary dl>div{grid-template-columns:90px 1fr}.step-actions{justify-content:stretch}.step-actions .button{flex:1}}
/* Una sola scala per i titoli: ogni pagina apre con un titolo grande come quello della home,
   e i titoli di sezione restano un gradino sotto. */
.page-heading h1{font-size:clamp(44px,4.5vw,64px);letter-spacing:-.035em;line-height:1.1}
h2{font-size:clamp(34px,3.6vw,54px)}
@media(max-width:920px){.hero h1,.page-heading h1{font-size:max(4.8vw,38px)}.about-grid h2,.cta h2{font-size:max(4.2vw,34px)}.quote-grid h2{font-size:44px}}
@media(max-width:640px){.hero h1,.page-heading h1{font-size:clamp(44px,12vw,72px)}.section-heading h2,h2,.family-grid h2,.about-grid h2,.cta h2,.quote-grid h2{font-size:34px}}
/* "Il nostro team": stessa griglia e stesso linguaggio delle altre pagine.
   Ritmo verticale: 96px fra i blocchi; colonne sulla griglia del contenitore (gap comune). */
.team-hero-photo .team-photo-stage{border:1.5px solid var(--ink)}
.team-hero-photo .team-photo-stage>img{width:100%;aspect-ratio:2/1;object-fit:cover}
.team-hero-photo figcaption{margin-top:12px}
.team-facts{padding-top:96px}
.team-facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--layout-gap);margin:0}
.team-facts dl>div{border-top:2px solid var(--ink);padding-top:24px}
.team-facts dt{font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;font-size:clamp(44px,4.5vw,64px);line-height:1;letter-spacing:-.04em;color:var(--blue)}
.team-facts dd{margin:14px 0 0;font-size:15px;line-height:1.45;color:var(--muted)}
.team-statement{padding-top:96px}
.team-statement p{max-width:960px;margin:0;font-family:"Space Grotesk",Arial,sans-serif;font-weight:700;font-size:clamp(28px,2.5vw,40px);line-height:1.3;letter-spacing:-.025em}
.team-statement span{color:var(--steel)}
.night .team-statement span{color:var(--border)}
.team-people{padding-top:96px}
.team-people .section-heading{margin-bottom:40px}
.team-people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap)}
.team-person{display:grid;grid-template-columns:128px minmax(0,1fr);gap:32px;align-items:start;padding:32px;border:1.5px solid var(--ink);background:var(--paper)}
.team-person h3{margin:0 0 6px}
.team-person .person-role{margin:0 0 16px}
.team-person p{margin-bottom:16px}
.team-person a{font-weight:600}
.team-avatar{display:block;width:128px;height:128px;overflow:hidden;border:1.5px solid var(--ink);background:#C1E8FF}
.night .team-avatar{background:#11212D}
.team-avatar img{width:100%;height:100%;object-fit:cover}
@media(max-width:920px){.team-facts dl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.team-people-grid{grid-template-columns:1fr}.team-facts,.team-statement,.team-people{padding-top:72px}}
@media(max-width:640px){.team-hero-photo .team-photo-stage>img{aspect-ratio:4/3}.team-statement p{font-size:24px}.team-person{grid-template-columns:88px minmax(0,1fr);gap:20px;padding:22px}.team-avatar{width:88px;height:88px}.team-facts,.team-statement,.team-people{padding-top:56px}}
/* Righelli: il titolo di ogni pagina parte alla stessa altezza della home (64px) e il primo contenuto sta 65px sotto. */
.page-heading{padding-top:64px}
.team-hero-photo{padding-top:20px}
@media(max-width:640px){.page-heading{padding-top:40px}}
/* Ingresso sincronizzato: nessuna animazione della posizione verticale misurata. */
.mascot{transition:none;opacity:1}
.mascot img{opacity:1;transform:translate3d(0,0,0)}
.mascots-pending .mascot{opacity:0}
/* Recensioni: nastro misurato e trascinabile, ripreso da Shawarma of Lebanon. */
.compare-frame{touch-action:pinch-zoom;cursor:ew-resize;user-select:none;-webkit-user-select:none}
.compare-frame img{pointer-events:none;-webkit-user-drag:none}
.compare-frame input{pointer-events:none}
.compare-line{width:2px;border:0;background:var(--pale);transform:translateX(-50%)}
.compare-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:38px;height:38px;border:1.5px solid var(--pale);border-radius:50%;background:var(--ink);color:var(--pale);box-shadow:0 2px 10px #06141b44}
.compare-handle svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.reviews{border-top:1px solid var(--line)}
.reviews .section-heading{gap:32px;margin-bottom:40px}
.review-platform{display:flex;align-items:center;gap:16px;min-width:240px;padding:20px 24px;border:1.5px solid var(--line);text-decoration:none;transition:background .2s,border-color .2s}
.review-platform:hover{background:var(--accent);border-color:var(--blue)}
.review-platform>svg{width:42px;height:42px;padding:7px;background:#fff;border-radius:50%;flex:none}
.review-platform>span{display:grid;gap:4px;font-size:13px}
.review-platform strong{font-family:"Space Grotesk",Arial,sans-serif;font-size:24px;line-height:1.2}
.review-platform-rating{display:flex;align-items:center;gap:12px;margin:6px 0}
.review-platform-rating b{font-family:"Space Grotesk",Arial,sans-serif;font-size:38px;font-weight:700;line-height:1}
.review-platform-rating .review-stars{font-size:17px}
.recensioni{--card-rec:clamp(300px,26vw,420px);display:flex;align-items:stretch;gap:0;overflow-x:auto;overflow-y:hidden;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior-x:contain;cursor:grab;scrollbar-width:none;user-select:none;-webkit-user-select:none}
.recensioni::-webkit-scrollbar{display:none}
.recensioni:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
.recensioni.is-dragging,.recensioni.is-dragging *{cursor:grabbing}
.recensioni__track{display:flex;align-items:stretch;width:max-content;flex:none}
.recensioni__track>.review{width:var(--card-rec);flex:0 0 var(--card-rec);margin-inline-end:24px;padding:28px;gap:22px}
.review-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}
.review-source{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;white-space:nowrap;text-decoration:none;border:1px solid var(--line);border-radius:24px;padding:6px 9px}
.review-source svg{width:15px;height:15px;background:#fff;border-radius:50%;padding:1px}
.review-source:hover{text-decoration:underline;text-underline-offset:3px}
.reviews .review blockquote{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden;max-height:10.2em;font-size:17px;line-height:1.7;white-space:pre-line}
.reviews .review figcaption{display:flex;align-items:center;gap:12px;padding-top:20px;border-top:1px solid var(--line);margin-top:auto}
.review-avatar{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;background:var(--ink);color:var(--paper)!important;font-family:"Space Grotesk",Arial,sans-serif;font-weight:600;font-size:18px}
.review figcaption>span:last-child{display:grid;gap:3px}
.review figcaption strong{color:var(--ink)}
.review figcaption time{font-size:12px;color:var(--muted)}
.reviews-caption{margin:24px 0 0;font-size:13px;color:var(--muted)}
.night .review-platform:hover{background:#11212D}
@media(max-width:640px){.reviews .section-heading{display:grid;gap:24px;margin-bottom:28px}.review-platform{width:fit-content;min-width:0;padding:16px 20px}.recensioni{--card-rec:calc(100vw - 84px)}.recensioni__track>.review{padding:24px;margin-inline-end:16px}}

/* Firma Nas (dal Nas design system): footer sempre scuro, colori del tema scuro */
.footer-bottom > div { align-items:baseline; }
.footer-bottom .footer-signature { text-decoration:none; display:inline-flex; align-items:center; gap:8px; color:var(--pale); opacity:.75; transition:opacity .2s; }
.footer-bottom .footer-signature:hover, .footer-bottom .footer-signature:focus-visible { opacity:1; text-decoration:underline; }
@media (max-width:640px) { .footer-bottom .footer-signature { flex-basis:100%; } }
.n-firma { display:block; shape-rendering:crispEdges; }
.n-firma .t { fill:currentColor; }
.n-firma .a { fill:#ffb162; }
.n-firma .m { fill:#a35139; }


/* Preventivo: errori sotto i campi e suggerimenti dei comuni */
:root { --error:#9B1C1C; }
.night { --error:#FF8A80; }
.field-error { display:block; font-family:"DM Sans",Arial,sans-serif; font-weight:500; font-size:13px; line-height:1.4; letter-spacing:normal; color:var(--error); }
.field-error:empty { display:none; }
.field-error.is-hint { color:var(--blue); }
.field-error button { font:inherit; font-weight:700; color:inherit; background:none; border:0; padding:0; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
form [aria-invalid="true"] { border-bottom-color:var(--error); box-shadow:inset 0 -1px 0 var(--error); }
.combo { position:relative; display:block; }
.form-two label .combo { margin-top:auto; }
#quote-form select { appearance:none; -webkit-appearance:none; padding-right:38px; cursor:pointer; background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%); background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%; background-size:6px 6px; background-repeat:no-repeat; }
#quote-form select option, #quote-form select optgroup { background:var(--paper); color:var(--ink); }
.combo-list { position:absolute; z-index:30; left:0; right:0; top:calc(100% + 6px); max-height:min(336px,50vh); overflow-y:auto; margin:0; padding:4px 0; list-style:none; background:var(--paper); border:1.5px solid var(--ink); box-shadow:6px 6px 0 rgba(6,20,27,.14); }
.combo-list[hidden] { display:none; }
.combo-list li { padding:11px 12px; font-family:"DM Sans",Arial,sans-serif; font-weight:400; font-size:16px; letter-spacing:normal; color:var(--ink); cursor:pointer; }
.combo-list li strong { font-weight:700; }
.combo-list li:hover, .combo-list li[aria-selected="true"] { background:var(--ink); color:var(--paper); }

/* Preventivo: caricamento foto in stile sito al posto del pulsante di sistema */
.file-label { position:relative; display:flex; flex-direction:column; gap:12px; margin-bottom:20px; font-family:"Space Grotesk",Arial,sans-serif; font-weight:700; font-size:12px; letter-spacing:.03em; transition:background .18s, border-color .18s; }
.file-label input[type=file] { position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip-path:inset(50%); opacity:0; }
.file-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px 16px; }
form label.file-button { display:inline-flex; flex-direction:row; margin:0; min-height:44px; padding:11px 20px; gap:10px; font-family:Bricolage,Arial,sans-serif; font-size:11px; letter-spacing:.06em; cursor:pointer; }
@media (hover:hover) { .file-label .file-button:hover { background:var(--ink); color:var(--paper); } .night .file-label .file-button:hover { background:var(--pale); color:#021024; border-color:var(--pale); } }
.file-label:has(input:focus-visible) .file-button { outline:2px solid var(--blue); outline-offset:3px; }
.file-status { font-family:"DM Sans",Arial,sans-serif; font-weight:400; font-size:14px; letter-spacing:normal; color:var(--muted); }
.file-label.has-files .file-status { color:var(--ink); font-weight:500; }
.file-label.is-dragging { border-style:solid; background:rgba(84,131,179,.12); }
@media (hover:none) { .file-drop-hint { display:none; } }

/* Easter egg: "luminose" del titolo si accende come un neon (vedi site.js) */
.neon-word { cursor:pointer; transition:color .35s, text-shadow .35s; }
@media (hover:hover) { .neon-word:hover { text-shadow:0 0 18px rgba(84,131,179,.6); } }
/* Il velo esiste solo a neon acceso: un elemento fisso a tutto schermo, anche invisibile,
   fa mostrare a Safari iOS 26 la pagina che scorre sotto l'ora invece del colore dell'intestazione. */
html::after { content:""; position:fixed; inset:0; z-index:40; background:rgba(2,16,36,.88); opacity:0; pointer-events:none; display:none; transition:opacity .6s ease, display .6s allow-discrete; }
html.neon-on::after { display:block; opacity:1; }
@starting-style { html.neon-on::after { opacity:0; } }
html.neon-on .neon-word { position:relative; z-index:41; color:#F2FAFF; text-shadow:0 0 2px #fff, 0 0 8px #C1E8FF, 0 0 18px #7DA0CA, 0 0 36px #5483B3, 0 0 72px #5483B3; }
.neon-word.is-flickering { animation:neon-flicker 1.4s linear both; }
@keyframes neon-flicker { 0% { opacity:.1 } 6% { opacity:1 } 10% { opacity:.15 } 16% { opacity:1 } 19% { opacity:.3 } 26% { opacity:1 } 48% { opacity:.75 } 51% { opacity:1 } 100% { opacity:1 } }

/* Easter egg: le mascotte salutano con una nuvoletta */
.mascot img { pointer-events:auto; cursor:pointer; -webkit-tap-highlight-color:transparent; user-select:none; -webkit-user-select:none; transform-origin:50% 100%; }
.mascot-bubble { position:absolute; top:6%; z-index:1; width:max-content; max-width:200px; padding:10px 14px; border:1.5px solid var(--ink); border-radius:16px; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; font-weight:600; font-size:14px; line-height:1.3; letter-spacing:normal; text-align:left; box-shadow:4px 4px 0 var(--ink); pointer-events:none; opacity:0; transform:scale(.85); transition:opacity .2s, transform .25s cubic-bezier(.2,1.4,.4,1); }
.mascot-left .mascot-bubble { left:72%; transform-origin:0 100%; }
.mascot-right .mascot-bubble { right:72%; transform-origin:100% 100%; }
.mascot-bubble.is-visible { opacity:1; transform:scale(1); }
@media (prefers-reduced-motion:reduce) { .mascot-bubble { transition:opacity .2s; transform:none; } }

/* iPhone: la pagina arriva fino in cima allo schermo e l'intestazione copre anche la zona dell'ora,
   così sotto la barra di stato non si vede il contenuto che scorre. */
.site-header { padding-top:env(safe-area-inset-top,0px); }
:root { scroll-padding-top:calc(105px + env(safe-area-inset-top,0px)); }
@media (max-width:640px) { :root { scroll-padding-top:calc(90px + env(safe-area-inset-top,0px)); } }
body { padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px); }

/* Home: tre video ELSA che partono da soli in vista. Stessa griglia e stessi bordi delle schede lavori. */
.home-video-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--layout-gap); }
.home-video-grid figure { margin:0; }
.home-video-grid video { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--ink); border:1.5px solid var(--ink); }
.home-video-grid figcaption { font-family:"Space Grotesk",Arial,sans-serif; font-weight:700; font-size:21px; letter-spacing:-.02em; margin-top:16px; }
@media (max-width:640px) { .home-video-grid { grid-template-columns:1fr; gap:25px; } }

/* Una sola scala tipografica su tutte le pagine (07-11): stessi elementi, stesse misure. */
main .prose h2 { font-size:clamp(34px,3.6vw,54px); }
main h3, main .service-card h3, main .process-grid h3, main .comparison h3, main .team-person h3, main .prose h3 { font-size:24px; }
main .hero-desc, main .intro, main .page-heading .intro, main .service-detail .intro { font-size:22px; }
main .eyebrow, main .cta .eyebrow, main .hero .eyebrow { font-size:12px; }
main .project-caption > .eyebrow { font-size:10px; }
main .button, main .hero .button { font-size:12px; }
@media (max-width:640px) {
  main .prose h2 { font-size:34px; }
  main h3, main .service-card h3, main .process-grid h3, main .comparison h3, main .team-person h3, main .prose h3 { font-size:21px; }
  main .hero-desc, main .intro, main .page-heading .intro, main .service-detail .intro { font-size:18px; }
}
main .video-grid figcaption { font-size:21px; letter-spacing:-.02em; line-height:1.2; }
main .form-actions .button { font-size:12px; }
main > .hero { padding-top:72px; }
@media (max-width:640px) { main > .hero { padding-top:48px; } }
main .hero .form-actions .button { font-size:12px; }
video[data-autoplay] { cursor:pointer; }
video[data-autoplay]:focus-visible { outline:3px solid var(--mid); outline-offset:4px; }

/* Pagina Video come la home: niente barra, niente bande nere, riquadri 4:5 in tre colonne. */
main .video-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
main .video-grid video { aspect-ratio:4/5; max-height:none; object-fit:cover; }
@media (max-width:640px) { main .video-grid { grid-template-columns:1fr; } }
main .video-grid { grid-auto-flow:row; }
main .video-grid figure.is-wide { grid-column:span 2; }
main .video-grid figure.is-wide video { aspect-ratio:auto; height:100%; min-height:0; }
@media (max-width:640px) { main .video-grid figure.is-wide { grid-column:auto; } main .video-grid figure.is-wide video { aspect-ratio:16/9; height:auto; } }
main .video-grid figure { display:block; grid-row:auto; margin:0; }
main .video-grid figure > video { width:100%; }
main .video-grid figure.is-wide > video { height:100%; }

/* Fascia blu: ruotata di 1°, quindi si allunga oltre i bordi dello schermo per non lasciare
   triangoli scoperti agli angoli (html e body tagliano l’eccedenza, la pagina non si allarga). */
.marquee::before { left:-60px; right:-60px; }

/* Pagine di testo (Informazioni, Privacy): sottotitoli da documento, stessi in entrambe. */
main .prose h2 { font-size:30px; line-height:1.15; margin:64px 0 16px; }
main .prose h2:first-child { margin-top:0; }
main .prose > .caption { margin-top:48px; }
@media (max-width:640px) { main .prose h2 { font-size:24px; margin-top:44px; } }
main .prose a[href^="tel:"], main .prose a[href^="mailto:"] { white-space:nowrap; }


/* ---- Sorprese (easter-eggs.js) ---- */
/* 404: insegna al neon con lo zero fulminato; toccandola si ripara. */
.broken-sign { display:inline-flex; gap:.08em; margin:0 0 22px; padding:28px 44px; border:2px solid #052659; border-radius:18px; background:#021024; cursor:pointer; font:700 clamp(96px,14vw,180px)/1 "Space Grotesk",Arial,sans-serif; letter-spacing:-.04em; color:#F2FAFF; box-shadow:0 18px 40px rgba(2,16,36,.35); }
.broken-sign span { text-shadow:0 0 2px #fff, 0 0 10px #C1E8FF, 0 0 24px #7DA0CA, 0 0 48px #5483B3; }
.broken-sign .broken-letter { color:#253745; text-shadow:none; animation:broken-buzz 4.2s steps(1) infinite; }
.broken-sign.is-repairing .broken-letter { animation:neon-flicker 1.3s linear both; color:#F2FAFF; text-shadow:0 0 2px #fff, 0 0 10px #C1E8FF, 0 0 24px #7DA0CA, 0 0 48px #5483B3; }
.broken-sign.is-fixed .broken-letter { animation:none; color:#F2FAFF; text-shadow:0 0 2px #fff, 0 0 10px #C1E8FF, 0 0 24px #7DA0CA, 0 0 48px #5483B3; }
.broken-sign:focus-visible { outline:3px solid var(--mid); outline-offset:6px; }
.broken-sign-note { font-family:"Space Grotesk",Arial,sans-serif; font-weight:700; margin:0 0 32px; }
@keyframes broken-buzz { 0%, 91%, 95%, 100% { color:#253745; text-shadow:none } 92%, 94% { color:#9BA8AB; text-shadow:0 0 10px #7DA0CA } }

/* "neon": i titoli della pagina si accendono per qualche secondo. */
html.neon-all main :is(h1, h2) em, html.neon-all .neon-word { color:#F2FAFF; text-shadow:0 0 2px #fff, 0 0 8px #C1E8FF, 0 0 18px #7DA0CA, 0 0 36px #5483B3, 0 0 72px #5483B3; animation:neon-flicker 1.4s linear both; }
html:not(.night).neon-all main :is(h1, h2) em, html:not(.night).neon-all .neon-word { color:#052659; text-shadow:0 0 6px #C1E8FF, 0 0 18px #7DA0CA, 0 0 36px #5483B3; }
.marquee { cursor:default; }

/* Tema notte: "luminose" resta accesa piano. */
.night .neon-word { color:#C1E8FF; text-shadow:0 0 6px rgba(193,232,255,.55), 0 0 22px rgba(84,131,179,.55); }

@media (prefers-reduced-motion:reduce) {
  .broken-sign .broken-letter, .broken-sign.is-repairing .broken-letter, html.neon-all main :is(h1, h2) em, html.neon-all .neon-word { animation:none; }
}

/* Mentre il logo si carica non si vede la sua scritta alternativa (resta per i lettori di schermo). */
.brand img { color:transparent; }
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
