/* ================================================================
   data.css — DATA_PAGES_V1 (pairs with templates/market-index.html and
   templates/how-we-estimate.html)
   The per-market price & drive-time index and the methodology page in
   the same editorial language as the hub and route pages: ivory
   masthead with mono breadcrumbs and eyebrow, serif headline, a
   framed "in numbers" panel with the hard offset shadow, numbered
   sections as cards, dense tables with tabular numerals. Tokens come
   from site.css. pipeline/build.py copies site/assets/ into build/
   and stamps the stylesheet links with a content hash.
   ================================================================ */

/* ---------- masthead ---------- */
.dx-mast{position:relative;background:var(--page);color:var(--ink);border-bottom:1px solid var(--line);padding:28px 0 48px}
.dx-mast-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:start}
.dx-mast-copy{min-width:0;max-width:760px}
.dx-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 30px;padding:0;list-style:none;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dx-crumbs a{color:var(--body);text-decoration:none}.dx-crumbs a:hover{color:var(--accent)}
.dx-crumbs li+li::before{content:"/";margin-right:8px;color:var(--line)}
.dx-crumbs li:last-child{color:var(--ink);overflow-wrap:anywhere}
.dx-kicker{margin:0 0 18px;color:var(--ink)}.dx-kicker .mk{color:var(--body)}
.dx-mast h1{max-width:22ch;margin:0 0 22px;font-family:var(--display);font-weight:500;font-size:clamp(32px,4.2vw,54px);line-height:1.04;letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}
.dx-lede{margin:0 0 26px;max-width:64ch;color:var(--body);font-size:17.5px;line-height:1.6}
.dx-rule{width:72px;height:1px;margin:0 0 22px;border:0;background:var(--ink)}
.dx-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.dx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border:1px solid var(--ink);border-radius:var(--r-sm);background:var(--ink);color:#fff!important;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none!important;transition:background .15s,border-color .15s}
.dx-btn:hover{background:var(--accent);border-color:var(--accent)}
.dx-btn--ghost{background:#fff;color:var(--ink)!important}.dx-btn--ghost:hover{background:var(--paper);border-color:var(--ink);color:var(--ink)!important}

/* the framed numbers panel */
.dx-glance{padding:24px 26px 22px;background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow-hard)}
.dx-glance h4{margin:0 0 14px;font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.dx-glance dl{margin:0;border-top:1px solid var(--line)}
.dx-glance dl div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.dx-glance dt{margin:0;color:var(--body);font-size:14px}
.dx-glance dd{margin:0;font-family:var(--display);font-size:22px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.dx-glance p{margin:12px 0 0;color:var(--muted);font-size:12.5px;line-height:1.55}
.dx-formula{margin:0;padding:14px 16px;background:var(--page);border:1px solid var(--line);font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
.dx-formula span{color:var(--accent);font-weight:600}
.dx-glance .dx-formula{margin-bottom:4px}
.dx-formula--wide{margin:14px 0 18px;font-size:14px}

/* ---------- body ---------- */
.dx-page{padding:40px 0 24px;background:var(--page);color:var(--ink);counter-reset:dxsec}
.dx-page .shell{display:grid;gap:28px}
.dx-card{padding:32px 0 36px;border-top:1px solid var(--ink)}
.dx-card:first-child{border-top:0;padding-top:0}
.dx-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin:0 0 20px}
.dx-head h2,.dx-card>h2{margin:0;font-family:var(--display);font-weight:500;font-size:clamp(24px,2.4vw,34px);line-height:1.1;letter-spacing:-.015em;color:var(--ink)}
.dx-head h2 small{margin-left:10px;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);vertical-align:middle}
.dx-head p{margin:0;color:var(--body);font-size:15px}
.dx-card h3{margin:22px 0 10px;font-family:var(--display);font-weight:500;font-size:20px;letter-spacing:-.01em;color:var(--ink)}
.dx-prose p,.dx-prose li,.dx-about p,.dx-about li,.dx-findings li{color:var(--body);font-size:17px;line-height:1.7}
.dx-prose p,.dx-about p{margin:0 0 14px;max-width:72ch}.dx-prose p:last-child,.dx-about p:last-child{margin-bottom:0}
.dx-prose ul,.dx-about ul,.dx-findings ul{margin:0 0 14px;padding-left:22px;max-width:72ch}
.dx-prose li,.dx-about li,.dx-findings li{margin:0 0 8px}
.dx-prose strong,.dx-about strong,.dx-findings strong{color:var(--ink)}
.dx-findings h2{margin-bottom:16px}
.dx-findings a,.dx-about a,.dx-prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.dx-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 48px}
.dx-cols h3:first-child{margin-top:0}
.dx-cite{padding:14px 16px;background:var(--paper);border:1px solid var(--line);font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
.dx-about .dx-actions{margin-top:24px}
.dx-method .dx-actions{margin-top:22px}

/* ---------- tables ---------- */
.dx-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dx-table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.45;font-variant-numeric:tabular-nums}
.dx-table thead th{padding:0 14px 10px 0;border-bottom:1px solid var(--ink);font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--body);text-align:left;white-space:nowrap}
.dx-table tbody th,.dx-table td{padding:12px 14px 12px 0;border-bottom:1px solid var(--line-soft);vertical-align:top;text-align:left}
.dx-table tbody th{font-weight:500;color:var(--ink)}
.dx-table tbody th a{color:var(--ink);text-decoration:none}.dx-table tbody th a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.dx-table tbody th small{display:block;margin-top:2px;font-size:12.5px;font-weight:400;color:var(--muted)}
.dx-table tbody th small a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.dx-table td{color:var(--body)}
.dx-table td small{color:var(--muted);font-size:12.5px}
.dx-table .dx-num{text-align:right;white-space:nowrap}
.dx-table .dx-price{color:var(--ink);font-weight:500}
.dx-table tr:last-child th,.dx-table tr:last-child td{border-bottom:0}
.dx-table .dx-arrow{margin:0 6px;color:var(--accent)}
.dx-table--policy tbody th,.dx-table--rates tbody th{min-width:11rem}
.dx-vehicles{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 24px}
.dx-vehicles li{padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:15.5px;line-height:1.5;color:var(--ink)}
.dx-vehicles li small{color:var(--muted);font-size:12.5px;margin-left:6px}
.dx-vehicles li span{display:block;margin-top:2px;color:var(--body);font-size:13.5px}

@media (max-width:980px){.dx-mast-grid{grid-template-columns:1fr;gap:28px}.dx-cols{grid-template-columns:1fr}}
@media (max-width:640px){.dx-mast{padding:20px 0 36px}.dx-mast h1{font-size:clamp(30px,8.5vw,40px)}.dx-crumbs{margin-bottom:22px}.dx-page{padding-top:28px}.dx-card{padding:26px 0 30px}.dx-table{font-size:14.5px}.dx-table tbody th,.dx-table td{padding:10px 12px 10px 0}.dx-btn{width:100%}.dx-glance dd{font-size:19px}}
