/* The site's one stylesheet. The tokens, the type and the components
   are design/ui/platform.html's, with the mockup's own chrome, its
   view switcher, its theme select and its phone frame, left out. The
   light palette sits on bare :root and the dark palette twice, so a
   reader who has chosen a theme and a reader who has not both resolve
   every token. No third-party origin loads: the four faces are served
   from /fonts. */

/* ---- the faces, served from this origin -------------------------- */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(/fonts/Fraunces-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(/fonts/Fraunces-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(/fonts/PublicSans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(/fonts/PublicSans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---- tokens: light on bare :root, dark twice ---------------------- */
:root{
  --band:#0B4F4A; --band-ink:#FFFFFF; --band-rule:rgba(255,255,255,.3); --band-soft:rgba(255,255,255,.12); --band-accent:#7FD1C5;
  --primary:#0B4F4A; --primary-ink:#FFFFFF; --primary-hover:#093F3B; --primary-soft:#E2EEEB;
  --link:#0B4F4A; --focus:#0B4F4A;
  --paper:#FAF9F6; --surface:#F3F1EC; --sunk:#EAE7E0; --field:#FFFFFF;
  --rule:#E2DED5; --rule-2:#C5BFB2;
  --ink:#1B1B18; --ink-2:#5B584F; --ink-3:#88847A;
  --shadow:0 1px 2px rgba(27,27,24,.08);
  --pop:0 8px 24px rgba(27,27,24,.14);
  --display:"Fraunces","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --body:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --r:8px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --band:#0C3B38; --band-ink:#F2F4F2; --band-rule:rgba(255,255,255,.22); --band-soft:rgba(255,255,255,.1); --band-accent:#7FD1C5;
    --primary:#1C7F76; --primary-ink:#FFFFFF; --primary-hover:#22948A; --primary-soft:#173B37;
    --link:#7FD1C5; --focus:#7FD1C5;
    --paper:#121413; --surface:#1A1D1B; --sunk:#222624; --field:#1E2220;
    --rule:#2B302D; --rule-2:#454B47;
    --ink:#ECEAE3; --ink-2:#ACA89E; --ink-3:#7E7A71;
    --shadow:none; --pop:0 8px 24px rgba(0,0,0,.5);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --band:#0C3B38; --band-ink:#F2F4F2; --band-rule:rgba(255,255,255,.22); --band-soft:rgba(255,255,255,.1); --band-accent:#7FD1C5;
  --primary:#1C7F76; --primary-ink:#FFFFFF; --primary-hover:#22948A; --primary-soft:#173B37;
  --link:#7FD1C5; --focus:#7FD1C5;
  --paper:#121413; --surface:#1A1D1B; --sunk:#222624; --field:#1E2220;
  --rule:#2B302D; --rule-2:#454B47;
  --ink:#ECEAE3; --ink-2:#ACA89E; --ink-3:#7E7A71;
  --shadow:none; --pop:0 8px 24px rgba(0,0,0,.5);
  color-scheme:dark;
}

/* ---- base ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font:400 16px/1.5 var(--body); -webkit-text-size-adjust:100%;
  font-variant-numeric:tabular-nums; overflow-x:hidden;
}
a{color:var(--link); text-underline-offset:.15em}
:focus-visible{outline:2px solid var(--focus); outline-offset:2px}
.band :focus-visible{outline-color:var(--band-ink)}
h1,h2,h3,p,ul,ol,dl,dd,pre,figure{margin:0}
ul,ol{padding:0; list-style:none}
h1{font:600 1.75rem/1.15 var(--display); letter-spacing:-.012em; overflow-wrap:anywhere}
h2{font:600 .8125rem/1.3 var(--body); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-2)}
h3{font:600 .75rem/1.3 var(--body); text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); margin-top:1rem}
h3:first-of-type{margin-top:.75rem}
.mono,code{font-family:var(--mono); font-size:.875em}
.m{font-size:.8125rem; color:var(--ink-2)}
.q{color:var(--ink-3)}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.wrap{max-width:64rem; margin:0 auto; padding:0 1rem}
.col{max-width:44rem}
.prose{max-width:40rem}
main{padding-bottom:2rem}
section{padding-top:1.75rem}
section>h2{margin-bottom:.625rem}
.i{width:1.25rem; height:1.25rem; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.i.x{width:.75rem; height:.75rem; vertical-align:-.05em}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important}}

/* ---- the band --------------------------------------------------------- */
.band{background:var(--band); color:var(--band-ink)}
.band-in{display:grid; grid-template-columns:1fr auto; grid-template-areas:"w c" "s s"; gap:.75rem 1rem; align-items:center; padding-top:.75rem; padding-bottom:.75rem}
.band .wordmark{grid-area:w} .band .country{grid-area:c; justify-self:end}
.band .search{grid-area:s; position:relative; min-width:0; width:100%}
.band .tagline{grid-area:t; font:500 2rem/1.1 var(--display); letter-spacing:-.015em; padding:1.5rem 0 .25rem}
.band.hero .band-in{grid-template-areas:"w c" "t t" "s s"; padding-bottom:2rem}
@media (min-width:48rem){
  .band-in{grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"w s c"; gap:1rem 1.5rem}
  .band .search{max-width:32rem; justify-self:center}
  .band.hero .band-in{grid-template-columns:auto 1fr auto; grid-template-areas:"w . c" "t t t" "s s s"; padding-bottom:2.75rem}
  .band.hero .tagline{font-size:2.75rem; padding-top:2.5rem}
  .band.hero .search{max-width:40rem; justify-self:start}
}
.wordmark{display:inline-flex; align-items:center; color:inherit; text-decoration:none; font:600 1.25rem/1 var(--display); letter-spacing:-.01em; white-space:nowrap; min-height:2.75rem}
.wordmark.ink{color:var(--ink); font-size:1rem; min-height:0}
.wordmark .wm2{color:var(--band-accent)} .wordmark.ink .wm2{color:var(--link)}
.country select{
  font:500 .875rem/1 var(--body); color:var(--band-ink); background:transparent; min-height:2.75rem; width:8.5rem; text-overflow:ellipsis;
  border:1px solid var(--band-rule); border-radius:var(--r); padding:0 2rem 0 .75rem; appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.5l4.5 4.5 4.5-4.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .75rem center;
}
.country select:hover{background-color:var(--band-soft)}
.country option{color:#1B1B18; background:#fff}
@media (max-width:22.5rem){.country select{padding:0 1.75rem 0 .5rem; font-size:.8125rem; width:7.5rem} .wordmark{font-size:1.125rem} .tiles:not(.two){grid-template-columns:1fr 1fr} .tiles:not(.two) .tile:first-child{grid-column:1/-1}}

/* ---- the field -------------------------------------------------------- */
.field{display:flex; align-items:stretch; background:var(--field); color:var(--ink); border-radius:var(--r); min-height:3rem; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--rule-2)}
.band .field{border-color:transparent}
.field .go{flex:none; width:2.75rem; display:grid; place-items:center; background:none; border:0; color:var(--ink-2); cursor:pointer; padding:0}
.field span.go{cursor:default}
.field input{flex:1; min-width:0; border:0; background:none; font:inherit; font-size:1rem; color:var(--ink); padding:0 .25rem 0 0}
.field input::placeholder{color:var(--ink-3)}
.field input:focus{outline:none}
.field:focus-within{box-shadow:0 0 0 2px var(--band-ink)}
main .field:focus-within{box-shadow:0 0 0 2px var(--focus)}
.field .near{flex:none; display:inline-flex; align-items:center; gap:.375rem; padding:0 .75rem; border-left:1px solid var(--rule); color:var(--link); text-decoration:none; font:500 .875rem/1 var(--body); min-width:2.75rem; justify-content:center}
.field .near span{display:none}
@media (min-width:40rem){.field .near span{display:inline}}
.field .near:hover{background:var(--sunk)}
.field .submit{flex:none; background:var(--primary); color:var(--primary-ink); border:0; font:600 1rem/1 var(--body); padding:0 1.125rem; cursor:pointer}
.field .submit:hover{background:var(--primary-hover)}
.band.hero .field{min-height:3.5rem}
.band.hero .field .go{width:2.5rem}
.band.hero .field .submit{padding:0 .875rem}
@media (min-width:40rem){.band.hero .field input{font-size:1.0625rem} .band.hero .field .go{width:3rem} .band.hero .field .submit{padding:0 1.25rem}}
.sug{position:absolute; z-index:30; left:0; right:0; top:calc(100% + .25rem); background:var(--field); color:var(--ink); border:1px solid var(--rule-2); border-radius:var(--r); box-shadow:var(--pop); overflow:hidden; display:none}
.sug[data-open="1"]{display:block; animation:rise .12s ease-out}
.sug li{display:flex; gap:.75rem; align-items:center; min-height:2.75rem; padding:.375rem .875rem; cursor:pointer}
.sug li:hover,.sug li[aria-selected="true"]{background:var(--sunk)}
.sug .kind{margin-left:auto; font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-2); white-space:nowrap}
@keyframes rise{from{opacity:0; transform:translateY(-3px)} to{opacity:1; transform:none}}

/* ---- controls --------------------------------------------------------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:2.75rem; padding:0 1rem; border-radius:var(--r); border:1px solid var(--rule-2); background:var(--field); color:var(--ink); font:500 .9375rem/1 var(--body); text-decoration:none; cursor:pointer; white-space:nowrap}
.btn:hover{border-color:var(--ink-3); background:var(--sunk)}
.btn:active{transform:translateY(1px)}
.btn .i{width:1.125rem; height:1.125rem; color:var(--link)}
.btn.primary{background:var(--primary); border-color:var(--primary); color:var(--primary-ink)}
.btn.primary:hover{background:var(--primary-hover); border-color:var(--primary-hover)}
.btn.primary .i{color:inherit}
.btn[aria-busy="true"]{opacity:.6}
.input{width:100%; min-height:2.75rem; padding:0 .75rem; border:1px solid var(--rule-2); border-radius:var(--r); background:var(--field); color:var(--ink); font:inherit}
.input::placeholder{color:var(--ink-3)}
.sub-wrap{flex:1; min-width:0; position:relative}
.locbar.wrap-row .sub-wrap{flex:1 1 11rem; min-width:11rem}
.locbar{display:flex; gap:.5rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--rule)}
.locbar .btn{flex:none}
.locbar.located{flex-wrap:wrap}
.locbar.located .chip{margin-left:auto}
.locbar.wrap-row{flex-wrap:wrap; justify-content:flex-start}
.locbar .chip{min-height:2.75rem}
.locbar.bare{border-bottom:0; padding-bottom:0}
.seg{display:inline-flex; border:1px solid var(--rule-2); border-radius:var(--r); overflow:hidden; background:var(--field)}
.seg a{min-height:2.625rem; min-width:3.25rem; padding:0 .75rem; display:inline-flex; align-items:center; justify-content:center; font:500 .875rem/1 var(--body); color:var(--ink); text-decoration:none; border-left:1px solid var(--rule-2)}
.seg a:first-child{border-left:0}
.seg a:hover{background:var(--sunk)}
.seg a[aria-current]{background:var(--primary); color:var(--primary-ink); border-color:var(--primary)}
.chips{display:flex; flex-wrap:wrap; gap:.5rem}
.chip{display:inline-flex; align-items:center; gap:.375rem; min-height:2.625rem; padding:0 .875rem; border:1px solid var(--rule-2); border-radius:var(--r); background:var(--field); color:var(--ink); text-decoration:none; font:500 .875rem/1 var(--body)}
.chip:hover{background:var(--sunk)}
.chip[aria-current]{background:var(--primary); border-color:var(--primary); color:var(--primary-ink)}
.locbar .btn[aria-current]{background:var(--primary); border-color:var(--primary); color:var(--primary-ink)}
.locbar .btn[aria-current] .i{color:inherit}
.chip .c{color:var(--ink-3); font-weight:400}
.chip[aria-current] .c{color:inherit; opacity:.8}
.hint{font-size:.875rem; color:var(--ink-2); padding:.75rem 0 0}

/* ---- home ------------------------------------------------------------ */
.tiles{display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; padding-top:1rem; max-width:44rem}
.tiles.two{grid-template-columns:1fr 1fr; padding-top:0}
@media (min-width:40rem){.tiles{grid-template-columns:repeat(4,1fr)} .tiles.two{grid-template-columns:repeat(4,1fr)}}
.tile{display:flex; align-items:center; justify-content:center; gap:.5rem; min-height:3.5rem; padding:.5rem .75rem; border:1px solid transparent; border-radius:var(--r); background:var(--surface); color:var(--ink); text-decoration:none; font:600 .9375rem/1.2 var(--body); text-align:center}
.tile:hover{background:var(--sunk)}
.tile .c{font-weight:400; color:var(--ink-2)}
.tile .i{color:var(--link); width:1.125rem; height:1.125rem}
.figs{display:flex; flex-wrap:wrap; gap:1rem 2.5rem; padding:1.75rem 0 1.5rem; border-bottom:1px solid var(--rule); margin-top:1.5rem}
.fig b{display:block; font:500 1.75rem/1.1 var(--display); letter-spacing:-.01em}
.fig span{font-size:.8125rem; color:var(--ink-2)}
.figs .when{margin-left:auto; align-self:flex-end; font-size:.8125rem; color:var(--ink-3)}
.figs.four{display:grid; grid-template-columns:1fr 1fr; gap:1.25rem 1.5rem} @media (min-width:40rem){.figs.four{grid-template-columns:repeat(4,1fr)}}
.lanes{display:grid; gap:0}
.lane{padding:1.5rem 0; border-bottom:1px solid var(--rule)}
.lane:last-child{border-bottom:0}
.lane h2{margin-bottom:.5rem}
.links li{padding:.25rem 0}
.links .c{color:var(--ink-2); font-size:.875rem}
.lane .m{margin-top:.5rem}
@media (min-width:48rem){
  .lanes{grid-template-columns:repeat(3,1fr)}
  .lane{border-bottom:0; border-right:1px solid var(--rule); padding:1.75rem 1.5rem}
  .lane:first-child{padding-left:0} .lane:last-child{border-right:0; padding-right:0}
  .col.home{max-width:64rem}
  .figs{gap:1rem 3rem}
}

/* ---- page furniture --------------------------------------------------- */
.crumb{font-size:.8125rem; color:var(--ink-2); padding:1rem 0 0}
.crumb a{color:var(--ink-2)}
.sep{color:var(--ink-3); padding:0 .25rem}
.titlebar{display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 0 .5rem}
.titlebar .sub{font-size:.9375rem; color:var(--ink-2); margin-top:.25rem}
.jsonlink{font-family:var(--mono); font-size:.8125rem; color:var(--ink-2); text-decoration:none}
.jsonlink:hover{color:var(--ink); text-decoration:underline}
.nearby{font-size:.9375rem; color:var(--ink-2); padding:0 0 .25rem; max-width:44rem}
.nearby .lbl{font-weight:500; color:var(--ink); margin-right:.25rem}
.tag{display:inline-block; vertical-align:middle; font:500 .75rem/1 var(--body); letter-spacing:.06em; text-transform:uppercase; background:var(--primary-soft); border-radius:var(--r); padding:.3125rem .5rem; color:var(--ink-2)}
h1 .tag{vertical-align:.35em; margin-left:.25rem}
.group{font-size:.75rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); padding:1.25rem 0 .375rem}
.pager{display:flex; align-items:center; gap:1rem; padding:1rem 0; font-size:.8125rem; color:var(--ink-2)}
.more{padding-top:.75rem; font-size:.875rem}
.owner{padding-top:2rem; font-size:.875rem; color:var(--ink-2)}
@media (min-width:40rem){h1{font-size:2.25rem} .titlebar{padding-top:1.25rem}}

/* ---- rows ------------------------------------------------------------- */
.list{border-top:1px solid var(--rule)}
.locbar+.list{border-top:0}
.about p+p{margin-top:.5rem}
.list li{border-bottom:1px solid var(--rule)}
.row{display:grid; grid-template-columns:1fr auto; column-gap:1rem; align-items:center; min-height:3.25rem; padding:.5rem 0; color:var(--ink); text-decoration:none; margin:0 -.25rem; padding-left:.25rem; padding-right:.25rem; border-radius:var(--r)}
.row:hover{background:var(--sunk)}
.row:hover .n{text-decoration:underline}
.row .n{font-weight:500; display:block; overflow-wrap:anywhere}
.row .n,.row .w{grid-column:1}
.row .w{display:block; font-size:.8125rem; color:var(--ink-2)}
.row .r{grid-column:2; grid-row:1/3; text-align:right; white-space:nowrap}
.row .r.q{font-size:.75rem}
.row .r.d{font-size:.9375rem; font-weight:500}

/* ---- listing ---------------------------------------------------------- */
.cols{display:grid; gap:0; grid-template-columns:minmax(0,1fr)}
.cols>*{min-width:0}
.side{padding-top:.5rem}
@media (min-width:56rem){
  .cols{grid-template-columns:minmax(0,1fr) 19rem; gap:3rem; align-items:start}
  .side{padding-top:1rem; position:sticky; top:3rem}
  .side section:first-child{padding-top:1.75rem}
}
/* Hours beside Details on a wide screen, the week open there, app.js */
@media (min-width:56rem){
  .pair{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 2.5rem; align-items:start}
  .pair>section{min-width:0}
}
.acts{display:grid; grid-template-columns:1fr; gap:.5rem; padding:.75rem 0 .25rem}
.act{display:flex; align-items:center; gap:.625rem; min-height:3.5rem; padding:.5rem .75rem; border:1px solid var(--rule); border-radius:var(--r); background:var(--field); color:var(--ink); text-decoration:none; min-width:0; box-shadow:var(--shadow)}
.act:hover{border-color:var(--ink-3)}
.act:active{transform:translateY(1px)}
.act .i{width:1.25rem; height:1.25rem; color:var(--link)}
.act>span{min-width:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .625rem}
.act b{display:block; font-weight:600; font-size:.9375rem; line-height:1.2}
.act small{display:block; font-size:.8125rem; color:var(--ink-2); overflow-wrap:anywhere; margin-top:0}
.act.primary{background:var(--primary); border-color:var(--primary); color:var(--primary-ink)}
.act.primary:hover{background:var(--primary-hover)}
.act.primary .i{color:inherit}
.act.primary small{color:inherit; opacity:.85}
.acts.three .act:first-child{grid-column:auto}
@media (min-width:40rem){.acts{grid-template-columns:repeat(4,1fr)} .acts.two{grid-template-columns:repeat(2,minmax(0,14rem))} .acts.three{grid-template-columns:repeat(3,1fr)} .acts.three .act:first-child{grid-column:auto} .act>span{display:block} .act small{margin-top:.125rem; font-size:.75rem}}

.vals>div{padding:.625rem 0; border-top:1px solid var(--rule)}
.vals>div:first-child{border-top:0; padding-top:0}
.vals dt{font:500 .75rem/1.4 var(--body); text-transform:uppercase; letter-spacing:.06em; color:var(--ink-2); padding-bottom:.125rem}
.vals dd{min-width:0}
.vals .v{overflow-wrap:anywhere}
.vals .v a{text-decoration:none}
.vals .v a:hover{text-decoration:underline}
.vals .m{margin-top:.125rem}
@media (min-width:40rem){.vals>div{display:grid; grid-template-columns:7.5rem minmax(0,1fr); column-gap:1rem} .vals dt{padding-top:.2rem}}

/* ---- r13: groups without labels ------------------------------------ */
.vals.ico+.vals.ico{margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--rule)}

/* ---- r10: icon-led value rows ----------------------------------------- */
.vals.ico>div{display:grid; grid-template-columns:1.25rem minmax(0,1fr); column-gap:.75rem}
.vals.ico dt{display:flex; justify-content:center; padding:.1875rem 0 0; color:var(--ink-2)}
.i.f{fill:currentColor; stroke:none}
.vals.ico .i.f{width:1.125rem; height:1.125rem; margin-top:.0625rem}
@media (min-width:40rem){.vals.ico>div{grid-template-columns:1.25rem minmax(0,1fr); column-gap:.75rem} .vals.ico dt{padding-top:.1875rem}}

/* A stamp names the page a value was read on, so its words are an
   address and break at any point. Without that the flex row holds the
   address at its full width and the page widens under it. */
.src{display:inline-flex; align-items:flex-start; gap:.375rem; margin-top:.25rem; font-size:.75rem; color:var(--ink-2); text-decoration:none; max-width:100%; min-width:0; overflow-wrap:anywhere}
.src::before{content:""; width:.75rem; height:.75rem; flex:none; margin-top:.1em; background:currentColor; -webkit-mask:var(--g) no-repeat center/contain; mask:var(--g) no-repeat center/contain}
.src.bare{color:var(--ink-3)}
.src.bare::before{display:none}
a.src:hover{text-decoration:underline; color:var(--ink)}
.src .t{color:var(--ink-3)}
.legend{display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; margin-top:.875rem; padding-top:.75rem; border-top:1px solid var(--rule)}
.legend .src{margin-top:0}

.hrs{max-width:26rem}
.hrs li{display:grid; grid-template-columns:1fr auto; column-gap:1rem; align-items:baseline; padding:.5rem 0; border-top:1px solid var(--rule)}
.hrs li:first-child{border-top:0}
.hrs .d{font-weight:500}
.hrs .now{background:var(--primary-soft); border-radius:var(--r); margin:0 -.625rem; padding:.5rem .625rem}
.acts details{grid-column:1/-1; min-width:0}
.pin{color:inherit; text-decoration:none; border-bottom:1px dotted var(--rule-2)}
.acts summary.act{list-style:none; width:100%}
.acts summary.act::-webkit-details-marker{display:none}
.acts summary.act .i{transform:none}
.acts .chev{margin-left:auto}
.acts details[open]>summary.act{border-bottom-left-radius:0; border-bottom-right-radius:0}
.acts details[open]>summary.act .chev{transform:rotate(90deg)}
.picker{border:1px solid var(--rule); border-top:0; border-radius:0 0 var(--r) var(--r); background:var(--surface); padding:0 .875rem .75rem}
.picker .group:first-child{padding-top:.625rem}
.picker .m{padding-bottom:.375rem}
.absent{border:1px dashed var(--rule-2); border-radius:var(--r); background:var(--surface); padding:.875rem 1rem}
.absent .h{font-weight:600}
.absent .w{font-size:.875rem; color:var(--ink-2); margin-top:.125rem; max-width:40rem}
.absent .a{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.875rem}
.absent details{margin-top:.5rem}
.looked{margin-top:.25rem; max-width:40rem}
.looked li{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.25rem 1rem; padding:.375rem 0; border-top:1px solid var(--rule); font-size:.8125rem}
/* the first cell prints a page's path, so it breaks at any point */
.looked li>span:first-child{min-width:0; overflow-wrap:anywhere}
.looked li>span:last-child{color:var(--ink-2); white-space:nowrap}
/* a count holds one line, an outcome is a sentence and wraps */
.looked li>span.no{white-space:normal; min-width:0; overflow-wrap:anywhere}
.looked li.g{display:block; border-top:0; padding:.75rem 0 .25rem; font-size:.75rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3)}
.looked li.g:first-child{padding-top:.25rem}
.looked .no::before{content:"\2014\00a0"; color:var(--ink-3)}

