/* =============================================
   GLOBAL WOOCOMMERCE STYLES
   ============================================= */

/* --- Product Grid (Shop/Category) --- */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    margin: 0 !important;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }

.woocommerce ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    background: #f9fbfd !important;
    border-radius: 12px !important;
    padding: 15px !important;
    text-align: left !important;
    transition: all 0.3s ease !important;
    border: 1px solid #eef1f6 !important;
    display: flex !important;
    flex-direction: column !important;
}
.woocommerce ul.products li.product:hover {
    box-shadow: 0 10px 25px rgba(0,0,0,0.08) !important;
    transform: translateY(-3px) !important;
}

.woocommerce ul.products li.product a img {
    border-radius: 8px !important;
    margin-bottom: 15px !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    display: block !important;
}

/* Force all product card images to square - no exceptions */
.woocommerce ul.products li.product .product-image img,
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img,
.woocommerce ul.products li.product .wvs-archive-product-image,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product img[src*="wp-content"] {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
}
.woocommerce ul.products li.product .product-image {
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    border-radius: 8px !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 1.1rem !important;
    color: #1a2b4c !important;
    font-weight: 400 !important;
    margin-bottom: 15px !important;
    line-height: 1.3 !important;
    text-align: left !important;
}

.woocommerce ul.products li.product .price, .cfp-price-label {
    color: #5472d2 !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    margin-bottom: 15px !important;
    display: block !important;
}

/* --- Buttons (Global) --- */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .call-for-price-button,
.woocommerce ul.products li.product a.call-for-price,
.woocommerce div.product form.cart .button {
    background: #5472d2 !important;
    color: #fff !important;
    border-radius: 30px !important;
    padding: 16px 32px !important;
    font-weight: 500 !important;
    font-size: 1rem !important;
    text-transform: none !important;
    border: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: auto !important;
    align-self: flex-start !important;
    transition: background 0.3s ease !important;
    text-decoration: none !important;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.call-for-price:hover,
.woocommerce div.product form.cart .button:hover,
.woocommerce ul.products li.product .call-for-price-button:hover {
    background: #3e5ab8 !important;
}

/* Hide star ratings */
.woocommerce ul.products li.product .star-rating { display: none !important; }
/* Hide duplicate CFP label in loop */
.woocommerce ul.products li.product .cfp-price-label { display: none !important; }

/* =============================================
   SINGLE PRODUCT PAGE
   ============================================= */

/* Title - Gilroy-like, 40px, weight 500 */
.woocommerce div.product .product_title,
.woocommerce #content div.product .product_title {
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 500 !important;
    font-size: 40px !important;
    line-height: 44px !important;
    color: #1a2b4c !important;
    margin-bottom: 15px !important;
}

/* Hide product meta (categories, SKU) */
.woocommerce div.product .product_meta,
.woocommerce #content div.product .product_meta {
    display: none !important;
}

/* Price styling */
.woocommerce div.product p.price,
.woocommerce div.product .price {
    font-size: 1.1rem !important;
    margin-bottom: 15px !important;
}
.woocommerce div.product p.price .cfp-price-label,
.woocommerce div.product .price .cfp-price-label {
    color: #5472d2 !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    display: inline-block !important;
    text-decoration: none !important;
    cursor: default !important;
}

/* Call for Price as link on single product */
.call-for-price-button {
    color: #5472d2 !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    cursor: default !important;
}
.call-for-price-button:hover {
    text-decoration: none !important;
}

/* Short description */
.woocommerce-product-details__short-description {
    margin-bottom: 20px !important;
    color: #555 !important;
    line-height: 1.6 !important;
}

/* Cart form */
.woocommerce div.product form.cart {
    margin-top: 20px !important;
    padding: 0 !important;
    border: 0 !important;
}
.woocommerce div.product form.cart .variations {
    margin-bottom: 20px !important;
}
.woocommerce div.product form.cart .variations td.value {
    padding-right: 0 !important;
}

