
:root{
  --blue:#4176cd;--green:#66ad8b;--ink:#201b1c;
  --blue7:#2a58a2;--blue3:#769cdb;--green7:#3e745a;--green3:#81bb9f;
  --fd:"Exo 2",Arial,sans-serif;--fb:"Inter",Arial,sans-serif;
  --r:6px;--wrap:1280px;--ease:cubic-bezier(.2,.75,.25,1);
  --bg:#ffffff;--bg2:#f6f5f5;--bg3:#efedec;--fg:#201b1c;--fg2:#5c5657;--line:#e3e0e0;
  --primary:#2a58a2;--primary-hover:#1f4583;--on-primary:#ffffff;--link:#2a58a2;--accent:#3e745a;
  --band:#201b1c;--card:#ffffff;--tag-bg:#ebf0fa;--tag-fg:#2a58a2;--cta:#171314;
}
[data-theme="dark"]{
  --bg:#171314;--bg2:#201b1c;--bg3:#2b2526;--fg:#f5f3f3;--fg2:#bdb7b8;--line:#3a3435;
  --primary:#769cdb;--primary-hover:#93b2e4;--on-primary:#201b1c;--link:#93b2e4;--accent:#81bb9f;
  --band:#0b1220;--card:#201b1c;--tag-bg:#26314a;--tag-fg:#c4d5f2;--cta:#0e0b0c;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--fb);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px}
.on-dark :focus-visible,.hero :focus-visible,.band :focus-visible,.cta :focus-visible{outline-color:#ffffff}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--primary);color:var(--on-primary);padding:10px 16px;border-radius:var(--r);font-weight:600;text-decoration:none}
.skip:focus{top:12px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nw{white-space:nowrap}

.d{font-family:var(--fd);font-weight:700;letter-spacing:-0.012em;line-height:1.05;margin:0;text-wrap:balance}
.h2{font-size:clamp(32px,3.9vw,54px)}
.h3{font-size:clamp(22px,2vw,28px);line-height:1.15}
.eyebrow{font-family:var(--fd);font-weight:600;font-size:14px;letter-spacing:.01em;line-height:1.3;color:var(--fg2);margin:0 0 16px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";flex:0 0 22px;height:3px;background:linear-gradient(90deg,var(--blue) 0 50%,var(--green) 50% 100%);border-radius:2px}
.lead{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--fg2);margin:0;max-width:640px;text-wrap:pretty}
.num{font-variant-numeric:tabular-nums lining-nums}
.muted{color:var(--fg2)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:var(--r);font:600 16px/1 var(--fb);text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.btn svg{width:18px;height:18px}
.btn-p{background:var(--green);color:#201b1c}.btn-p:hover{background:var(--green3)}
.btn-g{background:var(--green);color:#201b1c}.btn-g:hover{background:var(--green3)}
.btn-o{border-color:currentColor;color:var(--fg);background:transparent}.btn-o:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.on-dark .btn-o{color:#ffffff}.on-dark .btn-o:hover{background:#ffffff;color:#201b1c;border-color:#ffffff}
.lnk{color:var(--link);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.lnk svg{width:16px;height:16px;transition:transform .2s var(--ease)}
.lnk:hover{text-decoration:underline;text-underline-offset:4px}.lnk:hover svg{transform:translateX(3px)}
.on-dark .lnk{color:#a8c1ea}

.tipw{position:relative;display:inline}
.tip{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;border-bottom:1.5px dotted currentColor;cursor:help;line-height:inherit}
.tt{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);width:max-content;max-width:min(280px,80vw);padding:10px 12px;border-radius:var(--r);background:#201b1c;color:#f5f3f3;font:500 13.5px/1.45 var(--fb);white-space:normal;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:30;text-align:left;display:none}
[data-theme="dark"] .tt{background:#f5f3f3;color:#201b1c}
.tipw:hover .tt,.tip:focus-visible+.tt,.tipw.show .tt{display:block}
.tipw.hide .tt{display:none!important}
.tt.l{left:0;transform:none}.tt.r{left:auto;right:0;transform:none}

/* audience routes, after SMA's "find the right solution" */
.routes{background:var(--bg2);border-bottom:1px solid var(--line)}
.routes>.wrap{padding-top:clamp(40px,4.5vw,56px);padding-bottom:clamp(40px,4.5vw,56px)}
.routes .rh{margin:0 0 22px}
.routes h2.rh{font:700 clamp(22px,2vw,28px)/1.15 var(--fd)}
.routes .rh p{margin:0;color:var(--fg2);font-size:15.5px}
.rgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
.route{display:flex;flex-direction:column;height:100%;padding:22px 22px 20px;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:var(--r);text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}
.route .who{font:600 13px/1.2 var(--fd);color:var(--link);margin:0 0 10px}
.route h3{font:700 21px/1.2 var(--fd);margin:0 0 8px}
.route p{margin:0 0 18px;color:var(--fg2);font-size:15px;line-height:1.5}
.route .go{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font:600 14.5px var(--fb);color:var(--link)}
.route .go svg{width:18px;height:18px;transition:transform .2s var(--ease)}
.route:hover{border-color:var(--blue);box-shadow:0 14px 32px rgba(32,27,28,.10);transform:translateY(-2px)}
.route:hover .go svg{transform:translateX(4px)}
.route:hover h3{color:var(--link)}

/* FAQ */
.faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:clamp(28px,5vw,72px);align-items:start}
.qa{border-top:1px solid var(--line)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font:700 19px/1.3 var(--fd)}
.qa summary::-webkit-details-marker{display:none}
.qa summary svg{flex:0 0 20px;width:20px;height:20px;color:var(--link);transition:transform .2s}
.qa details[open] summary svg{transform:rotate(45deg)}
.qa summary:hover{color:var(--link)}
.qa .a{padding:0 0 22px;color:var(--fg2);max-width:62ch}
.qa .a p{margin:0}

/* heritage mark */
.since{display:inline-flex;align-items:center;gap:10px;font:600 13.5px/1.2 var(--fd);color:var(--fg2);border:1px solid var(--line);border-radius:999px;padding:8px 14px;margin:0 0 18px}
.since b{font:800 16px/1 var(--fd);color:var(--fg)}

/* product stage in the division explorer: real product photos on one light backdrop */
.explorer .dpanel .ph{background:#eceae8}
.explorer .dpanel .ph::after{display:none}
.explorer .dpanel .proof{top:22px;left:26px;bottom:auto;right:auto;color:#201b1c;flex-direction:column;align-items:flex-start;gap:4px}
.explorer .dpanel .proof span{color:#5c5657;max-width:220px}
.lehph{margin:44px 0 0;border-radius:var(--r);overflow:hidden;background:#eceae8}
.lehph img{width:100%;height:auto;aspect-ratio:1600/720;object-fit:cover}
.leh-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:36px}
.sectors{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.sectors li{padding:24px 22px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.sectors h3{font:700 18px/1.25 var(--fd);margin:0 0 6px}
.sectors p{margin:0;color:var(--fg2);font-size:15px;line-height:1.5}
.homes-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:24px}
.fbrand .tagline{margin-top:22px}
.homes .ph{min-height:0!important;width:100%;aspect-ratio:16/10;align-self:center}
.homes .ph img{object-position:center}

/* case study carousel */
.cs-head{display:flex;justify-content:space-between;align-items:end;gap:24px 48px;flex-wrap:wrap;margin-bottom:36px}
.cs-ctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cs-tabs{display:flex;gap:6px;flex-wrap:wrap}
.cs-tabs button{font:600 14.5px/1 var(--fb);color:#d6d1d1;background:transparent;border:1px solid #4a4344;border-radius:999px;padding:11px 16px;cursor:pointer;min-height:42px}
.cs-tabs button:hover{color:#fff;border-color:#8a8485}
.cs-tabs button[aria-selected="true"]{background:#ffffff;color:#201b1c;border-color:#ffffff}
.cs-play{width:42px;height:42px;border-radius:999px;border:1px solid #4a4344;background:transparent;color:#fff;display:inline-grid;place-items:center;cursor:pointer}
.cs-play svg{width:16px;height:16px}.cs-play .i-play{display:none}.cs-play.paused .i-play{display:block}.cs-play.paused .i-pause{display:none}
.cs{display:grid;position:relative}
.cs-slide{grid-area:1/1;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,56px);align-items:center;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s .6s}
.cs-slide[hidden]{display:grid}
.cs-slide.on{opacity:1;visibility:visible;transition:opacity .6s ease}
.cs-meta{font:600 14px/1.3 var(--fd);color:#a8c1ea;margin:0 0 12px}
.cs-text h3{font-size:clamp(26px,2.6vw,36px);line-height:1.1;margin:0 0 14px}
.cs-text>p{color:#d6d1d1;margin:0;max-width:46ch}
.cs-kv{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#3a3435;border:1px solid #3a3435;border-radius:var(--r);overflow:hidden;margin:26px 0 24px}
.cs-kv>div{background:var(--band);padding:14px 16px}
.cs-kv dt{font:600 12.5px/1.2 var(--fd);color:#b3adae}
.cs-kv dd{margin:6px 0 0;font:700 17px/1.25 var(--fd)}
.cs-img{margin:0;border-radius:var(--r);overflow:hidden;background:#eceae8;aspect-ratio:16/9}
.cs-img img{width:100%;height:100%;object-fit:cover}
.cs-img.fit img{object-fit:contain}
.cs-bar{grid-area:2/1;height:2px;background:#3a3435;margin-top:28px;border-radius:2px;overflow:hidden}
.cs-bar i{display:block;height:100%;width:0;background:var(--green)}

/* phone action bar */
.mbar{display:none}

/* header: one slim dark bar, after the McKinsey pattern */
.hdr{position:sticky;top:0;z-index:40;background:#171314;color:#ffffff;border-bottom:1px solid #2f2a2b}
.hdr>.wrap{display:flex;align-items:center;gap:18px;min-height:64px}
.hdr .left{display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center}
.brand img{height:30px;width:auto}
.mainnav{display:flex;gap:2px;align-items:stretch;margin:0 0 0 18px;padding:0;list-style:none;align-self:stretch}
.mainnav>li{display:flex}
.ni{display:inline-flex;align-items:center;gap:5px;padding:0 12px;font:500 14.5px/1 var(--fb);color:#e9e5e5;text-decoration:none;background:none;border:0;cursor:pointer;min-height:44px;position:relative}
.ni::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;background:var(--blue);transform:scaleX(0);transition:transform .2s var(--ease)}
.ni:hover{color:#ffffff}.ni:hover::after,.ni[aria-expanded="true"]::after{transform:scaleX(1)}
.ni[aria-expanded="true"]{color:#a8c1ea}
.ni svg{width:13px;height:13px;transition:transform .2s}
.ni[aria-expanded="true"] svg{transform:rotate(180deg)}
.tools{display:flex;gap:6px;align-items:center;margin-left:auto}
.care{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;margin-right:10px;text-decoration:none;color:#cfcaca;font-size:12px}
.care b{color:#ffffff;font:600 14.5px/1.2 var(--fb);white-space:nowrap}
.care:hover b{text-decoration:underline;text-underline-offset:3px}
.ibtn{width:40px;height:40px;border-radius:var(--r);border:1px solid transparent;background:transparent;color:#ffffff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.ibtn:hover{background:#2b2526}
.ibtn svg{width:20px;height:20px}
.hdr .btn{min-height:40px;padding:0 16px;font-size:15px}
.i-moon{display:none}[data-theme="dark"] .i-moon{display:block}[data-theme="dark"] .i-sun{display:none}
.search{position:absolute;left:0;right:0;top:100%;background:var(--bg);color:var(--fg);border-bottom:1px solid var(--line);padding:16px 0}
.search[hidden]{display:none}
.search form{display:flex;gap:10px}
.search input{flex:1;min-width:0;min-height:48px;padding:0 16px;border-radius:var(--r);border:1px solid #8a8485;background:var(--bg);color:var(--fg);font:400 17px var(--fb)}

/* mega panels: white, heading link, plain columns, grey featured column */
.mega{position:absolute;left:0;right:0;top:100%;background:var(--bg);color:var(--fg);border-bottom:1px solid var(--line);box-shadow:0 30px 60px rgba(23,19,20,.18)}
.mega[hidden]{display:none}
.mega>.wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0;padding-right:0}
.mega .main{padding:32px 40px 40px 0}
.mega .feat{background:var(--bg2);padding:32px 32px 40px;border-left:1px solid var(--line)}
.mega .mt{display:inline-flex;align-items:center;gap:8px;font:700 22px/1.2 var(--fd);text-decoration:none;margin:0 0 22px}
.mega .mt svg{width:20px;height:20px;color:var(--blue);transition:transform .2s}
.mega .mt:hover svg{transform:translateX(3px)}
.mcols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.mcols.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.mcols.c2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px}
.mh{font:700 15px/1.3 var(--fd);margin:0 0 8px}
.mh a{text-decoration:none}.mh a:hover{color:var(--link)}
.mega ul{list-style:none;margin:0;padding:0}
.mega a.it{display:block;padding:5px 0;font-size:14.5px;line-height:1.4;text-decoration:none;color:var(--fg)}
.mega a.it:hover{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.feat .fk{font:600 13px/1 var(--fd);color:var(--fg2);margin:0 0 18px}
.feat a{display:block;text-decoration:none;margin-bottom:20px}
.feat a b{display:block;font:700 15.5px/1.3 var(--fd)}
.feat a span{display:block;font-size:13.5px;line-height:1.45;color:var(--fg2);margin-top:4px}
.feat a:hover b{color:var(--link)}

/* menu panel (left button): sections on the left, links on the right */
.scrim{position:fixed;inset:0;z-index:55;background:rgba(10,8,9,.55);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.scrim.open{opacity:1;visibility:visible;transition:opacity .25s}
.drawer{position:fixed;top:0;bottom:0;left:0;width:min(1080px,94vw);z-index:60;background:var(--bg);color:var(--fg);display:grid;grid-template-columns:300px minmax(0,1fr);transform:translateX(-100%);transition:transform .3s var(--ease),visibility 0s .3s;visibility:hidden;box-shadow:20px 0 60px rgba(0,0,0,.3)}
.drawer.open{transform:none;visibility:visible;transition:transform .3s var(--ease)}
.dnav{background:#171314;color:#ffffff;display:flex;flex-direction:column;overflow:auto}
.dnav .dh{display:flex;align-items:center;gap:10px;padding:12px 20px;min-height:64px}
.dnav .dh img{height:28px;width:auto}
.dsecs{list-style:none;margin:8px 0 0;padding:0}
.dsb{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 22px;background:none;border:0;color:#ffffff;font:700 17px/1.2 var(--fd);text-align:left;cursor:pointer;text-decoration:none;min-height:48px}
.dsb svg{width:16px;height:16px;transition:transform .2s}
.dsb:hover,.dsb[aria-expanded="true"]{background:#2b2526}
.dsb[aria-expanded="true"]{box-shadow:inset 3px 0 0 var(--green)}
.dutil{margin-top:auto;padding:20px 22px 28px;display:grid;gap:4px;border-top:1px solid #2f2a2b}
.dutil a{color:#d6d1d1;text-decoration:none;font-size:14.5px;padding:6px 0}
.dutil a:hover{color:#ffffff;text-decoration:underline}
.dpane{overflow:auto;padding:28px 40px 40px;position:relative}
.dpane .dclose{position:absolute;top:12px;right:16px;color:var(--fg);border:1px solid var(--line)}
.dpane .dclose:hover{background:var(--bg2)}
.dsp[hidden]{display:none}
.dsp .mt{display:inline-flex;align-items:center;gap:8px;font:700 24px/1.2 var(--fd);text-decoration:none;margin:4px 0 22px}
.dsp .mt svg{width:20px;height:20px;color:var(--blue)}
.dsp .cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 28px}
.dsp ul{list-style:none;margin:0;padding:0}
.dsp a.it{display:block;padding:6px 0;font-size:15px;text-decoration:none;color:var(--fg)}
.dsp a.it:hover{color:var(--link);text-decoration:underline}
.dsp .mh{margin-bottom:6px}

.logo-d{display:none}
[data-theme="dark"] .logo-l{display:none}[data-theme="dark"] .logo-d{display:block}
.dback{display:none}

.hero{position:relative;color:#ffffff;background:#201b1c;overflow:hidden;isolation:isolate}
.hero .bg{position:absolute;inset:0;z-index:-2}
.hero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 2.4s ease}
.hero .bg img.on{opacity:1}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(23,19,20,.9) 0%,rgba(23,19,20,.74) 42%,rgba(23,19,20,.34) 72%,rgba(23,19,20,.16) 100%),linear-gradient(0deg,rgba(23,19,20,.92) 0%,rgba(23,19,20,.35) 22%,rgba(23,19,20,0) 45%),linear-gradient(180deg,rgba(23,19,20,.5) 0%,rgba(23,19,20,0) 30%)}
.hero>.wrap{display:flex;flex-direction:column;min-height:calc(100vh - 69px);min-height:calc(100svh - 69px);padding-top:clamp(40px,7vh,88px);padding-bottom:28px}
.hero .hcopy{flex:0 0 auto;padding-bottom:clamp(40px,6vh,64px)}
.hero .eyebrow{color:#a9d3bd;margin-bottom:14px}
.hero h1{font-family:var(--fd);font-weight:800;font-size:clamp(42px,min(6vw,10vh),100px);line-height:1;letter-spacing:-0.02em;margin:0;max-width:15ch;min-height:2em}
.tw{background:linear-gradient(95deg,#a8c1ea 0%,#8fc6aa 75%);-webkit-background-clip:text;background-clip:text;color:transparent}
.caret{display:inline-block;width:.09em;height:.74em;background:var(--green);margin-left:.08em;border-radius:2px;vertical-align:-.04em;animation:blink 1.1s steps(1) infinite}
.caret.done{animation:none;opacity:0;transition:opacity .6s}
@keyframes blink{0%,55%{opacity:1}56%,100%{opacity:0}}
.hero .lead{color:#e2dddd;margin:22px 0 0;max-width:46ch;font-size:clamp(17px,min(1.5vw,2.3vh),22px)}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:auto 0 0;padding:24px 0 0;border-top:1px solid rgba(255,255,255,.2)}
.stats>div{display:flex;flex-direction:column;margin:0}
.stats dt{font-size:15px;color:#d6d1d1;margin-top:10px}
.stats dd{margin:0;font:700 clamp(32px,3.3vw,46px)/1 var(--fd);letter-spacing:-0.01em;white-space:nowrap;order:-1}
.stats dd small{font-size:.48em;font-weight:600;margin-left:4px}
.load{opacity:0;transform:translateY(18px);animation:up .8s var(--ease) forwards}
.l1{animation-delay:.05s}.l2{animation-delay:.15s}.l3{animation-delay:.28s}.l4{animation-delay:.4s}.l5{animation-delay:.55s}
@keyframes up{to{opacity:1;transform:none}}
.rule{height:4px;background:linear-gradient(90deg,var(--blue) 0 50%,var(--green) 50% 100%)}

section{scroll-margin-top:84px}
.sec{padding:clamp(80px,9vw,128px) 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:28px 64px;flex-wrap:wrap;margin-bottom:clamp(40px,5vw,60px)}
.sec-head>div:first-child{flex:1 1 560px;min-width:0}
.sec-head>.lead{flex:0 1 400px}
.sec-head>.lnk{flex:0 0 auto}

.explorer{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.dside{position:sticky;top:100px}
.dtabs{display:flex;flex-direction:column;gap:4px}
.dtab{display:grid;grid-template-columns:36px 1fr 20px;align-items:center;gap:12px;width:100%;text-align:left;padding:15px 18px;border-radius:var(--r);border:1px solid transparent;background:transparent;color:var(--fg);cursor:pointer;font-family:inherit}
.dtab .n{font:600 13px/1 var(--fd);color:var(--fg2)}
.dtab .t{font:700 22px/1.15 var(--fd)}
.dtab .t small{display:block;font:400 14px/1.4 var(--fb);color:var(--fg2);margin-top:4px}
.dtab svg{width:18px;height:18px;opacity:0;transition:opacity .2s}
.dtab:hover{background:var(--bg2)}
.dtab[aria-selected="true"]{background:var(--bg2);border-color:var(--line)}
.dtab[aria-selected="true"] .n{color:var(--link)}
.dtab[aria-selected="true"] svg{opacity:1;color:var(--link)}
.dside .help{margin:20px 18px 0;font-size:15px;color:var(--fg2)}
.dpanel{border-radius:var(--r);background:var(--card);border:1px solid var(--line)}
.dpanel[hidden]{display:none}
.dpanel .ph{position:relative;aspect-ratio:16/7;overflow:hidden;background:#2b2526;border-radius:var(--r) var(--r) 0 0}
.dpanel .ph img{width:100%;height:100%;object-fit:cover;animation:fadein .6s ease both}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.dpanel .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(23,19,20,.9) 0%,rgba(23,19,20,.45) 45%,rgba(23,19,20,0) 72%)}
.proof{position:absolute;left:24px;bottom:20px;right:24px;z-index:1;color:#ffffff;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.proof b{font:800 clamp(30px,3vw,42px)/1 var(--fd)}
.proof span{font-size:15px;color:#ffffff;max-width:280px;line-height:1.35}
.dbody{padding:clamp(24px,3vw,36px)}
.dbody h3{margin:0 0 10px}
.dbody>p{margin:0;color:var(--fg2);max-width:62ch}
.fam{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 26px;padding:0;list-style:none}
.fam li{font-size:14.5px;padding:7px 12px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}

.band{background:var(--band);color:#ffffff;position:relative;overflow:hidden;border-block:1px solid #3a3435}
.band::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at 70% 30%,#000 10%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 70% 30%,#000 10%,transparent 70%);pointer-events:none}
.band>.wrap{position:relative}
.band .eyebrow{color:#a9d3bd}
.band .lead{color:#d6d1d1}
.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:56px 0 0;padding:0;list-style:none;counter-reset:f}
.flow li{position:relative;padding:20px 18px 22px;border:1px solid #3a3435;background:rgba(43,37,38,.75);margin-right:26px;border-radius:var(--r);display:flex;flex-direction:column}
.flow li:last-child{margin-right:0;border-color:#4f7f68;background:rgba(62,116,90,.22)}
.flow li:not(:last-child)::after{content:"";position:absolute;top:50%;right:-27px;width:26px;height:2px;background:repeating-linear-gradient(90deg,#66ad8b 0 6px,transparent 6px 12px);background-size:24px 2px;animation:flowx .9s linear 6}
@keyframes flowx{to{background-position:24px 0}}
.flow .k{font:600 12.5px/1 var(--fd);color:#b3adae}
.flow .k::before{counter-increment:f;content:"0" counter(f) "\00a0\00a0"}
.flow b{display:block;font:700 19px/1.2 var(--fd);margin:10px 0 4px}
.flow .v{font:700 14.5px/1.35 var(--fd);color:#c9e3d5}
.flow .s{font-size:14px;color:#d6d1d1;line-height:1.45;margin-top:6px}
.kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#3a3435;border:1px solid #3a3435;border-radius:var(--r);overflow:hidden;margin:28px 0 0}
.kv>div{background:var(--band);padding:20px 22px;display:flex;flex-direction:column}
.kv dt{font:600 13px/1.2 var(--fd);color:#b3adae}
.kv dd{margin:8px 0 0;font:700 24px/1.2 var(--fd)}
.fignote{margin:14px 0 0;font-size:13.5px;color:#b3adae}

.recs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.rec{border-top:3px solid var(--fg);padding-top:24px}
.rec b{display:block;font:800 clamp(34px,3.2vw,44px)/1 var(--fd);color:var(--link);white-space:nowrap;letter-spacing:-0.01em}
.rec h3{font:700 18px/1.3 var(--fd);margin:16px 0 6px}
.rec p{margin:0;color:var(--fg2);font-size:15.5px}

.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.step{border-top:3px solid var(--green);padding-top:24px}
.step:nth-child(1){border-color:var(--blue)}.step:nth-child(2){border-color:var(--fg)}
.step .n{font:600 13px/1 var(--fd);color:var(--fg2)}
.step h3{margin:14px 0 10px;min-height:2.3em}
.step p{margin:0;color:var(--fg2)}
.creds{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:28px 48px;margin-top:clamp(48px,5vw,64px);padding-top:32px;border-top:1px solid var(--line)}
.creds h3{font:700 16px/1.3 var(--fd);margin:0 0 14px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.chips li{font:600 14px/1.25 var(--fd);padding:10px 14px;border-radius:999px;border:1px solid var(--line)}
.chips li span{font:400 13.5px var(--fb);color:var(--fg2);margin-left:6px}

.cust{padding:56px 0;background:var(--bg2);border-block:1px solid var(--line)}
.cgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);margin:20px 0 0;padding:0;list-style:none}
.cgrid li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 16px;text-align:center;font:700 17px/1.25 var(--fd);color:var(--fg2);display:grid;place-items:center;min-height:84px}
.cust .note{margin:16px 0 0;font-size:15px;color:var(--fg2);max-width:900px}

.homes{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,72px);align-items:stretch}
.homes .ph{border-radius:var(--r);overflow:hidden;min-height:460px;position:relative;background:var(--bg3)}
.homes .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hlist{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--line)}
.hlist a{display:grid;grid-template-columns:1fr 44px;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none}
.hlist h3{margin:0 0 6px;font-size:24px}
.hlist p{margin:0;color:var(--fg2);font-size:15.5px}
.hlist .tag{display:inline-block;margin-bottom:10px;font:600 12.5px/1 var(--fd);padding:6px 10px;border-radius:999px;background:var(--tag-bg);color:var(--tag-fg)}
.arr{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background .2s,color .2s,border-color .2s}
.arr svg{width:18px;height:18px}
.hlist a:hover .arr{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.hlist a:hover h3{color:var(--link)}

.ins{background:var(--bg2)}
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.post{text-decoration:none;display:flex;flex-direction:column;gap:14px}
.post .ph{aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;background:var(--bg3)}
.post .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.post:hover .ph img{transform:scale(1.04)}
.post .m{font:600 13px/1 var(--fd);color:var(--link)}
.post h3{margin:0;font:600 20px/1.35 var(--fb)}
.post:hover h3{color:var(--link)}

.cta{background:var(--cta);color:#ffffff}
.cta>.wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);padding-top:clamp(72px,8vw,104px);padding-bottom:clamp(72px,8vw,104px);align-items:start}
.cta p.lead{color:#d6d1d1;margin-top:18px}
.cta .contact{margin:32px 0 0;padding:0;list-style:none;display:grid;gap:14px;font-size:16px}
.cta .contact a{color:#ffffff;font-weight:600;text-decoration:none}.cta .contact a:hover{text-decoration:underline}
.cta .contact span{color:#b3adae;display:block;font-size:14px}
.qform{background:var(--bg);color:var(--fg);border-radius:var(--r);padding:clamp(24px,3vw,36px);display:grid;grid-template-columns:1fr 1fr;gap:16px}
.qform .full{grid-column:1/-1}
.qform label{display:block;font:600 14px/1.3 var(--fb);margin-bottom:6px}
.qform label i{font-style:normal;color:var(--fg2);font-weight:400}
.qform input,.qform select,.qform textarea{width:100%;min-height:46px;padding:10px 12px;border-radius:var(--r);border:1px solid #8a8485;background:var(--bg);color:var(--fg);font:400 16px/1.4 var(--fb)}
.qform textarea{min-height:110px;resize:vertical}
.qform .btn{width:100%}
.qform .fine{font-size:13.5px;color:var(--fg2);margin:0}
.qform :focus-visible{outline-color:var(--blue)}

.foot{background:var(--bg);padding:72px 0 36px;font-size:15px;border-top:1px solid var(--line)}
.fgrid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)) minmax(0,1.6fr);gap:36px}
.foot .tagline{font:700 24px/1.2 var(--fd);margin:26px 0 18px}
.foot address{font-style:normal;color:var(--fg2);line-height:1.6;font-size:14.5px}
.foot address b{display:block;margin-top:12px;font-size:14px}.foot address b:first-child{margin-top:0}
.foot address b{color:var(--fg);font-weight:600}
.foot h2{font:700 16px/1.2 var(--fd);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.foot ul a{display:inline-block;padding:4px 0;color:var(--fg2);text-decoration:none}.foot a:hover{color:var(--fg);text-decoration:underline}
.foot address a{color:var(--fg2)}
.fbot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);color:var(--fg2);font-size:14px}
.fbot nav{display:flex;gap:6px 22px;flex-wrap:wrap}
.fbot a{color:var(--fg2);text-decoration:none;padding:4px 0}

.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}

@media (max-width:1180px){.mainnav{display:none}.mega{display:none!important}.recs{grid-template-columns:repeat(2,minmax(0,1fr))}.kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero::before{background:linear-gradient(90deg,rgba(23,19,20,.95) 0%,rgba(23,19,20,.88) 60%,rgba(23,19,20,.62) 100%),linear-gradient(0deg,rgba(23,19,20,.9) 0%,rgba(23,19,20,0) 40%)}
  .cgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1024px){.flow li{margin-right:20px;padding:16px 14px 18px}.flow li:not(:last-child)::after{right:-21px;width:20px}.flow b{font-size:17px}}
@media (max-width:900px){.explorer{grid-template-columns:minmax(0,1fr)}.explorer>*{min-width:0}.dside{position:static}.dside .help{display:none}
  .dtabs{flex-direction:row;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:2px 20px 6px;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
  .dtabs::-webkit-scrollbar{display:none}
  .dtab{width:auto;flex:0 0 auto;grid-template-columns:auto;padding:12px 18px;background:var(--bg2);border-color:var(--line);white-space:nowrap;border-radius:999px}
  .dtab .n,.dtab svg,.dtab .t small{display:none}.dtab .t{font-size:16px}
  .dtab[aria-selected="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
  .flow{grid-template-columns:1fr;gap:24px}.flow li{margin-right:0}
  .flow li:not(:last-child)::after{top:auto;bottom:-25px;right:auto;left:30px;width:2px;height:24px;background:repeating-linear-gradient(180deg,#66ad8b 0 6px,transparent 6px 12px);background-size:2px 24px;animation:flowy .9s linear 6}
  .how{grid-template-columns:1fr}.step h3{min-height:0}.creds{grid-template-columns:1fr}.homes{grid-template-columns:1fr}.homes .ph{min-height:320px}.posts{grid-template-columns:1fr}
  .cta>.wrap{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.fgrid>div:first-child{grid-column:1/-1}.stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}.cgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.drawer{width:100vw;grid-template-columns:1fr}.dpane{display:none;padding:16px 20px 32px}.drawer.pane .dnav{display:none}.drawer.pane .dpane{display:block}.dback{display:inline-flex;color:var(--fg);border:1px solid var(--line);margin-bottom:12px}.dpane .dclose{display:none}.dsp .cols{grid-template-columns:1fr}.dsb svg{transform:none}}
@keyframes flowy{to{background-position:0 24px}}
@media (max-width:1024px){.rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.sectors{grid-template-columns:repeat(2,minmax(0,1fr))}.fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.fgrid>.fbrand{grid-column:1/-1}.fgrid>div:last-child{grid-column:span 3}}
@media (max-width:900px){.faq{grid-template-columns:1fr}.cs-slide{grid-template-columns:1fr}.cs-img{order:-1}}
@media (max-width:640px){.sectors{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.fgrid>div:last-child{grid-column:1/-1}.explorer .dpanel .proof{top:14px;left:16px}.explorer .dpanel .proof b{font-size:24px}.explorer .dpanel .proof span{font-size:13px}.dpanel .ph{aspect-ratio:16/9!important}
  .rgrid{grid-template-columns:1fr;gap:10px}.route{padding:18px}.route p{margin-bottom:12px}
  .mbar{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:35;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:#171314;border-top:1px solid #2f2a2b;transform:translateY(110%);transition:transform .3s var(--ease)}
  .mbar.show{transform:none}.mbar .btn{min-height:46px;width:100%;font-size:15px}.mbar .btn-o{color:#fff}
  .foot{padding-bottom:96px}
  .wrap{padding:0 20px}.care{display:none}.hdr>.wrap{gap:6px}.brand img{height:24px}.hdr-cta{display:none}.hero>.wrap{min-height:0}
  .hero::before{background:linear-gradient(0deg,rgba(23,19,20,.96) 0%,rgba(23,19,20,.88) 60%,rgba(23,19,20,.66) 100%)}
  .hero h1{min-height:2em}
  .hero .ctas .btn{width:100%}
  .stats dd{font-size:28px}.stats dd small{font-size:.45em}
  .kv{grid-template-columns:1fr}.recs{grid-template-columns:1fr}.dpanel .ph{aspect-ratio:4/3}
  .qform{grid-template-columns:1fr}.cgrid li{font-size:15px;padding:16px 8px;min-height:68px}
  .search form{flex-wrap:wrap}.search .btn{width:100%}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.load{opacity:1;transform:none}.js .rv{opacity:1;transform:none}.caret{display:none}}
/* Headings: SE Display, the company's heading font (Oct 2026). A modified Hanken Grotesk (SIL OFL 1.1, see fonts/OFL-SEDisplay.txt),
   tuned to the approved Beatrice look: weights matched to Beatrice’s stroke, letter spacing to its width and a 6% larger size built into the files. */
@font-face{font-family:'SE Display';font-style:normal;font-display:swap;font-weight:300;src:url(../fonts/se-display-300.woff2) format('woff2')}
@font-face{font-family:'SE Display';font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/se-display-400.woff2) format('woff2')}
@font-face{font-family:'SE Display';font-style:normal;font-display:swap;font-weight:500;src:url(../fonts/se-display-500.woff2) format('woff2')}
@font-face{font-family:'SE Display';font-style:normal;font-display:swap;font-weight:600;src:url(../fonts/se-display-600.woff2) format('woff2')}
@font-face{font-family:'SE Display';font-style:normal;font-display:swap;font-weight:700 900;src:url(../fonts/se-display-700.woff2) format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-display:swap;font-weight:100 900;src:url(../fonts/public-sans-latin-wght-normal.woff2) format('woff2-variations'),url(../fonts/public-sans-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Public Sans';font-style:normal;font-display:swap;font-weight:100 900;src:url(../fonts/public-sans-latin-ext-wght-normal.woff2) format('woff2-variations'),url(../fonts/public-sans-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ===== inner pages ===== */
.phero{position:relative;background:#171314;color:#fff;overflow:hidden;isolation:isolate}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at 80% 20%,#000 10%,transparent 70%);mask-image:radial-gradient(ellipse at 80% 20%,#000 10%,transparent 70%)}
.phero>.wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);align-items:center;padding-top:clamp(28px,4vw,48px);padding-bottom:clamp(44px,5vw,72px)}
.phero.solo>.wrap{grid-template-columns:minmax(0,1fr)}
.phero h1{font:800 clamp(36px,4.6vw,64px)/1.03 var(--fd);letter-spacing:-.02em;margin:0;text-wrap:balance;max-width:20ch}
.phero .eyebrow{color:#a9d3bd}
.phero .lead{color:#e2dddd;margin-top:18px;max-width:58ch}
.phero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.phero .media{border-radius:var(--r);overflow:hidden;background:#eceae8;aspect-ratio:4/3;position:relative}
.phero .media img{width:100%;height:100%;object-fit:cover}
.phero .media.contain img{object-fit:contain}
.phero .pstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:18px 24px;margin:34px 0 0;padding:22px 0 0;border-top:1px solid rgba(255,255,255,.18)}
.phero .pstats div{display:flex;flex-direction:column}
.phero .pstats dt{font-size:14px;color:#cfcaca;margin-top:6px;order:2}
.phero .pstats dd{margin:0;font:700 clamp(24px,2.4vw,32px)/1.05 var(--fd);order:1}
.crumbs{font-size:13.5px;color:#b3adae;margin:0 0 22px;display:flex;flex-wrap:wrap;gap:6px}
.crumbs a{color:#d6d1d1;text-decoration:none}.crumbs a:hover{color:#fff;text-decoration:underline}
.crumbs span[aria-hidden]{color:#6f696a}
.plate{border-radius:var(--r);background:linear-gradient(160deg,#2b2526,#171314);border:1px solid #3a3435;aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(22px,3vw,36px);position:relative;overflow:hidden}
.plate::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;border:40px solid rgba(65,118,205,.16)}
.plate .k{font:600 13px var(--fd);color:#a9d3bd;margin-bottom:10px}
.plate .v{font:800 clamp(28px,3.2vw,44px)/1.05 var(--fd);color:#fff;max-width:14ch}

.subnav{position:sticky;top:64px;z-index:30;background:var(--bg);border-bottom:1px solid var(--line)}
.subnav .wrap{display:flex;align-items:center;gap:4px;min-height:52px;overflow-x:auto;scrollbar-width:none}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav b{font:700 15px var(--fd);margin-right:14px;white-space:nowrap}
.subnav a{font:500 14.5px var(--fb);text-decoration:none;color:var(--fg2);padding:15px 12px;white-space:nowrap;border-bottom:2px solid transparent}
.subnav a:hover{color:var(--fg)}
.subnav a.on{color:var(--fg);border-bottom-color:var(--blue)}
.subnav .btn{margin-left:auto;min-height:38px;padding:0 16px;font-size:14.5px}

.sec.tight{padding:clamp(56px,6vw,88px) 0}
.sec.alt{background:var(--bg2)}
.h2s{font:700 clamp(26px,2.6vw,36px)/1.1 var(--fd);margin:0 0 18px;letter-spacing:-.01em}
.twocol{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.twocol.r37{grid-template-columns:minmax(0,3fr) minmax(0,7fr)}
.prosebody>p,.prose p{color:var(--fg2);margin:0 0 16px;max-width:68ch}
.prose{max-width:760px}
.prose h2{font:700 clamp(22px,2.2vw,28px)/1.2 var(--fd);margin:40px 0 14px}
.prose h3{font:700 19px/1.3 var(--fd);margin:28px 0 10px}
.prose ul{color:var(--fg2);padding-left:22px;margin:0 0 18px;max-width:68ch}
.prose li{margin:6px 0}
.prose .standfirst{font-size:clamp(18px,1.6vw,21px);color:var(--fg);line-height:1.55}

.feats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px}
.feats li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;color:var(--fg);font-size:16px;line-height:1.5}
.feats li::before{content:"";width:18px;height:18px;margin-top:3px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23201b1c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat}
.apps{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.apps li{font-size:14.5px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg)}

.spec{width:100%;border-collapse:collapse;font-size:15px}
.spec th,.spec td{text-align:left;vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--line)}
.spec th{width:38%;font-weight:600;color:var(--fg)}
.spec td{color:var(--fg2)}
.spec tr:nth-child(odd) th,.spec tr:nth-child(odd) td{background:var(--bg2)}
.specwrap{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.fine2{font-size:13.5px;color:var(--fg2);margin:12px 0 0}

.dls{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.dls li a{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line);text-decoration:none}
.dls .ic{width:40px;height:40px;border-radius:6px;background:var(--tag-bg);color:var(--tag-fg);display:grid;place-items:center;font:700 11px var(--fd)}
.dls b{font-weight:600}
.dls small{display:block;color:var(--fg2);font-size:13.5px}
.dls .go{color:var(--link);font-weight:600;font-size:14px;white-space:nowrap}
.dls li a:hover b{color:var(--link)}

.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.pcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card);text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}
.pcard:hover{border-color:var(--blue);box-shadow:0 14px 32px rgba(32,27,28,.10);transform:translateY(-2px)}
.pcard .im{aspect-ratio:4/3;background:#eceae8;overflow:hidden}
.pcard .im img{width:100%;height:100%;object-fit:cover}
.pcard .im.plate2{background:linear-gradient(160deg,#2b2526,#171314);display:flex;align-items:flex-end;padding:22px;color:#fff;font:800 24px/1.1 var(--fd)}
.pcard .bd{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.pcard .fam{font:600 12.5px var(--fd);color:var(--link);margin:0 0 8px}
.pcard h3{font:700 19px/1.25 var(--fd);margin:0 0 8px}
.pcard p{margin:0 0 14px;color:var(--fg2);font-size:15px;line-height:1.5}
.pcard .rt{margin-top:auto;font:600 14px var(--fb);color:var(--fg)}
.pcard:hover h3{color:var(--link)}
.famh{font:700 18px/1.2 var(--fd);margin:40px 0 16px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.famh:first-child{margin-top:0;border-top:0;padding-top:0}
.famh small{font:500 14px var(--fb);color:var(--fg2)}

.ctaband{background:#171314;color:#fff}
.ctaband>.wrap{display:flex;justify-content:space-between;align-items:center;gap:24px 48px;flex-wrap:wrap;padding-top:clamp(48px,5vw,72px);padding-bottom:clamp(48px,5vw,72px)}
.ctaband h2{font:700 clamp(26px,2.8vw,38px)/1.1 var(--fd);margin:0;max-width:22ch}
.ctaband p{color:#d6d1d1;margin:10px 0 0;max-width:56ch}
.ctaband .ctas{display:flex;gap:12px;flex-wrap:wrap}

.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.card{border:1px solid var(--line);border-radius:var(--r);padding:24px;background:var(--card);min-width:0}
.card h3{font:700 19px/1.25 var(--fd);margin:0 0 8px}
.card p{margin:0;color:var(--fg2);font-size:15.5px}
.card .lnk{margin-top:14px}
.card.link{text-decoration:none;display:flex;flex-direction:column;transition:border-color .2s}
.card.link:hover{border-color:var(--blue)}.card.link:hover h3{color:var(--link)}

.tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.tl li{position:relative;padding:0 0 26px 26px}
.tl li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--blue)}
.tl b{display:block;font:800 22px/1 var(--fd);color:var(--link);margin-bottom:6px}
.tl p{margin:0;color:var(--fg2);max-width:62ch}

.nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.nums div{border-top:3px solid var(--fg);padding-top:18px}
.nums b{display:block;font:800 clamp(30px,3vw,42px)/1 var(--fd);color:var(--link)}
.nums span{display:block;margin-top:10px;color:var(--fg2);font-size:15px}

.secnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.secnav button{font:600 14px/1 var(--fb);color:var(--fg2);background:transparent;border:1px solid var(--line);border-radius:999px;padding:10px 16px;cursor:pointer;min-height:40px}
.secnav button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.posts.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.archive{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.archive li{display:grid;grid-template-columns:120px minmax(0,1fr) 120px;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.archive time{color:var(--fg2);font-variant-numeric:tabular-nums}
.archive .c{color:var(--link);font-weight:600;font-size:13.5px;text-align:right}

.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.kvlist{margin:0;display:grid;gap:14px}
.kvlist div{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.kvlist dt{font-weight:600}
.kvlist dd{margin:0;color:var(--fg2)}
.kvlist a{color:var(--link)}

.formwrap{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3vw,36px)}
.formwrap .qform{background:transparent;padding:0}

.table{width:100%;border-collapse:collapse;font-size:15px}
.table th,.table td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line)}
.table thead th{font:600 13px var(--fd);color:var(--fg2);background:var(--bg2)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}

.results{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line)}
.results li a{display:block;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none}
.results b{font:700 18px var(--fd)}.results span{display:block;color:var(--fg2);font-size:14.5px;margin-top:4px}
.results small{color:var(--link);font-weight:600}

/* review notes: hidden unless the reviewer turns them on */
.rn{display:none}
.show-rn .rn{display:block;margin:14px 0;padding:12px 14px 12px 40px;border-radius:var(--r);background:#fff6d9;color:#4a3b00;border:1px solid #f0d77a;font:500 14px/1.5 var(--fb);position:relative;max-width:900px}
.show-rn .rn::before{content:"!";position:absolute;left:12px;top:11px;width:18px;height:18px;border-radius:50%;background:#e0b400;color:#fff;font:800 12px/18px var(--fb);text-align:center}
.show-rn span.rn{display:inline-block;margin:0 0 0 6px;padding:2px 8px 2px 24px}
.show-rn span.rn::before{left:4px;top:3px;width:15px;height:15px;line-height:15px;font-size:10px}
.rntoggle{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;background:#fff6d9;color:#4a3b00;border:1px solid #e0c55a;border-radius:999px;font:600 13px var(--fb);padding:9px 14px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.15)}
.rntoggle[aria-pressed="true"]{background:#e0b400;color:#201b1c}

@media (max-width:1024px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.cards3{grid-template-columns:repeat(2,minmax(0,1fr))}.nums{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-grid{grid-template-columns:1fr 1fr}.posts.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.phero>.wrap{grid-template-columns:1fr}.twocol,.twocol.r37{grid-template-columns:1fr}.feats{grid-template-columns:1fr}.subnav{top:64px}}
@media (max-width:640px){.pgrid,.cards3,.contact-grid,.posts.grid3{grid-template-columns:1fr}.nums{grid-template-columns:1fr 1fr}.spec th{width:44%}.spec th,.spec td{padding:10px 12px}.archive li{grid-template-columns:1fr;gap:2px}.archive .c{text-align:left}.kvlist div{grid-template-columns:1fr}.subnav .btn{display:none}.rntoggle{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}
/* ---- review pass 1 ---- */
.xfig{margin:32px 0 0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 12px}
.xfig img{width:100%;height:auto;display:block}
.xfig figcaption{font-size:14px;color:#5b5556;margin-top:10px}
.phero .pstats dd{font-size:clamp(22px,2.1vw,30px);overflow-wrap:anywhere}
.phero .pstats.wide{max-width:900px}
.phero.solo>.wrap{padding-bottom:clamp(36px,4vw,56px)}
.phero.solo h1{max-width:24ch}
.phero .media.contain{aspect-ratio:auto;background:transparent}
.phero .media.contain img{height:auto}
.pcard .im.plate2{background:linear-gradient(180deg,#f7f6f5,#ecebe9);display:grid;place-items:center;padding:0;color:var(--blue)}
.pcard .im.plate2 .glyph{width:30%;height:auto;opacity:.6}
.pgrid.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px}
.sec-head.top{align-items:start}
.apps.jump li{background:transparent;border-color:#4a4344;padding:0}
.apps.jump a{display:block;padding:8px 14px;color:#fff;text-decoration:none}
.apps.jump a:hover{color:#a9d3bd}
.subnav a.btn-g{color:#201b1c;border-bottom:0;padding:0 16px}
.subnav a[aria-current]{color:var(--fg)}
.mbar{visibility:hidden;transition:transform .3s var(--ease),visibility 0s .3s}
.mbar.show{visibility:visible;transition:transform .3s var(--ease)}
@media (min-width:641px){.kvlist div{grid-template-columns:minmax(0,170px) minmax(0,1fr)}}
.kvlist dd,.kvlist a{min-width:0;overflow-wrap:anywhere}
.kvlist a{text-decoration:none;font-weight:600}
.kvlist a:hover{text-decoration:underline}
.fine a{color:var(--link)}
.artgrid{display:grid;grid-template-columns:minmax(0,760px) minmax(0,300px);gap:clamp(32px,5vw,72px);align-items:start}
.artside{position:sticky;top:88px}
.artside .card h2{margin:6px 0 10px}
.prose p,.prose li{color:var(--fg);font-size:17.5px;line-height:1.7}
.prose .byline{margin-top:36px;color:var(--fg2);font-size:14.5px}
.years{border-top:1px solid var(--line)}
.yr{border-bottom:1px solid var(--line)}
.yr summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:18px 0;font:700 20px var(--fd)}
.yr summary::-webkit-details-marker{display:none}
.yr summary small{font:500 14px var(--fb);color:var(--fg2)}
.yr summary svg{width:20px;height:20px;margin-left:auto;transition:transform .2s}
.yr[open] summary svg{transform:rotate(45deg)}
.yr .archive{border-top:0;margin-bottom:12px}
.dgroup{padding:28px 0;border-top:1px solid var(--line)}
.dgroup h2.h3{font:700 22px var(--fd);margin:0}
.popular{margin-top:36px}
.popular .apps a{text-decoration:none;color:var(--fg)}
.results:not(:empty)+.popular{display:none}
.mega .it.more{color:var(--link);font-weight:600}
body:has(.mega:not([hidden]))::after{content:"";position:fixed;inset:64px 0 0;background:rgba(23,19,20,.45);z-index:29;pointer-events:none}
@media (min-width:901px){
 .pgrid.cases>.pcard:first-child{grid-column:span 2;flex-direction:row}
 .pgrid.cases>.pcard:first-child .im{flex:0 0 55%;aspect-ratio:auto}
 .pgrid.cases>.pcard:first-child .bd{justify-content:center;padding:28px 32px}
}
@media (max-width:900px){.artgrid{grid-template-columns:1fr}.artside{position:static}}
@media (max-width:640px){
 .pcard{flex-direction:row}
 .pcard .im{flex:0 0 112px;aspect-ratio:1}
 .pcard .bd{padding:12px 14px}
 .pcard h3{font-size:16.5px;margin-bottom:4px}
 .pcard p{display:none}
 .pcard .fam{margin-bottom:4px}
 .pcard .rt{font-size:13.5px}
 .pgrid.two{grid-template-columns:1fr}
 .apps:not(.jump){display:block}
 .apps:not(.jump) li{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0;background:none}
 .apps.jump{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}
 .apps.jump li{flex:0 0 auto}
 .spec tr{display:grid}
 .spec th{width:auto;padding-bottom:2px}
 .spec td{padding-top:0}
 .dls li a{grid-template-columns:32px minmax(0,1fr) 24px;gap:12px}
 .dls .ic{width:32px;height:32px;font-size:10px}
 .dls .go{font-size:0}
 .dls .go::after{content:"↗";font-size:18px}
 .phero .ctas .btn{flex:1 1 100%}
 .phero .pstats{grid-template-columns:1fr 1fr}
 .yr summary{font-size:18px}
}
.pcard .im{background:#f3f2f0}
.qform{scroll-margin-top:96px}
/* ---- review pass 2 ---- */
[hidden]:not(.cs-slide){display:none!important}
html{scroll-padding-top:80px}
html:has(.subnav){scroll-padding-top:128px}
@media (max-width:900px){html:has(#mbar){scroll-padding-bottom:84px}}
.rn+.famh,.famh:first-of-type{margin-top:0;border-top:0;padding-top:0}
.famh span{white-space:nowrap}
.famh small{text-align:right;max-width:70%}
.pcard .im{background:#f6f4f2}
.pcard.cta{background:#201b1c;border-color:#201b1c;color:#fff}
.pcard.cta .bd{justify-content:flex-end;padding:28px}
.pcard.cta .fam{color:#a9d3bd}
.pcard.cta h3{color:#fff;font-size:22px}
.pcard.cta p{color:#cfcaca}
.pcard.cta .rt{color:#66ad8b;display:inline-flex;gap:8px;align-items:center}
.pcard.cta .rt svg{width:18px;height:18px}
.pcard.cta:hover{border-color:#66ad8b}
.pcard.cta:hover h3{color:#fff}
.pcard .rt.more{color:var(--link);display:inline-flex;gap:6px;align-items:center}
.pcard .rt.more svg{width:16px;height:16px}
.pgrid.cases>.pcard:first-child .im img{object-fit:cover}
.twocol>div:has(>.feats){position:sticky;top:128px;align-self:start}
.alsoused{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;margin:20px 0 0}
.alsoused span{font:600 13px var(--fd);color:var(--fg2)}
.alsoused ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px}
.dgroup>div:first-child{position:sticky;top:88px;align-self:start}
.dgroup .muted{margin:6px 0 0;font-size:14px}
.dutil .dquote{margin:0 0 12px;color:#201b1c;justify-content:center;min-height:46px}
.dutil .dquote:hover{color:#201b1c;text-decoration:none}
.foot address a{display:inline-block;padding:4px 0}
@media (max-width:900px){.twocol>div:has(>.feats){position:static}.dgroup>div:first-child{position:static}}
@media (max-width:640px){
 .pcard .im{aspect-ratio:auto;align-self:stretch;min-height:112px}
 .pcard .im img{object-fit:contain;padding:6px}
 .pcard.cta{display:none}
 .sec-head{row-gap:12px}
 .secnav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}
 .secnav button{flex:0 0 auto}
 .table thead{display:none}
 .table tr{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
 .table td{border:0;padding:0}
 .table td:first-child{font-weight:600}
 .table td:nth-child(3),.table td:last-child{grid-column:1/-1;color:var(--fg2)}
 .tablewrap{overflow:visible}
 .alsoused{flex-direction:column}
}
@media (max-width:640px){.famh small{display:none}}
/* ---- hero refinements: fixed first line, own line for the moving word, pause control, three stats ---- */
.hero h1{max-width:none}
.hero h1 .h1a{display:block;white-space:nowrap}
.hero h1 .twl{display:block;white-space:nowrap}
.hero>.wrap{position:relative}
.hpause{position:absolute;right:clamp(16px,4vw,40px);top:clamp(40px,7vh,88px);width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(23,19,20,.35);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2}
.hpause:hover{border-color:#fff;background:rgba(23,19,20,.6)}
.hpause:focus-visible{outline:2px solid #66ad8b;outline-offset:3px}
.hpause svg{width:16px;height:16px}
.hpause .i-play{display:none}
.hpause[aria-pressed="true"] .i-play{display:block}
.hpause[aria-pressed="true"] .i-pause{display:none}
.stats.s3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (prefers-reduced-motion:reduce){.hpause{display:none}}
@media (max-width:640px){
 .hero h1{font-size:min(9.4vw,42px)}
 .hero .eyebrow .eb2{display:none}
 .stats.s3{grid-template-columns:repeat(2,minmax(0,1fr))}
 .stats.s3 .s-opt{display:none}
 .hpause{top:auto;bottom:calc(100% - 64px);right:16px;width:36px;height:36px}
}
.hero .lead{max-width:54ch}
@media (max-width:640px){.hero h1{font-size:min(8.1vw,36px)}}
/* ---- brand web fonts (Oct 2026): SE Display for headings, Public Sans for text; self-hosted ---- */
:root{--fd:"SE Display",Arial,sans-serif;--fb:"Public Sans",Arial,sans-serif}
.stats dd,.pstats dd,.nums b,.rec .num{font-variant-numeric:tabular-nums}
/* ---- buttons: capsule (decided 11 Oct 2026). Chips stay capsules too but smaller, 1px hairline, 14px text ---- */
.btn{border-radius:999px;padding-inline:24px}
.mbar .btn,.ctaband .btn{padding-inline:20px}
/* logo is never squeezed: fixed height, natural width, never shrinks */
.brand{flex:0 0 auto}
.brand img{flex-shrink:0;width:auto;max-width:none}
/* ---- heading weight system (11 Oct 2026, set with Beatrice, kept with SE Display): Semibold 600 for headings, eyebrows, labels and figures, nothing bolder; Medium 500 for nav, buttons, product name and chips; Light 300 for large figures ---- */
.d,
.routes h2.rh,
.route h3,
.qa summary,
.sectors h3,
.cs-kv dd,
.mega .mt,
.mh,
.feat a b,
.dsb,
.dsp .mt,
.hero h1,
.dtab .t,
.flow b,
.flow .v,
.kv dd,
.rec h3,
.creds h3,
.cgrid li,
.foot .tagline,
.foot h2,
.phero h1,
.subnav b,
.h2s,
.prose h2,
.prose h3,
.dls .ic,
.pcard .im.plate2,
.pcard h3,
.famh,
.ctaband h2,
.card h3,
.results b,
.yr summary,
.dgroup h2.h3{font-weight:600}
.ni,.btn,.chips li,button[data-cat],.secnav button,.apps li,.subnav b,.cs-tabs button{font-family:var(--fd);font-weight:500}
.stats dd,.phero .pstats dd,.pstats dd,.nums b,.rec b,.proof b,.since b,.tl b,.plate .v{font-weight:300;letter-spacing:-.02em}
.stats dd small,.pstats dd small{font-weight:400}

.ni{padding:0 10px}
/* ---- navigation (11 Oct 2026): one menu per screen size; two-step Products panel; compact dropdowns; drill-down phone menu ---- */
@media (min-width:1181px){#menuBtn{display:none}}
.pmega>.wrap{display:block;padding:28px 40px 0}
.pdivs{position:relative;list-style:none;margin:0;padding:0;min-height:340px}
.pdl{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;width:300px;padding:12px 14px;border-radius:var(--r);text-decoration:none;color:var(--fg);box-sizing:border-box}
.pdl b{font:600 16px/1.25 var(--fd)}
.pdl span{grid-column:1;font-size:13.5px;line-height:1.4;color:var(--fg2);margin-top:2px}
.pdl i{grid-column:2;grid-row:1/span 2;align-self:center;font:500 12.5px/1 var(--fd);font-style:normal;color:var(--fg2);min-width:30px;height:24px;padding:0 8px;box-sizing:border-box;border-radius:999px;background:var(--bg2);display:grid;place-items:center}
.pdv.on .pdl{background:var(--bg2)}
.pdv.on .pdl b{color:var(--link)}
.pdv.on .pdl i{background:var(--bg)}
.pdp{display:none;position:absolute;top:0;left:340px;right:0;grid-template-columns:minmax(0,1fr) 240px;grid-template-rows:auto 1fr;column-gap:48px}
.pdv.on .pdp{display:grid}
.pda{grid-column:1;display:inline-flex;align-items:center;gap:8px;justify-self:start;font:600 15.5px/1.3 var(--fd);color:var(--link);text-decoration:none;margin:12px 0 12px}
.pda svg{width:17px;height:17px;transition:transform .2s}
.pda:hover svg{transform:translateX(3px)}
.pdlist{grid-column:1;list-style:none;margin:0;padding:0;columns:2;column-gap:32px;align-self:start}
.pdlist li{break-inside:avoid}
.pdlist a{display:block;padding:6px 0;font-size:14.5px;line-height:1.4;color:var(--fg);text-decoration:none}
.pdlist a:hover{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.pf{grid-column:2;grid-row:1/span 2;display:block;text-decoration:none;color:var(--fg);margin-top:12px}
.pfi{display:block;aspect-ratio:4/3;background:#f6f4f2;border-radius:var(--r);overflow:hidden}
.pfi img{width:100%;height:100%;object-fit:contain;padding:14px;box-sizing:border-box;transition:transform .3s var(--ease)}
.pf:hover .pfi img{transform:scale(1.03)}
.pfk{display:block;font:600 12.5px/1 var(--fd);color:var(--fg2);margin:14px 0 6px}
.pf b{display:block;font:600 16px/1.3 var(--fd)}
.pf:hover b{color:var(--link)}
.pfd{display:block;font-size:13.5px;line-height:1.45;color:var(--fg2);margin-top:4px}
.pfoot{display:flex;flex-wrap:wrap;gap:8px 32px;border-top:1px solid var(--line);margin-top:24px;padding:16px 0 20px}
.pfoot a{display:inline-flex;align-items:center;gap:6px;font:500 14.5px/1.3 var(--fd);color:var(--link);text-decoration:none}
.pfoot a svg{width:16px;height:16px}
.pfoot a:hover{text-decoration:underline;text-underline-offset:3px}
.mainnav>li.dd{position:relative}
.ddp{position:absolute;top:100%;left:0;z-index:40;width:360px;box-sizing:border-box;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:0 0 var(--r) var(--r);box-shadow:0 24px 48px rgba(23,19,20,.18);padding:10px}
.ddp[hidden]{display:none}
.ddp2{width:600px}
.mainnav>li.dd:last-child .ddp{left:auto;right:-80px}
.ddl{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.ddl.c2{grid-template-columns:1fr 1fr}
.ddl a{display:block;padding:10px 12px;border-radius:var(--r);text-decoration:none;color:var(--fg)}
.ddl a:hover{background:var(--bg2)}
.ddl a:hover b{color:var(--link)}
.ddl b{display:block;font:600 15px/1.3 var(--fd)}
.ddl span{display:block;font-size:13.5px;line-height:1.4;color:var(--fg2);margin-top:2px}
.ddf{display:flex;align-items:center;gap:6px;margin:8px 2px 0;padding:12px 10px 4px;border-top:1px solid var(--line);font:500 14.5px/1.3 var(--fd);color:var(--link);text-decoration:none}
.ddf svg{width:16px;height:16px}
.ddf:hover{text-decoration:underline;text-underline-offset:3px}
@media (max-width:1180px){
 .drawer{width:min(420px,100vw);grid-template-columns:1fr;background:#171314;color:#ffffff}
 .dpane{display:none;padding:0 0 32px;background:#171314;color:#ffffff}
 .drawer.pane .dnav{display:none}
 .drawer.pane .dpane{display:block}
 .dsb[aria-expanded="true"]{box-shadow:none}
 .dsb svg{transform:none}
}
.dph{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:64px;box-sizing:border-box;border-bottom:1px solid #2f2a2b;position:sticky;top:0;background:#171314;z-index:1}
.dph .dback{display:inline-flex;margin:0;color:#ffffff;border:1px solid #3a3435}
.dph .dpt{margin:0;flex:1;font:600 18px/1.2 var(--fd);color:#ffffff}
.dph .dclose{position:static;display:inline-flex;color:#ffffff;border:1px solid #3a3435}
.dph .ibtn:hover{background:#2b2526}
.dpane .dsp{padding:8px 0}
.dall{display:flex;align-items:center;gap:8px;padding:14px 22px;font:500 15px/1.3 var(--fd);color:#93b2e4;text-decoration:none}
.dall svg{width:17px;height:17px}
.dlist{list-style:none;margin:0;padding:0}
.dlist a,.dl2{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:13px 22px;background:none;border:0;text-align:left;cursor:pointer;color:#ffffff;text-decoration:none;font:400 16px/1.35 var(--fb)}
.dlist a:hover,.dl2:hover{background:#2b2526}
.dl2 b{flex:1;font:600 17px/1.25 var(--fd)}
.dl2 span{color:#cfcaca;font-size:13.5px}
.dl2 svg{width:16px;height:16px;flex:none}
.dlist2 a{display:block}
.dlist2 b{display:block;font:600 16px/1.3 var(--fd)}
.dlist2 span{display:block;color:#cfcaca;font-size:13.5px;line-height:1.4;margin-top:2px}
.drawer :focus-visible{outline-color:#ffffff}
.ddl.c2{grid-auto-flow:column;grid-template-rows:repeat(4,auto)}
/* header (11 Oct 2026): logo, five menus, search, Request a quote. Customer care lives in Support, the footer, the phone menu and the phone call bar; the theme switch sits in the footer */
.thm{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--fg2);font:500 14px/1 var(--fd);cursor:pointer}
.thm:hover{color:var(--fg);border-color:var(--fg2)}
.thm svg{width:16px;height:16px}
.fbot .thm{margin-right:auto}
.thm .i-sun{display:none}.thm .i-moon{display:block}
[data-theme="dark"] .thm .i-sun{display:block}[data-theme="dark"] .thm .i-moon{display:none}
/* ---- footer (11 Oct 2026): brand block with a one-line blue tagline; columns follow the menu; customer care leads Contact ---- */
.foot{padding:64px 0 32px}
.fgrid{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)) minmax(0,1.35fr);gap:40px}
.fbrand img{height:30px;width:auto}
.foot .tagline{display:flex;align-items:center;gap:10px;margin:22px 0 0;font:500 16px/1.3 var(--fd);color:var(--link);white-space:nowrap}
.foot .tagline::before{content:"";flex:none;width:22px;height:3px;background:linear-gradient(90deg,var(--blue) 50%,var(--green) 50%)}
.fabout{margin:12px 0 0;max-width:30ch;font-size:14px;line-height:1.55;color:var(--fg2)}
.foot h2{font:600 15px/1.2 var(--fd);margin:0 0 14px}
.foot ul{gap:2px}
.foot ul a{font-size:14.5px}
.fcare{margin:0 0 10px}
.fcare span{display:block;font-size:13px;color:var(--fg2);margin-bottom:2px}
.fcare a{font:600 22px/1.2 var(--fd);color:var(--fg);text-decoration:none;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fcare a:hover{color:var(--link);text-decoration:none}
.fmail{margin:0 0 18px}
.fmail a{color:var(--link);text-decoration:none;font-size:14.5px}
.fmail a:hover{text-decoration:underline;text-underline-offset:3px}
.foot address{font-size:13.5px;line-height:1.55}
.foot address b{font:600 13px/1.3 var(--fd);margin-top:10px}
.fbot{align-items:center;margin-top:48px;padding-top:20px;font-size:13.5px}
.fleg,.fsoc,.fsoc nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px 20px}
.fsoc{gap:12px 24px}
.fbot a{padding:4px 0}
.fbot a:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.fbot .thm{margin-right:0}
@media (max-width:1180px){
 .fgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 32px}
 .fgrid>.fbrand{grid-column:1/-1}
 .fgrid>.fcontact{grid-column:1/-1;display:grid;grid-template-columns:auto auto 1fr;column-gap:40px;align-items:start}
 .fcontact h2{grid-column:1/-1}
}
@media (max-width:700px){
 .fgrid{grid-template-columns:1fr 1fr;gap:32px 24px}
 .fgrid>.fcontact{display:block}
 .fgrid>div:nth-child(4){grid-column:auto}
 .fbot{flex-direction:column;align-items:flex-start;gap:16px}
}
@media (min-width:701px) and (max-width:1180px){.fcontact .fmail{margin-top:24px}}
/* hero numbers: first left, middle centred, last right, so the row spans the rule above it */
.stats.s3>div:nth-child(2){align-items:center;text-align:center}
.stats.s3>div:nth-child(3){align-items:flex-end;text-align:right}
@media (max-width:700px){.stats.s3>div:nth-child(2){align-items:flex-end;text-align:right}}
/* footer tagline: rule and text together run exactly the width of the logo (left edge of the mark to the end of the last A) */
.foot .tagline{width:calc(30px * 640 / 98);box-sizing:border-box;gap:8px;font-size:15px}
.foot .tagline::before{flex:1 1 auto;width:auto;min-width:16px}
/* ---- homepage (11 Oct 2026) ---- */
/* start cards: same two-line title space, so every description starts on one line and every link sits on one line */
.rgrid{gap:20px}
.route{padding:26px 24px 22px}
.route .who{min-height:16px}
.route h3{font-size:20px;line-height:1.25;min-height:2.5em;margin:0 0 10px}
.route p{flex:1 1 auto;margin:0 0 22px}
@media (max-width:700px){.route h3{min-height:0}}
/* projects band: the challenge, what we built, the result; figures under the photo; ratings in the same band */
.proof .cs-head{margin-bottom:32px}
.proof .cs-head .h2s{color:#ffffff;margin:0}
.proof .cs-slide{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}
.cs-t{font:600 clamp(26px,2.4vw,36px)/1.12 var(--fd);letter-spacing:-.01em;color:#ffffff;margin:0 0 22px;text-wrap:balance}
.csx{list-style:none;margin:0 0 22px;padding:0}
.csx li{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid #3a3435}
.csx li:last-child{border-bottom:1px solid #3a3435}
.csx .k{display:flex;align-items:center;gap:8px;font:600 13.5px/1.4 var(--fd);color:#cfcaca}
.csx .k::before{content:"";width:8px;height:8px;border-radius:50%;background:#8a8485;flex:none}
.csx li:nth-child(2) .k::before{background:var(--blue)}
.csx li:nth-child(3) .k::before{background:var(--green)}
.csx li:nth-child(3) .k{color:#a9d3bd}
.csx p{margin:0;color:#e9e5e5;font-size:15px;line-height:1.55}
.cs-side .cs-img{aspect-ratio:16/10}
.cs-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0 0}
.cs-figs dt{font:500 12.5px/1.3 var(--fd);color:#b3adae}
.cs-figs dd{margin:4px 0 0;font:600 17px/1.25 var(--fd);color:#ffffff}
.recs2{margin-top:56px;padding-top:28px;border-top:1px solid #3a3435}
.rech{font:600 14px/1.3 var(--fd);color:#a9d3bd;margin:0 0 22px}
.recrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.rec2 b{display:block;font:300 clamp(34px,3.2vw,44px)/1 var(--fd);letter-spacing:-.02em;color:#ffffff;white-space:nowrap}
.rec2 h4{font:600 16px/1.3 var(--fd);color:#ffffff;margin:12px 0 4px}
.rec2 p{margin:0;color:#b3adae;font-size:14px;line-height:1.5}
@media (max-width:1024px){.proof .cs-slide{grid-template-columns:1fr}.cs-side{order:-1}.recrow{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}}
@media (max-width:700px){.csx li{grid-template-columns:1fr;gap:6px}.cs-figs dd{font-size:15px}}
/* quote section: compact */
.cta>.wrap{padding-top:clamp(56px,6vw,80px);padding-bottom:clamp(56px,6vw,80px);align-items:center}
.cta #cta-h{font-size:clamp(30px,3vw,42px);line-height:1.08}
.cta .contact{margin-top:24px}
#qform{gap:14px}
#qform textarea{min-height:88px}
.proof.sec{padding-top:clamp(64px,7vw,96px);padding-bottom:clamp(64px,7vw,96px)}
.proof .cs-bar{margin-top:32px}
.recs2{margin-top:36px;padding-top:0;border-top:0}
.cs-side .cs-img.fit{aspect-ratio:auto}
.cs-side .cs-img.fit img{height:auto}
/* ---- every menu panel shares the Products frame (11 Oct 2026): intro left, links middle, featured card right ---- */
.smega>.wrap{display:block;padding:28px 40px 32px}
.sm{display:grid;grid-template-columns:300px minmax(0,1fr) 240px;column-gap:40px;align-items:start}
.smi{background:var(--bg2);border-radius:var(--r);padding:14px 14px 16px}
.smt{margin:0;font:600 16px/1.25 var(--fd);color:var(--link)}
.smd{margin:4px 0 0;font-size:13.5px;line-height:1.45;color:var(--fg2)}
.smi .pda{margin:14px 0 0;font-size:14.5px}
.sm .ddl{margin-top:-10px}
.sm .pf{margin:0 0 0 8px}
.pfi img.cover{object-fit:cover;padding:0}
.pfn{display:grid;place-items:center}
.pfn b{font:300 clamp(22px,2vw,28px)/1 var(--fd);letter-spacing:-.02em;color:#201b1c;font-variant-numeric:tabular-nums;white-space:nowrap}
.pf:hover .pfn b{color:#2a58a2}
.sm .smi{grid-column:1;grid-row:1}
.sm .ddl{grid-column:2;grid-row:1;margin-top:0}
.sm .pf{grid-column:3;grid-row:1;margin:0}
.sm{min-height:340px}
.sm .pf{margin-top:12px}
#m-support .ddl{grid-template-rows:repeat(3,auto)}
/* homepage rhythm: white, grey and dark sections alternate (routes grey, projects dark, one team white, rooftop grey, articles white, quote dark) */
.homes-sec{background:var(--bg2)}
.ins{background:var(--bg)}
/* one team: the brand's blue-and-green line instead of three coloured rules; titles share two lines so the text below starts level */
.step,.step:nth-child(1),.step:nth-child(2){border-top:0;padding-top:0}
.step::before{content:"";display:block;width:44px;height:3px;margin:0 0 20px;background:linear-gradient(90deg,var(--blue) 50%,var(--green) 50%)}
@media (min-width:901px){.step h3{min-height:2.5em}}
/* homepage headings: every section opens the same way, eyebrow then a section heading at one size (the quote form keeps a smaller closing heading) */
.routes .rh{margin:0 0 clamp(28px,3vw,40px)}
.proof .cs-head .h2{margin:0}
/* phones: project tabs and the pause button stay on one line and scroll sideways */
@media (max-width:700px){
 .proof .cs-head{gap:16px}
 .proof .cs-ctl{flex-wrap:nowrap;width:calc(100% + 40px);margin:0 -20px;padding:0 20px 4px;overflow-x:auto;scrollbar-width:none}
 .proof .cs-ctl::-webkit-scrollbar{display:none}
 .proof .cs-tabs{flex-wrap:nowrap}
 .proof .cs-tabs button,.proof .cs-play{flex:none;white-space:nowrap}
}
.band>.wrap,.proof>.wrap{min-width:0}
/* ---- homepage as one story (11 Oct 2026): five numbered chapters, each opening the same way: numbered eyebrow, one-line heading, same spacing ---- */
.eyebrow .sn{font-variant-numeric:tabular-nums;color:var(--link);margin-right:10px}
.on-dark .eyebrow .sn,.band .eyebrow .sn,.cta .eyebrow .sn{color:#93b2e4}
.routes>.wrap,.proof.sec,.homes-sec,.ins,.cta>.wrap{padding-top:clamp(64px,7vw,96px);padding-bottom:clamp(64px,7vw,96px)}
.routes .sec-head,.proof .cs-head,.homes-sec .sec-head,.ins .sec-head{margin-bottom:clamp(32px,3.5vw,48px);align-items:end}
.routes .rh{margin:0}
.home-h,.routes .h2,.proof .h2,.homes-sec .h2,.ins .h2,.cta #cta-h{font-size:clamp(32px,3.9vw,54px);line-height:1.05;letter-spacing:-.02em;margin:0}
.cta .eyebrow{margin-bottom:14px}
.cta p.lead{margin-top:18px;max-width:46ch}
/* rooftop: header across the top like every other section, then the picture and the product list side by side */
.homes{align-items:center}
.homes .hlist{margin-top:0}
.homes-links{margin-top:20px}
/* track record: ratings and the one-team facts share one grid and one number style */
.why{margin-top:48px}
.rec2 b small{font-size:.42em;font-weight:400;margin-left:6px;letter-spacing:0}
.rec2.cert h4{margin-top:0}
.rec2.cert p{margin-bottom:14px}
.rec2.cert .lnk{color:#93b2e4}
.cta>.wrap{align-items:start}
.cta .eyebrow{color:#a9d3bd}
/* project titles on one line, a step below the section heading */
.cs-t{font-size:clamp(24px,2.1vw,30px);line-height:1.15}
/* ---- inner pages follow the homepage rules (11 Oct 2026): one-line headings, descriptions below headings, content below its heading ---- */
/* page tops: breadcrumbs, eyebrow and title run the full width; description, actions and figures sit beside the picture */
.phero h1{max-width:none;font-size:clamp(34px,4.2vw,54px);line-height:1.06}
.phero.solo h1{max-width:none}
.phero:not(.solo)>.wrap{align-items:start;row-gap:0}
.phero:not(.solo)>.wrap>div:first-child{display:contents}
.phero:not(.solo)>.wrap>div:first-child>*{grid-column:1}
.phero:not(.solo)>.wrap>div:first-child>.crumbs,.phero:not(.solo)>.wrap>div:first-child>.eyebrow,.phero:not(.solo)>.wrap>div:first-child>h1{grid-column:1/-1}
.phero:not(.solo)>.wrap>.media{grid-column:2;grid-row:4/span 6;margin-top:22px;align-self:start}
@media (max-width:900px){.phero:not(.solo)>.wrap>.media{grid-column:1;grid-row:auto;margin-top:24px}}
/* sections that put the heading left and the content right now stack: heading on top, content below */
.twocol.r37{grid-template-columns:minmax(0,1fr)!important;row-gap:24px}
.twocol.r37>div:first-child .muted{max-width:62ch}
.faq{grid-template-columns:minmax(0,1fr)!important;row-gap:24px}
.faq .qa{max-width:880px}
/* a description always sits under its heading, never to the right of it */
.sec-head{row-gap:14px}
.sec-head>div:first-child{order:1}
.sec-head>.lnk{order:2}
.sec-head>.lead{order:3;flex:1 1 100%;max-width:62ch;margin:0}
/* closing band: eyebrow, one-line heading naming the action, the page's line below, buttons below that */
.ctaband>.wrap{display:block}
.ctaband .eyebrow{color:#a9d3bd;margin:0 0 14px}
.ctaband h2{font:600 clamp(32px,3.9vw,54px)/1.05 var(--fd);letter-spacing:-.02em;max-width:none}
.ctaband p{margin-top:16px}
.ctaband .ctas{margin-top:28px}
/* all-products page: division headings at the section-heading size, with the count and link on the right */
h2.famh{font:600 clamp(26px,2.6vw,36px)/1.15 var(--fd);margin:64px 0 24px;padding-top:28px}
h2.famh small{font:500 14.5px/1.3 var(--fb)}
/* leadership */
.people{display:grid;gap:24px}
.people.p3{grid-template-columns:repeat(3,minmax(0,1fr))}
.people.p4{grid-template-columns:repeat(4,minmax(0,1fr))}
.person{display:flex;flex-direction:column}
.pph{aspect-ratio:4/5;border-radius:var(--r);background:#f6f4f2;display:grid;place-items:end center;overflow:hidden;margin-bottom:18px}
.pph svg{width:62%;height:auto;fill:#d8d3cf}
.person h3{font:600 19px/1.25 var(--fd);margin:0}
.person .role{margin:4px 0 0;font:500 14.5px/1.35 var(--fd);color:var(--link)}
.person .pfocus{margin:12px 0 0;font-size:15px;line-height:1.5;color:var(--fg)}
.person .pbio{margin:8px 0 0;font-size:14px;line-height:1.55;color:var(--fg2)}
@media (max-width:1024px){.people.p4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.people.p3,.people.p4{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.person .pbio{display:none}}
.band .twocol .h2s{font-size:clamp(24px,2.2vw,30px)}
.phero .pstats{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}
.phero .pstats dd{white-space:nowrap}
.sec-head .h2s{margin:0}
.divgap{height:clamp(48px,5vw,72px)}.divgap:last-child{display:none}
.people.p5{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 20px}
@media (max-width:1100px){.people.p5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.people.p5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:701px){.people .pfocus{min-height:4.5em}}
/* blog: one chronological list; rewritten posts link through */
.archive li{display:grid;grid-template-columns:110px minmax(0,1fr) 130px 70px;gap:16px;align-items:baseline}

.archive li.art a{display:contents;color:inherit;text-decoration:none}
.archive li.art span:nth-of-type(1){font-weight:600;color:var(--fg)}
.archive li.art:hover span:nth-of-type(1){color:var(--link)}
.archive .go{display:inline-flex;align-items:center;gap:4px;font:500 14px/1 var(--fd);color:var(--link);justify-self:end}
.archive .go svg{width:14px;height:14px}
@media (max-width:700px){.archive li{grid-template-columns:1fr auto;row-gap:2px}.archive li time{grid-column:1/-1}.archive .c{display:none}}
/* about: three columns for manufacturing, quality control and R&D */
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
@media (max-width:900px){.cols3{grid-template-columns:1fr;gap:32px}}
/* pay online */
.paygrid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:56px;align-items:start}
.qrbox{aspect-ratio:1;border:2px dashed var(--line);border-radius:var(--r);display:grid;place-items:center;text-align:center;color:var(--fg2);font:500 15px/1.4 var(--fd);background:var(--bg2)}
.paysteps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:18px;max-width:62ch}
.paysteps li{counter-increment:s;display:grid;grid-template-columns:40px 1fr;column-gap:14px}
.paysteps li::before{content:counter(s);grid-row:1/span 2;width:32px;height:32px;border-radius:999px;background:var(--tag-bg);color:var(--link);display:grid;place-items:center;font:600 15px/1 var(--fd)}
.paysteps b{font:600 17px/1.3 var(--fd)}
.paysteps span{color:var(--fg2);font-size:15px;margin-top:4px}
@media (max-width:700px){.paygrid{grid-template-columns:1fr;gap:32px}.qrbox{max-width:240px}}
/* leadership (v2): six square portraits in one row; name and designation only; Read more opens the bio */
.people.p6{grid-template-columns:repeat(6,minmax(0,1fr));gap:24px 20px}
.people.p6 .pph{aspect-ratio:1;margin-bottom:14px}
.people.p6 .pph svg{width:58%}
.people.p6 h3{font-size:17px}
.people.p6 .role{font-size:14px}
.pmore{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:0;background:none;border:0;cursor:pointer;font:500 14px/1.2 var(--fd);color:var(--link);align-self:flex-start}
.pmore svg{width:15px;height:15px;transition:transform .2s}
.pmore:hover svg{transform:translateX(3px)}
@media (max-width:1024px){.people.p6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.people.p6{gap:20px 12px}.people.p6 h3{font-size:15px}.people.p6 .role{font-size:13px}}
.biodlg{width:min(560px,calc(100vw - 32px));border:0;border-radius:var(--r);padding:28px;background:var(--bg);color:var(--fg);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.biodlg::backdrop{background:rgba(23,19,20,.6)}
.biohd{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:18px}
.pph.pphsm{width:72px;aspect-ratio:1;margin:0}
.biohd h3{font:600 20px/1.25 var(--fd);margin:0}
.biohd .role{margin:4px 0 0;font:500 14.5px/1.3 var(--fd);color:var(--link)}
.bioclose{color:var(--fg);border:1px solid var(--line);align-self:start}
.biodlg .pfocus{margin:0;font-weight:600;font-size:15.5px}
.biodlg .pbio{margin:10px 0 0;font-size:15px;line-height:1.6;color:var(--fg2)}
.pph.pphsm{width:72px;height:72px;align-self:center}
.pph.pphsm svg{width:60%;fill:#d8d3cf}
@media (max-width:520px){.people.p6 h3{font-size:14px}.people.p6 .role{font-size:12.5px}.pmore{font-size:13px}}
.pph.pphsm svg{width:44px;height:auto}.pph.pphsm{overflow:hidden}
.pph.photo{display:block;background:#eae7e4}
.pph.photo img{width:100%;height:100%;object-fit:cover;display:block}
.people .pph,.pph.pphsm{background:#eae7e4}.people .pph svg{fill:#d3cdc8}

/* ---- WordPress additions ---- */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
body.admin-bar .hdr{top:32px}
@media (max-width:782px){body.admin-bar .hdr{top:46px}}
.prose .wp-block-image img{height:auto;border-radius:var(--r)}
.prose figure{margin:28px 0}
.prose figcaption{font-size:14px;color:var(--fg2);margin-top:8px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* ---- 0.2.4 layout consistency ---- */
/* Page heroes with a picture: two equal halves. All text (heading included) in the left half, the picture in the right half. */
@media (min-width:901px){
 .phero:not(.solo)>.wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(40px,5vw,80px);row-gap:0;align-items:start}
 .phero:not(.solo)>.wrap>div:first-child>*{grid-column:1}
 .phero:not(.solo)>.wrap>div:first-child>.crumbs{grid-column:1/-1;grid-row:1}
 .phero:not(.solo)>.wrap>div:first-child>.eyebrow,.phero:not(.solo)>.wrap>div:first-child>h1{grid-column:1}
 .phero:not(.solo)>.wrap>.media{grid-column:2;grid-row:2/span 8;align-self:center;margin-top:0}
 .phero:not(.solo) h1{font-size:clamp(34px,3.7vw,54px);text-wrap:balance}
 .phero:not(.solo) .lead{max-width:none}
}
/* Figures under a hero: equal gaps between the figures, first flush left, last flush right. */
.phero .pstats,.stats.s3{display:flex;justify-content:space-between;gap:24px 32px}
.phero .pstats>div,.stats.s3>div{flex:0 1 auto;min-width:0}
.phero .pstats>div{width:min-content;min-width:8rem}
.phero .pstats dt{max-width:none}
.stats.s3>div:nth-child(2),.stats.s3>div:nth-child(3){align-items:flex-start;text-align:left}
@media (max-width:640px){
 .phero .pstats{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
 .phero .pstats>div{width:auto;min-width:0}
}
@media (max-width:700px){
 .stats.s3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .stats.s3>div:nth-child(2){align-items:flex-end;text-align:right}
}
/* Home "Track record" band: the section shared the class "proof" with the photo caption overlay and was shifted 24px right and 20px up. */
section.proof{position:relative;inset:auto;display:block;z-index:auto}
/* Projects page: featured case study takes two columns and two rows, so six projects fill three full rows. */
@media (min-width:1025px){
 .pgrid.cases>.pcard:first-child{grid-column:span 2;grid-row:span 2;flex-direction:column}
 .pgrid.cases>.pcard:first-child .im{flex:1 1 auto;aspect-ratio:auto;min-height:300px}
 .pgrid.cases>.pcard:first-child .bd{flex:0 0 auto;padding:22px 26px 24px}
 .pgrid.cases>.pcard:first-child h3{font-size:24px}
}
@media (min-width:641px) and (max-width:1024px){
 .pgrid.cases>.pcard:first-child{grid-column:1/-1}
 .pgrid.cases>.pcard:last-child:nth-child(even){grid-column:1/-1;flex-direction:row}
 .pgrid.cases>.pcard:last-child:nth-child(even) .im{flex:0 0 50%;aspect-ratio:auto}
}
