.site-header,
main,
.site-footer,
.subfooter {
  width: min(calc(100% - 2rem), var(--max-width));
  margin: 0 auto;
}

.site-header {
  padding: 1.5rem 0 0;
}

.hero-shell {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 1.5rem;
  align-items: stretch;
  margin-bottom: 1rem;
}

.hero-placeholder {
  min-height: 320px;
  border-radius: var(--radius);
}

.site-photo-frame {
  overflow: hidden;
  border-radius: inherit;
  background: transparent;
  border: 0;
  padding: 0;
}

.site-photo {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
  object-fit: contain;
  object-position: center;
}

.site-photo-link {
  display: block;
  width: 100%;
  height: auto;
  line-height: 0;
}

.site-photo-link:focus-visible {
  outline: 3px solid var(--accent-green, #4aba50);
  outline-offset: 2px;
}

.site-photo--hero,
.hero-placeholder--photo .site-photo {
  min-height: 320px;
}

.site-photo--logo,
.logo-placeholder--photo .site-photo {
  min-height: 210px;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.82);
}

.site-photo--award,
.award-placeholder--photo .site-photo {
  min-height: 120px;
  max-height: 180px;
  object-fit: cover;
  border-radius: var(--radius-sm);
}

.site-photo--building,
.building-placeholder--photo .site-photo {
  min-height: 0;
}

.site-photo--card,
.media-placeholder--photo .site-photo,
.news-full-card__poster .site-photo {
  min-height: 0;
}

.site-photo--concept,
.concept-placeholder--photo .site-photo {
  min-height: 0;
  height: auto;
  object-fit: contain;
  background: #fff;
}

.site-photo--groundbreaking,
.groundbreaking-placeholder--photo .site-photo {
  min-height: 360px;
}

.site-photo--about,
.about-image-placeholder--photo .site-photo {
  min-height: 420px;
}

.site-photo--map,
.map-embed-placeholder--photo .site-photo {
  min-height: 280px;
  object-fit: contain;
  background: #fff;
}

.map-embed-fallback {
  margin: 0.75rem 0 0;
  text-align: center;
}

.hero-copy {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.primary-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1rem;
  margin-bottom: 1.25rem;
}

.primary-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1 1 auto;
}

/* Hamburger toggle — hidden on desktop */
.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  padding: 0.55rem 0.6rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  background: rgba(255, 255, 255, 0.88);
  border: 2px solid var(--brand-green-deep);
  border-radius: 0.5rem;
  cursor: pointer;
  color: var(--brand-green-deep);
}

.nav-toggle:hover,
.nav-toggle:focus-visible {
  background: #fff;
  outline: 3px solid var(--brand-purple-deep);
  outline-offset: 3px;
}

.nav-toggle__bar {
  display: block;
  width: 20px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform 0.22s ease, opacity 0.18s ease;
}

.nav--open .nav-toggle__bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nav--open .nav-toggle__bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.nav--open .nav-toggle__bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.primary-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.5rem 0.85rem;
  border-radius: 999px;
  font-size: 0.95rem;
}

.primary-nav a[aria-current="page"] {
  background: rgba(255, 255, 255, 0.92);
  font-weight: 700;
}

.primary-nav a:not(.theme-button):hover,
.primary-nav a:not(.theme-button):focus-visible {
  background: rgba(255, 255, 255, 0.9);
  text-decoration: none;
}

.nav-cta {
  min-height: 2.5rem;
  padding: 0.5rem 0.85rem;
}

