/* Road Atlas (F3), from I-80 Roadside's "Road Atlas Strip": the road drawn as a printed atlas sheet on map-white paper.
   Light only. Violet is worn by the call and nothing else; red is the route and the ringed exit; tints are land.
   Re-skin a brand through the :root variables (brands/<id>.json design.vars): palette, faces and widths.
   Fonts: Archivo variable (width axis) and Overpass variable, SIL Open Font License 1.1 (fonts/*-OFL.txt). */

@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url("fonts/archivo-latin-wdth-normal.woff2") format("woff2")}
@font-face{font-family:"Overpass";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/overpass-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Overpass";font-style:italic;font-weight:100 900;font-display:swap;src:url("fonts/overpass-latin-wght-italic.woff2") format("woff2")}

:root{
  /* map paper and map ink */
  --paper:#ffffff;--ink:#1c1c1c;--ink-2:#3b3b3b;--ink-lead:#555555;--ink-strong:#000000;--hair:#9ea3a8;
  /* land tints, one per stretch, and the tint under hover */
  --tint:#dfe99a;--tint-lt:#eef3c4;--tint-dk:#d1df7c;--tint-hot:#c3d65a;
  /* route symbols */
  --route:#d3202f;--shield:#2b55ad;--water:#a9cdea;--water-ink:#174a7c;
  /* the call */
  --call:#4f1d91;--call-hover:#3b136f;--call-ink:#ffffff;
  /* faces: Archivo wide for the name, condensed for headings, narrower for map lettering; Overpass for reading */
  --f-head:"Archivo","Arial Narrow",sans-serif;--f-body:"Overpass",system-ui,sans-serif;
  --wdth-display:112%;--wdth-head:88%;--wdth-label:85%;--wdth-tight:80%;
  /* type scale in rem, so the visitor's text size scales the page */
  --fs-2xs:.75rem;--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-base:1rem;--fs-md:1.0625rem;--fs-lg:1.125rem;--fs-xl:1.25rem;
  --fs-2xl:1.375rem;--fs-3xl:1.625rem;--fs-4xl:2rem;--fs-5xl:2.625rem;
  --fs-h1:clamp(2rem,1.25rem + 3.2vw,3.5rem);--fs-h2:clamp(1.6rem,1.15rem + 1.9vw,2.3rem);--fs-h3:clamp(1.15rem,1rem + .6vw,1.4rem);
  /* spacing steps */
  --gut:16px;--s0:4px;--s1:8px;--s15:12px;--s2:16px;--s25:20px;--s3:24px;--s35:32px;--s4:40px;--s45:48px;--s5:64px;--s6:88px;
  /* corners, rules and the two soft shadows */
  --radius-sm:4px;--radius:6px;--line:1.5px;
  --rule-double:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--ink);
  --shadow-pop:0 12px 24px -12px color-mix(in srgb,var(--ink) 45%,transparent);
  --shadow-bar:0 -8px 20px -10px color-mix(in srgb,var(--ink) 50%,transparent);
  --header-h:64px;--callbar-h:max(72px,4.75rem);--measure:31em;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--s15));scroll-padding-bottom:calc(var(--callbar-h) + var(--s2))}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-md)/1.55 var(--f-body);overflow-x:clip;padding-bottom:calc(var(--callbar-h) + env(safe-area-inset-bottom))}
::selection{background:var(--tint);color:var(--ink)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-line:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:800;font-stretch:var(--wdth-head);line-height:1.05;margin:0;text-wrap:balance;letter-spacing:-.01em;word-spacing:.06em}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2);letter-spacing:-.005em}
h3,h4{font-size:var(--fs-h3);line-height:1.15}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0;padding:0}
b,strong{font-weight:800}
em{font-style:italic}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--gut)}
.nobr{white-space:nowrap}
/* a number in running text: one atomic box, bold, so "(319) 555-0123" reads whole */
.tel{display:inline-block;font-weight:800;font-variant-numeric:tabular-nums;text-decoration-thickness:2px}
.skip-main{position:absolute;left:var(--gut);top:-100px;z-index:60;background:var(--paper);border:var(--line) solid var(--ink);padding:var(--s15) var(--s2);font-weight:700}
.skip-main:focus{top:var(--s15)}

/* ---------- the call: the only thing that wears --call ---------- */
.btn-call{display:inline-flex;align-items:center;gap:.6em;min-height:44px;background:var(--call);color:var(--call-ink);text-decoration:none;border-radius:var(--radius);font-family:var(--f-head);font-weight:700;transition:background-color .2s cubic-bezier(.16,1,.3,1)}
.btn-call:hover{background:var(--call-hover)}
.btn-call svg{width:1.2em;height:1.2em;flex:none;fill:currentColor}
.btn-call .n{font-family:var(--f-body);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.02em;overflow-wrap:normal;word-break:keep-all}
.btn-call--sm{flex-wrap:wrap;column-gap:.5em;padding:.55em .95em;font-size:var(--fs-base);line-height:1.2}
.btn-call--sm .t,.btn-call--sm .n{white-space:nowrap}
.btn-call--sm .n{font-size:var(--fs-sm)}
/* the large call sizes its lettering to its own width (a size container), so a whole number never breaks or clips;
   the number always leads, the label is capped at 85% of it */
.btn-call--lg{--ic:min(2.5rem,20cqi);--cg:var(--s2);--t-max:var(--fs-2xl);--n-max:var(--fs-4xl);container-type:inline-size;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--cg);row-gap:2px;padding:var(--s25) var(--s3) var(--s25) var(--s25)}
.btn-call--lg svg{grid-row:1/3;width:var(--ic);height:var(--ic);align-self:center}
.btn-call--lg .t{min-width:0;font-size:min(var(--t-max),calc(var(--n-max) * .85),calc((100cqi - var(--ic) - var(--cg)) / 8.1 * .85));line-height:1.1}
.btn-call--lg .n{min-width:0;font-size:min(var(--n-max),calc((100cqi - var(--ic) - var(--cg)) / 8.1));line-height:1.05;white-space:nowrap}
/* the cleared, double-ruled field around a large call: map-white, no tint, no shadow */
.call-field{display:grid;background:var(--paper);border:var(--line) solid var(--ink);box-shadow:var(--rule-double);padding:var(--s2)}
@media (min-width:880px){
  .btn-call--lg{--ic:min(3rem,20cqi);--cg:var(--s25);--t-max:var(--fs-3xl);--n-max:var(--fs-5xl);padding:var(--s3) var(--s4) var(--s3) var(--s35)}
  .call-field{padding:var(--s25)}
}
@media (max-width:420px){.btn-call--lg{--n-max:var(--fs-3xl);--t-max:var(--fs-xl)}}
@media (max-width:359px){.call-field{padding:var(--s15)}.btn-call--lg{--ic:min(2rem,20cqi);--cg:var(--s15);padding:var(--s2)}}

/* ---------- link actions in map ink ---------- */
.arr{width:22px;height:12px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;transition:transform .25s cubic-bezier(.16,1,.3,1)}
.arr-w{transform:scaleX(-1)}
.more{display:inline-flex;align-items:center;gap:var(--s1);min-height:44px;font:700 var(--fs-sm)/1.2 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.06em;word-spacing:.06em}
.more:hover .arr-e,.go:hover .arr-e{transform:translateX(4px)}
.go:hover .arr-w{transform:translateX(-4px) scaleX(-1)}
.go{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s15);min-height:48px;padding:var(--s1) var(--s2);text-decoration:none;color:var(--ink);background:var(--paper);border:var(--line) solid var(--ink);font:700 var(--fs-sm)/1.2 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.05em;word-spacing:.06em}
.go:hover{background:var(--tint-lt)}
.legend-title{display:block;margin:0 0 var(--s1);font:700 var(--fs-2xs)/1.3 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em;word-spacing:normal;color:var(--ink)}
.golist ul{list-style:none;display:grid;gap:var(--s1)}
.golist .go{display:flex;width:100%}

