/* ================================================
   NINETEEN71 — PREMIUM WOOCOMMERCE OVERRIDE
   Unifies cart, checkout, single product with
   the new premium aesthetic
   Loaded only on WC pages via functions.php
   ================================================ */

:root {
    --n71p-paper: #FAF8F3;
    --n71p-linen: #F2EEE4;
    --n71p-sand:  #E8DFCE;
    --n71p-ink:   #0E0E0C;
    --n71p-warm:  #C9A96E;
    --n71p-warm-dark: #A08550;
    --n71p-mute:  #8A8577;
    --n71p-line:  rgba(14, 14, 12, 0.1);
}

/* Body on WC pages */
body.woocommerce-cart,
body.woocommerce-checkout,
body.single-product,
body.woocommerce-account,
body.woocommerce-page {
    background: var(--n71p-paper) !important;
    color: var(--n71p-ink);
    font-family: 'Outfit', sans-serif;
}

/* Main content wrapper */
.n71-cart-page,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
    max-width: 1240px;
    margin: 0 auto;
    padding: 60px 40px 120px;
}

/* Page heading */
.woocommerce-cart h1, .woocommerce-cart .entry-title,
.woocommerce-checkout h1, .woocommerce-checkout .entry-title,
.woocommerce-account h1, .woocommerce-account .entry-title,
.woocommerce-page h1.entry-title {
    font-size: clamp(36px, 6vw, 64px) !important;
    font-weight: 300 !important;
    letter-spacing: -0.03em !important;
    line-height: 1 !important;
    margin: 0 0 32px !important;
    color: var(--n71p-ink) !important;
    font-family: 'Outfit', sans-serif !important;
    text-align: center !important;
}

/* ================================================
   CART TABLE
   ================================================ */
.woocommerce table.shop_table,
table.shop_table {
    background: #fff !important;
    border: 1px solid var(--n71p-line) !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    box-shadow: none !important;
    margin: 24px 0 32px !important;
    width: 100% !important;
}
.woocommerce table.shop_table thead,
table.shop_table thead {
    background: var(--n71p-linen) !important;
}
.woocommerce table.shop_table thead th,
table.shop_table thead th {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    color: var(--n71p-mute) !important;
    font-weight: 600 !important;
    padding: 18px 20px !important;
    border: none !important;
    text-align: left !important;
}
.woocommerce table.shop_table td,
table.shop_table td {
    padding: 24px 20px !important;
    border-top: 1px solid var(--n71p-line) !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
    vertical-align: middle !important;
    font-size: 15px !important;
    color: var(--n71p-ink) !important;
}
.woocommerce table.shop_table tr:first-child td {
    border-top: none !important;
}

/* Product thumbnail */
.woocommerce table.shop_table td.product-thumbnail img {
    max-width: 80px !important;
    border-radius: 8px !important;
    border: 1px solid var(--n71p-line) !important;
}

/* Product name link */
.woocommerce table.shop_table td.product-name a {
    color: var(--n71p-ink) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    transition: color 0.2s !important;
}
.woocommerce table.shop_table td.product-name a:hover {
    color: var(--n71p-warm-dark) !important;
}

/* Price */
.woocommerce table.shop_table .amount,
.woocommerce .amount {
    font-weight: 500 !important;
    color: var(--n71p-ink) !important;
    font-family: 'Outfit', sans-serif !important;
}

/* Remove X */
.woocommerce table.shop_table a.remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    background: var(--n71p-linen) !important;
    color: var(--n71p-mute) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    transition: all 0.2s !important;
    border: none !important;
}
.woocommerce table.shop_table a.remove:hover {
    background: var(--n71p-ink) !important;
    color: #fff !important;
}

/* Quantity input */
.woocommerce .quantity,
.woocommerce .qty {
    display: inline-flex !important;
    align-items: center !important;
    border: 1px solid var(--n71p-line) !important;
    border-radius: 100px !important;
    overflow: hidden !important;
    background: #fff !important;
}
.woocommerce .quantity input.qty,
.woocommerce input.qty {
    width: 56px !important;
    text-align: center !important;
    border: none !important;
    background: transparent !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 14px !important;
    padding: 8px 0 !important;
    color: var(--n71p-ink) !important;
    -moz-appearance: textfield;
}
.woocommerce input.qty::-webkit-inner-spin-button,
.woocommerce input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Cart actions row */
.woocommerce table.shop_table .actions {
    background: #fff !important;
    padding: 24px 20px !important;
}
.woocommerce .coupon {
    display: inline-flex !important;
    gap: 8px !important;
    align-items: center !important;
}
.woocommerce input#coupon_code {
    padding: 12px 20px !important;
    border: 1px solid var(--n71p-line) !important;
    border-radius: 100px !important;
    background: #fff !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 14px !important;
    min-width: 180px !important;
}
.woocommerce input#coupon_code:focus {
    outline: none !important;
    border-color: var(--n71p-ink) !important;
}

