/**
 * SS Bespoke — Cart, Checkout & WooCommerce Page Styling
 * Matches brand palette: #171717, #f7f5f1, #a58b55, Manrope + Cormorant Garamond
 */

:root {
    --ssb-font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --ssb-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    --ssb-black: #171717;
    --ssb-charcoal: #252525;
    --ssb-text: #303030;
    --ssb-muted: #747474;
    --ssb-white: #ffffff;
    --ssb-cream: #f7f5f1;
    --ssb-border: #e4e1db;
    --ssb-gold: #a58b55;
    --ssb-gold-dark: #8d7546;
    --ssb-radius-sm: 3px;
    --ssb-radius-md: 6px;
    --ssb-touch: 48px;
}

/* =====================================================
   GENERAL WooCommerce Page Wrapper
   ===================================================== */
.woocommerce,
.woocommerce-page {
    font-family: var(--ssb-font-body);
    color: var(--ssb-text);
    background: var(--ssb-white);
}

/* =====================================================
   CART PAGE
   ===================================================== */
.woocommerce-cart .woocommerce {
    padding: 0 16px 60px;
    max-width: 1100px;
    margin: 0 auto;
}

/* Cart page heading */
.woocommerce-cart h1.entry-title,
.woocommerce-cart h1,
.woocommerce-checkout h1.entry-title,
.woocommerce-checkout h1 {
    font-family: var(--ssb-font-display);
    font-size: 32px;
    font-weight: 500;
    color: var(--ssb-black);
    letter-spacing: -0.01em;
    margin-bottom: 28px;
}

/* Cart Table */
.woocommerce table.shop_table {
    border: 1px solid var(--ssb-border) !important;
    border-collapse: collapse !important;
    border-radius: var(--ssb-radius-md) !important;
    overflow: hidden;
    width: 100%;
    font-family: var(--ssb-font-body);
    font-size: 14px;
}

.woocommerce table.shop_table th {
    background: var(--ssb-cream) !important;
    color: var(--ssb-black) !important;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 14px 16px !important;
    border-bottom: 1px solid var(--ssb-border) !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
}

.woocommerce table.shop_table td {
    padding: 16px !important;
    border-bottom: 1px solid var(--ssb-border) !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
    vertical-align: middle !important;
    background: var(--ssb-white) !important;
}

/* Cart product image */
.woocommerce table.shop_table td.product-thumbnail img {
    width: 72px !important;
    height: 90px !important;
    object-fit: cover;
    border-radius: var(--ssb-radius-sm);
    border: 1px solid var(--ssb-border);
}

/* Cart product name */
.woocommerce table.shop_table td.product-name a {
    font-size: 14px;
    font-weight: 600;
    color: var(--ssb-black) !important;
    text-decoration: none;
}
.woocommerce table.shop_table td.product-name a:hover {
    color: var(--ssb-gold-dark) !important;
}

/* Cart remove × button */
.woocommerce table.shop_table td.product-remove a.remove {
    color: var(--ssb-muted) !important;
    font-size: 18px;
    line-height: 1;
    transition: color 0.2s;
}
.woocommerce table.shop_table td.product-remove a.remove:hover {
    color: #c0392b !important;
    background: none !important;
}

/* Cart price / subtotal */
.woocommerce table.shop_table .product-price,
.woocommerce table.shop_table .product-subtotal {
    font-weight: 700;
    color: var(--ssb-black);
}

/* Quantity input */
.woocommerce .quantity .qty {
    border: 1px solid var(--ssb-border) !important;
    border-radius: var(--ssb-radius-sm) !important;
    padding: 8px 10px !important;
    font-size: 14px !important;
    font-family: var(--ssb-font-body) !important;
    width: 60px !important;
    text-align: center;
    color: var(--ssb-black) !important;
    background: var(--ssb-white) !important;
}

/* Update/Continue buttons in cart */
.woocommerce .cart .button,
.woocommerce-cart .cart .button,
input[name="update_cart"] {
    background: var(--ssb-white) !important;
    color: var(--ssb-black) !important;
    border: 1px solid var(--ssb-black) !important;
    border-radius: var(--ssb-radius-sm) !important;
    font-family: var(--ssb-font-body) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 12px 20px !important;
    min-height: 44px !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
}
.woocommerce .cart .button:hover,
input[name="update_cart"]:hover {
    background: var(--ssb-cream) !important;
    color: var(--ssb-black) !important;
}

