/* Selected B: the concerns are the gold hero; deeper material keeps its saved anchors. */
.concerns-hero-home .home-experience { display: block; width: 100%; max-width: none; margin: 0; }
.concerns-hero-home .home-sections { min-width: 0; }
.concerns-hero-home .home-sections .campaign-shell { width: min(calc(100% - var(--page-gutter) * 2), var(--content-workspace)); max-width: var(--content-workspace); margin-inline: auto; padding-inline: var(--space-6); }
.concerns-hero-home .landing-hero { background: var(--brand-gold); padding-block: var(--space-7) var(--space-5); }
.concerns-hero-home .hero-grid { display: block; }
.concerns-hero-home .hero-title { max-width: 20ch; font-size: var(--font-display-xl); line-height: 1.05; overflow-wrap: anywhere; hyphens: auto; }
.concerns-hero-home .hero-title em { color: var(--brand-deep-rose); }
.concerns-hero-home .hero-lede { max-width: none; margin-block-end: var(--space-5); color: var(--brand-navy); font-size: var(--font-body-lg); line-height: 1.6; }
.concerns-hero-home .home-sections .concerns-section { padding-block-end: 0; container: concerns / inline-size; }
.concerns-hero-home .concern-rail { gap: var(--space-4); }
.concerns-hero-home .concern-card { background: var(--brand-navy); color: var(--color-action-text); border: 0; padding: var(--space-5); }
.concerns-hero-home .concern-card .hero-kicker { margin: 0; color: var(--brand-gold); }
.concerns-hero-home .concern-statement { font-size: var(--font-body-lg); }
.concerns-hero-home .concern-card .resource-link { color: var(--color-action-text); text-underline-offset: var(--space-1); }
.concerns-hero-home .concern-card :focus-visible { outline-color: var(--color-action-text); }
.concerns-hero-home .concern-hint { color: var(--brand-navy); }
.home-next-actions, .home-resource-links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.home-next-actions > a, .home-resource-links > a { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--control-height); font-weight: 600; }
.concerns-hero-home .home-resources, .concerns-hero-home .home-coming-up { border-top: 1px solid var(--color-border); padding-block: var(--space-5); }
.homepage-archive { margin-block: var(--space-3); }
.homepage-archive > summary { display: list-item; min-height: var(--control-height); padding-block: var(--space-3); cursor: pointer; color: var(--color-text-strong); font-weight: 600; }
.concerns-hero-home .home-action { padding: var(--space-5); }
@media (max-width: 900px) {
  .concerns-hero-home .home-sections .campaign-shell { padding-inline: 0; }
  .concerns-hero-home .landing-hero { padding-block: var(--space-5) var(--space-3); }
  .concerns-hero-home .hero-title { max-width: none; font-size: var(--font-display-lg); }
  .concerns-hero-home .hero-lede { font-size: var(--font-body); margin-block-end: var(--space-4); }
  .concerns-hero-home .concern-rail { gap: var(--space-3); }
  .concerns-hero-home .concern-hint { margin-block-end: var(--space-2); font-size: var(--font-small); }
  .concerns-hero-home .home-next-step { align-items: stretch; }
  .home-next-actions { align-items: flex-start; }
}
@media print { .homepage-archive > summary { display: none; } }
.concerns-hero-home .timeline-status { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }

/* A narrow text measure gets a vertical reading flow, including enlarged text. */
@container concerns (max-width: 16em) {
  .concerns-hero-home .concern-rail { grid-template-columns: minmax(0, 1fr); grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; scroll-snap-type: none; }
  .concerns-hero-home .concern-card { scroll-snap-align: none; }
  .concerns-hero-home .concern-rail + .rail-controls { display: none; }
}

@media (min-width: 768px) {
  @container concerns (max-width: 36em) {
    .concerns-hero-home .concern-rail { grid-template-columns: minmax(0, 1fr); grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; scroll-snap-type: none; }
    .concerns-hero-home .concern-rail + .rail-controls { display: none; }
  }
}

