/* ===================================================================
   Custom Booking Cart — Stylesheet
   Fonts: Libre Baskerville (headings/buttons), Montserrat (body)
   =================================================================== */

/* --- Base --- */
.cbc-cart-wrapper {
    width: 100%;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    color: #3E2F23;
    line-height: 1.5;
}

.cbc-cart-wrapper *,
.cbc-cart-wrapper *::before,
.cbc-cart-wrapper *::after {
    box-sizing: border-box;
}

/* ===================================================================
   Notices — custom styled per action type
   =================================================================== */
.cbc-notice {
    padding: 12px 16px;
    margin-bottom: 14px;
    border-radius: 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    line-height: 24px;
    color: #000;
    animation: cbcSlideIn 0.3s ease-out;
}

@keyframes cbcSlideIn {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Green — Added to booking / Booking Updated */
.cbc-notice--success,
.cbc-notice--update {
    background-color: #DEE5D8;
    color: #000;
}

.cbc-notice--success strong,
.cbc-notice--update strong,
.cbc-notice--success .cbc-notice-label,
.cbc-notice--update .cbc-notice-label {
    color: #009900;
    font-weight: 600;
    font-family: "Montserrat", sans-serif;
}

/* Red — Removed from booking / Error */
.cbc-notice--error,
.cbc-notice--removed {
    background-color: #ECE3DE;
    border: 1px solid #D6979C;
    color: #000;
}

.cbc-notice--error strong,
.cbc-notice--removed strong,
.cbc-notice--error .cbc-notice-label,
.cbc-notice--removed .cbc-notice-label {
    color: #BE2D3E;
    font-weight: 600;
    font-family: "Montserrat", sans-serif;
}

/* Empty cart notice — neutral */
.cbc-notice--empty {
    background-color: #DEE5D8;
    border: 1px solid #87C883;
    color: #000;
}

.cbc-notice--empty strong {
    color: #009900;
    font-weight: 600;
}

.cbc-notice--dismissing {
    animation: cbcFadeOut 0.3s ease-in forwards;
}

@keyframes cbcFadeOut {
    to { opacity: 0; transform: translateY(-6px); }
}

/* ===================================================================
   Shop Button
   =================================================================== */
.cbc-shop-btn {
    display: inline-block;
    padding: 6px 14px;
    margin-bottom: 16px;
    background-color: #4F5D3A;
    color: #fff;
    text-decoration: none;
    font-family: "Montserrat", serif;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}

.cbc-shop-btn:hover {
    opacity: 0.85;
    color: #fff;
}

/* ===================================================================
   Cart Table
   =================================================================== */
.cbc-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #d0d8e0;
    background: #fff;
    table-layout: auto;
}

/* Header — light blue-grey like image */
.cbc-table thead th {
    background-color:  #DCE6ED!important;
    color: #000;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 18px;
    padding: 10px 12px;
    text-align: left;
    border: 1px solid #c4d0da;
}

.cbc-th-desc  { width: 600px; }
.cbc-th-from  { width: 131px; }
.cbc-th-until { width: 132px; }
.cbc-th-qty   { width: 100px;  text-align: center !important; }
.cbc-th-price { width: 90px;  text-align: right !important; }
.cbc-th-total { width: 90px;  text-align: right !important; }
.cbc-th-action { width: 41px; text-align: left !important; }

.cbc-table tbody tr,
.cbc-table tbody tr:hover,
.cbc-table tbody tr:focus,
.cbc-table tbody tr:nth-child(odd),
.cbc-table tbody tr:nth-child(even) {
    background: #fff !important;
}

.cbc-table tbody td,
.cbc-table tbody tr:hover td,
.cbc-table tbody tr:focus td {
    padding: 10px;
    border: 1px solid #d0d8e0;
    vertical-align: middle;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    color: #3E2F23;
    background: #fff !important;
}

/* Footer — static blue-grey, NO hover, NO theme override */
.cbc-table tfoot tr,
.cbc-table tfoot tr:hover,
.cbc-table tfoot tr:focus,
.cbc-table tfoot tr:nth-child(odd),
.cbc-table tfoot tr:nth-child(even),
.cbc-table tfoot td,
.cbc-table tfoot tr:hover td,
.cbc-table tfoot tr:focus td,
.cbc-table tfoot tr:nth-child(odd) td,
.cbc-table tfoot tr:nth-child(even) td {
    background: #dce6ed !important;
    color: #3E2F23 !important;
    border: none !important;
    border-top: 1px solid #c4d0da !important;
    padding: 10px 10px;
    font-size: 24px;
    font-weight: 600;
    cursor: default !important;
}

