/* ---------- Font ospitati in locale (cartella fonts/) ---------- */
@font-face { font-family:"DM Sans"; src:url("fonts/DMSans-Variable.woff2") format("woff2"); font-weight:100 1000; font-style:normal; font-display:swap; }
@font-face { font-family:"Manrope"; src:url("fonts/Manrope-Variable.woff2") format("woff2"); font-weight:200 800; font-style:normal; font-display:swap; }
* { box-sizing: border-box; }
:root { --bg:#0b0c0e; --panel:#111316; --text:#f1f0ec; --muted:#92949a; --line:#292c31; --accent:#c7ff55; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--text); font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
.site-header { height:88px; padding:0 7.2%; display:flex; align-items:center; justify-content:space-between; position:fixed; z-index:20; top:0; left:0; width:100%; border-bottom:1px solid rgba(255,255,255,.12); background:rgba(11,12,14,.94); transition:background .25s ease,border-color .25s ease; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-logo { display:block; height:54px; width:auto; }
.brand-mark { font:800 22px Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-2px; }
.brand-mark span { color:var(--accent); }
.brand-name { font:700 9px/1.25 Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:1.6px; }
nav { display:flex; align-items:center; gap:38px; font-size:12px; color:#c7c8ca; }
nav a:hover,.contact-detail a:hover { color:var(--accent); }
.nav-contact { border:1px solid #55585d; padding:11px 16px; border-radius:2px; }
.nav-contact span { color:var(--accent); margin-left:12px; }
.hero { min-height:760px; height:100svh; max-height:980px; position:relative; overflow:hidden; display:flex; align-items:center; padding:130px 12% 100px; background:radial-gradient(ellipse at 78% 48%,#252a2a 0%,#141719 24%,#0b0c0e 62%); }
.hero:after { content:""; position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(90deg,transparent,#000); }
.hero-content { position:relative; z-index:2; max-width:680px; }
.eyebrow { color:var(--accent); font-size:9px; font-weight:700; letter-spacing:2.2px; }
.eyebrow-line { display:inline-block; width:28px; height:1px; background:var(--accent); vertical-align:middle; margin-right:10px; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-.065em; }
h1 { font-size:clamp(54px,7.5vw,104px); line-height:.99; font-weight:600; margin:28px 0 25px; }
h1 em,h2 span,.statement em { color:#858a8d; font-style:normal; }
.hero-copy { color:#b1b3b5; font-size:15px; line-height:1.8; margin-bottom:34px; }
.button { display:inline-flex; align-items:center; gap:32px; padding:17px 20px; font-size:11px; font-weight:700; letter-spacing:.2px; transition:.2s ease; }
.button span { font-size:16px; }
.button-light { background:var(--accent); color:#10120c; }
.button-light:hover { background:#dcff9a; transform:translateY(-2px); }
.hero-bottom { position:absolute; z-index:2; left:7.2%; right:7.2%; bottom:36px; display:flex; justify-content:space-between; color:#777b7e; font-size:8px; letter-spacing:1.7px; }
.scroll-cue b { color:var(--accent); font-size:14px; margin-left:10px; }
.speaker { position:absolute; z-index:1; width:min(55vw,690px); aspect-ratio:1; right:2%; top:50%; transform:translateY(-50%); }
.speaker > span { position:absolute; border-radius:50%; will-change:transform; animation:thump 1.8s ease-out infinite; }
.spk-surround { inset:0; border:1px solid rgba(199,255,85,.2); --push:1.008; }
.spk-surround:after { content:""; position:absolute; inset:5%; border-radius:50%; border:1px solid rgba(255,255,255,.1); }
.spk-cone { border:1px solid rgba(255,255,255,.12); }
.cone-1 { inset:13%; --push:1.03; background:radial-gradient(circle,#131617 55%,#0f1112 100%); animation-delay:.01s; }
.cone-2 { inset:21%; --push:1.055; border-color:rgba(199,255,85,.14); background:radial-gradient(circle,#151819 50%,#111314 100%); animation-delay:.02s; }
.cone-3 { inset:29%; --push:1.085; background:radial-gradient(circle,#181c1c 45%,#121516 100%); animation-delay:.03s; }
.spk-cap { inset:37%; --push:1.14; background:radial-gradient(circle at 38% 35%,#454b45,#1d2220 40%,#0c0f0e 72%); box-shadow:0 0 100px rgba(199,255,85,.08),inset 0 0 50px #080a09; animation:thump 1.8s ease-out .04s infinite,glow 1.8s ease-out .04s infinite; }
.wave { inset:0; border:1px solid rgba(199,255,85,.35); opacity:0; animation:wave 1.8s ease-out infinite !important; }
.wave-2 { animation-delay:.9s !important; }
@keyframes thump { 0%{transform:scale(1)} 7%{transform:scale(var(--push,1.05))} 22%{transform:scale(.985)} 38%{transform:scale(1)} 50%{transform:scale(calc(1 + (var(--push,1.05) - 1) * .5))} 62%{transform:scale(1)} 100%{transform:scale(1)} }
@keyframes glow { 0%,38%,62%,100%{box-shadow:0 0 100px rgba(199,255,85,.08),inset 0 0 50px #080a09} 7%{box-shadow:0 0 130px rgba(199,255,85,.3),inset 0 0 40px #0b0e0c} 50%{box-shadow:0 0 115px rgba(199,255,85,.17),inset 0 0 45px #090b0a} }
@keyframes wave { 0%{transform:scale(.55);opacity:0} 6%{opacity:.35} 100%{transform:scale(1.3);opacity:0} }
@media (prefers-reduced-motion:reduce) { .speaker > span { animation:none !important; } .wave { display:none; } }
.section-wrap { padding:125px 12%; }
.intro { display:grid; grid-template-columns:1fr 3.2fr 1fr; gap:35px; border-bottom:1px solid var(--line); }
.section-index { color:#777b80; font-size:9px; letter-spacing:1.5px; padding-top:10px; }
.intro-body .eyebrow { margin-bottom:25px; }
h2 { font-size:clamp(42px,5.2vw,68px); line-height:1.06; font-weight:600; margin:0 0 26px; }
.body-copy { max-width:510px; color:#a3a6a8; font-size:13px; line-height:1.9; }
.intro-aside { align-self:end; padding-bottom:8px; color:#8b8e91; }
.big-number { font:500 31px Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-2px; color:#e7e8e4; }
.big-number span { color:var(--accent); padding:0 5px; }
.intro-aside p { font-size:8px; line-height:1.9; letter-spacing:1.5px; margin:13px 0 0; }
.services { background:var(--panel); }
.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:55px; }
.section-heading .body-copy { max-width:250px; margin-bottom:8px; }
.service-list { border-top:1px solid #303338; }
.service-row { display:grid; grid-template-columns:70px 1fr 40px; gap:20px; align-items:center; padding:30px 0; border-bottom:1px solid #303338; }
.service-number { color:var(--accent); font-size:10px; }
.service-row h3 { font:500 23px Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-.8px; margin:0 0 7px; }
.service-row p { color:#92969a; font-size:11px; margin:0; line-height:1.7; }
.service-arrow { justify-self:end; color:var(--accent); font-size:20px; }
.statement { min-height:430px; display:flex; align-items:center; justify-content:center; text-align:center; padding:80px 20px; background:radial-gradient(ellipse at center,#202522,#0b0c0e 65%); border-top:1px solid #202326; border-bottom:1px solid #202326; }
.statement-inner p { font:500 clamp(34px,5vw,60px)/1.2 Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-2.5px; margin:28px 0; }
.statement-line { display:block; height:1px; width:55px; background:var(--accent); margin:0 auto; }
.contact { display:grid; grid-template-columns:1fr 2.4fr 1.1fr; gap:35px; }
.contact-main .eyebrow { margin-bottom:25px; }
.contact-main .body-copy { margin-bottom:30px; }
.contact-side { padding-top:12px; }
.contact-detail { padding:0 0 23px; margin-bottom:23px; border-bottom:1px solid var(--line); }
.contact-detail span { display:block; color:#777b80; font-size:8px; letter-spacing:1.6px; margin-bottom:11px; }
.contact-detail a,.contact-detail p { font-size:11px; margin:0; }
.contact-detail small { color:#777b80; }
.site-footer { border-top:1px solid var(--line); padding:27px 7.2%; display:grid; grid-template-columns:1.2fr 1.5fr 1fr auto; gap:20px; align-items:center; color:#777b80; font-size:8px; letter-spacing:1.3px; }
.footer-brand { color:#eee; font:700 10px Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:1px; }
.footer-brand span { color:var(--accent); font-size:8px; vertical-align:top; margin-left:3px; }
.site-footer>a:nth-of-type(2) { justify-self:end; }
.copyright { justify-self:end; }
@media(max-width:800px) {
 .site-header { height:72px; padding:0 6%; }
 .brand-logo { height:42px; }
 nav { gap:17px; font-size:10px; } nav > a:not(.nav-contact),.nav-item { display:none; }
 .hero { min-height:690px; padding:130px 7% 100px; }
 .speaker { width:80vw; right:-28%; top:57%; opacity:.7; }
 .hero-bottom { left:7%; right:7%; font-size:7px; }
 .section-wrap { padding:85px 7%; }
 .intro { grid-template-columns:1fr; gap:25px; }
 .intro-aside { display:flex; align-items:center; justify-content:space-between; }
 .intro-aside p { text-align:right; }
 .section-heading { display:block; }
 .section-heading .body-copy { margin-top:25px; }
 .contact { grid-template-columns:1fr; gap:25px; }
 .contact-side { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
 .site-footer { grid-template-columns:1fr 1fr; padding:25px 7%; }
 .site-footer>a:nth-of-type(2),.copyright { justify-self:start; }
}
@media(max-width:460px) {
 h1 { font-size:52px; }
 .hero-copy { font-size:13px; }
 .service-row { grid-template-columns:30px 1fr 20px; gap:12px; }
 .service-row h3 { font-size:19px; }
 .service-row p { font-size:10px; }
 .contact-side { grid-template-columns:1fr; }
 .scroll-cue { display:none; }
}

.contact-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button-outline { border:1px solid #60656a; color:#f1f0ec; }
.button-outline:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
@media(max-width:460px) { .contact-actions { align-items:flex-start; flex-direction:column; } }

/* ---------- Sottomenù ---------- */
.nav-item { position:relative; }
.nav-item > a { display:inline-flex; align-items:center; gap:9px; padding:12px 0; }
.nav-item > a:after { content:""; width:5px; height:5px; border-right:1px solid var(--accent); border-bottom:1px solid var(--accent); transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; }
.nav-item:hover > a:after,.nav-item:focus-within > a:after { transform:rotate(225deg) translate(-1px,-1px); }
.submenu { position:absolute; top:100%; left:-22px; padding-top:12px; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .22s ease,transform .22s ease,visibility .22s; }
.nav-item:hover .submenu,.nav-item:focus-within .submenu { opacity:1; visibility:visible; transform:none; }
.submenu-inner { min-width:230px; padding:8px 0; background:rgba(14,16,18,.96); border:1px solid #2c2f34; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.submenu a { display:flex; justify-content:space-between; gap:28px; padding:14px 20px; font-size:12px; white-space:nowrap; color:#c7c8ca; }
.submenu a span { color:var(--accent); }
.submenu a:hover { background:rgba(255,255,255,.035); color:var(--accent); }

/* ---------- Galleria foto: solo dissolvenza ---------- */
.gallery { padding-top:100px; padding-bottom:90px; border-bottom:1px solid var(--line); }
.gallery-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:38px 22px; align-items:stretch; }
.gallery figure { margin:0; display:flex; flex-direction:column; }
.gallery-wide { grid-column:span 4; } .gallery-tall { grid-column:span 2; } .gallery-half { grid-column:span 3; }
.gallery .frame { position:relative; overflow:hidden; flex:1; min-height:0; background:var(--panel); }
.gallery-wide .frame,.gallery-half .frame { aspect-ratio:4/3; flex:none; }
.gallery .frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.gallery figcaption { margin-top:14px; color:#8b8e91; font-size:11px; line-height:1.6; }
.gallery figcaption span { color:var(--accent); font-size:9px; font-weight:700; letter-spacing:1.8px; margin-right:10px; }
.js .fade { opacity:var(--e,0); will-change:opacity; }
.js .reveal { opacity:var(--e,0); transform:translate3d(0,calc((1 - var(--e,0)) * 56px),0) scale(calc(.93 + .07 * var(--e,0))); filter:blur(calc((1 - var(--e,0)) * 14px)); will-change:opacity,transform,filter; }
@media(max-width:800px) {
 .gallery { padding-top:60px; padding-bottom:60px; }
 .gallery-grid { grid-template-columns:1fr; gap:34px; }
 .gallery-wide,.gallery-tall,.gallery-half { grid-column:auto; }
 .gallery .frame { flex:none; }
 .gallery-wide .frame,.gallery-half .frame { aspect-ratio:4/3; }
 .gallery-tall .frame { aspect-ratio:3/4; }
}

/* ---------- Pagina Scheda tecnica ---------- */
.page-hero { position:relative; overflow:hidden; padding:175px 12% 90px; border-bottom:1px solid var(--line); background:radial-gradient(ellipse at 80% 25%,#222827 0%,#141719 30%,#0b0c0e 70%); }
.page-hero:after { content:""; position:absolute; inset:0; opacity:.2; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(90deg,transparent,#000); -webkit-mask-image:linear-gradient(90deg,transparent,#000); }
.page-hero-inner { position:relative; z-index:1; max-width:760px; }
.page-hero h1 { font-size:clamp(46px,6.6vw,92px); margin:26px 0 24px; }
.back-link { display:inline-block; margin-top:34px; color:#a3a6a8; font-size:11px; letter-spacing:.3px; }
.back-link:hover { color:var(--accent); }
.gear-index { display:flex; flex-wrap:wrap; gap:10px; margin-top:38px; }
.gear-index a { border:1px solid #3a3d42; padding:10px 14px; font-size:10px; letter-spacing:1.4px; color:#b6b8ba; }
.gear-index a span { color:var(--accent); margin-right:8px; }
.gear-index a:hover { border-color:var(--accent); color:var(--accent); }
.gear-section { display:grid; grid-template-columns:1fr 3.4fr; gap:35px; padding:95px 12%; border-bottom:1px solid var(--line); scroll-margin-top:0; }
.gear-section:nth-of-type(even) { background:var(--panel); }
.gear-section h2 { font-size:clamp(34px,4vw,52px); margin:0 0 40px; }
.gear-list { border-top:1px solid #303338; }
.gear-item { display:grid; grid-template-columns:70px 1fr auto; gap:20px; align-items:center; padding:26px 0; border-bottom:1px solid #303338; }
.gear-num { color:var(--accent); font-size:10px; }
.gear-brand { display:block; color:#777b80; font-size:9px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; margin-bottom:8px; }
.gear-item h3 { font:500 23px Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-.8px; margin:0 0 7px; }
.gear-item p { color:#92969a; font-size:11px; margin:0; line-height:1.7; }
.gear-tag { color:#777b80; font-size:9px; letter-spacing:1.6px; text-transform:uppercase; }
.gear-item.todo h3,.gear-item.todo p { opacity:.45; }
.gear-item.reveal { transform:translate3d(0,calc((1 - var(--e,0)) * 28px),0); filter:blur(calc((1 - var(--e,0)) * 6px)); }
@media(max-width:800px) {
 .page-hero { padding:130px 7% 70px; }
 .gear-section { grid-template-columns:1fr; gap:22px; padding:70px 7%; }
 .gear-item { grid-template-columns:30px 1fr; gap:12px; }
 .gear-tag { display:none; }
 .gear-item h3 { font-size:19px; }
}

/* ---------- Link Scheda tecnica più visibili ---------- */
.text-link { display:inline-flex; align-items:center; gap:14px; margin-top:34px; padding-bottom:7px; border-bottom:1px solid var(--accent); font-size:10px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; color:var(--text); transition:color .2s ease,gap .2s ease; }
.text-link span { color:var(--accent); font-size:14px; transition:transform .2s ease; }
.text-link:hover { color:var(--accent); gap:20px; }
.text-link:hover span { transform:translate(2px,-2px); }
.tech-band { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:36px; margin-top:70px; padding:34px 6px; border-top:1px solid #303338; border-bottom:1px solid #303338; transition:border-color .25s ease,background .25s ease; }
.tech-label { color:var(--accent); font-size:9px; font-weight:700; letter-spacing:2.2px; white-space:nowrap; }
.tech-text { font:500 clamp(18px,2.1vw,27px)/1.25 Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-.04em; color:var(--text); }
.tech-arrow { color:var(--accent); font-size:26px; transition:transform .25s ease; }
.tech-band:hover { border-color:var(--accent); background:rgba(199,255,85,.035); }
.tech-band:hover .tech-arrow { transform:translate(6px,-6px); }
@media(max-width:800px) { .tech-band { grid-template-columns:1fr auto; gap:14px 20px; margin-top:44px; padding:26px 0; } .tech-label { grid-column:1 / -1; } }

/* ---------- Liste compatte (microfoni, preamplificatori) ---------- */
.gear-list.compact { display:grid; grid-template-columns:1fr 1fr; column-gap:48px; }
.gear-list.compact .gear-item { grid-template-columns:1fr auto; gap:14px; padding:19px 0; }
.gear-list.compact .gear-item h3 { font-size:19px; margin:0; }
.gear-list.compact .gear-brand { margin-bottom:6px; }
.gear-list.compact .gear-item p { margin-top:5px; }
.gear-tag { color:var(--accent); }
@media(max-width:800px) { .gear-list.compact { grid-template-columns:1fr; } .gear-tag { display:block; } }

.tech-section { padding-top:70px; padding-bottom:70px; border-bottom:1px solid var(--line); }
.tech-section .tech-band { margin-top:0; }
@media(max-width:800px) { .tech-section { padding-top:50px; padding-bottom:50px; } }

/* ---------- Focus visibile da tastiera ---------- */
a:focus-visible,button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

/* ---------- Servizi cliccabili ---------- */
a.service-row { color:inherit; transition:background .25s ease; }
a.service-row h3 { transition:color .2s ease; }
.service-arrow { transition:transform .25s ease; }
a.service-row:hover h3,a.service-row:focus-visible h3 { color:var(--accent); }
a.service-row:hover .service-arrow,a.service-row:focus-visible .service-arrow { transform:translate(4px,-4px); }

/* ---------- Voce corrente nei sottomenù ---------- */

/* ---------- Due fasce una sotto l'altra ---------- */
.tech-band + .tech-band { margin-top:-1px; }

/* ---------- Pagina Audio immersivo ---------- */
.gallery-note { grid-column:span 2; align-self:end; padding-bottom:4px; }
.gallery-note .eyebrow { margin-bottom:18px; }
.gallery-note .body-copy { margin:0; }
.gear-section .body-copy { max-width:560px; font-size:14px; }
.gear-section .text-link { margin-top:30px; }
@media(max-width:800px) { .gallery-note { grid-column:auto; } }

/* ---------- Banner cookie ---------- */
.cookie-banner { position:fixed; z-index:50; left:max(16px,env(safe-area-inset-left)); bottom:max(16px,env(safe-area-inset-bottom)); width:min(420px,calc(100vw - 32px)); padding:22px 22px 20px; background:rgba(14,16,18,.97); border:1px solid #2c2f34; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); box-shadow:0 18px 50px rgba(0,0,0,.45); }
.cookie-title { margin:0 0 10px; color:var(--accent); font-size:9px; font-weight:700; letter-spacing:1.8px; }
.cookie-text { margin:0 0 18px; color:#b1b3b5; font-size:12px; line-height:1.7; }
.cookie-actions { display:flex; gap:10px; }
.cookie-actions button { flex:1; padding:13px 16px; background:transparent; border:1px solid #60656a; color:var(--text); font:700 11px "DM Sans",system-ui,sans-serif; letter-spacing:.2px; cursor:pointer; transition:border-color .2s ease,color .2s ease; }
.cookie-actions button:hover { border-color:var(--accent); color:var(--accent); }
@media(max-width:460px) { .cookie-banner { padding:18px 18px 16px; } }

/* ---------- Accenti HDR (solo su schermi HDR) ----------
   Fino a 8x più luminosi del bianco normale, grazie alle immagini hdr-white.jpg e hdr-lime.jpg.
   Menu e frecce: bianco freddo. Etichette, numeri e trattini: lime.
   Sugli schermi normali non cambia nulla: restano i colori di sempre. */
@media (dynamic-range: high) {
  @supports ((background-clip: text) or (-webkit-background-clip: text)) {
    .nav-contact span,
    .submenu a span,
    .scroll-cue b,
    .service-arrow,
    .tech-arrow,
    .text-link span {
      background: url("hdr-white.jpg") center / cover no-repeat;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
    }
    .eyebrow,
    .service-number,
    .tech-label,
    .gear-num,
    .gear-tag,
    .gear-index a span,
    .gallery figcaption span,
    .big-number span,
    .footer-brand span,
    .cookie-title {
      background: url("hdr-lime.jpg") center / cover no-repeat;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
    }
  }
  .eyebrow-line,
  .statement-line { background: url("hdr-lime.jpg") center / cover no-repeat; }
  .nav-item > a:after { border-image: url("hdr-white.jpg") 1; }
}

/* ---------- Header sempre in primo piano ---------- */
html { scroll-padding-top:88px; }
.js .site-header:not(.is-scrolled) { background:transparent; }
@media(max-width:800px) { html { scroll-padding-top:72px; } }

/* ---------- Header: sfuma durante lo scroll, torna pieno quando ti fermi ---------- */
.site-header { transition:background .25s ease,border-color .25s ease,opacity .5s ease; }
.site-header.is-scrolling.is-scrolled { opacity:.08; transition:background .25s ease,border-color .25s ease,opacity .18s ease; }
.site-header.is-scrolling.is-scrolled:hover,
.site-header.is-scrolling.is-scrolled:focus-within { opacity:1; }
@media (prefers-reduced-motion:reduce) { .site-header.is-scrolling.is-scrolled { opacity:1; } }

/* ---------- Contatti: ingrandimento discreto (+30%), lento e centrato, solo sui valori ---------- */
.contact-detail a,
.contact-detail p { display:inline-block; transform-origin:center; }
@media (hover:hover) and (pointer:fine) and (min-width:801px) {
  .contact-detail a,
  .contact-detail p { transition:transform 1s cubic-bezier(.22,.61,.36,1), color 1s ease; }
  .contact-detail:hover a,
  .contact-detail:hover p { transform:scale(1.3); color:#f4f8ff; }
}
@media (hover:hover) and (pointer:fine) and (min-width:801px) and (dynamic-range:high) {
  @supports ((background-clip:text) or (-webkit-background-clip:text)) {
    .contact-detail:hover a,
    .contact-detail:hover p {
      background:url("hdr-white.jpg") center / cover no-repeat;
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
      color:transparent;
    }
  }
}
@media (prefers-reduced-motion:reduce) { .contact-detail a, .contact-detail p { transition:none !important; } }

/* ---------- "Contatti": nessun rettangolo, alone sobrio che respira dietro la scritta ---------- */
.nav-contact { position:relative; isolation:isolate; border-color:transparent; }
.nav-contact::before { content:""; position:absolute; z-index:-1; inset:-16px -34px; border-radius:50%; pointer-events:none; opacity:0;
  background:radial-gradient(ellipse closest-side, rgba(244,248,255,.20) 0%, rgba(244,248,255,.10) 55%, rgba(244,248,255,0) 100%);
  animation:contatti-respiro 3s ease-in-out infinite; }
@keyframes contatti-respiro { 0%,100% { opacity:0; transform:scale(.97); } 50% { opacity:1; transform:scale(1.02); } }
@media (prefers-reduced-motion: reduce) { .nav-contact::before { animation:none; opacity:.5; } }

/* ---------- Menu in alto: ingrandimento discreto (+30%), lento e centrato; sottomenù in dissolvenza ---------- */
@media (hover:hover) and (pointer:fine) {
  nav > a,
  .nav-item > a { transition:transform 1s cubic-bezier(.22,.61,.36,1), color 1s ease; transform-origin:center; }
  nav > a:hover,
  .nav-item:hover > a,
  .nav-item:focus-within > a { transform:scale(1.3); color:#f4f8ff; }
}
@media (hover:hover) and (pointer:fine) and (dynamic-range:high) {
  @supports ((background-clip:text) or (-webkit-background-clip:text)) {
    nav > a:hover,
    .nav-item:hover > a,
    .nav-item:focus-within > a {
      background:url("hdr-white.jpg") center / cover no-repeat;
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
      color:transparent;
    }
  }
}
/* sottomenù: solo dissolvenza, senza spostamento; più lenta in apertura, più rapida in chiusura */
.submenu { transform:none; transition:opacity .35s ease, visibility .35s; }
.nav-item:hover .submenu,
.nav-item:focus-within .submenu { transform:none; transition:opacity .6s ease, visibility .6s; }
@media (prefers-reduced-motion:reduce) {
  nav > a, .nav-item > a, .submenu { transition:none !important; }
}

/* ---------- Menu per telefono: pulsante e pannello a tutto schermo ---------- */
.menu-toggle { display:none; }
@media(max-width:800px) {
  .menu-toggle { display:inline-flex; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; padding:0 10px; background:transparent; border:0; cursor:pointer; }
  .menu-toggle span { display:block; height:1px; background:#f4f8ff; transition:transform .35s ease, opacity .25s ease; }
  .site-header.menu-open .menu-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .site-header.menu-open .menu-toggle span:nth-child(2) { opacity:0; }
  .site-header.menu-open .menu-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .site-header.menu-open,
  .js .site-header.menu-open { background:rgba(11,12,14,.985); opacity:1; }
  html.menu-lock { overflow:hidden; }

  nav { position:fixed; top:72px; left:0; right:0; bottom:0; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; padding:20px 6% 48px; background:rgba(11,12,14,.985); font-size:15px; overflow-y:auto; opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s; }
  .site-header.menu-open nav { opacity:1; visibility:visible; }
  nav > a:not(.nav-contact), .nav-item { display:block; }
  nav > a, .nav-item > a { display:flex; justify-content:space-between; align-items:center; padding:20px 0; font:500 24px/1.2 Manrope,"Helvetica Neue",Arial,sans-serif; letter-spacing:-.03em; color:var(--text); border-bottom:1px solid #1d2024; transform:none !important; }
  .nav-item > a:after { display:none; }
  .nav-item .submenu { position:static; padding:0; opacity:1; visibility:visible; transform:none; transition:none; }
  .submenu-inner { min-width:0; padding:4px 0 12px; background:transparent; border:0; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .submenu a { padding:11px 0 11px 14px; font-size:13px; }
  nav > a.nav-contact { margin-top:28px; padding:18px 20px; border:1px solid #55585d; border-radius:2px; font-size:15px; font-weight:700; letter-spacing:0; }
  nav > a.nav-contact::before { display:none; }
}
