/* ==========================================================================
   RESPONSIVE — unified breakpoints & layout (loads last)
   Breakpoints: 480 · 768 · 1024 · 1280 · 1440
   Mobile-first: 320–479 = 1 col catalog
   ========================================================================== */

/* --- Containers --- */
.container.xlr {
    width: 100%;
    max-width: min(var(--theme-container-max), 100%);
    padding-left: var(--theme-container-pad);
    padding-right: var(--theme-container-pad);
    box-sizing: border-box;
}

.section_header {
    margin-bottom: 0;
}

.section_header:not(:last-child) {
    margin-bottom: var(--content-gap);
}

/* --- Product catalog grid --- */
#product .list,
#similar_products .list,
#product .list.col.xs3,
#similar_products .list.col.xs3 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: var(--theme-grid-gap) !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 0 !important;
    margin: 0 !important;
    list-style: none;
}

#product .list .item.product_card,
#similar_products .list .item.product_card {
    display: flex !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
}

/* Neutralize legacy style.css list card layout */
#product .list .item.product_card .image,
#similar_products .list .item.product_card .image {
    margin-top: 0 !important;
}

/* --- Typography tokens (apply scale) --- */
.section_title,
#product .section_title {
    font-size: var(--theme-text-2xl) !important;
}

.product_card_title {
    font-size: var(--theme-text-lg);
    line-height: var(--theme-leading-snug);
}

.product_card_desc {
    font-size: var(--theme-text-sm);
    line-height: var(--theme-leading-normal);
}

.price_current {
    font-size: var(--theme-price-card);
}

#product_item .product_title,
#product_item .title {
    font-size: var(--theme-text-display) !important;
}

#product_item .product_page_price .price_current {
    font-size: var(--theme-price-page);
}

#cart .title {
    font-family: var(--theme-font-display) !important;
    font-size: var(--theme-text-2xl) !important;
}

#banner .banner_title {
    font-size: var(--theme-text-hero) !important;
}

/* --- Legacy style.css neutralization --- */
@media (max-width: 1023px) {
    .header.hdstky #menubar {
        height: auto !important;
        position: static !important;
    }

    .header.hdstky #menubar > ul:not(#menu) {
        display: none !important;
    }
}

/* 480px+ — 2 columns */
@media (min-width: 480px) {
    #product .list.col.xs3,
    #similar_products .list.col.xs3 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* 768px+ — product page, cart, forms */
@media (min-width: 768px) {
    #product_item .container {
        gap: var(--spacing-inner);
        padding-left: var(--theme-container-pad);
        padding-right: var(--theme-container-pad);
        padding-top: 0;
        padding-bottom: 0;
    }

    #cart .container {
        padding-left: var(--theme-container-pad);
        padding-right: var(--theme-container-pad);
        padding-top: 0;
        padding-bottom: 0;
    }

    .remodal {
        padding: clamp(24px, 4vw, 32px) clamp(20px, 4vw, 28px) !important;
    }
}

/* 1024px+ — 3 columns, desktop header alignment */
@media (min-width: 1024px) {
    #product .list.col.xs3,
    #similar_products .list.col.xs3 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    #product_item .container {
        grid-template-columns: 1fr 1fr;
    }

    #product_item .product_gallery,
    #product_item .product_gallery_wrap {
        order: -1;
    }
}

/* 1280px+ — wider content rhythm */
@media (min-width: 1280px) {
    .container.xlr {
        max-width: var(--theme-container-max);
    }
}

/* --- Small phones (320–479) --- */
@media (max-width: 479px) {
    .product_card_inner {
        border-radius: 20px;
    }

    .product_card_body {
        padding: 14px 14px 10px;
    }

    .product_card_footer {
        padding: 0 14px 14px;
        gap: 10px;
    }

    .product_card_actions {
        width: 100%;
        gap: 8px;
    }

    .product_buy {
        width: 100%;
        height: 42px;
    }

    .product_card_actions .product_buy {
        width: 100%;
    }

    .product_buy .minus,
    .product_buy .plus {
        flex: 0 0 42px;
        width: 42px;
        height: 42px;
    }

    .product_buy_add {
        font-size: 12px;
        padding: 0 14px;
    }

    .product_photo_btn {
        height: 42px;
        min-height: 42px;
        font-size: 11px;
        padding: 0 12px;
    }

    .custom_order_card {
        padding: var(--section-spacing) 20px;
        border-radius: 24px;
    }

    #cart .cart_list .cart_item {
        grid-template-columns: 64px 1fr;
        gap: 12px;
        padding: 16px !important;
    }

    #cart .cart_list .cart_item .price {
        grid-column: 1 / -1;
        text-align: right;
    }

    .header #logo {
        max-width: min(160px, 42vw);
    }

    .mobile_nav_panel {
        width: min(320px, 100vw);
    }

    .remodal {
        border-radius: var(--theme-radius-md) !important;
        padding: 20px 16px !important;
    }
}

/* --- Prevent horizontal overflow --- */
img,
video,
iframe,
.product_card_media,
#product_item .gallery_main {
    max-width: 100%;
}

table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}