/* ================================================
   BUTTONS — all WC buttons premium
   ================================================ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button,
body.woocommerce-page .btn,
body.woocommerce-page .button,
.woocommerce-message .button,
.woocommerce-error .button {
    background: var(--n71p-ink) !important;
    color: #fff !important;
    border: 1px solid var(--n71p-ink) !important;
    border-radius: 100px !important;
    padding: 14px 32px !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform 0.2s, box-shadow 0.2s !important;
    box-shadow: none !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .button:hover {
    background: #000 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 28px -8px rgba(14,14,12,0.4) !important;
}

/* Secondary/alt buttons */
.woocommerce button.button[name="apply_coupon"],
.woocommerce button.button[name="update_cart"] {
    background: transparent !important;
    color: var(--n71p-ink) !important;
}
.woocommerce button.button[name="apply_coupon"]:hover,
.woocommerce button.button[name="update_cart"]:hover {
    background: var(--n71p-ink) !important;
    color: #fff !important;
}

/* Proceed to Checkout button — emphasise */
.woocommerce a.checkout-button,
.woocommerce .wc-proceed-to-checkout a.checkout-button {
    background: var(--n71p-ink) !important;
    color: #fff !important;
    font-size: 15px !important;
    padding: 18px 32px !important;
    width: 100% !important;
    text-align: center !important;
    margin-top: 16px !important;
}

/* ================================================
   CART COLLATERALS (Cart Totals box)
   ================================================ */
.cart-collaterals,
.woocommerce .cart-collaterals {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 32px !important;
    margin-top: 32px !important;
}
@media (max-width: 820px) {
    .cart-collaterals,
    .woocommerce .cart-collaterals {
        grid-template-columns: 1fr !important;
    }
}
.woocommerce .cart_totals,
.cart_totals {
    background: #fff !important;
    border: 1px solid var(--n71p-line) !important;
    border-radius: 16px !important;
    padding: 32px 28px !important;
    width: 100% !important;
    float: none !important;
}
.woocommerce .cart_totals h2,
.cart_totals h2 {
    font-size: 22px !important;
    font-weight: 500 !important;
    margin: 0 0 20px !important;
    color: var(--n71p-ink) !important;
    letter-spacing: -0.01em !important;
}
.woocommerce .cart_totals table {
    border: none !important;
    background: transparent !important;
    margin: 0 !important;
}
.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
    padding: 12px 0 !important;
    border-top: 1px solid var(--n71p-line) !important;
    border-bottom: none !important;
    background: transparent !important;
    font-size: 14px !important;
    color: var(--n71p-ink) !important;
    font-family: 'Outfit', sans-serif !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.woocommerce .cart_totals tr.order-total th,
.woocommerce .cart_totals tr.order-total td {
    font-size: 17px !important;
    font-weight: 600 !important;
    padding-top: 18px !important;
    border-top: 2px solid var(--n71p-ink) !important;
}

/* Shipping calculator */
.woocommerce .shipping-calculator-form {
    margin-top: 12px !important;
}
.woocommerce .shipping-calculator-button {
    color: var(--n71p-warm-dark) !important;
    text-decoration: underline !important;
    font-size: 13px !important;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
    background: #fff !important;
    border: 1px solid var(--n71p-line) !important;
    border-left: 3px solid var(--n71p-warm) !important;
    border-radius: 8px !important;
    padding: 16px 20px !important;
    font-size: 14px !important;
    color: var(--n71p-ink) !important;
    margin: 16px 0 !important;
    box-shadow: none !important;
}
.woocommerce-error { border-left-color: #b84a1f !important; }

/* ================================================
   CHECKOUT
   ================================================ */
.woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: 1.3fr 1fr !important;
    gap: 48px !important;
    align-items: flex-start !important;
}
@media (max-width: 900px) {
    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
}
#customer_details {
    background: #fff !important;
    border: 1px solid var(--n71p-line) !important;
    border-radius: 16px !important;
    padding: 32px 28px !important;
}
#customer_details h3 {
    font-size: 20px !important;
    font-weight: 500 !important;
    letter-spacing: -0.01em !important;
    margin: 0 0 20px !important;
    color: var(--n71p-ink) !important;
}

