:root{
  --ink:#07111b;
  --ink-2:#0b1824;
  --paper:#f4f7fa;
  --white:#ffffff;
  --muted:#9fb1c3;
  --line:rgba(255,255,255,.12);
  --line-dark:rgba(7,17,27,.12);
  --blue:#63bdfc;
  --blue-2:#a8d9ff;
  --radius:28px;
  --header:86px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#fff;background:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.drawer-open,body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
.page-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:120;background:rgba(255,255,255,.05)}
.page-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--blue),#fff);box-shadow:0 0 20px var(--blue)}
.site-header{position:fixed;z-index:80;left:0;right:0;top:0;height:var(--header);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(22px,5vw,72px);border-bottom:1px solid transparent;transition:.35s ease;background:linear-gradient(to bottom,rgba(4,10,16,.72),transparent);backdrop-filter:blur(0)}
.site-header.scrolled{height:72px;background:rgba(7,17,27,.82);border-color:rgba(255,255,255,.08);backdrop-filter:blur(18px)}
.brand{display:inline-flex;flex-direction:column;width:max-content;line-height:1}
.desktop-nav{display:flex;gap:28px;font-size:13px;color:#c9d4df}.desktop-nav a{position:relative;padding:8px 0;transition:.2s}.desktop-nav a:hover,.desktop-nav a.active{color:#fff}.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:1px;background:var(--blue);transition:.25s}.desktop-nav a:hover::after,.desktop-nav a.active::after{right:0}
.button{appearance:none;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:15px 24px;font-size:13px;font-weight:700;cursor:pointer;transition:transform .25s,background .25s,border .25s,color .25s;white-space:nowrap}.button:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.75)}.button.light{background:#fff;color:var(--ink);border-color:#fff;box-shadow:0 10px 40px rgba(0,0,0,.16)}.button.light:hover{background:#dff2ff}.button.ghost{background:rgba(7,17,27,.2);backdrop-filter:blur(10px)}.button.small{padding:11px 17px;font-size:12px}.button.full{width:100%}
.menu-toggle{display:none;background:none;border:0;width:40px;height:40px;position:relative;justify-self:end}.menu-toggle span{position:absolute;left:8px;right:8px;height:1px;background:#fff;transition:.25s}.menu-toggle span:first-child{top:15px}.menu-toggle span:last-child{top:24px}.menu-open .menu-toggle span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
.mobile-menu{position:fixed;z-index:75;inset:0;background:rgba(7,17,27,.98);display:flex;flex-direction:column;justify-content:center;padding:96px 28px 40px;transform:translateY(-105%);transition:.45s cubic-bezier(.7,0,.2,1);visibility:hidden}.menu-open .mobile-menu{transform:translateY(0);visibility:visible}.mobile-menu nav{display:flex;flex-direction:column;margin-bottom:40px}.mobile-menu nav a{font-size:42px;letter-spacing:-.045em;padding:10px 0;border-bottom:1px solid var(--line)}
.section-dark{background:var(--ink)}
.hero{min-height:760px;height:100svh;max-height:980px;position:relative;display:grid;grid-template-columns:minmax(340px,.9fr) minmax(500px,1.1fr);align-items:center;padding:calc(var(--header) + 30px) clamp(22px,5vw,72px) 60px;overflow:hidden;border-bottom:1px solid var(--line)}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(to right,transparent,#000 45%,#000);opacity:.7}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:180px;background:linear-gradient(transparent,rgba(7,17,27,.96));pointer-events:none}
.hero-glow{position:absolute;border-radius:50%;filter:blur(80px);opacity:.22;pointer-events:none}.hero-glow.one{width:460px;height:460px;background:#1b84c9;right:14%;top:10%}.hero-glow.two{width:300px;height:300px;background:#79ccff;right:-80px;bottom:5%;opacity:.13}
.hero-copy{position:relative;z-index:3;max-width:670px;padding-top:25px}.eyebrow{font-size:11px;letter-spacing:.28em;color:#8fb2cf;font-weight:700;margin:0 0 26px}.eyebrow.dark{color:#65788a}.hero h1{font-size:clamp(54px,5.4vw,90px);line-height:.98;letter-spacing:-.055em;margin:0;font-weight:730}.hero h1 span{background:linear-gradient(110deg,#a7dcff,#fff 44%);-webkit-background-clip:text;color:transparent}.hero h1 em,.contact h2 em{font-style:normal;color:#a7dcff}.hero-lead{font-size:clamp(16px,1.3vw,20px);line-height:1.62;color:#c6d3df;max-width:620px;margin:30px 0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-visual{position:relative;z-index:2;min-width:0;align-self:stretch;display:flex;align-items:center;justify-content:center;perspective:1200px}.machine-stage{width:min(710px,100%);aspect-ratio:1.06/1;position:relative;transform-style:preserve-3d;transition:transform .1s linear}.machine-stage::before{content:"";position:absolute;inset:7% 0 2% 5%;background:linear-gradient(135deg,rgba(79,172,235,.09),transparent 50%);border:1px solid rgba(131,202,248,.14);border-radius:32px;transform:translateZ(-30px)}.machine-image{position:absolute;width:92%;height:82%;right:-1%;top:10%;object-fit:cover;object-position:center;border-radius:30px;filter:saturate(.9) contrast(1.06);mask-image:linear-gradient(to right,transparent 0,#000 17%,#000 91%,transparent 100%);mix-blend-mode:screen;opacity:.93;transform:translateZ(15px)}.machine-halo{position:absolute;right:2%;top:12%;width:75%;height:68%;border-radius:50%;border:1px solid rgba(116,199,255,.2);box-shadow:0 0 80px rgba(82,171,229,.18),inset 0 0 80px rgba(82,171,229,.08);transform:translateZ(-10px)}
.airflow{position:absolute;height:1px;background:linear-gradient(90deg,transparent,#62c4ff,transparent);box-shadow:0 0 12px #62c4ff;opacity:.65;transform-origin:left center;animation:flow 5s ease-in-out infinite}.a1{width:68%;right:-4%;top:47%;transform:rotate(-12deg)}.a2{width:54%;right:0;top:54%;transform:rotate(-8deg);animation-delay:-1.3s}.a3{width:48%;right:5%;top:61%;transform:rotate(-4deg);animation-delay:-2.7s}@keyframes flow{0%,100%{opacity:.16;scale:.7 1}50%{opacity:.8;scale:1 1}}
.tech-chip{position:absolute;border:1px solid rgba(145,206,246,.45);background:rgba(11,24,36,.78);color:#fff;backdrop-filter:blur(14px);padding:10px 16px;border-radius:999px;font-size:11px;font-weight:750;letter-spacing:.04em;box-shadow:0 10px 30px rgba(0,0,0,.18);display:flex;align-items:center;gap:9px;cursor:pointer;transition:.25s;z-index:5}.tech-chip:hover{transform:translateY(-4px) scale(1.02);border-color:#8dd4ff}.dot{width:8px;height:8px;border-radius:50%;background:#69c7ff;box-shadow:0 0 0 5px rgba(105,199,255,.16),0 0 15px #69c7ff}.chip-1{left:4%;top:49%}.chip-2{left:31%;top:17%}.chip-3{right:0;top:44%}.hud-card{position:absolute;right:0;bottom:7%;width:250px;border:1px solid rgba(255,255,255,.12);background:rgba(12,27,40,.7);backdrop-filter:blur(18px);border-radius:16px;padding:16px 15px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;box-shadow:0 20px 60px rgba(0,0,0,.26);transform:translateZ(45px)}.hud-card span{font-size:8px;color:#93a9ba;letter-spacing:.12em}.hud-card strong{font-size:10px;display:block;margin-top:3px}
.scroll-cue{position:absolute;z-index:5;left:clamp(22px,5vw,72px);bottom:36px;display:flex;align-items:center;gap:12px;color:#8194a5;font-size:9px;letter-spacing:.24em}.scroll-cue b{display:block;width:38px;height:1px;background:#4a5e70}.mouse{width:19px;height:28px;border:1px solid #6a7f91;border-radius:10px;display:grid;place-items:start center;padding-top:6px}.mouse i{width:2px;height:5px;background:#a6d9fb;border-radius:3px;animation:wheel 1.8s infinite}@keyframes wheel{0%{transform:translateY(0);opacity:0}30%{opacity:1}75%{opacity:1}100%{transform:translateY(8px);opacity:0}}
.heritage{background:linear-gradient(110deg,#f7f9fb,#eef5fb);color:var(--ink)}.heritage-inner{min-height:220px;display:grid;grid-template-columns:1.15fr .75fr .35fr;gap:60px;align-items:center;padding:52px clamp(22px,5vw,72px);max-width:1600px;margin:auto}.date-line{display:flex;align-items:center;gap:28px}.date-line strong{font-size:clamp(52px,5vw,78px);letter-spacing:-.06em;line-height:1;font-weight:650}.date-line span{font-size:48px;font-weight:200}.heritage-copy p{font-size:18px;line-height:1.5;margin:0 0 20px;max-width:390px}.text-link{font-size:12px;font-weight:750;display:inline-flex;gap:16px;align-items:center}.text-link.light{color:#fff}.heritage-stat{text-align:right}.heritage-stat strong{font-size:76px;line-height:.9;color:#b6cee5;font-weight:700;letter-spacing:-.055em}.heritage-stat strong span{font-size:.5em}.heritage-stat small{display:block;font-size:8px;letter-spacing:.24em;margin-top:12px}
.services{padding:90px clamp(22px,5vw,72px) 100px}.section-heading{display:grid;grid-template-columns:1.05fr .75fr auto;align-items:end;gap:70px;max-width:1500px;margin:0 auto 48px}.section-heading.compact{margin-bottom:38px}.section-heading h2,.contact h2{font-size:clamp(42px,4.4vw,70px);line-height:1.02;letter-spacing:-.05em;margin:0}.service-rail{max-width:1540px;margin:auto;display:grid;grid-template-columns:repeat(6,minmax(180px,1fr));gap:12px}.service-card{height:350px;position:relative;border:1px solid rgba(255,255,255,.1);border-radius:18px;overflow:hidden;padding:24px 18px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;transition:.35s cubic-bezier(.2,.7,.2,1)}.service-card::before{content:"";position:absolute;inset:0;background-image:linear-gradient(to bottom,rgba(7,17,27,.08) 20%,rgba(7,17,27,.94) 90%),var(--bg);background-size:cover;background-position:var(--pos,center);z-index:-2;transition:.5s ease}.service-card::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(106,197,255,.18),transparent 45%);z-index:-1;opacity:0;transition:.35s}.service-card:hover{transform:translateY(-8px);border-color:rgba(120,203,255,.45);box-shadow:0 25px 60px rgba(0,0,0,.3)}.service-card:hover::before{transform:scale(1.05)}.service-card:hover::after{opacity:1}.service-card>div{display:flex;align-items:flex-end;gap:10px}.service-card h3{font-size:18px;line-height:1.15;margin:0;flex:1;letter-spacing:-.02em}.circle-button{width:38px;height:38px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(7,17,27,.25);display:grid;place-items:center;cursor:pointer;transition:.25s}.circle-button:hover{background:#fff;color:var(--ink);transform:rotate(15deg)}
.audiences{display:grid;grid-template-columns:1fr 1fr;min-height:620px}.audience-panel{position:relative;overflow:hidden;min-height:620px;background-image:var(--panel);background-size:cover;background-position:var(--panelpos,center);display:flex;align-items:flex-end}.audience-panel::before{content:"";position:absolute;inset:0;background-image:var(--panel);background-size:cover;background-position:var(--panelpos,center);transition:1s cubic-bezier(.2,.7,.2,1)}.audience-panel:hover::before{transform:scale(1.035)}.audience-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,14,22,.95),rgba(5,14,22,.68) 50%,rgba(5,14,22,.12))}.audience-panel.home .audience-overlay{background:linear-gradient(90deg,rgba(13,22,31,.78),rgba(13,22,31,.26) 60%,rgba(13,22,31,.05))}.audience-content{position:relative;z-index:2;width:min(480px,80%);padding:70px clamp(32px,6vw,82px)}.mini-index{font-size:9px;letter-spacing:.2em;color:#a7c7df}.audience-content h2{font-size:42px;letter-spacing:-.04em;margin:14px 0 12px}.audience-content p{color:#d2dbe3;line-height:1.55}.audience-content ul{padding:0;margin:28px 0;list-style:none;display:grid;gap:9px;color:#e6edf2;font-size:13px}.audience-content li::before{content:"›";color:#7ec9f7;margin-right:10px}

.contact{background:#eef4f8;color:var(--ink);display:grid;grid-template-columns:1.05fr .95fr;min-height:600px}.contact-copy{padding:100px clamp(22px,6vw,90px);align-self:center}.contact-copy>p:not(.eyebrow){font-size:17px;line-height:1.65;color:#506170;max-width:660px}.contact-pills{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.contact-pill{border:1px solid rgba(7,17,27,.18);background:#fff;color:var(--ink);border-radius:16px;padding:15px 18px;font-size:12px;font-weight:750;display:flex;gap:10px;align-items:center;cursor:pointer;transition:.25s;box-shadow:0 10px 30px rgba(32,68,94,.06)}.contact-pill:hover{transform:translateY(-3px);border-color:#78bde9}.contact-pill span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf6fd}.contact-map{position:relative;overflow:hidden;background:linear-gradient(145deg,#eaf3f8,#dceaf3);min-height:600px}.contact-map::before{content:"";position:absolute;width:55%;aspect-ratio:1;border:1px solid rgba(44,105,146,.11);border-radius:48% 52% 55% 45% / 50% 44% 56% 50%;left:21%;top:20%;transform:rotate(-16deg);box-shadow:0 0 0 30px rgba(255,255,255,.18),0 0 0 60px rgba(255,255,255,.13);background:rgba(255,255,255,.18)}@keyframes pulse{0%{scale:.4;opacity:1}100%{scale:1.4;opacity:0}}
footer{min-height:150px;padding:45px clamp(22px,5vw,72px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;border-top:1px solid var(--line);background:#050c12;color:#788d9e}footer p{font-size:10px;text-align:center;margin:0}.to-top{justify-self:end;font-size:11px;color:#c1cdd5}
.contact-drawer{position:fixed;z-index:150;inset:0;pointer-events:none;visibility:hidden}.contact-drawer.open{visibility:visible;pointer-events:auto}.drawer-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.52);opacity:0;transition:.35s;backdrop-filter:blur(8px);width:100%;height:100%}.drawer-panel{position:absolute;right:0;top:0;height:100%;width:min(520px,100%);background:#0a1722;color:#fff;padding:64px 42px 36px;transform:translateX(100%);transition:.45s cubic-bezier(.7,0,.2,1);overflow:auto;box-shadow:-30px 0 70px rgba(0,0,0,.35)}.contact-drawer.open .drawer-backdrop{opacity:1}.contact-drawer.open .drawer-panel{transform:translateX(0)}.drawer-close{position:absolute;right:24px;top:22px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent;color:#fff;font-size:26px;cursor:pointer}.drawer-panel h2{font-size:42px;letter-spacing:-.045em;margin:0 0 12px}.drawer-intro{color:#8fa4b5;line-height:1.5;margin-bottom:28px}.drawer-panel form{display:grid;gap:14px}.drawer-panel label{display:grid;gap:7px;color:#9fb1c0;font-size:11px}.drawer-panel input,.drawer-panel textarea,.drawer-panel select{width:100%;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#0e202f;color:#fff;padding:13px 14px;outline:0;transition:.2s}.drawer-panel textarea{resize:vertical}.drawer-panel input:focus,.drawer-panel textarea:focus,.drawer-panel select:focus{border-color:#75c9ff;box-shadow:0 0 0 3px rgba(117,201,255,.08)}.form-note{display:block;color:#637889;line-height:1.45;margin-top:18px}.toast{position:fixed;z-index:200;bottom:28px;left:50%;transform:translate(-50%,20px);background:#fff;color:#091521;border-radius:999px;padding:12px 18px;font-size:12px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 10px 40px rgba(0,0,0,.22)}.toast.show{opacity:1;transform:translate(-50%,0)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}
@media (max-width:1180px){.desktop-nav{display:none}.site-header{grid-template-columns:1fr auto}.menu-toggle{display:block}.hero{grid-template-columns:1fr 1fr}.hero h1{font-size:clamp(52px,6vw,74px)}.service-rail{grid-template-columns:repeat(3,1fr)}.service-card{height:300px}.section-heading{grid-template-columns:1fr 1fr}.section-heading>.button{display:none}.heritage-inner{grid-template-columns:1fr 1fr}.heritage-stat{display:none}}
@media (max-width:850px){:root{--header:72px}.site-header{padding:0 20px}.site-header.scrolled{height:64px}.hero{height:auto;max-height:none;min-height:100svh;grid-template-columns:1fr;align-content:start;padding:130px 20px 65px}.hero-copy{padding-top:0}.hero h1{font-size:clamp(48px,14vw,72px)}.hero-lead{font-size:16px;max-width:540px}.hero-visual{height:440px;margin-top:20px}.machine-stage{width:100%;max-width:620px}.chip-1{left:1%;top:50%}.chip-2{left:25%;top:17%}.chip-3{right:1%;top:43%}.scroll-cue{display:none}.heritage-inner{grid-template-columns:1fr;padding:48px 20px;gap:30px}.heritage-copy{border-top:1px solid var(--line-dark);padding-top:24px}.section-heading{grid-template-columns:1fr;gap:22px}.services{padding:72px 20px}.service-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;margin-right:-20px}.service-card{min-width:240px;height:330px;scroll-snap-align:start}.audiences{grid-template-columns:1fr}.audience-panel{min-height:560px}.audience-content{padding:60px 24px;width:min(500px,92%)}.contact{grid-template-columns:1fr}.contact-copy{padding:72px 20px}.contact-map{min-height:430px}.drawer-panel{padding:70px 22px 30px}footer{grid-template-columns:1fr;text-align:center;padding:40px 20px}.to-top{justify-self:center}.to-top{margin-top:10px}}
@media (max-width:540px){.mobile-menu nav a{font-size:36px}.hero{padding-top:112px}.hero h1{font-size:clamp(45px,13vw,62px)}.hero-actions{display:grid}.hero-actions .button{width:100%}.hero-visual{height:360px;margin-left:-20px;margin-right:-20px}.machine-stage{scale:1.06}.machine-image{width:100%;right:-5%}.tech-chip{font-size:8px;padding:8px 10px}.chip-1{left:3%}.chip-2{left:28%}.chip-3{right:3%}.hud-card{width:190px;right:4%;bottom:4%;padding:12px}.date-line{gap:14px}.date-line strong{font-size:48px}.date-line span{font-size:32px}.section-heading h2,.contact h2{font-size:42px}.service-rail{gap:10px}.service-card{min-width:210px;height:300px}.audience-panel,.audience-panel::before{background-position:center}.audience-content h2{font-size:38px}.contact-pills{display:grid}.contact-pill{width:100%}.drawer-panel h2{font-size:36px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}


/* === V4 refinement: keep original visual direction, improve contact/map only === */
.contact-v4{background:linear-gradient(180deg,#edf3f7 0%, #eef4f8 100%)}
.contact-v4 .contact-copy h2 em{color:#9fd1f6;font-style:normal}
.contact-v4 .contact-copy>p:not(.eyebrow){max-width:640px}
.contact-v4 .contact-map{background:transparent;min-height:600px;padding:42px 42px 42px 0;display:flex;align-items:center}
.contact-v4 .contact-map::before{display:none !important}
.map-frame{position:relative;width:100%;height:520px;border-radius:30px;overflow:hidden;border:1px solid rgba(7,17,27,.08);box-shadow:0 26px 70px rgba(32,68,94,.10);background:#dce7ee}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.92) contrast(1.02)}
.map-shadow{position:absolute;inset:0;background:linear-gradient(90deg,rgba(236,243,247,.04) 0%,rgba(236,243,247,.0) 30%,rgba(8,17,27,.06) 100%);pointer-events:none}
.map-info-card{position:absolute;left:24px;bottom:24px;max-width:320px;padding:22px;border-radius:24px;background:rgba(10,22,32,.88);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 50px rgba(0,0,0,.22);color:#fff}
.map-kicker{display:block;font-size:10px;letter-spacing:.22em;color:#9cc8e7;font-weight:800;margin-bottom:10px}.map-info-card strong{display:block;font-size:34px;letter-spacing:-.05em;line-height:1.02}.map-info-card p{margin:12px 0 18px;color:#bfd0dc;line-height:1.55;font-size:14px}
.contact-v4 .button.light.small{padding:14px 18px;background:#fff;color:#091521}
.contact-v4 .button.light.small:hover{background:#dff0ff}
@media (max-width:1180px){.contact-v4 .contact-map{padding:24px 24px 24px 0}.map-frame{height:480px}}
@media (max-width:850px){.contact-v4{grid-template-columns:1fr}.contact-v4 .contact-copy{padding:72px 20px 22px}.contact-v4 .contact-map{padding:0 20px 72px;min-height:0}.map-frame{height:430px}.map-info-card{left:16px;right:16px;bottom:16px;max-width:none}.map-info-card strong{font-size:28px}}
@media (max-width:540px){.map-frame{height:400px;border-radius:24px}.map-info-card{padding:18px;border-radius:20px}.map-info-card strong{font-size:26px}.map-info-card p{font-size:13px;margin:10px 0 16px}.contact-v4 .button.light.small{width:100%;justify-content:center}}


/* V7 image positioning refinements */
@media (max-width:850px){
  .service-card:nth-child(1){--pos:46% 50%}
  .service-card:nth-child(2){--pos:50% 50%}
  .service-card:nth-child(3){--pos:54% 38%}
  .service-card:nth-child(4){--pos:58% 46%}
  .service-card:nth-child(5){--pos:52% 30%}
  .service-card:nth-child(6){--pos:50% 42%}
  .audience-panel.business{--panelpos:58% 50%}
  .audience-panel.home{--panelpos:58% 48%}
  
}

/* V9 — MOBILE SETTORI: testo sovrapposto come desktop + foto intera leggibile.
   Desktop resta invariato. Sul mobile usiamo la foto completa in primo piano
   e la stessa foto come riempimento di sfondo, scurita dal gradiente. */
@media (max-width:850px){
  .audiences{
    grid-template-columns:1fr;
  }

  .audience-panel{
    position:relative;
    min-height:600px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    background-image:var(--panel);
    background-size:cover;
    background-position:var(--panelpos,center);
    background-repeat:no-repeat;
  }

  /* Foto completa: non viene tagliata. Rimane davanti al riempimento di sfondo. */
  .audience-panel::before{
    content:"";
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    background-image:var(--panel);
    background-size:contain;
    background-position:top center;
    background-repeat:no-repeat;
    transform:none !important;
    z-index:0;
  }

  .audience-panel:hover::before{
    transform:none !important;
  }

  /* Gradiente: lascia vedere bene la foto sopra e rende il testo leggibile sotto. */
  .audience-overlay{
    display:block;
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(
      to bottom,
      rgba(5,14,22,.08) 0%,
      rgba(5,14,22,.16) 24%,
      rgba(5,14,22,.58) 43%,
      rgba(5,14,22,.90) 67%,
      rgba(5,14,22,.97) 100%
    );
  }

  .audience-panel.home .audience-overlay{
    background:linear-gradient(
      to bottom,
      rgba(8,15,22,.06) 0%,
      rgba(8,15,22,.13) 26%,
      rgba(8,15,22,.50) 46%,
      rgba(8,15,22,.86) 70%,
      rgba(8,15,22,.95) 100%
    );
  }

  .audience-content{
    position:relative;
    z-index:2;
    width:100%;
    max-width:540px;
    margin:0;
    padding:210px 24px 38px;
    background:none;
  }

  .audience-panel.home .audience-content{
    background:none;
  }
}

@media (max-width:540px){
  .audience-panel{
    min-height:590px;
    background-position:var(--panelpos,center);
  }

  .audience-panel::before{
    background-position:top center;
  }

  .audience-content{
    padding:205px 24px 34px;
  }

  .audience-content h2{
    font-size:36px;
  }

  .audience-content p{
    font-size:15px;
    line-height:1.55;
  }

  .audience-content ul{
    margin:20px 0 24px;
    gap:8px;
  }
}

/* === V10 polish: icone, pulsanti e mappa === */
/* Hero: bottoni puliti, senza frecce decorative */
.hero-actions .button{gap:0}

/* Badge in hero: niente simboli ambigui, solo stato tecnico minimale */
.hud-card{
  width:auto;
  min-width:190px;
  grid-template-columns:auto 1fr;
  gap:10px;
  padding:14px 16px;
}
.hud-status-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#72c8ff;
  box-shadow:0 0 0 5px rgba(114,200,255,.10),0 0 14px rgba(114,200,255,.55);
}
.hud-card>div>span{display:block}


/* Icone tecniche più professionali e coerenti */





/* Contatti: veri bottoni, senza icone/frecce decorative */
.contact-pill{
  justify-content:center;
  min-height:58px;
  padding:16px 24px;
  gap:0;
  border-radius:16px;
}
.contact-pill span{display:none!important}

/* Google Maps al posto dell'embed OSM con footer/attribution invasivo */
.map-frame iframe{filter:saturate(.82) contrast(1.02) brightness(1.02)}

@media (max-width:540px){
  .hud-card{min-width:170px;width:auto;right:4%;bottom:4%;padding:11px 13px}
  .contact-pill{width:100%}
}

/* === V11 final polish: hero accent, mappa leggibile, footer === */
/* Un solo accento cromatico con significato: la temperatura. */
.hero h1{color:#fff}
.hero h1 span{background:none;-webkit-background-clip:initial;color:inherit}
.hero h1 em{
  font-style:normal;
  color:var(--blue-2);
  background:linear-gradient(110deg,#d8efff 0%,#8fd3ff 58%,#63bdfc 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* Mappa: indirizzo e mappa sono due livelli distinti, mai sovrapposti. */
.contact-v4 .contact-map{
  padding:42px 42px 42px 0;
  align-items:stretch;
}
.map-shell{
  width:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:12px;
}
.map-info-card{
  position:static;
  max-width:none;
  min-height:98px;
  padding:18px 20px;
  border-radius:22px;
  background:#0b1824;
  backdrop-filter:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  box-shadow:0 16px 40px rgba(32,68,94,.12);
}
.map-address{min-width:0}
.map-kicker{margin-bottom:7px}
.map-info-card strong{
  font-size:30px;
  letter-spacing:-.045em;
  line-height:1;
}
.map-info-card p{display:none}
.map-link{flex:0 0 auto}
.map-frame{
  height:auto;
  min-height:410px;
  border-radius:24px;
  box-shadow:0 20px 55px rgba(32,68,94,.10);
}
.map-shadow{
  background:linear-gradient(180deg,rgba(8,17,27,.015),rgba(8,17,27,.035));
}

/* Footer essenziale: niente nota da demo, Torna su è un vero controllo. */
footer{
  grid-template-columns:1fr auto;
}
footer p{display:none}
.to-top{
  appearance:none;
  border:0;
  background:transparent;
  padding:10px 0;
  cursor:pointer;
  font:inherit;
  font-size:11px;
  color:#c1cdd5;
  justify-self:end;
  transition:color .2s,transform .2s;
}
.to-top:hover{color:#fff;transform:translateY(-2px)}

@media (max-width:1180px){
  .contact-v4 .contact-map{padding:24px 24px 24px 0}
  .map-frame{min-height:390px}
}

@media (max-width:850px){
  .contact-v4 .contact-map{padding:0 20px 64px}
  .map-shell{gap:12px}
  .map-info-card{
    min-height:0;
    padding:18px 20px;
    border-radius:20px;
  }
  .map-info-card strong{font-size:27px}
  .map-frame{
    height:360px;
    min-height:360px;
    border-radius:22px;
  }
  footer{
    grid-template-columns:1fr;
  }
  .to-top{justify-self:center}
  .to-top{margin-top:12px}
}

@media (max-width:540px){
  .contact-v4 .contact-map{padding:0 16px 56px}
  .map-info-card{
    display:grid;
    grid-template-columns:1fr;
    gap:15px;
    padding:18px;
  }
  .map-kicker{font-size:9px;letter-spacing:.18em}
  .map-info-card strong{font-size:27px}
  .map-link{
    width:100%;
    justify-content:center;
  }
  .map-frame{
    height:330px;
    min-height:330px;
    border-radius:20px;
  }
}


/* === V13 mobile refinement ===
   1) card servizi: titolo e pulsante restano in basso anche senza numerazione
   2) settori: una sola immagine per pannello, intera e non duplicata
   3) CTA mobile più compatte
   4) visual hero centrato e realmente responsive */

/* Senza il numero superiore, il contenuto delle card deve comunque restare in fondo. */
.service-card > div{
  margin-top:auto;
  width:100%;
}

@media (max-width:850px){
  /* PROFESSIONALE / RESIDENZIALE: un solo pannello per area.
     La foto 16:9 viene mostrata una sola volta, completa, in alto;
     testo e gradiente sono sovrapposti nello stesso blocco. */
  .audience-panel{
    min-height:0;
    display:flex;
    align-items:stretch;
    background:#07111b !important;
    background-image:none !important;
  }

  .audience-panel::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    right:auto;
    bottom:auto;
    width:100%;
    height:56.25vw;
    background-image:var(--panel);
    background-size:100% 100%;
    background-position:center;
    background-repeat:no-repeat;
    transform:none !important;
    z-index:0;
  }

  .audience-panel:hover::before{
    transform:none !important;
  }

  .audience-overlay,.audience-panel.home .audience-overlay{
    display:block;
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(
      to bottom,
      rgba(7,17,27,0) 0,
      rgba(7,17,27,.08) 20vw,
      rgba(7,17,27,.76) 43vw,
      rgba(7,17,27,.98) 56.25vw,
      #07111b 64vw,
      #07111b 100%
    );
  }

  .audience-content,.audience-panel.home .audience-content{
    position:relative;
    z-index:2;
    width:100%;
    max-width:560px;
    margin:0;
    padding:clamp(155px,38vw,315px) 24px 40px;
    background:none;
  }

  .mini-index{
    display:inline-block;
    margin-bottom:6px;
  }

  /* Hero visual: niente offset/zoom laterale, immagine completa e centrata. */
  .hero-visual{
    height:auto;
    min-height:380px;
    margin:18px 0 0;
    padding:0;
    overflow:visible;
  }

  .machine-stage{
    width:min(100%,560px);
    max-width:560px;
    aspect-ratio:1.08/1;
    margin:0 auto;
    scale:1;
  }

  .machine-image{
    width:94%;
    height:84%;
    left:50%;
    right:auto;
    top:50%;
    object-fit:contain;
    object-position:center;
    mask-image:none;
    -webkit-mask-image:none;
    transform:translate(-50%,-50%);
  }

  .machine-stage::before{
    inset:5% 2% 3%;
  }
}

@media (max-width:540px){
  /* CTA iniziali: bottoni veri, non barre a tutta pagina. */
  .hero-actions{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .hero-actions .button{
    width:auto;
    min-width:220px;
    max-width:100%;
    justify-content:center;
  }

  /* Rimuove i vecchi offset che facevano uscire il visual dallo schermo. */
  .hero-visual{
    min-height:350px;
    margin-left:0;
    margin-right:0;
  }

  .machine-stage{
    width:100%;
    max-width:410px;
    scale:1;
  }

  .machine-image{
    width:96%;
    height:84%;
    left:50%;
    right:auto;
    top:50%;
    transform:translate(-50%,-50%);
    object-fit:contain;
  }

  .chip-1{left:1%;top:51%}
  .chip-2{left:23%;top:15%}
  .chip-3{right:1%;top:43%}

  /* Contatti: pulsanti compatti, allineati a sinistra. */
  .contact-pills{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .contact-pill{
    width:auto;
    min-width:210px;
    max-width:100%;
    justify-content:center;
    padding:15px 22px;
  }

  /* Settori: titolo sopra la parte bassa della foto, senza duplicarla. */
  .audience-content,.audience-panel.home .audience-content{
    padding:clamp(150px,38vw,205px) 24px 36px;
  }

  .audience-content h2{
    font-size:36px;
  }
}


/* === V14 final micro-fix: badge hero più coerente === */
.hud-card{
  min-width:168px;
  max-width:182px;
  width:auto;
  padding:10px 14px;
  gap:9px;
  border-radius:18px;
  background:rgba(12,27,40,.72);
  border:1px solid rgba(145,206,246,.20);
}
.hud-card>div{line-height:1.02}
.hud-card span{
  font-size:7px;
  letter-spacing:.16em;
  color:#89a6ba;
}
.hud-card strong{
  font-size:11px;
  letter-spacing:.02em;
  margin-top:4px;
}
@media (max-width:540px){
  .hud-card{
    min-width:156px;
    max-width:168px;
    right:4%;
    bottom:4%;
    padding:10px 12px;
  }
  .hud-card strong{font-size:10px}
}


/* === V15 responsive polish: hero, badge, CTA, menu === */
/* Hero desktop: visual realmente centrato nel proprio spazio. */
@media (min-width:851px){
  .hero-visual{justify-content:center}
  .machine-stage{margin-inline:auto}
  .machine-image{
    left:50%;
    right:auto;
    width:92%;
    transform:translateX(-50%) translateZ(15px);
  }
  .machine-stage::before{inset:7% 2% 2% 2%}
}

/* Badge finale: stessa grammatica visiva delle altre etichette. */
.hud-card{
  min-width:0;
  max-width:none;
  width:max-content;
  display:inline-flex;
  grid-template-columns:none;
  align-items:center;
  gap:8px;
  padding:9px 13px;
  border-radius:999px;
  background:rgba(11,24,36,.78);
  border:1px solid rgba(145,206,246,.38);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.hud-card strong{
  margin:0;
  font-size:9px;
  line-height:1;
  letter-spacing:.025em;
  white-space:nowrap;
}
.hud-status-dot{
  width:7px;
  height:7px;
  flex:0 0 7px;
}

/* Menu mobile più raffinato: meno enorme, più aria e gerarchia. */
@media (max-width:1180px){
  .mobile-menu{
    justify-content:flex-start;
    padding:clamp(118px,18vh,160px) 28px 40px;
  }
  .mobile-menu nav{
    width:min(100%,420px);
    margin:0 auto 28px;
  }
  .mobile-menu nav a{
    font-size:clamp(29px,7.8vw,36px);
    line-height:1.08;
    letter-spacing:-.035em;
    padding:14px 2px;
  }
  .mobile-menu>.button{
    align-self:center;
    width:auto;
    min-width:200px;
    padding:14px 22px;
  }
}

@media (max-width:540px){
  /* CTA hero e contatti centrati, senza effetto barra. */
  .hero-actions{
    align-items:center;
  }
  .hero-actions .button{
    min-width:220px;
    width:auto;
  }
  .contact-pills{
    align-items:center;
  }
  .contact-pill{
    width:auto;
    min-width:210px;
  }

  /* Badge più compatto anche sul visual piccolo. */
  .hud-card{
    min-width:0;
    max-width:none;
    width:max-content;
    right:3%;
    bottom:4%;
    padding:8px 11px;
    gap:7px;
  }
  .hud-card strong{font-size:8px}

  /* Indirizzo: CTA Maps compatta e centrata. */
  .map-info-card{text-align:center}
  .map-link{
    width:auto !important;
    min-width:154px;
    justify-self:center;
    padding:12px 20px;
  }

  .mobile-menu{
    padding:112px 22px 32px;
  }
  .mobile-menu nav{
    margin-bottom:24px;
  }
  .mobile-menu nav a{
    font-size:30px;
    padding:13px 2px;
  }
}


/* === V16 final touch: badge uniforme e pulsanti coerenti === */
/* Badge hero: stessa altezza/grammatica delle altre etichette. */
.hud-card{
  display:flex;
  align-items:center;
  gap:9px;
  width:auto;
  min-width:0;
  max-width:none;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(11,24,36,.78);
  border:1px solid rgba(145,206,246,.45);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.hud-card strong{
  font-size:11px;
  line-height:1;
  font-weight:750;
  letter-spacing:.04em;
  white-space:nowrap;
}
.hud-status-dot{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:50%;
  background:#69c7ff;
  box-shadow:0 0 0 5px rgba(105,199,255,.16),0 0 15px #69c7ff;
}

/* Pulsanti secondari uguali come linguaggio ai primari. */
.contact-pill{
  border-radius:999px;
  padding:15px 24px;
  min-height:52px;
}

@media (max-width:540px){
  /* Hero CTA centrati e con stessa impronta visiva. */
  .hero-actions{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:12px;
  }
  .hero-actions .button{
    width:auto;
    min-width:230px;
    max-width:100%;
    border-radius:999px;
    justify-content:center;
  }

  /* Pulsanti contatti centrati e tondeggianti come gli altri. */
  .contact-pills{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:12px;
  }
  .contact-pill{
    width:auto;
    min-width:230px;
    max-width:100%;
    border-radius:999px;
    justify-content:center;
    padding:15px 24px;
  }

  /* Maps più compatto e centrato. */
  .map-link{
    min-width:140px;
    padding:11px 18px;
    border-radius:999px;
  }

  /* Badge hero mobile: stessa scala delle altre etichette. */
  .hud-card{
    padding:8px 10px;
    gap:9px;
    right:3%;
    bottom:4%;
  }
  .hud-card strong{
    font-size:8px;
    letter-spacing:.04em;
  }
  .hud-status-dot{
    width:8px;
    height:8px;
    flex-basis:8px;
  }
}
/* Rimuove la cornice decorativa intorno all'immagine hero */
.machine-stage::before{
  display: none !important;
}

/* Posizione più armoniosa di "Sistemi professionali" */
.hud-card{
  left: 50%;
  right: auto;
  bottom: 15%;
  transform: translateX(-50%);
}

@media (max-width: 540px){
  .hud-card{
    left: 50%;
    right: auto;
    bottom: 11%;
    transform: translateX(-50%);
  }
}


/* ============================================================
   V19 — CASIZZI QUASI DEFINITIVO / MULTIPAGINA
   ============================================================ */

/* Demo safety: outgoing contact actions are deliberately disabled. */



/* Header refinement for real pages */
.site-header.inner-header{background:rgba(7,17,27,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}
.desktop-nav a.nav-urgent{color:#a8ddff}
.desktop-nav a.nav-urgent::after{background:#78cfff}

/* Hero urgent callout — priority treatment without an intrusive popup */
.urgent-callout{
  position:relative;overflow:hidden;margin:0 0 24px;padding:17px 18px;border-radius:18px;
  border:1px solid rgba(118,204,255,.58);
  background:linear-gradient(112deg,rgba(18,70,104,.58),rgba(7,17,27,.68));
  box-shadow:0 20px 58px rgba(0,0,0,.22),0 0 0 1px rgba(111,205,255,.05),inset 0 0 34px rgba(103,196,255,.08);
  display:grid;grid-template-columns:1fr auto;gap:12px 22px;align-items:center;max-width:650px;
  animation:urgentBorderGlow 3.2s ease-in-out infinite
}
.urgent-callout::after{
  content:"";position:absolute;top:-40%;bottom:-40%;width:90px;left:-130px;
  background:linear-gradient(90deg,transparent,rgba(157,225,255,.16),transparent);
  transform:skewX(-16deg);animation:urgentSweep 4.8s ease-in-out infinite;pointer-events:none
}
.urgent-callout>*{position:relative;z-index:1}
.urgent-copy{display:flex;flex-direction:column;align-items:flex-start}
.urgent-callout .urgent-kicker{font-size:8.5px;letter-spacing:.22em;color:#8ed5ff;font-weight:850;text-transform:uppercase;display:block;margin-bottom:4px}
.urgent-callout .urgent-title{font-size:24px;line-height:1;letter-spacing:.015em;color:#fff;font-weight:900;display:block;margin-bottom:7px}
.urgent-callout .urgent-question{font-size:13.5px;line-height:1.35;color:#e4f4ff;font-weight:720;display:block}

.urgent-action{
  min-width:190px;border:0;border-radius:15px;padding:13px 16px;background:linear-gradient(135deg,#ffffff,#dff4ff);
  color:#07111b;display:flex;align-items:center;justify-content:center;gap:11px;cursor:pointer;
  box-shadow:0 8px 26px rgba(76,185,244,.24),0 0 0 1px rgba(255,255,255,.46);
  transition:transform .25s,box-shadow .25s;animation:urgentButtonGlow 2.4s ease-in-out infinite
}
.urgent-action:hover{transform:translateY(-2px) scale(1.015);box-shadow:0 12px 34px rgba(76,185,244,.36),0 0 0 1px rgba(255,255,255,.72)}
.urgent-action-dot{width:9px;height:9px;border-radius:50%;background:#35baff;box-shadow:0 0 0 6px rgba(53,186,255,.13),0 0 18px rgba(53,186,255,.95);flex:0 0 auto;animation:urgentDot 1.6s ease-in-out infinite}
.urgent-action-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}
.urgent-action-copy b{font-size:10.5px;letter-spacing:.08em;font-weight:900}
.urgent-action-copy small{font-size:9px;color:#526b7b;font-weight:750;margin-top:4px}


@keyframes urgentBorderGlow{0%,100%{border-color:rgba(118,204,255,.42);box-shadow:0 20px 58px rgba(0,0,0,.22),0 0 0 1px rgba(111,205,255,.04),inset 0 0 34px rgba(103,196,255,.06)}50%{border-color:rgba(146,221,255,.8);box-shadow:0 20px 58px rgba(0,0,0,.22),0 0 25px rgba(76,185,244,.12),inset 0 0 40px rgba(103,196,255,.11)}}
@keyframes urgentSweep{0%,55%{left:-130px;opacity:0}65%{opacity:1}90%,100%{left:110%;opacity:0}}
@keyframes urgentButtonGlow{0%,100%{box-shadow:0 8px 26px rgba(76,185,244,.20),0 0 0 1px rgba(255,255,255,.46)}50%{box-shadow:0 10px 32px rgba(76,185,244,.42),0 0 25px rgba(76,185,244,.18),0 0 0 1px rgba(255,255,255,.65)}}
@keyframes urgentDot{0%,100%{transform:scale(.8);opacity:.72}50%{transform:scale(1.18);opacity:1}}

/* Persistent urgent action: mobile only. Desktop uses header + page CTA to avoid repetition. */
.urgent-float{
  display:none;position:fixed;z-index:95;right:24px;bottom:24px;border:1px solid rgba(126,209,255,.42);
  background:rgba(7,23,34,.92);color:#fff;backdrop-filter:blur(18px);box-shadow:0 18px 48px rgba(0,0,0,.3);
  border-radius:999px;padding:11px 16px;align-items:center;gap:10px;cursor:pointer;transition:.25s
}
.urgent-float:hover{transform:translateY(-3px);border-color:#8dd8ff}.urgent-float{animation:urgentFloatGlow 3s ease-in-out infinite}@keyframes urgentFloatGlow{0%,100%{box-shadow:0 18px 48px rgba(0,0,0,.3),0 0 0 rgba(103,202,255,0)}50%{box-shadow:0 18px 48px rgba(0,0,0,.3),0 0 24px rgba(103,202,255,.16)}}
.urgent-float i{width:9px;height:9px;border-radius:50%;background:#67caff;box-shadow:0 0 0 6px rgba(103,202,255,.13),0 0 15px #67caff}
.urgent-float b{font-size:11px;letter-spacing:.035em}
.urgent-float span{font-size:10px;color:#9fcce7}

/* Homepage services hierarchy */
.service-card a.circle-button{display:grid;place-items:center}
.service-card.clima-secondary::after{opacity:.08}
.service-card.clima-secondary{opacity:.9}
.service-card.clima-secondary:hover{opacity:1}

/* Three equal audience panels */
.audiences.three-way{grid-template-columns:repeat(3,1fr)}
.audiences.three-way .audience-panel{min-height:600px}
.audiences.three-way .audience-content{width:min(430px,88%);padding:62px clamp(24px,3vw,52px)}
.audience-panel.small-business .audience-overlay{background:linear-gradient(90deg,rgba(5,14,22,.94),rgba(5,14,22,.60) 56%,rgba(5,14,22,.12))}
.audience-panel.home-lite .audience-overlay{background:linear-gradient(90deg,rgba(10,19,27,.83),rgba(10,19,27,.34) 60%,rgba(10,19,27,.06))}
.audience-panel.home-lite .audience-content{opacity:.88}

/* Work / teaser links */



/* Internal pages */
.inner-page{background:#07111b}



























































/* Compact drawer: designed to fit a normal phone viewport */
.drawer-panel{display:flex;flex-direction:column}
.drawer-panel form{gap:10px}
.drawer-panel label{gap:5px}
.drawer-panel input,.drawer-panel textarea,.drawer-panel select{padding:11px 12px}
.drawer-panel textarea{min-height:66px;max-height:92px}
.drawer-panel h2{margin-bottom:8px}
.drawer-intro{margin-bottom:18px}
.form-note{margin-top:12px}

/* inactive demo contact styling */
.js-whatsapp,.form-submit{cursor:pointer}
.js-whatsapp[aria-disabled="true"]{opacity:1}

/* three-way audiences responsive */
@media (max-width:1180px){
  .audiences.three-way{grid-template-columns:repeat(3,1fr)}
  .audiences.three-way .audience-content{padding:54px 24px;width:94%}
  .audiences.three-way .audience-content h2{font-size:34px}
  .audiences.three-way .audience-content p{font-size:14px}
}
@media (max-width:900px){
  .audiences.three-way{grid-template-columns:1fr}
  
  
  
  
  
}
@media (max-width:850px){
  
  
  
  
  .urgent-float{display:flex;left:14px;right:14px;bottom:12px;justify-content:center;padding:13px 16px}
  body{padding-bottom:66px}
  .audiences.three-way .audience-panel{min-height:590px}
  .audiences.three-way .audience-content{padding:205px 24px 34px;width:100%}
}
@media (max-width:540px){
  .urgent-callout{grid-template-columns:1fr;padding:14px 15px}
  .urgent-callout .urgent-action{grid-row:auto;grid-column:auto;width:100%;min-width:0;justify-content:center}
  
  
  
  
  
  .drawer-panel{padding:55px 18px 16px;overflow:auto}
  .drawer-panel h2{font-size:30px}
  .drawer-intro{font-size:12px;line-height:1.35;margin-bottom:11px}
  .drawer-panel form{gap:7px}
  .drawer-panel label{font-size:10px;gap:4px}
  .drawer-panel input,.drawer-panel textarea,.drawer-panel select{padding:9px 10px;border-radius:10px;font-size:13px}
  .drawer-panel textarea{min-height:54px;max-height:60px;resize:none}
  .drawer-panel .button.full{padding:12px 16px}
  .form-note{font-size:9px;margin-top:8px}
  .drawer-close{top:10px;right:14px;width:36px;height:36px}
}
@media (max-height:720px) and (max-width:540px){
  .drawer-panel{padding-top:48px}
  .drawer-panel .eyebrow{display:none}
  .drawer-panel h2{font-size:27px}
  .drawer-intro{margin-bottom:8px}
  .drawer-panel textarea{min-height:44px;max-height:46px}
}

@media (prefers-reduced-motion:reduce){.urgent-callout,.urgent-callout::after,.urgent-action,.urgent-action-dot,.urgent-float{animation:none!important}}


/* === V22 requested refinements: aligned audience headings + legal footer === */
@media (min-width:1181px){
  .audiences.three-way .audience-content h2{white-space:nowrap}
}
.site-footer-legal{
  min-height:0;
  display:block;
  padding:0;
  background:#050c12;
  border-top:1px solid var(--line);
  color:#788d9e;
}









.legal-page{min-height:70vh;padding:160px 24px 90px;background:#eef4f8;color:#071824}
.legal-wrap{max-width:900px;margin:auto;background:#fff;border:1px solid #dbe4ea;border-radius:26px;padding:46px;box-shadow:0 22px 60px rgba(30,60,80,.07)}
.legal-wrap h1{font-size:clamp(44px,6vw,72px);letter-spacing:-.05em;margin:0 0 24px}
.legal-wrap>p:not(.eyebrow){color:#566875;line-height:1.7;max-width:780px}
.legal-wrap .button{margin-top:20px;color:#071824;border-color:rgba(7,24,36,.18)}
@media (max-width:850px){
  
  
  
  
  
  .legal-page{padding:120px 16px 60px}
  .legal-wrap{padding:30px 22px;border-radius:20px}
}




/* === Compact legal footer + legal pages === */
.site-footer-legal.compact-footer{min-height:0!important;padding:0!important;background:#050c12;border-top:1px solid rgba(255,255,255,.08)}
.compact-footer .footer-compact-main{display:grid;grid-template-columns:minmax(155px,.62fr) minmax(360px,1.55fr) auto;align-items:center;gap:20px;padding:14px clamp(18px,4vw,58px) 10px}



.compact-footer .footer-company-data{display:flex;flex-direction:column;gap:2px;color:#7f93a3;font-size:8.4px;line-height:1.32;text-align:left}
.compact-footer .footer-company-data strong{font-size:9px;color:#c8d5de;font-weight:700}
.compact-footer .footer-company-data a{color:inherit;text-decoration:none;transition:color .2s ease}
.compact-footer .footer-company-data a:hover{color:#c8d5de}
.compact-footer .footer-compact-links{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.compact-footer .footer-compact-links a{color:#b9c7d1;font-size:8.5px;text-decoration:none;transition:color .2s ease}
.compact-footer .footer-compact-links a:hover{color:#fff}
.compact-footer .footer-compact-links .to-top{display:grid;place-items:center;width:24px;height:24px;border:1px solid rgba(185,199,209,.25);border-radius:50%;font-size:12px}
.compact-footer .footer-copyright{border-top:1px solid rgba(255,255,255,.055);padding:6px clamp(18px,4vw,58px) 7px;color:#536977;font-size:7.5px;line-height:1.25;text-align:center}

.legal-document{max-width:980px}
.legal-document .legal-update{font-size:12px!important;color:#82929c!important;margin-top:-14px!important}
.legal-document section{padding:4px 0 14px;border-bottom:1px solid #e6edf1}
.legal-document section:last-of-type{border-bottom:0}
.legal-document h2{font-size:20px;letter-spacing:-.02em;margin:20px 0 8px;color:#071824}
.legal-document p,.legal-document li{color:#566875;line-height:1.7;font-size:14px}
.legal-document ul{padding-left:20px;margin:8px 0 0}
.legal-document a{color:#0b79b5;text-decoration:underline;text-underline-offset:2px}
.map-frame{position:relative}

@media (max-width:850px){
  .compact-footer .footer-compact-main{grid-template-columns:1fr;gap:8px;padding:14px 18px 10px;text-align:center}
  
  .compact-footer .footer-company-data{text-align:center;font-size:8px}
  .compact-footer .footer-company-data strong{font-size:8.7px}
  .compact-footer .footer-compact-links{justify-content:center}
  .compact-footer .footer-copyright{padding:6px 18px 8px;font-size:7px}
  .legal-document h2{font-size:18px}
  .legal-document p,.legal-document li{font-size:13px}
}

/* === V26 PREMIUM HOME REFINEMENT === */
/* Navigation: fewer competing links on desktop; actions remain visually separate. */
@media (min-width:1181px){
  .desktop-nav{gap:32px}
}

/* Hero: one conversion path per intent, fewer AI-like decorative labels. */
.hero-actions{margin-top:18px}
.hero-actions .button.ghost{min-width:150px}
.tech-chip.chip-1{left:7%;top:51%}
.tech-chip.chip-3{right:2%;top:46%}
.urgent-callout{animation:none}
.urgent-callout::after{display:none}
.urgent-action{animation:none}
.urgent-action-dot{animation:urgentDot 2.8s ease-in-out infinite}

/* Services heading: two-column composition after removing the redundant contact CTA. */
.services .section-heading{
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  gap:clamp(44px,6vw,90px);
}


/* Audience segmentation: clearer B2B taxonomy, equal visual weight without implying equal revenue weight. */
@media (min-width:901px){
  .audiences.three-way .audience-content h2{
    white-space:normal;
    height:2.10em;
    min-height:2.10em;
    display:block;
    line-height:1.05;
    margin-bottom:12px;
  }
}

/* Footer: increase legibility without making it taller. */
.compact-footer .footer-company-data{font-size:9.5px;line-height:1.3}
.compact-footer .footer-company-data strong{font-size:10px}
.compact-footer .footer-compact-links a{font-size:10px}
.compact-footer .footer-copyright{font-size:8px}

/* Mobile: reduce the very long three-panel section while preserving image/text readability. */
@media (max-width:900px){
  .audiences.three-way .audience-panel{min-height:520px}
  .audiences.three-way .audience-content{
    padding:clamp(175px,40vw,225px) 24px 30px;
  }
  .audiences.three-way .audience-content h2{
    min-height:0;
    font-size:34px;
  }
}

@media (max-width:540px){
  .urgent-callout{padding:13px 14px}
  .urgent-callout .urgent-title{font-size:21px}
  .urgent-callout .urgent-question{font-size:12.5px}
  .audiences.three-way .audience-panel{min-height:500px}
  .audiences.three-way .audience-content{padding:170px 22px 28px}
  .audiences.three-way .audience-content h2{font-size:32px}
  .audiences.three-way .audience-content p{font-size:14px}
  .audiences.three-way .audience-content ul{margin:16px 0 20px}
  .compact-footer .footer-company-data{font-size:9px}
  .compact-footer .footer-company-data strong{font-size:9.5px}
  .compact-footer .footer-compact-links a{font-size:9.5px}
}


/* === V27 micro-refinement ===
   Desktop: i tre titoli dei settori occupano lo stesso spazio partendo dalla stessa quota.
   Mobile: altezza naturale. */
@media (max-width:900px){
  .audiences.three-way .audience-content h2{
    height:auto;
    min-height:0;
  }
}


/* ============================================================
   V28 — audience alignment + responsive correction
   ============================================================ */

/* DESKTOP / TABLET LANDSCAPE:
   all three contents start from the exact same vertical coordinate. */
@media (min-width:901px){
  .audiences.three-way .audience-panel{
    align-items:stretch;
  }

  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    box-sizing:border-box;
    height:100%;
    width:min(430px,88%);
    max-width:none;
    margin:0;
    padding:
      clamp(150px,10.5vw,180px)
      clamp(24px,3vw,52px)
      48px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
  }

  .audiences.three-way .audience-content h2{
    height:2.10em;
    min-height:2.10em;
    margin:14px 0 12px;
    line-height:1.05;
    display:block;
  }

  .audiences.three-way .audience-content p{
    min-height:3.10em;
  }

  .audiences.three-way .audience-content ul{
    margin:28px 0 0;
  }

  .audiences.three-way .audience-content .button{
    margin-top:auto;
    align-self:flex-start;
  }
}

/* MOBILE + PORTRAIT TABLET:
   natural height, no forced 500/590px panel and no desktop alignment rules. */
@media (max-width:900px){
  .audiences.three-way{
    grid-template-columns:1fr;
  }

  .audiences.three-way .audience-panel{
    position:relative;
    min-height:0 !important;
    height:auto;
    align-items:stretch;
    overflow:hidden;
    background:#07111b !important;
    background-image:none !important;
  }

  .audiences.three-way .audience-panel::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    right:0;
    bottom:auto;
    width:100%;
    height:clamp(220px,56.25vw,360px);
    background-image:var(--panel);
    background-size:cover;
    background-position:var(--panelpos,center);
    background-repeat:no-repeat;
    transform:none !important;
    z-index:0;
  }

  .audiences.three-way .audience-panel:hover::before{
    transform:none !important;
  }

  .audiences.three-way .audience-overlay,.audiences.three-way .audience-panel.home .audience-overlay,.audiences.three-way .audience-panel.home-lite .audience-overlay{
    display:block;
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(
      to bottom,
      rgba(7,17,27,.03) 0,
      rgba(7,17,27,.10) 22%,
      rgba(7,17,27,.60) 42%,
      rgba(7,17,27,.95) 56%,
      #07111b 64%,
      #07111b 100%
    );
  }

  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    position:relative;
    z-index:2;
    width:100%;
    max-width:none;
    height:auto;
    margin:0;
    padding:
      clamp(210px,54vw,340px)
      22px
      34px;
    display:block;
    opacity:1;
  }

  .audiences.three-way .audience-content h2{
    height:auto;
    min-height:0;
    margin:12px 0 10px;
    font-size:clamp(32px,8.5vw,40px);
    line-height:1.05;
  }

  .audiences.three-way .audience-content p{
    min-height:0;
    font-size:15px;
    line-height:1.55;
    margin-bottom:0;
  }

  .audiences.three-way .audience-content ul{
    margin:18px 0 22px;
    gap:8px;
  }

  .audiences.three-way .audience-content .button{
    margin-top:0;
  }
}

/* Small phones: keep content readable and inside viewport width. */
@media (max-width:540px){
  .audiences.three-way .audience-panel::before{
    height:56.25vw;
    min-height:205px;
    max-height:300px;
  }

  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    padding:
      clamp(205px,54vw,285px)
      20px
      30px;
  }

  .audiences.three-way .audience-content h2{
    font-size:32px;
  }

  .audiences.three-way .audience-content p{
    font-size:14px;
  }

  /* Hero visual stays within the device width even with all four labels restored. */
  .hero-visual{
    width:100%;
    max-width:100%;
    overflow:hidden;
  }

  .machine-stage{
    width:100%;
    max-width:410px;
    margin-inline:auto;
  }

  .tech-chip{
    max-width:46vw;
    white-space:nowrap;
  }
}

/* Restore the compact footer layout on mobile after the previous full stylesheet replacement. */
@media (max-width:850px){
  .compact-footer .footer-compact-main{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "brand links"
      "data data";
    align-items:center;
    gap:7px 12px;
    padding:10px 14px 7px;
    text-align:left;
  }

  

  .compact-footer .footer-company-data{
    grid-area:data;
    justify-self:center;
    width:100%;
    text-align:center;
    gap:1px;
    font-size:9px;
    line-height:1.25;
  }

  .compact-footer .footer-company-data strong{
    font-size:9.5px;
  }

  .compact-footer .footer-compact-links{
    grid-area:links;
    justify-self:end;
    justify-content:flex-end;
    gap:9px;
    flex-wrap:nowrap;
  }

  .compact-footer .footer-copyright{
    padding:5px 14px 6px;
    font-size:7.5px;
  }
}

/* ============================================================
   V31 — RESPONSIVE SYSTEM / MOBILE-FIRST FINAL PASS
   Solo layout e responsive: nessun contenuto o titolo modificato.
   ============================================================ */

/* Robustezza generale contro overflow accidentali */
img,svg,video,iframe{max-width:100%}
main,section,article,div{min-width:0}

@media (max-width:900px){
  :root{--header:68px}

  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}

  /* Header / menu */
  .site-header,.site-header.inner-header{
    height:68px;
    padding-left:max(18px,env(safe-area-inset-left,0px));
    padding-right:max(18px,env(safe-area-inset-right,0px));
    grid-template-columns:1fr auto;
    background:rgba(7,17,27,.93);
    border-color:rgba(255,255,255,.08);
    backdrop-filter:blur(16px);
  }
  .site-header.scrolled{height:62px}
  
  
  .desktop-nav{display:none!important}
  .menu-toggle{display:block;width:42px;height:42px}

  .mobile-menu{
    inset:0;
    padding:
      calc(92px + env(safe-area-inset-top,0px))
      max(22px,env(safe-area-inset-right,0px))
      calc(34px + env(safe-area-inset-bottom,0px))
      max(22px,env(safe-area-inset-left,0px));
    overflow-y:auto;
    justify-content:flex-start;
  }
  .mobile-menu nav{width:100%;max-width:460px;margin:0 auto}
  .mobile-menu nav a{font-size:clamp(28px,7.8vw,36px);line-height:1.05;padding:13px 2px}

  /* HOME — hero: naturale, senza ritagli né altezza forzata */
  .hero{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    grid-template-columns:1fr;
    align-content:start;
    padding:
      calc(98px + env(safe-area-inset-top,0px))
      max(20px,env(safe-area-inset-right,0px))
      50px
      max(20px,env(safe-area-inset-left,0px));
    overflow:hidden;
  }
  .hero-copy{width:100%;max-width:660px;padding-top:0;margin:0 auto}
  .hero .eyebrow{
    font-size:9px;
    letter-spacing:.20em;
    line-height:1.45;
    margin-bottom:18px;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .hero h1{
    font-size:clamp(43px,11.8vw,62px);
    line-height:.98;
    letter-spacing:-.05em;
    max-width:100%;
  }
  .hero-lead{
    font-size:15px;
    line-height:1.58;
    margin:24px 0 22px;
    max-width:100%;
  }

  .urgent-callout{
    width:100%;
    max-width:none;
    grid-template-columns:1fr;
    gap:12px;
    padding:14px;
    margin:0 0 16px;
    border-radius:17px;
  }
  .urgent-callout .urgent-kicker{font-size:8px;letter-spacing:.18em}
  .urgent-callout .urgent-title{font-size:21px;line-height:1.02}
  .urgent-callout .urgent-question{font-size:12.5px}
  .urgent-action{
    width:100%;
    min-width:0;
    padding:12px 14px;
    border-radius:13px;
  }
  .urgent-action-copy b{font-size:10px}
  .urgent-action-copy small{font-size:8.5px}

  .hero-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    margin-top:0;
  }
  .hero-actions .button{
    width:auto!important;
    min-width:0!important;
    min-height:46px;
    padding:13px 18px;
    font-size:12px;
  }

  .hero-visual{
    width:100%;
    height:auto!important;
    min-height:0!important;
    margin:24px auto 0!important;
    padding:0;
    overflow:hidden;
  }
  .machine-stage{
    width:min(100%,560px)!important;
    max-width:560px!important;
    aspect-ratio:1.06/1;
    margin:0 auto;
    scale:1!important;
  }
  .machine-image{
    width:96%!important;
    height:88%!important;
    left:50%!important;
    right:auto!important;
    top:50%!important;
    object-fit:contain!important;
    object-position:center!important;
    mask-image:none!important;
    -webkit-mask-image:none!important;
    transform:translate(-50%,-50%)!important;
  }
  .machine-halo{right:8%;top:13%;width:78%;height:70%}
  .tech-chip{font-size:8px;padding:8px 10px;max-width:46%;white-space:nowrap}
  .chip-1{left:1%;top:51%}
  .chip-2{left:24%;top:14%}
  .chip-3{right:1%;top:43%}
  .hud-card{left:50%;right:auto;bottom:15%;transform:translateX(-50%);padding:8px 10px}
  .hud-card strong{font-size:8px}
  .scroll-cue{display:none}

  /* Heritage */
  .heritage-inner{
    grid-template-columns:1fr;
    gap:22px;
    min-height:0;
    padding:44px max(20px,env(safe-area-inset-right,0px)) 46px max(20px,env(safe-area-inset-left,0px));
  }
  .date-line{gap:13px;flex-wrap:wrap}
  .date-line strong{font-size:clamp(44px,12vw,58px)}
  .date-line span{font-size:30px}
  .heritage-copy{padding-top:20px}
  .heritage-copy p{font-size:16px;line-height:1.55}
  .heritage-stat{display:none}

  /* Services: swipe naturale, card leggibili e non tagliate */
  .services{padding:62px max(20px,env(safe-area-inset-right,0px)) 68px max(20px,env(safe-area-inset-left,0px))}
  .services .section-heading,.section-heading,.section-heading.compact{
    grid-template-columns:1fr!important;
    gap:18px!important;
    margin-bottom:30px;
  }
  .section-heading h2,.contact h2{font-size:clamp(38px,10vw,50px);line-height:1.02}
  
  .service-rail{
    display:flex;
    gap:10px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    padding:0 20px 14px 0;
    margin:0 -20px 0 0;
    scrollbar-width:none;
  }
  .service-rail::-webkit-scrollbar{display:none}
  .service-card{
    flex:0 0 min(76vw,280px);
    min-width:0!important;
    height:330px;
    scroll-snap-align:start;
    padding:20px 16px;
  }
  .service-card h3{font-size:18px}
  .circle-button{width:40px;height:40px;flex:0 0 40px}

  /* Settori: come la precedente versione mobile, ma in tre pannelli. */
  .audiences.three-way{display:block}
  .audiences.three-way .audience-panel{
    position:relative;
    min-height:0!important;
    height:auto!important;
    display:block!important;
    overflow:hidden;
    background:#07111b!important;
    background-image:none!important;
  }
  .audiences.three-way .audience-panel::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:0 0 auto 0;
    width:100%;
    height:clamp(225px,58vw,360px);
    background-image:var(--panel);
    background-size:cover;
    background-position:var(--panelpos,center);
    background-repeat:no-repeat;
    transform:none!important;
  }
  .audiences.three-way .audience-panel:hover::before{transform:none!important}
  .audiences.three-way .audience-overlay,.audiences.three-way .audience-panel.home .audience-overlay,.audiences.three-way .audience-panel.home-lite .audience-overlay{
    position:absolute;
    z-index:1;
    inset:0;
    display:block;
    background:linear-gradient(
      to bottom,
      rgba(7,17,27,.02) 0%,
      rgba(7,17,27,.10) 24%,
      rgba(7,17,27,.55) 39%,
      rgba(7,17,27,.93) 54%,
      #07111b 63%,
      #07111b 100%
    );
  }
  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    position:relative;
    z-index:2;
    width:100%;
    max-width:none;
    height:auto!important;
    min-height:0!important;
    margin:0;
    padding:clamp(205px,52vw,325px) 20px 34px;
    display:block;
    opacity:1;
  }
  .audiences.three-way .mini-index{font-size:8.5px;letter-spacing:.18em;margin-bottom:7px}
  .audiences.three-way .audience-content h2{
    height:auto!important;
    min-height:0!important;
    font-size:clamp(32px,9vw,42px);
    line-height:1.03;
    margin:10px 0 10px;
  }
  .audiences.three-way .audience-content p{
    min-height:0!important;
    font-size:14px;
    line-height:1.55;
    margin:0;
    max-width:540px;
  }
  .audiences.three-way .audience-content ul{margin:17px 0 22px;gap:8px;font-size:13px}
  .audiences.three-way .audience-content .button{margin-top:0;min-height:44px}

  /* Work */
  
  
  
  
  
  
  
  

  /* Contatti home */
  .contact,.contact-v4{grid-template-columns:1fr}
  .contact-copy,.contact-v4 .contact-copy{padding:62px 20px 26px}
  .contact-copy>p:not(.eyebrow){font-size:15px;line-height:1.6}
  .contact-pills{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-start}
  .contact-pill{width:auto!important;min-width:0!important;min-height:46px;padding:13px 18px}
  .contact-v4 .contact-map{padding:0 20px 62px;min-height:0}
  .map-shell{gap:10px}
  .map-info-card{min-height:0;padding:16px;border-radius:18px;gap:14px}
  .map-info-card strong{font-size:26px}
  .map-link{width:auto!important;min-width:138px;padding:11px 16px}
  .map-frame{height:320px!important;min-height:320px!important;border-radius:18px}

  /* Pagine interne */
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* Legal */
  .legal-page{padding:100px 14px 48px}
  .legal-wrap{padding:26px 20px;border-radius:18px}
  .legal-wrap h1{font-size:clamp(38px,10vw,52px);margin-bottom:18px}
  .legal-document h2{font-size:19px}
  .legal-document p,.legal-document li{font-size:13px;line-height:1.65}

  /* Footer: compatto, leggibile, safe-area */
  .compact-footer .footer-compact-main{
    grid-template-columns:1fr auto;
    grid-template-areas:"brand links" "data data";
    align-items:center;
    gap:7px 10px;
    padding:10px max(14px,env(safe-area-inset-right,0px)) 7px max(14px,env(safe-area-inset-left,0px));
    text-align:left;
  }
  
  
  
  .compact-footer .footer-company-data{
    grid-area:data;
    justify-self:center;
    width:100%;
    text-align:center;
    gap:1px;
    font-size:9px;
    line-height:1.28;
  }
  .compact-footer .footer-company-data strong{font-size:9.5px}
  .compact-footer .footer-compact-links{grid-area:links;justify-self:end;justify-content:flex-end;gap:8px;flex-wrap:nowrap}
  .compact-footer .footer-compact-links a{font-size:9.5px}
  .compact-footer .footer-compact-links .to-top{width:28px;height:28px;flex:0 0 28px}
  .compact-footer .footer-copyright{padding:5px 14px 7px;font-size:7.5px}

  /* Form drawer: full-screen su mobile, sempre fruibile */
  .drawer-panel{
    width:100vw;
    max-width:100vw;
    height:100dvh;
    padding:
      calc(50px + env(safe-area-inset-top,0px))
      max(16px,env(safe-area-inset-right,0px))
      calc(18px + env(safe-area-inset-bottom,0px))
      max(16px,env(safe-area-inset-left,0px));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .drawer-panel h2{font-size:31px;line-height:1.05}
  .drawer-intro{font-size:12px;line-height:1.4;margin-bottom:12px}
  .drawer-panel form{gap:8px}
  .drawer-panel label{font-size:10px;gap:4px}
  .drawer-panel input,.drawer-panel textarea,.drawer-panel select{font-size:16px;padding:10px 11px}
  .drawer-panel textarea{min-height:58px;max-height:86px}
  .drawer-close{top:10px;right:12px;width:38px;height:38px}

  /* CTA urgente persistente: touch target e safe area */
  .urgent-float{
    display:flex;
    left:max(12px,env(safe-area-inset-left,0px));
    right:max(12px,env(safe-area-inset-right,0px));
    bottom:calc(10px + env(safe-area-inset-bottom,0px));
    min-height:48px;
    justify-content:center;
    padding:12px 14px;
  }
}

@media (max-width:600px){
  .hero{
    padding-top:calc(88px + env(safe-area-inset-top,0px));
    padding-left:max(18px,env(safe-area-inset-left,0px));
    padding-right:max(18px,env(safe-area-inset-right,0px));
  }
  .hero h1{font-size:clamp(41px,12.5vw,54px)}
  .hero-lead{font-size:14.5px;margin-top:21px}
  .hero-actions{gap:8px}
  .hero-actions .button{padding:12px 15px;font-size:11px}
  .machine-stage{max-width:430px!important}
  .tech-chip{font-size:7.5px;padding:7px 9px;max-width:48%}
  .hud-card{padding:7px 9px}
  .hud-card strong{font-size:7.5px}

  .services{padding-left:18px;padding-right:18px}
  .service-rail{margin-right:-18px;padding-right:18px}
  .service-card{flex-basis:min(79vw,270px);height:310px}

  .audiences.three-way .audience-panel::before{height:58vw;min-height:205px;max-height:285px}
  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    padding:clamp(195px,52vw,275px) 18px 30px;
  }
  .audiences.three-way .audience-content h2{font-size:32px}
  .audiences.three-way .audience-content p{font-size:14px}

  
  .contact-copy,.contact-v4 .contact-copy{padding-left:18px;padding-right:18px}
  .contact-v4 .contact-map{padding-left:18px;padding-right:18px}
  .map-info-card{display:grid;grid-template-columns:1fr;gap:12px;text-align:center}
  .map-link{justify-self:center}
  .map-frame{height:290px!important;min-height:290px!important}

  
  
  
  

  
  

  .contact-pills{align-items:flex-start}
  .contact-pill{font-size:11px;padding:12px 16px}
}

@media (max-width:360px){
  .site-header,.site-header.inner-header{padding-left:14px;padding-right:14px}
  
  

  .hero{padding-left:16px;padding-right:16px}
  .hero .eyebrow{font-size:8px;letter-spacing:.15em}
  .hero h1{font-size:40px}
  .hero-lead{font-size:14px}
  .urgent-callout .urgent-title{font-size:19px}
  .hero-actions .button{padding:11px 13px;font-size:10.5px}
  .tech-chip{font-size:7px;padding:6px 8px}

  .section-heading h2,.contact h2{font-size:36px}
  .service-card{flex-basis:82vw;height:295px}
  .audiences.three-way .audience-content h2{font-size:30px}

  
  
  
  .legal-page{padding-left:10px;padding-right:10px}
  .legal-wrap{padding:22px 16px}
}

/* Telefoni in orizzontale: evita hero e menu troppo alti. */
@media (max-width:900px) and (max-height:520px) and (orientation:landscape){
  .mobile-menu{padding-top:78px}
  .mobile-menu nav a{font-size:25px;padding:8px 2px}
  .hero{padding-top:82px}
  .hero-visual{max-width:520px;margin-top:18px!important}
  .machine-stage{max-width:440px!important}
  .urgent-float{min-height:44px;padding:9px 13px}
}

/* ============================================================
   V34 — SETTORI MOBILE: replica dell'effetto richiesto
   SOLO questa sezione.
   Foto sopra; mini-label + titolo appoggiati sulla parte bassa della foto;
   descrizione, elenco e CTA nel blocco scuro sottostante.
   ============================================================ */

@media (max-width:850px){

  .audiences.three-way{
    grid-template-columns:1fr;
  }

  .audiences.three-way .audience-panel{
    --mobile-photo-h:220px;
    position:relative;
    min-height:0 !important;
    height:auto !important;
    display:block !important;
    overflow:hidden !important;
    background:#07111b !important;
    background-image:none !important;
  }

  /* Una sola area immagine, con altezza uguale per tutti i pannelli.
     cover normalizza anche immagini con proporzioni diverse. */
  .audiences.three-way .audience-panel::before{
    content:"" !important;
    position:absolute !important;
    z-index:0 !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    height:var(--mobile-photo-h) !important;
    width:100% !important;
    background-image:var(--panel) !important;
    background-size:cover !important;
    background-position:var(--panelpos,center) !important;
    background-repeat:no-repeat !important;
    transform:none !important;
  }

  .audiences.three-way .audience-panel:hover::before{
    transform:none !important;
  }

  /* Gradiente limitato SOLO alla foto:
     il fondo sotto rimane pienamente scuro. */
  .audiences.three-way .audience-overlay,.audiences.three-way .audience-panel.home .audience-overlay,.audiences.three-way .audience-panel.home-lite .audience-overlay{
    position:absolute !important;
    display:block !important;
    z-index:1 !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    bottom:auto !important;
    height:var(--mobile-photo-h) !important;
    background:linear-gradient(
      to bottom,
      rgba(5,14,22,.04) 0%,
      rgba(5,14,22,.10) 45%,
      rgba(5,14,22,.42) 70%,
      rgba(7,17,27,.92) 100%
    ) !important;
  }

  /* Il contenuto vero parte DOPO la foto. */
  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    position:relative !important;
    z-index:2 !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    margin:var(--mobile-photo-h) 0 0 !important;
    padding:18px 18px 28px !important;
    background:#07111b !important;
    opacity:1 !important;
  }

  /* SOLO etichetta e titolo risalgono sulla fotografia. */
  .audiences.three-way .mini-index{
    position:absolute !important;
    left:18px !important;
    top:-62px !important;
    margin:0 !important;
    color:#a7c7df !important;
    font-size:8px !important;
    letter-spacing:.18em !important;
    z-index:3 !important;
  }

  .audiences.three-way .audience-content h2{
    position:absolute !important;
    left:18px !important;
    right:18px !important;
    top:-42px !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    color:#fff !important;
    font-size:clamp(20px,5.8vw,27px) !important;
    line-height:1.04 !important;
    letter-spacing:-.04em !important;
    white-space:nowrap !important;
    z-index:3 !important;
  }

  /* Tutto il resto resta nel pannello nero sotto la foto. */
  .audiences.three-way .audience-content p{
    position:relative !important;
    margin:0 !important;
    min-height:0 !important;
    color:#d2dbe3 !important;
    font-size:14px !important;
    line-height:1.55 !important;
  }

  .audiences.three-way .audience-content ul{
    margin:18px 0 20px !important;
    gap:7px !important;
    font-size:12px !important;
  }

  .audiences.three-way .audience-content .button{
    margin-top:0 !important;
  }
}

@media (max-width:540px){
  .audiences.three-way .audience-panel{
    --mobile-photo-h:205px;
  }

  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    padding:17px 16px 26px !important;
  }

  .audiences.three-way .mini-index{
    left:16px !important;
    top:-59px !important;
  }

  .audiences.three-way .audience-content h2{
    left:16px !important;
    right:16px !important;
    top:-40px !important;
  }

  .audiences.three-way .audience-content p{
    font-size:13px !important;
  }

  .audiences.three-way .audience-content ul{
    font-size:11px !important;
    margin:16px 0 19px !important;
  }
}

/* Molto stretti: mantieni il titolo dentro l'immagine senza schiacciarlo. */
@media (max-width:360px){
  .audiences.three-way .audience-panel{
    --mobile-photo-h:195px;
  }

  .audiences.three-way .audience-content h2{
    font-size:20px !important;
  }
}

/* ============================================================
   V35 — MOBILE SETTORI: immagine completa, senza crop laterale
   Mantiene esattamente il layout V34.
   ============================================================ */
@media (max-width:850px){
  .audiences.three-way .audience-panel::before{
    background-size:100% auto !important;
    background-position:top center !important;
    background-color:#07111b !important;
  }
}


/* ============================================================
   V36 — HERO MOBILE: immagine più nitida + CTA affiancate
   Solo comportamento mobile/tablet, desktop invariato.
   ============================================================ */

@media (max-width:850px){

  /* Evita il compositing 3D sul mobile: mantiene l'immagine più netta. */
  .hero-visual{
    perspective:none !important;
  }

  .machine-stage{
    transform-style:flat !important;
    transform:none !important;
    transition:none !important;
  }

  /* Sul mobile usiamo l'immagine pulita, senza blend/mask che la ammorbidiscono. */
  .machine-image{
    filter:none !important;
    mix-blend-mode:normal !important;
    opacity:1 !important;
    mask-image:none !important;
    -webkit-mask-image:none !important;
    object-fit:contain !important;
    object-position:center !important;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    image-rendering:auto;
  }

  /* CTA principali su una sola riga, fluidamente ridimensionate. */
  .hero-actions{
    display:grid !important;
    grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr) !important;
    gap:8px !important;
    width:min(100%,420px);
    align-items:stretch;
    justify-content:start;
  }

  .hero-actions .button{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    padding:12px 12px !important;
    font-size:11.5px !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    text-align:center;
  }
}

@media (max-width:380px){
  .hero-actions{
    gap:7px !important;
  }

  .hero-actions .button{
    padding:11px 8px !important;
    font-size:10.5px !important;
  }
}

@media (max-width:320px){
  .hero-actions .button{
    font-size:10px !important;
    padding-inline:6px !important;
  }
}


/* ============================================================
   V37 — CTA MOBILE: pulsanti uguali e affiancati
   Hero + sezione contatti. Desktop invariato.
   ============================================================ */

@media (max-width:850px){

  /* HERO: due pulsanti identici */
  .hero-actions{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    width:min(100%,420px) !important;
    align-items:stretch !important;
  }

  .hero-actions .button{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:44px !important;
    padding:11px 10px !important;
    font-size:11px !important;
    line-height:1.1 !important;
    justify-content:center !important;
    white-space:nowrap !important;
  }

  /* CONTATTI: stessa identica logica visiva della hero */
  .contact-pills{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    width:min(100%,420px) !important;
    margin-top:26px !important;
    align-items:stretch !important;
  }

  .contact-pill{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:44px !important;
    padding:11px 10px !important;
    border-radius:999px !important;
    font-size:11px !important;
    line-height:1.1 !important;
    justify-content:center !important;
    white-space:nowrap !important;
  }
}

@media (max-width:380px){
  .hero-actions,.contact-pills{
    gap:7px !important;
  }

  .hero-actions .button,.contact-pill{
    padding-inline:7px !important;
    font-size:10.2px !important;
  }
}

@media (max-width:320px){
  .hero-actions .button,.contact-pill{
    font-size:9.6px !important;
    padding-inline:5px !important;
  }
}


/* ============================================================
   V38 — FOOTER DESKTOP: centro reale + "torna su" minimale
   Mobile invariato.
   ============================================================ */

@media (min-width:851px){
  .compact-footer .footer-compact-main{
    grid-template-columns:1fr auto 1fr !important;
    align-items:center !important;
    gap:24px !important;
  }

  

  .compact-footer .footer-company-data{
    justify-self:center !important;
    text-align:center !important;
    width:max-content !important;
    max-width:100% !important;
  }

  .compact-footer .footer-compact-links{
    justify-self:end !important;
    justify-content:flex-end !important;
  }
}

/* Torna su: niente cerchio, solo una freccia tecnica pulita */
.compact-footer .footer-compact-links .to-top{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:30px !important;
  height:30px !important;
  flex:0 0 30px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  overflow:visible !important;
  transition:transform .2s ease,opacity .2s ease !important;
  opacity:.78;
}

.compact-footer .footer-compact-links .to-top::before{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:8px !important;
  width:8px !important;
  height:8px !important;
  border-left:1.5px solid #b9c7d1 !important;
  border-top:1.5px solid #b9c7d1 !important;
  transform:translateX(-50%) rotate(45deg) !important;
}

.compact-footer .footer-compact-links .to-top::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:9px !important;
  width:1.5px !important;
  height:12px !important;
  border-radius:999px !important;
  background:#b9c7d1 !important;
  transform:translateX(-50%) !important;
}

.compact-footer .footer-compact-links .to-top:hover{
  transform:translateY(-3px) !important;
  opacity:1 !important;
}


/* ============================================================
   V39 — FOOTER: pulsante "torna su" più raffinato
   ============================================================ */

.compact-footer .footer-compact-links .to-top{
  position:relative !important;
  display:inline-grid !important;
  place-items:center !important;
  width:30px !important;
  height:30px !important;
  flex:0 0 30px !important;
  padding:0 !important;
  margin:0 !important;
  border:1px solid rgba(185,199,209,.22) !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.025) !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  overflow:hidden !important;
  opacity:.88 !important;
  transition:
    transform .22s ease,
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease !important;
}

/* Chevron minimale, senza stelo: più pulito e "premium". */
.compact-footer .footer-compact-links .to-top::before{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:7px !important;
  height:7px !important;
  border-left:1.5px solid #c8d5de !important;
  border-top:1.5px solid #c8d5de !important;
  transform:translate(-50%,-34%) rotate(45deg) !important;
  transform-origin:center !important;
}

/* Rimuove lo stelo della versione precedente. */
.compact-footer .footer-compact-links .to-top::after{
  display:none !important;
  content:none !important;
}

.compact-footer .footer-compact-links .to-top:hover{
  transform:translateY(-2px) !important;
  border-color:rgba(99,189,252,.65) !important;
  background:rgba(99,189,252,.08) !important;
  box-shadow:0 0 18px rgba(99,189,252,.10) !important;
  opacity:1 !important;
}
.audiences.three-way .mini-index{
  display:none !important;
}
/* Card servizi mobile: proporzioni verticali come versione precedente */
@media (max-width:850px){
  .service-card{
    flex:0 0 220px !important;
    min-width:220px !important;
    width:220px !important;
    height:320px !important;
  }
}

@media (max-width:540px){
  .service-card{
    flex-basis:210px !important;
    min-width:210px !important;
    width:210px !important;
    height:300px !important;
  }
}

@media (max-width:360px){
  .service-card{
    flex-basis:200px !important;
    min-width:200px !important;
    width:200px !important;
    height:290px !important;
  }
}
/* Elimina la riga/seam tra foto e contenuto nei pannelli mobile */
@media (max-width:850px){

  .audiences.three-way .audience-panel::before,.audiences.three-way .audience-overlay,.audiences.three-way .audience-panel.home .audience-overlay,.audiences.three-way .audience-panel.home-lite .audience-overlay{
    height:calc(var(--mobile-photo-h) + 2px) !important;
  }

  .audiences.three-way .audience-content,.audiences.three-way .audience-panel.home .audience-content,.audiences.three-way .audience-panel.home-lite .audience-content{
    margin-top:calc(var(--mobile-photo-h) - 1px) !important;
  }
}
/* Header fisso pagine Privacy / Cookie */
.site-header.legal-header,.site-header.legal-header.scrolled,body:has(.legal-page) > .site-header,body:has(.legal-page) > .site-header.scrolled{
  height: 72px !important;
  background: #0b1824 !important;
  background-image: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10) !important;
}

@media (max-width: 850px){
  .site-header.legal-header,.site-header.legal-header.scrolled,body:has(.legal-page) > .site-header,body:has(.legal-page) > .site-header.scrolled{
    height: 64px !important;
  }
}


/* ============================================================
   V40 — MOBILE TYPOGRAPHY PARITY + SMART URGENT FLOAT
   Ripristina la scala tipografica percepita della demo originale
   senza cambiare struttura, contenuti o layout già approvati.
   ============================================================ */

/* Il pulsante urgente persistente esiste su mobile, ma parte nascosto.
   JS lo mostra solo dopo che l'utente ha superato il box urgente della hero
   (o dopo un primo tratto di scroll sulle pagine interne). */
@media (max-width:850px){
  .urgent-float{
    display:flex !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(12px) !important;
    transition:
      opacity .24s ease,
      visibility .24s ease,
      transform .24s ease,
      border-color .25s ease !important;
  }

  .urgent-float.is-visible{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
  }

  /* Scala tipografica della demo */
  
  

  .hero .eyebrow{
    font-size:11px !important;
    line-height:1.45 !important;
  }

  .hero h1{
    font-size:clamp(48px,14vw,72px) !important;
  }

  .hero-lead{
    font-size:16px !important;
    line-height:1.62 !important;
  }

  .heritage-copy p{
    font-size:18px !important;
    line-height:1.5 !important;
  }

  .section-heading h2,.contact h2{
    font-size:clamp(40px,10.8vw,46px) !important;
  }

  

  .service-card h3{
    font-size:18px !important;
  }

  .audiences.three-way .audience-content h2{
    font-size:clamp(34px,9.2vw,36px) !important;
  }

  .audiences.three-way .audience-content p{
    font-size:15px !important;
    line-height:1.55 !important;
  }

  .audiences.three-way .audience-content ul{
    font-size:13px !important;
  }

  

  

  .contact-copy>p:not(.eyebrow){
    font-size:17px !important;
    line-height:1.65 !important;
  }

  .contact-pill{
    font-size:12px !important;
  }

  .hero-actions .button{
    font-size:12px !important;
  }

  /* Pagine interne: stessa scala visiva della home */
  

  

  

  

  

  

  
}

@media (max-width:540px){
  .hero h1{
    font-size:clamp(45px,13vw,62px) !important;
  }

  .section-heading h2,.contact h2{
    font-size:clamp(38px,11vw,42px) !important;
  }

  .audiences.three-way .audience-content h2{
    font-size:36px !important;
  }

  .tech-chip{
    font-size:8px !important;
  }

  .hud-card strong{
    font-size:8px !important;
  }

  
}

/* Sui telefoni molto stretti manteniamo leggibilità senza overflow. */
@media (max-width:360px){
  
  .hero h1{font-size:43px !important}
  .hero .eyebrow{font-size:9.5px !important}
  .hero-lead{font-size:15px !important}
  .section-heading h2,.contact h2{font-size:38px !important}
  .audiences.three-way .audience-content h2{font-size:34px !important}
  .hero-actions .button,.contact-pill{font-size:11px !important}
  
}


/* ============================================================
   V41 — PAGINE INTERNE: ARCHITETTURE DIFFERENZIATE
   La home resta il riferimento visivo. Le pagine interne condividono
   palette e componenti ma non la stessa composizione.
   ============================================================ */

/* Shared refinements */
.inner-page .button.dark-button{background:#07111b;color:#fff;border-color:#07111b}
.inner-page .button.dark-button:hover{background:#12324a;border-color:#12324a}
.inner-page .eyebrow.dark{color:#36739a}


/* ------------------------------------------------------------
   REFRIGERAZIONE — corporate / tecnica
   ------------------------------------------------------------ */































/* ------------------------------------------------------------
   CELLE — prodotto su misura / processo
   ------------------------------------------------------------ */
































/* ------------------------------------------------------------
   PRONTO INTERVENTO — pagina operativa d'emergenza
   ------------------------------------------------------------ */
.emergency-page{background:#07111b}


.emergency-hero-copy{position:relative;z-index:2;max-width:900px}.emergency-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.availability-note{display:block;color:#849aaa;font-size:10px;line-height:1.45;margin-top:14px}








.maintenance-callout-photo{background-image:linear-gradient(180deg,rgba(7,17,27,.02),rgba(7,17,27,.20)),var(--maint-callout-bg);background-size:cover;background-position:50% 44%}.maintenance-callout-copy{padding:clamp(52px,7vw,92px);display:flex;flex-direction:column;justify-content:center}.maintenance-callout-copy h2{font-size:clamp(40px,4.4vw,64px);line-height:.98;letter-spacing:-.052em;margin:14px 0 18px}.maintenance-callout-copy>p:not(.eyebrow){color:#b7c6d0;line-height:1.65;font-size:15px;max-width:600px}.maintenance-callout-copy .button{align-self:flex-start;margin-top:12px}


/* ------------------------------------------------------------
   AZIENDA — storia / famiglia / fiducia
   ------------------------------------------------------------ */





/* ------------------------------------------------------------
   CONTATTI — utilità / recapiti / mappa / form
   ------------------------------------------------------------ */





/* ------------------------------------------------------------
   RESPONSIVE — mantiene personalità diverse anche su mobile
   ------------------------------------------------------------ */
@media (max-width:1000px){
  
  
  .maintenance-callout-photo{min-height:520px}
  
  
}
@media (max-width:850px){
  
  
  
  
  .maintenance-callout-copy{padding:62px 22px}
  
  
  
  .emergency-actions{align-items:flex-start}
  
  
  
  
  
}
@media (max-width:540px){
  
  
  
  .maintenance-callout-photo{min-height:410px}
  
  
  .maintenance-callout-copy h2{font-size:42px}
  
  
  
}

/* V41 icon polish */




/* ============================================================
   V45 — LOGO CASIZZI: proporzioni e footer definitivi
   Logo ritagliato, leggero e senza margini trasparenti inutili.
   ============================================================ */
.sr-only{
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}

.brand{
  position:relative;
  display:inline-flex;
  align-items:center;
  width:max-content;
  line-height:1;
}
.site-logo{
  display:block;
  height:auto;
  max-width:none;
  object-fit:contain;
}

/* Header: firma visiva, non elemento dominante */
.header-logo{
  width:148px!important;
  max-height:50px!important;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.16));
  transition:width .25s ease,max-height .25s ease;
}
.site-header.scrolled .header-logo{
  width:140px!important;
  max-height:46px!important;
}

/* Footer desktop: ripristina il centro reale e non sposta i contenuti */
@media (min-width:851px){
  .compact-footer .footer-compact-main{
    display:grid!important;
    grid-template-columns:1fr auto 1fr!important;
    grid-template-areas:none!important;
    align-items:center!important;
    gap:24px!important;
    padding:13px clamp(22px,4vw,58px) 11px!important;
  }
  
  
  .compact-footer .footer-company-data{
    grid-area:auto!important;
    justify-self:center!important;
    align-items:center!important;
    width:max-content!important;
    max-width:100%!important;
    text-align:center!important;
    margin:0!important;
  }
  .compact-footer .footer-compact-links{
    grid-area:auto!important;
    justify-self:end!important;
    justify-content:flex-end!important;
    margin:0!important;
  }
}

/* Tablet/mobile: logo compatto a sinistra, link a destra, dati sotto */
@media (max-width:850px){
  .header-logo{
    width:132px!important;
    max-height:44px!important;
  }
  .site-header.scrolled .header-logo{
    width:126px!important;
    max-height:42px!important;
  }
  .compact-footer .footer-compact-main{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "brand links"
      "data data"!important;
    align-items:center!important;
    gap:8px 12px!important;
    padding:11px 14px 8px!important;
  }
  
  
  .compact-footer .footer-company-data{
    grid-area:data!important;
    justify-self:center!important;
    width:100%!important;
    text-align:center!important;
    align-items:center!important;
    margin:0!important;
  }
  .compact-footer .footer-compact-links{
    grid-area:links!important;
    justify-self:end!important;
    justify-content:flex-end!important;
    margin:0!important;
  }
}

@media (max-width:430px){
  .header-logo{width:124px!important;max-height:41px!important}
  .site-header.scrolled .header-logo{width:120px!important;max-height:40px!important}
  
  .compact-footer .footer-compact-links{gap:7px!important}
  .compact-footer .footer-compact-links a{font-size:9px!important}
}


/* ============================================================
   V46 — FOOTER ESSENZIALE: niente logo duplicato
   Header mantiene il logo; footer solo dati, legali e copyright.
   ============================================================ */
.compact-footer .footer-compact-main{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"data links"!important;
  align-items:center!important;
  gap:24px!important;
  padding:14px clamp(22px,4vw,58px) 11px!important;
}
.compact-footer .footer-company-data{
  grid-area:data!important;
  justify-self:start!important;
  align-items:flex-start!important;
  width:auto!important;
  max-width:720px!important;
  text-align:left!important;
  margin:0!important;
}
.compact-footer .footer-company-data strong{
  color:#d5e0e7!important;
}
.compact-footer .footer-compact-links{
  grid-area:links!important;
  justify-self:end!important;
  justify-content:flex-end!important;
  margin:0!important;
}
.compact-footer .footer-copyright{
  padding:6px clamp(22px,4vw,58px) 7px!important;
  text-align:center!important;
}

@media (max-width:850px){
  .compact-footer .footer-compact-main{
    grid-template-columns:1fr!important;
    grid-template-areas:"data" "links"!important;
    gap:10px!important;
    padding:14px 18px 10px!important;
    text-align:center!important;
  }
  .compact-footer .footer-company-data{
    justify-self:center!important;
    align-items:center!important;
    width:100%!important;
    max-width:520px!important;
    text-align:center!important;
  }
  .compact-footer .footer-compact-links{
    justify-self:center!important;
    justify-content:center!important;
  }
  .compact-footer .footer-copyright{
    padding:6px 18px 8px!important;
  }
}

@media (max-width:430px){
  .compact-footer .footer-compact-main{
    padding:12px 14px 9px!important;
    gap:8px!important;
  }
  .compact-footer .footer-company-data{
    font-size:8.4px!important;
    line-height:1.35!important;
  }
  .compact-footer .footer-company-data strong{
    font-size:9px!important;
  }
  .compact-footer .footer-compact-links{
    gap:10px!important;
  }
}

/* ============================================================
   V47 — FOOTER CENTRATO + FRECCIA LATERALE
   Contenuti informativi centrati; il controllo "torna su" resta
   separato sul lato destro per non rompere la simmetria.
   ============================================================ */
.compact-footer .footer-compact-main{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  padding:14px clamp(52px,5vw,82px) 10px!important;
  text-align:center!important;
}
.compact-footer .footer-company-data{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-self:auto!important;
  width:100%!important;
  max-width:760px!important;
  text-align:center!important;
  margin:0 auto!important;
}
.compact-footer .footer-compact-links{
  position:static!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:auto!important;
  width:auto!important;
  gap:14px!important;
  margin:1px auto 0!important;
}
.compact-footer .footer-compact-links .to-top{
  position:absolute!important;
  right:clamp(22px,4vw,58px)!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  margin:0!important;
}
.compact-footer .footer-copyright{
  text-align:center!important;
}

@media (max-width:850px){
  .compact-footer .footer-compact-main{
    gap:7px!important;
    padding:13px 52px 9px!important;
  }
  .compact-footer .footer-company-data{
    width:100%!important;
    max-width:520px!important;
    text-align:center!important;
  }
  .compact-footer .footer-compact-links{
    justify-content:center!important;
    gap:12px!important;
  }
  .compact-footer .footer-compact-links .to-top{
    right:16px!important;
  }
}

@media (max-width:430px){
  .compact-footer .footer-compact-main{
    padding:12px 44px 8px!important;
    gap:6px!important;
  }
  .compact-footer .footer-compact-links .to-top{
    right:12px!important;
  }
}


/* Link secondario Hero */
.hero-services-link{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  padding: 12px 4px;
  transition: color .2s ease;
}

.hero-services-link span{
  transition: transform .2s ease;
}

.hero-services-link:hover{
  color: #8ed8ff;
}

.hero-services-link:hover span{
  transform: translateX(4px);
}
@media (max-width: 540px){

  .hero-actions{
    display: flex;
    align-items: center;
    gap: 22px;
  }

  .hero-actions .button.light{
    width: auto;
    flex: 0 0 auto;
  }

  .hero-services-link{
    flex: 1;
    justify-content: center;
    white-space: nowrap;
  }
}


/* ============================================================
   STEP 6 — HOME CONTATTI MOBILE: micro-rifiniture definitive
   Solo mobile. Nessuna modifica a desktop o alle altre pagine.
   ============================================================ */
@media (max-width:540px){
  /* Sezione più compatta: meno spazio tra CTA e indirizzo */
  .contact-v4 .contact-copy{
    padding-top:48px !important;
    padding-bottom:16px !important;
  }

  .contact-v4 .contact-copy h2{
    font-size:38px !important;
    line-height:1.02 !important;
  }

  .contact-v4 .contact-copy > p:not(.eyebrow){
    font-size:15px !important;
    line-height:1.55 !important;
    margin-bottom:0 !important;
  }

  /* CTA affiancate e compatte */
  .contact-pills{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    width:100% !important;
    margin-top:24px !important;
  }

  .contact-pill{
    width:100% !important;
    min-width:0 !important;
    padding:12px 8px !important;
    font-size:10.5px !important;
    white-space:nowrap !important;
  }

  /* Indirizzo: riga compatta; località volutamente secondaria */
  .map-info-card{
    display:grid !important;
    grid-template-columns:1fr auto !important;
    align-items:center !important;
    gap:12px !important;
    padding:14px 16px !important;
    text-align:left !important;
  }

  .map-address{
    min-width:0 !important;
  }

  .map-kicker{
    margin-bottom:4px !important;
    font-size:7.5px !important;
    letter-spacing:.16em !important;
    color:#7fa5bd !important;
  }

  .map-info-card strong{
    font-size:22px !important;
    line-height:1.05 !important;
  }

  .map-link{
    width:auto !important;
    min-width:0 !important;
    padding:10px 14px !important;
    font-size:10px !important;
    white-space:nowrap !important;
  }

  /* Mappa Home più discreta + 8px di respiro aggiuntivo prima del floating */
  .contact-v4 .map-frame{
    height:220px !important;
    min-height:220px !important;
  }

  .contact-v4 .contact-map{
    padding-bottom:54px !important;
  }
}

@media (max-width:360px){
  .contact-pill{
    font-size:9.5px !important;
    padding-inline:6px !important;
  }

  .contact-v4 .map-frame{
    height:200px !important;
    min-height:200px !important;
  }

  .map-info-card strong{
    font-size:20px !important;
  }
}
/* CTA contatti Home: stesso identico effetto dei .button.light */
.contact-pill{
  background:#fff !important;
  color:#07111b !important;
  border:1px solid #fff !important;
  border-radius:999px !important;
  box-shadow:0 10px 40px rgba(0,0,0,.16) !important;

  transition:
    transform .25s,
    background .25s,
    border .25s,
    color .25s !important;
}

.contact-pill:hover{
  background:#dff2ff !important;
  color:#07111b !important;
  border-color:rgba(255,255,255,.75) !important;
  transform:translateY(-2px) !important;
}

.contact-pill:active{
  transform:translateY(0) !important;
}

/* Link "Scopri le celle" — fascia Refrigerazione */
.refrigeration-page-new .rp-cells-link{
  color:#17384e;
}

.refrigeration-page-new .rp-cells-link:hover{
  color:#159bd7;
}

/* ============================================================
   STEP 7 — HOME / PRONTO INTERVENTO: OPTION 1
   Solo il callout urgente della hero. Il resto del sito resta invariato.
   ============================================================ */
.urgent-callout{
  position:relative !important;
  isolation:isolate;
  overflow:hidden !important;
  max-width:650px !important;
  margin:0 0 24px !important;
  padding:17px 18px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:14px 24px !important;
  border:1px solid rgba(77,201,255,.88) !important;
  border-radius:18px !important;
  background:
    linear-gradient(112deg,rgba(18,73,108,.78) 0%,rgba(10,39,59,.78) 52%,rgba(7,22,34,.90) 100%) !important;
  box-shadow:
    0 18px 48px rgba(0,0,0,.24),
    0 0 0 1px rgba(104,211,255,.04),
    inset 0 0 34px rgba(89,199,255,.075) !important;
  animation:none !important;
}

/* Pannello tecnico diagonale, molto discreto, solo decorativo. */
.urgent-callout::before{
  content:"";
  position:absolute;
  z-index:0;
  top:0;
  right:0;
  bottom:0;
  width:43%;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(84,191,255,.13),rgba(21,86,128,.035));
  clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);
}

.urgent-callout::after{
  display:none !important;
  content:none !important;
}

.urgent-callout > *{
  position:relative;
  z-index:1;
}

.urgent-copy{
  min-width:0;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
}

.urgent-callout .urgent-kicker{
  display:flex !important;
  align-items:center;
  gap:12px;
  width:100%;
  margin:0 0 5px !important;
  color:#73d2ff !important;
  font-size:8.5px !important;
  line-height:1 !important;
  letter-spacing:.22em !important;
  font-weight:850 !important;
  text-transform:uppercase;
}

.urgent-callout .urgent-kicker::after{
  content:"";
  width:50px;
  height:1px;
  flex:0 0 50px;
  background:linear-gradient(90deg,rgba(115,210,255,.85),rgba(115,210,255,.14));
}

.urgent-callout .urgent-title{
  display:block !important;
  margin:0 0 7px !important;
  color:#fff !important;
  font-size:24px !important;
  line-height:1 !important;
  letter-spacing:.005em !important;
  font-weight:900 !important;
}

.urgent-callout .urgent-question{
  display:block !important;
  color:#edf8ff !important;
  font-size:13px !important;
  line-height:1.35 !important;
  font-weight:720 !important;
}

.urgent-action{
  position:relative;
  min-width:258px !important;
  min-height:52px;
  padding:9px 14px 9px 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:11px !important;
  border:1px solid rgba(255,255,255,.92) !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#07111b !important;
  cursor:pointer;
  box-shadow:
    0 9px 28px rgba(54,180,242,.25),
    0 0 0 1px rgba(103,202,255,.20),
    0 0 24px rgba(75,194,252,.15) !important;
  transition:
    transform .23s ease,
    background .23s ease,
    box-shadow .23s ease,
    border-color .23s ease !important;
  animation:none !important;
}

.urgent-action:hover{
  transform:translateY(-2px) !important;
  background:#eef9ff !important;
  border-color:#fff !important;
  box-shadow:
    0 13px 34px rgba(54,180,242,.34),
    0 0 0 1px rgba(103,202,255,.34),
    0 0 30px rgba(75,194,252,.22) !important;
}

.urgent-action:active{
  transform:translateY(0) !important;
}

.urgent-whatsapp-icon{
  width:32px;
  height:32px;
  flex:0 0 32px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#25d366;
  box-shadow:0 0 0 4px rgba(37,211,102,.10);
}

.urgent-whatsapp-icon svg{
  display:block;
  width:22px;
  height:22px;
  overflow:visible;
}

.urgent-whatsapp-icon circle{
  fill:none;
  stroke:#fff;
  stroke-width:1.7;
}

.urgent-whatsapp-icon path{
  fill:#fff;
  transform:scale(.72);
  transform-origin:center;
}

.urgent-action-copy{
  min-width:0;
  display:flex !important;
  flex:1 1 auto;
  align-items:center !important;
  line-height:1 !important;
}

.urgent-action-copy b{
  font-size:11.5px !important;
  line-height:1.1 !important;
  letter-spacing:.025em !important;
  font-weight:850 !important;
  white-space:nowrap;
}

.urgent-action-arrow{
  margin-left:auto;
  color:#29baff;
  font-size:21px;
  line-height:1;
  font-weight:600;
  transition:transform .23s ease;
}

.urgent-action:hover .urgent-action-arrow{
  transform:translateX(3px);
}

/* Mobile: composizione centrata, compatta e simmetrica.
   Desktop resta esattamente come l'Opzione 1. */
@media (max-width:850px){
  .urgent-callout{
    width:100% !important;
    max-width:none !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;

    gap:12px !important;
    padding:15px 14px 14px !important;
    border-radius:17px !important;
    text-align:center !important;
  }

  /* La diagonale resta solo su desktop. */
  .urgent-callout::before{
    display:none !important;
    content:none !important;
  }

  .urgent-copy{
    width:100% !important;
    min-width:0 !important;
    align-items:center !important;
    text-align:center !important;
  }

  .urgent-callout .urgent-kicker{
    width:auto !important;
    display:block !important;
    margin:0 0 5px !important;
    text-align:center !important;
    font-size:8px !important;
    line-height:1 !important;
    letter-spacing:.18em !important;
  }

  /* Niente lineetta asimmetrica nel layout centrato mobile. */
  .urgent-callout .urgent-kicker::after{
    display:none !important;
    content:none !important;
  }

  .urgent-callout .urgent-title{
    margin:0 0 6px !important;
    text-align:center !important;
    font-size:21px !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  .urgent-callout .urgent-question{
    text-align:center !important;
    font-size:12px !important;
    line-height:1.3 !important;
  }

  .urgent-action{
    width:max-content !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:48px !important;

    margin:0 auto !important;
    justify-self:center !important;

    padding:7px 14px 7px 8px !important;
    gap:10px !important;
  }

  .urgent-whatsapp-icon{
    width:32px !important;
    height:32px !important;
    flex:0 0 32px !important;
    color:#fff !important;
  }

  .urgent-whatsapp-icon svg{
    width:23px !important;
    height:23px !important;
    display:block !important;
  }

  /* Il nuovo SVG usa currentColor; niente trasformazioni interne. */
  .urgent-whatsapp-icon path{
    fill:currentColor !important;
    transform:none !important;
  }

  .urgent-whatsapp-icon circle{
    display:none !important;
  }

  .urgent-action-copy{
    flex:0 1 auto !important;
  }

  .urgent-action-copy b{
    font-size:10px !important;
    line-height:1.1 !important;
    letter-spacing:.01em !important;
    white-space:nowrap !important;
  }

  .urgent-action-arrow{
    margin-left:4px !important;
    font-size:17px !important;
  }
}

@media (max-width:380px){
  .urgent-callout{
    padding:13px 11px !important;
  }

  .urgent-callout .urgent-kicker{
    font-size:7.5px !important;
  }

  .urgent-callout .urgent-title{
    font-size:19px !important;
  }

  .urgent-callout .urgent-question{
    font-size:11px !important;
  }

  .urgent-action{
    padding-right:11px !important;
    gap:8px !important;
  }

  .urgent-action-copy b{
    font-size:9.5px !important;
  }
}


/* === TEST FUNZIONALE: form, privacy e caricamento volontario Google Maps === */
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.drawer-panel .drawer-privacy{display:flex;grid-template-columns:none;align-items:flex-start;gap:10px;margin-top:2px;color:#8fa4b5;font-size:10px;line-height:1.45}
.drawer-panel .drawer-privacy input{width:16px;height:16px;min-width:16px;margin:1px 0 0;padding:0;accent-color:#75c9ff}
.drawer-panel .drawer-privacy span{display:block}
.drawer-panel .drawer-privacy a{color:#cbeaff;text-decoration:underline;text-underline-offset:2px}


/* === REQUIRED FIELD MARKERS === */
.required-mark{color:#5aaedb;font-weight:900;margin-left:2px}
.form-required-note{display:block;color:#7e94a3;font-size:10px;line-height:1.4;margin:2px 0 12px}
.form-required-note span{color:#7ecfff;font-weight:900}

/* Required marker layout: keep the asterisk beside the label text */
.drawer-panel .field-label-inline{display:inline !important;line-height:1.2}
.drawer-panel .required-mark{display:inline !important;margin-left:3px}
.drawer-panel .drawer-privacy .required-mark{display:inline !important}


/* ============================================================
   COOKIE CONSENT — Google Maps
   ============================================================ */
.cookie-consent{position:fixed;left:20px;right:20px;bottom:20px;z-index:10050;display:none;align-items:center;justify-content:space-between;gap:24px;max-width:1180px;margin:0 auto;padding:18px 20px;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:rgba(7,17,27,.96);color:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28);backdrop-filter:blur(18px)}
.cookie-consent.is-visible{display:flex}.cookie-consent-copy{max-width:780px}.cookie-consent-copy strong{display:block;font-size:15px;margin-bottom:5px}.cookie-consent-copy p{margin:0;color:#b7c7d2;font-size:12px;line-height:1.55}.cookie-consent-copy a{color:#9bd8ff;text-decoration:underline;text-underline-offset:2px}.cookie-consent-actions{display:flex;gap:10px;flex:0 0 auto}.cookie-consent-actions button{min-height:44px;padding:0 18px;border-radius:999px;font:inherit;font-size:11px;font-weight:800;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease}.cookie-consent-reject{border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff}.cookie-consent-accept{border:1px solid #fff;background:#fff;color:#07111b}
.cookie-settings-link{border:0;background:none;padding:0;color:inherit;font:inherit;font-size:inherit;cursor:pointer}.cookie-settings-link:hover{color:#fff}
.map-consent-gate{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(145deg,#dfeaf1,#cfdde6);text-align:center}.map-consent-gate[hidden]{display:none!important}.map-consent-gate-inner{width:min(390px,92%);padding:24px;border-radius:22px;background:rgba(7,17,27,.94);color:#fff;box-shadow:0 18px 50px rgba(7,17,27,.18)}.map-consent-gate strong{display:block;font-size:18px;margin-bottom:8px}.map-consent-gate p{margin:0 0 16px;color:#b9cad5;font-size:12px;line-height:1.55}.map-consent-gate button{min-height:42px;padding:0 17px;border:0;border-radius:999px;background:#fff;color:#07111b;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
@media(hover:hover){.cookie-consent-actions button:hover{transform:translateY(-1px)}.cookie-consent-reject:hover{border-color:#8fd7ff;color:#8fd7ff}.cookie-consent-accept:hover{background:#dff3ff;border-color:#dff3ff}}
@media(max-width:700px){.cookie-consent{left:12px;right:12px;bottom:12px;display:none;flex-direction:column;align-items:stretch;padding:16px;border-radius:18px}.cookie-consent.is-visible{display:flex}.cookie-consent-actions{display:grid;grid-template-columns:1fr 1fr}.cookie-consent-actions button{width:100%}.map-consent-gate{padding:16px}.map-consent-gate-inner{padding:20px}}


/* ============================================================
   CASIZZI — Servizi Home: responsive senza comprimere le card
   Desktop ampio: resta la griglia originale a sei colonne.
   Notebook/tablet orizzontali: rail scorrevole con larghezza
   e altezza identiche alle card del desktop ampio.
   Smartphone/tablet fino a 900px: comportamento preesistente.
   ============================================================ */
.service-rail-nav {
  display: none;
  max-width: 1540px;
  margin: 14px auto 0;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.service-rail-nav[hidden] { display: none !important; }
.service-rail-nav button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 50%;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, opacity .2s ease;
}
.service-rail-nav button:hover:not(:disabled) {
  border-color: #8fd7ff;
  background: rgba(143,215,255,.12);
}
.service-rail-nav button:focus-visible {
  outline: 3px solid #8fd7ff;
  outline-offset: 3px;
}
.service-rail-nav button:disabled {
  opacity: .32;
  cursor: default;
}
@media (min-width: 901px) and (max-width: 1649px) {
  .services .service-rail {
    display: flex;
    flex-wrap: nowrap;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    /* Spazio di sicurezza per l'hover: non taglia il bordo superiore */
    padding: 10px 0 12px;
    margin-top: -10px;
  }
  .services .service-rail::-webkit-scrollbar { display: none; }
  .services .service-card {
    flex: 0 0 247px;
    width: 247px;
    min-width: 247px;
    height: 350px;
    scroll-snap-align: start;
  }
  .service-rail-nav { display: flex; }
}

/* Google Maps: link di recupero e controlli leggibili negli stati di caricamento. */
.map-consent-gate [hidden]{display:none!important}
.map-consent-gate .map-direct-link{display:inline-block;margin-top:12px;color:#bce5ff;text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:700}
