/* ============================================================
   City landing page — extends site.css, no token overrides
   ============================================================ */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.chero{
  position:relative;padding:calc(76px + clamp(52px,7vw,92px)) 0 clamp(52px,7vw,88px);
  background:
    radial-gradient(115% 85% at 82% 0%,rgba(169,136,80,.11) 0%,rgba(169,136,80,0) 58%),
    var(--porcelain);
  border-bottom:1px solid var(--line);
}
.crumb{display:flex;align-items:center;gap:10px;font-size:11.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--graphite);margin-bottom:26px}
.crumb a{border-bottom:1px solid var(--line-2)}
.crumb a:hover{color:var(--brass);border-color:var(--brass)}
.crumb span[aria-hidden]{color:var(--brass)}
.chero h1{font-family:var(--display);font-size:clamp(38px,6.6vw,80px);line-height:1.02;letter-spacing:-.025em;margin:24px 0 0}
.chero h1 em{font-style:italic;color:var(--brass)}
.chero .hero-sub{opacity:1;animation:none;max-width:62ch}
.chero .hero-sub b{color:var(--ink);font-weight:600}
.chero .hero-acts{opacity:1;animation:none}

/* rates table */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-top:2px solid var(--brass);background:var(--paper);border-radius:3px}
table.rates{width:100%;border-collapse:collapse;min-width:520px;font-variant-numeric:tabular-nums}
table.rates th,table.rates td{text-align:right;padding:16px 22px;border-bottom:1px solid var(--line)}
table.rates thead th{
  text-align:right;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--graphite);border-bottom:1px solid var(--line-2);padding-block:14px;
}
table.rates thead th:first-child{text-align:left}
table.rates thead th span{display:block;font-size:9.5px;letter-spacing:.1em;color:var(--brass);margin-top:4px;font-weight:600}
table.rates tbody th{text-align:left;font-weight:400}
table.rates tbody th b{font-family:var(--display);font-size:24px;color:var(--brass);display:block;line-height:1.1;letter-spacing:.02em}
table.rates tbody th span{font-size:13px;color:var(--graphite)}
table.rates td{font-size:19px;font-weight:600}
table.rates tbody tr:last-child th,table.rates tbody tr:last-child td{border-bottom:0}
table.rates tbody tr:hover{background:var(--porcelain)}
.fine{margin-top:18px;font-size:13.5px;color:var(--graphite);max-width:72ch}
.fine a{color:var(--ink);font-weight:600;border-bottom:1px solid var(--line-2)}

/* route */
.route{background:var(--porcelain-2)}
.route-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(34px,6vw,80px);align-items:start}
.route-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.route-stats div{background:var(--paper);padding:26px 22px}
.route-stats b{display:block;font-family:var(--display);font-size:clamp(34px,4vw,46px);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.route-stats b small{font-size:15px;font-family:var(--body);color:var(--graphite);font-weight:500;margin-left:4px}
.route-stats span{font-size:10.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--graphite);display:block;margin-top:10px}

/* coverage chips */
.sub{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin:38px 0 16px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{font-size:13.5px;border:1px solid var(--line);background:var(--paper);padding:7px 14px;border-radius:100px;transition:border-color .3s var(--ease)}
.chips span:hover{border-color:var(--brass)}
.chips-mono span{font-family:var(--body);font-weight:600;letter-spacing:.06em;font-size:12.5px;color:var(--graphite)}

/* quote form */
.quote{background:var(--ink)}
.quote .eyebrow{color:var(--brass)}
.quote-card{background:var(--paper);border-top:2px solid var(--brass);border-radius:3px;padding:clamp(30px,4vw,52px);max-width:900px;margin-inline:auto}
.quote-card .h2{font-size:clamp(30px,4vw,44px)}
.qrow{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:20px}
.qrow:last-of-type{grid-template-columns:repeat(4,1fr)}
.quote-card .fld{background:var(--paper);border-right:0}
.quote-card .fld select{width:100%;border:0;background:transparent;padding:0;font-size:15px;font-weight:500;outline:none;appearance:none;cursor:pointer}
.quote-card form > .btn{margin-top:22px}
.quote-card .fine{margin-top:16px}

/* nearby */
.near-sec{background:var(--porcelain-2)}
.near-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.near{background:var(--paper);padding:26px 24px;display:flex;flex-direction:column;gap:6px;transition:background .35s var(--ease)}
.near:hover{background:var(--porcelain)}
.near b{font-family:var(--display);font-size:23px;font-weight:400;letter-spacing:-.01em;position:relative;display:inline-block;align-self:flex-start}
.near b::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.near:hover b::after{transform:scaleX(1);transform-origin:left}
.near span{font-size:12.5px;color:var(--graphite)}

@media (max-width:1080px){
  .route-grid,.faq-grid{grid-template-columns:1fr}
  .near-grid{grid-template-columns:repeat(2,1fr)}
  .qrow:last-of-type{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .chero{padding-top:calc(76px + 44px)}
  .qrow,.qrow:last-of-type,.near-grid,.route-stats{grid-template-columns:1fr}
  table.rates th,table.rates td{padding:13px 16px}
}

/* ---- generic block layouts (service / airport / legal pages) ---- */
.sec.alt{background:var(--porcelain-2)}
.prose-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,6vw,80px);align-items:start}
.prose-grid .sec-head{margin-bottom:0}
.prose p{margin:0 0 20px;font-size:16.5px;color:var(--graphite);max-width:66ch}
.prose p:last-child{margin-bottom:0}
.route-stats.stats-4{grid-template-columns:repeat(4,1fr)}
.steps.steps-flat{gap:clamp(20px,3vw,34px)}
.steps.steps-flat::before{display:none}
.steps.steps-flat .step{padding-right:0}
@media (max-width:1080px){
  .prose-grid{grid-template-columns:1fr}
  .route-stats.stats-4{grid-template-columns:repeat(2,1fr)}
}
