/* =========================================================
   SPR Theme — WooCommerce Styles
   Full design for: shop, single product, cart, checkout,
   account pages, notices, forms, buttons.
   Extends the existing design system (variables.css loaded first).
   ========================================================= */

/* ──────────────────────────────────────────────
   GLOBAL WC OVERRIDES
   ────────────────────────────────────────────── */

/* Remove default WC focus glow */
.woocommerce a:focus,
.woocommerce button:focus { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* WC notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    background: var(--color-surface);
    border-left: 4px solid var(--color-accent);
    color: var(--color-text);
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius);
    margin-bottom: var(--space-md);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}
.woocommerce-error { border-left-color: var(--color-danger); }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-message a.button,
.woocommerce-info a.button {
    background: var(--color-accent);
    color: var(--color-accent-contrast);
    border-radius: var(--radius-pill);
    padding: 8px 20px;
    font-size: var(--fs-sm);
    font-family: var(--font-display);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none;
    margin-left: auto;
}

/* Page hero (shared with inner WC pages) */
.spr-wc-wrap { padding-top: 0; }

/* Give the cart's two panels more room than the site-wide content container. */
.woocommerce-cart .spr-wc-wrap.container {
    max-width: 1240px;
}

/* ──────────────────────────────────────────────
   SHOP PAGE (archive-product.php)
   ────────────────────────────────────────────── */

.shop-page { padding-top: 0; }

/* WC wraps loop in <ul class="products"> — make it transparent to .shop-grid's CSS grid
   so the <li> elements become direct grid items instead of one collapsed child. */
.shop-grid ul.products {
    display: contents;
    list-style: none;
    padding: 0;
    margin: 0;
}
.shop-grid ul.products > li.product {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.shop-grid ul.products > li.product > .product-card {
    flex: 1;
}

/* Result count inline */
.shop-result-count {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    margin-bottom: var(--space-md);
}

/* WC pagination */
.woocommerce-pagination {
    margin-top: var(--space-xl);
    display: flex;
    justify-content: center;
}
.woocommerce-pagination ul {
    display: flex;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    color: var(--color-text-muted);
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--fs-sm);
    transition: all var(--transition);
}
.woocommerce-pagination ul li a:hover { border-color: var(--color-accent); color: var(--color-accent); }
.woocommerce-pagination ul li span.current {
    background: var(--color-accent);
    color: var(--color-accent-contrast);
    border-color: var(--color-accent);
}

/* ──────────────────────────────────────────────
   PRODUCT CARD (content-product.php)
   ────────────────────────────────────────────── */

/* Add to cart AJAX spinner */
.product-card .add_to_cart_button.loading {
    opacity: 0.7;
    pointer-events: none;
    position: relative;
}
.product-card .add_to_cart_button.loading::after {
    content: '';
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spr-spin .6s linear infinite;
}
.product-card .add_to_cart_button.added { background: var(--color-success) !important; }
.product-card .add_to_cart_button.added::after { display: none; }

@keyframes spr-spin { to { transform: translateY(-50%) rotate(360deg); } }

/* WC star rating in loop */
.star-rating {
    display: inline-block;
    overflow: hidden;
    position: relative;
    height: 1em;
    width: 5.4em;
    font-family: 'WooCommerce', sans-serif;
    font-size: 0.78rem;
    color: var(--color-star);
}
.star-rating::before,
.star-rating span { display: block; }
.star-rating::before {
    content: '\73\73\73\73\73';
    float: left;
    top: 0;
    left: 0;
    position: absolute;
    color: var(--color-line);
}
.star-rating span { overflow: hidden; float: left; top: 0; left: 0; position: absolute; padding-top: 1.5em; }
.star-rating span::before { content: '\73\73\73\73\73'; top: 0; position: absolute; left: 0; }

/* ──────────────────────────────────────────────
   SINGLE PRODUCT (single-product.php)
   ────────────────────────────────────────────── */

.product-detail-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: var(--space-xl);
    align-items: start;
}

/* Out-of-stock badge */
.spr-out-of-stock {
    display: inline-block;
    background: var(--color-danger);
    color: #fff;
    padding: 4px 14px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-xs);
    font-family: var(--font-display);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: var(--space-sm);
}

/* WC quantity input */
.quantity { display: flex; align-items: center; gap: 8px; margin-bottom: var(--space-sm); }
.quantity label { color: var(--color-text-muted); font-size: var(--fs-sm); min-width: 70px; }
.quantity .qty {
    width: 70px;
    text-align: center;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    padding: 8px 12px;
    font-size: var(--fs-base);
    font-family: var(--font-display);
}
.quantity .qty:focus { border-color: var(--color-accent); outline: none; }

