/* Rockwall Drain and Sewer Pros - Iron Command styles, v4.
   Dark navy + amber. Oswald condensed display type, system sans body.
   Form geometry budget: at 360px viewport, section padding 12px + card
   padding 16px per side = 56px total deductions, leaving a 304px content
   box for the fixed 300px Turnstile widget. Form cards and grid parents
   carry min-width:0. Never add custom widget CSS. */
:root{
  --navy:#0B1220; --amber:#F5A400; --amber-pale:#FEF3C7;
  --ink:#101828; --muted:#475569; --line:#E2E8F0; --paper:#fff;
  --cream:#F8FAFC; --sand:#F5F0E6;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6}
img{max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:"Oswald","Arial Narrow","Franklin Gothic Medium",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:-.3px;line-height:1.02}
.skip{position:absolute;left:-9999px;top:0;background:var(--amber);color:var(--navy);padding:10px 16px;font-weight:800;z-index:200}
.skip:focus{left:12px;top:12px}
/* Header: sticky, wraps safely at narrow widths (brand may wrap, never overflows) */
header{position:sticky;top:0;z-index:90;background:var(--navy);color:#fff}
.head{max-width:1200px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:24px;min-width:0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0;flex:1 1 auto}
.brand .mark{flex:0 0 auto;width:40px;height:40px;background:var(--amber);display:flex;align-items:center;justify-content:center}
.brand .mark svg{width:26px;height:26px}
.brand .word{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:clamp(18px,3.2vw,26px);letter-spacing:-.3px;text-transform:uppercase;line-height:1.05}
.brand .word span{color:var(--amber)}
nav.main{margin-left:auto;flex:0 0 auto}
nav.main .links{display:flex;gap:20px;align-items:center}
nav.main a,nav.main .dropbtn{color:#E5E7EB;text-decoration:none;font-weight:700;font-size:15px;background:none;border:0;cursor:pointer;font-family:inherit;padding:6px 2px}
nav.main .has-drop{position:relative}
nav.main .dropbtn .chev{display:inline-block;width:8px;height:8px;border-right:2px solid #E5E7EB;border-bottom:2px solid #E5E7EB;transform:rotate(45deg);margin-left:6px;vertical-align:2px}
nav.main .drop{display:none;position:absolute;top:30px;left:0;background:#fff;color:var(--ink);border:2px solid var(--navy);min-width:280px;padding:10px 0;z-index:95;box-shadow:0 14px 34px rgba(0,0,0,.25)}
nav.main .drop a{display:block;padding:9px 18px;color:var(--ink);font-weight:700}
@media(hover:hover){
  nav.main .has-drop:hover .drop,nav.main .has-drop:focus-within .drop{display:block}
  nav.main .drop a:hover{background:var(--amber-pale)}
}
nav.main .has-drop.open .drop{display:block}
nav.main .drop a:hover{background:var(--amber-pale)}
.chip{background:var(--amber);color:var(--navy);font-weight:800;font-size:13px;padding:7px 12px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}
.callbtn{background:var(--amber);color:var(--navy);font-weight:800;border:0;padding:12px 20px;font-size:16px;cursor:pointer;text-transform:uppercase;white-space:nowrap;text-decoration:none;font-family:inherit}
.burger{display:none;background:none;border:2px solid var(--amber);color:#fff;font-weight:800;padding:10px 12px;cursor:pointer;font-family:inherit;text-transform:uppercase;letter-spacing:.4px}
.burger .bar{display:block;width:22px;height:3px;background:#fff;margin:3px 0}
/* Mobile menu panel: scrolls INTERNALLY, never locks body scroll */
.mpanel{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;color:var(--ink);border-bottom:3px solid var(--navy);max-height:calc(100dvh - 70px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:10px 0 16px;z-index:94;box-shadow:0 18px 34px rgba(0,0,0,.3)}
.mpanel.open{display:block}
.mpanel a,.mpanel .mdropbtn{display:block;padding:12px 20px;color:var(--ink);text-decoration:none;font-weight:700;font-size:16px;background:none;border:0;width:100%;text-align:left;cursor:pointer;font-family:inherit}
.mpanel .mdropbtn .chev{display:inline-block;width:8px;height:8px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg);margin-left:6px;vertical-align:2px}
.mpanel .msub{display:none;padding:0 0 6px}
.mpanel .msub.open{display:block}
.mpanel .msub a{padding:10px 20px 10px 36px;font-size:15px;color:var(--muted)}
/* Hero: split headline + form card over real photography */
.hero{position:relative;display:flex;align-items:stretch;overflow:hidden;background:var(--navy)}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,18,32,.94) 0%,rgba(11,18,32,.78) 45%,rgba(11,18,32,.25) 100%)}
.hero .in{position:relative;max-width:1200px;margin:0 auto;padding:56px 20px;display:grid;grid-template-columns:1.25fr .85fr;gap:40px;width:100%;align-items:center;min-width:0}
.hero h1{color:#fff;font-size:clamp(44px,7vw,96px)}
.hero h1 em{color:var(--amber);font-style:normal}
.hero p.sub{color:#E5E7EB;font-size:19px;margin:18px 0 22px;max-width:560px}
/* Breadcrumb: lives inside the hero, above the title, never as a strip above it. */
.hero .bread,.dark .bread{grid-column:1/-1;color:rgba(255,255,255,.82);font-size:13px;margin:0 0 18px}
.hero .bread a,.dark .bread a{color:#fff;text-decoration:none}
.hero .bread a:hover,.dark .bread a:hover{text-decoration:underline}
.hero .bread span,.dark .bread span{color:var(--amber);font-weight:700}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.badges span{border:2px solid var(--amber);color:#fff;font-weight:800;font-size:13px;padding:8px 12px;text-transform:uppercase;letter-spacing:.4px}
/* Lead form card: one type site-wide. No custom widget rules, ever. */
.formcard{background:#fff;color:var(--ink);padding:26px;border-top:8px solid var(--amber);box-shadow:0 18px 50px rgba(0,0,0,.45);min-width:0}
.formcard h2{font-size:26px;margin-bottom:4px}
.formcard p{font-size:14px;color:var(--muted);margin-bottom:16px}
.formcard label{display:block;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;margin:12px 0 5px}
.formcard input,.formcard select,.formcard textarea{width:100%;padding:12px;border:2px solid #CBD5E1;font-size:15px;font-family:inherit;min-width:0}
.formcard button[type=submit]{width:100%;background:var(--navy);color:#fff;font-weight:800;font-size:17px;padding:15px;border:0;cursor:pointer;text-transform:uppercase;margin-top:16px;font-family:inherit}
.formcard .note{font-size:12px;color:#64748B;text-align:center;margin-top:10px}
.formcard .hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.formcard .ferr{display:none;background:#FEF2F2;border:2px solid #B91C1C;color:#991B1B;padding:12px;font-size:14px;margin-top:14px}
.formcard .ferr.show{display:block}
/* Proof wall: static, placeholder proof only (stars + platform labels, no counts) */
.proof{background:var(--amber);color:var(--navy)}
.proof .in{max-width:1200px;margin:0 auto;padding:16px 20px;display:flex;gap:26px;align-items:center;flex-wrap:wrap;justify-content:center}
.proof .stars{font-size:26px;letter-spacing:3px}
.proof strong{font-size:17px;text-transform:uppercase;letter-spacing:.4px}
.proof span{font-weight:700}
/* Sections */
section{max-width:1200px;margin:0 auto;padding:64px 20px;min-width:0}
section h2{font-size:clamp(34px,5vw,58px);margin-bottom:10px}
.lede{font-size:18px;color:var(--muted);max-width:760px;margin-bottom:34px}
section p{margin-bottom:14px}
section ul,section ol{margin:0 0 16px 22px}
section li{margin-bottom:6px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{border:2px solid var(--line);overflow:hidden;background:#fff;min-width:0}
.card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.card .b{padding:18px}
.card h3{font-size:22px;margin-bottom:6px}
.card h3 a{text-decoration:none}
.card h3 a:hover{text-decoration:underline}
.card p{color:var(--muted);font-size:15px}
.card .more{display:inline-block;margin-top:10px;font-weight:800;color:var(--navy);text-transform:uppercase;font-size:13px;letter-spacing:.4px}
/* Split layout: heading INSIDE the text column (rule h). Mobile stacks
   heading, then image, then text via display:contents (rule d). */
.split{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;margin:34px 0}
.split.flip .split-text{order:2}
.split.flip figure{order:1}
.split-text{min-width:0}
.split-text .split-body{min-width:0}
.split-text h2{font-size:clamp(30px,4vw,46px);margin-bottom:12px}
.split figure{min-width:0}
.split figure img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.split figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.dark{background:var(--navy);color:#fff}
.dark .wrap{max-width:1200px;margin:0 auto;padding:64px 20px}
.dark h2{color:#fff}
.dark p{color:#E5E7EB}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:28px}
.cols3 h3{color:var(--amber);font-size:22px;margin-bottom:8px}
.cols3 p{color:#E5E7EB}
/* Ballpark estimator: visual only, result area marked placeholder, zero prices */
.est{background:var(--amber-pale);border:3px solid var(--navy);padding:30px;min-width:0}
.est label{display:block;font-weight:800;text-transform:uppercase;letter-spacing:.4px;font-size:13px;margin:14px 0 5px}
.est select,.est input[type=range]{width:100%;min-width:0}
.est select{padding:12px;border:2px solid var(--navy);font-size:15px;font-family:inherit}
.est button{background:var(--navy);color:#fff;font-weight:800;font-size:16px;padding:14px 26px;border:0;cursor:pointer;text-transform:uppercase;margin-top:18px;font-family:inherit}
.est .result{margin-top:18px;background:#fff;border:2px dashed var(--navy);padding:18px;font-weight:700}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:30px}
.step{border-top:6px solid var(--amber);padding-top:14px;min-width:0}
.step .n{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:52px;color:var(--amber);line-height:1}
.step h3{font-size:20px;margin:8px 0 6px}
.step p{color:var(--muted);font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.chips a,.chips span{border:2px solid var(--navy);padding:9px 16px;font-weight:800;text-decoration:none}
.chips a:hover{background:var(--amber-pale)}
.faq{border-top:2px solid var(--line);padding:20px 0}
.faq summary{cursor:pointer;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:21px;text-transform:uppercase;list-style-position:inside}
.faq p{color:var(--muted);margin-top:8px}
.bread{max-width:1200px;margin:0 auto;padding:20px 20px 0;font-size:14px;color:var(--muted)}
.bread a{text-decoration:none}
.bread a:hover{text-decoration:underline}
.answer-first{background:var(--cream);border-left:6px solid var(--amber);padding:20px 22px;margin:0 0 28px}
.answer-first p{margin:0;font-size:18px}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:0;border:2px solid var(--navy);margin:24px 0}
.compare .col{padding:24px}
.compare .col.darkcol{background:var(--navy);color:#fff}
.compare .col.darkcol p{color:#E5E7EB}
.compare h3{margin-bottom:10px}
.mapwrap{margin:24px 0}
.mapwrap iframe{width:100%;height:420px;border:2px solid var(--line)}
footer{background:var(--navy);color:#CBD5E1}
footer .in{max-width:1200px;margin:0 auto;padding:44px 20px;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:30px}
footer h3{color:#fff;margin-bottom:10px}
footer a{display:block;color:#CBD5E1;text-decoration:none;padding:3px 0}
footer a:hover{text-decoration:underline}
footer .fine{max-width:1200px;margin:0 auto;padding:0 20px 30px;font-size:13px;color:#94A3B8}
footer .fine a{display:inline;padding:0}
.callbar{display:none}
@media(max-width:900px){
  .grid,.cols3{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .split-text{display:contents}
  .split-text h2{order:1}
  .split-text .split-body{order:3}
  .split figure,.split.flip figure{order:2}
  .split figure img{max-height:260px}
  footer .in{grid-template-columns:1fr 1fr}
  .compare{grid-template-columns:1fr}
}
@media(max-width:820px){
  nav.main .links,nav.main .chip,header .callbtn{display:none}
  .burger{display:block}
  .head{position:relative}
  .hero .in{grid-template-columns:1fr;padding:36px 20px}
  .grid,.cols3,.steps{grid-template-columns:1fr}
  footer .in{grid-template-columns:1fr}
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--navy);padding:10px 14px;gap:10px}
  .callbar button,.callbar a{flex:1;background:var(--amber);color:var(--navy);border:0;font-weight:800;font-size:17px;padding:14px;cursor:pointer;text-transform:uppercase;font-family:inherit}
  .callbar a{text-decoration:none;text-align:center}
  body{padding-bottom:64px}
}
/* Form geometry budget at narrow widths: 12px section + 16px card = 56px */
@media(max-width:480px){
  section{padding:48px 12px}
  .hero .in{padding:32px 12px}
  .formcard{padding:16px}
  .proof .in{padding:14px 12px}
  .dark .wrap{padding:48px 12px}
  footer .in{padding:36px 12px}
  footer .fine{padding:0 12px 24px}
  .est{padding:20px 16px}
}
@media(max-width:360px){
  section h2,.split-text h2{font-size:28px}
}
section h2{overflow-wrap:break-word}
.source{font-size:14px;color:#5b6472;border-top:1px solid #e2e6ec;padding-top:14px}
.source a{color:#0b3d66;text-decoration:underline}
/* Rework: tint bands, callouts, glance boxes, related cards, table wrap */
section.tint{background:var(--sand);border-top:2px solid var(--line);border-bottom:2px solid var(--line)}
.callout{background:var(--amber-pale);border-left:6px solid var(--amber);padding:20px 22px;margin:20px 0}
.callout p{margin:0;font-size:18px;font-weight:700}
.glance{background:#fff;border:3px solid var(--navy);padding:24px;margin:0 0 24px}
.glance h3{font-size:24px;margin-bottom:10px}
section ul.checklist{margin:0;list-style:none}
section ul.checklist li{padding-left:28px;position:relative;margin-bottom:8px}
section ul.checklist li::before{content:"\2713";position:absolute;left:0;color:var(--amber);font-weight:800}
.relcard{border:2px solid var(--line);overflow:hidden;background:#fff;min-width:0}
.relcard img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.relcard .b{padding:18px}
.relcard h3{font-size:22px;margin-bottom:6px}
.relcard h3 a{text-decoration:none}
.relcard h3 a:hover{text-decoration:underline}
.relcard p{color:var(--muted);font-size:15px}
.relcard .more{display:inline-block;margin-top:10px;font-weight:800;color:var(--navy);text-transform:uppercase;font-size:13px;letter-spacing:.4px}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.datatable{width:100%;border-collapse:collapse;margin:20px 0;min-width:560px}
.datatable th{background:var(--navy);color:#fff;font-family:"Oswald","Arial Narrow","Franklin Gothic Medium",sans-serif;text-transform:uppercase;letter-spacing:.3px;font-size:15px;font-weight:700;text-align:left;padding:13px 14px;border-bottom:4px solid var(--amber);vertical-align:bottom}
.datatable td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.datatable td:first-child{font-weight:700}
.datatable tbody tr:nth-child(even){background:var(--sand)}