/* Submit button on single product */
.woocommerce div.product form.cart .button.alt,
.woocommerce div.product form.cart button[type="submit"] {
    background: #5472d2 !important;
    color: #fff !important;
    border-radius: 30px !important;
    padding: 14px 30px !important;
    font-weight: 500 !important;
    font-size: 1rem !important;
    border: none !important;
    transition: background 0.3s ease !important;
}
.woocommerce div.product form.cart .button.alt:hover,
.woocommerce div.product form.cart button[type="submit"]:hover {
    background: #3e5ab8 !important;
}

/* Attributes table styling */
.woocommerce-product-attributes.shop_attributes {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-top: 10px !important;
    margin-bottom: 20px !important;
}
.woocommerce-product-attributes th,
.woocommerce-product-attributes td {
    padding: 16px 18px !important;
    border-bottom: 1px solid #eef1f6 !important;
    font-size: 1rem !important;
    vertical-align: top !important;
}
.woocommerce-product-attributes th {
    font-weight: 600 !important;
    color: #1a2b4c !important;
    width: 35% !important;
}
.woocommerce-product-attributes td {
    color: #555 !important;
}
.woocommerce-product-attributes td p {
    margin: 0 !important;
}

/* =============================================
   RELATED PRODUCTS
   ============================================= */
.woocommerce .related.products {
    margin-top: 50px !important;
    padding-top: 30px !important;
    border-top: 1px solid #eef1f6 !important;
}
.woocommerce .related.products h2 {
    font-size: 1.5rem !important;
    color: #1a2b4c !important;
    font-weight: 600 !important;
    margin-bottom: 20px !important;
}

/* =============================================
   SHOP LAYOUT GRID
   ============================================= */
.intra-shop-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
    position: relative;
}

/* TOP BAR & SORTING */
.intra-shop-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}
.intra-shop-sorting {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-left: auto;
}
.intra-shop-sorting .woocommerce-result-count {
    margin: 0;
    color: #666;
}
.intra-shop-sorting form.woocommerce-ordering {
    margin: 0;
}
.intra-shop-sorting select.orderby {
    padding: 10px 15px;
    border: 1px solid #e1e4ec;
    border-radius: 8px;
    background: #f9fbfd;
    color: #1a2b4c;
    font-size: 0.95rem;
    outline: none;
    cursor: pointer;
}

/* SIDEBAR STYLES */
.intra-shop-sidebar {
    background: #fff;
    padding-right: 15px;
}
.intra-sidebar-header-mobile {
    display: none;
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
    text-align: right;
}
.intra-close-sidebar {
    background: none;
    border: none;
    font-size: 14px;
    font-weight: 700;
    color: #1a2b4c;
    cursor: pointer;
    text-transform: uppercase;
}
.intra-sidebar-content .widget-title {
    font-size: 1.2rem;
    color: #1a2b4c;
    margin-bottom: 25px;
    font-weight: 600;
}
.intra-sidebar-content .widget_nav_menu h2.widget-title {
    font-size: 1.2rem;
    margin-bottom: 10px;
}
.intra-sidebar-content .widget_nav_menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.intra-sidebar-content .widget_nav_menu ul li {
    margin: 0;
}
.intra-sidebar-content .widget_nav_menu ul li a {
    display: inline-block;
    padding: 8px 12px;
    border: 1px solid #e1e4ec;
    border-radius: 4px;
    color: #555;
    font-size: 0.9rem;
    text-decoration: none;
    transition: all 0.2s ease;
    background: #fff;
}
.intra-sidebar-content .widget_nav_menu ul li a:hover {
    border-color: #5472d2;
    color: #5472d2;
}

/* MOBILE TOGGLE BUTTON */
.intra-mobile-filter-toggle {
    display: none;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    font-size: 1.1rem;
    font-weight: 600;
    color: #1a2b4c;
    cursor: pointer;
    padding: 0;
}

/* OVERLAY */
.intra-sidebar-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 999;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* =============================================
   RESPONSIVE
   ============================================= */