/* Single product meta (SKU, categories) */
.product_meta {
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    border-top: 1px solid var(--color-line);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    display: grid;
    gap: 6px;
}
.product_meta span { display: flex; gap: 8px; }
.product_meta span span { color: var(--color-text); }
.product_meta a { color: var(--color-accent); }
.product_meta a:hover { text-decoration: underline; }

/* WC review stars in single */
.woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
}
.woocommerce-product-rating .woocommerce-review-link {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

/* Product tabs — panel visibility handled in pages/single-shop.css
   (pill nav switches the active .pd-tab-panel). */
.pd-tab-body {
    padding-bottom: var(--space-md);
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    line-height: 1.8;
}
.pd-tab-body p { margin-bottom: 10px; }
.pd-tab-body p:last-child { margin-bottom: 0; }

/* Reviews */
.woocommerce-Reviews-title {
    font-family: var(--font-display);
    font-size: var(--fs-lg);
    color: var(--color-text);
    margin-bottom: var(--space-md);
}
#reviews { color: var(--color-text); }
#reviews .comment-text {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    padding: var(--space-md);
    margin-bottom: var(--space-sm);
}
#reviews .comment-text .meta { color: var(--color-text-muted); font-size: var(--fs-sm); margin-bottom: 8px; }
#reviews .description p { color: var(--color-text); font-size: var(--fs-sm); line-height: 1.8; }
#review_form_wrapper { margin-top: var(--space-lg); }
#review_form_wrapper h3 { font-family: var(--font-display); color: var(--color-text); margin-bottom: var(--space-md); }
#review_form_wrapper input,
#review_form_wrapper textarea {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    padding: 10px 14px;
    width: 100%;
    font-size: var(--fs-sm);
    margin-bottom: var(--space-sm);
}
#review_form_wrapper input:focus,
#review_form_wrapper textarea:focus { border-color: var(--color-accent); outline: none; }
#review_form_wrapper .form-submit input[type="submit"] {
    background: var(--color-accent);
    color: var(--color-accent-contrast);
    border: none;
    border-radius: var(--radius-pill);
    padding: 12px 32px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--fs-sm);
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background var(--transition);
    width: auto;
}
#review_form_wrapper .form-submit input[type="submit"]:hover { background: var(--color-accent-2); }

/* ──────────────────────────────────────────────
   CART PAGE (cart/cart.php)
   ────────────────────────────────────────────── */

.cart-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(400px, 1fr);
    gap: clamp(28px, 4vw, 64px);
    align-items: start;
}

/* ── Shared card panel ── */
.cart-card {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.cart-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--space-lg);
    border-bottom: 1px solid var(--color-line);
}

.cart-card__title {
    font-family: var(--font-display);
    font-size: var(--fs-lg);
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
}

.cart-card__count {
    background: var(--color-accent-soft);
    color: var(--color-accent);
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 4px 12px;
    border-radius: 999px;
}

/* ── Cart items list ── */
.cart-items {
    display: flex;
    flex-direction: column;
}

.cart-item {
    display: flex;
    gap: 16px;
    padding: var(--space-md) var(--space-lg);
    border-bottom: 1px solid var(--color-line);
    transition: background var(--transition);
}

.cart-item:last-child { border-bottom: none; }
.cart-item:hover { background: rgba(255,255,255,0.025); }

/* Product image */
.cart-item__img-wrap {
    flex-shrink: 0;
    width: 92px;
    height: 92px;
    border-radius: var(--radius);
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(255,255,255,0.08);
}

.cart-item__img-link {
    display: block;
    width: 100%;
    height: 100%;
}

.cart-item__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px;
    display: block;
    transition: transform 0.35s ease;
}

.cart-item__img-wrap:hover img { transform: scale(1.06); }

/* Details */
.cart-item__details {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cart-item__name-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.cart-item__name {
    font-family: var(--font-display);
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    line-height: 1.3;
    transition: color var(--transition);
}

.cart-item__name:hover { color: var(--color-accent); }

/* Remove button */
.cart-item__remove {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 61, 46, 0.1);
    color: var(--color-danger);
    font-size: 0.6rem;
    text-decoration: none;
    line-height: 1;
    transition: background var(--transition), color var(--transition), transform var(--transition);
}

.cart-item__remove:hover {
    background: var(--color-danger);
    color: #fff;
    transform: scale(1.1);
}

/* Price / qty / subtotal row */
.cart-item__price-row {
    display: grid;
    grid-template-columns: minmax(90px, 1fr) auto minmax(110px, 1fr);
    align-items: center;
    gap: var(--space-md);
    margin-top: 4px;
}