/* Form fields */
.woocommerce form .form-row {
    margin-bottom: 16px !important;
    padding: 0 !important;
}
.woocommerce form .form-row label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: var(--n71p-ink) !important;
    margin-bottom: 6px !important;
    letter-spacing: 0.03em !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.select2-container--default .select2-selection--single {
    width: 100% !important;
    padding: 12px 16px !important;
    border: 1px solid var(--n71p-line) !important;
    border-radius: 8px !important;
    background: var(--n71p-paper) !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 15px !important;
    color: var(--n71p-ink) !important;
    transition: border-color 0.2s !important;
    line-height: 1.3 !important;
    min-height: 46px !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.select2-container--default.select2-container--focus .select2-selection--single {
    outline: none !important;
    border-color: var(--n71p-ink) !important;
    background: #fff !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.3 !important;
    padding-left: 0 !important;
    color: var(--n71p-ink) !important;
}
.select2-container .select2-selection--single {
    height: 46px !important;
}

/* Order review table (right column) */
.woocommerce-checkout-review-order {
    background: #fff !important;
    border: 1px solid var(--n71p-line) !important;
    border-radius: 16px !important;
    padding: 32px 28px !important;
    position: sticky !important;
    top: 160px !important;
}
#order_review_heading {
    font-size: 20px !important;
    font-weight: 500 !important;
    letter-spacing: -0.01em !important;
    margin: 0 0 20px !important;
    color: var(--n71p-ink) !important;
}
.woocommerce-checkout-review-order table {
    border: none !important;
    margin: 0 !important;
}
.woocommerce-checkout-review-order table.shop_table thead {
    background: transparent !important;
}

/* Payment section */
#payment {
    background: var(--n71p-paper) !important;
    border-radius: 12px !important;
    margin-top: 24px !important;
    padding: 20px !important;
    border: 1px solid var(--n71p-line) !important;
}
#payment ul.payment_methods {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}
#payment ul.payment_methods li {
    padding: 14px 16px !important;
    border-bottom: 1px solid var(--n71p-line) !important;
    list-style: none !important;
}
#payment ul.payment_methods li:last-child { border-bottom: none !important; }
#payment ul.payment_methods li label {
    font-weight: 500 !important;
    font-size: 14px !important;
    color: var(--n71p-ink) !important;
}
#payment .payment_box {
    background: #fff !important;
    border-radius: 8px !important;
    padding: 16px !important;
    margin-top: 12px !important;
    border: 1px solid var(--n71p-line) !important;
    font-size: 13px !important;
    color: var(--n71p-mute) !important;
    line-height: 1.6 !important;
}
#place_order {
    width: 100% !important;
    padding: 18px !important;
    font-size: 15px !important;
    margin-top: 16px !important;
}

/* N71 consent checkbox */
.n71-consent {
    padding: 14px 0 !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    font-size: 13px !important;
    color: var(--n71p-mute) !important;
    line-height: 1.5 !important;
}
.n71-consent a { color: var(--n71p-ink) !important; text-decoration: underline !important; }

/* ================================================
   SINGLE PRODUCT — align with premium aesthetic
   ================================================ */
body.single-product .n71-product {
    max-width: 1240px !important;
    margin: 60px auto !important;
    padding: 0 40px !important;
    display: grid !important;
    grid-template-columns: 1.1fr 1fr !important;
    gap: 64px !important;
    align-items: flex-start !important;
}
@media (max-width: 900px) {
    body.single-product .n71-product {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
        padding: 0 20px !important;
        margin: 32px auto !important;
    }
}

.n71-product__gallery img {
    border-radius: 16px !important;
    border: 1px solid var(--n71p-line) !important;
}

.n71-product__title {
    font-size: clamp(32px, 4.5vw, 52px) !important;
    font-weight: 300 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.05 !important;
    color: var(--n71p-ink) !important;
    margin: 0 0 16px !important;
}

