@font-face{font-family:"Archivo";src:url(../fonts/archivo-var.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{--ch:#1C1F22;--ch2:#23272B;--ink:#16181B;--y:#F2B705;--st:#8A949C;--tx:#F3F4F5;--mut:#A4ACB3;--ln:rgba(255,255,255,.14);--lnd:rgba(28,31,34,.14);--paper:#F2F2F0;--max:1320px;--pad:clamp(20px,4.5vw,64px);--e:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ch);color:var(--tx);font:400 17px/1.6 "Archivo",system-ui,sans-serif;font-stretch:100%;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
h1,h2,h3{font-weight:400;letter-spacing:-.025em;line-height:1.04;margin:0}
h1{font-size:clamp(44px,6.4vw,96px);letter-spacing:-.035em}
h2{font-size:clamp(34px,4.2vw,60px)}
h3{font-size:clamp(21px,1.7vw,26px);letter-spacing:-.015em;line-height:1.2}
p{margin:0 0 1em}
.lab{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.lab::before{content:"";width:7px;height:7px;background:var(--y)}
.lede{font-size:clamp(22px,2.2vw,32px);line-height:1.35;font-weight:300;letter-spacing:-.012em;color:var(--tx);max-width:30ch}
.mut{color:var(--mut)}
.lnk{display:inline-flex;align-items:center;gap:12px;font-size:15px;font-weight:500;text-decoration:none;padding-bottom:6px;border-bottom:1px solid currentColor;transition:gap .3s var(--e),color .2s}
.lnk:hover{gap:18px;color:var(--y)}
.btn{display:inline-flex;align-items:center;gap:12px;height:52px;padding:0 26px;border:1px solid rgba(255,255,255,.5);font-size:15px;font-weight:500;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.btn:hover{background:#fff;color:var(--ch);border-color:#fff}
.btn.pri{background:var(--y);border-color:var(--y);color:var(--ch)}
.btn.pri:hover{background:#fff;border-color:#fff}
/* header */
.hdr{position:absolute;top:0;left:0;right:0;z-index:20;border-bottom:1px solid var(--ln)}
.hdr.solid{position:relative;background:var(--ch)}
.hdr .wrap{display:flex;align-items:center;height:88px;gap:40px}
.hdr .logo img{height:40px;width:auto}
.nav{display:flex;gap:30px;margin-left:auto;align-items:center}
.nav a{font-size:14px;font-weight:450;text-decoration:none;color:rgba(255,255,255,.86);padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.nav a:hover,.nav a[aria-current]{color:#fff;border-color:var(--y)}
.nav .tel{border:1px solid rgba(255,255,255,.4);padding:10px 16px;font-variant-numeric:tabular-nums}
.nav .tel:hover{border-color:var(--y)}
.mtog{display:none;margin-left:auto;background:none;border:0;color:#fff;font:500 14px "Archivo";letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:10px 0}
/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.hero .bg{position:absolute;inset:-6% 0 0;background-size:cover;background-position:center;will-change:transform;animation:hz 18s var(--e) both}
@keyframes hz{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,20,22,.55) 0%,rgba(18,20,22,.15) 35%,rgba(18,20,22,.78) 100%)}
.hero .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(48px,7vw,96px)}
.hero h1{max-width:15ch;margin:22px 0 34px}
.hero .row{display:flex;gap:16px;flex-wrap:wrap}
.hero .foot{display:flex;justify-content:space-between;align-items:center;margin-top:clamp(48px,7vw,90px);padding-top:20px;border-top:1px solid var(--ln);font-size:13px;color:var(--mut);letter-spacing:.04em}
.hero .foot span+span{color:var(--tx)}
/* sections */
.sec{padding:clamp(90px,12vw,180px) 0}
.sec.paper{background:var(--paper);color:var(--ch)}
.sec.paper .mut,.sec.paper .lab{color:#5E666D}
.sec.paper .lede{color:var(--ch)}
.intro{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,120px)}
.intro .cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:56px;padding-top:28px;border-top:1px solid var(--lnd)}
.intro .cols p{font-size:16px}
.shead{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:clamp(40px,5vw,72px)}
.shead h2{max-width:16ch;margin-top:18px}
/* services */
.svcs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)}
.svc{position:relative;display:block;text-decoration:none;overflow:hidden;background:var(--ink)}
.svc .ph{aspect-ratio:4/3.1;overflow:hidden}
.svc .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--e),opacity .6s}
.svc:hover .ph img{transform:scale(1.035)}
.svc .tx{padding:28px 0 0;display:grid;grid-template-columns:1fr auto;gap:8px 30px;align-items:end;background:var(--ch)}
.svc .tx p{grid-column:1;margin:0;color:var(--mut);font-size:16px;max-width:44ch}
.svc .tx .ar{grid-row:1/3;grid-column:2;font-size:22px;color:var(--y);transition:transform .3s var(--e)}
.svc:hover .ar{transform:translateX(6px)}
/* projects */
.pgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2vw,28px) clamp(16px,2vw,28px)}
.pcard{grid-column:span 4;text-decoration:none;display:block}
.pcard.wide{grid-column:span 8}
.pcard .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ink)}
.pcard.wide .ph{aspect-ratio:auto;height:100%;min-height:100%}
.pcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--e)}
.pcard:hover .ph img{transform:scale(1.035)}
.pcard .ph .pend{position:absolute;left:16px;bottom:14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.pcard .meta{padding-top:20px;border-top:1px solid var(--ln);margin-top:18px}
.pcard h3{display:flex;justify-content:space-between;gap:20px}
.pcard h3 .ar{color:var(--y);transition:transform .3s var(--e)}
.pcard:hover h3 .ar{transform:translateX(5px)}
.facts{display:flex;flex-wrap:wrap;gap:4px 22px;margin:10px 0 0;padding:0;list-style:none;font-size:13.5px;color:var(--mut)}
.facts b{font-weight:500;color:var(--tx);margin-right:6px}
.pwide{display:grid;grid-template-columns:8fr 4fr;gap:clamp(16px,2vw,28px);grid-column:1/-1}
/* glance */
.glance{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--lnd);border-left:1px solid var(--lnd)}
.glance>div{border-right:1px solid var(--lnd);border-bottom:1px solid var(--lnd);padding:34px 30px 40px;min-height:230px;display:flex;flex-direction:column;justify-content:space-between}
.glance .k{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#5E666D}
.glance .v{font-size:clamp(26px,2.4vw,36px);letter-spacing:-.02em;line-height:1.1;font-weight:400}
/* logos */
.logos{--cols:5;display:flex;flex-wrap:wrap;justify-content:center;padding:1px 0 0 1px;margin:0}
/* every cell draws a full 1px box with shadows; neighbours overlap on the same pixel, so partial rows stay crisp */
.logos.n1{--cols:1}.logos.n2{--cols:2}.logos.n3{--cols:3}.logos.n4{--cols:4}.logos.n6{--cols:6}
.logos li{list-style:none;flex:0 0 calc(100% / var(--cols));margin:-1px 0 0 -1px;box-shadow:inset 0 0 0 1px var(--ln)}
.logos a{display:grid;place-items:center;height:180px;padding:40px}
.logos img{grid-area:1/1;max-height:48px;max-width:72%;height:auto;object-fit:contain;width:auto;opacity:.72;transition:opacity .35s}
.logos img.c{opacity:0}
.logos a:hover img.m,.logos a:focus-visible img.m{opacity:0}
.logos a:hover img.c,.logos a:focus-visible img.c{opacity:1}
.logos a:focus-visible{outline:1px solid var(--y);outline-offset:-1px}
/* areas */
.areas{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,120px)}
.alist{list-style:none;margin:0;padding:0;border-top:1px solid var(--ln);columns:2;column-gap:clamp(24px,3vw,48px)}
.alist li{break-inside:avoid;border-bottom:1px solid var(--ln)}
.alist a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0;text-decoration:none;font-size:20px;letter-spacing:-.01em;white-space:nowrap;transition:color .2s,padding .3s var(--e)}
.alist small{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.alist a:hover{color:var(--y);padding-left:6px}
/* faq */
.faq{border-top:1px solid var(--lnd)}
.faq details{border-bottom:1px solid var(--lnd)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:30px;padding:28px 0;font-size:clamp(19px,1.6vw,23px);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:300;font-size:26px;line-height:1;color:#5E666D;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 30px;max-width:62ch;color:#4A5259}
/* cta */
.cta{position:relative;overflow:hidden;padding:clamp(120px,16vw,220px) 0;background:var(--ink)}
.cta .bg{position:absolute;inset:-10% 0;background-size:cover;background-position:center}
.cta::after{content:"";position:absolute;inset:0;background:rgba(18,20,22,.72)}
.cta .wrap{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
.cta h2{max-width:14ch}
.cta .tel{font-size:clamp(28px,3vw,44px);letter-spacing:-.02em;text-decoration:none;display:block;margin-bottom:20px;font-variant-numeric:tabular-nums}
.cta .tel:hover{color:var(--y)}
/* footer */
.ftr{padding:90px 0 40px;border-top:1px solid var(--ln);font-size:15px}
.ftr .g{display:grid;grid-template-columns:4fr 2fr 2fr 2fr;gap:40px}
.ftr .logo img{height:44px;width:auto;margin-bottom:24px}
.ftr .fh{font-family:inherit;line-height:1.4;margin:0 0 16px;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.ftr ul{list-style:none;margin:0;padding:0}.ftr li{margin:0 0 10px}
.ftr a{text-decoration:none;color:rgba(255,255,255,.86)}.ftr a:hover{color:var(--y)}
.ftr .legal{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:80px;padding-top:24px;border-top:1px solid var(--ln);font-size:12.5px;color:var(--mut)}
/* page hero */
.phero{position:relative;min-height:62svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.phero .bg{position:absolute;inset:0;background-size:cover;background-position:center 40%}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,20,22,.5),rgba(18,20,22,.82))}
.phero .wrap{position:relative;z-index:2;width:100%;padding-top:160px;padding-bottom:64px}
.phero h1{margin:20px 0 18px;max-width:14ch}
.crumb{font-size:13px;color:var(--mut)}.crumb a{text-decoration:none}.crumb a:hover{color:#fff}
.filters{display:flex;gap:6px 30px;flex-wrap:wrap;align-items:center;padding:30px 0;border-bottom:1px solid var(--ln);margin-bottom:56px}
.filters .lb{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);margin-right:8px}
.filters button{background:none;border:0;border-bottom:1px solid transparent;color:rgba(255,255,255,.7);font:450 15px "Archivo";padding:6px 0;cursor:pointer}
.filters button[aria-pressed=true],.filters button:hover{color:#fff;border-color:var(--y)}
.filters .sep{width:1px;height:18px;background:var(--ln)}
.pcard[hidden]{display:none}
.note{font-size:13px;color:var(--mut);border-left:2px solid var(--y);padding-left:14px;max-width:70ch}
/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity 1s var(--e),transform 1s var(--e)}
.rv.in{opacity:1;transform:none}
/* responsive */
@media (max-width:1080px){.nav{display:none}.mtog{display:block}
 .nav.open{display:flex;position:fixed;inset:88px 0 0;background:var(--ch);flex-direction:column;align-items:flex-start;gap:0;padding:20px var(--pad);z-index:30}
 .nav.open a{font-size:26px;padding:14px 0;width:100%;border-bottom:1px solid var(--ln)}
 .nav.open .tel{margin-top:24px;border:1px solid rgba(255,255,255,.4);width:auto}
 .intro,.areas{grid-template-columns:1fr}.glance{grid-template-columns:1fr 1fr}.ftr .g{grid-template-columns:1fr 1fr}
 .pcard{grid-column:span 6}.pcard.wide{grid-column:span 12}.pwide{grid-template-columns:1fr}}
@media (max-width:680px){body{font-size:16px}.hdr .wrap{height:72px}.hdr .logo img{height:32px}.nav.open{inset:72px 0 0}
 .svcs,.intro .cols{grid-template-columns:1fr}.shead{flex-direction:column;align-items:flex-start}
 .pcard,.pcard.wide{grid-column:1/-1}.glance{grid-template-columns:1fr}.glance>div{min-height:0;gap:26px;padding:26px 22px}
 .logos[class]{--cols:2}.logos a{height:120px;padding:22px}.logos img{max-height:36px}
 .alist{columns:1}.ftr .g{grid-template-columns:1fr}.hero .foot{flex-direction:column;align-items:flex-start;gap:6px}
 .cta .wrap{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
.pcard.wide{grid-column:1/-1}
.pcard.wide .ph{aspect-ratio:21/9;height:auto;min-height:0}
.hero::after{background:linear-gradient(180deg,rgba(16,18,20,.7) 0%,rgba(16,18,20,.45) 40%,rgba(16,18,20,.88) 100%)}
.hero .lab{color:rgba(255,255,255,.8)}
@media (max-width:680px){.pcard.wide .ph{aspect-ratio:4/3}}
.pgrid.two .pcard{grid-column:span 6}@media (max-width:680px){.pgrid.two .pcard{grid-column:1/-1}}
/* ===== v2 site additions ===== */
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:99;background:var(--y);color:var(--ch);padding:10px 14px}
.nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.nav li.on a,.nav .current-menu-item a{color:#fff;border-color:var(--y)}
.need{display:inline-block;font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--st);border:1px solid currentColor;padding:1px 6px;margin-left:4px;vertical-align:middle;line-height:1.6;white-space:normal;max-width:100%}
.no-need .need,.no-need .need-block{display:none}
.paper .need{color:#5C646B}
.ar{display:inline-block}
/* blueprint grid bg */
.bg.grid{position:absolute;inset:0;background-image:linear-gradient(rgba(138,148,156,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(138,148,156,.08) 1px,transparent 1px),linear-gradient(rgba(138,148,156,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(138,148,156,.04) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;mask-image:linear-gradient(180deg,#000 30%,transparent)}
/* home hero */
.hero2{position:relative;padding:clamp(170px,18vw,240px) 0 clamp(70px,8vw,110px);border-bottom:1px solid var(--ln);overflow:hidden}
.hero2 .wrap{position:relative}
.hero2 h1{max-width:19ch;margin:26px 0 0}
.hfoot{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-top:clamp(48px,6vw,84px);padding-top:28px;border-top:1px solid var(--ln)}
.hfoot .lede{font-size:clamp(18px,1.5vw,22px);max-width:46ch;margin:0;color:var(--mut)}
.hfoot .row{display:flex;gap:14px;flex-wrap:wrap}
.btn.pri.lnk{border-bottom:1px solid var(--y);padding-bottom:0}
/* showcase tiles */
.show{padding-top:clamp(80px,9vw,130px)}
.shead .note{max-width:44ch;margin:0}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,4vw,64px) clamp(16px,2vw,28px)}
.tile{display:block;text-decoration:none}
.tile .art{position:relative;aspect-ratio:10/7;overflow:hidden;border:1px solid var(--ln);background:var(--ch)}
.rend{display:block;width:100%;height:100%}
.rend .iso{transition:opacity .7s var(--e),transform 1.2s var(--e);transform-origin:50% 50%}
.rend .iso .gr{stroke-opacity:.13}.rend .iso .g{stroke-opacity:.42}.rend .iso .r{stroke:#E8EAEC}
.rend .plan{opacity:0;transition:opacity .7s var(--e)}
.tile:hover .rend .plan,.tile:focus-visible .rend .plan{opacity:1}
.tile:hover .rend .iso{opacity:.15;transform:scale(1.03)}
.tile .hint{position:absolute;top:16px;right:16px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);border:1px solid var(--ln);padding:5px 9px;background:rgba(28,31,34,.8);transition:color .3s,border-color .3s}
.tile:hover .hint{color:var(--y);border-color:var(--y)}
.tile .meta{padding-top:22px}
.tile h3{display:flex;justify-content:space-between;gap:20px}
.tile h3 .ar{color:var(--y);transition:transform .3s var(--e)}
.tile:hover h3 .ar{transform:translateX(5px)}
.tile:focus-visible{outline:1px solid var(--y);outline-offset:6px}
.more{margin-top:clamp(48px,5vw,72px)}
@media (hover:none){.tile .hint{display:none}}
/* service rows */
.srows{border-top:1px solid var(--lnd)}
.srow{display:grid;grid-template-columns:80px 5fr 6fr 40px;gap:30px;align-items:baseline;padding:40px 0;border-bottom:1px solid var(--lnd);text-decoration:none;transition:padding .3s var(--e)}
.srow .n{font-size:13px;color:#5C646B;letter-spacing:.1em}
.srow p{margin:0;color:#4A5259;max-width:56ch}
.srow .ar{font-size:22px;color:var(--ch);justify-self:end;transition:transform .3s var(--e)}
.srow:hover .ar{transform:translateX(6px)}.srow:hover h3{text-decoration:underline;text-decoration-color:var(--y);text-decoration-thickness:2px;text-underline-offset:6px}
.paper .lnk:hover{color:var(--ch);border-color:var(--y)}
.paper .btn{border-color:rgba(28,31,34,.4)}.paper .btn:hover{background:var(--ch);color:#fff}
/* page hero (plain) */
.phero{min-height:0}
.phero.plain{background:var(--ch);border-bottom:1px solid var(--ln)}
.phero.plain::after{display:none}
.phero .wrap{padding-top:clamp(150px,15vw,200px);padding-bottom:clamp(56px,6vw,90px)}
.phero h1{max-width:18ch}
.phero .lede{max-width:44ch;font-size:clamp(19px,1.7vw,24px);color:var(--mut)}
/* body */
.bgrid{display:grid;grid-template-columns:8fr 4fr;gap:clamp(40px,6vw,110px)}
.prose{max-width:760px}
.prose h2{font-size:clamp(28px,2.6vw,38px);margin:2.2em 0 .7em}.prose>h2:first-child{margin-top:0}
.prose p,.prose li{color:#3E454B}.prose a{text-decoration-color:var(--y);text-underline-offset:3px}
.ticks{list-style:none;padding:0;margin:0 0 1.4em;border-top:1px solid var(--lnd)}
.ticks li{padding:14px 0 14px 26px;border-bottom:1px solid var(--lnd);position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:24px;width:10px;height:1px;background:var(--ch)}
.callout{border-left:2px solid var(--y);padding:4px 0 4px 20px;margin:1.6em 0}
.callout p{margin:0;font-size:15.5px}
.aside{display:flex;flex-direction:column;gap:28px;align-self:start;position:sticky;top:30px}
.abox{border-top:1px solid var(--ch);padding-top:20px}
.abox .bh{font-family:inherit;line-height:1.4;margin:0 0 14px;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#5E666D}
.abox ul{list-style:none;margin:0;padding:0}.abox li{border-bottom:1px solid var(--lnd)}
.abox li a{display:flex;justify-content:space-between;padding:12px 0;text-decoration:none;font-size:16px}.abox li a:hover{color:#000;text-decoration:underline;text-decoration-color:var(--y)}
.abox.call p{font-size:15px;color:#4A5259}.abox .tel{display:block;font-size:28px;letter-spacing:-.02em;text-decoration:none;margin:6px 0 16px}
.mini{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 1.4em}
.mini a{text-decoration:none;font-size:14px}.mini .rend{aspect-ratio:10/7;height:auto;margin-bottom:10px}
/* project page */
.plan-hero{padding:clamp(40px,5vw,72px) 0 clamp(70px,8vw,110px)}
.planfig{margin:0;border:1px solid var(--ln)}
.siteplan{display:block;width:100%;height:auto}
.planfig figcaption{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--ln);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.pfacts{display:grid;grid-template-columns:repeat(5,1fr);margin:0 0 1em;border-top:1px solid var(--ch)}
.pfacts div{padding:16px 16px 18px 0;border-bottom:1px solid var(--lnd)}
.pfacts dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#5C646B;margin-bottom:8px}
.pfacts dd{margin:0;font-size:16px;line-height:1.35}
.gallery{list-style:none;margin:0 0 1.6em;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gallery.drone{grid-template-columns:1fr 1fr}
.gi{position:relative;display:block;width:100%;padding:0;border:0;background:var(--ink);cursor:zoom-in;aspect-ratio:3/2;overflow:hidden}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.gi:hover img{transform:scale(1.03)}
.gi .pend{position:absolute;left:12px;bottom:10px;font:500 10.5px "Archivo";letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(28,31,34,.72);padding:4px 8px}
.gi .play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(28,31,34,.35)}
.gi .play::after{content:"";position:absolute;left:26px;top:21px;border-left:16px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent}
.gi.vid{cursor:pointer}
.gi:focus-visible{outline:2px solid var(--y);outline-offset:2px}
.lbx{border:0;padding:0;background:transparent;max-width:min(1200px,94vw);width:100%;color:#fff}
.lbx::backdrop{background:rgba(14,16,18,.94)}
.lbx .stage img,.lbx .stage video{display:block;width:100%;max-height:80vh;object-fit:contain;background:#000}
.lbx .stage .msg{position:relative}.lbx .stage .msg span{position:absolute;inset:auto 0 0 0;padding:14px 18px;background:rgba(28,31,34,.85);font-size:14px}
.lbx .x{position:absolute;right:0;top:-44px;background:none;border:1px solid rgba(255,255,255,.5);color:#fff;font:500 13px "Archivo";letter-spacing:.1em;text-transform:uppercase;padding:8px 14px;cursor:pointer}
.lbx .cap{margin:14px 0 0;font-size:13px;letter-spacing:.08em;color:var(--mut)}
.lbx[open]{overflow:visible;margin-top:max(60px,8vh)}
/* faq on dark */
.sec:not(.paper) .faq{border-color:var(--ln)}.sec:not(.paper) .faq details{border-color:var(--ln)}.sec:not(.paper) .faq details p{color:var(--mut)}
/* contact */
.contact .cgrid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,120px)}
.contact h2{margin-top:18px;max-width:14ch}
.contact .tel{display:block;margin-top:30px;font-size:clamp(28px,3vw,44px);letter-spacing:-.02em;text-decoration:none}
.contact .tel:hover{text-decoration:underline;text-decoration-color:var(--y)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
.form label{display:flex;flex-direction:column;gap:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#5E666D}
.form .full{grid-column:1/-1}
.form input,.form select,.form textarea{font:400 17px "Archivo";color:var(--ch);background:transparent;border:0;border-bottom:1px solid rgba(28,31,34,.35);padding:10px 0;border-radius:0;letter-spacing:0;text-transform:none}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--ch);box-shadow:0 1px 0 var(--ch)}
.form .row{display:flex;gap:24px;flex-wrap:wrap}
.form .btn{background:var(--ch);color:#fff;border-color:var(--ch);cursor:pointer;font-family:"Archivo"}.form .btn:hover{background:var(--y);color:var(--ch);border-color:var(--y)}
.form-note{margin:0;font-size:13px;color:#5C646B}.hp{position:absolute;left:-9999px}
.msg{grid-column:1/-1;padding:12px 16px;border-left:2px solid var(--y)}
@media (max-width:1080px){.nav ul{flex-direction:column;gap:0;width:100%}.bgrid,.contact .cgrid{grid-template-columns:1fr}.aside{position:static}.pfacts{grid-template-columns:repeat(3,1fr)}.srow{grid-template-columns:50px 1fr 30px}.srow p{grid-column:2}.srow .ar{grid-row:1;grid-column:3}}
@media (max-width:680px){.tiles{grid-template-columns:1fr}.hfoot{flex-direction:column;align-items:flex-start}.pfacts{grid-template-columns:1fr 1fr}.gallery,.gallery.drone,.mini,.form{grid-template-columns:1fr}.srow{grid-template-columns:1fr 30px;gap:12px}.srow .n{display:none}.srow p{grid-column:1/-1}.srow .ar{grid-column:2}.alist a{white-space:normal}.planfig figcaption{font-size:10.5px}}

/* Hercon media slots (image or video). Only active when a slot is filled in wp-admin. */
.hm-on{position:relative;isolation:isolate}
.hm-on>*:not(.hm-bg){position:relative;z-index:1}
.hm-bg,.hm-card{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hm-bg::after{content:"";position:absolute;inset:0;background:rgba(28,31,34,.74)}
.sec.paper.hm-on .hm-bg::after{background:rgba(244,245,246,.86)}
.hm-bg img,.hm-bg video,.hm-card img,.hm-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hm-bg iframe,.hm-card iframe{position:absolute;top:50%;left:50%;width:177.78vh;min-width:100%;height:56.25vw;min-height:100%;transform:translate(-50%,-50%);border:0}
.art:has(.hm-card){position:relative}
.gallery .hm-noposter{display:block;aspect-ratio:3/2;background:#1C1F22}
@media (prefers-reduced-motion:reduce){.hm-vid,.hm-embed{display:none}}
/* v3.5 project media. Cards reuse the existing .rend hover swap (.iso -> .plan); real photos fill both layers. */
.tile .art img.pimg,.mini img.pimg,.pcover img.pimg{display:block;width:100%;height:100%;object-fit:cover}
.rend.rimg{position:absolute;inset:0}.rend.rimg .pimg{position:absolute;inset:0}
.rend.rimg .iso{opacity:1}.tile:hover .rend.rimg .iso,.tile:focus-visible .rend.rimg .iso{opacity:0}
.tile.pc-on .rend .plan{opacity:1}.tile.pc-on .rend.rimg .iso{opacity:0}
.mini a>img.pimg,.mini a>.ppend{aspect-ratio:10/7;height:auto;margin-bottom:10px}
.pcover{aspect-ratio:16/9;overflow:hidden;background:var(--ch)}
.ppend{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:120px;background:var(--ch);color:var(--mut);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
@media (prefers-reduced-motion:reduce){.rend .iso,.rend .plan{transition:none}}
.tile .art video.pimg{display:block;width:100%;height:100%;object-fit:cover}
.pcover.lowres{max-width:min(100%,1080px);margin-inline:auto}
@media (max-width:980px) and (min-width:681px){.logos[class]{--cols:3}.logos a{height:150px}.logos img{max-height:42px}}
.logos a{padding:24px}.logos li.oa img{max-width:42%;max-height:64px}.logos li.ob img{max-width:56%}.logos li.oc img{max-width:66%}.logos li.od img{max-width:84%;max-height:none}

.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.svc .tx h2.h3{font-size:clamp(21px,1.7vw,26px);letter-spacing:-.015em;line-height:1.2}

/* v3.6.2 hero strip: 4 equal cells, hairline dividers via grid gap */
.v1h .v1-hero-strip{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:2px;background:var(--ch3)!important;border-top:2px solid var(--ch3);padding:0;width:100%;box-sizing:border-box}
.v1h .v1-hero-strip span,.v1h .v1-hero-strip span:last-child,.v1h .v1-hero-strip span:nth-child(2n){display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:.4em;flex:none!important;min-width:0;margin:0;padding:16px 12px!important;text-align:center;border:0!important;background:var(--ch);overflow-wrap:anywhere}
@media (max-width:1020px){.v1h .v1-hero-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:420px){.v1h .v1-hero-strip span,.v1h .v1-hero-strip span:last-child,.v1h .v1-hero-strip span:nth-child(2n){font-size:11.5px;letter-spacing:.1em;padding:14px 8px!important}}
/* v3.6.2 footer credit */
.ftr .legal .credit{position:relative;display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:2px 0 5px;color:var(--mut);text-decoration:none;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;transition:color .3s}
.ftr .legal .credit b{font-weight:600;color:var(--tx)}
.ftr .legal .credit img{width:12px;height:12px;opacity:.75;transition:opacity .3s,filter .3s}
.ftr .legal .credit::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--y);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--e,cubic-bezier(.2,.7,.2,1))}
.ftr .legal .credit:hover,.ftr .legal .credit:focus-visible{color:var(--tx)}
.ftr .legal .credit:hover::after,.ftr .legal .credit:focus-visible::after{transform:scaleX(1)}
.ftr .legal .credit:hover img,.ftr .legal .credit:focus-visible img{opacity:1;animation:amp-charge .6s steps(1,end) 1;filter:drop-shadow(0 0 3px rgba(245,184,0,.55))}
.ftr .legal .credit:focus-visible{outline:1px solid var(--y);outline-offset:4px}
@keyframes amp-charge{0%{opacity:.3}15%{opacity:1}30%{opacity:.45}45%{opacity:1}60%{opacity:.7}75%{opacity:1}}
@media (prefers-reduced-motion:reduce){.ftr .legal .credit::after,.ftr .legal .credit img{transition:none}.ftr .legal .credit:hover img,.ftr .legal .credit:focus-visible img{animation:none}}
@media (max-width:680px){.ftr .legal{justify-content:center;text-align:center}.ftr .legal .credit{margin:8px auto 0;order:9}}
.v1h .v1-hero-strip .lc{text-transform:none;font-style:normal}
/* v3.6.2 customers on About + optional Built for */
ul.custs{list-style:none!important;padding:0!important;margin:20px 0!important;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
ul.custs>li{border:1px solid #2a2d30;padding:18px!important;margin:0!important;display:flex!important;flex-direction:column;justify-content:space-between;gap:14px;background:#17191b;color:#e9e9e6;list-style:none!important}
ul.custs>li::before,ul.custs>li::marker{display:none!important;content:none!important}
ul.custs img{height:40px!important;width:auto!important;max-width:100%!important;object-fit:contain;object-position:left center;display:block}
ul.custs p{margin:0!important;font-size:14px;line-height:1.4;color:#b9bcbf!important}ul.custs b{display:block;color:#fff!important}
.builtfor{display:flex;align-items:center;gap:16px;margin:18px 0 0}.builtfor span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.builtfor img{height:40px;width:auto;max-width:200px;object-fit:contain}
#customers{scroll-margin-top:110px}

/* v1 homepage opening, ported verbatim from build-v1 and scoped under .v1h (classes prefixed v1-) */
.v1h{--ch:#1C1F22;--ch2:#232729;--ch3:#2D3236;--y:#F2B705;--st:#8A949C;--tx:#F4F5F6;--tx2:#9AA3AB;--ln:rgba(138,148,156,.22);
--wrap:1280px;--pad:clamp(18px,4.5vw,56px);--e:cubic-bezier(.2,.7,.1,1);--f:"Archivo",system-ui,"Segoe UI",Roboto,sans-serif}
.v1h *, .v1h *::before, .v1h *::after{box-sizing:border-box}
.v1h{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-padding-top:90px}
.v1h{margin:0;background:var(--ch);color:var(--tx);font-family:var(--f);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
.v1h img, .v1h svg, .v1h video{display:block;max-width:100%}
.v1h a{color:inherit}
.v1h p{margin:0 0 1em}
.v1h h1, .v1h h2, .v1h h3, .v1h h4{margin:0 0 .4em;font-weight:850;font-stretch:72%;text-transform:uppercase;line-height:.95;letter-spacing:-.005em}
.v1h h1{font-size:clamp(54px,9vw,132px);font-weight:900}
.v1h h2{font-size:clamp(38px,5.6vw,80px)}
.v1h h3{font-size:clamp(24px,2.4vw,32px)}
.v1h .v1-wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.v1h .v1-y{color:var(--y)}
.v1h .mut{color:var(--tx2)}
.v1h .v1-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.v1h .skip{position:absolute;left:-999px;top:8px;background:var(--y);color:var(--ch);padding:10px 16px;z-index:200;font-weight:800}
.v1h .skip:focus{left:8px}
.v1h :focus-visible{outline:3px solid var(--y);outline-offset:3px}
.v1h .v1-kicker{display:block;font-weight:800;font-stretch:80%;text-transform:uppercase;letter-spacing:.2em;font-size:13px;color:var(--y);margin-bottom:18px}
.v1h .v1-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:18px 26px;font:900 15px/1 var(--f);font-stretch:85%;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border:3px solid var(--y);background:var(--y);color:var(--ch);cursor:pointer;border-radius:0;transition:transform .2s var(--e),box-shadow .2s var(--e),background .2s}
.v1h .v1-btn:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--tx)}
.v1h .v1-btn:active{transform:none;box-shadow:none}
.v1h .v1-btn.v1-ghost{background:transparent;color:var(--tx);border-color:var(--tx)}
.v1h .v1-btn.v1-ghost:hover{box-shadow:6px 6px 0 var(--y);border-color:var(--y);color:var(--y)}
.v1h .v1-btn.dark{background:var(--ch);border-color:var(--ch);color:var(--y)}
.v1h .v1-btn.dark:hover{box-shadow:6px 6px 0 var(--tx)}
.v1h .v1-btn .v1-ar{font-size:18px;transition:transform .2s}
.v1h .v1-btn:hover .v1-ar{transform:translateX(4px)}
.v1h .v1-row{display:flex;flex-wrap:wrap;gap:14px}
.v1h .haz{height:10px;background:repeating-linear-gradient(-45deg,var(--y) 0 14px,var(--ch) 14px 28px)}
.v1h .top{position:sticky;top:0;z-index:100;background:rgba(28,31,34,.94);backdrop-filter:blur(8px);border-bottom:2px solid var(--ch3)}
.v1h .top .v1-wrap{display:flex;align-items:center;gap:28px;height:78px}
.v1h .logo img{height:46px;width:auto}
.v1h .nav{margin-left:auto;display:flex;gap:4px;align-items:center}
.v1h .nav ul{display:flex;list-style:none;margin:0;padding:0;gap:4px}
.v1h .nav a{display:block;padding:10px 14px;font-weight:800;font-stretch:80%;text-transform:uppercase;letter-spacing:.1em;font-size:14px;text-decoration:none;color:var(--tx2);border-bottom:3px solid transparent}
.v1h .nav a:hover, .v1h .nav .v1-on>a, .v1h .nav a.v1-on{color:var(--tx);border-color:var(--y)}
.v1h .top .v1-btn{padding:13px 18px;font-size:14px}
.v1h .mbtn{display:none;margin-left:auto;width:48px;height:48px;background:none;border:2px solid var(--st);cursor:pointer;position:relative}
.v1h .mbtn i{position:absolute;left:10px;right:10px;height:3px;background:var(--tx);transition:transform .25s}
.v1h .mbtn i:first-child{top:15px}
.v1h .mbtn i:nth-child(2){top:22px;background:var(--y)}
.v1h .mbtn i:last-child{top:29px}
.v1h .mbtn[aria-expanded=true] i:first-child{transform:translateY(7px) rotate(45deg)}
.v1h .mbtn[aria-expanded=true] i:nth-child(2){opacity:0}
.v1h .mbtn[aria-expanded=true] i:last-child{transform:translateY(-7px) rotate(-45deg)}
.v1h .v1-prog{position:absolute;left:0;bottom:-2px;height:3px;width:100%;background:var(--y);transform-origin:0 50%;transform:scaleX(0)}
.v1h .need{display:inline-block;background:var(--y);color:var(--ch);font:800 11px/1.3 var(--f);font-stretch:85%;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;vertical-align:middle}
.v1h .no-need .need, .v1h .no-need .need-block{display:none!important}
.v1h .v1-hero{position:relative;overflow:hidden;min-height:calc(100svh - 78px);display:flex;align-items:center;padding:80px 0 120px;background:
 linear-gradient(var(--ln) 1px,transparent 1px) 0 0/80px 80px,linear-gradient(90deg,var(--ln) 1px,transparent 1px) 0 0/80px 80px,var(--ch)}
.v1h .v1-hero .v1-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center;width:100%;position:relative;z-index:2}
.v1h .v1-hero h1{font-size:clamp(64px,11vw,176px);line-height:.84;margin-bottom:22px}
.v1h .v1-hero h1 span{display:block;overflow:hidden}
.v1h .v1-hero h1 span b{display:block;font-weight:inherit;transform:translateY(105%);animation:v1-up .9s var(--e) forwards}
.v1h .v1-hero h1 span:nth-child(2) b{animation-delay:.12s}
.v1h .v1-tagline{display:inline-flex;align-items:center;gap:14px;font-weight:900;font-stretch:80%;letter-spacing:.3em;font-size:clamp(13px,1.2vw,16px);text-transform:uppercase;color:var(--tx);margin-bottom:26px}
.v1h .v1-tagline::before{content:"";width:46px;height:6px;background:var(--y)}
.v1h .v1-answer{font-size:clamp(18px,1.5vw,21px);color:var(--tx);max-width:40ch;margin-bottom:32px}
.v1h .v1-answer strong{color:var(--y);font-weight:800}
.v1h .v1-crane{margin:0}
.v1h .v1-crane svg{width:100%;height:auto;max-height:70vh;overflow:visible}
.v1h .v1-draw{stroke-dasharray:1200;stroke-dashoffset:1200;animation:v1-draw 1.3s var(--e) var(--d) forwards}
.v1h .v1-fade{opacity:0;animation:v1-fadein .8s ease var(--d) forwards}
.v1h .v1-rise{transform:scaleY(0);transform-origin:50% 100%;transform-box:fill-box;animation:v1-riseY 1s var(--e) var(--d) forwards}
.v1h .v1-jib{opacity:0;animation:v1-fadein .8s var(--e) var(--d) forwards}
.v1h .v1-trolley{transform:translateX(var(--tx,320px));transition:transform 1.2s var(--e)}
.v1h .v1-hook{transform-origin:0 128px;animation:v1-swing 5s ease-in-out infinite}
.v1h .v1-hero-strip{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;border-top:2px solid var(--ch3);background:var(--ch)}
.v1h .v1-hero-strip span{flex:1;padding:16px var(--pad);font-weight:800;font-stretch:78%;text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:var(--tx2);border-right:2px solid var(--ch3)}
.v1h .v1-hero-strip span:last-child{border:0}
.v1h .v1-hero-strip b{color:var(--tx);font-weight:900}
.v1h .v1-sec{padding:clamp(80px,11vw,150px) 0;position:relative}
.v1h .v1-sec.v1-alt{background:var(--ch2)}
.v1h .v1-sec.yel{background:var(--y);color:var(--ch)}
.v1h .v1-sec.yel .v1-kicker{color:var(--ch)}
.v1h .head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:50px;flex-wrap:wrap}
.v1h .head h2{margin:0;max-width:14ch}
.v1h .head p{max-width:44ch;color:var(--tx2);margin:0}
.v1h .v1-big{font-size:clamp(28px,3.6vw,54px);font-weight:750;font-stretch:80%;line-height:1.08;text-transform:none;max-width:24ch}
.v1h .v1-big .v1-w{color:#4a5157;transition:color .3s}
.v1h .v1-big .v1-w.v1-on{color:var(--tx)}
.v1h .v1-big mark{background:none;color:inherit}
.v1h .v1-big mark .v1-w.v1-on{color:var(--y)}
.v1h .v1-seq{display:grid;grid-template-columns:1.25fr .75fr;gap:30px}
.v1h .v1-seq-stage{position:sticky;top:78px;height:calc(100vh - 78px);display:flex;flex-direction:column;justify-content:center}
.v1h .v1-seq-stage svg{width:100%;height:auto;max-height:76vh}
.v1h .v1-seq-read{font-weight:900;font-stretch:75%;text-transform:uppercase;letter-spacing:.16em;font-size:13px;color:var(--tx2)}
.v1h .v1-seq-read b{font-size:44px;color:var(--y);letter-spacing:0;margin:0 8px;font-variant-numeric:tabular-nums}
.v1h .v1-steps{list-style:none;margin:0;padding:28vh 0 30vh}
.v1h .v1-step{min-height:60vh;display:flex;flex-direction:column;justify-content:center;border-left:6px solid var(--ch3);padding-left:28px;opacity:.3;transition:opacity .4s,border-color .4s}
.v1h .v1-step.v1-active{opacity:1;border-color:var(--y)}
.v1h .v1-step p{color:var(--tx2);max-width:36ch}
.v1h .split{display:grid;grid-template-columns:1fr 1fr;gap:0}
.v1h .panel{position:relative;min-height:min(78vh,720px);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(26px,4vw,56px);text-decoration:none;overflow:hidden;border-right:2px solid var(--ch)}
.v1h .panel .bg{position:absolute;inset:0;z-index:0;transition:transform 1.2s var(--e)}
.v1h .panel:hover .bg{transform:scale(1.04)}
.v1h .panel::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(28,31,34,.96) 10%,rgba(28,31,34,.25) 70%);z-index:1}
.v1h .panel>*:not(.bg){position:relative;z-index:2}
.v1h .panel h3{font-size:clamp(40px,5vw,76px);margin-bottom:12px}
.v1h .panel p{max-width:40ch;color:var(--tx2)}
.v1h .panel .go{font-weight:900;font-stretch:80%;text-transform:uppercase;letter-spacing:.14em;color:var(--y)}
.v1h .ph{position:relative;overflow:hidden;background:#15181a;background-image:repeating-linear-gradient(-45deg,rgba(138,148,156,.07) 0 2px,transparent 2px 16px)}
.v1h .ph img, .v1h .ph video{width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.25) brightness(.92)}
.v1h .ph svg.art{position:absolute;inset:12% 14%;width:72%;height:76%;opacity:.55}
.v1h .ph .lbl{position:absolute;left:16px;top:16px;z-index:3}
.v1h .vid{position:relative;overflow:hidden;background:#111314;cursor:pointer}
.v1h .vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.15) saturate(.85)}
.v1h .vid .poster{position:absolute;inset:0}
.v1h .vid .play{position:absolute;right:16px;bottom:16px;z-index:4;width:60px;height:60px;background:var(--y);border:0;display:grid;place-items:center;cursor:pointer}
.v1h .vid .play::before{content:"";border-left:18px solid var(--ch);border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:4px}
.v1h .vid.playing .play{opacity:0}
.v1h .vid .rec{position:absolute;left:16px;bottom:18px;z-index:4;font:900 12px/1 var(--f);font-stretch:80%;letter-spacing:.18em;text-transform:uppercase;color:var(--tx);display:flex;gap:8px;align-items:center}
.v1h .vid .rec::before{content:"";width:10px;height:10px;background:var(--y)}
.v1h .vid.playing .rec::before{animation:v1-blink 1.2s steps(2) infinite}
.v1h .reel{position:relative;height:min(86vh,820px)}
.v1h .reel .vid{position:absolute;inset:0}
.v1h .reel .cap{position:absolute;left:var(--pad);bottom:clamp(30px,6vw,70px);z-index:5;max-width:min(680px,80vw)}
.v1h .reel .cap h2{margin-bottom:16px}
.v1h .reel::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(28,31,34,.92),transparent 55%);pointer-events:none;z-index:3}
.v1h .filters{display:flex;flex-wrap:wrap;gap:0;margin-bottom:28px;border:2px solid var(--ch3);width:max-content;max-width:100%}
.v1h .filters button{font:900 13px/1 var(--f);font-stretch:80%;letter-spacing:.14em;text-transform:uppercase;background:none;color:var(--tx2);border:0;border-right:2px solid var(--ch3);padding:15px 20px;cursor:pointer}
.v1h .filters button:last-child{border-right:0}
.v1h .filters button[aria-pressed=true]{background:var(--y);color:var(--ch)}
.v1h .gal{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(110px,11vw,150px);gap:8px}
.v1h .tile{position:relative;grid-column:span 4;grid-row:span 2;overflow:hidden;margin:0;transition:opacity .35s,transform .35s}
.v1h .tile.w8{grid-column:span 8}
.v1h .tile.t3{grid-row:span 3}
.v1h .tile>.ph, .v1h .tile>.vid{position:absolute;inset:0}
.v1h .tile figcaption{position:absolute;left:0;right:0;bottom:0;z-index:5;padding:14px 16px;background:linear-gradient(to top,rgba(17,19,20,.95),transparent);font-weight:800;font-stretch:80%;text-transform:uppercase;letter-spacing:.1em;font-size:13px;display:flex;justify-content:space-between;gap:10px;transform:translateY(8px);opacity:.9;transition:transform .3s,opacity .3s}
.v1h .tile:hover figcaption{transform:none;opacity:1}
.v1h .tile figcaption a{color:var(--y);text-decoration:none}
.v1h .tile.hide{display:none}
.v1h .tile button.open{position:absolute;inset:0;z-index:4;background:none;border:0;cursor:zoom-in}
.v1h .lb{border:0;padding:0;background:transparent;max-width:min(1200px,94vw);width:100%}
.v1h .lb::backdrop{background:rgba(10,11,12,.92)}
.v1h .lb .in{position:relative;aspect-ratio:16/9;border:3px solid var(--y)}
.v1h .lb .in>*{position:absolute;inset:0}
.v1h .lb .x{position:absolute;right:-3px;top:-54px;background:var(--y);border:0;font:900 14px/1 var(--f);text-transform:uppercase;letter-spacing:.12em;padding:14px 18px;cursor:pointer}
.v1h .lb p{color:var(--tx);margin:14px 0 0;font-weight:700}
.v1h .plates{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ch3);border-left:2px solid var(--ch3)}
.v1h .plates li{border-right:2px solid var(--ch3);border-bottom:2px solid var(--ch3);min-height:190px;display:grid;place-items:center;text-align:center;padding:24px;font-weight:900;font-stretch:72%;text-transform:uppercase;font-size:clamp(24px,2.6vw,38px);line-height:1;position:relative;transition:background .3s,color .3s}
.v1h .plates li::before, .v1h .plates li::after{content:"";position:absolute;width:10px;height:10px;background:var(--st);top:14px;left:14px;transition:background .3s}
.v1h .plates li::after{left:auto;right:14px}
.v1h .plates li:hover{background:var(--y);color:var(--ch)}
.v1h .plates li:hover::before, .v1h .plates li:hover::after{background:var(--ch)}
.v1h .yel .plates, .v1h .yel .plates li{border-color:rgba(28,31,34,.25)}
.v1h .plist{list-style:none;margin:0;padding:0;border-top:2px solid var(--ch3)}
.v1h .plist li{border-bottom:2px solid var(--ch3)}
.v1h .plist a{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) auto;gap:20px;align-items:center;padding:24px 4px;text-decoration:none;transition:background .25s,padding .25s}
.v1h .plist a:hover{background:var(--ch2);padding-left:18px}
.v1h .plist b{font-weight:900;font-stretch:75%;text-transform:uppercase;font-size:clamp(22px,2.2vw,30px);line-height:1}
.v1h .plist span{color:var(--tx2);font-weight:700;font-stretch:85%;text-transform:uppercase;letter-spacing:.08em;font-size:14px}
.v1h .plist i{font-style:normal;color:var(--y);font-size:24px}
.v1h .area{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.v1h .cities{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ch3)}
.v1h .cities a{display:flex;justify-content:space-between;align-items:center;padding:20px 6px;border-bottom:2px solid var(--ch3);text-decoration:none;font-weight:900;font-stretch:75%;text-transform:uppercase;font-size:clamp(20px,2vw,28px);transition:color .2s,background .2s}
.v1h .cities li:nth-child(odd) a{border-right:2px solid var(--ch3);padding-right:20px}
.v1h .cities li:nth-child(even) a{padding-left:20px}
.v1h .cities a small{font-size:12px;color:var(--tx2);letter-spacing:.12em;font-weight:700}
.v1h .cities a:hover{color:var(--y)}
.v1h .faq details{border-bottom:2px solid var(--ch3)}
.v1h .faq details:first-child{border-top:2px solid var(--ch3)}
.v1h .faq summary{list-style:none;cursor:pointer;padding:22px 50px 22px 0;position:relative;font-weight:850;font-stretch:80%;text-transform:uppercase;font-size:clamp(19px,1.8vw,24px);line-height:1.15}
.v1h .faq summary::-webkit-details-marker{display:none}
.v1h .faq summary::after{content:"+";position:absolute;right:6px;top:16px;font-size:32px;color:var(--y);font-weight:900;transition:transform .25s}
.v1h .faq details[open] summary::after{transform:rotate(45deg)}
.v1h .faq .a{padding:0 0 24px;color:var(--tx2);max-width:72ch}
.v1h .faq .a p:first-child{color:var(--tx)}
.v1h .yel .faq details, .v1h .yel .faq details:first-child{border-color:rgba(28,31,34,.3)}
.v1h .cta{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.v1h .phone{display:inline-block;font-weight:900;font-stretch:72%;font-size:clamp(46px,6vw,92px);line-height:1;text-decoration:none;border-bottom:8px solid currentColor;margin:10px 0 24px}
.v1h .form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:var(--ch);color:var(--tx);padding:clamp(22px,3vw,40px);box-shadow:14px 14px 0 rgba(28,31,34,.35)}
.v1h .form label{display:flex;flex-direction:column;gap:6px;font-weight:800;font-stretch:80%;text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--tx2)}
.v1h .form .full{grid-column:1/-1}
.v1h .form input, .v1h .form select, .v1h .form textarea{font:500 16px var(--f);color:var(--tx);background:var(--ch2);border:2px solid var(--ch3);border-radius:0;padding:13px 14px;width:100%}
.v1h .form input:focus, .v1h .form select:focus, .v1h .form textarea:focus{border-color:var(--y);outline:0}
.v1h .form .hp{position:absolute;left:-9999px}
.v1h .form .msg{grid-column:1/-1;padding:12px 14px;font-weight:700}
.v1h .form .msg.ok{background:#1f3b1f}
.v1h .form .msg.err{background:#4a1d1d}
.v1h .form-note{font-size:13px;color:var(--tx2);margin:0}
.v1h .phero{position:relative;border-bottom:2px solid var(--ch3);overflow:hidden;background:
 linear-gradient(var(--ln) 1px,transparent 1px) 0 0/80px 80px,linear-gradient(90deg,var(--ln) 1px,transparent 1px) 0 0/80px 80px,var(--ch)}
.v1h .phero .v1-wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:end;padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(40px,6vw,80px)}
.v1h .phero h1{font-size:clamp(50px,7.6vw,118px);line-height:.88;margin:0 0 22px}
.v1h .crumbs{font-weight:800;font-stretch:80%;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--tx2);margin-bottom:22px}
.v1h .crumbs a{text-decoration:none}
.v1h .crumbs a:hover{color:var(--y)}
.v1h .phero .media{aspect-ratio:4/3;border:2px solid var(--ch3)}
.v1h .phero .media>*{position:absolute;inset:0}
.v1h .body .v1-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:60px;padding-top:70px;padding-bottom:100px}
.v1h .prose{max-width:760px}
.v1h .prose h2{font-size:clamp(30px,3.6vw,50px);margin:1.4em 0 .5em}
.v1h .prose h2:first-child{margin-top:0}
.v1h .prose h3{margin:1.4em 0 .4em}
.v1h .prose ul.ticks{list-style:none;padding:0;margin:0 0 1.4em;border-top:2px solid var(--ch3)}
.v1h .prose ul.ticks li{padding:14px 0 14px 34px;border-bottom:2px solid var(--ch3);position:relative;font-weight:600}
.v1h .prose ul.ticks li::before{content:"";position:absolute;left:4px;top:22px;width:14px;height:6px;background:var(--y)}
.v1h .prose a{color:var(--y);font-weight:700}
.v1h .prose .callout{border-left:8px solid var(--y);background:var(--ch2);padding:22px 26px;margin:1.6em 0}
.v1h .facts{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ch3);border-left:2px solid var(--ch3);margin:0 0 2em}
.v1h .facts div{border-right:2px solid var(--ch3);border-bottom:2px solid var(--ch3);padding:16px 18px}
.v1h .facts dt{font-weight:800;font-stretch:80%;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--tx2)}
.v1h .facts dd{margin:4px 0 0;font-weight:800;font-size:18px}
.v1h .aside{display:flex;flex-direction:column;gap:20px;position:sticky;top:100px;align-self:start}
.v1h .box{border:2px solid var(--ch3);padding:24px}
.v1h .box.v1-y{background:var(--y);color:var(--ch);border-color:var(--y)}
.v1h .box h3{font-size:24px}
.v1h .box ul{list-style:none;margin:0;padding:0}
.v1h .box li a{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--ln);text-decoration:none;font-weight:800;font-stretch:85%;text-transform:uppercase;letter-spacing:.04em;font-size:15px}
.v1h .box li a:hover{color:var(--y)}
.v1h .box .v1-btn{width:100%;margin-top:6px}
.v1h .pgal{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:120px;gap:8px;margin:0 0 2em}
.v1h .pgal>*{grid-column:span 3;grid-row:span 2;position:relative}
.v1h .pgal>.wide{grid-column:span 6;grid-row:span 3}
.v1h .pgal>*>.ph, .v1h .pgal>*>.vid{position:absolute;inset:0}
.v1h .foot{border-top:10px solid var(--y);background:#151719;padding:70px 0 34px}
.v1h .foot .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.v1h .foot h4{font-size:16px;letter-spacing:.14em;color:var(--tx2);margin-bottom:14px}
.v1h .foot ul{list-style:none;margin:0;padding:0}
.v1h .foot li a{display:block;padding:5px 0;text-decoration:none;font-weight:700;font-stretch:88%}
.v1h .foot li a:hover{color:var(--y)}
.v1h .foot .tl{font-weight:900;font-stretch:80%;letter-spacing:.3em;font-size:13px;margin:18px 0 6px}
.v1h .foot .legal{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:50px;padding-top:22px;border-top:1px solid var(--ln);font-size:13px;color:var(--st)}
.v1h .callbar{display:none}
.v1h .rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--e),transform .8s var(--e)}
.v1h .rv.in{opacity:1;transform:none}
@keyframes v1-up{to{transform:none}}
@keyframes v1-draw{to{stroke-dashoffset:0}}
@keyframes v1-fadein{to{opacity:1}}
@keyframes v1-riseY{to{transform:scaleY(1)}}
@keyframes v1-swing{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes v1-blink{50%{opacity:0}}
@media (max-width:1020px){.v1h .nav{display:none;position:fixed;top:78px;left:0;right:0;bottom:0;background:var(--ch);flex-direction:column;align-items:stretch;padding:20px var(--pad);gap:0;overflow:auto}
.v1h .nav.open{display:flex}
.v1h .nav ul{flex-direction:column}
.v1h .nav a{font-size:26px;padding:16px 0;border-bottom:2px solid var(--ch3);color:var(--tx)}
.v1h .nav .v1-btn{margin-top:20px}
.v1h .mbtn{display:block}
.v1h .top .callbtn{display:none}
.v1h .v1-hero .v1-wrap, .v1h .phero .v1-wrap, .v1h .v1-seq, .v1h .split, .v1h .area, .v1h .cta, .v1h .body .v1-wrap{grid-template-columns:1fr}
.v1h .v1-hero{padding-top:40px}
.v1h .v1-crane{order:-1;max-width:420px}
.v1h .v1-hero-strip{position:static;flex-wrap:wrap}
.v1h .v1-hero{flex-direction:column;padding-bottom:0}
.v1h .v1-seq-stage{position:sticky;top:78px;height:auto;padding:16px 0;background:var(--ch2);z-index:2}
.v1h .v1-seq-stage svg{max-height:38vh}
.v1h .v1-steps{padding:5vh 0 10vh}
.v1h .v1-step{min-height:50vh}
.v1h .panel{min-height:62vh;border-right:0;border-bottom:2px solid var(--ch)}
.v1h .gal{grid-template-columns:repeat(6,1fr)}
.v1h .tile, .v1h .tile.w8{grid-column:span 6}
.v1h .plates{grid-template-columns:1fr 1fr}
.v1h .plist a{grid-template-columns:1fr auto}
.v1h .plist a span{display:none}
.v1h .aside{position:static}
.v1h .foot .grid{grid-template-columns:1fr 1fr}
.v1h .callbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--y);color:var(--ch);text-align:center;padding:16px;font-weight:900;font-stretch:80%;text-transform:uppercase;letter-spacing:.14em;text-decoration:none}}
@media (max-width:600px){.v1h .cities{grid-template-columns:1fr}
.v1h .cities li a{border-right:0!important;padding-left:6px!important}
.v1h .form{grid-template-columns:1fr}
.v1h .facts{grid-template-columns:1fr}
.v1h .v1-hero-strip span{flex:1 1 50%;border-bottom:2px solid var(--ch3)}
.v1h .foot .grid{grid-template-columns:1fr}
.v1h .pgal>*{grid-column:span 6}}
@media (prefers-reduced-motion:reduce){.v1h *, .v1h *::before, .v1h *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
.v1h .v1-hero h1 span b{transform:none}
.v1h .v1-draw{stroke-dashoffset:0}
.v1h .v1-fade, .v1h .v1-jib{opacity:1}
.v1h .v1-rise{transform:none}
.v1h .rv{opacity:1;transform:none}
.v1h .v1-big .v1-w{color:var(--tx)}}
.v1h .nav a.v1-btn{color:var(--ch);border:3px solid var(--y);padding:13px 18px;margin-left:10px}
.v1h .nav a.v1-btn:hover{color:var(--ch)}
.v1h .vid>.ph{position:absolute;inset:0}
.v1h .v1-hero h1{font-size:clamp(60px,min(10vw,14vh),160px)}
@media (max-width:1020px){.v1h .v1-hero h1{font-size:clamp(58px,17vw,120px)}
.v1h .nav a.v1-btn{margin:20px 0 0;font-size:16px}}
.v1h .logos-strip{background:var(--ch);border-top:6px solid var(--y)}
.v1h .logos-strip .head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.v1h .logowall{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid #3a3f44;border-left:2px solid #3a3f44}
.v1h .logowall li{border-right:2px solid #3a3f44;border-bottom:2px solid #3a3f44;position:relative}
.v1h .logowall a{display:grid;place-items:center;height:170px;padding:30px 34px;position:relative;background:#22262a;transition:background .25s}
.v1h .logowall.lwbig a{height:230px}
.v1h .logowall a::before{content:"";position:absolute;left:0;top:0;width:0;height:6px;background:var(--y);transition:width .3s}
.v1h .logowall img{grid-area:1/1;max-width:100%;max-height:72px;width:auto;height:auto;object-fit:contain;transition:opacity .25s}
.v1h .logowall.lwbig img{max-height:96px}
.v1h .logowall img.c{opacity:0}
.v1h .logowall a:hover img.c, .v1h .logowall a:focus-visible img.c{opacity:1}
.v1h .logowall a:hover img.m, .v1h .logowall a:focus-visible img.m{opacity:0}
.v1h .logowall a:hover, .v1h .logowall a:focus-visible{background:#2b3035}
.v1h .logowall a:hover::before, .v1h .logowall a:focus-visible::before{width:100%}
.v1h .logowall a:focus-visible{outline:3px solid var(--y);outline-offset:-3px}
.v1h .logowall .nm{position:absolute;left:14px;bottom:10px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--st)}
@media (max-width:1020px){.v1h .logowall{grid-template-columns:repeat(2,1fr)}
.v1h .logowall a{height:140px;padding:24px}
.v1h .logowall img{max-height:56px}
.v1h .logowall.lwbig a{height:170px}
.v1h .logowall.lwbig img{max-height:70px}}
@media (prefers-reduced-motion:reduce){.v1h .logowall a, .v1h .logowall img, .v1h .logowall a::before{transition:none}}
.v1h .logos-strip .head h2{font-size:clamp(40px,5vw,72px);max-width:none}
@media (max-width:600px){.v1h .logowall .nm{display:none}}
.v1h .cities{display:block!important;border-top:2px solid var(--ch3);border-left:0}
.v1h .cities li{margin:0}
.v1h .cities li a, .v1h .cities li:nth-child(odd) a, .v1h .cities li:nth-child(even) a{display:grid!important;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:18px;height:64px;padding:0 18px!important;border:0!important;border-bottom:2px solid var(--ch3)!important;line-height:1;font-size:clamp(20px,1.9vw,26px);font-stretch:72%;white-space:nowrap}
.v1h .cities .cn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v1h .cities a small{white-space:nowrap;font-size:11px;letter-spacing:.14em;color:var(--st);font-stretch:100%}
.v1h .cities .v1-ar{color:var(--y);font-size:18px;text-align:right;transition:transform .2s}
.v1h .cities a:hover, .v1h .cities a:focus-visible{background:var(--y);color:var(--ch)!important}
.v1h .cities a:hover small, .v1h .cities a:focus-visible small, .v1h .cities a:hover .v1-ar, .v1h .cities a:focus-visible .v1-ar{color:var(--ch)}
.v1h .cities a:hover .v1-ar{transform:translateX(4px)}
.v1h .cities li.all a{background:var(--ch2);color:var(--y)}
.v1h .cities li.all a:hover{background:var(--y)}
@media (max-width:600px){.v1h .cities li a, .v1h .cities li:nth-child(odd) a, .v1h .cities li:nth-child(even) a{height:58px;padding:0 12px!important;gap:12px;font-size:21px}}
@media (prefers-reduced-motion:reduce){.v1h .cities .v1-ar{transition:none}}
@media (max-width:600px){.v1h .cities .cty{display:none}
.v1h .cities li a, .v1h .cities li:nth-child(odd) a, .v1h .cities li:nth-child(even) a{font-size:19px;gap:10px}}
/* v3 header is absolute; v1 header was an 80px sticky bar in flow. Spacer keeps scroll positions identical to v1. */
.v1h{padding-top:80px}
/* hero strip: centred, equal cells, even dividers */
.v1h .v1-hero-strip{justify-content:center}
.v1h .v1-hero-strip span{flex:1 1 0;min-width:0;box-sizing:border-box;padding:16px 12px;text-align:center;border-right:2px solid var(--ch3)}
.v1h .v1-hero-strip span:last-child{border-right:2px solid transparent}
@media (max-width:1020px){.v1h .v1-hero-strip span{flex:0 0 50%;border-bottom:2px solid var(--ch3)}
.v1h .v1-hero-strip span:nth-child(2n){border-right:2px solid transparent}
.v1h .v1-hero-strip span:nth-last-child(-n+2){border-bottom:0}}
/* v3.6.5 customer logos: muted by default, brand color on hover/focus; color by default on touch */
ul.custs>li{position:relative;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
ul.custs>li>a{display:grid!important;justify-items:start;outline:none}
ul.custs>li>a img{grid-area:1/1;transition:opacity .3s ease,filter .3s ease}
ul.custs img.m{opacity:.62;filter:grayscale(1)}ul.custs img.c{opacity:0}
ul.custs>li:hover,ul.custs>li:focus-within{transform:translateY(-3px);border-color:#3a3e42;box-shadow:0 10px 24px rgba(0,0,0,.28)}
ul.custs>li:hover img.m,ul.custs>li>a:focus-visible img.m{opacity:0}
ul.custs>li:hover img.c,ul.custs>li>a:focus-visible img.c{opacity:1}
ul.custs>li:has(a:focus-visible){outline:1px solid var(--y);outline-offset:2px}
.logos li{transition:transform .3s ease}.logos li:hover,.logos li:focus-within{transform:translateY(-3px)}
.logos img{transition:opacity .3s ease}
@media (hover:none){ul.custs img.m,.logos img.m{opacity:0}ul.custs img.c,.logos img.c{opacity:1}ul.custs>li:hover,.logos li:hover{transform:none;box-shadow:none}}
@media (prefers-reduced-motion:reduce){ul.custs>li,ul.custs img,.logos li,.logos img{transition:none!important}ul.custs>li:hover,ul.custs>li:focus-within,.logos li:hover,.logos li:focus-within{transform:none!important}}
/* v3.6.6 whole customer card is one link */
ul.custs>li{padding:0!important}
ul.custs>li>a.cc{display:flex!important;flex-direction:column;justify-content:space-between;gap:14px;padding:18px;height:100%;color:inherit;text-decoration:none;cursor:pointer;outline:none}
ul.custs .lg{display:grid;justify-items:start}ul.custs .lg img{grid-area:1/1;transition:opacity .3s ease,filter .3s ease}
ul.custs>li:hover img.m,ul.custs>li:focus-within img.m{opacity:0}ul.custs>li:hover img.c,ul.custs>li:focus-within img.c{opacity:1}
ul.custs>li:has(a:focus-visible){outline:1px solid var(--y);outline-offset:2px}
.logos a{cursor:pointer}
@media (hover:none){ul.custs img.m{opacity:0}ul.custs img.c{opacity:1}}