.cart-item__unit-price,
.cart-item__subtotal {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cart-item__subtotal {
    align-items: flex-end;
    text-align: right;
}

.cart-item__price-label {
    font-size: 0.68rem;
    color: var(--color-text-muted);
    font-family: var(--font-display);
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.cart-item__price {
    font-family: var(--font-display);
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-text-muted);
}

.cart-item__price--subtotal {
    color: var(--color-accent);
    font-size: var(--fs-md);
}

/* Qty stepper inside cart — wraps WC's .quantity */
.cart-item__qty-wrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cart-item__qty-wrap > .cart-item__price-label {
    display: block;
}

.cart-item__qty-wrap .quantity {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    overflow: hidden;
    background: var(--color-dark);
    height: 34px;
}

/* Supports WooCommerce and the common quantity-button markup added by themes/plugins. */
.cart-item__qty-wrap .quantity .minus,
.cart-item__qty-wrap .quantity .plus,
.cart-item__qty-wrap .quantity .qty-minus,
.cart-item__qty-wrap .quantity .qty-plus,
.cart-item__qty-wrap .quantity .quantity-minus,
.cart-item__qty-wrap .quantity .quantity-plus {
    width: 34px;
    min-width: 34px;
    height: 100%;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-text-muted);
    font: 700 1rem/1 var(--font-display);
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
}

.cart-item__qty-wrap .quantity .minus,
.cart-item__qty-wrap .quantity .qty-minus,
.cart-item__qty-wrap .quantity .quantity-minus {
    border-right: 1px solid var(--color-line);
}

.cart-item__qty-wrap .quantity .plus,
.cart-item__qty-wrap .quantity .qty-plus,
.cart-item__qty-wrap .quantity .quantity-plus {
    border-left: 1px solid var(--color-line);
}

.cart-item__qty-wrap .quantity button:hover {
    background: var(--color-accent-soft);
    color: var(--color-accent);
}

.cart-item__qty-wrap .qty {
    width: 42px;
    height: 100%;
    text-align: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.875rem;
    background: var(--color-dark);
    border: none;
    color: var(--color-text);
    outline: none;
    -moz-appearance: textfield;
}

.cart-item__qty-wrap .qty::-webkit-inner-spin-button,
.cart-item__qty-wrap .qty::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Cart variation meta */
.woocommerce-cart-form .variation { margin: 0; }
.woocommerce-cart-form .variation dt,
.woocommerce-cart-form .variation dd { font-size: 0.72rem; color: var(--color-text-muted); }

/* ── Cart actions (coupon + update) ── */
.cart-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    flex-wrap: wrap;
    padding: var(--space-md) var(--space-lg);
    border-top: 1px solid var(--color-line);
}

.cart-coupon {
    display: flex;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.cart-coupon__input {
    flex: 1;
    min-width: 0;
    background: var(--color-dark);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    padding: 10px 14px;
    font-size: var(--fs-sm);
    outline: none;
    transition: border-color var(--transition);
}

.cart-coupon__input:focus { border-color: var(--color-accent); }
.cart-coupon__input::placeholder { color: var(--color-text-muted); }

.cart-coupon__btn,
.cart-update-btn {
    background: transparent;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    color: var(--color-text-muted);
    padding: 10px 18px;
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--transition);
}

.cart-coupon__btn:hover,
.cart-update-btn:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
}

/* ── Continue shopping ── */
.cart-continue { margin-top: var(--space-md); }
.cart-continue .btn { font-size: var(--fs-sm); padding: 10px 20px; }

/* ── Summary card (sticky right column) ── */
.cart-summary-col {
    position: sticky;
    top: calc(var(--header-h) + 20px);
}

.cart-summary { padding: var(--space-lg); }

.cart-summary .cart-card__title {
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--color-accent);
    display: block;
}

/* Totals rows */
.cart-totals {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: var(--space-lg);
}

.cart-totals__row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    font-size: var(--fs-sm);
    gap: 12px;
}

/* Keep summary content on the same left edge as its heading and actions. */
.cart-summary .cart-totals__row {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
}

.cart-summary .cart-totals__label {
    flex: none;
    text-align: left;
}

.cart-summary .cart-totals__value {
    text-align: left;
}

.cart-summary .cart-totals__row--shipping-notice {
    justify-content: flex-start;
}

.cart-summary .cart-totals__row--total {
    align-items: flex-start;
}

.cart-totals__label { color: var(--color-text-muted); }
.cart-totals__value { color: var(--color-text); font-weight: 600; text-align: right; }

.cart-totals__coupon-code {
    display: inline-block;
    background: var(--color-accent-soft);
    color: var(--color-accent);
    font-size: 0.68rem;
    font-family: var(--font-display);
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.5px;
    margin-left: 4px;
    text-transform: uppercase;
}

.cart-totals__value--discount { color: var(--color-success); }

.cart-totals__shipping-notice {
    font-size: 0.72rem;
    color: var(--color-text-muted);
    font-style: italic;
}

.cart-totals__row--total {
    padding-top: var(--space-sm);
    border-top: 1px solid var(--color-line);
    margin-top: 4px;
}