/* ---------- header ---------- */
.site-header{container:hdr/inline-size;position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:var(--line) solid var(--ink)}
.site-header__in{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s25);min-height:var(--header-h);max-width:1600px;margin:0 auto;padding:var(--s1) var(--gut)}
.brand{display:inline-block;min-height:44px;min-width:0;padding:.55em 0 .4em;text-decoration:none;font:800 min(var(--fs-xl),6.4vw)/1.05 var(--f-head);font-stretch:var(--wdth-display);letter-spacing:-.015em}
.site-nav{position:relative;margin-left:auto}
.site-nav ul{list-style:none;display:none;position:absolute;right:0;top:calc(100% + var(--s15));z-index:31;flex-direction:column;gap:2px;min-width:220px;padding:var(--s1);background:var(--paper);border:var(--line) solid var(--ink);box-shadow:var(--shadow-pop)}
.site-nav.is-open ul{display:flex}
.site-nav ul a{display:flex;align-items:center;min-height:44px;padding:0 var(--s15);text-decoration:none;font:600 var(--fs-base)/1.2 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid transparent}
.site-nav ul a:hover,.site-nav ul a[aria-current],.site-nav ul a.is-on{border-bottom-color:var(--ink)}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:44px;min-width:44px;padding:0 var(--s2);background:var(--paper);color:var(--ink);border:var(--line) solid var(--ink);border-radius:var(--radius-sm);font:600 var(--fs-sm)/1 var(--f-head);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;cursor:pointer}
.menu-btn svg{width:18px;height:12px;flex:none;stroke:currentColor;stroke-width:1.8;fill:none}
a.menu-link{display:none}
/* without JavaScript the button cannot open anything: a link to the footer nav takes its place */
html:not(.js) button.menu-btn{display:none}
html:not(.js) a.menu-link{display:inline-flex}
.hdr-call{display:none}
@container hdr (min-width:65rem){
  .site-nav ul{display:flex;position:static;flex-direction:row;min-width:0;padding:0;background:none;border:0;box-shadow:none}
  .site-nav ul a{padding:0 var(--s1);font-size:var(--fs-sm)}
  button.menu-btn,html:not(.js) a.menu-link{display:none}
  .brand{font-size:var(--fs-2xl)}
}
@container hdr (max-width:73.75rem){.hdr-call .t{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}
@container hdr (max-width:22.4rem){.menu-t{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.menu-btn{padding:0}}

/* ---------- footer ---------- */
.site-footer{margin-top:var(--s5);padding:var(--s35) 0 var(--s4);border-top:var(--line) solid var(--ink)}
.banner+.site-footer{margin-top:0;border-top:0}
.site-footer__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s4)}
.foot-area{max-width:34em;font-size:var(--fs-sm);color:var(--ink-2)}
.site-footer ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 var(--s1)}
.site-footer ul a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s1);font-size:var(--fs-sm)}
.site-footer__copy{width:100%;padding-top:var(--s2);border-top:1px solid var(--hair);font-size:var(--fs-sm);color:var(--ink-2)}
/* the services legend: map-key rows in columns, a square marker per page, then the other pages in a line */
.foot-links{width:100%;display:grid;gap:var(--s2)}
.site-footer .foot-svc ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:0 var(--s3);border-top:var(--line) solid var(--ink)}
.site-footer .foot-svc li{border-bottom:1px solid var(--hair)}
.site-footer .foot-svc a{display:flex;align-items:center;gap:var(--s15);padding:0;font:700 var(--fs-sm)/1.25 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.05em;text-decoration:none}
.site-footer .foot-svc a::before{content:"";flex:none;width:12px;height:12px;background:var(--paper);border:1.5px solid var(--ink);border-radius:3px}
.site-footer .foot-svc a:hover{text-decoration:underline;text-decoration-thickness:2px}
.site-footer .foot-svc a:hover::before{background:var(--ink)}
.site-footer .foot-more ul{margin-left:calc(-1 * var(--s1))}

/* ---------- the call bar: fixed under 1024px from first paint ---------- */
.call-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;box-shadow:var(--shadow-bar)}
.call-bar__call{container-type:inline-size;--ic:min(1.75rem,14cqi);--nfs:min(var(--fs-2xl),calc((100cqi - var(--ic) - var(--s15)) / 8.1));display:grid;grid-template-columns:auto auto;grid-template-areas:"ic t" "ic n";justify-content:center;align-content:center;column-gap:var(--s15);min-height:72px;padding:var(--s1) var(--s2) calc(var(--s1) + env(safe-area-inset-bottom));background:var(--call);color:var(--call-ink);text-decoration:none;border-top:2px solid var(--paper);font-family:var(--f-head);font-weight:700;line-height:1.1}
.call-bar__call:hover{background:var(--call-hover)}
.call-bar__call svg{grid-area:ic;align-self:center;width:var(--ic);height:var(--ic);fill:currentColor}
.call-bar .t{grid-area:t;font-size:min(var(--fs-base),calc(var(--nfs) * .75))}
.call-bar .n{grid-area:n;font-family:var(--f-body);font-weight:800;font-size:var(--nfs);letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.call-bar__call:focus-visible{outline:3px solid var(--call-ink);outline-offset:-7px}
@media (min-width:1024px){
  .call-bar{display:none}
  body{padding-bottom:0}
  html{scroll-padding-bottom:var(--s2)}
  .hdr-call{display:flex;align-items:center}
}

/* ---------- breadcrumb, in atlas lettering ---------- */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;font:700 var(--fs-sm)/1.2 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.06em}
.crumbs li{display:flex;align-items:center;min-height:44px}
.crumbs li+li::before{content:"";width:18px;height:1.5px;margin:0 var(--s15);background:var(--ink)}
.crumbs a{display:inline-flex;align-items:center;gap:.32em;min-height:44px}
.crumbs a:hover{background:var(--tint-lt)}
.crumbs [aria-current]{color:var(--ink-2)}
/* phones: one line of crumbs, so the call keeps the first screen */
@media (max-width:599px){
  .crumbs ol{font-size:var(--fs-xs);letter-spacing:.04em}
  .crumbs li+li::before{width:12px;margin:0 var(--s1)}
}

/* ---------- reading text ---------- */
.lead{max-width:var(--measure);font-size:var(--fs-lg);line-height:1.5}
.lead>*+*{margin-top:var(--s15)}
.sec{margin-top:var(--s45);padding-top:var(--s25);border-top:1px solid var(--ink)}
.sec>*+*{margin-top:var(--s15)}
.sec>h2+*{margin-top:var(--s2)}
.sec>p,.sec>h3,.sec>h4{max-width:var(--measure)}
.sec>h3,.sec>h4{margin-top:var(--s3)}
.sec--nohead{border-top:0;padding-top:0}

