/* ═══════════════════════════════════════════════════════
   Jacobs Cake World — Premium Shop & Product Page Styles
   Built using theme visual tokens for unified brand style
   Uses:
   --jcw-primary: Deep Chocolate (#3A2418)
   --jcw-secondary: Gold Caramel (#D8A24A)
   --jcw-accent: Teracotta (#BB5E3C)
   --jcw-light-bg: Warm Cream (#F8F3ED)
   --jcw-text: Text Dark (#2D1A10)
   --jcw-text-light: Text Muted (#6B5B52)
   --jcw-border: Soft Beige (#EADFD2)
   --font-heading: 'Playfair Display', serif
   --font-body: 'Inter', sans-serif
 ═══════════════════════════════════════════════════════ */

/* ── Google Fonts (Moved here so product page doesn't need homepage.css) ── */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700;800&family=Inter:wght@400;500;600&display=swap');

/* ────────────────────────────────────────────────────────
   VARIATION SWATCHES — Migrated from homepage.css
   (Needed on single product page, was causing overrides via homepage.css)
   ──────────────────────────────────────────────────────── */
.woo-variation-swatches .variable-items-wrapper {
    gap: 12px !important;
    margin: 8px 0 16px !important;
}

.woo-variation-swatches .variable-item {
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 8px !important;
    background-color: #FFF !important;
    padding: 8px 14px !important;
    min-width: 42px !important;
    height: auto !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--jcw-primary, #3A2418) !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.01) !important;
}

