:root {
  color-scheme: light dark;

  --paper: oklch(0.982 0.009 95);
  --card: oklch(0.996 0.004 95);
  --raised: var(--card);
  --surface: oklch(0.958 0.014 100);
  --ink: oklch(0.31 0.026 158);
  --muted: oklch(0.50 0.02 135);
  --line: oklch(0.918 0.012 105);
  --line-strong: oklch(0.76 0.016 110);
  --boundary: oklch(0.62 0.018 120);
  --accent: oklch(0.475 0.08 165);
  --accent-strong: oklch(0.395 0.085 165);
  --accent-soft: oklch(0.945 0.03 160);
  --accent-ink: oklch(0.993 0.004 95);
  --success: oklch(0.47 0.10 145);
  --success-soft: oklch(0.94 0.045 145);
  --sun: oklch(0.80 0.13 90);
  --sun-soft: oklch(0.94 0.05 92);
  --sun-strong: oklch(0.44 0.09 85);
  --danger: oklch(0.52 0.15 32);
  --danger-soft: oklch(0.955 0.02 32);
  --focus: oklch(0.55 0.11 165);
  --image-outline: oklch(0 0 0 / .1);
  --image-filter: none;
  --select-icon: 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 1.5 6 6.5 11 1.5' fill='none' stroke='%235e665b' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  --search-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235e665b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E");

  --events: oklch(0.53 0.09 235);
  --outdoors: oklch(0.50 0.08 120);
  --activities: oklch(0.53 0.125 50);
  --camps: oklch(0.52 0.105 68);
  --care: oklch(0.50 0.09 350);
  --groups: oklch(0.51 0.075 195);
  --family: oklch(0.52 0.095 12);

  --font-display: var(--font-fraunces), "Iowan Old Style", Georgia, serif;
  --font-body: var(--font-nunito-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --text-xs: .78rem;
  --text-sm: .85rem;
  --text-md: .92rem;
  --text-base: 1rem;
  --text-lg: 1.1rem;
  --text-xl: 1.2rem;
  --text-2xl: 1.5rem;

  --measure: 72rem;
  --reading-measure: 44rem;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --radius: .875rem;
  --radius-sm: .625rem;
  --radius-pill: 999px;
  --shadow-sm: 0 0 0 1px oklch(0 0 0 / .05), 0 1px 2px oklch(0.31 0.026 158 / .05), 0 2px 8px oklch(0.31 0.026 158 / .04);
  --shadow-md: 0 0 0 1px oklch(0 0 0 / .06), 0 2px 4px oklch(0.31 0.026 158 / .06), 0 10px 28px oklch(0.31 0.026 158 / .09);
  --ease-out: cubic-bezier(.22, .68, .32, 1);
  --dur: 140ms;

  --display-weight: 600;
  --display-tracking: -.01em;
  --name-weight: 650;
  --header-bg: var(--paper);
  --header-active-bg: var(--accent-soft);
  --header-stripe: 0px;
  --head-band: transparent;
  --rule-strong: 1px;
  --row-pad: .7rem;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: oklch(0.205 0.014 140);
    --card: oklch(0.285 0.016 140);
    --raised: oklch(0.46 0.02 140);
    --surface: oklch(0.34 0.018 140);
    --ink: oklch(0.94 0.012 100);
    --muted: oklch(0.77 0.02 120);
    --line: oklch(0.405 0.018 140);
    --line-strong: oklch(0.61 0.022 140);
    --boundary: oklch(0.62 0.022 140);
    --accent: oklch(0.74 0.11 165);
    --accent-strong: oklch(0.80 0.12 165);
    --accent-soft: oklch(0.37 0.055 160);
    --accent-ink: oklch(0.17 0.02 150);
    --success: oklch(0.78 0.12 145);
    --success-soft: oklch(0.36 0.06 145);
    --sun: oklch(0.82 0.13 90);
    --sun-soft: oklch(0.39 0.07 92);
    --sun-strong: oklch(0.85 0.12 90);
    --danger: oklch(0.75 0.14 32);
    --danger-soft: oklch(0.34 0.05 32);
    --focus: oklch(0.78 0.13 165);
    --image-outline: oklch(1 0 0 / .1);
    --image-filter: brightness(.92);
    --select-icon: 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 1.5 6 6.5 11 1.5' fill='none' stroke='%23b2b6a8' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    --search-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23b2b6a8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E");

    --events: oklch(0.78 0.13 235);
    --outdoors: oklch(0.77 0.12 120);
    --activities: oklch(0.79 0.12 50);
    --camps: oklch(0.79 0.13 68);
    --care: oklch(0.78 0.13 350);
    --groups: oklch(0.77 0.11 195);
    --family: oklch(0.78 0.115 12);

    --shadow-sm: 0 0 0 1px oklch(1 0 0 / .08), 0 1px 2px oklch(0 0 0 / .35), 0 3px 10px oklch(0 0 0 / .28);
    --shadow-md: 0 0 0 1px oklch(1 0 0 / .12), 0 2px 4px oklch(0 0 0 / .4), 0 12px 30px oklch(0 0 0 / .45);
  }
}

* { box-sizing: border-box; }
html, body { min-width: 0; overflow-x: clip; }
html { background: var(--paper); scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.55;
  text-wrap: pretty;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
button, input, select, textarea { color: var(--ink); font: inherit; }
a { color: inherit; text-decoration-thickness: from-font; text-underline-offset: .18em; transition: color var(--dur) var(--ease-out); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--radius-sm); }
h1, h2, h3, h4, p, dl, dd, figure { margin-block: 0; }
dd { margin-inline: 0; }
h1, h2, h3, h4 { color: var(--ink); font-family: var(--font-display); font-optical-sizing: auto; font-weight: var(--display-weight); line-height: 1.1; letter-spacing: var(--display-tracking); overflow-wrap: anywhere; text-wrap: balance; }
h1 { font-size: clamp(1.9rem, 1.45rem + 2vw, 2.6rem); }
h2 { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.55rem); }
h3 { font-size: var(--text-lg); }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }
img { display: block; max-width: 100%; height: auto; outline: 1px solid var(--image-outline); outline-offset: -1px; filter: var(--image-filter); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: var(--space-3); border-block-end: 1px solid var(--line); text-align: start; vertical-align: top; }
th { color: var(--muted); font-size: var(--text-sm); font-weight: 700; }
time { font-variant-numeric: tabular-nums; }
summary { display: flex; min-height: 2.75rem; align-items: center; gap: var(--space-2); cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
summary::after { content: ""; flex: none; width: .55rem; height: .55rem; margin-inline-start: auto; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; translate: 0 -.15rem; rotate: 45deg; transition: rotate var(--dur) var(--ease-out), translate var(--dur) var(--ease-out); }
details[open] > summary::after { translate: 0 .15rem; rotate: 225deg; }
@media (hover: hover) {
  a:hover { color: var(--accent-strong); }
}

input, select, textarea {
  width: 100%;
  min-height: 2.75rem;
  padding: .55rem .8rem;
  border: 1px solid var(--boundary);
  border-radius: var(--radius-sm);
  color: var(--ink);
  background: var(--card);
  font-size: var(--text-base);
  transition: border-color var(--dur) var(--ease-out);
}
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--focus); outline-offset: 0; }
[aria-invalid="true"] { border-color: var(--danger); }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
select { appearance: none; padding-inline-end: 2rem; background: var(--select-icon) no-repeat right .7rem center var(--card); }
button, .button, .skip-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: .55rem 1.15rem;
  border: 1px solid var(--accent);
  border-radius: var(--radius-sm);
  color: var(--accent-ink);
  background: var(--accent);
  font-weight: 700;
  font-size: var(--text-md);
  line-height: 1.2;
  text-decoration: none;
  text-wrap: balance;
  cursor: pointer;
  transition: background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), scale var(--dur) var(--ease-out);
}
button:active, .button:active { scale: .96; }
button:focus-visible, .button:focus-visible, .subnav a[aria-current]:focus-visible { box-shadow: 0 0 0 2px var(--accent-ink); }
.button--secondary { color: var(--ink); background: var(--card); border-color: var(--boundary); }
button:disabled { cursor: wait; opacity: .7; }
@media (hover: hover) {
  button:hover, .button:hover, .skip-link:hover { border-color: var(--accent-strong); background: var(--accent-strong); color: var(--accent-ink); }
  .button--secondary:hover { color: var(--ink); background: var(--surface); }
}

.skip-link { position: fixed; z-index: 40; inset-block-start: var(--space-3); inset-inline-start: var(--space-3); translate: 0 -200%; }
.skip-link:focus { translate: 0 0; }