details>summary{cursor:pointer; list-style:none; display:inline-flex; align-items:center; gap:.375rem; font:500 .875rem/1 var(--body); color:var(--link); min-height:2.75rem}
details>summary::-webkit-details-marker{display:none}
summary .i{width:1rem; height:1rem; transition:transform .16s ease}
details[open]>summary .i{transform:rotate(90deg)}
details>:not(summary){animation:rise .16s ease-out}
.prov{border:1px solid var(--rule); border-radius:var(--r); background:var(--surface); padding:0 1rem .875rem}
.prov>summary{width:100%}
/* The sources block scrolls inside itself and never the page: every
   address it prints breaks at any point, and anything still wider than
   the column scrolls in this list. */
.reads{overflow-x:auto}
.reads li{padding:.5rem 0; border-top:1px solid var(--rule); font-size:.8125rem; overflow-wrap:anywhere}
.reads li:first-child{border-top:0}
.reads .m{display:block}
.reads b{font-weight:500}
.kv{display:grid; grid-template-columns:auto minmax(0,1fr); gap:.25rem .75rem; font-size:.8125rem; padding-top:.25rem}
.kv dt{color:var(--ink-2)}
.kv dd{overflow-wrap:anywhere}
.prov+.prov{margin-top:.5rem}
.chg{margin-top:.25rem}
.chg li{display:grid; grid-template-columns:auto minmax(0,1fr); gap:.25rem .75rem; padding:.375rem 0; border-top:1px solid var(--rule); font-size:.8125rem; overflow-wrap:anywhere}
.chg li>.t{color:var(--ink-3); white-space:nowrap}
.chg li.g{display:block; border-top:0; padding:.75rem 0 .25rem; font-size:.75rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3)}
.chg li.g:first-child{padding-top:.25rem}
.sub b{color:var(--ink); font-weight:600}
.sub .src{margin-top:0}
.vals .also{margin-top:.5rem; font-size:.9375rem}
.vals .also .k{color:var(--ink-3)}