.section-frame,
.section-frame.theme-surface,
.section-frame.theme-surface--brand-soft,
.section-frame.theme-surface--purple-soft {
  margin: 1.5rem auto;
  padding: 1.5rem;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.section-intro {
  margin-bottom: 1rem;
}

.logo-lockup {
  display: grid;
  gap: 0.35rem;
  justify-items: center;
  text-align: center;
  color: var(--brand-green-deep);
}

.logo-lockup__title {
  font-size: clamp(1.45rem, 2.6vw, 2.35rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.1;
}

.logo-lockup__subtitle {
  color: var(--brand-purple-deep);
  font-size: clamp(0.95rem, 1.6vw, 1.25rem);
  letter-spacing: 0.14em;
}

.page-intro {
  display: grid;
  gap: 0.85rem;
  padding: 1.75rem;
}

.sponsor-gallery {
  display: grid;
  gap: 1.25rem;
}

.sponsor-tier-showcases {
  display: grid;
  gap: 2rem;
}

.sponsor-events {
  display: grid;
  gap: 2.5rem;
}

.sponsor-event {
  display: grid;
  gap: 1.5rem;
}

.sponsor-event ~ .sponsor-event {
  grid-template-columns: minmax(220px, 0.38fr) minmax(0, 0.62fr);
  gap: 1.5rem 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

.sponsor-event__intro {
  display: grid;
  gap: 0.75rem;
  align-content: start;
}

.sponsor-event__intro--with-mark {
  justify-items: start;
}

.sponsor-event__title {
  margin: 0;
  color: var(--brand-green-deep);
  font-size: clamp(1.8rem, 3.2vw, 3rem);
  line-height: 1.08;
}

.sponsor-event:first-child .sponsor-event__title {
  text-align: center;
}

.sponsor-event__mark {
  display: block;
  width: min(100%, 180px);
  height: auto;
}

.sponsor-event__content {
  display: grid;
  gap: 1.5rem;
}

.sponsor-event:not(:first-child) .sponsor-event__content {
  gap: 1rem;
}

.sponsor-event:not(:first-child) .sponsor-showcase {
  gap: 0.9rem;
}

.sponsor-event:not(:first-child) .sponsor-showcase__header {
  padding: 0.6rem 0.8rem;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.sponsor-event:not(:first-child) .sponsor-showcase__item {
  min-height: 128px;
}

.sponsor-event:not(:first-child) .sponsor-showcase__item--tall {
  min-height: 146px;
}

.sponsor-event:not(:first-child) .sponsor-showcase__link,
.sponsor-event:not(:first-child) .sponsor-showcase__wordmark {
  min-height: 128px;
  padding: 0.9rem;
}

.sponsor-event:not(:first-child) .sponsor-showcase__image {
  max-height: 88px;
}

.sponsor-event:not(:first-child) .sponsor-showcase__image--tall {
  max-height: 100px;
}

.sponsor-event:not(:first-child) .sponsor-showcase__text-block--featured .sponsor-showcase__text-line {
  font-size: clamp(1.2rem, 2vw, 1.55rem);
}

.sponsor-event:not(:first-child) .sponsor-showcase__text-block--plain .sponsor-showcase__text-line {
  font-size: clamp(1rem, 1.8vw, 1.3rem);
}

.past-event-groups {
  display: grid;
  gap: 1.25rem;
}

.past-event-sponsor-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.past-event-sponsor-list--court {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.past-event-sponsor-item {
  margin: 0;
}

.past-event-sponsor-item--center {
  grid-column: 2;
}

.past-event-sponsor-item__surface {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 118px;
  padding: 0.35rem;
  background: transparent;
}

.past-event-sponsor-item__image {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: 118px;
  object-fit: contain;
}

.past-event-group {
  display: grid;
  gap: 0.75rem;
}

.past-event-group__title {
  margin: 0;
  color: var(--brand-purple-deep);
  font-size: 1.08rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.past-event-contributor-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1rem;
  margin: 0;
  padding: 0;
}

.past-event-contributor-item {
  margin: 0;
}

.sponsor-showcase {
  display: grid;
  gap: 1.25rem;
  --tier-header-bg: linear-gradient(90deg, #8f319f, #b44bc5);
  --tier-header-color: #ffffff;
}

.sponsor-showcase--platinum {
  --tier-header-bg: linear-gradient(90deg, #b8953f, #f2efe6, #b8953f);
  --tier-header-color: #4d3a10;
}

.sponsor-showcase--gold {
  --tier-header-bg: linear-gradient(90deg, #a56c00, #efc75e, #a56c00);
  --tier-header-color: #ffffff;
}

.sponsor-showcase--bronze {
  --tier-header-bg: linear-gradient(90deg, #865328, #c79161, #865328);
  --tier-header-color: #ffffff;
}

.sponsor-showcase__header {
  margin: 0;
  padding: 0.8rem 1rem;
  text-align: center;
  font-size: clamp(1.3rem, 3vw, 2.1rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tier-header-color);
  background: var(--tier-header-bg);
}

.sponsor-showcase__grid {
  display: grid;
  gap: 1rem 1.5rem;
  align-items: center;
}

.sponsor-showcase__grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sponsor-showcase__grid--6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sponsor-showcase__grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sponsor-showcase__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 170px;
}

.sponsor-showcase__item--span-all {
  grid-column: 1 / -1;
  min-height: auto;
}

.sponsor-showcase__item--tall {
  min-height: 200px;
}

.sponsor-showcase__link,
.sponsor-showcase__wordmark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 170px;
  padding: 1.25rem;
}

.sponsor-showcase__link--stacked {
  flex-direction: column;
  gap: 0.3rem;
}

.sponsor-showcase__link--dark {
  background: #7b5a48;
}

.sponsor-showcase__image {
  display: block;
  width: 100%;
  max-width: 320px;
  max-height: 120px;
  object-fit: contain;
}

.sponsor-showcase__image--wide {
  max-width: 420px;
}

.sponsor-showcase__image--tall {
  max-height: 140px;
}

.sponsor-showcase__text-block {
  display: grid;
  gap: 0.5rem;
  width: 100%;
  text-align: center;
  justify-items: center;
  padding: 0.75rem 1rem;
}

.sponsor-showcase__text-block--featured {
  padding-top: 0;
}

.sponsor-showcase__text-line {
  margin: 0;
  line-height: 1.15;
}

.sponsor-showcase__text-block--featured .sponsor-showcase__text-line {
  color: var(--brand-purple-deep);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3.8vw, 2.85rem);
  font-style: italic;
  font-weight: 700;
}

.sponsor-showcase__text-block--plain .sponsor-showcase__text-line {
  color: var(--text);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.5rem, 2.9vw, 2.15rem);
  font-style: italic;
  font-weight: 500;
}

.sponsor-showcase__caption {
  color: var(--text);
  font-size: 0.92rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.sponsor-showcase__caption--strong {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.sponsor-image-stack {
  display: grid;
  gap: 1rem;
}

.sponsor-logo-block {
  min-height: 220px;
}

.sponsor-logo-block--tall {
  min-height: 300px;
}

.sponsor-logo-block--medium {
  min-height: 220px;
}

.sponsor-logo-block--square {
  min-height: 280px;
  max-width: 420px;
  margin: 0 auto;
}

.sponsor-lines {
  display: grid;
  gap: 0.75rem;
  text-align: center;
}

.sponsor-line {
  margin: 0;
}

.sponsor-thanks {
  margin: 0 0 1.5rem;
  text-align: center;
  font-size: clamp(1.2rem, 2vw, 1.7rem);
  line-height: 1.45;
}

.sponsor-tier-wrap {
  display: grid;
  gap: 1.5rem;
}

.sponsor-tier {
  display: grid;
  gap: 0.75rem;
  text-align: center;
}

.sponsor-tier h2,
.sponsor-tier h3 {
  margin-bottom: 0.25rem;
  color: var(--brand-green-deep);
}

.sponsor-tier p {
  margin-bottom: 0;
}

.lede {
  max-width: 72ch;
  font-size: 1.1rem;
  line-height: 1.65;
  color: var(--brand-green-deep);
}

.news-grid,
.about-supporting-grid {
  display: grid;
  gap: 1rem;
}

.card-grid {
  columns: 2;
  column-gap: 1rem;
}

.card-grid > .feature-card {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  display: inline-block;
  width: 100%;
  margin-bottom: 1rem;
  vertical-align: top;
}

.card-grid > .feature-card:last-child {
  margin-bottom: 0;
}

.feature-card,
.news-card {
  min-height: 0;
}

.media-placeholder {
  min-height: 220px;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  border-radius: 0;
}

.feature-card .media-placeholder--photo {
  min-height: 0;
  height: auto;
  background: var(--surface-soft, #f0f0ed);
}

.feature-card .site-photo-link {
  height: auto;
}

.feature-card .site-photo--card,
.feature-card .media-placeholder--photo .site-photo {
  min-height: 0;
  height: 100%;
  width: 100%;
  object-fit: contain;
  object-position: center;
}

.feature-card__body,
.news-card {
  padding: 1.25rem;
}

.feature-card__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex: 0 0 auto;
}

.theme-card.feature-card {
  height: auto;
}

.location-band {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.4fr);
  gap: 1rem;
  align-items: stretch;
}

.location-callout {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.building-placeholder {
  min-height: 320px;
}

.mission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.mission-column,
.support-column {
  display: grid;
  gap: 1rem;
}

.copy-block,
.support-column {
  align-content: start;
}

.news-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.poster-placeholder {
  min-height: 240px;
  margin-bottom: 1rem;
}

.about-story-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.15fr);
  gap: 1.25rem;
  align-items: start;
}

.origin-highlight {
  position: relative;
  overflow: hidden;
}

.origin-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(300px, 1.08fr);
  gap: 1.25rem;
  align-items: start;
}

.origin-copy,
.origin-visual-stack {
  display: grid;
  gap: 1rem;
}

.origin-copy p:last-child,
.origin-copy ul:last-child,
.origin-visual-stack p:last-child {
  margin-bottom: 0;
}

.origin-points {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.8rem;
}

.origin-points li {
  padding-left: 0.2rem;
}

.concept-placeholder {
  min-height: 0;
  height: auto;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  border-radius: 0;
}

.groundbreaking-placeholder {
  min-height: 360px;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  border-radius: 0;
}

.origin-caption {
  font-size: 0.92rem;
  color: var(--muted);
}

.story-copy {
  display: grid;
  gap: 1rem;
}

.story-copy p:last-child {
  margin-bottom: 0;
}

.about-image-card {
  min-height: 100%;
}

.about-image-placeholder {
  min-height: 420px;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  border-radius: 0;
}

.about-supporting-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.facts-list {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.8rem;
}

.facts-list li {
  padding-left: 0.2rem;
}

.about-media-cta {
  margin: 1.25rem 0 0;
}

.about-spotlight-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: stretch;
}

@media (min-width: 720px) {
  .about-spotlight-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.35rem;
  }
}

.about-spotlight-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  min-height: 100%;
}

.about-spotlight-card .about-media-cta {
  margin-top: auto;
  padding-top: 0.25rem;
}

.about-spotlight-card p:last-of-type:not(.about-media-cta) {
  margin-bottom: 0;
}

.board-panel,
.cta-panel {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.board-panel p,
.cta-panel p {
  margin-bottom: 0;
}

.action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.site-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.95fr);
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1.5rem;
}