@media(max-width: 992px) {
    .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; }
    .intra-shop-layout { display: block; }
    .intra-shop-sidebar {
        position: fixed;
        top: 0; left: -100%; bottom: 0;
        width: 320px;
        background: #fff;
        z-index: 1000;
        overflow-y: auto;
        padding: 0;
        transition: left 0.3s ease;
        box-shadow: 2px 0 15px rgba(0,0,0,0.1);
    }
    .intra-shop-sidebar.is-open { left: 0; }
    .intra-sidebar-header-mobile { display: block; }
    .intra-sidebar-content { padding: 20px; }
    .intra-sidebar-overlay.is-open { display: block; opacity: 1; }
    .intra-mobile-filter-toggle { display: flex; }
    .intra-shop-top-bar { border-bottom: 1px solid #eee; padding-bottom: 15px; }
    .woocommerce div.product .product_title { font-size: 28px !important; line-height: 34px !important; }
}
@media(max-width: 768px) {
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 15px !important; }
    .woocommerce ul.products li.product { padding: 10px !important; }
    .woocommerce ul.products li.product .button { padding: 8px 15px !important; font-size: 0.85rem !important; }
    a.button.call-for-price, a.button.call-for-price.open-popup-call-price { padding: 14px 28px !important; font-size: 0.95rem !important; }
    .intra-shop-sidebar { width: 85%; }
    .intra-shop-sorting { flex-direction: column; align-items: flex-end; }
    .woocommerce div.product .product_title { font-size: 24px !important; line-height: 30px !important; }
}
/* =============================================
   SINGLE PRODUCT IMAGE (match donor size)
   ============================================= */
.woocommerce div.product div.images {
    max-width: 467px !important;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image {
    border-radius: 8px !important;
    overflow: hidden !important;
    aspect-ratio: 16 / 10 !important;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
    border-radius: 8px !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n) {
    aspect-ratio: 16 / 10 !important;
}

/* Force uniform size on product card images (shop/category) */
.woocommerce ul.products li.product .product-image,
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    width: 100% !important;
    height: auto !important;
}
.woocommerce ul.products li.product .wvs-archive-product-wrapper img {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
}
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
}

/* Hide default WC tab headers - handled by accordion styles below */

/* Hide quantity on single product */
.woocommerce div.product .quantity_wrap,
.woocommerce div.product .quantity,
.woocommerce div.product form.cart .quantity,
.woocommerce div.product .quantity_wrapper {
    display: none !important;
}

/* Hide short description */
.woocommerce-product-details__short-description {
    display: none !important;
}

/* --- Hide onsale badges (match donor - no sale labels) --- */
.woocommerce .onsale,
span.onsale,
.wvs-archive-product-wrapper .onsale {
    display: none !important;
}

/* --- Hide Google Reviews widget on product pages (causes overflow) --- */





/* --- Hide discount popup --- */
#popup-discount,
.intra-popup-overlay#popup-discount {
    display: none !important;
}

/* --- Hide Compare & Wishlist buttons on single product --- */
.woocommerce div.product .woosc-btn,
.woocommerce div.product .woosw-btn {
    display: none !important;
}

/* --- Product After Title (SKU) --- */
.product_after_title {
    margin-bottom: 8px;
    font-size: 14px;
    color: #666;
}
.product_after_title .sku_wrapper {
    font-size: 14px;
    color: #666;
}

/* --- Hide product_meta (categories) on single product --- */
.woocommerce div.product .product_meta {
    display: none !important;
}

/* --- Custom Product Attributes list (match donor) --- */
.custom-product-attributes {
    margin-bottom: 15px;
    padding: 0;
}
.custom-product-attributes ul {
    margin: 0;
    padding: 0 0 0 20px;
    list-style-type: disc;
}
.custom-product-attributes li {
    font-size: 15px;
    color: #333;
    padding: 3px 0;
    line-height: 1.6;
}
.custom-product-attributes li strong {
    color: #1a2b4c;
    font-weight: 700;
}