.site-header { position: sticky; z-index: 30; inset-block-start: 0; border-block-end: 1px solid var(--line); background: var(--header-bg); }
.site-header::before { content: ""; display: block; height: var(--header-stripe); background: var(--section, var(--accent)); }
.site-header__inner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); width: min(100% - 2rem, var(--measure)); min-height: 4rem; margin-inline: auto; padding-block: var(--space-2); }
.site-name { display: inline-flex; min-height: 2.75rem; max-width: 100%; align-items: center; gap: var(--space-2); color: inherit; font-family: var(--font-display); font-size: var(--text-xl); font-weight: 650; letter-spacing: -.01em; text-decoration: none; }
.logo-mark { flex: none; width: 1.75rem; height: 1.75rem; }
.nav-toggle { order: 1; margin-inline-start: auto; padding: var(--space-2) var(--space-3); border-color: var(--boundary); color: var(--ink); background: var(--card); }
.primary-nav { display: none; order: 4; width: 100%; padding-block: var(--space-3); border-block-start: 1px solid var(--line); }
.primary-nav[data-open="true"] { display: block; }
.primary-nav ul { display: grid; gap: var(--space-1); }
.primary-nav a { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: var(--space-2); min-height: 2.75rem; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); color: var(--ink); font-size: var(--text-md); font-weight: 650; line-height: 1.2; text-decoration: none; }
.primary-nav a::before { content: ""; grid-row: 1 / 3; width: .5rem; height: .5rem; border-radius: var(--radius-pill); background: var(--dot, var(--line-strong)); }
.primary-nav__answer { color: var(--muted); font-size: var(--text-sm); font-weight: 500; }
.primary-nav a:focus-visible { background: var(--surface); }
.primary-nav a[aria-current] { background: var(--header-active-bg); text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.primary-nav__group { margin-block: var(--space-3) var(--space-1); padding-inline: var(--space-3); color: var(--muted); font-size: var(--text-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.primary-nav__family { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.primary-nav__family a { grid-template-columns: minmax(0, 1fr); }
.primary-nav__family a::before { display: none; }
@media (min-width: 40rem) {
  .site-header { background: color-mix(in oklab, var(--header-bg) 92%, transparent); backdrop-filter: blur(10px); }
}
@media (min-width: 64rem) {
  .nav-toggle { display: none; }
  .primary-nav { display: block; order: 2; width: auto; margin-inline-start: auto; padding-block: 0; border-block-start: 0; }
  .primary-nav ul { display: flex; flex-wrap: wrap; gap: 0; }
  .primary-nav a { display: flex; padding: var(--space-2); color: var(--muted); }
  .primary-nav a:focus-visible, .primary-nav a[aria-current] { color: var(--ink); }
  .primary-nav a::before { width: .4rem; height: .4rem; }
  .primary-nav__answer, .primary-nav__group, .primary-nav .primary-nav__family { display: none; }
}
@media (min-width: 64rem) and (max-width: 79.99rem) {
  .primary-nav a { padding-inline: .4rem; font-size: var(--text-sm); }
}
@media (max-width: 22.5rem) {
  .site-header__inner { column-gap: var(--space-2); }
  .site-name { gap: .375rem; font-size: var(--text-lg); }
  .site-name .logo-mark { width: 1.5rem; height: 1.5rem; }
  .nav-toggle { padding-inline: .625rem; }
}
@media (hover: hover) {
  .site-name:hover { color: var(--ink); }
  .nav-toggle:hover { color: var(--ink); background: var(--surface); }
  .primary-nav a:hover { color: var(--ink); background: var(--surface); }
}

.site-footer { margin-block-start: var(--space-8); border-block-start: 1px solid var(--line); background: var(--surface); }
.site-footer__inner { display: grid; gap: var(--space-6); width: min(100% - 2rem, var(--measure)); margin-inline: auto; padding-block: var(--space-7); }
.site-footer__area { margin-block-start: var(--space-2); max-width: 30ch; color: var(--muted); font-size: var(--text-md); }
.site-footer__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); }
.site-footer__group h2 { margin-block-end: var(--space-2); font-family: var(--font-body); font-size: var(--text-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.site-footer__group ul { display: grid; }
.site-footer__group a { display: inline-flex; min-width: 2.75rem; min-height: 2.75rem; align-items: center; color: var(--muted); font-size: var(--text-md); text-decoration: none; }
@media (min-width: 48rem) {
  .site-footer__inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr); gap: var(--space-7); }
  .site-footer__nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (hover: hover) {
  .site-footer__group a:hover { color: var(--ink); text-decoration: underline; }
}

.page { width: min(100% - 2rem, var(--measure)); margin-inline: auto; padding-block: clamp(var(--space-6), 5vw, var(--space-7)); }
.page-heading { display: grid; gap: var(--space-3); max-width: var(--reading-measure); margin-block-end: var(--space-6); }
.page-heading > p { color: var(--muted); font-size: var(--text-lg); }
.page-heading > .card-note { font-size: var(--text-sm); }
.page-heading > p a { color: var(--accent); }
.eyebrow { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--muted); font-size: var(--text-xs); font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: .55rem; height: .55rem; border-radius: var(--radius-pill); background: var(--dot, var(--line-strong)); }
.inline-hit-target { display: inline-flex; min-height: 2.75rem; align-items: center; margin-block: -.75rem; padding-block: .75rem; }
.breadcrumbs { margin-block-end: var(--space-4); color: var(--muted); font-size: var(--text-sm); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.breadcrumbs li + li::before { margin-inline-end: var(--space-2); content: "/"; }
.breadcrumbs a { display: inline-flex; min-width: 2.75rem; min-height: 2.75rem; align-items: center; margin-block: -.75rem; padding-block: .75rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; clip-path: inset(50%); }
.section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-2) var(--space-4); }
.section-heading > div { display: grid; min-width: 0; gap: var(--space-1); }
.section-heading p { color: var(--muted); font-size: var(--text-md); }
.section-heading > a { display: inline-flex; min-height: 2.75rem; align-items: center; color: var(--accent); font-size: var(--text-md); font-weight: 700; text-decoration: none; }
.section-note { max-width: var(--reading-measure); color: var(--muted); }
@media (hover: hover) {
  .section-heading > a:hover { color: var(--accent-strong); text-decoration: underline; }
}

[data-section="events"] { --section: var(--events); }
[data-section="outdoors"] { --section: var(--outdoors); }
[data-section="activities"] { --section: var(--activities); }
[data-section="camps"] { --section: var(--camps); }
[data-section="care-schools"] { --section: var(--care); }
[data-section="groups"] { --section: var(--groups); }
[data-section="family-services"] { --section: var(--family); }
[data-section] { --dot: var(--section); }

.card { padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.chip { display: inline-flex; min-height: 2.75rem; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-pill); color: var(--muted); background: var(--card); font-size: var(--text-md); font-weight: 650; }
.badge { display: inline-flex; align-items: center; gap: var(--space-1); padding: .2rem .6rem; border-radius: var(--radius-pill); font-size: var(--text-xs); font-weight: 800; letter-spacing: .01em; line-height: 1.3; }
.badge--free, .badge--open { color: var(--success); background: var(--success-soft); }
.badge--waitlist, .badge--opens-later, .badge--moved { color: var(--sun-strong); background: var(--sun-soft); }
.badge--closed, .badge--cancelled { color: var(--danger); background: var(--danger-soft); }
.badge--muted { color: var(--ink); background: var(--surface); border: 1px solid var(--line); }

.door-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.door { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: var(--space-3); align-items: center; padding: var(--space-4); padding-inline-end: var(--space-7); border-radius: var(--radius); color: var(--ink); background: var(--card); text-decoration: none; box-shadow: var(--shadow-sm); transition: translate var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out); }
.door::before { content: ""; grid-row: 1 / 3; width: .6rem; height: .6rem; border-radius: 50%; background: var(--section); }
.door::after { content: "\2192"; position: absolute; inset-block-start: 50%; inset-inline-end: var(--space-4); color: var(--section); font-weight: 700; opacity: 0; translate: 0 -50%; transition: opacity var(--dur) var(--ease-out), translate var(--dur) var(--ease-out); }
.door:focus-visible::after { opacity: 1; translate: .15rem -50%; }
.door__label { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 650; letter-spacing: -.01em; }
.door__q { color: var(--muted); font-size: var(--text-md); }
.home-panel { display: grid; gap: var(--space-4); }
@media (min-width: 40rem) { .door-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .door-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (hover: hover) {
  .door:hover { translate: 0 -2px; box-shadow: var(--shadow-md); color: var(--ink); }
  .door:hover::after { opacity: 1; translate: .15rem -50%; }
}

.event-page-heading { max-width: none; }
.event-page-heading > p { max-width: var(--reading-measure); }
.arrow { flex: none; width: 1em; height: 1em; }
.arrow--start { rotate: 180deg; }
.subnav.event-date-nav { margin-block-end: var(--space-4); }
.event-date-nav ul { gap: var(--space-1); }
.event-date-nav a { border-radius: var(--radius-sm); font-size: var(--text-sm); }
.event-date-nav li:last-child { margin-inline-start: auto; padding-inline-start: var(--space-3); border-inline-start: 1px solid var(--line-strong); }
@media (max-width: 39.99rem) {
  .subnav.event-date-nav { margin-block-end: var(--space-3); }
  .subnav.event-date-nav ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-block: -.25rem; margin-inline: -1rem; padding: .25rem 1rem; mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); }
  .event-date-nav ul::-webkit-scrollbar { display: none; }
  .event-date-nav a { white-space: nowrap; }
}

.event-results-layout { display: grid; min-width: 0; gap: var(--space-5); }
.event-results { container: event-results / inline-size; min-width: 0; }
.event-list { display: grid; gap: var(--space-6); }
.event-list--by-day { gap: 0; }
.event-list--by-day > .event-day + .event-day { margin-block-start: var(--space-7); }
.event-list--by-day:has(.event-day__items--list) > .event-day + .event-day { margin-block-start: var(--space-5); }
.event-list-groups { display: grid; gap: var(--space-6); }
.event-list-group { display: grid; gap: var(--space-3); }
.event-list-group > h2 { font-size: var(--text-xl); font-weight: 650; }
.event-list__earlier { padding-block-start: var(--space-2); border-block-start: 1px solid var(--line); color: var(--muted); }
.event-list__earlier > summary { padding-block: var(--space-3); font-weight: 700; }
.event-list__earlier[open] > summary { color: var(--ink); }
.event-day__heading { display: flex; flex-wrap: wrap; min-width: 0; align-items: center; justify-content: flex-start; gap: var(--space-2) var(--space-4); margin-block-end: var(--space-2); padding-block: var(--space-2); border-block-end: 1px solid color-mix(in oklab, var(--section, var(--line-strong)) 35%, var(--line-strong)); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 650; line-height: 1.4; }
.event-day__date { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
.event-day__relative { color: var(--section, var(--ink)); font-family: var(--font-body); font-size: var(--text-sm); font-weight: 750; }
.event-day__count { color: var(--muted); font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; font-variant-numeric: tabular-nums; }
.event-day__back-link { display: inline-flex; width: fit-content; min-height: 2.75rem; align-items: center; margin-block-start: var(--space-2); color: var(--muted); font-size: var(--text-sm); font-weight: 700; }
#month-controls { scroll-margin-block-start: 11rem; }
.event-day__items { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.event-day__items--list { gap: 0; }
.event-day__items--masonry { display: block; columns: 1; column-gap: var(--space-3); }
.event-day__items--masonry > li { break-inside: avoid; margin-block-end: var(--space-3); }
.event-card { position: relative; display: grid; min-width: 0; }
.event-card__date { display: grid; width: 4rem; height: 4rem; place-content: center; border-radius: calc(var(--radius) - var(--space-3)); color: color-mix(in oklab, var(--events) 72%, var(--ink)); background: color-mix(in oklab, var(--events) 13%, var(--card)); text-align: center; line-height: 1.15; }
.event-card__month { font-size: var(--text-xs); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.event-card__day { font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 650; }
.event-card__media { width: 100%; aspect-ratio: 3 / 2; background: var(--surface); object-fit: cover; }
.event-card__thumb { width: 3.5rem; height: 3.5rem; border-radius: var(--radius-sm); background: var(--surface); object-fit: cover; align-self: center; }
.event-card__body { display: grid; min-width: 0; gap: var(--space-1); align-content: start; }
.event-card__body h2, .event-card__body h3 { font-size: var(--text-lg); }
.event-card__body h2 a, .event-card__body h3 a { display: flex; min-height: 2.75rem; align-items: center; text-decoration: none; }
.event-card__meta { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); color: var(--muted); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.event-card__until::before { content: "–"; }
.event-card__facts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-3); color: var(--muted); font-size: var(--text-sm); }
.event-card__kind, .event-card__admission { font-weight: 650; }
.event-card__facts .badge--free { padding: 0; background: none; color: var(--success); font-size: var(--text-sm); font-weight: 650; letter-spacing: 0; }
.event-card__summary { display: none; margin: 0; color: var(--muted); font-size: var(--text-sm); line-height: 1.5; overflow-wrap: anywhere; text-wrap: pretty; }
.event-card--masonry { grid-template-columns: auto minmax(0, 1fr); min-height: 10rem; height: 100%; overflow: hidden; border-radius: var(--radius); background: color-mix(in oklab, var(--events) 4%, var(--card)); box-shadow: var(--shadow-sm); transition: background-color var(--dur) var(--ease-out); }
.event-card--masonry .event-card__media { grid-row: 1; grid-column: 1 / -1; }
.event-card--masonry .event-card__date { grid-row: 2; margin: var(--space-3); }
.event-card--masonry .event-card__content { grid-row: 2; padding: var(--space-3); padding-inline-start: 0; }
.event-card--masonry:not(:has(.event-card__media)) { align-content: start; }
.event-card--masonry:not(:has(.event-card__media)) .event-card__date, .event-card--masonry:not(:has(.event-card__media)) .event-card__content { grid-row: 1; }
.event-card--list { grid-template-columns: minmax(0, 1fr) 3.5rem; column-gap: var(--space-3); padding: var(--space-2) 0; border-block-end: 1px solid var(--line-strong); }
.event-card--list .event-card__thumb { grid-column: 2; grid-row: 1; }
.event-card--list .event-card__body { gap: 0; }
.event-card--list .event-card__body h3 { min-width: 0; font-size: var(--text-base); line-height: 1.4; overflow-wrap: anywhere; }
.event-card--list .event-card__meta { min-width: 0; flex-wrap: nowrap; gap: 0; line-height: 1.5; }
.event-card--list .event-card__meta > span:first-child:not(.event-card__place) { flex: none; }
.event-card--list .event-card__place { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-card--list .event-card__place:not(:first-child)::before { content: "·"; margin-inline: .45em; }
.weekend-day-index { margin-block-end: var(--space-5); }
.weekend-day-index ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(5.5rem, 100%), 1fr)); gap: var(--space-2); }
.weekend-day-index a { display: grid; height: 100%; min-height: 2.75rem; align-content: center; padding: var(--space-2); border: 1px solid var(--boundary); border-radius: var(--radius-sm); color: var(--ink); background: color-mix(in oklab, var(--events) 5%, var(--card)); text-decoration: none; }
.weekend-day-index a:not([href]) { cursor: default; opacity: .65; }
.weekend-day-index a[aria-current="date"] { border-color: var(--accent); background: var(--accent-soft); }
.weekend-day-index a[aria-current="date"] .weekend-day-index__day::after { display: block; content: "Today"; font-size: var(--text-xs); }
.weekend-day-index__day { font-size: var(--text-sm); font-weight: 750; white-space: nowrap; }
.weekend-day-index__count { color: var(--muted); font-size: var(--text-xs); }
.weekend-day-index ~ .event-list .event-day { scroll-margin-block-start: 5rem; }
.weekend-day-index ~ .event-list .event-day__heading { min-height: 2.75rem; gap: var(--space-2); }
@media (min-width: 40rem) { .event-day__items--masonry { columns: 2; } }
@media (min-width: 48rem) { #month-controls { scroll-margin-block-start: 5rem; } }
@media (max-width: 22.5rem) {
  .event-day__heading { column-gap: var(--space-2); font-size: var(--text-lg); }
  .event-day__date { flex-direction: column; align-items: flex-start; gap: 0; }
}
@container event-results (min-width: 42rem) {
  .event-card--list { grid-template-columns: minmax(0, 1.15fr) 3.5rem minmax(0, 1fr); column-gap: var(--space-5); align-items: center; }
  .event-card--list .event-card__summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; grid-column: 3; grid-row: 1; min-width: 0; text-align: left; }
}
@media (hover: hover) {
  .event-card--masonry:hover { background: color-mix(in oklab, var(--events) 8%, var(--card)); }
  .event-card__body h2 a:hover, .event-card__body h3 a:hover { color: var(--events); text-decoration: underline; }
  .month-nav a:hover { color: var(--accent-strong); text-decoration: underline; }
  .event-day__back-link:hover { color: var(--ink); }
  .weekend-day-index a[href]:hover { border-color: var(--events); background: color-mix(in oklab, var(--events) 9%, var(--card)); }
}

