/* Final site-wide readability guard for dark sections, footer text, and restored contact form. */
.hero,
.campaign-hero,
.local-hero,
.transparency-cta,
.contact-section:not(#contact) {
  color: #fff;
}

.hero h1,
.hero h2,
.hero h3,
.hero h4,
.campaign-hero h1,
.campaign-hero h2,
.campaign-hero h3,
.campaign-hero h4,
.local-hero h1,
.local-hero h2,
.local-hero h3,
.local-hero h4,
.transparency-cta h1,
.transparency-cta h2,
.transparency-cta h3,
.transparency-cta h4,
.contact-section:not(#contact) h1,
.contact-section:not(#contact) h2,
.contact-section:not(#contact) h3,
.contact-section:not(#contact) h4 {
  color: #fff !important;
}

.hero p,
.campaign-hero p,
.campaign-copy p,
.local-hero p,
.transparency-cta p,
.contact-section:not(#contact) p {
  color: rgba(255, 255, 255, 0.92) !important;
}

.hero .eyebrow,
.campaign-hero .eyebrow,
.local-hero .eyebrow,
.transparency-cta .eyebrow {
  color: #ffd36a !important;
}

.button.button-accent,
a.button.button-accent,
button.button-accent,
.newsletter-input-row button {
  color: #0f3048 !important;
  background: #f58220 !important;
  font-weight: 800;
}

.transparency-cta .button-outline,
.campaign-hero .button-outline,
.local-hero .button-outline,
.hero .button-outline {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  background: rgba(255, 255, 255, 0.16) !important;
}

footer.footer,
footer.footer h4,
footer.footer p,
footer.footer a,
footer.footer span,
footer.footer .footer-bottom,
footer.footer .footer-bottom a,
.footer,
.footer h4,
.footer p,
.footer a,
.footer span,
.footer .footer-bottom,
.footer .footer-bottom a {
  color: rgba(248, 252, 255, 0.93) !important;
}

footer.footer h4,
.footer h4 {
  color: #fff !important;
}

footer.footer a:hover,
.footer a:hover {
  color: #fff !important;
}

#contact.contact-section {
  background:
    radial-gradient(circle at 18% 18%, rgba(13, 107, 169, 0.08), transparent 30%),
    linear-gradient(180deg, #f8fcff 0%, #edf7fb 100%) !important;
  color: #0f3048 !important;
  display: block !important;
  padding: clamp(72px, 7vw, 104px) clamp(20px, 6vw, 88px) clamp(54px, 6vw, 76px) !important;
  text-align: center !important;
}

#contact.contact-section > div:first-child {
  max-width: 1200px;
  margin: 0 auto 42px !important;
  padding-top: 0 !important;
}

#contact.contact-section .eyebrow {
  color: #f58220 !important;
  display: block;
  margin: 0 auto 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 18px;
  line-height: 1;
}

#contact.contact-section h2 {
  color: #0f3048 !important;
  max-width: 1160px;
  margin: 0 auto;
  font-size: clamp(44px, 5vw, 70px) !important;
  line-height: 1.02;
  letter-spacing: 0;
}

#contact.contact-section h2 .heading-accent {
  color: #0d6ba9;
}

#contact.contact-section p {
  max-width: 980px;
  margin: 26px auto 0 !important;
  color: #506b80 !important;
  font-size: clamp(19px, 1.8vw, 28px);
  line-height: 1.35;
}

#contact .contact-form-heading {
  display: none;
}

#contact .contact-form-panel {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 20px 28px !important;
  max-width: 1240px;
  margin: 0 auto !important;
  padding: clamp(26px, 3.2vw, 38px) !important;
  background: #fff !important;
  border: 1px solid #d8e7ef !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 54px rgba(13, 107, 169, 0.14) !important;
  text-align: left;
}

#contact .contact-form-panel label {
  color: #0f3048 !important;
  gap: 9px;
  font-size: clamp(17px, 1.35vw, 21px);
  font-weight: 800;
}

