/* KMX — components */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.9rem 1.5rem;font-weight:700;font-size:.93rem;border-radius:var(--r);transition:background .3s,color .3s,border-color .3s;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none;transition:transform .35s var(--ease)}
.btn:hover svg.arr{transform:translateX(4px)}[dir=rtl] .btn:hover svg.arr{transform:scaleX(-1) translateX(4px)}
[dir=rtl] .btn svg.arr{transform:scaleX(-1)}
.btn-pri{background:#fff;color:var(--navy-900)}.btn-pri:hover{background:var(--c-hvac)}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy-600)}
.btn-line{border:1px solid rgba(255,255,255,.35);color:#fff}.btn-line:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn-ghost{border:1px solid var(--steel-300);color:var(--navy-900)}.btn-ghost:hover{border-color:var(--navy)}
.btn-wa{background:#25D366;color:#062a14}.btn-wa:hover{background:#3be07a}
.btns{display:flex;flex-wrap:wrap;gap:.7rem}
.link{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;color:var(--navy)}
.dark .link{color:#fff}
.link svg{width:16px;height:16px;transition:transform .35s var(--ease)}
[dir=rtl] .link svg{transform:scaleX(-1)}
.link:hover svg{transform:translateX(4px)}[dir=rtl] .link:hover svg{transform:scaleX(-1) translateX(4px)}
/* discipline marker */
.disc{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;color:var(--steel-600)}
.disc::before{content:"";width:10px;height:10px;background:var(--acc,var(--c-steel))}
.dark .disc,.on-img .disc{color:#E2E8EE}
/* hero (home) */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;isolation:isolate;background:var(--ink)}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img,.hero-media video,.hero-media iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.hero-media iframe{width:177.78vh;min-width:100%;height:56.25vw;min-height:100%;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,15,25,.55) 0%,rgba(5,15,25,0) 20%),linear-gradient(0deg,rgba(5,15,25,.78) 0%,rgba(5,15,25,0) 45%),linear-gradient(90deg,rgba(5,15,25,.72) 0%,rgba(5,15,25,.52) 45%,rgba(5,15,25,.30) 100%)}
[dir=rtl] .hero::before{background:linear-gradient(180deg,rgba(5,15,25,.55) 0%,rgba(5,15,25,0) 20%),linear-gradient(0deg,rgba(5,15,25,.78) 0%,rgba(5,15,25,0) 45%),linear-gradient(270deg,rgba(5,15,25,.72) 0%,rgba(5,15,25,.52) 45%,rgba(5,15,25,.30) 100%)}
.hero-media img,.hero-media video{object-position:center}
@media (prefers-reduced-motion:reduce){.hero-media video{display:none}}
.hero .w{padding-block:calc(var(--header-h) + 4rem) clamp(3rem,7vh,5rem);display:grid;gap:2.5rem}
@media(min-width:1000px){.hero .w{grid-template-columns:1.4fr .6fr;align-items:end}}
.hero .brand{font-size:.9rem;font-weight:700;color:var(--c-hvac);display:flex;gap:.7rem;align-items:center}
.hero h1{margin-top:1.1rem;max-width:16ch}
.hero .t-lead{color:#C9D3DE;margin-top:1.4rem}
.hero .btns{margin-top:2.2rem}
.hero-disc{display:grid;gap:0;border-top:1px solid rgba(255,255,255,.14)}
.hero-disc a{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.14);font-weight:600;font-size:.95rem;color:#E5EBF0}
.hero-disc a:hover{color:#fff}
.hero-disc a span{display:flex;gap:.7rem;align-items:center}
.hero-disc a span::before{content:"";width:8px;height:8px;background:var(--acc)}
.hero-disc svg{width:16px;opacity:.6}[dir=rtl] .hero-disc svg{transform:scaleX(-1)}
.eng-line{position:absolute;inset-inline:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--c-hvac),transparent);transform-origin:left;animation:line-draw 2.2s var(--ease) .6s both}
/* page hero */
.phero{position:relative;color:#fff;isolation:isolate;overflow:hidden;background:var(--ink)}
.phero .bg{position:absolute;inset:0;z-index:-2}
.phero .bg img{width:100%;height:100%;object-fit:cover}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(4,18,42,.97) 4%,rgba(4,18,42,.62) 55%,rgba(4,18,42,.55))}
.phero .w{min-height:clamp(460px,66vh,700px);display:flex;flex-direction:column;justify-content:flex-end;padding-block:calc(var(--header-h) + 3rem) 3.5rem}
.phero h1{margin-top:1rem;max-width:20ch}
.phero .t-lead{color:#C9D3DE;margin-top:1.2rem}
.phero .btns{margin-top:2rem}
.phero .acc-bar{width:64px;height:3px;background:var(--acc,var(--c-hvac));margin-top:1.4rem}
.crumbs{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.82rem;color:#9FB0C0}
.crumbs a:hover{color:#fff}
.meta{display:flex;flex-wrap:wrap;gap:.8rem 2.5rem;margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.14)}
.meta dt{font-size:.76rem;color:#93A1B0}.meta dd{font-weight:700;color:#fff;font-size:.98rem}
/* service grid */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:var(--steel-100);border:1px solid var(--steel-100)}
.svc{position:relative;background:#fff;display:flex;flex-direction:column;min-height:100%;overflow:hidden}
.svc .im{aspect-ratio:4/3;overflow:hidden;position:relative}
.svc .im img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.svc:hover .im img{transform:scale(1.05)}
.svc .tx{padding:1.4rem 1.4rem 1.6rem;border-top:3px solid var(--acc,var(--c-steel));flex:1;display:flex;flex-direction:column;gap:.5rem}
.svc h3{font-size:1.15rem}
.svc p{font-size:.9rem;color:var(--steel-600);line-height:1.6;flex:1}
.svc .link{font-size:.86rem;margin-top:.5rem}
.svc .num{position:absolute;top:.9rem;inset-inline-start:.9rem;background:rgba(4,18,42,.75);color:#fff;font-size:.74rem;font-weight:700;padding:.2rem .5rem}
/* engineering / bim block */
.bim-diagram{position:relative;border:1px solid rgba(255,255,255,.12);aspect-ratio:4/3;overflow:hidden;background:rgba(255,255,255,.02)}
.bim-diagram svg{width:100%;height:100%}
.bim-diagram .draw{stroke-dasharray:900;stroke-dashoffset:900}
.in-view .bim-diagram .draw,.bim-diagram.in-view .draw{animation:dash 2.4s var(--ease) forwards}
.bim-diagram .d2{animation-delay:.4s!important}.bim-diagram .d3{animation-delay:.8s!important}
/* capability ticker (technical typography instead of fake counters) */
.cap-type{display:grid;gap:0;border-top:1px solid rgba(255,255,255,.1)}
.cap-type li{display:grid;grid-template-columns:4rem 1fr auto;align-items:baseline;gap:1rem;padding:1.15rem 0;border-bottom:1px solid rgba(255,255,255,.1)}
.cap-type b{font-size:.8rem;color:#7F8E9E;font-weight:600}
.cap-type strong{font-size:clamp(1.6rem,3.6vw,3rem);font-weight:800;letter-spacing:-.03em;color:#fff;line-height:1.05}
html[lang=ar] .cap-type strong{letter-spacing:0}
.cap-type span{font-size:.85rem;color:#93A1B0;max-width:30ch;text-align:end}
.cap-type li::after{content:"";grid-column:1/-1;height:2px;background:var(--acc);transform:scaleX(0);transform-origin:var(--o,left);transition:transform 1.1s var(--ease)}
[dir=rtl] .cap-type li::after{--o:right}
.cap-type li.in::after{transform:scaleX(.18)}
/* featured projects slider */
.featured-projects-slider{position:relative}
.fps-viewport{overflow:hidden;touch-action:pan-y;cursor:grab;position:relative}
.fps-viewport.dragging{cursor:grabbing}
.fps-track{display:flex;gap:clamp(12px,1.6vw,24px);will-change:transform;width:max-content}
.fps-card{flex:0 0 min(78vw,860px);position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--navy-800);color:#fff;transition:opacity .8s var(--ease)}
@media(max-width:700px){.fps-card{flex-basis:86vw;aspect-ratio:4/5}}
.fps-card:not(.is-active){opacity:.45}
.fps-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.fps-card:hover img{transform:scale(1.04)}
.fps-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,18,42,.92) 5%,rgba(4,18,42,.1) 60%);transition:background .5s}
.fps-card:hover::after{background:linear-gradient(0deg,rgba(4,18,42,.95) 10%,rgba(4,18,42,.35) 75%)}
.fps-info{position:absolute;inset:auto 0 0 0;z-index:2;padding:clamp(1.25rem,3vw,2.5rem);display:grid;gap:.5rem}
.fps-info h3{font-size:clamp(1.35rem,2.6vw,2.2rem);color:#fff;max-width:22ch}
.fps-info .loc{color:#C3CED9;font-size:.95rem}
.fps-info .link{color:#fff;margin-top:.6rem;opacity:.85}
.fps-card:hover .fps-info .link{opacity:1}
.fps-ctrl{display:flex;align-items:center;gap:1.25rem;margin-top:1.6rem}
.fps-ctrl button.arw{width:52px;height:52px;border:1px solid var(--steel-300);display:grid;place-items:center;transition:border-color .25s,background .25s}
.dark .fps-ctrl button.arw{border-color:rgba(255,255,255,.25);color:#fff}
.fps-ctrl button.arw:hover{border-color:currentColor}
.fps-ctrl svg{width:20px;height:20px}[dir=rtl] .fps-ctrl svg{transform:scaleX(-1)}
.fps-progress{flex:1;height:2px;background:rgba(255,255,255,.14);position:relative;overflow:hidden}
.fps-progress i{position:absolute;inset:0;background:var(--c-hvac);transform-origin:var(--o,left);transform:scaleX(0)}
[dir=rtl] .fps-progress i{--o:right}
.fps-count{font-weight:700;font-size:.9rem;min-width:4.5em;text-align:center;color:#fff}
.fps-dots{display:flex;gap:6px}
.fps-dots button{width:8px;height:8px;background:rgba(255,255,255,.3)}
.fps-dots button[aria-current=true]{background:#fff;width:22px}
/* cinematic strip */
.strip{overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.strip-track{display:flex;gap:14px;width:max-content;will-change:transform}
.strip figure{height:clamp(200px,24vw,320px);flex:none;overflow:hidden;position:relative}
.strip img{height:100%;width:auto}
.strip figcaption{position:absolute;inset:auto 0 0 0;padding:1.6rem .8rem .6rem;background:linear-gradient(0deg,rgba(4,18,42,.85),transparent);color:#fff;font-size:.78rem;opacity:0;transition:opacity .3s}
.strip figure:hover figcaption{opacity:1}
/* mosaic */
.mosaic{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.mosaic{grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:12px}}
.mosaic>*{position:relative;overflow:hidden;min-height:150px}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.mosaic button:hover img{transform:scale(1.04)}
.mosaic button{display:block;width:100%;height:100%}
@media(min-width:900px){.mosaic .a{grid-column:span 3;grid-row:span 3}.mosaic .b{grid-column:span 3;grid-row:span 2}.mosaic .c{grid-column:span 2;grid-row:span 2}.mosaic .d{grid-column:span 1;grid-row:span 1}}
.mosaic .tag{position:absolute;top:.6rem;inset-inline-start:.6rem;z-index:1}
.tagchip{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;color:#fff;background:rgba(4,18,42,.75);padding:.25rem .55rem;backdrop-filter:blur(4px)}
.tagchip::before{content:"";width:7px;height:7px;background:var(--acc,var(--c-steel))}
/* why / values */
.why{display:grid;gap:1px;background:var(--steel-100);border:1px solid var(--steel-100)}
@media(min-width:760px){.why{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.why{grid-template-columns:repeat(3,1fr)}}
.why div{background:#fff;padding:2rem 1.8rem}
.why h3{font-size:1.1rem;margin-bottom:.5rem}
.why p{color:var(--steel-600);font-size:.94rem}
.why svg{width:30px;height:30px;color:var(--navy);margin-bottom:1.1rem}
/* process flow */
.flow{display:grid;grid-template-columns:repeat(2,1fr);gap:0;position:relative;counter-reset:f}
@media(min-width:760px){.flow{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1200px){.flow{grid-template-columns:repeat(8,1fr)}}
.flow li{counter-increment:f;position:relative;padding:1.6rem 1rem 1.4rem;border-top:1px solid rgba(255,255,255,.15)}
.flow:not(.dark) li{border-color:var(--steel-100)}
.flow li::before{content:counter(f,decimal-leading-zero);display:block;font-size:.8rem;font-weight:700;color:var(--c-hvac);margin-bottom:.8rem}
.flow li::after{content:"";position:absolute;top:-1px;inset-inline-start:0;height:2px;width:100%;background:var(--c-hvac);transform:scaleX(0);transform-origin:var(--o,left);transition:transform .7s var(--ease) calc(var(--i)*.12s)}
[dir=rtl] .flow li::after{--o:right}
.flow.in li::after{transform:scaleX(1)}
.flow li .dot{position:absolute;top:-5px;inset-inline-start:0;width:9px;height:9px;background:var(--c-hvac)}
.flow strong{display:block;font-size:1.02rem;color:inherit}
.flow small{display:block;font-size:.82rem;opacity:.75;margin-top:.3rem;line-height:1.5}
/* scope grid */
.scope{display:grid;gap:1px;background:var(--steel-100);border:1px solid var(--steel-100)}
@media(min-width:700px){.scope{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.scope{grid-template-columns:repeat(3,1fr)}}
.scope div{background:#fff;padding:1.6rem 1.5rem;position:relative}
.scope div::before{content:"";position:absolute;top:0;inset-inline-start:0;width:28px;height:3px;background:var(--acc,var(--c-steel))}
.scope h3{font-size:1rem;margin-bottom:.4rem;letter-spacing:0}
.scope p{font-size:.9rem;color:var(--steel-600)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips li{padding:.5rem .95rem;border:1px solid var(--steel-300);font-size:.9rem;font-weight:600}
.dark .chips li{border-color:rgba(255,255,255,.2)}
/* project cards (grid) */
.prj-grid{display:grid;gap:clamp(14px,2vw,26px)}
@media(min-width:760px){.prj-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1180px){.prj-grid.c3{grid-template-columns:repeat(3,1fr)}}
.prj{display:block;color:inherit}
.prj .im{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--navy-800)}
.prj .im img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.prj .im::after{content:"";position:absolute;inset:0;background:rgba(4,18,42,0);transition:background .5s}
.prj:hover .im img{transform:scale(1.05)}.prj:hover .im::after{background:rgba(4,18,42,.28)}
.prj .im .tagchip{position:absolute;top:.8rem;inset-inline-start:.8rem;z-index:1}
.prj .arr{position:absolute;bottom:1rem;inset-inline-end:1rem;z-index:1;width:46px;height:46px;background:#fff;color:var(--navy-900);display:grid;place-items:center;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .5s var(--ease)}
.prj:hover .arr{opacity:1;transform:none}
.prj .arr svg{width:18px}[dir=rtl] .prj .arr svg{transform:scaleX(-1)}
.prj h3{font-size:1.2rem;margin-top:1rem;letter-spacing:-.01em}
.prj p{color:var(--steel-600);font-size:.92rem;margin-top:.2rem}
.dark .prj p{color:#93A1B0}
/* gallery */
.gbar{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.6rem}
.gbar button{padding:.55rem 1rem;font-size:.86rem;font-weight:600;border:1px solid var(--steel-300);color:var(--navy-900);transition:all .25s}
.gbar button:hover{border-color:var(--navy)}
.gbar button[aria-pressed=true]{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.gbar button span{opacity:.55;font-weight:500;margin-inline-start:.3rem}
.dark .gbar button{color:#C9D2DC;border-color:rgba(255,255,255,.2)}.dark .gbar button[aria-pressed=true]{background:#fff;color:var(--navy-900)}
.gal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px;grid-auto-flow:row dense;--cw:calc((100vw - 2*var(--gut) - 10px)/2);grid-auto-rows:calc(var(--cw)/24)}
@media(min-width:900px){.gal{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:14px;--cw:calc((min(100vw,var(--wrap)) - 2*var(--gut) - 28px)/3)}}
@media(min-width:1300px){.gal{grid-template-columns:repeat(4,minmax(0,1fr));--cw:calc((min(100vw,var(--wrap)) - 2*var(--gut) - 42px)/4)}}
.gi{grid-row-end:span var(--r,24);margin-bottom:10px;display:flex;flex-direction:column;min-height:0}
@media(min-width:900px){.gi{margin-bottom:14px}}
.gi[hidden]{display:none}
.gi button{flex:1;min-height:0;position:relative;overflow:hidden;background:var(--steel-100);display:block;width:100%}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.gi button:hover img{transform:scale(1.04)}
.gi .ov{position:absolute;inset:auto 0 0 0;padding:2rem .9rem .8rem;background:linear-gradient(0deg,rgba(4,18,42,.9),transparent);color:#fff;font-size:.8rem;line-height:1.45;text-align:start;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .4s var(--ease)}
.gi button:hover .ov,.gi button:focus-visible .ov{opacity:1;transform:none}
@media(hover:none){.gi .ov{opacity:1;transform:none;font-size:.72rem}}
.gi .tagchip{position:absolute;top:.55rem;inset-inline-start:.55rem}
.gmore{text-align:center;margin-top:2rem}
/* lightbox */
.lb{position:fixed;inset:0;z-index:200;background:rgba(3,12,26,.97);display:grid;grid-template-rows:auto 1fr auto;color:#fff;opacity:0;transition:opacity .3s}
.lb.open{opacity:1}
.lb[hidden]{display:none}
.lb-top{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;font-size:.85rem;color:#93A1B0}
.lb button.ic{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18)}
.lb button.ic:hover{border-color:#fff}
.lb svg{width:22px;height:22px}
.lb-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 .6rem}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;transition:opacity .35s,transform .45s var(--ease)}
.lb-stage img.out{opacity:0;transform:scale(.985)}
.lb .prev,.lb .next{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(4,18,42,.6)}
.lb .prev{inset-inline-start:1rem}.lb .next{inset-inline-end:1rem}
[dir=rtl] .lb .prev svg,[dir=rtl] .lb .next svg{transform:scaleX(-1)}
@media(max-width:700px){.lb .prev,.lb .next{display:none}}
.lb-cap{padding:1rem 1.25rem 1.6rem;text-align:center;max-width:860px;margin-inline:auto}
.lb-cap p{font-size:1rem}
.lb-cap .m{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.6rem}
.lb-cap .m span,.lb-cap .m a{font-size:.78rem;padding:.2rem .6rem;border:1px solid rgba(255,255,255,.2)}
.lb-cap .m a{color:var(--c-hvac)}
/* related list */
.rel{display:grid;gap:1px;background:var(--steel-100);border:1px solid var(--steel-100)}
@media(min-width:760px){.rel{grid-template-columns:1fr 1fr}}
.rel a{display:flex;gap:1rem;align-items:center;padding:1rem;background:#fff;transition:background .25s}
.rel a:hover{background:var(--paper)}
.rel .th{width:76px;height:58px;flex:none;overflow:hidden}.rel .th img{width:100%;height:100%;object-fit:cover}
.rel strong{display:block}.rel small{display:block;color:var(--steel-600);font-size:.82rem;line-height:1.45}
/* facts table */
.facts{display:grid;border:1px solid var(--steel-100);background:#fff}
@media(min-width:760px){.facts{grid-template-columns:repeat(4,1fr)}}
.facts div{padding:1.1rem 1.3rem;border-bottom:1px solid var(--steel-100)}
@media(min-width:760px){.facts div{border-bottom:0;border-inline-end:1px solid var(--steel-100)}}
.facts dt{font-size:.76rem;color:var(--steel-600)}.facts dd{font-weight:700;margin-top:.15rem}
.note{font-size:.87rem;padding:1rem 1.2rem;background:var(--paper);border-inline-start:3px solid var(--steel)}
.dark .note{background:rgba(255,255,255,.05);color:#AEB9C5}
/* CTA band */
.cta{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--navy)}
.cta .bg{position:absolute;inset:0;z-index:-2}.cta .bg img{width:100%;height:100%;object-fit:cover;opacity:.35}
.cta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--navy-900) 20%,rgba(10,46,92,.6))}
[dir=rtl] .cta::before{background:linear-gradient(270deg,var(--navy-900) 20%,rgba(10,46,92,.6))}
.cta .w{padding-block:clamp(4rem,8vw,7rem)}
.cta h2{max-width:20ch}.cta .t-lead{color:#C9D3DE;margin-top:1rem}.cta .btns{margin-top:2rem}
/* contact */
.cbox{display:grid;gap:1px;background:var(--steel-100);border:1px solid var(--steel-100)}
@media(min-width:760px){.cbox{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.cbox{grid-template-columns:repeat(4,1fr)}}
.cbox>div,.cbox>a{background:#fff;padding:1.6rem 1.5rem;display:block}
.cbox dt{font-size:.78rem;color:var(--steel-600);margin-bottom:.3rem}
.cbox dd{font-weight:700;font-size:1.05rem}
.form{display:grid;gap:1rem}
@media(min-width:700px){.form{grid-template-columns:1fr 1fr}}
.form .full{grid-column:1/-1}
.form label{display:grid;gap:.35rem;font-size:.86rem;font-weight:600}
.form input,.form select,.form textarea{width:100%;padding:.85rem 1rem;border:1px solid var(--steel-300);background:#fff;border-radius:var(--r);transition:border-color .25s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--navy)}
.form textarea{min-height:150px;resize:vertical}
.form-status{font-size:.92rem;padding:.8rem 1rem;display:none}
.form-status.ok{display:block;background:#E7F6EE;color:#1D6B45}.form-status.err{display:block;background:#FCECEC;color:#9A1C22}
/* floating */
.fab{position:fixed;bottom:1.5rem;inset-inline-end:1.5rem;z-index:80;width:58px;height:58px;border-radius:50%;background:#25D366;color:#062a14;display:none;place-items:center;box-shadow:0 14px 30px -10px rgba(0,0,0,.5);transition:transform .3s var(--ease)}
.fab:hover{transform:scale(1.06)}
@media(min-width:820px){.fab{display:grid}}
.fab svg{width:28px;height:28px}
.mbar{position:fixed;inset-inline:0;bottom:0;z-index:80;display:grid;grid-template-columns:1fr 1fr 1.25fr;background:var(--ink);border-top:1px solid rgba(255,255,255,.1);padding-bottom:env(safe-area-inset-bottom)}
@media(min-width:820px){.mbar{display:none}}
.mbar a{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.6rem;color:#fff;font-size:.76rem;font-weight:600}
.mbar a.q{background:#fff;color:var(--navy-900);justify-content:center;font-size:.85rem}
.mbar svg{width:20px;height:20px}
/* loader */
.loader{position:fixed;inset:0;z-index:400;background:var(--ink);display:grid;place-items:center;transition:opacity .5s,visibility .5s}
.loader.done{opacity:0;visibility:hidden}
.loader b{font-size:2.4rem;font-weight:800;letter-spacing:.3em;color:#fff;display:flex}
.loader b i{font-style:normal;animation:ld .9s var(--ease) both}
.loader b i:nth-child(2){animation-delay:.08s}.loader b i:nth-child(3){animation-delay:.16s}
.loader .bar{width:120px;height:2px;background:rgba(255,255,255,.12);margin-top:1rem;overflow:hidden}
.loader .bar::after{content:"";display:block;height:100%;background:var(--c-hvac);animation:ldbar .9s var(--ease) both}
/* cursor */
.kcursor{position:fixed;top:0;left:0;z-index:150;pointer-events:none;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--navy-900);font-size:.72rem;font-weight:800;display:grid;place-items:center;transform:scale(0);transition:transform .3s var(--ease);mix-blend-mode:normal}
.kcursor.on{transform:scale(1)}

@media(min-width:1200px){.svc-grid.five{grid-template-columns:repeat(5,1fr)}}
.phero .disc,.hero .disc{color:#E2E8EE}
