:root { --cream:#fff7e8; --sand:#f0dfbd; --teal:#0b5a5a; --teal-deep:#063b3f; --aqua:#93d7c4; --sun:#f2ad2e; --coral:#e8663f; --ink:#17383a; --muted:#5d6b68; --line:#d8c9ad; --display:"Figtree",sans-serif; --text:"DM Sans",sans-serif; --mono:"Space Mono",monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--text); line-height:1.5; letter-spacing:0; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; }
.shell { width:min(1180px,calc(100% - 80px)); margin-inline:auto; }
.skip-link { position:absolute; left:-999px; top:8px; z-index:100; padding:10px 14px; background:#fff; color:#000; }
.skip-link:focus { left:8px; }
.site-header { min-height:84px; display:flex; align-items:center; gap:32px; padding:0 40px; background:var(--cream); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:13px; }
.brand-icon { position:relative; width:47px; height:47px; display:block; background:var(--teal); border-radius:50%; }
.brand-icon i { position:absolute; left:10px; top:11px; width:26px; height:13px; border:4px solid var(--aqua); border-top:0; border-radius:0 0 16px 16px; }
.brand-icon b { position:absolute; left:20px; top:26px; width:7px; height:11px; background:var(--sun); border-radius:0 0 7px 7px; }
.brand > span:last-child { display:flex; flex-direction:column; line-height:1; }
.brand strong { color:var(--teal-deep); font:800 17px/1 var(--display); }
.brand small { margin-top:5px; color:var(--coral); font:700 10px/1 var(--mono); text-transform:uppercase; }
nav { margin-left:auto; display:flex; gap:30px; color:var(--muted); font-size:14px; font-weight:600; }
nav a:hover { color:var(--coral); }
.header-call { display:flex; flex-direction:column; padding-left:20px; border-left:2px solid var(--sun); }
.header-call span { color:var(--muted); font:700 9px/1 var(--mono); text-transform:uppercase; }
.header-call b { margin-top:6px; color:var(--teal); font:800 17px/1 var(--display); }
.hero { position:relative; min-height:calc(100vh - 84px); max-height:850px; overflow:hidden; background:#eee2ca; }
.hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-copy { position:relative; z-index:2; width:min(560px,42%); margin-left:auto; margin-right:max(40px,calc((100% - 1180px)/2)); padding-top:110px; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 22px; color:var(--coral); font:700 10px/1.4 var(--mono); text-transform:uppercase; }
.eyebrow span { width:30px; height:30px; display:grid; place-items:center; background:var(--sun); color:var(--teal-deep); }
.eyebrow.dark { color:var(--teal); }
.hero h1 { max-width:10ch; margin:0; color:var(--teal-deep); font:800 72px/.96 var(--display); letter-spacing:0; text-wrap:balance; }
.hero-copy > p:not(.eyebrow) { max-width:48ch; margin:26px 0 0; color:#38595a; font-size:18px; line-height:1.65; }
.hero-call { display:inline-flex; flex-direction:column; margin-top:32px; padding:16px 24px; background:var(--coral); color:#fff; box-shadow:8px 8px 0 var(--sun); }
.hero-call small { font:700 9px/1 var(--mono); text-transform:uppercase; }
.hero-call strong { margin-top:8px; font:800 24px/1 var(--display); }
.sun-stamp { position:absolute; right:40px; bottom:42px; width:90px; height:90px; display:grid; place-items:center; }
.sun-stamp b { width:44px; height:44px; background:var(--sun); border-radius:50%; }
.sun-stamp i { position:absolute; width:2px; height:90px; background:var(--coral); }
.sun-stamp i:nth-child(2) { transform:rotate(45deg); }
.sun-stamp i:nth-child(3) { transform:rotate(90deg); }
.sun-stamp i:nth-child(4) { transform:rotate(135deg); }
.hero-note { position:absolute; left:40px; bottom:40px; max-width:300px; display:flex; flex-direction:column; padding:15px 18px; background:var(--teal-deep); color:#fff; }
.hero-note b { color:var(--sun); font:700 9px/1.4 var(--mono); }
.hero-note span { margin-top:6px; font-weight:600; }
.ticker { min-height:58px; display:flex; align-items:center; justify-content:center; gap:24px; padding:10px 30px; background:var(--teal); color:#fff; font:700 10px/1.4 var(--mono); text-transform:uppercase; }
.ticker i { width:7px; height:7px; background:var(--sun); border-radius:50%; }
.welcome { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.75fr); gap:90px; padding-top:110px; padding-bottom:110px; }
.welcome h2,.map-heading h2,.diagnostic h2,.trust-copy h2,.symptom-board h2,.do-dont h2,.faq-title h2,.final-call h2 { margin:0; font:800 50px/1.05 var(--display); letter-spacing:0; text-wrap:balance; }
.welcome-copy { padding-top:20px; border-top:4px solid var(--sun); }
.welcome-copy p { margin:0 0 18px; color:var(--muted); font-size:16px; line-height:1.7; }
.welcome-copy a { display:inline-block; margin-top:8px; padding-bottom:4px; border-bottom:2px solid var(--coral); color:var(--teal); font-weight:700; }
.welcome-copy a span { color:var(--coral); }
.drain-map { padding:110px 0; background:var(--teal-deep); color:#fff; overflow:hidden; }
.map-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.55fr); gap:40px; align-items:end; margin-bottom:62px; }
.map-heading .eyebrow { grid-column:1/-1; margin-bottom:0; }
.map-heading h2 { max-width:13ch; }
.map-heading > p:last-child { margin:0; color:#add2c9; line-height:1.7; }
.map-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.25); border-left:1px solid rgba(255,255,255,.25); }
.map-grid article { position:relative; min-height:420px; padding:26px; border-right:1px solid rgba(255,255,255,.25); border-bottom:1px solid rgba(255,255,255,.25); }
.map-number { color:var(--sun); font:700 10px/1 var(--mono); }
.pipe-icon { position:relative; width:90px; height:90px; margin:44px 0 34px; }
.pipe-icon i { position:absolute; left:0; top:0; width:60px; height:60px; border-left:8px solid var(--aqua); border-bottom:8px solid var(--aqua); border-radius:0 0 0 22px; }
.pipe-icon b { position:absolute; left:53px; top:52px; width:22px; height:22px; border:6px solid var(--sun); border-radius:50%; }
.pipe-icon.bath { transform:rotate(90deg); }
.pipe-icon.backup { transform:rotate(180deg); }
.pipe-icon.repeat { transform:rotate(270deg); }
.map-grid h3 { margin:0 0 12px; font:800 22px/1.15 var(--display); }
.map-grid p { margin:0; color:#add2c9; font-size:14px; line-height:1.6; }
.map-grid a { position:absolute; left:26px; right:26px; bottom:26px; padding-top:14px; border-top:1px solid var(--coral); color:#fff; font-size:13px; font-weight:700; }
.map-grid a:hover { color:var(--sun); }
.diagnostic { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:90px; align-items:center; padding-top:120px; padding-bottom:120px; }
.diagnostic-copy > h2 { max-width:13ch; }
.path-compare { display:grid; grid-template-columns:1fr 1fr; margin-top:34px; border-top:2px solid var(--teal); }
.path-compare article { padding:22px 20px 22px 0; }
.path-compare article + article { padding-left:22px; border-left:1px solid var(--line); }
.path-compare span { color:var(--coral); font:700 10px/1 var(--mono); }
.path-compare h3 { margin:10px 0 8px; font:800 19px/1.2 var(--display); }
.path-compare p { margin:0; color:var(--muted); font-size:14px; }
.diagnostic-note { margin:22px 0 0; padding:16px 18px; background:var(--sand); color:var(--teal-deep); font-size:14px; }
.diagnostic figure { position:relative; width:min(100%,430px); justify-self:end; margin:0; }
.diagnostic figure::after { content:""; position:absolute; right:-16px; bottom:54px; width:96px; height:96px; border-right:4px solid var(--coral); border-bottom:4px solid var(--coral); }
.diagnostic img { position:relative; z-index:1; width:100%; height:auto; display:block; object-fit:cover; border:1px solid var(--line); }
.diagnostic figcaption { display:grid; grid-template-columns:120px 1fr; gap:16px; margin-top:14px; color:var(--muted); font:400 10px/1.5 var(--mono); text-transform:uppercase; }
.diagnostic figcaption b { color:var(--coral); }
.trust-proof { display:grid; grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr); gap:90px; align-items:center; padding-top:96px; padding-bottom:96px; border-top:1px solid var(--line); }
.trust-proof figure { width:min(100%,420px); margin:0; }
.trust-proof img { width:100%; height:auto; display:block; object-fit:cover; border:1px solid var(--line); }
.trust-proof figcaption { display:flex; flex-direction:column; gap:4px; margin-top:12px; color:var(--muted); font:400 10px/1.5 var(--mono); text-transform:uppercase; }
.trust-proof figcaption b { color:var(--coral); }
.trust-copy > p:not(.eyebrow) { max-width:58ch; margin:24px 0 0; color:var(--muted); line-height:1.7; }
.trust-list { margin-top:28px; border-top:2px solid var(--teal); }
.trust-list article { display:grid; grid-template-columns:42px 1fr; gap:14px; padding:15px 0; border-bottom:1px solid var(--line); }
.trust-list article > span { color:var(--coral); font:700 10px/1.5 var(--mono); }
.trust-list h3 { margin:0 0 3px; font:800 16px/1.25 var(--display); }
.trust-list p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.symptom-board { padding:100px 0 64px; background:var(--coral); color:#fff; }
.board-grid { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:90px; }
.board-grid > div > p:last-child { max-width:42ch; color:#ffe0d5; }
.board-grid ol { margin:0; padding:0; list-style:none; border-top:2px solid #fff; }
.board-grid li { display:grid; grid-template-columns:48px 1fr; gap:16px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.45); }
.board-grid li > span { color:var(--teal-deep); font:700 10px/1.5 var(--mono); }
.board-grid h3 { margin:0 0 4px; font:800 18px/1.2 var(--display); }
.board-grid li p { margin:0; color:#ffe0d5; font-size:14px; }
.flow-line { display:flex; align-items:center; padding-top:54px; }
.flow-line i { height:2px; flex:1; background:rgba(255,255,255,.65); }
.flow-line i:nth-of-type(2) { flex:2; }
.flow-line b { width:14px; height:14px; background:var(--coral); border:3px solid var(--sun); border-radius:50%; }
.do-dont { display:grid; grid-template-columns:1fr 1fr; border-left:1px solid var(--line); }
.do-dont > div { padding:82px 60px; border-right:1px solid var(--line); }
.do-dont > div > span { display:inline-grid; place-items:center; min-width:58px; min-height:32px; padding:5px 10px; color:#fff; background:var(--teal); font:700 10px/1 var(--mono); }
.do-dont .dont-panel > span { background:var(--sun); color:var(--teal-deep); }
.do-dont h2 { margin-top:20px; font-size:38px; }
.do-dont ul { margin:26px 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }
.do-dont li { padding:14px 0 14px 20px; border-bottom:1px solid var(--line); color:var(--muted); position:relative; }
.do-dont li::before { content:""; position:absolute; left:0; top:22px; width:7px; height:7px; background:var(--coral); }
.faq-section { padding:110px 0; background:var(--sand); }
.faq-wrap { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:90px; }
.faq-title h2 { max-width:10ch; }
.faq-title > a { display:inline-block; margin-top:28px; padding-bottom:4px; border-bottom:2px solid var(--coral); color:var(--teal); font-weight:700; }
.faq-list { border-top:2px solid var(--teal-deep); }
.faq-list details { border-bottom:1px solid #bfae8f; }
.faq-list summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:20px; padding:21px 0; color:var(--teal-deep); font-weight:700; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:var(--coral); font-size:22px; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list p { max-width:62ch; margin:0; padding:0 0 22px; color:var(--muted); line-height:1.65; }
.final-call { padding:120px 0; background:var(--teal); color:#fff; text-align:center; }
.final-call p { margin:0 0 20px; color:var(--sun); font:700 10px/1.4 var(--mono); }
.final-call h2 { max-width:19ch; margin:0 auto 34px; font-size:54px; }
.final-call a { display:inline-block; padding-bottom:6px; border-bottom:5px solid var(--sun); color:var(--cream); font:800 68px/1 var(--display); white-space:nowrap; }
.final-call small { display:block; margin-top:24px; color:var(--aqua); }
footer { background:var(--teal-deep); color:#8dbab1; }
.footer-inner { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:24px; font:400 10px/1.4 var(--mono); }
.footer-inner strong { color:#fff; text-transform:uppercase; }
.mobile-call { display:none; }
@media(max-width:900px){
  .site-header { padding:0 24px; }
  nav { display:none; }
  .header-call { margin-left:auto; }
  .hero-copy { width:48%; margin-right:40px; }
  .hero h1 { font-size:58px; }
  .map-grid { grid-template-columns:1fr 1fr; }
  .diagnostic,.trust-proof,.board-grid,.faq-wrap { gap:50px; }
}
@media(max-width:700px){
  body { padding-bottom:76px; }
  .shell { width:calc(100% - 40px); }
  .site-header { min-height:72px; padding:0 20px; }
  .brand-icon { width:40px; height:40px; }
  .brand > span:last-child { display:none; }
  .header-call { padding-left:12px; }
  .header-call span { font-size:8px; }
  .header-call b { font-size:14px; }
  .hero { min-height:720px; max-height:none; }
  .hero > img { object-position:38% center; }
  .hero::after { content:""; position:absolute; inset:0; background:rgba(255,247,232,.52); }
  .hero-copy { width:calc(100% - 40px); margin:0 20px; padding-top:76px; }
  .hero h1 { font-size:48px; }
  .hero-copy > p:not(.eyebrow) { font-size:16px; }
  .hero-note { z-index:2; left:20px; bottom:24px; }
  .sun-stamp { z-index:2; right:14px; bottom:34px; width:62px; height:62px; }
  .sun-stamp i { height:62px; }
  .sun-stamp b { width:30px; height:30px; }
  .ticker { justify-content:flex-start; overflow:hidden; white-space:nowrap; }
  .welcome,.map-heading,.diagnostic,.trust-proof,.board-grid,.faq-wrap { grid-template-columns:1fr; }
  .welcome { gap:38px; padding-top:74px; padding-bottom:74px; }
  .welcome h2,.map-heading h2,.diagnostic h2,.trust-copy h2,.symptom-board h2,.faq-title h2 { font-size:38px; }
  .drain-map { padding:76px 0; }
  .map-heading { gap:22px; margin-bottom:42px; }
  .map-heading .eyebrow { grid-column:auto; }
  .map-grid { grid-template-columns:1fr; }
  .map-grid article { min-height:360px; }
  .diagnostic { gap:52px; padding-top:78px; padding-bottom:78px; }
  .path-compare { grid-template-columns:1fr; }
  .path-compare article + article { padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .diagnostic figure { width:min(100%,300px); justify-self:start; }
  .trust-proof { gap:42px; padding-top:72px; padding-bottom:72px; }
  .trust-proof figure { width:min(100%,300px); }
  .symptom-board { padding-top:74px; }
  .board-grid { gap:42px; }
  .do-dont { width:100%; grid-template-columns:1fr; border-left:0; }
  .do-dont > div { padding:62px 20px; border-right:0; border-bottom:1px solid var(--line); }
  .faq-section { padding:78px 0; }
  .faq-wrap { gap:48px; }
  .final-call { padding:86px 0; }
  .final-call h2 { font-size:40px; }
  .final-call a { font-size:38px; border-bottom-width:3px; }
  .footer-inner { align-items:flex-start; flex-direction:column; padding-top:28px; padding-bottom:28px; }
  .mobile-call { position:fixed; left:0; right:0; bottom:0; z-index:50; display:block; padding:10px 14px; background:rgba(6,59,63,.96); }
  .mobile-call a { min-height:52px; display:flex; align-items:center; justify-content:center; background:var(--coral); color:#fff; font-weight:800; }
}
@media(max-width:390px){
  .hero h1 { font-size:42px; }
  .hero-call strong { font-size:21px; }
  .final-call a { font-size:32px; }
  .diagnostic figcaption { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *,*::before,*::after{transition:none!important;} }
