


.process-home { --home-gutter:clamp(22px,5vw,80px); }
.process-home .cinematic-hero { display:block; padding:140px var(--home-gutter) 90px; }
.process-home .cinematic-hero h1 { font-size:clamp(4.8rem,8.2vw,9.4rem); margin-top:58px; }
.process-home .cinematic-hero__content { max-width:1000px; }
.process-home .cinematic-hero__shade { background:linear-gradient(90deg,#070809e8,#07080999 46%,#07080926 80%),linear-gradient(0deg,#08090ade,transparent 45%); }
.hero-credentials { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1.1fr 1.1fr; gap:30px; margin-top:100px; }
.hero-credentials>p { display:flex; align-items:center; gap:19px; border-top:1px solid #ffffff38; padding-top:23px; font-size:11px; color:#d1d0d0; }
.hero-credentials strong { font-size:34px; line-height:1; font-weight:500; letter-spacing:-.045em; }
.hero-credentials .mono { font:20px 'Courier New',monospace; letter-spacing:-.03em; }
.hero-credentials b { font-size:12px; font-weight:500; }
.hero-credentials svg { width:34px; height:34px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; }
.process-home .cinematic-scroll { left:50%; bottom:20px; transform:translateX(-50%); gap:12px; }
.process-home .cinematic-scroll b { display:block; color:#b8b8b8; }
.process-home .cinematic-scroll i { height:32px; }


.process-home .cinematic-scene { height:420svh; }
.process-home #firmware { height:620svh; }
.process-home .cinematic-scene__title { left:5vw; max-width:30%; }
.process-home .cinematic-scene__title h2 { font-size:clamp(2.35rem,3.9vw,5rem); line-height:1.02; margin:0; }
.process-home .cinematic-copy { left:5vw; width:29%; background:transparent; }

.process-home .scene-meter { left:auto; right:2vw; }


.process-home .cinematic-copy>b { font-size:13.5px; }
.process-home .cinematic-copy h3 { font-size:clamp(1.77rem,2.475vw,2.625rem); }
.process-home .cinematic-copy p { font-size:1.245rem; }


.engineering-recording { display:grid; place-items:center; }
.engineering-recording::after { display:none; }
.engineering-recording__poster { display:block; width:100%; }
.engineering-recording__poster img { display:block; width:100%; height:auto; }
.engineering-recording__video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; pointer-events:none; }
.engineering-recording.is-video-ready .engineering-recording__video { opacity:1; }
.engineering-recording.is-video-ready .engineering-recording__poster { visibility:hidden; }
.process-home .cinematic-outro { position:relative; isolation:isolate; overflow:hidden; padding-inline:var(--home-gutter); }
.outro-circuit { position:absolute; z-index:-1; right:0; top:15%; width:45%; height:70%; color:#757474; opacity:.35; }
.text-action--down:hover span:last-child,.text-action--down:focus-visible span:last-child { transform:translateY(3px); }
.text-action--diagonal:hover span:last-child,.text-action--diagonal:focus-visible span:last-child { transform:translate(3px,-3px); }


.process-home .contact { padding:95px var(--home-gutter); color:#f2f2f2; background:linear-gradient(135deg,#666,#353535 58%,#191818); }
.process-home .contact-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,8vw,140px); width:100%; max-width:none; }
.process-home .contact h2 { font-size:clamp(68px,7.7vw,110px); line-height:.95; margin:0 0 28px; letter-spacing:-.06em; }
.process-home .contact h2>span,.process-home .contact h2>em { display:block; }
.process-home .contact h2 em { color:var(--yellow); font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.contact-copy>p { max-width:380px; font-size:14px; }
.process-home .contact-form { padding:6px 0 0; border:0; background:transparent; box-shadow:none; min-width:0; }
.contact-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.process-home .contact-form label:not(.consent) { display:grid; font-size:11px; gap:7px; margin-bottom:22px; }
.process-home .form-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:25px; }
.process-home .contact-form input:not([type=checkbox]),.process-home .contact-form textarea { border:0; border-bottom:1px solid #8d8c8c; background:transparent; border-radius:0; color:#fff; padding:10px 0; width:100%; min-width:0; resize:vertical; outline-offset:3px; }
.process-home .contact-form textarea { min-height:94px; }
.contact-form small { font-size:10px; display:block; margin-top:-11px; color:#d1d0d0; }
.consent { display:flex; gap:10px; align-items:flex-start; margin:24px 0; font-size:10px; line-height:1.6; }
.consent input { accent-color:#a3a2a2; margin:3px 0; width:14px; height:14px; flex-shrink:0; }
.inline-link { border:0; border-bottom:1px solid currentColor; padding:0; background:none; font:inherit; }
.process-home .submit { width:100%; display:flex; justify-content:space-between; background:#222121; border-color:#8d8c8c; color:var(--yellow); }
.process-home .submit:hover { background:#111; border-color:#d1d0d0; }
.submit:disabled { cursor:wait; opacity:.65; }
.form-status { font-size:12px; margin-top:12px; }.form-status:empty { display:none; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; margin-top:32px; font-style:normal; }
.contact-details a,.contact-company { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:13px; min-width:0; color:#f2f2f2; transition:transform .2s,color .2s; }
.contact-company { grid-column:1/-1; padding-bottom:16px; border-bottom:1px solid #ffffff24; }
.contact-company strong { display:block; font-size:16px; }
.contact-details a:hover,.contact-details a:focus-visible { color:var(--yellow); transform:translateX(4px); }
.contact-details svg { width:25px; height:25px; fill:none; stroke:#d1d0d0; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.contact-details small { display:block; margin-bottom:2px; color:#b8b8b8; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.contact-details a span { min-width:0; overflow-wrap:anywhere; font-size:12px; line-height:1.5; }
.anti-bot-check { margin-top:-10px; padding:13px 15px; border:1px solid #ffffff32; background:#1114; }


.google-map-section { width:100%; height:clamp(340px,31vw,390px); overflow:hidden; border-top:1px solid #474646; background:#111; }
.google-map { width:100%; height:100%; display:grid; place-items:center; color:#b8b8b8; }
.google-map iframe { display:block; width:100%; height:100%; min-height:100%; border:0; filter:grayscale(1) invert(.92) hue-rotate(180deg) brightness(.68) contrast(1.12); }
.google-map>p,.map-fallback { margin:0; padding:28px; text-align:center; }
.google-map .inline-link,.map-fallback a { color:var(--yellow); text-decoration:underline; text-underline-offset:4px; }

@media(max-width:980px) {
  .process-home .cinematic-scene__title { left:auto; max-width:none; }
  .process-home .cinematic-scene__title h2 { font-size:clamp(1.65rem,5.5vw,2.6rem); }
  .process-home .cinematic-copy { left:auto; width:100%; }
  .process-home .scene-meter { display:block; left:auto; right:7px; top:54%; height:24vh; width:1px; }
  .process-home .cinematic-copy h3 { font-size:1.62rem; }
  .process-home .cinematic-copy p { font-size:1.185rem; }


  .process-home .cinematic-scene__sticky { padding-top:67px; }
  .engineering-recording__poster { height:100%; }
  .engineering-recording__poster img { height:100%; object-fit:contain; }
  .process-home .contact-layout { grid-template-columns:minmax(0,1fr); gap:36px; }
  .process-home .contact-copy>p { max-width:500px; }
  .outro-circuit { width:64%; opacity:.19; }
}
@media(max-width:620px) {
  .process-home .cinematic-hero { padding-top:116px; }
  .process-home .cinematic-hero h1 { font-size:clamp(4rem,15.2vw,6.2rem); margin-top:46px; }
  .hero-credentials { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:68px; }
  /* Tre informazioni affiancate, con descrizioni leggibili su più righe.
     Il kicker cresce del 20% rispetto alla patch precedente (5.5 -> 6.6). */
  .process-home .cinematic-hero .cinematic-kicker { font-size:6.6px; white-space:nowrap; gap:6px; }
  .process-home .cinematic-hero .cinematic-kicker i { flex:0 0 17px; }
  .hero-credentials>p { padding-top:13px; gap:10px; font-size:9px; max-width:none; min-width:0; flex-direction:column; align-items:flex-start; line-height:1.5; }
  .hero-credentials>p span { white-space:normal; }
  .hero-credentials .mono { white-space:nowrap; }
  .hero-credentials>p:last-child { grid-column:auto; }
  .hero-credentials strong { font-size:24px; min-height:24px; }
  .hero-credentials .mono { font-size:12px; line-height:24px; }
  .hero-credentials b { font-size:9px; }
  .hero-credentials svg { width:24px; height:24px; }
  .process-home .contact { padding-block:60px; }
  .process-home .contact h2 { font-size:clamp(60px,15vw,80px); }
  .contact-details { grid-template-columns:minmax(0,1fr); }
  .process-home .contact-form input:not([type=checkbox]),.process-home .contact-form textarea { font-size:16px; }
  .process-home .contact-form label:not(.consent) { font-size:12px; }
  .consent { font-size:11px; }
}


.process-home:not(.cinematic-ready) .cinematic-scene { height:auto; }
.process-home:not(.cinematic-ready) .cinematic-scene__sticky { position:relative; display:flex; flex-direction:column; height:auto; min-height:0; padding:90px var(--home-gutter) 40px; gap:22px; }
.process-home:not(.cinematic-ready) .cinematic-scene__title,.process-home:not(.cinematic-ready) .cinematic-copy { position:relative; inset:auto; width:100%; max-width:750px; }
.process-home:not(.cinematic-ready) .cinematic-copy { display:block; visibility:visible; opacity:1; filter:none; transform:none; }
.process-home:not(.cinematic-ready) .cinematic-scene__canvas,.process-home:not(.cinematic-ready) .technical-3d-canvas,.process-home:not(.cinematic-ready) .scene-meter,.process-home:not(.cinematic-ready) .cinematic-scene__vignette { display:none; }
.process-home:not(.cinematic-ready) .service-visual,.process-home:not(.cinematic-ready) .firmware-workstation { position:relative; inset:auto; height:auto; width:100%; }
@media(max-width:620px) and (max-height:720px) {
  .process-home .cinematic-copy h3 { font-size:1.47rem; }
  .process-home .cinematic-copy p { font-size:1.11rem; }
}
@media(prefers-reduced-motion:reduce) {
  .process-home .cinematic-scene,.process-home #firmware { height:auto; }
  .process-home .cinematic-scene__title,.process-home .cinematic-copy { left:auto; width:100%; max-width:750px; }
  .process-home .scene-meter { display:none; }
  .text-action,.text-action span { transition:none; }
}
