:root{
  --bg:#ffffff;
  --bg-alt:#f8f9fa;
  --bg-deep:#eef1f2;
  --accent:#1f8fb8;
  --accent-dark:#146a87;
  --accent-soft:#e9f4f9;
  --ink:#000000;
  --ink-soft:#000000;
  --ink-faint:#000000;
  --line:#e6e9ea;
  --white:#ffffff;
  --star:#f5a623;
  --logo-heart:#8fa8d8;
  --logo-hand:#d98a4a;
  --radius-l:20px;
  --radius-m:14px;
  --radius-s:9px;
  --shadow: 0 12px 28px -18px rgba(18,51,47,.28);
}
/* Site is always white/black by design — no automatic dark-mode switch,
   regardless of the viewer's system or browser theme setting. */

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Instrument Serif','Iowan Old Style',Georgia,serif;
  font-weight:400;
  letter-spacing:-0.005em;
  text-wrap:balance;
  margin:0;
  color:var(--ink);
}
p{margin:0;color:var(--ink-soft);}
.mono{font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums;}
a{color:inherit;}
button{font-family:inherit;cursor:pointer;}
img{max-width:100%;}
.wrap{max-width:1120px;margin:0 auto;padding-inline:24px;}
section{padding-block:64px;}
@media(max-width:640px){ section{padding-block:44px;} }
.skip-link{
  position:absolute;left:-999px;top:auto;background:var(--ink);color:#fff;
  padding:12px 18px;border-radius:8px;z-index:200;font-weight:700;font-size:.85rem;
}
.skip-link:focus{left:16px;top:16px;}

/* ---------- Nav (morphing scroll navbar) ---------- */
.nav-progress{
  position:fixed;z-index:101;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent-dark));
  transform:scaleX(0);transform-origin:0 50%;will-change:transform;
  transition:transform .1s linear;
}
header.nav{
  position:fixed;left:0;right:0;
  top:env(safe-area-inset-top,0px);
  z-index:100;
  display:flex;justify-content:center;
  pointer-events:none;
}
.nav-row{
  pointer-events:auto;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;width:100%;max-width:1120px;height:76px;
  margin-top:0;padding:0 12px 0 24px;
  border:1px solid transparent;border-radius:999px;
  background:transparent;
  transition:
    max-width .5s cubic-bezier(.34,1.32,.5,1),
    height .38s cubic-bezier(.34,1.2,.5,1),
    margin-top .38s ease, padding .38s ease,
    background-color .3s ease, border-color .3s ease, box-shadow .4s ease;
}
header.nav.is-floating .nav-row{
  max-width:960px;height:62px;margin-top:12px;padding:0 10px 0 20px;
  border-color:rgba(21,36,43,.08);
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(16px) saturate(1.3);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset, 0 14px 34px -20px rgba(21,36,43,.35);
}
.logo{
  display:flex;align-items:center;gap:9px;font-family:'Instrument Serif',serif;
  font-weight:400;font-size:1.3rem;color:var(--ink);flex:none;text-decoration:none;
}
.logo-mark{ width:30px;height:30px;flex:none; }
.bm-heart{ fill:var(--logo-heart); }
.bm-hand{ fill:var(--logo-hand); }
nav.links{
  display:flex;gap:26px;align-items:center;font-size:.88rem;font-weight:500;color:var(--ink-soft);
}
nav.links a{text-decoration:none; position:relative; padding:4px 0;}
nav.links a:hover, nav.links a[aria-current="page"]{color:var(--ink);}
nav.links a:after{
  content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;border-radius:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .28s cubic-bezier(.2,.7,.2,1);
}
nav.links a:hover:after, nav.links a[aria-current="page"]:after{ transform:scaleX(1); }
.nav-dropdown{position:relative;}
.nav-dropdown-panel{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-6px);
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow);
  padding:10px;min-width:200px;opacity:0;pointer-events:none;transition:opacity .18s ease, transform .18s ease;
}
.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown:focus-within .nav-dropdown-panel{ opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0); }
.nav-dropdown-panel a{
  display:block;padding:9px 12px;border-radius:8px;font-weight:600;font-size:.87rem;color:var(--ink);text-decoration:none;
}
.nav-dropdown-panel a:hover{background:var(--accent-soft);}
.nav-dropdown-panel a:after{display:none;}
.nav-cta{
  background:var(--ink);color:#fff;border:none;border-radius:999px;text-decoration:none;
  padding:11px 20px;font-size:.85rem;font-weight:700;white-space:nowrap;
  transition:transform .2s ease;display:inline-flex;align-items:center;
}
.nav-cta:hover{transform:translateY(-1px);}
.nav-toggle{display:none;background:none;border:none;padding:8px;}
.nav-mobile-panel{
  display:none;position:fixed;inset:0;z-index:99;background:#fff;
  padding:100px 24px 40px;overflow:auto;
}
.nav-mobile-panel.open{display:block;}
.nav-mobile-panel a{
  display:block;padding:16px 0;font-size:1.15rem;font-weight:600;color:var(--ink);
  text-decoration:none;border-bottom:1px solid var(--line);
}
@media(max-width:780px){
  nav.links{display:none;}
  .nav-toggle{display:flex;align-items:center;justify-content:center;}
  header.nav.is-floating .nav-row{ max-width:640px; }
}
@media(prefers-reduced-motion:reduce){
  .nav-row, .nav-progress{ transition-duration:.01ms !important; }
}