/* key takeaways: the map's summary legend, a land-tint box in the double rule, a town dot per line */
.sec--takeaways{padding:var(--s2) var(--s25) var(--s2);background:var(--tint-lt);border:var(--line) solid var(--ink);box-shadow:var(--rule-double)}
.sec--takeaways>h2{font-size:var(--fs-xl);text-transform:uppercase;letter-spacing:.04em}
.sec--takeaways>h2+*{margin-top:var(--s1)}
.takeaways{list-style:none;max-width:calc(var(--measure) + 6em)}
.takeaways>li{position:relative;padding:var(--s1) 0 var(--s1) var(--s3);line-height:1.45}
.takeaways>li+li{border-top:1px solid var(--hair)}
.takeaways>li::before{content:"";position:absolute;left:0;top:calc(var(--s1) + .725em - 6px);width:12px;height:12px;background:var(--paper);border:1.5px solid var(--ink);border-radius:3px;box-shadow:inset 0 0 0 2.5px var(--paper),inset 0 0 0 6px var(--ink)}

/* where to wait: boxed in the double rule, keyed by the rest-area symbol */
.sec--wait{padding:var(--s25) var(--s25) var(--s3);border:var(--line) solid var(--ink);box-shadow:var(--rule-double)}
.sec--wait>h2{display:flex;align-items:center;gap:var(--s15)}
.wsym{flex:none;width:1.6em;height:1.6em}
.ws-box{fill:var(--tint-lt);stroke:var(--ink);stroke-width:1.5}
.ws-ring{fill:var(--paper);stroke:var(--ink);stroke-width:1.6}
.ws-dot{fill:var(--ink)}

/* facts on a ticked spine: a 10px mile tick per row, rows divided by hairlines */
.fl{list-style:none;max-width:calc(var(--measure) + var(--s25))}
.fl>li{position:relative;padding:var(--s15) 0 var(--s15) var(--s25);border-top:1px solid var(--hair)}
.fl>li:first-child{border-top:0}
.fl>li::before{content:"";position:absolute;left:0;top:calc(var(--s15) + .775em - 1px);width:10px;height:2px;background:var(--ink)}
/* a list of short names runs in columns */
.fl--cols{columns:3 11rem;column-gap:var(--s3);max-width:none}
.fl--cols>li{break-inside:avoid;padding-block:var(--s1);border-top:0}
.fl--cols>li::before{top:calc(var(--s1) + .775em - 1px)}
/* the exit page's facts: one spine per column, every fact ticked off it */
.fl--pins{columns:2 16rem;column-gap:0;max-width:none;border-top:1px solid var(--ink)}
.fl--pins>li{break-inside:avoid;padding:var(--s1) var(--s2) var(--s1) var(--s25);border-top:0;border-left:1px solid var(--ink-lead);line-height:1.4}
.fl--pins>li::before{top:calc(var(--s1) + .7em);width:var(--s15);height:1px;background:var(--ink-lead)}

/* route steps: numbered tabs on one unbroken red route cased in ink, the arrowhead at the last step */
.steps{position:relative;list-style:none;counter-reset:st;max-width:38rem}
.sec>.steps{margin-top:var(--s25)}
.steps::before{content:"";position:absolute;left:12px;top:6px;bottom:14px;width:7.6px;background:var(--route);border-left:1.5px solid var(--ink);border-right:1.5px solid var(--ink)}
.steps::after{content:"";position:absolute;left:8px;bottom:0;border:8px solid transparent;border-top:14px solid var(--ink);border-bottom:0}
.steps>li{position:relative;counter-increment:st;min-height:44px;padding:2px 0 var(--s3) 88px}
.steps>li::before{content:counter(st);position:absolute;left:40px;top:0;display:grid;place-items:center;min-width:34px;height:28px;padding:0 var(--s1);background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius-sm);font:800 var(--fs-base)/1 var(--f-body);font-variant-numeric:tabular-nums}
.steps>li::after{content:"";position:absolute;left:16px;top:13px;width:24px;height:1.5px;background:var(--ink)}

/* a bare place list: map dots, place names lettered as on the sheet */
.places{list-style:none;columns:3 10rem;column-gap:var(--s3);max-width:none}
.sec>.places{margin-top:var(--s2)}
.places>li{position:relative;break-inside:avoid;padding:6px 0 6px 22px;font:700 var(--fs-base)/1.3 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.05em}
.places>li::before{content:"";position:absolute;left:2px;top:calc(6px + .32em);width:10px;height:10px;border-radius:50%;background:var(--paper);border:2.5px solid var(--ink)}
.places a{display:inline-flex;align-items:center;min-height:32px}

/* ---------- the road index: a tint column with the red route cased in ink, a tab per exit or place ---------- */
.road{--rc:5.75rem;position:relative;list-style:none;max-width:none}
.sec>.road{margin-top:var(--s25)}
.road::before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--rc);background:var(--tint-lt)}
.road::after{content:"";position:absolute;z-index:1;top:0;bottom:0;left:calc(var(--rc) / 2 - 5.3px);width:10.6px;background:var(--route);border-left:1.5px solid var(--ink);border-right:1.5px solid var(--ink)}
.rw{position:relative;display:grid;grid-template-columns:var(--rc) minmax(0,1fr);column-gap:var(--s15);align-items:start;min-height:52px;padding:var(--s1) var(--s15) var(--s1) 0;color:var(--ink);text-decoration:none}
.rw::after{content:"";position:absolute;left:var(--rc);right:0;bottom:0;height:1px;background:var(--hair)}
.road>li:last-child>.rw::after,.road>li.rw:last-child::after{display:none}
.xt{position:relative;z-index:2;justify-self:center;display:grid;justify-items:center;align-content:center;min-width:3.25rem;min-height:2.6rem;padding:3px var(--s1);background:var(--paper);color:var(--ink);border:1px solid var(--ink);border-radius:3px;line-height:1;font-variant-numeric:tabular-nums;text-align:center;text-decoration:none}
.xk{display:block;font:700 .6875rem/1.1 var(--f-body);text-transform:uppercase;letter-spacing:.06em}
.xn{display:block;margin-top:2px;font:800 var(--fs-base)/1.05 var(--f-body)}
.pl{min-width:0;padding-top:var(--s1);font-size:var(--fs-base);line-height:1.45}
.pl>*+*{margin-top:var(--s1)}
/* a tab that links is underlined (pattern, not colour); hover and focus fill it ink and light the land */
a.xt,a.rw .xt{text-decoration:underline;text-underline-offset:2px}
a.xt:hover,a.xt:focus-visible,a.rw:hover .xt,a.rw:focus-visible .xt{background:var(--ink);color:var(--paper)}
a.rw::before{content:"";position:absolute;z-index:1;top:0;bottom:0;left:0;width:var(--rc);background:transparent}
a.rw:hover::before,a.rw:focus-visible::before{background:var(--tint-hot)}
a.rw .pl{font-weight:600}
a.rw:hover .pl{text-decoration:underline;text-decoration-thickness:2px}
a.rw:focus-visible{outline-offset:-3px}
.rw-a{width:22px;height:12px;margin-left:var(--s1);vertical-align:-1px;stroke:currentColor;fill:none;stroke-width:1.6;transition:transform .25s cubic-bezier(.16,1,.3,1)}
a.rw:hover .rw-a,a.rw:focus-visible .rw-a{transform:translateX(4px)}
/* a closed exit: dashed tab, by pattern and by the copy's own word */
.rw.is-closed .xt{border:1.5px dashed var(--ink)}
/* the exit a page is about: ringed in the route's red, doubled so it reads first */
.rw--here .xt{border:3px solid var(--route);box-shadow:0 0 0 3px var(--paper),0 0 0 4.5px var(--ink)}
.rw--here .pl{font-weight:800}
/* a row with no number: a blank tab threaded by the route */
.xt--blank{min-width:2rem;min-height:1.25rem;border-color:var(--ink-lead)}
.rw--t .pl{color:var(--ink-2)}
/* map symbols for places without a number */
.xt--sym{min-width:2.25rem;min-height:2.25rem;padding:0}
.xt--sym::before{content:"";display:block;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2.5px solid var(--ink)}
.xt--county::before{border-radius:0;border-style:dashed;width:14px;height:14px}
.xt--roads::before,.xt--stretch::before,.xt--segment::before{border-radius:0;width:18px;height:7px;background:var(--route);border:1.5px solid var(--ink);border-inline:0}
.xt--towns::before{width:18px;height:6px;border:0;border-radius:0;background:radial-gradient(circle,var(--ink) 2.4px,transparent 2.6px) 0 50%/6px 6px repeat-x}
.xt--problem::before{border-radius:0;width:16px;height:16px;border:1.5px solid var(--ink);background:repeating-linear-gradient(-45deg,var(--ink) 0 1.5px,transparent 1.5px 5px)}
.xt--pair::before{border-color:var(--route);border-width:3px}
a.rw:hover .xt--sym::before,a.rw:focus-visible .xt--sym::before{border-color:var(--paper)}
/* an index on the road (margins and side columns) */
.ri .road{--rc:4.75rem}
.ri .rw{min-height:48px}
.ri .pl{font-size:var(--fs-sm);padding-top:var(--s15)}
@container (max-width:14rem){.road{--rc:3.25rem}.xt{min-width:0;padding:2px 4px}}

