@media (max-width: 1200px) {
  .nav__link {
    font-size: 0.84rem;
    padding: 0.62rem 0.56rem;
  }

  .nav__submenu {
    min-width: 240px;
  }

  .header__actions .btn--donate {
    padding: 0.5rem 0.8rem;
    font-size: 0.86rem;
  }
}

@media (max-width: 1100px) {
  .section__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .header__actions {
    display: none;
  }
}

@media (max-width: 1024px) {
  .container {
    width: min(100% - 1.5rem, var(--max-width));
  }

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

  .nav__toggle {
    display: inline-flex;
  }

  .btn--donate-mobile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .nav__list {
    position: absolute;
    top: calc(100% + 0.65rem);
    right: 0;
    z-index: 230;
    width: min(360px, calc(100vw - 1.5rem));
    width: min(360px, calc(100dvw - 1.5rem));
    max-height: calc(100vh - 110px);
    max-height: calc(100dvh - 110px);
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-soft);
    border-radius: var(--radius-md);
    padding: 0.58rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  }

  .nav__list.nav__list--open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    visibility: visible;
  }

  .nav__item {
    width: 100%;
    border-radius: 10px;
    border: 1px solid #e8edf7;
    background: #fbfcff;
  }

  .nav__link {
    width: 100%;
    justify-content: space-between;
    text-align: left;
    padding: 0.72rem;
    border-radius: 8px;
    font-size: 0.98rem;
  }

  .nav__submenu {
    position: static;
    top: auto;
    left: auto;
    min-width: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 0 0 0.36rem 0.5rem;
    margin-top: 0;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    visibility: visible;
    display: none;
  }

  .nav__item:hover > .nav__submenu,
  .nav__item:focus-within > .nav__submenu {
    display: none;
  }

  .nav__item.nav__item--open > .nav__submenu {
    display: grid;
  }

  .nav__sublink {
    padding: 0.48rem 0.56rem;
    font-size: 0.9rem;
  }

  .hero {
    padding: 5rem 0 3.5rem;
  }

  .header__content {
    gap: 0.6rem;
  }

  .footer-pro__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem 1.6rem;
    padding: 1rem 1rem 1.25rem;
  }
}

@media (max-width: 768px) {
  .section {
    padding: 2.4rem 0;
  }

  .section + .section {
    border-top-width: 0;
  }

  .hero {
    padding: 4.25rem 0 2.6rem;
  }

  .hero__content h1 {
    font-size: clamp(1.72rem, 7.2vw, 2.15rem);
    line-height: 1.12;
  }

  .hero .lead {
    font-size: 0.96rem;
  }

  .hero__actions {
    margin: 1rem 0 0.95rem;
    gap: 0.5rem;
  }

  .hero__stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
  }

  .hero__stats .stat {
    padding: 0.55rem 0.5rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
  }

  .hero__stats .stat__number {
    font-size: 1.15rem;
    line-height: 1.05;
  }

  .hero__stats .stat__label {
    font-size: 0.73rem;
    line-height: 1.2;
  }

  .hero__media {
    gap: 0.65rem;
  }

  .hero__image {
    min-height: 220px;
  }

  .hero__card {
    padding: 0.85rem 0.9rem;
  }

  .programs .cards--three {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(82vw, 1fr);
    gap: 0.78rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    padding-bottom: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
  }

  .programs .cards--three::-webkit-scrollbar {
    display: none;
  }

  .programs .cards--three .program-card {
    scroll-snap-align: start;
  }

  .program-card__media {
    height: 148px;
  }

  .program-card__body {
    padding: 0.82rem 0.85rem 0.88rem;
  }

  .program-card h3 {
    font-size: 1.02rem;
    margin-bottom: 0.5rem;
  }

  .program-card .card__list {
    gap: 0.35rem;
  }

  .program-card .card__list li {
    font-size: 0.9rem;
    line-height: 1.3;
    padding-left: 1rem;
  }

  .impact__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: start;
  }

  .impact__content {
    min-width: 0;
  }

  .impact__content h2 {
    font-size: clamp(1.3rem, 6vw, 1.7rem);
    line-height: 1.2;
    overflow-wrap: anywhere;
  }

  .impact__content > p {
    margin-bottom: 0.9rem;
  }

  .impact__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: row;
    gap: 0.6rem;
    margin-top: 0.9rem;
    overflow: visible;
    scroll-snap-type: none;
    padding: 0;
  }

  .impact__stats .stat--card {
    padding: 0.85rem 0.72rem;
    min-height: 108px;
  }

  .impact__stats .stat__number {
    font-size: 1.2rem;
    line-height: 1.08;
  }

  .impact__stats .stat__label {
    font-size: 0.78rem;
    line-height: 1.25;
  }

  .impact__media {
    gap: 0.7rem;
  }

  .impact__media > img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .impact__media .note {
    padding: 0.85rem;
  }

  .support-highlights {
    grid-template-columns: 1fr;
    gap: 0.78rem;
    overflow: visible;
    scroll-snap-type: none;
  }

  .h-scroll-wrap {
    position: relative;
  }

  .h-scroll-btn {
    position: absolute;
    top: 0;
    bottom: 0;
    margin-block: auto;
    transform: none;
    z-index: 4;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    border: 1px solid rgba(95, 139, 204, 0.34);
    background: rgba(255, 255, 255, 0.95);
    color: #1a4d93;
    box-shadow: 0 3px 10px rgba(15, 39, 72, 0.12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
  }

  .h-scroll-btn--prev {
    left: 0.18rem;
  }

  .h-scroll-btn--next {
    right: 0.18rem;
  }

  .h-scroll-btn:disabled {
    opacity: 0.45;
    cursor: default;
  }

  /* Hide left/right helper arrows in the partners support block on mobile only. */
  .partners .h-scroll-wrap > .h-scroll-btn {
    display: none;
  }

  .support-highlights .support-panel {
    padding: 0.85rem 0.82rem;
  }

  .support-list {
    gap: 0.5rem;
  }

  .support-list li {
    line-height: 1.3;
    font-size: 0.9rem;
  }

  .contact__grid {
    gap: 1.1rem;
  }

  .contact__info p {
    margin-bottom: 0.75rem;
  }

  .section__header {
    align-items: center;
    text-align: center;
    margin-bottom: 1.25rem;
  }

  .section__title-group {
    text-align: center;
  }

  .section__title-group p {
    margin-left: auto;
    margin-right: auto;
  }

  .section__title-row {
    flex-direction: column;
    align-items: center;
  }

  .section__arrow-link {
    margin-top: 0.35rem;
  }

  .cta__actions {
    justify-content: center;
  }

  .contact__details {
    justify-items: start;
    text-align: left;
  }

  .contact__details li {
    width: 100%;
  }

  .partners__track {
    gap: 0.26rem;
    --partners-duration: 22s;
  }

  .partner {
    flex-basis: auto;
    width: auto;
    min-width: 64px;
    height: 66px;
  }

  .partner img {
    width: auto;
    height: auto;
    max-width: 150px;
    max-height: 54px;
  }

  .footer__content {
    grid-template-columns: 1fr;
  }

  .footer-pro__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 0.95rem;
    padding: 0 0 1.1rem;
    justify-items: stretch;
    text-align: left;
  }

  .footer-pro__col {
    min-width: 0;
    justify-items: start;
    text-align: left;
  }

  .footer-pro__col > a {
    width: 100%;
    overflow-wrap: anywhere;
  }

  .footer-pro__col h3::after {
    left: 0;
    transform: none;
  }

  .footer-pro__contact {
    justify-items: start;
  }

  .footer-pro__contact li {
    justify-content: flex-start;
  }

  .footer-pro__contact a,
  .footer-pro__contact span {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .social--footer-pro {
    justify-content: flex-start;
  }

  .footer-pro__bottom {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.26rem;
  }

  .footer-pro__credit {
    text-align: center;
  }

  .footer-pro__main > .footer-pro__brand-col {
    grid-column: 1 / -1;
  }

  .footer-pro__main > .footer-pro__col:last-child {
    grid-column: 1 / -1;
  }

  .brand__logo {
    width: 60px;
    height: 60px;
  }

  .brand {
    padding-left: 0.35rem;
  }
}