/* --- Price styling (match donor: blue price, gray strikethrough) --- */
.woocommerce div.product p.price {
    /* font-size: 32px !important; */
    font-weight: 700 !important;
    color: #5472d2 !important;
}
.woocommerce div.product p.price ins {
    margin-left: 0 !important;
    text-decoration: none !important;
    color: #5472d2 !important;
    background: none !important;
    font-size: 32px !important;
    font-weight: 700 !important;
}
.woocommerce div.product p.price del {
    color: #aaa !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    text-decoration: line-through !important;
    margin-left: 10px !important;
}
.price-sqft {
    font-size: 16px !important;
    line-height: 18px !important;
    color: #5472d2 !important;
    font-weight: 400 !important;
}

/* --- Accordion tabs (match donor: gray bg, blue text, border, rounded) --- */
.woocommerce-tabs.wc-tabs-wrapper,
.woocommerce div.product .woocommerce-tabs {
    border: none !important;
    background: transparent !important;
    margin-top: 30px !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
.woocommerce-tabs .wc-tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: none !important;
}
.woocommerce div.product .woocommerce-tabs .wc-tab,
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
}

.intra-accordion {
    border: 1px solid #DFE5F3 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    margin-top: 30px !important;
    background: #f5f6f9 !important;
}
.intra-accordion-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 18px 20px !important;
    background: #f5f6f9 !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    transition: background 0.3s !important;
}
.intra-accordion-header:hover {
    background: #ebedf3 !important;
}
.intra-accordion-header h2,
.intra-accordion-header .accordion-title {
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #172037 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}
.intra-accordion-header.active h2,
.intra-accordion-header.active .accordion-title,
.intra-accordion-header.active {
    color: #5473c7 !important;
}
.intra-accordion-header.active h2 {
    color: #5473c7 !important;
}
.intra-accordion-icon {
    width: 0 !important;
    height: 0 !important;
    border-left: 6px solid transparent !important;
    border-right: 6px solid transparent !important;
    border-bottom: 8px solid #5473c7 !important;
    transition: transform 0.3s !important;
    flex-shrink: 0 !important;
    font-size: 0 !important;
    color: transparent !important;
}
.intra-accordion-header.active .intra-accordion-icon {
    transform: rotate(180deg) !important;
    border-bottom-color: #5473c7 !important;
}
.intra-accordion-content {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.3s ease !important;
    padding: 0 20px !important;
    border: none !important;
    background: #f5f6f9 !important;
}
.intra-accordion-content.active {
    max-height: 2000px !important;
    padding: 20px !important;
    background: #f5f6f9 !important;
}
.intra-accordion-content h2 {
    font-family: 'Gilroy', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #172037 !important;
    margin-bottom: 10px !important;
}
.intra-accordion-content p,
.intra-accordion-content span {
    font-family: 'Gilroy', sans-serif !important;
    font-size: 14px !important;
    line-height: 20px !important;
    color: #3A3D5B !important;
}

/* =============================================
   GALLERY MASONRY GRID (match Figma)
   ============================================= */
.gallery-section .masonry-grid {
    column-count: 3 !important;
    column-gap: 12px !important;
}
.gallery-section .masonry-item {
    border-radius: 14px !important;
    overflow: hidden !important;
    margin-bottom: 12px !important;
    break-inside: avoid !important;
    cursor: pointer !important;
    display: block !important;
}
.gallery-section .masonry-item img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 14px !important;
    transition: transform 0.35s ease !important;
}
.gallery-section .masonry-item:hover img {
    transform: scale(1.04) !important;
}
/* Different heights for masonry stagger effect */
.gallery-section .masonry-item:nth-child(1) img { aspect-ratio: 3/4 !important; }
.gallery-section .masonry-item:nth-child(2) img { aspect-ratio: 4/5 !important; }
.gallery-section .masonry-item:nth-child(3) img { aspect-ratio: 4/3 !important; }
.gallery-section .masonry-item:nth-child(4) img { aspect-ratio: 3/4 !important; }
.gallery-section .masonry-item:nth-child(5) img { aspect-ratio: 1/1 !important; }
.gallery-section .masonry-item:nth-child(6) img { aspect-ratio: 3/5 !important; }
@media(max-width: 768px) {
    .gallery-section .masonry-grid {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch !important;
        gap: 15px !important;
        padding: 0 20px 20px 20px !important;
        column-count: unset !important;
        position: relative !important;
    }
    .gallery-section {
        position: relative !important;
    }
    .gallery-section::after {
        content: '' !important;
        position: absolute !important;
        right: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        width: 60px !important;
        background: linear-gradient(to right, transparent, #fff) !important;
        pointer-events: none !important;
        z-index: 2 !important;
    }
    .gallery-section .masonry-item {
        flex: 0 0 75% !important;
        scroll-snap-align: start !important;
        break-inside: avoid !important;
        column-count: unset !important;
    }
    .gallery-section .masonry-item img {
        aspect-ratio: 4/5 !important;
    }
}
@media(max-width: 480px) {
    .gallery-section .masonry-item {
        flex: 0 0 85% !important;
    }
}

@media(max-width: 480px) {
    .woocommerce ul.products { grid-template-columns: 1fr !important; }
}

/* =============================================
   SINGLE PRODUCT - CALL FOR PRICE BUTTON
   ============================================= */
.intra-cfp-single-wrap {
    margin-top: 15px;
}
.intra-cfp-single-btn {
    display: inline-block;
    background: #5472d2;
    color: #fff !important;
    padding: 14px 30px;
    border-radius: 30px;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none !important;
    transition: background 0.3s ease;
    cursor: pointer;
}
.intra-cfp-single-btn:hover {
    background: #3e5ab8;
    color: #fff !important;
}

/* Price:  Call for Price styling */
.price-call {
    color: #5472d2;
    font-weight: 600;
    font-size: 1rem;
}

/* Show Color heading from WVS variations on single product */
.woocommerce div.product .variations td.label {
    display: table-cell !important;
}
.woocommerce div.product .variations td.label label {
    font-size: 22px !important;
    font-weight: 600 !important;
    color: #1a2b4c !important;
    text-transform: none !important;
}
.woocommerce div.product .variations td.value > label {
    display: none !important;
}
.woocommerce div.product .variations {
    margin-bottom: 10px !important;
}

/* Fix product_meta completely hidden (CSS backup) */
.woocommerce div.product .product_meta,
.woocommerce #content div.product .product_meta {
    display: none !important;
}