/* ---------- the key beside the call: 24/7 line, from-prices on leaders, the price note, the ask ---------- */
.key{background:var(--paper);border:1px solid var(--ink);padding:var(--s15) var(--s2) var(--s2)}
.key-247{font-weight:800;font-size:var(--fs-base);line-height:1.35}
.pk{list-style:none;margin-top:var(--s1);border-top:var(--line) solid var(--ink)}
.pk>li{display:flex;align-items:baseline;gap:var(--s1);min-height:36px;padding:6px 0 5px;border-bottom:1px solid var(--hair)}
.pk-n{font:800 var(--fs-base)/1.2 var(--f-head);font-stretch:var(--wdth-head);word-spacing:.06em}
a.pk-n{min-height:24px}
.pk .d{flex:1;min-width:var(--s2);border-bottom:2px dotted var(--ink-lead);transform:translateY(-.3em)}
.pk-p{font-variant-numeric:tabular-nums;white-space:nowrap}
.key-note{margin-top:var(--s1);font-size:var(--fs-xs);line-height:1.4;color:var(--ink-2)}
.key-ask{margin-top:var(--s15);font-weight:700;font-size:var(--fs-sm);line-height:1.35}
.cb{display:grid;gap:var(--s2);align-items:start}
@media (min-width:48rem){.cb{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* ---------- the price card: a ruled table, each name on a dotted leader to its from-price ---------- */
.card h2{font-size:var(--fs-3xl);line-height:1.1}
.prices{width:100%;margin-top:var(--s2);border-collapse:collapse;border-top:var(--line) solid var(--ink);border-bottom:4px double var(--ink)}
.prices thead th{padding:var(--s1) 0;border-bottom:1px solid var(--ink);text-align:left;font:700 var(--fs-2xs)/1.2 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em}
.prices thead th:last-child{text-align:right}
.prices tbody th,.prices tbody td{padding:0;border-bottom:1px solid var(--hair);vertical-align:middle}
.prices tbody tr:last-child>*{border-bottom:0}
.prices tbody th{text-align:left;font-weight:400}
.prices .row{display:flex;align-items:center;gap:var(--s15)}
.prices .row>a,.prices .row>.lw{display:inline-flex;align-items:center;min-height:48px;font:800 var(--fs-lg)/1.15 var(--f-head);font-stretch:var(--wdth-head);word-spacing:.06em;text-decoration:none}
.prices .row>a:hover .lw{text-decoration:underline;text-decoration-thickness:2px}
.prices .lw{white-space:nowrap}
.prices .lw .arr{display:inline-block;margin-left:var(--s1);vertical-align:-.05em}
.prices .row>a:hover .arr{transform:translateX(4px)}
.prices .d{flex:1;min-width:var(--s3);border-bottom:2px dotted var(--ink-lead);transform:translateY(.35em)}
.prices tbody td{width:1%;padding-left:var(--s15);text-align:right;white-space:nowrap;font-weight:800;font-size:var(--fs-md);font-variant-numeric:tabular-nums}
.price-note{margin-top:var(--s2);max-width:32em;font-size:var(--fs-base);color:var(--ink-2)}
.checked{margin-top:var(--s1);font:700 var(--fs-2xs)/1.3 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em}
/* a narrow card (a phone, the hub's side column): names wrap and keep their leaders; enlarged text stacks the rows */
@container (max-width:26rem){
  .prices .lw{white-space:normal}
  .prices .row>a,.prices .row>.lw{font-size:var(--fs-md)}
}
@container (max-width:16rem){
  .prices tbody tr{display:block;border-bottom:1px solid var(--hair)}
  .prices tbody th,.prices tbody td{display:block;border-bottom:0}
  .prices .d,.prices thead th:last-child{display:none}
  .prices tbody td{width:auto;padding:0 0 var(--s15);text-align:left}
  .prices .lw{white-space:normal}
}
.card,.doc-body,.hub-side,.x-main,.x-side{container-type:inline-size}

/* ---------- questions: every answer shown, numbered on tabs ---------- */
.qa{list-style:none;counter-reset:q;max-width:40rem}
.sec>.qa{margin-top:var(--s1)}
.qa>li{position:relative;counter-increment:q;padding:var(--s25) 0 var(--s25) 3rem;border-bottom:1px solid var(--hair)}
.qa>li:last-child{border-bottom:0;padding-bottom:0}
.qa>li::before{content:counter(q);position:absolute;left:0;top:var(--s25);display:grid;place-items:center;min-width:2.1rem;height:1.8rem;padding:0 6px;background:var(--paper);border:1px solid var(--ink);border-radius:3px;font:800 var(--fs-sm)/1 var(--f-body);font-variant-numeric:tabular-nums}
.qa h3{max-width:40ch;font-size:var(--fs-xl)}
.qa>li>*+*{margin-top:var(--s1)}
.qa p{max-width:var(--measure)}
.qa li:target{background:linear-gradient(90deg,var(--tint-lt),var(--tint-lt)) 0 0/2.6rem 100% no-repeat}

/* ---------- plates: a picture in a double-ruled frame, numbered on a tab, captioned under a rule ---------- */
.plate{position:relative;max-width:40rem;margin:var(--s45) 0 0;padding:9px;background:var(--paper);border:1px solid var(--ink);box-shadow:var(--rule-double)}
.plate img{width:100%;height:auto;object-fit:cover}
.plate figcaption{margin-top:var(--s1);padding-top:var(--s1);border-top:1px solid var(--ink);font-size:var(--fs-xs);line-height:1.35;color:var(--ink-2)}
.plate-no{position:absolute;top:-11px;left:12px;z-index:1;padding:3px 7px 2px;background:var(--paper);border:1px solid var(--ink);border-radius:3px;font:700 var(--fs-2xs)/1 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap}
.plate-no::before{content:"Plate 1"}

/* ---------- sources: a legend box ---------- */
.src{margin-top:var(--s45);padding:var(--s15) var(--s2) var(--s2);background:var(--paper);border:1px solid var(--ink);font-size:var(--fs-xs);line-height:1.45;color:var(--ink-2)}
.src ul{list-style:none}
.src li{position:relative;padding:3px 0 3px 18px}
.src li::before{content:"";position:absolute;left:0;top:calc(3px + .7em);width:10px;height:1px;background:var(--ink-lead)}
.src a{color:var(--ink);overflow-wrap:anywhere}
.src-ck{margin-top:var(--s1);font-weight:700;color:var(--ink)}

/* ---------- the lead form: one column in a double-ruled box ---------- */
.formsec>h2{font-size:var(--fs-3xl)}
.lead-form{display:grid;gap:var(--s25);max-width:36rem;margin-top:var(--s2);padding:var(--s35) var(--s25);background:var(--paper);border:var(--line) solid var(--ink);box-shadow:var(--rule-double)}
.lead-form__field{display:flex;flex-direction:column;gap:var(--s1);min-width:0}
.lead-form label{font-weight:700;font-size:var(--fs-sm);line-height:1.3}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;min-height:48px;padding:var(--s15);font:400 var(--fs-md) var(--f-body);color:var(--ink);background:var(--paper);border:var(--line) solid var(--ink);border-radius:var(--radius-sm)}
.lead-form textarea{min-height:120px;resize:vertical}
.lead-form input:focus-visible,.lead-form select:focus-visible,.lead-form textarea:focus-visible{outline:3px solid var(--ink);outline-offset:1px}
/* an invalid field stays map-white: the 3px dashes carry the state */
.lead-form input:user-invalid,.lead-form select:user-invalid,.lead-form textarea:user-invalid{border-width:3px;border-style:dashed}
.lead-form__note{max-width:32em;font-weight:700}
.lead-form__submit{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:var(--s2) var(--s35);background:var(--ink);color:var(--paper);border:0;border-radius:var(--radius);font:700 var(--fs-lg)/1 var(--f-head);font-stretch:var(--wdth-head);cursor:pointer;transition:background-color .2s}
.lead-form__submit:hover{background:var(--ink-strong)}
@media (min-width:48rem){.lead-form{padding:var(--s4)}.lead-form__submit{justify-self:start}}

/* ---------- the call banner: a land-tint band ---------- */
.banner{container:band/inline-size;margin-top:var(--s5);background:var(--tint);border-block:var(--line) solid var(--ink)}
.banner__in{display:grid;gap:var(--s3);padding-block:var(--s45)}
.banner h2{max-width:22ch;font-size:var(--fs-h2)}
.banner p{margin-top:var(--s15);max-width:32em;font-weight:700}
.banner .call-field{width:28rem;max-width:100%}
@container band (min-width:60rem){.banner__in{grid-template-columns:minmax(0,1fr) auto;gap:var(--s5);align-items:center;padding-block:var(--s5)}}
@media (max-width:879px){.banner .call-field{width:auto;padding:0;background:none;border:0;box-shadow:none}}

/* =====================================================================================================
   HUB: the atlas sheet. A neatline frame on land tints, the title block and the call in row one,
   the key and the lead under them, the brand's places as tabs on one unbroken route across the foot.
   ===================================================================================================== */
.atlas{padding:var(--s15) var(--gut) 0}
.frame{container:atlas/inline-size;position:relative;max-width:1600px;margin:0 auto;overflow:hidden;background:var(--land,var(--tint-lt));border:var(--line) solid var(--ink)}
.atlas-bg{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;pointer-events:none}
.b0{fill:var(--tint)}.b1{fill:var(--tint-lt)}.b2{fill:var(--tint-dk)}
.county{fill:none;stroke:var(--hair);stroke-width:1;stroke-dasharray:5 3 1 3}
.river{fill:none;stroke:var(--water);stroke-width:9;stroke-linecap:round}
.sheet{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s2);padding:var(--s2) var(--s15) 0}
.cartouche{container-type:inline-size;padding:var(--s25);background:var(--paper);border:var(--line) solid var(--ink);box-shadow:var(--rule-double)}
.cartouche h1{font-size:min(clamp(2rem,1.3rem + 3vw,3.5rem),14cqi)}
/* a short title is set as the name: Archivo run wide, the title-block voice of the sheet */
.cartouche h1.is-name{font-size:min(clamp(2.2rem,1.2rem + 4vw,4.3rem),15.5cqi);font-stretch:var(--wdth-display);letter-spacing:-.025em;line-height:1}
.slogan{margin-top:var(--s15);font:700 clamp(1rem,.9rem + .55vw,1.35rem)/1.15 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.03em}
.sheet-lead{padding:var(--s15) var(--s2);background:var(--paper);border:1px solid var(--ink)}
/* the strip: on phones a road index on paper; on a wide sheet the route runs edge to edge with the places on leaders */
.hstrip{margin:var(--s1) calc(-1 * var(--s15)) 0;padding:var(--s1) var(--s15) var(--s2);background:var(--paper);border-top:var(--line) solid var(--ink)}
.hstrip--bare{height:46px;padding:0;background:transparent;border:0;position:relative}
.hstrip--bare::before{content:"";position:absolute;left:0;right:0;top:16px;height:13.6px;background:var(--route);border-block:2px solid var(--ink)}
@container atlas (min-width:58rem){
  .sheet{grid-template-columns:minmax(0,1fr) minmax(20rem,26rem);grid-template-areas:"title call" "lead key" "strip strip";column-gap:var(--s5);row-gap:var(--s2);padding:var(--s35) var(--s45) 0}
  .cartouche{grid-area:title;align-self:start;max-width:46rem;padding:var(--s25) var(--s35)}
  .sheet-call{grid-area:call;align-self:start}
  .sheet-key{grid-area:key;align-self:start}
  .sheet-lead{grid-area:lead;align-self:start;max-width:46rem}
  .hstrip{grid-area:strip;margin:var(--s3) calc(-1 * var(--s45)) 0;padding:0;background:transparent;border:0}
  .road--h{display:flex;flex-wrap:wrap;justify-content:space-around;gap:var(--s2) var(--s3);padding:var(--s2) var(--s45) 38px}
  .road--h::before{display:none}
  .road--h::after{top:auto;bottom:12px;left:0;right:0;width:auto;height:13.6px;border:0;border-block:2px solid var(--ink)}
  .road--h>li{position:relative}
  .road--h .rw{display:flex;flex-direction:column-reverse;align-items:center;gap:var(--s1);min-height:0;padding:0}
  .road--h .rw::before{display:none}
  .road--h .rw::after,.road--h>li:last-child>.rw::after{display:block;left:50%;right:auto;top:100%;bottom:auto;width:1.5px;height:30px;margin-left:-.75px;background:var(--ink)}
  .road--h .pl{padding:0;text-align:center;font:700 var(--fs-sm)/1.2 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.06em;background:var(--paper);padding-inline:var(--s0)}
  .road--h .rw-a{display:none}
  .hstrip--bare{margin-top:var(--s3)}
}
.hub{display:grid;gap:0 var(--s5)}
.hub-side>.card:first-child,.hub-side>:first-child{margin-top:var(--s45)}
.hub-side .golist{margin-top:var(--s45)}
@media (min-width:64rem){.hub{grid-template-columns:minmax(0,1fr) minmax(19rem,24rem);align-items:start}}

