/* ============================================================
   24/7 Buffalo Towing — design system
   Palette: Buffalo Bills royal / red / white. Athletic, blocky.
   ============================================================ */

/* ---------- fonts (self-hosted, no CDN at runtime) ---------- */
@font-face{font-family:'Archivo';src:url('../fonts/archivo-var.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Archivo';src:url('../fonts/archivo-var-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap;}
@font-face{font-family:'Barlow';src:url('../fonts/barlow-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Barlow';src:url('../fonts/barlow-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

/* ---------- tokens ---------- */
:root{
  --royal:#00338D;
  --royal-mid:#00276E;
  --royal-deep:#001B4D;
  --ink:#0A1128;
  --red:#C60C30;
  --red-hot:#E4143C;
  --white:#FFFFFF;
  --bone:#F2F5FA;
  --bone-2:#E4EAF3;
  --steel:#5B6B87;
  --line:#D3DBE8;

  --shell:1200px;
  --pad:clamp(1.15rem,4vw,2.5rem);

  --f-display:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-body:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;

  --shadow-sm:0 1px 2px rgba(10,17,40,.08),0 2px 8px rgba(10,17,40,.06);
  --shadow-md:0 4px 12px rgba(10,17,40,.10),0 12px 32px rgba(10,17,40,.10);
  --shadow-lg:0 12px 28px rgba(10,17,40,.14),0 32px 64px rgba(10,17,40,.16);

  --hdr:64px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}
body{
  margin:0;
  font-family:var(--f-body);
  font-size:17px;
  line-height:1.65;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}

h1,h2,h3,h4{font-family:var(--f-display);line-height:1.04;letter-spacing:-.022em;margin:0;}
h1{font-weight:900;font-size:clamp(2.3rem,6.2vw,4.3rem);text-transform:uppercase;}
h2{font-weight:800;font-size:clamp(1.85rem,4vw,2.9rem);text-transform:uppercase;}
h3{font-weight:800;font-size:clamp(1.2rem,2vw,1.5rem);}
p{margin:0 0 1.1em;}
a{color:var(--royal);}

.shell{max-width:var(--shell);margin-inline:auto;padding-inline:var(--pad);}

/* ---------- accessibility ---------- */
.skip{
  position:absolute;left:-9999px;top:0;z-index:999;
  background:var(--red);color:#fff;padding:.85rem 1.4rem;
  font-family:var(--f-display);font-weight:800;text-transform:uppercase;
  text-decoration:none;
}
.skip:focus{left:0;}
:focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:2px;}

/* ============================================================
   HEADER
   ============================================================ */

/* thin utility strip */
.strip{
  background:var(--ink);
  color:#AFBDD6;
  font-size:.795rem;
  letter-spacing:.055em;
  text-transform:uppercase;
  font-weight:700;
  font-family:var(--f-display);
}
.strip .shell{
  display:flex;align-items:center;gap:1.4rem;
  min-height:36px;
  justify-content:space-between;
}
.strip__item{display:flex;align-items:center;gap:.45rem;white-space:nowrap;}
.strip svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.strip__live{color:#fff;}
.strip__dot{
  width:7px;height:7px;border-radius:50%;background:#33D17A;flex:none;
  box-shadow:0 0 0 3px rgba(51,209,122,.22);
}
@media (max-width:1240px){ .strip__coverage{display:none;} }
@media (max-width:860px){ .strip__hide{display:none;} .strip .shell{justify-content:center;gap:.9rem;} }

/* main bar */
.hdr{
  position:sticky;top:0;z-index:60;
  background:var(--white);
  border-bottom:1px solid var(--line);
}
.hdr::after{ /* red jersey rule */
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;
  background:linear-gradient(90deg,var(--red) 0 38%,var(--royal) 38% 100%);
}
.hdr .shell{
  display:flex;align-items:center;gap:1rem;
  min-height:var(--hdr);
}

/* typographic wordmark — type only, not a drawn logo */
.mark{display:flex;align-items:center;gap:.6rem;text-decoration:none;flex:none;}
.mark__247{
  display:grid;place-items:center;
  background:var(--red);color:#fff;
  font-family:var(--f-display);font-weight:900;font-style:italic;
  font-size:1.02rem;letter-spacing:-.04em;
  padding:.36rem .5rem .34rem;
  line-height:1;
  clip-path:polygon(9% 0,100% 0,91% 100%,0 100%);
  padding-inline:.72rem;
}
.mark__txt{display:flex;flex-direction:column;line-height:1;}
.mark__name{
  font-family:var(--f-display);font-weight:900;
  font-size:1.1rem;letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap;
  color:var(--royal);
}
.mark__sub{
  font-family:var(--f-display);font-weight:700;
  font-size:.585rem;letter-spacing:.165em;white-space:nowrap;text-transform:uppercase;
  color:var(--steel);margin-top:.22rem;
}

/* desktop nav */
.nav{margin-left:auto;display:flex;align-items:center;gap:.05rem;}
.nav a{
  position:relative;
  font-family:var(--f-display);font-weight:700;
  font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;
  color:var(--ink);text-decoration:none;
  padding:.6rem .5rem;border-radius:5px;
  transition:color .16s ease,background .16s ease;
}
.nav a:hover{color:var(--royal);background:var(--bone);}
.nav a[aria-current="page"]{color:var(--royal);}
.nav a[aria-current="page"]::after{
  content:"";position:absolute;left:.66rem;right:.66rem;bottom:.26rem;
  height:3px;background:var(--red);border-radius:2px;
}

/* header phone */
.hdr__call{
  flex:none;display:flex;align-items:center;gap:.5rem;margin-left:.4rem;
  background:var(--red);color:#fff;text-decoration:none;
  font-family:var(--f-display);font-weight:900;
  font-size:.98rem;letter-spacing:-.015em;white-space:nowrap;
  padding:.64rem 1rem;
  border-radius:6px;
  box-shadow:var(--shadow-sm);
  transition:background .16s ease,transform .16s ease;
}
.hdr__call:hover{background:var(--red-hot);transform:translateY(-1px);}
.hdr__call svg{width:17px;height:17px;flex:none;fill:currentColor;}
.hdr__call span{display:block;}

/* burger */
.burger{
  display:none;flex:none;
  width:44px;height:44px;
  align-items:center;justify-content:center;
  background:var(--bone);border:1px solid var(--line);border-radius:7px;
  cursor:pointer;padding:0;color:var(--royal);
}
.burger svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;}
.burger__x{display:none;}
.burger[aria-expanded="true"] .burger__x{display:block;}
.burger[aria-expanded="true"] .burger__bars{display:none;}

/* ---------- mobile panel ---------- */
.panel{
  position:fixed;inset:0;z-index:70;
  background:var(--royal-deep);
  display:none;
  flex-direction:column;
  padding:1rem var(--pad) 2rem;
  overflow-y:auto;
}
.panel[data-open="true"]{display:flex;}
.panel__top{display:flex;align-items:center;justify-content:space-between;min-height:var(--hdr);}
.panel__close{
  width:44px;height:44px;display:grid;place-items:center;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  border-radius:7px;color:#fff;cursor:pointer;padding:0;
}
.panel__close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;}
.panel .mark__name{color:#fff;}
.panel .mark__sub{color:#8FA6CE;}
.panel__nav{display:flex;flex-direction:column;margin-top:1.6rem;}
.panel__nav a{
  font-family:var(--f-display);font-weight:800;
  font-size:1.85rem;letter-spacing:-.02em;text-transform:uppercase;
  color:#fff;text-decoration:none;
  padding:.72rem 0;
  border-bottom:1px solid rgba(255,255,255,.13);
  display:flex;align-items:center;justify-content:space-between;
}
.panel__nav a[aria-current="page"]{color:#FF8A9F;}
.panel__nav a::after{
  content:"";width:9px;height:9px;flex:none;
  border-right:2.5px solid var(--red);border-top:2.5px solid var(--red);
  transform:rotate(45deg);
}
.panel__cta{display:grid;gap:.7rem;margin-top:1.9rem;}
.panel__call,.panel__text{
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1rem;border-radius:8px;text-decoration:none;
  font-family:var(--f-display);font-weight:900;font-size:1.24rem;
}
.panel__call{background:var(--red);color:#fff;}
.panel__text{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.35);}
.panel__call svg,.panel__text svg{width:19px;height:19px;fill:currentColor;flex:none;}
.panel__meta{
  margin-top:1.7rem;color:#8FA6CE;font-size:.93rem;line-height:1.55;
  border-top:1px solid rgba(255,255,255,.13);padding-top:1.3rem;
}
.panel__meta strong{color:#fff;display:block;font-family:var(--f-display);
  text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;margin-bottom:.3rem;}

@media (max-width:1120px){
  .nav{display:none;}
  .burger{display:flex;}
  .hdr__call span{display:none;}
  .hdr__call{padding:.66rem .85rem;margin-left:auto;}
}
@media (max-width:420px){
  .mark__sub{display:none;}
  .mark__name{font-size:1.06rem;}
}

/* ---------- mobile sticky call/text bar ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:65;
  display:none;
  background:var(--ink);
  border-top:3px solid var(--red);
  padding:.5rem .55rem calc(.5rem + env(safe-area-inset-bottom));
  gap:.5rem;
}
.dock a{
  flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.82rem .5rem;border-radius:7px;text-decoration:none;
  font-family:var(--f-display);font-weight:900;font-size:1.05rem;
  letter-spacing:.01em;
}
.dock__call{background:var(--red);color:#fff;}
.dock__text{background:rgba(255,255,255,.13);color:#fff;}
.dock svg{width:17px;height:17px;fill:currentColor;flex:none;}
@media (max-width:1080px){
  .dock{display:flex;}
  body{padding-bottom:74px;}
}

/* ============================================================
   TEMPORARY — page stubs while the menu is under review
   ============================================================ */
.stub{
  background:
    linear-gradient(120deg,rgba(0,51,141,.97) 0%,rgba(0,27,77,.99) 100%);
  color:#fff;padding:clamp(3rem,8vw,5.5rem) 0;position:relative;overflow:hidden;
}
.stub::before{
  content:"";position:absolute;top:-40%;right:-8%;width:52%;height:190%;
  background:var(--red);opacity:.9;
  transform:skewX(-13deg);
}
.stub::after{
  content:"";position:absolute;top:-40%;right:24%;width:12%;height:190%;
  background:#fff;opacity:.14;transform:skewX(-13deg);
}
.stub .shell{position:relative;z-index:2;}
.stub__eyebrow{
  font-family:var(--f-display);font-weight:800;font-size:.78rem;
  letter-spacing:.2em;text-transform:uppercase;color:#8FB0E8;margin-bottom:.9rem;
}
.stub h1{color:#fff;max-width:16ch;}
.stub p{margin-top:1.1rem;max-width:52ch;color:#C9D8F2;font-size:1.09rem;}
.stub__note{
  margin-top:2rem;display:inline-flex;align-items:center;gap:.6rem;
  background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.24);
  padding:.6rem 1rem;border-radius:6px;
  font-family:var(--f-display);font-weight:700;font-size:.8rem;
  letter-spacing:.09em;text-transform:uppercase;color:#fff;
}

/* ---------- breadcrumbs ---------- */
.crumbs{background:var(--bone);border-bottom:1px solid var(--line);}
.crumbs .shell{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
  padding-block:.6rem;font-size:.82rem;font-family:var(--f-display);font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;}
.crumbs a{color:var(--royal);text-decoration:none;}
.crumbs a:hover{text-decoration:underline;}
.crumbs span[aria-current]{color:var(--steel);}
.crumbs__sep{color:var(--line);}

/* ---------- scaffold (temporary, while bodies are unwritten) ---------- */
.scaffold{padding:clamp(2rem,5vw,3.5rem) 0;}
.scaffold .shell{max-width:820px;}
.hold{background:#FFF4F6;border-left:4px solid var(--red);padding:1rem 1.2rem;
  border-radius:0 7px 7px 0;margin-bottom:1.6rem;}
.hold strong{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.07em;
  font-size:.78rem;color:var(--red);display:block;margin-bottom:.4rem;}
.hold ul{margin:0;padding-left:1.1rem;font-size:.95rem;color:var(--ink);}
.angle{border-left:4px solid var(--royal);padding:0 0 0 1.2rem;margin-bottom:1.6rem;}
.angle h2{font-size:.95rem;letter-spacing:.06em;color:var(--royal);margin-bottom:.5rem;}
.angle p{margin:0;color:var(--ink);}
.anchors,.kw{font-size:.92rem;color:var(--steel);}
.anchors strong,.kw strong{color:var(--ink);font-family:var(--f-display);
  text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  background:linear-gradient(120deg,var(--royal) 0%,var(--royal-deep) 100%);
  color:#fff;padding:clamp(2.6rem,7vw,5rem) 0;position:relative;overflow:hidden;
}
.hero::before{content:"";position:absolute;top:-40%;right:-10%;width:46%;height:190%;
  background:var(--red);opacity:.92;transform:skewX(-13deg);}
.hero::after{content:"";position:absolute;top:-40%;right:30%;width:9%;height:190%;
  background:#fff;opacity:.13;transform:skewX(-13deg);}
.hero .shell{position:relative;z-index:2;max-width:960px;margin-inline:0;
  padding-left:max(var(--pad),calc((100vw - var(--shell))/2 + var(--pad)));}
.hero h1{color:#fff;max-width:19ch;}
.hero__lede{margin-top:1.15rem;max-width:54ch;color:#D6E2F7;font-size:clamp(1rem,1.6vw,1.16rem);}
.hero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.95rem 1.5rem;border-radius:7px;text-decoration:none;
  font-family:var(--f-display);font-weight:900;font-size:1.05rem;letter-spacing:-.01em;
  transition:transform .16s ease,background .16s ease;}
.btn--red{background:var(--red);color:#fff;box-shadow:var(--shadow-md);}
.btn--red:hover{background:var(--red-hot);transform:translateY(-2px);}
.btn--ghost{background:rgba(255,255,255,.09);color:#fff;border:2px solid rgba(255,255,255,.4);}
.btn--ghost:hover{background:rgba(255,255,255,.18);transform:translateY(-2px);}

/* badges — SHORT TAIL, deliberately terse */
.badges{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0 0 1.3rem;padding:0;}
.badges li{
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);
  color:#fff;padding:.32rem .7rem;border-radius:100px;
  font-family:var(--f-display);font-weight:800;font-size:.72rem;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
}

/* ============================================================
   PRICE
   ============================================================ */
.price{padding:clamp(2.6rem,6vw,4.5rem) 0;background:var(--bone);border-bottom:1px solid var(--line);}
.price .shell{max-width:880px;}
.price h2{color:var(--royal);margin-bottom:1rem;}
.price__parts{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  list-style:none;padding:0;margin:1.6rem 0;}
.price__parts li{background:#fff;border:1px solid var(--line);border-radius:9px;
  padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);
  font-family:var(--f-body);font-size:.95rem;color:var(--steel);line-height:1.4;}
.price__parts span{display:block;font-family:var(--f-display);font-weight:900;
  font-size:2.1rem;color:var(--red);letter-spacing:-.03em;line-height:1;margin-bottom:.35rem;}
.price__table{width:100%;border-collapse:collapse;background:#fff;
  border:1px solid var(--line);border-radius:9px;overflow:hidden;font-size:.97rem;}
.price__table caption{caption-side:top;text-align:left;padding:0 0 .6rem;
  font-family:var(--f-display);font-weight:800;font-size:.78rem;
  letter-spacing:.09em;text-transform:uppercase;color:var(--steel);}
.price__table th,.price__table td{padding:.75rem .95rem;text-align:left;border-bottom:1px solid var(--line);}
.price__table thead th{background:var(--royal);color:#fff;font-family:var(--f-display);
  font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;}
.price__table tbody tr:last-child td{border-bottom:0;}
.price__table td:last-child{color:var(--red);font-family:var(--f-display);font-weight:900;}
.price__note{margin-top:1.1rem;font-size:.93rem;color:var(--steel);}

/* ============================================================
   MESH + FAQ
   ============================================================ */
.mesh{padding:clamp(2.2rem,5vw,3.5rem) 0;}
.mesh .shell{max-width:880px;}
.mesh h2{color:var(--royal);margin-bottom:.9rem;}
.mesh p{color:var(--ink);}
.mesh a,.faq a{color:var(--royal);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1.5px;text-decoration-color:rgba(0,51,141,.35);}
.mesh a:hover,.faq a:hover{color:var(--red);text-decoration-color:var(--red);}

.faq{padding:clamp(2.6rem,6vw,4.5rem) 0;background:var(--bone);border-top:1px solid var(--line);}
.faq h2{color:var(--royal);margin-bottom:1.6rem;}
.faq__grid{display:grid;gap:1.4rem 2.4rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.faq__item h3{font-size:1.06rem;color:var(--ink);margin-bottom:.5rem;line-height:1.25;}
.faq__item p{margin:0;font-size:.97rem;color:var(--steel);}

@media (max-width:700px){ .faq__grid{grid-template-columns:1fr;} }

/* ---------- verified local detail ---------- */
.local{padding:clamp(2.4rem,5.5vw,4rem) 0;}
.local .shell{max-width:880px;}
.local h2{color:var(--royal);margin-bottom:1rem;}
.local p{color:var(--ink);}
.local p:last-child{color:var(--steel);font-size:.95rem;border-left:3px solid var(--line);
  padding-left:1rem;margin-top:1.4rem;}

/* ============================================================
   PROSE SECTIONS — hubs, guides, posts, streets, core pages
   ============================================================ */
.prose{padding:clamp(2.4rem,5.5vw,4rem) 0;}
.prose .shell{max-width:880px;}
.prose h2{color:var(--royal);margin:2.2rem 0 .9rem;}
.prose h2:first-child{margin-top:0;}
.prose h3{color:var(--ink);margin:1.6rem 0 .5rem;}
.prose p{color:var(--ink);}
.prose a{color:var(--royal);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1.5px;text-decoration-color:rgba(0,51,141,.35);}
.prose a:hover{color:var(--red);text-decoration-color:var(--red);}
.prose--alt{background:var(--bone);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.prose ul,.prose ol{padding-left:1.3rem;margin:0 0 1.1em;}
.prose li{margin-bottom:.35em;}
.prose .lede{font-size:1.14rem;color:var(--steel);}
.prose .kicker{
  font-family:var(--f-display);font-weight:800;font-size:.76rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--red);margin-bottom:.6rem;
}

/* article header for guides and posts */
.art{background:var(--bone);border-bottom:1px solid var(--line);padding:clamp(2.4rem,6vw,4.2rem) 0;}
.art .shell{max-width:880px;}
.art h1{color:var(--royal);font-size:clamp(1.9rem,4.6vw,3.2rem);max-width:none;}
.art__meta{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin-top:1rem;
  font-family:var(--f-display);font-weight:700;font-size:.78rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--steel);}
.art__meta a{color:var(--royal);text-decoration:none;}
.art__lede{margin-top:1rem;font-size:1.12rem;color:var(--ink);max-width:66ch;}

/* fact strip under an article header: NAP + price formula */
.facts{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  list-style:none;margin:1.6rem 0 0;padding:0;}
.facts li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;
  font-size:.92rem;color:var(--steel);line-height:1.4;}
.facts strong{display:block;font-family:var(--f-display);font-weight:900;color:var(--royal);
  font-size:1.15rem;letter-spacing:-.02em;margin-bottom:.15rem;}

/* CTA band */
.cta{background:var(--royal);color:#fff;padding:clamp(2.2rem,5vw,3.4rem) 0;position:relative;overflow:hidden;}
.cta::before{content:"";position:absolute;top:-40%;right:-6%;width:30%;height:190%;
  background:var(--red);opacity:.9;transform:skewX(-13deg);}
.cta .shell{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem 2rem;justify-content:space-between;}
.cta h2{color:#fff;font-size:clamp(1.5rem,3vw,2.2rem);max-width:22ch;}
.cta p{margin:.4rem 0 0;color:#D6E2F7;max-width:50ch;}
.cta__btns{display:flex;flex-wrap:wrap;gap:.7rem;}

/* pricing calculator */
.calc{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.4rem;box-shadow:var(--shadow-sm);margin:1.6rem 0;}
.calc label{display:block;font-family:var(--f-display);font-weight:800;font-size:.78rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:.5rem;}
.calc__row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;}
.calc input{font:inherit;font-size:1.3rem;width:7.5rem;padding:.55rem .7rem;border:2px solid var(--line);border-radius:7px;}
.calc input:focus{border-color:var(--royal);outline:none;}
.calc__total{font-family:var(--f-display);font-weight:900;font-size:2.4rem;color:var(--red);letter-spacing:-.03em;line-height:1;}
.calc__explain{margin:.7rem 0 0;font-size:.92rem;color:var(--steel);}

/* services / areas as prose blocks with a lead-in */
.svc-block{border-left:4px solid var(--red);padding-left:1.1rem;margin:1.6rem 0;}
.svc-block h3{margin:0 0 .35rem;}
.svc-block p{margin:0;}

/* forms (partner / driver) */
.form{display:grid;gap:.9rem;max-width:620px;margin:1.4rem 0;}
.form label{display:grid;gap:.3rem;font-family:var(--f-display);font-weight:700;font-size:.8rem;
  letter-spacing:.07em;text-transform:uppercase;color:var(--steel);}
.form input,.form select,.form textarea{font:inherit;font-size:1rem;padding:.65rem .75rem;
  border:2px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);text-transform:none;letter-spacing:0;}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--royal);outline:none;}
.form .btn{justify-self:start;}
.form__note{font-size:.9rem;color:var(--steel);}

/* ============================================================
   FOOTER
   ============================================================ */
.ftr{background:var(--ink);color:#AFBDD6;padding:clamp(2.4rem,5vw,3.6rem) 0 0;margin-top:0;}
.ftr__grid{display:grid;gap:2rem 2.4rem;grid-template-columns:1.5fr 1fr 1fr 1fr;}
.ftr .mark__name{color:#fff;}
.ftr .mark__sub{color:#8FA6CE;}
.ftr__nap{font-style:normal;margin-top:1.1rem;line-height:1.6;}
.ftr__nap a{color:#fff;font-family:var(--f-display);font-weight:900;font-size:1.15rem;text-decoration:none;}
.ftr__hours{margin:.9rem 0 0;font-size:.92rem;max-width:34ch;}
.ftr__col{display:flex;flex-direction:column;gap:.38rem;}
.ftr__col strong{color:#fff;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.09em;
  font-size:.76rem;margin-bottom:.4rem;}
.ftr__col a{color:#AFBDD6;text-decoration:none;font-size:.95rem;}
.ftr__col a:hover{color:#fff;text-decoration:underline;}
.ftr__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;
  border-top:1px solid rgba(255,255,255,.12);margin-top:2.2rem;padding-block:1.1rem;font-size:.82rem;color:#7F90AE;}
@media (max-width:900px){ .ftr__grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .ftr__grid{grid-template-columns:1fr;} }

/* ============================================================
   NAV DROPDOWNS
   ============================================================ */
.nav__item{position:relative;display:flex;align-items:center;}
.nav__item > a{padding-right:.35rem;}
.nav__caret{display:inline-block;width:7px;height:7px;margin-left:.4rem;vertical-align:2px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.7;}
.nav__toggle{width:22px;height:30px;border:0;background:transparent;cursor:pointer;padding:0;margin-left:-.2rem;color:var(--ink);}
.nav__toggle::before{content:"";display:block;width:6px;height:6px;margin:0 auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:0;}
.nav__toggle:focus-visible::before{opacity:.8;}
.menu{
  position:absolute;top:calc(100% + 10px);left:-.4rem;z-index:80;
  display:none;gap:1.6rem;
  background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:8px;
  box-shadow:var(--shadow-lg);padding:1.1rem 1.3rem;min-width:260px;
}
.menu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px;} /* hover bridge */
.menu--wide{min-width:560px;}
.nav__item:hover .menu,.nav__item:focus-within .menu,.nav__item.is-open .menu{display:flex;}
.menu__col{display:flex;flex-direction:column;gap:.1rem;min-width:150px;}
.menu__col strong{font-family:var(--f-display);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);margin:0 0 .45rem;padding:0 .5rem;}
.menu__col a{
  font-family:var(--f-body);font-weight:400;font-size:.95rem;letter-spacing:0;text-transform:none;
  color:var(--ink);text-decoration:none;padding:.32rem .5rem;border-radius:5px;white-space:nowrap;
}
.menu__col a:hover,.menu__col a:focus-visible{background:var(--bone);color:var(--royal);}
@media (max-width:1240px){ .menu--wide{min-width:480px;} .menu__col{min-width:130px;} }
.menu{width:max-content;max-width:min(94vw,960px);}
.nav__item:nth-child(3) .menu--wide{left:-16rem;} /* locations: 4 columns, keep it on screen */

/* mobile panel sub-lists */
.panel__sub{display:flex;flex-wrap:wrap;gap:.3rem .5rem;padding:.6rem 0 .9rem;border-bottom:1px solid rgba(255,255,255,.13);}
.panel__sub a{
  font-family:var(--f-body);font-size:.92rem;color:#C9D8F2;text-decoration:none;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:100px;padding:.28rem .7rem;
}
.panel__sub a:hover{color:#fff;background:rgba(255,255,255,.16);}

/* roadside flat-price strip on the home page */
.price--roadside{background:#fff;border-top:0;}
.price__parts--five{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));}
.price__parts--five li{padding:0;}
.price__parts--five a{display:block;padding:1.1rem 1.2rem;color:var(--steel);text-decoration:none;border-radius:9px;height:100%;}
.price__parts--five a:hover{background:var(--bone);color:var(--royal);}
.price__parts--five small{display:inline;font-family:var(--f-body);font-weight:400;font-size:.8rem;color:var(--steel);margin-left:.35rem;letter-spacing:0;}
.prose ol li{margin-bottom:.6em;}

/* hero links + facts list (home) */
.hero__lede a{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.55);}
.hero__lede a:hover{text-decoration-color:#fff;}
.hero__lede{max-width:60ch;}
.facts a{color:var(--royal);text-decoration:underline;text-underline-offset:2px;}
.factlist{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 0 1.6rem;}
.factlist div{background:var(--bone);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;}
.factlist dt{font-family:var(--f-display);font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:.2rem;}
.factlist dd{margin:0;color:var(--ink);font-size:.97rem;line-height:1.45;}
.price--roadside .calc{margin:0 0 2.2rem;}
.price--roadside h2 + .calc{margin-top:1.2rem;}
