:root{
  --bg:#F9F9FA;
  --navy:#1A2E40;
  --ink:#222222;
  --amber:#D97706;
  --white:#FFFFFF;
}

*{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Arial, Helvetica, sans-serif;
  font-size:16px;
  line-height:1.6;
}

h1,h2,h3{
  font-family:Arial, Helvetica, sans-serif;
  color:var(--navy);
  line-height:1.25;
  margin:0 0 12px;
  font-weight:bold;
}

a{color:var(--navy);}

.container{
  max-width:980px;
  margin:0 auto;
  padding:0 16px;
}

/* ---------- top amber bar ---------- */
.top-bar{
  background:var(--amber);
  color:var(--white);
  border-bottom:2px solid var(--navy);
}
.top-bar-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 20px;
  padding-top:8px;
  padding-bottom:8px;
}
.top-bar p{margin:0;}
.top-bar-phone{
  font-size:19px;
  font-weight:bold;
  letter-spacing:.3px;
}
.top-bar-phone a{
  color:var(--white);
  text-decoration:none;
  border-bottom:2px solid var(--white);
}
.top-bar-phone a:hover{border-bottom-color:var(--navy);}
.top-bar-area{font-size:13px;}
.top-bar-badge{
  margin-left:auto;
  background:var(--navy);
  color:var(--white);
  font-size:12px;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:.6px;
  padding:4px 10px;
}

/* ---------- header ---------- */
.header-main{
  background:var(--navy);
  border-bottom:4px solid var(--amber);
}
.header-main-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  padding-top:12px;
  padding-bottom:12px;
}
.wordmark{
  text-decoration:none;
  color:var(--white);
  display:block;
  margin-right:auto;
}
.wordmark-name{
  display:block;
  font-size:21px;
  font-weight:bold;
  letter-spacing:.4px;
}
.wordmark-sub{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  color:var(--amber);
}
.nav{display:flex;flex-wrap:wrap;gap:16px;}
.nav a{
  color:var(--white);
  text-decoration:none;
  font-size:14px;
  padding:4px 0;
  border-bottom:2px solid transparent;
}
.nav a:hover{border-bottom-color:var(--amber);}
.nav-toggle{display:none;}

.btn{
  display:inline-block;
  text-decoration:none;
  font-weight:bold;
  padding:11px 18px;
  border:2px solid var(--navy);
  background:var(--white);
  color:var(--navy);
}
.btn-call{
  background:var(--amber);
  border-color:var(--amber);
  color:var(--white);
}
.btn-call:hover{
  background:var(--navy);
  border-color:var(--navy);
  color:var(--white);
}
.header-call{margin-left:16px;font-size:14px;padding:9px 14px;}
.btn-big{font-size:18px;padding:14px 22px;}

/* ---------- sections ---------- */
.section{padding:36px 0;}
.section-title{
  font-size:24px;
  border-bottom:3px solid var(--navy);
  padding-bottom:8px;
  margin-bottom:14px;
}
.section-note{margin:0 0 22px;max-width:70ch;}

.panel{
  background:var(--white);
  border:2px solid var(--navy);
  padding:26px;
}
.panel-title{font-size:27px;margin-bottom:14px;}
.lead{font-size:17px;max-width:70ch;margin:0 0 20px;}

/* ---------- price table ---------- */
.price-table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 20px;
  font-size:15px;
}
.price-table caption{
  text-align:left;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--navy);
  padding-bottom:6px;
  font-weight:bold;
}
.price-table th,.price-table td{
  border:1px solid var(--navy);
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
}
.price-table thead th{
  background:var(--navy);
  color:var(--white);
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.6px;
}
.price-table tbody th{background:var(--bg);width:34%;}
.price-table .price{
  white-space:nowrap;
  font-weight:bold;
  color:var(--amber);
  font-size:18px;
  width:22%;
}

/* ---------- trust checks ---------- */
.checks{list-style:none;margin:0 0 22px;padding:0;}
.checks li{
  position:relative;
  padding:4px 0 4px 32px;
  font-weight:bold;
  color:var(--navy);
}
.checks li::before{
  content:"";
  position:absolute;
  left:4px;
  top:11px;
  width:13px;
  height:7px;
  border-left:3px solid var(--navy);
  border-bottom:3px solid var(--navy);
  transform:rotate(-45deg);
}
.cta-row{margin:0;}

/* ---------- services ---------- */
.services-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.card{
  background:var(--white);
  border:2px solid var(--navy);
  border-top:6px solid var(--amber);
  padding:20px;
}
.card-title{font-size:19px;}
.card-scope{margin:0 0 14px;font-size:15px;}
.card-meta{margin:0 0 10px;}
.tag{
  display:inline-block;
  background:var(--amber);
  color:var(--white);
  font-weight:bold;
  font-size:14px;
  padding:4px 10px;
  margin:0 6px 6px 0;
}
.tag-alt{background:var(--navy);}
.card-when{
  margin:0;
  font-size:13px;
  border-top:1px solid var(--navy);
  padding-top:10px;
  color:var(--ink);
}