.subnav { margin-block-end: var(--space-5); }
.subnav ul { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.subnav a, .subnav span[aria-disabled="true"] { display: inline-flex; min-height: 2.75rem; align-items: center; padding: var(--space-2) var(--space-4); border: 1px solid var(--boundary); border-radius: var(--radius-pill); color: var(--muted); background: var(--card); font-size: var(--text-md); font-weight: 650; text-decoration: none; }
.subnav span[aria-disabled="true"] { background: var(--surface); cursor: not-allowed; }
.subnav a[aria-current] { border-color: var(--accent); color: var(--accent-ink); background: var(--accent); font-weight: 750; }
.view-toggle { display: inline-flex; width: fit-content; gap: var(--space-1); padding: var(--space-1); border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--surface); }
.view-toggle a { display: inline-flex; min-width: 4rem; min-height: 2.75rem; align-items: center; justify-content: center; padding: var(--space-2) var(--space-3); border-radius: var(--radius-pill); color: var(--muted); font-size: var(--text-sm); font-weight: 650; text-decoration: none; }
.view-toggle a[aria-current] { color: var(--ink); background: var(--raised); box-shadow: var(--shadow-sm); font-weight: 750; }
.results-window { color: var(--muted); font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; }
.results-window::before { content: "·"; margin-inline-end: .45em; }
.results-note { max-width: var(--reading-measure); margin-block-start: var(--space-5); padding: var(--space-3) var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); color: var(--muted); background: var(--surface); font-size: var(--text-md); }
.results-note a { color: var(--accent); }
@media (hover: hover) {
  .subnav a:hover { color: var(--ink); background: var(--surface); }
  .view-toggle a:hover { color: var(--ink); }
}
.place-hero { display: grid; gap: var(--space-2); margin: 0 0 var(--space-5); }
.place-hero img { width: 100%; height: auto; max-height: 28rem; object-fit: cover; border-radius: var(--radius); }
.place-detail .place-hero img { aspect-ratio: 16 / 9; }
.place-detail .place-map img { aspect-ratio: auto; }
.place-hero figcaption { color: var(--muted); font-size: var(--text-xs); }
.place-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: var(--space-2); margin: 0 0 var(--space-5); }
.place-gallery img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-sm); }
.place-hero:not(:has(img)), .place-gallery > li:not(:has(img)) { display: none; }
.photo-carousel { --slide: min(85cqi, 22rem); position: relative; min-width: 0; container-type: inline-size; }
.photo-carousel__track { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-block-end: var(--space-2); scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
.photo-carousel__track > ul { display: grid; grid-auto-flow: column; grid-auto-columns: var(--slide); gap: var(--space-3); }
.photo-carousel__track li { min-width: 0; scroll-snap-align: start; }
.photo-carousel figure { display: grid; gap: var(--space-2); margin: 0; }
.photo-carousel__photo { width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: var(--radius-sm); background: var(--surface); object-fit: cover; }
.photo-carousel figcaption { color: var(--muted); font-size: var(--text-xs); }
.photo-carousel__step { display: none; }
@media (prefers-reduced-motion: no-preference) { .photo-carousel__track { scroll-behavior: smooth; } }
@media (hover: hover) and (pointer: fine) {
  .photo-carousel__step { position: absolute; inset-block-start: calc(var(--slide) * .375 - 1.375rem); display: grid; width: 2.75rem; height: 2.75rem; place-items: center; padding: 0; border: 0; border-radius: var(--radius-pill); color: var(--ink); background: var(--card); box-shadow: var(--shadow-md); cursor: pointer; opacity: 0; transition: opacity var(--dur) var(--ease-out), scale var(--dur) var(--ease-out); }
  .photo-carousel__step--previous { inset-inline-start: var(--space-2); }
  .photo-carousel__step--next { inset-inline-end: var(--space-2); }
  .photo-carousel:hover .photo-carousel__step:not([aria-disabled]), .photo-carousel__step:focus-visible { opacity: 1; }
  .photo-carousel__step:active { scale: .96; }
  .photo-carousel__step[aria-disabled] { cursor: default; }
  .photo-carousel__step[aria-disabled]:focus-visible { opacity: .45; }
}
.event-detail__layout .event-host .facts-list { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); margin-block-start: var(--space-2); }
.event-host dd { display: grid; justify-items: start; gap: var(--space-1); }
.event-host__summary { max-width: var(--reading-measure); font-weight: 400; line-height: 1.6; }
.event-host .card-links { margin-block-start: 0; row-gap: 0; }
@media (min-width: 40rem) { .event-detail__layout .event-host .facts-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-6); } }

.offering-rows { display: grid; grid-template-columns: minmax(0, 1fr); }
.offering-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2); padding-block: var(--space-3); border-block-end: 1px solid var(--line); }
.offering-row h3 { font-size: var(--text-lg); line-height: 1.4; }
.offering-row h3 a { display: inline-flex; min-height: 2.75rem; align-items: center; text-decoration: none; }
.adaptive-rows h3 a { text-decoration: underline; }
.offering-row { align-items: center; }
.offering-row__identity { display: grid; gap: var(--space-1); min-width: 0; }
.offering-row__identity h3 a { padding-block: var(--space-1); }
.offering-row__identity .card-note { margin: 0; font-size: var(--text-sm); line-height: 1.4; }
@media (min-width: 48rem) {
  .offering-row { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--space-5); }
}
@media (min-width: 64rem) {
  .offering-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: var(--space-4); align-items: center; }
}
@media (hover: hover) {
  .offering-row h3 a:hover { text-decoration: underline; }
}

.card-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.card-grid > li { display: grid; }
.card-grid--aid { max-width: 44rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 40rem) { .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 72rem) { .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.record-card { display: grid; gap: var(--space-2); align-content: start; padding: var(--space-4); border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow-sm); }
.offering-card__photo { width: 100%; max-height: 18rem; aspect-ratio: 3 / 2; background: var(--surface); object-fit: cover; }
.record-card > .offering-card__photo { width: calc(100% + 2 * var(--space-4)); max-width: none; margin: calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) 0; border-radius: var(--radius) var(--radius) 0 0; }
.film-card__poster { max-height: none; aspect-ratio: 2 / 3; }
.record-card__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); }
.record-card h2, .record-card h3, .record-card h4 { font-size: var(--text-xl); line-height: 1.4; }
.record-card h2 a, .record-card h3 a, .record-card h4 a { display: flex; min-height: 2.75rem; align-items: center; text-decoration: none; }
.fact-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-1); }
.fact-chips li { display: inline-flex; max-width: 100%; align-items: center; gap: var(--space-1); padding: .25rem .65rem; border: 1px solid var(--line); border-radius: var(--radius-pill); color: var(--muted); background: var(--surface); font-size: var(--text-xs); font-weight: 650; }
.card-note { color: var(--muted); font-size: var(--text-md); }
.card-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin-block-start: var(--space-2); font-size: var(--text-md); }
.card-links a { display: inline-flex; min-height: 2.75rem; align-items: center; font-weight: 650; }
@media (hover: hover) {
  .record-card h2 a:hover, .record-card h3 a:hover, .record-card h4 a:hover { color: var(--section, var(--accent)); text-decoration: underline; }
}

.in-page-nav { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-4); font-size: var(--text-md); }
.in-page-nav p { color: var(--muted); font-weight: 700; }
.in-page-nav ul { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); }
.in-page-nav a { display: inline-flex; min-height: 2.75rem; align-items: center; font-weight: 650; }
.link-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); column-gap: var(--space-5); }
.link-list a { display: flex; min-height: 2.75rem; align-items: center; gap: var(--space-3); padding-block: var(--space-1); border-block-end: 1px solid var(--line); font-weight: 650; text-decoration: none; }
.link-list a::after { content: ""; flex: none; width: .5rem; height: .5rem; margin-inline-start: auto; border-inline-end: 2px solid var(--boundary); border-block-end: 2px solid var(--boundary); rotate: -45deg; }
.org-offerings__group { display: grid; gap: var(--space-2); margin-block-start: var(--space-3); }
.org-offerings__group > h3 { scroll-margin-block-start: 6rem; }
.empty-state + .detail-section { margin-block-start: var(--space-6); }
@media (hover: hover) {
  .link-list a:hover { color: var(--accent); text-decoration: underline; }
}

.key-dates-list { display: grid; gap: var(--space-2); }
.key-dates-item { display: grid; grid-template-columns: 1fr; gap: var(--space-1); padding: var(--space-2) 0; border-block-end: 1px solid var(--line); }
.key-dates-item.key-dates-item--row { grid-template-columns: minmax(0, 1fr); padding: 0; }
.key-dates-item--row > a { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-2); width: 100%; min-height: 2.75rem; padding: var(--space-2) 0; color: inherit; text-decoration: none; }
.key-dates-item--row > a > span:last-child { display: grid; min-width: 0; gap: var(--space-1); }
.key-dates-item--row .key-dates-item__label, .key-dates-item--row .key-dates-item__meta { display: block; min-width: 0; overflow-wrap: anywhere; }
.key-dates-item:last-child { border-block-end: 0; }
.key-dates-item > time { color: var(--section, var(--accent)); font-size: var(--text-sm); font-weight: 800; }
.key-dates-item__label { font-weight: 650; }
.key-dates-item__meta { color: var(--muted); font-size: var(--text-sm); }
.key-dates-item__label a { display: inline-flex; min-height: 2.75rem; align-items: center; }
@media (min-width: 40rem) {
  .key-dates-item { grid-template-columns: minmax(6.5rem, auto) minmax(0, 1fr); gap: var(--space-3); align-items: baseline; }
}

