:root{--blue:#0876f9;--blue2:#0056c9;--red:#ff1717;--ink:#09131d;--steel:#142431;--muted:#66717c;--surface:#f4f7f9;--line:#dce3e8;--white:#fff;--max:1320px;--pad:clamp(20px,4vw,64px);--section:clamp(80px,10vw,150px);--ease:cubic-bezier(.2,.75,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{height:82px;display:flex;align-items:center;gap:34px;padding:0 var(--pad);position:sticky;top:0;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);z-index:50;border-bottom:1px solid var(--line)}.brand{width:185px;overflow:hidden;height:52px;display:flex;align-items:center}.brand img{width:210px}.main-nav{display:flex;gap:28px;margin-left:auto;font-size:13px;font-weight:700}.main-nav a{padding:30px 0}.menu-toggle{display:none}.btn{display:inline-flex;align-items:center;gap:20px;background:var(--blue2);color:white;padding:15px 22px;font-weight:800;font-size:13px;border:1px solid var(--blue2);transition:.3s var(--ease)}.btn:hover{transform:translateY(-2px);background:var(--blue)}.btn--small{padding:12px 17px}.btn--ghost{background:transparent;color:inherit;border-color:currentColor}.section{padding:var(--section) var(--pad);max-width:calc(var(--max) + var(--pad)*2);margin:auto}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--blue2)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,7.4vw,112px);line-height:.91;letter-spacing:-.065em;margin:22px 0 30px;max-width:980px}h1 em,h2 em{font-style:normal;color:var(--blue)}h2{font-size:clamp(34px,4.2vw,64px);line-height:1.02;letter-spacing:-.045em}.hero{min-height:calc(100vh - 82px);position:relative;overflow:hidden;background:linear-gradient(120deg,#06101a,#0d2233 58%,#08141e);color:white;padding:clamp(80px,10vw,140px) var(--pad);display:flex;align-items:center}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,black,transparent)}.hero-content{position:relative;z-index:4;width:min(880px,78vw)}.hero .eyebrow{color:#8fc4ff}.lead{font-size:clamp(17px,1.7vw,23px);max-width:690px;color:#d5e0e8}.actions{display:flex;gap:12px;margin-top:35px}.hero-meta{display:flex;gap:25px;margin-top:60px;font-size:12px;color:#9fb0bd}.hero-machine{position:absolute;right:-7%;top:5%;width:48vw;height:90%;opacity:.72;filter:drop-shadow(0 30px 50px #000)}.machine-head{position:absolute;right:18%;top:0;width:27%;height:38%;background:linear-gradient(90deg,#1b2a36,#52616b,#101820);clip-path:polygon(15% 0,100% 0,90% 78%,70% 100%,0 100%,8% 18%)}.machine-beam{position:absolute;right:29%;top:35%;height:48%;width:3px;background:linear-gradient(#aee3ff,#fff,#ff8b25);box-shadow:0 0 18px #fff,0 0 55px #ff7a00}.machine-bed{position:absolute;right:0;bottom:8%;width:85%;height:18%;background:repeating-linear-gradient(105deg,#243644 0 28px,#0d1820 28px 48px);transform:skewX(-15deg);box-shadow:0 0 80px #086cc055}.sparks{position:absolute;right:10%;bottom:22%;width:48%;height:20%;background:repeating-linear-gradient(12deg,transparent 0 12px,#ff9d22 13px 14px,transparent 15px 27px);clip-path:polygon(0 46%,100% 0,100% 100%);filter:blur(.5px);opacity:.7}.hero-glow{position:absolute;border-radius:50%;filter:blur(40px)}.glow-a{width:420px;height:420px;background:#006eff33;right:18%;top:20%}.glow-b{width:260px;height:260px;background:#ff7a001c;right:8%;bottom:10%}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.big-copy{font-size:20px;max-width:650px}.facts{display:flex;gap:12px;margin-top:45px}.facts span{border-top:2px solid var(--ink);padding:15px 28px 0 0;min-width:140px;font-size:12px}.facts b{display:block;font-size:24px}.dark{max-width:none;background:var(--ink);color:white}.dark>*{max-width:var(--max);margin-left:auto;margin-right:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:60px}.section-head>p{max-width:380px;color:#7c8b96}.service-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:5vw}.service{width:100%;display:grid;grid-template-columns:55px 1fr auto;align-items:center;background:none;color:#7f919f;border:0;border-top:1px solid #34434e;padding:24px 0;text-align:left;cursor:pointer;transition:.25s}.service:last-child{border-bottom:1px solid #34434e}.service span{font-size:clamp(25px,3.2vw,48px);font-weight:800;letter-spacing:-.04em}.service.active,.service:hover{color:white}.service.active span{transform:translateX(10px)}.service-preview{background:#102330;padding:35px;min-height:570px;display:flex;flex-direction:column;justify-content:end}.tech-visual{position:relative;flex:1;min-height:280px;overflow:hidden;background:radial-gradient(circle at 50%,#0876f944,transparent 45%),linear-gradient(135deg,#162d3d,#07111a)}.rings{position:absolute;width:260px;height:260px;border:18px solid #8da0aa;box-shadow:inset 0 0 0 18px #1b2c37,inset 0 0 0 38px #778994;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%) rotateX(62deg)}.axis{position:absolute;width:75%;height:8px;background:#8fa1aa;left:12%;top:50%;transform:rotate(-12deg)}.service-kicker{font-size:11px;color:#83bfff;margin:25px 0 8px}.service-preview h3{font-size:30px;line-height:1.05}.service-preview>p:last-child{color:#aebbc4}
.projects .section-head a{font-weight:800}.project-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:auto auto;gap:16px}.project{border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;min-height:310px}.project--wide{grid-row:span 2}.project--wide{grid-template-columns:1fr}.project--tall{grid-template-columns:1fr 1fr}.project-art{min-height:240px;background-color:#162431;position:relative;overflow:hidden}.project-art:after{content:"";position:absolute;inset:12%;border:2px solid #7990a0;box-shadow:20px 20px 0 #273c49,-20px -10px 0 #0c1820}.art-1{background:linear-gradient(135deg,#0a151d,#415765)}.art-2{background:repeating-linear-gradient(90deg,#15232d 0 22px,#50616b 23px 28px,#0d171e 29px 48px)}.art-3{background:radial-gradient(circle at 60% 40%,#1285ff,#182e3e 4%,#071018 34%)}.project-copy{padding:28px}.project-copy small{font-weight:800;color:var(--muted)}.project-copy h3{font-size:26px;margin:16px 0}.project-copy a{font-weight:800}.duality{display:grid;grid-template-columns:.7fr 1.3fr;background:#eaf1f6}.duality-copy{padding:var(--section) var(--pad)}.split-panel{display:grid;grid-template-columns:1fr 1fr;position:relative;min-height:640px}.split-half{display:flex;flex-direction:column;justify-content:end;padding:40px;color:white;background-size:cover}.construction{background:linear-gradient(#0b1720aa,#0b1720ee),repeating-linear-gradient(45deg,#324652 0 2px,#12222d 2px 25px)}.production{background:radial-gradient(circle at 55% 30%,#ff861b 0 2px,transparent 3px),linear-gradient(135deg,#173042,#060c10)}.split-half span{font-size:12px;font-weight:900}.split-half b{font-size:25px}.split-arrow{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);background:white;color:var(--ink);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:28px}
.story-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:7vw}.story-step{padding:40px 0;border-top:1px solid var(--line);opacity:.28;transition:.35s}.story-step.active{opacity:1}.story-step small{color:var(--blue);font-weight:900}.story-step h3{font-size:38px;margin:8px 0}.story-visual{position:sticky;top:120px;height:70vh;background:#07131d;overflow:hidden}.blueprint{position:absolute;inset:0;background-image:linear-gradient(#2b8cff18 1px,transparent 1px),linear-gradient(90deg,#2b8cff18 1px,transparent 1px);background-size:38px 38px;color:white}.process-no{position:absolute;top:35px;left:40px;font-size:80px;font-weight:900;color:#ffffff10}.process-core{position:absolute;left:50%;top:50%;width:180px;height:180px;border:2px solid #258aff;border-radius:50%;transform:translate(-50%,-50%);transition:.6s}.process-core:after{content:"";position:absolute;inset:28px;border:2px dashed #8dc4ff;border-radius:50%}.process-line{position:absolute;height:2px;background:#258aff;left:50%;top:50%;transform-origin:left}.l1{width:34%;transform:rotate(25deg)}.l2{width:31%;transform:rotate(150deg)}.l3{width:28%;transform:rotate(270deg)}.process-label{position:absolute;bottom:35px;left:40px;font-weight:900;letter-spacing:.15em}.trust{display:grid;grid-template-columns:1fr .8fr;gap:5vw;background:var(--surface);max-width:none;padding-left:max(var(--pad),calc((100vw - var(--max))/2));padding-right:max(var(--pad),calc((100vw - var(--max))/2))}.trust-card{background:white;border:1px solid var(--line);padding:45px;display:flex;align-items:center;gap:35px}.seal{width:120px;height:120px;border:5px double var(--blue);border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:900;color:var(--blue)}.career{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw}.career-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.career-cards>div{background:var(--surface);padding:28px;min-height:250px}.career-cards small{color:var(--blue);font-weight:900}.contact{max-width:none;background:var(--blue2);color:white;padding-left:max(var(--pad),calc((100vw - var(--max))/2));padding-right:max(var(--pad),calc((100vw - var(--max))/2))}.contact .eyebrow{color:#b9d9ff}.contact>p{max-width:700px}.contact h1 em,.contact h2 em{color:#fff}.light{color:white}footer{background:#06111a;color:#9aa9b4;padding:60px var(--pad);display:grid;grid-template-columns:1fr 1fr auto;gap:40px;align-items:end;font-size:13px}footer img{width:210px;background:white;padding:8px}footer div{display:flex;gap:20px}
@media(max-width:900px){.main-nav,.header-cta{display:none}.menu-toggle{display:block;margin-left:auto;background:none;border:0;font-weight:800}.main-nav.open{display:flex;position:absolute;top:82px;left:0;right:0;background:white;flex-direction:column;padding:25px var(--pad);gap:0;border-bottom:1px solid var(--line)}.main-nav.open a{padding:13px 0}.hero{min-height:760px}.hero-content{width:100%}.hero-machine{opacity:.35;width:85vw;right:-30%;top:20%}.intro,.service-layout,.duality,.story-layout,.trust,.career{grid-template-columns:1fr}.service-preview{min-height:450px}.project-grid{grid-template-columns:1fr}.project--wide{grid-row:auto}.split-panel{min-height:500px}.story-visual{position:relative;top:0;height:480px;grid-row:1}.story-step{opacity:1}.career-cards{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.duality-copy{padding-bottom:50px}footer{grid-template-columns:1fr}.hero-meta{flex-wrap:wrap}}
@media(max-width:600px){.site-header{height:70px}.brand{width:145px}.brand img{width:165px}.hero{min-height:700px;padding-top:80px}.hero-meta{margin-top:35px}.actions{flex-direction:column;align-items:stretch}.actions .btn{justify-content:center}.intro{gap:35px}.facts{display:grid;grid-template-columns:1fr 1fr}.service-preview{padding:20px}.project,.project--tall{grid-template-columns:1fr}.split-panel{grid-template-columns:1fr;min-height:620px}.split-arrow{left:50%;top:50%}.trust-card{flex-direction:column;align-items:start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reactive [data-depth]{transform:none!important}}

/* =========================================================
   MOTION EDITION
   ========================================================= */
:root{
  --motion-fast:.28s;
  --motion-mid:.65s;
  --motion-slow:1.05s;
  --motion-ease:cubic-bezier(.22,1,.36,1);
}
body{overflow-x:hidden}
.site-header{transition:height .35s var(--motion-ease),background .35s ease,box-shadow .35s ease}
.site-header.is-scrolled{height:68px;background:rgba(255,255,255,.97);box-shadow:0 10px 40px #07131d12}
.site-header.is-scrolled .brand{transform:scale(.92);transform-origin:left center}
.brand{transition:transform .35s var(--motion-ease)}

.page-cover{position:fixed;inset:0;z-index:9999;background:var(--blue2);display:grid;place-items:center;transform:translateY(0);transition:transform .95s var(--motion-ease);pointer-events:none}
.page-cover.is-ready{transform:translateY(-102%)}
.page-cover span{font-size:clamp(70px,15vw,220px);font-weight:900;color:#ffffff10;letter-spacing:-.08em}
.page-cover__line{position:absolute;left:8%;right:8%;height:1px;background:#ffffff55;transform:scaleX(0);transform-origin:left;animation:coverLine 1.1s var(--motion-ease) forwards}
@keyframes coverLine{to{transform:scaleX(1)}}

.cursor-orb{position:fixed;width:420px;height:420px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,#0876f91c 0,transparent 67%);filter:blur(16px);transform:translate(-50%,-50%);opacity:0;transition:opacity .25s ease}
body.has-cursor .cursor-orb{opacity:1}

.split-title span{display:inline-block;opacity:0;filter:blur(14px);transform:translateY(55px);animation:titleIn 1.05s var(--motion-ease) forwards}
.split-title span:nth-child(2){animation-delay:.13s}
@keyframes titleIn{to{opacity:1;filter:blur(0);transform:translateY(0)}}
.hero .eyebrow,.hero .lead,.hero .actions,.hero-meta{opacity:0;transform:translateY(24px);animation:fadeUp .85s var(--motion-ease) forwards}
.hero .eyebrow{animation-delay:.35s}.hero .lead{animation-delay:.5s}.hero .actions{animation-delay:.64s}.hero-meta{animation-delay:.8s}
@keyframes fadeUp{to{opacity:1;transform:none}}

.hero-machine{transition:filter .6s ease;will-change:transform}
.hero:hover .hero-machine{filter:drop-shadow(0 35px 70px #000) saturate(1.12)}
.sparks{animation:sparkPulse 2.6s ease-in-out infinite alternate}
.machine-beam{animation:beamPulse 1.8s ease-in-out infinite alternate}
@keyframes sparkPulse{from{opacity:.42;transform:scaleX(.92)}to{opacity:.9;transform:scaleX(1.05)}}
@keyframes beamPulse{from{box-shadow:0 0 10px #fff,0 0 35px #ff7a00}to{box-shadow:0 0 25px #fff,0 0 90px #ff7a00}}

.btn[data-magnetic]{will-change:transform;transition:transform .25s var(--motion-ease),background .3s ease,color .3s ease}

.reveal-section{opacity:0;transform:translateY(45px);transition:opacity .9s var(--motion-ease),transform .9s var(--motion-ease)}
.reveal-section.is-visible{opacity:1;transform:none}

.service{position:relative;overflow:hidden}
.service:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--motion-ease)}
.service.active:after,.service:hover:after{transform:scaleX(1)}
.service-preview{position:relative;overflow:hidden}
.tech-visual{position:relative}
.service-scene{position:absolute;inset:0;opacity:0;transform:scale(1.08) translateY(22px);filter:blur(8px);transition:opacity .55s var(--motion-ease),transform .8s var(--motion-ease),filter .55s ease}
.service-scene.active{opacity:1;transform:none;filter:none}
.rack-lines{position:absolute;inset:18%;background:repeating-linear-gradient(90deg,#7f96a6 0 8px,transparent 8px 42px),repeating-linear-gradient(0deg,#7f96a6 0 7px,transparent 7px 46px);transform:perspective(600px) rotateX(58deg);box-shadow:0 25px 80px #0a86ff38}
.gauge{position:absolute;width:210px;height:210px;border:16px solid #6d8290;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 18px #0d1b24,0 0 80px #0876f930}
.gauge-needle{position:absolute;width:6px;height:86px;background:#ff5d31;left:50%;top:50%;transform-origin:50% 100%;transform:translate(-50%,-100%) rotate(38deg);animation:needle 2.8s ease-in-out infinite alternate}
@keyframes needle{to{transform:translate(-50%,-100%) rotate(118deg)}}
.transport-track{position:absolute;left:10%;right:10%;top:53%;height:18px;background:#70828c;box-shadow:0 30px 0 #20343f}
.transport-box{position:absolute;width:80px;height:56px;background:#164b78;border:2px solid #67b8ff;top:38%;animation:travel 4s linear infinite}
.transport-box.b2{animation-delay:-2s}
@keyframes travel{from{left:10%}to{left:75%}}
.spring{position:absolute;left:50%;top:50%;width:290px;height:90px;transform:translate(-50%,-50%) skewX(-10deg);background:repeating-radial-gradient(ellipse at center,transparent 0 11px,#90a2ad 12px 18px,transparent 19px 29px);filter:drop-shadow(0 18px 30px #000)}
.service-kicker,#service-title,#service-copy{transition:opacity .22s ease,transform .35s var(--motion-ease)}
.service-preview.is-switching .service-kicker,.service-preview.is-switching #service-title,.service-preview.is-switching #service-copy{opacity:0;transform:translateY(12px)}

.project{position:relative;overflow:hidden;transition:transform .6s var(--motion-ease),box-shadow .6s var(--motion-ease);transform-style:preserve-3d}
.project:hover{box-shadow:0 30px 80px #07131d24}
.project-art{overflow:hidden;transition:transform .85s var(--motion-ease)}
.project:hover .project-art{transform:scale(1.035)}
.project-reveal{position:absolute;inset:0;background:linear-gradient(120deg,#0c1f2c,#0876f9);transform:translateY(0);transition:transform .85s var(--motion-ease);z-index:3}
.project.is-visible .project-reveal{transform:translateY(-102%)}
.project-copy{position:relative;z-index:4;transition:transform .5s var(--motion-ease)}
.project:hover .project-copy{transform:translateY(-6px)}

.wipe-section{position:relative;clip-path:inset(8% 6% round 28px);transform:translateY(30px) scale(.985);opacity:.72;transition:clip-path 1.1s var(--motion-ease),transform 1.1s var(--motion-ease),opacity .9s ease}
.wipe-section.is-visible{clip-path:inset(0 0 round 0);transform:none;opacity:1}
.split-half{position:relative;overflow:hidden}
.split-half:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ffffff12,transparent);transform:translateX(-120%);transition:transform 1.1s var(--motion-ease)}
.wipe-section.is-visible .split-half:after{transform:translateX(120%)}

.story-visual{box-shadow:0 35px 90px #07131d24}
.blueprint:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0 48%,#0876f91a 49% 51%,transparent 52%);background-size:100% 42px;animation:scan 4s linear infinite}
@keyframes scan{to{background-position:0 84px}}
.process-core{box-shadow:0 0 60px #0876f933}
.story-step.active h3{color:var(--blue2);transform:translateX(10px)}
.story-step h3{transition:color .35s ease,transform .45s var(--motion-ease)}

.contact{position:relative;overflow:hidden}
.contact:after{content:"HKS";position:absolute;right:-1vw;bottom:-8vw;font-size:28vw;font-weight:900;line-height:.8;color:#ffffff08;letter-spacing:-.08em;pointer-events:none}

@media(max-width:900px){
  .cursor-orb{display:none}
  .project{transform:none!important}
  .wipe-section{clip-path:none;opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .page-cover{display:none}
  .reveal-section,.project-reveal,.wipe-section{opacity:1!important;transform:none!important;clip-path:none!important}
  .split-title span,.hero .eyebrow,.hero .lead,.hero .actions,.hero-meta{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}
}


/* =========================================================
   V3 — REAL IMAGE MOTION LAYER
   ========================================================= */
.hero-media{position:absolute;inset:0;overflow:hidden;z-index:1}
.hero-photo{position:absolute;inset:-4%;background-size:cover;background-position:center;will-change:transform,opacity,clip-path,filter;transition:transform 1.2s var(--motion-ease),opacity 1s ease,filter 1s ease;filter:saturate(.82) contrast(1.05) brightness(.72)}
.hero-photo--cad{background-image:linear-gradient(90deg,rgba(5,12,19,.82) 0 38%,rgba(5,12,19,.35) 68%,rgba(5,12,19,.12)),url("images/hero-cad.webp");opacity:1;clip-path:inset(0 0 0 0)}
.hero-photo--cnc{background-image:linear-gradient(90deg,rgba(5,12,19,.88) 0 38%,rgba(5,12,19,.4) 65%,rgba(5,12,19,.1)),url("images/hero-cnc.webp");opacity:.0;clip-path:inset(0 0 0 52%)}
.hero-photo--robot{background-image:linear-gradient(90deg,rgba(5,12,19,.9) 0 42%,rgba(5,12,19,.5) 68%,rgba(5,12,19,.18)),url("images/hero-robot.webp");opacity:0;clip-path:inset(0 0 0 64%)}
.hero-photo-mask{position:absolute;inset:0;background:linear-gradient(90deg,#06101a 0 30%,transparent 64%),radial-gradient(circle at 76% 45%,transparent 0 28%,rgba(5,12,19,.22) 70%);z-index:2;pointer-events:none}
.hero-photo-glow{position:absolute;right:8%;top:8%;width:44vw;height:44vw;background:radial-gradient(circle,#ff8a1f22,transparent 60%);filter:blur(20px);z-index:3}
.hero-content{z-index:5}
.hero-grid{z-index:4;opacity:.55}
.hero.is-cnc .hero-photo--cad{opacity:.15;transform:scale(1.04)}
.hero.is-cnc .hero-photo--cnc{opacity:1;clip-path:inset(0 0 0 36%);transform:scale(1)}
.hero.is-robot .hero-photo--cad{opacity:.08;transform:scale(1.05)}
.hero.is-robot .hero-photo--cnc{opacity:.15;clip-path:inset(0 0 0 58%)}
.hero.is-robot .hero-photo--robot{opacity:1;clip-path:inset(0 0 0 42%);transform:scale(1)}
.hero-image-switch{position:absolute;right:var(--pad);bottom:34px;z-index:8;display:flex;gap:8px}
.hero-image-switch button{width:38px;height:4px;border:0;background:#ffffff44;cursor:pointer;padding:0;transition:.3s}
.hero-image-switch button.active{width:70px;background:white}

/* Services use real imagery */
.tech-visual{min-height:340px}
.service-scene{overflow:hidden}
.service-scene img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);filter:saturate(.78) brightness(.72);transition:transform 1.1s var(--motion-ease),filter .8s ease}
.service-scene.active img{transform:scale(1);filter:saturate(.95) brightness(.82)}
.service-image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(6,16,26,.18) 55%,rgba(6,16,26,.9));z-index:5;pointer-events:none}

/* Project imagery */
.project-art img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);filter:saturate(.78) contrast(1.03);transition:transform 1s var(--motion-ease),filter .7s ease}
.project:hover .project-art img{transform:scale(1.09);filter:saturate(1) contrast(1.06)}
.project-art:after{display:none}
.prototype-note{font-size:12px;color:#7b8790;margin:-30px 0 40px;padding-left:2px}

/* Construction ↔ Production with actual images */
.split-half{position:relative}
.split-half img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.5s var(--motion-ease),filter .8s ease;filter:saturate(.72) brightness(.7)}
.wipe-section.is-visible .split-half img{transform:scale(1)}
.split-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,12,18,.08),rgba(5,12,18,.8));z-index:1}
.split-half span,.split-half b{position:relative;z-index:2}
.construction,.production{background:none}

/* Better image-driven section entrance */
.project:nth-child(1).is-visible{transition-delay:.04s}
.project:nth-child(2).is-visible{transition-delay:.16s}
.project:nth-child(3).is-visible{transition-delay:.28s}

@media(max-width:900px){
 .hero-photo{inset:0}
 .hero-photo--cad,.hero-photo--cnc,.hero-photo--robot{background-position:62% center}
 .hero-photo-mask{background:linear-gradient(180deg,rgba(6,16,26,.48),rgba(6,16,26,.8) 72%)}
 .hero-photo--cnc,.hero-photo--robot{clip-path:none!important}
}
@media(prefers-reduced-motion:reduce){
 .hero-photo{transition:none!important;transform:none!important}
 .project-art img,.split-half img,.service-scene img{transition:none!important;transform:none!important}
}


/* =========================================================
   V4 — FIXED HEADER / VIDEO / PREMIUM TRANSITIONS / MOBILE FIRST
   ========================================================= */

/* Fixed header with layout compensation */
.site-header{
  position:fixed!important;
  inset:0 0 auto 0;
  top:0!important;
  z-index:900;
}
body{padding-top:82px}
@media(max-width:900px){body{padding-top:70px}}

/* Video hero */
.hero-video-wrap{position:absolute;inset:0;overflow:hidden;z-index:1;background:#06101a}
.hero-video,.hero-video-fallback{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;object-position:center;will-change:transform}
.hero-video{z-index:1;filter:saturate(.78) contrast(1.07) brightness(.72)}
.hero-video-fallback{z-index:0;background:url("images/hero-cad.webp") center/cover no-repeat;filter:saturate(.7) brightness(.62)}
.hero-video-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(4,10,16,.94) 0 25%,rgba(4,10,16,.70) 42%,rgba(4,10,16,.23) 72%,rgba(4,10,16,.28)),linear-gradient(0deg,rgba(4,10,16,.42),transparent 50%)}
.hero-video-grid{position:absolute;inset:0;z-index:3;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,black,transparent)}
.hero-video-glow{position:absolute;right:6%;top:15%;z-index:4;width:35vw;height:35vw;background:radial-gradient(circle,#0876f928,transparent 64%);filter:blur(26px)}
.hero-content{z-index:5}

/* Scroll progress – small but premium */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:1000;pointer-events:none}
.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--blue),#73b9ff);transform:scaleX(0);transform-origin:left;will-change:transform}

/* More expressive page transition */
.page-cover{
  display:block;
  transform:translateY(0);
  overflow:hidden;
}
.page-cover:before,.page-cover:after{
  content:"";position:absolute;inset:0;
  transform:translateY(100%);
}
.page-cover:before{background:#07131d;transition:transform .76s var(--motion-ease)}
.page-cover:after{background:var(--blue2);transition:transform .76s .08s var(--motion-ease)}
.page-cover.is-ready{transform:none;pointer-events:none}
.page-cover.is-ready:before,.page-cover.is-ready:after{transform:translateY(-100%)}
.page-cover span{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);transition:opacity .35s .22s ease}
.page-cover.is-ready span{opacity:0}
.page-cover.is-leaving{pointer-events:auto}
.page-cover.is-leaving:before,.page-cover.is-leaving:after{transform:translateY(0)}
.page-cover.is-leaving span{opacity:1}

/* Section clip transition inspired by high-end editorial sites */
.clip-reveal-section{
  clip-path:inset(8% 3% 8% 3% round 30px);
  transform:scale(.985);
  transition:clip-path 1.1s var(--motion-ease),transform 1.1s var(--motion-ease),opacity .85s ease;
}
.clip-reveal-section.is-visible{clip-path:inset(0 0 0 0 round 0);transform:none}

/* Horizontal accent sweeps */
.section-head h2{position:relative}
.section-head h2:after{
  content:"";position:absolute;left:0;bottom:-18px;height:2px;width:min(180px,35vw);
  background:linear-gradient(90deg,var(--blue),transparent);
  transform:scaleX(0);transform-origin:left;transition:transform .9s .18s var(--motion-ease)
}
.is-visible .section-head h2:after{transform:scaleX(1)}

/* Menu desktop submenu */
.nav-group{position:relative;display:flex;align-items:center}
.nav-parent{background:none;border:0;font:inherit;font-weight:700;color:inherit;cursor:pointer;padding:30px 0}
.nav-parent span{display:inline-block;margin-left:5px;transition:transform .25s}
.nav-group.open .nav-parent span{transform:rotate(45deg)}
.submenu{position:absolute;left:-20px;top:68px;min-width:260px;background:#fff;border:1px solid var(--line);box-shadow:0 25px 65px #07131d18;padding:12px;opacity:0;visibility:hidden;transform:translateY(10px);transition:.28s var(--motion-ease)}
.nav-group:hover .submenu,.nav-group:focus-within .submenu,.nav-group.open .submenu{opacity:1;visibility:visible;transform:none}
.submenu a{display:block!important;padding:12px 14px!important}

/* Service links */
.service{text-decoration:none}
.service-preview{isolation:isolate}

/* Service pages */
.service-page-hero{
  min-height:68svh;background:#06101a;color:white;padding:clamp(80px,10vw,140px) var(--pad);
  display:grid;align-items:end;position:relative;overflow:hidden
}
.service-page-hero__image{position:absolute;inset:0}
.service-page-hero__image img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) brightness(.58);transform:scale(1.04)}
.service-page-hero__image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#06101af2 0 38%,#06101a70 70%,#06101a20)}
.service-page-hero__content{position:relative;z-index:2;max-width:900px}
.service-page-hero h1{font-size:clamp(50px,8vw,110px)}
.service-page-main{max-width:var(--max);margin:auto}
.service-problem,.service-solution{padding:var(--section) var(--pad);display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}
.service-problem h2,.service-solution h2{font-size:clamp(34px,4.7vw,66px)}
.service-copy-large{font-size:clamp(19px,2vw,27px);line-height:1.5}
.service-benefits{padding:var(--section) var(--pad);background:var(--surface)}
.service-benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.service-benefit{background:#fff;border:1px solid var(--line);padding:30px;min-height:220px}
.service-benefit small{color:var(--blue);font-weight:900}
.service-process{padding:var(--section) var(--pad)}
.service-process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.service-process-grid article{padding:30px;border-top:1px solid var(--line);border-right:1px solid var(--line)}
.service-process-grid small{font-weight:900;color:var(--blue)}
.service-related{padding:var(--section) var(--pad);background:#07131d;color:white}
.service-related-links{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:35px}
.service-related-links a{padding:24px;border:1px solid #2c3b46;transition:.3s}
.service-related-links a:hover{background:var(--blue2);border-color:var(--blue2)}

/* Footer central component */
.site-footer{background:#06111a;color:#9aa9b4;padding:60px var(--pad);display:grid;grid-template-columns:1.3fr repeat(3,.7fr);gap:50px;font-size:13px}
.site-footer>div{display:flex;flex-direction:column;gap:9px}
.site-footer b{color:white;margin-bottom:10px}
.site-footer img{width:210px;background:#fff;padding:8px;margin-bottom:12px}

/* MOBILE-FIRST CORRECTIONS */
@media(max-width:900px){
  .site-header{height:70px}
  .menu-toggle{display:flex!important;align-items:center;gap:10px;z-index:2}
  .menu-toggle i{width:18px;height:1px;background:currentColor;position:relative}
  .menu-toggle i:after{content:"";position:absolute;width:18px;height:1px;background:currentColor;left:0;top:6px}
  .main-nav.open{
    position:fixed!important;top:70px!important;left:0!important;right:0!important;bottom:0!important;
    padding:24px var(--pad) 50px!important;overflow:auto;display:flex!important;align-items:stretch;
  }
  .nav-group{display:block}
  .nav-parent{width:100%;display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line)}
  .submenu{position:static;min-width:0;box-shadow:none;border:0;padding:0 0 0 14px;display:none;opacity:1;visibility:visible;transform:none}
  .nav-group.open .submenu{display:block}
  .submenu a{padding:11px 0!important}
  .main-nav>a{border-bottom:1px solid var(--line)}
  .hero{min-height:calc(100svh - 70px);padding-top:70px}
  .hero-content{width:100%;max-width:none}
  .hero-video,.hero-video-fallback{inset:0;width:100%;height:100%;object-position:63% center}
  .hero-video-shade{background:linear-gradient(180deg,rgba(4,10,16,.36),rgba(4,10,16,.84) 55%,rgba(4,10,16,.97))}
  .hero-grid{display:none}
  .hero .lead{font-size:17px;max-width:520px}
  .hero-meta{font-size:11px;gap:12px 18px}
  .service-layout{display:block}
  .service-preview{display:none} /* no hover-dependent UI on touch */
  .service-list{display:grid;gap:8px}
  .service{
    grid-template-columns:40px 1fr auto!important;
    padding:19px 16px!important;background:#10202b;border:1px solid #2d3b44!important;color:white!important;
  }
  .service span{font-size:clamp(20px,6vw,30px)!important;transform:none!important}
  .project{display:block}
  .project-art{min-height:260px}
  .duality{display:block}
  .split-panel{grid-template-columns:1fr!important}
  .split-half{min-height:52svh}
  .story-layout{display:flex;flex-direction:column}
  .story-visual{order:-1;position:relative!important;height:55svh;min-height:360px;top:auto!important}
  .story-step{padding:28px 0}
  .clip-reveal-section{clip-path:none;transform:none}
  .service-problem,.service-solution{grid-template-columns:1fr;gap:25px}
  .service-benefits-grid{grid-template-columns:1fr}
  .service-process-grid{grid-template-columns:1fr}
  .service-process-grid article{border-right:0;border-bottom:1px solid var(--line)}
  .service-related-links{grid-template-columns:1fr}
  .site-footer{grid-template-columns:1fr 1fr}
}

@media(max-width:560px){
  h1{font-size:clamp(42px,14vw,64px)}
  h2{font-size:clamp(31px,9vw,46px)}
  .section{padding-left:20px;padding-right:20px}
  .hero{padding-left:20px;padding-right:20px}
  .facts{grid-template-columns:1fr!important}
  .facts span{min-width:0}
  .project-copy{padding:22px}
  .duality-copy{padding-left:20px;padding-right:20px}
  .split-half{min-height:46svh;padding:24px}
  .career-cards{display:block}
  .career-cards>div{margin-bottom:8px;min-height:0}
  .trust-card{padding:28px}
  .site-footer{grid-template-columns:1fr;padding:48px 20px}
  .service-page-hero{min-height:72svh;padding:80px 20px 45px}
  .service-problem,.service-solution,.service-benefits,.service-process,.service-related{padding-left:20px;padding-right:20px}
}


/* V4.1 FIX — Page cover darf nach Intro nicht als blaue Vollfläche stehen bleiben */
.page-cover{
  background:transparent !important;
}
.page-cover.is-ready{
  background:transparent !important;
  visibility:hidden;
  transition:visibility 0s .9s;
}
.page-cover.is-leaving{
  visibility:visible;
  transition:none;
}


/* =========================================================
   V4.2 — SERVICE CTA + MOBILE SERVICE SELECTOR
   ========================================================= */
.service-preview-cta{align-self:flex-start;margin-top:18px}
.services-mobile{display:none}

/* Mobile/tablet service experience */
@media(max-width:900px){
  .service-layout{display:none!important}
  .services-mobile{display:block}
  .services-mobile-nav{
    display:flex;
    align-items:center;
    gap:8px;
    overflow-x:auto;
    padding:0 0 16px;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .services-mobile-nav::-webkit-scrollbar{display:none}
  .services-mobile-tab{
    flex:0 0 auto;
    min-width:56px;
    height:54px;
    padding:0 14px;
    border:1px solid #344650;
    background:#0d1b24;
    color:#8fa0aa;
    display:flex;
    align-items:center;
    gap:0;
    overflow:hidden;
    cursor:pointer;
    scroll-snap-align:start;
    transition:
      min-width .42s var(--motion-ease),
      background .3s ease,
      border-color .3s ease,
      color .3s ease,
      padding .42s var(--motion-ease);
  }
  .services-mobile-tab .num{
    font-size:13px;
    font-weight:900;
    letter-spacing:.08em;
    flex:0 0 auto;
  }
  .services-mobile-tab .label{
    max-width:0;
    opacity:0;
    overflow:hidden;
    white-space:nowrap;
    font-weight:800;
    font-size:14px;
    transition:max-width .42s var(--motion-ease),opacity .25s ease,margin-left .42s var(--motion-ease);
  }
  .services-mobile-tab.active,
  .services-mobile-tab:hover,
  .services-mobile-tab:focus-visible{
    min-width:220px;
    background:var(--blue2);
    border-color:var(--blue2);
    color:#fff;
    padding-left:16px;
    padding-right:18px;
  }
  .services-mobile-tab.active .label,
  .services-mobile-tab:hover .label,
  .services-mobile-tab:focus-visible .label{
    max-width:180px;
    opacity:1;
    margin-left:10px;
  }

  .services-mobile-panel{
    margin-top:14px;
    background:#102330;
    padding:20px;
    border:1px solid #2a3b46;
    overflow:hidden;
  }
  .services-mobile-visual{
    position:relative;
    aspect-ratio:16/10;
    overflow:hidden;
    background:#07131d;
    margin-bottom:24px;
  }
  .services-mobile-visual img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transform:scale(1.03);
    filter:saturate(.85) brightness(.78);
    transition:opacity .3s ease,transform .7s var(--motion-ease),filter .5s ease;
  }
  .services-mobile-visual.is-switching img{
    opacity:.18;
    transform:scale(1.09);
    filter:saturate(.55) brightness(.55);
  }
  .services-mobile-overlay{
    position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 40%,rgba(6,16,26,.55));
    pointer-events:none;
  }
  .services-mobile-panel h3{
    font-size:clamp(28px,7.5vw,42px);
    line-height:1.05;
    letter-spacing:-.04em;
    margin:8px 0 14px;
  }
  .services-mobile-panel>p:last-of-type{
    color:#b2bec6;
    margin-bottom:22px;
  }
  .services-mobile-panel .btn{width:100%;justify-content:space-between}
}

/* Narrow phones: keep active label readable and inactive numbers visible */
@media(max-width:560px){
  .services-mobile-nav{gap:6px}
  .services-mobile-tab{
    min-width:48px;
    height:50px;
    padding:0 12px;
  }
  .services-mobile-tab.active,
  .services-mobile-tab:hover,
  .services-mobile-tab:focus-visible{
    min-width:min(210px,68vw);
  }
  .services-mobile-panel{padding:16px}
  .services-mobile-visual{aspect-ratio:4/3}
}

/* Touch devices: selected state is primary, hover is not required */
@media(hover:none){
  .services-mobile-tab:hover{
    min-width:48px;
    background:#0d1b24;
    border-color:#344650;
    color:#8fa0aa;
    padding:0 12px;
  }
  .services-mobile-tab:hover .label{
    max-width:0;
    opacity:0;
    margin-left:0;
  }
  .services-mobile-tab.active{
    min-width:min(220px,72vw);
    background:var(--blue2);
    border-color:var(--blue2);
    color:#fff;
    padding-left:16px;
    padding-right:18px;
  }
  .services-mobile-tab.active .label{
    max-width:180px;
    opacity:1;
    margin-left:10px;
  }
}


/* =========================================================
   V4.3 — MOBILE SERVICE NAV POLISH
   Skill rule: own touch interaction, not shrunken desktop
   ========================================================= */
@media(max-width:900px){
  .services-mobile-nav{
    width:100%;
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    overflow-x:auto;
    overscroll-behavior-x:contain;
  }

  /* Inactive items remain compact numbers */
  .services-mobile-tab{
    flex:0 0 52px;
    width:52px;
    min-width:52px;
    justify-content:center;
  }

  /* Active item expands and reveals the service name */
  .services-mobile-tab.active{
    flex:0 0 min(230px,72vw);
    width:auto;
    min-width:min(230px,72vw);
    justify-content:flex-start;
  }

  .services-mobile-tab.active .label{
    max-width:180px;
  }

  /* The content panel always belongs visually to the selected tab */
  .services-mobile-panel{
    position:relative;
    border-top:3px solid var(--blue);
  }

  .services-mobile-panel:before{
    content:"";
    position:absolute;
    top:-3px;
    left:0;
    width:42px;
    height:3px;
    background:#fff;
    opacity:.85;
  }

  /* Ensure buttons remain comfortably tappable */
  .services-mobile-tab,
  .services-mobile-panel .btn{
    min-height:48px;
  }
}

@media(max-width:380px){
  .services-mobile-tab{
    flex-basis:46px;
    width:46px;
    min-width:46px;
    padding-left:10px;
    padding-right:10px;
  }
  .services-mobile-tab.active{
    flex-basis:min(205px,70vw);
    min-width:min(205px,70vw);
  }
  .services-mobile-tab.active .label{
    max-width:150px;
    font-size:13px;
  }
}


/* =========================================================
   V4.4 — MOBILE PROCESS INTERACTION
   Desktop keeps sticky storytelling; mobile gets its own touch pattern.
   ========================================================= */
.process-mobile{display:none}

@media(max-width:900px){
  /* Hide desktop sticky storytelling on touch-sized layouts */
  .story-layout{display:none!important}

  .process-mobile{
    display:block;
    margin-top:24px;
  }

  .process-mobile-nav{
    display:flex;
    align-items:center;
    gap:8px;
    overflow-x:auto;
    padding:0 0 16px;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .process-mobile-nav::-webkit-scrollbar{display:none}

  .process-mobile-tab{
    flex:0 0 52px;
    width:52px;
    min-width:52px;
    height:52px;
    padding:0 13px;
    border:1px solid var(--line);
    background:#fff;
    color:#74808a;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:0;
    overflow:hidden;
    cursor:pointer;
    scroll-snap-align:start;
    transition:
      flex-basis .42s var(--motion-ease),
      min-width .42s var(--motion-ease),
      background .3s ease,
      color .3s ease,
      border-color .3s ease,
      padding .42s var(--motion-ease);
  }

  .process-mobile-tab .num{
    flex:0 0 auto;
    font-size:13px;
    font-weight:900;
    letter-spacing:.08em;
  }

  .process-mobile-tab .label{
    max-width:0;
    opacity:0;
    overflow:hidden;
    white-space:nowrap;
    font-size:14px;
    font-weight:800;
    transition:max-width .42s var(--motion-ease),opacity .25s ease,margin-left .42s var(--motion-ease);
  }

  .process-mobile-tab.active,
  .process-mobile-tab:focus-visible{
    flex:0 0 min(205px,68vw);
    min-width:min(205px,68vw);
    width:auto;
    justify-content:flex-start;
    background:var(--blue2);
    border-color:var(--blue2);
    color:#fff;
    padding-left:16px;
    padding-right:18px;
  }

  .process-mobile-tab.active .label,
  .process-mobile-tab:focus-visible .label{
    max-width:150px;
    opacity:1;
    margin-left:10px;
  }

  .process-mobile-panel{
    margin-top:8px;
    background:#07131d;
    color:#fff;
    border-top:3px solid var(--blue);
    padding:18px;
    overflow:hidden;
    min-height:0;
  }

  .process-mobile-visual{
    aspect-ratio:4/3;
    background:#06101a;
    overflow:hidden;
    margin-bottom:22px;
  }

  .process-mobile-blueprint{
    position:relative;
    width:100%;
    height:100%;
    background-image:
      linear-gradient(#2b8cff18 1px,transparent 1px),
      linear-gradient(90deg,#2b8cff18 1px,transparent 1px);
    background-size:30px 30px;
  }

  .process-mobile-no{
    position:absolute;
    top:18px;
    left:18px;
    font-size:58px;
    font-weight:900;
    color:#ffffff0d;
    line-height:1;
  }

  .process-mobile-core{
    position:absolute;
    left:50%;
    top:50%;
    width:128px;
    height:128px;
    border:2px solid #258aff;
    border-radius:50%;
    transform:translate(-50%,-50%);
    box-shadow:0 0 45px #0876f933;
    transition:transform .55s var(--motion-ease),border-radius .55s var(--motion-ease),box-shadow .55s ease;
  }

  .process-mobile-core:after{
    content:"";
    position:absolute;
    inset:22px;
    border:2px dashed #8dc4ff;
    border-radius:inherit;
  }

  .process-mobile-line{
    position:absolute;
    left:50%;
    top:50%;
    height:2px;
    background:#258aff;
    transform-origin:left center;
    transition:transform .55s var(--motion-ease),width .55s var(--motion-ease);
  }
  .process-mobile-line.p1{width:31%;transform:rotate(25deg)}
  .process-mobile-line.p2{width:28%;transform:rotate(150deg)}
  .process-mobile-line.p3{width:25%;transform:rotate(270deg)}

  .process-mobile-visual-label{
    position:absolute;
    left:18px;
    bottom:16px;
    font-size:12px;
    font-weight:900;
    letter-spacing:.16em;
  }

  .process-mobile-panel h3{
    font-size:clamp(30px,8vw,42px);
    line-height:1.05;
    letter-spacing:-.04em;
    margin:7px 0 12px;
  }

  .process-mobile-panel>p:last-child{
    color:#b7c2c9;
    margin-bottom:0;
  }

  .process-mobile-panel.is-switching .process-mobile-blueprint,
  .process-mobile-panel.is-switching #process-mobile-title,
  .process-mobile-panel.is-switching #process-mobile-copy{
    opacity:.2;
    transform:translateY(8px);
  }

  .process-mobile-blueprint,
  #process-mobile-title,
  #process-mobile-copy{
    transition:opacity .2s ease,transform .35s var(--motion-ease);
  }
}

@media(max-width:380px){
  .process-mobile-tab{
    flex-basis:46px;
    width:46px;
    min-width:46px;
    padding-left:10px;
    padding-right:10px;
  }
  .process-mobile-tab.active,
  .process-mobile-tab:focus-visible{
    flex-basis:min(185px,67vw);
    min-width:min(185px,67vw);
  }
  .process-mobile-tab.active .label,
  .process-mobile-tab:focus-visible .label{
    max-width:130px;
    font-size:13px;
  }
}

@media(hover:hover) and (max-width:900px){
  .process-mobile-tab:hover{
    background:#edf5ff;
    border-color:#9fcaff;
    color:var(--blue2);
  }
  .process-mobile-tab.active:hover{
    background:var(--blue2);
    color:#fff;
  }
}


/* =========================================================
   V4.5 — MOBILE PROCESS SCROLL STORY
   Natural downward scroll advances through all six process steps.
   ========================================================= */
@media(max-width:900px){
  .process-mobile{
    position:relative;
    margin-top:24px;
  }

  .process-mobile-sticky{
    position:sticky;
    top:86px;
    z-index:4;
  }

  .process-mobile-scrolltrack{
    position:relative;
    z-index:1;
    margin-top:-1px;
  }

  .process-mobile-trigger{
    height:72svh;
    min-height:460px;
    pointer-events:none;
  }

  .process-mobile-progress{
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:3px;
    background:#ffffff14;
    z-index:8;
  }

  .process-mobile-progress span{
    display:block;
    width:100%;
    height:100%;
    transform-origin:left center;
    transform:scaleX(0);
    background:linear-gradient(90deg,var(--blue),#8dccff);
    transition:transform .35s var(--motion-ease);
  }

  .process-mobile-panel{
    position:relative;
    box-shadow:0 26px 70px rgba(7,19,29,.22);
  }

  /* keep sticky block within typical phone viewport */
  .process-mobile-visual{
    aspect-ratio:16/10;
    max-height:34svh;
  }

  .process-mobile-panel h3{
    margin-bottom:8px;
  }

  .process-mobile-panel>p:last-child{
    min-height:3.2em;
  }
}

@media(max-width:560px){
  .process-mobile-sticky{
    top:76px;
  }

  .process-mobile-trigger{
    height:66svh;
    min-height:390px;
  }

  .process-mobile-visual{
    aspect-ratio:16/9;
    max-height:30svh;
  }
}

/* Reduced motion: no long sticky scroll sequence */
@media(max-width:900px) and (prefers-reduced-motion:reduce){
  .process-mobile-sticky{
    position:relative;
    top:auto;
  }
  .process-mobile-scrolltrack{
    display:none;
  }
}


/* =========================================================
   V4.6 — MOBILE PROCESS NAV: ALL 6 STEPS VISIBLE
   ========================================================= */
@media(max-width:900px){
  .process-mobile-nav{
    overflow:visible !important;
    gap:4px !important;
    width:100%;
  }

  .process-mobile-tab{
    flex:0 0 38px !important;
    width:38px !important;
    min-width:38px !important;
    height:48px !important;
    padding:0 6px !important;
  }

  .process-mobile-tab .num{
    font-size:11px !important;
  }

  .process-mobile-tab.active,
  .process-mobile-tab:focus-visible{
    flex:1 1 auto !important;
    width:auto !important;
    min-width:112px !important;
    max-width:none !important;
    padding:0 10px !important;
  }

  .process-mobile-tab.active .label,
  .process-mobile-tab:focus-visible .label{
    display:block;
    max-width:none !important;
    opacity:1 !important;
    margin-left:7px !important;
    font-size:12px !important;
    white-space:normal !important;
    line-height:1.05;
  }
}

@media(max-width:380px){
  .process-mobile-nav{gap:3px !important}

  .process-mobile-tab{
    flex-basis:34px !important;
    width:34px !important;
    min-width:34px !important;
    padding:0 4px !important;
  }

  .process-mobile-tab.active,
  .process-mobile-tab:focus-visible{
    min-width:104px !important;
    padding:0 8px !important;
  }

  .process-mobile-tab.active .label,
  .process-mobile-tab:focus-visible .label{
    font-size:11px !important;
    margin-left:5px !important;
  }
}

/* Mobile burger visibility and open-state hardening */
@media(max-width:900px){
  body.menu-open{overflow:hidden}

  .menu-toggle{
    display:flex !important;
    position:relative;
    z-index:1002;
    cursor:pointer;
  }

  .main-nav{
    display:none !important;
  }

  .main-nav.open{
    display:flex !important;
    z-index:1001;
  }
}


/* =========================================================
   V4.7 — LARGE MOBILE MENU
   Full, calm navigation instead of a small scroll box.
   Only scroll if viewport height actually requires it.
   ========================================================= */
@media(max-width:900px){
  .main-nav.open{
    position:fixed !important;
    inset:72px 0 0 0 !important;
    width:100% !important;
    height:calc(100dvh - 72px) !important;
    max-height:none !important;
    padding:28px 20px 34px !important;
    background:#fff !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important; /* only becomes useful if content exceeds viewport */
    overscroll-behavior:contain;
    border-top:1px solid #d9e0e5;
    box-shadow:none !important;
  }

  .main-nav.open > a,
  .main-nav.open .nav-item > a,
  .main-nav.open .nav-parent{
    min-height:64px !important;
    width:100% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:0 !important;
    margin:0 !important;
    border-bottom:1px solid #dce3e8 !important;
    font-size:clamp(20px,5.5vw,28px) !important;
    font-weight:800 !important;
    line-height:1.1 !important;
    color:#07131d !important;
    white-space:normal !important;
  }

  .main-nav.open .nav-item{
    width:100% !important;
  }

  .main-nav.open .nav-dropdown{
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    max-height:none !important;
    padding:4px 0 12px 16px !important;
    margin:0 !important;
    background:#f5f8fa !important;
    box-shadow:none !important;
    border:0 !important;
  }

  .main-nav.open .nav-dropdown a{
    min-height:48px !important;
    display:flex !important;
    align-items:center !important;
    padding:0 10px !important;
    font-size:15px !important;
    line-height:1.25 !important;
    border-bottom:1px solid #e1e7eb !important;
  }

  .main-nav.open .nav-cta{
    margin-top:24px !important;
    min-height:58px !important;
    padding:0 20px !important;
    justify-content:center !important;
    background:var(--blue2) !important;
    color:#fff !important;
    border:0 !important;
    font-size:16px !important;
  }

  .menu-toggle{
    min-width:86px;
    min-height:48px;
    justify-content:flex-end;
    gap:12px;
    font-size:17px;
    font-weight:800;
  }
}

/* More breathing room on larger phones */
@media(min-width:480px) and (max-width:900px){
  .main-nav.open{
    padding-left:clamp(28px,8vw,72px) !important;
    padding-right:clamp(28px,8vw,72px) !important;
  }
  .main-nav.open > a,
  .main-nav.open .nav-item > a,
  .main-nav.open .nav-parent{
    min-height:72px !important;
  }
}

/* On short landscape phones scrolling is allowed because content is taller than viewport */
@media(max-width:900px) and (max-height:560px){
  .main-nav.open{
    padding-top:14px !important;
    padding-bottom:20px !important;
  }
  .main-nav.open > a,
  .main-nav.open .nav-item > a,
  .main-nav.open .nav-parent{
    min-height:52px !important;
    font-size:19px !important;
  }
}


/* =========================================================
   V4.9 — FIXED HERO MEDIA + ICON COMPETENCE STRIP
   ========================================================= */

/*
  Fixed-media principle:
  Hero content scrolls, while image/video remains visually fixed.
  `clip-path` on the hero creates a containing/clip context so the
  fixed media is only visible through the hero section.
*/
.hero{
  clip-path:inset(0);
  isolation:isolate;
}

.hero-video-wrap{
  position:fixed !important;
  top:82px !important;
  left:0 !important;
  right:0 !important;
  bottom:auto !important;
  width:100vw !important;
  height:calc(100svh - 82px) !important;
  z-index:1 !important;
  pointer-events:none;
}

.hero-video,
.hero-video-fallback{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  transform:none !important;
}

/* Fixed background also works if the hero later returns to a still image. */
.hero-fixed-image{
  position:fixed;
  top:82px;
  left:0;
  width:100vw;
  height:calc(100svh - 82px);
  object-fit:cover;
  pointer-events:none;
}

/* Competence / trust icon strip */
.competence-strip{
  grid-column:1 / -1;
  margin-top:clamp(38px,5vw,72px);
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}

.competence-item{
  min-width:0;
  padding:22px clamp(14px,2vw,26px);
  display:flex;
  align-items:center;
  gap:15px;
  border-right:1px solid var(--line);
}

.competence-item:last-child{border-right:0}

.competence-item svg{
  width:38px;
  height:38px;
  flex:0 0 38px;
  fill:none;
  stroke:var(--blue2);
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.competence-item strong{
  display:block;
  font-size:14px;
  line-height:1.15;
  color:var(--ink);
}

.competence-item span{
  display:block;
  margin-top:5px;
  font-size:11px;
  line-height:1.3;
  color:var(--muted);
}

/* Remove previous facts styling from visual flow if any remnants exist. */
.facts{display:none!important}

@media(max-width:1100px){
  .competence-strip{
    grid-template-columns:repeat(3,1fr);
  }
  .competence-item:nth-child(3){border-right:0}
  .competence-item:nth-child(-n+3){border-bottom:1px solid var(--line)}
}

@media(max-width:900px){
  .hero-video-wrap{
    top:70px !important;
    height:calc(100svh - 70px) !important;
  }

  .hero-fixed-image{
    top:70px;
    height:calc(100svh - 70px);
  }

  /*
    On touch/mobile the strip becomes a compact horizontal rail instead
    of squeezing five columns until the text becomes unreadable.
  */
  .competence-strip{
    grid-template-columns:none;
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    margin-left:calc(var(--pad) * -1);
    margin-right:calc(var(--pad) * -1);
    padding-left:var(--pad);
    padding-right:var(--pad);
    border-left:0;
    border-right:0;
  }

  .competence-strip::-webkit-scrollbar{display:none}

  .competence-item{
    flex:0 0 min(280px,78vw);
    min-height:92px;
    scroll-snap-align:start;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    background:#fff;
  }

  .competence-item:last-child{
    border-right:0!important;
  }
}

@media(max-width:560px){
  .competence-strip{
    margin-left:-20px;
    margin-right:-20px;
    padding-left:20px;
    padding-right:20px;
  }

  .competence-item{
    flex-basis:min(255px,82vw);
    padding:18px 16px;
  }

  .competence-item svg{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .competence-item strong{font-size:13px}
}

/* Keep reduced-motion users from getting any transform-based media motion. */
@media(prefers-reduced-motion:reduce){
  .hero-video,
  .hero-video-fallback,
  .hero-fixed-image{
    transform:none!important;
  }
}


/* =========================================================
   V4.10 — PREMIUM COMPETENCE / TRUST STRIP
   ========================================================= */

/* Give the editorial intro a stronger 46/54 weighting. */
.intro{
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr) !important;
  column-gap:clamp(56px,7vw,120px) !important;
  row-gap:clamp(48px,6vw,82px);
  align-items:start;
}

.intro .big-copy{
  max-width:760px;
  font-size:clamp(19px,1.55vw,25px);
  line-height:1.58;
  color:#1d2a33;
}

/* Full-width premium rail below both intro columns. */
.competence-strip{
  grid-column:1 / -1 !important;
  width:100%;
  margin-top:0 !important;
  padding:0 !important;
  display:grid !important;
  grid-template-columns:1fr 1.08fr 1.12fr 1.34fr 1.22fr !important;
  gap:0;
  position:relative;
  background:transparent !important;
  border:0 !important;
  border-top:1px solid #cad5dc !important;
  border-bottom:1px solid #cad5dc !important;
  overflow:hidden;
}

/* animated blue accent line */
.competence-strip:before{
  content:"";
  position:absolute;
  left:0;
  top:-1px;
  width:100%;
  height:2px;
  background:linear-gradient(90deg,var(--blue2),#68b6ff 72%,transparent);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 1.2s .2s var(--motion-ease);
  z-index:2;
}

.intro.is-visible .competence-strip:before,
.competence-strip.is-visible:before{
  transform:scaleX(1);
}

.competence-item{
  position:relative;
  min-width:0;
  min-height:145px;
  padding:30px clamp(22px,2.2vw,38px) 28px !important;
  display:grid !important;
  grid-template-columns:52px 1fr;
  align-items:center;
  gap:18px !important;
  background:transparent !important;
  border:0 !important;
}

/* subtle separators, not table cells */
.competence-item:not(:last-child):after{
  content:"";
  position:absolute;
  top:25%;
  right:0;
  width:1px;
  height:50%;
  background:linear-gradient(180deg,transparent,#cfd8de 20%,#cfd8de 80%,transparent);
}

.competence-item svg{
  width:48px !important;
  height:48px !important;
  flex:none !important;
  stroke:var(--blue2) !important;
  stroke-width:1.8 !important;
  transition:transform .5s var(--motion-ease),stroke .3s ease;
}

.competence-item:hover svg{
  transform:translateY(-4px) scale(1.06);
  stroke:var(--blue);
}

.competence-item strong{
  display:block;
  font-size:clamp(14px,1.05vw,17px) !important;
  line-height:1.12 !important;
  letter-spacing:-.015em;
  color:var(--ink) !important;
}

.competence-item span{
  display:block;
  margin-top:7px !important;
  max-width:180px;
  font-size:12px !important;
  line-height:1.45 !important;
  color:#6d7a84 !important;
}

/* sequential reveal */
.competence-item{
  opacity:0;
  transform:translateY(18px);
  transition:
    opacity .65s var(--motion-ease),
    transform .65s var(--motion-ease);
}
.intro.is-visible .competence-item{
  opacity:1;
  transform:none;
}
.intro.is-visible .competence-item:nth-child(1){transition-delay:.08s}
.intro.is-visible .competence-item:nth-child(2){transition-delay:.16s}
.intro.is-visible .competence-item:nth-child(3){transition-delay:.24s}
.intro.is-visible .competence-item:nth-child(4){transition-delay:.32s}
.intro.is-visible .competence-item:nth-child(5){transition-delay:.40s}

/* Tablet: two-row editorial grid instead of squeezing. */
@media(max-width:1100px) and (min-width:901px){
  .competence-strip{
    grid-template-columns:repeat(3,1fr) !important;
  }
  .competence-item{
    min-height:130px;
  }
  .competence-item:nth-child(3):after{display:none}
  .competence-item:nth-child(-n+3){
    border-bottom:1px solid #d6dee4 !important;
  }
}

/* Mobile: horizontal premium cards with clear snap points. */
@media(max-width:900px){
  .intro{
    grid-template-columns:1fr !important;
    gap:32px !important;
  }

  .competence-strip{
    display:flex !important;
    width:auto;
    margin-left:calc(var(--pad) * -1) !important;
    margin-right:calc(var(--pad) * -1) !important;
    padding-left:var(--pad) !important;
    padding-right:var(--pad) !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    border-top:1px solid #cad5dc !important;
    border-bottom:1px solid #cad5dc !important;
  }

  .competence-strip::-webkit-scrollbar{display:none}

  .competence-item{
    flex:0 0 min(310px,80vw) !important;
    min-height:118px !important;
    grid-template-columns:44px 1fr !important;
    padding:22px 20px !important;
    scroll-snap-align:start;
    opacity:1 !important;
    transform:none !important;
  }

  .competence-item:not(:last-child):after{
    top:20%;
    height:60%;
  }

  .competence-item svg{
    width:40px !important;
    height:40px !important;
  }

  .competence-item strong{
    font-size:15px !important;
  }

  .competence-item span{
    font-size:12px !important;
    max-width:210px;
  }
}

@media(max-width:560px){
  .competence-strip{
    margin-left:-20px !important;
    margin-right:-20px !important;
    padding-left:20px !important;
    padding-right:20px !important;
  }

  .competence-item{
    flex-basis:min(285px,84vw) !important;
  }
}

/* V4.11 deep service page */
.service-deep-hero h1{max-width:1180px;font-size:clamp(48px,6.1vw,102px);line-height:.94}
.service-deep-hero .lead{max-width:800px}
.deep-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(55px,8vw,135px);padding:clamp(90px,10vw,155px) 0;align-items:start}.deep-split h2,.deep-scope>h2,.deep-process>h2{font-size:clamp(40px,5vw,78px);line-height:.98;letter-spacing:-.045em;margin:0}.deep-split h2 em{font-style:normal;color:var(--blue2)}.deep-copy{font-size:clamp(18px,1.45vw,24px);line-height:1.65;color:#35444e}.deep-copy strong{display:block;font-size:clamp(23px,2vw,34px);color:var(--ink);margin-top:30px}
.deep-problem-grid{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);margin-bottom:clamp(90px,10vw,150px)}.deep-problem-grid article{padding:30px 26px;border-right:1px solid var(--line)}.deep-problem-grid article:last-child{border:0}.deep-problem-grid small,.deep-scope-grid small{color:var(--blue2);font-weight:800}.deep-problem-grid h3{font-size:21px;margin:26px 0 10px}.deep-problem-grid p,.deep-scope-grid p{color:var(--muted);line-height:1.55}
.deep-impact,.deep-benefits{background:#07131d;color:#fff;padding:clamp(85px,9vw,140px) 0}.deep-impact .eyebrow,.deep-benefits .eyebrow{color:#79c5fa}.deep-impact-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:30px;align-items:center}.deep-impact-flow div{border-top:1px solid #34505f;padding-top:22px}.deep-impact-flow small{display:block;color:#79c5fa;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}.deep-impact-flow b{font-size:clamp(20px,2vw,29px);line-height:1.25}.deep-impact-flow i{font-style:normal;color:#61b6f0;font-size:28px}
.deep-scope{padding-bottom:clamp(90px,10vw,150px)}.deep-scope-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:65px;border-top:1px solid var(--line)}.deep-scope-grid article{padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.deep-scope-grid article:nth-child(3n){border-right:0}.deep-scope-grid h3{font-size:24px;margin:23px 0 10px}
.deep-benefits h2{font-size:clamp(48px,6vw,90px);line-height:.95;margin:0}.deep-benefit-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#29404e;border:1px solid #29404e;margin-top:60px}.deep-benefit-grid article{background:#07131d;padding:40px}.deep-benefit-grid h3{font-size:26px}.deep-benefit-grid p{color:#b9c8d0;line-height:1.6}
.deep-list{border-top:1px solid var(--line)}.deep-list p{display:grid;grid-template-columns:48px 1fr;gap:18px;margin:0;padding:20px 0;border-bottom:1px solid var(--line);font-size:18px;line-height:1.5}.deep-list span{color:var(--blue2);font-size:12px;font-weight:800}
.deep-process{padding:0 0 clamp(100px,10vw,150px)}.deep-process-track{display:grid;grid-template-columns:repeat(6,1fr);margin-top:60px;position:relative}.deep-process-track:before{content:"";position:absolute;left:0;right:0;top:23px;height:1px;background:#bdc9d0}.deep-process-track div{position:relative}.deep-process-track b{position:relative;z-index:1;display:flex;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:#fff;border:1px solid #aebdc7;color:var(--blue2)}.deep-process-track span{display:block;margin-top:18px;font-weight:800;max-width:115px}
.deep-proof{display:grid;grid-template-columns:repeat(5,1fr);border-top:2px solid var(--blue2);border-bottom:1px solid var(--line);margin-bottom:20px}.deep-proof div{padding:28px 22px;border-right:1px solid var(--line)}.deep-proof div:last-child{border:0}.deep-proof strong,.deep-proof span{display:block}.deep-proof span{font-size:12px;color:var(--muted);margin-top:7px}
.deep-faq details{padding:23px 0;border-bottom:1px solid var(--line)}.deep-faq summary{font-size:19px;font-weight:800;cursor:pointer}.deep-faq details p{color:var(--muted);line-height:1.6}
.deep-cta h2{max-width:1100px}.deep-related-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(285px,1fr);overflow-x:auto;scroll-snap-type:x mandatory;border-block:1px solid var(--line);margin-top:45px;scrollbar-width:none}.deep-related-rail::-webkit-scrollbar{display:none}.deep-related-rail a{min-height:220px;padding:26px;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-right:1px solid var(--line);scroll-snap-align:start}.deep-related-rail small{color:var(--blue2)}.deep-related-rail strong{font-size:25px;margin-top:auto}.deep-related-rail span{color:var(--muted);margin-top:10px}
@media(max-width:900px){.deep-split{grid-template-columns:1fr;gap:32px}.deep-problem-grid{grid-template-columns:1fr 1fr}.deep-impact-flow{grid-template-columns:1fr}.deep-impact-flow i{transform:rotate(90deg)}.deep-scope-grid{grid-template-columns:1fr 1fr}.deep-scope-grid article:nth-child(3n){border-right:1px solid var(--line)}.deep-scope-grid article:nth-child(2n){border-right:0}.deep-process-track{grid-template-columns:repeat(6,minmax(145px,1fr));overflow-x:auto}.deep-process-track:before{width:870px}.deep-proof{display:flex;overflow-x:auto}.deep-proof div{flex:0 0 230px}}
@media(max-width:560px){.deep-problem-grid,.deep-scope-grid,.deep-benefit-grid{grid-template-columns:1fr}.deep-problem-grid article,.deep-scope-grid article{border-right:0!important}.deep-related-rail{grid-auto-columns:84vw}}


/* =========================================================
   V4.13 — PARTICLE MORPH SCROLL STORY
   ========================================================= */
.particle-story{
  position:relative;
  height:500svh;
  min-height:3200px;
  background:#050b10;
  color:#fff;
  clip-path:none!important;
  overflow:visible!important;
  padding:0!important;
}

.particle-sticky{
  position:sticky;
  top:82px;
  height:calc(100svh - 82px);
  overflow:hidden;
  background:#050b10;
  z-index:1;
}

#particleCanvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  z-index:1;
}

.particle-fallback{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 70% 45%,rgba(23,99,150,.32),transparent 35%),
    url("images/hero-cad.webp") center/cover no-repeat;
  filter:saturate(.45) brightness(.24);
  z-index:0;
}

.particle-shade{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(3,8,12,.96) 0 24%,rgba(3,8,12,.76) 43%,rgba(3,8,12,.18) 74%),
    linear-gradient(0deg,rgba(3,8,12,.46),transparent 52%);
}

.particle-grid-overlay{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  opacity:.35;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:linear-gradient(90deg,#000,transparent 78%);
}

.particle-copy{
  position:absolute!important;
  left:var(--pad);
  right:var(--pad);
  top:50%;
  transform:translateY(-50%);
  z-index:5!important;
  max-width:920px;
  transition:opacity .2s linear;
  will-change:opacity,transform;
}

.particle-copy h1{
  font-size:clamp(54px,7vw,118px)!important;
}

.particle-story-ui{
  position:absolute;
  right:var(--pad);
  bottom:36px;
  z-index:6;
  width:min(440px,34vw);
}

.particle-story-stage{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:16px 0;
  border-top:1px solid rgba(255,255,255,.22);
}

.particle-stage-no{
  font-size:12px;
  font-weight:900;
  color:#72c2ff;
  letter-spacing:.08em;
  padding-top:4px;
}

.particle-stage-title{
  display:block;
  font-size:22px;
  line-height:1.1;
}

.particle-stage-copy{
  display:block;
  margin-top:6px;
  color:#aebdc7;
  font-size:12px;
  line-height:1.45;
}

.particle-story-progress{
  height:2px;
  background:rgba(255,255,255,.15);
  overflow:hidden;
}

.particle-story-progress span{
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(90deg,#168cf2,#9bd8ff);
  transform:scaleX(0);
  transform-origin:left center;
}

.particle-story-dots{
  display:flex;
  gap:8px;
  margin-top:12px;
}

.particle-story-dots i{
  width:22px;
  height:3px;
  background:rgba(255,255,255,.22);
  transition:.25s;
}

.particle-story-dots i.active{
  width:44px;
  background:#fff;
}

.particle-scroll-spacer{
  position:absolute;
  inset:0;
  pointer-events:none;
  display:grid;
  grid-template-rows:repeat(5,1fr);
}

.particle-scroll-spacer span{display:block}

@media(max-width:900px){
  .particle-story{
    height:430svh;
    min-height:2500px;
  }

  .particle-sticky{
    top:70px;
    height:calc(100svh - 70px);
  }

  .particle-shade{
    background:
      linear-gradient(180deg,rgba(3,8,12,.35) 0 22%,rgba(3,8,12,.72) 58%,rgba(3,8,12,.96) 100%);
  }

  .particle-copy{
    left:20px;
    right:20px;
    top:auto;
    bottom:115px;
    transform:none;
  }

  .particle-copy h1{
    font-size:clamp(43px,12vw,70px)!important;
    line-height:.94!important;
  }

  .particle-copy .lead{
    max-width:520px;
    font-size:16px;
  }

  .particle-story-ui{
    left:20px;
    right:20px;
    bottom:18px;
    width:auto;
  }

  .particle-story-stage{
    padding:11px 0 9px;
  }

  .particle-stage-title{font-size:17px}
  .particle-stage-copy{display:none}
}

@media(max-width:560px){
  .particle-copy .actions{
    display:none;
  }
  .particle-copy .hero-meta{
    display:none;
  }
  .particle-copy{
    bottom:96px;
  }
  .particle-story{
    height:390svh;
  }
}

@media(prefers-reduced-motion:reduce){
  .particle-story{
    height:100svh;
    min-height:0;
  }
  .particle-sticky{
    position:relative;
    top:0;
    height:100%;
  }
  .particle-story-ui{
    display:none;
  }
}


/* V4.14 particle runtime hardening */
.particle-webgl-fallback #particleCanvas{
  display:none;
}
.particle-webgl-fallback .particle-fallback{
  filter:saturate(.7) brightness(.34);
}
.particle-running .particle-fallback{
  opacity:.18;
  transition:opacity .8s ease;
}


/* V4.15: local-only WebGL particle story */
body.particle-home .page-cover{display:none!important}
body.particle-home .particle-fallback{
  filter:saturate(.7) brightness(.48)!important;
}
body.particle-home .particle-shade{
  background:
    linear-gradient(90deg,rgba(3,8,12,.82) 0 22%,rgba(3,8,12,.56) 44%,rgba(3,8,12,.08) 78%),
    linear-gradient(0deg,rgba(3,8,12,.28),transparent 55%)!important;
}
body.particle-home .particle-copy{opacity:1}
body.particle-home .particle-running .particle-fallback{opacity:.10}
body.particle-home .particle-webgl-fallback .particle-fallback{opacity:1!important}
body.particle-home .particle-webgl-fallback .particle-copy{opacity:1!important}


/* =========================================================
   V4.16 — HERO IMAGE ASSEMBLES FROM PARTICLES ON PAGE LOAD
   No scroll-linked particle story.
   ========================================================= */
.hero-start{
  position:relative;
  min-height:calc(100svh - 82px);
  height:auto!important;
  overflow:hidden!important;
  clip-path:inset(0);
  background:#050b10;
  color:#fff;
  padding:0 var(--pad);
  display:flex;
  align-items:center;
}

.hero-start-media{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:1;
  background:#050b10;
}

.hero-start-image{
  position:fixed;
  top:82px;
  left:0;
  width:100vw;
  height:calc(100svh - 82px);
  object-fit:cover;
  object-position:center;
  filter:saturate(.82) contrast(1.06) brightness(.70);
  z-index:1;
  opacity:.12;
  transform:scale(1.015);
  transition:opacity .75s ease, transform 1.5s var(--motion-ease);
}

#heroParticleIntro{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:3;
  pointer-events:none;
  opacity:1;
  transition:opacity .7s ease;
}

.hero-intro-done #heroParticleIntro{
  opacity:0;
}

.hero-intro-done .hero-start-image{
  opacity:1;
  transform:scale(1);
}

.hero-start-shade{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(4,10,16,.96) 0 27%,rgba(4,10,16,.76) 45%,rgba(4,10,16,.18) 74%),
    linear-gradient(0deg,rgba(4,10,16,.40),transparent 55%);
}

.hero-start-grid{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  opacity:.28;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:62px 62px;
  mask-image:linear-gradient(90deg,#000,transparent 80%);
}

.hero-start-copy{
  position:relative!important;
  z-index:6!important;
  width:100%;
  max-width:920px;
  padding:clamp(90px,9vw,135px) 0;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .8s .8s ease, transform .9s .8s var(--motion-ease);
}

.hero-intro-done .hero-start-copy{
  opacity:1;
  transform:none;
}

.hero-start-copy h1{
  font-size:clamp(54px,7vw,118px)!important;
}

.hero-intro-label{
  position:absolute;
  right:var(--pad);
  bottom:28px;
  z-index:7;
  display:flex;
  align-items:center;
  gap:12px;
  color:#a9bbc7;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  opacity:1;
  transition:opacity .45s ease;
}

.hero-intro-label i{
  width:72px;
  height:1px;
  background:linear-gradient(90deg,#2b8cff,transparent);
  transform-origin:left;
  animation:heroIntroLine 1.15s ease-in-out infinite alternate;
}

.hero-intro-done .hero-intro-label{
  opacity:0;
}

@keyframes heroIntroLine{
  from{transform:scaleX(.25)}
  to{transform:scaleX(1)}
}

@media(max-width:900px){
  .hero-start{
    min-height:calc(100svh - 70px);
    padding-left:20px;
    padding-right:20px;
  }

  .hero-start-image{
    top:70px;
    height:calc(100svh - 70px);
    object-position:63% center;
  }

  .hero-start-shade{
    background:
      linear-gradient(180deg,rgba(4,10,16,.34) 0 25%,rgba(4,10,16,.76) 60%,rgba(4,10,16,.97) 100%);
  }

  .hero-start-copy{
    align-self:flex-end;
    padding:90px 0 110px;
  }

  .hero-start-copy h1{
    font-size:clamp(43px,12vw,70px)!important;
  }

  .hero-start-copy .lead{font-size:16px}
  .hero-intro-label{right:20px;bottom:18px}
}

@media(max-width:560px){
  .hero-start-copy .actions{gap:10px}
  .hero-start-copy .btn{width:100%;justify-content:space-between}
  .hero-start-copy .hero-meta{display:none}
}

@media(prefers-reduced-motion:reduce){
  .hero-start-image{opacity:1;transform:none;transition:none}
  #heroParticleIntro{display:none}
  .hero-start-copy{opacity:1;transform:none;transition:none}
  .hero-intro-label{display:none}
}

/* V4.17 — Unified HKS service-page system */
.service-deep{background:#f7f9fa;color:var(--ink)}
.service-deep .service-page-main{width:min(calc(100% - (2 * var(--pad))),var(--max));}
.service-deep-hero{min-height:min(860px,92svh);padding:clamp(145px,15vw,205px) var(--pad) clamp(70px,8vw,115px);display:flex;align-items:flex-end;isolation:isolate;background:#06101a}
.service-deep-hero:after{content:"";position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(0deg,rgba(6,16,26,.72),transparent);z-index:1;pointer-events:none}
.service-deep-hero .service-page-hero__image img{filter:saturate(.72) contrast(1.06) brightness(.54);transform:scale(1.015)}
.service-deep-hero .service-page-hero__image:after{background:linear-gradient(90deg,rgba(6,16,26,.96) 0%,rgba(6,16,26,.82) 43%,rgba(6,16,26,.34) 76%,rgba(6,16,26,.18) 100%)}
.service-deep-hero__content{width:min(1180px,100%)}
.service-hero-meta{display:flex;align-items:center;gap:10px;color:#c1d0d8;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:25px}
.service-hero-meta a{color:#fff;text-decoration:none}.service-hero-meta span:before,.service-hero-meta strong:before{content:"/";margin-right:10px;color:#5c7a8c}.service-hero-meta strong{color:#79c5fa;font-weight:700}
.service-deep-hero .eyebrow{color:#79c5fa;margin-bottom:18px}
.service-deep-hero h1{max-width:1050px;text-wrap:balance}
.service-deep-hero .lead{font-size:clamp(18px,1.55vw,24px);line-height:1.55;color:#d7e0e5;margin-top:28px}
.service-deep-hero .actions{margin-top:36px}
.service-deep .deep-split{position:relative}
.service-deep .deep-split:before{content:"";position:absolute;left:0;top:0;width:70px;height:3px;background:var(--blue2)}
.service-deep .deep-problem-grid{background:#fff;box-shadow:0 24px 70px rgba(9,29,41,.06)}
.service-deep .deep-problem-grid article{transition:transform .3s ease,background .3s ease}
@media(hover:hover){.service-deep .deep-problem-grid article:hover{background:#f1f7fb;transform:translateY(-5px)}}
.service-deep .deep-impact,.service-deep .deep-benefits{position:relative;overflow:hidden;background:linear-gradient(135deg,#06111b,#0a1d29 65%,#0b2638)}
.service-deep .deep-impact:after,.service-deep .deep-benefits:after{content:"HKS";position:absolute;right:-.03em;bottom:-.28em;font-size:clamp(180px,28vw,480px);font-weight:900;letter-spacing:-.08em;color:rgba(255,255,255,.018);pointer-events:none}
.service-deep .deep-scope-grid{background:#fff}
.service-deep .deep-scope-grid article{min-height:225px}
.service-deep .deep-benefit-grid article{position:relative;z-index:1;background:rgba(7,19,29,.82)}
.service-deep .deep-list p{transition:padding-left .25s ease,background .25s ease}
@media(hover:hover){.service-deep .deep-list p:hover{padding-left:12px;background:#eef5f9}}
.service-deep .deep-process-track b{box-shadow:0 0 0 7px #f7f9fa}
.service-deep .deep-proof{background:#fff;margin-top:0}
.service-deep .deep-faq details{background:#fff;padding:0 22px;border:1px solid var(--line);border-bottom:0}.service-deep .deep-faq details:last-child{border-bottom:1px solid var(--line)}
.service-deep .deep-faq summary{padding:24px 34px 24px 0;position:relative;list-style:none}.service-deep .deep-faq summary::-webkit-details-marker{display:none}.service-deep .deep-faq summary:after{content:"+";position:absolute;right:0;color:var(--blue2);font-size:25px;font-weight:400}.service-deep .deep-faq details[open] summary:after{content:"–"}.service-deep .deep-faq details p{margin:0;padding:0 0 24px;max-width:720px}
.service-deep .deep-cta{background:linear-gradient(120deg,#0876f9,#005bbd);position:relative;overflow:hidden}.service-deep .deep-cta:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.16);border-radius:50%;right:-180px;top:-180px;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018)}.service-deep .deep-cta>*{position:relative;z-index:1}
.service-deep .service-related{background:#f7f9fa;color:var(--ink)}
.service-deep .deep-related-rail{background:#fff}.service-deep .deep-related-rail a{transition:background .25s ease,transform .25s ease}.service-deep .deep-related-rail a:hover{background:#eef6fb;transform:translateY(-3px)}
@media(max-width:900px){.service-deep-hero{min-height:78svh;padding-top:120px}.service-deep-hero .service-page-hero__image:after{background:linear-gradient(0deg,rgba(6,16,26,.96) 0%,rgba(6,16,26,.6) 70%,rgba(6,16,26,.35))}.service-hero-meta{overflow:hidden;white-space:nowrap}.service-deep .deep-scope-grid article{min-height:0}}
@media(max-width:560px){.service-deep-hero{min-height:82svh;padding:105px 20px 45px}.service-deep-hero h1{font-size:clamp(40px,12vw,62px)}.service-deep-hero .lead{font-size:17px}.service-deep-hero .actions{margin-top:28px}.service-deep .deep-split:before{width:46px}.service-deep .deep-problem-grid{margin-left:-20px;margin-right:-20px}.service-deep .deep-problem-grid article{padding:25px 20px}.service-deep .deep-proof{margin-left:-20px;margin-right:-20px}.service-deep .deep-faq details{padding-inline:18px}}

/* =========================================================
   V4.18 — ART DIRECTION TEST / "ENGINEERING SICHTBAR MACHEN"
   Marco Design Skill 0.1
   ========================================================= */
.service-deep{
  --eng-grid:rgba(24,74,104,.075);
  --eng-grid-strong:rgba(24,74,104,.13);
  --eng-ink:#07141d;
  background:
    linear-gradient(90deg,transparent calc(50% - .5px),rgba(20,71,101,.035) 50%,transparent calc(50% + .5px)),
    #f7f9fa;
}
.service-deep-hero{overflow:hidden}
.service-deep-hero:before{
  content:"";position:absolute;z-index:2;inset:82px 0 0 0;pointer-events:none;opacity:.42;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,#000 0 43%,transparent 78%);
}
.service-deep-hero .service-page-hero__content{position:relative}
.service-deep-hero .service-page-hero__content:before{
  content:"";position:absolute;left:-34px;top:-28px;width:1px;height:132px;background:#46a9ef;
  box-shadow:0 132px 0 rgba(70,169,239,.28);
}
.service-deep-hero .service-page-hero__content:after{
  content:attr(data-measure);position:absolute;left:-40px;top:-55px;color:#8fcdf9;font-size:9px;letter-spacing:.18em;
}
.service-deep-hero h1{letter-spacing:-.045em;line-height:.93;max-width:1120px}
.service-deep-hero h1:after{content:"";display:block;width:min(390px,44vw);height:1px;margin-top:34px;background:linear-gradient(90deg,#258aff,rgba(37,138,255,0))}
.service-deep-hero .lead{max-width:780px;margin-left:clamp(0px,5vw,72px);border-left:1px solid rgba(121,197,250,.38);padding-left:22px}

.engineering-index{position:relative;background:#07131d;color:#dbe8ef;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden}
.engineering-index__line{height:3px;width:calc(16.666% * var(--service-index,1));background:#258aff;box-shadow:0 0 24px rgba(37,138,255,.55)}
.service-deep[data-service="01"]{--service-index:1}.service-deep[data-service="02"]{--service-index:2}.service-deep[data-service="03"]{--service-index:3}.service-deep[data-service="04"]{--service-index:4}.service-deep[data-service="05"]{--service-index:5}.service-deep[data-service="06"]{--service-index:6}
.engineering-index__inner{width:min(calc(100% - (2 * var(--pad))),var(--max));margin:auto;display:grid;grid-template-columns:.55fr 1.35fr 1fr auto;gap:26px;align-items:center;min-height:74px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.engineering-index__inner strong{font-size:12px;color:white;letter-spacing:.1em}.engineering-index__chapter{color:#61b5f3}.engineering-index__coord{color:#6f8795}

.service-deep .deep-split{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(320px,1.28fr);gap:clamp(50px,8vw,130px);align-items:start}
.service-deep .deep-split:before{width:100%;height:1px;background:linear-gradient(90deg,var(--blue2) 0 86px,var(--eng-grid-strong) 86px 100%)}
.service-deep .deep-split:after{content:"00" attr(data-step);position:absolute;right:0;top:14px;font:800 9px/1 monospace;letter-spacing:.14em;color:#8aa0ad}
.service-deep .deep-split h2{letter-spacing:-.035em}
.service-deep .deep-copy{position:relative;padding-left:clamp(0px,3vw,45px)}
.service-deep .deep-copy:before{content:"";position:absolute;left:0;top:.35em;bottom:.35em;width:1px;background:linear-gradient(var(--blue2),transparent 78%)}

.service-deep .deep-problem-grid,.service-deep .deep-scope-grid{position:relative;border:1px solid var(--eng-grid-strong);box-shadow:none}
.service-deep .deep-problem-grid:before,.service-deep .deep-scope-grid:before{content:"HKS / ENGINEERING MATRIX";position:absolute;right:18px;top:-22px;font:700 8px/1 monospace;letter-spacing:.18em;color:#718a98}
.service-deep .deep-problem-grid article,.service-deep .deep-scope-grid article{position:relative;background:rgba(255,255,255,.82);border-color:var(--eng-grid-strong)}
.service-deep .deep-problem-grid article:after,.service-deep .deep-scope-grid article:after{content:"+";position:absolute;right:11px;top:8px;font:400 12px monospace;color:#a4b4bd}
.service-deep .deep-problem-grid small,.service-deep .deep-scope-grid small{font-family:monospace;letter-spacing:.12em}

.service-deep .deep-impact{background:#06131c}
.service-deep .deep-impact:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--eng-grid) 1px,transparent 1px),linear-gradient(90deg,var(--eng-grid) 1px,transparent 1px);background-size:54px 54px;opacity:.42;mask-image:linear-gradient(90deg,#000,transparent 88%)}
.service-deep .deep-impact-flow{position:relative;z-index:1}
.service-deep .deep-impact-flow>div{border-top:1px solid rgba(121,197,250,.35);padding-top:18px}
.service-deep .deep-impact-flow i{color:#4aaafa;font-style:normal}

.service-deep .deep-benefits:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(255,255,255,.035) 25%);pointer-events:none}
.service-deep .deep-benefit-grid{gap:1px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.1)}
.service-deep .deep-benefit-grid article{border:0;border-radius:0}
.service-deep .deep-benefit-grid article:before{content:"+";display:block;color:#56b3f5;font:400 18px monospace;margin-bottom:30px}

.service-deep .deep-list p{display:grid;grid-template-columns:70px 1fr;gap:15px;align-items:start;border-bottom:1px solid var(--eng-grid-strong);padding-block:18px}
.service-deep .deep-list span{font-family:monospace;color:#1785cf;letter-spacing:.1em}

.service-deep .deep-process{position:relative}
.service-deep .deep-process:before{content:"PROCESS / 01—06";position:absolute;right:0;top:var(--section);font:700 8px monospace;letter-spacing:.18em;color:#7f939f}
.service-deep .deep-process-track{position:relative;border-top:1px solid var(--eng-grid-strong);padding-top:36px}
.service-deep .deep-process-track:before{content:"";position:absolute;left:0;right:0;top:35px;height:1px;background:linear-gradient(90deg,#258aff 0 14%,var(--eng-grid-strong) 14%)}
.service-deep .deep-process-track b{background:#f7f9fa;border:1px solid #258aff;color:#0d76bc;box-shadow:0 0 0 8px #f7f9fa;border-radius:0;transform:rotate(45deg)}
.service-deep .deep-process-track b::first-letter{transform:rotate(-45deg)}

.service-deep .deep-proof{border-top:1px solid var(--eng-grid-strong);border-bottom:1px solid var(--eng-grid-strong)}
.service-deep .deep-proof>div{border-right:1px solid var(--eng-grid-strong);position:relative}.service-deep .deep-proof>div:last-child{border-right:0}
.service-deep .deep-proof>div:before{content:"+";position:absolute;left:10px;top:8px;font:400 12px monospace;color:#9cafb9}

.service-deep .deep-faq details{border-radius:0;background:rgba(255,255,255,.72)}
.service-deep .deep-cta{background:#0678d7}
.service-deep .deep-cta:before{border-radius:0;transform:rotate(45deg);right:-240px;top:-260px}
.service-deep .deep-cta:after{content:"HKS / REQUEST / TECHNICAL BRIEF";position:absolute;right:var(--pad);bottom:24px;font:700 9px monospace;letter-spacing:.2em;color:rgba(255,255,255,.58)}
.service-deep .deep-related-rail{gap:1px;background:var(--eng-grid-strong);border:1px solid var(--eng-grid-strong)}
.service-deep .deep-related-rail a{background:#fff}

@media(max-width:900px){
  .engineering-index__inner{grid-template-columns:auto 1fr;gap:8px 20px;padding:14px 0}.engineering-index__inner>span:nth-of-type(2),.engineering-index__coord{display:none}
  .service-deep .deep-split{grid-template-columns:1fr;gap:28px}.service-deep .deep-copy{padding-left:18px}
  .service-deep-hero .lead{margin-left:0}.service-deep-hero .service-page-hero__content:before{left:-14px}
  .service-deep .deep-process:before{display:none}
}
@media(max-width:560px){
  .service-deep{background:#f7f9fa}.service-deep-hero:before{background-size:42px 42px;opacity:.25}
  .engineering-index__inner{width:calc(100% - 40px)}.engineering-index__inner strong{font-size:10px}
  .service-deep .deep-list p{grid-template-columns:44px 1fr}.service-deep .deep-cta:after{display:none}
}
@media(prefers-reduced-motion:reduce){.service-deep *{scroll-behavior:auto!important}}

/* =========================================================
   V4.19 — SONDERMASCHINENBAU MASTER / NARRATIVE MOTION TEST
   ========================================================= */
.service-deep .sm-intro,.service-deep .sm-editorial,.service-deep .sm-situations,.service-deep .sm-proof,.service-deep .sm-faq{width:min(calc(100% - (2 * var(--pad))),var(--max));margin-inline:auto}
.sm-intro{padding:clamp(90px,11vw,170px) 0;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(55px,10vw,160px);align-items:start}.sm-intro h2{font-size:clamp(42px,5.2vw,78px);line-height:.98;letter-spacing:-.045em;margin:.3em 0}.sm-intro__copy{font-size:clamp(17px,1.35vw,21px);line-height:1.75;color:#344956}.sm-intro__lead{font-size:clamp(22px,2vw,30px);line-height:1.45;color:#0a1b26;margin-top:0}.sm-intro__copy strong{color:#0876d1}
.sm-story{background:#06121b;color:white;position:relative}.sm-story__stage{width:min(calc(100% - (2 * var(--pad))),var(--max));margin:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(45px,7vw,110px)}.sm-story__visual{height:100vh;position:sticky;top:0;display:grid;place-items:center;overflow:hidden}.sm-blueprint-grid{position:absolute;inset:8% 0;background-image:linear-gradient(rgba(80,172,238,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(80,172,238,.11) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle,#000 20%,transparent 76%)}.sm-machine{width:min(38vw,520px);aspect-ratio:1.15;position:relative;border:1px solid rgba(103,190,251,.22);transition:transform .8s cubic-bezier(.2,.8,.2,1),border-radius .8s}.sm-machine:before,.sm-machine:after{content:"";position:absolute;border:1px solid rgba(103,190,251,.42);transition:all .8s cubic-bezier(.2,.8,.2,1)}.sm-machine:before{inset:14% 10%}.sm-machine:after{inset:28% 24%;border-color:#45aaf2}.sm-machine__rail{position:absolute;left:8%;right:8%;height:2px;top:36%;background:linear-gradient(90deg,transparent,#45aaf2,transparent);transition:top .8s,transform .8s}.sm-machine__rail--b{top:68%}.sm-machine__head{position:absolute;width:18%;height:24%;left:41%;top:22%;border:1px solid #45aaf2;transition:all .8s}.sm-machine__part{position:absolute;width:20%;aspect-ratio:1;left:40%;bottom:17%;border-radius:50%;border:1px solid rgba(255,255,255,.5);transition:all .8s}.sm-machine__measure{position:absolute;bottom:-28px;left:0;font:700 9px monospace;letter-spacing:.2em;color:#5e8196}.sm-story__progress{position:absolute;left:0;bottom:8%;width:1px;height:28%;background:rgba(255,255,255,.15)}.sm-story__progress span{display:block;width:2px;height:25%;background:#45aaf2;transform-origin:top;transition:transform .55s}.sm-story__copy article{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:90px 0;opacity:.34;transform:translateY(35px);transition:opacity .6s,transform .6s}.sm-story__copy article.is-active{opacity:1;transform:none}.sm-story__copy h2{font-size:clamp(42px,5vw,76px);line-height:.98;letter-spacing:-.045em;margin:.25em 0 .45em}.sm-story__copy p:not(.eyebrow){font-size:clamp(17px,1.3vw,21px);line-height:1.75;color:#b8cad5;max-width:650px}.sm-story[data-step="1"] .sm-machine{transform:rotate(5deg) scale(.9);border-radius:8%}.sm-story[data-step="1"] .sm-machine:after{inset:20% 16% 34%}.sm-story[data-step="2"] .sm-machine{transform:rotate(-4deg) scale(1.04)}.sm-story[data-step="2"] .sm-machine__head{top:14%;height:38%;transform:translateX(38%)}.sm-story[data-step="2"] .sm-machine__part{border-radius:12%;transform:rotate(45deg)}.sm-story[data-step="3"] .sm-machine{transform:scale(.92);border-color:rgba(255,255,255,.5)}.sm-story[data-step="3"] .sm-machine:before{inset:7%}.sm-story[data-step="3"] .sm-machine:after{inset:18%}.sm-story[data-step="3"] .sm-machine__rail{top:29%}.sm-story[data-step="3"] .sm-machine__rail--b{top:74%}
.sm-editorial{padding:clamp(100px,12vw,180px) 0;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(55px,8vw,125px);align-items:center}.sm-editorial__image{min-height:620px;overflow:hidden;position:relative}.sm-editorial__image img{width:100%;height:100%;position:absolute;object-fit:cover;filter:saturate(.78)}.sm-editorial__image:after{content:"CONSTRUCTION / REALITY";position:absolute;left:18px;bottom:18px;background:#06121b;color:white;padding:10px 13px;font:700 9px monospace;letter-spacing:.18em}.sm-editorial h2,.sm-situations h2,.sm-proof h2,.sm-faq h2{font-size:clamp(40px,4.4vw,68px);line-height:1;letter-spacing:-.04em}.sm-editorial__body>p:not(.eyebrow){font-size:18px;line-height:1.75;color:#40545f}.sm-editorial blockquote{margin:42px 0 0;padding:28px 0 0;border-top:1px solid #9ac8e5;font-size:clamp(23px,2vw,31px);line-height:1.35;font-weight:700;color:#0b75bb}
.sm-situations{padding:30px 0 clamp(110px,12vw,180px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(55px,9vw,145px)}.sm-situations__text{padding-top:40px;font-size:19px;line-height:1.8;color:#40545f}.sm-band{background:#0a79c8;color:white;display:grid;grid-template-columns:repeat(3,1fr)}.sm-band>div{padding:clamp(38px,5vw,70px);border-right:1px solid rgba(255,255,255,.2)}.sm-band span{display:block;text-transform:uppercase;font:700 9px monospace;letter-spacing:.2em;opacity:.65;margin-bottom:18px}.sm-band strong{font-size:clamp(20px,2vw,30px);line-height:1.2}
.sm-proof{padding:clamp(110px,13vw,190px) 0;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(60px,10vw,150px)}.sm-proof__copy>p:not(.eyebrow){font-size:18px;line-height:1.8;color:#40545f;max-width:760px}.sm-proof__facts{border-top:1px solid #b7cbd7}.sm-proof__facts div{padding:28px 0;border-bottom:1px solid #b7cbd7}.sm-proof__facts strong{display:block;font-size:clamp(23px,2.2vw,34px);letter-spacing:-.03em}.sm-proof__facts span{display:block;color:#637783;margin-top:6px}.sm-faq{padding:0 0 clamp(120px,13vw,190px);display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(55px,9vw,140px)}.sm-faq>div:first-child>p:last-child{font-size:18px;line-height:1.7;color:#526672}.sm-faq details{border-top:1px solid #b7cbd7;padding:22px 0}.sm-faq details:last-child{border-bottom:1px solid #b7cbd7}.sm-faq summary{font-weight:750;font-size:20px;cursor:pointer;list-style:none;padding-right:40px;position:relative}.sm-faq summary:after{content:"+";position:absolute;right:4px;color:#0876d1}.sm-faq details[open] summary:after{content:"–"}.sm-faq details p{line-height:1.7;color:#526672;max-width:760px}
@media(max-width:900px){.sm-intro,.sm-editorial,.sm-situations,.sm-proof,.sm-faq{grid-template-columns:1fr;gap:34px}.sm-story__stage{grid-template-columns:1fr}.sm-story__visual{height:52svh;top:70px;z-index:1;background:#06121b}.sm-machine{width:min(74vw,440px)}.sm-story__copy{position:relative;z-index:2}.sm-story__copy article{min-height:72svh;padding:70px 0}.sm-editorial__image{min-height:440px}.sm-band{grid-template-columns:1fr}.sm-band>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.sm-situations__text{padding-top:0}}
@media(max-width:560px){.sm-intro{padding:75px 0}.sm-story__visual{height:43svh;top:64px}.sm-story__copy article{min-height:68svh}.sm-editorial{padding:85px 0}.sm-editorial__image{min-height:330px}.sm-proof{padding:90px 0}.sm-faq{padding-bottom:100px}}
@media(prefers-reduced-motion:reduce){.sm-story__visual{position:relative;height:420px;top:auto}.sm-story__copy article{min-height:auto;opacity:1;transform:none;padding:55px 0}.sm-machine,.sm-machine *{transition:none!important}}

/* V4.21 — Unternehmensbereiche / Magazin / Karriere */
.home-hub{padding-top:clamp(90px,10vw,150px);padding-bottom:clamp(100px,12vw,180px)}.home-hub__head{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end;margin-bottom:55px}.home-hub__head h2{font-size:clamp(42px,5vw,76px);line-height:.98;letter-spacing:-.045em;margin:.2em 0}.home-hub__head>p:last-child{font-size:18px;line-height:1.7;color:#526672}.home-hub__grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid #c9d6de}.hub-panel{min-height:430px;padding:clamp(30px,4vw,58px);border-right:1px solid #c9d6de;border-bottom:1px solid #c9d6de;position:relative;overflow:hidden;color:#0a1b26;transition:background .35s,transform .35s}.hub-panel:nth-child(2n){border-right:0}.hub-panel:nth-child(n+3){border-bottom:0}.hub-panel>span{font:700 10px monospace;letter-spacing:.17em;color:#5f7785}.hub-panel h3{font-size:clamp(29px,3vw,45px);line-height:1.05;letter-spacing:-.035em;margin:38px 0 22px;max-width:620px}.hub-panel p{max-width:570px;line-height:1.7;color:#526672}.hub-panel>b{position:absolute;left:clamp(30px,4vw,58px);bottom:38px;font-size:13px}.hub-panel:hover{background:#f0f7fb}.hub-panel--quality i{position:absolute;right:42px;bottom:38px;border:1px solid #7da5bc;width:82px;height:82px;border-radius:50%;display:grid;place-items:center;text-align:center;font-style:normal;font-weight:800;color:#397ca5}.hub-feed{margin:28px 0 70px;display:grid;grid-template-columns:90px 1fr;gap:0;border-top:1px solid #c9d6de}.hub-feed small,.hub-feed strong{padding:13px 0;border-bottom:1px solid #c9d6de}.hub-feed small{font:700 9px monospace;color:#4382a8}
.editorial-hero{min-height:78svh;background:#07131d;color:white;display:flex;align-items:flex-end;padding:clamp(140px,16vw,230px) var(--pad) clamp(75px,9vw,130px);position:relative;overflow:hidden}.editorial-hero>div:last-child{width:min(100%,var(--max));margin:auto;position:relative;z-index:2}.editorial-hero__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(82,166,220,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(82,166,220,.09) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(90deg,#000,transparent 85%)}.editorial-hero h1{font-size:clamp(56px,8.5vw,132px);line-height:.88;letter-spacing:-.06em;margin:.25em 0}.editorial-hero h1 em{color:#54b3f2;font-style:normal}.editorial-hero .lead{font-size:clamp(18px,1.6vw,24px);line-height:1.6;color:#b9ccd7;max-width:820px}.ed-intro,.career-intro,.knowledge-intro{width:min(calc(100% - 2*var(--pad)),var(--max));margin:auto;padding:clamp(100px,12vw,180px) 0;display:grid;grid-template-columns:1fr 1fr;gap:clamp(55px,9vw,145px)}.ed-intro h2,.career-intro h2,.knowledge-intro h2,.ed-wide h2{font-size:clamp(40px,4.7vw,72px);line-height:1;letter-spacing:-.045em}.ed-copy,.career-intro>div:last-child,.knowledge-intro>p{font-size:18px;line-height:1.8;color:#435965}.ed-lead{font-size:clamp(22px,2vw,30px);line-height:1.5;color:#0a1b26}.dark{background:#07131d;color:white}.ed-motion{padding:0 var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:8vw}.ed-motion__sticky{height:100vh;position:sticky;top:0;display:flex;flex-direction:column;justify-content:center}.ed-motion__sticky h2{font-size:clamp(52px,6.5vw,100px);line-height:.9;letter-spacing:-.055em}.ed-motion__sticky em{color:#54b3f2;font-style:normal}.ed-motion__flow article{min-height:90vh;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid rgba(255,255,255,.13)}.ed-motion__flow span,.career-paths span,.knowledge-feature span{font:700 10px monospace;letter-spacing:.18em;color:#54b3f2}.ed-motion__flow h3{font-size:clamp(30px,3vw,46px);line-height:1.08}.ed-motion__flow p{font-size:18px;line-height:1.75;color:#b7cad5}.ed-wide{padding:clamp(110px,13vw,190px) var(--pad);position:relative}.ed-wide>*{max-width:950px}.ed-wide p:not(.eyebrow){font-size:19px;line-height:1.8;margin-bottom:35px}.quality-line{display:grid;grid-template-columns:repeat(3,1fr)}.quality-line>div{padding:clamp(45px,6vw,85px);border-right:1px solid rgba(255,255,255,.15)}.quality-line span{font:700 11px monospace;color:#54b3f2}.quality-line h3{font-size:clamp(25px,2.5vw,38px)}.quality-line p{color:#b7cad5;line-height:1.7}.career-paths{display:grid;grid-template-columns:repeat(3,1fr)}.career-paths article{min-height:570px;padding:clamp(38px,5vw,70px);border-right:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column}.career-paths h3{font-size:clamp(30px,3.1vw,48px);line-height:1.05;margin-top:55px}.career-paths p{font-size:17px;line-height:1.75;color:#b7cad5}.career-paths a{margin-top:auto;color:white}.career-journey{width:min(calc(100% - 2*var(--pad)),var(--max));margin:auto;padding:clamp(100px,12vw,180px) 0;display:grid;grid-template-columns:1fr 1fr;gap:8vw}.career-journey h2{font-size:clamp(40px,4.8vw,72px);line-height:1}.career-journey__rail p{display:grid;grid-template-columns:70px 1fr;padding:25px 0;border-bottom:1px solid #b8cad5;font-size:21px}.career-journey__rail b{font:700 11px monospace;color:#0b7dcc}.knowledge-feature{display:grid;grid-template-columns:1.15fr .85fr;background:#07131d;color:white}.knowledge-feature__image{min-height:680px}.knowledge-feature__image img{width:100%;height:100%;object-fit:cover;filter:saturate(.7)}.knowledge-feature>div:last-child{padding:clamp(50px,7vw,105px);display:flex;flex-direction:column;justify-content:center}.knowledge-feature h2{font-size:clamp(38px,4.4vw,66px);line-height:1}.knowledge-feature p{font-size:18px;line-height:1.75;color:#b7cad5}.knowledge-feature a{color:white;margin-top:25px}.knowledge-stream{padding-top:clamp(90px,10vw,150px);padding-bottom:clamp(110px,12vw,180px)}.knowledge-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:45px}.knowledge-filter button{border:1px solid #aebfc9;background:white;padding:11px 18px;cursor:pointer}.knowledge-filter button.active{background:#07131d;color:white}.knowledge-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #b8cad5;border-left:1px solid #b8cad5}.knowledge-grid article{min-height:340px;padding:clamp(30px,4vw,55px);border-right:1px solid #b8cad5;border-bottom:1px solid #b8cad5;display:flex;flex-direction:column}.knowledge-grid small{font:700 10px monospace;letter-spacing:.15em;color:#0b7dcc}.knowledge-grid h3{font-size:clamp(27px,2.7vw,42px);line-height:1.08}.knowledge-grid p{line-height:1.7;color:#526672}.knowledge-grid span{margin-top:auto;font-size:12px;color:#758b98}.site-footer--expanded{grid-template-columns:1.25fr repeat(4,1fr)}.footer-legal{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
@media(max-width:900px){.home-hub__head,.ed-intro,.career-intro,.knowledge-intro,.career-journey{grid-template-columns:1fr;gap:25px}.home-hub__grid,.knowledge-grid{grid-template-columns:1fr}.hub-panel{border-right:0!important;border-bottom:1px solid #c9d6de!important}.ed-motion{grid-template-columns:1fr}.ed-motion__sticky{height:auto;position:relative;padding:90px 0 20px}.ed-motion__flow article{min-height:auto;padding:70px 0}.quality-line,.career-paths{grid-template-columns:1fr}.quality-line>div,.career-paths article{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}.career-paths article{min-height:420px}.knowledge-feature{grid-template-columns:1fr}.knowledge-feature__image{min-height:420px}.site-footer--expanded{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.editorial-hero{min-height:70svh}.home-hub__grid{margin-inline:-10px}.hub-panel{min-height:390px}.knowledge-feature__image{min-height:300px}.site-footer--expanded{grid-template-columns:1fr}}

/* V4.22 — faster mobile process pacing + clean release after step 07 */
@media(max-width:900px) and (prefers-reduced-motion:no-preference){
  .process-mobile-trigger{height:42svh;min-height:260px}
  .process-mobile-trigger:last-child{height:20svh;min-height:130px}
}

/* V4.22 — company history */
.company-history{width:min(calc(100% - 2*var(--pad)),var(--max));margin:auto;padding:clamp(100px,12vw,180px) 0;display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(55px,8vw,130px)}
.company-history__intro{position:sticky;top:130px;align-self:start}
.company-history__intro h2{font-size:clamp(40px,4.7vw,72px);line-height:1;letter-spacing:-.045em;margin:.3em 0}
.company-history__intro>p:last-child{font-size:18px;line-height:1.75;color:#526672}
.company-timeline{border-top:1px solid #b8cad5}
.company-timeline article{display:grid;grid-template-columns:110px 1fr;gap:28px;padding:36px 0;border-bottom:1px solid #b8cad5}
.company-timeline time{font:800 12px monospace;letter-spacing:.1em;color:#0b7dcc;padding-top:7px}
.company-timeline h3{font-size:clamp(25px,2.3vw,36px);line-height:1.08;margin:0 0 12px}
.company-timeline p{margin:0;color:#526672;line-height:1.75}
@media(max-width:900px){.company-history{grid-template-columns:1fr;gap:45px}.company-history__intro{position:relative;top:auto}.company-timeline article{grid-template-columns:76px 1fr;gap:18px;padding:28px 0}}
@media(max-width:520px){.company-timeline article{grid-template-columns:1fr;gap:8px}.company-timeline time{padding-top:0}.quality-line{margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad))}}

/* === HKS Engineering Contact Form v4.23 === */
.contact-form-section{max-width:none;background:#07131d;color:#fff;padding-top:clamp(80px,9vw,140px);padding-bottom:clamp(80px,9vw,140px);position:relative;overflow:hidden}
.contact-form-section:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,#000 0,transparent 54%);pointer-events:none}
.contact-form-section:after{content:"HKS";position:absolute;left:-1.5vw;bottom:-5vw;font-size:clamp(160px,23vw,420px);font-weight:900;line-height:.72;letter-spacing:-.09em;color:#ffffff035;pointer-events:none}
.contact-grid{width:min(var(--max),calc(100% - var(--pad)*2));margin:auto;display:grid;grid-template-columns:minmax(0,.82fr) minmax(560px,1.18fr);gap:clamp(55px,8vw,130px);position:relative;z-index:2}
.contact-intro{padding-top:18px;align-self:start;position:sticky;top:120px}
.contact-index{display:flex;align-items:center;gap:13px;margin-bottom:54px;color:#8fc4ff;font-size:10px;font-weight:900;letter-spacing:.18em}.contact-index span{font-size:13px;color:#fff}.contact-index i{height:1px;width:72px;background:linear-gradient(90deg,var(--blue),#ffffff22)}.contact-index b{font-size:10px}
.contact-intro .eyebrow{color:#8fc4ff}.contact-intro h2{font-size:clamp(43px,5.1vw,76px);max-width:690px;margin:18px 0 27px}.contact-lead{font-size:clamp(17px,1.4vw,20px);line-height:1.65;color:#adbecb;max-width:610px}
.contact-direct{margin-top:48px;border-top:1px solid #ffffff1d;border-bottom:1px solid #ffffff1d}.contact-direct>div{padding:20px 0;display:grid;grid-template-columns:120px 1fr;align-items:center;border-bottom:1px solid #ffffff12}.contact-direct>div:last-child{border-bottom:0}.contact-direct small{font-size:9px;font-weight:900;letter-spacing:.13em;color:#718795}.contact-direct a{font-size:15px;font-weight:800;display:flex;justify-content:space-between;gap:18px}.contact-direct a span{color:var(--blue);transition:transform .25s ease}.contact-direct a:hover span{transform:translate(3px,-3px)}
.contact-note{display:flex;gap:12px;align-items:flex-start;margin-top:30px;color:#7f95a4;font-size:12px;max-width:500px}.contact-note>span{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px #0876f918;flex:0 0 auto;margin-top:6px}
.contact-form-wrap{background:#fff;color:var(--ink);padding:clamp(26px,3.4vw,48px);box-shadow:0 32px 100px #0005;position:relative}.contact-form-wrap:before{content:"";position:absolute;left:0;top:0;width:5px;height:112px;background:var(--blue)}
.contact-form-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;margin-bottom:8px;border-bottom:1px solid var(--line);font-size:10px;font-weight:900;letter-spacing:.14em;color:#71808a}.contact-form-head strong{color:var(--blue2);font-size:11px;letter-spacing:.08em}
.engineering-form{display:grid}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{position:relative;display:block;border-bottom:1px solid #cad4dc;padding-top:26px;transition:border-color .25s ease}.field:focus-within{border-color:var(--blue)}.field>span{display:flex;justify-content:space-between;gap:15px;font-size:10px;line-height:1.3;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#647783}.field>span b{font-size:9px;color:#a7b3bb}.field:focus-within>span{color:var(--blue2)}
.field input,.field select,.field textarea{appearance:none;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:16px;padding:11px 0 15px;border-radius:0}.field input::placeholder,.field textarea::placeholder{color:#9ba8b0}.field select{cursor:pointer;padding-right:32px}.field-select:after{content:"⌄";position:absolute;right:3px;bottom:16px;font-size:20px;color:var(--blue2);pointer-events:none}.field-message textarea{resize:vertical;min-height:150px;max-height:320px;line-height:1.55;padding-right:46px}.field-message>small{position:absolute;right:0;bottom:12px;font-size:9px;color:#8998a1}
.privacy-check{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;margin:28px 0 0;font-size:11px;line-height:1.55;color:#667883;cursor:pointer}.privacy-check input{position:absolute;opacity:0;pointer-events:none}.privacy-box{width:19px;height:19px;border:1px solid #9eacb5;display:grid;place-items:center;margin-top:1px;transition:.2s}.privacy-check input:checked+.privacy-box{border-color:var(--blue2);background:var(--blue2)}.privacy-check input:checked+.privacy-box:after{content:"✓";color:#fff;font-size:12px;font-weight:900}.privacy-check input:focus-visible+.privacy-box{outline:3px solid #0876f936;outline-offset:2px}.privacy-check a{font-weight:800;text-decoration:underline;text-underline-offset:2px}
.form-submit-row{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:30px}.form-submit{border:0;cursor:pointer;min-width:180px;justify-content:space-between}.form-submit-row p{margin:0;max-width:265px;color:#83929b;font-size:10px;line-height:1.5;display:flex;gap:9px}.form-submit-row p i{width:6px;height:6px;background:#28a267;border-radius:50%;margin-top:4px;flex:0 0 auto}
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-status{display:none;margin:18px 0 2px;padding:12px 14px;font-size:12px;font-weight:700;border-left:3px solid var(--blue2);background:#eef6ff;color:#16354b}.form-status.is-visible{display:block}.form-status.is-error{border-color:#b83131;background:#fff0f0;color:#742121}
.engineering-form .field.is-invalid{border-color:#b83131}.engineering-form .field.is-invalid>span{color:#a42d2d}.privacy-check.is-invalid .privacy-box{border-color:#b83131;box-shadow:0 0 0 3px #b8313113}
@media(max-width:980px){.contact-grid{grid-template-columns:1fr;gap:48px}.contact-intro{position:relative;top:auto}.contact-intro h2{max-width:760px}.contact-direct{max-width:650px}.contact-form-wrap{max-width:760px;width:100%}}
@media(max-width:620px){.contact-form-section{padding-left:0;padding-right:0}.contact-grid{width:calc(100% - 36px)}.contact-index{margin-bottom:34px}.contact-intro h2{font-size:clamp(38px,12vw,54px)}.contact-lead{font-size:16px}.contact-direct{margin-top:34px}.contact-direct>div{grid-template-columns:1fr;gap:7px}.contact-form-wrap{padding:27px 20px 26px}.field-row{grid-template-columns:1fr;gap:0}.field{padding-top:23px}.field input,.field select,.field textarea{font-size:16px}.form-submit-row{align-items:stretch;flex-direction:column}.form-submit{width:100%;min-height:52px}.form-submit-row p{max-width:none}.privacy-check{font-size:10.5px}.contact-form-head{padding-left:7px}}
@media(prefers-reduced-motion:reduce){.contact-direct a span,.field,.privacy-box{transition:none}}


/* V4.23 — process exit + desktop header logo fix */
@media(min-width:901px){
  .site-header .brand{
    width:172px;
    height:48px;
    overflow:visible;
  }
  .site-header .brand img{
    display:block;
    width:168px;
    max-width:100%;
    height:auto;
    object-fit:contain;
  }
}

@media(max-width:900px) and (prefers-reduced-motion:no-preference){
  /* Give the sticky card a small neutral release zone after the final step.
     The last trigger no longer needs to hold the viewport for another full scene. */
  .process-mobile-scrolltrack{padding-bottom:12px;}
  .process-mobile-trigger:last-child{height:16svh;min-height:96px;}
}


/* =========================================================
   V4.4 — LEISTUNGSNUMMERN + MOBILE SWIPE-HINWEIS
   ========================================================= */
.service-num{
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  color:var(--blue);
}

@media(max-width:900px){
  .services-mobile-nav-wrap{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) 42px;
    gap:8px;
    align-items:center;
  }

  .services-mobile-nav{
    min-width:0;
    padding-bottom:0;
  }

  .services-mobile-arrow{
    width:42px;
    height:50px;
    border:1px solid #344650;
    background:#0d1b24;
    color:#fff;
    font-size:20px;
    cursor:pointer;
    display:grid;
    place-items:center;
    transition:background .25s ease,border-color .25s ease,opacity .25s ease;
  }

  .services-mobile-arrow:active{
    background:var(--blue2);
    border-color:var(--blue2);
  }

  .services-mobile-arrow:disabled{
    opacity:.28;
    cursor:default;
  }

  .services-mobile-hint{
    margin:9px 0 0;
    color:#8fa0aa;
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-align:center;
  }
}

/* 25 Jahre HKS – Jubiläumsabschluss der Historie */
.hks-anniversary {
  position: relative;
  overflow: hidden;
  margin-top: 2.5rem;
  min-height: 460px;
  display: grid;
  place-items: center;
  text-align: center;
  border-radius: 24px;
  background:
    radial-gradient(circle at 50% 35%, rgba(69, 87, 255, .15), transparent 28%),
    radial-gradient(circle at 20% 80%, rgba(255, 49, 85, .09), transparent 25%),
    #090a0f;
  color: #fff;
  isolation: isolate;
}

.hks-anniversary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .55;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.75) 0 1px, transparent 1.4px),
    radial-gradient(circle, rgba(255,255,255,.35) 0 1px, transparent 1.4px);
  background-position: 0 0, 27px 31px;
  background-size: 67px 67px, 83px 83px;
}

.hks-anniversary__content {
  position: relative;
  z-index: 3;
  max-width: 760px;
  padding: 4rem 2rem;
  text-shadow: 0 2px 18px rgba(0,0,0,.72);
}

.hks-anniversary__years {
  margin: 0 0 .5rem;
  font-size: .8rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .78;
}

.hks-anniversary__number {
  display: block;
  font-size: clamp(6rem, 18vw, 12rem);
  line-height: .8;
  font-weight: 800;
  letter-spacing: -.07em;
  transform: scale(.78);
  opacity: 0;
  transition: opacity .55s ease, transform .8s cubic-bezier(.2,.8,.2,1);
  background: linear-gradient(180deg, #fff 10%, #ffe45c 48%, #ff9f1c 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 24px rgba(255, 190, 55, .28));
}

.hks-anniversary.is-active .hks-anniversary__number {
  opacity: 1;
  transform: scale(1);
}

.hks-anniversary.is-celebrating .hks-anniversary__number {
  animation: hks-anniversary-glow 2.6s ease-in-out infinite;
}

.hks-anniversary h3 {
  margin: 1.5rem 0 .8rem;
  font-size: clamp(1.8rem, 4vw, 3.2rem);
}

.hks-anniversary__lead {
  margin: 0 auto;
  max-width: 650px;
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.7;
  opacity: .88;
}

.hks-anniversary__continue {
  margin: 1.8rem 0 0;
  font-weight: 700;
  letter-spacing: .04em;
}

.hks-firework {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.hks-firework__burst {
  position: absolute;
  width: 1px;
  height: 1px;
}

.hks-firework__particle {
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0;
  box-shadow:
    0 0 6px currentColor,
    0 0 15px currentColor;
  animation: hks-firework-burst var(--duration) cubic-bezier(.12,.65,.25,1) forwards;
  animation-delay: var(--delay);
}

.hks-firework__particle:nth-child(3n) {
  width: 3px;
  height: 9px;
  border-radius: 999px;
}

.hks-firework__particle:nth-child(5n) {
  width: 7px;
  height: 7px;
}

@keyframes hks-firework-burst {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.15);
  }
  8% {
    opacity: 1;
  }
  72% {
    opacity: .95;
  }
  100% {
    opacity: 0;
    transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(.45) rotate(180deg);
  }
}

@keyframes hks-anniversary-glow {
  0%, 100% {
    filter: drop-shadow(0 0 20px rgba(255, 190, 55, .24));
  }
  50% {
    filter: drop-shadow(0 0 38px rgba(255, 190, 55, .58));
  }
}

@media (max-width: 700px) {
  .hks-anniversary {
    min-height: 430px;
    border-radius: 18px;
  }

  .hks-anniversary__content {
    padding: 3.25rem 1.25rem;
  }

  .hks-firework__particle {
    width: 4px;
    height: 4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hks-anniversary__number {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none !important;
  }

  .hks-firework {
    display: none;
  }
}


/* ========================= V4.8 WISSEN & PROJEKTBEITRAEGE ========================= */
.knowledge-filter-status{margin:-28px 0 28px;color:#758b98;font-size:13px}.knowledge-card{padding:0!important;overflow:hidden;transition:opacity .25s ease,transform .25s ease}.knowledge-card.is-hidden{display:none}.knowledge-card__image{display:block;height:280px;overflow:hidden;background:#0b1821}.knowledge-card__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--motion-ease)}.knowledge-card:hover .knowledge-card__image img{transform:scale(1.04)}.knowledge-card__body{padding:clamp(28px,4vw,50px);display:flex;flex-direction:column;flex:1}.knowledge-card__link{margin-top:auto;padding-top:28px;font-weight:800}.article-hero{min-height:88svh;position:relative;display:flex;align-items:flex-end;color:#fff;overflow:hidden}.article-hero__media,.article-hero__shade{position:absolute;inset:0}.article-hero__media img{width:100%;height:100%;object-fit:cover}.article-hero__shade{background:linear-gradient(90deg,rgba(4,13,20,.92) 0%,rgba(4,13,20,.7) 42%,rgba(4,13,20,.15) 100%),linear-gradient(0deg,rgba(4,13,20,.65),transparent 60%)}.article-hero__copy{position:relative;z-index:2;width:min(calc(100% - 2*var(--pad)),var(--max));margin:0 auto;padding:170px 0 clamp(70px,9vw,125px)}.article-hero__copy h1{font-size:clamp(48px,7vw,108px);line-height:.92;letter-spacing:-.055em;max-width:1050px;margin:.25em 0}.article-hero__copy>p:last-child{font-size:clamp(18px,1.5vw,23px);line-height:1.65;max-width:760px;color:#d2e0e8}.article-content{width:min(calc(100% - 2*var(--pad)),var(--max));margin:auto;padding:clamp(90px,11vw,165px) 0;display:grid;grid-template-columns:.32fr .68fr;gap:clamp(45px,9vw,140px)}.article-content__aside{display:flex;flex-direction:column;gap:28px;font:700 11px monospace;letter-spacing:.12em;color:#6f8591}.article-content__aside a{font-family:inherit;letter-spacing:0;color:#0b7dcc}.article-lead{font-size:clamp(24px,2.4vw,36px);line-height:1.45;color:#132b39;margin:0 0 90px}.article-content__main section{position:relative;padding:0 0 clamp(70px,8vw,115px);margin-bottom:clamp(55px,7vw,95px);border-bottom:1px solid #b8cad5}.article-content__main section>span{font:700 11px monospace;color:#0b7dcc}.article-content__main h2{font-size:clamp(34px,4vw,60px);line-height:1.02;letter-spacing:-.04em;margin:18px 0 28px}.article-content__main section p{font-size:18px;line-height:1.85;color:#435965;max-width:820px}.article-cta{padding:clamp(90px,11vw,160px) var(--pad)}.article-cta>*{max-width:900px}.article-cta h2{font-size:clamp(42px,5.5vw,82px);line-height:.98;letter-spacing:-.045em}.article-cta>p:not(.eyebrow){font-size:19px;color:#b7cad5;line-height:1.7}.article-cta .btn{margin-top:25px;background:white;color:#07131d}.project-copy a{display:inline-block;margin-top:14px;font-weight:800}
@media(max-width:900px){.knowledge-card__image{height:240px}.article-content{grid-template-columns:1fr;gap:45px}.article-content__aside{border-bottom:1px solid #b8cad5;padding-bottom:30px}.article-lead{margin-bottom:65px}.article-hero{min-height:78svh}.article-hero__shade{background:linear-gradient(0deg,rgba(4,13,20,.92),rgba(4,13,20,.22) 85%)}}

/* V4.9 Process image story */
.process-image-stage{position:absolute;inset:0;overflow:hidden}.process-image{position:absolute;inset:4% 3% 8%;width:94%;height:88%;object-fit:contain;object-position:center;opacity:0;transform:scale(.965) translateY(10px);filter:drop-shadow(0 24px 32px rgba(0,0,0,.28));transition:opacity .7s ease,transform .85s var(--motion-ease);pointer-events:none}.process-image.active{opacity:1;transform:scale(1) translateY(0)}.blueprint::after,.process-mobile-blueprint::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(37,138,255,.13),transparent 55%)}.process-no,.process-label,.process-mobile-no,.process-mobile-visual-label{z-index:3}@media(max-width:900px){.process-mobile-image{position:absolute;inset:3% 2% 8%;width:96%;height:89%;object-fit:contain;object-position:center;opacity:1;transform:scale(.985);filter:drop-shadow(0 18px 24px rgba(0,0,0,.28));transition:opacity .28s ease,transform .45s var(--motion-ease);z-index:1}.process-mobile-panel.is-switching .process-mobile-image{opacity:0;transform:scale(.96) translateY(7px)}.process-mobile-image.is-visible{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.process-image,.process-mobile-image{transition:none!important;transform:none!important}}
\n\n/* ========================= V4.11 SERVICE CONSISTENCY + IMAGE STORY ========================= */
/* One visual language across every service detail page. */
.service-deep{background:#f7f9fa;color:#0a1b26;overflow:clip}
.service-deep section:not(.sm-story):not(.deep-impact):not(.deep-benefits):not(.deep-cta):not(.service-deep-hero):not(.sm-band){color:#0a1b26}
.service-deep .eyebrow{color:#0876d1}
.service-deep .service-deep-hero,.service-deep .sm-story,.service-deep .deep-impact,.service-deep .deep-benefits,.service-deep .deep-cta,.service-deep .sm-band{color:#fff}
.service-deep .service-deep-hero .eyebrow,.service-deep .sm-story .eyebrow,.service-deep .deep-impact .eyebrow,.service-deep .deep-benefits .eyebrow,.service-deep .deep-cta .eyebrow{color:#79c5fa}

/* Four process images use one fixed dark stage and cross-fade in place. */
.sm-story__visual{background:#06121b;isolation:isolate}
.sm-process-images{position:absolute;inset:7% 2% 9%;z-index:1;overflow:hidden;display:grid;place-items:center}
.sm-process-images:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 42%,#06121b 90%);pointer-events:none;z-index:2}
.sm-process-image{grid-area:1/1;width:100%;height:100%;object-fit:contain;object-position:center;opacity:0;transform:scale(.965) translateY(12px);filter:saturate(.92) contrast(1.03) drop-shadow(0 28px 38px rgba(0,0,0,.32));transition:opacity .65s ease,transform .85s cubic-bezier(.2,.8,.2,1);mask-image:radial-gradient(ellipse 82% 80% at 50% 50%,#000 58%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 82% 80% at 50% 50%,#000 58%,transparent 100%)}
.sm-process-image.is-active{opacity:1;transform:scale(1) translateY(0)}
.sm-story .sm-blueprint-grid{z-index:0;inset:6% 0;opacity:.72}
.sm-story__progress{z-index:4}

/* Stable grids: equal columns, breathing room, centered content. */
.service-deep .deep-problem-grid,.service-deep .deep-scope-grid,.service-deep .deep-benefit-grid,.service-deep .deep-related-rail,.service-deep .service-process-grid{align-items:stretch}
.service-deep .deep-problem-grid>*,.service-deep .deep-scope-grid>*,.service-deep .deep-benefit-grid>*,.service-deep .deep-related-rail>*{min-width:0}
.service-deep .sm-band>div{display:flex;flex-direction:column;justify-content:center;min-height:190px}
.service-deep .deep-related-rail a{display:flex;flex-direction:column;justify-content:center;min-height:150px}
.service-deep .actions{align-items:center;flex-wrap:wrap}

/* Light sections always receive dark readable copy; dark sections receive light copy. */
.service-deep .sm-intro__copy,.service-deep .sm-editorial__body>p:not(.eyebrow),.service-deep .sm-situations__text,.service-deep .sm-proof__copy>p:not(.eyebrow),.service-deep .sm-faq details p{color:#40545f}
.service-deep .sm-story__copy p:not(.eyebrow),.service-deep .deep-impact p,.service-deep .deep-benefits p{color:#b8cad5}

@media(max-width:900px){
  .sm-process-images{inset:5% 0 7%}
  .sm-process-image{mask-image:radial-gradient(ellipse 92% 84% at 50% 50%,#000 62%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 92% 84% at 50% 50%,#000 62%,transparent 100%)}
  .service-deep .sm-band>div,.service-deep .deep-related-rail a{min-height:0}
}
@media(max-width:560px){
  .service-deep .actions{align-items:stretch}
  .service-deep .actions .btn{justify-content:center;text-align:center}
}
@media(prefers-reduced-motion:reduce){.sm-process-image{transition:none!important;transform:none!important}}

/* ========================= V4.12 KNOWLEDGE MAGAZINE ========================= */
.knowledge-magazine{
  padding-top:clamp(90px,10vw,150px);
  padding-bottom:clamp(110px,12vw,180px);
}
.knowledge-magazine__head{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.55fr);
  gap:clamp(40px,8vw,130px);
  align-items:end;
  padding-bottom:clamp(50px,6vw,85px);
  border-bottom:1px solid #b8cad5;
}
.knowledge-magazine__head h2{
  margin:.18em 0 0;
  font-size:clamp(44px,5.4vw,82px);
  line-height:.95;
  letter-spacing:-.05em;
  color:#07131d;
}
.knowledge-magazine__head>p{
  margin:0;
  max-width:520px;
  font-size:18px;
  line-height:1.75;
  color:#526672;
}
.knowledge-magazine .knowledge-filter{
  gap:0;
  margin:clamp(35px,4vw,55px) 0 12px;
  border-bottom:1px solid #b8cad5;
  overflow-x:auto;
  scrollbar-width:none;
}
.knowledge-magazine .knowledge-filter::-webkit-scrollbar{display:none}
.knowledge-magazine .knowledge-filter button{
  position:relative;
  flex:0 0 auto;
  border:0;
  background:transparent;
  color:#617682;
  padding:14px 22px 17px;
  font-size:13px;
  font-weight:800;
  letter-spacing:.02em;
}
.knowledge-magazine .knowledge-filter button:first-child{padding-left:0}
.knowledge-magazine .knowledge-filter button::after{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  bottom:-1px;
  height:3px;
  background:#0b7dcc;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
.knowledge-magazine .knowledge-filter button:first-child::after{left:0}
.knowledge-magazine .knowledge-filter button.active{color:#07131d;background:transparent}
.knowledge-magazine .knowledge-filter button.active::after{transform:scaleX(1)}
.knowledge-magazine .knowledge-filter-status{
  margin:0 0 clamp(35px,5vw,70px);
  text-align:right;
  color:#758b98;
  font:700 11px monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.knowledge-magazine__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(28px,4vw,64px);
  row-gap:clamp(70px,9vw,130px);
}
.knowledge-story{
  min-width:0;
  transition:opacity .25s ease,transform .25s ease;
}
.knowledge-story.is-hidden{display:none}
.knowledge-story--lead{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1.38fr) minmax(320px,.62fr);
  gap:clamp(38px,6vw,95px);
  align-items:center;
  padding-bottom:clamp(70px,8vw,120px);
  border-bottom:1px solid #b8cad5;
}
.knowledge-story__media{
  display:block;
  position:relative;
  overflow:hidden;
  background:#07131d;
  aspect-ratio:16/10;
}
.knowledge-story--lead .knowledge-story__media{aspect-ratio:16/9}
.knowledge-story__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.001);
  transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s ease;
}
.knowledge-story:hover .knowledge-story__media img{
  transform:scale(1.035);
  filter:saturate(1.06) contrast(1.02);
}
.knowledge-story__number{
  position:absolute;
  right:18px;
  bottom:13px;
  color:rgba(255,255,255,.92);
  font:700 clamp(34px,4vw,62px)/1 monospace;
  letter-spacing:-.08em;
  text-shadow:0 2px 18px rgba(0,0,0,.28);
}
.knowledge-story__copy{padding-top:27px}
.knowledge-story--lead .knowledge-story__copy{padding-top:0}
.knowledge-story__copy small{
  display:block;
  margin-bottom:18px;
  color:#0b7dcc;
  font:700 10px monospace;
  letter-spacing:.16em;
}
.knowledge-story__copy h3{
  margin:0 0 20px;
  font-size:clamp(29px,3vw,47px);
  line-height:1.05;
  letter-spacing:-.035em;
}
.knowledge-story--lead .knowledge-story__copy h3{font-size:clamp(38px,4.4vw,68px)}
.knowledge-story__copy h3 a{color:#07131d;text-decoration:none}
.knowledge-story__copy p{
  max-width:680px;
  margin:0;
  color:#526672;
  font-size:17px;
  line-height:1.75;
}
.knowledge-story__link{
  display:inline-flex;
  align-items:center;
  gap:15px;
  margin-top:28px;
  padding-bottom:8px;
  border-bottom:1px solid #9eb4c0;
  color:#07131d;
  font-weight:800;
  text-decoration:none;
  transition:border-color .25s ease,color .25s ease;
}
.knowledge-story__link span{color:#0b7dcc;transition:transform .25s ease}
.knowledge-story:hover .knowledge-story__link{border-color:#0b7dcc;color:#0b7dcc}
.knowledge-story:hover .knowledge-story__link span{transform:translateX(5px)}
@media(max-width:900px){
  .knowledge-magazine__head{grid-template-columns:1fr;gap:22px}
  .knowledge-magazine__grid{grid-template-columns:1fr;row-gap:75px}
  .knowledge-story--lead{grid-template-columns:1fr;gap:30px;padding-bottom:75px}
  .knowledge-story--lead .knowledge-story__copy{padding-top:0}
  .knowledge-magazine .knowledge-filter-status{text-align:left;margin-top:15px}
}
@media(max-width:560px){
  .knowledge-magazine .knowledge-filter{margin-inline:0}
  .knowledge-magazine .knowledge-filter button{padding-inline:15px}
  .knowledge-magazine .knowledge-filter button:first-child{padding-left:0}
  .knowledge-magazine .knowledge-filter button::after{left:15px;right:15px}
  .knowledge-story__copy{padding-top:22px}
  .knowledge-story__copy p{font-size:16px}
}

/* Wissen & Einblicke – project galleries */
.article-gallery{width:min(calc(100% - 2*var(--pad)),var(--max));margin:0 auto clamp(90px,11vw,150px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.article-gallery figure{margin:0;background:#07131d;overflow:hidden}.article-gallery img{width:100%;height:clamp(280px,38vw,560px);object-fit:cover;display:block}.article-gallery figcaption{padding:14px 16px;color:#c8d8e1;font-size:13px}.article-gallery--single{grid-template-columns:1fr}.article-gallery--single img{height:auto;max-height:720px;object-fit:contain;background:#f4f6f7}@media(max-width:700px){.article-gallery{grid-template-columns:1fr}.article-gallery img{height:auto;max-height:520px}}


/* Service insight cards: Wissen & Einblicke auf Leistungsseiten */
.service-insights{padding:clamp(4rem,8vw,7rem) max(5vw,24px);background:#f5f6f7;color:#151719}
.service-insights__head{max-width:760px;margin:0 auto 2.2rem;text-align:center}
.service-insights__head .eyebrow{margin-bottom:.65rem}
.service-insights__head h2{margin:0 0 .9rem}
.service-insights__head>p:last-child{max-width:650px;margin:0 auto;color:#596068}
.service-insights__grid{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);align-items:stretch}
.service-insight-card{min-width:0;background:#fff;border:1px solid rgba(20,25,30,.1);display:flex;flex-direction:column;overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.service-insight-card:hover{transform:translateY(-5px);box-shadow:0 18px 42px rgba(15,22,30,.12);border-color:rgba(20,25,30,.18)}
.service-insight-card__media{display:block;aspect-ratio:16/10;overflow:hidden;background:#e8eaec}
.service-insight-card__media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}
.service-insight-card:hover .service-insight-card__media img{transform:scale(1.035)}
.service-insight-card__copy{display:flex;flex:1;flex-direction:column;padding:clamp(1.15rem,2vw,1.6rem)}
.service-insight-card__copy small{display:block;margin-bottom:.7rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;color:#6b7278}
.service-insight-card__copy h3{margin:0 0 .75rem;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.18}
.service-insight-card__copy h3 a{color:inherit;text-decoration:none}
.service-insight-card__copy p{margin:0 0 1.25rem;color:#596068;line-height:1.65}
.service-insight-card__link{margin-top:auto;font-weight:700;text-decoration:none;color:inherit}
.service-insight-card__link span{display:inline-block;margin-left:.25rem;transition:transform .2s ease}
.service-insight-card:hover .service-insight-card__link span{transform:translateX(4px)}
@media(max-width:900px){.service-insights__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.service-insights{padding:3.5rem 20px}.service-insights__grid{grid-template-columns:1fr}.service-insights__head{text-align:left}.service-insights__head>p:last-child{margin-left:0}.service-insight-card__media{aspect-ratio:16/9}}


/* === HKS Footer v4.5 — aligned columns + social icons === */
.site-footer--expanded{
  grid-template-columns:1.25fr repeat(4,1fr);
  align-items:start;
}
.site-footer--expanded > div{
  align-self:start;
  justify-content:flex-start;
}
.site-footer--expanded .footer-column{
  padding-top:0;
}
.site-footer--expanded .footer-column > b{
  display:block;
  min-height:22px;
  margin:0 0 18px;
  line-height:1.35;
  color:#fff;
}
.footer-social{
  margin-top:8px;
}
.footer-social strong{
  display:block;
  margin:0 0 10px;
  color:#fff;
  font-size:13px;
  line-height:1.35;
}
.footer-social__links{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.footer-social__links .social-btn{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.035);
  color:#d8e4ec;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.footer-social__links .social-btn:hover,
.footer-social__links .social-btn:focus-visible{
  background:var(--blue2);
  border-color:var(--blue2);
  color:#fff;
  transform:translateY(-2px);
}
.footer-social__links .social-btn svg{
  width:19px;
  height:19px;
  display:block;
  fill:currentColor;
  stroke:currentColor;
  stroke-width:1.7;
}
.footer-social__links .social-btn:first-child svg{
  fill:none;
}
.footer-legal{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
}
@media(max-width:900px){
  .site-footer--expanded{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .site-footer--expanded{grid-template-columns:1fr}
  .footer-social__links .social-btn{width:42px;height:42px}
}