/* Fix woocommerce-variation-add-to-cart visibility for Call for Price */
.woocommerce-variation-add-to-cart {
    display: block !important;
}
.woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled {
    display: block !important;
}

/* Fix variation_add_to_cart row */
.variations_button {
    display: block !important;
}

/* =============================================
   FIX: SINGLE PRODUCT PAGE LAYOUT
   ============================================= */
/* White background on main content area to prevent footer bleed */
body.single-product .site-main,
body.single-product .site-main > .container {
    background: #fff !important;
    position: relative;
    z-index: 2;
}
/* Product card background */
body.single-product .woocommerce div.product {
    background: #fff !important;
}
body.single-product .woocommerce div.product .summary.entry-summary {
    background: #fff !important;
    position: relative;
    z-index: 2;
}
body.single-product .woocommerce div.product div.images {
    background: #fff !important;
    position: relative;
    z-index: 2;
}
/* Footer must stay below content, not overlap */
body.single-product .site-footer {
    position: relative;
    z-index: 1;
    clear: both;
}



/* Force Square Images on Single Product */
/* Desktop + general */
.woocommerce-product-gallery__image img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    width: 100%;
    border-radius: 0 !important;
}

/* Mobile: force ENTIRE gallery wrapper to be a clean square */
/* Overrides plugin CSS that hardcodes width/height to 467px */
@media (max-width: 767px) {
    /* Step 1: outer wrapper = full-width square */
    body.single-product .woocommerce-product-gallery.images.wpgs-wrapper {
        width: 100vw !important;
        height: 100vw !important;
        max-width: 100vw !important;
        max-height: 100vw !important;
        overflow: hidden !important;
        position: relative !important;
        float: none !important;
        display: block !important;
        margin: 0 0 0 -20px !important;
        padding: 0 !important;
        background: #f0f0f0;
    }
    /* Step 2: .wpgs-image fill wrapper — BEATS plugin 467px */
    body.single-product .woocommerce-product-gallery .wpgs-image {
        width: 100% !important;
        height: 100% !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
    }
    /* Step 3: .wpgs_image (the one plugin locks to 467x467) — OVERRIDE */
    body.single-product .woocommerce-product-gallery .wpgs_image,
    body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
        width: 100% !important;
        height: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-width: 467px !important;
        max-height: 100% !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        overflow: hidden !important;
    }
    /* Step 4: img itself — fill the container */
    body.single-product .woocommerce-product-gallery .wpgs_image img,
    body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
    body.single-product .woocommerce-product-gallery .wpgs-image img {
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        max-height: none !important;
        object-fit: cover !important;
        object-position: center !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        display: block !important;
        aspect-ratio: unset !important;
    }
    /* Hide thumbnail strip on mobile */
    body.single-product .woocommerce-product-gallery .wpgs-thumb {
        display: none !important;
    }
}