/* ---- developer -------------------------------------------------------- */
pre{padding:.75rem .875rem; overflow-x:auto; background:var(--surface); border:1px solid var(--rule); border-radius:var(--r); font:.8125rem/1.55 var(--mono); color:var(--ink); margin-top:.5rem}
pre:first-of-type{margin-top:0}
pre .c{color:var(--ink-3)}
section .m.prose{margin-top:.625rem; font-size:.875rem}
.scroller{overflow-x:auto}
.tbl{width:100%; border-collapse:collapse; font-size:.875rem; min-width:34rem}
.tbl th{text-align:left; font:500 .75rem/1.3 var(--body); text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); padding:.375rem .75rem .375rem 0; border-bottom:1px solid var(--rule-2)}
.tbl td{padding:.5rem .75rem .5rem 0; border-bottom:1px solid var(--rule); vertical-align:top}
.tbl td:first-child{white-space:nowrap}
.tools{display:grid; grid-template-columns:repeat(auto-fill,minmax(10rem,1fr)); gap:.125rem 1rem; margin:.75rem 0 .5rem}
.tools li{font-family:var(--mono); font-size:.8125rem; padding:.125rem 0}
.twolinks li{padding:.5rem 0; border-top:1px solid var(--rule); max-width:40rem}
.twolinks li:first-child{border-top:0; padding-top:0}
.twolinks a{font-weight:500; text-decoration:none}
.twolinks a:hover{text-decoration:underline}
.twolinks span{display:block; font-size:.875rem; color:var(--ink-2)}
.steps{counter-reset:s; max-width:40rem}
.steps li{counter-increment:s; position:relative; padding:.75rem 0 .75rem 2.5rem; border-bottom:1px solid var(--rule)}
.steps li::before{content:counter(s); position:absolute; left:0; top:.75rem; width:1.75rem; height:1.75rem; border-radius:var(--r); background:var(--primary); color:var(--primary-ink); display:grid; place-items:center; font:600 .8125rem/1 var(--body)}
.steps b{display:block; font-weight:600}
.steps span{display:block; font-size:.875rem; color:var(--ink-2)}

