/* Shared final-weeks fixes and the two bounded homepage hero options. */
[hidden] { display: none !important; }
.direction-civic .nav { flex-wrap: wrap; }
.direction-civic .wordmark { max-width: min(100%, 20rem); white-space: normal; }
.direction-civic .desktop-nav { margin-left: auto; }
.direction-civic .desktop-nav .nav-cta,
.direction-civic .mobile-nav .nav-cta { border-color: var(--color-accent); background: var(--color-accent); color: var(--color-ink); }
.direction-civic .desktop-nav .nav-cta { padding: .65rem 1rem; }
.direction-civic .mobile-nav nav { max-width: calc(100vw - var(--page-gutter) * 2); }
.direction-civic .mobile-nav nav a { white-space: normal; }
.direction-civic [data-vote-cta] { inline-size: 14.5rem; max-inline-size: 100%; justify-content: center; white-space: normal; text-align: center; }

.campaign-hero { overflow: hidden; background: var(--color-ink); color: var(--color-light); }
.campaign-hero-grid { display: grid; min-height: 0; }
.campaign-hero-copy { padding-block: var(--space-md); }
.campaign-name { color: var(--color-light); font: 700 clamp(3.25rem, 16vw, 5rem)/.86 var(--font-display); letter-spacing: -.035em; text-transform: uppercase; }
.campaign-riding { margin-top: .55rem; color: var(--color-accent); font: 600 1.125rem/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.direction-civic .campaign-hero h1 { max-width: none; margin-top: var(--space-md); color: var(--color-light); font-size: clamp(2.25rem, 10.2vw, 3.15rem); line-height: .98; text-transform: uppercase; }
.direction-civic .campaign-hero h1 em { color: var(--color-accent); }
.campaign-hero .actions { margin-top: var(--space-md); }
.direction-civic .campaign-hero .button { min-width: 10rem; background: var(--color-accent); border-color: var(--color-accent); color: var(--color-ink); }
.campaign-radio-link { color: var(--color-light); font-size: var(--text-sm); }
.campaign-photo { min-height: 0; margin: 0; }
.campaign-photo img { width: 100%; height: 235px; object-fit: cover; }
.hero-option-a .campaign-photo img { object-position: 55% 35%; }
.hero-option-b .campaign-photo { align-self: stretch; background: #fff; }
.hero-option-b .campaign-photo img { object-position: 50% 18%; }

.deadline-band { min-height: 94px; padding-block: var(--space-sm); background: var(--color-accent); color: var(--color-ink); }
.deadline-band .wrap { display: flex; align-items: flex-start; }
.deadline-copy-stack { flex: 1 1 auto; display: grid; }
.deadline-copy { grid-area: 1 / 1; font: 700 clamp(1.5rem, 7.3vw, 2rem)/1 var(--font-display); text-transform: uppercase; }
.deadline-copy-reserve { visibility: hidden; }
.deadline-link-slot { flex: 0 0 min(9rem, 35%); display: grid; margin-left: auto; }
.deadline-link { grid-area: 1 / 1; display: block; color: var(--color-ink); font-weight: 700; text-align: right; }
.deadline-link-reserve { visibility: hidden; }

.direction-civic .vote-card { min-height: 220px; }
.direction-civic .vote-title { min-height: 2em; }
.direction-civic [data-vote-message] { min-height: 3em; }
.vote-instruction { min-height: 3em; max-width: 38rem; margin-top: var(--space-sm); color: var(--color-light-muted); font-size: var(--text-sm); font-weight: 600; line-height: 1.5; }
.vote-actions .vote-instruction { flex-basis: 100%; margin-top: 0; }
.radio-card { margin-top: 0; }
.radio-card h2 { font-size: clamp(1.75rem, 4vw, 2.5rem); }
.radio-card .radio-actions { align-self: center; }
.illustration-label { margin-bottom: .35rem; color: var(--color-accent); font: 600 1.5rem/1.1 var(--font-display); }
.illustration-disclosure { margin-bottom: var(--space-sm); color: var(--color-light); font-size: var(--text-sm); font-weight: 600; }
.stability-route { margin-bottom: var(--space-md); padding-bottom: var(--space-md); border-bottom: 1px solid var(--color-rule); font-size: var(--text-sm); line-height: 1.5; }

@media (min-width: 40rem) {
  .campaign-hero-grid { grid-template-columns: minmax(0, .98fr) minmax(18rem, 1.02fr); align-items: stretch; }
  .campaign-hero-copy { display: flex; flex-direction: column; justify-content: center; padding-block: var(--space-xl); padding-right: var(--space-lg); }
  .campaign-name { font-size: clamp(4.5rem, 8vw, 7.75rem); }
  .direction-civic .campaign-hero h1 { font-size: clamp(3rem, 5vw, 5rem); }
  .campaign-photo { position: relative; min-height: 540px; }
  .campaign-photo img { position: absolute; inset: 0; height: 100%; }
  .hero-option-b .campaign-photo { margin-right: calc(var(--page-gutter) * -1); }
  .direction-civic .vote-card .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .direction-civic .vote-card { min-height: 170px; }
}

@media (min-width: 64rem) {
  .direction-civic .nav { padding-block: var(--space-md); }
  .campaign-hero-grid { min-height: 620px; }
  .campaign-photo { min-height: 620px; }
  .hero-option-a .campaign-photo { margin-right: calc(var(--page-gutter) * -1); }
}

@media (max-width: 39.99rem) {
  .direction-civic .nav { gap: var(--space-xs); }
  .direction-civic .wordmark { flex: 1 1 15rem; font-size: clamp(1.75rem, 9vw, 2.125rem); }
  .direction-civic .mobile-nav { margin-left: auto; }
  .campaign-hero-copy { padding-top: var(--space-sm); padding-bottom: var(--space-sm); }
  .campaign-name { font-size: clamp(3rem, 14.5vw, 3.55rem); }
  .campaign-riding { font-size: 1rem; }
  .direction-civic .campaign-hero h1 { margin-top: var(--space-sm); font-size: clamp(2rem, 9.3vw, 2.25rem); }
  .campaign-hero .actions { margin-top: var(--space-sm); }
  .campaign-photo img { height: 215px; }
  .hero-option-b .campaign-photo { margin-right: calc(var(--page-gutter) * -1); }
  .hero-option-b .campaign-photo img { object-position: 50% 14%; }
  .deadline-band { min-height: 106px; }
  .deadline-copy { font-size: 1.55rem; }
  .deadline-link-slot { flex-basis: min(7.25rem, 35%); }
  .direction-civic [data-vote-message] { min-height: 5em; }
}