.woo-variation-swatches .variable-item:hover {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    color: var(--jcw-secondary, #D8A24A) !important;
    transform: translateY(-1.5px) !important;
}

.woo-variation-swatches .variable-item.selected {
    border-color: var(--jcw-primary, #3A2418) !important;
    background-color: #FFF !important;
    color: var(--jcw-primary, #3A2418) !important;
    box-shadow: 0 5px 15px rgba(58, 36, 24, 0.08) !important;
    transform: translateY(-1.5px) scale(1.02) !important;
}

/* Color swatch circles */
.woo-variation-swatches .variable-item.color-variable-item {
    border-radius: 50% !important;
    padding: 2px !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
}

.woo-variation-swatches .variable-item.color-variable-item .variable-item-span-color {
    border-radius: 50% !important;
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
    box-shadow: inset 0 0 0 2px #fff !important;
}

.woo-variation-swatches .variable-item.color-variable-item.selected {
    border-color: var(--jcw-secondary, #D8A24A) !important;
}

/* ────────────────────────────────────────────────────────
   WISHLIST GLOBAL UTILITIES — Migrated from homepage.css
   (Bounce animation, header badge, wishlist page layout)
   ──────────────────────────────────────────────────────── */

/* Loop card floating heart button (shop/archive grids) */
.jcw-wishlist-btn-toggle {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(58, 36, 24, 0.06);
    color: var(--jcw-primary, #3A2418);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 4px 10px rgba(58, 36, 24, 0.03);
    padding: 0;
    outline: none;
}

.jcw-wishlist-btn-toggle:hover {
    background: #FFF;
    color: #8C2A2A;
    transform: scale(1.08);
    box-shadow: 0 6px 16px rgba(58, 36, 24, 0.12);
}

.jcw-wishlist-btn-toggle--active {
    background: #FFF !important;
    color: #8C2A2A !important;
    border-color: rgba(140, 42, 42, 0.1) !important;
    box-shadow: 0 4px 12px rgba(140, 42, 42, 0.15) !important;
}

.jcw-wishlist-btn-toggle--active svg {
    fill: #8C2A2A !important;
}

/* Bounce animation when toggling wishlist (used by JS) */
@keyframes jcwHeartBounce {
    0%   { transform: scale(1); }
    30%  { transform: scale(1.35); }
    60%  { transform: scale(0.9); }
    100% { transform: scale(1); }
}

.jcw-wishlist-bounce {
    animation: jcwHeartBounce 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Header badge indicator */
.jcw-wishlist-count {
    min-width: 14px;
    height: 14px;
    font-size: 9px;
    line-height: 14px;
    border-radius: 50%;
    background: var(--jcw-secondary, #D8A24A) !important;
    color: #FFF !important;
    border: 1px solid #FFF !important;
}

/* Wishlist shortcode catalog layout */
.jcw-wishlist-container {
    max-width: 1200px;
    margin: 40px auto 80px;
    padding: 0 20px;
}

.jcw-wishlist-item-card {
    position: relative;
    border: 1px solid rgba(58, 36, 24, 0.05) !important;
    box-shadow: 0 4px 15px rgba(58, 36, 24, 0.015) !important;
}

.jcw-wishlist-item-card:hover {
    box-shadow: 0 20px 40px rgba(58, 36, 24, 0.08) !important;
}



/* ────────────────────────────────────────────────────────
   1. GLOBAL & ARCHIVE STRUCTURES
   ──────────────────────────────────────────────────────── */

/* WooCommerce Page Spacing & Background */
.archive.woocommerce #content, 
.single-product.woocommerce #content {
    background-color: #FCFAF7; /* Luxury soft ivory background */
}

/* Remove Astra's default 60px top/bottom margins on #primary for single product pages.
   Astra injects this as an inline <style> block — targeting #primary directly with
   !important is the only reliable way to override it regardless of load order. */
.single-product #primary {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
}

/* Breadcrumbs Styling */
.woocommerce-breadcrumb {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--jcw-text-light, #6B5B52);
    margin-bottom: 32px !important;
    letter-spacing: 0.3px;
}

.woocommerce-breadcrumb a {
    color: var(--jcw-text, #2D1A10);
    text-decoration: none;
    transition: color 0.3s ease;
}

.woocommerce-breadcrumb a:hover {
    color: var(--jcw-secondary, #D8A24A);
}

/* Page Titles */
.woocommerce-products-header__title,
.woocommerce-archive-header__title {
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    color: var(--jcw-primary, #3A2418) !important;
    font-size: clamp(32px, 5vw, 46px) !important;
    text-align: center;
    margin-bottom: 24px !important;
    letter-spacing: -0.5px;
}

/* Result Count & Sorting Wrapper */
.ast-woocommerce-container .woocommerce-notices-wrapper + .ast-shop-control,
.woocommerce-ordering,
.woocommerce-result-count {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--jcw-text-light, #6B5B52);
}

/* Luxury Dropdown Select Menu */
.woocommerce-ordering select,
.variations select {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--jcw-text, #2D1A10);
    background-color: #ffffff;
    border: 1.5px solid var(--jcw-border, #EADFD2);
    border-radius: 8px;
    padding: 10px 36px 10px 16px;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D8A24A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 14px;
    outline: none;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.woocommerce-ordering select:focus,
.variations select:focus {
    border-color: var(--jcw-secondary, #D8A24A);
    box-shadow: 0 0 0 3px rgba(216, 162, 74, 0.15);
}

/* ────────────────────────────────────────────────────────
   2. PRODUCT LOOP CARD OVERHAUL
   ──────────────────────────────────────────────────────── */

/* Grid Columns override for premium spacing */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 32px !important;
    margin: 0 0 60px 0 !important;
    padding: 0 !important;
}

@media (max-width: 1200px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 24px !important;
    }
}

@media (max-width: 991px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
}

@media (max-width: 575px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
}

/* Clear Astra margin hacks on list items */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(91, 58, 41, 0.04) !important;
    box-shadow: 0 4px 20px rgba(91, 58, 41, 0.012);
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    box-sizing: border-box;
}

/* Card Hover Lift & Glow */
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(91, 58, 41, 0.08);
    border-color: rgba(199, 157, 96, 0.32) !important;
}

/* Thumbnail Wrap & Overflow Hidden */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce ul.products li.product .woocommerce-loop-product__link {
    position: relative;
    width: 100%;
    aspect-ratio: 1.15 / 1;
    overflow: hidden;
    background: #FAF6F0;
    margin: 0;
    display: block;
}

/* Image zoom effect inside card */
.woocommerce ul.products li.product img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.woocommerce ul.products li.product:hover img {
    transform: scale(1.06);
}

/* Content wrapper padding inside card */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
    padding: 16px 16px 0 16px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.woocommerce ul.products li.product .ast-loop-product__link {
    padding: 0 !important;
    display: block;
}

/* Astra Category Styling */
.woocommerce ul.products li.product .ast-woo-product-category {
    font-family: var(--font-body);
    font-size: 11px;
    color: var(--jcw-text-light, #6B5B52);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
    display: block;
}

/* Title Design */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .ast-loop-product__link h2 {
    font-family: var(--font-heading) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--jcw-primary, #3A2418) !important;
    line-height: 1.3 !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    transition: color 0.3s ease !important;
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product:hover .ast-loop-product__link h2 {
    color: var(--jcw-secondary, #D8A24A) !important;
}

/* Rating Stars */
.woocommerce ul.products li.product .star-rating {
    margin: 0 0 10px 0 !important;
    font-size: 11px;
    color: var(--jcw-secondary, #D8A24A);
}

/* Price Styling */
.woocommerce ul.products li.product .price {
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--jcw-secondary, #D8A24A) !important;
    margin: 0 0 16px 0 !important;
    display: block;
}

.woocommerce ul.products li.product .price del {
    color: var(--jcw-text-light, #6B5B52);
    font-size: 13px;
    font-weight: 400;
    margin-right: 6px;
    opacity: 0.6;
}

.woocommerce ul.products li.product .price ins {
    background: transparent;
    text-decoration: none;
    font-weight: 700;
}

/* Action Button overlay / alignment */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
    margin: auto 16px 16px 16px !important;
    padding: 10px 10px !important;
    width: calc(100% - 32px) !important;
    box-sizing: border-box !important;
    border-radius: 30px !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    text-align: center !important;
    display: block !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    background: var(--jcw-secondary, #D8A24A) !important;
    color: #ffffff !important;
    border: none !important;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(216, 162, 74, 0.15);
}

.woocommerce ul.products li.product .button:hover {
    background: var(--jcw-primary, #3A2418) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(58, 36, 24, 0.2);
}

/* Badge: On Sale */
.woocommerce ul.products li.product span.onsale,
.woocommerce span.onsale {
    position: absolute;
    top: 16px !important;
    left: 16px !important;
    margin: 0 !important;
    right: auto !important;
    background: var(--jcw-accent, #BB5E3C) !important;
    color: #ffffff !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 4px 12px !important;
    border-radius: 30px !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1.6 !important;
    z-index: 10;
    box-shadow: 0 4px 10px rgba(187, 94, 60, 0.25);
}

/* ────────────────────────────────────────────────────────
   3. PREMIUM SINGLE PRODUCT PAGE OVERLAY
   ──────────────────────────────────────────────────────── */

/* Structure Layout Split via DOM wrapper container */
.single-product div.product {
    display: block !important;
    padding: 0 0 80px 0 !important;
}

.jcw-product-main-wrapper {
    display: flex !important;
    gap: 48px !important;
    width: 100% !important;
    position: relative !important;
}

.jcw-product-main-wrapper .images {
    width: calc(50% - 24px) !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
}

.jcw-product-main-wrapper .summary {
    width: calc(50% - 24px) !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
}

/* Ensure tabs and related products have spacing */
.woocommerce-tabs {
    margin: 60px 0 0 0 !important;
    width: 100% !important;
    clear: both !important;
}

.related.products {
    margin: 60px 0 0 0 !important;
    width: 100% !important;
    clear: both !important;
}

@media (max-width: 991px) {
    .single-product div.product {
        padding: 20px 0 60px 0 !important;
    }
    .jcw-product-main-wrapper {
        flex-direction: column !important;
        gap: 32px !important;
    }
    .jcw-product-main-wrapper .images,
    .jcw-product-main-wrapper .summary {
        width: 100% !important;
    }
}

/* Product Gallery Zoom Corners */
.woocommerce-product-gallery {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(91, 58, 41, 0.05);
}

.woocommerce-product-gallery__wrapper {
    margin: 0 !important;
}

.woocommerce-product-gallery__image img {
    border-radius: 16px;
    width: 100%;
}

/* Thumbnail rows */
.flex-control-thumbs {
    display: flex !important;
    gap: 12px !important;
    margin: 16px 0 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.flex-control-thumbs li {
    width: 80px !important;
    float: none !important;
    margin: 0 !important;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    border: 1.5px solid transparent;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.flex-control-thumbs li img {
    opacity: 0.5;
    transition: opacity 0.3s ease;
}

.flex-control-thumbs li.flex-active,
.flex-control-thumbs li:hover {
    border-color: var(--jcw-secondary, #D8A24A);
}

.flex-control-thumbs li.flex-active img,
.flex-control-thumbs li:hover img {
    opacity: 1;
}

/* ────────────────────────────────────────────────────────
   4. SINGLE PRODUCT SUMMARY INFO
   ──────────────────────────────────────────────────────── */

/* Title */
.single-product .product_title {
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    color: var(--jcw-primary, #3A2418) !important;
    font-size: clamp(30px, 4vw, 42px) !important;
    line-height: 1.2 !important;
    margin: 0 0 16px 0 !important;
    letter-spacing: -0.5px;
}

/* Price */
.single-product .summary .price {
    font-family: var(--font-body) !important;
    font-size: clamp(24px, 3.2vw, 30px) !important;
    font-weight: 700 !important;
    color: var(--jcw-secondary, #D8A24A) !important;
    margin-bottom: 24px !important;
    display: inline-block;
}

/* Hide 8-inch discount badge on product page */
.eight-inch-discount-badge {
    display: none !important;
}

.single-product .summary .price del {
    color: var(--jcw-text-light, #6B5B52);
    font-size: clamp(18px, 2.5vw, 22px);
    font-weight: 400;
    margin-right: 8px;
    opacity: 0.5;
}

/* Short Description */
.woocommerce-product-details__short-description {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--jcw-text-light, #6B5B52);
    margin-bottom: 32px !important;
}

/* Meta list */
.product_meta {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--jcw-text-light, #6B5B52);
    border-top: 1px dashed var(--jcw-border, #EADFD2);
    padding-top: 20px;
    margin-top: 32px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.product_meta span span,
.product_meta a {
    color: var(--jcw-text, #2D1A10);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.product_meta a:hover {
    color: var(--jcw-secondary, #D8A24A);
}

/* CSS failsafe: hide the default WC/Astra .product_meta on single product pages.
   Astra renders it directly via single_product_content_structure(), bypassing hooks.
   Our custom .jcw-single-product-meta-row is the sole source of SKU/Category display. */
.single-product .product_meta {
    display: none !important;
}
/* Also hide Astra's single-product-category span if it slips through */
.single-product .single-product-category {
    display: none !important;
}

/* ────────────────────────────────────────────────────────
   5. CUSTOM CAKE FORM INPUTS & LABELS
   ──────────────────────────────────────────────────────── */

.personalized-message-wrapper,
.add-image-option {
    background: #FFF;
    border: 1px solid var(--jcw-border, #EADFD2);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 16px !important;
    box-shadow: 0 4px 12px rgba(91, 58, 41, 0.01);
}

/* Labels */
.personalized-message-wrapper label,
.add-image-option label {
    display: block !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    color: var(--jcw-primary, #3A2418) !important;
    margin: 0 0 12px 0 !important;
}

/* Personalised Message Text Input */
.personalized-message-wrapper input[type="text"] {
    width: 100% !important;
    height: 48px !important;
    background-color: #ffffff !important;
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 8px !important;
    padding: 0 16px !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: var(--jcw-text, #2D1A10) !important;
    outline: none !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-sizing: border-box !important;
}

.personalized-message-wrapper input[type="text"]:focus {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    box-shadow: 0 0 0 3px rgba(216, 162, 74, 0.15) !important;
}

/* File Upload Button Overhaul */
.custom-file-upload {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 24px !important;
    background: transparent !important;
    color: var(--jcw-secondary, #D8A24A) !important;
    border: 1.5px solid var(--jcw-secondary, #D8A24A) !important;
    border-radius: 8px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    margin: 8px 0 12px 0 !important;
    text-align: center !important;
}

.custom-file-upload input[type="file"] {
    display: none !important; /* Hide ugly system button */
}

.custom-file-upload:hover {
    background: var(--jcw-secondary, #D8A24A) !important;
    color: #ffffff !important;
    box-shadow: 0 6px 14px rgba(216, 162, 74, 0.18);
}

/* Image preview box styling */
#image_preview img {
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 8px !important;
    padding: 6px !important;
    background: #ffffff !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05) !important;
    max-width: 120px !important;
    max-height: 120px !important;
    display: block;
}

/* Caution Notice Box for File Upload */
.file-upload-note {
    background: rgba(187, 94, 60, 0.06);
    border-left: 3px solid var(--jcw-accent, #BB5E3C);
    border-radius: 4px;
    padding: 12px 16px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    color: var(--jcw-accent, #BB5E3C) !important;
    margin: 12px 0 0 0 !important;
}

.file-upload-note strong {
    color: var(--jcw-accent, #BB5E3C) !important;
}

/* Designer Cake Info Box (Notice List) */
.designer-cake-info {
    background: #FAF6F0 !important;
    border: 1px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin: 28px 0 !important;
    box-shadow: 0 4px 12px rgba(91, 58, 41, 0.008);
}

.designer-cake-info p strong {
    font-family: var(--font-body);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--jcw-primary, #3A2418);
    display: block;
    margin-bottom: 12px;
}

.designer-cake-info ul {
    margin: 0 !important;
    padding: 0 0 0 16px !important;
    list-style-type: none !important;
}

.designer-cake-info li {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
    color: var(--jcw-text-light, #6B5B52);
    margin-bottom: 8px !important;
    position: relative;
    padding-left: 6px;
}

.designer-cake-info li:last-child {
    margin-bottom: 0 !important;
}

.designer-cake-info li::before {
    content: "•";
    color: var(--jcw-secondary, #D8A24A);
    font-size: 20px;
    position: absolute;
    left: -14px;
    top: -2px;
}

.designer-cake-info a {
    color: var(--jcw-secondary, #D8A24A);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.designer-cake-info a:hover {
    color: var(--jcw-primary, #3A2418);
}

/* ────────────────────────────────────────────────────────
   6.QUANTITY & CTA ACTIONS
   ──────────────────────────────────────────────────────── */

/* Add to cart block container */
form.cart {
    margin: 32px 0 24px 0 !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
}

/* Quantity input box */
.woocommerce .quantity,
.woocommerce-page .quantity {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #ffffff;
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 30px !important; /* Perfect Pill */
    padding: 0 6px !important;
    height: 52px !important;
    box-sizing: border-box !important;
    width: 130px !important;
    float: none !important;
    margin: 0 !important;
    transition: all 0.3s ease;
    overflow: hidden;
}

.woocommerce .quantity:focus-within {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    box-shadow: 0 0 0 3px rgba(216, 162, 74, 0.15);
}

.woocommerce .quantity button.minus,
.woocommerce .quantity button.plus,
.woocommerce-page .quantity button.minus,
.woocommerce-page .quantity button.plus {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    border: none !important;
    background: transparent !important;
    color: var(--jcw-primary, #3A2418) !important;
    font-family: inherit !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
    outline: none !important;
    line-height: 1 !important;
}

.woocommerce .quantity button.minus:hover,
.woocommerce .quantity button.plus:hover,
.woocommerce-page .quantity button.minus:hover,
.woocommerce-page .quantity button.plus:hover {
    background-color: var(--jcw-light-bg, #F8F3ED) !important;
    color: var(--jcw-secondary, #D8A24A) !important;
}

.woocommerce .quantity input.qty,
.woocommerce-page .quantity input.qty {
    width: 32px !important;
    height: 100% !important;
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--jcw-primary, #3A2418) !important;
    text-align: center !important;
    outline: none !important;
    appearance: none;
    -moz-appearance: textfield;
}

.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button,
.woocommerce-page .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-page .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* CTA: ADD TO CART */
.single_add_to_cart_button {
    height: 52px !important;
    padding: 0 36px !important;
    border-radius: 30px !important; /* Elegant pill CTA */
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    background: var(--jcw-secondary, #D8A24A) !important;
    color: #ffffff !important;
    border: none !important;
    cursor: pointer !important;
    box-shadow: 0 8px 24px rgba(216, 162, 74, 0.25) !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.single_add_to_cart_button:hover {
    background: var(--jcw-primary, #3A2418) !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 30px rgba(58, 36, 24, 0.25) !important;
}

/* CTA: BUY NOW */
#jacobs-buy-now {
    height: 52px !important;
    padding: 0 36px !important;
    border-radius: 30px !important; /* Matching elegant pill */
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    background: var(--jcw-primary, #3A2418) !important; /* Deep dark luxury contrast */
    color: #ffffff !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 0 8px 24px rgba(58, 36, 24, 0.15) !important;
}

#jacobs-buy-now:hover {
    background: var(--jcw-secondary, #D8A24A) !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 30px rgba(216, 162, 74, 0.25) !important;
}

/* Responsive CTA wrapper adjustments */
@media (max-width: 480px) {
    form.cart {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
    }
    .woocommerce .quantity,
    .woocommerce-page .quantity {
        grid-column: span 2 !important;
        width: 100% !important;
        max-width: 160px !important;
        margin: 0 auto !important;
    }
    .single_add_to_cart_button {
        grid-column: span 2 !important;
        width: 100% !important;
        margin: 0 !important;
    }
    #jacobs-buy-now {
        grid-column: 1 !important;
        width: 100% !important;
        margin: 0 !important;
    }
    form.cart .jcw-wishlist-btn-single {
        grid-column: 2 !important;
        width: 48px !important;
        height: 48px !important;
        border-radius: 50% !important;
        margin: 0 !important;
        justify-self: center !important;
        align-self: center !important;
    }
}

/* ────────────────────────────────────────────────────────
   7. TABS, INFORMATION & REVIEWS OVERHAUL
   ──────────────────────────────────────────────────────── */

/* Tabs Section Card Wrap */
.woocommerce-tabs {
    width: 100% !important;
    margin: 60px 0 0 0 !important;
    border: 1px solid var(--jcw-border, #EADFD2);
    background: #ffffff;
    border-radius: 16px;
    padding: 40px !important;
    box-shadow: 0 6px 24px rgba(91, 58, 41, 0.015);
}

@media (max-width: 767px) {
    .woocommerce-tabs {
        padding: 24px !important;
    }
}

/* Navigation tabs list */
.woocommerce-tabs ul.tabs {
    display: flex !important;
    gap: 32px !important;
    border-bottom: 2px solid var(--jcw-border, #EADFD2) !important;
    padding: 0 0 12px 0 !important;
    margin: 0 0 32px 0 !important;
    list-style: none !important;
    background: transparent !important;
}

.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after {
    display: none !important; /* Clear old floats */
}

/* Tab item links */
.woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    position: relative;
    box-shadow: none !important;
    outline: none !important;
}

.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after,
.woocommerce-tabs ul.tabs li.active::before,
.woocommerce-tabs ul.tabs li.active::after {
    display: none !important;
    content: none !important;
    background: transparent !important;
    border: none !important;
}

.woocommerce-tabs ul.tabs li a:focus,
.woocommerce-tabs ul.tabs li a:focus-visible,
.woocommerce-tabs ul.tabs li a:active {
    outline: none !important;
    box-shadow: none !important;
}

.woocommerce-tabs ul.tabs li a {
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--jcw-text-light, #6B5B52) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px;
    padding: 8px 0 !important;
    display: block !important;
    transition: color 0.3s ease !important;
    text-decoration: none !important;
}

/* Tab underline highlight on hover/active */
.woocommerce-tabs ul.tabs li a::after {
    content: '';
    position: absolute;
    bottom: -14px;
    left: 0;
    width: 100%;
    height: 3px;
    background: var(--jcw-secondary, #D8A24A);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.woocommerce-tabs ul.tabs li.active a {
    color: var(--jcw-secondary, #D8A24A) !important;
}

.woocommerce-tabs ul.tabs li.active a::after {
    transform: scaleX(1);
    transform-origin: left;
}

.woocommerce-tabs ul.tabs li:hover a {
    color: var(--jcw-primary, #3A2418) !important;
}

/* Panel content */
.woocommerce-tabs .woocommerce-Tabs-panel {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--jcw-text, #2D1A10);
}

.woocommerce-tabs .woocommerce-Tabs-panel h2 {
    font-family: var(--font-heading) !important;
    font-size: 24px !important;
    font-weight: 600 !important;
    color: var(--jcw-primary, #3A2418) !important;
    margin: 0 0 16px 0 !important;
}

/* Reviews List overlay */
#reviews #comments {
    margin-bottom: 32px;
}

#reviews .commentlist {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

#reviews .commentlist li.comment {
    background: #FCFAF7;
    border: 1px solid var(--jcw-border, #EADFD2);
    border-radius: 12px;
    padding: 24px !important;
    margin: 0 !important;
}

#reviews .commentlist li.comment img.avatar {
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    border: 1px solid var(--jcw-border, #EADFD2);
    background: #ffffff;
    float: left;
    margin: 0 16px 0 0 !important;
    padding: 0 !important;
}

#reviews .commentlist li.comment .comment-text {
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}

/* Reviewer name and dates */
#reviews .commentlist li.comment .meta {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--jcw-primary, #3A2418);
    margin-bottom: 8px;
}

#reviews .commentlist li.comment .meta time {
    font-weight: 400;
    color: var(--jcw-text-light, #6B5B52);
    font-size: 12px;
    margin-left: 8px;
}

/* Rating Stars in comment */
#reviews .commentlist li.comment .star-rating {
    float: right;
    font-size: 11px;
    color: var(--jcw-secondary, #D8A24A);
}

/* Text inside review */
#reviews .commentlist li.comment .description {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
    color: var(--jcw-text, #2D1A10);
    margin: 12px 0 0 0 !important;
}

/* Add Review Form Override */
#review_form #respond {
    background: #FCFAF7;
    border: 1px solid var(--jcw-border, #EADFD2);
    border-radius: 12px;
    padding: 32px !important;
}

#review_form #respond .comment-reply-title {
    font-family: var(--font-heading) !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    color: var(--jcw-primary, #3A2418) !important;
    margin-bottom: 24px !important;
    display: block;
}

#review_form #respond .comment-form-rating label {
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: var(--jcw-primary, #3A2418) !important;
}

#respond .stars a {
    color: var(--jcw-secondary, #D8A24A) !important;
}

/* Textarea & Inputs in review form */
#respond textarea,
#respond input[type="text"],
#respond input[type="email"] {
    width: 100% !important;
    background-color: #ffffff !important;
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: var(--jcw-text, #2D1A10) !important;
    outline: none !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-sizing: border-box !important;
}

#respond textarea:focus,
#respond input[type="text"]:focus,
#respond input[type="email"]:focus {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    box-shadow: 0 0 0 3px rgba(216, 162, 74, 0.15) !important;
}

/* Review Submit Button */
#respond input[type="submit"] {
    height: 48px !important;
    padding: 0 32px !important;
    border-radius: 30px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    background: var(--jcw-secondary, #D8A24A) !important;
    color: #ffffff !important;
    border: none !important;
    cursor: pointer !important;
    box-shadow: 0 6px 16px rgba(216, 162, 74, 0.18) !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

#respond input[type="submit"]:hover {
    background: var(--jcw-primary, #3A2418) !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(58, 36, 24, 0.22) !important;
}

/* ────────────────────────────────────────────────────────
   8. PREMIUM HIGH-FIDELITY OVERHAULS
   ──────────────────────────────────────────────────────── */

/* Ensure WooCommerce Containers match the Homepage width across the site */
.single-product .site-content .ast-container,
.archive.woocommerce .site-content .ast-container {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (min-width: 1400px) {
    .single-product .site-content .ast-container,
    .archive.woocommerce .site-content .ast-container {
        max-width: 1320px !important;
        padding: 0 32px !important;
    }
}

@media (min-width: 1600px) {
    .single-product .site-content .ast-container,
    .archive.woocommerce .site-content .ast-container {
        max-width: 1500px !important;
        padding: 0 40px !important;
    }
}

@media (min-width: 1920px) {
    .single-product .site-content .ast-container,
    .archive.woocommerce .site-content .ast-container {
        max-width: 1800px !important;
        padding: 0 48px !important;
    }
}

/* Hide the offer tag on single product page */
.single-product span.onsale {
    display: none !important;
}

/* Sticky Leftside Gallery Column on Desktop */
@media (min-width: 992px) {
    .jcw-product-main-wrapper .images {
        position: sticky !important;
        top: 120px !important;
        align-self: start !important;
        height: fit-content !important;
    }
}

/* Floating Badge Overlay inside Product Gallery */
.woocommerce-product-gallery {
    position: relative !important;
}

.jcw-gallery-overlay-badge {
    position: absolute !important;
    bottom: 20px !important;
    left: 20px !important;
    z-index: 10 !important;
    background: rgba(45, 26, 16, 0.82) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 50px !important;
    padding: 10px 22px 10px 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
    box-shadow: 0 8px 32px rgba(45, 26, 16, 0.3) !important;
    color: #ffffff !important;
    pointer-events: none !important;
    animation: jcwBadgeFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes jcwBadgeFadeUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.jcw-badge-steam-icon {
    color: var(--jcw-secondary, #D8A24A) !important;
    flex-shrink: 0 !important;
}

.jcw-badge-text-wrap {
    display: flex !important;
    flex-direction: column !important;
    text-align: left !important;
    line-height: 1.25 !important;
}

.jcw-badge-label {
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 1.2px !important;
    color: var(--jcw-secondary, #D8A24A) !important;
    text-transform: uppercase !important;
}

.jcw-badge-sub {
    font-family: var(--font-body) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.75) !important;
}

/* Self-Adjusting Flex-Wrap Variations Layout (Utilizes large screen space beautifully while wrapping safely on smaller screens) */
table.variations tbody {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 24px 28px !important;
    width: 100% !important;
}

table.variations tr {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 1 200px !important; /* Premium self-growing columns with 200px ideal width */
    max-width: 100% !important;
    box-sizing: border-box !important;
}

table.variations td.label {
    width: 100% !important;
    padding: 0 0 8px 0 !important;
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: var(--jcw-primary, #3A2418) !important;
    letter-spacing: 0.5px !important;
}

table.variations td.value {
    width: 100% !important;
    padding: 0 !important;
}

/* Premium variations Select Dropdown styling matching theme */
table.variations td select {
    width: 100% !important;
    height: 46px !important;
    line-height: 43px !important;
    box-sizing: border-box !important;
    font-size: 13px !important; /* Equal to swatch text size */
    font-weight: 600 !important; /* Equal to swatch font weight */
    font-family: var(--font-body) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: var(--jcw-primary, #3A2418) !important;
    border-radius: 8px !important;
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    padding: 0 40px 0 16px !important;
    outline: none !important;
    background-color: #ffffff !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D8A24A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    background-size: 14px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 0 2px 8px rgba(91, 58, 41, 0.01) !important;
    cursor: pointer !important;
}

table.variations td select:hover {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    box-shadow: 0 4px 16px rgba(216, 162, 74, 0.08) !important;
    background-color: #FCFAF7 !important;
}

table.variations td select:focus {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    box-shadow: 0 0 0 3px rgba(216, 162, 74, 0.12) !important;
    background-color: #ffffff !important;
}

/* Premium Custom Swatch Button Overrides matching JCW luxury brand identity */
.woocommerce td.value .variable-items-wrapper .variable-item,
.woocommerce td.value .variable-item,
.woocommerce td.value .tawcvs-swatch,
.woocommerce td.value .rtwpvs-swatch,
.woocommerce td.value .wvs-style-button,
.variable-item.button-variable-item,
.tawcvs-swatch {
    background: #ffffff !important;
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 8px !important;
    padding: 0 20px !important;
    color: var(--jcw-primary, #3A2418) !important;
    font-family: var(--font-body) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    min-width: auto !important;
    height: 46px !important;
    line-height: 43px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
    cursor: pointer !important;
    box-shadow: 0 2px 8px rgba(91, 58, 41, 0.01) !important;
    margin: 4px 8px 4px 0 !important;
    box-sizing: border-box !important;
}

/* Inner elements alignment reset inside custom swatches for absolute centering */
.woocommerce td.value .variable-items-wrapper .variable-item *,
.woocommerce td.value .variable-item *,
.woocommerce td.value .tawcvs-swatch *,
.variable-item.button-variable-item * {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce td.value .variable-items-wrapper .variable-item:hover,
.woocommerce td.value .variable-item:hover,
.woocommerce td.value .tawcvs-swatch:hover,
.variable-item.button-variable-item:hover {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    color: var(--jcw-secondary, #D8A24A) !important;
    background: #FCFAF7 !important;
}

.woocommerce td.value .variable-items-wrapper .variable-item.selected,
.woocommerce td.value .variable-item.selected,
.woocommerce td.value .variable-item.active,
.woocommerce td.value .tawcvs-swatch.selected,
.variable-item.button-variable-item.selected {
    background-color: var(--jcw-primary, #3A2418) !important;
    background: var(--jcw-primary, #3A2418) !important;
    color: #ffffff !important;
    border-color: var(--jcw-primary, #3A2418) !important;
    box-shadow: 0 4px 12px rgba(58, 36, 24, 0.15) !important;
}

/* Premium variations Reset/Clear button styling */
.woocommerce a.reset_variations,
.woocommerce-page a.reset_variations,
a.reset_variations {
    font-family: var(--font-body) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: var(--jcw-accent, #BB5E3C) !important; /* Elegant Terracotta Accent */
    border: 1.5px solid var(--jcw-accent, #BB5E3C) !important;
    background: transparent !important;
    border-radius: 30px !important;
    padding: 6px 14px !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 12px !important;
    margin-bottom: 4px !important;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
    cursor: pointer !important;
    line-height: 1.1 !important;
    box-shadow: none !important;
    width: auto !important;
    float: none !important;
}

.woocommerce a.reset_variations:hover,
.woocommerce-page a.reset_variations:hover,
a.reset_variations:hover {
    background-color: var(--jcw-accent, #BB5E3C) !important;
    color: #ffffff !important;
    border-color: var(--jcw-accent, #BB5E3C) !important;
    box-shadow: 0 4px 12px rgba(187, 94, 60, 0.2) !important;
    transform: translateY(-1px) !important;
}

@media (max-width: 767px) {
    table.variations tbody {
        gap: 16px !important;
    }
    table.variations tr {
        flex: 1 1 100% !important;
        width: 100% !important;
    }
}

/* Personalisation label row + character counter */
.personalized-message-label-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 10px !important;
    width: 100% !important;
}

.personalized-message-label-row label {
    margin: 0 !important;
}

.personalized-message-counter {
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--jcw-text-light, #6B5B52) !important;
    letter-spacing: 0.5px !important;
}

/* Grid-Based CTA Buttons Layout */
.woocommerce-variation-add-to-cart,
form.cart:not(.variations_form) {
    display: grid !important;
    grid-template-columns: 140px 1fr !important;
    gap: 16px !important;
    width: 100% !important;
    align-items: center !important;
    margin: 24px 0 !important;
}

/* Ensure premium custom blocks span the full width of the grid container and remove extra margins to let the grid gap (16px) handle vertical layout spacing */
.woocommerce-variation-add-to-cart .personalized-message-wrapper,
.woocommerce-variation-add-to-cart .add-image-option,
.woocommerce-variation-add-to-cart .jcw-pincode-checker-premium,
form.cart:not(.variations_form) .personalized-message-wrapper,
form.cart:not(.variations_form) .add-image-option,
form.cart:not(.variations_form) .jcw-pincode-checker-premium {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    margin: 0 !important;
}

.woocommerce-variation-add-to-cart .quantity,
form.cart:not(.variations_form) .quantity {
    grid-column: 1 !important;
    margin: 0 !important;
    width: 100% !important;
}

.woocommerce-variation-add-to-cart .single_add_to_cart_button,
form.cart:not(.variations_form) .single_add_to_cart_button {
    grid-column: 2 !important;
    margin: 0 !important;
    width: 100% !important;
}

.woocommerce-variation-add-to-cart #jacobs-buy-now,
form.cart:not(.variations_form) #jacobs-buy-now {
    grid-column: 1 / span 2 !important;
    width: 100% !important;
    margin: 0 !important;
}

@media (max-width: 480px) {
    .woocommerce-variation-add-to-cart,
    form.cart:not(.variations_form) {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    .woocommerce-variation-add-to-cart .quantity,
    form.cart:not(.variations_form) .quantity,
    .woocommerce-variation-add-to-cart .single_add_to_cart_button,
    form.cart:not(.variations_form) .single_add_to_cart_button,
    .woocommerce-variation-add-to-cart #jacobs-buy-now,
    form.cart:not(.variations_form) #jacobs-buy-now {
        grid-column: 1 !important;
        width: 100% !important;
    }
}

/* Pure CSS Shopping Cart Icon inside ADD TO CART */
.single_add_to_cart_button {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}

.single_add_to_cart_button::before {
    content: "" !important;
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    background-color: currentColor !important;
    -webkit-mask: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3ccircle cx='9' cy='21' r='1'%3e%3c/circle%3e%3ccircle cx='20' cy='21' r='1'%3e%3c/circle%3e%3cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3e%3c/path%3e%3c/svg%3e") no-repeat center !important;
    mask: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3ccircle cx='9' cy='21' r='1'%3e%3c/circle%3e%3ccircle cx='20' cy='21' r='1'%3e%3c/circle%3e%3cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3e%3c/path%3e%3c/svg%3e") no-repeat center !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    flex-shrink: 0 !important;
}

/* Premium Pincode Checker Overrides */
.jcw-pincode-checker-premium {
    background: var(--jcw-light-bg, #F8F3ED) !important;
    border: 1px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin: 16px 0 !important;
    box-shadow: 0 4px 12px rgba(91, 58, 41, 0.015) !important;
}

.jcw-pincode-title {
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    color: var(--jcw-primary, #3A2418) !important;
    margin: 0 0 12px 0 !important;
}

.jcw-pincode-form {
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
}

.jcw-pincode-form input[type="text"] {
    flex: 1 !important;
    height: 46px !important;
    min-height: 45px !important;
    background-color: #ffffff !important;
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 8px !important;
    padding: 0 16px !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: var(--jcw-text, #2D1A10) !important;
    outline: none !important;
    box-sizing: border-box !important;
    transition: all 0.3s ease !important;
}

.jcw-pincode-form input[type="text"]:focus {
    border-color: var(--jcw-secondary, #D8A24A) !important;
    box-shadow: 0 0 0 3px rgba(216, 162, 74, 0.15) !important;
}

.jcw-pincode-form button {
    height: 46px !important;
    padding: 0 24px !important;
    border-radius: 8px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    background: var(--jcw-primary, #3A2418) !important;
    color: #ffffff !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 12px rgba(58, 36, 24, 0.1) !important;
    margin: 0 !important;
}

.jcw-pincode-form button:hover {
    background: var(--jcw-secondary, #D8A24A) !important;
    box-shadow: 0 6px 16px rgba(216, 162, 74, 0.2) !important;
    transform: translateY(-1px);
}

.jcw-pincode-result {
    margin-top: 12px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

/* Horizontal Product Metadata Footer Row */
.jcw-single-product-meta-row {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    padding: 16px 0 !important;
    border-top: 1.5px dashed var(--jcw-border, #EADFD2) !important;
    border-bottom: 1.5px dashed var(--jcw-border, #EADFD2) !important;
    margin-top: 28px !important;
    margin-bottom: 28px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    width: 100% !important;
}

.jcw-single-product-metadata {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: var(--jcw-text-light, #6B5B52) !important;
}

.jcw-single-product-metadata .sku_wrapper,
.jcw-single-product-metadata .posted_in {
    font-weight: 500 !important;
}

.jcw-single-product-metadata .sku,
.jcw-single-product-metadata .cats a {
    color: var(--jcw-text, #2D1A10) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: color 0.3s ease !important;
}

.jcw-single-product-metadata .cats a:hover {
    color: var(--jcw-secondary, #D8A24A) !important;
}

.jcw-single-product-metadata .meta-divider {
    color: var(--jcw-border, #EADFD2) !important;
}

/* Inline Wishlist Like Button in Cart Actions */
form.cart .jcw-wishlist-btn-single {
    width: 52px !important;
    height: 52px !important;
    border-radius: 50% !important; /* Circular premium shape */
    background-color: #FCFAF7 !important; /* Elegant soft ivory */
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    color: var(--jcw-text, #2D1A10) !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
}

form.cart .jcw-wishlist-btn-single:hover {
    background-color: var(--jcw-light-bg, #F8F3ED) !important;
    border-color: var(--jcw-secondary, #D8A24A) !important;
}

form.cart .jcw-wishlist-btn-single svg {
    width: 20px !important;
    height: 20px !important;
    stroke: var(--jcw-primary, #3A2418) !important;
    fill: none !important;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}

form.cart .jcw-wishlist-btn-single:hover svg {
    transform: scale(1.15) !important;
    stroke: var(--jcw-secondary, #D8A24A) !important;
}

form.cart .jcw-wishlist-btn-toggle--active.jcw-wishlist-btn-single {
    background-color: rgba(187, 94, 60, 0.08) !important; /* Subtle terracotta accent bg */
    border-color: var(--jcw-accent, #BB5E3C) !important;
}

form.cart .jcw-wishlist-btn-toggle--active.jcw-wishlist-btn-single svg {
    fill: var(--jcw-accent, #BB5E3C) !important;
    stroke: var(--jcw-accent, #BB5E3C) !important;
    transform: scale(1.1) !important;
}

@media (max-width: 575px) {
    .jcw-single-product-metadata {
        flex-wrap: wrap !important;
        gap: 8px 12px !important;
    }
    .jcw-single-product-metadata .meta-divider {
        display: none !important;
    }
}

/* Attributes Table with Custom SVG Vector Icons */
table.shop_attributes {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border: 1px solid var(--jcw-border, #EADFD2) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    width: 100% !important;
    background: #ffffff !important;
    margin-bottom: 0 !important;
}

table.shop_attributes tr {
    border-bottom: 1px solid var(--jcw-border, #EADFD2) !important;
    transition: background-color 0.25s ease !important;
}

table.shop_attributes tr:last-child {
    border-bottom: none !important;
}

table.shop_attributes tr:hover {
    background-color: var(--jcw-light-bg, #F8F3ED) !important;
}

table.shop_attributes th {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: var(--jcw-primary, #3A2418) !important;
    padding: 16px 20px !important;
    width: 35% !important;
    border: none !important;
    background: transparent !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
}

table.shop_attributes td {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: var(--jcw-text, #2D1A10) !important;
    padding: 16px 20px !important;
    border: none !important;
    background: transparent !important;
    font-style: normal !important;
    font-weight: 500 !important;
}

table.shop_attributes td p,
table.shop_attributes td a {
    color: var(--jcw-text, #2D1A10) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
}

table.shop_attributes td a:hover {
    color: var(--jcw-secondary, #D8A24A) !important;
    text-decoration: underline !important;
}

table.shop_attributes th::before {
    content: "" !important;
    display: inline-block !important;
    width: 20px !important;
    height: 20px !important;
    background-color: var(--jcw-secondary, #D8A24A) !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    flex-shrink: 0 !important;
}

/* Ruler icon for Size attribute */
table.shop_attributes th[class*="size"]::before,
table.shop_attributes tr:nth-child(1) th::before {
    -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M5 12h14M5 12a2 2 0 1 0 0 4h14a2 2 0 1 0 0-4M5 12V7a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v5M8 5v4M12 5v3M16 5v4'%3e%3c/path%3e%3c/svg%3e") !important;
    mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M5 12h14M5 12a2 2 0 1 0 0 4h14a2 2 0 1 0 0-4M5 12V7a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v5M8 5v4M12 5v3M16 5v4'%3e%3c/path%3e%3c/svg%3e") !important;
}

/* Interlocking square/circle icon for Shape attribute */
table.shop_attributes th[class*="shape"]::before,
table.shop_attributes tr:nth-child(2) th::before {
    -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3crect x='3' y='3' width='18' height='18' rx='2'%3e%3c/rect%3e%3ccircle cx='12' cy='12' r='5'%3e%3c/circle%3e%3c/svg%3e") !important;
    mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3crect x='3' y='3' width='18' height='18' rx='2'%3e%3c/rect%3e%3ccircle cx='12' cy='12' r='5'%3e%3c/circle%3e%3c/svg%3e") !important;
}

/* Egg profile icon for Type attribute */
table.shop_attributes th[class*="type"]::before,
table.shop_attributes tr:nth-child(3) th::before {
    -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M12 2C8.5 2 6 7.5 6 12.5S8.5 22 12 22s6-4 6-9.5S15.5 2 12 2z'%3e%3c/path%3e%3c/svg%3e") !important;
    mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M12 2C8.5 2 6 7.5 6 12.5S8.5 22 12 22s6-4 6-9.5S15.5 2 12 2z'%3e%3c/path%3e%3c/svg%3e") !important;
}

/* Bottom Features Banner Strip */
.jcw-features--single-product {
    background-color: var(--jcw-light-bg, #F8F3ED) !important;
    border-top: 1px solid var(--jcw-border, #EADFD2) !important;
    border-bottom: 1px solid var(--jcw-border, #EADFD2) !important;
    padding: 60px 0 !important;
    margin: 80px 0 0 0 !important;
    width: 100vw !important;
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
}

.jcw-features--single-product .jcw-container {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.jcw-features--single-product .jcw-features__grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 32px !important;
}

.jcw-features--single-product .jcw-features__item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
}

.jcw-features--single-product .jcw-features__icon {
    color: var(--jcw-secondary, #D8A24A) !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.jcw-features--single-product .jcw-features__content {
    display: flex !important;
    flex-direction: column !important;
    text-align: left !important;
}

.jcw-features--single-product .jcw-features__title {
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--jcw-primary, #3A2418) !important;
    margin-bottom: 4px !important;
}

.jcw-features--single-product .jcw-features__desc {
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    color: var(--jcw-text-light, #6B5B52) !important;
    line-height: 1.4 !important;
}

@media (max-width: 991px) {
    .jcw-features--single-product .jcw-features__grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 24px !important;
    }
}

@media (max-width: 767px) {
    .jcw-features--single-product {
        display: none !important;
    }
}

@media (max-width: 575px) {
    .jcw-features--single-product {
        padding: 40px 0 !important;
        margin: 60px 0 0 0 !important;
    }
    .jcw-features--single-product .jcw-features__grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
}

/* ────────────────────────────────────────────────────────
   8. PAGINATION STYLES
   ──────────────────────────────────────────────────────── */

.woocommerce-pagination {
    margin-top: 40px !important;
    margin-bottom: 60px !important;
    text-align: center;
}

.woocommerce-pagination ul.page-numbers {
    display: inline-flex !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    border: none !important;
}

.woocommerce-pagination ul.page-numbers li {
    display: inline-block !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-pagination ul.page-numbers li .page-numbers {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px !important;
    height: 44px !important;
    padding: 0 12px !important;
    border-radius: 8px !important;
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--jcw-text, #2D1A10) !important;
    background: #FFF !important;
    border: 1.5px solid var(--jcw-border, #EADFD2) !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    box-sizing: border-box;
}

.woocommerce-pagination ul.page-numbers li .page-numbers:hover,
.woocommerce-pagination ul.page-numbers li .page-numbers:focus {
    background: var(--jcw-secondary, #D8A24A) !important;
    border-color: var(--jcw-secondary, #D8A24A) !important;
    color: #FFF !important;
}

.woocommerce-pagination ul.page-numbers li .page-numbers.current {
    background: var(--jcw-primary, #3A2418) !important;
    border-color: var(--jcw-primary, #3A2418) !important;
    color: #FFF !important;
}

/* ────────────────────────────────────────────────────────
   9. SINGLE PRODUCT — MOBILE FIX (≤ 575px)
   Comprehensive fixes for small-phone breakpoint
   ──────────────────────────────────────────────────────── */
@media (max-width: 575px) {

    /* ── Layout & Wrapper ── */
    .single-product div.product {
        padding: 0 0 40px 0 !important;
    }

    .jcw-product-main-wrapper {
        flex-direction: column !important;
        gap: 20px !important;
    }

    .jcw-product-main-wrapper .images,
    .jcw-product-main-wrapper .summary {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* ── Gallery Thumbnails ── */
    .flex-control-thumbs {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    .flex-control-thumbs li {
        width: 60px !important;
    }

    /* ── Title & Price ── */
    .single-product .product_title {
        font-size: clamp(22px, 7vw, 30px) !important;
        margin: 0 0 12px 0 !important;
    }

    .single-product .summary .price {
        font-size: clamp(20px, 6vw, 26px) !important;
        margin-bottom: 16px !important;
    }

    /* ── Short Description ── */
    .woocommerce-product-details__short-description {
        font-size: 14px !important;
        margin-bottom: 20px !important;
    }

    /* ── Variation Table ── */
    table.variations {
        width: 100% !important;
    }

    table.variations td,
    table.variations th {
        font-size: 13px !important;
        padding: 8px 0 !important;
    }

    .woo-variation-swatches .variable-items-wrapper {
        gap: 8px !important;
    }

    /* ── form.cart — full single-column stack ── */
    form.cart {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        margin: 20px 0 16px 0 !important;
    }

    .woocommerce .quantity,
    .woocommerce-page .quantity {
        width: 100% !important;
        max-width: 160px !important;
        margin: 0 auto !important;
        justify-content: space-between !important;
    }

    .single_add_to_cart_button {
        width: 100% !important;
        margin: 0 !important;
    }

    #jacobs-buy-now {
        width: 100% !important;
        margin: 0 !important;
    }

    form.cart .jcw-wishlist-btn-single {
        width: 48px !important;
        margin: 0 !important;
        height: 48px !important;
    }

    /* Override the 480px grid if it conflicts */
    form.cart,
    .woocommerce-variation-add-to-cart,
    form.cart:not(.variations_form) {
        grid-template-columns: 1fr !important;
    }

    /* ── Pincode Checker ── */
    .jcw-pincode-form {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }

    #jcw-pincode-input {
        width: 100% !important;
    }

    #jcw-pincode-btn {
        width: 100% !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    /* ── Personalised Message / Image Upload Cards ── */
    .personalized-message-wrapper,
    .add-image-option {
        padding: 16px !important;
    }

    /* ── Designer Cake Info Box ── */
    .designer-cake-info {
        padding: 16px !important;
        margin: 20px 0 !important;
    }

    /* ── CTA Variations (grid override) ── */
    .woocommerce-variation-add-to-cart {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
    }

    .woocommerce-variation-add-to-cart .quantity,
    .woocommerce-variation-add-to-cart .single_add_to_cart_button,
    .woocommerce-variation-add-to-cart #jacobs-buy-now {
        grid-column: unset !important;
        width: 100% !important;
    }

    /* ── Tabs ── */
    .woocommerce-tabs {
        padding: 20px !important;
        margin: 40px 0 0 0 !important;
    }

    .woocommerce-tabs ul.tabs {
        flex-wrap: wrap !important;
        gap: 16px !important;
    }

    /* ── Related Products ── */
    .related.products {
        margin: 40px 0 0 0 !important;
    }

    .related.products .products {
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
    }

    /* ── Meta Row ── */
    .jcw-single-product-meta-row {
        flex-wrap: wrap !important;
        gap: 8px !important;
        padding: 12px 0 !important;
    }

    /* ── SKU / Category chips ── */
    .jcw-single-product-metadata {
        flex-wrap: wrap !important;
        gap: 6px 10px !important;
    }
}

@media (max-width: 767px) {
    /* Related Products Title */
    .related.products h2 {
        font-size: 20px !important;
        margin-bottom: 16px !important;
    }

    /* Product Loop Cards on Mobile/Tablet */
    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product {
        border-radius: 12px !important;
    }

    .woocommerce ul.products li.product .astra-shop-summary-wrap {
        padding: 12px 12px 0 12px !important;
    }

    .woocommerce ul.products li.product .ast-woo-product-category {
        font-size: 10px !important;
        margin-bottom: 4px !important;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product .ast-loop-product__link h2 {
        font-size: 15px !important;
        margin: 0 0 6px 0 !important;
        line-height: 1.25 !important;
    }

    .woocommerce ul.products li.product .price {
        font-size: 13px !important;
        margin: 0 0 12px 0 !important;
    }

    .woocommerce ul.products li.product .button,
    .woocommerce ul.products li.product .added_to_cart {
        margin: auto 10px 10px 10px !important;
        padding: 8px 6px !important;
        width: calc(100% - 20px) !important;
        font-size: 10px !important;
        border-radius: 20px !important;
        letter-spacing: 0.5px !important;
    }

    /* Wishlist Loop Button on Mobile/Tablet */
    .jcw-wishlist-btn-toggle {
        top: 10px !important;
        right: 10px !important;
        width: 30px !important;
        height: 30px !important;
    }
    
    .jcw-wishlist-btn-toggle svg {
        width: 13px !important;
        height: 13px !important;
    }

    /* On Sale Badge on Mobile/Tablet */
    .woocommerce ul.products li.product span.onsale {
        top: 10px !important;
        left: 10px !important;
        font-size: 10px !important;
        padding: 4px 8px !important;
        min-height: auto !important;
        min-width: auto !important;
        line-height: 1 !important;
    }
}

/* Premium Postcode Checker Alert Styling */
.jcw-alert-premium {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    padding: 16px 20px !important;
    border-radius: 12px !important;
    margin-top: 16px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    border: 1px solid !important;
    animation: jcwFadeSlideIn 0.4s ease-out !important;
}

@keyframes jcwFadeSlideIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.jcw-alert-icon {
    flex-shrink: 0 !important;
    width: 20px !important;
    height: 20px !important;
    margin-top: 2px !important;
}

.jcw-alert-icon svg {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
}

.jcw-alert-content {
    flex-grow: 1 !important;
    text-align: left !important;
}

.jcw-alert-title {
    margin: 0 0 4px 0 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.2px !important;
    font-family: var(--font-header, sans-serif) !important;
    text-transform: none !important;
}

.jcw-alert-desc {
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    color: inherit !important;
    opacity: 0.9 !important;
    font-family: var(--font-body, sans-serif) !important;
}

/* Success Theme: Elegant Emerald / Jade */
.jcw-alert-success {
    background: #E8F8F5 !important;
    border-color: #A3E4D7 !important;
    color: #117864 !important;
}
.jcw-alert-success .jcw-alert-icon {
    color: #117864 !important;
}
.jcw-alert-success .jcw-alert-title {
    color: #0E6251 !important;
}

/* Warning Theme: Warm Terracotta / Amber Fallback */
.jcw-alert-warning {
    background: #FDF2E9 !important;
    border-color: #F5CBA7 !important;
    color: #A04000 !important;
}
.jcw-alert-warning .jcw-alert-icon {
    color: #A04000 !important;
}
.jcw-alert-warning .jcw-alert-title {
    color: #7E5109 !important;
}

/* Info Theme: Soft Muted Gold / Sand */
.jcw-alert-info {
    background: #FEF9E7 !important;
    border-color: #F9E79F !important;
    color: #7D6608 !important;
}
.jcw-alert-info .jcw-alert-icon {
    color: #7D6608 !important;
}
.jcw-alert-info .jcw-alert-title {
    color: #7D6608 !important;
}

