/* ============================================================
   Water Damage Missouri — Design System
   Deep-teal trust palette + amber-rust urgency accent.
   Fonts loaded via <link> in <head> (see PAGE_TEMPLATE), not @import,
   so the browser can discover and fetch them without an extra
   CSS-parse round trip.
   ============================================================ */

:root{
  --ink:        #12211F;   /* near-black, warm charcoal-teal */
  --teal-900:   #0E2A2E;
  --teal-800:   #15393D;
  --teal-700:   #1E4B50;
  --teal-500:   #3D7A80;
  --teal-100:   #E7EFEE;
  --sand-50:    #F8F5EF;
  --sand-100:   #F1ECE1;
  --white:      #FFFFFF;
  --amber-600:  #C1441E;
  --amber-700:  #A8371A;
  --amber-100:  #FBE9E1;
  --gold-500:   #B98A2E;
  --line:       #DCD5C6;
  --text-dim:   #55625F;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Public Sans', -apple-system, Segoe UI, sans-serif;

  --radius-sm: 4px;
  --radius-md: 8px;
  --maxw: 1160px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--font-display); color:var(--teal-900); line-height:1.15; margin:0 0 .5em;}
h1{font-size:clamp(2.1rem,4.4vw,3.2rem); font-weight:600; letter-spacing:-.01em;}
h2{font-size:clamp(1.6rem,3vw,2.3rem); font-weight:600;}
h3{font-size:1.2rem; font-weight:600; color:var(--teal-800);}
p{margin:0 0 1em}
a{color:var(--teal-700); text-decoration:none}
a:hover{text-decoration:underline}
ul{padding-left:1.25em}
li{margin-bottom:.5em}
img{max-width:100%; display:block}
.container{max-width:var(--maxw); margin:0 auto; padding:0 24px}
section{padding:64px 0}
.section-alt{background:var(--sand-50)}
.section-dark{background:var(--teal-900); color:var(--sand-50)}
.section-dark h2, .section-dark h3{color:var(--white)}
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-size:.95rem; color:var(--amber-700); font-weight:600; margin-bottom:.6em;
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:14px 26px; border-radius:var(--radius-sm); font-weight:700;
  font-size:1.02rem; border:2px solid transparent; cursor:pointer;
}
.btn-primary{background:var(--amber-600); color:var(--white);}
.btn-primary:hover{background:var(--amber-700); text-decoration:none}
.btn-outline{border-color:var(--teal-700); color:var(--teal-800); background:transparent}
.btn-outline:hover{background:var(--teal-100); text-decoration:none}

/* ---------- Top utility bar ---------- */
.topbar{background:var(--teal-900); color:var(--sand-100); font-size:.88rem;}
.topbar .container{display:flex; justify-content:space-between; align-items:center; padding:8px 24px; flex-wrap:wrap; gap:8px;}
.topbar-items{display:flex; gap:20px; flex-wrap:wrap}
.topbar a{color:var(--sand-100); font-weight:600}

/* ---------- Nav (never sticky, per site rule) ---------- */
.nav{background:var(--white); border-bottom:1px solid var(--line);}
.nav .container{display:flex; align-items:center; justify-content:space-between; padding:16px 24px;}
.brand{font-family:var(--font-display); font-weight:700; font-size:1.35rem; color:var(--teal-900);}
.brand span{color:var(--amber-600)}
.brand-logo{height:50px; width:auto; display:block}
.nav-links{display:flex; gap:28px; align-items:center; list-style:none; margin:0; padding:0;}
.nav-links a{color:var(--ink); font-weight:600; font-size:.98rem}
.nav-cta{display:flex; align-items:center; gap:14px}
.nav-phone{font-weight:700; color:var(--teal-800); font-size:1.05rem}
.dropdown{position:relative}
.dropdown-panel{
  display:none; position:absolute; top:100%; left:0; background:var(--white);
  border:1px solid var(--line); border-radius:var(--radius-md); padding:14px;
  min-width:260px; box-shadow:0 12px 32px rgba(14,42,46,.14); z-index:40;
  max-height:340px; overflow-y:auto;
}
.dropdown:hover .dropdown-panel, .dropdown:focus-within .dropdown-panel{display:block}
.dropdown-panel a{display:block; padding:6px 8px; font-weight:500; border-radius:4px}
.dropdown-panel a:hover{background:var(--teal-100); text-decoration:none}
.mobile-toggle{display:none; background:none; border:none; font-size:1.6rem; cursor:pointer; color:var(--teal-900)}