/* =====================================================================================================
   EXIT: a tinted sheet (the stretch's own land) holds the call, the title and the key; then the road at this
   exit as one strip, the exit ringed on the red route, the neighbouring exits at the two ends; facts on white.
   ===================================================================================================== */
.x-atlas{padding:0 var(--gut)}
.x-top{max-width:1600px;margin:0 auto;padding-top:var(--s1)}
.x-frame{--pad:var(--s15);background:var(--paper)}
.x-sheet{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s2);padding:var(--s2) var(--pad);background:var(--land)}
.x-cart{padding:var(--s15) var(--s2)}
.x-cart h1{font-size:min(clamp(2rem,1.2rem + 3.4vw,3.5rem),15cqi)}
.x-intro{padding:var(--s15) var(--s2);background:var(--paper);border:1px solid var(--ink)}
.x-intro>*+*{margin-top:var(--s1)}
.x-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 var(--s3);padding:0 var(--pad);background:var(--land)}
.x-head .more{margin-top:0}
.x-tag{display:flex;flex-wrap:wrap;gap:0 var(--s1);padding:var(--s1) 0;font:700 var(--fs-2xs)/1.3 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em}
.x-tag>span+span::before{content:"";display:inline-block;width:12px;height:1.5px;margin-right:var(--s1);vertical-align:.3em;background:var(--ink)}
/* the road: the route runs edge to edge behind the ring and the two end links; a missing neighbour leaves its slot empty */
.x-road{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto auto;row-gap:var(--s1);align-items:center;padding:var(--s1) var(--pad) var(--s3);background:var(--land);border-bottom:var(--line) solid var(--ink)}
.x-road::before{content:"";grid-row:2;grid-column:1/-1;align-self:center;height:14px;margin-inline:calc(-1 * var(--pad));background:var(--route);border-block:2px solid var(--ink);animation:x-draw .9s cubic-bezier(.16,1,.3,1) both}
@keyframes x-draw{from{clip-path:inset(0 50%)}to{clip-path:inset(0 0)}}
.x-road>*{position:relative;z-index:1}
.x-end--w{grid-row:1;grid-column:1/3;justify-self:start}
.x-end--e{grid-row:1;grid-column:2/4;justify-self:end}
.x-bet--w{grid-row:2;grid-column:1}
.x-mark{grid-row:2;grid-column:2}
.x-bet--e{grid-row:2;grid-column:3}
.x-end{min-width:0;max-width:calc(50cqi - var(--pad));gap:var(--s1);padding-inline:var(--s1)}
.x-end--e{text-align:right}
.x-end--none{min-height:48px}
.x-lbl{display:grid;gap:1px}
.x-dir{font-size:var(--fs-2xs);font-stretch:var(--wdth-tight);letter-spacing:.1em;white-space:nowrap}
.x-nm{font-size:var(--fs-lg);font-weight:800;text-transform:none;letter-spacing:0;line-height:1.1;white-space:nowrap}
.x-end:hover{background:var(--ink);color:var(--paper)}
.x-bet{display:flex;align-items:center;justify-content:center;min-width:0}
.x-mark{display:grid;place-items:center;min-height:5.25rem;margin-inline:var(--s15)}
.x-ring{display:grid;justify-items:center;min-width:5.75rem;margin:0;padding:var(--s0) var(--s15) 6px;background:var(--paper);border:3px solid var(--route);border-radius:3px;box-shadow:0 0 0 3px var(--paper),0 0 0 4.5px var(--ink);font-variant-numeric:tabular-nums;text-align:center}
.x-ring .k{font:700 var(--fs-2xs)/1 var(--f-body);text-transform:uppercase;letter-spacing:.1em;margin-top:2px}
.x-ring .n{font:800 2.25rem/1 var(--f-body)}
.x-ring .m{margin-top:2px;font:700 var(--fs-xs)/1.2 var(--f-body);white-space:nowrap}
.x-sh{width:1.9rem;height:1.9rem;flex:none}
.x-sh text{font-family:var(--f-body);font-weight:800;fill:var(--paper)}
.x-sh--us text,.x-sh--ia text{fill:var(--ink)}
.x-sh--ia rect{fill:var(--paper);stroke:var(--ink);stroke-width:2}
.sh-blue{fill:var(--shield)}.sh-red{fill:var(--route)}.sh-line{stroke:var(--paper);fill:none}
.shu{fill:var(--paper);stroke:var(--ink);stroke-width:2}
.x-note{position:absolute;right:var(--pad);bottom:var(--s0);margin:0;padding-left:var(--s0);background:var(--land);font:700 var(--fs-2xs)/1.3 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em}
.x-note::before{content:"Not to scale"}
/* the end links are other exit pages, not the next exits: the road says so in its own legend type */
.x-road>.x-cap{position:absolute;left:var(--pad);bottom:var(--s0);margin:0;padding-right:var(--s0);background:var(--land);font:700 var(--fs-2xs)/1.3 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em}
/* the facts on white: the reading column, and a side column with the exits in mile order */
.x-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s45);padding:var(--s1) var(--pad) var(--s35)}
.x-main>.sec:first-child{margin-top:var(--s3)}
.x-side{display:grid;gap:var(--s35);align-content:start;padding-top:var(--s35)}
.x-side>.plate{margin-top:var(--s1)}
.x-more>.sec:first-child{margin-top:var(--s5)}
@container atlas (min-width:40rem){
  .x-end{max-width:none}
}
@container atlas (min-width:58rem){
  .x-frame{--pad:var(--s45)}
  .x-sheet{grid-template-columns:minmax(0,1fr) minmax(20rem,26rem);grid-template-areas:"title call" "intro key";column-gap:var(--s5);row-gap:var(--s2);padding-top:var(--s35);padding-bottom:var(--s25)}
  .x-cart{grid-area:title;align-self:start;max-width:44rem;padding:var(--s25) var(--s35)}
  .x-call{grid-area:call;align-self:start}
  .x-key{grid-area:key;align-self:start}
  .x-intro{grid-area:intro;align-self:start;max-width:44rem;padding:var(--s2) var(--s25);font-size:var(--fs-lg)}
  .x-road{grid-template-columns:11.5rem minmax(0,1fr) auto minmax(0,1fr) 11.5rem;grid-template-rows:auto;padding:var(--s1) var(--pad) var(--s25)}
  .x-road::before{grid-row:1}
  .x-end--w{grid-row:1;grid-column:1}
  .x-bet--w{grid-row:1;grid-column:2}
  .x-mark{grid-row:1;grid-column:3;min-height:6rem;margin-inline:var(--s3)}
  .x-bet--e{grid-row:1;grid-column:4}
  .x-end--e{grid-row:1;grid-column:5}
  .x-end{min-width:9.5rem}
  .x-nm{font-size:var(--fs-xl)}
  .x-ring{min-width:7rem;padding:var(--s1) var(--s2)}
  .x-ring .n{font-size:2.75rem}
  .x-sh{width:2.25rem;height:2.25rem}
  .x-facts{grid-template-columns:minmax(0,1fr) minmax(17rem,21rem);column-gap:var(--s5)}
}