.glance { display: grid; gap: var(--space-3); padding: var(--space-4); border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow-sm); }
.glance h2 { font-family: var(--font-body); font-size: var(--text-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.facts-list { display: grid; gap: var(--space-3); }
.facts-list > div { display: grid; align-content: start; gap: var(--space-1); }
.facts-list dt { color: var(--muted); font-size: var(--text-sm); font-weight: 700; }
.facts-list dd { font-weight: 600; }
.facts-list--columns { @media (min-width: 40rem) { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-5); } }
.detail-fact-wide, .detail-fact-readable { grid-column: 1 / -1; }
.notice { max-width: var(--reading-measure); padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.page > .notice { margin-block-end: var(--space-5); }
.notice h2 { font-size: var(--text-lg); margin-block-end: var(--space-2); }
.notice p + p { margin-block-start: var(--space-2); }
.notice a { display: inline-flex; min-width: 2.75rem; min-height: 2.75rem; align-items: center; }
.occurrences { display: grid; }
.occurrence { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-3); padding-block: var(--space-2); border-block-end: 1px solid var(--line); }
.occurrence time { font-weight: 700; }
.occurrence--cancelled time { color: var(--danger); text-decoration: line-through; }
.occurrence p { flex-basis: 100%; color: var(--muted); font-size: var(--text-md); }
.event-next-date { display: grid; gap: var(--space-1); }
.event-next-date > .badge { justify-self: start; }
.event-next-date > .occurrences { margin-block-start: var(--space-2); }
.event-next-date time { font-family: var(--font-display); font-size: var(--text-2xl); line-height: 1.35; }
.event-next-date p { color: var(--muted); font-size: var(--text-md); }
.event-dates > summary { color: var(--muted); font-size: var(--text-md); font-weight: 650; }
.event-siblings { display: grid; gap: var(--space-3); margin-block-start: var(--space-2); padding-block-start: var(--space-4); border-block-start: 1px solid var(--line); }
.event-siblings h3 { font-size: var(--text-lg); }
.event-siblings ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: var(--space-2); }
.event-siblings li { display: flex; }
.event-siblings li a { display: flex; min-height: 2.75rem; flex: 1; align-items: center; padding: var(--space-2) var(--space-3); border: 1px solid var(--boundary); border-radius: var(--radius-sm); background: var(--card); font-weight: 700; text-decoration: none; }
.event-siblings__weekly { display: inline-flex; min-height: 2.75rem; align-items: center; justify-self: start; color: var(--accent); font-weight: 700; }
.sources-block { color: var(--muted); font-size: var(--text-sm); }
.source-lines { display: grid; gap: var(--space-3); }
.freshness-line { display: grid; justify-items: flex-start; gap: var(--space-1); }
.freshness-line time { font-weight: 650; white-space: nowrap; }
.source-type { display: inline-flex; min-height: 1.5rem; align-items: center; padding-inline: .5rem; border: 1px solid var(--line); border-radius: var(--radius-pill); color: var(--muted); background: var(--surface); font-size: var(--text-xs); font-weight: 750; letter-spacing: .01em; }
.source-link { padding-block: .7rem; font-weight: 700; overflow-wrap: anywhere; }
.stale-note { color: var(--sun-strong); font-weight: 650; }
.detail-section { display: grid; gap: var(--space-3); }
.detail-section + .detail-section { margin-block-start: var(--space-6); padding-block-start: var(--space-6); border-block-start: 1px solid var(--line); }
@media (hover: hover) {
  .event-siblings li a:hover { border-color: var(--section); color: var(--section); }
}

.event-detail__hero { justify-items: center; }
.event-detail__hero img { width: auto; max-width: 100%; max-height: min(48rem, 75vh); background: var(--surface); object-fit: contain; }
.event-detail__gallery { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); align-items: start; }
.event-detail__gallery img { width: 100%; height: auto; aspect-ratio: auto; background: var(--surface); object-fit: contain; }

.new-here-step__fallback { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
.new-here-step + .notice { margin-block-start: var(--space-6); }

.empty-state { display: grid; gap: var(--space-3); justify-items: start; padding: var(--space-6); border: 1px dashed var(--line-strong); border-radius: var(--radius); background: var(--surface); }
.empty-state h2, .empty-state h3 { font-size: var(--text-lg); }
.empty-state p { max-width: 46ch; color: var(--muted); }
.empty-state a { display: inline-flex; min-height: 2.75rem; align-items: center; color: var(--accent); font-weight: 700; }

.search-form { display: grid; gap: var(--space-2); max-width: 34rem; margin-block-end: var(--space-5); }
.search-form > label { color: var(--muted); font-size: var(--text-sm); font-weight: 700; }
.search-form > div { display: flex; gap: var(--space-2); }
.search-form input { min-width: 0; min-height: 3rem; padding-inline: var(--space-4); }
.search-form button { min-height: 3rem; }
.search-results { display: grid; gap: var(--space-3); }
.search-result { display: grid; align-content: start; gap: var(--space-1); padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.search-result__type { --search-result-type: var(--muted); display: flex; align-items: center; gap: var(--space-2); color: color-mix(in oklab, var(--search-result-type) 62%, var(--ink)); font-size: var(--text-sm); font-weight: 750; }
.search-result__type::before { content: ""; width: .5rem; height: .5rem; flex: 0 0 auto; border-radius: var(--radius-pill); background: var(--search-result-type); }
.search-result__type--organization { --search-result-type: var(--groups); }
.search-result__type--place { --search-result-type: var(--outdoors); }
.search-result__type--offering { --search-result-type: var(--activities); }
.search-result__type--event { --search-result-type: var(--events); }
.search-result h3 { font-size: var(--text-lg); }
.search-result h3 a { display: flex; min-height: 2.75rem; align-items: center; text-decoration: none; }
.search-result p { color: var(--muted); font-size: var(--text-md); }
.search-result__summary { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.search-result__occurrence { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
.search-result__occurrence time { color: var(--ink); font-weight: 700; }
@media (max-width: 55.999rem) {
  .search-results { gap: var(--space-2); }
  .search-result { gap: 0; padding: var(--space-3); }
}
@media (min-width: 56rem) { .search-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.submit-form__hint { color: var(--muted); font-size: var(--text-sm); }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.table-wrap--wide table { min-width: 36rem; }
.table-wrap caption { padding: var(--space-3) var(--space-4) 0; color: var(--muted); font-size: var(--text-sm); text-align: start; }
.table-wrap th, .table-wrap td { padding: var(--space-3) var(--space-4); }
@media (max-width: 40rem) {
  .table-wrap--stack { border: 0; background: transparent; }
  .table-wrap--stack table { display: block; }
  .table-wrap--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; clip-path: inset(50%); }
  .table-wrap--stack tbody { display: grid; gap: var(--space-3); }
  .table-wrap--stack tr { display: grid; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--card); }
  .table-wrap--stack th[scope="row"] { padding: var(--space-3) var(--space-4); border-block-end: 1px solid var(--line); }
  .table-wrap--stack td { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-2) var(--space-4); border-block-end: 1px solid var(--line); }
  .table-wrap--stack td:last-child { border-block-end: 0; }
  .table-wrap--stack td::before { content: attr(data-label); color: var(--muted); font-size: var(--text-sm); font-weight: 700; }
  .freshness-table .table-wrap--stack tbody { gap: var(--space-2); }
  .freshness-table .table-wrap--stack th[scope="row"] { padding-block: var(--space-2); }
  .freshness-table .table-wrap--stack td { gap: var(--space-2); padding-block: var(--space-1); }
}
.week-cell-link { display: grid; min-block-size: 2.75rem; gap: var(--space-1); padding: var(--space-2); border-radius: var(--radius-sm); background: color-mix(in oklab, var(--camps) 12%, var(--card)); font-weight: 650; text-decoration: none; }
.week-cell-link span { color: var(--muted); font-size: var(--text-xs); font-weight: 500; }
.week-cell-link__label { color: var(--ink); font-size: inherit; font-weight: 650; }
@media (hover: hover) {
  .week-cell-link:hover { background: color-mix(in oklab, var(--camps) 24%, var(--card)); }
}

.offering-detail__fact-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-4); align-items: start; margin-block-start: var(--space-6); }
.offering-detail__fact-grid .detail-section + .detail-section { margin-block-start: 0; padding-block-start: 0; border-block-start: 0; }
.offering-detail__fact-grid h2 { margin-block-end: var(--space-3); font-size: var(--text-lg); }
.offering-detail__fact-grid + .detail-section { margin-block-start: var(--space-6); }
.offering-detail__lead h2 { margin-block-end: var(--space-3); }
.offering-detail__lead > p { max-width: var(--reading-measure); margin-block-end: var(--space-3); }
.offering-detail__lead .facts-list { max-width: 30rem; }
.offering-detail__lead.card { padding: var(--space-5); }
.offering-detail__content { min-width: 0; }
.offering-detail__table { display: none; }
.offering-detail__table--past th, .offering-detail__table--past td { color: var(--muted); }
.offering-detail__run-cards { display: grid; gap: var(--space-3); }
.offering-detail__run-cards h3 { font-size: var(--text-lg); }
.offering-detail .eyebrow { align-items: flex-start; max-width: 100%; }
.offering-detail .eyebrow::before { flex: 0 0 .55rem; margin-block-start: .3em; }
.offering-detail .eyebrow > span { min-width: 0; overflow-wrap: anywhere; }
.offering-past-seasons > summary { padding-block: var(--space-2); font-weight: 700; }
.past-run-list > li { display: grid; gap: var(--space-3); padding-block: var(--space-4); border-block-end: 1px solid var(--line); }
.facts-list--run { display: grid; grid-template-columns: 1fr; gap: var(--space-2); }
.facts-list--run dd { font-size: var(--text-md); }
@media (min-width: 48rem) {
  .offering-detail__fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offering-detail__table { display: block; }
  .offering-detail__run-cards { display: none; }
  .facts-list--run { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
}

.place-facet { display: grid; gap: var(--space-2); }
.place-facet h3 { font-size: var(--text-base); }
.place-detail .place-facet { margin-block-start: var(--space-4); }
.place-detail > .place-gallery { margin-block-start: var(--space-5); }
.place-detail__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); }
.place-detail__actions > a { display: inline-flex; min-height: 2.75rem; align-items: center; font-weight: 700; }

.prose-grid { display: grid; gap: var(--space-6); }
.prose-grid section { display: grid; gap: var(--space-3); max-width: var(--reading-measure); }
.prose-grid ul, .prose-grid ol { display: grid; gap: var(--space-2); padding-inline-start: var(--space-5); }
.prose-grid li { list-style: disc; }
.prose-grid ol li { list-style: decimal; }
.prose-grid .service-area-list, .prose-grid .about-policy-links { padding-inline-start: 0; }
.prose-grid .service-area-list li, .prose-grid .about-policy-links li { list-style: none; }
.prose-grid .about-policy-links { gap: 0; }
.policy-list { display: grid; gap: var(--space-3); }
.policy-list dt { font-weight: 750; }
.policy-list dd { color: var(--muted); }
.service-area-list { display: grid; gap: var(--space-3); }
.service-area-list li { display: grid; gap: var(--space-1); }
.service-area-list span { color: var(--muted); }
.freshness-table { display: grid; gap: var(--space-3); margin-block-start: var(--space-6); }
.freshness-table > p { color: var(--muted); }
.prose { max-width: var(--reading-measure); }
.prose p + p { margin-block-start: var(--space-3); }
.prose ul { display: grid; gap: var(--space-2); margin-block-start: var(--space-3); padding-inline-start: var(--space-5); }
.prose li { list-style: disc; }
.prose, .prose-grid, .detail-description, .event-description { text-wrap: wrap; }

.about-layout { gap: var(--space-7); }
.about-main, .about-rail { display: grid; align-content: start; gap: var(--space-7); }
.about-trust { padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.about-trust__stats { display: grid; gap: var(--space-2); }
.about-trust__stats > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--space-3); align-items: baseline; padding-block: var(--space-2); border-block-start: 1px solid var(--line); }
.about-trust__stats dt { font-weight: 700; }
.about-trust__stats dd { text-align: end; font-variant-numeric: tabular-nums; }
.about-trust__stats dd strong { font-size: var(--text-lg); }
.about-trust__stats dd span { display: block; color: var(--muted); font-size: var(--text-sm); }
.about-action-link, .about-policy-links a { display: inline-flex; min-height: 2.75rem; align-items: center; font-weight: 700; }
@media (min-width: 64rem) {
  .about-layout { grid-template-columns: minmax(0, var(--reading-measure)) minmax(16rem, 20rem); justify-content: space-between; gap: var(--space-8); }
  .about-policy-links a { width: 100%; }
}