.cart-totals__label--total {
    color: var(--color-text);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: var(--fs-md);
}

.cart-totals__value--total {
    color: var(--color-accent);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
}

/* Proceed to Checkout button */
.cart-checkout-btn-wrap {
    margin-top: 10px;
}

.cart-checkout-btn-wrap .btn,
.cart-checkout-btn-wrap .checkout-button,
.cart-checkout-btn-wrap a {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 14px 24px !important;
    font-size: 0.85rem !important;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    border-radius: var(--radius-pill) !important;
    background: var(--grad-accent) !important;
    color: var(--color-accent-contrast) !important;
    box-shadow: var(--shadow-accent) !important;
    transition: transform var(--transition), box-shadow var(--transition) !important;
}

.cart-checkout-btn-wrap .btn:hover,
.cart-checkout-btn-wrap .checkout-button:hover,
.cart-checkout-btn-wrap a:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 32px var(--color-glow-accent) !important;
}

/* Trust signals */
.cart-trust {
    list-style: none;
    margin: var(--space-md) 0 0;
    padding: var(--space-md) 0 0;
    border-top: 1px solid var(--color-line);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cart-trust__item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.cart-trust__icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    background: rgba(34, 197, 94, 0.15);
    color: var(--color-success);
    border-radius: 50%;
    font-size: 0.6rem;
    font-weight: 700;
    line-height: 1;
}

/* WooCommerce notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    border-radius: var(--radius);
    padding: var(--space-sm) var(--space-md);
    margin-bottom: var(--space-md);
    font-size: var(--fs-sm);
    list-style: none;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.woocommerce-message { background: rgba(34,197,94,0.08); border: 1px solid rgba(34,197,94,0.25); color: var(--color-success); }
.woocommerce-error   { background: rgba(255,61,46,0.08); border: 1px solid rgba(255,61,46,0.25); color: var(--color-danger); }
.woocommerce-info    { background: rgba(99,102,241,0.08); border: 1px solid rgba(99,102,241,0.25); color: var(--color-text); }

/* Cart empty state */
.cart-empty-state {
    text-align: center;
    padding: var(--space-2xl) var(--space-lg);
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
}

.cart-empty-state__icon { margin: 0 auto var(--space-lg); display: block; opacity: 0.6; width: fit-content; }
.cart-empty-state__title { font-family: var(--font-display); color: var(--color-text); margin-bottom: var(--space-sm); }
.cart-empty-state__text { color: var(--color-text-muted); margin-bottom: var(--space-lg); }

/* ── Responsive ── */
@media (max-width: 1024px) {
    .cart-page-grid { grid-template-columns: 1fr; }
    .cart-summary-col { position: static; }
}

@media (max-width: 600px) {
    .cart-card__header,
    .cart-item,
    .cart-actions { padding-left: var(--space-sm); padding-right: var(--space-sm); }
    .cart-item { gap: 12px; }
    .cart-item__img-wrap { width: 84px; height: 84px; }
    .cart-item__price-row {
        grid-template-columns: 1fr auto;
        gap: 12px;
    }
    .cart-item__subtotal {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding-top: 10px;
        border-top: 1px solid var(--color-line);
        text-align: left;
    }
    .cart-actions { flex-direction: column; align-items: stretch; }
    .cart-coupon { flex-direction: column; }
    .cart-coupon__input { width: 100%; }
    .cart-coupon__btn,
    .cart-update-btn { width: 100%; }
}

/* ──────────────────────────────────────────────
   CHECKOUT PAGE (checkout/form-checkout.php)
   ────────────────────────────────────────────── */

.spr-checkout-page { padding-block: var(--space-xl); }
.checkout-grid {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: var(--space-xl);
    align-items: start;
}

/* Checkout section cards */
.checkout-section {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    margin-bottom: var(--space-md);
}
.checkout-card {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    margin-bottom: var(--space-md);
}
.checkout-card h3 {
    font-family: var(--font-display);
    font-size: var(--fs-lg);
    color: var(--color-text);
    margin: 0 0 var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--color-accent);
}
.checkout-section-title {
    font-family: var(--font-display);
    font-size: var(--fs-md);
    font-weight: 600;
    color: var(--color-text);
    margin: 0 0 var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--color-accent);
}

/* WC form fields */
.woocommerce-checkout .form-row,
.checkout-form .form-row {
    float: none;
    width: 100%;
    margin-bottom: var(--space-sm);
}
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--space-sm);
}
.woocommerce-checkout .form-row-wide,
.woocommerce-checkout #billing_address_1_field,
.woocommerce-checkout #billing_address_2_field,
.woocommerce-checkout #shipping_address_1_field,
.woocommerce-checkout #shipping_address_2_field {
    grid-column: 1 / -1;
}
.woocommerce-checkout .form-row label,
.checkout-form label {
    display: block;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-text-muted);
    margin-bottom: 5px;
}
.woocommerce-checkout .form-row label abbr { color: var(--color-danger); }

