main {
    > section:not(:first-child) {
        padding-top: 4rem;
        padding-bottom: 4rem;

        > div {
            width: 100%;
            margin-right: auto;
            margin-left: auto;
            padding-right: 1rem;
            padding-left: 1rem;
        }
    }

    > section:first-child {
        display: flex;
        position: relative;
        min-height: 60vh;
        padding-bottom: 4rem;
        overflow: hidden;
        align-items: flex-end;

        > img {
            position: absolute;
            width: 100%;
            height: 100%;
            inset: 0;
            object-fit: cover;
        }

        > div:first-of-type {
            position: absolute;
            inset: 0;
            background: linear-gradient(
                to top,
                rgba(0, 0, 0, 0.8),
                rgba(0, 0, 0, 0.4),
                rgba(0, 0, 0, 0.1)
            );
        }

        > div:last-child {
            position: relative;
            width: 100%;
            max-width: var(--container);
            margin-right: auto;
            margin-left: auto;
            padding-right: 1rem;
            padding-left: 1rem;

            > div {
                max-width: 42rem;

                > p:first-child {
                    margin-bottom: 1rem;
                    color: rgba(255, 255, 255, 0.6);
                    font-size: 0.875rem;
                    font-weight: 600;
                    letter-spacing: 0.1em;
                    text-transform: uppercase;
                }

                h1 {
                    margin-bottom: 1.5rem;
                    color: #fff;
                    font-size: 3rem;
                    font-weight: 800;
                    letter-spacing: -0.025em;
                    line-height: 1.05;

                    span {
                        color: rgba(255, 255, 255, 0.7);
                    }
                }

                h1 + p {
                    max-width: 32rem;
                    margin-bottom: 2rem;
                    color: rgba(255, 255, 255, 0.7);
                    font-size: 1rem;
                    line-height: 1.625;
                }

                > div:last-child {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 0.75rem;

                    button,
                    a {
                        display: flex;
                        padding: 1rem 1.75rem;
                        border-radius: 999px;
                        align-items: center;
                        gap: 0.5rem;
                        font-size: 0.875rem;
                        transition: 0.15s ease;
                    }

                    button {
                        background: #fff;
                        color: var(--foreground);
                        font-weight: 800;

                        &:hover {
                            background: rgba(255, 255, 255, 0.9);
                        }
                    }

                    a {
                        padding-right: 1.5rem;
                        padding-left: 1.5rem;
                        border: 1px solid rgba(255, 255, 255, 0.4);
                        color: #fff;
                        font-weight: 600;
                        backdrop-filter: blur(8px);

                        &:hover {
                            border-color: rgba(255, 255, 255, 0.7);
                        }
                    }
                }
            }
        }
    }

    > section:nth-of-type(2) {
        background: var(--card);

        > div {
            max-width: var(--container);

            > p {
                margin-bottom: 0.75rem;
                color: var(--accent);
                font-size: 0.75rem;
                font-weight: 700;
                letter-spacing: 0.1em;
                text-transform: uppercase;
            }

            > div {
                display: flex;
                flex-direction: column;
                gap: 3rem;

                > div:first-child {
                    flex-shrink: 0;

                    h2 {
                        color: var(--foreground);
                        font-size: 2.25rem;
                        font-weight: 800;
                        letter-spacing: -0.025em;
                        line-height: 1.25;
                    }

                    > p {
                        margin-top: 0.75rem;
                        color: var(--muted-foreground);
                        font-size: 0.875rem;
                        line-height: 1.625;
                    }

                    button {
                        display: flex;
                        margin-top: 1.25rem;
                        align-items: center;
                        gap: 0.5rem;
                        font-size: 0.875rem;
                        font-weight: 700;
                        transition: gap 0.15s ease;

                        &:hover {
                            gap: 0.75rem;
                        }
                    }
                }

                > div:last-child {
                    display: grid;
                    flex: 1;
                    grid-template-columns: 1fr;
                    gap: 1rem;

                    > div {
                        padding: 1.25rem;
                        border: 1px solid var(--border);
                        border-radius: 1rem;
                        background: var(--background);
                        transition: border-color 0.15s ease;

                        &:hover {
                            border-color: color-mix(
                                in srgb,
                                var(--foreground) 20%,
                                transparent
                            );
                        }

                        > div {
                            display: flex;
                            width: 2.5rem;
                            height: 2.5rem;
                            margin-bottom: 1rem;
                            border-radius: calc(var(--radius) + 0.25rem);
                            align-items: center;
                            justify-content: center;
                            background: color-mix(
                                in srgb,
                                var(--foreground) 5%,
                                transparent
                            );
                            color: var(--foreground);
                        }

                        > p:nth-child(2) {
                            margin-bottom: 0.25rem;
                            color: var(--foreground);
                            font-size: 0.875rem;
                            font-weight: 700;
                        }

                        > p:last-child {
                            color: var(--muted-foreground);
                            font-size: 0.75rem;
                            line-height: 1.625;
                        }
                    }
                }
            }
        }
    }

    #catalog {
        > div {
            max-width: var(--container);

            > div:first-child {
                display: flex;
                margin-bottom: 2.5rem;
                flex-direction: column;
                justify-content: space-between;
                gap: 1rem;

                > div {
                    > p:first-child {
                        margin-bottom: 0.5rem;
                        color: var(--accent);
                        font-size: 0.75rem;
                        font-weight: 700;
                        letter-spacing: 0.1em;
                        text-transform: uppercase;
                    }

                    h2 {
                        color: var(--foreground);
                        font-size: 2.25rem;
                        font-weight: 800;
                        letter-spacing: -0.025em;
                        line-height: 1.1;
                    }

                    #catalog-subtitle {
                        margin-top: 0.25rem;
                        color: var(--muted-foreground);
                        font-size: 0.875rem;
                    }
                }
            }

            #catalog-categories {
                display: flex;
                margin-bottom: 2rem;
                flex-wrap: wrap;
                gap: 0.5rem;

                button {
                    padding: 0.625rem 1.25rem;
                    border-radius: 999px;
                    background: var(--secondary);
                    color: var(--muted-foreground);
                    font-size: 0.875rem;
                    font-weight: 700;
                    transition: 0.15s ease;

                    &.bg-foreground {
                        background: var(--foreground);
                        color: #fff;
                    }

                    &:not(.bg-foreground):hover {
                        background: color-mix(
                            in srgb,
                            var(--secondary) 70%,
                            transparent
                        );
                        color: var(--foreground);
                    }
                }
            }

            #catalog-grid {
                display: grid;
                grid-template-columns: 1fr;
                gap: 1.25rem;

                > [data-product-card] {
                    position: relative;
                    height: 100%;

                    > article {
                        display: flex;
                        height: 100%;
                        overflow: hidden;
                        border: 1px solid var(--border);
                        border-radius: 1rem;
                        background: var(--card);
                        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
                        cursor: pointer;
                        flex-direction: column;
                        transition: 0.3s ease;

                        &:hover {
                            transform: translateY(-0.25rem);
                            box-shadow:
                                0 20px 25px -5px rgba(0, 0, 0, 0.1),
                                0 8px 10px -6px rgba(0, 0, 0, 0.1);
                        }

                        > div:first-child {
                            position: relative;
                            overflow: hidden;
                            background: var(--secondary);

                            > img {
                                width: 100%;
                                height: 100%;
                                object-fit: cover;
                                transition: transform 0.5s ease;
                            }

                            > div:first-of-type {
                                display: flex;
                                position: absolute;
                                top: 0.75rem;
                                left: 0.75rem;
                                flex-direction: column;
                                align-items: flex-start;
                                gap: 0.375rem;

                                span {
                                    padding: 0.25rem 0.625rem;
                                    border-radius: 999px;
                                    background: var(--foreground);
                                    color: #fff;
                                    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
                                    font-size: 0.75rem;
                                    font-weight: 700;

                                    &[data-card-sale] {
                                        background: var(--destructive);
                                    }
                                }
                            }

                            > span {
                                position: absolute;
                                top: 0.75rem;
                                right: 0.75rem;
                                padding: 0.25rem 0.625rem;
                                border-radius: 999px;
                                background: rgba(255, 255, 255, 0.9);
                                color: var(--accent);
                                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
                                font-size: 0.75rem;
                                font-weight: 600;
                                &[data-card-stock='false'] {
                                    color: var(--destructive);
                                }
                            }

                            > div:last-child {
                                display: flex;
                                position: absolute;
                                inset: 0;
                                align-items: center;
                                justify-content: center;
                                background: transparent;
                                opacity: 0;
                                transition: 0.3s ease;

                                button {
                                    display: flex;
                                    padding: 0.625rem 1rem;
                                    border-radius: calc(
                                        var(--radius) + 0.25rem
                                    );
                                    align-items: center;
                                    gap: 0.5rem;
                                    transform: translateY(0.75rem);
                                    background: #fff;
                                    color: var(--foreground);
                                    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
                                    font-size: 0.875rem;
                                    font-weight: 700;
                                    opacity: 0;
                                    transition: 0.3s ease;
                                }
                            }
                        }

                        &:hover {
                            > div:first-child {
                                > img {
                                    transform: scale(1.05);
                                }

                                > div:last-child {
                                    background: rgba(0, 0, 0, 0.3);
                                    opacity: 1;

                                    button {
                                        transform: translateY(0);
                                        opacity: 1;
                                    }
                                }
                            }

                            > div:last-child h3 {
                                color: var(--accent);
                            }
                        }

                        > div:last-child {
                            display: flex;
                            padding: 1rem;
                            flex: 1;
                            flex-direction: column;

                            > h3 {
                                display: -webkit-box;
                                margin-bottom: 0.375rem;
                                overflow: hidden;
                                color: var(--foreground);
                                font-size: 0.875rem;
                                font-weight: 700;
                                line-height: 1.375;
                                -webkit-box-orient: vertical;
                                -webkit-line-clamp: 2;
                                transition: color 0.15s ease;
                            }

                            > h3 + p {
                                display: -webkit-box;
                                margin-bottom: 0.75rem;
                                overflow: hidden;
                                color: var(--muted-foreground);
                                font-size: 0.75rem;
                                line-height: 1.625;
                                flex: 1;
                                -webkit-box-orient: vertical;
                                -webkit-line-clamp: 2;
                            }

                            > div:has(> [data-variant]) {
                                display: flex;
                                margin-bottom: 0.75rem;
                                flex-wrap: wrap;
                                gap: 0.25rem;

                                [data-variant] {
                                    padding: 0.25rem 0.5rem;
                                    border: 1px solid var(--border);
                                    border-radius: var(--radius);
                                    color: var(--muted-foreground);
                                    font-size: 0.75rem;
                                    transition: 0.15s ease;

                                    &.bg-foreground {
                                        border-color: var(--foreground);
                                        background: var(--foreground);
                                        color: #fff;
                                    }

                                    &:not(.bg-foreground):hover {
                                        border-color: color-mix(
                                            in srgb,
                                            var(--foreground) 30%,
                                            transparent
                                        );
                                    }
                                }
                            }

                            > div:last-child {
                                display: flex;
                                margin-top: auto;
                                padding-top: 0.75rem;
                                border-top: 1px solid var(--border);
                                align-items: flex-end;
                                justify-content: space-between;
                                gap: 0.5rem;

                                > div {
                                    > p:first-child {
                                        color: var(--muted-foreground);
                                        font-size: 0.75rem;
                                        line-height: 1.25;
                                        text-decoration: line-through;
                                    }

                                    > p:last-child {
                                        color: var(--foreground);
                                        font-size: 1.125rem;
                                        font-weight: 800;
                                        line-height: 1.25;

                                        span:last-child {
                                            color: var(--muted-foreground);
                                            font-size: 0.75rem;
                                            font-weight: 400;
                                        }
                                    }
                                }

                                [data-add] {
                                    display: flex;
                                    padding: 0.5rem 0.75rem;
                                    border-radius: calc(
                                        var(--radius) + 0.25rem
                                    );
                                    align-items: center;
                                    gap: 0.25rem;
                                    background: var(--foreground);
                                    color: #fff;
                                    font-size: 0.75rem;
                                    font-weight: 700;
                                    transition: 0.15s ease;
                                    &:hover {
                                        background: color-mix(
                                            in srgb,
                                            var(--foreground) 80%,
                                            transparent
                                        );
                                    }
                                    &:disabled {
                                        background: var(--secondary);
                                        color: var(--muted-foreground);
                                        cursor: not-allowed;
                                        transform: none;
                                    }
                                    &:disabled:hover {
                                        background: var(--secondary);
                                    }
                                    &:active {
                                        transform: scale(0.95);
                                    }
                                }
                            }
                        }
                    }
                }

                #catalog-empty {
                    padding: 4rem 1.5rem;
                    border: 1px solid var(--border);
                    border-radius: 1rem;
                    background: var(--secondary);
                    text-align: center;

                    p:first-child {
                        color: var(--foreground);
                        font-weight: 700;
                    }

                    p:last-child {
                        margin-top: 0.25rem;
                        color: var(--muted-foreground);
                        font-size: 0.875rem;
                    }
                }
            }

            #catalog-pagination {
                display: flex;
                margin-top: 2.5rem;
                align-items: center;
                justify-content: center;
                gap: 0.5rem;

                button {
                    display: flex;
                    width: 2.5rem;
                    height: 2.5rem;
                    border: 1px solid var(--border);
                    border-radius: 999px;
                    align-items: center;
                    justify-content: center;
                    color: var(--muted-foreground);
                    font-size: 0.875rem;
                    font-weight: 700;
                    transition: 0.15s ease;

                    &.bg-foreground {
                        border-color: var(--foreground);
                        background: var(--foreground);
                        color: #fff;
                    }

                    &:not(.bg-foreground):hover {
                        border-color: var(--foreground);
                    }

                    &:disabled {
                        cursor: not-allowed;
                        opacity: 0.3;
                    }
                }
            }
        }
    }

    #how {
        background: var(--foreground);
        color: #fff;

        > div {
            max-width: var(--container);

            > div {
                display: flex;
                flex-direction: column;
                gap: 4rem;

                > div:first-child {
                    flex-shrink: 0;

                    > p:first-child {
                        margin-bottom: 0.75rem;
                        color: rgba(255, 255, 255, 0.4);
                        font-size: 0.75rem;
                        font-weight: 700;
                        letter-spacing: 0.1em;
                        text-transform: uppercase;
                    }

                    h2 {
                        color: #fff;
                        font-size: 2.25rem;
                        font-weight: 800;
                        letter-spacing: -0.025em;
                        line-height: 1.25;
                    }

                    h2 + p {
                        margin-top: 0.75rem;
                        color: rgba(255, 255, 255, 0.5);
                        font-size: 0.875rem;
                        line-height: 1.625;
                    }

                    > div {
                        display: flex;
                        margin-top: 2rem;
                        flex-direction: column;
                        gap: 1rem;

                        > div {
                            display: flex;
                            align-items: flex-start;
                            gap: 0.75rem;

                            > div:first-child {
                                display: flex;
                                width: 2rem;
                                height: 2rem;
                                border-radius: var(--radius);
                                align-items: center;
                                justify-content: center;
                                background: rgba(255, 255, 255, 0.1);
                                flex-shrink: 0;
                            }

                            > div:last-child {
                                p:first-child {
                                    color: #fff;
                                    font-size: 0.875rem;
                                    font-weight: 700;
                                }

                                p:last-child {
                                    margin-top: 0.125rem;
                                    color: rgba(255, 255, 255, 0.5);
                                    font-size: 0.75rem;
                                }
                            }
                        }
                    }
                }

                > div:last-child {
                    display: grid;
                    flex: 1;
                    grid-template-columns: 1fr;
                    gap: 1rem;

                    > div {
                        padding: 1.5rem;
                        border: 1px solid rgba(255, 255, 255, 0.1);
                        border-radius: 1rem;
                        background: rgba(255, 255, 255, 0.05);
                        transition: border-color 0.15s ease;

                        &:hover {
                            border-color: rgba(255, 255, 255, 0.2);
                        }

                        p:first-child {
                            margin-bottom: 1rem;
                            color: rgba(255, 255, 255, 0.1);
                            font-size: 2.25rem;
                            font-weight: 800;
                        }

                        p:nth-child(2) {
                            margin-bottom: 0.375rem;
                            color: #fff;
                            font-weight: 700;
                        }

                        p:last-child {
                            color: rgba(255, 255, 255, 0.5);
                            font-size: 0.875rem;
                            line-height: 1.625;
                        }
                    }
                }
            }
        }
    }

    #faq {
        background: var(--card);

        > div {
            max-width: 48rem;

            > p:first-child {
                margin-bottom: 0.75rem;
                color: var(--accent);
                font-size: 0.75rem;
                font-weight: 700;
                letter-spacing: 0.1em;
                text-transform: uppercase;
            }

            > h2 {
                margin-bottom: 2.5rem;
                color: var(--foreground);
                font-size: 2.25rem;
                font-weight: 800;
                letter-spacing: -0.025em;
                line-height: 1.1;
            }

            > div {
                display: flex;
                flex-direction: column;

                > div {
                    border-bottom: 1px solid var(--border);

                    &:first-child {
                        border-top: 1px solid var(--border);
                    }

                    > button {
                        display: flex;
                        width: 100%;
                        padding: 1.25rem 0;
                        align-items: center;
                        justify-content: space-between;
                        gap: 1rem;
                        text-align: left;

                        span {
                            color: var(--foreground);
                            font-size: 0.875rem;
                            font-weight: 700;
                        }

                        svg {
                            color: var(--muted-foreground);
                            flex-shrink: 0;
                            transition: transform 0.3s ease;

                            &.rotate-180 {
                                transform: rotate(180deg);
                            }
                        }
                    }

                    > button + div {
                        max-height: 0;
                        overflow: hidden;
                        transition: 0.3s ease;

                        &.max-h-48 {
                            max-height: 12rem;
                        }

                        &.pb-5 {
                            padding-bottom: 1.25rem;
                        }

                        p {
                            color: var(--muted-foreground);
                            font-size: 0.875rem;
                            line-height: 1.625;
                        }
                    }
                }
            }
        }
    }

    #faq + section {
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
        background: var(--accent);

        > div {
            display: flex;
            max-width: 64rem;
            flex-direction: column;
            align-items: center;
            justify-content: space-between;
            gap: 1.5rem;
            text-align: center;

            h3 {
                margin-bottom: 0.25rem;
                color: #fff;
                font-size: 1.5rem;
                font-weight: 800;
            }

            p {
                color: rgba(255, 255, 255, 0.75);
                font-size: 0.875rem;
            }

            > a {
                display: flex;
                padding: 1rem 2rem;
                border-radius: 999px;
                align-items: center;
                gap: 0.5rem;
                background: #fff;
                color: var(--foreground);
                font-size: 0.875rem;
                font-weight: 800;
                flex-shrink: 0;
                transition: background 0.15s ease;

                &:hover {
                    background: rgba(255, 255, 255, 0.9);
                }
            }
        }
    }
}

