/* Here & Main — "canal village" identity. Overrides the neutral --hm-* tokens from
   @hm/guide-presentation. Contrast: every text/background pair below is >= 4.5:1 (WCAG 2.2 AA);
   checked in apps/here-and-main/test/contrast.test.mjs. System font stacks only (no downloads). */
:root {
  --hm-bg: #f6f1e7;          /* towpath paper */
  --hm-surface: #fffdf8;
  --hm-surface-2: #ece4d4;
  --hm-ink: #1b2628;         /* lock-gate iron */
  --hm-ink-soft: #4a5654;
  --hm-line: #d8ccb6;
  --hm-accent: #0c5560;      /* canal water */
  --hm-accent-ink: #ffffff;
  --hm-accent-soft: #dde9e4;
  --hm-highlight: #9a3a1b;   /* brick */
  --hm-ok: #25602c;
  --hm-ok-soft: #dfeedd;
  --hm-warn: #744800;
  --hm-warn-soft: #f6e6c4;
  --hm-stop: #9b2418;
  --hm-stop-soft: #f6dcd5;
  --hm-focus: #0c5560;
  --hm-font-display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Charter, "Bitstream Charter", Georgia, serif;
  --hm-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
  --hm-radius: 16px;
  --hm-shadow: 0 1px 1px rgb(60 45 20 / 6%), 0 6px 18px rgb(60 45 20 / 6%);
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --hm-bg: #10191b;
    --hm-surface: #172224;
    --hm-surface-2: #1f2c2e;
    --hm-ink: #ece6da;
    --hm-ink-soft: #b3b9b3;
    --hm-line: #31403f;
    --hm-accent: #7cc6c4;
    --hm-accent-ink: #0b1a1c;
    --hm-accent-soft: #1b3436;
    --hm-highlight: #f0a27f;
    --hm-ok: #8fd197;
    --hm-ok-soft: #1c3320;
    --hm-warn: #f1c26b;
    --hm-warn-soft: #3a2d12;
    --hm-stop: #f39a8c;
    --hm-stop-soft: #3d1f1a;
    --hm-focus: #7cc6c4;
    --hm-shadow: none;
  }
}

/* Header wordmark (theme/wordmark.svg): fills follow the tokens, so dark mode needs no second file. */
.hmlogo-ink { fill: var(--hm-ink); }
.hmlogo-accent { fill: var(--hm-accent); }

