/* Hunt County Well & Pump -- bold-industrial atomic CSS
   Palette: charcoal #1a1d21, amber #ffb800, steel-gray #4a4f57, alert-red #d64545, off-white #f2f2ed
   Fonts: heavy condensed display (Anton-style stack) + Barlow-style body/label stacks */

:root{
  --charcoal:#1a1d21;
  --charcoal-2:#242830;
  --amber:#ffb800;
  --steel:#4a4f57;
  --red:#d64545;
  --off:#f2f2ed;
  --font-display: Impact, Haettenschweiler, "Arial Narrow Bold", "Franklin Gothic Bold", sans-serif;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-label: "Segoe UI", Arial Narrow, Arial, sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--off);
  color:var(--charcoal);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.55;
  padding-bottom:64px;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.05;
  margin:0 0 .5rem;
}
h1{font-size:clamp(2rem,7vw,3.4rem);}
h2{font-size:clamp(1.5rem,4.5vw,2.3rem);}
h3{font-size:1.25rem;}
p{margin:0 0 1rem;}
ul{margin:0 0 1rem;padding-left:1.2rem;}
strong{color:var(--charcoal);}

/* ---------- layout utils ---------- */
.u-container{max-width:73.75rem;margin:0 auto;padding:0 1.1rem;}
.u-flex{display:flex;}
.u-flex-col{display:flex;flex-direction:column;}
.u-wrap{flex-wrap:wrap;}
.u-items-center{align-items:center;}
.u-justify-between{justify-content:space-between;}
.u-justify-center{justify-content:center;}
.u-gap-s{gap:.5rem;}
.u-gap-m{gap:1rem;}
.u-gap-l{gap:2rem;}
.stack{display:flex;flex-direction:column;gap:1.25rem;}
.stack-s{display:flex;flex-direction:column;gap:.6rem;}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;}
.u-grid{display:grid;gap:1.5rem;grid-template-columns:1fr;}
.u-mt-0{margin-top:0;}
.u-mb-0{margin-bottom:0;}
.u-mt-l{margin-top:2.5rem;}
.u-mb-l{margin-bottom:2.5rem;}
.u-py-l{padding-top:3rem;padding-bottom:3rem;}
.u-py-m{padding-top:1.75rem;padding-bottom:1.75rem;}
.u-text-center{text-align:center;}
.u-max-prose{max-width:42rem;}

@media (min-width:48em){
  .u-grid-2{grid-template-columns:1fr 1fr;}
  .u-grid-3{grid-template-columns:repeat(3,1fr);}
  .u-grid-4{grid-template-columns:repeat(4,1fr);}
}
@media (min-width:64em){
  .u-py-l{padding-top:4.5rem;padding-bottom:4.5rem;}
}