.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.checkout-form input[type="text"],
.checkout-form input[type="email"],
.checkout-form input[type="tel"],
.checkout-form select,
.checkout-form textarea {
    width: 100%;
    background: var(--color-dark);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    padding: 11px 14px;
    font-size: var(--fs-sm);
    font-family: var(--font-body);
    transition: border-color var(--transition);
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus,
.checkout-form input:focus,
.checkout-form select:focus { border-color: var(--color-accent); outline: none; }
.woocommerce-checkout .form-row.woocommerce-invalid input,
.woocommerce-checkout .form-row.woocommerce-invalid select { border-color: var(--color-danger); }
.woocommerce-checkout .form-row.woocommerce-validated input,
.woocommerce-checkout .form-row.woocommerce-validated select { border-color: var(--color-success); }

/* 2-col form row */
.form-row-two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); }

/* Order review */
.checkout-order-review {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: var(--space-md);
    position: sticky;
    top: calc(var(--header-h) + 20px);
}
.checkout-order-review h3 {
    font-family: var(--font-display);
    font-size: var(--fs-md);
    color: var(--color-text);
    padding: var(--space-md);
    margin: 0;
    border-bottom: 1px solid var(--color-line);
}

/* WC order review table */
.woocommerce-checkout-review-order-table,
.shop_table.order_review {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-sm);
}
.woocommerce-checkout-review-order-table th,
.shop_table.order_review th {
    color: var(--color-text-muted);
    font-family: var(--font-display);
    font-size: var(--fs-xs);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: var(--space-sm) var(--space-md);
    border-bottom: 1px solid var(--color-line);
    text-align: left;
}
.woocommerce-checkout-review-order-table td,
.shop_table.order_review td {
    padding: 10px var(--space-md);
    border-bottom: 1px solid var(--color-line);
    color: var(--color-text);
    vertical-align: middle;
}
.woocommerce-checkout-review-order-table tfoot td,
.shop_table.order_review tfoot td { font-weight: 600; }
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    color: var(--color-accent);
    font-family: var(--font-display);
    font-size: var(--fs-md);
}
.woocommerce-checkout-review-order-table .product-name { font-weight: 600; }
.woocommerce-checkout-review-order-table .product-total { text-align: right; }

/* Payment methods */
.woocommerce-checkout .payment_methods {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-md);
}
.woocommerce-checkout .payment_methods li {
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    margin-bottom: 8px;
    overflow: hidden;
    transition: border-color var(--transition);
}
.woocommerce-checkout .payment_methods li.payment_method_selected { border-color: var(--color-accent); }
.woocommerce-checkout .payment_methods li:has(> .woocommerce-info) {
    border: 0;
    border-radius: 0;
    margin: 0;
    overflow: visible;
}
.woocommerce-checkout .payment_methods li > .woocommerce-info {
    width: 100%;
    margin: 0;
    padding: var(--space-md);
    display: block;
    line-height: 1.65;
}
.woocommerce-checkout .payment_methods label {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    cursor: pointer;
    color: var(--color-text);
    font-weight: 600;
    font-size: var(--fs-sm);
    margin: 0;
}
.woocommerce-checkout .payment_methods input[type="radio"] { accent-color: var(--color-accent); }
.woocommerce-checkout .payment_box {
    padding: var(--space-sm) var(--space-md);
    background: var(--color-dark);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    border-top: 1px solid var(--color-line);
}

/* Place order button */
.woocommerce-checkout #payment .place-order {
    display: block;
    width: 100%;
    padding: var(--space-md);
    margin: 0;
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
    display: block;
    width: 100%;
    margin-bottom: var(--space-md);
}

.woocommerce-checkout #place_order,
.wc-checkout-place-order {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    height: auto;
    padding: 15px 24px;
    margin: 0;
    background: var(--grad-accent);
    color: var(--color-accent-contrast);
    border: none;
    border-radius: var(--radius-pill);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: var(--fs-base);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all var(--transition);
    box-shadow: var(--shadow-accent);
    text-align: center;
    white-space: nowrap;
    float: none;
}
.woocommerce-checkout #place_order:hover { transform: translateY(-2px); box-shadow: 0 12px 30px var(--color-glow-accent); }
.woocommerce-checkout #place_order.loading { opacity: 0.7; pointer-events: none; }

/* Checkout privacy policy */
.woocommerce-privacy-policy-text {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    text-align: center;
    margin-bottom: var(--space-sm);
}
.woocommerce-privacy-policy-text a { color: var(--color-accent); }

/* ──────────────────────────────────────────────
   MY ACCOUNT PAGE
   ────────────────────────────────────────────── */