@media (max-width: 560px) {
  .values__grid {
    grid-template-columns: 1fr;
  }

  .values__grid.values__grid--single {
    grid-template-columns: 1fr;
  }

  .partners__logos {
    margin-bottom: 1rem;
  }

  .partners__track {
    gap: 0.22rem;
    --partners-duration: 18s;
  }

  .partner {
    flex-basis: auto;
    width: auto;
    min-width: 54px;
    height: 56px;
  }

  .partner img {
    width: auto;
    height: auto;
    max-width: 124px;
    max-height: 44px;
  }

  .partners-logo--octacore {
    transform: none !important;
    grid-column: auto !important;
  }

  .hero__grid,
  .about__grid,
  .impact__grid,
  .contact__grid,
  .cta__card {
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .hero {
    padding-top: 4.4rem;
  }

  .hero__content,
  .hero__media {
    margin-top: 0;
  }

  .footer-pro__legal {
    width: 100%;
    display: grid;
    gap: 0.35rem;
  }

  .footer-pro__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 0.7rem;
    padding: 0 0 1.1rem;
    justify-items: stretch;
    text-align: left;
  }

  .footer-pro__brand-col {
    display: grid;
    gap: 0.72rem;
  }

  .footer-pro__brand {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
  }

  .footer-pro__brand-text {
    justify-items: start;
  }

  .footer-pro__mission {
    margin: 0;
    max-width: 100%;
  }

  .footer-pro__col {
    width: 100%;
    min-width: 0;
    justify-items: start;
    text-align: left;
    gap: 0.42rem;
  }

  .footer-pro__col > a {
    width: 100%;
    overflow-wrap: anywhere;
  }

  .footer-pro__col h3::after {
    left: 0;
    transform: none;
  }

  .footer-pro__contact {
    justify-items: start;
  }

  .footer-pro__contact li {
    justify-content: flex-start;
    align-items: flex-start;
  }

  .footer-pro__contact a,
  .footer-pro__contact span {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .social--footer-pro {
    justify-content: flex-start;
  }

  .footer-pro__main > .footer-pro__brand-col {
    grid-column: 1 / -1;
  }

  .footer-pro__main > .footer-pro__col:last-child {
    grid-column: 1 / -1;
  }

  .footer-pro__bottom {
    align-items: center;
    text-align: center;
  }

  .footer-pro__credit {
    text-align: center;
  }

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

  .btn--footer-pro {
    width: fit-content;
  }

  .btn--donate-mobile {
    width: auto;
    min-height: 40px;
    padding: 0.44rem 0.72rem;
    font-size: 0.8rem;
  }

  .card,
  .contact__form-card,
  .cta__card {
    padding: 1.2rem;
  }

  .form__compact-grid {
    grid-template-columns: 1fr;
  }

  .form__compact-grid .form__group > label {
    min-height: 0;
  }
}

@media (max-width: 420px) {
  .impact__stats {
    grid-template-columns: 1fr;
  }

  .impact__stats .stat--card {
    min-height: 0;
  }
}