.cbc-td-from,
.cbc-td-until {
    font-size: 13px;
    color: #3E2F23;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* Bed Options Row — white bg, no top border, slight indent */
.cbc-bed-options-row td {
    padding: 10px !important;
    border-top: none !important;
    border-bottom: 1px solid #d0d8e0 !important;
    background-color: #fff !important;
}

.cbc-item-row + .cbc-bed-options-row td {
    border-top: 1px dashed #d0d8e0 !important;
}

.cbc-td-bed-label {
    color: #3E2F23;
    font-size: 16px !important;
    font-weight: 500;
    white-space: nowrap;
}

.cbc-bed-select {
    padding: 5px 10px;
    font-size: 13px;
    border: 1px solid #aab8c2;
    border-radius: 3px;
    color: #3E2F23;
    font-family: "Montserrat", sans-serif;
    background-color: #fff;
    cursor: pointer;
    width: auto;
    max-width: 260px;
}

.cbc-tfoot-label {
    text-align: right !important;
    font-family: "Montserrat", sans-serif;
    font-size: 20px;
}

.cbc-tfoot-value {
    text-align: right !important;
    font-family: "Montserrat", sans-serif;
    font-size: 20px;
    white-space: nowrap;
    margin-right: 30px;
}

/* Product link — now used for event name (top line) */
.cbc-event-link {
    color: #2a6496;
    text-decoration: none;
    font-weight: 600;
    font-size: 16px;
    display: block;
    line-height: 1.3;
    margin-bottom: 1px;
}

.cbc-event-link:hover {
    text-decoration: underline;
    color: #6F8F95;
}

/* Plain event name when no link set */
.cbc-event-name {
    color: #4F5D3A;
    font-weight: 600;
    font-size: 16px;
    display: block;
    line-height: 1.3;
    margin-bottom: 1px;
}

/* Product name — second line, plain text, tight to event name */
.cbc-product-name {
    color: #3E2F23;
    font-size: 15px;
    font-weight: 400;
    display: block;
    line-height: 1.3;
}

/* Keep old .cbc-product-link for any other usage */
.cbc-product-link {
    color: #6F8F95;
    text-decoration: none;
    font-weight: 600;
}

.cbc-product-link:hover { text-decoration: underline; }

.cbc-variation {
    font-size: 15px;
    color: #6b5e50;
}

/* Quantity dropdown */
.cbc-qty-select {
    width: 52px;
    padding: 4px 2px;
    font-size: 13px;
    border: 1px solid #aab8c2;
    border-radius: 3px;
    background: #fff;
    color: #3E2F23;
    cursor: pointer;
    font-family: "Montserrat", sans-serif;
    text-align: center;
}

/* Remove button */
.cbc-remove-btn {
    border: none !important;
    background: transparent !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #c0392b !important;
    padding: 0;
    margin-left: -15px;
    transition: none !important;
    outline: none !important;
    box-shadow: none !important;
}

.cbc-remove-btn:hover,
.cbc-remove-btn:focus,
.cbc-remove-btn:active {
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    color: #c0392b !important;
    opacity: 1 !important;
}

.cbc-remove-btn svg {
    pointer-events: none;
    width: 16px;
    height: 16px;
    fill: currentColor;
    display: block;
}

/* Mobile-only meta (dates, price each, remove text) — hidden on desktop */
.cbc-mobile-only-meta { display: none; }

/* Desktop table — shown on desktop, hidden on mobile */
.cbc-table-desktop { display: table; }
.cbc-table-mobile  { display: none; }

/* ── Mobile table base styles (always applied, visibility controlled by media query) ── */
.cbc-table-mobile {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #d0d8e0;
    background: #fff;
    table-layout: auto;
    font-family: "Montserrat", sans-serif;
}
.cbc-table-mobile thead th {
    background-color: #DCE6ED !important;
    color: #000000 !important;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 16px;
    padding: 10px;
    border: 1px solid #c4d0da;
    text-align: left;
}
.cbc-table-mobile .cbc-th-desc  { width: auto; max-width: 100%; min-width: 0; }
.cbc-table-mobile .cbc-th-qty   { width: 70px; text-align: center !important; }
.cbc-table-mobile .cbc-th-total { width: 90px; text-align: right !important; }
.cbc-table-mobile tbody td {
    padding: 10px;
    border: 1px solid #d0d8e0;
    vertical-align: top;
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    color: #3E2F23;
    background: #fff;
}
.cbc-table-mobile .cbc-td-desc {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.cbc-table-mobile .cbc-event-link { color: #4F5D3A; font-weight: 700; font-size: 13px; text-decoration: none; }
.cbc-table-mobile .cbc-event-name { color: #4F5D3A; font-weight: 700; font-size: 13px; }
.cbc-table-mobile .cbc-product-name { font-size: 16px; font-weight: 400; color: #3E2F23; }
.cbc-table-mobile .cbc-mobile-dates { font-size: 16px; color: #3E2F23; }
.cbc-table-mobile .cbc-mobile-price-each { font-size: 16px; color: #3E2F23; }
.cbc-table-mobile .cbc-mobile-remove { background: none !important; border: none !important; padding: 0 !important; cursor: pointer; }
.cbc-table-mobile .cbc-remove-text { color: #c0392b; font-weight: 700; font-size: 15px; font-family: "Montserrat", sans-serif;  }
.cbc-table-mobile .cbc-td-qty { text-align: center !important; vertical-align: top !important; padding: 10px 6px; }
.cbc-table-mobile .cbc-qty-select { width: 44px; font-size: 12px; padding: 3px 2px; }
.cbc-table-mobile .cbc-td-total { text-align: right !important; vertical-align: top !important; white-space: nowrap; padding: 10px 8px; }
.cbc-table-mobile .cbc-bed-options-row td { padding: 8px 10px; border: 1px solid #d0d8e0; background: #fff; }
.cbc-table-mobile .cbc-td-bed-label { font-size: 12px; color: #3E2F23; white-space: normal; vertical-align: middle; }
.cbc-table-mobile .cbc-bed-select { width: 100%; font-size: 12px; padding: 4px 6px; }
.cbc-table-mobile tfoot tr,
.cbc-table-mobile tfoot td { background-color: #dce6ed !important; border: none !important; border-top: 1px solid #c4d0da !important; padding: 12px 10px; font-weight: 700; }
.cbc-table-mobile .cbc-tfoot-label { text-align: right !important; font-size: 16px; font-family: "Montserrat", sans-serif; }
.cbc-table-mobile .cbc-tfoot-value { text-align: right !important; font-size: 16px; white-space: nowrap; font-family: "Montserrat", sans-serif; }

/* ===================================================================
   Deposit Card — matches reference: white/transparent, rounded, subtle shadow
   =================================================================== */
.cbc-deposit-card {
    background: #F4F4F1;
    border: 1px solid #d8d8d8;
    border-radius: 6px;
    padding: 16px 20px;
    margin-top: 16px;
    color: #3E2F23;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.cbc-deposit-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: 14px;
    font-family: "Montserrat", sans-serif;
    font-weight: 500;
    line-height: 1.4;
    color: #3E2F23;
}

.cbc-deposit-label input[type="checkbox"] {
    margin-top: 2px;
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex-shrink: 0;
    accent-color: #4F5D3A;
}

.cbc-deposit-desc {
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    color: #555;
    margin: 6px 0 0 26px;
    line-height: 1.5;
}

/* ===================================================================
   Booking Fields — Boxes — matches reference exactly
   =================================================================== */
.cbc-fields-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 14px;
    align-items: stretch;
}

.cbc-field-card {
    background-color: #F4F4F1;
    border: 1px solid #d8d8d8;
    border-radius: 6px;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.cbc-field-card--saved {
    border-color: #d8d8d8;
    border-width: 1px;
}

.cbc-field-title {
    margin: 0 0 4px 0;
    padding: 0;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.4;
    border-bottom: none;
    background: transparent;
    color: #3E2F23;
}

/* "Required:" label — bold, colored */
.cbc-label-required {
    font-weight: 700;
    color: #BE2D3E;
    font-family: "Montserrat", sans-serif;
}

/* Field name after Required: — must match Required: weight (700) */
.cbc-label-required + strong,
.cbc-label-required ~ strong {
    font-weight: 700;
}

/* "Optional:" label — normal weight, muted */
.cbc-label-optional {
    font-weight: 700;
    color: #3E2F23;
    font-family: "Montserrat", sans-serif;
}

/* Field name after Optional: — must match Optional: weight (400) */
.cbc-label-optional + strong,
.cbc-label-optional ~ strong {
    font-weight: 700;
}

/* Also cover the <span> wrapper case (Terms & Conditions row) */
span:has(.cbc-label-required) strong {
    font-weight: 700;
}

span:has(.cbc-label-optional) strong {
    font-weight: 700;
}

/* Box description */
.cbc-field-desc {
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    color: #666;
    margin: 0 0 8px 0;
    padding: 0;
    line-height: 1.4;
}

/* Box input area */
.cbc-field-body {
    padding: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.cbc-input {
    width: 100%;
    padding: 8px;
    border: 1px solid #bbb;
    border-radius: 4px;
    font-size: 18px;
    font-family: "Montserrat", sans-serif;
    color: #3E2F23;
    background: #fff;
}

.cbc-input:focus {
    outline: none;
    border-color: #4F5D3A;
    box-shadow: 0 0 0 2px rgba(79,93,58,0.15);
}

.cbc-field-msg {
    display: block;
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    min-height: 18px;
    margin-bottom: 8px;
    line-height: 1.3;
}

.cbc-field-msg--ok    { color: #4F5D3A; font-weight: 600; }
.cbc-field-msg--error { color: #c0392b; }

/* Box footer — save button */
.cbc-field-footer {
    padding: 8px 0 0 0;
    border-top: none;
    background: transparent;
    margin-top: auto;
}

/* Save buttons — #4F5D3A, Montserrat 16px 700 */
.cbc-save-btn {
    display: inline-block;
    padding: 10px 20px;
    background-color: #4F5D3A !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px;
    cursor: pointer;
    font-family: "Montserrat", sans-serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: background-color 0.2s;
    line-height: 1;
}

.cbc-save-btn:hover {
    background-color: #3d4a2c !important;
    color: #fff !important;
}

/* Saving state — dark blue/slate, matches reference image */
.cbc-save-btn--saving {
    background-color: #4f5d3a !important;
    color: #fff !important;
    cursor: wait !important;
    pointer-events: none !important;
}

/* Saved state — stays #4F5D3A, hover darkens slightly */
.cbc-save-btn--saved {
    background-color: #4F5D3A !important;
    color: #fff !important;
    cursor: pointer !important;
    pointer-events: auto !important;
}

.cbc-save-btn--saved:hover {
    background-color: #3d4a2c !important;
    color: #fff !important;
}

/* ===================================================================
   Terms & Conditions — matches reference: white/transparent, rounded
   =================================================================== */
.cbc-terms-card {
    background-color: #F4F4F1;
    border: 1px solid #d8d8d8;
    border-radius: 6px;
    padding: 16px 20px;
    margin-top: 14px;
    color: #3E2F23;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.cbc-terms-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    color: #3E2F23;
}

.cbc-terms-label input[type="checkbox"] {
    margin-top: 3px;
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex-shrink: 0;
    accent-color: #4F5D3A;
}

.cbc-terms-desc {
    font-size: 18px;
    font-family: "Montserrat", sans-serif;
    color: #555;
    margin: 6px 0 0 26px;
    line-height: 1.5;
}

.cbc-terms-desc a {
    color: #6F8F95;
    text-decoration: underline;
}

/* ===================================================================
   Checkout Button — Montserrat 16px 700, matches reference exactly
   =================================================================== */
.cbc-checkout-area {
    margin-top: 16px;
}

.cbc-checkout-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 28px;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    border: none;
    border-radius: 4px;
    transition: background-color 0.2s;
    line-height: 1;
}

/* Disabled — grey locked, matches reference image */
.cbc-checkout--disabled {
    background-color: #9e9e9e;
    color: #fff;
    cursor: not-allowed;
    pointer-events: none;
    border-radius: 4px;
}

.cbc-checkout--disabled svg { color: #fff; }

.cbc-checkout-warnings { margin-top: 10px; }

.cbc-checkout-msg {
    color: #c0392b;
    font-size: 13px;
    font-family: "Montserrat", sans-serif;
    margin: 6px 0;
    font-weight: 600;
}

/* Active — #4F5D3A green, matches reference */
.cbc-checkout--active {
    background-color: #4F5D3A;
    color: #fff;
    cursor: pointer;
}

.cbc-checkout--active:hover {
    background-color: #6F8F95;
    color: #fff;
}

.cbc-checkout--active svg { color: #fff; }

/* ===================================================================
   Loading
   =================================================================== */
.cbc-loading {
    position: relative;
    pointer-events: none;
}

.cbc-loading::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.55);
    z-index: 10;
}

/* ===================================================================
   Hide WooCommerce defaults + all coupon elements
   =================================================================== */
.woocommerce-cart .woocommerce>form.woocommerce-cart-form,
.woocommerce-cart .woocommerce>.cart_totals,
.woocommerce-cart .woocommerce>.return-to-shop,
.woocommerce .coupon,
.woocommerce .woocommerce-form-coupon,
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.checkout_coupon,
form.checkout_coupon,
.coupon-form,
.e-coupon-box,
.elementor-widget-woocommerce-cart .coupon,
.elementor-menu-cart__footer-buttons .coupon,
p.form-row.coupon-form,
.cart-coupon,
.woocommerce-cart .blockUI {
    display: none !important;
}

/* ===================================================================
   Checkout Summary Table
   =================================================================== */
.cbc-checkout-summary {
    width: 100%;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    color: #3E2F23;
    line-height: 1.5;
}

.cbc-checkout-heading {
    font-family: "Libre Baskerville", serif;
    font-size: 18px;
    font-weight: 700;
    color: #4F5D3A;
    margin: 0 0 6px;
}

.cbc-checkout-subtext {
    font-size: 13px;
    color: #6b5e50;
    margin: 0 0 16px;
}

.cbc-checkout-subtext a {
    color: #4F5D3A;
    text-decoration: underline;
}

/* Checkout table tfoot — label + value in separate cells */
.cbc-checkout-table {
    width: 100%;
    table-layout: auto;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #d0d8e0;
}

.cbc-checkout-table th {
    background-color: #DCE6ED !important;
    color: #000000 !important;
    padding: 10px 12px;
    text-align: left;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 14px;
    border: 1px solid #c4d0da;
}

.cbc-checkout-table td {
    padding: 12px;
    border: 1px solid #d0d8e0;
    vertical-align: top;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: #3E2F23;
    background-color: #fff;
}

.cbc-checkout-table tbody tr:hover td {
    background-color: #fff;
}

.cbc-checkout-table tfoot tr,
.cbc-checkout-table tfoot tr:hover,
.cbc-checkout-table tfoot td {
    background-color: #dce6ed !important;
    color: #3E2F23 !important;
    border: none !important;
    border-top: 1px solid #c4d0da !important;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    font-size: 20px;
}

/* Explicit price/total column widths to prevent overflow */
.cbc-checkout-table .cbc-th-price,
.cbc-checkout-table .cbc-th-total {
    width: 120px;
    text-align: right !important;
}

.cbc-checkout-table .cbc-td-price,
.cbc-checkout-table .cbc-td-total {
    text-align: right !important;
    white-space: nowrap;
    overflow: hidden;
}

.cbc-checkout-table .cbc-td-qty {
    text-align: center;
    font-weight: 600;
    color: #4F5D3A;
}

/* Bed choice row in checkout summary */
.cbc-checkout-bed-row td {
    border-top: none !important;
    background-color: #fff;
}

.cbc-checkout-bed-cell {
    padding: 8px 12px !important;
    font-size: 13px;
    color: #3E2F23;
    border-top: 1px dashed #d0d8e0 !important;
}

.cbc-checkout-bed-cell strong {
    color: #3E2F23;
    font-weight: 600;
}

/* Deposit row */
.cbc-checkout-deposit-row td {
    border-top: 1px solid #C8A96A;
}

.cbc-checkout-deposit-info {
    padding: 15px !important;
}

.cbc-checkout-deposit-title {
    color: #CC0000 !important;
    font-family: "Libre Baskerville", serif;
    font-size: 15px;
}

.cbc-checkout-deposit-desc {
    font-size: 15px;
    color: #3E2F23 !important;

}

.cbc-checkout-deposit-value {
    color: #CC0000;
    font-weight: 700;
    white-space: nowrap;
}

/* Contact info row */
.cbc-checkout-info-row td {
    border-top: 1px solid #C8A96A;
}

.cbc-checkout-contact {
    padding: 12px !important;
    font-size: 15px;
    line-height: 1.6;
}

.cbc-checkout-contact strong {
    color: #3E2F23;
}

/* Special requests row */
.cbc-checkout-requests {
    padding: 12px !important;
    font-size: 15px;
}

.cbc-checkout-requests strong {
    color: #3E2F23;
}

/* Locked cart checkout button states */
.woocommerce-cart .cbc-checkout-btn.disabled,
.woocommerce-cart .cbc-checkout-btn[disabled] {
    background-color: #a3a3a3 !important;
    color: #fff !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* ===================================================================
   Responsive — Tablet (≤ 1024px)
   Fixes: 1084px total column overflow, table-layout:fixed, fields layout
   =================================================================== */
@media (max-width: 1024px) {

    /* ── Cart wrapper — allow horizontal scroll as last resort ── */
    .cbc-cart-wrapper {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* ── Main cart table — switch from fixed to auto layout ── */
    .cbc-table,
    .cbc-table-desktop {
        table-layout: auto !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    /* ── Cart column widths — proportional, not fixed px ── */
    .cbc-th-desc  { width: 364px !important; min-width: 0 !important; }
    .cbc-th-from  { width: 130px !important; min-width: 0 !important; }
    .cbc-th-until { width: 130px !important; min-width: 0 !important; }
    .cbc-th-qty   { width: 91px !important; min-width: 0 !important; }
    .cbc-th-price { width: 100px !important; min-width: 0 !important; }
    .cbc-th-total { width: 100px !important; min-width: 0 !important; }
    .cbc-th-action{ width: 40px  !important; min-width: 0 !important; }

    /* ── Cart table cells — tighter padding, smaller font ── */
    .cbc-table thead th {
        font-size: 13px !important;
        padding: 8px 6px !important;
        white-space: nowrap;
    }
    .cbc-table tbody td {
        font-size: 13px !important;
        padding: 8px 6px !important;
    }
    .cbc-table tfoot td {
        font-size: 15px !important;
        padding: 10px 6px !important;
    }
    .cbc-tfoot-label,
    .cbc-tfoot-value { font-size: 15px !important; }

    /* ── Bed select — full width on tablet ── */
    .cbc-bed-select {
        max-width: 100% !important;
        width: 100% !important;
        font-size: 12px !important;
    }

    /* ── Qty select ── */
    .cbc-qty-select {
        width: 52px !important;
        font-size: 12px !important;
    }

    /* ── Booking fields — 2 columns on tablet ── */
    .cbc-fields-row {
        grid-template-columns: 1fr 1fr !important;
        gap: 16px !important;
    }

    /* ── Field cards ── */
    .cbc-field-card {
        padding: 16px !important;
    }

    /* ── Checkout summary table — auto layout, proportional ── */
    .cbc-checkout-table,
    .cbc-table.cbc-checkout-table {
        table-layout: auto !important;
        width: 100% !important;
    }

    .cbc-checkout-table .cbc-th-desc  { width: 40% !important; }
    .cbc-checkout-table .cbc-th-from  { width: 12% !important; }
    .cbc-checkout-table .cbc-th-until { width: 12% !important; }
    .cbc-checkout-table .cbc-th-qty   { width: 8%  !important; }
    .cbc-checkout-table .cbc-th-price { width: 12% !important; }
    .cbc-checkout-table .cbc-th-total { width: 16% !important; }

    .cbc-checkout-table th,
    .cbc-checkout-table td {
        font-size: 13px !important;
        padding: 8px 6px !important;
    }

    /* ── Payment summary ── */
    .cbc-payment-summary {
        width: 100% !important;
        overflow-x: hidden !important;
    }
    .cbc-payment-summary-table td {
        padding: 14px 16px !important;
        font-size: 14px !important;
    }
    .cbc-pay-now-row td {
        font-size: 16px !important;
        padding: 18px 16px !important;
    }

    /* ── Checkout page layout ── */
    .woocommerce-checkout .checkout {
        padding: 16px !important;
    }
    .woocommerce-checkout #payment {
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .woocommerce-checkout #place_order {
        width: 100% !important;
        float: none !important;
        box-sizing: border-box !important;
    }
    .cbc-checkout-summary {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* ── My Account — orders table ── */
    .woocommerce-orders-table {
        table-layout: auto !important;
        width: 100% !important;
        font-size: 13px !important;
    }
    .woocommerce-orders-table th,
    .woocommerce-orders-table td {
        padding: 10px 8px !important;
        font-size: 13px !important;
    }

    /* ── Order expand button ── */
    .cbc-order-expand-btn,
    .cbc-order-collapse-btn {
        font-size: 11px !important;
        padding: 6px 10px !important;
    }

    /* ── Deposits tab table ── */
    .cbc-dep-table {
        table-layout: auto !important;
        width: 100% !important;
    }
    .cbc-dep-table th,
    .cbc-dep-table td {
        font-size: 13px !important;
        padding: 10px 8px !important;
    }

    /* ── Thank you page cards ── */
    .cbc-thankyou-cards {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    .cbc-thankyou-table th,
    .cbc-thankyou-table td {
        font-size: 13px !important;
        padding: 10px 8px !important;
    }

    /* ── My Account dashboard layout ── */
    .woocommerce-account .woocommerce {
        flex-direction: column !important;
        gap: 20px !important;
    }
    .woocommerce-MyAccount-navigation {
        width: 100% !important;
    }
    .woocommerce-MyAccount-content {
        width: 100% !important;
    }
}

/* ===================================================================
   Responsive — Tablet (≤ 768px)
   =================================================================== */
@media (max-width: 768px) {

    /* ── Cart table — tighter still ── */
    .cbc-table thead th {
        font-size: 12px;
        padding: 7px 5px;
    }
    .cbc-table tbody td {
        padding: 8px 5px;
        font-size: 12px;
    }
    .cbc-table tfoot td {
        padding: 8px 5px;
    }
    .cbc-th-from,
    .cbc-th-until { width: 10% !important; }
    .cbc-th-price,
    .cbc-th-total { width: 11% !important; }
    .cbc-tfoot-label,
    .cbc-tfoot-value { font-size: 15px; }

    /* ── Booking fields — single column ── */
    .cbc-fields-row { grid-template-columns: 1fr !important; }

    /* ── Checkout table column widths ── */
    .cbc-checkout-table .cbc-th-price,
    .cbc-checkout-table .cbc-th-total { width: 13% !important; }
    .cbc-checkout-table .cbc-th-from,
    .cbc-checkout-table .cbc-th-until { width: 11% !important; }
    .cbc-checkout-table .cbc-th-qty   { width: 7%  !important; }

    /* ── Payment section ── */
    .woocommerce-checkout #payment { width: 100% !important; box-sizing: border-box; }
    .woocommerce-checkout #place_order { width: 100% !important; box-sizing: border-box; float: none !important; }
    .cbc-checkout-summary { overflow-x: auto; }
    .cbc-payment-summary { width: 100%; }

    /* ── Orders table — horizontal scroll ── */
    .woocommerce-orders-table__wrapper {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
}

/* ===================================================================
   Responsive — Mobile (600px)
   =================================================================== */
@media (max-width: 768px) {

    /* ── Desktop table hidden, mobile table shown ── */
    .cbc-table-desktop { display: none !important; }
    .cbc-table-mobile  { display: table !important; }

    /* ── Checkout table → card layout ── */
    .cbc-checkout-table { table-layout: auto; }
    .cbc-checkout-table thead { display: none; }
    .cbc-checkout-table,
    .cbc-checkout-table tbody,
    .cbc-checkout-table tr,
    .cbc-checkout-table td { display: block; width: 100%; }
    .cbc-checkout-table tbody tr {
        border-bottom: 1px solid #d0d8e0;
        padding: 12px;
        position: relative;
    }
    .cbc-checkout-table tbody td {
        padding: 3px 0;
        border: none;
        text-align: left !important;
    }
    .cbc-checkout-table tbody td::before {
        content: attr(data-label);
        font-weight: 600;
        color: #6b5e50;
        font-size: 15px;
        text-transform: uppercase;
        display: block;
        margin-bottom: 1px;
    }
    .cbc-checkout-table tfoot { display: block; }
    .cbc-checkout-table tfoot tr {
        display: flex;
        justify-content: flex-end;
        gap: 8px;
        padding: 12px;
    }
    .cbc-checkout-table tfoot td {
        display: inline;
        width: auto !important;
        padding: 0;
        border: none !important;
    }

    /* ── Payment Summary table — keep label/value side by side ── */
    .cbc-payment-summary { width: 100%; overflow-x: hidden; }
    .cbc-payment-summary-table { width: 100%; table-layout: fixed; }
    .cbc-payment-summary-table tbody tr { display: table-row !important; }
    .cbc-payment-summary-table tbody td { display: table-cell !important; padding: 10px 12px; }
    .cbc-summary-label { width: 55%; font-size: 15px; }
    .cbc-summary-value { width: 45%; font-size: 15px; text-align: right; }
    .cbc-pay-now-row td { padding: 10px 12px; }

    /* ── WooCommerce payment section — full width ── */
    .woocommerce-checkout #payment { width: 100% !important; box-sizing: border-box; }
    .woocommerce-checkout #payment ul.payment_methods { padding: 12px; }
    .woocommerce-checkout #payment ul.payment_methods li { padding: 10px; }
    .woocommerce-checkout #payment div.payment_box { padding: 12px; }

    /* ── Stripe iframe / card fields — full width ── */
    .woocommerce-checkout #payment .stripe-card-element,
    .woocommerce-checkout #payment .wc-stripe-elements-field,
    .woocommerce-checkout #payment #wc-stripe-card-element,
    .woocommerce-checkout #payment .payment_box iframe,
    .woocommerce-checkout #payment .payment_box > div,
    .woocommerce-checkout #payment .payment_box form { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }

    /* ── Place order button — full width ── */
    .woocommerce-checkout #place_order { width: 100% !important; box-sizing: border-box; }

    /* ── Checkout summary wrapper — no overflow ── */
    .cbc-checkout-summary { overflow-x: hidden; width: 100%; }

    /* ── Booking fields → 1 column, full width, match reference ── */
    .cbc-fields-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    /* Field cards — full width, compact */
    .cbc-field-card {
        padding: 14px;
        border-radius: 6px;
    }

    /* Field title — smaller on mobile */
    .cbc-field-title {
        font-size: 15px;
    }

    /* "Required:" / "Optional:" labels */
    .cbc-label-required,
    .cbc-label-optional {
        font-size: 15px;
    }

    /* Field description */
    .cbc-field-desc {
        font-size: 15px;
        margin-bottom: 8px;
    }

    /* Input full width */
    .cbc-input {
        font-size: 15px;
        padding: 10px;
    }

    /* Save button full width on mobile */
    .cbc-save-btn {
        width: 100%;
        font-size: 15px !important;
        padding: 10px 16px;
        text-align: center;
    }

    /* Deposit card */
    .cbc-deposit-card { padding: 14px; }
    .cbc-deposit-label { font-size: 16px; }
    .cbc-deposit-desc { font-size: 16px; }

    /* Terms card */
    .cbc-terms-card { padding: 14px; }
    .cbc-terms-label { font-size: 16px; }
    .cbc-terms-desc { font-size: 15px; }

    /* ── Checkout button full width ── */
    .cbc-checkout-btn { width: 100%; }
}

/* ===================================================================
   WooCommerce My Account — Login & Register Forms
   Fonts: Libre Baskerville (headings), Montserrat (body/inputs)
   =================================================================== */

/* Wrapper — two-column layout (login | register) */
.woocommerce-account .woocommerce,
.woocommerce-page .woocommerce {
    font-family: "Montserrat", sans-serif;
}

/* Column headings — "Login" / "Register" */
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce .col2-set h2,
.woocommerce-page .col2-set h2 {
    font-family: "Libre Baskerville", serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #3E2F23 !important;
    margin-bottom: 16px !important;
    border-bottom: 2px solid #4F5D3A;
    padding-bottom: 8px;
}

/* Form labels */
.woocommerce-account .woocommerce form .form-row label,
.woocommerce .col2-set .form-row label,
.woocommerce-page .col2-set .form-row label {
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #3E2F23 !important;
    margin-bottom: 4px !important;
    display: block;
}

/* Inputs & Password fields */
.woocommerce-account .woocommerce form .form-row input.input-text,
.woocommerce .col2-set .form-row input.input-text,
.woocommerce-page .col2-set .form-row input.input-text,
.woocommerce form .woocommerce-Input,
.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="password"] {
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    color: #3E2F23 !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    padding: 10px 12px !important;
    width: 100% !important;
    background: #fff !important;
    box-shadow: none !important;
    transition: border-color 0.2s;
}

.woocommerce-account .woocommerce form .form-row input.input-text:focus,
.woocommerce form input[type="text"]:focus,
.woocommerce form input[type="email"]:focus,
.woocommerce form input[type="password"]:focus {
    border-color: #4F5D3A !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(79,93,58,0.15) !important;
}

/* Submit buttons — Login / Register */
.woocommerce-account .woocommerce form .form-row .button,
.woocommerce .col2-set .form-row .button,
.woocommerce-page .col2-set .form-row .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-account .woocommerce .button[type="submit"],
.woocommerce form[name="loginform"] .button,
.woocommerce form .woocommerce-form-login__submit,
.woocommerce form .woocommerce-form-register__submit {
    font-family: "Montserrat", sans-serif !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    background-color: #4F5D3A !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 11px 24px !important;
    cursor: pointer !important;
    transition: background-color 0.2s !important;
    display: inline-block !important;
}

.woocommerce-account .woocommerce form .form-row .button:hover,
.woocommerce .col2-set .form-row .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce form .woocommerce-form-login__submit:hover,
.woocommerce form .woocommerce-form-register__submit:hover {
    background-color: #6F8F95 !important;
    color: #fff !important;
}

/* "Lost your password?" and all form links */
.woocommerce-account .woocommerce a,
.woocommerce .col2-set a,
.woocommerce-page .col2-set a,
.woocommerce form .lost_password a,
.woocommerce-LostPassword a,
.woocommerce-privacy-policy-text a {
    color: #6F8F95 !important;
    text-decoration: underline !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    transition: color 0.2s;
}

.woocommerce-account .woocommerce a:hover,
.woocommerce .col2-set a:hover,
.woocommerce form .lost_password a:hover {
    color: #4F5D3A !important;
}

/* "Remember me" checkbox label */
.woocommerce form .form-row .woocommerce-form__label-for-checkbox,
.woocommerce form .woocommerce-form-login__rememberme {
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    color: #3E2F23 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
}

.woocommerce form .form-row .woocommerce-form__label-for-checkbox input[type="checkbox"],
.woocommerce form .woocommerce-form-login__rememberme input[type="checkbox"] {
    accent-color: #4F5D3A !important;
    width: 15px !important;
    height: 15px !important;
}

/* Privacy policy text */
.woocommerce-privacy-policy-text {
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important;
    color: #666 !important;
    margin-top: 8px !important;
}

/* Form notices / errors */
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    border-radius: 4px !important;
    padding: 12px 16px !important;
}

.woocommerce-account .woocommerce-error {
    background-color: #ECE3DE !important;
    border-color: #D6979C !important;
    color: #000 !important;
}

.woocommerce-account .woocommerce-message {
    background-color: #DEE5D8 !important;
    border-color: #87C883 !important;
    color: #000 !important;
}

/* Two-column layout spacing */
.woocommerce .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
}

/* Form row spacing */
.woocommerce form .form-row {
    margin-bottom: 16px !important;
    padding: 0 !important;
}

/* Required star */
.woocommerce form .form-row .required {
    color: #BE2D3E !important;
}

/* Responsive — stack on mobile */
@media (max-width: 640px) {
    .woocommerce .col2-set {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

/* ===================================================================
   My Account — Custom Login & Register Forms (Updated Dynamic Design)
   =================================================================== */

.cbc-auth-wrapper {
    width: 100%;
    font-family: "Montserrat", sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
    padding: 40px 20px;
}

/* Single container for dynamic form switching */
.cbc-auth-container {
    position: relative;
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
}

/* Card - Enhanced styling */
.cbc-auth-card {
    background: rgba(255,255,255,0.95);
    border: 1px solid #d8d8d8;
    border-radius: 12px;
    padding: 32px 32px 28px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.4s ease;
}

/* Active form */
.cbc-auth-card.active {
    position: relative;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Heading - Enhanced */
.cbc-auth-heading {
    font-family: "Libre Baskerville", serif !important;
    font-size: 26px !important;
    font-weight: 700 !important;
    color: #3E2F23 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    text-align: center !important;
    border-bottom: none !important;
}

/* Subtext - Enhanced */
.cbc-auth-subtext {
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    color: #666;
    margin: 0 0 28px !important;
    text-align: center;
    line-height: 1.5;
}

/* Field group - Enhanced spacing */
.cbc-auth-field {
    margin-bottom: 20px;
}

.cbc-auth-field label {
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #3E2F23 !important;
    display: block !important;
    margin-bottom: 8px !important;
}

.cbc-auth-field label .required {
    color: #BE2D3E !important;
    margin-left: 3px;
}

/* Inputs - Enhanced styling */
.cbc-auth-input,
.cbc-auth-card input.input-text,
.cbc-auth-card input[type="text"],
.cbc-auth-card input[type="email"],
.cbc-auth-card input[type="password"] {
    font-family: "Montserrat", sans-serif !important;
    font-size: 15px !important;
    color: #3E2F23 !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 8px !important;
    padding: 14px 16px !important;
    width: 100% !important;
    background: #fff !important;
    box-shadow: none !important;
    outline: none !important;
    transition: all 0.3s ease !important;
    box-sizing: border-box !important;
}

.cbc-auth-input::placeholder,
.cbc-auth-card input::placeholder {
    color: #999 !important;
    font-style: italic;
}

.cbc-auth-input:focus,
.cbc-auth-card input.input-text:focus,
.cbc-auth-card input[type="text"]:focus,
.cbc-auth-card input[type="email"]:focus,
.cbc-auth-card input[type="password"]:focus {
    border-color: #4F5D3A !important;
    box-shadow: 0 0 0 3px rgba(79,93,58,0.1) !important;
    transform: translateY(-1px);
}

/* Remember me row - Enhanced */
.cbc-auth-row--remember {
    margin-bottom: 24px;
}

.cbc-auth-row--remember label,
.cbc-auth-card .woocommerce-form-login__rememberme {
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    color: #3E2F23 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    cursor: pointer !important;
    margin-bottom: 0 !important;
}

.cbc-auth-row--remember input[type="checkbox"],
.cbc-auth-card .woocommerce-form-login__rememberme input[type="checkbox"] {
    accent-color: #4F5D3A !important;
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0;
}

/* Submit button - Enhanced */
.cbc-auth-btn,
.cbc-auth-card .woocommerce-button,
.cbc-auth-card button[type="submit"] {
    font-family: "Montserrat", sans-serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    background: linear-gradient(135deg, #4F5D3A 0%, #6F8F95 100%) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 16px 32px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    display: block !important;
    width: 100% !important;
    line-height: 1 !important;
    box-shadow: 0 4px 12px rgba(79,93,58,0.3) !important;
}

.cbc-auth-btn:hover,
.cbc-auth-card .woocommerce-button:hover,
.cbc-auth-card button[type="submit"]:hover {
    background: linear-gradient(135deg, #6F8F95 0%, #4F5D3A 100%) !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(79,93,58,0.4) !important;
}

/* Lost password link - Enhanced */
.cbc-auth-lost-password {
    margin-top: 20px;
    text-align: center;
}

.cbc-auth-lost-password a,
.cbc-auth-card a {
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    color: #6F8F95 !important;
    text-decoration: none !important;
    transition: all 0.2s ease;
    border-bottom: 1px solid transparent;
}

.cbc-auth-lost-password a:hover,
.cbc-auth-card a:hover {
    color: #4F5D3A !important;
    border-bottom-color: #4F5D3A;
}

/* Form switching links - New */
.cbc-auth-switch {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #f0f0f0;
    text-align: center;
}

.cbc-auth-switch p {
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    color: #666 !important;
    margin: 0 !important;
}

.cbc-register-link,
.cbc-login-link {
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #4F5D3A !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease;
    border-bottom: 1px solid transparent;
}

.cbc-register-link:hover,
.cbc-login-link:hover {
    color: #6F8F95 !important;
    border-bottom-color: #6F8F95;
}

/* Privacy policy text - Enhanced */
.cbc-auth-privacy {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    color: #666;
    margin-bottom: 20px;
    line-height: 1.5;
    padding: 12px;
    background: #f9f9f9;
    border-radius: 6px;
    border-left: 3px solid #4F5D3A;
}

.cbc-auth-privacy a {
    color: #6F8F95 !important;
}

/* Auto-generated password note - Enhanced */
.cbc-auth-note {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: #666;
    font-style: italic;
    margin-bottom: 20px;
    padding: 12px;
    background: #f0f8ff;
    border-radius: 6px;
    border-left: 3px solid #6F8F95;
}

/* Actions container */
.cbc-auth-actions {
    margin-bottom: 20px;
}

/* WooCommerce notices inside auth page - Enhanced */
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    border-radius: 8px !important;
    padding: 14px 18px !important;
    margin-bottom: 20px !important;
}

.woocommerce-account .woocommerce-error {
    background-color: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    color: #dc2626 !important;
}

.woocommerce-account .woocommerce-message {
    background-color: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    color: #16a34a !important;
}

/* Loading state for forms */
.cbc-auth-card.loading {
    pointer-events: none;
    opacity: 0.7;
}

.cbc-auth-card.loading .cbc-auth-btn::after {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-left: 8px;
    border: 2px solid transparent;
    border-top: 2px solid #fff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Responsive - Enhanced */
@media (max-width: 480px) {
    .cbc-auth-wrapper {
        padding: 20px 15px;
        min-height: 50vh;
    }
    
    .cbc-auth-container {
        max-width: 100%;
    }
    
    .cbc-auth-card {
        padding: 24px 20px 20px;
        border-radius: 8px;
    }
    
    .cbc-auth-heading {
        font-size: 22px !important;
    }
    
    .cbc-auth-input,
    .cbc-auth-card input {
        padding: 12px 14px !important;
        font-size: 14px !important;
    }
    
    .cbc-auth-btn {
        padding: 14px 24px !important;
        font-size: 15px !important;
    }
}

/* ===================================================================
   My Account — Deposits Tab
   =================================================================== */

.cbc-dep-wrapper {
    font-family: "Montserrat", sans-serif;
    color: #000;
    max-width: 100%;
}

/* Header */
.cbc-dep-header {
    margin-bottom: 24px;
}

.cbc-dep-title {
    font-family: "Libre Baskerville", serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #000 !important;
    margin: 0 0 6px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid #4F5D3A;
}

.cbc-dep-subtitle {
    font-size: 13px;
    color: #000;
    margin: 8px 0 0 !important;
}

/* Empty state */
.cbc-dep-empty {
    background: rgba(255,255,255,0.85);
    border: 1px solid #d8d8d8;
    border-radius: 6px;
    padding: 28px 24px;
    text-align: center;
    color: #000;
    font-size: 14px;
}

/* Order Card */
.cbc-dep-card {
    background: rgba(255,255,255,0.9);
    border: 1px solid #d8d8d8;
    border-radius: 6px;
    margin-bottom: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    overflow: hidden;
}

/* Card Header */
.cbc-dep-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    background: #dce6ed;
    border-bottom: 1px solid #e0e0e0;
    flex-wrap: wrap;
}

.cbc-dep-card-meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cbc-dep-order-id {
    font-weight: 700;
    font-size: 14px;
    color: #3E2F23;
}

.cbc-dep-order-id a {
    color: #4F5D3A !important;
    text-decoration: none !important;
}

.cbc-dep-order-id a:hover {
    color: #6F8F95 !important;
    text-decoration: underline !important;
}

.cbc-dep-order-date {
    font-size: 12px;
    color: #888;
}

.cbc-dep-product {
    font-size: 12px;
    color: #555;
    font-style: italic;
}

/* Status badge */
.cbc-dep-status {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    padding: 4px 10px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Status badges — defined in full below */

/* Payment Summary Table - Match Checkout Summary Design Exactly */
/* (Full definition is below in the Payment Summary Table section) */

.cbc-dep-paid-amount {
    color: #009900;
    font-weight: 600;
}

.cbc-dep-remaining-amount {
    color: #BE2D3E;
    font-weight: 600;
}

.cbc-dep-fully-paid {
    color: #009900;
    font-weight: 600;
}

/* Action Buttons — defined in full below */

/* Payment History Toggle */
.cbc-dep-history {
    border-top: 1px solid #eee;
}

.cbc-dep-history-toggle {
    width: 100%;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 12px 20px !important;
    text-align: left !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #4F5D3A !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background-color 0.15s !important;
}

.cbc-dep-history-toggle:hover {
    background: #f7f9f4 !important;
    color: #3d4a2c !important;
}

.cbc-dep-toggle-icon {
    font-size: 11px;
    color: #888;
}

/* History Table */
.cbc-dep-history-body {
    padding: 0 20px 16px;
}

.cbc-dep-history-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    margin-top: 8px;
}

.cbc-dep-history-table thead th {
    background: #f7f9f4;
    color: #3E2F23;
    font-weight: 600;
    font-size: 12px;
    padding: 8px 12px;
    text-align: left;
    border-bottom: 1px solid #e0e0e0;
}

.cbc-dep-history-table tbody td {
    padding: 8px 12px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 13px;
    color: #3E2F23;
    background: #fff !important;
}

.cbc-dep-history-table tbody tr:hover td {
    background: #fff !important;
}

.cbc-dep-hist-status {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 12px;
}

.cbc-dep-hist-status--paid {
    background: #DEE5D8;
    color: #009900;
}

.cbc-dep-hist-status--pending {
    background: #ECE3DE;
    color: #BE2D3E;
}

/* Responsive */
@media (max-width: 640px) {
    .cbc-payment-summary-table tbody tr {
        display: block;
        margin-bottom: 8px;
        border-bottom: 1px solid #e0e0e0;
        padding-bottom: 8px;
    }

    .cbc-payment-summary-table tbody td {
        display: block;
        width: 100%;
        padding: 4px 0;
        border: none !important;
        text-align: left !important;
    }

    .cbc-summary-label {
        font-weight: 600;
        color: #6b5e50;
        font-size: 12px;
        text-transform: uppercase;
        margin-bottom: 2px;
        width: 100%;
    }

    .cbc-summary-value {
        font-size: 14px;
        font-weight: 600;
        width: 100%;
        text-align: left !important;
    }

    .cbc-pay-now-row td {
        background-color: #f7f9f4 !important;
        padding: 8px 0 !important;
    }

    .cbc-dep-card-header {
        flex-direction: column;
        gap: 8px;
    }
}

/* ===================================================================
   WooCommerce My Account Dashboard — Modern UI
   ONLY APPLIES TO MY ACCOUNT PAGES WITH SPECIFIC CLASS
   =================================================================== */

/* Dashboard wrapper - ONLY when cbc-dashboard-active class is present */
.woocommerce-account.cbc-dashboard-active {
    background-color: #f7f7f7 !important;
    padding: 0 !important;
}

/* Main container - 2 column layout */
.woocommerce-account.cbc-dashboard-active .woocommerce {
    display: flex !important;
    gap: 30px !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
    align-items: flex-start !important;
}

/* ===================================================================
   Left Sidebar (Navigation) - Full Height with Logout at Bottom
   =================================================================== */
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 20px 0 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
    position: sticky !important;
    top: 20px !important;
    width: 250px !important;
    flex-shrink: 0 !important;
    min-height: 70vh !important;
    display: flex !important;
    flex-direction: column !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation li {
    margin: 0 !important;
    padding: 0 !important;
}

/* Push logout to bottom */
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation li:last-child {
    margin-top: auto !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation a {
    display: block !important;
    padding: 14px 20px !important;
    color: #000000 !important;
    text-decoration: none !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    border-radius: 8px !important;
    margin: 0 12px 4px !important;
    transition: all 0.2s ease !important;
    border: none !important;
    text-align: left !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation a:hover {
    background-color: #6F8F95 !important;
    color: #ffffff !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--dashboard.is-active a {
    background-color: #4f5d3a !important;
    color: #ffffff !important;
    font-weight: 600 !important;
}

/* ===================================================================
   Right Content Area - ONLY inside dashboard
   =================================================================== */
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 30px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
    min-height: 500px !important;
    flex: 1 !important;
}

/* Typography - ONLY inside dashboard content area */
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h1,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h2,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h3,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h4,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h5,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h6 {
    font-family: "Libre Baskerville", serif !important;
    font-weight: 600 !important;
    color: #000000 !important;
    margin-bottom: 16px !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h1 {
    font-size: 28px !important;
    font-weight: 700 !important;
    margin-bottom: 20px !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h2 {
    font-size: 24px !important;
    font-weight: 600 !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content h3 {
    font-size: 20px !important;
    font-weight: 600 !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content p,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content span,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content td,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content li,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content label,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content input,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content textarea,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content select {
    font-family: "Montserrat", sans-serif !important;
    color: #000000 !important;
}

/* ===================================================================
   Tables Styling - ONLY inside dashboard
   =================================================================== */
.woocommerce-account.cbc-dashboard-active .woocommerce-orders-table,
.woocommerce-account.cbc-dashboard-active .woocommerce-table,
.woocommerce-account.cbc-dashboard-active table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 20px 0 !important;
    background: #ffffff !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
    border: 1px solid #f0f0f0 !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-orders-table thead th,
.woocommerce-account.cbc-dashboard-active .woocommerce-table thead th,
.woocommerce-account.cbc-dashboard-active table thead th {
    background-color: #4f5d3a !important;
    color: #ffffff !important;
    font-family: "Montserrat", sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    padding: 12px 16px !important;
    text-align: left !important;
    border: none !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-orders-table tbody td,
.woocommerce-account.cbc-dashboard-active .woocommerce-table tbody td,
.woocommerce-account.cbc-dashboard-active table tbody td {
    padding: 12px 16px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    color: #000000 !important;
    background: #ffffff !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-orders-table tbody tr:nth-child(even) td,
.woocommerce-account.cbc-dashboard-active .woocommerce-table tbody tr:nth-child(even) td,
.woocommerce-account.cbc-dashboard-active table tbody tr:nth-child(even) td {
    background: #f9f9f9 !important;
}

/* ===================================================================
   Buttons Styling - ONLY inside WooCommerce My Account content area
   Scoped tightly to avoid affecting header/search/nav buttons
   =================================================================== */
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content .woocommerce-button,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content input[type="submit"],
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content button[type="submit"],
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation + * .button {
    background-color: #4f5d3a !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 10px 20px !important;
    font-family: "Montserrat", sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease !important;
    text-decoration: none !important;
    display: inline-block !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content .woocommerce-button:hover,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content input[type="submit"]:hover,
.woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content button[type="submit"]:hover {
    background-color: #6F8F95 !important;
    color: #ffffff !important;
}

/* ===================================================================
   Form Elements - ONLY inside dashboard
   =================================================================== */
.woocommerce-account.cbc-dashboard-active .woocommerce-form-row,
.woocommerce-account.cbc-dashboard-active .form-row {
    margin-bottom: 20px !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-form-row label,
.woocommerce-account.cbc-dashboard-active .form-row label {
    font-family: "Montserrat", sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #000000 !important;
    display: block !important;
    margin-bottom: 6px !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-Input,
.woocommerce-account.cbc-dashboard-active .input-text,
.woocommerce-account.cbc-dashboard-active input[type="text"],
.woocommerce-account.cbc-dashboard-active input[type="email"],
.woocommerce-account.cbc-dashboard-active input[type="password"],
.woocommerce-account.cbc-dashboard-active input[type="tel"],
.woocommerce-account.cbc-dashboard-active textarea,
.woocommerce-account.cbc-dashboard-active select {
    width: 100% !important;
    padding: 12px 16px !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 14px !important;
    color: #000000 !important;
    background: #ffffff !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.woocommerce-account.cbc-dashboard-active .woocommerce-Input:focus,
.woocommerce-account.cbc-dashboard-active .input-text:focus,
.woocommerce-account.cbc-dashboard-active input[type="text"]:focus,
.woocommerce-account.cbc-dashboard-active input[type="email"]:focus,
.woocommerce-account.cbc-dashboard-active input[type="password"]:focus,
.woocommerce-account.cbc-dashboard-active input[type="tel"]:focus,
.woocommerce-account.cbc-dashboard-active textarea:focus,
.woocommerce-account.cbc-dashboard-active select:focus {
    border-color: #4f5d3a !important;
    box-shadow: 0 0 0 2px rgba(79,93,58,0.15) !important;
    outline: none !important;
}

/* ===================================================================
   Responsive Design - ONLY inside dashboard
   =================================================================== */
@media (max-width: 768px) {
    .woocommerce-account.cbc-dashboard-active .woocommerce {
        flex-direction: column !important;
        gap: 20px !important;
        padding: 0 15px !important;
    }

    .woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation {
        position: static !important;
        order: -1 !important;
        padding: 15px 0 !important;
        width: 100% !important;
        min-height: auto !important;
    }

    .woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation ul {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        flex-direction: row !important;
    }

    .woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation li {
        flex: 1 !important;
        min-width: calc(50% - 4px) !important;
        margin-top: 0 !important;
    }

    .woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-navigation a {
        margin: 0 !important;
        text-align: center !important;
        padding: 12px 8px !important;
        font-size: 13px !important;
    }

    .woocommerce-account.cbc-dashboard-active .woocommerce-MyAccount-content {
        padding: 20px !important;
    }
}

/* ===================================================================

/* Checkout Form Styling */
.cbc-checkout-form {
    font-family: "Montserrat", sans-serif;
}

.cbc-checkout-form h3 {
    font-family: "Libre Baskerville", serif;
    font-size: 22px;
    font-weight: 700;
    color: #3E2F23;
    margin: 20px 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #4F5D3A;
}

.cbc-checkout-form .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

.cbc-checkout-form .form-row {
    margin-bottom: 16px;
}

.cbc-checkout-form .form-row label {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: #3E2F23;
    display: block;
    margin-bottom: 6px;
}

.cbc-checkout-form .input-text,
.cbc-checkout-form select,
.cbc-checkout-form textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    color: #3E2F23;
    background: #ffffff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cbc-checkout-form .input-text:focus,
.cbc-checkout-form select:focus,
.cbc-checkout-form textarea:focus {
    border-color: #4F5D3A;
    box-shadow: 0 0 0 2px rgba(79,93,58,0.15);
    outline: none;
}

@media (max-width: 768px) {
    .cbc-checkout-form .col2-set {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ===================================================================
   Deposit Order Styles
   =================================================================== */

/* Orders table deposit information */
.cbc-order-total-deposit {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cbc-total-full {
    font-weight: 600;
    font-size: 16px;
}

.cbc-deposit-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cbc-deposit-info small {
    font-size: 12px;
    color: #666;
    line-height: 1.3;
}

.cbc-deposit-info .cbc-remaining {
    color: #d63638;
    font-weight: 500;
}

/* Deposit status badges */
.cbc-deposit-badge {
    background: #fff3cd;
    color: #856404;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Admin deposit meta box styles */
#cbc-deposit-info .widefat {
    margin-bottom: 10px;
}

#cbc-deposit-info .widefat td {
    padding: 8px 10px;
    border-bottom: 1px solid #ddd;
}

#cbc-deposit-info .widefat td:first-child {
    width: 40%;
    font-weight: 500;
}

/* Deposit tab enhancements */
.cbc-dep-card {
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    margin-bottom: 20px;
    background: #fff;
    overflow: hidden;
}

.cbc-dep-card-header {
    background: #f8f9fa;
    padding: 15px 20px;
    border-bottom: 1px solid #e1e1e1;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cbc-dep-table-wrap {
    overflow-x: auto;
}

.cbc-dep-table {
    width: 100%;
    border-collapse: collapse;
}

.cbc-dep-table th,
.cbc-dep-table td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #f0f0f0;
}

.cbc-dep-table th {
    background: #f8f9fa;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #555;
}

.cbc-dep-paid-amount {
    color: #28a745;
    font-weight: 500;
}

.cbc-dep-remaining-amount {
    color: #dc3545;
    font-weight: 500;
}

.cbc-dep-fully-paid {
    color: #2d5a1b;
    font-weight: 600;
    font-size: 13px;
}

.cbc-dep-pay-btn {
    background: #4F5D3A !important;
    color: #fff !important;
    padding: 6px 14px;
    border-radius: 4px;
    text-decoration: none !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    font-family: "Libre Baskerville", serif !important;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    transition: opacity 0.2s;
    border: none !important;
    cursor: pointer;
    display: inline-block;
}

.cbc-dep-pay-btn:hover {
    opacity: 0.85;
    color: #fff !important;
    text-decoration: none !important;
}

.cbc-dep-view-btn {
    background: #6F8F95 !important;
    color: #fff !important;
    padding: 6px 14px;
    border-radius: 4px;
    text-decoration: none !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    font-family: "Libre Baskerville", serif !important;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    transition: opacity 0.2s;
    border: none !important;
    cursor: pointer;
    display: inline-block;
}

.cbc-dep-view-btn:hover {
    opacity: 0.85;
    color: #fff !important;
    text-decoration: none !important;
}

/* Status badges */
.cbc-dep-status--paid {
    background: #DEE5D8;
    color: #2d5a1b;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border: 1px solid #87C883;
}

.cbc-dep-status--partial {
    background: #FFF8E1;
    color: #E65100;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border: 1px solid #FFB74D;
}

.cbc-dep-status--pending {
    background: #ECE3DE;
    color: #BE2D3E;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border: 1px solid #D6979C;
}

/* Responsive design for deposit tables */
@media (max-width: 768px) {
    .cbc-dep-table,
    .cbc-dep-table thead,
    .cbc-dep-table tbody,
    .cbc-dep-table th,
    .cbc-dep-table td,
    .cbc-dep-table tr {
        display: block;
    }

    .cbc-dep-table thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    .cbc-dep-table tr {
        border: 1px solid #ccc;
        margin-bottom: 10px;
        padding: 10px;
        border-radius: 4px;
    }

    .cbc-dep-table td {
        border: none;
        position: relative;
        padding-left: 50% !important;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .cbc-dep-table td:before {
        content: attr(data-label) ": ";
        position: absolute;
        left: 6px;
        width: 45%;
        padding-right: 10px;
        white-space: nowrap;
        font-weight: 600;
        color: #555;
    }

    .cbc-order-total-deposit {
        align-items: flex-start;
    }
}

/* Email styles for deposit information */
.woocommerce-email .deposit-info-table {
    width: 100%;
    border-collapse: collapse;
    margin: 15px 0;
}

.woocommerce-email .deposit-info-table td {
    padding: 10px;
    border: 1px solid #ddd;
}

.woocommerce-email .deposit-info-table td:first-child {
    background: #f8f9fa;
    font-weight: bold;
    width: 40%;
}
/* ===================================================================
   Checkout Form Customizations - Correct Color Scheme
   Primary: #4F5D3A (Green), Secondary: #6F8F95 (Blue-gray)
   =================================================================== */

/* Hide billing and shipping sections completely */
.woocommerce-checkout #customer_details {
    display: none !important;
}

/* Hide billing fields that might still show */
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
    display: none !important;
}

/* Style the checkout form */
.woocommerce-checkout .checkout {
    max-width: 1200px;
    margin: 0 auto;
    background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%);
    min-height: 100vh;
    padding: 0;
}

/* Ensure the custom checkout summary table is prominent */
.cbc-checkout-summary {
    background: #fff;
    border-radius: 0px;
    box-shadow: 0 8px 32px rgba(79, 93, 58, 0.1);
    overflow: hidden;
    border-bottom: 1px solid #d0d8e0;
}

/* Style the payment section */
#order_review_heading {
    background: #DCE6ED;
    color: #000;
    padding: 20px 25px;
    margin-top: 20px;
    border-radius: 0px;
    font-family: "Libre Baskerville", serif;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.5px;
    position: relative;
    border: 1px solid #d0d8e0;
}

#order_review_heading::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, #fff 50%, transparent 100%);
    opacity: 0.3;
}

/* Style the order review section */
.woocommerce-checkout-review-order {
    background: #fff;
    border-radius: 0 0 16px 16px;
    padding: 0;
    box-shadow: 0 8px 32px rgba(79, 93, 58, 0.1);
    border: 1px solid #e5e7eb;
    border-top: none;
}

/* Hide the default WooCommerce order review table since we have custom summary */
.woocommerce-checkout-review-order-table,
.shop_table.woocommerce-checkout-review-order-table {
    display: none !important;
}


/* Deposit row styling */
.cbc-checkout-deposit-row td {
    background: #fff3cd;
    border: 1px solid #ffeaa7;
}

.cbc-checkout-deposit-title {
    color: #856404;
    font-weight: 600;
}

.cbc-checkout-deposit-desc {
    color: #6c5700;
    font-size: 13px;
    line-height: 1.4;
}

.cbc-checkout-deposit-value {
    color: #d63638;
    font-weight: 600;
}

/* Contact info styling */
.cbc-checkout-contact,
.cbc-checkout-requests {
    background: #f8f9fa;
    font-size: 14px;
    line-height: 1.5;
}

/* Bed choice styling */
.cbc-checkout-bed-cell {
    background: #e8f4f8;
    font-size: 13px;
    color: #0073aa;
    font-style: italic;
}

/* Event link styling */
.cbc-event-link {
    color: #0073aa;
    text-decoration: none;
    font-weight: 600;
}

.cbc-event-link:hover {
    text-decoration: underline;
}

.cbc-event-name {
    color: #3E2F23;
    font-weight: 600;
}

.cbc-product-name {
    display: block;
    margin-top: 4px;
    font-weight: 500;
}

.cbc-variation {
    color: #666;
    font-size: 12px;
    font-style: italic;
}
/* ===================================================================
   Payment Summary Table
   =================================================================== */

.cbc-payment-summary {
    margin-top: -20px;
    background: #fff;
    border-top: 2px solid #d0d8e0;
    border-left: 1px solid #d0d8e0;
    border-right: 1px solid #d0d8e0 ;
   
}

.cbc-payment-summary-title {
    background-color: #DCE6ED;
    color: #000000;
    padding: 10px 12px;
    margin: 0;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0;
    text-align: left;
}

.cbc-payment-summary-table {
    width: 100%;
    background: #fff;
}

.cbc-payment-summary-table tbody tr {
    background-color: #fff !important;
}

.cbc-payment-summary-table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid #d0d8e0;
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    color: #3E2F23;
    background-color: #fff !important;
}

.cbc-payment-summary-table tr:hover td {
    background-color: #fff !important;
}

.cbc-summary-label {
    font-weight: 500;
    color: #3E2F23;
    width: 60%;
}

.cbc-summary-value {
    text-align: right;
    font-weight: 600;
    color: #3E2F23;
    width: 40%;
}



.cbc-deposit-amount-row .cbc-deposit-value {
    color: #009900;
    font-weight: 700;
    font-size: 15px;
}

.cbc-remaining-amount-row .cbc-remaining-value {
    color: #BE2D3E;
    font-weight: 700;
    font-size: 15px;
}

.cbc-pay-now-row td {
    background-color: #f7f9f4 !important;
    border-top: 1px solid #4F5D3A;
    font-weight: 700;
    font-size: 15px;
    color: #3E2F23;
    border-bottom: none;
    padding: 12px 16px;
}

.cbc-pay-now-row .cbc-summary-label {
    color: #4F5D3A;
}

/* Deposit notice */
.cbc-deposit-notice {
    background: #FFF8E1;
    border-top: 1px solid #FFB74D;
    padding: 12px 16px;
    margin: 0;
}

.cbc-deposit-notice-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: #3E2F23;
    font-family: "Montserrat", sans-serif;
}

.cbc-deposit-notice-text strong {
    color: #4F5D3A;
    font-weight: 700;
}

/* Responsive design for payment summary */
@media (max-width: 768px) {
    .cbc-payment-summary {
        margin-top: 30px;
        border-radius: 0;
    }
    
    .cbc-payment-summary-table td {
        padding: 12px 15px;
        font-size: 16px;
    }
    
    .cbc-payment-summary-table .cbc-summary-label {
        width: 65%;
    }
    
    .cbc-payment-summary-table .cbc-summary-value {
        width: 35%;
    }
    
    .cbc-deposit-notice {
        padding: 12px 15px;
    }
    
    .cbc-deposit-notice-text {
        font-size: 15px;
    }
}

/* Ensure proper spacing between checkout summary and payment summary */
.cbc-checkout-summary {
    margin-bottom: 0;
}

.cbc-checkout-summary + .cbc-payment-summary {
    margin-top: 0;
    border-top: none;
}

/* Style the main checkout table footer to connect with payment summary */
.cbc-checkout-table tfoot {
    display: none; /* Hide the original footer since we have payment summary */
}
/* ===================================================================
   Thank You Page - Correct Color Scheme
   Primary: #4F5D3A (Green), Secondary: #6F8F95 (Blue-gray)
   Fonts: Libre Baskerville (headings), Montserrat (text)
   =================================================================== */

/* ── Hide WooCommerce default Order Details & Billing Address ── */
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-order-details__title,
.woocommerce-column--billing-address,
.woocommerce-column--shipping-address,
h2.woocommerce-order-details__title,
h2.woocommerce-column__title,
.woocommerce-thankyou-order-details,
.woocommerce-thankyou-order-received,
ul.woocommerce-thankyou-order-details {
    display: none !important;
}

.cbc-thankyou-wrapper {
    max-width: 900px;
    margin: 0 auto;
    padding: 40px 20px;
    font-family: "Montserrat", sans-serif;
    color: #3E2F23;
}

/* -- Success / Failed banner -- */
.cbc-thankyou-success,
.cbc-thankyou-failed,
.cbc-thankyou-no-order {
    text-align: center;
    margin-bottom: 36px;
    padding: 36px 24px;
    background: #fff;
    border: 1px solid #d0d8e0;
    border-radius: 6px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.cbc-thankyou-icon {
    margin: 0 auto 20px;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cbc-thankyou-icon--success { background: #4F5D3A; color: #fff; }
.cbc-thankyou-icon--failed  { background: #BE2D3E; color: #fff; }
.cbc-thankyou-icon--info    { background: #6F8F95; color: #fff; }

.cbc-thankyou-title {
    font-family: "Libre Baskerville", serif;
    font-size: 28px;
    font-weight: 700;
    color: #3E2F23;
    margin: 0 0 12px;
    line-height: 1.3;
}

.cbc-thankyou-title--failed { color: #BE2D3E; }

.cbc-thankyou-message {
    font-size: 14px;
    line-height: 1.7;
    color: #555;
    margin: 0;
    font-family: "Montserrat", sans-serif;
}

/* -- Cards grid -- */
.cbc-thankyou-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 32px;
}

/* -- Single card -- */
.cbc-thankyou-card {
    background: #fff;
    border: 1px solid #d0d8e0;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

/* Card heading - same dark-green header as cart table */
.cbc-thankyou-card-title {
    background-color: #4F5D3A;
    color: #fff;
    padding: 14px 20px;
    margin: 0;
    font-family: "Libre Baskerville", serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.3px;
}

/* -- Order Info grid (top card) -- */
.cbc-thankyou-info-grid {
    padding: 0;
}

.cbc-thankyou-info-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 20px;
    border-bottom: 1px solid #eee;
    font-size: 14px;
}

.cbc-thankyou-info-item:last-child { border-bottom: none; }

.cbc-thankyou-info-label {
    font-weight: 600;
    color: #3E2F23;
    font-family: "Montserrat", sans-serif;
}

.cbc-thankyou-info-value {
    color: #3E2F23;
    font-family: "Montserrat", sans-serif;
    text-align: right;
}

.cbc-thankyou-total {
    color: #4F5D3A;
    font-weight: 700;
    font-size: 15px;
}

/* -- Order Details table - reuses cbc-table classes -- */
.cbc-thankyou-order-details { padding: 0; }

/* Payment summary inside thank you card — same as Deposits tab */
.cbc-thankyou-card .cbc-payment-summary {
    margin-top: 0;
}

.cbc-thankyou-card .cbc-payment-summary-table {
    border: none;
    border-radius: 0;
}

.cbc-thankyou-card .cbc-payment-summary-table tbody td {
    padding: 14px 20px;
    font-size: 14px;
}

.cbc-thankyou-card .cbc-pay-now-row td {
    padding: 14px 20px;
}

.cbc-thankyou-card .cbc-deposit-notice {
    margin: 0;
    border-radius: 0;
    border-left: none;
    border-top: 1px solid #e0e0e0;
    background: #f7f9f4;
    padding: 14px 20px;
}

/* Event name inside payment summary */
.cbc-thankyou-card .cbc-event-name {
    color: #4F5D3A;
    font-weight: 600;
    font-size: 13px;
    display: block;
    line-height: 1.3;
    margin-bottom: 2px;
}

.cbc-thankyou-card .cbc-product-name {
    color: #3E2F23;
    font-size: 13px;
    font-weight: 500;
    display: block;
    line-height: 1.4;
}

.cbc-thankyou-card .cbc-variation {
    font-size: 12px;
    color: #6b5e50;
    margin-top: 3px;
    line-height: 1.5;
}

/* tfoot rows match cart table exactly */
.cbc-thankyou-order-table tfoot tr,
.cbc-thankyou-order-table tfoot tr:hover,
.cbc-thankyou-order-table tfoot td {
    background-color: #dce6ed !important;
    background: #dce6ed !important;
    color: #3E2F23 !important;
    border: none !important;
    border-top: 1px solid #c4d0da !important;
    padding: 12px 16px !important;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
}

/* Balance-due row - red value */
.cbc-thankyou-order-table tfoot .cbc-tfoot-balance-row td:last-child {
    color: #BE2D3E !important;
}

/* Product meta lines (From / Until / Bed) */
.cbc-thankyou-product-meta { margin-top: 6px; }

.cbc-thankyou-product-meta .cbc-variation {
    font-size: 12px;
    color: #6b5e50;
    line-height: 1.6;
}

.cbc-thankyou-product-meta .cbc-variation strong {
    color: #3E2F23;
    font-weight: 600;
}

/* -- Billing address card -- */
.cbc-thankyou-billing-address { padding: 20px; }

.cbc-billing-info {
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    color: #3E2F23;
    line-height: 1.8;
}

.cbc-billing-name {
    font-weight: 700;
    font-size: 15px;
    color: #3E2F23;
    margin-bottom: 2px;
}

.cbc-billing-company,
.cbc-billing-address,
.cbc-billing-city-postal,
.cbc-billing-country { color: #3E2F23; }

.cbc-billing-email,
.cbc-billing-phone {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #6F8F95;
    font-weight: 500;
    margin-top: 4px;
}

.cbc-billing-email svg,
.cbc-billing-phone svg { color: #6F8F95; flex-shrink: 0; }

/* -- Action buttons -- */
.cbc-thankyou-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 32px;
}

.cbc-thankyou-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: 4px;
    font-family: "Libre Baskerville", serif;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: background-color 0.2s, color 0.2s;
    min-width: 160px;
    border: none;
    cursor: pointer;
}

.cbc-thankyou-btn--primary {
    background-color: #4F5D3A;
    color: #fff;
}

.cbc-thankyou-btn--primary:hover {
    background-color: #3d4a2d;
    color: #fff;
}

.cbc-thankyou-btn--secondary {
    background-color: #6F8F95;
    color: #fff;
}

.cbc-thankyou-btn--secondary:hover {
    background-color: #5a7379;
    color: #fff;
}

/* -- Responsive -- */
@media (max-width: 640px) {
    .cbc-thankyou-wrapper { padding: 20px 15px; }
    .cbc-thankyou-title { font-size: 22px; }

    .cbc-thankyou-info-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .cbc-thankyou-info-value { text-align: left; }

    .cbc-thankyou-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cbc-thankyou-btn { width: 100%; text-align: center; }

    .cbc-thankyou-order-table thead { display: none; }

    .cbc-thankyou-order-table,
    .cbc-thankyou-order-table tbody,
    .cbc-thankyou-order-table tr,
    .cbc-thankyou-order-table td { display: block; width: 100%; }

    .cbc-thankyou-order-table tbody tr {
        border-bottom: 1px solid #C8A96A;
        padding: 14px;
    }

    .cbc-thankyou-order-table tbody td { padding: 3px 0; border: none; }

    .cbc-thankyou-order-table tfoot tr { display: flex; justify-content: space-between; }
    .cbc-thankyou-order-table tfoot td { display: inline; width: auto !important; }
}
/* ===================================================================
   Deposit Amount Breakdown in Deposits Tab
   =================================================================== */

.cbc-dep-amount-breakdown {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 0;
}

.cbc-dep-full-price,
.cbc-dep-paid-amount,
.cbc-dep-remaining-amount {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 14px;
}

.cbc-dep-full-price {
    background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
    border-left: 4px solid #4F5D3A;
}

.cbc-dep-paid-amount {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    border-left: 4px solid #6F8F95;
    color: #065f46;
}

.cbc-dep-remaining-amount {
    background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);
    border-left: 4px solid #dc2626;
    color: #991b1b;
}

.cbc-dep-full-price strong,
.cbc-dep-paid-amount strong,
.cbc-dep-remaining-amount strong {
    font-family: "Libre Baskerville", serif;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Mobile responsive for deposit breakdown */
@media (max-width: 768px) {
    .cbc-dep-amount-breakdown {
        gap: 6px;
    }
    
    .cbc-dep-full-price,
    .cbc-dep-paid-amount,
    .cbc-dep-remaining-amount {
        padding: 8px 10px;
        font-size: 13px;
    }
    
    .cbc-dep-full-price strong,
    .cbc-dep-paid-amount strong,
    .cbc-dep-remaining-amount strong {
        font-size: 11px;
    }
}
/* ===================================================================
   Orders Table Collapse/Expand Functionality
   =================================================================== */

.cbc-order-actions-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
}

.cbc-order-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.cbc-order-expand-btn,
.cbc-order-collapse-btn {
    background: #4F5D3A;
    color: #fff !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    padding: 5px 12px;
    border-radius: 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    line-height: 1.4;
}

.cbc-order-expand-btn:hover,
.cbc-order-collapse-btn:hover {
    background: #6F8F95 !important;
    color: #fff !important;
    transform: none;
}

.cbc-order-expand-btn.expanded {
    background: #6F8F95 !important;
    color: #fff !important;
}

.cbc-order-expand-btn.expanded:hover {
    background: #4F5D3A !important;
    color: #fff !important;
}

.cbc-expand-icon,
.cbc-collapse-icon {
    font-size: 10px;
    transition: transform 0.3s ease;
}

.cbc-order-details-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #4F5D3A;
}

.cbc-order-details-title {
    font-family: "Libre Baskerville", serif;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    margin: 0;
}

/* Enhanced order details styling */
.cbc-order-details-row {
    background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
    border-top: 1px solid #e5e7eb;
}

.cbc-order-details-cell {
    padding: 25px 20px;
}

.cbc-order-details {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 20px rgba(79, 93, 58, 0.08);
    border: 1px solid #e5e7eb;
}

/* Order items styling */
.cbc-order-items {
    display: grid;
    gap: 15px;
    margin-bottom: 20px;
}

.cbc-order-item {
    background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
    padding: 15px;
    border-radius: 8px;
    border-left: 4px solid #4F5D3A;
    display: grid;
    gap: 8px;
}

.cbc-order-event-cat {
    font-family: "Libre Baskerville", serif;
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.cbc-order-product-name {
    font-weight: 600;
    color: #000;
    font-size: 15px;
}

.cbc-order-product-dates {
    font-size: 13px;
    color: #6b7280;
    font-style: italic;
}

.cbc-order-product-price {
    font-family: "Libre Baskerville", serif;
    font-weight: 700;
    color: #4F5D3A;
    font-size: 16px;
    justify-self: end;
}

/* Booking info styling */
.cbc-order-booking-info {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    border-radius: 8px;
    padding: 15px;
    border-left: 4px solid #6F8F95;
}

.cbc-booking-info-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid rgba(111, 143, 149, 0.2);
}

.cbc-booking-info-item:last-child {
    border-bottom: none;
}

.cbc-booking-info-item--full {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.cbc-booking-info-item strong {
    color: #4F5D3A;
    font-family: "Libre Baskerville", serif;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ── Payment History inside Booking Details ── */
.cbc-order-payment-history {
    margin-top: 20px;
    border-top: 1px solid #e0e0e0;
    padding-top: 16px;
}

.cbc-order-payment-history-title {
    font-family: "Libre Baskerville", serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #4F5D3A !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none !important;
    background: none !important;
}

.cbc-order-payment-history .cbc-dep-history-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    font-family: "Montserrat", sans-serif;
}

.cbc-order-payment-history .cbc-dep-history-table thead th {
    background: #dce6ed;
    color: #3E2F23;
    font-weight: 600;
    font-size: 12px;
    padding: 8px 12px;
    text-align: left;
    border-bottom: 1px solid #c4d0da;
}

.cbc-order-payment-history .cbc-dep-history-table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid #f0f0f0;
    color: #3E2F23;
    background: #fff !important;
    vertical-align: middle;
}

.cbc-order-payment-history .cbc-dep-history-table tbody tr:last-child td {
    border-bottom: none;
}

.cbc-order-payment-history .cbc-dep-history-table tbody td strong {
    color: #4F5D3A;
    font-weight: 700;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .cbc-order-actions-wrapper {
        width: 100%;
    }
    
    .cbc-order-actions {
        width: 100%;
        justify-content: center;
    }
    
    .cbc-order-expand-btn,
    .cbc-order-collapse-btn {
        width: 100%;
        justify-content: center;
        padding: 10px 15px;
        font-size: 13px;
    }
    
    .cbc-order-details-header {
        flex-direction: column;
        gap: 15px;
        align-items: stretch;
    }
    
    .cbc-order-details-title {
        text-align: center;
    }
    
    .cbc-order-item {
        grid-template-columns: 1fr;
    }
    
    .cbc-order-product-price {
        justify-self: start;
    }
    
    .cbc-booking-info-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }
}

/* ===================================================================
   FINAL OVERRIDES — highest specificity wins
   Fixes button text color and table header text color
   against theme red color and dashboard !important rules
   =================================================================== */

/* ── Table header: force white text on th AND any span inside th ── */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table thead th,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table thead th span,
.woocommerce-account .woocommerce-MyAccount-content table.account-orders-table thead th,
.woocommerce-account .woocommerce-MyAccount-content table.account-orders-table thead th span,
.cbc-orders-wrapper table thead th,
.cbc-orders-wrapper table thead th span {
    color: #ffffff !important;
    background-color: #4F5D3A !important;
}

/* ── VIEW DETAILS / HIDE DETAILS button — white text, no border ── */
.cbc-orders-wrapper .cbc-order-expand-btn,
.cbc-orders-wrapper .cbc-order-expand-btn span,
.cbc-orders-wrapper .cbc-order-collapse-btn,
.cbc-orders-wrapper .cbc-order-collapse-btn span,
.woocommerce-account .woocommerce-MyAccount-content .cbc-order-expand-btn,
.woocommerce-account .woocommerce-MyAccount-content .cbc-order-expand-btn span,
.woocommerce-account .woocommerce-MyAccount-content .cbc-order-collapse-btn,
.woocommerce-account .woocommerce-MyAccount-content .cbc-order-collapse-btn span {
    color: #ffffff !important;
    background-color: #4F5D3A !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

.cbc-orders-wrapper .cbc-order-expand-btn:hover,
.cbc-orders-wrapper .cbc-order-expand-btn:hover span,
.woocommerce-account .woocommerce-MyAccount-content .cbc-order-expand-btn:hover,
.woocommerce-account .woocommerce-MyAccount-content .cbc-order-expand-btn:hover span {
    color: #ffffff !important;
    background-color: #6F8F95 !important;
}

/* ── PAY REMAINING button — white text ── */
.cbc-dep-wrapper .cbc-dep-pay-btn,
.cbc-dep-wrapper .cbc-dep-pay-btn span,
.cbc-payment-summary .cbc-dep-pay-btn,
.cbc-payment-summary .cbc-dep-pay-btn span,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-pay-btn,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-pay-btn span,
a.cbc-dep-pay-btn,
a.cbc-dep-pay-btn span {
    color: #ffffff !important;
    background-color: #4F5D3A !important;
    border: none !important;
    text-decoration: none !important;
}

.cbc-dep-wrapper .cbc-dep-pay-btn:hover,
.cbc-dep-wrapper .cbc-dep-pay-btn:hover span,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-pay-btn:hover,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-pay-btn:hover span,
a.cbc-dep-pay-btn:hover,
a.cbc-dep-pay-btn:hover span {
    color: #ffffff !important;
    background-color: #3d4a2d !important;
}

/* ── VIEW BOOKING button — white text ── */
.cbc-dep-wrapper .cbc-dep-view-btn,
.cbc-dep-wrapper .cbc-dep-view-btn span,
.cbc-payment-summary .cbc-dep-view-btn,
.cbc-payment-summary .cbc-dep-view-btn span,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-view-btn,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-view-btn span,
a.cbc-dep-view-btn,
a.cbc-dep-view-btn span {
    color: #ffffff !important;
    background-color: #6F8F95 !important;
    border: none !important;
    text-decoration: none !important;
}

.cbc-dep-wrapper .cbc-dep-view-btn:hover,
.cbc-dep-wrapper .cbc-dep-view-btn:hover span,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-view-btn:hover,
.woocommerce-account .woocommerce-MyAccount-content .cbc-dep-view-btn:hover span,
a.cbc-dep-view-btn:hover,
a.cbc-dep-view-btn:hover span {
    color: #ffffff !important;
    background-color: #5a7379 !important;
}

/* ===================================================================
   My Account — Mobile Responsive (Deposits Tab + Bookings Tab)
   =================================================================== */

/* ── Shared: payment summary table on mobile ── */
@media (max-width: 600px) {

    /* ── DEPOSITS TAB ── */

    /* Card header stacks vertically */
    .cbc-dep-card-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
        padding: 12px !important;
    }

    /* Status badge full width */
    .cbc-dep-status {
        align-self: flex-start;
    }

    /* Payment summary table — keep as table but shrink */
    .cbc-payment-summary { overflow-x: hidden; }
    .cbc-payment-summary-table { width: 100%; table-layout: fixed; }
    .cbc-payment-summary-table tbody tr { display: table-row !important; }
    .cbc-payment-summary-table tbody td {
        display: table-cell !important;
        padding: 10px 10px !important;
        font-size: 12px !important;
        word-break: break-word;
    }
    .cbc-summary-label { width: 55% !important; font-size: 12px !important; }
    .cbc-summary-value { width: 45% !important; font-size: 12px !important; text-align: right !important; }

    /* Pay Remaining / View Booking buttons — compact */
    .cbc-dep-pay-btn,
    .cbc-dep-view-btn {
        font-size: 10px !important;
        padding: 5px 8px !important;
        white-space: normal !important;
        word-break: break-word;
        text-align: center;
        display: inline-block;
        max-width: 100%;
        line-height: 1.3;
    }

    /* Pay now row — stack on very small screens */
    .cbc-pay-now-row td {
        padding: 10px 10px !important;
        font-size: 12px !important;
    }

    /* Deposit notice */
    .cbc-deposit-notice { padding: 10px 12px; }
    .cbc-deposit-notice-text { font-size: 12px; }

    /* Payment history toggle */
    .cbc-dep-history-toggle { padding: 10px 12px !important; font-size: 12px !important; }

    /* Payment history table */
    .cbc-dep-history-body { padding: 0 12px 12px; }
    .cbc-dep-history-table { font-size: 11px; }
    .cbc-dep-history-table thead th,
    .cbc-dep-history-table tbody td { padding: 6px 8px !important; }

    /* ── BOOKINGS TAB ── */

    /* Main orders table → card layout */
    .cbc-orders-wrapper .woocommerce-orders-table { border: none !important; }
    .cbc-orders-wrapper .woocommerce-orders-table thead { display: none !important; }
    .cbc-orders-wrapper .woocommerce-orders-table,
    .cbc-orders-wrapper .woocommerce-orders-table tbody { display: block !important; width: 100% !important; }

    /* Only data rows become blocks — NOT the hidden details row */
    .cbc-orders-wrapper .woocommerce-orders-table__row {
        display: block !important;
        border: 1px solid #d0d8e0 !important;
        border-radius: 4px !important;
        margin-bottom: 12px !important;
        padding: 12px !important;
        background: #fff !important;
    }

    /* Details row: keep hidden by default; JS controls display */
    .cbc-order-details-row {
        display: none;
    }
    .cbc-order-details-row.is-open {
        display: block !important;
    }
    .cbc-order-details-row td {
        display: block !important;
        width: 100% !important;
    }

    .cbc-orders-wrapper .woocommerce-orders-table__cell {
        padding: 4px 0 !important;
        border: none !important;
        background: transparent !important;
        font-size: 13px !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        border-bottom: 1px solid #f0f0f0 !important;
    }

    .cbc-orders-wrapper .woocommerce-orders-table__cell:last-child {
        border-bottom: none !important;
        padding-top: 8px !important;
    }

    .cbc-orders-wrapper .woocommerce-orders-table__cell::before {
        content: attr(data-title);
        font-weight: 700;
        font-size: 11px;
        text-transform: uppercase;
        color: #6b5e50;
        flex-shrink: 0;
        margin-right: 8px;
    }

    /* Details row td — NOT flex, just block */
    .cbc-order-details-cell {
        display: block !important;
        padding: 16px 12px !important;
        border: none !important;
    }
    .cbc-order-details-cell::before { display: none !important; }

    /* View Details button — full width on mobile */
    .cbc-order-actions-wrapper { width: 100%; }
    .cbc-order-expand-btn {
        width: 100% !important;
        justify-content: center !important;
        padding: 8px 12px !important;
        font-size: 12px !important;
    }

    /* Expanded booking details */
    .cbc-order-details-cell { padding: 16px 12px !important; }

    .cbc-order-details-header {
        flex-direction: column !important;
        gap: 8px !important;
        margin-bottom: 16px !important;
    }

    .cbc-order-details-title { font-size: 15px !important; }

    /* Order items */
    .cbc-order-item {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px !important;
        padding: 10px !important;
    }

    .cbc-order-product-price {
        align-self: flex-end;
        font-weight: 700;
    }

    /* Booking info */
    .cbc-order-booking-info { padding: 10px !important; }
    .cbc-booking-info-item {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 2px !important;
        padding: 6px 0 !important;
    }

    /* Payment history table in booking details */
    .cbc-order-payment-history { margin-top: 16px; }
    .cbc-order-payment-history-title { font-size: 12px !important; }
    .cbc-order-payment-history .cbc-dep-history-table { font-size: 11px; }
    .cbc-order-payment-history .cbc-dep-history-table thead { display: none; }
    .cbc-order-payment-history .cbc-dep-history-table,
    .cbc-order-payment-history .cbc-dep-history-table tbody,
    .cbc-order-payment-history .cbc-dep-history-table tr,
    .cbc-order-payment-history .cbc-dep-history-table td { display: block !important; width: 100% !important; }
    .cbc-order-payment-history .cbc-dep-history-table tr {
        border: 1px solid #d0d8e0;
        border-radius: 4px;
        margin-bottom: 8px;
        padding: 8px;
    }
    .cbc-order-payment-history .cbc-dep-history-table td {
        padding: 3px 0 !important;
        border: none !important;
        font-size: 12px;
    }
}

/* ── Tablet (768px) — Deposits + Bookings ── */
@media (max-width: 768px) {

    /* Deposits card header */
    .cbc-dep-card-header { flex-wrap: wrap; gap: 8px; }

    /* Payment summary — slightly smaller */
    .cbc-payment-summary-table tbody td { padding: 10px 12px; font-size: 13px; }
    .cbc-summary-label { font-size: 13px; }
    .cbc-summary-value { font-size: 13px; }

    /* Bookings table — reduce padding */
    .cbc-orders-wrapper .woocommerce-orders-table__cell { padding: 10px 12px !important; }

    /* Expand button */
    .cbc-order-expand-btn { font-size: 15px; padding: 5px 10px; }
}
/* ===================================================================
   Checkout Summary — Desktop / Mobile visibility toggle
   =================================================================== */

/* Desktop table: visible above 768 px */
table.cbc-desktop-only {
    display: table !important;
}

/* Mobile card: ALWAYS hidden unless screen is narrow */
.cbc-mobile-only {
    display: none !important;
}

@media (max-width: 768px) {
    table.cbc-desktop-only,
    .cbc-desktop-only {
        display: none !important;
    }
    .cbc-mobile-only {
        display: block !important;
    }
}

/* ===================================================================
   Mobile Checkout Summary — matches cart table exactly
   Header bg: #DCE6ED, border: #d0d8e0, footer bg: #dce6ed
   =================================================================== */

.cbc-mobile-summary {
    font-family: "Montserrat", sans-serif;
    color: #000;
    width: 100%;
}

/* ---- Outer wrapper: no border-radius, plain border like cart table ---- */
.cbc-mob-card {
    background: #fff;
    border: 1px solid #d0d8e0;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: -10px;
    box-shadow: none;
}

/* ---- Table inside card ---- */
.cbc-mob-table {
    width: 100%;
    border-collapse: collapse;
}

/* Header — same #DCE6ED as cart */
.cbc-mob-table thead tr {
    background: #DCE6ED !important;
}

.cbc-mob-table th {
    background-color: #DCE6ED !important;
    color: #000 !important;
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 10px;
    text-align: left;
    border: 1px solid #d0d8e0;
}

.cbc-mob-th-qty,
.cbc-mob-th-total {
    text-align: center !important;
    white-space: nowrap;
    width: 42px;
}

/* Body cells — same border/padding as cart */
.cbc-mob-table tbody td {
    padding: 10px;
    border: 1px solid #d0d8e0;
    vertical-align: top;
    font-size: 16px;
    line-height: 1.5;
    background: #fff;
}

/* Description cell — stacked layout */
.cbc-mob-td-desc {
    display: flex !important;
    flex-direction: column;
    gap: 3px;
}

.cbc-mob-event-link,
.cbc-mob-event-name {
    font-size: 16px;
    font-weight: 400;
    color: #4F5D3A;
    text-decoration: none;
}

.cbc-mob-event-link:hover {
    text-decoration: underline;
}

.cbc-mob-product-name {
    font-size: 16px;
    font-weight: 500;
    color: #000;
}

.cbc-mob-dates {
    font-size: 15px;
    color: #3E2F23;
}

.cbc-mob-variation {
    font-size: 15px;
    color: #9ca3af;
    font-style: italic;
}

.cbc-mob-unit-price {
    font-size: 15px;
    color: #3E2F23;
}

/* Qty / Total cells */
.cbc-mob-td-qty {
    text-align: center !important;
    font-weight: 700;
    white-space: nowrap;
    vertical-align: top;
    width: 40px;
}

.cbc-mob-td-total {
    text-align: right !important;
    font-weight: 700;
    white-space: nowrap;
    vertical-align: top;
    width: 90px;
}

/* Bed choice row — same light blue as cart */
.cbc-mob-bed-row td {
    background: #f0f7f8 !important;
    font-size: 15px;
    color: #3E2F23;
    padding: 8px 10px;
    border: 1px solid #d0d8e0;
}

/* ---- Deposit row — no border-radius, same border ---- */
.cbc-mob-deposit-row {
    background: #fff;
    border: 1px solid #d0d8e0;
    border-top: none;
    padding: 12px 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    box-shadow: none;
    border-radius: 0;
}

.cbc-mob-deposit-title {
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #BE2D3E;
}

.cbc-mob-deposit-desc {
    font-size: 16px;
    color: #000;
    line-height: 1.5;
}

.cbc-mob-deposit-deduct {
    font-size: 16px;
    font-weight: 700;
    color: #BE2D3E;
}

/* ---- Contact row ---- */
.cbc-mob-contact-row {
    background: #fff;
    border: 1px solid #d0d8e0;
    border-top: none;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 16px;
    box-shadow: none;
    border-radius: 0;
}

/* ---- Special requests row ---- */
.cbc-mob-requests-row {
    background: #fff;
    border: 1px solid #d0d8e0;
    border-top: none;
    padding: 10px;
    font-size: 16px;
    box-shadow: none;
    border-radius: 0;
}

/* ---- Final total row — same #dce6ed as cart tfoot ---- */
.cbc-mob-total-row {
    background: #dce6ed !important;
    color: #3E2F23;
    border: 1px solid #d0d8e0;
    border-top: none;
    border-radius: 0;
    padding: 12px 10px;
    font-size: 21px;
    font-family: "Montserrat", sans-serif;
    font-weight: 700;
    text-align: right;
    box-shadow: none;
}

.cbc-mob-total-row strong {
    font-size: 21px;
    font-weight: 700;
    color: #3E2F23;
}

/* ===================================================================
   PAYMENT SECTION — FINAL OVERRIDE
   One border per method, zero extra borders anywhere
   =================================================================== */

/* Outer #payment wrapper — no border */
#payment.woocommerce-checkout-payment,
.woocommerce-checkout #payment {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    margin-top: 0 !important;
}

/* Payment method list — no border */
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment ul.wc_payment_methods {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Each <li> = ONE bordered box */
.woocommerce-checkout #payment ul.payment_methods li,
.woocommerce-checkout #payment ul.wc_payment_methods li {
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid #d0d8e0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    position: relative !important;
}

.woocommerce-checkout #payment ul.payment_methods li:last-child,
.woocommerce-checkout #payment ul.wc_payment_methods li:last-child {
    margin-bottom: 0 !important;
}

/* ── Radio + label on ONE row ──
   WooCommerce renders: input[radio] then <label> as siblings inside <li>
   We use a flex wrapper via the li itself                                */
.woocommerce-checkout #payment ul.payment_methods li {
    display: block !important; /* keep block so payment_box stacks below */
}

/* The label row — flex so radio sits inline with text */
.woocommerce-checkout #payment ul.payment_methods li > label {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 17px 16px !important;
    margin: 0 !important;
    font-family: "Libre Baskerville", sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #000 !important;
    cursor: pointer !important;
    background: #fff !important;
    border: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Radio — pull it into the label row visually */
.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] {
    position: absolute !important;
    top: 17px !important;
    left: 16px !important;
    margin: 0 !important;
    accent-color: #4F5D3A !important;
    width: 16px !important;
    height: 16px !important;
    z-index: 1 !important;
}

/* Indent label text to make room for the absolute radio */
.woocommerce-checkout #payment ul.payment_methods li > label {
    padding-left: 42px !important;
}

/* payment_box — NO extra border, flush below label */
.woocommerce-checkout #payment div.payment_box {
    background: #fafafa !important;
    border: none !important;
    border-top: 1px solid #d0d8e0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 16px !important;
    font-family: "Montserrat", sans-serif !important;
    color: #000 !important;
    line-height: 1.6 !important;
}

/* Kill the CSS triangle arrow */
.woocommerce-checkout #payment div.payment_box::before,
.woocommerce-checkout #payment div.payment_box::after {
    display: none !important;
    border: none !important;
    content: none !important;
}

/* Saved cards list */
.woocommerce-checkout #payment .wc-saved-payment-methods {
    list-style: none !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    border: none !important;
}

.woocommerce-checkout #payment .wc-saved-payment-methods li {
    position: static !important;
    margin: 0 !important;
    padding: 10px 0 !important;
    border: none !important;
    border-bottom: 1px solid #e5e7eb !important;
    background: transparent !important;
    box-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 14px !important;
    font-family: "Montserrat", sans-serif !important;
    font-weight: 500 !important;
    color: #000 !important;
    padding-left: 0 !important;
}

.woocommerce-checkout #payment .wc-saved-payment-methods li:last-child {
    border-bottom: none !important;
}

.woocommerce-checkout #payment .wc-saved-payment-methods li input[type="radio"] {
    position: static !important;
    accent-color: #4F5D3A !important;
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
}

/* ── "Save payment information" — kill ALL borders ──
   Stripe injects this as a <fieldset>, <p>, or <div>  */
.woocommerce-checkout #payment .payment_box fieldset,
.woocommerce-checkout #payment .payment_box .woocommerce-SavedPaymentMethods-saveNew,
.woocommerce-checkout #payment .payment_box .wc-stripe-new-payment-method,
.woocommerce-checkout #payment .payment_box p.form-row,
.woocommerce-checkout #payment .payment_box .wc-stripe-add-payment-method-save-payment-method-checkbox,
.woocommerce-checkout #payment .payment_box .wc-block-components-checkbox {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    outline: none !important;
    box-shadow: none !important;
    padding-top: 0 !important;
    margin-top: 10px !important;
    background: transparent !important;
}

/* Also target any direct child div/p that might have a border */
.woocommerce-checkout #payment .payment_box > div,
.woocommerce-checkout #payment .payment_box > p,
.woocommerce-checkout #payment .payment_box > fieldset {
    border: none !important;
    border-top: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Place order button */
.woocommerce-checkout #place_order {
    background: #4F5D3A !important;
    color: #fff !important;
    border: none !important;
    padding: 14px 36px !important;
    font-family: "Montserrat", serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: block !important;
    float: right !important;
    width: auto !important;
    min-width: 180px !important;
    margin-top: 16px !important;
    margin-right: 20px !important;
    box-shadow: none !important;
}

.woocommerce-checkout #place_order:hover {
    background: #3d4a2d !important;
}

@media (max-width: 768px) {
    .woocommerce-checkout #place_order {
        float: none !important;
        width: 100% !important;
    }
    
    .woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] {
        top: 15px !important;
        left: 12px !important;
    }
    
    .woocommerce-checkout #payment ul.payment_methods li > label {
        padding: 12px 12px 12px 38px !important;
    }
}

/* ===================================================================
   Empty Cart — Browse Events Button
   =================================================================== */

.cbc-notice--empty {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
}

.cbc-empty-cart-btn {
    display: inline-block;
    background: #4F5D3A;
    color: #fff !important;
    font-family: "Montserrat", serif;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    padding: 11px 24px;
    border-radius: 4px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    transition: background 0.2s ease;
    border: none;
    cursor: pointer;
}

.cbc-empty-cart-btn:hover {
    background: #3d4a2d;
    color: #fff !important;
    text-decoration: none;
}

/* Badge styles moved to assets/badge.css which loads on every page */

/* ===================================================================
   Cart — Product name link (links to event page #event-tents)
   =================================================================== */
.cbc-product-name-link {
    display: block;
    color: #000;
    font-weight: 500;
    text-decoration: none;
    font-size: inherit;
    line-height: 1.4;
    transition: color 0.15s ease;
}

.cbc-product-name-link:hover {
    color: #4F5D3A;
    text-decoration: underline;
}

/* ===================================================================
   Cart event/product links — force clickable, override any theme rules
   =================================================================== */

/* Fix: WooCommerce cart page theme rule sets pointer-events:none on table links */
.woocommerce-cart table.cbc-table a,
.woocommerce-cart table.cbc-table-desktop a,
.woocommerce-cart table.cbc-table-mobile a {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* Only the event name link is clickable */
.cbc-table .cbc-event-link,
.cbc-table-desktop .cbc-event-link,
.cbc-table-mobile .cbc-event-link,
.cbc-cart-wrapper .cbc-event-link {
    pointer-events: auto !important;
    cursor: pointer !important;
    position: relative !important;
    z-index: 10 !important;
    display: inline-block !important;
}

/* Ensure the td itself doesn't block clicks */
.cbc-table .cbc-td-desc,
.cbc-table-desktop .cbc-td-desc,
.cbc-table-mobile .cbc-td-desc,
.cbc-cart-wrapper .cbc-td-desc {
    pointer-events: auto !important;
    position: static !important;
}

/* Kill any ::after/::before pseudo overlays on the td */
.cbc-table .cbc-td-desc::after,
.cbc-table .cbc-td-desc::before,
.cbc-table-desktop .cbc-td-desc::after,
.cbc-table-desktop .cbc-td-desc::before {
    display: none !important;
    pointer-events: none !important;
}