/* ===================================================================
   MIROCART WOOCOMMERCE STYLES
   Extending the Gasp system to commerce.
   =================================================================== */

/* -------------------------------------------------------------------
   1. RESET & BASE OVERRIDES
   ------------------------------------------------------------------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
    padding: 0;
    margin: 0;
    list-style: none;
}

/* Utility pages: ensure global system reaches cart/checkout/account/wishlist */
:where(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .woocommerce-wishlist) {
    background-color: var(--utility-panel);
    color: var(--utility-text);
}

:where(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .woocommerce-wishlist) .woocommerce {
    font-family: var(--font-family-body);
}

/* Remove default Woo styling from buttons to apply our own */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .add-to-wishlist-after_add_to_cart a {
    background-color: transparent;
    color: inherit;
    padding: 0;
    font-weight: normal;
    background-image: none;
    box-shadow: none;
    border: none;
    text-shadow: none;
    border-radius: 0;
}

/* -------------------------------------------------------------------
   2. GLOBAL TYPOGRAPHY & COLORS
   ------------------------------------------------------------------- */
.woocommerce div.product .product_title,
.woocommerce .woocommerce-loop-product__title,
.woocommerce .wc-block-cart__empty-cart__title {
    font-family: var(--font-bricolage);
    color: var(--text-primary);
    font-weight: 700;
}

/* Fix Empty Cart Emoji/Icon */
.woocommerce .wc-block-cart__empty-cart__title::before,
.woocommerce .cart-empty::before {
    content: none;
    display: none;
}

.woocommerce .wc-block-cart__empty-cart__title {
    font-size: 2rem;
    margin-bottom: var(--space-lg);
}

/* Wishlist Button Styling */
.woocommerce .add-to-wishlist-after_add_to_cart,
.woocommerce .yith-wcwl-add-to-wishlist,
.woocommerce .yith-wcwl-add-button,
.woocommerce .product .yith-wcwl-add-to-wishlist {
    margin-top: var(--space-sm);
    text-align: center;
    display: block;
    clear: both;
}

.woocommerce .add-to-wishlist-after_add_to_cart a,
.woocommerce .yith-wcwl-add-button a,
.woocommerce .yith-wcwl-wishlistexistsbrowse a,
.woocommerce .yith-wcwl-wishlistaddedbrowse a,
.woocommerce .yith-wcwl-add-to-wishlist a {
    font-family: var(--font-family-body);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-secondary);
    border: 1px solid var(--accent-soft-gilt);
    padding: 10px 20px;
    display: inline-grid;
    place-items: center;
    transition: var(--transition-smooth);
    border-radius: 0;
    background: transparent;
    text-decoration: none;
    line-height: 1;
}

.woocommerce .add-to-wishlist-after_add_to_cart a:hover,
.woocommerce .yith-wcwl-add-button a:hover,
.woocommerce .yith-wcwl-add-to-wishlist a:hover {
    color: var(--link-body-hover);
    border-color: var(--border-interactive);
    background-color: var(--surface-inset);
}

/* Loop Add to Cart Tick Position */
body.woocommerce ul.products li.product {
    position: relative;
}

body.woocommerce .added_to_cart {
    display: inline-block;
    position: absolute;
    bottom: calc(var(--space-md) + 12px);
    right: var(--space-md);
    z-index: 10;
    font-family: var(--font-family-body);
    font-size: 0.7rem;
    color: var(--accent-sage);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--surface-base);
    padding: 2px 5px;
}

/* Price Harmonization (simple + variable + sale + blocks) */
body.woocommerce .price,
body.woocommerce p.price,
body.woocommerce span.price,
body.woocommerce div.product p.price,
body.woocommerce div.product span.price,
body.woocommerce .woocommerce-variation-price .price,
body.woocommerce .woocommerce-variation .price,
body.woocommerce .wc-block-components-product-price,
body.woocommerce .wc-block-components-product-price__value,
body.woocommerce .wc-block-grid__product-price {
    color: var(--text-primary);
    font-family: var(--font-bricolage);
    font-weight: 700;
    font-size: var(--font-h5);
    letter-spacing: -0.01em;
}

body.woocommerce .price ins,
body.woocommerce p.price ins,
body.woocommerce .wc-block-components-product-price ins,
body.woocommerce .wc-block-grid__product-price ins {
    text-decoration: none;
    color: var(--accent-terracotta);
    font-weight: 700;
}

body.woocommerce .price del,
body.woocommerce p.price del,
body.woocommerce .wc-block-components-product-price del,
body.woocommerce .wc-block-grid__product-price del {
    color: var(--text-muted);
    font-weight: 400;
    opacity: 0.7;
}

body.woocommerce .woocommerce-Price-amount,
body.woocommerce .woocommerce-Price-amount * {
    font-family: inherit;
    color: inherit;
}

body.woocommerce .price .from,
body.woocommerce .wc-block-components-product-price .from {
    font-family: var(--font-family-body);
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-secondary);
    margin-right: 0.35rem;
}

body.woocommerce .price .woocommerce-Price-amount,
body.woocommerce .price .amount,
body.woocommerce p.price .woocommerce-Price-amount,
body.woocommerce p.price .amount,
body.woocommerce .wc-block-components-product-price .amount,
body.woocommerce .wc-block-grid__product-price .amount {
    color: inherit;
}

body.woocommerce p,
body.woocommerce li,
body.woocommerce div.entry-summary {
    font-family: var(--font-family-body);
    color: var(--text-primary);
}

/* -------------------------------------------------------------------
   3. BUTTONS (Mapping to Global Styles)
   ------------------------------------------------------------------- */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .single_add_to_cart_button {
    display: inline-grid;
    place-items: center;
    font-family: var(--font-bricolage);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    padding: 0 var(--space-xl);
    font-size: 0.8rem;
    background-color: var(--accent-gold);
    color: var(--text-primary);
    border: none;
    border-radius: 0;
    transition: var(--transition-smooth);
    height: 52px;
    cursor: pointer;
    text-decoration: none;
    line-height: 1;
}

.woocommerce .single_add_to_cart_button {
    min-width: 300px;
    width: auto;
    font-size: 1rem;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .single_add_to_cart_button:hover {
    background-color: var(--accent-gold-hover);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lift);
}

.single_variation_wrap .single_add_to_cart_button,
.single_variation_wrap button.single_add_to_cart_button {
    background-color: var(--accent-gold);
    color: var(--text-primary);
}

.single_variation_wrap .single_add_to_cart_button:hover,
.single_variation_wrap button.single_add_to_cart_button:hover {
    background-color: var(--accent-gold-hover);
}

body.woocommerce-checkout #place_order,
body.woocommerce-checkout button#place_order.alt {
    background-color: var(--accent-gold);
    color: var(--text-primary);
    border: none;
    border-radius: var(--radius-sm);
    letter-spacing: 0.25em;
    text-transform: uppercase;
    padding: 0.9rem 1.5rem;
    margin: var(--space-md) 0;
    box-shadow: var(--shadow-soft);
    transition: transform var(--transition-micro), box-shadow var(--transition-micro);
}

body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout button#place_order.alt:hover,
body.woocommerce-checkout #place_order:focus-visible {
    background-color: var(--accent-gold-hover);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lift);
}

body.woocommerce-checkout #place_order:focus-visible,
body.woocommerce-checkout button#place_order.alt:focus-visible {
    outline: 2px solid var(--accent-gold);
    outline-offset: 3px;
}

/* Secondary / Ghost Buttons (View Cart, Coupon) */
body.woocommerce a.button.ghost,
body.woocommerce button.button.ghost,
body.woocommerce .cart .button {
    background-color: transparent;
    border: 1px solid var(--accent-soft-gilt);
    color: var(--text-primary);
}

body.woocommerce a.button.ghost:hover,
body.woocommerce button.button.ghost:hover,
body.woocommerce .cart .button:hover {
    border-color: var(--accent-gold);
    color: var(--link-hover);
}

/* Disabled State */
body.woocommerce button.button:disabled,
body.woocommerce button.button:disabled[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    background-color: var(--surface-warm);
    color: var(--text-secondary);
}

/* -------------------------------------------------------------------
   4. FORMS & INPUTS
   ------------------------------------------------------------------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
    width: 100%;
    font-family: var(--font-family-body);
    font-size: var(--font-body);
    color: var(--text-primary);
    background-color: var(--surface-base);
    border: 1px solid var(--border-default);
    border-radius: 0;
    padding: var(--space-md) var(--space-lg);
    transition: var(--transition-micro);
    height: auto;
    min-height: 44px;
    box-shadow: none;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce .select2-container--default.select2-container--open .select2-selection--single {
    outline: none;
    border-color: var(--accent-gold);
    box-shadow: 0 0 0 2px var(--gold-10);
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--text-primary);
    padding-left: 0;
    line-height: normal;
}

/* Checkboxes */
.woocommerce form .form-row .input-checkbox {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
    display: inline-block;
    vertical-align: middle;
    position: relative;
    cursor: pointer;
    margin-right: var(--space-xs);
}

.woocommerce form .form-row .input-checkbox:checked {
    background-color: var(--accent-gold);
    border-color: var(--accent-gold);
}

.woocommerce form .form-row .input-checkbox:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
    background-color: var(--text-primary);
}

/* -------------------------------------------------------------------
   5. NOTICES & ALERTS
   ------------------------------------------------------------------- */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-store-notice {
    padding: var(--space-lg);
    margin-bottom: var(--space-lg);
    border-top: 3px solid;
    background-color: var(--surface-base);
    font-family: var(--font-family-body);
    font-weight: 500;
    display: grid;
    grid-template-columns: auto 1fr auto;
    column-gap: var(--space-3x);
    row-gap: var(--space-2x);
    align-items: center;
    position: relative;
    box-shadow: var(--shadow-soft);
}

.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before {
    content: "\e010";
    position: static;
    transform: none;
    font-size: 1.5rem;
    line-height: 1;
    align-self: center;
}

/* Success */
.woocommerce .woocommerce-message {
    border-top-color: var(--accent-sage);
    border-left: 2px solid var(--accent-sage);
    background-color: var(--sage-10);
}

.woocommerce .woocommerce-message::before {
    color: var(--accent-sage);
}

.woocommerce .woocommerce-message a.button {
    margin-left: 0;
    grid-column: 3;
    justify-self: end;
}

/* Error */
.woocommerce .woocommerce-error {
    border-top-color: var(--status-error-deep);
    border-left: 2px solid var(--status-error-deep);
    background-color: var(--status-error-surface);
    list-style: none;
    color: var(--status-error-text);
}

.woocommerce .woocommerce-error li {
    margin: 0;
}

/* Info */
.woocommerce .woocommerce-info {
    border-top-color: var(--accent-gold);
    border-left: 2px solid var(--accent-soft-gilt);
    background-color: var(--surface-utility);
}

.woocommerce .woocommerce-info::before {
    color: var(--accent-gold);
}

.woocommerce .woocommerce-message a,
.woocommerce .woocommerce-info a,
.woocommerce .woocommerce-error a {
    color: var(--link-body);
    font-family: var(--font-bricolage);
    font-weight: 700;
    letter-spacing: 0.02em;
}

.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-info a.button,
.woocommerce .woocommerce-error a.button {
    background: transparent;
    border: 1px solid var(--accent-soft-gilt);
    color: var(--text-primary);
    height: auto;
    padding: 0.45rem 0.85rem;
    font-family: var(--font-bricolage);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    box-shadow: none;
    transform: none;
    grid-column: 3;
    justify-self: end;
}

.woocommerce .woocommerce-message a.button:hover,
.woocommerce .woocommerce-info a.button:hover,
.woocommerce .woocommerce-error a.button:hover {
    border-color: var(--border-interactive);
    background: var(--surface-inset);
}

/* Processing overlays + loader states */
.woocommerce .blockUI.blockOverlay {
    background: var(--gold-10) !important;
    backdrop-filter: blur(1.5px);
}

.woocommerce .blockUI.blockOverlay::before {
    content: '';
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 2px solid var(--ink-12);
    border-top-color: var(--border-interactive);
    border-right-color: var(--accent-soft-gilt);
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -17px;
    margin-left: -17px;
    animation: gasp-woo-spin 0.75s linear infinite;
}


body.woocommerce a.button.loading,
body.woocommerce button.button.loading,
body.woocommerce input.button.loading {
    position: relative;
    pointer-events: none;
    opacity: 0.82;
}