.spr-account-page { padding-block: var(--space-xl); }
.account-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: var(--space-xl);
    align-items: start;
}

/* Account navigation */
.woocommerce-MyAccount-navigation {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--color-line); }
.woocommerce-MyAccount-navigation ul li:last-child { border-bottom: none; }
.woocommerce-MyAccount-navigation ul li a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px var(--space-md);
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    font-weight: 500;
    transition: all var(--transition);
}
.woocommerce-MyAccount-navigation ul li a:hover { color: var(--color-accent); background: var(--color-surface-2); }
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--active a {
    color: var(--color-accent);
    background: rgba(248,130,29,0.08);
    border-left: 3px solid var(--color-accent);
}

/* Account content */
.woocommerce-MyAccount-content {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
}
.woocommerce-MyAccount-content h2 {
    font-family: var(--font-display);
    color: var(--color-text);
    font-size: var(--fs-lg);
    margin: 0 0 var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--color-accent);
}

/* Orders table */
.woocommerce-orders-table,
.shop_table.order_details,
.shop_table.woocommerce-orders-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-sm);
}
.woocommerce-orders-table th,
.shop_table.order_details th {
    color: var(--color-text-muted);
    font-family: var(--font-display);
    font-size: var(--fs-xs);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 10px 14px;
    border-bottom: 1px solid var(--color-line);
    text-align: left;
}
.woocommerce-orders-table td,
.shop_table.order_details td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--color-line);
    color: var(--color-text);
    vertical-align: middle;
}
.woocommerce-orders-table td mark { background: none; color: inherit; }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button {
    padding: 6px 14px;
    border-radius: var(--radius-pill);
    background: var(--color-accent);
    color: var(--color-accent-contrast);
    font-family: var(--font-display);
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: background var(--transition);
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button:hover { background: var(--color-accent-2); }

/* Status colors */
.woocommerce-order-status { font-weight: 700; }
.woocommerce-order-status.order-status-processing { color: var(--color-accent); }
.woocommerce-order-status.order-status-completed  { color: var(--color-success); }
.woocommerce-order-status.order-status-cancelled  { color: var(--color-danger); }
.woocommerce-order-status.order-status-on-hold    { color: var(--color-star); }

/* Account forms */
.woocommerce-EditAccountForm input[type="text"],
.woocommerce-EditAccountForm input[type="email"],
.woocommerce-EditAccountForm input[type="password"],
.woocommerce-address-fields input,
.woocommerce-address-fields select {
    background: var(--color-dark);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    padding: 10px 14px;
    width: 100%;
    font-size: var(--fs-sm);
    margin-bottom: var(--space-sm);
}
.woocommerce-EditAccountForm input:focus,
.woocommerce-address-fields input:focus,
.woocommerce-address-fields select:focus { border-color: var(--color-accent); outline: none; }

/* Account submit buttons */
.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content input[type="submit"] {
    display: inline-block;
    padding: 12px 28px;
    background: var(--grad-accent);
    color: var(--color-accent-contrast);
    border: none;
    border-radius: var(--radius-pill);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: var(--fs-sm);
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all var(--transition);
    text-align: center;
}
.woocommerce-MyAccount-content .button:hover { transform: translateY(-2px); box-shadow: var(--shadow-accent); }

/* Login/Register form */
.woocommerce-form-login,
.woocommerce-form-register {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    max-width: 520px;
    margin-inline: auto;
}
.woocommerce-form-login h2,
.woocommerce-form-register h2 {
    font-family: var(--font-display);
    color: var(--color-text);
    margin-bottom: var(--space-md);
}
.woocommerce-form-login .form-row input,
.woocommerce-form-register .form-row input {
    background: var(--color-dark);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    padding: 11px 14px;
    width: 100%;
    font-size: var(--fs-sm);
}
.woocommerce-form-login .form-row input:focus,
.woocommerce-form-register .form-row input:focus { border-color: var(--color-accent); outline: none; }
.woocommerce-form-login .form-row label,
.woocommerce-form-register .form-row label { color: var(--color-text-muted); font-size: var(--fs-sm); font-weight: 600; }
.woocommerce-form-login__rememberme { color: var(--color-text-muted); font-size: var(--fs-sm); }
.woocommerce-form-login input[type="submit"],
.woocommerce-form-register input[type="submit"],
.woocommerce-Button { /* same as account buttons */ }

/* Lost password */
.woocommerce-ResetPassword .form-row input { background: var(--color-dark); border: 1px solid var(--color-line); border-radius: var(--radius-sm); color: var(--color-text); padding: 11px 14px; width: 100%; }

/* ──────────────────────────────────────────────
   TOAST NOTIFICATION
   ────────────────────────────────────────────── */

.toast {
    position: fixed;
    bottom: 90px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--color-primary);
    color: #fff;
    padding: 12px 24px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-sm);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    opacity: 0;
    pointer-events: none;
    transition: all var(--transition);
    z-index: 9999;
    white-space: nowrap;
    box-shadow: var(--shadow-lg);
}
.toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.toast svg { color: var(--color-success); flex-shrink: 0; }

