/* ============================================
   Responsive
   ============================================ */

@media (max-width: 980px) {
    .hero__container,
    .split,
    .flow-panel {
        grid-template-columns: 1fr;
    }

    .hero__container {
        gap: var(--space-12);
    }

    .hero__copy {
        max-width: 820px;
    }

    .hero__visual {
        justify-self: center;
    }

    .hero__shot {
        max-height: 560px;
        transform: none;
    }

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

    .feature-card--wide {
        grid-column: span 1;
    }

    .screens__gallery {
        display: flex;
        gap: var(--space-5);
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        margin-inline: calc(var(--container-padding) * -1);
        padding: var(--space-2) var(--container-padding) var(--space-4);
    }

    .screen-shot {
        flex: 0 0 58%;
        scroll-snap-align: start;
    }
}

@media (max-width: 640px) {
    :root {
        --container-padding: var(--space-4);
    }

    /* Mobile nav dropdown */
    .nav__links {
        display: none;
        position: absolute;
        top: 72px;
        left: 0;
        right: 0;
        padding: var(--space-4);
        flex-direction: column;
        background: rgba(16, 42, 67, 0.97);
        backdrop-filter: blur(22px);
        -webkit-backdrop-filter: blur(22px);
        border-bottom: 1px solid rgba(248, 250, 252, 0.10);
        gap: var(--space-4);
    }

    .nav__links--open {
        display: flex;
    }

    .nav__toggle {
        display: flex;
    }

    .hero {
        min-height: auto;
        padding-top: 120px;
    }

    .hero__container {
        min-height: auto;
    }

    .hero__container > * {
        min-width: 0;
    }

    .hero__copy,
    .hero__title,
    .hero__description,
    .hero__signals {
        width: 100%;
        max-width: calc(100vw - (var(--container-padding) * 2));
    }

    .hero__title {
        font-size: clamp(2.35rem, 9.8vw, 2.9rem);
        line-height: 1.06;
    }

    .hero__description,
    .section__lead,
    .origin__story {
        font-size: 1rem;
    }

    .hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

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

    .hero__visual {
        overflow: visible;
    }

    .hero__shot {
        max-height: 480px;
    }

    .section {
        padding-top: var(--space-20);
        padding-bottom: var(--space-20);
    }

    .workflow,
    .features__grid,
    .arch__grid {
        grid-template-columns: 1fr;
    }

    .workflow-card {
        min-height: auto;
    }

    .screen-shot {
        flex-basis: 78%;
    }

    .flow-panel {
        padding: var(--space-5);
    }

    .builder-card__contact {
        flex-direction: column;
        align-items: stretch;
    }

    .footer__container {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-4);
    }

    .footer__copyright {
        text-align: left;
    }

    .legal-header {
        padding-top: 110px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