/* ---------- steps ---------- */
.steps{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.step{
  background:var(--white);
  border:2px solid var(--navy);
  padding:20px;
}
.step-num{
  display:inline-block;
  width:40px;
  height:40px;
  line-height:40px;
  text-align:center;
  background:var(--navy);
  color:var(--white);
  font-weight:bold;
  font-size:20px;
  margin-bottom:12px;
}
.step-title{font-size:18px;}
.step p{margin:0;font-size:15px;}

/* ---------- response banner ---------- */
.banner-section{padding-top:10px;}
.response-banner{
  background:var(--navy);
  border:2px solid var(--navy);
  border-left:10px solid var(--amber);
  color:var(--white);
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  padding:24px;
}
.response-main{flex:1 1 280px;}
.response-kicker{
  margin:0 0 6px;
  text-transform:uppercase;
  letter-spacing:1.2px;
  font-size:12px;
  font-weight:bold;
  color:var(--amber);
}
.response-phone{margin:0;font-size:30px;font-weight:bold;line-height:1.2;}
.response-phone a{color:var(--white);text-decoration:none;border-bottom:3px solid var(--amber);}
.response-side{flex:1 1 340px;font-size:14px;}
.response-side p{margin:0 0 10px;}
.response-side p:last-child{margin-bottom:0;}
.response-side strong{color:var(--amber);}

/* ---------- hours ---------- */
.hours-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:start;
}
.hours-table{
  width:100%;
  border-collapse:collapse;
  background:var(--white);
  font-size:15px;
}
.hours-table th,.hours-table td{
  border:1px solid var(--navy);
  padding:9px 12px;
  text-align:left;
}
.hours-table th{width:55%;color:var(--navy);}
.hours-table td{font-weight:bold;}
.hours-table .closed th,.hours-table .closed td{
  background:var(--navy);
  color:var(--white);
}
.hours-note{
  background:var(--white);
  border:2px solid var(--navy);
  padding:20px;
}
.hours-note h3{font-size:18px;}
.hours-note p{margin:0;font-size:15px;}

/* ---------- contact ---------- */
.contact-box{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border:2px solid var(--navy);
  background:var(--white);
}
.contact-col{padding:24px;}
.contact-col + .contact-col{border-left:2px solid var(--navy);}
.contact-col h3{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:1.1px;
  margin:18px 0 6px;
  color:var(--amber);
}
.contact-col h3:first-child{margin-top:0;}
.contact-col p{margin:0 0 8px;font-size:15px;}
.contact-phone{font-size:24px;font-weight:bold;}
.contact-phone a{color:var(--navy);text-decoration:none;border-bottom:3px solid var(--amber);}
address{font-style:normal;font-size:15px;}
.privacy-link{margin-top:16px;}
.privacy-link a{font-weight:bold;}
.copyline{
  margin:16px 0 0;
  font-size:13px;
  border-top:1px solid var(--navy);
  padding-top:12px;
}

#privacy h2{font-size:18px;margin-top:22px;}
#privacy p{max-width:72ch;}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .services-grid,.steps,.hours-wrap,.contact-box{grid-template-columns:1fr;}
  .contact-col + .contact-col{border-left:none;border-top:2px solid var(--navy);}
}

@media (max-width:720px){
  .top-bar-badge{margin-left:0;}
  .nav-toggle{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--white);
    color:var(--navy);
    border:2px solid var(--white);
    font-family:Arial, Helvetica, sans-serif;
    font-size:14px;
    font-weight:bold;
    padding:8px 12px;
    cursor:pointer;
  }
  .nav-toggle-bars,
  .nav-toggle-bars::before,
  .nav-toggle-bars::after{
    display:block;
    width:18px;
    height:2px;
    background:var(--navy);
    content:"";
    position:relative;
  }
  .nav-toggle-bars::before{top:-6px;}
  .nav-toggle-bars::after{top:4px;}
  .nav{
    display:none;
    width:100%;
    flex-direction:column;
    gap:0;
    border-top:2px solid var(--amber);
    margin-top:10px;
  }
  .nav.is-open{display:flex;}
  .nav-static{display:flex;}
  .nav a{padding:10px 0;border-bottom:1px solid var(--amber);}
  .header-call{margin-left:0;width:100%;text-align:center;}
  .panel{padding:20px;}
  .panel-title{font-size:23px;}
  .price-table,.price-table thead,.price-table tbody,.price-table tr,.price-table th,.price-table td{display:block;width:auto;}
  .price-table thead{display:none;}
  .price-table tr{border:2px solid var(--navy);margin-bottom:14px;}
  .price-table th,.price-table td{border:none;border-bottom:1px solid var(--navy);}
  .price-table tr td:last-child{border-bottom:none;}
  .price-table tbody th{width:auto;}
  .response-phone{font-size:24px;}
}