/* Continue Shopping / Return to Shop button */
.woocommerce .return-to-shop,
.woocommerce-cart .return-to-shop {
    margin-top: 16px;
}
.woocommerce .return-to-shop .button,
.woocommerce-cart .return-to-shop a,
.woocommerce-cart .return-to-shop a.button,
.woocommerce a.button.continue-shopping {
    display: inline-flex !important;
    align-items: center !important;
    background: transparent !important;
    color: var(--ssb-black) !important;
    border: 1.5px solid var(--ssb-black) !important;
    border-radius: var(--ssb-radius-sm) !important;
    font-family: var(--ssb-font-body) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 11px 18px !important;
    min-height: 44px !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
}
.woocommerce .return-to-shop .button:hover,
.woocommerce-cart .return-to-shop a:hover,
.woocommerce-cart .return-to-shop a.button:hover {
    background: var(--ssb-black) !important;
    color: var(--ssb-white) !important;
}


/* Cart Totals Box */
.woocommerce .cart-collaterals {
    margin-top: 32px;
}
.woocommerce .cart_totals {
    background: var(--ssb-cream);
    border: 1px solid var(--ssb-border);
    border-radius: var(--ssb-radius-md);
    padding: 24px;
}
.woocommerce .cart_totals h2 {
    font-family: var(--ssb-font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--ssb-black);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ssb-border);
}
.woocommerce .cart_totals table {
    border: none !important;
    width: 100%;
}
.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
    padding: 10px 0 !important;
    border: none !important;
    border-bottom: 1px solid var(--ssb-border) !important;
    font-size: 14px;
    background: transparent !important;
    color: var(--ssb-text) !important;
}
.woocommerce .cart_totals table .order-total th,
.woocommerce .cart_totals table .order-total td {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--ssb-black) !important;
    border-bottom: none !important;
    padding-top: 14px !important;
}
.woocommerce .cart_totals table th {
    font-weight: 600 !important;
    color: var(--ssb-black) !important;
}

/* Checkout button */
.woocommerce .wc-proceed-to-checkout .checkout-button,
.woocommerce a.checkout-button {
    display: block !important;
    width: 100% !important;
    background: var(--ssb-black) !important;
    color: var(--ssb-white) !important;
    border: 1px solid var(--ssb-black) !important;
    border-radius: var(--ssb-radius-sm) !important;
    font-family: var(--ssb-font-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 16px 24px !important;
    min-height: 52px !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
    margin-top: 16px !important;
}
.woocommerce .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce a.checkout-button:hover {
    background: var(--ssb-charcoal) !important;
    border-color: var(--ssb-charcoal) !important;
}

/* Coupon row */
.woocommerce .coupon input.input-text {
    border: 1px solid var(--ssb-border) !important;
    border-radius: var(--ssb-radius-sm) !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
    font-family: var(--ssb-font-body) !important;
    color: var(--ssb-black) !important;
    background: var(--ssb-white) !important;
    height: 44px !important;
}
.woocommerce .coupon .button {
    height: 44px !important;
    padding: 10px 18px !important;
}

/* Shipping calculator */
.woocommerce .shipping-calculator-button {
    color: var(--ssb-gold-dark) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}

/* =====================================================
   CHECKOUT PAGE
   ===================================================== */
.woocommerce-checkout #customer_details,
.woocommerce-checkout .woocommerce-checkout-review-order {
    background: var(--ssb-white);
}

/* Form fields */
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper select,
.woocommerce-checkout .woocommerce-input-wrapper textarea,
.woocommerce form .input-text,
.woocommerce form select {
    border: 1px solid var(--ssb-border) !important;
    border-radius: var(--ssb-radius-sm) !important;
    padding: 12px 14px !important;
    font-size: 14px !important;
    font-family: var(--ssb-font-body) !important;
    color: var(--ssb-black) !important;
    background: var(--ssb-white) !important;
    min-height: 48px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s !important;
}
.woocommerce form .input-text:focus,
.woocommerce form select:focus {
    border-color: var(--ssb-black) !important;
    outline: none !important;
}

/* Form labels */
.woocommerce form .form-row label {
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    color: var(--ssb-black) !important;
    margin-bottom: 6px !important;
    display: block !important;
}

/* Section headings */
.woocommerce-checkout h3#order_review_heading,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
    font-family: var(--ssb-font-display) !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    color: var(--ssb-black) !important;
    border-bottom: 1px solid var(--ssb-border) !important;
    padding-bottom: 10px !important;
    margin-bottom: 20px !important;
}

/* Order review table */
.woocommerce-checkout-review-order-table {
    border: 1px solid var(--ssb-border) !important;
    border-radius: var(--ssb-radius-md) !important;
    overflow: hidden;
}
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
    padding: 12px 16px !important;
    border-bottom: 1px solid var(--ssb-border) !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
    font-size: 13.5px !important;
    background: var(--ssb-white) !important;
    color: var(--ssb-text) !important;
}
.woocommerce-checkout-review-order-table thead th {
    background: var(--ssb-cream) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: var(--ssb-black) !important;
}
.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .order-total th {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--ssb-black) !important;
    border-bottom: none !important;
}