/* ──────────────────────────────────────────────
   PAGE HERO (shared)
   ────────────────────────────────────────────── */

.page-hero {
    background: var(--grad-primary);
    padding: calc(var(--header-h) + 40px) 0 var(--space-xl);
    text-align: center;
    position: relative;
    overflow: hidden;
    min-height: unset;
}
.page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero .breadcrumb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: var(--fs-sm);
    color: rgba(255,255,255,0.55);
    margin-bottom: var(--space-sm);
}
.page-hero .breadcrumb a { color: rgba(255,255,255,0.55); }
.page-hero .breadcrumb a:hover { color: var(--color-accent); }
.page-hero .breadcrumb span { color: rgba(255,255,255,0.3); }
.page-hero .breadcrumb span:last-child { color: rgba(255,255,255,0.85); }
.page-hero h1 {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, var(--fs-2xl));
    color: var(--color-text);
    margin: 0 0 var(--space-sm);
}
.page-hero p { color: rgba(255,255,255,0.65); font-size: var(--fs-md); max-width: 560px; margin-inline: auto; }

/* Breadcrumb-only strip on single product page */
.page-hero.page-hero--product {
    min-height: 0;
    height: auto;
    padding: calc(var(--header-h) + 6px) 0 6px;
    text-align: left;
    align-items: unset;
}
.page-hero.page-hero--product .breadcrumb {
    justify-content: flex-start;
    margin-bottom: 0;
}

/* ──────────────────────────────────────────────
   RESPONSIVE — WC PAGES
   ────────────────────────────────────────────── */

@media (max-width: 1024px) {
    .cart-page-grid,
    .checkout-grid { grid-template-columns: 1fr; }
    .cart-summary-panel,
    .checkout-order-review { position: static; }
    .cart-items-header { display: none; }
    .cart-item-row { grid-template-columns: 1fr 80px 80px 40px; }
    .cart-item-product { grid-column: 1 / -1; }
    .account-grid { grid-template-columns: 1fr; }
    .product-detail-grid { grid-template-columns: 1fr; }
    .pd-gallery { position: static; }
}
@media (max-width: 768px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .products,
    .products.columns-2,
    .products.columns-3,
    .products.columns-4 {
        grid-template-columns: minmax(0, 1fr);
    }
    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product,
    .product-card {
        float: none;
        clear: both;
        min-width: 0;
        width: 100%;
        margin-inline: 0;
    }
    .cart-page-grid,
    .checkout-grid,
    .product-detail-grid,
    .account-grid,
    .woocommerce-billing-fields__field-wrapper,
    .woocommerce-shipping-fields__field-wrapper,
    .form-row-two {
        grid-template-columns: minmax(0, 1fr);
    }
    .cart-items-col,
    .cart-summary-col,
    .checkout-customer-col,
    .checkout-order-col,
    .checkout-card,
    .checkout-section,
    .woocommerce-checkout .form-row,
    .checkout-form .form-row {
        min-width: 0;
        width: 100%;
    }
    .woocommerce-checkout .form-row-first,
    .woocommerce-checkout .form-row-last,
    .woocommerce-checkout .form-row-wide {
        float: none;
        grid-column: 1;
        width: 100%;
    }
    .woocommerce-checkout .form-row input,
    .woocommerce-checkout .form-row select,
    .woocommerce-checkout .form-row textarea,
    .checkout-form input,
    .checkout-form select,
    .checkout-form textarea {
        min-width: 0;
        max-width: 100%;
        width: 100%;
    }
    .cart-item__price-row { grid-template-columns: minmax(0, 1fr); }
    .cart-item__subtotal {
        grid-column: 1;
        align-items: flex-start;
        text-align: left;
    }
    .cart-actions,
    .cart-coupon,
    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .cart-coupon > *,
    .cart-actions > *,
    .woocommerce-checkout #place_order {
        width: 100%;
    }
    .checkout-card,
    .checkout-section,
    .cart-summary { padding: var(--space-sm); }
    .checkout-order-review { position: static; }
    body { overflow-x: hidden; }
    .cart-item-row { grid-template-columns: 1fr 40px; gap: 8px; }
    .cart-item-price, .cart-item-qty, .cart-item-subtotal { display: none; }
    .cart-item-product { grid-column: 1; }
}

/* =========================================================
   WhatsApp CTA button (single product)
   ========================================================= */
.pd-wa-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: var(--space-sm);
}
.pd-wa-btn svg { flex-shrink: 0; }