/* A shared reading rhythm: section heading leads, related content follows. */
.concerns-hero-home :is(.home-context, .home-editorial) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: start;
  gap: var(--space-6);
  padding-block: var(--space-7);
}
.concerns-hero-home :is(.home-context, .home-editorial) > h2, .concerns-hero-home .home-section-heading h2 {
  margin: 0;
  max-inline-size: 24ch;
  font-size: var(--font-heading-compact);
  line-height: 1.2;
}
.home-context-copy, .home-section-content { min-inline-size: 0; max-inline-size: var(--content-prose); }
.home-context-copy p, .home-section-content > p { margin: 0 0 var(--space-4); font-size: var(--font-body-lg); line-height: 1.7; }
.home-context-copy .resource-link { min-block-size: var(--control-height); }
.home-section-content #process-status-title { color: var(--color-text-muted); font-size: var(--font-small); }
.concerns-source { margin: var(--space-4) 0 var(--space-3); max-inline-size: var(--content-prose); color: var(--brand-navy); font-size: var(--font-small); line-height: 1.6; }
.home-calendar { margin-block-start: var(--space-5); min-inline-size: 0; }
.home-calendar h3 { margin: 0 0 var(--space-3); color: var(--color-text-strong); font-size: var(--font-heading-3); }
.home-calendar iframe { display: block; inline-size: 100%; max-inline-size: 100%; block-size: calc(var(--space-8) * 7); border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); }
.home-calendar-note { margin-block: var(--space-3) 0; color: var(--color-text-muted); font-size: var(--font-small); line-height: 1.6; }

