/* Estimator composition, Vortex website colour. Presentation-only variant. */
:root{
 --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
 --mono:ui-monospace,"SF Mono",Menlo,monospace;
 --bg:#f5f5f7;--bg-2:#ededf0;--bg-3:#e2e4e8;--surface:#fff;
 --fg:#202124;--fg-2:#595e66;--fg-3:#656b74;--line:#dcdfe4;--line-2:#e8eaee;
 --accent:#0663c7;--accent-soft:#eaf3ff;--pill:#086bd8;--pill-fg:#fff;
 --card-shadow:0 2px 4px #18233803,0 16px 40px -26px #18233828;
 --glass:rgba(250,250,252,.9);--wide:1320px;
}
:root[data-theme="dark"]{
 --bg:#151618;--bg-2:#24262a;--bg-3:#33363c;--surface:#202226;
 --fg:#f3f4f6;--fg-2:#b9bec7;--fg-3:#a2aab7;--line:#3d424a;--line-2:#30353c;
 --accent:#7bb9ff;--accent-soft:#20354e;--pill:#086bd8;--pill-fg:#fff;
 --glass:rgba(30,32,36,.92);--card-shadow:0 12px 36px -24px #0009;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --bg:#151618;--bg-2:#24262a;--bg-3:#33363c;--surface:#202226;
 --fg:#f3f4f6;--fg-2:#b9bec7;--fg-3:#a2aab7;--line:#3d424a;--line-2:#30353c;
 --accent:#7bb9ff;--accent-soft:#20354e;--pill:#086bd8;--pill-fg:#fff;
 --glass:rgba(30,32,36,.92);--card-shadow:0 12px 36px -24px #0009;
}}
body{font-family:var(--font);background:var(--bg);letter-spacing:-.012em}
button,input,textarea,select{font-family:inherit}
h1,h2,h3{font-weight:650;letter-spacing:-.038em;line-height:1.12}
p{line-height:1.65}
.nav{top:12px;width:calc(100% - 40px);max-width:1416px;margin:12px auto 0;border:1px solid var(--line-2);border-radius:25px;background:var(--glass);box-shadow:var(--card-shadow);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}
.nav-in{min-height:76px;padding:12px 20px;max-width:none}
.tabs{padding:4px;border:0;border-radius:15px;background:var(--bg-2)}
.tab{font-size:14px;border-radius:12px;min-height:40px;padding:10px 15px}
.tab-ind{border-radius:11px;background:var(--surface);box-shadow:0 1px 5px #00000012;border:1px solid var(--line-2)}
.lang{padding:4px;border-radius:12px;background:var(--bg-2);gap:2px}
.lang button{min-width:32px;min-height:30px;border-radius:8px}
.lang button[aria-pressed="true"]{background:var(--surface);box-shadow:0 1px 3px #00000010}
.pill{min-height:46px;padding:12px 23px;font-size:15px;font-weight:550;box-shadow:0 4px 12px #086bd818}
.pill:hover{opacity:1;filter:brightness(.95);box-shadow:0 6px 18px #086bd822}
.pill:active{transform:scale(.98)}
.nav-cta{min-height:42px;padding:10px 18px;font-size:14px;white-space:nowrap}
.prelaunch-note{border:0;background:transparent;font-size:13px;padding:10px 20px 0;color:var(--fg-2)}
.home-hero{margin-top:24px;gap:18px;padding-block:0;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.home-hero-copy{padding:clamp(28px,3.7vw,52px);border-radius:30px;border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--card-shadow);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.home-hero-copy h1{font-size:clamp(38px,4.1vw,59px);line-height:1.09;max-width:12ch}
.home-hero-copy .sub{font-size:clamp(17px,1.6vw,20px);font-weight:450;max-width:38ch;margin-top:23px}
.home-hero-copy .eyebrow{font-size:12px;letter-spacing:.055em;line-height:1.7;color:var(--accent)}
.home-hero-copy .cta{gap:16px 22px;margin-top:27px;justify-content:flex-start}
.home-hero-copy .rm .lede{font-size:17px;line-height:1.6}
.hero-collage{min-height:520px;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1.6fr) minmax(0,1fr);gap:14px;aspect-ratio:auto}
.hero-tile,.hero-tile:first-child,.hero-tile:nth-child(2),.hero-tile:nth-child(3){border-radius:26px;border:0;box-shadow:var(--card-shadow)}
.hero-tile:first-child{grid-column:1/-1;grid-row:1}
.hero-tile:nth-child(2){grid-column:1;grid-row:2}
.hero-tile:nth-child(3){grid-column:2;grid-row:2}
.hero-tile:first-child img{object-position:50% 52%}
.trust{margin-top:18px;padding:18px 24px;border:1px solid var(--line-2);border-radius:21px;background:var(--surface);gap:14px 24px;box-shadow:var(--card-shadow)}
.trust span{font-size:13px}.trust b{font-weight:500}
.trust a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.sec{padding-block:clamp(48px,6vw,80px)}
.sec-tint{background:var(--surface)}
h2.big{font-size:clamp(30px,4vw,48px);letter-spacing:-.04em}
.lede{font-size:clamp(18px,1.9vw,22px);line-height:1.55}
.eyebrow{font-size:12px;letter-spacing:.09em}
.card,.sec-tint .card{background:var(--surface);border:1px solid var(--line-2);border-radius:24px;padding:28px;box-shadow:var(--card-shadow)}
.sec-tint .card{background:var(--bg)}
.card h3{font-size:21px;line-height:1.2}.card p{font-size:16px;line-height:1.65}
.card.link:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 16px 34px -22px #12335538}
.shot,.document-example,.spec{border-radius:24px;border-color:var(--line-2)}
.immersive-hero{width:min(1256px,calc(100% - 64px));min-height:clamp(460px,62svh,650px);margin-top:26px;border-radius:30px;box-shadow:var(--card-shadow)}
.immersive-copy{padding:clamp(54px,6vw,90px) clamp(26px,4.5vw,64px)}
.phead.immersive-copy h1{font-size:clamp(40px,5vw,68px);line-height:1.09;letter-spacing:-.04em}
.phead.immersive-copy .sub{font-size:clamp(18px,1.9vw,22px);line-height:1.55}
.phead:not(.immersive-copy):not(.home-hero) h1{font-size:clamp(34px,4.5vw,58px);line-height:1.12}
.scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:var(--wide)}
.scope>*{min-width:0}
.scope-row.has-photo{grid-template-columns:96px minmax(0,1fr) 18px;gap:18px;border:1px solid var(--line-2);border-radius:24px;background:var(--surface);padding:22px;align-items:start;box-shadow:var(--card-shadow);transition:transform .2s,border-color .2s,box-shadow .2s}
.scope-row.has-photo:last-of-type{border-bottom:1px solid var(--line-2)}
.scope-row.has-photo:hover{padding-left:22px;border-color:var(--accent);transform:translateY(-2px);box-shadow:0 12px 26px -22px #12335550}
.scope-row .scope-thumb{width:96px;height:108px;border-radius:16px;filter:none}
.scope-row h3{font-size:20px;font-weight:600;line-height:1.22;letter-spacing:-.025em}
.scope-row p{font-size:15px;line-height:1.55;color:var(--fg-2);margin-top:9px}
.scope-row .sr-chev{margin-top:4px;color:var(--accent)}
.scope .scope-more{grid-column:1/-1}
.faq details{border:1px solid var(--line-2);border-radius:20px;background:var(--surface);padding:0 24px;margin:12px 0;box-shadow:var(--card-shadow)}
.faq details:last-of-type{border-bottom:1px solid var(--line-2)}
.faq details[open]{border-color:color-mix(in srgb,var(--accent) 30%,var(--line));background:var(--surface)}
.faq summary{font-weight:550;padding:21px 0}.faq-a{max-width:none;padding-bottom:24px}
.technical-detail{border:1px solid var(--line-2);border-radius:20px;background:var(--surface);padding:0 24px;margin:12px 0}
.technical-detail>summary{font-size:17px;font-weight:550}.technical-content{max-width:none}
.dive-body .dr.why{border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:22px;background:var(--accent-soft);padding:26px}
.professional-evidence .method{border:0}.method .mrow{background:var(--surface);border:1px solid var(--line-2);border-radius:22px;padding:25px;margin:12px 0}
.method .mrow .mn{color:var(--accent);font-size:14px;font-family:var(--font)}
.method .mrow p{font-size:16px}.method .mrow h3{font-size:18px}
.form-card{background:var(--surface);border:1px solid var(--line-2);border-radius:28px;box-shadow:var(--card-shadow);padding:clamp(24px,4vw,48px)}
.fld input,.fld select,.fld textarea{border:1px solid var(--line-2);background:var(--bg);border-radius:14px;min-height:50px;padding:13px 15px;font-size:16px;transition:border-color .2s,box-shadow .2s}
.fld input:focus,.fld select:focus,.fld textarea:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.direct{gap:14px;padding-top:24px;border:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.direct>div{border:1px solid var(--line-2);border-radius:20px;background:var(--surface);padding:24px;text-align:left}
.direct dt{font-size:14px;margin-bottom:10px}.direct dd{font-size:17px;line-height:1.45}
.direct>div:last-child{grid-column:auto}
.area{border-radius:999px;background:var(--surface);border-color:var(--line);font-size:14px}
.rail{border-radius:22px;background:var(--glass);box-shadow:var(--card-shadow)}
.rail-item{border-radius:13px}.rail-item[aria-selected="true"]{background:var(--accent-soft)}
footer{background:var(--surface);border-color:var(--line-2);margin-top:28px}
.license-link{white-space:nowrap;color:var(--accent);text-decoration:underline;text-underline-offset:4px}
@media(min-width:761px) and (max-width:1280px){.nav-in{row-gap:12px}.nav-in>.tabnav{padding-bottom:2px}}
@media(max-width:1000px){.scope{grid-template-columns:1fr}.home-hero{grid-template-columns:1fr 1fr;gap:14px}.home-hero-copy{padding:30px}.home-hero-copy h1{font-size:42px}.hero-collage{min-height:510px}.home-hero-copy .sub,.home-hero-copy .rm{margin-inline:0!important}}
@media(max-width:760px){
 .nav{width:calc(100% - 24px);top:8px;margin-top:8px;border-radius:22px}.nav-in{padding:12px 15px}
 .nav-in>.tabnav{border-radius:0 0 22px 22px;background:var(--surface)}
 .home-hero{grid-template-columns:1fr;margin-top:16px;text-align:left;gap:14px}
 .home-hero-copy{padding:30px;border-radius:26px}.home-hero-copy h1{font-size:clamp(37px,7.7vw,51px);max-width:15ch}
 .home-hero-copy .cta{justify-content:flex-start}.home-hero-copy .sub{font-size:18px}
 .hero-collage{min-height:0;height:390px;grid-template-rows:minmax(0,1.55fr) minmax(0,1fr);gap:12px}
 .hero-tile,.hero-tile:first-child,.hero-tile:nth-child(2),.hero-tile:nth-child(3){border-radius:22px}
 .trust{justify-content:flex-start;padding:20px;gap:12px 20px}.trust span{font-size:13px}
 .immersive-hero{width:calc(100% - 40px);min-height:500px;border-radius:26px}.immersive-copy{padding:54px 26px}
 .scope-row.has-photo{padding:20px;gap:16px;grid-template-columns:82px minmax(0,1fr) 16px}.scope-row.has-photo:hover{padding-left:20px}
 .scope-row .scope-thumb{width:82px;height:92px;border-radius:13px}.scope-row h3{font-size:19px}.scope-row p{font-size:15px}
 .card{padding:24px}.faq details,.technical-detail{padding-inline:20px;border-radius:18px}
 .direct{grid-template-columns:1fr 1fr}.direct>div,.direct>div:nth-child(3){grid-column:auto;padding:20px}.direct>div:nth-child(3){grid-column:1/-1}.direct>div:last-child{grid-column:auto}
 .phead:not(.immersive-copy):not(.home-hero) h1{font-size:clamp(32px,7vw,48px)}
}
@media(max-width:400px){.home-hero-copy{padding:25px}.home-hero-copy h1{font-size:37px}.scope-row.has-photo{grid-template-columns:64px minmax(0,1fr) 14px;padding:18px;gap:12px}.scope-row.has-photo:hover{padding-left:18px}.scope-row .scope-thumb{width:64px;height:80px}.scope-row h3{font-size:18px}.direct{grid-template-columns:1fr}.direct>div:nth-child(3){grid-column:auto}.hero-collage{height:340px}}
@media(prefers-reduced-transparency:reduce){.nav,.rail{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){.scope-row.has-photo:hover,.card.link:hover{transform:none}.scope-row.has-photo{transition:none}}

/* Optical polish: same composition, palette and content, with a shared rhythm. */
:root{--vx-radius:24px;--vx-ease:cubic-bezier(.22,.68,0,1.01)}
.sec{padding-block:clamp(48px,5.8vw,76px)}
h2,h3,.brief-lede,.lede{text-wrap:balance}
p,.sr-t{text-wrap:pretty}
h2.big{line-height:1.16;letter-spacing:-.035em}
.eyebrow{line-height:1.6}
.home-hero{gap:20px}
.home-hero-copy{padding:clamp(30px,3.6vw,50px)}
.home-hero-copy h1{line-height:1.12;letter-spacing:-.042em}
.home-hero-copy .sub{line-height:1.6;margin-top:22px}
.home-hero-copy .cta{gap:12px 24px;margin-top:26px;align-items:center}
.hero-collage{gap:14px;min-height:500px}
.hero-tile img{transition:transform .65s var(--vx-ease),filter .35s ease}
.hero-tile:nth-child(2) img{object-position:50% 44%}
.hero-tile:nth-child(3) img{object-position:50% 55%}
.card,.scope-row.has-photo,.form-card,.faq details,.technical-detail{box-shadow:var(--card-shadow)}
.card.link{display:flex;flex-direction:column;transition:transform .22s var(--vx-ease),border-color .22s ease,box-shadow .22s ease}
.card.link .arrow{margin-top:auto;padding-top:18px}
.scope-row.has-photo{align-items:center;border-radius:var(--vx-radius);transition:transform .22s var(--vx-ease),border-color .22s ease,box-shadow .22s ease}
.scope-row .scope-thumb{height:104px;border-radius:14px}
.scope-row .sr-chev{margin-top:0}
.scope-row h3{line-height:1.28}
.scope-row p{line-height:1.6;margin-top:8px}
.pill,.arrow,.project-kind button,.mobile-actions a,.mobile-actions button{transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s var(--vx-ease)}
.arrow{min-height:44px;align-items:center}
.pill:focus-visible,.arrow:focus-visible,.scope-row:focus-visible,.card.link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.pill:disabled{cursor:wait;filter:none;transform:none;box-shadow:none}
.faq summary,.technical-detail>summary{gap:20px;padding-block:20px;line-height:1.5}
.faq-a,.technical-content{line-height:1.7}
.faq-a p,.technical-content p{max-width:72ch}
.faq details,.technical-detail{transition:border-color .2s ease,box-shadow .2s ease}
.immersive-hero{margin-top:24px}
.phead.immersive-copy h1{line-height:1.12}
.phead.immersive-copy .sub{max-width:44ch;line-height:1.6}
[data-sub]:not([data-sub="index"]) .shot.wide{border-radius:var(--vx-radius)}
.shot .photo-caption{line-height:1.55;padding-inline:24px}
.shot.photo-product:hover img{transform:none}
.shot.photo-product:has(img[src*="34-eaton"]):hover>img.photo{transform:translateX(-50%)}
.fgrid{gap:20px 24px}
.fld label{display:block;margin-bottom:9px;line-height:1.45}
.form-foot{gap:18px}
.form-actions{align-items:center;gap:12px 22px}
.direct dd{overflow-wrap:anywhere}
.direct dt{line-height:1.5}
.nav{box-shadow:0 2px 8px #18233804,0 12px 30px -22px #18233830}
.brand.nav-brand b{line-height:1.25}
.brand.nav-brand .mark{shape-rendering:geometricPrecision}
.nav .lang button{min-height:34px;min-width:34px}
footer .brand{align-items:center}
.foot-nav a{text-underline-offset:5px}
@media(hover:hover) and (pointer:fine){
 .card.link:hover,.scope-row.has-photo:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 12px 28px -20px #12335540}
 .faq details:hover,.technical-detail:hover{border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}
}
@media(prefers-reduced-motion:no-preference){
 .js .rv{transform:translateY(12px);transition:opacity .5s var(--vx-ease),transform .55s var(--vx-ease)}
 .js .rv.in{transform:none}
 .js .rv-scale{transform:scale(.98);transition:opacity .5s ease,transform .65s var(--vx-ease)}
 .js .rv-scale.in{transform:none}
 .js h1.split .lr>span{transition-duration:.65s,.45s;transition-delay:calc(var(--i,0)*45ms)}
 .js .rv[data-stagger]>*{transform:translateY(10px);transition-duration:.45s;transition-delay:min(calc(var(--i,0)*45ms),180ms)}
 .js .rv[data-stagger].in>*{transform:none}
}
@media(max-width:1000px){.home-hero-copy h1{font-size:clamp(34px,4.4vw,44px)}.hero-collage{min-height:480px}}
@media(max-width:760px){
 .nav-in{padding:10px 14px;gap:7px 10px}
 .nav .menu-toggle,.nav .call{width:40px;height:40px;min-width:40px}
 .home-hero{gap:16px;margin-top:18px}
 .home-hero-copy{padding:28px;border-radius:26px}
 .home-hero-copy h1{font-size:clamp(35px,7.7vw,49px);line-height:1.13;max-width:16ch}
 .home-hero-copy .sub{margin-top:20px;font-size:18px;line-height:1.55}
 .home-hero-copy .cta{margin-top:22px;gap:8px 20px}
 .hero-collage{min-height:0;height:clamp(340px,86vw,430px);gap:12px}
 .trust{gap:12px 18px;line-height:1.5}
 .scope{gap:14px}
 .scope-row.has-photo{gap:16px;padding:20px;grid-template-columns:82px minmax(0,1fr) 16px}
 .scope-row.has-photo:hover{padding-left:20px}
 .scope-row .scope-thumb{width:82px;height:96px}
 .immersive-hero{margin-top:22px;min-height:470px}
 .immersive-copy{padding:46px 26px}
 .phead.immersive-copy h1{font-size:clamp(35px,8.6vw,52px);line-height:1.14}
 .phead.immersive-copy .sub{font-size:18px;line-height:1.55}
 .form-card{padding:24px}
 .direct>div{padding:20px}
 .mobile-actions{gap:7px}
 .mobile-actions a,.mobile-actions button{line-height:1.25;text-align:center;padding:9px 8px}
 .shot.photo-product:has(img[src*="34-eaton"]):hover>img.photo{transform:none}
}
@media(max-width:440px){
 .nav-in{padding:9px 14px;row-gap:4px}
 .brand.nav-brand .mark{width:40px}
 .brand.nav-brand b{font-size:18px}
 .home-hero-copy{padding:26px}
 .home-hero-copy h1{font-size:clamp(32px,9vw,38px)}
 .scope-row.has-photo{grid-template-columns:68px minmax(0,1fr) 14px;gap:12px;padding:18px}
 .scope-row.has-photo:hover{padding-left:18px}
 .scope-row .scope-thumb{width:68px;height:86px}
 .scope-row h3{font-size:18px}
 .form-card{padding:22px}
 .project-kind button{padding-inline:6px;font-size:13px}
 .form-actions{gap:10px;flex-wrap:wrap}
 .direct>div{padding:18px 20px}
}
@media(prefers-reduced-motion:reduce){
 .hero-tile img,.immersive-media img{transform:none!important}
 .card.link:hover,.scope-row.has-photo:hover{transform:none}
}