/* ---------- 3D tilt + reveal ---------- */
.tilt{
  transform-style:preserve-3d;
  transition:transform .12s ease-out, box-shadow .25s ease;
  will-change:transform;
}
.reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1);
}
.reveal.in{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:reduce){
  .tilt{transition:none;}
  .reveal{opacity:1;transform:none;transition:none;}
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--accent-soft);color:var(--ink);
  padding:6px 14px;border-radius:999px;font-size:.8rem;font-weight:700;
  letter-spacing:.03em;text-transform:uppercase;
}
.btn{
  border:none;border-radius:999px;padding:13px 26px;font-weight:700;font-size:.95rem;
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
}
.btn-primary{background:var(--accent);color:#0c1f28;}
.btn-primary:hover{background:var(--accent-dark);}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line);}
.btn-ghost:hover{border-color:var(--accent);}

/* ---------- White 3D hero (homepage) ---------- */
.hero{
  position:relative; height:100dvh; min-height:560px; overflow:hidden;
  background:#ffffff; display:flex; align-items:flex-end;
}
.hero-sky{
  position:absolute;inset:0;
  background: radial-gradient(1100px 620px at 80% 4%, var(--bg-deep) 0%, #ffffff 58%);
}
#hero-canvas{ position:absolute;inset:0;width:100%;height:100%;pointer-events:none; }
@media(prefers-reduced-motion:reduce){ #hero-canvas{ display:none; } }
.hero-scrim{
  position:absolute;left:0;right:0;bottom:0;height:38%;
  background:linear-gradient(0deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,.5) 55%, rgba(255,255,255,0) 100%);
  pointer-events:none;
}
.hero-inner{ position:relative;z-index:2;width:100%;max-width:1120px;margin:0 auto;padding:0 24px clamp(64px,11vh,120px); }
.hero-inner .wrap{padding-inline:0;max-width:640px;margin:0;}
.hero-eyebrow{ color:var(--ink);font-size:.86rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;display:block; }
.headline-mask{overflow:hidden;margin-top:14px;}
.headline{
  font-family:'Instrument Serif',Georgia,serif;font-weight:700;color:var(--ink);
  font-size:clamp(2.4rem,7vw,5rem);line-height:1.02;letter-spacing:-.01em;display:block;text-wrap:balance;
}
.hero-lede{ margin-top:20px;max-width:42ch;color:var(--ink);font-size:clamp(1rem,1.6vw,1.18rem);line-height:1.5;font-weight:700; }
.hero-cta-row{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap;}
.hero-cta{
  background:var(--ink);color:#fff;border:none;border-radius:8px;text-decoration:none;
  padding:14px 30px;font-weight:600;font-size:.96rem;
  display:inline-flex;align-items:center;gap:8px;
  transition:background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.hero-cta:hover{ background:var(--accent-dark); transform:translateY(-2px); box-shadow:0 12px 26px -12px rgba(21,36,43,.4); }
.hero-cta-ghost{
  background:#fff;color:var(--ink);border:1.5px solid var(--line);text-decoration:none;
  border-radius:8px;padding:14px 26px;font-weight:700;font-size:.94rem;
  transition:background .25s ease, border-color .25s ease;
}
.hero-cta-ghost:hover{ background:var(--bg-alt); border-color:var(--accent); }
.hero-scroll-cue{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
  z-index:2;color:var(--ink-faint);animation:kp-bounce 2.2s ease-in-out infinite;
}
@keyframes kp-bounce{ 0%,100%{transform:translate(-50%,0);} 50%{transform:translate(-50%,7px);} }
@media(prefers-reduced-motion:reduce){ .hero-scroll-cue{ animation:none; } }
@media(max-width:640px){ .hero-scroll-cue{ display:none; } }

/* ---------- Interior page hero (category / utility pages) ---------- */
.page-hero{
  background:
    radial-gradient(900px 460px at 82% -8%, var(--accent-soft) 0%, transparent 60%),
    linear-gradient(180deg,#fcfdfe 0%,#ffffff 100%);
  border-bottom:1px solid var(--line);
  padding:calc(76px + 56px) 0 56px;
}
.page-hero .wrap{max-width:760px;}
.page-hero h1{font-size:clamp(2.1rem,5vw,3.2rem);margin-top:14px;}
.page-hero p{margin-top:16px;font-size:1.08rem;line-height:1.55;color:var(--ink-soft);}
.page-hero .breadcrumbs{font-size:.8rem;color:var(--ink-faint);font-weight:600;}
.page-hero .breadcrumbs a{text-decoration:none;color:var(--ink-faint);}
.page-hero .breadcrumbs a:hover{color:var(--accent-dark);}

/* ---------- Trust badges ---------- */
.trust-row{
  display:flex;flex-wrap:wrap;gap:14px;margin-top:26px;
}
.trust-chip{
  display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:8px 16px;font-size:.82rem;font-weight:700;color:var(--ink);
}
.trust-chip svg{color:var(--accent-dark);flex:none;}

/* ---------- Stat bar ---------- */
.statbar{background:var(--bg-alt);border-block:1px solid var(--line);}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;padding-block:34px;}
@media(max-width:760px){.stat-grid{grid-template-columns:repeat(2,1fr);}}
.stat-grid .num{font-family:'Instrument Serif',serif;font-size:2.1rem;color:var(--ink);}
.stat-grid .lab{font-size:.8rem;color:var(--ink-faint);margin-top:4px;}

/* ---------- Section headers ---------- */
.sec-head{max-width:640px;margin-bottom:34px;}
.sec-head .eyebrow{margin-bottom:14px;}
.sec-head h2{font-size:clamp(1.7rem,3vw,2.3rem);}
.sec-head p{margin-top:12px;font-size:1.02rem;}

/* ---------- Category cards (homepage) ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:860px){.cat-grid{grid-template-columns:1fr;}}
.cat-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-l);
  padding:30px;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;gap:14px;transition:transform .25s ease, box-shadow .25s ease;
}
.cat-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(18,51,47,.35);}
.cat-ic{
  width:52px;height:52px;border-radius:14px;background:var(--accent-soft);color:var(--accent-dark);
  display:flex;align-items:center;justify-content:center;
}
.cat-card h3{font-size:1.3rem;}
.cat-card p{font-size:.92rem;color:var(--ink-soft);}
.cat-card .cat-link{margin-top:auto;font-weight:700;font-size:.86rem;display:flex;align-items:center;gap:6px;color:var(--accent-dark);}

/* ---------- Comparer ---------- */
#compare, .compare-section{background:var(--bg-alt);}
.filters{
  display:grid;grid-template-columns:repeat(3,1fr) auto;gap:12px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);
  padding:16px;box-shadow:var(--shadow);margin-bottom:30px;
}
.filters.filters-4{grid-template-columns:repeat(4,1fr) auto;}
@media(max-width:900px){.filters, .filters.filters-4{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.filters, .filters.filters-4{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:5px;}
.field label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);}
.field select{
  border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 10px;
  font-size:.9rem;background:var(--bg);color:var(--ink);font-family:inherit;
}
.filters .btn{align-self:end;justify-content:center;}

.results-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;flex-wrap:wrap;gap:8px;}
.results-meta .count{font-weight:700;}
.results-meta .note{font-size:.82rem;color:var(--ink-faint);}