body.woocommerce button.single_add_to_cart_button.is-loading,
body.woocommerce button.button.is-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.82;
}

body.woocommerce a.button.loading::after,
body.woocommerce button.button.loading::after,
body.woocommerce input.button.loading::after {
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--ink-12);
    border-top-color: var(--border-interactive);
    position: absolute;
    right: var(--space-sm);
    top: 50%;
    margin-top: -7px;
    animation: gasp-woo-spin 0.75s linear infinite;
}

body.woocommerce button.single_add_to_cart_button.is-loading::after,
body.woocommerce button.button.is-loading::after {
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--ink-12);
    border-top-color: var(--border-interactive);
    position: absolute;
    right: var(--space-sm);
    top: 50%;
    margin-top: -7px;
    animation: gasp-woo-spin 0.75s linear infinite;
}

/* Woo Blocks spinners (brand-aligned) */
body.woocommerce .wc-block-components-spinner,
body.woocommerce .components-spinner {
    color: var(--accent-gold);
}

body.woocommerce .wc-block-components-spinner::before,
body.woocommerce .components-spinner::before {
    border-color: var(--ink-12);
    border-top-color: var(--accent-gold);
    border-right-color: var(--accent-soft-gilt);
}

body.woocommerce .wc-block-components-button.is-loading .wc-block-components-button__text {
    opacity: 0.65;
}

body.woocommerce .wc-block-components-button.is-loading .wc-block-components-spinner,
body.woocommerce .wc-block-components-button.is-loading .components-spinner {
    color: var(--accent-gold);
}

@keyframes gasp-woo-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Store Notice */
body.woocommerce .woocommerce-store-notice {
    background-color: var(--surface-inverse-soft);
    color: var(--text-inverse);
    border: none;
    text-align: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: var(--z-toast);
}

/* -------------------------------------------------------------------
   6. BADGES
   ------------------------------------------------------------------- */
/* Badges Overlay Position */
body.woocommerce span.onsale,
body.woocommerce .out-of-stock-badge {
    min-height: auto;
    min-width: auto;
    line-height: 1;
    padding: var(--space-xs) 0.75rem;
    border-radius: 0;
    font-family: var(--font-family-body);
    font-weight: 700;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    position: absolute;
    top: var(--space-sm);
    left: var(--space-sm);
    right: auto;
    z-index: 9;
    margin: 0;
}

/* The Gasp (Sale) */
body.woocommerce span.onsale.badge-gasp,
body.woocommerce span.onsale,
body.woocommerce .wc-block-grid__product-onsale {
    background-color: var(--accent-terracotta);
    color: var(--text-inverse);
    min-height: auto;
    min-width: auto;
    line-height: 1;
    padding: var(--space-xs) 0.75rem;
    border-radius: 0;
    font-family: var(--font-family-body);
    font-weight: 700;
    font-size: 0;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

body.woocommerce span.onsale::before,
body.woocommerce .wc-block-grid__product-onsale::before {
    content: "Gasp.";
    font-size: 0.7rem;
}

/* Priority rule: "Gone." outranks "Gasp." (simple + variable + blocks) */
body.woocommerce li.product:has(.out-of-stock-badge) span.onsale {
    display: none !important;
}

body.woocommerce .wc-block-grid__product:has(.wc-block-grid__product-out-of-stock) .wc-block-grid__product-onsale {
    display: none !important;
}

/* Fallback for browsers without :has() (handles common ordering) */
body.woocommerce .wc-block-grid__product-out-of-stock + .wc-block-grid__product-onsale,
body.woocommerce .wc-block-grid__product-out-of-stock ~ .wc-block-grid__product-onsale {
    display: none !important;
}

/* The Veto (Out of Stock) */
body.woocommerce span.onsale.badge-veto,
body.woocommerce .out-of-stock-badge.badge-veto,
body.woocommerce .wc-block-grid__product-out-of-stock {
    background-color: var(--surface-inverse);
    color: var(--text-inverse);
    border: 1px solid var(--text-muted);
    min-height: auto;
    min-width: auto;
    line-height: 1;
    padding: var(--space-xs) 0.75rem;
    border-radius: 0;
    font-family: var(--font-family-body);
    font-weight: 700;
    font-size: 0;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

body.woocommerce span.onsale.badge-veto::before,
body.woocommerce .out-of-stock-badge.badge-veto::before,
body.woocommerce .wc-block-grid__product-out-of-stock::before {
    content: "Gone.";
    font-size: 0.7rem;
}

/* -------------------------------------------------------------------
   7. PRODUCT CARDS HARMONY (Archives, Upsells, Cross-sells, Blocks)
   ------------------------------------------------------------------- */
body.woocommerce.archive ul.products,
body.woocommerce.search ul.products,
body.woocommerce.tax-product_cat ul.products,
body.woocommerce.tax-product_tag ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: var(--space-lg) !important;
}

/* Neutralize GeneratePress/Woo column resets that cause the n+1 "drift" */
body.woocommerce.archive ul.products li.product,
body.woocommerce.search ul.products li.product,
body.woocommerce.tax-product_cat ul.products li.product,
body.woocommerce.tax-product_tag ul.products li.product,
body.single-product .upsells.products ul.products li.product,
body.single-product .related.products ul.products li.product,
body.woocommerce-cart .cross-sells ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    clear: none !important;
}

body.woocommerce.archive ul.products::before,
body.woocommerce.archive ul.products::after,
body.woocommerce.search ul.products::before,
body.woocommerce.search ul.products::after,
body.woocommerce.tax-product_cat ul.products::before,
body.woocommerce.tax-product_cat ul.products::after,
body.woocommerce.tax-product_tag ul.products::before,
body.woocommerce.tax-product_tag ul.products::after,
body.single-product .upsells.products ul.products::before,
body.single-product .upsells.products ul.products::after,
body.single-product .related.products ul.products::before,
body.single-product .related.products ul.products::after,
body.woocommerce-cart .cross-sells ul.products::before,
body.woocommerce-cart .cross-sells ul.products::after {
    display: none !important;
    content: none !important;
}

body.woocommerce.archive ul.products li.product.first,
body.woocommerce.archive ul.products li.product.last,
body.woocommerce.search ul.products li.product.first,
body.woocommerce.search ul.products li.product.last,
body.woocommerce.tax-product_cat ul.products li.product.first,
body.woocommerce.tax-product_cat ul.products li.product.last,
body.woocommerce.tax-product_tag ul.products li.product.first,
body.woocommerce.tax-product_tag ul.products li.product.last,
body.single-product .upsells.products ul.products li.product.first,
body.single-product .upsells.products ul.products li.product.last,
body.single-product .related.products ul.products li.product.first,
body.single-product .related.products ul.products li.product.last,
body.woocommerce-cart .cross-sells ul.products li.product.first,
body.woocommerce-cart .cross-sells ul.products li.product.last {
    margin-right: 0 !important;
    margin-left: 0 !important;
    clear: none !important;
}

body.woocommerce.archive ul.products li.product,
body.woocommerce.search ul.products li.product,
body.woocommerce.tax-product_cat ul.products li.product,
body.woocommerce.tax-product_tag ul.products li.product,
body.single-product .upsells.products ul.products li.product,
body.single-product .related.products ul.products li.product,
body.woocommerce-cart .cross-sells ul.products li.product {
    background: var(--surface-white);
    border: 1px solid var(--border-subtle);
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    box-shadow: var(--shadow-soft);
    transition: transform var(--motion-base) var(--ease-soft),
        box-shadow var(--motion-base),
        border-color var(--motion-fast);
}

body.woocommerce.archive ul.products li.product:hover,
body.woocommerce.search ul.products li.product:hover,
body.woocommerce.tax-product_cat ul.products li.product:hover,
body.woocommerce.tax-product_tag ul.products li.product:hover,
body.single-product .upsells.products ul.products li.product:hover,
body.single-product .related.products ul.products li.product:hover,
body.woocommerce-cart .cross-sells ul.products li.product:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-soft);
    border-color: var(--accent-gold);
}

body.woocommerce.archive .woocommerce-loop-product__link,
body.woocommerce.archive .woocommerce-LoopProduct-link,
body.woocommerce.search .woocommerce-loop-product__link,
body.woocommerce.search .woocommerce-LoopProduct-link,
body.woocommerce.tax-product_cat .woocommerce-loop-product__link,
body.woocommerce.tax-product_cat .woocommerce-LoopProduct-link,
body.woocommerce.tax-product_tag .woocommerce-loop-product__link,
body.woocommerce.tax-product_tag .woocommerce-LoopProduct-link {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    height: 100%;
    text-decoration: none;
}

body.woocommerce.archive .attachment-woocommerce_thumbnail,
body.woocommerce.search .attachment-woocommerce_thumbnail,
body.woocommerce.tax-product_cat .attachment-woocommerce_thumbnail,
body.woocommerce.tax-product_tag .attachment-woocommerce_thumbnail {
    width: 100%;
    display: block;
}

body.woocommerce.archive ul.products li.product.product-category,
body.woocommerce.search ul.products li.product.product-category {
    min-height: auto;
    background: var(--surface-white);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-soft);
}

body.woocommerce.archive ul.products li.product.product-category .woocommerce-loop-category__link,
body.woocommerce.search ul.products li.product.product-category .woocommerce-loop-category__link {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    height: 100%;
    text-decoration: none;
}

body.woocommerce.archive ul.products li.product.product-category .woocommerce-loop-category__title,
body.woocommerce.search ul.products li.product.product-category .woocommerce-loop-category__title {
    color: var(--text-primary);
    font-family: var(--font-bricolage);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
}

/* Category card count: no highlight */
body.woocommerce.archive ul.products li.product.product-category .woocommerce-loop-category__title mark.count,
body.woocommerce.search ul.products li.product.product-category .woocommerce-loop-category__title mark.count,
body.woocommerce.archive ul.products li.product.product-category .woocommerce-loop-category__title .count,
body.woocommerce.search ul.products li.product.product-category .woocommerce-loop-category__title .count {
    background: transparent;
    color: var(--text-muted);
    padding: 0;
    margin-left: 4px;
    font-weight: 500;
}

.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after {
    content: none !important;
}

/* Price Harmonization: Crisp & Intentional */
.woocommerce .price,
.woocommerce p.price,
.woocommerce span.price,
.woocommerce .wc-block-components-product-price {
    color: var(--text-primary) !important;
    font-family: var(--font-bricolage);
    font-weight: 700;
}

.woocommerce .price ins,
.woocommerce p.price ins,
.woocommerce span.price ins,
.woocommerce .wc-block-components-product-price ins {
    color: var(--accent-terracotta) !important;
    text-decoration: none;
}

.woocommerce .price del,
.woocommerce p.price del,
.woocommerce .wc-block-components-product-price del {
    color: var(--text-muted) !important;
    font-weight: 400;
    font-size: 0.85em;
    opacity: 0.6;
}

/* Variant Button Color Fix: Kill the Purple */
.single_variation_wrap .single_add_to_cart_button,
.single_variation_wrap .button,
.woocommerce div.product form.cart .button {
    background-color: var(--accent-gold) !important;
    color: var(--text-primary) !important;
    border: none !important;
}

.single_variation_wrap .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .button:hover {
    background-color: var(--accent-gold-hover) !important;
}

.single_variation_wrap .single_add_to_cart_button.disabled,
.single_variation_wrap .single_add_to_cart_button:disabled {
    background-color: var(--accent-soft-gilt) !important;
    color: var(--text-secondary) !important;
    cursor: not-allowed;
}

/* Stock Status (Under Short Description) - Keep it clean, no 'Gone' here */
.woocommerce div.product .stock.out-of-stock::before {
    content: none !important;
}

.woocommerce .stock.out-of-stock {
    color: var(--status-error-text);
    font-weight: 600;
    font-family: var(--font-family-body);
    font-style: normal;
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 0.05em;
}

/* Image Treatment */
.woocommerce ul.products li.product a img,
.wc-block-grid__product-image img {
    margin-bottom: var(--space-xl) !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    transition: filter var(--motion-slow) var(--ease-soft) !important;
    filter: contrast(0.98) brightness(1.01);
    transform: none !important; /* No harsh zoom */
    display: block;
    width: 100%;
}