.submit-form { display: grid; gap: var(--space-5); max-width: 40rem; }
.submit-form fieldset { display: grid; gap: var(--space-3); margin: 0; padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.submit-form legend { padding-inline: var(--space-2); font-weight: 750; }
.submit-form__radio { display: flex; align-items: center; gap: var(--space-2); min-height: 2.75rem; font-weight: 600; cursor: pointer; }
.submit-form__radio input { width: 1.375rem; min-height: 1.375rem; accent-color: var(--accent); }
.submit-form__field { display: grid; gap: var(--space-1); }
.submit-form__field > label { color: var(--muted); font-size: var(--text-sm); font-weight: 700; }
.submit-form__error { color: var(--danger); font-size: var(--text-sm); font-weight: 650; }
.submit-error-summary { display: grid; gap: var(--space-2); padding: var(--space-4); border: 1px solid var(--danger); border-radius: var(--radius); background: var(--danger-soft); }
.submit-error-summary h2 { color: var(--danger); font-size: var(--text-lg); }
.submit-error-summary ul { display: grid; gap: var(--space-1); padding-inline-start: var(--space-5); }
.submit-error-summary li { list-style: disc; }
.submit-error-summary a { display: inline-flex; min-height: 2.75rem; align-items: center; }
.submit-success { display: grid; gap: var(--space-3); max-width: 40rem; padding: var(--space-5); border: 1px solid var(--success); border-radius: var(--radius); background: var(--success-soft); }
.submit-success, .submit-error-summary, main h2[id] { scroll-margin-block-start: 5rem; }
.submit-form__follow-up { border-block: 1px solid var(--line); }
.submit-form__follow-up summary { padding-block: var(--space-3); font-weight: 700; }
.submit-form__follow-up summary span { color: var(--muted); font-size: var(--text-xs); font-weight: 600; }
.submit-form__follow-up[open] { display: grid; gap: var(--space-4); padding-block-end: var(--space-4); }
.submit-note { max-width: var(--reading-measure); margin-block-start: var(--space-6); }
.submit-note h2 { font-size: var(--text-lg); margin-block-end: var(--space-2); }
.submit-note p { color: var(--muted); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@media (forced-colors: active) {
  .subnav a[aria-current], .view-toggle a[aria-current], .primary-nav a[aria-current], .weekend-day-index a[aria-current="date"] { forced-color-adjust: none; color: SelectedItemText; background: SelectedItem; border-color: SelectedItem; }
}
@media print {
  @page { margin: .45in; }
  .site-header, .site-footer, .skip-link, .breadcrumbs, .subnav, .load-more, .view-toggle { display: none !important; }
  html, body { background: #fff !important; }
  body { color: #000 !important; }
  .page { width: 100%; padding-block: 0; }
  .card, .event-card, .notice { border-color: #777; }
  .record-card, .glance { border: 1px solid #777; }
  .card, .record-card, .event-card, .glance, .notice { box-shadow: none; break-inside: avoid; }
  a { text-decoration: none; }
  .page-heading { margin-block-end: .3rem; }
  .notice { margin-block-end: .4rem; padding: .25rem .4rem; border-radius: 0; background: #fff !important; }
  .page, .page * { color: #000 !important; }
  .key-dates-list { gap: 0; }
  .key-dates-item { grid-template-columns: minmax(10rem, 13rem) minmax(0, 1fr); gap: .5rem; padding: .12rem 0; border-color: #bbb; font-size: 9pt; line-height: 1.18; break-inside: avoid; }
  .key-dates-item__meta { font-size: 8pt; }
}
.camp-week-grid-shell { position: relative; width: 100%; max-width: 100%; min-width: 0; }
.camp-week-grid-shell::after { display: none; position: absolute; z-index: 4; inset-block: 0; inset-inline-end: 0; width: 2rem; pointer-events: none; background: linear-gradient(to right in oklab, transparent, color-mix(in oklab, var(--camps) 22%, var(--card))); content: ""; }
.camp-week-grid { display: none; width: 100%; max-width: 100%; min-width: 0; }
.camp-week-grid:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
@media (min-width: 40rem) {
  .camp-week-grid { display: block; max-height: min(70vh, 42rem); overflow: auto; }
  .camp-week-grid-shell::after { display: block; }
  .camp-week-grid th, .camp-week-grid td { padding: var(--space-2); vertical-align: top; }
  .camp-week-grid thead th { position: sticky; z-index: 2; inset-block-start: 0; background: var(--card); box-shadow: 0 1px 0 var(--line); white-space: nowrap; }
  .camp-week-grid th[scope="row"], .camp-week-grid thead th:first-child { position: sticky; z-index: 1; inset-inline-start: 0; min-width: 13rem; background: var(--card); box-shadow: 1px 0 0 var(--line); }
  .camp-week-grid thead th:first-child { z-index: 3; }
  .camp-week-grid th[scope="row"] > span { display: block; }
  .camp-week-grid th[scope="row"] > span + span { margin-block-start: var(--space-1); color: var(--muted); font-size: var(--text-sm); font-weight: 500; }
}

.page[data-section="family-services"] .page-heading { margin-block-end: var(--space-3); }
@media (max-width: 39.999rem) {
  .page[data-section="family-services"] { padding-block: var(--space-4) var(--space-6); }
  .page[data-section="family-services"] .page-heading { gap: var(--space-2); }
  .page[data-section="family-services"] .page-heading > p { font-size: var(--text-base); }
}

.camp-week-stack { display: grid; gap: var(--space-5); }
.camp-week-stack__week { display: grid; gap: var(--space-2); scroll-margin-block-start: 5rem; }
.camp-week-stack__week > h3 { padding-block-end: var(--space-2); border-block-end: 2px solid var(--camps); font-size: var(--text-lg); }
.camp-week-stack__week > ul { display: grid; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.camp-week-stack__week li + li { border-block-start: 1px solid var(--line); }
.camp-week-stack__link { display: grid; min-height: 2.75rem; gap: var(--space-1); padding: var(--space-3); color: var(--ink); text-decoration: none; }
.camp-week-stack__link > span { color: var(--muted); font-size: var(--text-sm); }
.camp-week-jump { display: none; }
@media (max-width: 39.999rem) { .camp-week-jump { display: block; } }
@media (min-width: 40rem) { .camp-week-stack { display: none; } }
@media (hover: hover) {
  .camp-week-stack__link:hover { background: color-mix(in oklab, var(--camps) 8%, var(--card)); }
}

.offering-detail__hero-photo, .offering-detail__gallery-photo { width: 100%; height: auto; border-radius: var(--radius-sm); object-fit: contain; }
.offering-detail .offering-detail__hero-photo { max-height: none; }
.offering-detail .offering-detail__gallery-photo { aspect-ratio: auto; }

.event-detail .page-heading, .offering-detail .page-heading { max-width: 54rem; }
.detail-byline { font-size: var(--text-base); color: var(--muted); }
.detail-intro { display: grid; gap: var(--space-5); align-items: start; margin-block: var(--space-5) var(--space-7); }
.detail-intro > .glance { display: block; position: static; min-width: 0; width: 100%; }
.detail-intro .glance .facts-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin-block-start: var(--space-4); }
.detail-media { min-width: 0; }
.detail-media:not(:has(img)) { display: none; }
.detail-media .place-hero { margin: 0; justify-items: start; }
.detail-media .place-gallery { margin-block-start: var(--space-3); }
.detail-media .place-hero img { width: auto; max-width: 100%; max-height: none; object-fit: contain; }
.detail-media figcaption { padding-block-start: var(--space-1); }
.detail-reading { max-width: 54rem; }
.detail-description p { max-width: var(--reading-measure); line-height: 1.8; white-space: pre-line; }
.detail-reading .event-siblings { margin-block: var(--space-6); }
.run-detail-note { margin-block-start: var(--space-2); font-size: var(--text-md); }
.detail-intro:has(.detail-media):not(:has(.detail-media img)) { grid-template-columns: minmax(0, 1fr); }
.detail-intro:has(.detail-media):not(:has(.detail-media img)) > .glance { grid-column: 1; max-width: 54rem; }
@media (max-width: 40rem) {
  .event-detail .breadcrumbs li:last-child, .offering-detail .breadcrumbs li:last-child, .place-detail .breadcrumbs li:last-child { display: none; }
}
@media (max-width: 39.99rem) {
  .event-detail, .offering-detail { padding-block-start: var(--space-5); }
  .event-detail .page-heading, .offering-detail .page-heading { gap: var(--space-2); margin-block-end: var(--space-5); }
}
@media (min-width: 64rem) {
  .detail-intro { grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem); gap: var(--space-6); }
  .detail-intro > .glance { grid-column: 2; grid-row: 1; }
  .detail-intro > .detail-media { grid-column: 1; grid-row: 1; }
  .detail-intro--text { grid-template-columns: minmax(0, 1fr); }
  .detail-intro--text > .glance { display: grid; grid-column: 1; grid-template-columns: minmax(0, 1fr) fit-content(18rem); grid-template-areas: "title title" "facts action"; gap: var(--space-4) var(--space-6); align-items: start; max-width: 54rem; }
  .detail-intro--text .glance > .facts-list { grid-area: facts; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-block-start: 0; }
  .detail-intro--text .detail-fact-readable { grid-column: auto; }
}

.browse-page > .page-heading { margin-block-end: var(--space-5); }
.load-more { display: grid; justify-items: center; gap: var(--space-2); padding-block: var(--space-5); }
.load-more p { margin: 0; color: var(--muted); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.load-more div { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); }
.load-more [aria-disabled="true"] { cursor: progress; }
@media (max-width: 39.99rem) {
  .event-results .view-toggle { display: none; }
  .browse-page { padding-block-start: var(--space-5); }
  .browse-page > .page-heading { gap: var(--space-2); margin-block-end: var(--space-4); }
  .browse-page > .page-heading > p { font-size: var(--text-base); }
}

.month-tools { display: grid; gap: var(--space-2); margin-block: var(--space-2) var(--space-4); }
.month-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); }
.month-nav a, .month-nav span[aria-disabled="true"] { display: inline-flex; min-height: 2.75rem; align-items: center; gap: var(--space-1); padding-inline: var(--space-2); border-radius: var(--radius-sm); font-size: var(--text-md); font-weight: 700; text-decoration: none; }
.month-nav > :first-child { margin-inline-start: calc(-1 * var(--space-2)); }
.month-nav > :last-child { margin-inline-end: calc(-1 * var(--space-2)); }
.month-nav a { color: var(--accent); }
.month-nav span[aria-disabled="true"] { color: var(--muted); opacity: .6; }
.date-jump { border-block: 1px solid var(--line); }
.date-jump > summary { flex-wrap: wrap; padding-block: var(--space-2); font-weight: 700; }
.date-jump > summary > span { font-size: var(--text-sm); color: var(--muted); font-weight: 500; }
.date-jump .subnav { margin-block: var(--space-2) var(--space-3); }
.weekly-groups { display: grid; gap: var(--space-6); margin-block-start: var(--space-4); }
.weekly-groups h2 { margin-block-end: var(--space-2); font-size: var(--text-xl); }
.weekly-series { padding-block: var(--space-3); border-block-end: 1px solid var(--line); }
.weekly-series h3 { font-size: var(--text-lg); line-height: 1.4; }
.weekly-series h3 a { display: flex; align-items: center; min-height: 2.75rem; text-decoration: none; }
.weekly-series p { color: var(--muted); font-size: var(--text-md); line-height: 1.5; }
.page[data-section="family-services"] > .detail-section + .notice { margin-block-start: var(--space-5); }

.event-detail__layout { display: grid; gap: var(--space-5); align-items: start; }
.event-detail__sidebar { display: contents; }
.event-detail__layout .glance { order: -1; width: 100%; min-width: 0; position: static; }
.event-detail__body { display: contents; min-width: 0; }
.event-detail__body > :not(.detail-description) { order: 2; }
.event-detail__layout .detail-media { order: 1; }
.event-detail__layout .event-detail__hero img { width: 100%; object-fit: contain; }
.event-detail__layout .facts-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.event-detail__body > .event-siblings { margin-block: var(--space-6); }
.event-detail__body > .detail-section + .detail-section { margin-block-start: var(--space-6); }
.event-description { display: grid; gap: var(--space-4); }
.event-description p { white-space: pre-line; }
.event-description ul, .event-description ol { display: grid; gap: var(--space-2); padding-inline-start: 1.5em; }
.event-description ul { list-style: disc; }
.event-description ol { list-style: decimal; }
@media (min-width: 64rem) {
  .event-detail__layout { grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem); gap: var(--space-6); }
  .event-detail__sidebar { display: grid; gap: var(--space-4); grid-column: 2; grid-row: 1; }
  .event-detail__body { display: block; grid-column: 1; grid-row: 1; }
  .event-detail__layout .glance, .event-detail__layout .detail-media { order: 0; }
}
@media (max-width: 63.999rem) {
  .event-detail__body > .event-siblings, .event-detail__body > .detail-section + .detail-section { margin-block: 0; }
}

.browse-page > .event-results + .detail-section { margin-block-start: var(--space-7); padding-block-start: var(--space-6); border-block-start: 1px solid var(--line); }
.film-card__showtimes { display: grid; gap: var(--space-2); margin-block-start: var(--space-1); }
.film-card__showtimes dt { font-size: var(--text-sm); font-weight: 700; }
.film-card__showtimes dt a { text-decoration: none; }
.film-card__showtimes dd { color: var(--muted); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
@media (hover: hover) {
  .film-card__showtimes dt a:hover { text-decoration: underline; }
}

@media (min-width: 48rem) {
  [data-section="camps"] .compare thead th:first-child, [data-section="camps"] .compare tbody th { width: 30%; }
  [data-section="camps"] .compare__ages, [data-section="camps"] .compare__price, [data-section="camps"] .compare__signup { width: 13%; }
  [data-section="camps"] .compare__day { width: 11%; }
  [data-section="camps"] .compare__when { width: 20%; }
}

.camp-views { margin-block-end: var(--space-3); }
.camp-views ul { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); overflow: hidden; }
.camp-views li + li { border-inline-start: 1px solid var(--line-strong); }
.camp-views a { display: inline-flex; align-items: center; min-height: 2.75rem; padding-inline: var(--space-3); color: var(--muted); font-size: var(--text-sm); font-weight: 700; text-decoration: none; }
.camp-views a[aria-current="page"] { color: var(--ink); background: color-mix(in oklab, var(--section) 14%, var(--card)); }
@media (hover: hover) { .camp-views a:hover { color: var(--ink); } }

.camp-view { display: grid; gap: var(--space-3); }
.camp-view > h3 { font-size: var(--text-lg); }
.camp-view__note { max-width: 62ch; color: var(--muted); font-size: var(--text-md); }
.camp-week-stack__week > h4 { padding-block-end: var(--space-2); border-block-end: 2px solid var(--camps); font-size: var(--text-lg); }
.camp-week-jump ul { display: flex; flex-wrap: wrap; gap: .25rem var(--space-4); padding-block: var(--space-2); }
.camp-week-jump a { display: inline-flex; min-height: 2.75rem; align-items: center; font-weight: 650; }

.official-page__site { font-size: var(--text-base); font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.official-page__site a { text-decoration-color: color-mix(in oklab, currentColor 35%, transparent); }
.official-page__visit { display: grid; gap: var(--space-3); align-content: start; }
.official-page__shot:empty { display: none; }
.official-page__shot figure { display: grid; gap: var(--space-1); margin: 0; }
.official-page__shot a { display: block; border-radius: var(--radius-sm); }
.official-page__shot img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border: 1px solid var(--line); border-radius: var(--radius-sm); outline: 0; background: var(--surface); }
.official-page__shot figcaption { color: var(--muted); font-size: var(--text-xs); line-height: 1.4; overflow-wrap: anywhere; }
.official-page__visit > .button { width: 100%; }
.detail-intro .glance > .official-page__visit { margin-block-start: var(--space-3); }

.detail-media [role="button"] { cursor: pointer; transition: opacity var(--dur) var(--ease-out); }
.detail-media .place-hero img, .detail-media .place-gallery img { background: var(--surface); }
.detail-media .place-hero .detail-photos__main { width: 100%; }
.event-detail__layout .glance > .event-next-date { margin-block-start: var(--space-2); }
@media (hover: hover) {
  .detail-media [role="button"]:hover { opacity: .82; }
}

@media (min-width: 40rem) {
  .detail-intro > .glance { display: grid; grid-template-columns: minmax(0, 1fr) 16rem; grid-template-areas: "site site" "facts visit"; gap: var(--space-4) var(--space-6); align-items: start; }
  .detail-intro .glance > .official-page__site { grid-area: site; }
  .detail-intro .glance > .official-page__visit { grid-area: visit; margin-block-start: 0; }
  .detail-intro .glance > .facts-list { grid-area: facts; margin-block-start: 0; }
  .detail-intro > .glance:not(:has(.official-page__visit)) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "facts"; }
  .detail-intro > .glance:not(:has(.facts-list)) { width: fit-content; grid-template-columns: minmax(0, 18rem); grid-template-areas: "site" "visit"; }
}
@media (min-width: 64rem) {
  .detail-intro:not(.detail-intro--text) > .glance { display: block; }
  .detail-media .place-hero .detail-photos__main { width: min(100%, 44rem); }
  .detail-intro:not(.detail-intro--text) .glance > .official-page__visit { margin-block-start: var(--space-3); }
  .detail-intro:not(.detail-intro--text) .glance > .facts-list { margin-block-start: var(--space-4); }
  .detail-intro--text > .glance { grid-template-columns: minmax(0, 1fr) 18rem; grid-template-areas: "site site" "facts visit"; }
}

.icon { width: 1.1rem; height: 1.1rem; flex: none; }

.mode-tabs ul { display: flex; gap: var(--space-5); }
.mode-tabs a { position: relative; display: inline-flex; align-items: center; min-height: 2.9rem; padding-inline: .15rem; color: var(--muted); font-weight: 750; text-decoration: none; }
.mode-tabs a[aria-current="page"] { color: var(--ink); }
.mode-tabs a[aria-current="page"]::after { content: ""; position: absolute; inset: auto 0 -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--section, var(--accent)); }
@media (hover: hover) { .mode-tabs a:hover { color: var(--ink); } }
.browse-page > .mode-tabs, .page .mode-tabs { margin-block-end: var(--space-5); border-block-end: 1px solid var(--line-strong); }

.directory-page { --gutter: max(1rem, (100% - var(--measure)) / 2); --sticky-top: calc(4rem + 1px + var(--header-stripe)); padding-block-end: var(--space-7); }
.directory-head, .directory-jump, .directory-index, .topic-compare, .topic-more, .search-bar, .search-layout { padding-inline: var(--gutter); }
.directory-head { display: grid; gap: var(--space-3); padding-block: var(--space-6) var(--space-5); background: var(--head-band); }
.directory-head > .mode-tabs { margin-block: var(--space-1) var(--space-2); border-block-end: 1px solid var(--line-strong); }
.search-page .directory-head { padding-block-end: 0; }
.search-page .directory-head > .mode-tabs { margin-block-end: 0; }
.directory-head .breadcrumbs { margin-block-end: 0; }
.directory-head h1 { max-width: 24ch; }
.directory-lead { max-width: 62ch; color: var(--muted); font-size: var(--text-lg); }
.directory-intro { max-width: 68ch; }
.directory-intro a { color: var(--accent-strong); font-weight: 650; }
.directory-quick { display: flex; gap: var(--space-2); max-width: 32rem; }
.directory-quick input { flex: 1; min-width: 0; }
.directory-quick button { border-color: var(--boundary); color: var(--accent-strong); background: transparent; }
@media (hover: hover) { .directory-quick button:hover { color: var(--accent-ink); } }

.topic-facts { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-5); color: var(--muted); font-size: var(--text-md); font-variant-numeric: tabular-nums; }
.topic-facts div { display: flex; gap: .4rem; }
.topic-facts dt { color: var(--ink); font-weight: 750; white-space: nowrap; }
.topic-facts dd { display: flex; flex-wrap: wrap; column-gap: 1.1rem; margin: 0; overflow: hidden; }
.topic-facts__coverage { color: var(--muted); }
.topic-facts__part { position: relative; }
.topic-facts__part::before { content: "·"; position: absolute; inset-inline-end: 100%; width: 1.1rem; color: var(--muted); text-align: center; }

.directory-jump { border-block-end: 1px solid var(--line); background: color-mix(in oklab, var(--paper) 94%, transparent); }
.directory-jump ul { display: flex; flex-wrap: wrap; gap: 0 var(--space-4); padding-block: .1rem; }
.directory-jump li { white-space: nowrap; }
.directory-jump a { display: inline-flex; min-height: 2.75rem; align-items: center; color: var(--muted); font-size: var(--text-sm); font-weight: 700; text-decoration: none; }
@media (hover: hover) { .directory-jump a:hover { color: var(--ink); text-decoration: underline; } }
@media (min-width: 64rem) { .directory-jump { position: sticky; z-index: 10; inset-block-start: var(--sticky-top, 0); backdrop-filter: blur(8px); } .directory-jump ul { gap: .2rem var(--space-5); } }

.directory-index { padding-block-start: var(--space-4); }
.top-topic { scroll-margin-block-start: 7rem; padding-block: var(--space-6) var(--space-5); border-block-start: var(--rule-strong) solid var(--ink); }
.top-topic:first-child { border-block-start: 0; padding-block-start: var(--space-4); }
.top-topic__head { display: grid; gap: .2rem; margin-block-end: var(--space-5); }
.top-topic__head h2 { font-size: var(--text-2xl); }
.top-topic__head p { max-width: 70ch; color: var(--muted); }
.top-topic__head a, .directory-node a:not(.directory-names a) { text-decoration: none; }
@media (hover: hover) { .top-topic__head a:hover { text-decoration: underline; text-decoration-color: var(--section); } }
.directory-cols { columns: 3 16rem; column-gap: var(--space-6); }
.directory-node { scroll-margin-block-start: 7rem; break-inside: avoid; padding-block-end: var(--space-4); }
.directory-node:has(> .directory-node__children) { break-inside: auto; }
.directory-node:has(> .directory-node__children) > :is(h2, h3) { break-after: avoid; }
.directory-node__label { color: var(--muted); font-weight: 700; }
.directory-node > :is(h2, h3, h4) { display: flex; align-items: baseline; gap: .4rem; font-family: var(--font-body); font-size: var(--text-base); font-weight: 800; letter-spacing: 0; }
.directory-node--sub > :is(h3, h4) { font-size: var(--text-md); }
.directory-node > :is(h2, h3, h4) a { color: color-mix(in oklch, var(--section) 82%, var(--ink)); }
@media (hover: hover) { .directory-node > :is(h2, h3, h4) a:hover { text-decoration: underline; } }
.directory-node__children { display: grid; gap: var(--space-3); margin-block-start: var(--space-2); padding-inline-start: var(--space-3); border-inline-start: 1px solid var(--line); }
.directory-node__children .directory-node { padding-block-end: 0; }
.directory-count { color: var(--muted); font-family: var(--font-body); font-size: .86em; font-weight: 500; font-variant-numeric: tabular-nums; }
.directory-names { margin-block-start: .2rem; font-size: var(--text-md); line-height: 1.75; }
.directory-names li { display: inline; }
.directory-names li:not(:last-child)::after { content: "·"; margin-inline: .4rem; color: var(--line-strong); }
.directory-names a { text-decoration: underline; text-decoration-color: color-mix(in oklch, currentColor 28%, transparent); text-decoration-thickness: 1px; text-underline-offset: .22em; }
.directory-names__more a { color: var(--accent-strong); font-weight: 700; }
@media (hover: hover) { .directory-names a:hover { color: var(--accent-strong); text-decoration: underline; } }
.directory-names.directory-names--listings { display: grid; gap: .5rem; margin-block-start: .35rem; line-height: 1.35; }
.directory-names.directory-names--listings li { display: block; }
.directory-names.directory-names--listings li:not(:last-child)::after { content: none; }

.topic-siblings { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem var(--space-4); font-size: var(--text-md); }
.topic-siblings > span { color: var(--muted); }
.topic-siblings > span a { color: var(--ink); font-weight: 750; }
.topic-siblings ul { display: flex; flex-wrap: wrap; gap: .3rem var(--space-4); }
.topic-siblings ul a { color: var(--accent-strong); font-weight: 700; text-decoration: none; }
@media (hover: hover) { .topic-siblings ul a:hover { text-decoration: underline; } }

.topic-compare { padding-block-start: var(--space-4); }
.topic-highlight { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-3) var(--space-5); padding-block: var(--space-3); }
.topic-highlight[hidden] { display: none; }
.topic-highlight__open { display: flex; min-height: 2.75rem; align-items: center; gap: .55rem; font-weight: 650; cursor: pointer; }
.topic-highlight__open input, .filter-check input { width: 1.1rem; min-height: 0; height: 1.1rem; padding: 0; accent-color: var(--accent); }
.topic-highlight__status { min-height: 2.75rem; display: flex; align-items: center; color: var(--muted); font-size: var(--text-md); }
.topic-highlight__clear, .filter-chips__clear { min-height: 2.75rem; padding: 0; border: 0; background: none; color: var(--accent-strong); font-weight: 700; text-decoration: underline; }
@media (hover: hover) { .topic-highlight__clear:hover, .filter-chips__clear:hover { background: none; color: var(--ink); border: 0; } }

.age-stepper > label, .search-bar label, .filter-group__legend { display: block; margin-block-end: .3rem; color: var(--muted); font-size: var(--text-sm); font-weight: 750; }
.age-stepper__controls { display: flex; align-items: center; gap: .25rem; }
.age-stepper__controls input { width: 5.6rem; text-align: center; padding-inline: .3rem; font-variant-numeric: tabular-nums; }
.age-stepper__controls button { width: 2.75rem; padding: 0; border-color: var(--boundary); color: var(--ink); background: var(--card); }
@media (hover: hover) { .age-stepper__controls button:hover:not(:disabled) { color: var(--ink); background: var(--surface); border-color: var(--boundary); } }
.age-stepper__controls button:disabled { cursor: default; opacity: .45; }

.entry-block { scroll-margin-block-start: 6rem; padding-block: var(--space-5) var(--space-3); border-block-end: 1px solid var(--line-strong); transition: opacity var(--dur) var(--ease-out); }
.entry-block.is-dimmed { opacity: .45; }
.entry-block__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem var(--space-4); margin-block-end: var(--space-2); }
.entry-block__head h2 { font-size: var(--text-xl); }
.entry-block__head h2 a { text-decoration: none; }
@media (hover: hover) { .entry-block__head h2 a:hover { text-decoration: underline; text-decoration-color: var(--section); } }
.entry-block__facts, .result-row__facts { color: var(--muted); font-size: var(--text-md); font-variant-numeric: tabular-nums; }
.entry-block__facts li, .result-row__facts li { display: inline; }
.entry-block__facts li + li::before, .result-row__facts li + li::before { content: "·"; margin-inline: .45rem; color: var(--line-strong); }
.entry-block__source { margin-block-start: var(--space-2); color: var(--muted); font-size: var(--text-xs); }
.entry-block__source a { color: var(--muted); }
@media (hover: hover) { .entry-block__source a:hover { color: var(--ink); } }