/* The canal illustration: water, towpath and lift bridge drawn with currentColor + tokens. */
.hero__art .water { fill: var(--hm-accent-soft); }
.hero__art .wave { stroke: var(--hm-accent); opacity: 0.55; }
.hero__art .bank { fill: var(--hm-surface-2); }
.hero__art .ink { stroke: var(--hm-ink); }
.hero__art .brick { fill: var(--hm-highlight); }
.hero__art .roof { fill: var(--hm-ink); opacity: 0.85; }
.hero__art .glow { fill: #f2c46d; }

/* ===================================================================================== editorial
   Editorial art direction (site.presentation.style "editorial"; design: Codex redesign task-5,
   rebased onto main with the usability-loop fixes in docs/design/usability-codex/REPORT.md).
   The markup is town-agnostic in @hm/guide-presentation (pages/editorial.mjs); this file owns the
   look. Type floor: nothing below 13px; date and filter controls 14px or more on phones. */
.editorial {                 /* editorial light palette (contrast.test.mjs) */
  --hm-bg: #fbfaf7;
  --hm-surface: #ffffff;
  --hm-surface-2: #f0eee7;
  --hm-line: #dddcd3;
  --hm-ink: #193b3b;
  --hm-ink-soft: #53615c;
  --hm-accent: #225c52;
  --hm-accent-soft: #e8eee5;
  --hm-highlight: #8f5c46;   /* Codex #93604a, darkened to 4.5:1 on accent-soft */
  --hm-radius: 4px;
  --hm-radius-sm: 4px;
  --hm-shadow: none;
  --hm-max: 78rem;
  --hm-gutter: 28px;
  --hm-header-h: 88px;
  --hm-wordmark-width: 202px;
}
@media (prefers-color-scheme: dark) {
  .editorial {               /* editorial dark palette (contrast.test.mjs) */
    --hm-bg: #132523;
    --hm-surface: #19312d;
    --hm-surface-2: #203a35;
    --hm-ink: #f1eee4;
    --hm-ink-soft: #bacbc0;
    --hm-line: #3b554b;
    --hm-accent: #acd6c4;
    --hm-accent-soft: #29463b;
    --hm-accent-ink: #132523;
    --hm-highlight: #e4ad89;
  }
}
/* Automated checks read colors as soon as the scheme flips: no color transitions on this design. */
.editorial .chip-link, .editorial .action, .editorial .top-nav__link, .editorial .row, .editorial .icon-button { transition: none; }

/* Header and navigation */
.editorial .site-header { background: var(--hm-bg); backdrop-filter: none; }
.editorial .site-header__inner { gap: 30px; }
.editorial .brand__edition { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; margin-top: 5px; }
.editorial .top-nav { gap: 30px; }
.editorial .top-nav__link { border-radius: 0; padding: 10px 0; font-size: 15px; font-weight: 500; color: var(--hm-ink-soft); }
.editorial .top-nav__link .icon { display: none; }
.editorial .top-nav__link[aria-current], .editorial .top-nav__link:hover { background: none; color: var(--hm-ink); box-shadow: 0 2px 0 var(--hm-accent); }
.editorial .eyebrow { font-size: 13px; letter-spacing: .14em; font-weight: 600; }

/* Section headings: display serif for page sections only. Label headings ("What this means",
   "Where this comes from", "Connected records", "Next steps") keep their small label style. */
.editorial .section-head h2, .editorial .editorial-agenda__side > h2, .editorial .discovery-results__head h2, .editorial .empty-state h2 { font-size: 32px; font-weight: 500; letter-spacing: -.025em; }
.editorial .section-head { align-items: center; margin-bottom: 20px; }
.editorial .more-link { font-size: 14px; font-weight: 500; min-height: 44px; }

/* Home: edition line, arrival hero with a credited photograph */
.edition-line { max-width: var(--hm-max); padding: 16px var(--hm-gutter); margin: auto; display: flex; justify-content: space-between; gap: 18px; align-items: baseline; border-bottom: 1px solid var(--hm-line); }
.edition-line > p { margin: 0; font-size: 14px; color: var(--hm-ink-soft); }
.edition-line .wx-line { font-size: 14px; }
.editorial .status-strip--edition { width: calc(100% - 2 * var(--hm-gutter)); max-width: calc(var(--hm-max) - 2 * var(--hm-gutter)); margin: 10px auto 0; box-sizing: border-box; }
.editorial-hero { max-width: var(--hm-max); margin: auto; padding: 42px var(--hm-gutter) 48px; display: grid; grid-template-columns: .85fr 1.25fr; gap: 54px; align-items: center; }
.editorial-hero__text h1 { font-weight: 500; font-size: clamp(60px, 7.5vw, 108px); line-height: .96; letter-spacing: -.055em; margin: 20px 0 24px; }
.title-dot { color: var(--hm-highlight); }
.editorial-hero__lede { font: 400 29px/1.2 var(--hm-font-display); max-width: 330px; letter-spacing: -.015em; margin-bottom: 18px; }
.editorial-hero__intro { font-size: 16px; line-height: 1.6; max-width: 330px; color: var(--hm-ink-soft); }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 27px; }
.editorial .action { border-radius: 3px; padding: 12px 16px; min-height: 48px; font-size: 15px; font-weight: 600; box-shadow: none; }
.editorial .action--primary { background: var(--hm-accent); border-color: var(--hm-accent); color: var(--hm-accent-ink); }
.arrival-photo { margin: 0; border-radius: 0; overflow: visible; background: none; }
/* The 2023 night photo has a soft foreground at its left edge: anchor the crop right of center. */
.arrival-photo picture, .arrival-photo img { width: 100%; height: 380px; object-fit: cover; object-position: 72% 50%; border-radius: 2px; }
.editorial .photo__badge { position: static; background: none; border: 0; padding: 9px 0 0; color: var(--hm-ink-soft); font-size: 13px; line-height: 1.45; }
.editorial .photo__badge .photo__credit { position: static; background: none; color: var(--hm-ink-soft); padding: 0; font-size: 13px; border-radius: 0; max-width: none; }
.editorial .photo__badge a { color: inherit; }
.editorial .photo__badge .photo__text { margin: 0 0 2px; font-size: 14px; }