/* =============================================
   SWATCH SIZE OVERRIDES (fixes WVS var overrides)
   ============================================= */
.woocommerce div.product ul.variable-items-wrapper .variable-item {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
}
.woocommerce div.product ul.variable-items-wrapper .variable-item img.variable-item-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* =============================================
   MOBILE: Move variations below gallery
   Uses JS injection via a placeholder div
   ============================================= */
@media (max-width: 767px) {
    /* placeholder div that JS inserts after gallery */
    #mobile-variations-placeholder {
        width: 100%;
        box-sizing: border-box;
        background: #fff;
        padding: 0 0 4px 0;
        margin-top: 0 !important;
    }
    #mobile-variations-placeholder table.variations {
        width: 100% !important;
        margin: 0 !important;
        padding: 12px 16px 8px 16px !important;
        box-sizing: border-box !important;
        border: none !important;
        background: #fff !important;
    }
    #mobile-variations-placeholder table.variations tbody,
    #mobile-variations-placeholder table.variations tr {
        display: block !important;
        width: 100% !important;
    }
    #mobile-variations-placeholder table.variations td.label {
        display: block !important;
        padding: 0 0 8px 0 !important;
        border: none !important;
        background: none !important;
    }
    #mobile-variations-placeholder table.variations td.label label {
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #1a2b4c !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        display: block !important;
        margin: 0 !important;
    }
    #mobile-variations-placeholder table.variations td.value {
        display: block !important;
        padding: 0 !important;
        border: none !important;
        background: none !important;
    }
    #mobile-variations-placeholder ul.variable-items-wrapper {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    #mobile-variations-placeholder .variable-item {
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
        flex-shrink: 0 !important;
    }
    #mobile-variations-placeholder .variable-item img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }
    #mobile-variations-placeholder a.reset_variations {
        display: inline-block !important;
        margin-top: 10px !important;
        font-size: 13px !important;
        color: #5472d2 !important;
    }
    /* On mobile, hide the original variations table */
    .mobile-variations-moved {
        display: none !important;
    }
    /* Remove default WooCommerce table styling from placeholder */
    #mobile-variations-placeholder table {
        border-collapse: collapse !important;
        border: none !important;
    }
    #mobile-variations-placeholder td,
    #mobile-variations-placeholder th {
        border: none !important;
        background: none !important;
    }
}

/* =============================================
   MOBILE: Kill any gray/colored bg on placeholder
   ============================================= */
@media (max-width: 767px) {
    /* Remove gray from WooCommerce default table styles */
    #mobile-variations-placeholder,
    #mobile-variations-placeholder table,
    #mobile-variations-placeholder table tr,
    #mobile-variations-placeholder table td,
    #mobile-variations-placeholder table th {
        background: #fff !important;
        background-color: #fff !important;
        border: none !important;
        box-shadow: none !important;
    }
    /* Gallery should be flush with variations - no gap */
    .woocommerce-product-gallery.wpgs-wrapper {
        margin-bottom: 0 !important;
    }
    /* Tight spacing from gallery to variations */
    #mobile-variations-placeholder {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }
}