.footer-brand,
.footer-contact {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.logo-placeholder {
  min-height: 210px;
}

.social-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.social-list a {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  padding: 0.4rem 0.75rem;
  border: 1px solid rgba(74, 186, 80, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
}

.footer-awards {
  display: grid;
  gap: 0.5rem;
}

.footer-awards p {
  margin: 0;
}

address {
  font-style: normal;
  color: var(--muted);
}

.award-placeholder {
  min-height: 120px;
  max-width: 180px;
}

.badge-copy {
  display: grid;
  gap: 0.2rem;
  justify-items: start;
  color: var(--text);
  font-weight: 700;
}

.subfooter {
  padding: 1rem 0 2.5rem;
  text-align: center;
  color: var(--muted);
  font-size: 0.92rem;
}

.subfooter nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem 1rem;
  margin-bottom: 0.75rem;
}

.subfooter__admin {
  color: var(--muted);
  font-size: 0.88em;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.subfooter__admin:hover,
.subfooter__admin:focus-visible {
  color: var(--text);
}

/* ─── Contact page ────────────────────────────────────────────────── */
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 2rem;
  align-items: start;
}

.contact-intro-col,
.contact-form-col {
  display: grid;
  gap: 1.25rem;
  align-content: start;
}

.contact-connect {
  display: grid;
  gap: 0.75rem;
}

.contact-form {
  display: grid;
  gap: 1.25rem;
}

.form-row {
  display: grid;
  gap: 0.85rem;
}

.form-row--split {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-fieldset {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 1rem 1.25rem;
  margin: 0;
}

.form-fieldset legend {
  padding: 0 0.4rem;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--brand-green-deep);
}

.form-field {
  display: grid;
  gap: 0.3rem;
}

.form-field--state {
  max-width: 5.5rem;
}

.form-field--zip {
  max-width: 10rem;
}

.form-row--town-state-zip {
  grid-template-columns: minmax(0, 1.4fr) minmax(4.5rem, 0.45fr) minmax(6rem, 0.7fr);
}

@media (max-width: 640px) {
  .form-row--town-state-zip {
    grid-template-columns: 1fr;
  }

  .form-field--state,
  .form-field--zip {
    max-width: none;
  }
}

.form-field--hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-field label {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text);
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 0.5rem;
  font-family: inherit;
  font-size: 1rem;
  color: var(--text);
  background: var(--panel);
  transition: border-color 0.15s;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  outline: 3px solid var(--brand-purple-deep);
  outline-offset: 2px;
  border-color: var(--brand-purple-deep);
}

.form-field textarea {
  resize: vertical;
  min-height: 120px;
}

.form-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.35rem;
}

.form-radio-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  font-size: 0.97rem;
}

.contact-apply-heading {
  margin: 0 0 0.35rem;
  font-family: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 600;
  color: var(--brand-green-deep);
}

.contact-apply-lede {
  margin: 0 0 0.5rem;
  color: var(--text-muted, var(--text));
  line-height: 1.5;
}

.form-hint {
  margin: 0.25rem 0 0.5rem;
  font-size: 0.9rem;
  color: var(--text-muted, var(--text));
}

.form-checkbox-group--days {
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
}

.apply-cta-band {
  margin-block: 0.5rem 1.5rem;
}

.apply-cta-band__inner {
  display: grid;
  gap: 0.75rem;
  padding: 1.5rem 1.75rem;
  background: var(--panel-soft, var(--panel));
  border: 1px solid var(--line);
  border-radius: var(--radius-sm, 0.75rem);
}

.apply-cta-band__inner h2 {
  margin: 0;
  font-family: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 600;
  color: var(--brand-green-deep);
}

.apply-cta-band__inner p {
  margin: 0;
  max-width: 40rem;
  line-height: 1.5;
}

.apply-cta-band__actions,
.apply-cta-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0.25rem 0 0;
}

.apply-cta-inline {
  margin-top: 1.25rem;
}

/* ─── Donate page ─────────────────────────────────────────────────── */
.donate-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: start;
}

.donate-option-card {
  height: 100%;
}

.donate-option-card__body {
  display: grid;
  gap: 1rem;
  align-content: start;
  padding: 1.5rem;
}

.donate-option-card__body address {
  font-style: normal;
  line-height: 1.7;
}

/* ─── News page ───────────────────────────────────────────────────── */
.news-full-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.news-full-card {
  display: flex;
  flex-direction: column;
}

.news-full-card .poster-placeholder {
  min-height: 200px;
}

.news-full-card__body {
  display: grid;
  gap: 0.85rem;
  align-content: start;
  padding: 1.25rem;
  flex: 1;
}

.news-full-card__body h2 {
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  margin: 0;
}

/* ─── Volunteer page ──────────────────────────────────────────────── */
.volunteer-apply-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: start;
}

.vol-apply-card {
  height: 100%;
}

.vol-apply-card__body {
  display: grid;
  gap: 1rem;
  align-content: start;
  padding: 1.5rem;
}

.vol-roles-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.vol-role {
  break-inside: avoid;
}

.vol-role__body {
  display: grid;
  gap: 0.6rem;
  align-content: start;
  padding: 1.25rem;
}

.vol-role__body h3 {
  margin: 0;
  color: var(--brand-green-deep);
  font-size: 1.05rem;
}

.vol-role__body p {
  margin: 0;
  font-size: 0.97rem;
  line-height: 1.55;
}

.vol-role__hours {
  color: var(--muted);
  font-size: 0.91rem !important;
  margin-top: 0.25rem !important;
}

.vol-closing {
  margin: 0;
  font-size: 0.97rem;
  color: var(--muted);
}

.vol-policy-list {
  display: grid;
  gap: 0.65rem;
  padding-left: 1.4rem;
  margin: 0;
}

.vol-policy-list li {
  line-height: 1.6;
}

.vol-policy-list ul {
  margin-top: 0.5rem;
  display: grid;
  gap: 0.35rem;
}

.vol-nondiscrim {
  font-size: 0.9rem;
  color: var(--muted);
  max-width: 80ch;
  line-height: 1.65;
}

.sponsor-thanks--divider {
  padding: 1.25rem 0 0.5rem;
  border-top: 1px solid var(--line);
  font-style: italic;
  color: var(--muted);
}

/* ─── Historical sponsors two-column layout ───────────────────────── */
.historical-sponsors {
  display: grid;
  gap: 1.75rem;
}

.historical-tier-grid {
  display: grid;
  gap: 0;
}

.historical-tier-row {
  display: grid;
  grid-template-columns: minmax(220px, 0.38fr) minmax(0, 0.62fr);
  gap: 0.75rem 2rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}

.historical-tier-row:first-child {
  border-top: 1px solid var(--line);
}

