html, body {
    height: 100%;
    overflow: hidden;
}

.snap-container {
    height: 100dvh;
    overflow-y: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

/* Mobile: normal scroll — no snap lock */
@media (max-width: 768px) {
    .snap-container {
        scroll-snap-type: none !important;
        scroll-padding-top: 4.5rem;
        overscroll-behavior-y: auto;
    }

    .snap-section {
        height: auto !important;
        min-height: 0 !important;
        scroll-snap-align: none !important;
        scroll-snap-stop: normal !important;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        padding-top: 3rem;
        padding-bottom: 2.5rem;
        box-sizing: border-box;
    }

    .nav-bar {
        height: 4rem;
    }

    .nav-logo-text {
        font-size: 0.875rem;
        letter-spacing: -0.03em;
    }

    .nav-logo-icon {
        width: 2rem;
        height: 2rem;
    }
}

/* Desktop: full-section scroll snap */
@media (min-width: 769px) {
    .snap-container {
        scroll-snap-type: y mandatory;
        scroll-padding-top: 5rem;
        overscroll-behavior-y: contain;
    }

    .snap-section {
        height: 100dvh;
        min-height: 100dvh;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        display: flex;
        flex-direction: column;
        justify-content: center;
        box-sizing: border-box;
    }

    /* Last section: pin footer to bottom so legal links stay in view */
    .snap-section-end {
        justify-content: flex-start;
        overflow-y: auto;
    }
}