/* ==================================================
   PAGINATION OVERRIDE (MATCH OLD SITE)
   ================================================== */
.woocommerce-pagination ul.page-numbers {
    border: none !important;
    background: transparent !important;
    gap: 15px !important;
}
.woocommerce-pagination ul.page-numbers li {
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
}
.woocommerce-pagination ul.page-numbers .page-numbers {
    border: none !important;
    background: transparent !important;
}
/* Active Number */
.woocommerce-pagination ul.page-numbers .page-numbers.current {
    background: #5472d2 !important;
    color: #ffffff !important;
    min-width: 44px !important;
    height: 44px !important;
    border-radius: 8px !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    box-shadow: 0 4px 14px rgba(84, 114, 210, 0.25) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
/* Inactive Numbers */
.woocommerce-pagination ul.page-numbers .page-numbers:not(.current):not(.next):not(.prev) {
    color: #9e2a82 !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    background: transparent !important;
    border: none !important;
    min-width: 32px !important;
    height: 44px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
/* Prev / Next Buttons */
.woocommerce-pagination ul.page-numbers .page-numbers.next,
.woocommerce-pagination ul.page-numbers .page-numbers.prev {
    border: 1px solid #c9d0eb !important;
    border-radius: 12px !important;
    min-width: 54px !important;
    height: 54px !important;
    font-size: 20px !important;
    color: #9e2a82 !important;
    background: #ffffff !important;
    box-shadow: none !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: 0 10px !important;
    transition: background 0.2s, border-color 0.2s !important;
}
.woocommerce-pagination ul.page-numbers .page-numbers.next:hover,
.woocommerce-pagination ul.page-numbers .page-numbers.prev:hover {
    background: #f4f6fa !important;
    border-color: #5472d2 !important;
}
/* Mobile specific */
@media (max-width: 767px) {
    .woocommerce-pagination ul.page-numbers {
        gap: 8px !important;
    }
    .woocommerce-pagination ul.page-numbers .page-numbers.current {
        min-width: 38px !important;
        height: 38px !important;
        font-size: 16px !important;
    }
    .woocommerce-pagination ul.page-numbers .page-numbers:not(.current):not(.next):not(.prev) {
        font-size: 18px !important;
        min-width: 24px !important;
        height: 38px !important;
    }
    .woocommerce-pagination ul.page-numbers .page-numbers.next,
    .woocommerce-pagination ul.page-numbers .page-numbers.prev {
        min-width: 44px !important;
        height: 44px !important;
        margin: 0 4px !important;
    }
}

/* ==================================================
   PRODUCT VARIATIONS PLACEHOLDER REORDER
   ================================================== */
#mobile-variations-placeholder {
    background: transparent;
    box-sizing: border-box;
    padding: 10px 0 0 0; /* Reduced padding from 20px */
    display: flex;
    flex-direction: column;
}
#mobile-variations-placeholder .var-label {
    font-size: 16px;
    font-weight: 700;
    color: #1a2b4c;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
    width: 100%;
}
#mobile-variations-placeholder .var-swatches,
#mobile-variations-placeholder ul.variable-items-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
#mobile-variations-placeholder .var-reset {
    display: inline-block;
    margin-top: 15px;
    font-size: 14px;
    color: #5472d2;
    text-decoration: none;
    cursor: pointer;
}

/* Desktop: left align to match image */
@media (min-width: 768px) {
    #mobile-variations-placeholder {
        width: 48%; 
        float: left;
        clear: left;
        align-items: flex-start;
        margin-top: 5px; /* Reduced gap */
        padding-top: 0;
    }
    #mobile-variations-placeholder .var-label { text-align: left; }
    #mobile-variations-placeholder .var-swatches,
    #mobile-variations-placeholder ul.variable-items-wrapper { justify-content: flex-start; }
    #mobile-variations-placeholder .var-reset { text-align: left; }
    body.single-product .wpgs-thumb { display: none !important; }

    /* Force 8 items per row on desktop for variations */
    #mobile-variations-placeholder ul.variable-items-wrapper {
        display: grid !important;
        grid-template-columns: repeat(9, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 467px !important; /* Adjust if needed to fit perfectly under image */
    }
    #mobile-variations-placeholder li.variable-item {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1/1;
        min-width: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
    }

}