/* ---- footer ----------------------------------------------------------- */
.foot{margin-top:2rem; border-top:1px solid var(--rule); padding:2rem 0 3rem; font-size:.875rem}
.foot-in{display:grid; gap:1.5rem}
@media (min-width:40rem){.foot-in{grid-template-columns:repeat(3,1fr)}}
.foot h2{margin-bottom:.375rem}
.foot li{padding:.25rem 0}
.foot a{color:var(--ink-2); text-decoration:none}
.foot a:hover{color:var(--ink); text-decoration:underline}
.close{margin-top:2rem; padding-top:1.25rem; border-top:1px solid var(--rule); display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; color:var(--ink-2); font-size:.8125rem}

/* ---- r3: the filter, the hours disclosure, service tags, a quote ------- */
.filter{position:relative; flex:none}
.filter>summary{list-style:none; display:inline-flex; align-items:center; gap:.5rem; min-height:2.75rem; padding:0 1rem; border-radius:var(--r); border:1px solid var(--rule-2); background:var(--field); color:var(--ink); font:500 .9375rem/1 var(--body); cursor:pointer; white-space:nowrap}
.filter>summary::-webkit-details-marker{display:none}
.filter>summary:hover{border-color:var(--ink-3); background:var(--sunk)}
.filter>summary .i{width:1.125rem; height:1.125rem; color:var(--link)}
.filter>summary .c{color:var(--ink-2); font-weight:400}
.filter[open]>summary{border-color:var(--ink-3)}
.filter[open]>summary .i{transform:none}
.filter[open]>summary .chev{transform:rotate(90deg)}
.panel{position:absolute; z-index:30; top:calc(100% + .375rem); left:0; width:20rem; max-width:calc(100vw - 2rem); background:var(--field); border:1px solid var(--rule-2); border-radius:var(--r); box-shadow:var(--pop); padding:.125rem .875rem .875rem}
.opts li{border-top:1px solid var(--rule)}
.opts li:first-child{border-top:0}
.opt{display:flex; align-items:center; gap:.625rem; min-height:2.75rem; cursor:pointer; font:500 .9375rem/1.2 var(--body)}
.opt input{width:1.125rem; height:1.125rem; margin:0; flex:none; accent-color:var(--primary)}
.opt .c{margin-left:auto; color:var(--ink-3); font-weight:400; font-size:.875rem}
a.opt{color:inherit; text-decoration:none}
a.opt:hover{color:var(--link)}
a.opt[aria-current]{color:var(--link)}
.panel .apply{display:flex; gap:.5rem; padding-top:.75rem; margin-top:.25rem; border-top:1px solid var(--rule)}
.panel .apply .btn{flex:1}
.now-line{font-weight:600; padding-bottom:.5rem}
.now-line+.src{margin-top:0; margin-bottom:.625rem}
.hrs li.alt{border-top:0; padding-top:0}
.hrs li.alt .d{font-weight:400; color:var(--ink-3)}
.hrs li.alt>span:last-child{display:flex; flex-direction:column; align-items:flex-end; color:var(--ink-2)}
.hrs .nowtop{border-radius:var(--r) var(--r) 0 0; padding-bottom:.25rem}
.hrs .nowalt{background:var(--primary-soft); margin:0 -.625rem; padding:0 .625rem .5rem; border-radius:0 0 var(--r) var(--r)}
.hrs .na{color:var(--ink-3); font-size:.9375rem}
.picker .row .w{overflow-wrap:anywhere}
.tags{display:flex; flex-wrap:wrap; gap:.375rem}
.tags li{padding:.3125rem .625rem; border-radius:var(--r); background:var(--surface); font-size:.875rem; line-height:1.3; min-width:0; overflow-wrap:anywhere}
.tags+.src{margin-top:.75rem}
details.rest{margin-top:.5rem} details.rest>.tags{padding-top:.25rem}
.tags .c{color:var(--ink-3); font-size:.8125rem; margin-left:.25rem}
details.region>summary{min-height:2.5rem} details.region>.tags,details.region>.m{margin-left:1.375rem} details.region>.tags{padding:.25rem 0 .75rem} details.region>.m{padding-top:.5rem}
.tags li a{color:inherit; text-decoration:none}
.tags li a:hover{text-decoration:underline}
.vals.gap{margin-top:1.25rem; border-top:1px solid var(--rule); padding-top:.625rem}
.quote{margin:0; max-width:40rem; font-size:.9375rem; color:var(--ink-2); border-left:2px solid var(--rule-2); padding-left:.875rem}
.quote+.src{margin-top:.75rem}
/* one callout a statement kind: the icon in the gutter, the kind's
   name, one quote and its stamp beside it */