/* Home: calendar and civic columns */
.editorial-body { max-width: var(--hm-max); padding: 0 var(--hm-gutter); margin: auto; }
.editorial-agenda { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 80px; border-top: 1px solid var(--hm-ink); padding: 38px 0 52px; }
.editorial-agenda__main .hm-interests { margin: 4px 0 18px; }
.editorial .now-section { margin-bottom: 30px; }
.editorial .event-list, .editorial .place-list, .editorial .update-list { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.editorial .row { border: 0; border-bottom: 1px solid var(--hm-line); margin-top: 0; padding: 20px 28px 20px 0; gap: 18px; background: transparent; }
.editorial .row:hover { background: transparent; }
.editorial .row::after { border-color: var(--hm-accent); opacity: .7; }
.editorial .row__title { font-size: 17px; font-weight: 600; line-height: 1.35; }
.editorial .row__title a { color: var(--hm-ink); }
.editorial .row__meta { font-size: 14px; line-height: 1.6; margin-top: 6px; color: var(--hm-ink-soft); }
.editorial .row__lead { font-size: 15px; width: 68px; padding: 2px 0; color: var(--hm-accent); }
.editorial .row__lead small { font-size: 13px; }
.editorial .row__lead--date { background: var(--hm-surface-2); border-radius: 0; width: 58px; padding: 8px; }
.editorial .row__day { font: 400 26px/1.1 var(--hm-font-display); }
.editorial .chip, .editorial .stage, .editorial .open-badge { border-radius: 2px; font-size: 13px; padding: 3px 8px; font-weight: 500; }
.editorial .open-badge { padding-left: 0; }
.editorial .row__tags .open-badge--open { padding: 3px 8px; border-radius: 2px; }
.editorial-agenda__side { border-left: 1px solid var(--hm-line); padding-left: 36px; }
.editorial-agenda__side > h2 { margin-bottom: 8px; }
.editorial-agenda__side .update-list .row__title { font-family: var(--hm-font-display); font-size: 21px; font-weight: 500; }
.editorial-agenda__side .new-coming, .editorial-agenda__side .open-now { margin-top: 30px; }
.editorial-agenda__side .section-head h2 { font-size: 24px; }
.editorial-disclosure, .editorial .place-more { border-bottom: 1px solid var(--hm-line); }
.editorial-disclosure > summary { display: flex; align-items: center; min-height: 48px; padding: 12px 0; cursor: pointer; font-size: 16px; font-weight: 600; color: var(--hm-accent); }
.editorial-disclosure .now-section, .editorial-disclosure .forecast { margin-top: 12px; }

/* Tonight panel (guide-presentation pages/tonight.mjs): a ruled editorial box, not a card */
.editorial .tonight { background: transparent; border: 0; border-top: 1px solid var(--hm-ink); border-bottom: 1px solid var(--hm-line); border-radius: 0; padding: 20px 0 8px; }
.editorial .tonight__head h2 { font-size: 28px; font-weight: 500; letter-spacing: -.02em; }
.editorial .tonight__sun { font-size: 14px; }
.editorial .tonight__forecast { font: 400 19px/1.4 var(--hm-font-display); }
.editorial .tonight__subhead { font-size: 13px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--hm-highlight); font-family: var(--hm-font-body); }
.editorial .tonight .row { padding: 14px 20px 14px 0; gap: 14px; }
.editorial .tonight .row__lead { width: 60px; }
.editorial .tonight .row__note { font-size: 14px; line-height: 1.5; margin-top: 4px; }
.editorial-agenda__side .tonight { margin: 0 0 30px; }
.editorial .page-body > .tonight { margin-top: 8px; }
.editorial .wx-note { border-left-color: var(--hm-highlight); }

/* Home: guides, three equal features (a photo feature, then text features with a rule) */
.editorial-guides { border-top: 1px solid var(--hm-line); padding: 40px 0 52px; }
.editorial .guide-list { gap: 32px; }
@media (min-width: 860px) { .editorial .editorial-guides .guide-list { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; } }
.editorial .guide-card { border: 0; background: none; border-radius: 0; box-shadow: none; }
.editorial .guide-card__body { padding: 20px 0 0; }
.editorial .guide-card__title { font: 400 27px/1.2 var(--hm-font-display); letter-spacing: -.025em; }
.editorial .guide-card__photo { border-radius: 0; background: none; overflow: visible; }
.editorial .guide-card__photo picture, .editorial .guide-card__photo img { height: 240px; width: 100%; object-fit: cover; }
.editorial .guide-card:not(:has(.photo)) { border-top: 3px solid var(--hm-accent); padding-top: 8px; }
.editorial-colophon { border-top: 1px solid var(--hm-line); padding: 30px 0 48px; display: flex; justify-content: space-between; gap: 28px; font-size: 15px; }
.editorial-colophon a { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; }