.compare { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: var(--text-md); font-variant-numeric: tabular-nums; }
.compare th, .compare td { padding: var(--row-pad) .6rem var(--row-pad) 0; border-block-end: 1px solid var(--line); vertical-align: baseline; overflow-wrap: anywhere; }
.compare thead th { padding-block: .35rem; color: var(--muted); font-size: var(--text-xs); font-weight: 750; letter-spacing: .02em; }
.compare tbody tr:last-child > * { border-block-end: 0; }
.compare tbody th { width: 36%; font-weight: var(--name-weight); }
.compare tbody th a { color: var(--ink); text-decoration: none; }
@media (hover: hover) { .compare tbody th a:hover { color: var(--accent-strong); text-decoration: underline; } }
.compare thead th:first-child { width: 36%; }
.compare__ages, .compare__price, .compare__signup { width: 14%; }
.compare__when { width: 22%; }
.compare--entries tbody tr { scroll-margin-block-start: 6rem; }
.compare__meta { display: block; margin-block-start: .15rem; color: var(--muted); font-size: var(--text-xs); font-weight: 400; }
.compare tbody th .compare__meta a { color: var(--muted); font-weight: 400; text-decoration: underline; }
.compare__by { display: block; margin-block-start: .1rem; color: var(--muted); font-size: var(--text-sm); font-weight: 500; }
.compare tbody th .compare__by a { color: inherit; text-decoration: none; }
@media (hover: hover) { .compare tbody th .compare__by a:hover { color: var(--accent-strong); text-decoration: underline; } }
.compare__summary { display: -webkit-box; margin-block-start: .3rem; overflow: hidden; color: color-mix(in oklch, var(--ink) 84%, var(--paper)); font-size: var(--text-sm); font-weight: 400; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.compare tr { transition: opacity var(--dur) var(--ease-out); }
.compare tr.is-dimmed { opacity: .35; }
.unknown { color: var(--muted); }
.is-free { color: var(--success); font-weight: 700; }
.plain-signup { color: var(--muted); }
@media (max-width: 47.99rem) {
  .compare thead { display: none; }
  .compare, .compare tbody, .compare tr, .compare th, .compare td { display: block; width: auto; }
  .compare tr { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem 1rem; padding-block: .7rem; border-block-end: 1px solid var(--line); }
  .compare tbody tr:last-child { border-block-end: 0; }
  .compare th, .compare td { padding: 0; border: 0; color: var(--muted); }
  .compare tbody th { flex: 1 0 100%; color: var(--ink); }
  .compare td.is-unknown { display: none; }
}

.topic-more { display: grid; gap: var(--space-4); margin-block-start: var(--space-7); padding-block-start: var(--space-5); }
.topic-more h2 { margin-block-end: var(--space-2); font-size: var(--text-lg); }
.topic-more ul { display: flex; flex-wrap: wrap; gap: .4rem var(--space-5); }
.topic-more a { color: var(--accent-strong); font-weight: 700; text-decoration: none; }
@media (hover: hover) { .topic-more a:hover { text-decoration: underline; } }
.topic-more__actions { padding-block-start: var(--space-4); border-block-start: 1px solid var(--line-strong); }

.search-bar { display: grid; grid-template-columns: minmax(0, 2fr) auto minmax(0, 1fr) auto; grid-template-areas: "q age town go"; align-items: end; gap: var(--space-3); padding-block: var(--space-5); }
.search-bar--no-age { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; grid-template-areas: "q town go"; }
.search-bar--q-only, .search-bar--q-only.search-bar--no-age { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "q go"; max-width: 44rem; }
.search-bar__q { grid-area: q; }
.search-bar .age-stepper { grid-area: age; }
.search-bar__town { grid-area: town; }
.search-bar__go { grid-area: go; gap: .4rem; }
@media (max-width: 37.5rem) {
  .search-bar { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "q q go" "age town town"; gap: var(--space-2); padding-block: var(--space-3); }
  .search-bar--no-age { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "q go" "town town"; }
  .search-bar label, .search-bar .age-stepper > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .search-bar__go { width: 2.75rem; padding: 0; }
  .search-bar__go span { display: none; }
  .search-bar--q-only, .search-bar--q-only.search-bar--no-age { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "q go"; }
}
@media (min-width: 37.51rem) and (max-width: 47.99rem) {
  .search-bar { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "q q q" "age town go"; }
  .search-bar--no-age { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "q q" "town go"; }
  .search-bar--q-only, .search-bar--q-only.search-bar--no-age { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "q go"; }
}
.search-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--space-6); align-items: start; }
@media (max-width: 47.99rem) { .search-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); } }
.search-layout--single { grid-template-columns: minmax(0, 1fr); }
.filter-sidebar { position: sticky; inset-block-start: calc(var(--sticky-top) + var(--space-4)); }
.filter-sidebar summary { font-weight: 800; }
.filter-sidebar__count { color: var(--accent-strong); }
.filter-sidebar__body { display: grid; gap: var(--space-4); padding-block-start: var(--space-2); }
@media (min-width: 48rem) {
  .filter-sidebar summary { pointer-events: none; }
  .filter-sidebar summary::after { display: none; }
}
@media (max-width: 47.99rem) {
  .filter-sidebar { position: static; }
  .filter-sidebar details { padding: .25rem var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); }
  .filter-sidebar__body { padding-block-end: var(--space-3); }
}
.filter-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.filter-check { display: flex; align-items: center; gap: .55rem; min-height: 2.25rem; font-size: var(--text-md); cursor: pointer; }
.filter-check__count { margin-inline-start: auto; color: var(--muted); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.results-pane__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-block-end: var(--space-2); }
@media (max-width: 37.5rem) {
  .results-pane__bar { flex-wrap: nowrap; gap: var(--space-2); }
  .results-pane__bar h2 { font-size: var(--text-lg); white-space: nowrap; }
  .search-sort { min-width: 0; }
  .search-sort__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .search-sort select { max-width: 11.5rem; text-overflow: ellipsis; }
  .search-layout { gap: var(--space-2); }
  .filter-sidebar summary { min-height: 2.75rem; }
}
.results-pane__bar h2 { font-size: var(--text-xl); }
.search-sort { display: flex; align-items: center; gap: .5rem; color: var(--muted); font-size: var(--text-sm); font-weight: 700; }
.search-sort select { width: auto; min-height: 2.4rem; }
.filter-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem var(--space-3); margin-block-end: var(--space-3); }
.filter-chips ul { display: flex; flex-wrap: wrap; gap: .4rem; }
.filter-chips__chip { display: inline-flex; align-items: center; gap: .2rem; min-height: 2rem; padding-inline: .7rem .25rem; border-radius: var(--radius-pill); color: var(--accent-strong); background: var(--accent-soft); font-size: var(--text-sm); font-weight: 700; }
.filter-chips__chip button { position: relative; width: 1.75rem; min-height: 1.75rem; padding: 0; border: 0; border-radius: 50%; color: inherit; background: transparent; }
.filter-chips__chip button::after { content: ""; position: absolute; inset: -.5rem; }
.filter-chips__chip .icon { width: .85rem; height: .85rem; }
@media (hover: hover) { .filter-chips__chip button:hover { color: inherit; background: color-mix(in oklch, var(--accent) 18%, transparent); border: 0; } }
.result-list { border-block-start: 1px solid var(--line); }
.result-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: .25rem var(--space-5); padding-block: var(--space-3); border-block-end: 1px solid var(--line); }
@media (max-width: 47.99rem) { .result-row { grid-template-columns: minmax(0, 1fr); } }
.result-row__name { font-weight: var(--name-weight); text-decoration: none; }
@media (hover: hover) { .result-row__name:hover { color: var(--accent-strong); text-decoration: underline; } }
.result-row__by { color: var(--muted); font-size: var(--text-sm); }
.result-row__by a { text-decoration: none; }
@media (hover: hover) { .result-row__by a:hover { text-decoration: underline; } }
.result-row__facts { align-content: start; padding-block-start: .1rem; }
.result-list--quiet .result-row__name { font-weight: 600; }
.results-pane__note, .results-pane__empty { padding-block: var(--space-5); color: var(--muted); }
.results-pane__empty a { color: var(--accent-strong); font-weight: 700; }
.results-pane__more { display: flex; margin: var(--space-4) auto 0; border-color: var(--boundary); color: var(--accent-strong); background: transparent; }
.results-pane__unknown { margin-block-start: var(--space-5); }
.results-pane__unknown > button { padding: 0; border: 0; background: none; color: var(--muted); font-weight: 700; text-decoration: underline; text-decoration-color: var(--line-strong); }
@media (hover: hover) { .results-pane__unknown > button:hover { color: var(--ink); background: none; border: 0; } }
html[data-query-pending="true"] .results-pane[data-loaded="false"] > :not(.results-pane__bar) { visibility: hidden; }

