/* Applications: index + individual application pages (palette: #00a0e3 / #c8e8fb / #1c1c1b / #636362) */
.js .reveal.reveal--clip{opacity:1;transform:none}
.abtn{display:inline-block;background:var(--navy);color:#fff;font:500 .8rem var(--head);letter-spacing:.12em;text-transform:uppercase;padding:9px 18px;border-radius:3px;text-decoration:none;transition:background .3s,transform .3s}
.abtn:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}

/* hero */
.ahero{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#eaf6fd 60%,#c8e8fb 100%);padding-top:clamp(34px,5vw,64px)}
.ahero__top{position:relative;z-index:3}
.ahero h1{font:600 clamp(2.6rem,6.4vw,5.2rem)/1.02 var(--head);color:var(--navy);margin:0 0 20px;max-width:9em;text-transform:none}
.ahero h1 span{color:var(--blue)}
.ahero__rail{position:relative;margin-top:-70px}.ahero__rail img{display:block;width:100%;height:auto;max-width:none}
.ahero--photo{min-height:clamp(420px,52vw,640px);display:flex;flex-direction:column;justify-content:center;padding-bottom:clamp(60px,8vw,110px)}
.ahero__bg{position:absolute;inset:0;z-index:0}.ahero__bg img{width:100%;height:100%;object-fit:cover}
.ahero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.82) 38%,rgba(255,255,255,0) 72%)}
.ahero--photo .ahero__cap{background:rgba(255,255,255,.88);padding:12px 16px;border-radius:12px;backdrop-filter:blur(6px)}
.rail-anim{position:absolute;inset:0;width:100%;height:100%;display:block}
.rail-anim__pulse{animation:railpulse 2.4s linear infinite}
@keyframes railpulse{to{stroke-dashoffset:-76}}
.ahero__cap{position:absolute;z-index:3;right:var(--gutter,24px);bottom:clamp(14px,3vw,34px);max-width:24ch;margin:0;font:500 clamp(1rem,1.8vw,1.4rem)/1.25 var(--head);color:var(--navy);text-align:left}