body.woocommerce.archive ul.products li.product a img,
body.woocommerce.search ul.products li.product a img,
body.woocommerce.tax-product_cat ul.products li.product a img,
body.woocommerce.tax-product_tag ul.products li.product a img,
body.single-product .upsells.products ul.products li.product a img,
body.single-product .related.products ul.products li.product a img,
body.woocommerce-cart .cross-sells ul.products li.product a img {
    margin-bottom: var(--space-md) !important;
}

.woocommerce ul.products li.product:hover a img,
.wc-block-grid__product:hover .wc-block-grid__product-image img {
    filter: contrast(1) brightness(1);
    border-color: var(--accent-gold) !important;
}

/* Typography Harmonization */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title {
    font-size: 0.8rem !important;
    padding-top: 0;
    margin-bottom: var(--space-xs) !important;
    line-height: 1.4;
    color: var(--text-primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-family: var(--font-bricolage);
}

.woocommerce ul.products li.product .price,
.wc-block-grid__product-price {
    display: block;
    margin-top: 0;
    margin-bottom: var(--space-xl) !important;
    flex-grow: 1;
    font-size: 0.85rem !important;
    color: var(--text-secondary);
    font-family: var(--font-family-body);
    font-weight: 600;
    letter-spacing: 0.01em;
}

body.woocommerce.archive ul.products li.product .price,
body.woocommerce.search ul.products li.product .price,
body.woocommerce.tax-product_cat ul.products li.product .price,
body.woocommerce.tax-product_tag ul.products li.product .price,
body.single-product .upsells.products ul.products li.product .price,
body.single-product .related.products ul.products li.product .price,
body.woocommerce-cart .cross-sells ul.products li.product .price {
    margin-bottom: var(--space-md) !important;
}

/* Button Harmony */
.woocommerce ul.products li.product .button,
.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link {
    margin-top: auto !important;
    width: 100% !important;
    font-size: 0.7rem !important;
    height: 40px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border-radius: 0 !important;
    opacity: 0.95;
    background-color: var(--accent-gold) !important;
    color: var(--text-primary) !important;
    transition: opacity var(--motion-base), background-color var(--motion-base);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible,
.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:hover,
.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:focus-visible {
    opacity: 1;
    background-color: var(--accent-gold-hover) !important;
}

/* Pagination */
.woocommerce-pagination {
    margin-top: var(--space-32x); /* Global breathing room */
    margin-bottom: var(--space-16x);
}

body.woocommerce .woocommerce-pagination .page-numbers {
    border: none;
    display: flex;
    gap: var(--space-xs);
    justify-content: center;
}

body.woocommerce .woocommerce-pagination .page-numbers li span.current,
body.woocommerce .woocommerce-pagination .page-numbers li a {
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-family-body);
    font-weight: 600;
    color: var(--text-primary);
    background-color: transparent;
    border: 1px solid transparent;
    transition: var(--transition-micro);
}

body.woocommerce .woocommerce-pagination .page-numbers li span.current,
body.woocommerce .woocommerce-pagination .page-numbers li a:hover {
    background-color: var(--accent-gold);
    color: var(--text-primary);
}

@media (max-width: 600px) {
    /* On phones, keep pagination readable without hiding links:
       allow horizontal scroll instead of squishing. */
    body.woocommerce .woocommerce-pagination .page-numbers {
        gap: var(--space-sm);
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 0 0.5rem;
        margin: 0;
    }

    body.woocommerce .woocommerce-pagination .page-numbers::-webkit-scrollbar {
        height: 0;
    }

    body.woocommerce .woocommerce-pagination .page-numbers li {
        flex: 0 0 auto;
    }

    body.woocommerce .woocommerce-pagination .page-numbers li span.current,
    body.woocommerce .woocommerce-pagination .page-numbers li a {
        padding: 0.55rem 0.75rem;
        font-size: 0.92rem;
    }
}

/* Ordering & Result Count */
body.woocommerce .woocommerce-ordering,
body.woocommerce .woocommerce-result-count {
    margin-bottom: var(--space-lg);
    font-family: var(--font-family-body);
    color: var(--text-secondary);
}

body.woocommerce .woocommerce-ordering select {
    background: var(--surface-white);
    border: 1px solid var(--border-subtle);
    padding: 0.6rem 0.8rem;
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

/* -------------------------------------------------------------------
   8. SINGLE PRODUCT PAGE (Layered UX)
   ------------------------------------------------------------------- */
body.single-product #primary.site-main {
    padding-top: var(--space-sm);
}

.woocommerce div.product {
    margin-bottom: 0;
    position: relative;
    padding-bottom: var(--space-xl);
}

.woocommerce div.product .summary,
.woocommerce div.product .summary.entry-summary {
    padding: var(--space-xl);
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-soft);
    display: grid;
    gap: var(--space-md);
}

body.single-product .woocommerce-product-gallery,
body.single-product div.images {
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
}

.woocommerce div.product .product_title,
.woocommerce div.product .product_title.entry-title {
    font-size: var(--font-h2);
    margin-bottom: var(--space-xs);
    line-height: 1.1;
    letter-spacing: -0.03em;
    font-weight: 800;
}

.woocommerce div.product p.price {
    font-size: var(--font-h4);
    margin-bottom: var(--space-md);
}

.single-product.woocommerce div.product p.price,
.single-product.woocommerce div.product span.price,
.single-product.woocommerce div.product .woocommerce-variation-price .price,
.single-product.woocommerce div.product .woocommerce-variation .price {
    color: var(--text-secondary);
}

.woocommerce div.product .woocommerce-product-details__short-description {
    margin-bottom: var(--space-lg);
    font-size: var(--font-body);
    color: var(--text-secondary);
}

/* Variations Form */
.woocommerce div.product form.cart {
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-default);
    display: grid;
    gap: var(--space-md);
}

.woocommerce div.product form.cart .variations label {
    font-family: var(--font-bricolage);
    font-weight: 700;
    color: var(--text-primary);
    text-transform: uppercase;
    font-size: var(--font-small);
}

/* Quantity Input */
.woocommerce .quantity .qty {
    width: 60px;
    padding: var(--space-sm);
    text-align: center;
    border: 1px solid var(--border-default);
    font-family: var(--font-family-body);
    font-weight: 600;
    margin-right: 0;
    background-color: var(--surface-base);
    color: var(--text-primary);
    height: 44px;
}

/* Single product: quantity stepper (adds +/- via JS) */
body.single-product.woocommerce form.cart .quantity.miro-qty {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--border-default);
    background: var(--surface-base);
    height: 40px;
    border-radius: 0;
    overflow: hidden;
    max-width: fit-content;
}

body.single-product.woocommerce form.cart .variations_button,
body.single-product.woocommerce form.cart .woocommerce-variation-add-to-cart {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}

body.single-product.woocommerce form.cart .single_add_to_cart_button,
body.single-product.woocommerce form.cart button.single_add_to_cart_button {
    margin: 0;
    min-width: min(320px, 100%);
}

body.single-product.woocommerce form.cart .quantity.miro-qty .qty {
    border: none;
    width: 54px;
    height: 38px;
    padding: 0;
    background: transparent;
}

body.single-product.woocommerce form.cart .quantity.miro-qty button.miro-qty-btn {
    width: 36px;
    height: 38px;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-bricolage);
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--transition-micro), color var(--transition-micro);
}

body.single-product.woocommerce form.cart .quantity.miro-qty button.miro-qty-btn:hover,
body.single-product.woocommerce form.cart .quantity.miro-qty button.miro-qty-btn:focus-visible {
    background: var(--surface-inset);
    color: var(--text-primary);
}