.historical-tier-row__label {
  font-weight: 800;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brand-green-deep);
  padding-top: 0.1rem;
  text-align: right;
}

.historical-tier-row__names {
  display: grid;
  gap: 0.2rem;
}

.historical-tier-row__names p {
  margin: 0;
  line-height: 1.5;
}

@media (max-width: 480px) {
  .historical-tier-row {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
}

/* ─── Visit page ──────────────────────────────────────────────────── */
.visit-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 2rem;
  align-items: start;
}

.visit-info-col,
.visit-map-col {
  display: grid;
  gap: 1.25rem;
  align-content: start;
}

.visit-address {
  font-style: normal;
  line-height: 1.75;
  font-size: 1.05rem;
}

.visit-hours-block,
.visit-parking-block {
  display: grid;
  gap: 0.35rem;
}

.visit-hours-block h3,
.visit-parking-block h3 {
  margin: 0;
  color: var(--brand-green-deep);
  font-size: 1rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.map-embed-placeholder {
  min-height: 380px;
  border-radius: var(--radius-sm);
  display: grid;
  place-items: center;
  text-align: center;
  gap: 0.5rem;
  padding: 1.5rem;
}

/* ─── Hunger Facts page ───────────────────────────────────────────── */
.hunger-facts-list {
  display: grid;
  gap: 0.85rem;
  padding-left: 1.5rem;
  margin: 0;
  max-width: 80ch;
}

.hunger-facts-list li {
  line-height: 1.65;
}

/* ─── News page ───────────────────────────────────────────────────── */
.news-full-card__poster {
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--surface-soft, #f0f0ed);
}

.news-full-card__poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.news-full-card:hover .news-full-card__poster img {
  transform: scale(1.04);
}

.news-full-card__date {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted, #888);
}

.news-featured {
  display: grid;
  gap: 1rem;
}

.news-featured-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.news-featured-card {
  display: grid;
  grid-template-rows: auto 1fr;
}

.news-featured-card .news-full-card__poster {
  aspect-ratio: 4 / 3;
}

.news-see-all {
  display: flex;
  justify-content: center;
  padding-top: 2rem;
}

@media (max-width: 640px) {
  .news-featured-grid {
    grid-template-columns: 1fr;
  }
}

/* ─── FAQ page ────────────────────────────────────────────────────── */
.faq-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
}

.faq-item {
  border-bottom: 1px solid var(--line);
  padding: 1.5rem 0;
}

.faq-item:first-child {
  border-top: 1px solid var(--line);
}

.faq-question {
  font-size: 1.05rem;
  line-height: 1.45;
  color: var(--brand-green-deep);
  margin-bottom: 0.75rem;
}

.faq-answer {
  margin: 0;
  padding-left: 0;
}