/* dark uses band */
.auses{background:var(--navy);color:#fff;padding:clamp(40px,5vw,70px) 0}
.auses h2{color:#fff;font:500 clamp(1.3rem,2.4vw,1.8rem) var(--head);margin:0 0 26px}
.auses__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,360px));gap:18px 40px}
.auses__grid li{display:flex;align-items:center;gap:14px;font:500 1.15rem var(--head);letter-spacing:.02em}
.auses__grid span{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:4px;background:var(--muted);color:#fff;transition:background .35s}
.auses__grid li:hover span{background:var(--blue)}

/* video */
.avideo{background:var(--muted);padding:clamp(40px,5vw,72px) 0;color:#fff}
.avideo h2{color:#fff;text-align:center;margin:0 0 26px}
.avideo__box{position:relative;max-width:1000px;margin:0 auto;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:var(--navy);}
.avideo__box img,.avideo__box iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.avideo__box img{filter:brightness(.7);transition:transform 1s var(--ease),filter .4s}
.avideo__box:hover img{transform:scale(1.05);filter:brightness(.55)}
.avideo__play{position:absolute;inset:0;margin:auto;width:88px;height:88px;border:0;border-radius:50%;background:var(--blue);color:#fff;cursor:pointer;display:grid;place-items:center;;animation:playping 2.2s infinite;transition:transform .35s var(--ease)}
.avideo__play span{display:grid;place-items:center}.avideo__play .ico{margin-left:3px;fill:#fff;stroke:none}
.avideo__play:hover{transform:scale(1.1)}
@keyframes playping{70%{}100%{}}

/* precision cards */
.aprec{padding:clamp(48px,6vw,90px) 0;background:#fff}
.aprec h2{font:500 clamp(1.5rem,2.8vw,2.1rem) var(--head);margin:0 0 30px}
.aprec__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.aprec__card{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);transition:transform .5s var(--ease)}
.aprec__card:hover{transform:translateY(-8px);color:var(--ink)}
.aprec__img{display:block;aspect-ratio:4/3;border:2px solid var(--blue);border-radius:4px;overflow:hidden;background:#fff;transition:box-shadow .4s}
.aprec__card:hover .aprec__img{}
.aprec__img img{width:100%;height:100%;object-fit:contain;padding:10px;transition:transform .8s var(--ease)}
.aprec__card:hover img{transform:scale(1.08)}
.aprec__card h3{font:500 1.2rem var(--head);color:var(--blue);margin:14px 0 8px}
.aprec__card p{margin:0;padding:12px 14px;border:1.5px dashed #b4bcc0;border-radius:4px;color:var(--muted);font-size:.92rem;line-height:1.55;flex:1;transition:border-color .3s,background .3s}
.aprec__card:hover p{border-color:var(--blue);background:var(--tint)}

/* details */
.adetail{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,90px)}
.adetail__head h2{position:sticky;top:110px;margin:0;border-left:5px solid var(--blue);padding-left:20px}
.adetail__body p{color:var(--muted);font-size:1.1rem;margin:0 0 20px}
.adetail__fig{margin:0 0 28px;border-radius:6px;overflow:hidden;}.adetail__fig img{width:100%;height:auto}
.abenefits__list{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.abenefits__list li{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:6px;background:var(--tint);border:1px solid var(--line);transition:transform .4s var(--ease),border-color .3s}
.abenefits__list li:hover{transform:translateY(-4px);border-color:var(--blue)}
.abenefit__ico{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:6px;background:var(--blue);color:#fff}
.abenefits__list strong{display:block;font:500 1.05rem var(--head);color:var(--navy)}.abenefits__list small{color:var(--muted);font-size:.9rem;line-height:1.4;display:block}
.astories__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.astory{display:block;border-radius:22px;overflow:hidden;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);;transition:transform .5s var(--ease),box-shadow .4s}
.astory:hover{transform:translateY(-8px);;color:var(--ink)}
.astory__img{display:block;aspect-ratio:16/10;overflow:hidden}
.astory__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.astory:hover img{transform:scale(1.08)}
.astory__t{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;font-family:Oswald,sans-serif;font-size:1.15rem}
.astory__t .ico{color:var(--blue);transition:transform .4s}.astory:hover .astory__t .ico{transform:translateX(6px)}
.aindex{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:70px}
.aitem{display:flex;flex-direction:column;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);;transition:transform .5s var(--ease),box-shadow .4s,border-color .4s}
.aitem:hover{transform:translateY(-8px);;border-color:var(--blue);color:var(--ink)}
.aitem__img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--navy)}
.aitem__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.aitem:hover img{transform:scale(1.08)}
.aitem__body{display:flex;flex-direction:column;flex:1;padding:22px 24px 26px}
.aitem__body small{color:var(--blue);letter-spacing:.14em;font-weight:600}
.aitem__body h2{font-size:1.4rem;margin:4px 0 8px}
.aitem__body p{color:var(--muted);margin:0 0 16px;flex:1}
.aitem__body b{display:inline-flex;gap:8px;align-items:center;color:var(--blue-d);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.88rem}
.aitem:hover b .ico{transform:translateX(6px)}.aitem b .ico{transition:transform .4s}
.aitem--cta{justify-content:center;padding:36px 30px;background:linear-gradient(150deg,var(--blue),var(--blue-d));color:#fff;border:0}
.aitem--cta:hover{transform:none;}
.aitem--cta h2{color:#fff;font-size:1.7rem;margin:0 0 10px}.aitem--cta p{color:#c8e8fb;margin:0 0 22px}.aitem--cta .btn{align-self:flex-start}
.btn--yellow{background:var(--blue);color:#fff}.btn--yellow:hover{background:#fff;color:var(--navy);transform:translateY(-2px)}
.ahero--index{background:var(--navy);color:#fff;padding:clamp(56px,8vw,110px) 0}
.ahero--index h1{color:#fff;max-width:none;text-align:center}.ahero--index p{color:#c8e8fb;text-align:center;max-width:60ch;margin:0 auto;font-size:1.1rem}
.ahero--index::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(180deg,#000,transparent 90%)}
.ahero--index .wrap{position:relative;z-index:1}
@media (max-width:1000px){.aprec__grid,.astories__grid,.aindex{grid-template-columns:1fr 1fr}.adetail__head h2{position:static}}
@media (max-width:820px){.ahero__bg::after{background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.7) 60%,rgba(255,255,255,.3) 100%)}.adetail{grid-template-columns:1fr}.auses__grid{grid-template-columns:1fr}.ahero__cap{position:relative;right:auto;bottom:auto;margin:8px 0 22px;max-width:none}}
@media (max-width:560px){.aprec__grid{gap:14px}.aprec__card p{font-size:.85rem;padding:10px}.astories__grid,.aindex,.abenefits__list{grid-template-columns:1fr}.avideo__play{width:68px;height:68px}}
@media (prefers-reduced-motion:reduce){.rail-anim__pulse,.avideo__play{animation:none}}

.abenefits__t{font:500 1.3rem var(--head);margin:34px 0 0;color:var(--navy)}.abenefits__t+.abenefits__list{margin-top:14px}
/* applications index rows */
.arows{display:grid;gap:clamp(22px,3vw,34px)}
.arow{display:grid;grid-template-columns:1.05fr .95fr;gap:0;border-radius:10px;overflow:hidden;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);;transition:transform .5s var(--ease),box-shadow .4s,border-color .4s}
.arow--rev .arow__img{order:2}
.arow:hover{transform:translateY(-6px);;border-color:var(--blue);color:var(--ink)}
.arow__img{display:block;overflow:hidden;min-height:260px;background:var(--navy)}
.arow__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}.arow:hover img{transform:scale(1.07)}
.arow__body{display:flex;flex-direction:column;justify-content:center;padding:clamp(22px,4vw,48px)}
.arow__body small{color:var(--blue);letter-spacing:.14em;font-weight:600}
.arow__body h3{font:500 clamp(1.4rem,2.4vw,1.9rem) var(--head);margin:4px 0 12px}
.arow__body p{color:var(--muted);margin:0 0 18px}
.arow__body b{display:inline-flex;gap:8px;align-items:center;color:var(--blue-d);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.88rem}
.arow:hover b .ico{transform:translateX(6px)}.arow b .ico{transition:transform .4s}
@media (max-width:820px){.arow{grid-template-columns:1fr}.arow--rev .arow__img{order:0}.arow__img{min-height:210px}}

/* customer logo wall */
.logos{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:clamp(10px,1.6vw,22px)}
.logos__i{display:grid;place-items:center;aspect-ratio:3/2;padding:8px;border-radius:0;background:transparent;border:0;transition:transform .4s var(--ease),border-color .3s,box-shadow .3s}
.logos__i img{max-width:100%;max-height:56px;width:auto;height:auto;object-fit:contain;image-rendering:auto}
.logos__i:hover{transform:scale(1.06)}
@media (max-width:1000px){.logos{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (max-width:640px){.logos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.presence__head{margin-top:clamp(40px,5vw,70px)}

/* world map */
.wmap{margin-top:10px}
.wmap__stage{position:relative;max-width:1100px;margin:0 auto;border-radius:18px;overflow:hidden;background:var(--light);aspect-ratio:1200/641}
.wmap__img{position:absolute;inset:0;width:100%;height:100%;display:block}
.wmap__pin{position:absolute;left:var(--x);top:var(--y);width:0;height:0;padding:0;border:0;background:none;cursor:pointer;z-index:2}
.wmap__pin i{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--navy);border:3px solid #fff;;animation:pinping 2.6s ease-out infinite;animation-delay:calc(var(--i)*.22s)}
.wmap__pin b{position:absolute;left:50%;bottom:16px;transform:translate(-50%,6px);white-space:nowrap;background:var(--navy);color:#fff;font:500 .8rem var(--head);letter-spacing:.06em;padding:5px 10px;border-radius:4px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.wmap__pin:hover b,.wmap__pin:focus-visible b,.wmap__pin.is-on b{opacity:1;transform:translate(-50%,0)}
.wmap__pin.is-on i,.wmap__pin:hover i{background:var(--blue);transform:scale(1.25)}
@keyframes pinping{0%{}70%,100%{}}
.wmap__list{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.wmap__list button{font:500 .95rem var(--body);padding:8px 18px;border-radius:99px;border:1px solid var(--blue);background:#fff;color:var(--navy);cursor:pointer;transition:background .25s,color .25s}
.wmap__list button:hover,.wmap__list button.is-on{background:var(--blue);color:#fff}
@media (max-width:640px){.wmap__pin b{font-size:.7rem;padding:3px 7px}.wmap__pin i{left:-5px;top:-5px;width:10px;height:10px;border-width:2px}}
@media (prefers-reduced-motion:reduce){.wmap__pin i{animation:none}}

/* product pages: suspension types */
.ptypes{display:grid;gap:16px;margin-top:26px}
.ptype{padding:22px 24px;border-radius:8px;background:var(--tint);border-left:5px solid var(--blue)}
.ptype h3{font:500 1.25rem var(--head);margin:0 0 6px}.ptype p{margin:0;color:var(--muted)}
.ptypes__img{margin-top:10px}
.spec thead th{background:var(--navy);color:#fff;text-align:left;padding:12px 16px;font:500 .95rem var(--head);letter-spacing:.05em}

/* ---------- About page ---------- */
.about-hero{min-height:clamp(260px,38vh,380px);display:flex;align-items:flex-end;padding:0 0 clamp(28px,4vw,48px);background:linear-gradient(180deg,rgba(18,24,29,.15),rgba(18,24,29,.7)),var(--hero-bg) var(--hero-pos,center)/cover no-repeat}
.about-hero h1{font-size:clamp(2.6rem,6vw,4.2rem);margin:0}
.about-intro__grid{display:grid;grid-template-columns:clamp(60px,14vw,200px) minmax(0,1fr);gap:clamp(16px,3vw,40px);align-items:start}
.about-intro__ico{color:var(--ink);padding-top:.5em}.about-intro__ico svg{width:44px;height:44px;transform:rotate(45deg)}
.about-intro h2{font-size:clamp(1.9rem,3.6vw,2.8rem);max-width:20em}
.about-intro p{max-width:60em}
.about-person{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:clamp(20px,4vw,56px);align-items:center;margin-top:clamp(28px,4vw,48px)}
.about-person__t{border-left:2px solid var(--ink);padding-left:clamp(14px,2vw,24px)}
.about-person__t strong{display:block;font:500 1.3rem var(--head);letter-spacing:.02em}
.about-person__t>span{display:block;font-size:.85rem;font-weight:700;margin-bottom:.8em}
.about-person__t .btn{margin-top:8px}
.about-person__in{display:inline-grid;place-items:center;width:22px;height:22px;background:var(--blue);color:#fff;font:700 .72rem sans-serif;border-radius:3px;text-decoration:none}
.about-person__img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.about-world{padding-bottom:0}.about-world h2{font-size:clamp(1.9rem,3.6vw,2.8rem);max-width:18em}.about-world p{max-width:46em}
.about-where__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,56px);align-items:center}
.about-where__img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.about-where h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.about-awards h2{font-size:clamp(1.9rem,3.6vw,2.8rem);margin-bottom:28px}
.about-awards__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.about-awards__grid img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px}.about-awards__grid span{display:block;margin-top:10px;font-weight:600}
@media (max-width:900px){.about-intro__grid{grid-template-columns:1fr}.about-intro__ico{display:none}.about-person,.about-where__grid{grid-template-columns:1fr}.about-awards__grid{grid-template-columns:1fr}.about-where__img{order:2}}

/* ---------- Recent Projects slider ---------- */
.rp{background:var(--blue);color:#fff;padding:clamp(36px,5vw,64px) 0 clamp(28px,4vw,44px)}
.rp__h{color:#fff;font-size:clamp(1.9rem,3.6vw,2.8rem);margin:0 0 clamp(18px,3vw,36px)}
.rp__view{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:12px;outline-offset:4px}
.rp__view::-webkit-scrollbar{display:none}
.rp__track{display:flex;list-style:none;margin:0;padding:0}
.rp__slide{flex:0 0 100%;scroll-snap-align:start;position:relative}
.rp__slide a{display:block;position:relative;color:#fff;text-decoration:none;line-height:0}
.rp__slide img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:12px}
.rp__slide a::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;border-radius:0 0 12px 12px;background:linear-gradient(180deg,transparent,rgba(18,24,29,.75))}
.rp__cap{position:absolute;z-index:1;left:clamp(16px,3vw,38px);right:clamp(16px,3vw,38px);bottom:clamp(16px,3vw,34px);font:700 clamp(1.25rem,2.6vw,2.2rem)/1.2 var(--body,inherit);line-height:1.2;color:#fff;max-width:20em}
.rp__ctl{display:flex;justify-content:space-between;align-items:center;margin-top:18px}
.rp__dots{display:flex;gap:18px}
.rp__dots button{width:14px;height:14px;border-radius:50%;border:0;padding:0;background:var(--navy);cursor:pointer;opacity:.9}
.rp__dots button[aria-selected=true]{background:#fff}
.rp__arrows{display:flex;gap:22px}
.rp__arrows button{background:none;border:0;color:#fff;cursor:pointer;padding:6px;display:grid;place-items:center}
.rp__prev svg{transform:rotate(180deg)}
.rp__arrows button:hover{opacity:.75}
@media (max-width:760px){.rp__slide img{aspect-ratio:4/3}}

/* ---------- Video gallery ---------- */
.vgrid{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,32px)}
.vcard__btn{display:block;width:100%;text-align:left;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--ink)}
.vcard__img{position:relative;display:block;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#1c1c1b}
.vcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.vcard__btn:hover .vcard__img img,.vcard__btn:focus-visible .vcard__img img{transform:scale(1.05)}
.vcard__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(18,24,29,.45))}
.vcard__play{position:absolute;z-index:1;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;transition:transform .3s var(--ease)}
.vcard__play svg{margin-left:3px}
.vcard__btn:hover .vcard__play{transform:scale(1.12)}
.vcard__t{display:block;margin-top:14px;font:500 1.25rem/1.3 var(--head)}
.vcard__d{margin:6px 0 0;color:var(--muted);font-size:.95rem}
.vmodal{border:0;padding:0;border-radius:14px;width:min(960px,94vw);background:#111;color:#fff;overflow:visible}
.vmodal::backdrop{background:rgba(10,14,18,.8)}
.vmodal__frame{aspect-ratio:16/9;background:#000;border-radius:14px 14px 0 0;overflow:hidden}
.vmodal__frame iframe,.vmodal__frame video{width:100%;height:100%;border:0;display:block}
.vmodal__txt{padding:16px 22px 20px}.vmodal__txt h3{color:#fff;margin:0 0 4px}.vmodal__txt p{margin:0;color:#c9d6df}
.vmodal__x{position:absolute;right:-6px;top:-46px;background:none;border:0;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer}
@media (max-width:1000px){.vgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.vgrid{grid-template-columns:1fr}.vmodal__x{right:4px;top:-44px}}

/* ---------- Recent Projects grid ---------- */
.pgrid{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,32px)}
.pcard2__btn{display:block;width:100%;text-align:left;background:none;border:0;padding:0;cursor:zoom-in;font:inherit;color:var(--ink)}
.pcard2__img{display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#eef5fa}
.pcard2__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.pcard2__btn:hover .pcard2__img img,.pcard2__btn:focus-visible .pcard2__img img{transform:scale(1.05)}
.pcard2__t{display:block;margin-top:12px;font:500 1.2rem/1.3 var(--head)}
.vmodal--img{width:min(1200px,94vw);background:#111;text-align:center}.vmodal--img img{display:block;max-width:100%;max-height:82vh;margin:0 auto;object-fit:contain;border-radius:14px 14px 0 0}
.vmodal--img p{margin:0;padding:12px 18px;color:#e3eef6;font-weight:600}
@media (max-width:1000px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.pgrid{grid-template-columns:1fr}}
