/* Parent browsing: ordinary document scrolling, readable rows, one control bar.
   Brand: existing Fraunces wordmark and Jakarta body, navy with coral accents.
   Shapes: 12px media/controls, 16px dialogs. Layers: nav 10, dialogs 100.
   Design variance 3, motion 2, density 4. No decorative motion. */
:root { --ink:#142b50; --navy:#10284d; --muted:#526176; --line:#d9e0e8; --surface:#fff; --paper:#f8fafc; --coral:#c63829; --blue:#164ca4; }
html { scroll-behavior:auto; }
body { background:var(--paper); color:var(--ink); font-weight:500; font-size:16px; line-height:1.6; overflow-y:auto!important; height:auto!important; }
body .page-shell { width:100%; max-width:1240px; height:auto; min-height:100dvh; padding:0 32px 32px; overflow:visible; }
button,input,select { font:inherit; }
button,a,select,input { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
button:active { transform:translateY(1px); }
body .site-header { display:flex; align-items:center; gap:32px; height:80px; min-height:80px; padding:0; border-bottom:1px solid var(--line); position:relative; width:100%; }
body .brand { flex:0 0 auto; width:auto; min-width:0; }
body .brand strong { font-size:30px; }
body .brand em { font-size:26px; }
body .brand-mark { width:28px; height:28px; }
body .main-nav { position:static; display:flex; width:auto; flex:1; gap:24px; justify-content:center; padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; overflow:visible; }
body .main-nav .nav-button { font-size:15px; min-height:48px; padding:10px 0; color:var(--muted); white-space:nowrap; background:transparent; }
body .main-nav .nav-button.is-active { color:var(--ink); }
body .header-actions { display:flex; align-items:center; gap:16px; width:auto; padding:0; flex:0 0 auto; overflow:visible; }
body .header-actions .header-newsletter-offer,body #locationButton,body #favoritesButton,body .header-actions .divider { display:none!important; }
.newsletter-entry { color:var(--ink); font-size:14px; padding:12px 0; white-space:nowrap; text-underline-offset:4px; }
body #accountButton { font-size:14px; min-height:44px; }
body main#planner { display:block; padding:0; height:auto; min-height:0; overflow:visible; }
body .hero-layout { display:flex; flex-direction:column; gap:0; height:auto!important; min-height:0; max-height:none; padding:0; overflow:visible; }
body .planner-hero { width:100%; height:auto; min-height:0; padding:36px 0 20px; background:none!important; border:0; box-shadow:none; overflow:visible; position:static; }
body .planner-copy { display:block; width:100%!important; padding:0!important; max-width:none!important; margin:0!important; }
body .section-brand-banner { display:block!important; padding:0!important; margin:0; min-height:0!important; height:auto; border:0; border-radius:0; background:none!important; box-shadow:none; aspect-ratio:auto; }
body .priority-newsletter-offer,body .guide-conversion-copy,body .guide-conversion-actions [data-open-newsletter] { display:none!important; }
body .section-brand-banner::before,body .section-brand-banner::after,body .hero-flower,body .butterfly,body .planner-hero>picture { display:none!important; }
body #hero-title { font-family:"Plus Jakarta Sans",sans-serif; font-size:clamp(28px,3vw,38px)!important; font-weight:800; line-height:1.2!important; letter-spacing:-.035em; max-width:none!important; margin:0!important; padding:0; color:var(--ink); }
body #heroLede { font-size:16px!important; line-height:1.6!important; font-weight:500!important; margin:10px 0 0; max-width:65ch!important; color:var(--muted); }
body .planner-copy>.search-panel,body .category-grid,body .planner-copy>.filter-row,body .priority-page-rail { display:none!important; }
body .mobile-planner-controls { display:grid; grid-template-columns:minmax(240px,1fr) auto; gap:16px; position:static; margin:0; width:100%; padding:0 0 24px; border:0; box-shadow:none; background:none; }
body .mobile-search-form { grid-column:1; align-self:end; display:grid; grid-template-columns:auto minmax(0,1fr) auto; height:52px; min-height:52px; margin:0; background:var(--surface); border:1px solid #9ba9bb; border-radius:12px; overflow:visible; }
body .mobile-search-icon { padding-left:16px; display:flex; align-items:center; justify-content:center; height:100%; width:auto; }
body .mobile-search-form input { background:transparent; border:0; padding:12px; color:var(--ink); font-size:16px; font-weight:500; min-width:0; width:100%; }
body .mobile-search-form input::placeholder { color:var(--muted); opacity:1; }
body .mobile-filter-button { background:var(--ink); color:var(--surface); min-height:50px; padding:12px 18px; border:0; border-radius:0 11px 11px 0; font-size:15px; }
.browse-quick-controls { display:flex; gap:16px; align-items:end; }
.browse-quick-controls label { display:flex; flex-direction:column; font-size:14px; font-weight:600; gap:4px; }
.browse-quick-controls select,.browse-quick-controls button { color:var(--ink); background:var(--surface); border:1px solid #9ba9bb; border-radius:12px; min-height:52px; padding:10px 14px; }
.browse-quick-controls button { display:flex; align-items:center; gap:8px; font-size:15px; }
body .mobile-category-strip { grid-column:1/-1; display:flex; gap:8px; width:100%; margin:0; padding:0; overflow:auto; scrollbar-width:thin; }
body .mobile-category-strip button { display:flex; flex:0 0 auto; align-items:center; gap:8px; font-size:14px; font-weight:600; min-height:44px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); padding:8px 14px; }
body .mobile-category-strip button.is-active { color:var(--surface); background:var(--ink); border-color:var(--ink); }
body .weekend-board { display:block; width:100%; height:auto!important; max-height:none; min-height:0; margin:0; padding:24px 0 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
body .weekend-topline { display:none; }
body .results-mode-panel,body .board-panel { height:auto!important; max-height:none; overflow:visible; padding:0; gap:0!important; }
body .workspace-heading,body .board-heading { padding:0; margin:0 0 20px; display:flex; gap:16px; align-items:start; }
body #workspaceEyebrow,body #calendarEyebrow,body .board-heading>div>p { display:none; }
body #workspaceTitle,body #calendarTitle,body .board-heading h2 { font:750 26px/1.3 "Plus Jakarta Sans",sans-serif; letter-spacing:-.025em; color:var(--ink); margin:0; }
body #workspaceSummary { display:none; }
body #calendarSummary { display:block; font-size:16px; line-height:1.6; color:var(--muted); font-weight:500; margin-top:8px; }
body #resultCount { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; align-self:center; color:var(--muted); background:var(--surface); border:1px solid var(--line); border-radius:999px; font-size:14px; font-weight:500; line-height:1.4; white-space:nowrap; padding:7px 12px!important; }
body .workspace-toolbar { display:flex; gap:12px; margin:0 0 16px; padding:0; }
body .workspace-toolbar button { min-height:44px; font-size:14px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:8px; }
body .workspace-toolbar [data-open-compare]:disabled { display:none; }
/* Page scrolling replaces the old internally scrolling panel and its fade. */
body .results-mode-panel::after { display:none!important; }
body .toast { background:var(--ink); color:var(--surface); font-weight:600; border-radius:12px; max-width:calc(100% - 32px); text-align:center; }
body .mobile-filter-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
body .mobile-filter-heading h2 { margin:0; }
body .mobile-filter-close { display:grid; place-items:center; width:44px; min-width:44px; height:44px; border-radius:50%; padding:0; }
body .mobile-filter-group legend { margin-bottom:10px; }
body .mobile-stroller-option { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink); text-align:left; }
body .mobile-stroller-option>span { display:flex; align-items:center; gap:12px; }
body .mobile-stroller-option strong,body .mobile-stroller-option small { display:block; }
body .mobile-stroller-option small { color:var(--muted); font-size:13px; line-height:1.5; margin-top:4px; }
body .mobile-stroller-option>i { color:transparent; border:1px solid var(--line); border-radius:50%; width:24px; height:24px; flex-shrink:0; }
body .mobile-stroller-option.is-active>i { color:var(--surface); background:var(--ink); }
body .mobile-filter-actions { display:grid; grid-template-columns:90px 1fr; gap:12px; margin-top:20px; }
body .mobile-filter-actions button { border-radius:8px; padding:12px; }
body .compare-tray { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:30; display:flex; align-items:center; gap:16px; width:max-content; max-width:calc(100% - 32px); padding:14px 18px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:14px; box-shadow:0 5px 24px #0003; }
body .compare-tray[hidden] { display:none; }
body .compare-dialog { overflow:visible; min-width:0; grid-template-columns:minmax(0,1fr); }
body .compare-table-scroll { overflow-x:auto; max-width:100%; }
body .compare-dialog h2 { max-width:100%; overflow-wrap:break-word; }
body .compare-scroll-hint { display:none; }
@media(max-width:700px) {
  body .compare-scroll-hint { display:block; color:var(--muted); font-size:13px; margin:0; }
  body .compare-dialog h2 { font-size:28px; line-height:1.2; padding-right:20px; }
  body .compare-table { min-width:580px; grid-template-columns:100px repeat(var(--compare-columns),minmax(220px,1fr)); }
  body .compare-label { position:sticky; left:0; background:var(--surface); z-index:1; }
}
body .compare-tray span { font-size:14px; }
body .compare-tray button { min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:8px; background:var(--ink); color:var(--surface); font-size:14px; }
body .compare-tray button:disabled { background:var(--surface); color:var(--muted); cursor:default; }
body .compare-tray [data-clear-compare] { background:var(--surface); color:var(--ink); }
body.has-compare-selection { padding-bottom:110px!important; }
body.has-compare-selection .toast { bottom:110px; }
@media(max-width:700px) {
  body .compare-tray { bottom:calc(78px + env(safe-area-inset-bottom)); width:calc(100% - 24px); flex-wrap:wrap; gap:8px; padding:12px; }
  body .compare-tray span { width:100%; }
  body .compare-tray [data-open-compare] { flex:1; }
  body.has-compare-selection { padding-bottom:210px!important; }
  body.has-compare-selection .toast { bottom:calc(200px + env(safe-area-inset-bottom)); }
}
body .active-chip-row { display:flex; min-height:0; gap:8px; padding:0; margin:0; }
body .active-chip-row:empty { display:none; }
body .active-chip-row span { font-size:14px; padding:4px 10px; margin-bottom:12px; background:var(--surface); color:var(--muted); border:1px solid var(--line); }
body .results-list { display:grid; grid-template-columns:minmax(0,1fr); grid-auto-rows:auto; height:auto!important; max-height:none!important; overflow:visible!important; gap:0; padding:0; }
body .result-card { display:grid; grid-template-columns:180px minmax(0,1fr); grid-template-rows:auto auto; gap:8px 24px; min-height:0; height:auto; padding:24px 0; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; box-shadow:none!important; text-decoration:none; }
body .result-card:first-child { padding-top:8px; }
body .result-card:hover strong { text-decoration:underline; text-underline-offset:4px; }
body .result-card img { width:180px; height:132px; border-radius:12px; grid-row:1/span 2; object-fit:cover; }
body .result-copy { display:grid; gap:7px; }
body .result-copy strong { font-size:22px; line-height:1.3; font-weight:750; color:var(--ink); }
body .result-copy>span { font-size:14px; line-height:1.5; font-weight:500; color:var(--muted); white-space:normal; }
body .result-copy small { display:block; font-size:16px; line-height:1.65; color:var(--ink); font-weight:500; overflow:visible; white-space:normal; -webkit-line-clamp:unset; max-width:68ch; }
body .result-card .result-meta { display:flex; grid-column:2; grid-row:2; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:8px 20px; padding:0; font-size:14px; line-height:1.5; color:var(--muted); }
body .result-meta>span { font-size:14px!important; font-weight:500; }
body .price-badge { display:inline; background:transparent; color:var(--ink); border:0; padding:0; font-size:14px; line-height:1.5; font-weight:700!important; }
body .detail-cue { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
body .calendar-filter-row { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin:0 0 24px; }
body .calendar-tools { display:flex; flex-wrap:wrap; gap:8px; }
body .calendar-tools button { min-height:44px; padding:8px 14px; font-size:14px; border:1px solid var(--line); color:var(--ink); background:var(--surface); border-radius:8px; }
body .calendar-tools button.is-active { color:var(--surface); background:var(--ink); }
body .calendar-filter-status { font-size:14px; font-weight:500; color:var(--muted); }
body .full-calendar-panel>.board-heading>button { display:none; }
body .calendar-agenda { display:block; padding:0; height:auto!important; max-height:none!important; overflow:visible!important; }
.browse-day { font:750 20px/1.4 "Plus Jakarta Sans",sans-serif; margin:32px 0 0; padding:0 0 12px; color:var(--ink); border-bottom:2px solid var(--ink); }
body .calendar-agenda>a.browse-event { display:grid; grid-template-columns:165px minmax(0,1fr); gap:6px 24px; background:none; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:24px 0; box-shadow:none; }
body .browse-event .agenda-time { grid-column:1; grid-row:1/span 4; font-size:16px; font-weight:600; line-height:1.6; color:var(--muted); }
body .browse-event>strong { font:750 22px/1.35 "Plus Jakarta Sans",sans-serif; color:var(--ink); }
body .browse-event:hover>strong { text-decoration:underline; text-underline-offset:4px; }
body .browse-event>span { grid-column:2; font-size:16px; line-height:1.6; font-weight:500; color:var(--ink); }
body .browse-event>.browse-event-location { font-size:14px; color:var(--muted); }
body .browse-event>.browse-event-summary { max-width:68ch; }
body .browse-event>.browse-event-meta { display:flex; gap:20px; flex-wrap:wrap; font-size:14px; margin-top:6px; color:var(--muted); }
body .browse-event-meta b { color:var(--ink); font-weight:700; }
body .calendar-pagination { font-size:14px; padding:24px 0; }
body .calendar-pagination button,body .empty-results button { padding:12px 24px; min-height:48px; color:var(--surface); background:var(--ink); border:0; border-radius:8px; font-size:16px; }
body.browse-detail-open .planner-hero { display:none; }
body.browse-detail-open .mobile-planner-controls { display:none; }
body.browse-detail-open .weekend-board { border:0; padding-top:32px; max-width:880px; margin:0 auto; }
body.browse-detail-open .workspace-toolbar,body.browse-detail-open #resultCount,body.browse-detail-open .active-chip-row,body.browse-detail-open .calendar-filter-row { display:none; }
body.browse-detail-open #workspaceTitle,body.browse-detail-open #calendarTitle { font-size:clamp(28px,4vw,40px); }
body.browse-detail-open #workspaceSummary { display:block; font-size:17px; font-weight:500; line-height:1.7; margin-top:16px; max-width:65ch; color:var(--ink); }
.browse-back { justify-self:start; display:block; width:max-content; padding:12px 0; background:none; border:0; min-height:44px; color:var(--blue); font-weight:600; text-decoration:underline; text-underline-offset:4px; margin:0 0 20px; }
body .browse-detail-image { width:100%; max-width:880px; height:320px; border-radius:12px; object-fit:cover; margin:0 0 24px; }
body .inline-detail { background:transparent; border:0; padding:0; box-shadow:none; width:100%; margin:0; }
body .inline-detail-top { display:block; }
body .detail-tags { display:none!important; }
body .detail-actions { display:flex!important; flex-wrap:wrap; justify-content:flex-start; gap:10px; margin:0 0 28px; width:100%; }
body .detail-actions button,body .detail-actions a { font-size:15px!important; min-height:48px!important; padding:12px 16px!important; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); flex:0 1 auto; width:auto!important; }
body .detail-actions .official-source { background:var(--ink); color:var(--surface); border-color:var(--ink); max-width:none; width:auto; }
body .detail-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; border:0; padding:24px 0; margin:0; }
body .detail-facts>div { padding:0; border:0; }
body .detail-facts dt { font-size:14px; font-weight:600; color:var(--muted); text-transform:none; }
body .detail-facts dd,body .detail-facts dd .fact-primary,body .detail-facts dd .fact-note { font-size:16px; font-weight:500; line-height:1.65; color:var(--ink); }
body .place-planning,body .outing-intelligence,body .parent-takeaway { background:none; border:0; padding:24px 0; box-shadow:none; }
body .place-planning h2,body .outing-intelligence h2 { font:750 24px/1.35 "Plus Jakarta Sans",sans-serif; text-transform:none; }
body .place-planning p,body .outing-intelligence p,body .parent-takeaway p { font-size:16px; line-height:1.75; font-weight:500; }
body .place-planning-heading>span,body .outing-intelligence-heading>div>span { display:none; }
body .place-planning nav a { min-height:44px; display:inline-flex; align-items:center; font-size:15px; }
body .listing-update-link { min-height:44px; font-size:14px; }
body .promise-rail { display:none!important; }
.appearance-control { display:flex; align-items:center; gap:12px; margin-top:24px; font-size:14px; }
.appearance-control select { min-height:44px; padding:8px; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:8px; }
body .site-footer { display:block; margin:64px 0 0; padding:24px 0 64px; border-top:1px solid var(--line); background:none; }
body .site-footer p,body .site-footer a { font-size:14px; font-weight:500; line-height:1.7; }
body .mobile-filter-layer { position:fixed; inset:0; z-index:100; display:grid; place-items:center; }
body .mobile-filter-layer[hidden] { display:none; }
body .mobile-filter-backdrop { position:absolute; inset:0; background:rgb(10 25 45 / .5); border:0; width:100%; height:100%; }
body .mobile-filter-sheet { position:relative; width:min(520px,calc(100% - 32px)); max-height:90dvh; overflow:auto; background:var(--surface); color:var(--ink); padding:24px; border-radius:16px; }
body .mobile-filter-sheet button { min-height:48px; font-size:15px; }
body .mobile-filter-heading>div>span { display:none; }
body .mobile-filter-sheet h2 { font-size:24px; }
body.browse-calendar .planner-hero { display:none; }
body.browse-calendar .mobile-planner-controls { padding-top:24px; }
body .browse-event-options { display:none; }
body.browse-calendar .browse-event-options { display:block; }
body.browse-calendar .browse-type-options { display:none; }
body .mobile-age-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
body .mobile-filter-group { border:0; padding:0; margin:20px 0; }
body .mobile-age-options button { border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:8px; padding:8px; }
body .mobile-age-options button.is-active { background:var(--ink); color:var(--surface); }
body .guide-grid a,body .guide-card { padding:24px; }
body .guide-grid strong { font-size:22px; }
body .guide-grid span { font-size:16px; font-weight:500; line-height:1.6; }
body .guide-detail p,body .guide-detail li { font-size:16px; line-height:1.75; font-weight:500; }
body #planner[data-surface="guides"] .mobile-planner-controls,body #planner[data-surface="about"] .mobile-planner-controls { display:none; }
body #planner[data-surface="guides"]:not(.has-inner-page-heading) .guides-panel>.board-heading { display:none; }
@media(max-width:1000px) {
  body .page-shell { padding:0 24px 24px; }
  body .site-header { gap:20px; }
  body .main-nav { gap:18px; }
  body #accountButton { display:none; }
  body .brand strong { font-size:26px; }
  body .brand em { font-size:23px; }
  body .mobile-planner-controls { grid-template-columns:1fr; }
  .browse-quick-controls { grid-row:2; }
  .browse-quick-controls label { flex:1; }
  .browse-quick-controls button { flex:1; }
}
@media(max-width:700px) {
  body .page-shell { padding:0 20px 80px; }
  body .site-header { min-height:66px; height:66px; justify-content:space-between; gap:12px; }
  body .brand strong { font-size:27px; }
  body .brand em { font-size:24px; }
  body .header-actions { gap:0; }
  .newsletter-entry { font-size:13px; }
  body .main-nav { position:fixed; inset:auto 0 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:6px 8px calc(6px + env(safe-area-inset-bottom)); gap:0; width:100%; background:var(--surface); border-top:1px solid var(--line); z-index:10; }
  body .main-nav .nav-button { display:flex; flex-direction:column; gap:4px; align-items:center; justify-content:center; font-size:12px; padding:6px 0; min-height:52px; }
  body .main-nav .nav-ico { display:inline-flex; font-size:22px; }
  body .nav-button::after { display:none; }
  body .main-nav .nav-button.is-active { color:var(--coral); }
  body .planner-hero { padding:24px 0 16px; }
  body #hero-title { font-size:28px; }
  body #heroLede { display:none!important; }
  body .mobile-planner-controls { gap:12px; padding-bottom:20px; }
  .browse-quick-controls { gap:12px; }
  .browse-quick-controls label { font-size:13px; }
  .browse-quick-controls button,.browse-quick-controls select { min-height:48px; padding:8px 10px; font-size:14px; }
  body .mobile-category-strip { gap:8px; }
  body .mobile-category-strip button { font-size:13px; padding:8px 12px; }
  body .mobile-category-strip button:nth-child(n+3) { display:none; }
  body .mobile-category-strip { scrollbar-width:none; }
  body .weekend-board { padding-top:20px; }
  body #workspaceTitle,body #calendarTitle { font-size:22px; }
  body .workspace-heading { gap:8px; align-items:center; margin-bottom:12px; }
  body #resultCount { font-size:12px; }
  body #calendarSummary { display:none; }
  body .workspace-toolbar { margin-bottom:8px; }
  body .result-card { grid-template-columns:88px minmax(0,1fr); gap:12px 16px; padding:20px 0; }
  body .result-card img { width:88px; height:88px; grid-row:1/span 2; }
  body .result-copy { display:contents; }
  body .result-copy>strong { grid-column:2; grid-row:1; }
  body .result-copy>span { grid-column:2; grid-row:2; }
  body .result-copy>small { grid-column:1/-1; }
  body .result-copy strong { font-size:20px; line-height:1.3; }
  body .result-copy small { font-size:16px; line-height:1.6; }
  body .result-copy>span { font-size:14px; }
  body .result-card .result-meta { grid-column:1/-1; grid-row:auto; gap:8px 16px; }
  body .calendar-filter-row { gap:8px; margin:0 0 8px; }
  body .calendar-tools { gap:6px; }
  body .calendar-tools button { font-size:13px; padding:8px 10px; }
  body .calendar-tools [data-calendar-filter="tomorrow"],body .calendar-tools [data-calendar-filter="free"],body .calendar-tools [data-calendar-filter="indoor"],body .calendar-tools [data-calendar-filter="nearby"] { display:none; }
  body .calendar-agenda>a.browse-event { display:flex; flex-direction:column; gap:7px; padding:20px 0; }
  body .browse-event .agenda-time { font-size:14px; }
  body .browse-event>strong { font-size:21px; }
  .browse-day { font-size:19px; margin-top:20px; }
  body .browse-detail-image { height:220px; }
  body .detail-facts { grid-template-columns:1fr; gap:24px; }
  body .detail-actions .official-source { flex-basis:100%; }
  body .mobile-filter-sheet { width:100%; align-self:end; border-radius:16px 16px 0 0; padding-bottom:calc(24px + env(safe-area-inset-bottom)); }
}
@media(prefers-color-scheme:dark) {
  :root { color-scheme:dark; --ink:#e4edfa; --navy:#e4edfa; --muted:#aebdd1; --line:#34465d; --surface:#18273b; --paper:#101c2d; --coral:#ff9586; --blue:#a9caff; }
  body .result-card,body .browse-event { color:var(--ink); }
  body .brand { color:var(--ink); }
  body .modal-card,body .guide-grid>a,body .outing-age-grid article,body .outing-decision-grid article { background:var(--surface); color:var(--ink); }
  body .guide-grid>a span,body .modal-card p,body .modal-card label { color:var(--muted); }
  body .guide-grid>a strong,body .modal-card h2 { color:var(--ink); }
  body .mobile-age-options button,body .mobile-stroller-option { background:var(--surface); color:var(--ink); border-color:var(--line); }
  body .mobile-age-options button.is-active { background:var(--ink); color:var(--surface); }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
:root[data-theme="light"] { color-scheme:light; --ink:#142b50; --navy:#10284d; --muted:#526176; --line:#d9e0e8; --surface:#fff; --paper:#f8fafc; --coral:#c63829; --blue:#164ca4; }
:root[data-theme="dark"] { color-scheme:dark; --ink:#e4edfa; --navy:#e4edfa; --muted:#aebdd1; --line:#34465d; --surface:#18273b; --paper:#101c2d; --coral:#ff9586; --blue:#a9caff; }

/* Shared surfaces must travel with their text colors, including legacy dialogs. */
:root,:root[data-theme="light"] { --ink:#263449; --navy:#263449; --muted:#526052; --line:#d9d5c5; --surface:#fffdf7; --paper:#fbf5e8; --coral:#b73c2d; --blue:#245c78; }
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) { --ink:#f5eddf; --navy:#f5eddf; --muted:#cbc5b8; --line:#57574b; --surface:#303831; --paper:#202923; --coral:#ffac92; --blue:#a5d7df; }
}
:root[data-theme="dark"] { --ink:#f5eddf; --navy:#f5eddf; --muted:#cbc5b8; --line:#57574b; --surface:#303831; --paper:#202923; --coral:#ffac92; --blue:#a5d7df; }
html { height:auto!important; min-height:100%; overflow-y:auto!important; overflow-x:clip!important; }
body { overflow:visible!important; }
.browse-quick-controls .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
body .browse-quick-controls label { gap:0; }
/* Complete content surfaces, including lower-page sections and interaction states. */
body .calendar-pagination { background:var(--surface)!important; color:var(--ink)!important; padding:16px 20px!important; gap:16px; }
body .calendar-pagination span { color:var(--muted)!important; font-size:15px!important; font-weight:500; }
body .calendar-pagination button { background:var(--ink)!important; color:var(--surface)!important; }
body .workspace-toolbar button,body .calendar-tools button,body .browse-back,
body .listing-update-link,body .business-actions button { background:var(--surface)!important; color:var(--ink)!important; border-color:var(--line)!important; }
body .workspace-toolbar button:is(:hover,:focus-visible),body .calendar-tools button:is(.is-active,:hover,:focus-visible) { background:var(--ink)!important; color:var(--surface)!important; }
body .browse-back { padding:10px 14px; border:1px solid var(--line); border-radius:8px; }
body .listing-update-link { font-size:15px!important; padding:12px 16px!important; min-height:48px; }
body .guide-article section,body .guide-comparison,body .guide-comparison table,
body .guide-comparison thead th,body .guide-faq-list details,
body #ssrContent :is(section,table,th,td,details),body .parking-estimate-disclosure,
body .complete-outing-plan { background:var(--surface)!important; color:var(--ink)!important; border-color:var(--line)!important; }
body .guide-article section,body .parking-estimate-disclosure,body .complete-outing-plan { padding:20px!important; }
body .guide-article :is(h3,h4,th,td,summary),body .parking-estimate-disclosure strong,
body .complete-outing-plan :is(h3,li,strong),body .outing-answers summary { color:var(--ink)!important; }
body .guide-article :is(th,td),body .parking-estimate-disclosure,
body .complete-outing-plan :is(li,p),body .outing-answers summary { font-size:15px!important; line-height:1.65!important; }
body .guide-article summary { font-size:16px!important; line-height:1.6; padding:12px!important; }
body .guide-article h3 { font-size:20px!important; line-height:1.4; }
body .guide-article a,body .parking-estimate-disclosure a { color:var(--blue)!important; }
body .complete-outing-plan header>span,body .complete-outing-plan header>strong { color:var(--muted)!important; }
body .site-footer :is(p,span,small) { color:var(--muted)!important; }
body .site-footer a { color:var(--blue)!important; }
body .skip-link,body [data-open-sponsor] { background:var(--surface)!important; color:var(--ink)!important; border-color:var(--line)!important; }
body .guide-map-panel nav a>span { background:var(--ink)!important; color:var(--surface)!important; }
body .brand,body .brand-mark { overflow:visible!important; height:auto; line-height:1.3; }
body .brand-mark { display:inline-flex; align-items:center; flex-shrink:0; width:32px; min-height:36px; }
body .brand-mark img { display:block; width:100%; height:32px; object-fit:contain; transform:none; }
body .newsletter-entry { color:var(--blue); font-weight:700; white-space:normal; max-width:180px; line-height:1.4; }
@media(min-width:701px) {
  body .newsletter-entry { max-width:none; white-space:nowrap; }
}
body .mobile-search-form:focus-within { outline:3px solid var(--blue); outline-offset:3px; }
body .mobile-search-form input:focus-visible { outline:none; box-shadow:none; }
body #planner .section-brand-banner { background:var(--section-banner-image) right center / cover no-repeat!important; padding:26px 28% 26px 24px!important; min-height:150px!important; border-radius:16px; border:1px solid #c9d6b9; }
body #planner .section-brand-banner #hero-title { color:#18394b!important; font-family:"Fraunces",Georgia,serif; font-size:clamp(28px,3vw,38px)!important; letter-spacing:-.02em; }
body #planner .section-brand-banner #heroLede { color:#304d50!important; }
body .result-card { border-radius:12px; padding:24px 16px; margin-bottom:8px; background:var(--surface); border:1px solid var(--line); }
body .result-card:first-child { padding-top:24px; }
body .results-list { gap:8px; }
body .modal-card,body .modal-card:has(#profileForm),body .map-result-strip,
body .guide-map-panel,body .guide-grid>a,body .favorite-list article,
body .location-grid button,body .profile-age-grid label,body .outing-age-grid article,
body .outing-decision-grid article,body .guide-quick-answer,body .quick-answer,
body .collection-answer,body .answer-first,body .auth-tabs button,body .compare-value {
  background:var(--surface)!important; color:var(--ink)!important; border-color:var(--line)!important;
}
body .modal-card :is(input,select,textarea,.secondary-action,.modal-close),
body .detail-actions :is(button,a),body .guide-back-link,body .guide-map-heading span {
  background:var(--surface)!important; color:var(--ink)!important; border-color:var(--line)!important;
}
body .modal-card :is(strong,h2,h3,legend),body .location-grid button strong,
body .map-result-copy :is(strong,dd),body .guide-map-panel :is(strong,h3),
body .guide-quick-answer :is(h3,h4,p),body .quick-answer :is(h3,h4,p) { color:var(--ink)!important; }
body .modal-card :is(p,label,small),body .location-grid button span,body .favorite-list article span,
body .map-result-copy :is(p,small,dt),body .guide-map-panel p { color:var(--muted)!important; }
body .modal-card .form-fabric-header { background-color:#e4f0eb; }
body .modal-card .form-fabric-header :is(h2,p,.modal-kicker) { color:#213d50!important; }
body .modal-card .primary-action,body .map-result-strip>button,body .detail-actions .official-source {
  background:#a73526!important; color:#fffdf7!important; border-color:#a73526!important;
}
body .modal-card [data-logout] { background:var(--surface)!important; color:var(--coral)!important; border-color:var(--line)!important; }
body .modal-card .modal-close { position:absolute; float:none; top:14px; right:14px; z-index:2; margin:0; }
body .detail-facts { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:24px!important; }
body .detail-facts dt { font-size:14px!important; color:var(--muted)!important; }
body #planner .guides-panel,body #planner .about-panel { height:auto!important; max-height:none!important; overflow:visible!important; }
body .guide-article :is(p,li),body .guide-lede { font-size:17px!important; line-height:1.75!important; font-weight:500!important; color:var(--ink); }
body .guide-article>p,body .guide-article section>p { max-width:72ch; }
body .answer-first :is(h4,p),body .guide-map-heading .map-count { color:var(--ink)!important; }
body .guides-panel .board-heading>div>span { display:block!important; font-size:16px!important; line-height:1.65!important; font-weight:500!important; color:var(--muted)!important; max-width:72ch; margin-top:12px; }
body .guide-map-heading :is(span,small,em),body .guide-map-panel nav a { background:var(--surface)!important; color:var(--muted)!important; }
body .guides-panel .board-heading h1 { font:700 clamp(30px,4vw,44px)/1.15 "Fraunces",Georgia,serif!important; max-width:850px!important; width:auto!important; letter-spacing:-.025em; }
body .guides-panel .board-heading>div { min-width:0; flex:1; }
body .guide-grid { gap:16px; }
body .modal-card { max-height:calc(100dvh - 40px)!important; overflow-y:auto!important; overscroll-behavior:contain; }
body .mobile-filter-close,body .mobile-filter-actions button { background:var(--surface)!important; color:var(--ink)!important; border:1px solid var(--line)!important; }
body .mobile-filter-actions button:last-child { background:#a73526!important; color:#fffdf7!important; }
body #ssrContent { background:var(--surface)!important; color:var(--ink)!important; border:1px solid var(--line); border-radius:16px; padding:24px!important; width:100%; max-width:none!important; font-size:17px; line-height:1.75; }
body #ssrContent h1 { font:700 clamp(30px,4vw,44px)/1.18 "Fraunces",Georgia,serif!important; width:auto!important; max-width:850px!important; color:var(--ink)!important; margin:0 0 20px; }
body #ssrContent :is(p,li,td,th) { font-size:16px!important; line-height:1.75!important; color:var(--ink)!important; font-weight:500; }
body #ssrContent :is(h2,h3,h4) { color:var(--ink)!important; line-height:1.3; }
body #ssrContent a { color:var(--blue); }
body #planner[data-server-page="detailed-guide"] .mobile-planner-controls { display:none!important; }
body #ssrContent table { display:block; max-width:100%; overflow-x:auto; }
@media(min-width:701px) {
  body .site-header { position:sticky; top:0; z-index:10; background:var(--paper); }
  html { scroll-padding-top:96px; }
}
@media(max-width:700px) {
  body .brand strong { font-size:23px; }
  body .brand em { font-size:21px; }
  body .brand-mark { width:26px; }
  body .newsletter-entry { max-width:90px; font-size:12px; }
  body #accountButton { display:inline-flex!important; min-width:32px; min-height:44px; padding:0; justify-content:center; background:transparent!important; color:var(--ink)!important; border:0; }
  body #accountButton i { display:inline-block!important; font-size:21px; color:inherit; }
  body #accountLabel { display:none; }
  body #planner .section-brand-banner { background:linear-gradient(90deg,#e4f1da 0%,rgba(228,241,218,.94) 65%,rgba(228,241,218,.15)),var(--section-banner-image) right center / cover no-repeat!important; padding:20px 15% 20px 18px!important; min-height:130px!important; }
  body #planner .section-brand-banner #heroLede { display:none!important; }
  body #planner .section-brand-banner #hero-title { font-size:27px!important; }
  body .result-card { padding:18px 12px; gap:12px; }
  body .detail-facts { grid-template-columns:1fr!important; }
  body .guide-visual-overview { grid-template-columns:1fr!important; }
  body .map-modal-layer .modal-card { height:calc(100dvh - 24px); max-height:calc(100dvh - 24px)!important; inset:12px; width:calc(100% - 24px); border-radius:16px; }
  body .map-dialog { height:auto; grid-template-rows:auto 240px auto; }
  body .map-result-strip { max-height:none; overflow:visible; }
  body .profile-field-grid { grid-template-columns:1fr; }
}