/* Page heads and discovery (Places, Events) */
.editorial .page-head { max-width: var(--hm-max); padding: 54px var(--hm-gutter) 28px; margin: auto; border: 0; }
.editorial .page-head h1 { font-size: 64px; font-weight: 500; letter-spacing: -.04em; }
.editorial .page-head__intro { font-size: 17px; max-width: 570px; margin: 15px 0 0; }
.editorial .page-body { max-width: var(--hm-max); padding: 0 var(--hm-gutter) 50px; }
.discovery-tools { padding-bottom: 20px; border-bottom: 1px solid var(--hm-line); }
.discovery-links { margin: 14px 0 0; font-size: 14px; }
.discovery-links a { display: inline-flex; align-items: center; min-height: 44px; }
.editorial .search-box { display: flex; align-items: center; background: var(--hm-surface); border: 1px solid #a7b5ad; border-radius: 3px; box-shadow: none; min-height: 58px; max-width: 760px; }
.editorial .search-box input { flex: 1; width: 0; min-width: 0; border: 0; background: transparent; border-radius: 0; font: 400 17px var(--hm-font-body); padding: 16px 8px 16px 46px; }
.editorial .search-box input:focus { outline-offset: 2px; }
/* The search box appears when the runtime starts: its slot is reserved so nothing below moves. */
.search-slot { min-height: 58px; max-width: 760px; margin: 8px 0 0; }
.editorial .search-slot .search-box { margin: 0; }
.search-slot noscript p { margin: 0; }
.search-clear { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 15px; font-size: 14px; }
.editorial .filterbar { margin-top: 20px; gap: 12px; align-items: flex-start; }
.editorial .chip-link { border-radius: 3px; background: var(--hm-surface); border-color: var(--hm-line); font-size: 15px; font-weight: 600; padding: 10px 15px; min-height: 44px; }
.editorial .chip-link[aria-current] { background: var(--hm-accent); color: var(--hm-accent-ink); border-color: var(--hm-accent); }
.editorial .chip-link__count { font-size: 13px; }
.editorial .filter-panel { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-end; }
.editorial .filter-panel__summary { white-space: nowrap; width: max-content; }
.filter-panel__count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--hm-accent); color: var(--hm-accent-ink); font-size: 13px; font-weight: 700; }
.filter-panel__count[hidden] { display: none; }
/* Expanded controls stay in the document flow so results and recovery stay visible. */
.editorial .filter-panel__body { position: static; align-self: stretch; margin-top: 12px; background: var(--hm-surface); border: 1px solid var(--hm-line); padding: 20px 24px; box-shadow: none; border-radius: 3px; }
.editorial .filter-panel__body .chips ul { flex-wrap: wrap; overflow: visible; margin: 0; padding: 4px 0; }
.editorial .filter-panel__body .chips::before, .editorial .filters__label { font-size: 13px; color: var(--hm-ink-soft); }
.editorial .results-line { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.type-subscribe { margin: 0 0 var(--hm-space-2); font-size: 15px; }
.type-subscribe a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.editorial .results-count { font-size: 14px; color: var(--hm-ink-soft); }
.editorial .active-filters { font-size: 14px; margin: 0 0 18px; }
.editorial .active-filters a { display: inline-flex; align-items: center; min-height: 44px; }
.empty-state__escapes { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; }
.empty-state__escapes[hidden] { display: none; }
.empty-state__escapes a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.editorial .empty-state { border: 1px dashed var(--hm-line); background: transparent; border-radius: 3px; }
.editorial .day-group__title { font: 400 26px/1.2 var(--hm-font-display); margin: 8px 0 4px; }
.discovery-results { max-width: 900px; padding: 32px 0 45px; }
.discovery-results__head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.discovery .row--place { padding: 19px 35px 19px 0; }
.discovery .row__body { display: grid; grid-template-columns: 1fr auto; column-gap: 25px; }
.discovery .row__title { font: 500 23px/1.2 var(--hm-font-display); grid-column: 1; }
.discovery .row__meta { grid-column: 1; }
.discovery .row__tags { grid-column: 2; grid-row: 1 / span 2; margin: 0; align-self: center; }
.discovery .show-more { margin: 24px 0 0; justify-content: flex-start; }
.discovery-stories { padding: 40px 0; border-top: 1px solid var(--hm-line); }
.picture-stories { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.story-photo { background: none; border-radius: 0; margin: 0 0 18px; overflow: visible; }
.story-photo img, .story-photo picture { height: 220px; object-fit: cover; width: 100%; }
.picture-stories h3 { font: 400 26px/1.2 var(--hm-font-display); }
.discovery .new-coming { padding: 40px 0; border-top: 1px solid var(--hm-line); }

/* Detail pages: description, hours and phone first; sources and nearby after (also on phones) */
.editorial .detail { max-width: var(--hm-max); padding: 52px var(--hm-gutter) 60px; }
.editorial .detail > .detail-head, .editorial .detail > .notice, .editorial .detail > .actions, .editorial .detail > .detail-grid:not(.page-body), .editorial .detail > .detail-photo, .editorial .detail > .place-lead { margin-left: 0; margin-right: 0; }
.editorial .detail-head h1 { font-size: 57px; line-height: 1.05; font-weight: 500; letter-spacing: -.04em; max-width: 840px; }
.editorial .breadcrumb { font-size: 14px; margin-bottom: 20px; }
/* One line at any width and with any system font: Linux CI fonts wrapped "4 min walk from Towpath Square ·
   Canal District" at 390. The walk comes first, so a cut only ever trims the trailing area name. */
.editorial .detail-head__where { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.editorial .detail-head__addr { font-size: 17px; margin-top: 10px; }
.editorial .detail-head__flags .open-badge--open { background: var(--hm-ok-soft); padding: 4px 10px; }
.editorial .place-lead { gap: 60px; margin-bottom: 8px; }
.editorial .detail-photo { border-radius: 0; margin: 0; background: none; overflow: visible; }
.editorial .detail-photo img { width: 100%; height: 390px; object-fit: cover; }
.editorial .detail-grid { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 70px; border-top: 1px solid var(--hm-line); padding-top: 8px; }
.editorial .detail-main .prose { font-size: 17px; max-width: 640px; margin: 20px 0; }
.editorial .facts { border-top: 0; margin: 0 0 20px; }
.editorial .facts__row { border-color: var(--hm-line); padding: 12px 0; }
.editorial .facts dt, .editorial .facts dd { font-size: 15px; }
.editorial .facts dt { text-transform: none; letter-spacing: 0; font-weight: 500; }
.editorial .facts--quick { margin: 12px 0 0; padding-bottom: 8px; border-bottom: 1px solid var(--hm-line); }
.editorial .facts--quick .facts__row { border: 0; padding: 6px 0; }
.editorial .facts--quick .facts__row { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 12px; }
@media (min-width: 600px) { .editorial .facts--quick .facts__row { grid-template-columns: 5.5rem minmax(0, 1fr); } }
/* Scoped hours (place `hours_scope`: "Office today", "Office hours") keep their labels on one line. */
.editorial .facts--quick.facts--scoped .facts__row { grid-template-columns: 7.5rem minmax(0, 1fr); }
.editorial .place-more .hours { margin-top: 8px; }
.editorial .detail-side { padding-top: 24px; }
.editorial .next-steps__title { font-family: var(--hm-font-display); font-size: 23px; text-transform: none; letter-spacing: -.015em; font-weight: 500; color: var(--hm-ink); }
.editorial .event-essentials { font-size: 17px; margin: 18px 0 0; }
.editorial .event-essentials p { margin-bottom: 8px; }
.editorial .nearby ul { list-style: none; }
.editorial .nearby li { border-bottom: 1px solid var(--hm-line); }
.editorial .nearby li a { display: block; padding: 12px 0; min-height: 44px; font-size: 16px; color: var(--hm-ink); }
.editorial .nearby small { display: block; color: var(--hm-ink-soft); font-size: 14px; }
.editorial .plain { border-radius: 3px; }

/* Directory */
.editorial .dir-cats { gap: 0; grid-template-columns: 1fr 1fr; column-gap: 60px; }
.editorial .dir-cats > li { border: 0; border-radius: 0; border-bottom: 1px solid var(--hm-line); background: none; padding: 18px 0; }
.editorial .dir-cats > li.dir-cats__grouped { grid-column: auto; }
.editorial .dir-cats > li > a { font: 400 28px var(--hm-font-display); }
.editorial .dir-groups { margin: 12px 0 0 2px; }
.editorial .dir-groups a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; }
.editorial .dir-row { background: none; padding: 22px 0; border-color: var(--hm-line); }

/* Footer */
.editorial .site-footer { background: var(--hm-surface-2); border-top: 0; }
.editorial .site-footer__inner { padding: 34px var(--hm-gutter); }
.editorial .asof { font-size: 14px; max-width: 700px; line-height: 1.7; }

@media (max-width: 859px) {
  .editorial { --hm-header-h: 67px; --hm-gutter: 20px; --hm-wordmark-width: 170px; }
  .editorial .site-header__inner { gap: 10px; }
  .editorial .brand__edition { margin-top: 3px; }
  /* Phones: the first Today row sits on the first screen. Date and forecast share one compact
     line, the lede gives way, and the photo is a short band. */
  .edition-line { padding-top: 10px; padding-bottom: 10px; display: block; }
  .edition-line > p { font-size: 14px; display: inline; }
  .edition-line .wx-line { display: inline; margin: 0; font-size: 14px; }
  .edition-line .wx-line__icon { display: none; }
  .edition-line .wx-line__text { display: inline; margin: 0; }
  .edition-line .wx-line__text::before { content: " · "; }
  .edition-line .wx-line__period:nth-child(n+2), .edition-line .wx-line__more { display: none; }
  .editorial-hero { padding-top: 18px; padding-bottom: 20px; display: flex; flex-direction: column; gap: 16px; align-items: stretch; }
  .editorial-hero__text h1 { font-size: 60px; margin: 8px 0 10px; }
  .editorial-hero__lede { display: none; }
  .editorial-hero__intro { font-size: 15px; max-width: none; margin: 0; }
  .hero-actions { margin-top: 14px; flex-wrap: nowrap; gap: 8px; }
  .hero-actions .action { flex: 1; justify-content: space-between; padding: 10px 12px; font-size: 15px; }
  .hero-actions .icon { width: 16px; }
  .arrival-photo picture, .arrival-photo img { height: 140px; }
  .editorial .arrival-photo .photo__badge { padding-top: 6px; }
  .editorial-agenda { display: block; padding-top: 14px; padding-bottom: 26px; }
  .editorial-agenda__main > .eyebrow { display: none; }
  .editorial-agenda__main .hm-interests { margin: 0 0 8px; }
  .editorial .section-head h2, .editorial .editorial-agenda__side > h2, .editorial .discovery-results__head h2, .editorial .empty-state h2 { font-size: 28px; }
  .editorial .section-head { margin-bottom: 8px; gap: 10px; }
  .editorial .row { padding-top: 16px; padding-bottom: 16px; }
  .editorial .row__lead { width: 60px; }
  .editorial .row__title { font-size: 16px; }
  .editorial .row__meta { font-size: 14px; line-height: 1.5; }
  .editorial-agenda__side { border-left: 0; border-top: 1px solid var(--hm-line); margin-top: 30px; padding: 26px 0 0; }
  .editorial-guides { padding-top: 30px; }
  .editorial .guide-list { display: block; }
  .editorial .guide-card { margin: 0 0 30px; }
  .editorial .guide-card__photo img, .editorial .guide-card__photo picture { height: 200px; }
  .editorial .guide-card__title { font-size: 26px; }
  .editorial-colophon { display: block; }
  .editorial .page-head { padding-top: 30px; padding-bottom: 20px; }
  .editorial .page-head h1 { font-size: 44px; }
  .editorial .page-head__intro { font-size: 16px; margin-top: 12px; }
  .editorial .search-box, .search-slot { min-height: 55px; }
  .editorial .search-box input { font-size: 16px; padding: 15px 4px 15px 46px; }
  /* Date controls fill the row at 14px or more; Filters takes the next row, full width. */
  .editorial .filterbar { display: block; margin-top: 16px; }
  .editorial .filterbar > .chips ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); gap: 8px; margin: 0; padding: 4px 0; overflow: visible; }
  .editorial .filterbar > .chips .chip-link { justify-content: center; width: 100%; padding: 10px 6px; font-size: 15px; }
  .editorial .filter-panel { margin-top: 8px; align-items: stretch; }
  .editorial .filter-panel__summary { width: auto; justify-content: center; font-size: 15px; }
  .editorial .filter-panel__body { padding: 16px; }
  .discovery-results { padding-top: 24px; }
  .discovery-results__head { display: block; }
  .discovery-results__head h2 { margin-bottom: 8px; }
  .discovery .row__body { display: block; }
  .discovery .row__title { font-size: 22px; }
  .discovery .row__tags { margin-top: 6px; }
  .picture-stories { display: block; }
  .picture-stories article { margin-bottom: 30px; }
  .editorial .detail { padding-top: 22px; }
  .editorial .detail-head h1 { font-size: 40px; }
  .editorial .detail--event .detail-head h1 { font-size: 36px; }
  .editorial .event-essentials { font-size: 16px; }
  .editorial .place-lead { display: flex; flex-direction: column; gap: 20px; }
  .editorial .detail-photo img { height: 220px; }
  .editorial .detail-head__addr { font-size: 16px; }
  .editorial .detail-grid { display: block; padding-top: 4px; }
  .editorial .detail-side { margin-top: 24px; }
  .editorial .detail-main .prose { font-size: 16px; }
  .editorial .dir-cats { grid-template-columns: 1fr; }
  .editorial .tab-bar { background: var(--hm-bg); border-color: var(--hm-line); box-shadow: none; }
  .editorial .tab-bar__link[aria-current] { background: none; color: var(--hm-accent); box-shadow: inset 0 3px 0 var(--hm-accent); }
}