/* ---------- Hero ---------- */
.hero{
  background:
    linear-gradient(100deg, var(--teal-900) 0%, var(--teal-900) 38%, rgba(14,42,46,.72) 62%, rgba(14,42,46,.35) 100%),
    url('../assets/hero-banner.jpg') center right / cover no-repeat;
  color:var(--white); padding:72px 0 56px;
}
.hero .eyebrow{color:var(--gold-500)}
.hero h1{color:var(--white); max-width:16ch}
.hero-badges{display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 30px;}
.badge{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.22);
  padding:9px 16px; border-radius:999px; font-size:.9rem; font-weight:600;
}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap}
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:44px; padding-top:32px; border-top:1px solid rgba(255,255,255,.18);}
.stat{text-align:left}
.stat b{display:block; font-family:var(--font-display); font-size:1.9rem; color:var(--gold-500)}
.stat span{font-size:.88rem; color:var(--sand-100)}

/* ---------- Trust marquee ticker ---------- */
.marquee{background:var(--sand-100); border-bottom:1px solid var(--line); overflow:hidden; padding:14px 0;}
.marquee-track{display:flex; gap:40px; white-space:nowrap; animation:scroll-left 32s linear infinite; width:max-content;}
.marquee-track span{font-weight:700; color:var(--teal-800); font-size:.92rem; display:flex; align-items:center; gap:10px;}
.marquee-track span::before{content:"\2726"; color:var(--amber-600)}
@keyframes scroll-left{from{transform:translateX(0)} to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.marquee-track{animation:none}}

/* ---------- Urgency band ---------- */
.urgency{background:var(--teal-800); color:var(--white); padding:40px 0; text-align:center;}
.urgency h2{color:var(--white); max-width:44ch; margin:0 auto .3em;}
.urgency p{color:var(--sand-100); max-width:56ch; margin:0 auto 20px;}

/* ---------- Cards / services ---------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:26px; height:100%;
}
.card h3{margin-bottom:.4em}
.card h3 a{color:var(--teal-900); text-decoration:none}
.card h3 a:hover{text-decoration:underline}
.card .kicker{font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; color:var(--amber-700); font-weight:700; margin-bottom:.5em;}
.card-actions{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap}
.card-actions .btn{padding:9px 16px; font-size:.88rem}

/* ---------- Process steps ---------- */
.steps{counter-reset:step}
.step{display:flex; gap:20px; padding:22px 0; border-bottom:1px solid var(--line);}
.step:last-child{border-bottom:none}
.step-num{
  counter-increment:step; font-family:var(--font-display); font-size:1.6rem; font-weight:700;
  color:var(--amber-600); min-width:52px;
}
.step-num::before{content:counter(step, decimal-leading-zero)}

/* ---------- Why choose / trust bullets ---------- */
.trust-item{display:flex; gap:14px; padding:16px 0}
.trust-icon{width:38px; height:38px; border-radius:50%; background:var(--teal-100); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1.1rem;}
.trust-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:8px 32px;}
.trust-grid .trust-item{border-bottom:1px solid var(--line)}

