/* Shared footer and homepage callout: keep all page wrappers fluid. */
.newsletter-section {
  padding: clamp(3.5rem, 6vw, 6rem) clamp(1rem, 3vw, 3.5rem) !important;
  background-attachment: scroll;
}
.newsletter-section .row { row-gap: 1.75rem; }
.newsletter-section .newsletter-action { margin-top: 1.75rem; }
.newsletter-section p.lead { max-width: 52rem; }
.newsletter-section h2 {
  font-size: clamp(2rem, 3.5vw, 3.75rem);
  line-height: 1.15;
  text-wrap: balance;
  overflow-wrap: anywhere;
  margin-bottom: 1.25rem !important;
}
.newsletter-section p.lead {
  color: rgba(255,255,255,.87) !important;
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  line-height: 1.7;
}
.newsletter-section .btn {
  min-height: 48px;
  max-width: 100%;
  padding: .9rem 1.5rem;
  white-space: normal;
  line-height: 1.4;
}
.footer .footer-contact { font-family: var(--cq-font-data); font-size: .95rem; }
.footer .footer-contact li {
  display: grid;
  grid-template-columns: 1.25rem minmax(0,1fr);
  gap: .75rem;
  align-items: start;
  min-height: 44px;
  padding-block: .5rem;
  margin-bottom: .35rem;
  line-height: 1.6;
}
.footer .footer-contact li > i {
  display: block;
  font-size: 1.1rem;
  line-height: 1.6rem;
}
.footer .footer-contact a { padding-block: 0; overflow-wrap: anywhere; }
.footer .footer-contact li > span:not(.visually-hidden) > a { display: block; }
.footer .footer-contact li > small { grid-column: 1 / -1; }
@media (max-width:575.98px) {
  .newsletter-section .btn { width: 100%; }
  .newsletter-section .col-lg-5 { margin-bottom: 0 !important; }
}

.footer .footer-payment-provider { margin-top: 1.5rem; }
.footer .footer-stripe-badge {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  border-radius: 4px;
}
.footer .footer-stripe-badge img { display: block; width: 150px; height: 34px; }
.footer .footer-stripe-badge:focus-visible { outline: 2px solid #fff; outline-offset: 5px; }