/* Place Order button */
#place_order,
.woocommerce #payment #place_order {
    background: var(--ssb-black) !important;
    color: var(--ssb-white) !important;
    border: 1px solid var(--ssb-black) !important;
    border-radius: var(--ssb-radius-sm) !important;
    font-family: var(--ssb-font-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    width: 100% !important;
    min-height: 56px !important;
    padding: 16px 24px !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
}
#place_order:hover {
    background: var(--ssb-charcoal) !important;
    border-color: var(--ssb-charcoal) !important;
}

/* Payment box */
#payment {
    background: var(--ssb-cream) !important;
    border: 1px solid var(--ssb-border) !important;
    border-radius: var(--ssb-radius-md) !important;
    padding: 20px !important;
}
#payment .payment_methods li label {
    font-size: 14px !important;
    color: var(--ssb-black) !important;
    font-weight: 600 !important;
}
#payment .payment_box {
    background: var(--ssb-white) !important;
    border: 1px solid var(--ssb-border) !important;
    border-radius: var(--ssb-radius-sm) !important;
    padding: 14px !important;
    font-size: 13px !important;
    color: var(--ssb-muted) !important;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-radius: var(--ssb-radius-sm) !important;
    font-family: var(--ssb-font-body) !important;
    font-size: 13.5px !important;
    padding: 14px 20px !important;
}
.woocommerce-message {
    border-top-color: var(--ssb-gold) !important;
    background: var(--ssb-cream) !important;
}

/* Mobile cart */
@media (max-width: 600px) {
    .woocommerce-cart .woocommerce {
        padding: 0 12px 60px;
    }
    .woocommerce table.shop_table thead {
        display: none;
    }
    .woocommerce table.shop_table,
    .woocommerce table.shop_table tbody,
    .woocommerce table.shop_table tr,
    .woocommerce table.shop_table td {
        display: block !important;
        width: 100% !important;
    }
    .woocommerce table.shop_table tr {
        border-bottom: 2px solid var(--ssb-border) !important;
        padding: 12px 0 !important;
    }
    .woocommerce table.shop_table td {
        padding: 6px 0 !important;
        border-bottom: none !important;
    }
    .woocommerce table.shop_table td::before {
        content: attr(data-title) ": ";
        font-weight: 700;
        font-size: 11px;
        text-transform: uppercase;
        color: var(--ssb-muted);
        letter-spacing: 0.05em;
        margin-right: 6px;
    }
    .woocommerce table.shop_table td.product-thumbnail {
        text-align: center;
    }
    .woocommerce table.shop_table td.product-thumbnail img {
        width: 80px !important;
        height: 100px !important;
        margin: 0 auto;
    }
    .woocommerce table.shop_table td.product-remove {
        text-align: right;
    }
}

/* =====================================================
   CART & CHECKOUT — WooCommerce notices and page header
   Fix: conflicting text/bg on top section of cart page
   ===================================================== */

/* WooCommerce notice bars */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    background: var(--ssb-cream) !important;
    color: var(--ssb-black) !important;
    border-top-color: var(--ssb-gold) !important;
    font-family: var(--ssb-font-body) !important;
    font-size: 14px !important;
    padding: 12px 20px !important;
    border-radius: 0 var(--ssb-radius-sm) var(--ssb-radius-sm) 0 !important;
}
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
    color: var(--ssb-black) !important;
    font-weight: 700 !important;
    text-decoration: underline;
}
.woocommerce-message .button,
.woocommerce-info .button {
    background: var(--ssb-black) !important;
    color: var(--ssb-white) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    padding: 10px 18px !important;
    border-radius: var(--ssb-radius-sm) !important;
    text-decoration: none !important;
    border: none !important;
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover {
    background: var(--ssb-charcoal) !important;
    color: var(--ssb-white) !important;
}

/* Page header / hero on cart & checkout — force readable colors */
.woocommerce-cart .page-header,
.woocommerce-checkout .page-header,
.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header {
    background: var(--ssb-white) !important;
    color: var(--ssb-black) !important;
    padding: 24px 0 8px !important;
}
.woocommerce-cart .page-header h1,
.woocommerce-checkout .page-header h1,
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
    color: var(--ssb-black) !important;
    background: transparent !important;
}

/* GeneratePress inside-content / content area on cart pages */
.woocommerce-cart .inside-article,
.woocommerce-checkout .inside-article {
    background: var(--ssb-white) !important;
    color: var(--ssb-black) !important;
}