/* ---------- colors ---------- */
.u-bg-charcoal{background:var(--charcoal);color:var(--off);}
.u-bg-charcoal-2{background:var(--charcoal-2);color:var(--off);}
.u-bg-amber{background:var(--amber);color:var(--charcoal);}
.u-bg-red{background:var(--red);color:#fff;}
.u-bg-off{background:var(--off);}
.u-bg-steel{background:var(--steel);color:var(--off);}
.u-text-amber{color:var(--amber);}
.u-text-red{color:var(--red);}
.u-text-steel{color:var(--steel);}
.u-text-off{color:var(--off);}

/* ---------- diagonal stripe divider ---------- */
.stripe-divider{
  height:14px;
  background:repeating-linear-gradient(-45deg,var(--amber) 0 14px,var(--charcoal) 14px 28px);
}
.stripe-divider.thin{height:8px;}

/* ---------- header ---------- */
.site-header{
  background:var(--charcoal);
  color:var(--off);
  border-bottom:4px solid var(--amber);
  position:relative;
  z-index:20;
}
.header-row{padding:.85rem 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem;}
.brand{
  font-family:var(--font-display);
  text-transform:uppercase;
  color:var(--off);
  text-decoration:none;
  font-size:1.35rem;
  letter-spacing:.03em;
  line-height:1.1;
}
.brand span{color:var(--amber);}
.header-phone{
  font-family:var(--font-label);
  font-weight:700;
  font-size:1.2rem;
  color:var(--charcoal);
  background:var(--amber);
  padding:.5rem .9rem;
  text-decoration:none;
  white-space:nowrap;
  border:3px solid var(--charcoal);
}
.main-nav{
  border-top:1px solid var(--steel);
  background:var(--charcoal-2);
}
.main-nav ul{
  list-style:none;
  margin:0;
  padding:.6rem 0;
  display:flex;
  flex-wrap:wrap;
  gap:1.1rem;
  font-family:var(--font-label);
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.main-nav a{
  text-decoration:none;
  color:var(--off);
  border-bottom:2px solid transparent;
  padding-bottom:2px;
}
.main-nav a:hover, .main-nav a:focus, .main-nav a.is-active{border-bottom-color:var(--amber);color:var(--amber);}

/* ---------- hero ---------- */
.hero{
  background:
    radial-gradient(circle at 85% 15%, rgba(255,184,0,.16), transparent 45%),
    repeating-linear-gradient(115deg, rgba(255,255,255,.03) 0 2px, transparent 2px 34px),
    linear-gradient(180deg,#101215,var(--charcoal) 55%,var(--charcoal-2));
  color:var(--off);
  border-bottom:6px solid var(--amber);
}
.hero-inner{padding:2.6rem 0 2.2rem;}
.hero h1{color:var(--off);}
.hero .lede{font-size:1.05rem;color:#d6d6cf;max-width:34rem;}
.rig-mark{
  font-family:var(--font-label);
  color:var(--amber);
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.8rem;
  border-left:4px solid var(--amber);
  padding-left:.6rem;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  font-family:var(--font-label);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  font-size:1rem;
  padding:.85rem 1.4rem;
  text-decoration:none;
  border:3px solid var(--charcoal);
  cursor:pointer;
  min-height:48px;
}
.btn-primary{background:var(--amber);color:var(--charcoal);}
.btn-primary:hover{background:#ffc636;}
.btn-outline{background:transparent;color:var(--off);border-color:var(--off);}
.btn-outline:hover{background:rgba(255,255,255,.08);}
.btn-red{background:var(--red);color:#fff;border-color:#7a1f1f;}
.btn-block{width:100%;}

/* ---------- emergency strip ---------- */
.emergency-strip{
  background:var(--red);
  color:#fff;
  border-top:4px solid #7a1f1f;
  border-bottom:4px solid #7a1f1f;
}
.emergency-strip .u-container{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding-top:1rem;
  padding-bottom:1rem;
}
.emergency-strip strong{color:#fff;font-family:var(--font-display);text-transform:uppercase;font-size:1.1rem;letter-spacing:.02em;}

/* ---------- trust bar ---------- */
.trust-bar{background:var(--steel);color:var(--off);border-bottom:4px solid var(--charcoal);}
.trust-bar ul{list-style:none;margin:0;padding:1.1rem 0;display:grid;grid-template-columns:1fr;gap:.9rem;font-family:var(--font-label);font-size:.92rem;}
.trust-bar li{border-left:3px solid var(--amber);padding-left:.7rem;}
@media (min-width:48em){.trust-bar ul{grid-template-columns:repeat(4,1fr);}}

/* ---------- cards ---------- */
.card{
  background:#fff;
  border:4px solid var(--charcoal);
  box-shadow:7px 7px 0 var(--steel);
  padding:1.4rem;
}
.card-dark{
  background:var(--charcoal-2);
  color:var(--off);
  border:4px solid var(--amber);
  box-shadow:7px 7px 0 #000;
  padding:1.4rem;
}
.card h3{margin-top:0;}
.underline{
  display:inline-block;
  border-bottom:5px solid var(--amber);
  padding-bottom:.35rem;
}
.card-grid{display:grid;gap:1.3rem;grid-template-columns:1fr;}
@media (min-width:48em){.card-grid{grid-template-columns:1fr 1fr;}}

/* ---------- sections ---------- */
section{padding:2.5rem 0;}
.section-charcoal{background:var(--charcoal);color:var(--off);}
.section-off{background:var(--off);}

/* ---------- process list ---------- */
.process-list{list-style:none;margin:0;padding:0;counter-reset:step;}
.process-list li{
  counter-increment:step;
  position:relative;
  padding:.9rem 0 .9rem 3.1rem;
  border-bottom:1px solid #d8d8d0;
}
.process-list li::before{
  content:counter(step);
  position:absolute;
  left:0;
  top:.7rem;
  width:2.2rem;
  height:2.2rem;
  background:var(--amber);
  color:var(--charcoal);
  font-family:var(--font-display);
  font-size:1.1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  border:3px solid var(--charcoal);
}

/* ---------- checklist ---------- */
.check-list{list-style:none;margin:0;padding:0;}
.check-list li{
  padding:.75rem 0 .75rem 2.5rem;
  position:relative;
  border-bottom:1px solid #d8d8d0;
}
.check-list li::before{
  content:"\2713";
  position:absolute;
  left:0;
  top:.7rem;
  width:1.7rem;
  height:1.7rem;
  background:var(--charcoal);
  color:var(--amber);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:bold;
  font-size:.9rem;
}

/* ---------- table ---------- */
.price-table{width:100%;border-collapse:collapse;background:#fff;border:3px solid var(--charcoal);}
.price-table caption{text-align:left;font-family:var(--font-label);text-transform:uppercase;font-size:.85rem;margin-bottom:.5rem;color:var(--steel);}
.price-table th,.price-table td{border:1px solid #cfcfc7;padding:.7rem .8rem;text-align:left;font-size:.95rem;}
.price-table thead th{background:var(--charcoal);color:var(--amber);font-family:var(--font-label);text-transform:uppercase;letter-spacing:.02em;font-size:.82rem;}
.price-table tbody tr:nth-child(even){background:#f7f7f2;}
.table-wrap{overflow-x:auto;}

/* ---------- FAQ ---------- */
.faq details{
  border:3px solid var(--charcoal);
  background:#fff;
  margin-bottom:.75rem;
  padding:0;
}
.faq summary{
  cursor:pointer;
  font-family:var(--font-label);
  font-weight:700;
  padding:1rem 1.1rem;
  list-style:none;
  position:relative;
  padding-right:2.5rem;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";
  position:absolute;
  right:1rem;
  top:.85rem;
  font-family:var(--font-display);
  color:var(--amber);
  background:var(--charcoal);
  width:1.7rem;
  height:1.7rem;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.2rem;
}
.faq details[open] summary::after{content:"-";}
.faq .faq-a{padding:0 1.1rem 1.1rem;font-size:.97rem;}

/* ---------- form ---------- */
.quote-form{
  background:var(--charcoal-2);
  border:4px solid var(--amber);
  padding:1.6rem;
  color:var(--off);
}
.quote-form label{display:block;font-family:var(--font-label);font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem;color:var(--amber);}
.quote-form input,.quote-form select,.quote-form textarea{
  width:100%;
  padding:.7rem .8rem;
  border:2px solid var(--steel);
  background:var(--off);
  color:var(--charcoal);
  font-family:var(--font-body);
  font-size:1rem;
  margin-bottom:1rem;
}
.quote-form textarea{min-height:6rem;resize:vertical;}
.quote-form .req{color:var(--red);}
.quote-form .opt{color:#a8aca4;font-weight:400;text-transform:none;}
.quote-form button{
  width:100%;
  padding:.95rem;
  background:var(--amber);
  color:var(--charcoal);
  border:3px solid var(--charcoal);
  font-family:var(--font-label);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  font-size:1.05rem;
  cursor:pointer;
  min-height:48px;
}
.quote-form button:hover{background:#ffc636;}

/* ---------- footer ---------- */
.site-footer{background:var(--charcoal);color:#c9cbc6;padding:2.2rem 0 2.6rem;font-size:.9rem;}
.site-footer a{color:var(--amber);text-decoration:none;}
.site-footer h4{color:var(--off);font-size:1rem;}
.footer-grid{display:grid;gap:1.6rem;grid-template-columns:1fr;}
@media (min-width:48em){.footer-grid{grid-template-columns:repeat(4,1fr);}}
.footer-bottom{border-top:1px solid var(--steel);margin-top:1.6rem;padding-top:1rem;font-size:.8rem;color:#8b8f88;}
.footer-phone{font-family:var(--font-display);font-size:1.6rem;color:var(--amber);text-decoration:none;display:inline-block;}

/* ---------- breadcrumbs ---------- */
.crumbs{font-family:var(--font-label);font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:var(--steel);padding:.9rem 0 0;}
.crumbs a{color:var(--steel);text-decoration:underline;}
.crumbs span{color:var(--charcoal);}

/* ---------- sticky mobile bar ---------- */
.sticky-bar{
  position:fixed;
  left:0;right:0;bottom:0;
  display:flex;
  z-index:50;
  border-top:4px solid var(--charcoal);
}
.sticky-bar a{
  flex:1;
  text-align:center;
  padding:.9rem .5rem;
  font-family:var(--font-label);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
  text-decoration:none;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sticky-bar .call{background:var(--red);color:#fff;}
.sticky-bar .quote{background:var(--amber);color:var(--charcoal);border-left:4px solid var(--charcoal);}
@media (min-width:56.25em){
  .sticky-bar{display:none;}
  body{padding-bottom:0;}
}

/* ---------- limit / callout ---------- */
.callout{
  border-left:5px solid var(--red);
  background:#fff;
  padding:1rem 1.1rem;
}

/* ---------- misc ---------- */
.tag{
  display:inline-block;
  font-family:var(--font-label);
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  background:var(--charcoal);
  color:var(--amber);
  padding:.25rem .6rem;
  border:2px solid var(--amber);
}
hr.rule{border:none;border-top:2px solid var(--steel);margin:1.8rem 0;}
.area-list{list-style:none;margin:0;padding:0;columns:1;}
.area-list li{padding:.4rem 0;border-bottom:1px dashed var(--steel);}
@media (min-width:48em){.area-list{columns:2;}}
@media (min-width:64em){.area-list{columns:3;}}