/* Section 2: The Details Shelf (Tabs) */
.woocommerce div.product .woocommerce-tabs {
    margin: var(--space-xl) auto 0;
    max-width: 1200px;
    padding: clamp(1.25rem, 3vw, 2.25rem);
    background-color: var(--surface-warm);
    border-top: 1px solid var(--border-subtle);
    border-bottom: 1px solid var(--border-subtle);
    border-left: 1px solid var(--border-subtle);
    border-right: 1px solid var(--border-subtle);
    border-radius: 18px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs,
.woocommerce div.product ul.tabs.wc-tabs {
    padding: var(--space-xs);
    margin: 0 auto var(--space-lg);
    background: var(--surface-white);
    border: 1px solid var(--border-subtle);
    box-shadow: none;
    display: flex;
    justify-content: center;
    flex-wrap: nowrap; /* Prevent stacking */
    gap: clamp(4px, 1.5vw, 12px);
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

@media (max-width: 768px) {
    .woocommerce div.product .woocommerce-tabs ul.tabs,
    .woocommerce div.product ul.tabs.wc-tabs {
        justify-content: flex-start; /* Start-align to prevent off-screen bleed */
        padding-inline: var(--space-md);
        margin-inline: calc(var(--space-md) * -1); /* Full bleed mobile track */
        width: calc(100% + (var(--space-md) * 2));
        border-left: none;
        border-right: none;
        border-radius: 0;
    }
}

.woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar,
.woocommerce div.product ul.tabs.wc-tabs::-webkit-scrollbar {
    display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product ul.tabs.wc-tabs li {
    background: transparent;
    border: none;
    margin: 0;
    flex-shrink: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce div.product ul.tabs.wc-tabs li.active {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.woocommerce div.product ul.tabs.wc-tabs li a {
    font-family: var(--font-bricolage);
    font-weight: 700;
    font-size: clamp(0.7rem, 2.5vw, 0.82rem);
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: var(--space-sm) clamp(0.6rem, 2vw, 1.25rem);
    display: inline-block;
    border: 1px solid transparent;
    background-color: transparent;
    white-space: nowrap;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover,
.woocommerce div.product ul.tabs.wc-tabs li.active a,
.woocommerce div.product ul.tabs.wc-tabs li a:hover {
    color: var(--text-primary);
    background-color: var(--surface-inset);
    border-color: var(--border-subtle);
    position: relative;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after,
.woocommerce div.product ul.tabs.wc-tabs li.active a::after {
    content: '';
    display: block;
    width: 100%;
    height: 2px;
    background-color: var(--accent-gold);
    position: absolute;
    bottom: -1px;
    left: 0;
}

/* Tab Panel Alignment */
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce div.product .woocommerce-Tabs-panel,
.woocommerce div.product .panel.entry-content.wc-tab {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--space-xl);
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-soft);
    position: relative;
}

/* Gentle inner container for tab content */
.woocommerce div.product .woocommerce-tabs .panel::before,
.woocommerce div.product .woocommerce-Tabs-panel::before,
.woocommerce div.product .panel.entry-content.wc-tab::before {
    content: '';
    position: absolute;
    inset: var(--space-md);
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    z-index: 0;
}

.woocommerce div.product .woocommerce-tabs .panel > *,
.woocommerce div.product .woocommerce-Tabs-panel > *,
.woocommerce div.product .panel.entry-content.wc-tab > * {
    position: relative;
    z-index: 1;
}

/* Attributes Table: light, structured, no dark fills */
.woocommerce div.product .woocommerce-product-attributes,
.woocommerce div.product .woocommerce-product-attributes.shop_attributes {
    border: 1px solid var(--border-subtle);
    background-color: var(--surface-white);
    margin: 0;
}

.woocommerce div.product .woocommerce-product-attributes th,
.woocommerce div.product .woocommerce-product-attributes td {
    border-color: var(--border-subtle);
    color: var(--text-secondary);
    background-color: transparent;
    padding: var(--space-sm) var(--space-md);
}

.woocommerce div.product .woocommerce-product-attributes th {
    color: var(--text-primary);
    font-family: var(--font-bricolage);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 0.7rem;
}

/* Gallery thumbs */
body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
    gap: var(--space-xs);
    margin-top: var(--space-sm);
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    margin: 0;
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs li img {
    border: 1px solid var(--border-subtle);
    background-color: var(--surface-white);
    transition: border-color var(--motion-base);
}

body.single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover {
    border-color: var(--accent-gold);
}

/* Product Meta Branding */
.woocommerce .product_meta {
    margin-top: var(--space-xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--accent-soft-gilt);
    font-family: var(--font-bricolage);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
}

/* Cross-sells, Upsells and Related Products Harmony */
body.woocommerce .upsells.products,
body.woocommerce .related.products,
body.woocommerce .cross-sells {
    margin-top: var(--space-xl);
    padding-top: var(--space-xl);
    border-top: 1px solid var(--accent-soft-gilt);
    clear: both;
}

/* Upsells / related / cross-sells: grid, max 3 items, responsive visibility */
body.woocommerce .upsells.products ul.products,
body.woocommerce .related.products ul.products,
body.woocommerce .cross-sells ul.products,
body.woocommerce .wc-block-cart__cross-sells ul.wc-block-grid__products,
body.woocommerce .wp-block-woocommerce-product-recommendations ul.wc-block-grid__products,
body.woocommerce .wp-block-woocommerce-product-collection ul.wc-block-product-template,
body.woocommerce .wp-block-woocommerce-product-recommendations ul.wc-block-product-template {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
    margin: 0;
    padding: 0;
}

body.woocommerce .upsells.products ul.products li.product,
body.woocommerce .related.products ul.products li.product,
body.woocommerce .cross-sells ul.products li.product,
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-product,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-product {
    margin: 0 !important;
}

/* Max 3 items total (all viewports) */
body.woocommerce .upsells.products ul.products li.product:nth-child(n + 4),
body.woocommerce .related.products ul.products li.product:nth-child(n + 4),
body.woocommerce .cross-sells ul.products li.product:nth-child(n + 4),
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product:nth-child(n + 4),
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product:nth-child(n + 4),
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-product:nth-child(n + 4),
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-product:nth-child(n + 4) {
    display: none !important;
}

/* Tablet: 2 columns */
@media (min-width: 768px) and (max-width: 1024px) {
    body.woocommerce .upsells.products ul.products,
    body.woocommerce .related.products ul.products,
    body.woocommerce .cross-sells ul.products,
    body.woocommerce .wc-block-cart__cross-sells ul.wc-block-grid__products,
    body.woocommerce .wp-block-woocommerce-product-recommendations ul.wc-block-grid__products,
    body.woocommerce .wp-block-woocommerce-product-collection ul.wc-block-product-template,
    body.woocommerce .wp-block-woocommerce-product-recommendations ul.wc-block-product-template {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Mobile: 1 column */
@media (max-width: 767px) {
    body.woocommerce .upsells.products ul.products,
    body.woocommerce .related.products ul.products,
    body.woocommerce .cross-sells ul.products,
    body.woocommerce .wc-block-cart__cross-sells ul.wc-block-grid__products,
    body.woocommerce .wp-block-woocommerce-product-recommendations ul.wc-block-grid__products,
    body.woocommerce .wp-block-woocommerce-product-collection ul.wc-block-product-template,
    body.woocommerce .wp-block-woocommerce-product-recommendations ul.wc-block-product-template {
        grid-template-columns: 1fr;
    }
}

body.woocommerce .upsells.products h2,
body.woocommerce .related.products h2,
body.woocommerce .cross-sells h2,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wp-block-heading,
body.woocommerce .wp-block-woocommerce-product-collection h2.wp-block-heading,
body.woocommerce .wp-block-woocommerce-product-recommendations h2.wp-block-heading {
    font-family: var(--font-bricolage);
    font-size: var(--font-h5);
    font-weight: 800;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: var(--space-lg);
    text-align: center;
    position: relative;
    padding-bottom: var(--space-sm);
}

body.woocommerce .upsells.products h2::after,
body.woocommerce .related.products h2::after,
body.woocommerce .cross-sells h2::after,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wp-block-heading::after,
body.woocommerce .wp-block-woocommerce-product-collection h2.wp-block-heading::after,
body.woocommerce .wp-block-woocommerce-product-recommendations h2.wp-block-heading::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 30px;
    height: 2px;
    background: var(--accent-gold);
}

/* Discovery sections (Related, Upsells, Cross-sells) */
:where(.related, .upsells, .cross-sells) {
    position: relative;
    padding: var(--space-xl) 0;
}

@media (max-width: 1024px) {
    :where(.related, .upsells, .cross-sells) ul.products {
        display: flex !important;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        gap: var(--space-md);
        padding: var(--space-md) 5vw;
        margin: 0 -5vw;
    }

    :where(.related, .upsells, .cross-sells) ul.products::-webkit-scrollbar {
        display: none;
    }

    :where(.related, .upsells, .cross-sells) ul.products li.product {
        flex: 0 0 72vw;
        scroll-snap-align: center;
        margin: 0 !important;
        width: 72vw !important;
    }
}

/* Main Cart Container (Block Version) */
.wc-block-components-sidebar-layout.wc-block-cart.wp-block-woocommerce-filled-cart-block.is-medium {
    background-color: var(--surface-base);
    padding: var(--space-xl) 0;
}

/* Cart Items Section */
.wc-block-components-main.wc-block-cart__main.wp-block-woocommerce-cart-items-block,
body.woocommerce-cart .wp-block-woocommerce-cart-items-block {
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
    padding: var(--space-lg);
    box-shadow: var(--shadow-soft);
}

/* Cart Totals/Sidebar Section */
.wc-block-components-sidebar.wc-block-cart__sidebar.wp-block-woocommerce-cart-totals-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-totals-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-coupon-form-block {
    background-color: var(--surface-utility);
    border: 1px solid var(--border-subtle);
    padding: var(--space-lg);
}

/* Checkout Wrapper */
.woocommerce-checkout form.woocommerce-checkout {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: var(--space-xl);
    align-items: start;
}

@media (max-width: 1024px) {
    .woocommerce-checkout form.woocommerce-checkout {
        grid-template-columns: 1fr;
    }
}

/* Checkout Sections */
#customer_details {
    display: grid;
    gap: var(--space-xl);
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-order-review,
#order_review {
    background-color: var(--surface-base);
    border: 1px solid var(--border-default);
    padding: var(--space-lg);
    box-shadow: var(--shadow-soft);
}

/* Review Table & Nested Elements */
.shop_table.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--space-md);
}

.shop_table.woocommerce-checkout-review-order-table th,
.shop_table.woocommerce-checkout-review-order-table td {
    padding: var(--space-md) 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

.shop_table.woocommerce-checkout-review-order-table .product-name {
    font-weight: 600;
}

.shop_table.woocommerce-checkout-review-order-table .product-total,
.shop_table.woocommerce-checkout-review-order-table .order-total {
    text-align: right;
}

.shop_table.woocommerce-checkout-review-order-table .order-total {
    font-family: var(--font-bricolage);
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--text-primary);
}

/* Totals logic */
.cart-subtotal .amount, 
.shipping .amount, 
.order-total .amount {
    color: var(--text-primary);
    font-weight: 700;
}

/* Payment Methods */
body.woocommerce-checkout #payment {
    background-color: var(--surface-utility);
    border: 1px solid var(--border-default);
    margin-top: var(--space-lg);
}

body.woocommerce-checkout .wc_payment_methods {
    list-style: none;
    padding: 0;
    margin: 0;
}

body.woocommerce-checkout .wc_payment_methods li {
    padding: var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
}

body.woocommerce-checkout .wc_payment_methods li:last-child {
    border-bottom: none;
}

body.woocommerce-checkout .wc_payment_methods li label {
    font-family: var(--font-bricolage);
    font-weight: 700;
    color: var(--text-primary);
    cursor: pointer;
}

.payment_box {
    background-color: var(--surface-base);
    color: var(--text-secondary);
    padding: var(--space-md);
    margin-top: var(--space-sm);
    font-size: 0.9rem;
    border: 1px solid var(--border-subtle);
}

/* My Account Specifics */
.woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: var(--space-xl);
}

.woocommerce-account .woocommerce-MyAccount-content {
    background-color: var(--surface-base);
    border: 1px solid var(--border-default);
    padding: var(--space-xl);
    box-shadow: var(--shadow-soft);
}

.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-family: var(--font-bricolage);
    font-size: 1.5rem;
    margin-bottom: var(--space-md);
}

/* Wishlist Layout Harmony (Desktop & Mobile) */
body .wishlist_table.shop_table,
body .wishlist_table.mobile {
    background-color: var(--surface-base) !important;
    border: 1px solid var(--border-default) !important;
}

body .wishlist_table.shop_table thead th {
    background-color: var(--surface-utility);
    font-family: var(--font-bricolage);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: var(--space-md);
    color: var(--text-primary);
}

body .wishlist_table :is(td, tr),
body .wishlist_table.mobile > li,
body .wishlist_table.mobile .item-wrapper {
    border-color: var(--border-subtle) !important;
}

body .wishlist_table.shop_table td {
    padding: var(--space-lg) var(--space-md);
    color: var(--text-primary);
}

/* Wishlist Links & Titles */
body .wishlist_table .product-name a,
body .wishlist_table.mobile .product-name a {
    font-family: var(--font-bricolage);
    font-weight: 700;
    color: var(--text-primary) !important;
    text-decoration: none;
}

body .wishlist_table .product-name a:hover,
body .wishlist_table.mobile .product-name a:hover {
    color: var(--accent-gold) !important;
}

/* Wishlist Buttons */
body .wishlist_table :is(.add_to_cart, .button),
body .wishlist_table.mobile .product-add-to-cart a {
    background-color: var(--accent-gold) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-bricolage);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    border-radius: 0 !important;
    padding: 10px 20px !important;
    transition: var(--transition-smooth);
}

body .wishlist_table :is(.add_to_cart, .button):hover,
body .wishlist_table.mobile .product-add-to-cart a:hover {
    background-color: var(--accent-gold-hover) !important;
    transform: translateY(-1px);
}

/* Wishlist Title & Share Area */
body .wishlist-title-with-form h2 {
    font-family: var(--font-bricolage);
    color: var(--text-primary);
}

