/* Locked wide-desktop composition. Responsive roles and the two documented
   Neighborhood exceptions follow below; the shared shell stays unchanged. */
.neighborhood-hero { aspect-ratio: 2 / 1; overflow: hidden; }
.neighborhood-hero img { object-position: 50% 68%; }
.neighborhood-display {
  font-family: "Sora", Arial, sans-serif;
  font-size: clamp(43px, 4.4vw, 72px);
  font-weight: 200;
  letter-spacing: -0.075em;
  line-height: 1;
  text-transform: lowercase;
}
.neighborhood-page .neighborhood-prose { font-size: 13px; line-height: 1.43; }
.neighborhood-prose p + p { margin-top: 22px; }
.neighborhood-prose a, .neighborhood-opening-body a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.neighborhood-opening { display: grid; grid-template-columns: 66% 34%; }
.neighborhood-opening-titles { padding: 42px 28px 48px; }
.neighborhood-opening h1 { font-size: 10px; font-weight: 500; letter-spacing: .08em; line-height: 1.2; margin-bottom: 42px; }
.neighborhood-opening .hero-title { font-size: clamp(42px, 4.4vw, 70px); line-height: .95; max-width: 800px; }
.neighborhood-location { display: flex; flex-direction: column; align-items: flex-start; padding: 56px 24px 28px; }
.neighborhood-location > p { max-width: 20ch; font-size: 18px; line-height: 1.18; letter-spacing: -.025em; }
.neighborhood-location .chapter-action { margin-top: 24px; }
.neighborhood-address { margin-bottom: 27px; }
#explore-neighborhood { scroll-margin-top: 68px; }
/* Locked Homepage .intro / .intro-inner geometry; shared .intro-copy type.
   Separate names avoid adopting its page-specific Hero motion dependencies. */
