/* Homepage banner only: no global selectors or changes to navigation/Industries styles. */
.s45-hero{position:relative;isolation:isolate;display:grid;align-items:center;width:100%;min-height:max(680px,calc(100svh - 82px));padding-block:clamp(42px,6vh,76px) 88px;overflow:hidden;background:#060608;color:#fff}
.s45-film{position:absolute;inset:0;z-index:-2;display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#060608}
.s45-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(6,6,8,.98),rgba(6,6,8,.86) 40%,rgba(6,6,8,.32));transition:opacity .7s ease}
.s45-intro{position:relative;width:100%;box-sizing:border-box;opacity:1;transition:opacity .7s ease,visibility .7s;pointer-events:auto}
.s45-brandline{display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap;margin-bottom:28px}
.s45-brand{font-size:clamp(1.9rem,3vw,3rem);font-weight:800;letter-spacing:-.045em;line-height:1}
.s45-brand>span{color:#bd1018}
.s45-tagline{font-size:clamp(1rem,1.6vw,1.45rem);line-height:1.35;font-weight:600;color:#fff}
.s45-hero h1{font-size:clamp(2rem,3.5vw,3.9rem)!important;font-weight:750;line-height:1.13!important;letter-spacing:-.038em;max-width:24ch!important;margin:0 0 22px;color:#fff;overflow-wrap:break-word;text-wrap:balance}
.s45-promise{font-size:clamp(1rem,1.35vw,1.25rem);font-weight:700;line-height:1.5;color:#fff;margin:0 0 12px}
.s45-description{font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.7;max-width:65ch;margin:0;color:#e0e0e3}
.s45-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 28px;margin-top:28px;max-width:100%}
.s45-hero .s45-actions .button.red{background:#bd1018;border-color:#bd1018;color:#fff;white-space:normal;max-width:100%;text-align:left;line-height:1.4}
.s45-hero .s45-actions .button.red:hover{background:#a30c13}
.s45-contact{font-size:.9rem;font-weight:700;line-height:1.5;color:#fff;text-decoration:underline;text-underline-offset:6px}
.s45-hero.is-playing .s45-intro{opacity:0;visibility:hidden;pointer-events:none}
.s45-hero.is-playing .s45-shade{opacity:0}
/* Without JavaScript, native controls and permanently readable copy remain usable. */
.s45-controls{position:absolute;right:clamp(18px,3vw,50px);bottom:20px;display:flex;align-items:center;gap:10px;z-index:2}
.s45-controls[hidden]{display:none}
.s45-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid #ffffff70;border-radius:4px;background:#060608d9;color:#fff;font:inherit;font-size:.8rem;line-height:1.3;padding:10px 14px;cursor:pointer}
.s45-controls .s45-replay{min-width:44px;font-size:1.4rem;padding:5px 10px}
.s45-hero a:focus-visible,.s45-hero button:focus-visible{outline:3px solid #fff;outline-offset:4px}
@media(min-width:1800px){.s45-hero{min-height:calc(100svh - 88px)}}
@media(max-width:767px){
 .s45-hero{min-height:max(720px,calc(100svh - 74px));padding-block:36px 86px}
 .s45-shade{background:rgba(6,6,8,.88)}
 .s45-brandline{gap:10px;flex-direction:column;align-items:flex-start;margin-bottom:24px}
 .s45-brand{font-size:2rem}
 .s45-tagline{font-size:1rem}
 .s45-hero h1{font-size:clamp(1.7rem,6.7vw,2.6rem)!important;max-width:24ch;line-height:1.16!important;margin-bottom:18px}
 .s45-promise{font-size:.97rem;max-width:32ch}
 .s45-description{font-size:.94rem;line-height:1.6;max-width:52ch}
 .s45-actions{align-items:flex-start;flex-direction:column;gap:20px;margin-top:24px}
 .s45-controls{right:18px;bottom:18px}
}
@media(prefers-reduced-motion:reduce){.s45-intro,.s45-shade{transition:none}}
