/* Responsive */
@media (max-width: 1000px) {
    .nav {
        justify-content: center;
        gap: 30px;
        /* padding-left: 20px; */
        /* padding-right: 20px; */
        padding-inline: 80px;
    }
}

@media (max-width: 900px) {

    html,
    body {
        overflow: auto;
    }

    .layout {
        height: auto;
        flex-direction: column;
    }

    .countdown-bar {
        gap: 5%;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 100;
    }

    .hero {
        width: 100vw;
        height: 100dvh;

        display: flex;
        flex-direction: column;
    }

    .hero-content {
        flex: 1;
        justify-content: flex-end;
        padding-bottom: 2rem;
        /* visually matches reference */
        padding-top: 0;
    }

    .hashtag {
        font-size: 42px;
    }

    .subtitle {
        font-size: 13px;
        letter-spacing: 1px;
    }

    .hero-bg {
        background-position-y: -190px;
        background-position-x: 0px;
    }

    /* Footer stays visible */
    .hero-footer {
        flex-shrink: 0;
        position: relative;
        /* IMPORTANT */
        bottom: auto;
        font-size: 13px;
    }

    .nav {
        position: sticky;
        top: 57.2px;
        z-index: 100;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);

        padding: 15px 10px 24px;

        justify-content: center;
        gap: 7vw;

        overflow-x: auto;
        white-space: nowrap;

        -webkit-overflow-scrolling: touch;
    }

    .nav a {
        font-size: 12px;
    }

    .nav::-webkit-scrollbar {
        display: none;
    }

    .section {
        margin: 20px 0px 0px 0px;
    }

    .section h2 {
        font-size: 35px;
    }

    .content {
        width: 100%;
        display: block;
        height: auto;
        overflow: visible;
        padding: 20px 20px;
    }

    .gallery-grid,
    .wishes-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .hero-bg {
        background-position-y: -130px;
        background-position-x: 0px;
    }
}

@media (max-width: 530px) {
    .nav {
        justify-content: flex-start;
    }

    .hero-bg {
        background-position-y: -110px;
        background-position-x: -80px;
    }
}

@media (max-width: 330px) {
    .hero-bg {
        background-position-y: -110px;
        background-position-x: -140px;
    }
}