@media screen and (min-width: 640px) {
    main {
        > section:not(:first-child) {
            > div {
                padding-right: 1.5rem;
                padding-left: 1.5rem;
            }
        }

        > section:first-child {
            > div:last-child {
                padding-right: 1.5rem;
                padding-left: 1.5rem;

                > div h1 {
                    font-size: 3.75rem;
                }
            }
        }

        > section:nth-of-type(2) {
            > div {
                > div {
                    > div:last-child {
                        grid-template-columns: repeat(
                            2,
                            minmax(0, 1fr)
                        );
                    }
                }
            }
        }

        #catalog {
            > div {
                > div:first-child {
                    flex-direction: row;
                    align-items: flex-end;
                }

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

        #how {
            > div {
                > div {
                    > div:last-child {
                        grid-template-columns: repeat(
                            2,
                            minmax(0, 1fr)
                        );
                    }
                }
            }
        }
    }
}

@media screen and (min-width: 768px) {
    main {
        > section:not(:first-child) {
            > div {
                padding-right: 2rem;
                padding-left: 2rem;
            }
        }

        > section:first-child {
            > div:last-child {
                padding-right: 2rem;
                padding-left: 2rem;

                > div {
                    h1 {
                        font-size: 4.5rem;
                    }

                    h1 + p {
                        font-size: 1.125rem;
                    }
                }
            }
        }

        > section:nth-of-type(2) {
            > div {
                > div {
                    flex-direction: row;
                    align-items: flex-start;

                    > div:first-child {
                        width: 18rem;

                        h2 {
                            font-size: 3rem;
                        }
                    }
                }
            }
        }

        #catalog {
            > div {
                > div:first-child {
                    > div h2 {
                        font-size: 3rem;
                    }
                }
            }
        }

        #how {
            > div {
                > div {
                    > div:first-child h2 {
                        font-size: 3rem;
                    }
                }
            }
        }

        #faq {
            > div {
                > h2 {
                    font-size: 3rem;
                }

                > div > div > button span {
                    font-size: 1rem;
                }
            }
        }

        #faq + section {
            > div {
                flex-direction: row;
                text-align: left;

                h3 {
                    font-size: 1.875rem;
                }
            }
        }
    }
}

@media screen and (min-width: 1024px) {
    main {
        > section:nth-of-type(2) {
            > div {
                > div {
                    > div:last-child {
                        grid-template-columns: repeat(
                            4,
                            minmax(0, 1fr)
                        );
                    }
                }
            }
        }
        #catalog {
            > div {
                #catalog-grid {
                    grid-template-columns: repeat(
                        3,
                        minmax(0, 1fr)
                    );
                }
            }
        }
        #how {
            > div {
                > div {
                    flex-direction: row;
                    > div:first-child {
                        width: 20rem;
                    }
                }
            }
        }
    }
}
@media screen and (min-width: 1280px) {
    main {
        #catalog {
            > div {
                #catalog-grid {
                    grid-template-columns: repeat(
                        4,
                        minmax(0, 1fr)
                    );
                }
            }
        }
    }
}