/* site.css — Rapid Water Florida · rebuilt from approved design references (layout/order/effects), brand tokens in tokens.css */
@import url("/assets/css/fonts.css");
@import url("/assets/css/tokens.css");
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{font-family:var(--body);background:var(--bg);color:var(--fg);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--display);line-height:1.15;color:var(--fg)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;font-family:var(--display);font-weight:700;font-size:16px;border:2px solid transparent;cursor:pointer;text-align:center}
.btn:hover{text-decoration:none;filter:brightness(1.06)}
.btn-call{background:var(--call);color:#fff}
.btn-acc{background:var(--acc);color:#fff}
.btn-ghost{background:#fff;color:var(--acc);border-color:var(--acc)}
.btn-white{background:#fff;color:var(--accd)}
/* C top bar */
.topbar{background:var(--accd);color:#EAF3F8;font-size:14px}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;padding-top:7px;padding-bottom:7px;flex-wrap:wrap}
.topbar a{color:#fff;font-weight:600}
/* D2 header */
.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
.header .wrap{display:flex;align-items:center;gap:18px;padding-top:10px;padding-bottom:10px}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:20px;color:var(--accd)}
.logo img{width:38px;height:38px}
.logo small{display:block;font-family:var(--body);font-weight:600;font-size:11px;letter-spacing:.08em;color:var(--mut);text-transform:uppercase}
.nav{display:flex;gap:20px;margin-left:auto;align-items:center}
.nav a{color:var(--fg);font-weight:600;font-size:15.5px}
.nav .has-drop{position:relative}
.drop{position:absolute;top:calc(100% + 10px);left:0;background:#fff;border:1px solid var(--line);border-radius:var(--rad-s);box-shadow:var(--shadow);padding:10px;min-width:230px;display:none;max-height:60vh;overflow:auto}
.has-drop:focus-within .drop,.has-drop:hover .drop{display:block}
.drop a{display:block;padding:7px 9px;border-radius:8px;font-size:15px}
.drop a:hover{background:var(--accl);text-decoration:none}
.pill-emergency{background:var(--call);color:#fff!important;padding:8px 14px;border-radius:999px;font-family:var(--display)}
.header-call{display:flex;flex-direction:column;line-height:1.15;margin-left:6px}
.header-call b{font-family:var(--display);font-size:17px;color:var(--call)}
.header-call span{font-size:12px;color:var(--mut)}
.burger{display:none;background:none;border:0;font-size:26px;min-width:44px;min-height:44px;cursor:pointer;color:var(--accd)}
.mobile-menu{display:none;background:#fff;border-bottom:1px solid var(--line);padding:10px 20px 16px}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:11px 6px;font-weight:600;color:var(--fg);border-bottom:1px solid var(--line)}
.mobile-menu a.em-row{color:var(--call);font-family:var(--display)}
/* weather strip A3 */
.weather-strip{background:var(--warn);border-bottom:1px solid #EBD9AE;color:#5C4712;font-size:14.5px}
.weather-strip .wrap{padding-top:8px;padding-bottom:8px;display:flex;gap:10px;align-items:center}
/* breadcrumb */
.crumbs{background:#fff;border-bottom:1px solid var(--line);font-size:14px;color:var(--mut)}
.crumbs .wrap{padding-top:9px;padding-bottom:9px}
/* R1/R2 hero */
.hero{background:linear-gradient(160deg,var(--hero) 55%,var(--accd));color:#EAF3F8;padding:52px 0 46px}
.hero.urgent{background:linear-gradient(160deg,#3D0E0A 40%,#7C1D14)}
.hero h1{color:#fff;font-size:clamp(30px,4.6vw,46px);font-weight:800;max-width:820px}
.hero .kicker{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);padding:5px 13px;border-radius:999px;font-size:13.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:16px}
.hero p.lead{font-size:19px;max-width:760px;margin:16px 0 22px;color:#D7E6EE}
.hero-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:30px;align-items:start}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.call-line{width:100%;font-size:14px;color:#BFD6E2;margin-top:4px}
.hero-img{border-radius:var(--rad);overflow:hidden;border:1px solid rgba(255,255,255,.25)}
/* image placeholder (R14 fallback) */
.ph-img{background:linear-gradient(140deg,var(--accl),#BFD9E6 60%,#9CC3D8);color:var(--accd);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:22px;aspect-ratio:4/3;font-family:var(--display)}
.ph-img .ph-ico{font-size:40px}
.ph-img small{font-family:var(--body);font-weight:600;color:var(--acc);max-width:300px}
.ph-img.wide{aspect-ratio:16/8}
/* sections */
section{padding:44px 0}
.sec-head{max-width:760px;margin-bottom:22px}
.sec-head h2{font-size:clamp(24px,3.4vw,33px);margin-bottom:8px}
.sec-head p{color:var(--mut)}
.alt{background:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:20px;box-shadow:0 2px 10px rgba(10,30,41,.05)}
.alt .card{background:var(--bg)}
.card h3{font-size:18.5px;margin-bottom:7px}
.card p{color:var(--mut);font-size:15.5px}
.card .ico{font-size:27px;margin-bottom:9px}
/* M1 marquee */
.marquee{overflow:hidden;background:var(--accd);color:#fff;padding:11px 0}
.marquee-track{display:flex;gap:44px;white-space:nowrap;animation:mq 30s linear infinite;font-family:var(--display);font-weight:600;font-size:15px;width:max-content}
@keyframes mq{to{transform:translateX(-50%)}}
/* W1 problem checker */
.checker{background:var(--card);border:2px solid var(--acc);border-radius:var(--rad);padding:24px;box-shadow:var(--shadow)}
.checker h2,.checker h3{margin-bottom:6px}
.checker .sign{display:flex;gap:11px;align-items:flex-start;width:100%;text-align:left;background:var(--bg);border:1.5px solid var(--line);border-radius:var(--rad-s);padding:13px 15px;margin-top:10px;font-size:16px;font-weight:600;cursor:pointer;min-height:48px;color:var(--fg)}
.checker .sign[aria-pressed="true"]{border-color:var(--acc);background:var(--accl)}
.checker .sign.em{border-color:#E8B4B0;background:#FBEEEC}
.checker .box-em{margin-left:auto;color:var(--call);font-family:var(--display);font-size:13px}
.checker-result{display:none;margin-top:16px;border-radius:var(--rad-s);padding:17px;background:var(--accl);border:1px solid var(--acc)}
.checker-result.show{display:block}
.checker-result.em{background:#FBEEEC;border-color:var(--call)}
/* Q4 quick answer */
.quick{background:var(--accl);border-left:6px solid var(--acc);border-radius:var(--rad-s);padding:20px 22px;font-size:17.5px}
.quick b{font-family:var(--display)}
.zipcheck{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}
.zipcheck input{padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--rad-s);font-size:16px;min-height:48px;width:180px}
.zip-msg{font-weight:600;align-self:center}
/* G1 bento */
.bento{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.bento .stat{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:18px}
.stat .num{font-family:var(--display);font-weight:800;font-size:29px;color:var(--accd)}
.stat .lbl{color:var(--mut);font-size:14.5px;margin-top:3px}
.stat .src{font-size:12px;color:var(--mut);margin-top:7px}
/* jump menu J1 */
.jump{display:flex;gap:9px;flex-wrap:wrap}
.jump a{background:#fff;border:1px solid var(--line);padding:9px 15px;border-radius:999px;font-weight:600;font-size:14.5px;color:var(--accd);min-height:44px;display:inline-flex;align-items:center}
/* T2 prose */
.prose{max-width:820px}
.prose h2{font-size:clamp(23px,3.2vw,31px);margin:30px 0 10px}
.prose h2:first-child{margin-top:0}
.prose p{margin-bottom:14px}
.prose ul{margin:0 0 14px 20px}
.prose li{margin-bottom:6px}
.prose .sec-img{margin:16px 0;border-radius:var(--rad);overflow:hidden;border:1px solid var(--line)}
/* layout with sticky side card */
.two-col{display:grid;grid-template-columns:1.6fr .85fr;gap:28px;align-items:start}
.side-card{position:sticky;top:86px;background:var(--accd);color:#EAF3F8;border-radius:var(--rad);padding:22px}
.side-card h3{color:#fff}
.side-card a{color:#fff}
.side-card p{color:#C4D9E4;font-size:15.5px}
/* S2/S3 related services */
.svc .btn{margin-top:12px}
/* FAQ F2 */
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--rad-s);padding:16px 19px;margin-bottom:11px}
.faq summary{font-family:var(--display);font-weight:700;font-size:17px;cursor:pointer;min-height:28px}
.faq details p{margin-top:9px;color:#33424B}
/* reviews V1 */
.rev .stars{color:#D98E00;font-size:18px;letter-spacing:2px}
.rev .who{margin-top:11px;font-weight:700;font-family:var(--display);font-size:15px}
.rev .who span{color:var(--mut);font-family:var(--body);font-weight:600}
/* neighborhoods N2 */
.nb-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px}
.nb-list{columns:3;column-gap:26px;font-size:15.5px}
.nb-list li{margin-bottom:5px;break-inside:avoid}
details.allnb{margin-top:8px}
details.allnb summary{cursor:pointer;font-family:var(--display);font-weight:700;color:var(--acc);padding:10px 0;min-height:44px}
/* T1 final cta */
.final-cta{background:linear-gradient(150deg,var(--hero),var(--accd));color:#fff;border-radius:var(--rad);padding:34px;text-align:center}
.final-cta h2{color:#fff;margin-bottom:9px}
.final-cta p{color:#C4D9E4;margin-bottom:18px}
/* emergency band E2 */
.eband{background:#FBEEEC;border:2px solid var(--call);border-radius:var(--rad);padding:22px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.eband h2,.eband h3{color:var(--calld)}
/* before/after B2 */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ba .ph-img{aspect-ratio:16/10}
/* meter bars K2 */
.meter{margin-bottom:15px}
.meter .m-top{display:flex;justify-content:space-between;font-weight:600;font-size:15px}
.meter .bar{height:11px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:5px}
.meter .fill{height:100%;background:var(--acc2);border-radius:99px}
/* FT2 footer */
.footer{background:var(--hero);color:#C4D9E4;padding:48px 0 30px;margin-top:10px}
.footer a{color:#EAF3F8}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:26px}
.footer h3{color:#fff;font-size:17px;margin-bottom:12px}
.footer li{list-style:none;margin-bottom:7px;font-size:15px}
.footer .disc{border-top:1px solid rgba(255,255,255,.18);margin-top:28px;padding-top:18px;font-size:13.5px;color:#93ACB9}
/* sticky mobile call */
.sticky-call{display:none}
@media (max-width:900px){
  .nav{display:none}.burger{display:block}.header-call{display:none}
  .hero-grid,.two-col{grid-template-columns:1fr}
  .nb-list{columns:2}.footer-grid{grid-template-columns:1fr 1fr}.ba{grid-template-columns:1fr}
  .sticky-call{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:70;background:#fff;border-top:1px solid var(--line);padding:9px 14px;gap:10px}
  .sticky-call a{flex:1;justify-content:center}
  body{padding-bottom:70px}
  .side-card{position:static}
}
@media (max-width:480px){.nb-list{columns:1}.footer-grid{grid-template-columns:1fr}}
/* blog */
.toc{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:19px 22px;margin-bottom:24px}
.toc li{margin:5px 0 5px 18px}
.callbox{background:var(--accl);border:1.5px solid var(--acc);border-radius:var(--rad);padding:20px;margin:24px 0;text-align:center}
.reviewer{display:flex;gap:15px;background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:19px;align-items:flex-start}
.reviewer .avatar{width:58px;height:58px;border-radius:50%;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:23px;flex:none}
.sources{font-size:14px;color:var(--mut)}
.sources li{margin:4px 0 4px 18px}
.searchbox{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.searchbox input{flex:1;min-width:210px;padding:12px 15px;border:1.5px solid var(--line);border-radius:var(--rad-s);font-size:16px;min-height:48px}
.loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:13px}
.loc-grid a{background:#fff;border:1px solid var(--line);border-radius:var(--rad-s);padding:14px 16px;font-weight:600;color:var(--accd);display:block}
.loc-grid a:hover{border-color:var(--acc);text-decoration:none}
.loc-grid a small{display:block;color:var(--mut);font-weight:500}