.n71-product__brand {
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.25em !important;
    text-transform: uppercase !important;
    color: var(--n71p-warm-dark) !important;
    margin-bottom: 16px !important;
}

.n71-product__price {
    font-size: 28px !important;
    font-weight: 500 !important;
    color: var(--n71p-ink) !important;
    margin: 16px 0 !important;
    letter-spacing: -0.01em !important;
}
.n71-product__price del { color: var(--n71p-mute); font-size: 18px; margin-right: 10px; }

.n71-product__excerpt {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #4a4840 !important;
    margin-bottom: 24px !important;
}

.single_add_to_cart_button {
    background: var(--n71p-ink) !important;
    color: #fff !important;
    width: 100% !important;
    padding: 18px !important;
    border-radius: 100px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    border: none !important;
    cursor: pointer !important;
    margin-top: 16px !important;
    transition: all 0.2s !important;
}
.single_add_to_cart_button:hover {
    background: #000 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 28px -8px rgba(14,14,12,0.4) !important;
}

/* Related products under single product */
.woocommerce .related.products,
.woocommerce .upsells.products {
    max-width: 1240px !important;
    margin: 80px auto 0 !important;
    padding: 0 40px !important;
}
.woocommerce .related.products h2,
.woocommerce .upsells.products h2 {
    font-size: 32px !important;
    font-weight: 300 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 32px !important;
    color: var(--n71p-ink) !important;
}
.woocommerce .related.products ul.products,
.woocommerce .upsells.products ul.products,
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    padding: 0 !important;
    list-style: none !important;
}
@media (max-width: 900px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 14px !important;
    }
}
.woocommerce ul.products li.product,
.woocommerce ul.products li.n71-shop-card-wrap {
    margin: 0 !important;
    width: 100% !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
    border: none !important;
    display: flex !important;
}
.woocommerce ul.products li.product > .n71-shop-card,
.woocommerce ul.products li.n71-shop-card-wrap > .n71-shop-card {
    width: 100% !important;
}
.woocommerce ul.products li.product::before,
.woocommerce ul.products li::before {
    display: none !important;
    content: none !important;
}
/* Section spacing */
.woocommerce .related.products,
.woocommerce .upsells.products {
    background: var(--n71p-paper);
    padding-top: 60px !important;
    padding-bottom: 60px !important;
    border-top: 1px solid var(--n71p-line) !important;
    max-width: none !important;
    margin: 80px 0 0 !important;
}
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2 {
    max-width: 1240px !important;
    margin: 0 auto 32px !important;
    padding: 0 40px !important;
    text-align: left !important;
}
.woocommerce .related.products > ul.products,
.woocommerce .upsells.products > ul.products {
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
}

/* Breadcrumb styling */
.woocommerce .woocommerce-breadcrumb,
.n71-breadcrumb {
    max-width: 1240px !important;
    margin: 24px auto 0 !important;
    padding: 0 40px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    color: var(--n71p-mute) !important;
}
.woocommerce .woocommerce-breadcrumb a,
.n71-breadcrumb a {
    color: var(--n71p-warm-dark) !important;
    text-decoration: none !important;
}

/* Stripe Express Checkout Button — leave default styling */
.wc-stripe-payment-request-button { margin: 12px 0 !important; }

/* ================================================
   RESPONSIVE TWEAKS
   ================================================ */
@media (max-width: 700px) {
    .n71-cart-page,
    .woocommerce-cart .woocommerce,
    .woocommerce-checkout .woocommerce,
    .woocommerce-account .woocommerce {
        padding: 32px 16px 80px !important;
    }
    .woocommerce table.shop_table td { padding: 14px !important; font-size: 14px !important; }
    .woocommerce table.shop_table thead { display: none !important; }
    .woocommerce table.shop_table tbody tr {
        display: block !important;
        border-bottom: 1px solid var(--n71p-line) !important;
        padding: 16px 0 !important;
    }
    .woocommerce table.shop_table tbody td {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        border: none !important;
        padding: 8px 14px !important;
    }
    .woocommerce table.shop_table tbody td::before {
        content: attr(data-title);
        font-family: 'JetBrains Mono', monospace !important;
        font-size: 10px !important;
        letter-spacing: 0.2em !important;
        text-transform: uppercase !important;
        color: var(--n71p-mute) !important;
    }
}