@media print { .topic-highlight, .directory-jump, .mode-tabs, .directory-quick { display: none !important; } }
.listed-under { color: var(--muted); font-size: var(--text-md); }
.listed-under a { color: var(--accent-strong); font-weight: 700; }
.directory-collections { padding-inline: var(--gutter); padding-block: var(--space-3) 0; }
.directory-collections ul { display: flex; flex-wrap: wrap; gap: .4rem var(--space-4); }
@media (max-width: 37.5rem) {
  .directory-collections ul { flex-wrap: nowrap; overflow-x: auto; padding-block-end: .25rem; scrollbar-width: none; mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); }
  .directory-collections ul::-webkit-scrollbar { display: none; }
  .directory-collections li { flex: none; white-space: nowrap; }
  .directory-collections li:last-child { padding-inline-end: 2.5rem; }
  .directory-collections a { display: inline-flex; min-height: 2.75rem; align-items: center; }
}
.directory-collections a { color: var(--accent-strong); font-weight: 700; }
.directory-names__note { color: var(--muted); font-size: var(--text-sm); }
.topic-part { padding-block-start: var(--space-6); }
.topic-part > h2 { display: flex; align-items: baseline; gap: .4rem; padding-block-end: var(--space-2); border-block-end: var(--rule-strong) solid var(--ink); font-size: var(--text-2xl); }
.topic-part .entry-block__head h3 { font-size: var(--text-xl); }
.topic-part .entry-block__head h3 a { text-decoration: none; }
.entry-thumb { float: inline-start; width: 3.5rem; height: 3.5rem; margin-inline-end: var(--space-3); border-radius: var(--radius-sm); object-fit: cover; background: var(--surface); }
.entry-block__head .entry-thumb { float: none; align-self: center; margin: 0; }
.compare--entries tbody th::after { content: ""; display: block; clear: both; }
.results-pane .search-result { padding-block: var(--space-3); }
.results-pane .search-result h3 { margin-block: var(--space-1); }
.is-ended { color: var(--muted); }
.signup { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .5rem; }
.signup-link { color: var(--accent-strong); font-weight: 700; white-space: nowrap; }