/* ---------- Testimonials ---------- */
.testimonial{background:var(--sand-50); border-left:4px solid var(--amber-600); padding:22px 24px; border-radius:0 var(--radius-md) var(--radius-md) 0;}
.testimonial p{font-style:italic; margin-bottom:.6em}
.testimonial .who{display:flex; align-items:center; gap:12px; margin-top:14px;}
.avatar-circle{width:40px; height:40px; border-radius:50%; background:var(--teal-700); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; flex-shrink:0;}
.who-name{font-weight:700; color:var(--teal-800); font-style:normal; display:block;}
.who-loc{font-size:.85rem; color:var(--text-dim); font-style:normal;}
.disclaimer-note{font-size:.85rem; color:var(--text-dim); font-style:italic; margin-top:10px;}

/* ---------- FAQ accordion ---------- */
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:18px 0; font-family:var(--font-body); font-weight:700; font-size:1.04rem;
  color:var(--teal-900); display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-q .plus{font-size:1.4rem; color:var(--amber-600); flex-shrink:0}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-a p{padding-bottom:18px; margin:0; color:var(--text-dim)}
.faq-item.open .faq-a{max-height:400px}
.faq-item.open .plus{transform:rotate(45deg)}

/* ---------- Locations list ---------- */
.chip-list{display:flex; flex-wrap:wrap; gap:10px;}
.chip{background:var(--teal-100); color:var(--teal-800); padding:8px 14px; border-radius:999px; font-size:.9rem; font-weight:600;}
.chip a{color:inherit}
.city-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:6px 24px; list-style:none; padding:0; margin:0 0 1em;}
.city-grid li{margin:0; padding:6px 0; border-bottom:1px solid var(--line); font-size:.96rem;}
@media (max-width:680px){.city-grid{grid-template-columns:repeat(2,1fr);}}

/* ---------- Final CTA (checklist style) ---------- */
.final-cta{background:var(--teal-900); color:var(--white); padding:64px 0;}
.final-cta h2{color:var(--white)}
.final-cta-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:start;}
.checklist{list-style:none; padding:0; margin:22px 0;}
.checklist li{display:flex; gap:10px; align-items:flex-start; margin-bottom:12px; color:var(--sand-100)}
.checklist li::before{content:"\2713"; color:var(--gold-500); font-weight:700; flex-shrink:0;}
.final-cta-card{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-md); padding:32px; text-align:center;}
.final-cta-card .btn-primary{width:100%; margin-top:14px}

/* ---------- Section eyebrow + subtext header ---------- */
.section-head{margin-bottom:32px;}
.section-head p{color:var(--text-dim)}

/* ---------- Footer ---------- */
footer{background:var(--teal-900); color:var(--sand-100); padding:56px 0 24px;}
.footer-grid{display:grid; grid-template-columns:1.1fr 1.3fr 1fr 0.8fr; gap:32px; margin-bottom:36px;}
footer h4{color:var(--white); font-family:var(--font-body); font-size:.92rem; text-transform:uppercase; letter-spacing:.04em; margin-bottom:14px;}
footer a{color:var(--sand-100)}
footer ul{list-style:none; padding:0; margin:0;}
footer li{margin-bottom:8px; font-size:.94rem}
footer .footer-services ul, footer .footer-locations ul{columns:2; column-gap:20px;}
footer .footer-services li, footer .footer-locations li{break-inside:avoid; margin-bottom:10px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15); padding-top:20px; font-size:.85rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; color:var(--sand-100);}

/* ---------- Sticky bottom call bar (mobile) ---------- */
.sticky-call{
  position:fixed; left:0; right:0; bottom:0; background:var(--amber-600); color:var(--white);
  padding:14px 20px; display:none; align-items:center; justify-content:center; gap:10px;
  font-weight:700; font-size:1.05rem; z-index:50; transform:translateY(100%); transition:transform .25s ease;
}
.sticky-call.visible{transform:translateY(0)}
.sticky-call a{color:var(--white)}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .grid-3, .grid-2, .footer-grid{grid-template-columns:1fr 1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:680px){
  .nav-links{display:none}
  .mobile-toggle{display:block}
  .grid-3, .grid-2, .footer-grid{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .topbar .container{justify-content:center; text-align:center}
  .sticky-call{display:flex}
  section{padding:44px 0}
}