.provider-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);
  padding:20px;box-shadow:var(--shadow);margin-bottom:14px;
}
.pc-top{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:16px;align-items:center;}
@media(max-width:700px){.pc-top{grid-template-columns:auto 1fr;row-gap:12px;}
  .pc-price{grid-column:1/-1;justify-self:start;}
  .pc-compare-toggle{grid-column:1/-1;}
  .pc-select{grid-column:1/-1;}
}
.pc-logo{
  width:52px;height:52px;border-radius:50%;flex:none;
  background:linear-gradient(155deg,var(--accent-soft),var(--white));
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-weight:400;color:var(--ink);font-family:'Instrument Serif',serif;font-size:1.3rem;
}
.pc-name{font-weight:700;font-size:1.02rem;}
.pc-meta{font-size:.82rem;color:var(--ink-faint);margin-top:3px;display:flex;gap:10px;flex-wrap:wrap;}
.pc-stars{color:var(--star);font-size:.82rem;letter-spacing:1px;}
.pc-price-box{text-align:right;}
.pc-price{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:1.15rem;color:var(--ink);}
.pc-price-lab{font-size:.72rem;color:var(--ink-faint);}
.pc-select{
  background:var(--accent);color:#0c1f28;border:none;border-radius:999px;
  padding:10px 20px;font-weight:700;font-size:.86rem;
}
.pc-select:hover{background:var(--accent-dark);}
.pc-toggle{
  margin-top:14px;background:none;border:none;color:var(--ink);
  font-weight:600;font-size:.82rem;padding:0;display:flex;align-items:center;gap:6px;
}
.pc-detail{ overflow:hidden;max-height:0;transition:max-height .28s ease; }
.pc-detail.open{max-height:600px;}
.pc-detail table{width:100%;border-collapse:collapse;margin-top:14px;font-size:.86rem;}
.pc-detail td{padding:9px 4px;border-top:1px solid var(--line);}
.pc-detail td:last-child{text-align:right;width:34px;}
.tick{color:var(--accent-dark);font-weight:800;}
.cross{color:#c1594a;font-weight:800;}

.pc-compare-toggle{
  display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;
  color:var(--ink-faint);cursor:pointer;white-space:nowrap;
}
.pc-compare-toggle input{width:16px;height:16px;accent-color:var(--accent-dark);cursor:pointer;}
.match-banner{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--radius-m);
  padding:20px 24px;margin-bottom:16px;
}
.match-banner-text h3{font-size:1.05rem;}
.match-banner-text p{margin-top:4px;font-size:.88rem;color:var(--ink-soft);max-width:52ch;}
.match-banner .btn-primary{flex:none;white-space:nowrap;}
.compare-bar{
  background:var(--accent-dark);color:#fff;border-radius:var(--radius-m);
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .3s ease,opacity .25s ease,margin .3s ease;margin-bottom:0;
}
.compare-bar.show{max-height:120px;opacity:1;margin-bottom:16px;}
.compare-bar-inner{ padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.compare-bar-inner span{font-weight:600;font-size:.92rem;}
.compare-bar-actions{display:flex;gap:12px;align-items:center;}
.btn-ghost-sm{
  background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:999px;
  padding:8px 16px;font-weight:600;font-size:.82rem;
}
.btn-ghost-sm:hover{background:rgba(255,255,255,.12);}
.compare-bar .btn-primary{background:#fff;color:var(--accent-dark);}
.compare-bar .btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.compare-modal{
  position:fixed;inset:0;z-index:170;background:rgba(15,25,28,.55);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.compare-modal[hidden]{display:none;}
.compare-modal-inner{
  background:var(--white);border-radius:var(--radius-m);padding:28px;
  max-width:960px;width:100%;max-height:85vh;overflow:auto;position:relative;
}
.compare-modal-inner h3{margin-bottom:16px;}
.compare-modal-close{
  position:absolute;top:18px;right:18px;background:var(--bg-alt);border:none;
  width:32px;height:32px;border-radius:50%;font-size:1rem;cursor:pointer;
}
.compare-table{width:100%;border-collapse:collapse;font-size:.88rem;}
.compare-table th{ text-align:left;padding:10px 14px;border-bottom:2px solid var(--line);background:var(--bg-alt);position:sticky;top:0; }
.compare-table .ct-sub{font-weight:400;color:var(--ink-faint);font-size:.76rem;}
.compare-table td{padding:10px 14px;border-bottom:1px solid var(--line);}
.compare-table td:first-child{font-weight:600;color:var(--ink-faint);white-space:nowrap;}
.compare-table .ct-price{font-family:'IBM Plex Mono',monospace;font-weight:700;}

/* ---------- Why it matters ---------- */
.why-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:start;}
@media(max-width:900px){.why-grid{grid-template-columns:1fr;}}
.why-points{display:flex;flex-direction:column;gap:22px;margin-top:28px;}
.why-point{display:flex;gap:14px;}
.why-ic{
  width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent-dark);
  display:flex;align-items:center;justify-content:center;flex:none;
}
.why-point h4{font-size:1rem;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;color:var(--ink);}
.why-point p{font-size:.92rem;margin-top:4px;}
.why-card{ background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius-l);padding:30px; }
.why-card h3{font-size:1.3rem;}
.why-card p{margin-top:12px;}
.why-card .sig{margin-top:20px;font-size:.82rem;color:var(--ink-faint);font-style:normal;}

