/* Sponsors and learning extend FIFPA's existing editorial typography and palette. */
.fifpa-campaign { background: var(--color-paper); color: var(--color-ink); }
.fifpa-campaign .wp-block-group > * + *, .fifpa-campaign > .wp-block-post-content > * + * { margin-block-start: 0; }
.fifpa-campaign .wp-block-post-content, .fifpa-campaign .wp-block-group { max-width: none; }
.fifpa-campaign p, .fifpa-home-campaign p { margin: 0; font-size: var(--text-lg); line-height: 1.65; }
.fifpa-campaign h1, .fifpa-campaign h2, .fifpa-campaign h3, .fifpa-home-campaign h2 { margin: 0; font-family: var(--font-display); font-weight: 400; text-transform: uppercase; text-wrap: balance; }
.fifpa-campaign h2, .fifpa-home-campaign h2 { font-size: clamp(2.4rem, 4.1vw, 4.6rem); line-height: 1.1; }
.fifpa-campaign h3 { font-size: clamp(1.5rem, 2.2vw, 2.2rem); line-height: 1.2; }
.fifpa-campaign em, .fifpa-home-campaign em { font-style: normal; }
.fifpa-campaign__hero { background: var(--color-navy-deep); color: var(--color-light); }
.fifpa-campaign__hero-inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); max-width: 1500px !important; margin-inline: auto; }
.fifpa-campaign__hero-copy { align-self: center; padding: clamp(2.5rem, 5vw, 5rem) var(--page-gutter); }
.fifpa-campaign h1 { max-width: 13ch; font-size: clamp(3.4rem, 6.4vw, 6rem); line-height: 1.07; letter-spacing: -.025em; }
.fifpa-campaign__hero h1 em { color: var(--color-yellow); }
.fifpa-campaign__hero .fifpa-campaign__intro { margin-top: 1.75rem; color: var(--color-yellow); font-weight: 800; }
.fifpa-campaign__hero-copy > p + p { margin-top: .65rem; max-width: 51ch; color: var(--color-light-muted); }
.fifpa-campaign__hero-photo { margin: 0; min-height: 100%; overflow: hidden; }
.fifpa-campaign__hero-photo img { display: block; width: 100%; height: 100%; min-height: 640px; object-fit: cover; object-position: center 51%; }
.fifpa-campaign__hero--learning .fifpa-campaign__hero-photo img { object-position: 46% center; }
/* Extend the sponsor photograph beyond the 1500px content grid, preserving the copy alignment. */
@media (min-width: 1501px) {
  .fifpa-campaign__hero:not(.fifpa-campaign__hero--learning) .fifpa-campaign__hero-inner { max-width: none !important; grid-template-columns: calc(50% + 75px) minmax(0, 1fr); }
  .fifpa-campaign__hero:not(.fifpa-campaign__hero--learning) .fifpa-campaign__hero-copy { width: 100%; max-width: 825px !important; justify-self: end; }
  .fifpa-campaign__hero:not(.fifpa-campaign__hero--learning) .fifpa-campaign__hero-photo img { height: 900px; }
}
.fifpa-campaign__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem 1.75rem; margin-top: 2rem !important; }
.fifpa-campaign__email { overflow-wrap: anywhere; }
.fifpa-campaign__action a, .fifpa-sponsor-form button { display: inline-flex; justify-content: space-between; align-items: center; gap: 1.5rem; min-height: 48px; padding: .85rem 1.2rem; border: 0; border-radius: 0; background: var(--color-yellow); color: var(--color-ink); font-family: var(--font-body); font-size: var(--text-sm); line-height: 1.35; font-weight: 800; text-decoration: none; cursor: pointer; transition: background-color var(--dur-fast), color var(--dur-fast); }
.fifpa-campaign__action a:hover, .fifpa-sponsor-form button:hover { background: var(--color-navy); color: var(--color-light); }
.fifpa-campaign__hero .fifpa-campaign__action a:hover, .fifpa-home-campaign--sponsors .fifpa-campaign__action a:hover { background: var(--color-paper); color: var(--color-ink); }
.fifpa-campaign__action--text a { padding-inline: 0; background: transparent; color: inherit; border-bottom: 2px solid currentColor; }
.fifpa-campaign__hero .fifpa-campaign__action--text a:hover { background: transparent; color: var(--color-yellow); }
.fifpa-campaign__section { max-width: 1500px !important; margin-inline: auto; padding: clamp(3rem, 6vw, 6rem) var(--page-gutter); }
.fifpa-campaign__split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.fifpa-campaign__split > *, .fifpa-home-campaign__inner > * { min-width: 0; }
.fifpa-campaign__copy { max-width: 64ch !important; }
.fifpa-campaign__copy > * + * { margin-top: 1.5rem !important; }
.fifpa-campaign__benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.fifpa-campaign__benefit { padding-top: 1rem; border-top: 1px solid var(--color-rule); }
.fifpa-campaign__benefit p { margin-top: .65rem; }
.fifpa-campaign__modalities { padding-top: 0; }
.fifpa-campaign__modalities > h2 { max-width: 22ch; }
.fifpa-campaign .fifpa-campaign__note { margin-top: 1rem; color: var(--color-muted); font-size: var(--text-sm); }
.fifpa-campaign__tiers { margin-top: 2.5rem !important; }
.fifpa-sponsor-tier { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 2rem; align-items: center; padding: 2.5rem 2rem; border-bottom: 1px solid var(--color-rule); }
.fifpa-sponsor-tier--golden { background: var(--color-yellow); border-bottom: 0; }
.fifpa-sponsor-tier__name h3 { font-size: clamp(1.8rem, 3.3vw, 3.3rem); }
.fifpa-sponsor-tier__name p { margin-top: .75rem; max-width: 40ch; }
.fifpa-sponsor-tier__choice { display: flex; flex-direction: column; align-items: flex-end; gap: 1rem; }
.fifpa-campaign .fifpa-sponsor-tier__price { font-family: var(--font-display); font-size: clamp(2rem, 3.4vw, 3.6rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.fifpa-sponsor-tier--golden .fifpa-campaign__action a { background: var(--color-navy); color: var(--color-light); }
.fifpa-sponsor-tier--golden .fifpa-campaign__action a:hover { background: var(--color-paper); color: var(--color-ink); }
.fifpa-campaign__afterword { margin-top: 1.75rem !important; max-width: 65ch; }
.fifpa-campaign__education-callout { padding: clamp(3rem, 6vw, 6rem) var(--page-gutter); background: var(--color-green); color: var(--color-light); }
.fifpa-campaign__education-callout > .fifpa-campaign__split { max-width: 1390px; margin-inline: auto; }
.fifpa-campaign__education-callout em { color: var(--color-yellow); }
.fifpa-campaign__education-callout .fifpa-campaign__action--text a:hover { background: transparent; color: var(--color-yellow); }
.fifpa-campaign__contact { scroll-margin-top: 130px; }
.fifpa-campaign__contact-copy > * + * { margin-top: 1.6rem !important; }
.fifpa-campaign__contact-copy a:not(.fifpa-campaign__action a) { overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: .2em; }
.fifpa-learning__formats { list-style: none; padding: 0; margin: 2rem 0 !important; }
.fifpa-learning__formats li { padding: .8rem 0; border-bottom: 1px solid var(--color-rule); font-family: var(--font-display); font-size: clamp(1.4rem, 2vw, 2rem); text-transform: uppercase; }
.fifpa-learning__organize { margin-top: clamp(3rem, 5vw, 5rem) !important; padding-top: clamp(3rem, 5vw, 5rem); border-top: 1px solid var(--color-rule); }
.fifpa-home-campaign { padding: clamp(3rem, 6vw, 6rem) var(--page-gutter); }
.fifpa-home-campaign--sponsors { background: var(--color-navy-deep); color: var(--color-light); }
.fifpa-home-campaign--sponsors h2 em { color: var(--color-yellow); }
.fifpa-home-campaign__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); max-width: 1390px !important; margin-inline: auto; }
.fifpa-home-campaign--learning { background: var(--color-paper); }
.fifpa-home-campaign--learning h2 em { color: var(--color-green); }
.fifpa-home-campaign__photo { margin: 0; }
.fifpa-home-campaign__photo img { display: block; width: 100%; aspect-ratio: 6 / 5; object-fit: cover; object-position: 45% center; }
.fifpa-sponsor-form { position: relative; margin: 0; min-width: 0; }
.fifpa-sponsor-form__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.3rem 1rem; margin-block: 1.25rem; }
.fifpa-sponsor-form__grid > div { min-width: 0; }
.fifpa-sponsor-form__wide { grid-column: 1 / -1; }
.fifpa-sponsor-form label { display: block; margin-bottom: .45rem; font-size: var(--text-sm); font-weight: 800; }
.fifpa-sponsor-form label span { font-weight: 400; }
.fifpa-sponsor-form input:not([type="hidden"]), .fifpa-sponsor-form select, .fifpa-sponsor-form textarea { display: block; width: 100%; min-width: 0; min-height: 48px; box-sizing: border-box; padding: .75rem; border: 1px solid var(--color-rule); border-radius: 0; background: var(--color-light); color: var(--color-ink); font: 1rem/1.5 var(--font-body); caret-color: var(--color-green); }
.fifpa-sponsor-form textarea { resize: vertical; }
.fifpa-sponsor-form input[aria-invalid="true"], .fifpa-sponsor-form select[aria-invalid="true"], .fifpa-sponsor-form textarea[aria-invalid="true"] { border-color: #9b2924; }
.fifpa-sponsor-form .fifpa-sponsor-form__help { display: block; font-size: var(--text-sm); color: var(--color-muted); }
.fifpa-sponsor-form__error { display: block; margin-top: .4rem; color: #9b2924; font-size: var(--text-sm); }
.fifpa-sponsor-form__error:empty { display: none; }
.fifpa-sponsor-form button { margin-top: 1.25rem; background: var(--color-navy); color: var(--color-light); }
.fifpa-sponsor-form button:hover { background: var(--color-green); }
.fifpa-sponsor-form button:disabled { background: var(--color-muted); cursor: wait; }
.fifpa-sponsor-form .fifpa-sponsor-form__status { margin-top: 1rem; font-size: 1rem; font-weight: 700; }
.fifpa-sponsor-form__status:empty { display: none; }
.fifpa-sponsor-form__status.is-error { color: #9b2924; }
.fifpa-sponsor-form__status.is-success { color: var(--color-green); }
.fifpa-sponsor-form__trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.fifpa-campaign :focus-visible, .fifpa-home-campaign :focus-visible { outline: 3px solid var(--color-blue); outline-offset: 4px; }
.fifpa-campaign__hero :focus-visible, .fifpa-campaign__education-callout :focus-visible, .fifpa-home-campaign--sponsors :focus-visible { outline-color: var(--color-yellow); }
.fifpa-campaign ::selection, .fifpa-home-campaign ::selection { background: var(--color-yellow); color: var(--color-ink); }
.site-header__sponsor-quick { display: none; }
.site-header__nav .site-header__sponsors .wp-block-navigation-item__content { padding: .75rem .8rem; background: var(--color-yellow); color: var(--color-ink); }
.site-header__nav .site-header__sponsors .wp-block-navigation-item__content:hover { background: var(--color-navy); color: var(--color-light); }
.site-header__nav { gap: clamp(.7rem, 1.3vw, 1.4rem); }
.site-header .site-header__inner { gap: 1.1rem; }
.footer__credit a { text-decoration: underline; text-underline-offset: .2em; }
@media (min-width: 1201px) {
  .site-header__nav .site-header__sponsors .wp-block-navigation-item__content,
  .site-header__nav .site-header__cta .wp-block-navigation-item__content { display: inline-flex; align-items: center; justify-content: center; min-width: 10rem; min-height: 48px; padding: .75rem 1rem; line-height: 1.5; box-sizing: border-box; }
}
@media (max-width: 1200px) {
  .site-header .site-header__inner { gap: .7rem; }
  .site-header__sponsor-quick { display: block; margin: 0 0 0 auto !important; }
  .site-header__sponsor-quick a { display: flex; align-items: center; gap: .35em; min-height: 44px; padding: .65rem .8rem; background: var(--color-yellow); color: var(--color-ink); font: 800 .78rem/1.2 var(--font-body); text-decoration: none; }
  .site-header__nav { position: static; display: flex; width: auto; min-height: 0; max-height: none; overflow: visible; padding: 0; background: transparent; color: var(--color-ink); }
  .site-header .wp-block-navigation__responsive-container-open { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: var(--color-ink); }
  .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--color-navy-deep) !important; color: var(--color-light) !important; padding: var(--space-lg) var(--page-gutter); }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch; width: 100%; gap: 0; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; padding: .8rem 0; border-bottom: 1px solid var(--color-light-muted); color: var(--color-light); font: 400 clamp(1.5rem, 6vw, 2.2rem)/1.2 var(--font-display); text-transform: uppercase; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .site-header__sponsors .wp-block-navigation-item__content { margin-top: .8rem; padding: .75rem; background: var(--color-yellow); color: var(--color-ink); border: 0; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .site-header__cta .wp-block-navigation-item__content { margin-top: .5rem; padding: .75rem; background: transparent; border-bottom: 1px solid var(--color-light-muted); color: var(--color-light); font: 800 1rem/1.4 var(--font-body); }
  .site-header .wp-block-navigation__responsive-container-close { color: var(--color-light); min-width: 44px; min-height: 44px; }
  .fifpa-campaign__hero-photo img { min-height: 600px; }
}
@media (max-width: 760px) {
  .fifpa-campaign__hero-inner, .fifpa-campaign__split, .fifpa-home-campaign__inner { grid-template-columns: minmax(0, 1fr); }
  .fifpa-campaign__hero-copy { padding-block: 2.75rem; }
  .fifpa-campaign h1 { font-size: clamp(3.1rem, 11.6vw, 5.3rem); max-width: 15ch; }
  .fifpa-campaign__hero-photo { min-height: 0; }
  .fifpa-campaign__hero-photo img { min-height: 0; height: auto; max-height: 430px; aspect-ratio: 5 / 4; object-position: center 47%; }
  .fifpa-campaign__hero--learning .fifpa-campaign__hero-photo img { aspect-ratio: 16 / 10; }
  .fifpa-campaign__split { gap: 2rem; }
  .fifpa-campaign__benefits { gap: 2rem 1.25rem; }
  .fifpa-campaign p, .fifpa-home-campaign p { font-size: 1rem; }
  .fifpa-sponsor-tier { grid-template-columns: 1fr; gap: 1.5rem; padding: 2rem 1.2rem; }
  .fifpa-sponsor-tier__choice { align-items: flex-start; }
  .fifpa-campaign .fifpa-sponsor-tier__price { font-size: 2.6rem; }
  .fifpa-home-campaign__photo img { aspect-ratio: 16 / 10; }
  .fifpa-sponsor-form__grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .site-header .site-header__inner { gap: .4rem; }
  .site-header__brand { gap: .4rem; }
  .site-header__brand .custom-logo { width: 30px; height: 30px; }
  .site-header__brand .site-header__wordmark { font-size: 1.5rem; }
  .site-header__sponsor-quick a { flex-direction: column; justify-content: center; gap: .1rem; padding: .4rem .6rem; font-size: .68rem; }
  .fifpa-campaign__benefits { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .fifpa-campaign__action a, .fifpa-sponsor-form button { transition: none; }
}