/* Mobile: center align and smaller swatches */
@media (max-width: 767px) {
    #mobile-variations-placeholder {
        width: 100%;
        margin: 0 auto;
        align-items: center;
    }
    #mobile-variations-placeholder .var-label { text-align: center; }
    #mobile-variations-placeholder .var-swatches,
    #mobile-variations-placeholder ul.variable-items-wrapper { justify-content: center; }
    #mobile-variations-placeholder .var-reset { text-align: center; }
    
    #mobile-variations-placeholder .variable-item,
    #mobile-variations-placeholder li.variable-item {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        min-height: 30px !important;
        flex-shrink: 0 !important;
    }
}

/* ==================================================
   NATIVE WOOCOMMERCE GALLERY STYLES (REPLACING TWIST PLUGIN)
   ================================================== */
/* Hide the default woo magnifying glass icon since we use custom lightbox */
.woocommerce-product-gallery__trigger { display: none !important; }

/* Force gallery visibility in case JS fails to remove opacity: 0 */
.woocommerce div.product div.images,
.woocommerce-product-gallery {
    opacity: 1 !important;
}

/* Desktop Gallery Size */
@media (min-width: 768px) {
    .woocommerce div.product div.images.woocommerce-product-gallery {
        width: 48%;
        float: left;
        margin-bottom: 5px !important; /* Override Woo 2em margin */
    }
    .woocommerce-product-gallery__image, 
    .woocommerce-product-gallery__image img, 
    .flex-viewport, 
    .woocommerce-product-gallery__wrapper {
        width: 467px !important;
        height: 467px !important;
        object-fit: cover !important;
        border-radius: 8px;
    }
}

/* Mobile Gallery Size */
@media (max-width: 767px) {
    .woocommerce div.product div.images.woocommerce-product-gallery {
        float: none !important;
        width: 100% !important;
        margin: 0 auto 5px auto !important;
        display: block !important;
        text-align: center !important;
    }
    .woocommerce-product-gallery__image, 
    .woocommerce-product-gallery__image a,
    .woocommerce-product-gallery__image img, 
    .flex-viewport, 
    .woocommerce-product-gallery__wrapper {
        width: 100% !important;
        max-width: 467px !important;
        height: auto !important;
        aspect-ratio: 1/1 !important;
        object-fit: cover !important;
        margin: 0 auto !important;
        border-radius: 8px !important;
        display: block !important;
    }
    .woocommerce-product-gallery .flex-control-thumbs {
        justify-content: center !important;
    }
}

/* Thumbs */
.woocommerce-product-gallery .flex-control-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 15px;
    padding: 0;
    list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li {
    width: 100px;
    height: 100px;
    margin: 0 !important; 
}
.woocommerce-product-gallery .flex-control-thumbs li img {
    width: 100px !important;
    height: 100px !important;
    object-fit: cover !important;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.2s;
    border-radius: 6px;
}
.woocommerce-product-gallery .flex-control-thumbs li img:hover,
.woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    opacity: 1;
}

/* Make sure image links in gallery act like buttons */
.woocommerce-product-gallery__image a {
    display: block;
    width: 100%;
    height: 100%;
    cursor: zoom-in;
}
/* Hide product price on single product pages (manager request) */
body.single-product .woocommerce-product-details__short-description {
    /* just anchor */
}

/* Safe hide for Call for Price on single products */
body.single-product .summary p.price:has(.cfp-price-label) {
    display: none !important;
}

/* Fix overlapping when no tabs exist (clearfix for product) */
.woocommerce div.product::after,
.woocommerce-page div.product::after {
    content: "";
    display: table;
    clear: both;
}
/* Hide native thumbnails */
body.single-product .flex-control-nav { display: none !important; }