#contact .contact-form-panel .form-wide {
  grid-column: 1 / -1;
}

#contact .contact-form-panel input,
#contact .contact-form-panel textarea,
#contact .contact-form-panel select {
  min-height: 54px;
  padding: 12px 18px;
  border-color: #d4e2ec !important;
  background-color: #fbfdff !important;
  border-radius: 12px !important;
  color: #0f3048;
  font-size: clamp(17px, 1.35vw, 20px);
  box-shadow: 0 1px 0 rgba(6, 70, 110, 0.03);
}

#contact .contact-form-panel textarea {
  min-height: 138px;
}

#contact .contact-form-panel input::placeholder,
#contact .contact-form-panel textarea::placeholder {
  color: #506b80;
  opacity: 1;
}

#contact .contact-form-panel .button-accent {
  width: 100%;
  min-height: 60px;
  border-radius: 12px;
  background: #ff7f18 !important;
  color: #0f3048 !important;
  box-shadow: 0 18px 34px rgba(245, 130, 32, 0.28);
  font-size: clamp(18px, 1.4vw, 22px);
}

h1,
h2,
h3,
h4,
p,
a,
button,
label,
input,
textarea,
select {
  overflow-wrap: anywhere;
}

.seo-fallback {
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(64px, 12vw, 104px) 22px;
}

.seo-fallback p:first-child {
  color: #f58220;
  font-weight: 800;
}

.seo-fallback h1 {
  max-width: 100%;
  color: #0f3048;
  font-size: clamp(34px, 11vw, 58px);
  line-height: 1.08;
}

.seo-fallback p {
  max-width: 760px;
  color: #506b80;
  font-size: clamp(17px, 4.6vw, 20px);
  line-height: 1.5;
}

.seo-fallback a {
  color: #0d6ba9;
  display: inline-block;
  font-weight: 800;
  margin: 8px 14px 0 0;
}

@media (width <= 980px) {
  .hero,
  .campaign-hero,
  .local-hero,
  .donation-main .local-hero {
    display: block !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  .hero h1,
  .campaign-hero h1,
  .campaign-copy h1,
  .local-hero h1,
  .donation-main .local-hero h1 {
    max-width: 100% !important;
    font-size: clamp(34px, 10vw, 46px) !important;
    line-height: 1.12 !important;
  }

  .hero p,
  .campaign-hero p,
  .campaign-copy p,
  .local-hero p,
  .donation-main .local-hero p {
    max-width: 100% !important;
    font-size: clamp(17px, 4.8vw, 21px) !important;
    line-height: 1.45 !important;
  }

  .hero-actions,
  .campaign-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100%;
  }

  .hero-actions .button,
  .campaign-actions .button {
    width: 100%;
    min-height: 52px !important;
    padding-left: 16px;
    padding-right: 16px;
    font-size: 16px !important;
    white-space: normal;
    text-align: center;
  }

  .campaign-summary,
  .donation-proof-summary {
    grid-template-columns: 1fr !important;
  }
}

@media (width <= 760px) {
  #contact.contact-section {
    padding: 78px 18px 82px !important;
  }

  #contact.contact-section > div:first-child {
    margin-bottom: 42px !important;
  }

  #contact.contact-section .eyebrow {
    margin-bottom: 16px;
    font-size: 14px;
  }

  #contact.contact-section h2 {
    font-size: 39px !important;
  }

  #contact.contact-section p {
    margin-top: 22px !important;
    font-size: 18px;
  }

  #contact .contact-form-panel {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    padding: 24px !important;
  }

  #contact .contact-form-panel label,
  #contact .contact-form-panel input,
  #contact .contact-form-panel textarea,
  #contact .contact-form-panel select,
  #contact .contact-form-panel .button-accent {
    font-size: 16px;
  }

  .footer-grid {
    gap: 28px !important;
  }

  .footer-bottom {
    gap: 14px !important;
  }
}