/* ---------- Promise band ---------- */
.promise-band{
  background:
    radial-gradient(circle at 15% 20%, rgba(31,143,184,.10), transparent 55%),
    radial-gradient(circle at 85% 80%, rgba(20,106,135,.10), transparent 55%),
    linear-gradient(135deg, #eaf6fb 0%, #ffffff 60%, #eaf6fb 100%);
  padding:clamp(56px,9vw,96px) 0;
}
.promise-inner{ max-width:640px; text-align:left; }
.promise-inner h2{ margin-top:14px; font-size:clamp(1.9rem,4vw,2.6rem); color:var(--ink); }
.promise-inner p{ margin-top:16px; font-size:1.05rem; line-height:1.55; color:var(--ink-soft); }
.promise-inner .hero-cta{ margin-top:28px; }

/* ---------- Reviews ---------- */
#reviews, .reviews-section{background:#fff;}
.review-shell{position:relative;max-width:720px;margin:0 auto;}
.review-track{overflow:hidden;}
.review-slide{
  display:none;background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius-l);padding:34px;text-align:center;box-shadow:var(--shadow);
}
.review-slide.active{display:block;}
.review-stars{color:var(--star);font-size:1.1rem;letter-spacing:3px;}
.review-quote{font-family:'Instrument Serif',serif;font-size:1.4rem;line-height:1.4;margin-top:16px;color:var(--ink);}
.review-who{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:10px;}
.review-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.8rem;}
.review-name{font-size:.86rem;font-weight:700;color:var(--ink);}
.review-loc{font-size:.78rem;color:var(--ink-faint);}
.review-nav{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:22px;}
.rev-btn{ width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center; }
.rev-btn:hover{border-color:var(--accent);color:var(--accent-dark);}
.rev-dots{display:flex;gap:7px;}
.rev-dot{width:7px;height:7px;border-radius:50%;background:var(--line);border:none;padding:0;}
.rev-dot.active{background:var(--accent);}
.rev-pause{font-size:.74rem;color:var(--ink-faint);margin-top:14px;text-align:center;}