body .wishlist-title-with-form .button,
body .hidden-title-form :is(.hide-title-form, .save-title-form) {
    font-family: var(--font-family-body);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* Mobile List Specifics */
body .wishlist_table.mobile .item-details {
    padding: var(--space-md);
}

body .wishlist_table.mobile :is(.item-details-table td.label, .additional-info td.label) {
    font-weight: 700;
    color: var(--text-secondary);
}

/* -------------------------------------------------------------------
   10. SIDEBAR & WIDGET LINKS
   ------------------------------------------------------------------- */
body .sidebar .widget a:not(.button),
body .widget-area .widget a:not(.button),
body.woocommerce .woocommerce-widget-layered-nav-list__item a,
body.woocommerce .widget_product_categories a,
body.woocommerce .widget_layered_nav a,
body.woocommerce .widget_categories a,
body.woocommerce .widget_archive a,
body.woocommerce .widget_recent_entries a,
body.woocommerce .widget_pages a,
body.woocommerce .widget_nav_menu a,
body .miro-sidebar-container a,
body .miro-cat-link,
body .miro-subcat-link,
body .miro-filter-link {
    color: var(--link-default);
    text-decoration: none;
    font-family: var(--font-family-body);
    font-weight: 500;
    transition: color var(--transition-micro);
    display: inline-block;
}

body .sidebar .widget a:not(.button):hover,
body .widget-area .widget a:not(.button):hover,
body.woocommerce .woocommerce-widget-layered-nav-list__item a:hover,
body.woocommerce .woocommerce-widget-layered-nav-list__item--chosen a,
body.woocommerce .cat-item.current-cat > a,
body.woocommerce .current-menu-item > a,
body .miro-sidebar-container a:hover,
body .miro-cat-link:hover,
body .miro-cat-link.active,
body .miro-subcat-link:hover,
body .miro-subcat-link.active,
body .miro-filter-link:hover,
body .miro-filter-link.active {
    color: var(--link-hover);
}

body .sidebar .widget ul li,
body .widget-area .widget ul li {
    margin-bottom: var(--space-xs);
    font-family: var(--font-family-body);
    font-size: var(--font-body);
    line-height: 1.5;
}

body .sidebar .widget .count,
body .widget-area .widget .count {
    color: var(--text-muted);
    font-size: 0.8em;
    font-weight: 400;
    margin-left: 4px;
}

body.woocommerce .widget_product_categories mark.count,
body.woocommerce .product-categories mark.count,
body.woocommerce .widget_product_categories .count,
body.woocommerce .product-categories .count {
    background: transparent;
    color: var(--text-muted);
    padding: 0;
    margin-left: 4px;
    font-weight: 400;
}

body.woocommerce .wc-block-components-product-price {
    font-family: var(--font-bricolage);
    font-weight: 700;
    color: inherit;
}

/* Fix Generic "You may also be interested in" */
body.woocommerce .wc-block-cart__cross-sells,
body.woocommerce .wp-block-woocommerce-product-recommendations,
body.woocommerce .wp-block-woocommerce-product-collection {
    margin-top: var(--space-xl);
    padding-top: var(--space-xl);
    padding-left: var(--space-md);
    padding-right: var(--space-md);
    border-top: 1px solid var(--accent-soft-gilt);
}

/* 1:1 parity with standard WooCommerce archive cards */
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-product,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-product {
    text-align: left;
    transition: color var(--motion-base), background-color var(--motion-base), border-color var(--motion-base), box-shadow var(--motion-base), transform var(--motion-base);
    background-color: var(--surface-white);
    padding: var(--space-md);
    border: 1px solid var(--border-subtle);
    border-radius: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-xs);
    box-shadow: var(--shadow-soft);
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product:hover,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product:hover,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product:hover,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-product:hover,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-product:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-soft);
    border-color: var(--accent-gold);
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product-image,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product-image,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product-image,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-components-product-image,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-components-product-image {
    width: 100%;
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product-image img,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product-image img,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product-image img,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-components-product-image img,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-components-product-image img {
    margin-bottom: var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
    transition: filter var(--motion-base), border-color var(--motion-fast);
    filter: contrast(0.98) brightness(1.01);
    display: block;
    width: 100%;
    height: auto;
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product:hover .wc-block-grid__product-image img,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product:hover .wc-block-grid__product-image img,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product:hover .wc-block-grid__product-image img,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-product:hover .wc-block-components-product-image img,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-product:hover .wc-block-components-product-image img {
    border-color: var(--accent-gold);
    filter: contrast(1) brightness(1);
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product-title,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product-title,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product-title,
body.woocommerce .wp-block-woocommerce-product-collection .wp-block-post-title,
body.woocommerce .wp-block-woocommerce-product-recommendations .wp-block-post-title {
    font-size: var(--font-small);
    padding-top: 0;
    margin-bottom: var(--space-sm);
    line-height: 1.4;
    color: var(--text-primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: var(--font-bricolage);
}

body.woocommerce .wp-block-woocommerce-product-collection .wp-block-post-title a,
body.woocommerce .wp-block-woocommerce-product-recommendations .wp-block-post-title a {
    color: inherit;
    text-decoration: none;
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product-price,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product-price,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product-price,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-components-product-price,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-components-product-price {
    display: block;
    margin-top: 0;
    margin-bottom: var(--space-md);
    font-size: 0.85rem;
    color: var(--text-secondary);
    font-family: var(--font-family-body);
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product-price ins,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product-price ins,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product-price ins {
    color: var(--accent-terracotta);
    text-decoration: none;
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product-price del,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product-price del,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product-price del {
    color: var(--text-muted);
    opacity: 0.7;
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product .wp-block-button__link,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product .wp-block-button__link,
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product a.add_to_cart_button,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product a.add_to_cart_button,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product .wp-block-button__link,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product a.add_to_cart_button,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-components-product-button__button,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-components-product-button__button {
    margin-top: auto;
    width: 100%;
    font-size: 0.75rem;
    height: 40px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 0;
    border: 1px solid var(--accent-gold);
    background-color: var(--accent-gold);
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-family: var(--font-bricolage);
    font-weight: 800;
}

body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product .wp-block-button__link:hover,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product .wp-block-button__link:hover,
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product a.add_to_cart_button:hover,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product a.add_to_cart_button:hover,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product .wp-block-button__link:hover,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product a.add_to_cart_button:hover,
body.woocommerce .wp-block-woocommerce-product-collection .wc-block-components-product-button__button:hover,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-components-product-button__button:hover {
    background-color: var(--accent-gold-hover);
    border-color: var(--accent-gold-hover);
    color: var(--text-primary);
    transform: translateY(-2px);
}

/* Cross-sells block buttons (override block defaults & specificity) */
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product .wc-block-components-product-button__button,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wp-block-button.wc-block-components-product-button .wc-block-components-product-button__button {
    margin-top: auto;
    width: 100%;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    border-radius: 0;
    border: 1px solid var(--accent-gold);
    background-color: var(--accent-gold);
    color: var(--text-primary);
    font-family: var(--font-bricolage);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1;
}

body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product .wc-block-components-product-button__button:hover,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wp-block-button.wc-block-components-product-button .wc-block-components-product-button__button:hover {
    background-color: var(--accent-gold-hover);
    border-color: var(--accent-gold-hover);
    color: var(--text-primary);
}

/* Woo Blocks: Cart + Checkout structural surfaces */
body.woocommerce-cart .wc-block-cart-items__row,
body.woocommerce-cart .wc-block-cart-item {
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
}

body.woocommerce-cart .wc-block-cart-item__image img {
    border: 1px solid var(--border-subtle);
    background-color: var(--surface-white);
}

/* Cart (Blocks): prevent product names from collapsing/overflowing on small screens. */
body.woocommerce-cart .wc-block-cart-item__product,
body.woocommerce-cart .wc-block-cart-item__product > * {
    min-width: 0;
}

body.woocommerce-cart .wc-block-cart-item__product {
    flex: 1 1 auto;
    width: 100%;
}

body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__price {
    flex: 0 0 auto;
}

body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: auto;
}

body.woocommerce-cart .wc-block-components-product-name a,
body.woocommerce-checkout .wc-block-components-product-name a {
    display: inline;
    min-width: 0;
    max-width: 100%;
    white-space: inherit;
    word-break: inherit;
    overflow-wrap: inherit;
}

@media (max-width: 540px) {
    body.woocommerce-cart .wc-block-components-sidebar-layout.wc-block-cart.is-mobile .wc-block-cart-item__product {
        width: auto;
    }

    body.woocommerce-cart .wc-block-components-order-summary-item__description,
    body.woocommerce-checkout .wc-block-components-order-summary-item__description,
    body.woocommerce-cart .wc-block-components-order-summary-item__description > *,
    body.woocommerce-checkout .wc-block-components-order-summary-item__description > * {
        min-width: 0;
    }

    body.woocommerce-cart .wc-block-components-order-summary-item__description,
    body.woocommerce-checkout .wc-block-components-order-summary-item__description {
        flex: 1 1 auto;
        width: 100%;
    }

    body.woocommerce-cart .wc-block-components-order-summary-item__description .wc-block-components-product-name,
    body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
        font-size: 0.95rem;
        line-height: 1.35;
    }
}

body.woocommerce-checkout .wc-block-checkout__billing-address,
body.woocommerce-checkout .wc-block-checkout__shipping-address,
body.woocommerce-checkout .wc-block-checkout__payment-method,
body.woocommerce-checkout .wp-block-woocommerce-checkout-contact-information-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-billing-address-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-address-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-shipping-methods-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-terms-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block {
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
}

body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
    padding: var(--space-sm) var(--space-md);
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    padding: var(--space-lg);
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary-item__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary-item__value {
    padding: var(--space-xs) 0;
}

/* Cart Totals Box */
body.woocommerce .cart-collaterals .cart_totals {
    background-color: var(--surface-white);
    padding: var(--space-lg);
    border: 1px solid var(--border-subtle);
    width: 100%;
    box-shadow: var(--shadow-soft);
}

body.woocommerce .cart-collaterals .cart_totals h2 {
    font-size: var(--font-h3);
    margin-bottom: var(--space-md);
    border-bottom: 1px solid var(--border-default);
    padding-bottom: var(--space-sm);
}

body.woocommerce-cart form.woocommerce-cart-form {
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    padding: var(--space-lg);
    box-shadow: var(--shadow-soft);
}

body.woocommerce-cart table.shop_table.cart {
    width: 100%;
    border-collapse: collapse;
}

body.woocommerce-cart .cart-collaterals {
    display: grid;
    gap: var(--space-lg);
    margin-top: var(--space-lg);
}

/* Checkout */
body.woocommerce-checkout .col2-set {
    margin-bottom: var(--space-xl);
}

body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #order_review_heading {
    font-size: var(--font-h3);
    margin-bottom: var(--space-lg);
    border-bottom: 2px solid var(--accent-soft-gilt);
    padding: 0 var(--space-sm) var(--space-sm) var(--space-sm);
    display: inline-block;
}

/* Order Review / Payment */
body.woocommerce-checkout #order_review {
    background-color: var(--surface-white);
    padding: var(--space-lg);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-soft);
}

body.woocommerce-checkout #payment {
    background-color: var(--surface-white);
    padding: var(--space-lg);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-soft);
}

body.woocommerce-checkout #payment ul.payment_methods {
    padding: 0;
    list-style: none;
    border-bottom: 1px solid var(--ink-08);
}

body.woocommerce-checkout #payment ul.payment_methods li {
    margin-bottom: var(--space-sm);
}

body.woocommerce-checkout #payment div.payment_box {
    background-color: var(--surface-utility);
    padding: var(--space-md);
    color: var(--text-secondary);
    font-size: var(--font-small);
    margin-top: var(--space-sm);
    position: relative;
    border: 1px solid var(--border-subtle);
}

body.woocommerce-checkout #payment div.payment_box::before {
    content: '';
    display: block;
    border: 8px solid transparent;
    border-bottom-color: var(--surface-utility);
    position: absolute;
    top: -16px;
    left: 20px;
}

/* Checkout segmentation (visual steps without flow interruption) */
body.woocommerce-checkout #customer_details {
    display: grid;
    gap: var(--space-lg);
}

body.woocommerce-checkout #customer_details > .col-1,
body.woocommerce-checkout #customer_details > .col-2,
body.woocommerce-checkout .woocommerce-additional-fields,
body.woocommerce-checkout #order_review {
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-lg);
    box-shadow: var(--shadow-soft);
}

body.woocommerce-checkout #payment {
    background-color: var(--surface-white);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-lg);
    box-shadow: var(--shadow-soft);
}

body.woocommerce-checkout #customer_details > .col-1,
body.woocommerce-checkout #customer_details > .col-2,
body.woocommerce-checkout #order_review {
    margin-bottom: var(--space-6x);
}

/* -------------------------------------------------------------------
   11. MY ACCOUNT
   ------------------------------------------------------------------- */
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    border: 1px solid var(--border-default);
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid var(--border-default);
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: var(--space-md);
    font-family: var(--font-family-body);
    font-weight: 500;
    color: var(--text-primary);
    text-decoration: none;
    transition: var(--transition-micro);
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background-color: var(--surface-warm);
    color: var(--link-hover);
    padding-left: var(--space-lg);
}

/* Account Forms */
body.woocommerce .woocommerce-form-login,
body.woocommerce .woocommerce-form-register {
    padding: var(--space-lg);
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
}

body.woocommerce .woocommerce-form-login h2,
body.woocommerce .woocommerce-form-register h2 {
    font-size: var(--font-h3);
    margin-bottom: var(--space-md);
}

/* -------------------------------------------------------------------
   12. WIDGETS & MINI CART
   ------------------------------------------------------------------- */
body.woocommerce .widget_shopping_cart_content {
    font-family: var(--font-family-body);
}

body.woocommerce .woocommerce-mini-cart__total {
    border-top: 1px solid var(--border-default);
    border-bottom: 1px solid var(--border-default);
    padding: var(--space-sm) 0;
    margin: var(--space-md) 0;
}

/* -------------------------------------------------------------------
   13. SIDEBAR & WIDGETS (Elite Editorial Redesign)
   ------------------------------------------------------------------- */
body .widget-area {
    padding-left: var(--space-xxl);
    border-left: 1px solid var(--ink-04);
}

@media (min-width: 1025px) {
    body .widget-area {
        padding-bottom: var(--space-16x);
    }
}

body .widget-area .widget {
    margin-bottom: var(--space-xxl);
    background: transparent;
}

body .widget-area .widget-title {
    font-family: var(--font-bricolage);
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.3em;
    margin-bottom: var(--space-xl);
    color: var(--text-primary);
    position: relative;
    display: block;
}

body .widget-area .widget-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 20px;
    height: 1px;
    background: var(--text-primary);
}

/* Minimalist Search */
body.woocommerce .widget_product_search .woocommerce-product-search {
    border-bottom: 2px solid var(--text-primary);
    display: flex;
}

body.woocommerce .widget_product_search input[type="search"] {
    background: transparent;
    border: none;
    padding: var(--space-sm) 0;
    font-family: var(--font-family-body);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    flex: 1;
}

