/* ==========================================================================
   RESPONSIVE — page-level compositions + breakpoint corrections
   Verified at 360 / 768 / 1024 / 1440 / 1920.
   ========================================================================== */

/* ---- Common grids ------------------------------------------------------ */
.g-2{display:grid;gap:clamp(1rem,2vw,1.75rem)}
.g-3{display:grid;gap:clamp(1rem,2vw,1.75rem)}
.g-4{display:grid;gap:clamp(1rem,2vw,1.75rem)}
@media (min-width:620px){ .g-2{grid-template-columns:repeat(2,1fr)}
                          .g-3{grid-template-columns:repeat(2,1fr)}
                          .g-4{grid-template-columns:repeat(2,1fr)} }
@media (min-width:940px){ .g-3{grid-template-columns:repeat(3,1fr)}
                          .g-4{grid-template-columns:repeat(4,1fr)} }

.stats-band{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.7rem,1.5vw,1.2rem)}
@media (min-width:900px){ .stats-band{grid-template-columns:repeat(5,1fr)} }

.review-grid{display:grid;gap:clamp(1rem,2vw,1.5rem)}
@media (min-width:640px){ .review-grid{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1024px){ .review-grid{grid-template-columns:repeat(3,1fr)} }

.split{display:grid;gap:clamp(1.75rem,4vw,3.5rem);align-items:start}
@media (min-width:960px){ .split{grid-template-columns:1.05fr .95fr} }

/* Value list — alternating two-column proof points */
.values{display:grid;gap:clamp(1.5rem,3.5vw,3rem);align-items:center}
@media (min-width:900px){ .values{grid-template-columns:1fr .85fr} }
.values ul{display:grid;gap:1rem}
.values li{display:flex;gap:.9rem;align-items:flex-start}
.values li svg{width:24px;height:24px;flex:none;color:var(--blue-400);margin-top:.15rem}
.values li p{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.65}

/* Team cards */
.team-grid{display:grid;gap:clamp(1.2rem,2.5vw,2rem)}
@media (min-width:700px){ .team-grid{grid-template-columns:repeat(3,1fr)} }
.member__photo{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--r-lg)}
.member__photo img{width:100%;height:100%;object-fit:cover;
  transition:transform 700ms var(--ease-out)}
.card:hover .member__photo img{transform:scale(1.05)}
.member__photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(5,7,10,.88))}
.member__cap{position:absolute;left:0;right:0;bottom:0;padding:1.1rem;z-index:1}
.member__cap b{display:block;font-family:var(--ff-display);font-size:1.15rem;color:var(--ink)}
.member__cap span{display:block;font-size:var(--fs-xs);color:var(--blue-400);
  letter-spacing:.09em;text-transform:uppercase;margin-top:.2rem}

/* Towns grid (service areas) */
.towns{display:grid;gap:.55rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:620px){ .towns{grid-template-columns:repeat(3,1fr)} }
@media (min-width:960px){ .towns{grid-template-columns:repeat(4,1fr)} }
.town{
  display:flex;align-items:center;gap:.55rem;min-height:48px;padding:.6rem .85rem;
  border-radius:var(--r-md);background:rgba(255,255,255,.03);
  border:1px solid var(--slate);font-size:var(--fs-sm);color:var(--ink-2);
  transition:border-color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out),
             transform var(--t-fast) var(--ease-mech);
}
.town:hover{border-color:rgba(10,132,232,.45);background:rgba(10,132,232,.08);
  transform:translateY(-2px);color:var(--ink)}
.town svg{width:14px;height:14px;color:var(--blue-400);flex:none}

/* CTA band */
.cta-band{
  position:relative;isolation:isolate;overflow:hidden;
  padding-block:clamp(3rem,7vw,5rem);text-align:center;
  background:linear-gradient(135deg,rgba(224,27,34,.20),rgba(5,7,10,.65) 55%,rgba(10,132,232,.18));
}
.cta-band::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.05;
  background-image:repeating-linear-gradient(115deg,#fff 0 1px,transparent 1px 10px)}
.cta-band h2{max-width:20ch;margin-inline:auto}
.cta-band .btn-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:1.9rem}

/* Comparison table */
.tbl-wrap{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--slate)}
table.cmp{width:100%;border-collapse:collapse;min-width:520px;font-size:var(--fs-sm)}
table.cmp th,table.cmp td{padding:.95rem 1.1rem;text-align:left;
  border-bottom:1px solid var(--slate)}
table.cmp thead th{background:var(--graphite);font-family:var(--ff-display);
  font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
table.cmp tbody tr:last-child th,table.cmp tbody tr:last-child td{border-bottom:0}
table.cmp tbody tr:hover{background:rgba(10,132,232,.05)}
table.cmp td svg{width:18px;height:18px}
.yes{color:var(--open)} .no{color:var(--ink-3)}

/* Symptom cards */
.symptoms{display:grid;gap:.9rem}
@media (min-width:640px){ .symptoms{grid-template-columns:repeat(2,1fr)} }
.symptom{display:flex;gap:.8rem;padding:1rem 1.15rem;border-radius:var(--r-md);
  background:rgba(224,27,34,.06);border:1px solid rgba(224,27,34,.22)}
.symptom svg{width:20px;height:20px;color:var(--red-400);flex:none;margin-top:.15rem}
.symptom p{font-size:var(--fs-sm);color:var(--ink-2)}

/* Coverage checker */
.checker{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}
.checker input{
  flex:1;min-width:210px;min-height:52px;padding:.8rem 1rem;border-radius:var(--r-md);
  background:rgba(255,255,255,.04);border:1px solid var(--slate);color:var(--ink);
}
.checker input:focus{outline:none;border-color:var(--blue-500);
  box-shadow:0 0 0 4px rgba(10,132,232,.16)}
.checker__out{margin-top:.85rem;font-size:var(--fs-sm);min-height:1.4em}
.checker__out.ok{color:var(--open)} .checker__out.no{color:var(--closed)}

/* Related services */
.related{display:grid;gap:.8rem}
@media (min-width:640px){ .related{grid-template-columns:repeat(3,1fr)} }

/* ---- Breakpoint corrections -------------------------------------------- */
@media (max-width:1180px){
  .header__cta .btn span.lbl{display:none}
  .header__cta .btn{padding-inline:1rem}
}
@media (max-width:991px){
  .hero{min-height:auto;padding-block:clamp(3rem,10vw,5rem) clamp(3.5rem,10vw,5.5rem)}
  .hero__car{width:80vw;opacity:.10;right:-18%}
  .with-rail{grid-template-columns:1fr}
  .rail{position:static}
}
@media (max-width:640px){
  :root{--section-y:clamp(3rem,10vw,4.5rem)}
  .hero h1{letter-spacing:-.025em}
  .btn{width:100%}
  .hero__ctas .btn,.cta-band .btn,.btn-row .btn{width:100%}
  .mobile-bar a{width:auto}
  .trust{gap:.5rem .9rem;padding:.8rem .95rem}
  .gsum{justify-content:center;text-align:center}
  .countdown div{min-width:54px}
}
@media (max-width:380px){
  .mobile-bar a{font-size:.7rem;gap:.28rem}
  .mobile-bar a svg{width:16px;height:16px}
}

/* Nothing may ever cause a horizontal scrollbar. */
html,body{max-width:100%}
img,svg,video,table,pre{max-width:100%}