.callout{display:flex; gap:.75rem; align-items:flex-start; margin:.75rem 0; padding:.625rem .875rem; border:1px solid var(--rule); border-radius:.5rem; max-width:44rem}
.callout>.i{flex:none; width:1.125rem; height:1.125rem; margin-top:.9rem; color:var(--ink-3)}
.callout>div{min-width:0}
.callout .group{padding:0 0 .25rem}
.callout .quote{border-left:0; padding-left:0; font-size:.875rem}
.callout .quote+.src{margin-top:.375rem}

/* ---- r4: the today also-row, the sources list -------------------------- */
.hrs.today{padding-bottom:.25rem}
.srcs>li{display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:.45rem}
.srcs>li::before{content:""; width:.75rem; height:.75rem; align-self:start; margin-top:.22rem; background:var(--ink-2); -webkit-mask:var(--g) no-repeat center/contain; mask:var(--g) no-repeat center/contain}
.srcs>li>span{grid-column:2}

/* ---- r8: a third hours reading, a chip list, a grouped value list ---- */
.hrs .nowmid{border-radius:0; padding-bottom:0}
.tags+.m{margin-top:.625rem}
.vals+.group{padding-top:1.5rem}

/* ---- r11: one glyph per source kind, Lucide 1.44.0, ISC --------------- */
.src.page,.srcs>li.page{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z'/%3E%3Cpath d='M14 2v5a1 1 0 0 0 1 1h5'/%3E%3C/svg%3E")}
.src.data,.srcs>li.data{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1'/%3E%3Cpath d='M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1'/%3E%3C/svg%3E")}
.src.bot,.srcs>li.bot{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8V4H8'/%3E%3Crect width='16' height='12' x='4' y='8' rx='2'/%3E%3Cpath d='M2 14h2'/%3E%3Cpath d='M20 14h2'/%3E%3Cpath d='M15 13v2'/%3E%3Cpath d='M9 13v2'/%3E%3C/svg%3E")}
.src.open,.srcs>li.open{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20'/%3E%3Cpath d='M2 12h20'/%3E%3C/svg%3E")}
.src.check,.srcs>li.check{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v3'/%3E%3Cpath d='M16 2v3'/%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E")}

/* ---- r12: one Details section, one Sources block ----------------------- */
section>h2+.group{padding-top:.25rem}
.srcs>li>ul{grid-column:2; margin-top:.125rem}
.srcs>li>ul li{padding:.375rem 0}
.srcs>li>.ln b{font-weight:600}
/* the dataset's own words and its licence read as one sentence */
.srcs>li>.ln .m{display:inline}

/* ---- r13: a change row and a service area open in place ---------------
   A row whose value is a set, and a claim covering several localities,
   carry a disclosure inside the line they sit on. The page's own summary
   rule sizes a tap target for a section heading, so both reset it to the
   line they are part of and keep the chevron. */
.chg details>summary,.covered>summary{min-height:0; font:inherit; color:inherit; display:inline-flex; align-items:baseline; gap:.25rem}
.chg details>summary .i,.covered>summary .i{align-self:center}
.chg details>summary:hover,.covered>summary:hover{color:var(--link)}
.chg details p{color:var(--ink-3); padding:.25rem 0 0 1.25rem}
.covered{margin-top:.375rem}
.covers{padding:.25rem 0 0 1.25rem; font-size:.875rem}
.covers li{padding:.125rem 0}

/* ---- the service pages ------------------------------------------------
   About, coverage, terms, the crawler page and the rest render as a flat
   run of headings, paragraphs, lists and tables under .col, with no
   section wrapper to carry the rhythm the listing pages get from one.
   These rules give that run the same spacing and hold its copy to the
   40rem measure. They reach unclassed elements alone, so the listing,
   hub and search pages, whose paragraphs all carry a class, are
   untouched. */
.col>h1{padding:1rem 0 .5rem}
.col>h2{margin-top:1.75rem; margin-bottom:.625rem}
.col>h2:first-child{margin-top:0}
.col>p:not([class]),.col>ul:not([class]),.col>ol:not([class]),.col>dl:not([class]){margin-top:.625rem; max-width:40rem}
.col>ul:not([class]){list-style:disc; padding-left:1.25rem}
.col>ol:not([class]){list-style:decimal; padding-left:1.5rem}
.col>ul:not([class]) li,.col>ol:not([class]) li{padding:.125rem 0}
.col>table{display:block; overflow-x:auto; margin-top:.75rem; border-collapse:collapse; font-size:.875rem}
.col>table th{text-align:left; font:500 .75rem/1.3 var(--body); text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); padding:.375rem .75rem .375rem 0; border-bottom:1px solid var(--rule-2); white-space:nowrap}
.col>table td{padding:.5rem .75rem .5rem 0; border-bottom:1px solid var(--rule); vertical-align:top}

/* ---- forms: the contact page ------------------------------------------ */
fieldset{border:0; padding:0; margin:0; min-width:0}
legend{padding:0}
.form{display:grid; gap:1.5rem; max-width:40rem; padding-top:1.25rem}
.f .lbl{display:block; font:600 .8125rem/1.3 var(--body); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-2); padding-bottom:.5rem}
.f .help{font-size:.875rem; color:var(--ink-2); padding-top:.5rem}
.f .val{font-weight:500}
.f .opts{border:1px solid var(--rule-2); border-radius:var(--r); background:var(--field); padding:0 .875rem}
.f .opt{min-height:2.875rem}
.input.area{min-height:9rem; padding:.625rem .75rem; line-height:1.5; resize:vertical}
.form .btn{justify-self:start; min-width:8rem}
.f .opt .c{white-space:nowrap; padding-left:.75rem}