body.woocommerce .widget_product_search button {
    background: transparent;
    border: none;
    font-family: var(--font-bricolage);
    font-weight: 800;
    text-transform: uppercase;
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    color: var(--text-primary);
}

/* The Index Concept */
body.woocommerce .widget_product_categories li,
body.woocommerce .widget_layered_nav li,
body.woocommerce .widget_archive li {
    padding: var(--space-xs) 0;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

body.woocommerce .widget_product_categories li a,
body.woocommerce .widget_layered_nav li a {
    font-family: var(--font-family-body);
    font-size: 0.8rem;
    color: var(--text-secondary);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: var(--transition-smooth);
}

body.woocommerce .widget_product_categories li a:hover,
body.woocommerce .widget_layered_nav li a:hover {
    color: var(--link-body-hover);
    letter-spacing: 0.1em;
}

body.woocommerce .widget_product_categories .count {
    font-family: var(--font-eyesome);
    font-size: 1.1rem;
    color: var(--text-muted);
    opacity: 0.72;
    background: transparent;
}

/* Swatches & Filter Harmonization */
body.woocommerce .widget_layered_nav ul.woocommerce-widget-layered-nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.woocommerce .widget_layered_nav ul.woocommerce-widget-layered-nav-list li {
    padding: 0;
}

body.woocommerce .widget_layered_nav ul.woocommerce-widget-layered-nav-list li a {
    border: 1px solid var(--accent-soft-gilt);
    padding: 4px 10px;
    font-size: 0.7rem;
}

body.woocommerce .widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen a {
    background-color: var(--surface-inset);
    color: var(--text-primary);
    border-color: var(--border-strong);
}

/* Refined Price Slider */
body.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
    background-color: var(--surface-warm);
    height: 1px;
}

body.woocommerce .widget_price_filter .ui-slider-range {
    background: var(--border-strong);
}

body.woocommerce .widget_price_filter .ui-slider-handle {
    border: 1px solid var(--border-strong);
    background: var(--surface-base);
    height: 8px;
    width: 8px;
    border-radius: 0;
    outline: none;
    top: -4px;
}

body.woocommerce .widget_price_filter .ui-slider-handle:focus-visible {
    outline: 1px solid var(--accent-gold) !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--gold-10) !important;
}

/* Product Teasers */
body.woocommerce .widget_products li img {
    width: 45px;
    height: 45px;
    filter: grayscale(100%);
    opacity: 0.8;
}

body.woocommerce .widget_products li:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

body.woocommerce .widget_products li .product-title {
    font-family: var(--font-bricolage);
    font-size: 0.75rem;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

/* -------------------------------------------------------------------
   14. RESPONSIVE SIZING ADJUSTMENTS
   ------------------------------------------------------------------- */
@media (min-width: 1025px) {
    /* Desktop breathing room for Cart + Checkout (classic + blocks) */
    body.woocommerce-cart .site-main,
    body.woocommerce-checkout .site-main {
        max-width: min(1360px, 94vw);
        margin-left: auto;
        margin-right: auto;
        padding-left: clamp(18px, 1.8vw, 34px);
        padding-right: clamp(18px, 1.8vw, 34px);
    }

    /* Light desktop pass: tighter hierarchy + better scan + sticky summary. */
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        max-width: min(1280px, 92vw);
        margin-inline: auto;
    }

    body.woocommerce-cart :where(.wc-block-components-sidebar-layout, .wc-block-components-main, .wc-block-components-sidebar),
    body.woocommerce-checkout :where(.wc-block-components-sidebar-layout, .wc-block-components-main, .wc-block-components-sidebar) {
        align-items: start;
        min-width: 0;
    }

    body.woocommerce-cart .wc-block-components-sidebar-layout,
    body.woocommerce-checkout .wc-block-components-sidebar-layout {
        gap: var(--space-xl);
    }

    @supports (position: sticky) {
        body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
            position: sticky;
            top: calc(var(--miro-header-height, 96px) + 24px);
        }

        body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block {
            position: sticky;
            top: calc(var(--miro-header-height, 96px) + 24px);
        }
    }

    body.woocommerce :where(.wc-block-components-totals-item) {
        gap: var(--space-md);
        align-items: baseline;
    }

    body.woocommerce :where(.wc-block-components-totals-item__label) {
        color: var(--text-secondary);
    }

    body.woocommerce :where(.wc-block-components-totals-item__value, .wc-block-formatted-money-amount, .wc-block-components-formatted-money-amount) {
        text-align: right;
        font-variant-numeric: tabular-nums;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart :where(h1, h2, h3).wp-block-heading,
    body.woocommerce-checkout .wp-block-woocommerce-checkout :where(h1, h2, h3).wp-block-heading {
        font-family: var(--font-bricolage);
        letter-spacing: -0.02em;
        line-height: 1.1;
    }

    body.woocommerce-cart .wc-block-components-product-name,
    body.woocommerce-checkout .wc-block-components-product-name {
        line-height: 1.35;
    }
}

@media (max-width: 1024px) {
    /* Mobile/tablet gutter guard for Cart + Checkout (classic + blocks) */
    body.woocommerce-cart #primary,
    body.woocommerce-checkout #primary,
    body.woocommerce-cart .site-main,
    body.woocommerce-checkout .site-main,
    body.woocommerce-cart .woocommerce,
    body.woocommerce-checkout .woocommerce,
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        padding-left: clamp(12px, 2.8vw, 24px);
        padding-right: clamp(12px, 2.8vw, 24px);
    }
}