/* ---------- Forms (list-your-centre / contact) ---------- */
.list-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start;}
@media(max-width:900px){.list-grid{grid-template-columns:1fr;}}
.benefit-list{display:flex;flex-direction:column;gap:16px;margin-top:22px;}
.benefit{display:flex;gap:12px;align-items:flex-start;}
.benefit svg{flex:none;color:var(--accent-dark);margin-top:2px;}
.benefit h4{font-size:.95rem;font-family:'Plus Jakarta Sans';font-weight:700;color:var(--ink);}
.benefit p{font-size:.88rem;margin-top:2px;}

form.signup, .contact-form{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-l);
  padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:520px){.form-row{grid-template-columns:1fr;}}
.field-input{display:flex;flex-direction:column;gap:6px;}
.field-input label{font-size:.78rem;font-weight:700;color:var(--ink-soft);}
.field-input input, .field-input select, .field-input textarea{
  border:1px solid var(--line);border-radius:var(--radius-s);padding:11px 12px;
  font-size:.92rem;font-family:inherit;background:var(--bg);color:var(--ink);
}
.field-input textarea{resize:vertical;min-height:80px;}
.form-submit{
  background:var(--ink);color:#fff;border:none;border-radius:999px;padding:13px;
  font-weight:700;font-size:.95rem;
}
.form-submit:hover{background:var(--accent-dark);}
.form-note{font-size:.76rem;color:var(--ink-faint);}
.form-success{
  display:none;background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent-dark);
  border-radius:var(--radius-s);padding:14px 16px;font-size:.88rem;font-weight:600;
}
.form-success.show{display:block;}

