/* ============ tokens ============ */
:root{
  --display:"Space Grotesk",system-ui,sans-serif;
  --body:"Nunito Sans",system-ui,-apple-system,sans-serif;
  --ink:#14202b;
  --surface:#ffffff;
  --surface-alt:#f1f1f1;
  --deep:#0f1820;
  --panel:#1b2937;
  --muted:#54626e;
  --line:rgba(20,32,43,.14);
  --line-d:rgba(255,255,255,.14);
  --brand:#0274be;
  --brand-ink:#01598f;
  --brand-lite:#7cc4f2;
  --teal:#12a3b4;
  --focus:#6f5bf5;
  --r:8px;
  --r-img:12px;
  --pad:clamp(56px,8.5vw,124px);
  --ease:cubic-bezier(.16,1,.3,1);
}
/* ============ base ============ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:var(--surface);color:var(--ink);
  font-family:var(--body);font-weight:400;
  font-size:clamp(1.0625rem,.98rem + .35vw,1.125rem);line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,video,iframe,svg{max-width:100%;height:auto;}
img{display:block;}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;color:var(--ink);line-height:1.12;letter-spacing:-.018em;margin:0;text-wrap:balance;}
h1{font-size:clamp(2.05rem,1.35rem + 3.1vw,4rem);}
h2{font-size:clamp(1.6rem,1.18rem + 1.85vw,2.55rem);}
h3{font-size:clamp(1.08rem,1.02rem + .3vw,1.25rem);letter-spacing:-.01em;}
p{margin:0 0 1.1em;}
p:last-child{margin-bottom:0;}
a{color:var(--brand-ink);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .16s var(--ease);}
a:hover{color:var(--ink);}
::selection{background:var(--brand);color:#fff;}
caret-color:var(--brand);
input,textarea{caret-color:var(--brand);}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px;}
*::-webkit-scrollbar{width:11px;height:11px;}
*::-webkit-scrollbar-track{background:var(--surface-alt);}
*::-webkit-scrollbar-thumb{background:#b6c0c8;border-radius:99px;border:3px solid var(--surface-alt);}
*::-webkit-scrollbar-thumb:hover{background:var(--brand);}
/* ============ layout ============ */
.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(18px,5vw,48px);}
section{padding-block:var(--pad);scroll-margin-top:86px;}
.s-alt{background:var(--surface-alt);}
.s-dark{background:var(--ink);color:#fff;}
.s-dark h2,.s-dark h3{color:#fff;}
.s-dark a{color:var(--brand-lite);}
.s-dark a:hover{color:#fff;}
.lede{font-size:clamp(1.09rem,1.02rem + .4vw,1.28rem);line-height:1.6;color:var(--muted);max-width:62ch;}
.s-dark .lede{color:#ccd6de;}
.prose{max-width:68ch;}
.eyebrow{display:block;font-family:var(--display);font-weight:600;font-size:.75rem;line-height:1.3;letter-spacing:.145em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;}
.eyebrow::after{content:"";display:block;width:34px;height:1px;background:var(--brand);margin-top:11px;}
.s-dark .eyebrow{color:#93a3af;}
.s-dark .eyebrow::after{background:var(--brand-lite);}
.head{margin-bottom:clamp(30px,4vw,54px);}
.head .lede{margin-top:16px;}
.num{font-variant-numeric:tabular-nums;}
/* ============ buttons ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  min-height:52px;padding:14px 26px;border-radius:var(--r);
  font-family:var(--display);font-weight:600;font-size:1.0625rem;letter-spacing:-.005em;
  text-decoration:none;border:1px solid transparent;cursor:pointer;
  font-variant-numeric:tabular-nums;
  transition:background-color .17s var(--ease),color .17s var(--ease),border-color .17s var(--ease),transform .17s var(--ease),box-shadow .17s var(--ease);
}
.btn-1{background:var(--brand-ink);color:#fff;box-shadow:0 1px 2px rgba(20,32,43,.16);}
.btn-1:hover{background:var(--ink);color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px -8px rgba(20,32,43,.44);}
.btn-1:active{transform:translateY(0);}
.btn-2{background:transparent;color:var(--brand-ink);border-color:rgba(2,116,190,.42);}
.btn-2:hover{border-color:var(--brand-ink);background:rgba(2,116,190,.07);color:var(--brand-ink);transform:translateY(-2px);}
.s-dark .btn-1{background:var(--brand);color:#fff;}
.s-dark .btn-1:hover{background:var(--brand-lite);color:var(--ink);}
.s-dark .btn-2{color:#fff;border-color:rgba(255,255,255,.4);}
.s-dark .btn-2:hover{border-color:#fff;background:rgba(255,255,255,.09);color:#fff;}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
/* ============ header ============ */
.site-head{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
}
.hd{display:flex;align-items:center;gap:18px;min-height:68px;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto;flex-shrink:0;}
.brand img{width:auto;height:38px;max-height:38px;max-width:170px;object-fit:contain;}
.brand span{font-family:var(--display);font-weight:700;font-size:1.02rem;color:var(--ink);letter-spacing:-.02em;}
.nav{display:none;gap:26px;align-items:center;}
.nav a{
  font-family:var(--display);font-weight:500;font-size:.945rem;color:var(--muted);
  text-decoration:none;padding:6px 0;position:relative;
  transition:color .17s var(--ease);
}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--brand);transition:right .28s var(--ease);}
.nav a:hover{color:var(--ink);}
.nav a:hover::after{right:0;}
.hd-cta{display:none;min-height:44px;padding:10px 20px;font-size:.98rem;}
@media (min-width:900px){.nav{display:flex;}.hd-cta{display:inline-flex;}}
@media (min-width:640px){.brand span{font-size:1.1rem;}}
/* ============ hero ============ */
.hero{overflow-x:clip;padding-block:clamp(40px,6vw,88px) clamp(48px,7vw,104px);}
.hero-inner{display:grid;gap:clamp(30px,5vw,64px);align-items:center;}
.hero h1{margin-bottom:0;}
.hero .rule{width:56px;height:1px;background:var(--brand);margin:0 0 22px;}
.hero .lede{margin-top:22px;}
.hero-media{position:relative;border-radius:var(--r-img);overflow:hidden;background:var(--surface-alt);box-shadow:0 24px 48px -30px rgba(20,32,43,.5);}
.hero-media img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.hero-tag{
  position:absolute;left:14px;bottom:14px;
  background:rgba(15,24,32,.9);color:#fff;border-radius:6px;
  font-family:var(--display);font-weight:600;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;
  padding:8px 13px;
}
@media (min-width:1024px){
  .hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);}
  .hero-media img{aspect-ratio:5/4;}
}
@media (min-width:1280px){.hero-media{margin-right:-7vw;}}
/* ============ trust band ============ */
.trust{padding-block:clamp(30px,3.6vw,44px);border-block:1px solid var(--line);background:var(--surface-alt);}
.trust ul{list-style:none;margin:0;padding:0;display:grid;gap:22px 26px;grid-template-columns:repeat(2,minmax(0,1fr));}
.trust li{min-width:0;}
.tb-k{font-family:var(--display);font-weight:700;font-size:clamp(1.02rem,.95rem + .34vw,1.2rem);color:var(--brand-ink);margin:0 0 3px;letter-spacing:-.015em;font-variant-numeric:tabular-nums;}
.tb-v{margin:0;font-size:.94rem;line-height:1.45;color:var(--muted);}
@media (min-width:760px){
  .trust ul{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;}
  .trust li{padding-inline:clamp(14px,2vw,26px);border-left:1px solid var(--line);}
  .trust li:first-child{padding-left:0;border-left:0;}
}
/* ============ problem ============ */
.pains{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:26px;}
.pains li{display:flex;gap:15px;align-items:flex-start;}
.pains svg{flex:0 0 auto;width:23px;height:23px;color:var(--brand-ink);margin-top:2px;}
.pains h3{margin:0 0 4px;}
.pains p{margin:0;font-size:.985rem;color:var(--muted);line-height:1.55;}
@media (min-width:700px){.pains{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 40px;}}
.split{display:grid;gap:clamp(32px,4.5vw,60px);align-items:start;}
@media (min-width:1000px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
/* ============ gallery ============ */
.gal{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));}
.gal figure{margin:0;border-radius:var(--r-img);overflow:hidden;background:#dfe4e8;position:relative;}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s var(--ease);}
.gal figure:hover img{transform:scale(1.045);}
.gal .wide{grid-column:span 2;}
.gal .wide img{aspect-ratio:16/9;}
@media (min-width:820px){
  .gal{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
  .gal .wide{grid-column:span 2;}
}
/* ============ services (glass on navy) ============ */
.svc{display:grid;gap:20px;grid-template-columns:minmax(0,1fr);}
@media (min-width:640px){.svc{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1000px){.svc{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}}
.card{
  display:flex;flex-direction:column;padding:16px;
  background:rgba(255,255,255,.05);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.15);border-radius:var(--r);
  box-shadow:0 0 15px rgba(255,255,255,.07),0 0 30px rgba(120,180,255,.05);
  transition:transform .22s var(--ease),border-color .22s var(--ease),background-color .22s var(--ease),box-shadow .22s var(--ease);
}
.card:hover{transform:translateY(-4px);border-color:rgba(124,196,242,.5);background:rgba(255,255,255,.08);box-shadow:0 18px 34px -22px rgba(0,0,0,.85),0 0 34px rgba(120,180,255,.1);}
.card figure{margin:0 0 16px;border-radius:var(--r-img);overflow:hidden;background:var(--panel);}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover;}
.card h3{margin:0 0 8px;}
.card p{margin:0;color:#ccd6de;font-size:.96rem;line-height:1.55;}
.also{margin-top:34px;padding-top:26px;border-top:1px solid var(--line-d);}
.also p{margin:0;color:#ccd6de;font-size:.985rem;}
.also strong{color:#fff;font-weight:700;}
/* ============ pressure chart ============ */
.chart{
  margin-top:clamp(30px,4vw,46px);
  border:1px solid var(--line);border-radius:var(--r-img);
  background:var(--surface);overflow-x:auto;
}
.chart:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.chart table{width:100%;border-collapse:collapse;min-width:660px;}
.chart caption{
  text-align:left;padding:20px 22px 0;font-size:.875rem;color:var(--muted);
  font-family:var(--display);font-weight:500;letter-spacing:.01em;
}
.chart th,.chart td{padding:15px 22px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);}
.chart thead th{
  font-family:var(--display);font-weight:600;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);padding-top:18px;padding-bottom:13px;
}
.chart tbody th{font-family:var(--display);font-weight:600;font-size:1rem;color:var(--ink);white-space:nowrap;}
.chart tbody tr:nth-child(odd){background:rgba(2,116,190,.035);}
.chart tbody tr:last-child th,.chart tbody tr:last-child td{border-bottom:0;}
.chart .psi{font-variant-numeric:tabular-nums;font-weight:700;color:var(--brand-ink);white-space:nowrap;}
.chart .note{color:var(--muted);font-size:.94rem;line-height:1.45;}
.track{display:block;width:132px;height:8px;border-radius:99px;background:rgba(20,32,43,.1);overflow:hidden;}
.bar{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand) 0%,var(--brand-ink) 100%);width:var(--w);}
html.js-rv .bar{width:0;}
html.js-rv .is-in .bar{width:var(--w);transition:width .95s var(--ease);transition-delay:var(--bd,0ms);}
/* ============ process rail ============ */
.rail{display:grid;gap:30px;counter-reset:step;position:relative;}
.step{position:relative;padding-top:18px;border-top:1px solid var(--line);}
.step .n{
  font-family:var(--display);font-weight:700;font-size:2.5rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px var(--brand);
  display:block;margin-bottom:14px;font-variant-numeric:tabular-nums;
}
.step h3{margin:0 0 9px;}
.step p{margin:0;font-size:.965rem;line-height:1.58;color:var(--muted);}
@media (min-width:900px){.rail{grid-template-columns:repeat(5,minmax(0,1fr));gap:26px;}}
/* ============ faq ============ */
.faq-box{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-img);
  padding:clamp(22px,3.4vw,40px);box-shadow:0 2px 3px rgba(20,32,43,.03);
}
.faq-list{display:grid;gap:0;margin-top:24px;}
.faq-item{padding-block:22px;border-bottom:1px solid var(--line);}
.faq-item:first-child{padding-top:0;}
.faq-item:last-child{border-bottom:0;padding-bottom:0;}
.faq-item h3{margin:0 0 9px;}
.faq-item p{margin:0 0 .7em;font-size:.985rem;line-height:1.6;color:var(--muted);}
.faq-item p:last-child{margin-bottom:0;}
.faq-item p strong{color:var(--ink);font-weight:700;}
@media (min-width:920px){
  .faq-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px;}
  .faq-item:first-child{padding-top:22px;}
  .faq-item:nth-child(1),.faq-item:nth-child(2){padding-top:0;}
  .faq-item:last-child{padding-bottom:22px;}
  .faq-item:nth-last-child(-n+2){border-bottom:0;padding-bottom:0;}
}
/* ============ areas ============ */
.towns{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:9px;}
.towns li{
  font-family:var(--display);font-weight:500;font-size:.9rem;
  padding:7px 13px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);color:var(--ink);
  transition:border-color .17s var(--ease),color .17s var(--ease),background-color .17s var(--ease);
}
.towns li:hover{border-color:var(--brand);color:var(--brand-ink);background:rgba(2,116,190,.05);}
.towns li.lead{background:var(--brand-ink);border-color:var(--brand-ink);color:#fff;font-weight:700;}
.towns li.lead:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.locs{list-style:none;margin:0;padding:0;display:grid;gap:20px;}
.locs li{padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);}
.locs h3{margin:0 0 7px;font-size:1.05rem;}
.locs address{font-style:normal;font-size:.955rem;line-height:1.55;color:var(--muted);}
.locs a{font-weight:700;font-variant-numeric:tabular-nums;}
@media (min-width:700px){.locs{grid-template-columns:repeat(3,minmax(0,1fr));}}
.map{margin-top:clamp(28px,3.6vw,42px);border-radius:var(--r-img);overflow:hidden;border:1px solid var(--line);background:var(--surface-alt);}
.map iframe{display:block;width:100%;height:340px;border:0;}
/* ============ final cta ============ */
.cta-grid{display:grid;gap:clamp(30px,4vw,56px);align-items:center;}
@media (min-width:960px){.cta-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);}}
.cta-facts{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line-d);border:1px solid var(--line-d);border-radius:var(--r);overflow:hidden;}
.cta-facts li{background:var(--ink);padding:16px 20px;display:flex;justify-content:space-between;gap:16px;align-items:baseline;flex-wrap:wrap;}
.cta-facts dt,.cta-facts .k{font-family:var(--display);font-weight:600;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:#93a3af;}
.cta-facts .v{font-weight:700;color:#fff;font-variant-numeric:tabular-nums;text-align:right;}
.cta-facts .v a{color:var(--brand-lite);text-decoration:none;}
.cta-facts .v a:hover{color:#fff;text-decoration:underline;}
/* ============ footer ============ */
.site-foot{background:var(--deep);color:#b9c4cd;padding-block:clamp(44px,5vw,70px) 30px;font-size:.95rem;}
.foot-grid{display:grid;gap:32px;}
@media (min-width:840px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr;gap:44px;}}
.site-foot h2,.site-foot h3{font-family:var(--display);font-weight:600;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#7e8d99;margin:0 0 14px;}
.site-foot img.flogo{height:44px;width:auto;max-width:190px;object-fit:contain;margin-bottom:16px;}
.site-foot address{font-style:normal;line-height:1.7;}
.site-foot a{color:#d6dee5;text-decoration:none;transition:color .16s var(--ease);}
.site-foot a:hover{color:var(--brand-lite);text-decoration:underline;}
.site-foot .tel{font-family:var(--display);font-weight:700;font-size:1.2rem;color:#fff;font-variant-numeric:tabular-nums;}
.site-foot .tel:hover{color:var(--brand-lite);}
.flist{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.social{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.social a{
  display:inline-flex;align-items:center;min-height:38px;padding:8px 13px;
  border:1px solid rgba(255,255,255,.16);border-radius:var(--r);
  font-size:.85rem;font-family:var(--display);font-weight:500;
  transition:border-color .17s var(--ease),background-color .17s var(--ease),color .17s var(--ease);
}
.social a:hover{border-color:var(--brand-lite);background:rgba(124,196,242,.1);color:#fff;text-decoration:none;}
.foot-base{margin-top:36px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;font-size:.87rem;color:#7e8d99;}
/* ============ sticky call bar (mobile) ============ */
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  background:var(--brand-ink);border-top:1px solid rgba(255,255,255,.16);
  padding:10px clamp(14px,4vw,20px) calc(10px + env(safe-area-inset-bottom));
  display:flex;gap:12px;align-items:center;justify-content:space-between;
}
.callbar .lab{font-family:var(--display);font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#bfe0f7;}
.callbar a{
  display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;
  background:#fff;color:var(--brand-ink);border-radius:var(--r);
  font-family:var(--display);font-weight:700;font-size:1rem;text-decoration:none;
  font-variant-numeric:tabular-nums;transition:background-color .17s var(--ease),color .17s var(--ease);
}
.callbar a:hover{background:var(--ink);color:#fff;}
body{padding-bottom:78px;}
@media (min-width:768px){.callbar{display:none;}body{padding-bottom:0;}}
/* ============ reveal ============ */
.rv{opacity:1;transform:none;}
html.js-rv .rv{opacity:0;transform:translateY(20px);}
html.js-rv .rv.is-in{
  opacity:1;transform:none;
  transition:opacity .75s var(--ease),transform .75s var(--ease);
  transition-delay:var(--d,0ms);
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
  .rv{opacity:1!important;transform:none!important;}
  .bar{width:var(--w)!important;}
  .gal figure:hover img{transform:none;}
}

.cf-site-links{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;padding:1rem clamp(16px,4vw,40px);font-size:.85rem}

/* ── ADOPTED-CHROME BRIDGE (written by adoptSiteChrome, never by a renderer) ──
   theme.css loads before this file and declares all composed-body typography as
   var(--disp)/var(--body); these two overrides re-font the composed sections into
   the site's real pairing. The rules above are the source page's own, verbatim. */
:root{--disp:'Space Grotesk',sans-serif;--body:'Nunito Sans',sans-serif}