/* =====================================================================================================
   THE ATLAS ARTICLE (service, cost, roads, stretch, segment, town, towns, county, problem, pair, about):
   a reading column beside a margin legend (the index on an ink spine, the places on the road); the call and
   its key under the title, so the number, the prices and the ask sit in the first phone screen.
   ===================================================================================================== */
.doc{padding-top:var(--s1)}
.doc-main>*+*{margin-top:var(--s25)}
.doc-lead h1{margin-top:var(--s0);max-width:24ch}
.doc-intro{font-size:var(--fs-lg)}
.answer{padding:var(--s2) var(--s25) var(--s25);background:var(--paper);border:var(--line) solid var(--ink);box-shadow:var(--rule-double)}
.answer>.legend-title{margin-bottom:var(--s15)}
.answer>:not(.legend-title){max-width:32em;font-size:var(--fs-lg);line-height:1.5}
.doc-body>.sec:first-child,.doc-body>.inc:first-child{margin-top:var(--s3)}
.doc-margin.has-links{margin-top:var(--s5)}
.doc-margin__in{display:grid;gap:var(--s35)}
.jump .go .arr{transform:rotate(90deg)}
.jump .go:hover .arr{transform:rotate(90deg) translateX(4px)}
/* the section index: a road cased in ink with one square marker per entry */
.idx{padding:var(--s15) var(--s2) var(--s2);background:var(--paper);border:1px solid var(--ink)}
.idx ol{position:relative;list-style:none}
.idx ol::before{content:"";position:absolute;left:7px;top:14px;bottom:14px;width:7.6px;background:var(--paper);border-left:1.5px solid var(--ink);border-right:1.5px solid var(--ink)}
.idx a{position:relative;display:block;min-height:44px;padding:var(--s15) var(--s1) var(--s15) 34px;font-size:var(--fs-sm);line-height:1.3;text-decoration:none;border-radius:var(--radius-sm)}
.idx a::before{content:"";position:absolute;left:3.8px;top:calc(var(--s15) + .65em - 7px);width:14px;height:14px;background:var(--paper);border:1.5px solid var(--ink);border-radius:3px}
.idx a:hover{text-decoration:underline;text-decoration-thickness:2px}
.idx a:hover::before,.idx a:focus-visible::before{background:var(--ink)}
.idx{display:none}
@media (min-width:64rem){
  .doc:not(.doc--solo){display:grid;grid-template-columns:minmax(0,1fr) minmax(17rem,20rem);column-gap:var(--s5);align-items:start}
  .doc--solo .doc-main{max-width:56rem}
  .doc-margin,.doc-margin.has-links{align-self:stretch;margin-top:0}
  .doc-margin__in{position:sticky;top:calc(var(--header-h) + var(--s25));max-height:calc(100vh - var(--header-h) - var(--s45));overflow-y:auto;scrollbar-width:thin;padding:var(--s1) 4px 4px}
  .idx{display:block}
  .jump{display:none}
}
/* a stretch or segment opens on its own run of the route: the land, the red line, its first and last mile on tabs */
.seg{position:relative;height:60px;margin-top:var(--s2);background:var(--land);border:1px solid var(--ink);overflow:hidden}
.seg::before{content:"";position:absolute;left:0;right:0;top:36px;height:9px;background:var(--route);border-block:1.5px solid var(--ink)}
.seg::after{content:"";position:absolute;top:0;bottom:0;left:0;width:10px;background:var(--water);box-shadow:inset -1px 0 0 var(--ink)}
.seg-x{position:absolute;top:8px;min-width:34px;height:22px;padding:0 6px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--ink);border-radius:3px;font:800 .875rem/1 var(--f-body);font-variant-numeric:tabular-nums}
.seg-x::after{content:attr(data-n)}
.seg-x::before{content:"";position:absolute;left:50%;top:100%;width:1.5px;height:20px;margin-left:-.75px;background:var(--ink)}
.seg-x:first-child{left:28px}
.seg-x:last-child{right:22px}
/* a problem page: its title block carries the closure hatch from the map legend */
.m-problem .doc-lead{padding-top:var(--s2);background:repeating-linear-gradient(-45deg,var(--ink) 0 1.5px,transparent 1.5px 7px) 0 0/100% 10px no-repeat}
/* a county page: the county hairline under the title */
.m-county .doc-lead h1{padding-bottom:var(--s15);border-bottom:2px dashed var(--ink-lead)}
/* about: the fact ledger, each entry lettered on a land-tint tab */
.doc--ledger .doc-body{counter-reset:lg}
.doc--ledger .sec{position:relative;counter-increment:lg;padding-left:3.5rem}
.doc--ledger .sec::before{content:counter(lg,upper-alpha);position:absolute;left:0;top:var(--s25);display:grid;place-items:center;width:2.5rem;height:2.5rem;background:var(--tint-lt);border:1px solid var(--ink);font:800 var(--fs-lg)/1 var(--f-head);font-stretch:var(--wdth-tight)}
.doc--ledger .sec.faq,.doc--ledger .sec.formsec{padding-left:0}
.doc--ledger .sec.faq::before,.doc--ledger .sec.formsec::before{display:none}

