/* Shared responsive safeguards for all public pages. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

img,
svg,
video,
iframe {
  max-width: 100%;
}

@media (max-width: 980px) {
  .hero__body,
  .subhero__body,
  .intro__body,
  .intro__text,
  .chapter__body,
  .feature__body,
  .program__body,
  .cta__body,
  .mission-cta__body,
  .spirituality-cta__body,
  .partnership__body {
    min-width: 0;
  }

  .chapter,
  .heritage,
  .program,
  .feature,
  .network,
  .events,
  .cta,
  .mission-cta,
  .spirituality-cta,
  .partnership {
    max-width: 100%;
  }

  .site-footer__form {
    width: 100%;
  }

  .site-footer__form input {
    min-width: 0;
  }

  /* Partner Institutions: turn the wide directory row into a readable stack. */
  .partner-details .partner {
    grid-template-columns: 2.25rem minmax(0, 1fr) !important;
    gap: 1rem !important;
  }

  .partner-details .partner__identity,
  .partner-details .partner__copy,
  .partner-details .partner__link {
    grid-column: 2 !important;
    min-width: 0;
    justify-self: start;
  }

  .partner-details .partner__copy {
    max-width: none;
  }

  .partner-details .partner__link {
    align-self: start;
    white-space: normal;
  }

  .partner-details .partner h3 {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 600px) {
  .wrap {
    width: min(100% - 2rem, 1180px);
  }

  .hero h1,
  .subhero h1 {
    max-width: 100% !important;
    font-size: clamp(2.65rem, 12vw, 4.15rem) !important;
    line-height: .92 !important;
    overflow-wrap: break-word;
  }

  h2,
  h3,
  p,
  blockquote,
  cite,
  a {
    overflow-wrap: break-word;
  }

  .btn,
  button,
  input,
  textarea,
  select {
    max-width: 100%;
  }

  .btn {
    width: auto;
    white-space: normal;
    text-align: center;
  }

  .site-footer__form {
    display: grid;
    grid-template-columns: 1fr;
  }

  .site-footer__form button {
    width: 100%;
  }

  .partners {
    padding: 4.5rem 0 5rem !important;
  }

  .partners .partner-logos {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: 110px;
    gap: .75rem !important;
  }

  .partners .partner-logo {
    min-width: 0;
    padding: .65rem;
  }

  .partners .partner-logo img {
    max-width: 94%;
    max-height: 72px;
  }

  .partner-details .partner {
    padding: 2.25rem 0 !important;
  }

  .partner-details .partner h3 {
    font-size: 1.35rem;
    line-height: 1.15;
  }

  .partner-details .partner__country {
    letter-spacing: .12em;
    line-height: 1.5;
  }

  .partner-details .partner__copy {
    font-size: .86rem;
    line-height: 1.72;
  }
}

@media (max-width: 380px) {
  .wrap {
    width: min(100% - 1.4rem, 1180px);
  }

  .partner-details .partner {
    grid-template-columns: 1.8rem minmax(0, 1fr) !important;
    gap: .7rem !important;
  }

  .partners .partner-logos {
    grid-template-columns: 1fr !important;
    grid-auto-rows: 96px;
  }
}