@media (min-width: 48rem) {
  .directory-page[data-section="events"] .compare thead th:first-child, .directory-page[data-section="events"] .compare tbody th { width: 28%; }
  .directory-page[data-section="events"] .compare__when { width: 36%; }
  .directory-page[data-section="events"] .compare__ages, .directory-page[data-section="events"] .compare__price { width: 11%; }
  .directory-page[data-section="events"] .compare__where { width: 14%; }
}
@media (max-width: 47.99rem) { .directory-page[data-section="events"] .compare td.compare__when { flex: 1 0 100%; } }
.series-when { display: flex; flex-direction: column; gap: .1rem; }
.series-when__pattern { color: var(--ink); font-weight: 650; }
.series-when__dates a { color: var(--ink); text-decoration-color: var(--line-strong); }
@media (hover: hover) { .series-when__dates a:hover { color: var(--accent-strong); text-decoration-color: currentColor; } }
.series-when__more, .series-when--none { color: var(--muted); font-size: var(--text-sm); }
.calendar-page .results-pane { container: event-results / inline-size; }
.calendar-page > .date-scopes { padding: var(--space-4) var(--gutter) 0; }
.date-scopes { margin-block-end: var(--space-2); }
.date-scopes ul { position: relative; display: flex; width: fit-content; max-width: 100%; gap: 2px; padding: 3px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.date-scopes a { display: flex; min-height: 2.5rem; align-items: center; padding-inline: var(--space-3); border-radius: calc(var(--radius-sm) - 2px); color: var(--muted); font-size: var(--text-sm); font-weight: 700; white-space: nowrap; text-decoration: none; }
.date-scopes a[aria-current] { color: var(--ink); background: var(--raised); box-shadow: var(--shadow-sm); }
.date-scopes__movies { margin-inline-start: var(--space-2); padding-inline-start: calc(var(--space-2) + 1px); border-inline-start: 1px solid var(--line-strong); }
.date-scopes__movies a { color: var(--accent-strong); }
@media (hover: hover) { .date-scopes a:not([aria-current]):hover { color: var(--ink); background: color-mix(in oklab, var(--raised) 60%, transparent); } }
@media (max-width: 47.99rem) {
  .calendar-page > .date-scopes { padding-inline: 0; }
  .date-scopes ul { width: auto; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; margin-inline: var(--gutter); border-radius: var(--radius-sm); mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); }
  .date-scopes ul::-webkit-scrollbar { display: none; }
  .date-scopes li { flex: none; }
  .date-scopes li:last-child { padding-inline-end: 1.5rem; }
}
@media (forced-colors: active) { .date-scopes a[aria-current] { forced-color-adjust: none; color: SelectedItemText; background: SelectedItem; } }
@media (max-width: 39.99rem) { .calendar-page .results-pane__bar .view-toggle { display: none; } }
.calendar-page .results-pane__bar h2 { font-variant-numeric: tabular-nums; }
.calendar-page .results-note:first-of-type { margin-block-start: var(--space-3); }
.event-day__more { display: inline-flex; min-height: 2.75rem; align-items: center; gap: .3rem; color: var(--accent-strong); font-size: var(--text-sm); font-weight: 700; }
.event-day__more span { color: var(--muted); font-weight: 500; }
.event-card--list .event-card__meta { flex-wrap: wrap; }
.event-card--list .event-card__place { overflow: visible; white-space: normal; overflow-wrap: anywhere; }

@font-face{font-family:fraunces;src:url(../fonts/fraunces-normal-latin.woff2) format("woff2");font-display:swap}
@font-face{font-family:fraunces Fallback;src:local("Arial");ascent-override:84.05%;descent-override:21.91%;line-gap-override:0.00%;size-adjust:116.36%}
@font-face{font-family:nunitoSans;src:url(../fonts/nunito-sans-normal-latin.woff2) format("woff2");font-display:swap}
@font-face{font-family:nunitoSans Fallback;src:local("Arial");ascent-override:103.02%;descent-override:35.97%;line-gap-override:0.00%;size-adjust:98.13%}
:root{--font-fraunces:"fraunces","fraunces Fallback";--font-nunito-sans:"nunitoSans","nunitoSans Fallback"}

.how-it-works { gap: var(--space-4); scroll-margin-block-start: 5rem; }
.how-it-works q { quotes: "\201C" "\201D"; }
.hiw-intro { max-width: var(--reading-measure); color: var(--muted); }
.hiw-handbook a, .hiw-link a { font-weight: 700; }
.hiw-block { display: grid; gap: var(--space-3); margin-block-start: var(--space-4); }
.hiw-block > h3 { scroll-margin-block-start: 6rem; }
.hiw-rates { display: grid; gap: var(--space-2); }
.hiw-rates + .hiw-rates { margin-block-start: var(--space-3); }
.hiw-rates table { font-variant-numeric: tabular-nums; }
.hiw-rates th, .hiw-rates td { text-align: start; vertical-align: top; }
.hiw-rates thead th { color: var(--muted); font-size: var(--text-sm); font-weight: 750; border-block-end: 1px solid var(--line); white-space: nowrap; }
.hiw-rates tbody tr + tr > * { border-block-start: 1px solid var(--line); }
.hiw-rates tbody th { color: var(--ink); font-weight: 750; }
.hiw-source { color: var(--muted); font-size: var(--text-sm); }
.hiw-source .source-link { padding-block: 0; font-weight: 650; }
.hiw-topics { display: grid; max-width: var(--reading-measure); border-block-start: 1px solid var(--line); }
.hiw-topic { border-block-end: 1px solid var(--line); }
.hiw-topic > summary { padding-block: var(--space-2); font-weight: 700; }
.hiw-count { margin-inline-start: var(--space-2); color: var(--muted); font-size: var(--text-sm); font-weight: 650; font-variant-numeric: tabular-nums; }
.hiw-policies { display: grid; gap: 0; padding-block-end: var(--space-2); }
.hiw-policies > div { display: grid; gap: var(--space-1); padding-block: var(--space-3); }
.hiw-policies > div + div { border-block-start: 1px solid var(--line); }
.hiw-policies dt { font-weight: 700; }
.hiw-policies dd { display: grid; gap: var(--space-1); margin: 0; }
.hiw-scope { display: block; color: var(--muted); font-size: var(--text-sm); font-weight: 600; }
.hiw-answer { display: grid; gap: var(--space-1); padding-block-end: var(--space-3); }
.hiw-hours { display: block; }
.hiw-link { display: grid; gap: var(--space-1); margin-block-start: var(--space-3); }
.hiw-link a { display: inline-flex; min-height: 2.75rem; align-items: center; }
.hiw-link span { color: var(--muted); font-size: var(--text-sm); }
@media (min-width: 48rem) {
  .hiw-policies > div { grid-template-columns: 14rem minmax(0, 1fr); column-gap: var(--space-4); }
}
@media (max-width: 40rem) {
  .hiw-rates .table-wrap--stack caption { padding-inline: 0; }
}

@media (min-width: 48rem) {
  [data-section="outdoors"] .compare--entries thead th:first-child, [data-section="outdoors"] .compare--entries tbody th { width: 46%; }
  [data-section="outdoors"] .compare__type { width: 18%; }
  [data-section="outdoors"] .compare__has { width: 26%; }
  [data-section="outdoors"] .compare__entry { width: 10%; }
}
@media (max-width: 47.99rem) { [data-section="outdoors"] .compare td.compare__has::before { content: attr(data-label) ": "; color: var(--ink); font-weight: 700; } }

.aid-page__sources { max-width: 62ch; color: var(--muted); font-size: var(--text-sm); }
.aid-page .directory-jump { position: static; }
.aid-page .directory-jump .directory-count { margin-inline-start: .3rem; }

.aid-group .top-topic__head { gap: var(--space-2); }
.aid-group .top-topic__head .aid-group__lead { max-width: 68ch; color: var(--ink); }
.aid-group .top-topic__head .aid-group__lead a { color: var(--accent-strong); font-weight: 650; text-decoration: underline; text-decoration-color: color-mix(in oklch, currentColor 35%, transparent); }
.aid-group .top-topic__head .aid-group__related { font-size: var(--text-sm); }
.aid-group__related span:not(:last-child)::after { content: "·"; margin-inline: .4rem; }
.aid-group .top-topic__head .aid-group__related a { color: var(--accent-strong); font-weight: 700; }
@media (hover: hover) {
  .aid-group .top-topic__head a:hover { text-decoration: underline; text-decoration-color: currentColor; }
}

.aid-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: var(--space-4); }
.aid-cards > li { display: grid; }

.aid-card { display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow-sm); }

.aid-card__media { aspect-ratio: 5 / 2; overflow: hidden; background: color-mix(in oklab, var(--section) 8%, var(--card)); }
@media (max-width: 40rem) { .aid-card__media { aspect-ratio: 3 / 1; } }
.aid-card__media img { width: 100%; height: 100%; object-fit: cover; }
.aid-card__media--shot img { object-position: top center; }
.aid-card__initials { display: grid; height: 100%; place-items: center; color: color-mix(in oklab, var(--section) 72%, var(--ink)); font-family: var(--font-display); font-size: 1.9rem; font-weight: var(--display-weight); letter-spacing: .03em; line-height: 1; }

.aid-card__body { display: grid; align-content: start; gap: var(--space-2); padding: var(--space-4) var(--space-4) 0; }
.aid-card h3 { font-size: var(--text-xl); line-height: 1.25; }
.aid-card h3 a { text-decoration: none; }
.aid-card__org { margin-block-start: calc(-1 * var(--space-1)); color: var(--muted); font-size: var(--text-sm); font-weight: 650; }
.aid-card__org a { color: inherit; text-decoration-color: color-mix(in oklch, currentColor 40%, transparent); }
.aid-card__facts { display: grid; gap: var(--space-2); margin-block-start: var(--space-1); padding-block-start: var(--space-3); border-block-start: 1px solid var(--line); font-size: var(--text-md); line-height: 1.45; }
.aid-card__facts dt { color: var(--muted); font-size: var(--text-xs); font-weight: 750; letter-spacing: .01em; }
.aid-card__facts dd { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; }

.aid-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); padding: var(--space-4); }
.aid-card__action { min-width: 6.5rem; align-self: flex-end; }
.aid-card__source { flex: 1 1 9rem; color: var(--muted); font-size: var(--text-xs); line-height: 1.4; }
.aid-card__source a { color: inherit; }

@media (hover: hover) {
  .aid-card h3 a:hover { color: var(--section, var(--accent)); text-decoration: underline; }
  .aid-card__org a:hover, .aid-card__source a:hover { color: var(--ink); }
}

.aid-providers { margin-block-start: var(--space-5); border-block: 1px solid var(--line); }
.aid-providers + .aid-providers { margin-block-start: 0; border-block-start: 0; }
.aid-providers > summary { font-weight: 750; }
.aid-providers > .link-list { padding-block-end: var(--space-4); }