.faq-answer p {
  margin: 0 0 0.65rem;
  line-height: 1.65;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  .contact-layout,
  .donate-options,
  .volunteer-apply-grid,
  .news-full-grid,
  .vol-roles-grid,
  .visit-layout {
    grid-template-columns: 1fr;
  }

  .form-row--split {
    grid-template-columns: 1fr;
  }

  .form-field--zip {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .nav-toggle {
    display: flex;
  }

  .primary-nav > ul {
    display: none;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    flex-basis: 100%;
    gap: 0.2rem;
    padding: 0.5rem 0 0.75rem;
  }

  .primary-nav.nav--open > ul {
    display: flex;
  }

  .primary-nav a:not(.theme-button) {
    justify-content: flex-start;
    width: 100%;
  }

  .nav-cta {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 900px) {
  .hero-shell,
  .location-band,
  .mission-grid,
  .news-grid,
  .site-footer,
  .about-story-grid,
  .about-supporting-grid,
  .origin-grid,
  .sponsor-event ~ .sponsor-event {
    grid-template-columns: 1fr;
  }

  .sponsor-showcase__grid--2,
  .sponsor-showcase__grid--6,
  .sponsor-showcase__grid--3 {
    grid-template-columns: 1fr;
  }

  .past-event-sponsor-list,
  .past-event-contributor-list {
    grid-template-columns: 1fr;
  }

  .past-event-sponsor-item--center {
    grid-column: auto;
  }

  .card-grid {
    columns: 1;
  }
}

@media (max-width: 640px) {
  .site-header,
  main,
  .site-footer,
  .subfooter {
    width: min(calc(100% - 1rem), var(--max-width));
  }

  .section-frame,
  .site-footer,
  .hero-copy,
  .page-intro {
    padding: 1.1rem;
  }

  .primary-nav {
    border-radius: 1.25rem;
  }

  .about-image-placeholder {
    min-height: 280px;
  }

  .groundbreaking-placeholder {
    min-height: 260px;
  }

  .sponsor-showcase__grid--2,
  .sponsor-showcase__grid--6,
  .sponsor-showcase__grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ── Ways to Give ─────────────────────────────────────────────────────────── */

.wtg-naming {
  display: grid;
  gap: 1.5rem;
}

.wtg-naming-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}

.wtg-naming-item {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 1.5rem;
  align-items: baseline;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border, #e0e0e0);
}

.wtg-naming-item:first-child {
  border-top: 1px solid var(--color-border, #e0e0e0);
}

.wtg-naming-item__label {
  font-weight: 600;
}

.wtg-naming-item__amount {
  font-variant-numeric: tabular-nums;
  color: var(--color-accent-green);
  font-weight: 700;
  white-space: nowrap;
}

.wtg-naming-item__donor {
  grid-column: 1 / -1;
  font-size: 0.85rem;
  color: var(--color-text-muted, #666);
  padding-bottom: 0.25rem;
}

/* Sharing Our Table tiers */

.wtg-sot {
  display: grid;
  gap: 2rem;
}

.wtg-sot-intro {
  display: grid;
  gap: 0.75rem;
  max-width: 72ch;
}

.wtg-sot-intro h3 {
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-accent-green);
  margin: 0;
}

.wtg-sot-tiers {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  max-width: 52rem;
}

.wtg-sot-tier {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 2rem;
  align-items: center;
  padding: 0.9rem 1rem;
  border-bottom: 1px solid var(--color-border, #e0e0e0);
}

.wtg-sot-tier:first-child {
  border-top: 1px solid var(--color-border, #e0e0e0);
  background: color-mix(in srgb, var(--color-accent-green) 6%, transparent);
}

.wtg-sot-tier:nth-child(2) {
  background: color-mix(in srgb, var(--color-accent-green) 4%, transparent);
}

.wtg-sot-tier__name {
  font-weight: 600;
}

.wtg-sot-tier__amount {
  font-size: 0.9rem;
  color: var(--color-text-muted, #555);
  white-space: nowrap;
}

/* Planned giving accordion-style list */

.wtg-planned {
  display: grid;
  gap: 1.5rem;
}

.wtg-planned-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
}

.wtg-planned-item {
  border-bottom: 1px solid var(--color-border, #e0e0e0);
  padding: 1.1rem 0;
}

.wtg-planned-item:first-child {
  border-top: 1px solid var(--color-border, #e0e0e0);
}

.wtg-planned-question {
  font-size: 1rem;
  margin-bottom: 0.5rem;
}

.wtg-planned-answer {
  margin: 0;
}

.wtg-planned-answer p {
  margin: 0;
  color: var(--color-text-body, #333);
  line-height: 1.65;
}

@media (max-width: 600px) {
  .wtg-naming-item {
    grid-template-columns: 1fr;
  }

  .wtg-naming-item__amount {
    font-size: 0.95rem;
  }

  .wtg-sot-tier {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

/* ── Press & Media ────────────────────────────────────────────────────────── */

.press-articles {
  display: grid;
  gap: 1.5rem;
}

.press-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}

.press-item {
  display: grid;
  grid-template-columns: 4rem 1fr;
  column-gap: 1.5rem;
  align-items: baseline;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--color-border, #e0e0e0);
}

.press-item:first-child {
  border-top: 1px solid var(--color-border, #e0e0e0);
}

.press-item__year {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--color-accent-green);
  text-transform: uppercase;
  padding-top: 0.15rem;
}

.press-item__content {
  display: grid;
  gap: 0.15rem;
}

.press-item__title {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
}

.press-item__title--no-link {
  color: var(--color-text-body, #333);
}

.press-item__pub {
  font-size: 0.78rem;
  color: var(--color-text-muted, #777);
  letter-spacing: 0.04em;
}

@media (max-width: 500px) {
  .press-item {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .press-item__year {
    font-size: 0.72rem;
  }
}

/* ── CMS event status banners ─────────────────────────────────────────────── */
.cgk-event-banner {
  margin: 0 0 var(--space-md);
  padding: 0.75rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  font-size: 0.95rem;
  line-height: 1.45;
}
.cgk-event-banner strong {
  display: block;
  margin-bottom: 0.25rem;
}
.cgk-event-banner--warning {
  background: #fff8e6;
  border-color: #e8c96a;
  color: #5c4a12;
}
.cgk-event-banner--danger {
  background: #fdeeee;
  border-color: #e0a0a0;
  color: #7a2020;
}

.location-band__hours {
  margin-top: 0.5rem;
  font-size: 0.95rem;
}

.visit-map-embed {
  width: 100%;
  min-height: 320px;
  border: 0;
  border-radius: var(--radius-md);
}

/* ── Sponsorship Opportunities ────────────────────────────────────────────── */

.spons-opps-jumps {
  display: grid;
  gap: 0.75rem;
}

.spons-opps-jumps ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.spons-opps-event {
  display: grid;
  gap: 2rem;
  border-top: 3px solid var(--color-accent-green);
}

.spons-opps-event__header {
  display: grid;
  gap: 1rem;
}

.spons-opps-event__title-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.spons-opps-event__title {
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  margin: 0;
  flex: 1 1 auto;
}

.spons-opps-event__badge {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--color-accent-green);
  color: #fff;
  padding: 0.2rem 0.6rem;
  border-radius: 2rem;
  white-space: nowrap;
  flex-shrink: 0;
}

.spons-opps-event__badge--globe-life {
  background: var(--color-accent-purple);
}

.spons-opps-event__meta {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.4rem 1.5rem;
  margin: 0;
  padding: 0.85rem 1rem;
  background: color-mix(in srgb, var(--color-accent-green) 5%, transparent);
  border-radius: 0.5rem;
}

.spons-opps-event__meta div {
  display: flex;
  gap: 0.4rem;
  align-items: baseline;
}

.spons-opps-event__meta dt {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-muted, #666);
  white-space: nowrap;
}

.spons-opps-event__meta dd {
  margin: 0;
  font-size: 0.9rem;
}

/* Tier cards */

.spons-opps-event__tiers {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.spons-opps-tier {
  padding: 1.1rem 1.25rem;
  border: 1px solid var(--color-border, #ddd);
  border-radius: 0.5rem;
  display: grid;
  gap: 0.75rem;
}

.spons-opps-tier--presenting {
  border-color: var(--color-accent-green);
  background: color-mix(in srgb, var(--color-accent-green) 5%, transparent);
  grid-column: 1 / -1;
}

.spons-opps-tier__name {
  font-size: 0.95rem;
  margin: 0;
  line-height: 1.35;
}

.spons-opps-tier__amount {
  color: var(--color-accent-green);
  font-weight: 700;
}

.spons-opps-tier ul {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.3rem;
}

.spons-opps-tier li {
  font-size: 0.875rem;
  line-height: 1.45;
}

@media (max-width: 640px) {
  .spons-opps-event__tiers {
    grid-template-columns: 1fr;
  }

  .spons-opps-tier--presenting {
    grid-column: 1;
  }

  .spons-opps-event__meta {
    grid-template-columns: 1fr;
  }
}

/* ── Support Us ───────────────────────────────────────────────────────────── */

.support-mission {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: 1rem;
}

.support-mission__block {
  display: grid;
  gap: 0.4rem;
}

.support-mission__block h2 {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent-green);
  margin: 0;
}

.support-mission__block p {
  margin: 0;
  line-height: 1.6;
}

.support-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.25rem;
}

.support-card {
  display: flex;
  flex-direction: column;
}

.support-card__body {
  display: grid;
  gap: 0.75rem;
  padding: 1.5rem;
  flex: 1;
}

.support-card__title {
  font-size: 1.1rem;
  margin: 0;
}

.support-card__body p {
  margin: 0;
  line-height: 1.55;
}

/* ── Volunteer Page ───────────────────────────────────────────────────────── */

/* Hero */
.vol-hero__lede {
  font-size: 1.1rem;
  max-width: 60ch;
  margin: 0;
}

/* Four door buttons */
.vol-doors {
  padding-top: 0;
}

.vol-door-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.vol-door-all-wrap {
  margin-top: 0.75rem;
}

.vol-door-all-wrap .vol-door {
  width: 100%;
  flex-direction: row;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.9rem 1.5rem;
  min-height: unset;
}

.vol-door {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  padding: 1.75rem 1rem;
  border: 2px solid var(--color-border, #ddd);
  border-radius: 0.75rem;
  background: #fff;
  cursor: pointer;
  text-align: center;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.vol-door:hover {
  border-color: var(--color-accent-green);
  background: color-mix(in srgb, var(--color-accent-green) 10%, #fff);
  box-shadow: 0 2px 10px color-mix(in srgb, var(--color-accent-green) 15%, transparent);
}

.vol-door--active {
  border-color: var(--color-accent-green);
  background: var(--color-accent-green);
  box-shadow: 0 2px 12px color-mix(in srgb, var(--color-accent-green) 35%, transparent);
  color: #fff;
}

.vol-door--active:hover {
  background: color-mix(in srgb, var(--color-accent-green) 85%, #000);
  border-color: color-mix(in srgb, var(--color-accent-green) 85%, #000);
  color: #fff;
}

.vol-door--active .vol-door__label,
.vol-door--active:hover .vol-door__label {
  color: #fff;
}

.vol-door--active .vol-door__sub,
.vol-door--active:hover .vol-door__sub {
  color: rgba(255, 255, 255, 0.82);
}

.vol-door__icon {
  font-size: 2rem;
  line-height: 1;
}

.vol-door__label {
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.25;
}

.vol-door__sub {
  font-size: 0.75rem;
  color: var(--color-text-muted, #666);
}

/* Path sections */
.vol-path {
  border-top: 3px solid var(--color-accent-green);
  scroll-margin-top: 1rem;
}

.vol-path__header {
  display: grid;
  gap: 1rem;
  max-width: 72ch;
}

.vol-path__header h2 {
  margin: 0;
}

.vol-path__cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.vol-path__note {
  font-size: 0.85rem;
  color: var(--color-text-muted, #555);
  max-width: 52ch;
}

.vol-path__note-box {
  font-size: 0.875rem;
  padding: 0.85rem 1rem;
  background: color-mix(in srgb, var(--color-accent-purple) 8%, transparent);
  border-left: 3px solid var(--color-accent-purple);
  border-radius: 0 0.4rem 0.4rem 0;
  line-height: 1.6;
}

/* Role table rows */
.vol-role-table {
  display: grid;
  gap: 0;
  margin-top: 1.5rem;
}

.vol-row {
  display: grid;
  grid-template-columns: minmax(140px, 0.22fr) minmax(160px, 0.28fr) minmax(130px, 0.22fr) minmax(0, 1fr);
  column-gap: 1.25rem;
  align-items: baseline;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--color-border, #e8e8e8);
  text-align: left;
}

.vol-row:first-child {
  border-top: 1px solid var(--color-border, #e8e8e8);
}

.vol-row--header {
  padding: 0.45rem 0;
  border-bottom: 2px solid var(--color-accent-green) !important;
  border-top: none !important;
}

.vol-row--header .vol-row__name,
.vol-row--header .vol-row__schedule,
.vol-row--header .vol-row__reqs,
.vol-row--header .vol-row__detail {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-muted, #666);
}

.vol-row__name {
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1.3;
  text-align: left;
}

.vol-row__badges,
.vol-row__schedule,
.vol-row__reqs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  align-items: flex-start;
  text-align: left;
  font-size: 0.85rem;
  color: var(--color-text-muted, #555);
}

.vol-badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 0.2rem 0.55rem;
  border-radius: 2rem;
  background: var(--color-surface-alt, #f0f0f0);
  color: var(--color-text-body, #333);
}

.vol-badge--age {
  background: color-mix(in srgb, var(--color-accent-purple) 15%, transparent);
  color: var(--color-accent-purple);
}

/* Age-specific tiers: green → amber → red as age floor rises */
.vol-badge--age-12 {
  background: color-mix(in srgb, var(--color-accent-green) 18%, transparent);
  color: color-mix(in srgb, var(--color-accent-green) 80%, #000);
}

.vol-badge--age-14 {
  background: color-mix(in srgb, #e0920a 15%, transparent);
  color: #a05f00;
}

.vol-badge--age-18 {
  background: color-mix(in srgb, #d94f2b 14%, transparent);
  color: #b03318;
}

.vol-badge--flex {
  background: color-mix(in srgb, var(--color-accent-green) 15%, transparent);
  color: color-mix(in srgb, var(--color-accent-green) 80%, #000);
}

.vol-badge--req {
  background: color-mix(in srgb, #e67e22 12%, transparent);
  color: #c0510a;
}

.vol-row__detail {
  font-size: 0.85rem;
  color: var(--color-text-muted, #555);
  line-height: 1.5;
  text-align: left;
}

/* Sortable full table */
.vol-sort-table-wrap {
  overflow-x: auto;
  margin-top: 1.5rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border, #ddd);
}

.vol-sort-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  /* col widths: Role 20% | Location 10% | Schedule 22% | Age 7% | Req 18% | Desc rest */
  table-layout: fixed;
}

.vol-sort-table col:nth-child(1) { width: 20%; }
.vol-sort-table col:nth-child(2) { width: 10%; }
.vol-sort-table col:nth-child(3) { width: 22%; }
.vol-sort-table col:nth-child(4) { width: 7%; }
.vol-sort-table col:nth-child(5) { width: 18%; }
.vol-sort-table col:nth-child(6) { width: auto; }

.vol-sort-table thead tr {
  background: color-mix(in srgb, var(--color-accent-green) 8%, #fff);
  border-bottom: 2px solid var(--color-accent-green);
}

.vol-sort-table th,
.vol-sort-table td {
  padding: 0.7rem 0.9rem;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid var(--color-border, #eee);
}

.vol-sort-table tbody tr:last-child td {
  border-bottom: none;
}

.vol-sort-table tbody tr:hover {
  background: color-mix(in srgb, var(--color-accent-green) 4%, transparent);
}

.vol-sort-th {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted, #555);
  white-space: nowrap;
  user-select: none;
}

.vol-sort-th:hover {
  color: var(--color-accent-green);
}

.vol-sort-th[aria-sort="ascending"],
.vol-sort-th[aria-sort="descending"] {
  color: var(--color-accent-green);
}

.vol-sort-icon {
  display: inline-block;
  margin-left: 0.25rem;
  font-size: 0.8rem;
  opacity: 0.6;
}

.vol-door--all .vol-door__icon {
  font-size: 1.5rem;
}

/* Apply footer */
.vol-path__apply-footer {  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border, #e0e0e0);
}

.vol-path__apply-footer p {
  margin: 0;
  font-size: 0.875rem;
}

/* Group contact card */
.vol-group-contact {
  max-width: 400px;
}

.vol-group-contact__card {
  display: grid;
  gap: 0.75rem;
  padding: 1.5rem;
}

.vol-group-contact__name {
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0;
}

.vol-group-contact__note {
  font-size: 0.85rem;
  margin: 0;
  color: var(--color-text-muted, #555);
}

/* Policies accordion */
.vol-policies__group {
  border: 1px solid var(--color-border, #ddd);
  border-radius: 0.5rem;
}

.vol-policies__summary {
  padding: 1rem 1.25rem;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.95rem;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  user-select: none;
}

.vol-policies__summary::-webkit-details-marker { display: none; }

.vol-policies__summary::after {
  content: '+';
  font-size: 1.25rem;
  color: var(--color-accent-green);
  transition: transform 0.2s;
}

details[open] .vol-policies__summary::after {
  content: '−';
}

.vol-policies__body {
  padding: 0 1.25rem 1.25rem;
  display: grid;
  gap: 0.75rem;
}

.vol-policies__body h3 {
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0.75rem 0 0.25rem;
  color: var(--color-accent-green);
}

.vol-policies__body p,
.vol-policies__body ul {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.65;
}

.vol-policies__body ul {
  padding-left: 1.25rem;
}

/* Responsive */
@media (max-width: 700px) {
  .vol-row {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .vol-row--header {
    display: none;
  }

  .vol-path__cta-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 400px) {
  .vol-door-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* ── Newsletter Modal ────────────────────────────────────────────────────── */
.newsletter-trigger {
  background: transparent;
  border: 1.5px solid var(--color-accent-green);
  color: var(--color-accent-green);
  font-size: 0.875rem;
  padding: 0.45rem 1.1rem;
  border-radius: 2rem;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.newsletter-trigger:hover {
  background: var(--color-accent-green);
  color: #fff;
}

.nl-overlay {
  position: fixed;
  inset: 0;
  background: rgba(30, 40, 32, 0.55);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9000;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
}

.nl-overlay.is-open {
  opacity: 1;
  pointer-events: all;
}

.nl-modal {
  background: #fff;
  border-radius: 1rem;
  padding: 2rem 2rem 1.75rem;
  width: min(100%, 420px);
  position: relative;
  box-shadow: 0 24px 64px rgba(30, 40, 32, 0.18);
  transform: translateY(12px);
  transition: transform 0.2s;
}

.nl-overlay.is-open .nl-modal {
  transform: translateY(0);
}

.nl-close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  background: none;
  border: none;
  font-size: 1.3rem;
  line-height: 1;
  color: var(--color-text-muted, #666);
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 0.4rem;
}

.nl-close:hover {
  background: var(--color-surface-alt, #f0f0f0);
}

.nl-modal__eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-accent-green);
  margin: 0 0 0.4rem;
}

.nl-modal__title {
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0 0 0.4rem;
  line-height: 1.2;
}

.nl-modal__sub {
  font-size: 0.875rem;
  color: var(--color-text-muted, #555);
  margin: 0 0 1.5rem;
  line-height: 1.5;
}

.nl-form {
  display: grid;
  gap: 0.85rem;
}

.nl-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.nl-field label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-text-body, #233028);
}

.nl-field input {
  padding: 0.6rem 0.85rem;
  border: 1.5px solid var(--color-border, #d7dfd4);
  border-radius: 0.5rem;
  font-size: 0.9rem;
  font-family: inherit;
  color: var(--color-text-body, #233028);
  background: #fff;
  transition: border-color 0.15s;
}

.nl-field input:focus {
  outline: none;
  border-color: var(--color-accent-green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent-green) 18%, transparent);
}

.nl-submit {
  width: 100%;
  padding: 0.75rem;
  background: var(--color-accent-green);
  color: #fff;
  border: none;
  border-radius: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 0.25rem;
  transition: background 0.15s;
}

.nl-submit:hover {
  background: color-mix(in srgb, var(--color-accent-green) 85%, #000);
}

.nl-note {
  font-size: 0.72rem;
  color: var(--color-text-muted, #888);
  text-align: center;
  margin: 0.75rem 0 0;
  line-height: 1.4;
}

/* ══════════════════════════════════════════════════════════════════════════
   Sponsorship Opportunities Page (so-*)
══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ───────────────────────────────────────────────────────────────── */
.so-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

.so-hero__text {
  display: grid;
  gap: 1.25rem;
}

.so-hero__lede {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--color-text-muted, #555);
  max-width: 52ch;
}

.so-hero__stats {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  padding: 1.25rem 0;
  border-top: 1px solid var(--color-border, #ddd);
  border-bottom: 1px solid var(--color-border, #ddd);
}

.so-stat {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.so-stat__num {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
  color: var(--color-accent-green);
}

.so-stat__label {
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--color-text-muted, #666);
}

/* CSS Art placeholder for hero */
.so-hero__art {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
}

.so-hero__art-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 220px;
  height: 220px;
}

.so-hero__art-emoji {
  font-size: 5rem;
  position: relative;
  z-index: 2;
  filter: drop-shadow(0 4px 16px rgba(74, 186, 80, 0.3));
}

.so-hero__art-ring {
  position: absolute;
  border-radius: 50%;
  border: 2px solid;
}

.so-hero__art-ring--1 {
  width: 160px;
  height: 160px;
  border-color: color-mix(in srgb, var(--color-accent-green) 30%, transparent);
  animation: so-pulse 3s ease-in-out infinite;
}

.so-hero__art-ring--2 {
  width: 210px;
  height: 210px;
  border-color: color-mix(in srgb, var(--color-accent-green) 15%, transparent);
  animation: so-pulse 3s ease-in-out 0.8s infinite;
}

@keyframes so-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.04); opacity: 0.6; }
}

/* ── Budget Filter ─────────────────────────────────────────────────────── */
.so-filter {
  display: grid;
  gap: 1rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--color-border, #ddd);
}

.so-filter__intro {
  display: grid;
  gap: 0.2rem;
}

.so-filter__sub {
  font-size: 0.875rem;
  color: var(--color-text-muted, #666);
  margin: 0;
}

.so-filter__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.so-filter__pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.1rem;
  border-radius: 2rem;
  border: 1.5px solid var(--color-border, #ddd);
  background: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  color: var(--color-text-body, #233028);
}

.so-filter__pill:hover {
  border-color: var(--color-accent-green);
  color: var(--color-accent-green);
  background: color-mix(in srgb, var(--color-accent-green) 6%, #fff);
}

.so-filter__pill--active {
  background: var(--color-accent-green);
  border-color: var(--color-accent-green);
  color: #fff;
}

.so-filter__pill-icon {
  font-style: normal;
  font-size: 1em;
}

.so-filter__result {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.6rem 1rem;
  background: color-mix(in srgb, var(--color-accent-green) 8%, #fff);
  border: 1px solid color-mix(in srgb, var(--color-accent-green) 25%, transparent);
  border-radius: 0.5rem;
  font-size: 0.875rem;
}

.so-filter__result-count {
  font-weight: 800;
  color: var(--color-accent-green);
}

.so-filter__result-label {
  color: var(--color-text-muted, #555);
}

.so-filter__clear {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.8rem;
  color: var(--color-text-muted, #888);
  margin-left: auto;
  padding: 0.2rem 0.4rem;
  border-radius: 0.3rem;
}

.so-filter__clear:hover {
  background: rgba(0,0,0,0.06);
  color: var(--color-text-body, #333);
}

/* Event hidden/visible states */
.so-event--hidden {
  display: none;
}

/* Timeline dimmed state */
.so-timeline__item--dimmed {
  opacity: 0.35;
  pointer-events: none;
}

/* ── Timeline Nav ─────────────────────────────────────────────────────── */
.so-timeline {
  display: flex;
  gap: 0;
  overflow-x: auto;
  padding-top: 0;
  padding-bottom: 0;
  scrollbar-width: none;
  border-bottom: 3px solid var(--color-border, #e0e0e0);
  position: relative;
}

.so-timeline::-webkit-scrollbar { display: none; }

.so-timeline__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  padding: 1rem 1.25rem 0.9rem;
  text-decoration: none;
  color: var(--color-text-muted, #555);
  border-bottom: 3px solid transparent;
  margin-bottom: -3px;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s;
  flex-shrink: 0;
}

.so-timeline__item:hover,
.so-timeline__item.is-active {
  color: var(--color-accent-green);
  border-bottom-color: var(--color-accent-green);
}

.so-timeline__icon { font-size: 1.4rem; line-height: 1; }
.so-timeline__name { font-size: 0.78rem; font-weight: 700; }
.so-timeline__date { font-size: 0.7rem; opacity: 0.7; }

/* ── Event Sections ────────────────────────────────────────────────────── */
.so-event {
  margin-bottom: 0;
  border-bottom: 1px solid var(--color-border, #e0e0e0);
}

/* Event Banner — full bleed colored header */
.so-event__banner {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 0;
  min-height: 180px;
  position: relative;
  overflow: hidden;
}

/* Color themes */
.so-event__banner--green    { background: linear-gradient(135deg, #d6f5d9 0%, #4aba50 100%); }
.so-event__banner--purple   { background: linear-gradient(135deg, #f0d6f7 0%, #b44bc5 100%); }
.so-event__banner--deep-green { background: linear-gradient(135deg, #c8e6c9 0%, #2f7d44 100%); }
.so-event__banner--amber    { background: linear-gradient(135deg, #fff3cd 0%, #e0920a 100%); }
.so-event__banner--violet   { background: linear-gradient(135deg, #e8d5f5 0%, #7b3fa0 100%); }
.so-event__banner--crimson  { background: linear-gradient(135deg, #ffd6d6 0%, #c0392b 100%); }

.so-event__banner-art {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5rem;
  background: rgba(255,255,255,0.18);
  backdrop-filter: blur(4px);
  padding: 1.5rem;
  border-right: 1px solid rgba(255,255,255,0.3);
  /* CSS pattern overlay */
  background-image:
    radial-gradient(circle at 20% 80%, rgba(255,255,255,0.12) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(255,255,255,0.08) 0%, transparent 50%);
}

.so-event__banner-text {
  padding: 1.5rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.4rem;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.so-event__eyebrow {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.9;
  margin: 0;
}

.so-event__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 900;
  margin: 0;
  line-height: 1.15;
}

.so-event__subtitle {
  font-size: 1rem;
  font-style: italic;
  opacity: 0.9;
  margin: 0;
}

.so-event__location {
  font-size: 0.82rem;
  opacity: 0.88;
  margin: 0;
}

/* Body below the banner */
.so-event__body {
  display: grid;
  gap: 2rem;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.so-event__description p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--color-text-muted, #555);
  max-width: 70ch;
  margin: 0;
}

/* Tiers grid */
.so-event__tiers {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}

.so-tier {
  border: 1.5px solid var(--color-border, #ddd);
  border-radius: 0.75rem;
  padding: 1.25rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: box-shadow 0.15s, border-color 0.15s;
}

.so-tier:hover {
  border-color: var(--color-accent-green);
  box-shadow: 0 4px 16px color-mix(in srgb, var(--color-accent-green) 12%, transparent);
}

.so-tier--featured {
  border-color: var(--color-accent-green);
  background: linear-gradient(160deg, #f7fdf7 0%, #fff 100%);
  grid-column: span 2;
}

@media (max-width: 600px) {
  .so-tier--featured { grid-column: span 1; }
}

.so-tier__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 1rem;
}

.so-tier__name {
  font-size: 0.95rem;
  font-weight: 700;
  margin: 0;
  flex: 1 1 auto;
}

.so-tier__price {
  font-size: 1.15rem;
  font-weight: 900;
  color: var(--color-accent-green);
  white-space: nowrap;
}

.so-tier__avail {
  font-size: 0.7rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--color-accent-green) 12%, transparent);
  color: color-mix(in srgb, var(--color-accent-green) 80%, #000);
  padding: 0.2rem 0.6rem;
  border-radius: 2rem;
  white-space: nowrap;
}

.so-tier__perks {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  gap: 0.35rem;
}

.so-tier__perks li {
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--color-text-muted, #555);
}

/* Contact card */
.so-event__contact {
  padding-top: 1rem;
  border-top: 1px solid var(--color-border, #e0e0e0);
}

.so-contact-card {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.so-contact-card__avatar {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  flex-shrink: 0;
  background: color-mix(in srgb, var(--color-accent-green) 18%, transparent);
  color: color-mix(in srgb, var(--color-accent-green) 80%, #000);
}

.so-contact-card__avatar--purple {
  background: color-mix(in srgb, var(--color-accent-purple) 18%, transparent);
  color: var(--color-accent-purple);
}

.so-contact-card__avatar--green {
  background: color-mix(in srgb, var(--color-accent-green) 18%, transparent);
  color: color-mix(in srgb, var(--color-accent-green) 80%, #000);
}

.so-contact-card__avatar--amber {
  background: color-mix(in srgb, #e0920a 15%, transparent);
  color: #a06000;
}

.so-contact-card__avatar--violet {
  background: color-mix(in srgb, #7b3fa0 18%, transparent);
  color: #5c2d80;
}

.so-contact-card__avatar--crimson {
  background: color-mix(in srgb, #c0392b 14%, transparent);
  color: #a0261a;
}

.so-contact-card__name {
  font-weight: 700;
  font-size: 1rem;
  margin: 0;
}

.so-contact-card__role {
  font-size: 0.8rem;
  color: var(--color-text-muted, #666);
  margin: 0 0 0.6rem;
}

.so-contact-card__cta {
  display: inline-block;
}

/* ── Bottom CTA ────────────────────────────────────────────────────────── */
.so-bottom-cta {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.so-bottom-cta__inner {
  background: linear-gradient(135deg, var(--brand-green-soft, #edf8ee) 0%, color-mix(in srgb, var(--color-accent-green) 8%, #fff) 100%);
  border: 1.5px solid color-mix(in srgb, var(--color-accent-green) 30%, transparent);
  border-radius: 1rem;
  padding: 2.5rem;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
}

.so-bottom-cta__text h2 {
  font-size: 1.5rem;
  margin: 0 0 0.5rem;
}

.so-bottom-cta__text p {
  margin: 0;
  color: var(--color-text-muted, #555);
  max-width: 50ch;
}

.so-bottom-cta__actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  flex-shrink: 0;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 800px) {
  .so-hero { grid-template-columns: 1fr; }
  .so-hero__art { display: none; }
  .so-event__banner { grid-template-columns: 100px 1fr; }
  .so-event__banner-art { font-size: 3.5rem; }
  .so-bottom-cta__inner { grid-template-columns: 1fr; }
  .so-bottom-cta__actions { flex-direction: row; flex-wrap: wrap; }
}

@media (max-width: 560px) {
  .so-event__banner { grid-template-columns: 1fr; }
  .so-event__banner-art { display: none; }
  .so-event__banner-text { padding: 1.25rem; }
  .so-tier--featured { grid-column: span 1; }
}

/* ── Floating apply CTA ─────────────────────────────────────────────────── */
html.apply-fab-dismissed .apply-fab {
  display: none !important;
}

.apply-fab {
  position: fixed;
  right: max(1.25rem, env(safe-area-inset-right, 0px));
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  z-index: 900;
  display: flex;
  align-items: stretch;
  max-width: min(28rem, calc(100vw - 2.5rem));
  background: var(--brand-green-deep, #1a5c45);
  color: #fff;
  border-radius: 1rem;
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.apply-fab--hiding {
  opacity: 0;
  transform: translateY(0.5rem);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}

.apply-fab__link {
  flex: 1 1 auto;
  display: block;
  padding: 1.35rem 1.5rem;
  color: #fff;
  font-weight: 700;
  font-size: clamp(1.15rem, 2.4vw, 1.4rem);
  line-height: 1.3;
  text-decoration: none;
}

.apply-fab__link:hover,
.apply-fab__link:focus-visible {
  color: #fff;
  background: var(--brand-green-darker, #0f3d2e);
  text-decoration: underline;
  outline: none;
}

.apply-fab__link:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -3px;
}

.apply-fab__dismiss {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 3.5rem;
  min-height: 3.5rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.apply-fab__dismiss:hover,
.apply-fab__dismiss:focus-visible {
  background: rgba(0, 0, 0, 0.18);
  outline: none;
}

.apply-fab__dismiss:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -3px;
}

@media (prefers-reduced-motion: reduce) {
  .apply-fab--hiding {
    transition: none;
  }
}