/* ---------- Contact info cards ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-info-list{display:flex;flex-direction:column;gap:20px;margin-top:26px;}
.contact-info-item{display:flex;gap:14px;align-items:flex-start;}
.contact-info-item svg{flex:none;color:var(--accent-dark);margin-top:3px;}
.contact-info-item h4{font-size:.92rem;font-weight:700;color:var(--ink);}
.contact-info-item p, .contact-info-item a{font-size:.92rem;color:var(--ink-soft);text-decoration:none;}
.contact-info-item a:hover{color:var(--accent-dark);}

/* ---------- Footer ---------- */
footer{ position:relative;overflow:hidden;background:#fff;border-top:1px solid var(--line);color:var(--ink);padding-top:64px; }
footer::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(700px 340px at 14% 0%, rgba(31,143,184,.08), transparent 62%);
  pointer-events:none;
}
.foot-inner{position:relative;max-width:1120px;margin:0 auto;padding-inline:24px;}
.brandrow{display:flex;align-items:center;gap:12px;}
.foot-mark{width:26px;height:26px;flex:none;color:var(--accent-dark);}
.foot-wordmark{font-family:'Instrument Serif',serif;font-weight:400;font-size:1.5rem;letter-spacing:.01em;color:var(--ink);}
.foot-tagline{margin-top:16px;max-width:34ch;font-size:.92rem;line-height:1.5;color:var(--ink-soft);font-weight:450;}
.foot-nav{ margin-top:48px;display:grid;grid-template-columns:repeat(4,1fr);gap:28px; }
@media(max-width:820px){ .foot-nav{ grid-template-columns:1fr 1fr; } }
@media(max-width:420px){ .foot-nav{ grid-template-columns:1fr; } }
.foot-col h3{ font-family:'Plus Jakarta Sans',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink); }
.foot-col ul{list-style:none;margin:18px 0 0;padding:0;}
.foot-col li{margin-bottom:15px;}
.foot-col a{ font-size:.92rem;font-weight:450;color:var(--ink);text-decoration:none;transition:color .2s ease;display:inline-block; }
.foot-col a:hover{color:var(--accent-dark);}
.foot-rule{ margin-top:52px;height:1px;background:var(--line); }
.foot-row{ padding-block:26px;padding-bottom:calc(26px + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px; }
.foot-legal{font-size:.82rem;font-weight:450;color:var(--ink-faint);}
.foot-socials{display:flex;gap:24px;flex:none;flex-wrap:wrap;}
.foot-socials a{color:var(--ink);display:flex;align-items:center;gap:8px;opacity:.82;transition:opacity .2s ease,color .2s ease;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;text-decoration:none;}
.foot-socials a:hover{opacity:1;color:var(--accent-dark);}
.foot-socials a svg{flex:none;}

/* ---------- 404 ---------- */
.notfound{ min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 24px 60px; }
.notfound h1{font-size:clamp(3rem,10vw,6rem);}
.notfound p{margin-top:14px;font-size:1.05rem;}
.notfound .hero-cta{margin-top:26px;}

/* ---------- Black, bold body copy (site-wide brand rule) ---------- */
h1, h2, h3, h4,
p, li, label, .logo, .foot-wordmark,
.pc-meta, .pc-name, .results-meta .note, .results-meta .count,
.why-point p, .why-card p, .benefit p, .foot-tagline, .foot-col a, .foot-legal,
.promise-inner p, .review-loc, .review-quote, .rev-pause, .form-note,
.stat-grid .lab, .hero-lede, .sec-head p, nav.links a, .field label,
.cat-card p, .page-hero p, .contact-info-item p{
  color:var(--ink); font-weight:700;
}