/* service and pair pages: the name on a dotted leader to its from-price, keyed P */
.ix-sheet{display:grid;gap:var(--s25)}
.hd-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s1) var(--s15);margin-top:var(--s0)}
.hd-line h1{flex:0 1 auto;max-width:100%}
.ldr{flex:1 1 2rem;min-width:2rem;border-bottom:2px dotted var(--ink-lead);transform:translateY(-.35em)}
.from{flex:none;display:inline-flex;align-items:center;gap:var(--s1);font:800 var(--fs-xl)/1.1 var(--f-body);font-variant-numeric:tabular-nums;white-space:nowrap}
.tab-ref{display:grid;place-items:center;min-width:1.8rem;height:1.8rem;border:1px dashed var(--ink);border-radius:3px;font:700 var(--fs-xs)/1 var(--f-body)}
.tab-ref::before{content:"P"}
.ix-lead{font-size:var(--fs-lg)}
.ix-box{padding:var(--s15) var(--s2) var(--s2);background:var(--paper);border:1px solid var(--ink)}
.ix{list-style:none;counter-reset:ix}
.ix>li{counter-increment:ix;border-top:1px solid var(--hair)}
.ix>li:first-child{border-top:0}
.ix a{position:relative;display:block;min-height:44px;padding:var(--s15) 0 var(--s15) 2.75rem;line-height:1.3;text-decoration:none}
.ix a::before{content:counter(ix);position:absolute;left:0;top:var(--s1);display:grid;place-items:center;min-width:2rem;height:1.7rem;border:1px solid var(--ink);border-radius:3px;font:800 var(--fs-sm)/1 var(--f-body);font-variant-numeric:tabular-nums}
.ix a:hover{text-decoration:underline;text-decoration-thickness:2px}
.ix a:hover::before,.ix a:focus-visible::before{background:var(--ink);color:var(--paper)}
.inc{margin-top:var(--s35);padding:var(--s2) var(--s25) var(--s25);background:var(--paper);border:var(--line) solid var(--ink);box-shadow:var(--rule-double)}
.inc p{max-width:var(--measure)}
.ix-sheet--pair{padding:var(--s2);background:var(--tint-lt);border:var(--line) solid var(--ink)}
.ix-sheet--pair .ix-ttl{padding:var(--s15) var(--s2) var(--s2);background:var(--paper);border:1px solid var(--ink)}

/* =====================================================================================================
   CONTACT: two paths. Stopped now (the call, on a land-tint region) and the request (the form, on paper).
   ===================================================================================================== */