@media (max-width: 768px) {
    /* Prevent sidebar "right-leaning" overflow on smaller screens */
    body .widget-area {
        padding-left: 0;
        border-left: none;
    }

    /* Cart + Checkout (Blocks): mobile-first stability + legibility */
    body.woocommerce-cart .inside-article,
    body.woocommerce-checkout .inside-article,
    body.woocommerce-cart .entry-content,
    body.woocommerce-checkout .entry-content {
        padding: 0;
        margin: 0;
        max-width: none;
        background: transparent;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
    body.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide {
        width: 100%;
        max-width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.woocommerce-cart .wc-block-cart,
    body.woocommerce-checkout .wc-block-checkout {
        overflow-x: clip;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart img,
    body.woocommerce-checkout .wp-block-woocommerce-checkout img {
        max-width: 100%;
        height: auto;
    }

    body.woocommerce-cart :where(.wc-block-components-sidebar-layout, .wc-block-components-main, .wc-block-components-sidebar, .wc-block-components-totals-wrapper),
    body.woocommerce-checkout :where(.wc-block-components-sidebar-layout, .wc-block-components-main, .wc-block-components-sidebar, .wc-block-components-totals-wrapper) {
        min-width: 0;
        max-width: 100%;
    }

    body.woocommerce-cart :where(.wc-block-cart-item, .wc-block-cart-items__row, .wc-block-components-order-summary),
    body.woocommerce-checkout :where(.wc-block-components-order-summary, .wp-block-woocommerce-checkout-order-summary-block, .wp-block-woocommerce-checkout-fields-block) {
        min-width: 0;
        max-width: 100%;
    }

    /* Any tables that appear (extensions / legacy blocks): keep them contained without horizontal bleed. */
    body.woocommerce-cart .wp-block-woocommerce-cart table,
    body.woocommerce-checkout .wp-block-woocommerce-checkout table {
        width: 100%;
        max-width: 100%;
        table-layout: fixed;
    }

    body.woocommerce-cart .wp-block-woocommerce-cart :is(th, td),
    body.woocommerce-checkout .wp-block-woocommerce-checkout :is(th, td) {
        overflow-wrap: anywhere;
        word-break: normal;
    }

    body.woocommerce-cart .entry-title,
    body.woocommerce-checkout .entry-title {
        font-size: clamp(1.6rem, 6.5vw, 2.2rem);
        line-height: 1.08;
        margin-bottom: var(--space-md);
    }

    body.woocommerce-cart .wp-block-woocommerce-cart-items-block,
    body.woocommerce-cart .wp-block-woocommerce-cart-totals-block,
    body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block,
    body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-totals-block,
    body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-coupon-form-block,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-payment-block,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-terms-block {
        padding: var(--space-md);
    }

    body.woocommerce-cart .wc-block-cart-item,
    body.woocommerce-cart .wc-block-cart-items__row,
    body.woocommerce-checkout .wc-block-checkout__billing-address,
    body.woocommerce-checkout .wc-block-checkout__shipping-address,
    body.woocommerce-checkout .wc-block-checkout__payment-method {
        padding: var(--space-md);
    }

    body.woocommerce-cart :where(.wc-block-components-radio-control__label, .wc-block-components-checkbox__label, .wc-block-components-notice-banner__content, .wc-block-components-validation-error),
    body.woocommerce-checkout :where(.wc-block-components-radio-control__label, .wc-block-components-checkbox__label, .wc-block-components-notice-banner__content, .wc-block-components-validation-error) {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    body.woocommerce table.shop_table {
        display: block;
        width: 100%;
        overflow-x: auto;
    }

    body.woocommerce-cart .cart-collaterals .cart_totals {
        width: 100%;
        float: none;
    }

    body.woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: var(--font-small);
    }

    body.woocommerce.archive ul.products li.product,
    body.woocommerce.search ul.products li.product,
    body.woocommerce.tax-product_cat ul.products li.product,
    body.woocommerce.tax-product_tag ul.products li.product {
        width: auto !important;
        margin-right: 0 !important;
        float: none !important;
        clear: none !important;
    }

    body.woocommerce.archive ul.products,
    body.woocommerce.search ul.products,
    body.woocommerce.tax-product_cat ul.products,
    body.woocommerce.tax-product_tag ul.products {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 480px) {
    /* Mobile-first archive grid: 1 column (no squish) */
    body.woocommerce.archive ul.products li.product,
    body.woocommerce.search ul.products li.product,
    body.woocommerce.tax-product_cat ul.products li.product,
    body.woocommerce.tax-product_tag ul.products li.product,
    body.single-product .upsells.products ul.products li.product,
    body.single-product .related.products ul.products li.product,
    body.woocommerce-cart .cross-sells ul.products li.product {
        width: 100% !important;
        float: none !important;
        margin-right: 0 !important;
        clear: none !important;
    }

    body.woocommerce.archive ul.products.columns-3 li.product,
    body.woocommerce.archive ul.products.columns-4 li.product,
    body.woocommerce.search ul.products.columns-3 li.product,
    body.woocommerce.search ul.products.columns-4 li.product,
    body.woocommerce.tax-product_cat ul.products.columns-3 li.product,
    body.woocommerce.tax-product_cat ul.products.columns-4 li.product,
    body.woocommerce.tax-product_tag ul.products.columns-3 li.product,
    body.woocommerce.tax-product_tag ul.products.columns-4 li.product {
        width: 100% !important;
        margin-right: 0 !important;
        float: none !important;
    }

    body.woocommerce div.product .product_title {
        font-size: var(--font-h3);
    }

    body.woocommerce div.product p.price {
        font-size: var(--font-h5);
    }
}

/* -------------------------------------------------------------------
   15. STRAGGLERS & POLISH
   ------------------------------------------------------------------- */
/* Star Ratings */
body.woocommerce .star-rating {
    color: var(--accent-gold);
    font-size: var(--font-small);
}

body.woocommerce .star-rating::before {
    color: var(--surface-warm);
}

/* Shipping Methods */
body.woocommerce .woocommerce-shipping-methods {
    list-style: none inside;
    padding: 0;
    margin: 0;
}

body.woocommerce .woocommerce-shipping-methods li {
    margin-bottom: var(--space-sm);
    display: flex;
    align-items: center;
}

body.woocommerce .woocommerce-shipping-methods li input {
    margin-right: var(--space-sm);
}

/* Tag Cloud */
body.woocommerce .tagcloud a {
    display: inline-block;
    padding: var(--space-xs) var(--space-sm);
    border: 1px solid var(--border-default);
    color: var(--text-secondary);
    font-size: var(--font-small);
    text-decoration: none;
    margin: 0 var(--space-xs) var(--space-xs) 0;
    border-radius: 9999px;
    transition: var(--transition-micro);
}

body.woocommerce .tagcloud a:hover {
    background-color: var(--surface-inset);
    color: var(--text-primary);
    border-color: var(--border-interactive);
}

/* Stock Status (Single Product & General) */
.woocommerce .stock.in-stock {
    color: var(--accent-sage);
    font-weight: 600;
    font-family: var(--font-family-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.woocommerce .stock.out-of-stock {
    color: var(--status-error-text);
    font-weight: 600;
    font-family: var(--font-family-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Ensure no 'Gone' ghost text in stock status */
.woocommerce .stock.out-of-stock::before {
    content: none !important;
}

/* Password Reset */
body.woocommerce .woocommerce-ResetPassword {
    max-width: 500px;
    margin: 0 auto;
    padding: var(--space-xl) 0;
}

/* Downloads */
body.woocommerce .woocommerce-order-downloads__download-file {
    background-color: var(--accent-gold);
    color: var(--text-primary);
    padding: var(--space-xs) var(--space-sm);
    text-decoration: none;
    font-weight: 700;
    font-size: var(--font-small);
    border-radius: var(--radius-sm);
}

body.woocommerce .woocommerce-order-downloads__download-file:hover {
    background-color: var(--accent-gold-hover);
}

/* -------------------------------------------------------------------
   16. CART CROSS-SELLS & WISHLIST HARMONIZATION
   ------------------------------------------------------------------- */

/* Block Grid badges keep token colors from section 6; set placement here */
body.woocommerce .wc-block-grid__product-onsale,
body.woocommerce .wc-block-grid__product-out-of-stock {
    position: absolute;
    top: var(--space-sm);
    left: var(--space-sm);
    right: auto;
    z-index: 10;
}

/* Product Title & Price Harmonization for Grid Blocks */
body.woocommerce .wc-block-grid__product-title,
body.woocommerce .wc-block-grid__product-title a {
    font-family: var(--font-bricolage);
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-primary);
    margin-bottom: var(--space-sm);
    text-align: center;
    text-decoration: none;
}

body.woocommerce .wc-block-grid__product-price {
    font-family: var(--font-bricolage);
    font-weight: 700;
    color: var(--accent-terracotta);
    font-size: 1rem;
    margin-bottom: var(--space-md);
    text-align: center;
}

/* Force Image border like global products */
.woocommerce ul.products li.product a img,
.wc-block-grid__product-image img {
    border-bottom: 1px solid var(--border-subtle) !important;
}

.woocommerce ul.products li.product:hover a img,
.wc-block-grid__product:hover .wc-block-grid__product-image img {
    border-color: var(--accent-gold) !important;
}

/* Remove default dots from any circular elements in wishlist */
body.woocommerce .yith-wcwl-add-to-wishlist .ajax-loading {
    display: none;
}

/* Force Cart Cross-Sell Buttons to match Global Primary Buttons */
body.woocommerce .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link {
    display: inline-grid;
    place-items: center;
    font-family: var(--font-bricolage);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    padding: 0 var(--space-xl);
    font-size: 0.8rem;
    background-color: var(--accent-gold);
    color: var(--text-primary);
    border: none;
    border-radius: 0;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, opacity 0.3s ease, transform var(--motion-fast) var(--ease-snap);
    height: 52px;
    cursor: pointer;
    text-decoration: none;
    line-height: 1;
}

body.woocommerce .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:hover {
    background-color: var(--accent-gold-hover);
    transform: translateY(-1px);
    box-shadow: var(--shadow-soft);
    color: var(--text-primary);
}

/* Newer Woo block button class support */
body.woocommerce .wc-block-grid__product .wc-block-components-product-button__button,
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product .wc-block-components-product-button__button,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product .wc-block-components-product-button__button {
    display: inline-grid;
    place-items: center;
    width: 100%;
    min-height: 44px;
    margin-top: auto;
    padding: 0 var(--space-lg);
    border: none;
    border-radius: 0;
    background-color: var(--accent-gold);
    color: var(--text-primary);
    font-family: var(--font-bricolage);
    font-weight: 800;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, opacity 0.3s ease, transform var(--motion-fast) var(--ease-snap);
    text-decoration: none;
}

body.woocommerce .wc-block-grid__product .wc-block-components-product-button__button:hover,
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product .wc-block-components-product-button__button:hover,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product .wc-block-components-product-button__button:hover {
    background-color: var(--accent-gold-hover);
    color: var(--text-primary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-soft);
}

body.woocommerce .woocommerce-breadcrumb,
body.woocommerce .woocommerce-breadcrumb a {
    font-family: var(--font-family-body);
    font-size: var(--font-small);
    color: var(--text-secondary);
    text-decoration: none;
    border-bottom: none;
}

body.woocommerce .woocommerce-breadcrumb .separator {
    color: var(--text-muted);
}

body.woocommerce .woocommerce-breadcrumb a:hover {
    color: var(--link-hover);
    text-decoration: none;
    border-bottom: none;
}

/* Review surfaces */
body.woocommerce #reviews,
body.woocommerce #review_form,
body.woocommerce .woocommerce-Reviews,
body.woocommerce .commentlist {
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

body.woocommerce .comment-form-rating,
body.woocommerce p.stars {
    color: var(--accent-gold);
}

/* Coupon + variation utility controls */
body.woocommerce .coupon .input-text {
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
    color: var(--text-primary);
    min-height: 44px;
}

body.woocommerce .coupon .button,
body.woocommerce .reset_variations {
    border: 1px solid var(--accent-soft-gilt);
    color: var(--text-primary);
    background: transparent;
}

body.woocommerce .coupon .button:hover,
body.woocommerce .reset_variations:hover {
    border-color: var(--accent-gold);
    color: var(--link-hover);
}

/* Variation stock clarity */
body.woocommerce .woocommerce-variation-availability,
body.woocommerce .woocommerce-variation-availability .stock,
body.woocommerce .stock.available-on-backorder {
    color: var(--text-secondary);
    font-family: var(--font-family-body);
}

/* Shipping method list + terms wrappers */
body.woocommerce ul#shipping_method {
    list-style: none;
    margin: 0;
    padding: 0;
}

body.woocommerce ul#shipping_method li {
    margin-bottom: var(--space-sm);
}

body.woocommerce-checkout #ship-to-different-address,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
body.woocommerce-checkout .woocommerce-terms-and-conditions,
body.woocommerce-checkout .woocommerce-form__label-for-checkbox.woocommerce-terms-and-conditions-checkbox {
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

/* Account wrappers */
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce-MyAccount-downloads,
body.woocommerce-account .woocommerce-order-details,
body.woocommerce-account .woocommerce-customer-details,
body.woocommerce-account .woocommerce-Address,
body.woocommerce-account .woocommerce-Addresses {
    background-color: var(--surface-base);
    border: 1px solid var(--border-default);
    padding: var(--space-lg);
}

body.woocommerce-account .woocommerce-Address-title,
body.woocommerce-account .woocommerce-MyAccount-navigation-link,
body.woocommerce .woocommerce-order-overview {
    color: var(--text-primary);
    font-family: var(--font-bricolage);
}

body.woocommerce-account .woocommerce-Address address {
    color: var(--text-secondary);
    font-family: var(--font-family-body);
}

body.woocommerce .woocommerce-order-details,
body.woocommerce .woocommerce-customer-details,
body.woocommerce .woocommerce-MyAccount-downloads {
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
}

/* Woo form aliases often emitted by core/templates */
body.woocommerce .woocommerce-form-row,
body.woocommerce .woocommerce-form-row--wide,
body.woocommerce .woocommerce-form__label,
body.woocommerce .woocommerce-form__label-for-checkbox {
    font-family: var(--font-family-body);
    color: var(--text-primary);
}

body.woocommerce .woocommerce-form__input,
body.woocommerce .woocommerce-Input,
body.woocommerce .woocommerce-Input--text {
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
    color: var(--text-primary);
    min-height: 44px;
}

body.woocommerce form.woocommerce-form-login,
body.woocommerce form.woocommerce-form-register,
body.woocommerce-account form.woocommerce-form,
body.woocommerce-account form.woocommerce-EditAccountForm {
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
}

/* Mini-cart classic + block */
body.woocommerce .woocommerce-mini-cart-item,
body.woocommerce .woocommerce-mini-cart__buttons,
body.woocommerce .widget_shopping_cart .widget_shopping_cart_content,
body.woocommerce .wc-block-mini-cart,
body.woocommerce .wc-block-mini-cart__drawer,
body.woocommerce .wc-block-mini-cart__footer,
body.woocommerce .wc-block-mini-cart__footer-actions {
    font-family: var(--font-family-body);
    color: var(--text-primary);
}

body.woocommerce .wc-block-mini-cart__button,
body.woocommerce .wc-block-mini-cart__icon,
body.woocommerce .wc-block-mini-cart__badge,
body.woocommerce .wc-block-mini-cart__amount {
    color: var(--text-primary);
}

/* Cart drawer segmentation (block + classic) */
body.woocommerce .wc-block-mini-cart__drawer {
    display: flex;
    flex-direction: column;
    max-height: min(100vh, 720px);
    background-color: var(--surface-elevated);
}

body.woocommerce .wc-block-mini-cart__header {
    position: sticky;
    top: 0;
    z-index: var(--z-elevated);
    background-color: var(--surface-elevated);
    padding-bottom: var(--space-3x);
}

body.woocommerce .wc-block-mini-cart__items,
body.woocommerce .wc-block-mini-cart__products {
    flex: 1 1 auto;
    overflow: auto;
    min-height: 0;
}

body.woocommerce .wc-block-mini-cart__footer {
    position: sticky;
    bottom: 0;
    z-index: var(--z-elevated);
    background-color: var(--surface-elevated);
    box-shadow: 0 -12px 24px var(--ink-06);
}

body.woocommerce .widget_shopping_cart_content {
    display: flex;
    flex-direction: column;
    max-height: min(80vh, 560px);
    background-color: var(--surface-elevated);
}

body.woocommerce .widget_shopping_cart_content .woocommerce-mini-cart {
    flex: 1 1 auto;
    overflow: auto;
    min-height: 0;
}

body.woocommerce .widget_shopping_cart_content .woocommerce-mini-cart__total,
body.woocommerce .widget_shopping_cart_content .woocommerce-mini-cart__buttons {
    position: sticky;
    bottom: 0;
    z-index: var(--z-elevated);
    background-color: var(--surface-elevated);
}

/* Block notices + validation */
body.woocommerce .wc-block-components-notices,
body.woocommerce .wc-block-components-notice-banner,
body.woocommerce .wc-block-components-notice-banner__content,
body.woocommerce .wc-block-components-validation-error {
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

body.woocommerce .wc-block-components-notice-banner__dismiss {
    color: var(--text-secondary);
}

/* Block totals/quantity/payment details */
body.woocommerce .wc-block-components-totals-item,
body.woocommerce .wc-block-components-totals-item__label,
body.woocommerce .wc-block-components-totals-item__value,
body.woocommerce .wc-block-components-totals-coupon,
body.woocommerce .wc-block-formatted-money-amount,
body.woocommerce .wc-block-components-formatted-money-amount {
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

body.woocommerce .wc-block-components-quantity-selector,
body.woocommerce .wc-block-components-quantity-selector__button,
body.woocommerce .wc-block-components-quantity-selector__button--minus,
body.woocommerce .wc-block-components-quantity-selector__button--plus {
    border-color: var(--accent-soft-gilt);
    color: var(--text-primary);
}

body.woocommerce .wc-block-gateway-container,
body.woocommerce .wc-block-gateway-input,
body.woocommerce .wc-card-expiry-element,
body.woocommerce .wc-card-cvc-element,
body.woocommerce .wc-block-components-payment-method-icon {
    color: var(--text-primary);
}

body.woocommerce .wc-item-meta,
body.woocommerce .wc-block-components-product-details,
body.woocommerce .wc-block-components-product-metadata,
body.woocommerce .wc-block-components-product-rating,
body.woocommerce .wc-block-components-product-rating__stars,
body.woocommerce .wc-block-grid__product-rating__stars {
    color: var(--text-secondary);
}

/* Product/gallery/filter blocks */
body.woocommerce .wc-block-product-gallery,
body.woocommerce .wc-block-product-gallery-thumbnails,
body.woocommerce .wc-block-product-gallery-thumbnails__scrollable,
body.woocommerce .wc-block-components-product-image,
body.woocommerce .wc-block-components-product-image--aspect-ratio-auto {
    background-color: transparent;
}

body.woocommerce .wc-block-product-filter-removable-chips__items,
body.woocommerce .wc-block-product-filter-checkbox-list__input,
body.woocommerce .wc-block-attribute-filter__button,
body.woocommerce .wc-block-rating-filter,
body.woocommerce .widget_price_filter .ui-slider .ui-slider-handle,
body.woocommerce .widget_price_filter .ui-slider .ui-slider-range {
    color: var(--text-primary);
}

body.woocommerce .wc-block-product-filters__open-overlay,
body.woocommerce .wc-block-product-filters__overlay,
body.woocommerce .wc-block-product-filters__overlay-content,
body.woocommerce .wc-block-product-filters__overlay-dialog {
    background-color: var(--surface-base);
    color: var(--text-primary);
}

/* Search list / account dropdown / next-prev controls */
body.woocommerce .woocommerce-search-list__list,
body.woocommerce .woocommerce-search-list__search,
body.woocommerce .woocommerce-search-list__item-prefix,
body.woocommerce .woocommerce-search-list__item-label,
body.woocommerce .wc-block-customer-account__dropdown,
body.woocommerce .wc-block-next-previous-buttons,
body.woocommerce .wc-block-next-previous-buttons__button,
body.woocommerce .wc-block-next-previous-buttons__icon {
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

/* Cart/checkout/order block wrappers */
body.woocommerce .wp-block-woocommerce-cart-order-summary-block,
body.woocommerce .wp-block-woocommerce-checkout-order-summary-block,
body.woocommerce .wp-block-woocommerce-checkout-totals-block,
body.woocommerce .wp-block-woocommerce-checkout-fields-block,
body.woocommerce .wp-block-woocommerce-customer-account,
body.woocommerce .wp-block-woocommerce-mini-cart-contents,
body.woocommerce .wp-block-woocommerce-cart .wc-block-cart-items,
body.woocommerce .wp-block-woocommerce-cart .wc-block-cart-items__row,
body.woocommerce .wp-block-woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce .wp-block-woocommerce-empty-cart-block,
body.woocommerce .wp-block-woocommerce-related-products,
body.woocommerce .wp-block-woocommerce-related-products ul.wc-block-grid__products,
body.woocommerce .wp-block-woocommerce-related-products .wc-block-grid__product,
body.woocommerce-checkout .wc-block-checkout__cross-sells,
body.woocommerce-checkout .wc-block-checkout__cross-sells .wc-block-grid__product,
body.woocommerce-checkout .woocommerce-checkout-payment,
body.woocommerce-checkout .woocommerce-checkout-review-order,
body.woocommerce-checkout .woocommerce-checkout-review-order-table,
body.woocommerce .cart_totals,
body.woocommerce-checkout #payment .place-order,
body.woocommerce-checkout .place-order {
    color: var(--text-primary);
}

/* Order confirmation tables */
body.woocommerce .wc-block-order-confirmation-downloads__table,
body.woocommerce .wc-block-order-confirmation-totals__table,
body.woocommerce .wc-block-order-confirmation-totals__total {
    border-color: var(--accent-soft-gilt);
    color: var(--text-primary);
}

/* Product page nav cleanup (GeneratePress/Woo collisions) */
body.single-product .post-navigation,
body.single-product .nav-links {
    display: none;
}

/* Explicit selector aliases from matrix */
body.woocommerce .woocommerce-Button,
body.woocommerce .woocommerce-button,
body.woocommerce .wc-block-components-product-button__button {
    background-color: var(--accent-gold);
    color: var(--text-primary);
    border: none;
    border-radius: 0;
}

body.woocommerce .woocommerce-form-coupon-toggle,
body.woocommerce .woocommerce-form-login-toggle {
    color: var(--text-primary);
    font-family: var(--font-family-body);
}

body.woocommerce .woocommerce-form__input-checkbox {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
}

body.woocommerce .woocommerce-message--info,
body.woocommerce .woocommerce-message--success {
    border-left: 2px solid var(--accent-sage);
    background-color: var(--sage-10);
}

body.woocommerce .cat-item.current-cat > a,
body.woocommerce .current-menu-item > a {
    color: var(--text-primary);
}

body.woocommerce .woocommerce-product-details__short-description {
    color: var(--text-secondary);
}

body.woocommerce-account .woocommerce-order-details .order-table {
    border: 1px solid var(--border-default);
    background-color: var(--surface-base);
}

body.woocommerce-cart .cross-sells,
body.woocommerce-cart .upsells.products,
body.woocommerce-order-received .woocommerce-order .cross-sells {
    margin-top: var(--space-xl);
}

body.woocommerce-cart .wp-block-woocommerce-product-collection ul.wc-block-product-template,
body.woocommerce-cart .cross-sells ul.products {
    gap: var(--space-lg);
}

body.woocommerce-cart .cross-sells ul.products li.product {
    border: 1px solid var(--border-subtle);
    background-color: var(--surface-white);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
    transition: transform var(--motion-base) var(--ease-soft), box-shadow var(--motion-base), border-color var(--motion-fast);
}

body.woocommerce-cart .cross-sells ul.products li.product:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-soft);
    border-color: var(--accent-gold);
}

body.woocommerce-cart .cross-sells ul.products li.product a img {
    margin-bottom: var(--space-md);
    border-bottom: 1px solid var(--border-subtle);
    transition: filter var(--motion-base), border-color var(--motion-fast);
    filter: contrast(0.98) brightness(1.01);
}

body.woocommerce-cart .cross-sells ul.products li.product:hover a img {
    border-color: var(--accent-gold);
    filter: contrast(1) brightness(1);
}

body.woocommerce-cart .cross-sells ul.products li.product .woocommerce-loop-product__title {
    margin-bottom: var(--space-sm);
}

body.woocommerce-cart .cross-sells ul.products li.product .price {
    margin-bottom: var(--space-md);
    flex-grow: 1;
}

body.woocommerce-cart .cross-sells ul.products li.product .button,
body.woocommerce-cart .cross-sells ul.products li.product a.button {
    width: 100%;
    height: 40px;
    margin-top: auto;
    padding: 0;
    border-radius: 0;
    display: grid;
    place-items: center;
}

body.woocommerce-checkout .shipping-calculator-button {
    color: var(--link-body);
    font-family: var(--font-bricolage);
    font-weight: 700;
}

body.woocommerce-checkout .shipping-calculator-form {
    border: 1px solid var(--border-default);
    background-color: var(--surface-utility);
    padding: var(--space-md);
}

/* -------------------------------------------------------------------
   17. PALETTE LAYERING (GLOBAL TOKEN-CONSUMER)
   Keep Woo expressive but structurally disciplined.
   ------------------------------------------------------------------- */

/* Utility surfaces: functional containers stay bright and legible. */
body.woocommerce.archive ul.products li.product,
body.woocommerce.search ul.products li.product,
body.woocommerce.tax-product_cat ul.products li.product,
body.woocommerce.tax-product_tag ul.products li.product,
body.single-product .upsells.products ul.products li.product,
body.single-product .related.products ul.products li.product,
body.woocommerce-cart .cross-sells ul.products li.product,
body.woocommerce .wc-block-cart__cross-sells .wc-block-grid__product,
body.woocommerce .wp-block-woocommerce-product-recommendations .wc-block-grid__product,
body.woocommerce .wp-block-woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-grid__product,
body.woocommerce table.shop_table,
body.woocommerce .wp-block-woocommerce-cart-items-block,
body.woocommerce .cart-collaterals .cart_totals,
body.woocommerce-checkout #order_review,
body.woocommerce .woocommerce-form-login,
body.woocommerce .woocommerce-form-register,
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce-MyAccount-downloads,
body.woocommerce-account .woocommerce-order-details,
body.woocommerce-account .woocommerce-customer-details,
body.woocommerce-account .woocommerce-Address,
body.woocommerce-account .woocommerce-Addresses {
    background-color: var(--surface-white);
}

/* Soft layered sections keep cashmere as an alternate, not the default card ground. */
body.woocommerce table.shop_table th {
    background-color: var(--surface-overlay);
}

/* Micro separators use neutral ink ladder for cleaner scan rhythm. */
body.woocommerce table.shop_table tbody tr,
body.woocommerce .wc-block-cart-items__row,
body.woocommerce-checkout #payment ul.payment_methods,
body.woocommerce .woocommerce-mini-cart__total {
    border-color: var(--border-subtle);
}

/* Selected chips: premium emphasis without flattening into warning red. */
body.woocommerce .widget_layered_nav ul.woocommerce-widget-layered-nav-list li.chosen a,
body.woocommerce .woocommerce-widget-layered-nav-list__item--chosen a {
    background-color: var(--gold-18);
    border-color: var(--accent-gold);
    color: var(--text-primary);
}

/* Contrast-safe badge microcopy sizing. */
body.woocommerce span.onsale::before,
body.woocommerce .wc-block-grid__product-onsale::before,
body.woocommerce span.onsale.badge-veto::before,
body.woocommerce .out-of-stock-badge.badge-veto::before,
body.woocommerce .wc-block-grid__product-out-of-stock::before {
    font-size: 0.75rem;
    font-weight: 800;
}

/* ==========================================================================
   MIROCART WOOCOMMERCE INTEGRATION & OVERRIDES
   ========================================================================== */

/* Form Inputs (Eradicating Woo Defaults) */
body.woocommerce form .form-row input.input-text,
body.woocommerce form .form-row textarea,
body.woocommerce select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce select {
    background-color: var(--surface-base);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    padding: 12px 16px; /* Strict 44px minimum touch target */
    color: var(--text-primary);
    width: 100%;
    box-shadow: none;
    transition: border-color var(--motion-fast), box-shadow var(--motion-fast);
}

body.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row input.input-text:focus {
    border-color: var(--border-interactive);
    box-shadow: 0 0 0 3px var(--focus-ring);
}

/* Button & CTA Standardization */
body.woocommerce #respond input#submit.alt,
body.woocommerce a.button.alt,
body.woocommerce button.button.alt,
body.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    background-color: var(--accent-gold);
    color: var(--surface-inverse);
    border-radius: var(--radius-sm);
    padding: 12px var(--space-6x);
    border: none;
    font-weight: 700;
    transition: background-color var(--motion-fast), transform var(--motion-fast) var(--ease-snap);
}

body.woocommerce #respond input#submit.alt:hover,
body.woocommerce a.button.alt:hover,
body.woocommerce button.button.alt:hover,
body.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background-color: var(--accent-gold-hover);
    transform: scale(1.01); /* Capped */
}

/* Cart Drawer Item Baseline Fix (Button Stacking Preventative) */
body.woocommerce .woocommerce-mini-cart-item,
.woocommerce .woocommerce-mini-cart-item {
    display: flex;
    align-items: center;
    gap: var(--space-4x);
}

/* State Notices (Success, Error, Info) */
body.woocommerce .woocommerce-message,
body.woocommerce .woocommerce-error,
body.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info {
    border-radius: var(--radius-sm);
    padding: var(--space-4x);
    margin-bottom: var(--space-6x);
    display: grid;
    grid-template-columns: auto 1fr auto;
    column-gap: var(--space-3x);
    row-gap: var(--space-2x);
    align-items: center;
}

body.woocommerce .woocommerce-message,
.woocommerce .woocommerce-message {
    background-color: var(--status-success-surface);
    border-top: 2px solid var(--status-success-fill);
    color: var(--status-success-text);
}

body.woocommerce .woocommerce-error,
.woocommerce .woocommerce-error {
    background-color: var(--status-error-surface);
    border-top: 2px solid var(--status-error-deep);
    color: var(--status-error-text);
}

body.woocommerce .woocommerce-info,
.woocommerce .woocommerce-info {
    background-color: var(--status-info-surface);
    border-top: 2px solid var(--status-info-deep);
    color: var(--status-info-text);
}

/* Quantity Spinners & Swatches */
body.woocommerce input[type="number"],
.woocommerce input[type="number"] {
    -moz-appearance: textfield;
}

body.woocommerce input[type="number"]::-webkit-outer-spin-button,
body.woocommerce input[type="number"]::-webkit-inner-spin-button,
.woocommerce input[type="number"]::-webkit-outer-spin-button,
.woocommerce input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Rogue Plugin Defenses */
#tidio-chat,
.trustpilot-widget {
    z-index: var(--z-sticky) !important;
}

#tidio-chat iframe,
.trustpilot-widget iframe {
    z-index: var(--z-sticky) !important;
}