/* Reader-facing system components (.superbee/references/design-system.md section 6; structure in guide.css):
   editorial sizes and the serif section heads. Kept after the phone block so the v2 row's own
   spacing wins over the older .editorial .row rules. */
.editorial .related .section-head h2 { font-family: var(--hm-font-display); font-size: 23px; font-weight: 500; letter-spacing: -.015em; }
.editorial .hub-section .section-head h2 { font-family: var(--hm-font-display); font-size: 26px; font-weight: 500; letter-spacing: -.02em; }
.editorial .update-next h2 { font-family: var(--hm-font-display); font-size: 24px; font-weight: 500; letter-spacing: -.02em; }
.editorial .update-say h2 { font-family: var(--hm-font-display); font-size: 23px; font-weight: 500; letter-spacing: -.015em; }
.editorial .detail-side:empty { display: none; }
/* No sidebar (update pages): the main column takes a readable measure. */
.editorial .detail-grid:not(:has(.detail-side)) { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.editorial .row--v2 { padding: 16px 0; column-gap: 14px; row-gap: 0; }
.editorial .row--v2 .row__lead { width: auto; padding: 2px 0 0; }
.editorial .row--v2 .row__lead--date { width: 58px; padding: 8px; }
.editorial .row--v2 .row__title { font-size: 17px; line-height: 1.3; }
.editorial .row--v2 .row__meta { line-height: 1.5; margin-top: 4px; }
.editorial .site-footer--v2 .site-footer__inner { padding: 30px var(--hm-gutter) 36px; }
.editorial .site-footer--v2 .asof { line-height: 1.6; max-width: 60ch; }
.editorial .footer-brand-block .footer-brand { font-size: 24px; }
@media (min-width: 860px) {
  .editorial .row--v2 { padding: 18px 0; }
  .editorial .row--v2 .row__title { font-size: 18px; }
}

/* Place, area, organization (PLAN.md WP5A): editorial sizes for the lede under the title. */
.editorial .detail-head__lede { font-size: 18px; line-height: 1.45; margin-top: 12px; color: var(--hm-ink); }
@media (max-width: 859px) { .editorial .detail-head__lede { font-size: 17px; } }

/* Peek card (articles SPEC §4.4, §11): the editorial theme's knobs. Structure and sizes are in guide.css. */
.editorial .peek {
  --peek-backdrop: color-mix(in srgb, #0d1a1c 38%, transparent);
  --peek-backdrop-popover: color-mix(in srgb, #0d1a1c 8%, transparent);
}