@media (max-width: 900px) {
  .concerns-hero-home :is(.home-context, .home-editorial) { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
}

/* Wide pointer layouts may settle near section dividers. Touch layouts keep free
   vertical scrolling: even proximity snapping can undo a short, slow swipe. */
@media screen and (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) and (min-height: 600px) {
  html:has(body.concerns-hero-home) { scroll-snap-type: y proximity; }
  .concerns-hero-home [data-home-page] { scroll-snap-align: start; }
}


/* Mobile chapters share the visible page, without creating a second scroller.
   min-block-size lets long copy, calendar content, and enlarged text keep growing. */
@media screen and (max-width: 767px) and (min-height: 600px) {
  html:has(body.concerns-hero-home) {
    --site-chrome-height: var(--public-header-height, var(--public-mobile-navigation-height));
    --home-page-height: calc(100svh - var(--site-chrome-height) - var(--tab-bar-offset));
    scroll-padding-block-start: var(--site-chrome-height);
    scroll-padding-block-end: var(--tab-bar-offset);
  }
  html:has(body.concerns-hero-home) .site-header.public-header { position: sticky; }
  .concerns-hero-home :is(.landing-hero, .home-context, .home-next-step),
  .concerns-hero-home :is(.home-resources, .home-coming-up) > .home-editorial { min-block-size: var(--home-page-height); }
  .concerns-hero-home :is(.home-context, .home-editorial) { align-content: center; padding-block: var(--space-6); }
  .concerns-hero-home :is(.home-resources, .home-coming-up) { padding-block: 0; }
  .concerns-hero-home .landing-hero { display: flex; flex-direction: column; justify-content: space-between; padding-block: var(--space-4) var(--space-3); }
  .concerns-hero-home .hero-lede { margin-block: var(--space-4) var(--space-3); }
  .concerns-hero-home .concern-card { padding: var(--space-4); gap: var(--space-3); }
  .concerns-hero-home .concern-statement { font-size: var(--font-body); }
  .concerns-hero-home .concern-rail + .rail-controls { padding-block: var(--space-3); }
  .concerns-source { margin-block: var(--space-2) 0; }
}
@media screen and (max-width: 767px) and (min-height: 600px) and (prefers-reduced-motion: no-preference) {
  /* Expanded reading and keyboard destinations take priority over snapping. */
  html:has(body.concerns-hero-home .home-sections details[open]),
  html:has(body.concerns-hero-home [data-legacy-case][data-reading-open]),
  html:has(body.concerns-hero-home .home-sections :focus-visible),
  html:has(body.concerns-hero-home #community[open]) { scroll-snap-type: none; }
}

/* Without the enhancement, keep a cold saved fragment at its native destination. */
@media screen and (max-width: 767px) and (min-height: 600px) {
  html:has(body.concerns-hero-home):has(:target):not(:has(.home-sections[data-home-motion])) { scroll-snap-type: none; }
}

/* Resource cards share the concern rail's native controls, with a quieter reading surface. */
.home-resources-intro { margin: 0; max-inline-size: var(--content-prose); font-size: var(--font-body-lg); line-height: 1.7; }
.home-resource-deck { grid-column: 1 / -1; min-inline-size: 0; container: resources / inline-size; }
.resource-rail-hint { margin: 0 0 var(--space-3); color: var(--color-text-muted); font-size: var(--font-small); }
.concerns-hero-home .home-sections .resource-rail {
  --resource-card-size: min(calc(100% - var(--space-6)), calc(var(--space-9) * 4));
  display: flex;
  gap: var(--space-4);
  inline-size: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  padding: var(--space-2) 0;
  align-items: stretch;
}
.resource-rail::after { content: ''; flex: 0 0 max(0px, calc(100% - var(--resource-card-size) - var(--space-4))); }
.concerns-hero-home .resource-rail > .prose-section,
.concerns-hero-home .resource-rail > .prose-section:first-of-type {
  display: flex;
  flex-direction: column;
  flex: 0 0 var(--resource-card-size);
  min-inline-size: 0;
  gap: var(--space-3);
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  overflow-wrap: anywhere;
}
.concerns-hero-home .resource-rail :is(h3, p) { margin: 0; }
.concerns-hero-home .resource-rail h3 { color: var(--color-text-strong); font-size: var(--font-heading-3); line-height: 1.4; }
.concerns-hero-home .resource-rail p { font-size: var(--font-body); line-height: 1.6; }
.concerns-hero-home .resource-rail .hero-kicker,
.concerns-hero-home .resource-rail .citation-note { font-size: var(--font-small); }
.concerns-hero-home .resource-rail .resource-link { display: inline-flex; align-items: center; gap: var(--space-2); min-block-size: var(--control-height); }
.resource-rail + .rail-controls { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); padding: var(--space-3) 0 0; }
.resource-rail + .rail-controls .rail-count { margin: 0; margin-inline-end: auto; color: var(--color-text-muted); font: 600 var(--font-meta)/1.3 var(--font-mono); font-variant-numeric: tabular-nums; }
.resource-rail + .rail-controls .rail-button { inline-size: var(--control-height); padding: 0; }
.resource-rail + .rail-controls .rail-button[aria-disabled="true"] { border-color: var(--color-border); color: var(--color-disabled); cursor: default; transform: none; }
.home-resources > .home-editorial > [data-legacy-case] { grid-column: 1 / -1; }
@media screen {
  .home-resources [data-legacy-case]:not([data-reading-open]):not(:target):not(:has(:target)) { display: none; }
}
@container resources (max-width: 16em) {
  .concerns-hero-home .home-sections .resource-rail { display: block; overflow: visible; scroll-snap-type: none; }
  .resource-rail::after { content: none; }
  .concerns-hero-home .resource-rail > .prose-section { margin-block-end: var(--space-4); }
  .resource-rail + .rail-controls { display: none; }
}
@media print {
  .concerns-hero-home .home-sections .resource-rail { display: block; overflow: visible; }
  .concerns-hero-home .resource-rail > .prose-section { break-inside: avoid; margin-block-end: var(--space-4); }
  .resource-rail::after, .resource-rail-hint, .resource-rail + .rail-controls { display: none; }
}

/* Static previews reserve their space and never host a nested map or document. */
.home-map-preview { display: block; margin-block: var(--space-5) var(--space-2); color: var(--color-text-strong); text-decoration: none; }
.home-map-preview img { display: block; inline-size: 100%; block-size: auto; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.home-map-preview .resource-link { display: inline-flex; align-items: center; gap: var(--space-2); min-block-size: var(--control-height); text-decoration: underline; text-underline-offset: var(--space-1); }
.home-section-content .home-map-credit { margin-block: 0 var(--space-5); color: var(--color-text-muted); font-size: var(--font-small); line-height: 1.5; }
