/* City resource pages (HealthViber Chicago and the cities after it), on the
   shop's own tokens so the page reads as part of the site. */
.loc { padding-bottom:40px }
.loc-hero { background:var(--sky); border-bottom:1px solid var(--sky-line); padding:48px 0 36px }
.loc-hero h1 { font-size:clamp(2rem, 4vw, 3rem); margin:8px 0 12px; max-width:24ch }
.loc-lede { font-size:1.15rem; max-width:62ch; margin:0 }
.loc-submit-link { display:inline-block; margin-top:16px; font-weight:700 }
.loc-sec { padding-top:40px; padding-bottom:6px }
.loc-sec h2, .loc-band h2 { font-size:clamp(1.5rem, 2.4vw, 2.1rem); margin:6px 0 12px }
.loc-sec > p { max-width:72ch; line-height:1.6 }
.loc-small { color:var(--muted); font-size:.9rem }
.loc-note { background:var(--mist); border-radius:12px; padding:12px 16px }
.loc-needs { display:grid; gap:12px; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)) }
.loc-needs a { display:block; border:1px solid var(--hair); border-radius:14px; padding:16px; background:#fff; color:var(--navy); min-height:44px }
.loc-needs a b { display:block; color:var(--blue); margin-bottom:4px }
.loc-needs a span { color:var(--muted) }
.loc-needs a:hover, .loc-needs a.is-on { border-color:var(--blue); background:var(--sky) }
.loc-two { display:grid; gap:14px; grid-template-columns:minmax(0, 3fr) minmax(0, 2fr) }
.loc-grid { display:grid; gap:14px; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)) }
.loc-box { border:1px solid var(--hair); border-radius:14px; padding:18px; background:#fff }
.loc-box--dash { border-style:dashed }
.loc-box h3 { font-size:1.15rem; margin:0 0 10px; display:flex; flex-wrap:wrap; gap:8px; align-items:center }
.loc-online { display:inline-block; background:#eaf3fc; color:#0f3d66; text-transform:uppercase; font-size:.72rem; font-weight:800; letter-spacing:.06em; border-radius:99px; padding:3px 10px; font-family:var(--fb) }
.loc-prod { display:flex; justify-content:space-between; gap:12px; align-items:center; border-top:1px solid var(--hair); padding:12px 0; color:var(--navy) }
.loc-prod b { display:block }
.loc-prod small { color:var(--muted) }
.loc-prod em { font-style:normal; font-weight:800; color:var(--navy); white-space:nowrap }
.loc-link { font-weight:700 }
.loc-band { background:#0f3d66; color:#fff; padding:40px 0; margin-top:40px }
.loc-band h2, .loc-band legend { color:#fff }
.loc-band .loc-small { color:#cfe2f5 }
.loc-band .loc-online { margin-left:6px }
.loc-lessons { display:grid; gap:12px; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); margin:16px 0 }
.loc-lesson { display:flex; flex-direction:column; gap:4px; background:#fff; color:var(--navy); border-radius:14px; padding:14px 16px; min-height:44px }
.loc-lesson span { font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--blue) }
.loc-lesson small { color:var(--muted) }
.loc-search { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; background:var(--mist); border-radius:14px; padding:14px; margin:14px 0 }
.loc-search label { flex:1 1 220px }
.loc-search span, .loc-form label > span, .loc-wide > span { display:block; font-weight:700; margin-bottom:4px; font-size:.92rem }
.loc-search input, .loc-search select, .loc-form input, .loc-form select, .loc-form textarea { width:100%; border:1px solid #c9d8e6; border-radius:10px; padding:10px 12px; font:inherit; color:var(--navy); min-height:44px; background:#fff }
.loc-msg { background:#fdf1dc; color:#6b4300; border-radius:10px; padding:10px 14px }
.loc-care { display:grid; grid-template-columns:270px minmax(0, 1fr); gap:20px; margin-top:12px; align-items:start }
.loc-filters { border:1px solid var(--hair); border-radius:14px; padding:16px; background:#fff; position:sticky; top:96px; max-height:calc(100vh - 110px); overflow:auto }
.loc-filters__head { display:flex; justify-content:space-between; align-items:center }
.loc-filters h3 { margin:0; font-size:1.1rem }
.loc-x, .loc-show, .loc-ftoggle { display:none }
.loc-fg { border:0; border-top:1px solid var(--hair); padding:10px 0 4px; margin:8px 0 0 }
.loc-fg legend { font-weight:800; padding:0; margin-bottom:6px }
.loc-opt { display:flex; align-items:center; gap:8px; padding:5px 0; min-height:32px }
.loc-opt input { width:18px; height:18px }
.loc-n { margin-left:auto; color:var(--muted); font-size:.85rem }
.loc-later summary { cursor:pointer; color:var(--muted); font-size:.88rem; padding:4px 0 }
.loc-rhead { display:flex; justify-content:space-between; align-items:center; gap:12px }
.loc-rhead h3 { margin:0; font-size:1.3rem }
.loc-tools { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin:8px 0 12px }
.loc-tools select { border:1px solid #c9d8e6; border-radius:8px; padding:6px 8px; font:inherit; margin-left:6px }
.loc-seg { display:inline-flex; border:1px solid var(--hair); border-radius:10px; overflow:hidden }
.loc-seg button { border:0; background:#fff; padding:8px 16px; font:inherit; color:var(--navy); cursor:pointer; min-height:40px }
.loc-seg button[aria-pressed="true"] { background:var(--blue); color:#fff }
.loc-map { margin-bottom:14px; overflow:hidden; border-radius:14px }
.loc-card { border:1px solid var(--hair); border-radius:14px; padding:16px 18px; background:#fff; margin-bottom:12px }
.loc-card h4 { margin:0 0 4px; font-size:1.15rem }
.loc-card p { margin:4px 0 }
.loc-card dl, .loc-facts { display:grid; grid-template-columns:120px minmax(0, 1fr); gap:6px 14px; margin:10px 0 }
.loc-card dt, .loc-facts dt { font-weight:700 }
.loc-card dd, .loc-facts dd { margin:0 }
.loc-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px }
.loc-src { margin-top:8px; border-top:1px solid var(--hair); padding-top:8px }
.loc-src summary { cursor:pointer; font-weight:700; color:var(--blue) }
.loc-check { padding-left:20px; line-height:1.7 }
.loc-chips { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 }
.loc-chip { border:1px solid rgba(255,255,255,.6); background:transparent; color:#fff; border-radius:99px; padding:10px 18px; font:inherit; cursor:pointer; min-height:44px }
.loc-chip[aria-pressed="true"] { background:#fff; color:#0f3d66; font-weight:700 }
.loc-chip--big { min-width:96px }
.loc-band fieldset { border:0; padding:0; margin:12px 0 }
.loc-consent { display:block; margin:12px 0; line-height:1.5 }
.loc-consent input { margin-right:8px; transform:scale(1.2) }
.loc-band .loc-consent { color:#e6f0fa }
.loc-form { max-width:980px }
.loc-fields { display:grid; gap:12px 16px; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)) }
.loc-form em { font-style:normal; font-weight:400; color:var(--muted) }
.loc-wide { display:block; margin-top:12px }
.loc-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden }
.loc-faq { border-top:1px solid var(--hair); padding:12px 0 }
.loc-faq summary { cursor:pointer; font-weight:700 }
.loc-foot { margin-top:22px }
.loc-onemap { margin:16px 0; border-radius:14px; overflow:hidden }
.loc-needs a:focus-visible, .loc-chip:focus-visible, .loc-seg button:focus-visible, .loc-lesson:focus-visible { outline:3px solid #f2b600; outline-offset:2px }
[id] { scroll-margin-top:110px }
@media (max-width:859px) {
  .loc-care, .loc-two { grid-template-columns:1fr }
  .loc-ftoggle, .loc-x, .loc-show { display:inline-flex }
  .loc-filters { display:none; position:fixed; inset:0; z-index:90; border-radius:0; max-height:none; top:0 }
  .loc-filters.is-open { display:block }
  .loc-show { width:100%; justify-content:center; margin-top:14px }
  .loc-card dl, .loc-facts { grid-template-columns:1fr }
}
@media print {
  body.loc-printing * { visibility:hidden }
  body.loc-printing #checklist, body.loc-printing #checklist * { visibility:visible }
  body.loc-printing #checklist { position:absolute; top:0; left:0 }
  body.loc-printing #checklist .v3btns { display:none }
}
/* Listings approved from Submit Your Business or Organization. */
.loc-listing { padding:10px 0; border-top:1px solid var(--hair) }
.loc-listing:first-of-type { border-top:0; padding-top:0 }
.loc-listing p { margin:4px 0 }