/* Green success colour for WA button */
.btn-success {
  background: #22C55E;
  color: #fff;
  border-color: #22C55E;
}
.btn-success:hover {
  background: #16a34a;
  border-color: #16a34a;
  color: #fff;
}

/* =========================================================
   ORDER RECEIVED / THANK-YOU PAGE
   ========================================================= */
.woocommerce-order {
  max-width: 1120px;
  margin-inline: auto;
}
.woocommerce-order > .woocommerce-notice--success,
.woocommerce-order > .woocommerce-thankyou-order-received {
  position: relative;
  margin: 0 0 var(--space-lg);
  padding: 20px 24px 20px 64px;
  border: 1px solid rgba(34,197,94,0.28);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(34,197,94,0.12), rgba(34,197,94,0.035));
  color: var(--color-text);
  font-size: var(--fs-md);
  font-weight: 600;
}
.woocommerce-order > .woocommerce-notice--success::before,
.woocommerce-order > .woocommerce-thankyou-order-received::before {
  content: '\2713';
  position: absolute;
  top: 50%;
  left: 20px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--color-success);
  color: #fff;
  transform: translateY(-50%);
}
.woocommerce-order-overview.order_details {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 var(--space-lg);
  padding: 1px;
  overflow: hidden;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  background: var(--color-line);
}
.woocommerce-order-overview.order_details li {
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 0;
  background: var(--color-surface);
  color: var(--color-text-muted);
  font-size: var(--fs-xs);
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.7px;
}
.woocommerce-order-overview.order_details li strong {
  display: block;
  margin-top: 7px;
  overflow-wrap: anywhere;
  color: var(--color-text);
  font-size: var(--fs-sm);
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}
.woocommerce-order-details,
.woocommerce-customer-details {
  margin: 0 0 var(--space-lg);
  padding: var(--space-lg);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}
.woocommerce-order-details__title,
.woocommerce-customer-details > h2 {
  margin: 0 0 var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 2px solid var(--color-accent);
  color: var(--color-text);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
}
.woocommerce-order .shop_table.order_details {
  overflow: hidden;
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
}
.woocommerce-order .shop_table.order_details th,
.woocommerce-order .shop_table.order_details td { padding: 14px 16px; }
.woocommerce-order .shop_table.order_details td:last-child,
.woocommerce-order .shop_table.order_details th:last-child { text-align: right; }
.woocommerce-order .shop_table.order_details tfoot tr:last-child th,
.woocommerce-order .shop_table.order_details tfoot tr:last-child td {
  color: var(--color-accent);
  font-size: var(--fs-md);
}
.woocommerce-customer-details .woocommerce-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}
.woocommerce-customer-details .woocommerce-column {
  float: none;
  width: 100%;
  padding: var(--space-md);
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  background: var(--color-dark);
}
.woocommerce-customer-details .woocommerce-column__title {
  margin: 0 0 var(--space-sm);
  color: var(--color-text);
  font-family: var(--font-display);
  font-size: var(--fs-md);
}
.woocommerce-customer-details address {
  color: var(--color-text-muted);
  font-style: normal;
  line-height: 1.8;
}

@media (max-width: 768px) {
  .woocommerce-order-overview.order_details,
  .woocommerce-customer-details .woocommerce-columns {
    grid-template-columns: minmax(0, 1fr);
  }
  .woocommerce-order-details,
  .woocommerce-customer-details { padding: var(--space-sm); }
  .woocommerce-order .shop_table.order_details th,
  .woocommerce-order .shop_table.order_details td { padding: 12px 10px; }
}

/* =========================================================
   Sidebar close button (mobile filter drawer)
   ========================================================= */
.sidebar-close-btn { display: none; }

@media (max-width: 1024px) {
  .sidebar-close-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md);
    border-bottom: 1px solid var(--color-line);
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--color-text);
  }
  .sidebar-close-btn button {
    background: none;
    border: none;
    color: var(--color-text-muted);
    font-size: 1.3rem;
    cursor: pointer;
    line-height: 1;
    padding: 4px 8px;
  }
  .sidebar-close-btn button:hover { color: var(--color-text); }
}

/* Product cards only: 1 column mobile, 2 tablet, 3 desktop. */
@media (max-width: 575px) {
  .shop-grid,
  .shop-grid.cols-2,
  .shop-grid.cols-3,
  .shop-grid.cols-4,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .products,
  .products.columns-2,
  .products.columns-3,
  .products.columns-4 {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (min-width: 576px) and (max-width: 991px) {
  .shop-grid,
  .shop-grid.cols-2,
  .shop-grid.cols-3,
  .shop-grid.cols-4,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .products,
  .products.columns-2,
  .products.columns-3,
  .products.columns-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .shop-grid,
  .shop-grid.cols-2,
  .shop-grid.cols-3,
  .shop-grid.cols-4,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .products,
  .products.columns-2,
  .products.columns-3,
  .products.columns-4 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