.neighborhood-opening-body { min-height: 340px; display: grid; place-items: center; }
.neighborhood-opening-body-inner { width: min(650px, 60%); text-align: center; }
.neighborhood-block { display: grid; grid-template-columns: 34% 66%; }
.neighborhood-title-field { padding: 42px 28px 48px; }
.neighborhood-title-field .neighborhood-display { margin-top: 42px; }
.block-prose { align-self: center; padding: 64px 76px; }
.block-prose p { max-width: 76ch; }
.neighborhood-downtown { display: grid; grid-template-columns: 66% 34%; }
.neighborhood-downtown-copy { min-width: 0; padding: 42px 28px 48px; }
.neighborhood-downtown-copy h2 { margin-top: 66px; }
.neighborhood-downtown-copy .neighborhood-prose { margin-top: 42px; max-width: 36ch; margin-right: 6px; }
.neighborhood-stats { margin: 36px 0 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 28px; }
.neighborhood-stats > div { grid-column: 1 / -1; grid-template-columns: subgrid; padding: 24px 0; display: grid; align-items: center; }
.neighborhood-stats > div + div { border-top: 1px solid var(--rule); }
.neighborhood-stats dt { font: 200 44px/.95 "Sora", sans-serif; letter-spacing: -.075em; }
.neighborhood-stats dd { margin: 0 0 3px; max-width: 170px; color: var(--ink); font: 400 13px/1.42 "Inter Tight", Arial, sans-serif; letter-spacing: -.252px; text-transform: none; }
.neighborhood-gallery { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); grid-template-rows: 380px 440px; align-self: center; min-width: 0; gap: 24px; padding: 48px 26px 48px 28px; }
.neighborhood-gallery figure { min-width: 0; overflow: hidden; }
.gallery-market { grid-column: 1 / 3; grid-row: 1; }
.gallery-street { grid-column: 1; grid-row: 2; }
.gallery-theatre { grid-column: 2; grid-row: 2; }
.gallery-market img { object-position: 50% 60%; }
.gallery-street img { object-position: 54% 50%; }
.gallery-theatre img { object-position: 50% 66%; }
.neighborhood-map-heading { padding: 42px 28px 48px; }
.neighborhood-map-heading h2 { margin-top: 42px; }
.neighborhood-map-layout { display: grid; grid-template-columns: 34% 66%; border-top: 1px solid var(--rule); height: min(690px, calc(100dvh - 68px)); }
@media (width >= 1040px) {
  .neighborhood-explore { container-type: inline-size; }
  /* The map pane is the 66% grid track: 80% of its actual width = 52.8cqw. */
  .neighborhood-map-layout { height: min(calc(100dvh - 68px), max(600px, 52.8cqw)); }
}
/* Keep Mapbox live while its presentation follows the heading's normal reveal. */
:where(.reveal-enhanced) .neighborhood-explore .neighborhood-map-layout { opacity: 0; transition: opacity var(--fade-time) ease-out; }
.neighborhood-explore:has(#explore-title.is-visible) .neighborhood-map-layout.is-map-presentation-ready { opacity: 1; transition-delay: calc(var(--fade-time) + var(--stagger-time)); }
.neighborhood-map-field { grid-column: 2; grid-row: 1; position: relative; min-width: 0; background: #e9e6de; }
.is-map-presentation-pending .neighborhood-map-field { opacity: 0; }
#neighborhood-map { position: absolute; inset: 0; }
.map-unavailable { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 72px; pointer-events: none; }
.map-unavailable-title { font: 200 38px/1.1 "Sora", sans-serif; letter-spacing: -.065em; text-transform: lowercase; }
#map-status { max-width: 340px; margin-top: 20px; color: var(--muted); font-size: 13px; }
.map-selection { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.neighborhood-register { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--rule); }
.map-filters { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 14px 20px; flex: 0 0 auto; padding: 28px 28px 24px; border-bottom: 1px solid var(--rule-soft); }
.map-filters button, .directory-category-title { color: var(--ink); font: 700 12px/1.3 "Inter Tight", sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.map-filters button { appearance: none; border: 0; border-bottom: 2px solid transparent; padding: 0 0 4px; background: none; white-space: nowrap; cursor: pointer; }
.map-filters button[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.place-directory { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; margin: 0 28px; padding: 8px 0 12px; scrollbar-width: thin; scrollbar-color: var(--muted) transparent; }
.place-directory .directory-group .place-list { padding-left: 24px; }
.place-directory .place-button { display: grid; grid-template-columns: minmax(0, 1fr) 62px 62px; gap: 10px; align-items: start; padding: 10px 0; }
.place-identity { min-width: 0; }
.place-travel { display: flex; align-items: center; gap: 4px; white-space: nowrap; color: var(--muted); font: 400 11px/16.9px "Inter Tight", sans-serif; letter-spacing: normal; }
.place-travel svg { flex: 0 0 13px; width: 13px; height: 15px; fill: currentColor; }
.place-directory .place-name { font: 400 13px/1.3 "Inter Tight", sans-serif; letter-spacing: normal; }
.place-directory .place-address { display: block; margin-top: 3px; color: var(--muted); font: 400 11px/1.3 "Inter Tight", sans-serif; letter-spacing: normal; }
.directory-category-title { margin: 16px 0 6px; }
.place-list { list-style: none; margin: 0; padding: 0; }
.place-list li { border-bottom: 1px solid var(--rule-soft); }
.place-button { display: block; width: 100%; padding: 14px 0; border: 0; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.place-name { display: block; font-size: 14px; line-height: 1.25; }
.place-category { display: block; margin-top: 6px; color: var(--muted); font-size: 8px; letter-spacing: .07em; }
.place-button[aria-pressed="true"] .place-name, .place-button.is-highlighted .place-name { text-decoration: underline; text-underline-offset: 4px; }
.landmark-list .place-name { font-weight: 500; }
.neighborhood-register button:focus-visible, .map-marker:focus-visible { outline: 1px solid var(--ink); outline-offset: 4px; }
.neighborhood-page [hidden] { display: none !important; }
.map-marker { border: 0; padding: 0; background: transparent; color: var(--ink); cursor: pointer; }
.map-marker .marker-dot { display: block; width: 9px; height: 9px; border: 1px solid #656459; border-radius: 50%; background: #f4f2eb; }
.is-wide-map .map-marker .marker-dot { width: 6px; height: 6px; }
.map-marker.is-selected .marker-dot, .map-marker.is-highlighted .marker-dot { background: var(--ink); }
.marker-label { display: none; position: absolute; bottom: 17px; left: 50%; transform: translateX(-50%); padding: 5px 7px; width: max-content; max-width: 200px; background: var(--paper); font: 500 10px/1.3 "Inter Tight", sans-serif; }
.map-marker:hover .marker-label, .map-marker:focus .marker-label, .map-marker.is-selected .marker-label, .map-marker.is-highlighted .marker-label { display: block; }
.map-marker-property, .map-marker-landmark, .map-marker-station { display: flex; align-items: center; gap: 6px; font: 500 10px/1.2 "Inter Tight", sans-serif; }
.map-marker-property, .map-marker-landmark { display: block; padding: 0 0 18px; background: none; color: var(--ink); text-align: center; }
.map-marker-property { z-index: 8; white-space: nowrap; width: 12px; height: 16px; padding: 0; }
.map-marker-landmark::after { content: ''; position: absolute; left: 50%; bottom: 4px; width: 1px; height: 10px; background: var(--ink); }
.map-marker-property .landmark-name { position: absolute; left: 19px; top: 1px; font-size: 11px; font-weight: 600; letter-spacing: .035em; text-shadow: 0 0 3px #eeece5, 1px 1px 1px #eeece5, -1px -1px 1px #eeece5; }
.landmark-symbol { display: block; flex: 0 0 auto; width: 15px; height: 15px; background: none; }
.landmark-symbol svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.2; filter: drop-shadow(0 0 1px #eeece5); }
.map-marker-landmark .landmark-symbol { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 5px; height: 5px; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper); }
.map-marker-property .landmark-symbol { width: 12px; height: 16px; font: 400 11px/16px Georgia, serif; background: none; }
.map-marker-landmark.has-footprint .landmark-symbol { opacity: .65; }
.map-marker-landmark .landmark-name, .map-marker-station .landmark-name { display: block; max-width: 135px; background: none; padding: 0; text-shadow: -1px -1px 1px #eeece5, 1px 1px 1px #eeece5, 0 0 3px #eeece5; }
.map-marker-station { flex-direction: column; gap: 3px; }
.map-marker-station .landmark-symbol { width: auto; height: 8px; }
.map-marker-station .landmark-symbol img { display: block; width: auto; height: 8px; }
.map-marker-landmark.is-campus { padding: 0; }
.map-marker-landmark.is-campus::after, .map-marker-landmark.is-campus .landmark-symbol { display: none; }
.map-marker.is-compact .landmark-name { display: none; }
.map-marker-landmark.is-lgh .landmark-name { max-width: none; white-space: pre; }
.campus-logo { display: block; width: var(--campus-width, 88px); height: auto; }
.map-marker-landmark.is-hospital .landmark-symbol { width: 13px; height: 13px; border-radius: 1px; font: 600 10px/13px "Inter Tight", sans-serif; opacity: 1; }
.map-marker-landmark.is-hospital::after { display: none; }
.market-sketch { display: block; width: var(--editorial-width, 60px); height: auto; margin: 0 auto var(--editorial-label-gap, 2px); opacity: 1;
  /* Non-destructive architectural silhouette: retain all opaque building pixels,
     clip only the paper surround. Original approved artwork remains untouched. */
  clip-path: polygon(3.2% 94.2%,3.2% 92.5%,4.6% 92.1%,4.8% 85.8%,5.7% 84.7%,6.5% 52.8%,6.1% 47.7%,5.3% 46.7%,5.3% 45.1%,7.7% 45.1%,7.8% 42.2%,6.1% 40.2%,48.9% 3.5%,48.9% 2.1%,49.5% 1.7%,49.9% 1%,50.5% 1.7%,51% 2.2%,51% 3.5%,92.8% 41.2%,91.5% 42.9%,91.4% 45.3%,94.2% 45.4%,94.2% 46.8%,93.1% 48.3%,92.8% 52.9%,93.7% 85.7%,94.3% 86.6%,94.6% 92.4%,96% 92.6%,96% 94.2%);
}
.is-editorial-landmark { z-index: var(--editorial-priority, 4); }
.is-editorial-landmark .landmark-name { font-size: 14px; }
.map-marker.is-illustrated-building { display: block; width: auto; height: auto; padding: 0; opacity: 1; text-align: center; z-index: var(--editorial-priority); }
.map-marker.is-illustrated-building .landmark-name, .map-marker.is-illustrated-market .landmark-name { display: block; position: static; max-width: none; padding-bottom: 3.8px; color: color-mix(in srgb, var(--muted) 70%, var(--ink) 30%); font: 400 13px/1 "Inter Tight", sans-serif; letter-spacing: .08em; text-transform: uppercase; white-space: pre; }
.map-marker-property.is-illustrated-building .landmark-name { font-size: 14px; padding-bottom: 4px; }
.is-lgh.is-illustrated-building .landmark-name { padding-bottom: 7.6px; }
.map-marker-station.is-illustrated-building .landmark-name { padding-bottom: 0; }
.editorial-label-text { display: block; }
.is-editorial-landmark:not(.map-marker-station) .editorial-label-text { transform: translateY(-1px); }
.is-lgh.is-editorial-landmark .editorial-label-text { transform: none; }
.is-editorial-landmark.is-label-suppressed .editorial-label-text { visibility: hidden; }
.map-marker.is-illustrated-building::after,
.map-marker.is-illustrated-building .landmark-symbol,
.map-marker.is-illustrated-building .marker-label { display: none; }
.alistair-sketch, .hospital-sketch, .southern-sketch, .station-sketch { display: block; width: var(--editorial-width); height: auto; margin: 0 auto var(--editorial-label-gap); opacity: 1; }
.alistair-sketch { clip-path: polygon(13.3% 94.3%,13.3% 77.7%,13.7% 77.7%,13.7% 30.2%,13.3% 28.5%,13.7% 28.5%,13.7% 16.1%,32% 16.1%,32% 13.2%,39.3% 13.2%,39.3% 5.2%,41.3% 5.2%,41.3% 2.5%,43% 2.5%,43.2% 4.5%,46.4% 4.5%,46.4% 2.2%,47% 2.2%,47% 5%,47.5% 5%,47.5% 2.2%,48.1% 2.2%,48.1% 5.1%,48.8% 5.1%,48.8% 10.9%,49.6% 10.9%,49.6% 8.1%,50.3% 8.1%,50.3% 10.9%,50.9% 10.9%,50.9% 8.1%,51.6% 8.1%,51.6% 10.9%,52.2% 10.9%,52.2% 12.2%,75.3% 12.2%,75.3% 7%,84.4% 7%,84.4% 8%,84.1% 8%,84.1% 94.3%); }
.hospital-sketch { height: calc(var(--editorial-width) * 0.405); object-fit: cover; object-position: center 50%; }
.station-brand { display: flex; flex-direction: column; align-items: center; gap: 3px; margin-bottom: 0; padding-bottom: 0; white-space: nowrap; }
.station-brand-logo { display: block; width: auto; height: 8px; transform: scaleY(1.25); transform-origin: center bottom; }
.station-brand .editorial-label-text { transform: none; }
.editorial-route-shield { display: block; width: 34px; height: 34px; pointer-events: none; z-index: 3; }
.editorial-route-shield svg { display: block; width: 100%; height: 100%; }
.penn-square-monument { display: block; width: var(--monument-width, 34px); pointer-events: none; z-index: 4; }
.penn-square-monument img { display: block; width: 100%; height: auto; opacity: 1; }
.penn-square-monument-label { position: absolute; top: 52%; left: calc(82.8% + 3.5px); width: max-content; color: color-mix(in srgb, var(--muted) 70%, var(--ink) 30%); font: 400 13px/1 "Inter Tight", sans-serif; letter-spacing: .08em; text-transform: uppercase; text-shadow: -1px -1px 1px var(--paper), 1px 1px 1px var(--paper), 0 0 3px var(--paper); }
.is-wide-map .penn-square-monument-label { top: 35%; }
.map-marker-landmark.is-illustrated-market .landmark-name { display: block; max-width: none; white-space: nowrap; }
.map-marker-landmark.is-illustrated-market.is-compact .landmark-name { display: block; }
.map-marker-landmark.is-illustrated-market { padding-bottom: 0; opacity: 1; }
.map-marker-landmark.is-illustrated-market::after,
.map-marker-landmark.is-illustrated-market .landmark-symbol,
.map-marker-landmark.is-illustrated-market .marker-label { display: none; }
.map-marker.is-selected, .map-marker.is-highlighted { z-index: 7; }
.map-marker-property.is-selected, .map-marker-property.is-highlighted { z-index: 8; }
.map-marker.is-highlighted .marker-dot { width: 11px; height: 11px; border-color: var(--ink); box-shadow: 0 0 0 2px #eeece5; }
.map-marker.is-selected .marker-dot { width: 12px; height: 12px; border-color: var(--ink); box-shadow: 0 0 0 3px #eeece5; }
.map-marker.show-label .marker-label { display: block; }
.map-marker:not(.is-compact).map-marker-landmark .marker-label, .map-marker:not(.is-compact).map-marker-station .marker-label { display: none; }
.marker-label { border-bottom: 1px solid var(--ink); max-width: 190px; }
.map-marker[data-label-side="below"] .marker-label { top: calc(100% + 9px); bottom: auto; }
.map-marker[data-label-side="left"] .marker-label { left: auto; right: calc(100% + 9px); top: 50%; bottom: auto; transform: translateY(-50%); }
.map-marker[data-label-side="right"] .marker-label { left: calc(100% + 9px); top: 50%; bottom: auto; transform: translateY(-50%); }
.neighborhood-map-field .mapboxgl-ctrl-group { border-radius: 0; box-shadow: none; border: 1px solid var(--rule); background: var(--paper); }
.neighborhood-connections { display: grid; grid-template-columns: 66% 34%; }
.neighborhood-connections-copy { padding: 42px 76px 56px 28px; }
.neighborhood-connections-copy h2 { margin-top: 42px; }
.neighborhood-connections-copy .neighborhood-prose { margin-top: 42px; max-width: 83ch; }
.neighborhood-access { display: grid; grid-auto-rows: 1fr; align-self: stretch; margin: 0; padding: 0 28px; }
/* The rows span the complete panel with no extra end zones. A common primary
   track accommodates the unchanged shields; every row uses identical spacing. */
.neighborhood-access > div { padding: 10px 0; border-top: 1px solid transparent; display: flex; flex-direction: column; justify-content: center; }
.neighborhood-access > div + div { border-top-color: var(--rule-soft); }
.neighborhood-access dt { display: flex; align-items: center; min-height: 58px; font: 200 34px/1.05 "Sora", sans-serif; letter-spacing: -.065em; }
.neighborhood-access dd { margin: 10px 0 0; font-size: 13px; }
.neighborhood-station { display: flex; align-items: center; gap: 18px; }
.neighborhood-station > span { flex: 0 0 auto; }
.neighborhood-station img { width: auto; height: 14px; object-fit: contain; }
.neighborhood-road-shields { display: flex; align-items: center; gap: 18px; }
.neighborhood-road-shields svg { display: block; width: 60px; height: 58px; overflow: visible; }
.neighborhood-road-shields path { fill: var(--paper); stroke: var(--ink); stroke-width: 1; vector-effect: non-scaling-stroke; }
.neighborhood-road-shields text { fill: var(--ink); font: 500 25px "Inter Tight", Arial, sans-serif; letter-spacing: -.025em; text-anchor: middle; }
.neighborhood-city { display: grid; grid-template-columns: 34% 66%; }
.neighborhood-aerial { grid-column: 2; grid-row: 1; margin: 48px 26px 48px 28px; aspect-ratio: 3 / 2; align-self: center; overflow: hidden; }
.neighborhood-aerial img { object-position: 50% 58%; }
.neighborhood-city-copy { grid-column: 1; grid-row: 1; padding: 42px 28px 48px; }
.neighborhood-city-copy h2 { margin-top: 66px; }
.neighborhood-city-copy .neighborhood-prose { margin-top: 42px; }

/* §13 / §13A roles. Keep the approved wide-desktop values above untouched. */
@media (width < 1276px) {
  .neighborhood-page { --neighborhood-inset: 28px; }
  .neighborhood-opening-body { min-height: 0; padding-block: clamp(72px, calc(5.161vw + 30.19px), 96px); }
  .neighborhood-page .neighborhood-prose { font-size: 12px; }
  .neighborhood-location { padding: 48px 28px; }
  .neighborhood-location > p { font-size: 16.2px; line-height: 1.27; }
  .neighborhood-location .chapter-action { margin-top: 40px; }
  .neighborhood-title-field, .neighborhood-downtown-copy, .neighborhood-city-copy { padding-inline: var(--neighborhood-inset); }
  .block-prose, .neighborhood-connections-copy { padding-inline: 28px; }
  .neighborhood-gallery { gap: 20px; padding-inline: var(--neighborhood-inset); grid-template-rows: auto auto; }
  .gallery-market { aspect-ratio: 3 / 2; }
  .gallery-street { aspect-ratio: 3 / 4; }
  .neighborhood-stats { column-gap: 18px; }
  .neighborhood-access { padding-inline: 18px; }
  .neighborhood-access dt { font-size: 28px; }
  .neighborhood-station { gap: 12px; flex-wrap: wrap; }
  .neighborhood-road-shields { gap: 12px; }
  .neighborhood-aerial { margin-inline: var(--neighborhood-inset); }
}
@media (1040px <= width < 1276px) {
  .neighborhood-display { font-size: clamp(42px, calc(5.745vw - 17.75px), 55.5px); }
}
@media (900px <= width < 1040px) {
  .neighborhood-location { padding-block: 32px; }
  .neighborhood-page { --neighborhood-inset: 18px; }
  .neighborhood-display { font-size: clamp(38px, calc(2.88vw + 12.08px), 42px); }
}
@media (810px <= width < 900px) {
  .neighborhood-page { --neighborhood-inset: clamp(14px, calc(4.494vw - 22.4px), 18px); }
  .neighborhood-display { font-size: clamp(35px, calc(3.371vw + 7.7px), 38px); }
}
@media (768px <= width < 810px) {
  .neighborhood-page { --neighborhood-inset: clamp(10px, calc(4.494vw - 22.36px), 14px); }
  .neighborhood-display { font-size: clamp(32px, calc(3.371vw + 7.7px), 35px); }
  .neighborhood-location { padding-right: 20px; }
}
@media (width <= 1024px) {
  .neighborhood-hero { aspect-ratio: auto; }
  .neighborhood-hero img { width: 100%; height: auto; object-fit: contain; }
}
@media (601px <= width < 1040px) {
  .neighborhood-city-copy .neighborhood-prose { margin-top: 48px; }
}
@media (width < 900px) {
  .neighborhood-location > p { font-size: 12px; line-height: 1.43; letter-spacing: normal; }
  .neighborhood-opening-body-inner { width: calc(100% - (2 * clamp(32px, calc(8.989vw - 16.63px), 48px))); }
}
@media (768px <= width < 900px) {
  .neighborhood-opening-body { padding-block: 48px; }
}
/* Exception 1: retain the gallery's internal primary + 40/60 composition. */
@media (768px <= width < 900px) {
  .neighborhood-downtown { grid-template-columns: 58% 42%; }
  .neighborhood-downtown > .rule-vertical { left: 58% !important; }
  .neighborhood-gallery { align-self: stretch; min-height: 0; grid-template-rows: minmax(0, 58fr) minmax(0, 42fr); padding-block: 28px; }
  .neighborhood-gallery figure { min-height: 0; }
  .gallery-market, .gallery-street { aspect-ratio: auto; }
}
@media (768px <= width < 900px) {
  .neighborhood-aerial { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-self: stretch; min-height: 0; aspect-ratio: auto; margin-block: 16px; }
  .neighborhood-aerial img { width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; object-fit: cover; }
}
@media (900px <= width < 1276px) {
  .neighborhood-gallery { align-self: stretch; min-height: 0; grid-template-rows: minmax(0, 58fr) minmax(0, 42fr); padding-block: 28px; }
  .neighborhood-gallery figure { min-height: 0; }
  .gallery-market, .gallery-street { aspect-ratio: auto; }
}
@media (width < 768px) {
  .neighborhood-location > p { font-size: 13px; }
  .neighborhood-page { --neighborhood-inset: 12px; }
  .neighborhood-display { font-size: clamp(32px, 5.5vw, 38px); letter-spacing: -.11em; }
  .neighborhood-opening-body { padding-block: clamp(64px, calc(2.247vw + 51.84px), 68px); }
  .neighborhood-downtown { grid-template-columns: minmax(0, 1fr); }
  .neighborhood-downtown-copy { grid-row: 1; padding: 40px 28px 0; }
  .neighborhood-downtown-copy h2 { margin-top: 32px; }
  .neighborhood-downtown-copy .neighborhood-prose { max-width: none; margin-top: 28px; margin-right: 0; }
  .neighborhood-downtown .neighborhood-stats { margin-top: 28px; }
  .neighborhood-gallery { grid-row: 2; padding: 28px; }
  .neighborhood-stats dd { max-width: none; }
  .neighborhood-downtown > .rule-vertical { height: 0; opacity: 0; }
  .neighborhood-city { grid-template-columns: 42% 58%; }
  .neighborhood-city > .rule-vertical { left: 42% !important; }
  .neighborhood-aerial { margin: 16px 10px; }
  .neighborhood-access { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .neighborhood-access dt { min-height: 0; }
  .neighborhood-road-shields { width: 100%; min-width: 0; }
  .neighborhood-road-shields svg { flex: 0 1 60px; min-width: 0; height: auto; }
}
/* Compact split fields use the shared opener/chapter spacing, not wide copy
   padding or equal-height access rows. The source order and tracks stay put. */
@media (601px <= width < 768px) {
  .block-prose { padding-block: 48px; }
  .neighborhood-connections-copy { padding-bottom: 48px; }
  .neighborhood-city { height: auto; min-height: 0; }
  .neighborhood-city-copy { padding: 42px 12px 8px; }
  .neighborhood-aerial { margin: 16px 10px 3px; aspect-ratio: 4 / 5; align-self: start; }
  .neighborhood-aerial img { width: 100%; height: 100%; object-fit: cover; }
}
@media (650px <= width < 768px) {
  .neighborhood-aerial { margin-bottom: 16px; }
}
@media (650px <= width < 700px) {
  .neighborhood-city-copy { padding-top: clamp(22px, calc(40vw - 238px), 42px); }
  .neighborhood-city-copy h2 { margin-top: clamp(28px, calc(76vw - 466px), 66px); }
}
@media (601px <= width < 650px) {
  .neighborhood-city-copy { padding-top: clamp(14px, calc(7.143vw - 24.43px), 22px); padding-bottom: clamp(8px, calc(162.76px - 23.81vw), 34px); }
  .neighborhood-city-copy h2 { margin-top: clamp(20px, calc(7.143vw - 18.43px), 28px); }
  .neighborhood-aerial { position: relative; align-self: stretch; min-height: calc(72.5vw - 56.8px); margin-bottom: 16px; aspect-ratio: auto; }
  .neighborhood-aerial img { position: absolute; inset: 0; }
}
@media (700px <= width < 768px) {
  .neighborhood-location { padding-inline: 12px; }
}
/* Secondary Opener transitions also govern the two typographic bands. */
@media (width < 700px) {
  .neighborhood-opening, .neighborhood-block, .neighborhood-connections { grid-template-columns: minmax(0, 1fr); }
  .neighborhood-opening-titles, .neighborhood-title-field { padding: 40px 28px 16px; }
  .neighborhood-location, .block-prose { padding: 16px 28px 40px; }
  .neighborhood-location > p { max-width: none; }
  .block-prose p { max-width: none; }
  .neighborhood-connections-copy { padding: 40px 28px 16px; }
  .neighborhood-connections-copy .neighborhood-prose { max-width: none; }
  .neighborhood-access { padding: 16px 28px 28px; }
  .neighborhood-access > div:last-child { padding-bottom: 0; }
  .neighborhood-opening > .rule-vertical, .neighborhood-block > .rule-vertical, .neighborhood-connections > .rule-vertical { height: 0; opacity: 0; }
}
/* Standard Editorial Chapter: eyebrow → title → media → body at <=600. */
@media (width <= 600px) {
  .neighborhood-page .neighborhood-prose { font-size: 14px; line-height: 1.46; }
  .neighborhood-city { height: auto; min-height: 0; grid-template-columns: minmax(0, 1fr); align-items: start; padding: 40px 28px 28px; }
  .neighborhood-city-copy { display: contents; }
  .neighborhood-city-copy .chapter-number { grid-row: 1; }
  .neighborhood-city-copy h2 { grid-row: 2; margin: 32px 0 24px; }
  .neighborhood-aerial { grid-column: 1; grid-row: 3; margin: 0; aspect-ratio: auto; }
  .neighborhood-aerial img { height: auto; object-fit: contain; }
  .neighborhood-city-copy .neighborhood-prose { grid-row: 4; margin: 28px 0 0; max-width: none; }
  .neighborhood-city > .rule-vertical { height: 0; opacity: 0; }
}
@media (541px <= width < 700px) {
  #block-title span { display: block; }
}
@media (width < 600px) {
  .neighborhood-location > p { font-size: 14px; line-height: 1.46; }
}
@media (width < 541px) {
  .neighborhood-display { font-size: clamp(38px, 10vw, 48px); letter-spacing: -.075em; }
  .neighborhood-opening-body { padding-block: clamp(58px, 15vw, 76px); }
  .neighborhood-opening-body-inner { width: min(560px, calc(100% - (var(--mobile-field-padding) * 2))); }
  .neighborhood-opening-titles, .neighborhood-location, .neighborhood-title-field, .block-prose,
  .neighborhood-downtown-copy, .neighborhood-gallery, .neighborhood-map-heading,
  .neighborhood-connections-copy, .neighborhood-access, .neighborhood-city { padding-inline: var(--mobile-field-padding); }
  .neighborhood-page .chapter-number { margin: 0; }
}

/* Exception 2: persistent category strip and one source-directory overlay. */
@media (width < 1040px) {
  .neighborhood-map-layout { --responsive-map-height: clamp(480px, 58vw, 600px); position: relative; isolation: isolate; grid-template-columns: minmax(0, 1fr); grid-template-rows: 64px minmax(0, 1fr); height: calc(var(--responsive-map-height) + 64px); }
  .neighborhood-map-field { grid-column: 1; grid-row: 2; z-index: 0; }
  :where(.reveal-enhanced) .neighborhood-explore .neighborhood-map-field { opacity: 0; transition: opacity var(--fade-time) ease-out; }
  .neighborhood-explore:has(#explore-title.is-visible) .is-map-presentation-ready .neighborhood-map-field { opacity: 1; transition-delay: calc(var(--fade-time) + var(--stagger-time) + var(--stagger-time)); }
  .neighborhood-register { display: contents; }
  .neighborhood-register .map-filters { grid-column: 1; grid-row: 1; flex-wrap: nowrap; min-width: 0; padding: 10px 20px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; background: var(--paper); }
  .neighborhood-register .map-filters::-webkit-scrollbar { display: none; }
  .neighborhood-register .map-filters button { flex: 0 0 auto; min-height: 44px; }
  .neighborhood-register .place-directory { --directory-outer-padding: 42px; position: absolute; z-index: 3; top: 64px; left: 0; width: min(100%, calc(clamp(340px, 38vw, 420px) + var(--directory-outer-padding))); margin: 0; padding: 8px 28px 12px var(--directory-outer-padding); max-height: clamp(300px, 36vw, 380px); background: var(--paper); border-bottom: 1px solid var(--rule); }
  .neighborhood-register .place-directory .directory-group .place-list { padding-left: 0; }
  .neighborhood-register .place-directory .directory-category-title:not([hidden]) + .place-list { padding-left: 24px; }
  .map-unavailable { padding: 32px; }
}
@media (width < 768px) {
  .neighborhood-map-layout { --responsive-map-height: clamp(340px, 82vw, 480px); }
  .neighborhood-register .place-directory { --directory-outer-padding: 34px; width: min(100%, calc(clamp(340px, 50vw, 380px) + var(--directory-outer-padding))); max-height: min(50vh, calc(var(--responsive-map-height) - 80px)); padding-right: 20px; }
}
@media (width <= 600px) {
  .neighborhood-register .place-directory { --directory-outer-padding: 16px; width: 100%; }
}
@media (601px <= width < 1040px) {
  .neighborhood-register .place-directory .place-list li { position: relative; border-bottom-color: transparent; }
  .neighborhood-register .place-directory .place-list li::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: -14px;
    border-bottom: 1px solid var(--rule-soft);
    pointer-events: none;
  }
}
@media (width <= 899px) {
  .neighborhood-map-heading { padding-block: 40px 28px; }
  .neighborhood-map-heading h2 { margin-top: 32px; }
  .neighborhood-map-layout { grid-template-rows: auto var(--responsive-map-height); height: auto; }
  .neighborhood-register .map-filters { flex-wrap: wrap; overflow-x: visible; gap: 6px 20px; }
  .neighborhood-register .map-filters button { min-height: 32px; border-bottom: 0; padding: 6px 0 4px; }
  .neighborhood-register .map-filters button[aria-pressed="true"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
  .neighborhood-register .place-directory { top: var(--responsive-filter-height, 64px); }
}
@media (width < 768px) {
  .neighborhood-register .map-filters { gap: 4px 20px; }
  .neighborhood-register .map-filters button { min-height: 24px; padding: 2px 0 4px; line-height: 1.2; }
}
@media (width <= 480px) {
  .neighborhood-opening-body-inner { width: min(560px, calc(100% - (2 * var(--phone-gutter)))); }
  .neighborhood-opening-body .intro-copy { font-size: 14px; font-weight: 400; line-height: 1.46; letter-spacing: inherit; }
  .neighborhood-map-layout { --responsive-map-height: clamp(430px, 118vw, 470px); }
  .neighborhood-register .place-directory { left: 0; width: 100%; padding: 8px 16px 12px; max-height: min(52vh, 360px, calc(var(--responsive-map-height) - 96px)); }
  .neighborhood-register .place-directory .place-button { grid-template-columns: minmax(0, 1fr) 54px 54px; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .neighborhood-explore .neighborhood-map-layout,
  .neighborhood-explore .neighborhood-map-field { transition: none; }
}
.reveal-initializing .neighborhood-map-layout,
.reveal-initializing .neighborhood-map-field { transition: none !important; }

/* Neighborhood-specific short-landscape layout. */
@media (min-width: 541px) and (max-width: 767px) and (max-height: 500px) {
  .neighborhood-page .neighborhood-hero { height: max(240px, calc(100dvh - 60px)); }
  .neighborhood-page .neighborhood-hero img { height: 100%; object-fit: cover; }
  .neighborhood-page .neighborhood-opening-titles { padding-block: 24px 12px; }
  .neighborhood-page .neighborhood-opening h1 { margin-bottom: 24px; }
  .neighborhood-page .neighborhood-location { padding-block: 12px 24px; }
  .neighborhood-page .neighborhood-location .chapter-action { margin-top: 20px; }
  .neighborhood-page .neighborhood-opening-body { padding-block: 32px; }
  .neighborhood-page .neighborhood-title-field { padding-block: 24px 12px; }
  .neighborhood-page .neighborhood-title-field .neighborhood-display { margin-top: 20px; font-size: 32px; }
  .neighborhood-page .block-prose { padding-block: 12px 24px; }
  .neighborhood-page .neighborhood-downtown-copy { padding-top: 24px; }
  .neighborhood-page .neighborhood-downtown-copy h2 { font-size: 32px; margin-top: 20px; }
  .neighborhood-page .neighborhood-downtown-copy .neighborhood-prose { margin-top: 20px; }
  .neighborhood-page .neighborhood-downtown .neighborhood-stats { margin-top: 20px; }
  .neighborhood-page .neighborhood-stats > div { padding-block: 16px; }
  .neighborhood-page .neighborhood-gallery { padding-block: 16px; }
  .neighborhood-page .gallery-market { height: max(220px, calc(100dvh - 92px)); aspect-ratio: auto; }
  .neighborhood-page .gallery-market img { height: 100%; object-fit: cover; }
  .neighborhood-page .neighborhood-connections-copy { padding-block: 24px 12px; }
  .neighborhood-page .neighborhood-connections-copy h2 { font-size: 32px; margin-top: 20px; }
  .neighborhood-page .neighborhood-connections-copy .neighborhood-prose { margin-top: 20px; }

  /* The filter strip + canvas share the usable height, below the natural heading.
     Existing ResizeObservers update the filter-height token and Mapbox size. */
  .neighborhood-page .neighborhood-map-heading { height: auto; padding: 24px 20px 12px; }
  .neighborhood-page .neighborhood-map-heading h2 { font-size: 32px; line-height: 1; margin-top: 20px; }
  .neighborhood-page .neighborhood-map-layout {
    --responsive-map-height: max(160px, calc(100dvh - 60px - var(--responsive-filter-height, 30px) - 1px));
  }
  .neighborhood-page .neighborhood-register .map-filters { flex-wrap: nowrap; gap: 0 clamp(8px, 1.48vw, 10px); padding: 2.5px clamp(2px, calc(4.762vw - 23.762px), 8px); }
  .neighborhood-page .neighborhood-register .map-filters button { font-size: clamp(10px, 1.65vw, 11px); letter-spacing: 0; line-height: 1.2; }
  .neighborhood-page .neighborhood-register .place-directory { max-height: min(195px, calc(var(--responsive-map-height) - 80px)); }
  .neighborhood-page .place-directory .place-button { padding-block: 9px; }
  .neighborhood-page .place-directory .place-name { font-size: 12px; }
  .neighborhood-page .place-directory .place-travel { font-size: 10px; line-height: 15.6px; gap: 3px; }
  .neighborhood-page .place-directory .place-travel svg { flex-basis: 10px; width: 10px; height: 12px; }
  .neighborhood-page .neighborhood-map-field .mapboxgl-ctrl-top-left { top: 6px; left: auto; right: 6px; bottom: auto; }
  .neighborhood-page .neighborhood-map-field .mapboxgl-ctrl-top-left .mapboxgl-ctrl-group { margin: 0; }
  .neighborhood-page .neighborhood-map-field .mapboxgl-ctrl-top-left button { width: 26px; height: 26px; }
  .neighborhood-page .neighborhood-map-field .mapboxgl-ctrl-top-left .mapboxgl-ctrl-icon { background-size: 20px 20px; }
  /* Open directories can reach the right edge: utilities stay beneath them. */
  .neighborhood-page .neighborhood-map-layout:has(.place-directory:not([hidden])) .mapboxgl-ctrl-top-left { top: auto; bottom: 42px; }
  .neighborhood-page .neighborhood-map-layout:has(.place-directory:not([hidden])) .mapboxgl-ctrl-group { display: flex; }
  .neighborhood-page .neighborhood-map-layout:has(.place-directory:not([hidden])) .mapboxgl-ctrl-top-left button + button { border-top: 0; border-left: 1px solid var(--rule); }
  .neighborhood-page .mapboxgl-ctrl-attrib-button { background-size: 18px 18px; }
  .neighborhood-page .mapboxgl-ctrl-attrib.mapboxgl-compact:not(.mapboxgl-compact-show) { background: transparent; }
  .neighborhood-page .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib { margin: 0 4px 4px 0; }
  /* Preserve the required unmodified Mapbox logo; trim surrounding space only. */
  .neighborhood-page .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl { margin: 0 0 5px 6px; }
  .neighborhood-page .neighborhood-map-field .mapboxgl-control-container { position: absolute; inset: 0; z-index: 100; pointer-events: none; }
}

@media (min-width: 601px) and (max-width: 767px) and (max-height: 500px) {
  .neighborhood-page .neighborhood-city { min-height: max(280px, calc(100dvh - 60px)); }
  .neighborhood-page .neighborhood-city-copy { padding: 12px; }
  .neighborhood-page .neighborhood-city-copy h2 { font-size: 28px; margin-top: 12px; }
  .neighborhood-page .neighborhood-city-copy .neighborhood-prose { margin-top: 12px; }
  .neighborhood-page .neighborhood-aerial { position: relative; align-self: stretch; min-height: 0; aspect-ratio: auto; margin: 12px 10px; }
  .neighborhood-page .neighborhood-aerial img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
}
