/* Thames Pool Care concept - "The Balance Window" */
:root{
  --deep:#0A1B3F; --deep-2:#112B5E; --logo:#2654A5; --blue:#0067D1; --aqua:#0089F7; --sky:#8CCBFF;
  --foam:#EEF6FD; --mist:#D6E8F7; --ink:#161922; --body:#2A3346; --muted:#4A5568;
  --line:rgba(10,27,63,.16); --line-inv:rgba(255,255,255,.22);
  --r:4px;
  --display:"Unbounded","Hanken Grotesk",system-ui,sans-serif;
  --text:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:min(1340px,100% - 48px);
  --chrome:124px;--ruler:104px;--strip:84px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;max-width:1920px;margin-inline:auto;background:#fff;color:var(--body);font-family:var(--text);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--deep)}
:focus-visible{outline:3px solid var(--aqua);outline-offset:3px;border-radius:2px}
.wrap{width:var(--wrap);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--deep);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
h1,h2,h3,h4{font-family:var(--display);color:var(--deep);margin:0;font-weight:600;letter-spacing:-.025em;line-height:1.08}
h1{font-size:clamp(2.1rem,3.9vw,4.1rem);font-weight:700;letter-spacing:-.035em;line-height:1.02}
h2{font-size:clamp(1.65rem,2.6vw,2.6rem)}
h3{font-size:clamp(1.15rem,1.5vw,1.45rem);line-height:1.2}
h4{font-size:1.02rem;line-height:1.3;letter-spacing:-.01em}
p{margin:0 0 1em}
.lede{font-size:clamp(1.12rem,1.35vw,1.3rem);line-height:1.55;color:var(--ink)}
ul,ol{padding:0;margin:0}

/* ---------- concept banner + header ---------- */
.concept{background:var(--ink);color:#fff;font-size:.8125rem;line-height:1.3;text-align:center;padding:9px 16px;font-weight:500}
.hdr{position:relative;z-index:30;background:#fff;border-bottom:1px solid var(--line)}
.hdr__in{width:var(--wrap);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px}
.brand{display:block;flex:none}
.brand img{height:78px;width:auto}
.nav{display:flex;align-items:center;gap:6px}
.nav>ul{display:flex;align-items:center;gap:2px;list-style:none;white-space:nowrap}
.nav li{position:relative}
.nav a.nl{display:block;padding:12px 14px;color:var(--deep);font-weight:600;font-size:.95rem;text-decoration:none;border-radius:var(--r)}
.nav a.nl:hover,.nav li:focus-within>a.nl{background:var(--foam);color:var(--deep)}
.nav a.nl[aria-current=page]{box-shadow:inset 0 -3px 0 var(--aqua)}
.nav .caret{display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:8px}
.sub{position:absolute;left:0;top:100%;min-width:300px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--aqua);padding:8px;list-style:none;display:none;box-shadow:0 18px 40px -18px rgba(10,27,63,.35)}
.has-sub:hover>.sub,.has-sub:focus-within>.sub{display:block}
.sub a{display:block;padding:9px 12px;color:var(--ink);text-decoration:none;font-weight:500;font-size:.95rem;border-radius:var(--r)}
.sub a:hover{background:var(--foam);color:var(--deep)}
.call{display:inline-flex;align-items:center;gap:8px;background:var(--deep);color:#fff;text-decoration:none;font-weight:700;padding:12px 18px;border-radius:var(--r);white-space:nowrap;font-size:.95rem;margin-left:8px;transition:background .2s}
.call:hover{background:var(--logo);color:#fff}
.mmenu{display:none}
.mmenu summary{list-style:none;cursor:pointer;font-weight:700;color:var(--deep);padding:12px 16px;border:1px solid var(--line);border-radius:var(--r)}
.mmenu summary::-webkit-details-marker{display:none}
.mmenu[open] summary{background:var(--deep);color:#fff}
.mmenu nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:12px 24px 24px;max-height:75vh;overflow:auto}
.mmenu nav a{display:block;padding:11px 0;color:var(--deep);font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)}
.mmenu nav a.s{font-weight:500;padding-left:16px;color:var(--ink)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;border-radius:var(--r);background:var(--sky);color:var(--deep);font-weight:700;text-decoration:none;border:2px solid var(--sky);transition:background .2s,color .2s,transform .2s;font-size:1rem;line-height:1.2}
.btn:hover{background:#fff;border-color:#fff;color:var(--deep);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn--ghost:hover{background:#fff;color:var(--deep);border-color:#fff}
.btn--deep{background:var(--deep);border-color:var(--deep);color:#fff}
.btn--deep:hover{background:var(--logo);border-color:var(--logo);color:#fff}
.btn--line{background:transparent;border-color:var(--deep);color:var(--deep)}
.btn--line:hover{background:var(--deep);color:#fff;border-color:var(--deep)}

/* ---------- THE BALANCE WINDOW (signature scale) ---------- */
.scale{position:relative;display:block;width:100%;color:#fff;background:var(--deep-2)}
.scale__ticks{list-style:none;display:grid;grid-template-columns:repeat(16,1fr);height:100%;position:relative;z-index:1}
.scale__ticks li{border-left:1px solid var(--line-inv);position:relative;font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.88)}
.scale__ticks li:nth-child(odd){border-left-color:rgba(255,255,255,.5)}
.scale__ticks li span{position:absolute;left:8px;bottom:8px}
.scale__ticks li:nth-child(n+11):nth-child(-n+14){color:var(--deep)}
.scale__ticks li:nth-child(n+11):nth-child(-n+14){border-left-color:rgba(10,27,63,.35)}
.scale__win{position:absolute;top:0;bottom:0;left:62.5%;width:25%;background:var(--sky);z-index:0;transform-origin:left;animation:win 1.1s .25s cubic-bezier(.2,.8,.2,1) both}
.scale__win b{position:absolute;right:12px;top:10px;color:var(--deep);font-family:var(--display);font-size:.8rem;font-weight:700;letter-spacing:-.01em}
.scale--hero{height:var(--ruler)}
.scale--hero .scale__ticks li{padding-top:14px}
.scale--hero .scale__win{border-top:0}
.scale--thin{height:44px}
.scale--thin .scale__ticks li span{display:none}
.scale--thin .scale__ticks li:nth-child(odd){border-left-color:var(--line-inv)}
.scale--thin .scale__win b{top:50%;transform:translateY(-50%);font-size:.7rem}
.scale--on-light{background:var(--mist)}
.scale--on-light .scale__ticks li{border-left-color:rgba(10,27,63,.28);color:var(--deep)}
.scale--on-light .scale__ticks li:nth-child(odd){border-left-color:rgba(10,27,63,.55)}
.scale--on-light .scale__win{background:var(--deep)}
.scale--on-light .scale__win b{color:#fff}
@keyframes win{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- home hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--deep);color:#fff;min-height:clamp(340px,calc(100svh - var(--chrome) - var(--strip)),640px);display:flex;flex-direction:column}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%;z-index:-2;filter:brightness(1.35) saturate(1.15)}
.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,27,63,.96) 0%,rgba(10,27,63,.88) 32%,rgba(10,27,63,.4) 58%,rgba(10,27,63,.12) 100%),linear-gradient(0deg,rgba(10,27,63,.85) 0%,rgba(10,27,63,0) 40%)}
.hero__body{flex:1;display:flex;align-items:center;padding-block:clamp(20px,2.6vw,48px)}
.hero__copy{max-width:min(760px,54%)}
.hero h1{color:#fff;margin-bottom:.45em}
.hero .lede{color:rgba(255,255,255,.92);max-width:52ch;font-size:clamp(1rem,1.2vw,1.18rem);margin-bottom:1.3em}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px}
.hero__num{position:absolute;left:75%;bottom:var(--ruler);transform:translateX(-50%);text-align:center;animation:rise .9s .5s cubic-bezier(.2,.8,.2,1) both;pointer-events:none}
.hero__num b{display:block;font-family:var(--display);font-weight:700;font-size:clamp(5rem,13.5vw,16rem);line-height:.78;letter-spacing:-.06em;color:var(--sky);text-shadow:0 0 60px rgba(10,27,63,.55)}
.hero__num span{display:block;margin-top:14px;font-weight:600;font-size:.95rem;color:#fff;max-width:26ch;margin-inline:auto;line-height:1.35;text-shadow:0 1px 14px rgba(10,27,63,.9)}
.hero__pin{position:absolute;left:75%;bottom:var(--ruler);width:2px;height:22px;background:var(--sky);z-index:1}
.hero .scale{position:relative;z-index:2;margin-top:auto}
@keyframes rise{from{opacity:0;transform:translate(-50%,28px)}to{opacity:1;transform:translate(-50%,0)}}
@media (prefers-reduced-motion:reduce){.scale__win,.hero__num{animation:none}html{scroll-behavior:auto}.btn:hover{transform:none}}

/* ---------- fact strip ---------- */
.facts{background:#fff;border-bottom:1px solid var(--line)}
.facts ul{list-style:none;display:grid;grid-template-columns:repeat(5,1fr)}
.facts li{padding:16px 20px 16px 0;margin-right:20px;border-right:1px solid var(--line);min-height:var(--strip)}
.facts li:last-child{border-right:0;margin-right:0}
.facts strong{display:block;font-family:var(--display);font-size:1rem;color:var(--deep);letter-spacing:-.02em;line-height:1.2;margin-bottom:4px}
.facts span{display:block;font-size:.88rem;line-height:1.4;color:var(--muted)}
.facts a{text-decoration:none;color:inherit}

/* ---------- sections ---------- */
.sec{padding-block:clamp(60px,7.5vw,116px)}
.sec--foam{background:var(--foam)}
.sec--deep{background:var(--deep);color:rgba(255,255,255,.9)}
.sec--deep h2,.sec--deep h3,.sec--deep h4{color:#fff}
.sec--deep a:not(.btn){color:var(--sky)}
.sec--flush{padding-bottom:0}
.sec--tight{padding-block:clamp(40px,5vw,72px)}
.head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(32px,4vw,56px)}
.head p{margin:0;color:var(--muted);max-width:56ch}
.sec--deep .head p{color:rgba(255,255,255,.8)}

/* home: help (asymmetric trio) */
.help{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto auto;gap:20px}
.help__a{text-decoration:none;grid-column:1/8;grid-row:1/3;position:relative;min-height:560px;border-radius:var(--r);overflow:hidden;color:#fff;display:flex;align-items:flex-end;isolation:isolate}
.help__a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.help__a .shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,27,63,.96) 8%,rgba(10,27,63,.45) 55%,rgba(10,27,63,.05) 100%);z-index:-1}
.help__a:hover img{transform:scale(1.04)}
.help__a div{padding:clamp(24px,3vw,44px);max-width:560px}
.help__a h3{color:#fff;font-size:clamp(1.5rem,2.2vw,2.2rem);margin-bottom:.5em}
.help__a p{color:rgba(255,255,255,.92)}
.help__b{grid-column:8/13;display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start;padding:24px;border:1px solid var(--line);border-radius:var(--r);background:#fff;text-decoration:none;color:var(--body);transition:border-color .2s,box-shadow .2s}
.help__b:hover{border-color:var(--logo);box-shadow:0 20px 40px -26px rgba(10,27,63,.5);color:var(--body)}
.help__b img{width:150px;height:190px;object-fit:cover;border-radius:2px}
.help__b h3{margin-bottom:.4em}
.help__b p{margin:0;font-size:.98rem}
.more{display:inline-block;margin-top:.8em;font-weight:700;color:var(--blue);text-decoration:none;border-bottom:2px solid var(--aqua)}
.help__a .more{color:#fff}

/* home: issues (typographic index + photo plates) */
.issues{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,80px);align-items:start}
.issues ol{list-style:none;border-top:1px solid var(--line)}
.issues li{border-bottom:1px solid var(--line)}
.issues a{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:clamp(18px,2.3vw,30px) 0;text-decoration:none;color:var(--deep)}
.issues a b{font-family:var(--display);font-size:clamp(1.8rem,3.7vw,3.6rem);white-space:nowrap;font-weight:700;letter-spacing:-.045em;line-height:1;transition:color .2s,padding .25s}
.issues a:hover b{color:var(--blue);padding-left:12px}
.issues a small{font-size:.95rem;color:var(--muted);max-width:26ch;text-align:right;line-height:1.35}
.plates{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.plates figure{margin:0;border-radius:var(--r);overflow:hidden;background:var(--mist)}
.plates figure img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.plates figure:nth-child(1){grid-column:1/2}
.plates figure:nth-child(2){margin-top:48px}
.plates figure:nth-child(3){grid-column:1/3;margin-inline:25%}
.plates figcaption{padding:10px 14px;font-weight:600;font-size:.9rem;color:var(--deep)}

/* home: chemistry (dark, 4 columns hairlines) */
.chem{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-inv)}
.chem>div{padding:28px 28px 8px 0;margin-right:28px;border-right:1px solid var(--line-inv)}
.chem>div:last-child{border-right:0;margin-right:0}
.chem h3{margin-bottom:.5em}
.chem p{font-size:.98rem;color:rgba(255,255,255,.82)}
.chem ul{list-style:none;font-size:.95rem;color:#fff}
.chem li{padding:6px 0;border-top:1px solid var(--line-inv)}
.chem__scale{margin-top:clamp(28px,4vw,56px)}

/* home: about editorial */
.about{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,6vw,96px);align-items:center}
.about blockquote{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,2.5vw,2.4rem);letter-spacing:-.03em;line-height:1.18;color:var(--deep)}
.about .brands{display:flex;flex-wrap:wrap;gap:6px 22px;margin:1.4em 0 0;padding:1em 0 0;border-top:1px solid var(--line);list-style:none;font-weight:700;color:var(--deep)}
.frame{position:relative;border-radius:var(--r);overflow:hidden;margin:0}
.frame img{width:100%;height:100%;object-fit:cover}
.frame--tall{aspect-ratio:5/6}
.about__img{position:relative}
.about__img figure{margin:0}
.about__img .tag{position:absolute;left:-28px;bottom:32px;background:var(--deep);color:#fff;padding:18px 22px;border-radius:var(--r);max-width:260px;font-size:.95rem;line-height:1.4;box-shadow:0 20px 40px -20px rgba(10,27,63,.6)}
.about__img .tag b{display:block;font-family:var(--display);font-size:1.4rem;letter-spacing:-.03em;color:var(--sky);margin-bottom:2px}

/* home: reviews */
.rev{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,6vw,96px)}
.rev__big{margin:0}
.rev__big p{font-family:var(--display);font-size:clamp(1.5rem,2.7vw,2.7rem);font-weight:600;letter-spacing:-.035em;line-height:1.15;color:var(--deep)}
.rev__big cite{font-style:normal;font-weight:700;color:var(--blue)}
.rev__list{list-style:none;border-top:1px solid var(--line)}
.rev__list li{padding:20px 0;border-bottom:1px solid var(--line)}
.rev__list p{margin:0 0 6px;font-size:1rem}
.rev__list cite{font-style:normal;font-weight:700;color:var(--deep);font-size:.9rem}
.rev__list time{color:var(--muted);font-size:.85rem;margin-left:8px}

/* areas (giant names) */
.areas{list-style:none;border-top:1px solid var(--line-inv)}
.areas li{border-bottom:1px solid var(--line-inv)}
.areas a{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:clamp(10px,1.4vw,20px) 0;text-decoration:none;color:#fff}
.areas b{font-family:var(--display);font-weight:600;font-size:clamp(1.7rem,4.6vw,4.4rem);letter-spacing:-.045em;line-height:1.05;transition:color .2s,padding .25s}
.areas a:hover b{color:var(--sky);padding-left:12px}
.areas span{color:rgba(255,255,255,.78);font-size:.95rem;text-align:right}
.areas--sm b{font-size:clamp(1.3rem,2.4vw,2.2rem)}

/* CTA */
.cta{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(24px,5vw,80px);align-items:center}
.cta .tel{font-family:var(--display);font-weight:700;font-size:clamp(2rem,5.2vw,5.4rem);letter-spacing:-.05em;line-height:1;color:#fff;text-decoration:none;display:block}
.cta .tel:hover{color:var(--sky)}
.cta p{color:rgba(255,255,255,.88)}

/* ---------- inner heroes ---------- */
.ph{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--deep);min-height:340px;display:flex;flex-direction:column}
.ph__body{flex:1;display:flex;align-items:center;padding-block:clamp(28px,4vw,52px)}
.ph h1{color:#fff;font-size:clamp(1.9rem,3.4vw,3.5rem)}
.ph .lede{color:rgba(255,255,255,.9);font-size:1.08rem;max-width:56ch;margin:.8em 0 0}
.crumbs{font-size:.85rem;margin:0 0 14px;color:rgba(255,255,255,.8)}
.crumbs a{color:#fff;text-decoration-color:rgba(255,255,255,.4)}
.crumbs a:hover{color:var(--sky)}
.ph .scale{position:relative;z-index:2;margin-top:auto}
/* split */
.ph--split .ph__img{position:absolute;right:0;top:0;bottom:0;width:48%;z-index:-2}
.ph--split .ph__img img{width:100%;height:100%;object-fit:cover}
.ph--split .shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--deep) 0%,var(--deep) 50%,rgba(10,27,63,.75) 60%,rgba(10,27,63,.1) 100%)}
.ph--split .ph__copy{max-width:min(640px,54%)}
/* photo */
.ph--photo{min-height:380px}
.ph--photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.ph--photo .shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(10,27,63,.95) 12%,rgba(10,27,63,.55) 60%,rgba(10,27,63,.25) 100%)}
.ph--photo .ph__body{align-items:flex-end}
.ph--photo .ph__copy{max-width:760px}
/* type (towns, hubs) */
.ph--type{background:var(--foam);color:var(--deep)}
.ph--type h1{color:var(--deep);font-size:clamp(2.2rem,7vw,7.4rem);letter-spacing:-.06em;line-height:.95}
.ph--type .lede{color:var(--ink)}
.ph--type .crumbs{color:var(--muted)}
.ph--type .crumbs a{color:var(--blue)}
.ph--type .ph__sub{display:block;font-family:var(--text);font-size:clamp(1rem,1.5vw,1.35rem);letter-spacing:0;font-weight:600;color:var(--blue);margin-bottom:10px}
/* gauge (tall scale) */
.ph--gauge .scale--tall{height:150px}
.ph--gauge .scale--tall .scale__ticks li{padding-top:16px}
.ph--gauge .ph__body{padding-bottom:12px}

/* ---------- inner body ---------- */
.aside-grid{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.aside{position:sticky;top:24px;border-top:4px solid var(--deep);padding-top:20px}
.aside h2{font-size:1.1rem;margin-bottom:.9em}
.aside dl{margin:0}
.aside dt{font-family:var(--display);font-size:1.7rem;font-weight:700;letter-spacing:-.04em;color:var(--blue);line-height:1.1;margin-top:18px}
.aside dd{margin:2px 0 0;font-size:.95rem;color:var(--muted);line-height:1.4}
.prose{max-width:74ch}
.prose h2{margin:1.8em 0 .6em;font-size:clamp(1.4rem,2vw,2rem)}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.6em 0 .5em}
.prose ul{margin:0 0 1.2em 1.2em}
.prose li{margin:.35em 0}
.prose li::marker{color:var(--aqua)}
.prose strong{color:var(--deep)}
.doc{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:1em 0 0}
.doc a{display:inline-flex;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;font-weight:600;font-size:.92rem;color:var(--deep);background:#fff}
.doc a:hover{border-color:var(--logo);background:var(--foam)}
.note{border-left:4px solid var(--aqua);background:var(--foam);padding:16px 20px;border-radius:0 var(--r) var(--r) 0;margin:1.4em 0}
.note p:last-child{margin:0}

/* big figure statement */
.stat{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,4vw,64px);align-items:center}
.stat b{font-family:var(--display);font-weight:700;font-size:clamp(4.5rem,13vw,13rem);line-height:.82;letter-spacing:-.07em;color:var(--sky)}
.stat p{font-size:clamp(1.1rem,1.6vw,1.5rem);max-width:34ch;margin:0;color:#fff}
.stat p strong{color:#fff}

/* three-column hairline list */
.trio{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--deep)}
.trio>div{padding:26px 28px 8px 0;margin-right:28px;border-right:1px solid var(--line)}
.trio>div:last-child{border-right:0;margin-right:0}
.trio h3{margin-bottom:.6em}
.trio p{font-size:.98rem}
.trio--4{grid-template-columns:repeat(4,1fr)}
.sec--deep .trio{border-top-color:var(--sky)}
.sec--deep .trio>div{border-right-color:var(--line-inv)}

/* compare two */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.duo>div{padding:clamp(24px,3vw,44px)}
.duo>div+div{border-left:1px solid var(--line);background:var(--foam)}
.duo h2,.duo h3{margin-bottom:.5em}
.duo .fig{margin:0 0 20px;background:#fff;border-radius:var(--r);overflow:hidden}
.duo .fig img{width:100%;height:150px;object-fit:contain;padding:12px}
.duo .fig--photo img{object-fit:cover;padding:0}
.chips{list-style:none;display:grid;gap:0;margin:1em 0 0;border-top:1px solid var(--line)}
.chips li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.97rem}
.chips b{color:var(--deep)}

/* table */
.tblw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
table{border-collapse:collapse;width:100%;min-width:680px}
th,td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line);font-size:.97rem;vertical-align:top}
thead th{background:var(--deep);color:#fff;font-family:var(--display);font-weight:600;font-size:.95rem;letter-spacing:-.01em;border-bottom:0}
tbody th{color:var(--deep);font-weight:700;background:var(--foam);white-space:nowrap}
tbody tr:last-child>*{border-bottom:0}
tbody tr:hover td{background:#F7FBFE}

/* ladder (servicing) */
.ladder{border-top:2px solid var(--deep)}
.ladder article{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,4fr) minmax(0,4fr);gap:clamp(20px,3vw,48px);padding:clamp(24px,3vw,44px) 0;border-bottom:1px solid var(--line)}
.ladder h3{font-size:clamp(1.8rem,3.4vw,3.2rem);letter-spacing:-.05em}
.ladder h3 small{display:block;font-family:var(--text);font-weight:600;font-size:1rem;letter-spacing:0;color:var(--muted);margin-top:8px}
.ladder h4{margin-bottom:.5em;color:var(--blue)}
.ladder h4.con{color:var(--ink)}
.ladder ul{list-style:none}
.ladder li{padding:8px 0;border-top:1px solid var(--line);font-size:.97rem}

/* photo + text bands */
.band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch;border-radius:var(--r);overflow:hidden;background:var(--deep);color:#fff}
.band__img img{width:100%;height:100%;min-height:340px;object-fit:cover}
.band__txt{padding:clamp(28px,4vw,60px);display:flex;flex-direction:column;justify-content:center}
.band__txt h2{color:#fff;margin-bottom:.6em}
.band__txt p{color:rgba(255,255,255,.9)}
.band--rev{direction:rtl}.band--rev>*{direction:ltr}

/* product rows (robots) */
.prod{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.prod>article{padding:24px;border-right:1px solid var(--line);background:#fff;display:flex;flex-direction:column}
.prod>article:last-child{border-right:0}
.prod img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff;margin-bottom:12px}
.prod h3{font-size:1.15rem;margin-bottom:.2em}
.prod .for{font-weight:700;color:var(--blue);margin-bottom:.8em}
.prod ul{list-style:none;font-size:.92rem;margin-top:auto}
.prod li{padding:7px 0;border-top:1px solid var(--line)}

/* product shelf (chemicals) */
.shelf{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(24px,5vw,80px);padding-block:clamp(32px,4vw,56px);border-top:1px solid var(--line)}
.shelf:first-of-type{border-top:2px solid var(--deep)}
.shelf h3{font-size:clamp(1.5rem,2.4vw,2.2rem);margin-bottom:.4em}
.shelf__r{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:32px;align-items:start}
.shelf__r img{width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px}
.pl{list-style:none;columns:2;column-gap:28px}
.pl li{padding:7px 0;border-top:1px solid var(--line);break-inside:avoid;font-weight:600;color:var(--deep);font-size:.97rem}

/* mini photo strip */
.strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.strip img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r)}

/* hub lists */
.hub{list-style:none;border-top:2px solid var(--deep)}
.hub li{border-bottom:1px solid var(--line)}
.hub a{display:grid;grid-template-columns:96px minmax(0,5fr) minmax(0,6fr) auto;gap:clamp(16px,3vw,40px);align-items:center;padding:20px 0;text-decoration:none;color:var(--body)}
.hub img{width:96px;height:72px;object-fit:cover;border-radius:2px}
.hub b{font-family:var(--display);font-size:clamp(1.1rem,1.7vw,1.6rem);letter-spacing:-.03em;color:var(--deep);line-height:1.15;transition:color .2s}
.hub a:hover b{color:var(--blue)}
.hub span{font-size:.97rem}
.hub i{font-style:normal;font-weight:700;color:var(--blue)}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,80px)}
.big-link{display:block;font-family:var(--display);font-weight:700;font-size:clamp(1.6rem,3.6vw,3.6rem);letter-spacing:-.05em;line-height:1.05;color:var(--deep);text-decoration:none;word-break:break-word}
.big-link:hover{color:var(--blue)}
.kv{border-top:2px solid var(--deep);margin-top:28px}
.kv div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.kv dt{font-weight:700;color:var(--deep)}
.kv dd{margin:0}

/* local pages */
.plan{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.plan>div{padding:28px;border-right:1px solid var(--line)}
.plan>div:last-child{border-right:0}
.plan h3{font-size:1.5rem;letter-spacing:-.04em;margin-bottom:.5em}
.plan p{font-size:.97rem;margin:0}
.nearby{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none}
.nearby a{font-weight:700;text-decoration:none;border-bottom:2px solid var(--aqua);color:var(--deep)}

/* footer */
.ftr{background:var(--deep);color:rgba(255,255,255,.86);font-size:.97rem}
.ftr a{color:#fff;text-decoration-color:rgba(255,255,255,.4)}
.ftr a:hover{color:var(--sky)}
.ftr__top{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:clamp(24px,4vw,64px);padding-block:clamp(44px,5vw,72px)}
.ftr h2{font-size:1rem;color:#fff;margin-bottom:1em;letter-spacing:-.01em}
.ftr ul{list-style:none}
.ftr li{padding:4px 0}
.ftr__logo{display:inline-block;background:#fff;padding:6px 12px;border-radius:var(--r);margin-bottom:18px}
.ftr__logo img{height:72px;width:auto}
.ftr__bot{border-top:1px solid var(--line-inv);padding-block:20px;font-size:.88rem;color:rgba(255,255,255,.82)}
.ftr__bot p{margin:0}
.soc{display:flex;gap:16px;flex-wrap:wrap}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .nav a.nl{padding:12px 10px}
  .call{padding:11px 14px}
}
@media (max-width:1100px){
  .nav{display:none}
  .mmenu{display:block}
  .hdr__in{min-height:72px}
  .brand img{height:62px}
  .hero__copy{max-width:100%}
  .hero__num{left:auto;right:4%;transform:none;animation:none}
  .hero__num b{font-size:clamp(4.5rem,18vw,9rem)}
  .hero__num span,.hero__pin{display:none}
  .help__a{grid-column:1/13;grid-row:auto;min-height:420px}
  .help__b{grid-column:1/13}
  .issues,.about,.rev,.cta,.contact,.head,.aside-grid,.shelf{grid-template-columns:1fr}
  .aside{position:static}
  .ph--split .ph__img{width:100%;opacity:.35}
  .ph--split .ph__copy{max-width:100%}
  .facts ul{grid-template-columns:repeat(2,1fr)}
  .facts li{border-right:0;border-bottom:1px solid var(--line);margin:0;padding-right:0}
  .chem,.prod,.trio,.trio--4,.plan,.ftr__top{grid-template-columns:1fr 1fr}
  .chem>div,.trio>div,.plan>div{border-right:0;margin-right:0}
  .prod>article{border-bottom:1px solid var(--line)}
  .ladder article{grid-template-columns:1fr}
  .duo,.band{grid-template-columns:1fr}
  .duo>div+div{border-left:0;border-top:1px solid var(--line)}
  .about__img .tag{left:12px}
  .hub a{grid-template-columns:80px 1fr auto}
  .hub span{display:none}
}
@media (max-width:640px){
  :root{--wrap:min(1340px,100% - 32px)}
  body{font-size:1rem}
  .chem,.prod,.trio,.trio--4,.plan,.ftr__top,.plates{grid-template-columns:1fr}
  .plates figure:nth-child(3){grid-column:auto;margin-inline:0}
  .plates figure:nth-child(2){margin-top:0}
  .help__b{grid-template-columns:96px 1fr;padding:16px}
  .help__b img{width:96px;height:130px}
  .issues a{grid-template-columns:1fr}
  .issues a small{text-align:left}
  .scale--hero{height:84px}
  .scale__ticks li{font-size:.7rem}
  .scale__ticks li span{left:3px}
  .scale__win b{font-size:.62rem;right:6px}
  .hero__num{position:static;transform:none;text-align:left;padding:0 16px 8px}
  .hero{min-height:auto}
  .hero__body{padding-block:28px 12px}
  .hero__copy{max-width:100%}
  .stat{grid-template-columns:1fr}
  .facts ul{grid-template-columns:1fr}
  .pl{columns:1}
  .shelf__r{grid-template-columns:1fr}
  .shelf__r img{max-width:220px}
  .kv div{grid-template-columns:1fr;gap:2px}
  .strip{grid-template-columns:repeat(2,1fr)}
  .ph--type h1{font-size:clamp(2.2rem,13vw,3.4rem)}
  .call.hd{display:none}
}
.sec--deep .areas a,.sec--deep .cta .tel{color:#fff}
.sec--deep .areas a:hover,.sec--deep .cta .tel:hover{color:var(--sky)}
.sec--foam .stat b{color:var(--blue)}
.sec--foam .stat p,.sec--foam .stat p strong{color:var(--ink)}

@media (max-height:760px) and (min-width:1101px){
  :root{--ruler:76px}
  .hero h1{font-size:clamp(2rem,5.4svh,3.4rem)}
  .hero .lede{font-size:.98rem;margin-bottom:.9em}
  .hero__body{padding-block:18px}
  .hero__num b{font-size:clamp(4.5rem,11vw,10rem)}
  .scale--hero .scale__ticks li{padding-top:8px}
}
@media (max-height:640px) and (min-width:1101px){.hero .lede{display:none}}
@media (max-width:1100px){
  .facts ul{grid-template-columns:repeat(5,1fr)}
  .facts li{border-bottom:0;border-right:1px solid var(--line);margin-right:12px;padding-right:12px}
  .facts li:last-child{border-right:0}
  .facts strong{font-size:.82rem}.facts span{font-size:.78rem}
}
@media (max-width:760px){
  .facts ul{grid-template-columns:1fr 1fr}
  .facts li{border-right:0;border-bottom:1px solid var(--line);margin-right:0;min-height:0}
  .facts strong{font-size:.9rem}.facts span{font-size:.85rem}
}
@media (max-width:640px){.facts ul{grid-template-columns:1fr}}