.ct{padding-top:var(--s1)}
.ct-head h1{margin-top:var(--s0)}
.ct-head .lead{margin-top:var(--s2)}
.paths{display:grid;gap:var(--s45);margin-top:var(--s35);align-items:start}
.path-k{margin-bottom:var(--s2);padding-bottom:var(--s1);border-bottom:var(--line) solid var(--ink);font:700 var(--fs-lg)/1.2 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.06em}
.path-call{display:grid;gap:var(--s2);padding:var(--s2) var(--s15) var(--s25);background:var(--tint-lt);border:var(--line) solid var(--ink)}
.path-call>.path-k{margin-bottom:0}
.path-call .plate{margin-top:var(--s2)}
.path-form>h2{font-size:var(--fs-3xl)}
.path-form .lead-form{max-width:none}
@media (min-width:60rem){
  .paths{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .path-call{padding:var(--s3) var(--s3) var(--s35)}
  .path-call .btn-call--lg{--ic:min(4rem,20cqi);--t-max:var(--fs-4xl);--n-max:var(--fs-h1)}
}

/* =====================================================================================================
   PRIVACY AND TERMS: one ruled sheet, its sections on index tabs standing off the left edge.
   ===================================================================================================== */
.desk{max-width:calc(13rem + 56rem + 2 * var(--gut));margin:0 auto;padding:var(--s2) var(--gut) 0}
.lg-sheet{background:var(--paper);border:var(--line) solid var(--ink);box-shadow:var(--rule-double)}
.lg-head{padding:var(--s15) var(--s2) var(--s3);border-bottom:1px solid var(--ink)}
.lg-head h1{margin-top:var(--s0)}
.lg-head .lead{margin-top:var(--s2)}
.lg-body{padding:var(--s1) var(--s2) var(--s35)}
.lg-body .sec{border-top-color:var(--hair)}
.lg-body .sec>h2{font-size:var(--fs-3xl)}
.lg-body .sec p,.lg-body .sec li{line-height:1.6}
.edge-tabs{margin-bottom:var(--s2);padding:var(--s15) var(--s2);border:1px solid var(--ink)}
.edge-tabs ul{list-style:none;display:grid;gap:3px}
.edge-tabs a{display:flex;align-items:center;min-height:44px;padding:var(--s1) var(--s15);text-decoration:none;font:700 var(--fs-2xs)/1.25 var(--f-head);font-stretch:var(--wdth-tight);text-transform:uppercase;letter-spacing:.12em;background:var(--tint);border:1px solid var(--ink);border-radius:var(--radius-sm)}
.edge-tabs li:nth-child(2n) a{background:var(--tint-lt)}
.edge-tabs a:hover{background:var(--tint-hot);text-decoration:underline;text-decoration-thickness:2px}
.edge-tabs a:focus-visible{background:var(--ink);color:var(--paper);outline-color:var(--ink)}
@media (min-width:64rem){
  .desk{display:grid;grid-template-columns:13rem minmax(0,1fr);align-items:start;padding-top:var(--s45)}
  .edge-tabs{position:sticky;top:calc(var(--header-h) + var(--s2));grid-column:1;margin:var(--s5) 0 0;padding:0;border:0;max-height:calc(100vh - var(--header-h) - var(--s45));overflow-y:auto;scrollbar-width:none}
  .edge-tabs a{border-right:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}
  .lg-sheet{grid-column:2}
  .lg-head{padding:var(--s4) var(--s5) var(--s35);margin:0 5px}
  .lg-body{padding:var(--s2) var(--s5) var(--s5)}
}

/* =====================================================================================================
   THANK-YOU AND 404: the route travelled (home), the point reached (this page), the call ahead at the arrowhead.
   ===================================================================================================== */
.rp{container:rp/inline-size}
.rp-grid{margin-top:var(--s35)}
.rp-route{list-style:none}
.rp-pt{position:relative;min-width:0;padding:0 0 var(--s4) 64px}
.rp-pt:last-child{padding-bottom:0}
.rp-pt::after{content:"";position:absolute;left:20px;top:21.25px;width:44px;height:1.5px;background:var(--ink)}
.rp-pt:not(:last-child)::before{content:"";position:absolute;left:16.2px;top:22px;bottom:-22px;width:7.6px;background:var(--route);border-left:1.5px solid var(--ink);border-right:1.5px solid var(--ink)}
/* the stretch still ahead is an open band with dashed casing */
.rp-here:not(:last-child)::before{bottom:-8px;background:var(--paper);border-left-style:dashed;border-right-style:dashed}
.rp-pt:last-child::before{content:"";position:absolute;left:12px;top:8px;border:8px solid transparent;border-top:14px solid var(--ink);border-bottom:0}
.rp-pt:last-child::after{left:28px;width:36px}
.rp-tab{position:relative;z-index:1;display:inline-flex;align-items:center;gap:var(--s1);min-height:44px;padding:0 var(--s15);background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius-sm);font:700 var(--fs-sm)/1.2 var(--f-head);font-stretch:var(--wdth-label);text-transform:uppercase;letter-spacing:.06em;text-decoration:none}
a.rp-tab:hover{background:var(--tint-lt)}
.rp-here .rp-tab{background:var(--ink);color:var(--paper)}
.rp-sym{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:40px;min-height:44px;color:var(--ink)}
.rp-sym svg{width:22px;height:22px;fill:currentColor}
.rp-tab+*,.rp-sym+*{margin-top:var(--s25)}
.rp-txt h1{font-size:var(--fs-h2);letter-spacing:-.005em}
.rp-intro,.rp-body{margin-top:var(--s2);max-width:30em;font-size:var(--fs-lg)}
.rp-call{display:grid;gap:var(--s2);margin-left:-64px}
.rp-more{display:grid;gap:var(--s3);margin-top:var(--s45)}
.rp-more .plate{margin-top:0}
.rp-links{list-style:none;display:flex;flex-wrap:wrap;gap:0 var(--s3)}
@container rp (min-width:55rem){
  .rp-grid{--cg:var(--s4);display:grid;grid-template-columns:9rem minmax(0,1.5fr) minmax(18rem,1fr);column-gap:var(--cg);padding:var(--s45) var(--s45) var(--s5);border:var(--line) solid var(--ink)}
  .rp-route,.rp-more{grid-column:1/-1;display:grid;grid-template-columns:subgrid}
  .rp-pt{padding:0}
  .rp-pt::after{left:20px;top:44px;width:1.5px;height:36px}
  .rp-pt:not(:last-child)::before{left:20px;right:calc(-1 * var(--cg) - 20px);top:56px;bottom:auto;width:auto;height:7.6px;border:0;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
  .rp-here:not(:last-child)::before{right:calc(-1 * var(--cg) - 6px);bottom:auto;border-top-style:dashed;border-bottom-style:dashed}
  .rp-pt:last-child::before{left:6px;top:51.8px;border:8px solid transparent;border-left:14px solid var(--ink);border-right:0}
  .rp-pt:last-child::after{left:20px;width:1.5px}
  .rp-tab+*,.rp-sym+*{margin-top:var(--s45)}
  .rp-call{margin-left:0}
  .rp-more>.plate{grid-column:2}
  .rp-more>.rp-links{grid-column:3;flex-direction:column}
  .rp-more>.rp-links:only-child{grid-column:2/4;flex-direction:row}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* Sources fold (2026-11-08): closed by default, opens on tap */
.src-fold>summary{display:list-item;list-style:disclosure-closed inside;cursor:pointer;font-weight:700}
.src-fold[open]>summary{list-style-type:disclosure-open;margin-bottom:.5em}
.src-fold>summary::-webkit-details-marker{display:revert}
