/* =========================================================
   Hooniva — Responsive Styles
   ========================================================= */

@media (max-width: 1100px) {
    :root {
        --section-space: var(--section-space-tablet);
    }

    .grid--4,
    .grid--5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-header__actions .button--secondary {
        display: none;
    }

    .site-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 920px) {
    :root {
        --header-height: var(--header-height-mobile);
    }

    .site-header,
    .site-header__inner {
        min-height: var(--header-height-mobile);
    }

    .site-logo__mark {
        width: 38px;
        height: 38px;
        border-radius: 12px;
    }

    .site-nav {
        position: fixed;
        top: var(--header-height-mobile);
        right: 0;
        left: 0;
        display: grid;
        max-height: calc(100vh - var(--header-height-mobile));
        overflow-y: auto;
        margin: 0;
        padding: var(--space-4) var(--container-gutter) var(--space-6);
        background: var(--color-white);
        border-bottom: 1px solid var(--color-border);
        box-shadow: var(--shadow-lg);
        visibility: hidden;
        opacity: 0;
        transform: translateY(-12px);
        transition:
            opacity var(--transition-base),
            transform var(--transition-base),
            visibility var(--transition-base);
    }

    .site-nav.is-open {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
    }

    .site-nav__list {
        align-items: stretch;
        flex-direction: column;
        gap: var(--space-1);
    }

    .site-nav__link {
        width: 100%;
        min-height: 48px;
        padding-inline: var(--space-4);
    }

    .site-header__actions .button {
        display: none;
    }

    .menu-toggle {
        display: grid;
    }

    .grid--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .desktop-only {
        display: none !important;
    }

    .mobile-only {
        display: initial;
    }
}

@media (max-width: 700px) {
    :root {
        --container-gutter: 16px;
        --section-space: var(--section-space-mobile);
    }

    h1 {
        font-size: clamp(2rem, 10vw, 2.75rem);
    }

    h2 {
        font-size: clamp(1.7rem, 8vw, 2.25rem);
    }

    .section--small {
        padding-block: var(--space-16);
    }

    .section--large {
        padding-block: var(--space-24);
    }

    .section-header {
        margin-bottom: var(--space-10);
    }

    .section-header__description {
        font-size: var(--font-size-md);
    }

    .grid--2,
    .grid--3,
    .grid--4,
    .grid--5,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-field--full {
        grid-column: auto;
    }

    .card {
        padding: var(--space-6);
    }

    .cta-box {
        padding: var(--space-12) var(--space-5);
        border-radius: var(--radius-xl);
    }

    .cta-box__description {
        font-size: var(--font-size-md);
    }

    .cta-box__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cta-box__actions .button {
        width: 100%;
    }

    .site-footer {
        padding-top: var(--space-16);
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
        gap: var(--space-9);
        padding-bottom: var(--space-12);
    }

    .site-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        padding-block: var(--space-5);
    }

    .faq-item__question {
        padding: 19px 54px 19px 18px;
    }

    .faq-item__question::before,
    .faq-item__question::after {
        right: 20px;
    }

    .faq-item__answer {
        padding: 0 18px 19px;
    }

    .button--large {
        min-height: 52px;
        padding-inline: 22px;
    }
}

@media (max-width: 420px) {
    .site-logo {
        font-size: var(--font-size-lg);
    }

    .site-logo__mark {
        width: 36px;
        height: 36px;
    }

    .card {
        padding: var(--space-5);
    }

    .section-header__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .section-header__actions .button {
        width: 100%;
    }
}