/* ==========================================================================
   RescueHub — responsive rules for the public site.
   Breakpoints: 1040px (grids collapse), 940px (navigation), 640px (phones).
   ========================================================================== */

@media (max-width: 1040px) {
    .hero__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 42px;
    }

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

    .sidebar {
        position: static;
    }

    .mission {
        grid-template-columns: minmax(0, 1fr);
        gap: 36px;
    }

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

    .footer__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 34px;
    }
}

@media (max-width: 940px) {
    .masthead__inner {
        gap: 16px;
    }

    .masthead__actions {
        margin-left: auto;
    }

    .nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
        margin-left: 0;
        padding: 12px var(--gutter) 16px;
        background: var(--paper);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 22px 34px -26px rgba(22, 33, 28, .55);
    }

    .nav.open {
        display: flex;
    }

    .nav__link {
        padding: 12px;
        border-radius: var(--radius-sm);
        font-size: 14.5px;
    }

    .nav__link.is-active {
        background: var(--wash);
    }

    .nav__link.is-active::after {
        display: none;
    }

    .nav-toggle {
        display: flex;
    }

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

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

    .figure {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .14);
    }

    .figures--inline .figure {
        border-bottom: 1px solid var(--line);
    }

    .figure:last-child {
        border-bottom: 0;
    }

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

    .lead__figure {
        min-height: 250px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .section-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .cta__inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 640px) {
    .topbar__inner {
        justify-content: center;
        gap: 10px;
        text-align: center;
    }

    .topbar__motto {
        display: none;
    }

    .brand__name {
        font-size: 19px;
    }

    .masthead__actions > .btn {
        display: none;
    }

    .hero__actions .btn,
    .cta__inner .btn {
        width: 100%;
    }

    .hero__trust {
        gap: 10px 20px;
    }

    .grid,
    .grid--3,
    .figures__grid,
    .footer__grid,
    .form__row {
        grid-template-columns: minmax(0, 1fr);
    }

    .figure {
        padding: 22px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .14);
    }

    .figures--inline .figure {
        padding: 20px 22px;
        border-bottom: 1px solid var(--line);
    }

    .figure:last-child {
        border-bottom: 0;
    }

    .story {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .story-list .tile {
        width: 62px;
        height: 62px;
        font-size: 1.55rem;
    }

    .mission__panel {
        padding: 30px 24px;
    }

    .pager {
        flex-direction: column;
        align-items: flex-start;
    }

    .article__meta {
        gap: 6px 16px;
    }

    .article__foot .btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    .footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
}
