/* UK Coin Hunt — Cart page (2026 refresh)
 * Styles woocommerce/cart/cart.php output to match the 2026 visual system.
 * Scoped to body.woocommerce-cart so no bleed into other pages.
 */

:root {
    --cp-gold:      #cfa362;
    --cp-gold-dark: #b88d4f;
    --cp-gold-line: rgba(207, 163, 98, 0.35);
    --cp-ink:       #1c1c1e;
    --cp-muted:     #6b6258;
    --cp-bg:        #ffffff;
    --cp-ivory:     #faf7f2;
    --cp-soft:      #faf4e8;
    --cp-line:      rgba(28, 28, 30, 0.10);
}

/* Kill the stray <br> the page template emits between header and content,
 * which adds a ~17px gap above the hero. */
body.woocommerce-cart > br { display: none; }

/* ===== Hero ===== */
/* Mirrors the .cp-hero pattern from contact-2026.css / faq-2026.css.
 * The viewport-width break-out lets the gradient stretch edge-to-edge
 * even though the surrounding content is wrapped in .container.
 * Negative margin-top pulls the hero up to butt against the fixed header. */
body.woocommerce-cart .ukch-page-hero {
    position: relative;
    margin-top: -45px;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: clamp(40px, 6vw, 80px);
    padding: clamp(56px, 8vw, 104px) 24px clamp(28px, 4vw, 48px);
    text-align: center;
    background:
        radial-gradient(ellipse at top left,  rgba(207,163,98,0.10), transparent 55%),
        radial-gradient(ellipse at bottom right, rgba(207,163,98,0.08), transparent 55%),
        linear-gradient(180deg, #f6ecda 0%, #faf4e8 100%);
    border-bottom: 1px solid var(--cp-gold-line);
    overflow: hidden;
}
body.dark-mode.woocommerce-cart .ukch-page-hero {
    background:
        radial-gradient(ellipse at top left,  rgba(207,163,98,0.18), transparent 55%),
        radial-gradient(ellipse at bottom right, rgba(207,163,98,0.12), transparent 55%),
        linear-gradient(180deg, #1e1e1e 0%, #242424 100%);
    border-bottom-color: rgba(207,163,98,0.25);
}
body.woocommerce-cart .ukch-page-hero__inner {
    max-width: 760px;
    margin: 0 auto;
}
body.woocommerce-cart .ukch-page-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: 'Poppins', Arial, sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cp-gold-dark);
    margin-bottom: 18px;
}
body.woocommerce-cart .ukch-page-hero__eyebrow::before,
body.woocommerce-cart .ukch-page-hero__eyebrow::after {
    content: "";
    width: 28px;
    height: 1px;
    background: var(--cp-gold);
    opacity: 0.7;
}
body.woocommerce-cart .ukch-page-hero__title {
    margin: 0 0 14px;
    font-family: 'Lora', Georgia, serif;
    font-weight: 500;
    font-size: clamp(34px, 5.2vw, 56px);
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--cp-ink);
}
body.dark-mode.woocommerce-cart .ukch-page-hero__title { color: #f3eddf; }
body.woocommerce-cart .ukch-page-hero__sub {
    max-width: 620px;
    margin: 0 auto;
    color: var(--cp-muted);
    font-family: 'Poppins', Arial, sans-serif;
    font-size: clamp(15px, 1.4vw, 17px);
    line-height: 1.6;
}
body.dark-mode.woocommerce-cart .ukch-page-hero__sub { color: #b8b0a3; }

/* ===== Section wrapper — tighten padding ===== */
body.woocommerce-cart section.h-100 { height: auto; }
body.woocommerce-cart section.h-100 > .container { padding-top: 0 !important; padding-bottom: clamp(32px, 5vw, 72px) !important; }

/* ===== Points widget (YITH Points & Rewards) =====
 * Relocated into the right-column sidebar via ukch_cart_points_slot.
 * Styled as a compact 2026 card matching Discount Code / Basket Totals. */
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"],
body.woocommerce-cart .col-lg-4 .ywpar_apply_discounts,
body.woocommerce-cart .col-lg-4 [class*="ywpar"] {
    margin: 0 0 16px !important;
    padding: 20px 22px !important;
    background: var(--cp-bg) !important;
    border: 1px solid var(--cp-line) !important;
    border-radius: 14px !important;
    box-shadow: 0 1px 2px rgba(28,28,30,0.03), 0 10px 30px rgba(28,28,30,0.04);
    font-family: 'Poppins', Arial, sans-serif !important;
    font-size: 14px;
    color: var(--cp-ink);
    line-height: 1.5;
    width: auto !important;
    max-width: none !important;
    text-align: left;
}
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] p,
body.woocommerce-cart .col-lg-4 [class*="ywpar"] p { margin: 0 0 10px; font-size: 14px; color: var(--cp-ink); }
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] strong,
body.woocommerce-cart .col-lg-4 [class*="ywpar"] strong { color: var(--cp-gold-dark); font-weight: 600; }
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] input[type="number"],
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] input[type="text"],
body.woocommerce-cart .col-lg-4 [class*="ywpar"] input[type="number"],
body.woocommerce-cart .col-lg-4 [class*="ywpar"] input[type="text"] {
    width: 72px !important;
    padding: 8px 10px !important;
    margin: 0 4px !important;
    border: 1px solid var(--cp-line) !important;
    border-radius: 8px !important;
    background: #fdfbf6 !important;
    font-family: inherit !important;
    font-size: 14px;
    text-align: center;
}
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] .button,
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] input[type="submit"],
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] button,
body.woocommerce-cart .col-lg-4 [class*="ywpar"] .button,
body.woocommerce-cart .col-lg-4 [class*="ywpar"] input[type="submit"],
body.woocommerce-cart .col-lg-4 [class*="ywpar"] button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 10px 20px !important;
    margin: 10px 0 0 !important;
    background: linear-gradient(180deg, var(--cp-gold) 0%, var(--cp-gold-dark) 100%) !important;
    border: 1px solid var(--cp-gold-dark) !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    font-family: 'Poppins', Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
    width: auto !important;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(207,163,98,0.28);
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"] .button:hover,
body.woocommerce-cart .col-lg-4 [class*="ywpar"] button:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 10px 24px rgba(207,163,98,0.34);
}
/* Nuke the WC info notice decoration the YITH widget inherits from its .woocommerce-cart-notice class */
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"].woocommerce-info,
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"].woocommerce-cart-notice {
    background: var(--cp-bg) !important;
}
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"]::before,
body.woocommerce-cart .col-lg-4 [id^="yith-par-message"].woocommerce-info::before {
    display: none !important;
}

/* ===== Cart item cards ===== */
body.woocommerce-cart .woocommerce-cart-form__cart-item.card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--cp-line) !important;
    border-radius: 14px !important;
    background: var(--cp-bg) !important;
    box-shadow: 0 1px 2px rgba(28,28,30,0.03), 0 8px 24px rgba(28,28,30,0.04);
    margin-bottom: 14px !important;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, opacity .35s ease;
}

/* ---- Remove-in-flight animation ----
 * `.is-removing` is added by cart-page.js when the trash icon is clicked
 * and stays on the row until the AJAX completes (or fails and rolls back).
 * The gold sweep loops continuously while the request is in flight so the
 * user can see the operation is still working — local AJAX usually
 * finishes inside one cycle, but on a slower connection or stock
 * recalculation the indicator keeps ticking. */
@keyframes ukch-cart-sweep {
    0%   { transform: translateX(-110%); }
    100% { transform: translateX(110%); }
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.is-removing {
    pointer-events: none;
    opacity: 0.55;
    transform: scale(0.99);
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.is-removing::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(
        100deg,
        rgba(207, 163, 98, 0)   0%,
        rgba(245, 214, 143, 0.45) 35%,
        rgba(207, 163, 98, 0.65) 50%,
        rgba(245, 214, 143, 0.45) 65%,
        rgba(207, 163, 98, 0)   100%
    );
    transform: translateX(-110%);
    /* infinite loop until JS removes the .is-removing class */
    animation: ukch-cart-sweep 1.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    pointer-events: none;
    mix-blend-mode: screen;
}
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item.is-removing::before {
    mix-blend-mode: normal;
    background: linear-gradient(
        100deg,
        rgba(207, 163, 98, 0)     0%,
        rgba(207, 163, 98, 0.18) 35%,
        rgba(245, 214, 143, 0.40) 50%,
        rgba(207, 163, 98, 0.18) 65%,
        rgba(207, 163, 98, 0)     100%
    );
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.card:hover {
    border-color: var(--cp-gold-line);
    box-shadow: 0 10px 28px rgba(28,28,30,0.06);
}
body.woocommerce-cart .woocommerce-cart-form__cart-item .card-body {
    padding: 18px 20px !important;
}
body.woocommerce-cart .cart-item-image {
    max-width: 80px;
    max-height: 80px;
}
body.woocommerce-cart .cart-item-image img {
    width: 80px !important;
    height: 80px !important;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid var(--cp-line);
    background: var(--cp-ivory);
}
body.woocommerce-cart .woocommerce-cart-form__cart-item .product-title,
body.woocommerce-cart .woocommerce-cart-form__cart-item .lead {
    margin: 0 !important;
    font-family: 'Lora', Georgia, serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    color: var(--cp-ink) !important;
    text-align: left !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item .product-title a,
body.woocommerce-cart .woocommerce-cart-form__cart-item .lead a {
    color: var(--cp-ink) !important;
    text-decoration: none;
    transition: color .15s ease;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item .product-title a:hover,
body.woocommerce-cart .woocommerce-cart-form__cart-item .lead a:hover { color: var(--cp-gold-dark) !important; }

/* Quantity input */
body.woocommerce-cart .woocommerce-cart-form__cart-item .quantity,
body.woocommerce-cart .woocommerce-cart-form__cart-item .form-control {
    max-width: 96px;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item input.qty,
body.woocommerce-cart .woocommerce-cart-form__cart-item input[type="number"].form-control {
    width: 96px !important;
    padding: 10px 12px !important;
    border: 1px solid var(--cp-line) !important;
    border-radius: 10px !important;
    background: #fdfbf6 !important;
    font-family: 'Poppins', Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--cp-ink) !important;
    text-align: center;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item input.qty:focus,
body.woocommerce-cart .woocommerce-cart-form__cart-item input[type="number"].form-control:focus {
    border-color: var(--cp-gold) !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(207,163,98,0.18) !important;
    outline: none;
}

/* Line price */
body.woocommerce-cart .woocommerce-cart-form__cart-item h5 {
    font-family: 'Lora', Georgia, serif !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    color: var(--cp-gold-dark) !important;
    margin: 0 !important;
}

/* Remove link — flat icon-only, no circular chip (matches the rest of the
 * site's iconography rather than the WC default pill). */
body.woocommerce-cart .woocommerce-cart-form__cart-item .remove-item {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: 6px;
    background: transparent !important;
    border-radius: 0 !important;
    color: var(--cp-muted) !important;
    transition: color .15s ease, transform .15s ease;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item .remove-item:hover {
    background: transparent !important;
    color: var(--cp-gold-dark) !important;
    transform: none;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item .remove-item i { font-size: 16px !important; }

/* ===== Right column: discount + totals cards ===== */
body.woocommerce-cart .col-lg-4 .card.rounded-3 {
    border: 1px solid var(--cp-line) !important;
    border-radius: 14px !important;
    background: var(--cp-bg) !important;
    box-shadow: 0 1px 2px rgba(28,28,30,0.03), 0 10px 30px rgba(28,28,30,0.04);
    margin-bottom: 16px !important;
}
body.woocommerce-cart .col-lg-4 .card-body { padding: 22px !important; }
body.woocommerce-cart .col-lg-4 h5 {
    margin: 0 0 16px !important;
    font-family: 'Lora', Georgia, serif !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    color: var(--cp-ink) !important;
    text-align: left !important;
}

/* Discount input */
body.woocommerce-cart .col-lg-4 .input-group { flex-wrap: nowrap; gap: 8px; }
body.woocommerce-cart .col-lg-4 .input-group input[type="text"],
body.woocommerce-cart .col-lg-4 input[name="coupon_code"] {
    padding: 12px 14px !important;
    border: 1px solid var(--cp-line) !important;
    border-radius: 10px !important;
    background: #fdfbf6 !important;
    font-family: 'Poppins', Arial, sans-serif;
    font-size: 14px;
    color: var(--cp-ink);
    min-height: 44px;
    width: 100%;
}
body.woocommerce-cart .col-lg-4 .input-group input[name="coupon_code"]:focus {
    border-color: var(--cp-gold) !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(207,163,98,0.18) !important;
    outline: none;
}
body.woocommerce-cart .col-lg-4 button[name="apply_coupon"],
body.woocommerce-cart .col-lg-4 .input-group button {
    padding: 10px 18px !important;
    background: linear-gradient(180deg, var(--cp-gold) 0%, var(--cp-gold-dark) 100%) !important;
    border: 1px solid var(--cp-gold-dark) !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    font-family: 'Poppins', Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
    box-shadow: 0 4px 12px rgba(207,163,98,0.22);
    white-space: nowrap;
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
body.woocommerce-cart .col-lg-4 button[name="apply_coupon"]:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 8px 18px rgba(207,163,98,0.30);
}

/* Basket totals list */
body.woocommerce-cart .col-lg-4 ul.list-unstyled {
    margin: 0 0 20px !important;
    font-family: 'Poppins', Arial, sans-serif;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li {
    padding: 8px 0;
    font-size: 14px;
    color: var(--cp-ink);
    align-items: baseline;
}
/* The Total row's gold top-border IS the only separator we want above
 * the headline figure — kill any bottom borders on the rows above so we
 * don't get a stacked grey + gold double rule. */
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--subtotal,
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--tax {
    border-bottom: 0;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li:last-child {
    border-bottom: 0;
    color: var(--cp-muted);
    font-size: 12px;
    padding-top: 12px !important;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li span:first-child {
    color: var(--cp-muted);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 12px;
    font-weight: 500;
}
/* Subtotal / VAT values: a touch bigger than the label so amounts read
 * clearly when scanning the column. Total has its own (much larger)
 * treatment further down. */
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--subtotal span:last-child,
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--tax span:last-child {
    font-family: 'Lora', Georgia, serif;
    font-size: 16px;
    font-weight: 500;
    color: var(--cp-ink);
}
/* Total row — visually distinct: thick top border, larger label, hero
 * price. Targets `.ukch-totals-row--total` so it survives any reorder of
 * the rows. */
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total {
    margin-top: 8px !important;
    padding-top: 16px !important;
    padding-bottom: 14px !important;
    border-top: 1px solid var(--cp-gold-line) !important;
    align-items: center;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total span:first-child {
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em;
    color: var(--cp-ink) !important;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total span:last-child {
    font-family: 'Lora', Georgia, serif !important;
    font-size: 30px !important;
    font-weight: 600 !important;
    color: var(--cp-gold-dark) !important;
    letter-spacing: -0.01em;
    line-height: 1;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total span:last-child .amount,
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total span:last-child strong {
    font: inherit !important;
    color: inherit !important;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li span:last-child,
body.woocommerce-cart .col-lg-4 ul.list-unstyled li .amount {
    color: var(--cp-ink);
    font-weight: 500;
}
/* WC's order total HTML embeds "(includes £x.xx VAT)" as a <small> inside
 * the total span. We render VAT on its own row above, so hide the inline
 * note to avoid duplicating it (and to stop it inheriting the big Lora
 * gold styling of the total). The selectors are belt-and-braces because
 * different WC versions / locales emit different class names. */
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total small.includes_tax,
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total small.tax_label,
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total small.woocommerce-Price-includesTax,
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total small {
    display: none !important;
}
body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--shipping-note span {
    font-size: 12px !important;
    color: var(--cp-muted) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-style: italic;
    padding-top: 0 !important;
}

/* Totals CTA pair — scoped to the direct-child <div> wrapper so it doesn't
 * also rewrite the .ukch-totals-row <li>s (which share .d-flex.justify-content-between
 * but need to stay flex so the label/value sit side-by-side, especially the
 * VAT row which otherwise stacks and gets visually lost on mobile). */
body.woocommerce-cart .col-lg-4 .card-body > .d-flex.justify-content-between {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
body.woocommerce-cart .col-lg-4 a.view-more-btn,
body.woocommerce-cart .col-lg-4 button.view-more-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 18px !important;
    border-radius: 999px !important;
    font-family: 'Poppins', Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    cursor: pointer;
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
    line-height: 1;
    width: auto !important;
}
/* Primary: Proceed to Checkout */
body.woocommerce-cart .col-lg-4 a.view-more-btn {
    background: linear-gradient(180deg, var(--cp-gold) 0%, var(--cp-gold-dark) 100%) !important;
    border: 1px solid var(--cp-gold-dark) !important;
    color: #ffffff !important;
    box-shadow: 0 6px 18px rgba(207,163,98,0.28);
}
body.woocommerce-cart .col-lg-4 a.view-more-btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 10px 24px rgba(207,163,98,0.34);
    color: #ffffff !important;
}
/* Secondary: Update Cart */
body.woocommerce-cart .col-lg-4 button.view-more-btn {
    background: transparent !important;
    border: 1px solid var(--cp-line) !important;
    color: var(--cp-ink) !important;
    box-shadow: none;
}
body.woocommerce-cart .col-lg-4 button.view-more-btn:hover {
    border-color: var(--cp-gold-line) !important;
    background: var(--cp-ivory) !important;
    color: var(--cp-gold-dark) !important;
}

/* ===== Dark mode ===== */
body.dark-mode.woocommerce-cart .page-header {
    background: linear-gradient(180deg, #1a1a1a 0%, #1f1f1f 100%);
    border-bottom-color: rgba(242, 234, 221, 0.10);
}
body.dark-mode.woocommerce-cart .page-header h1.banner-text { color: #f2eadd; }
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item.card,
body.dark-mode.woocommerce-cart .col-lg-4 .card.rounded-3,
body.dark-mode.woocommerce-cart .ywpar_apply_discounts,
body.dark-mode.woocommerce-cart [class*="ywpar_"] {
    background: #222 !important;
    border-color: rgba(242, 234, 221, 0.10) !important;
    color: #f2eadd !important;
}
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item .product-title,
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item .product-title a,
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item .lead,
body.dark-mode.woocommerce-cart .col-lg-4 h5 { color: #f2eadd !important; }
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item input.qty,
body.dark-mode.woocommerce-cart .col-lg-4 input[name="coupon_code"],
body.dark-mode.woocommerce-cart .ywpar_apply_discounts input[type="number"],
body.dark-mode.woocommerce-cart [class*="ywpar_"] input[type="number"],
body.dark-mode.woocommerce-cart [class*="ywpar_"] input[type="text"] {
    background: #1f1f1f !important;
    border-color: rgba(242, 234, 221, 0.15) !important;
    color: #f2eadd !important;
}
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item .remove-item {
    background: transparent !important;
    color: rgba(242, 234, 221, 0.6) !important;
    border: 0 !important;
}
body.dark-mode.woocommerce-cart .woocommerce-cart-form__cart-item .remove-item:hover {
    background: transparent !important;
    color: var(--cp-gold) !important;
}
body.dark-mode.woocommerce-cart .col-lg-4 button.view-more-btn {
    background: #1f1f1f !important;
    color: #f2eadd !important;
    border-color: rgba(242, 234, 221, 0.15) !important;
}
body.dark-mode.woocommerce-cart .col-lg-4 ul.list-unstyled li { border-bottom-color: rgba(242, 234, 221, 0.10); color: #f2eadd; }
body.dark-mode.woocommerce-cart .col-lg-4 ul.list-unstyled li span:last-child,
body.dark-mode.woocommerce-cart .col-lg-4 ul.list-unstyled li .amount { color: #f2eadd !important; }
body.dark-mode.woocommerce-cart .col-lg-4 ul.list-unstyled li span:first-child { color: #b8b0a3 !important; }
body.dark-mode.woocommerce-cart .col-lg-4 ul.list-unstyled li:last-child,
body.dark-mode.woocommerce-cart .col-lg-4 ul.list-unstyled li:nth-child(3) span { color: #b8b0a3 !important; }

/* Points widget (YITH) — dark mode background + text */
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"],
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"].woocommerce-info,
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"].woocommerce-cart-notice {
    background: #222 !important;
    border-color: rgba(242, 234, 221, 0.10) !important;
    color: #f2eadd !important;
}
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"] p,
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"] * { color: #f2eadd; }
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"] strong { color: var(--cp-gold) !important; }
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"] input[type="number"],
body.dark-mode.woocommerce-cart .col-lg-4 [id^="yith-par-message"] input[type="text"] {
    background: #1f1f1f !important;
    border-color: rgba(242, 234, 221, 0.15) !important;
    color: #f2eadd !important;
}

/* ===== Cart column headers =====
 * Sits as a slim sticky-style bar above the cart-item cards on
 * tablet+. Visually it reads as the "thead" of the cart table — same
 * width and padding alignment as the item cards below, with a soft
 * gold-tinted background that ties into the brand without competing
 * with the items themselves.
 *
 * Hidden on mobile because each row stacks vertically there and column
 * labels would just be repetitive noise. The d-none / d-md-flex
 * Bootstrap utilities can't be relied on (the PurgeCSS subset strips
 * d-md-flex when it isn't referenced in source), so we own the
 * responsive show/hide here. */
/* Outer wrapper padding mirrors the card-body's `.p-4` (20 px) so the
 * inner row begins at the same x-offset as the cart item cards.
 * Without this — and with the negative .row margin restored below —
 * the header columns drifted ~16 px right of the item columns. */
body.woocommerce-cart .ukch-cart-headings {
    display: none !important;
    align-items: center;
    padding: 9px 20px !important;
    margin-bottom: 14px !important;
    background: linear-gradient(180deg, rgba(207, 163, 98, 0.10) 0%, rgba(207, 163, 98, 0.04) 100%);
    border: 1px solid rgba(207, 163, 98, 0.20);
    border-radius: 10px;
    font-family: 'Poppins', Arial, sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #b88d4f;
    line-height: 1.4;
    /* Subtle inner shadow so the bar reads as a labelled header rather
     * than a floating decoration. */
    box-shadow: inset 0 -1px 0 rgba(207, 163, 98, 0.18);
}
@media (min-width: 768px) {
    body.woocommerce-cart .ukch-cart-headings {
        display: flex !important;
    }
}
/* Inherit Bootstrap's standard -12px row margin (DON'T override to 0)
 * so the header columns line up with the item columns underneath. */
body.woocommerce-cart .ukch-cart-headings .row {
    width: 100%;
    flex: 1 1 auto;
}
body.woocommerce-cart .ukch-cart-headings .row > div {
    padding-top: 0;
    padding-bottom: 0;
}
/* Right-align the Remove header so it sits over the trash icon. */
body.woocommerce-cart .ukch-cart-headings .col-md-1 {
    text-align: right;
}

/* Dark-mode: deeper translucency, brighter gold so the bar is visible
 * but still recedes against the dark page bg. */
body.dark-mode.woocommerce-cart .ukch-cart-headings {
    background: linear-gradient(180deg, rgba(207, 163, 98, 0.16) 0%, rgba(207, 163, 98, 0.06) 100%);
    border-color: rgba(207, 163, 98, 0.30);
    color: #e5c48a;
    box-shadow: inset 0 -1px 0 rgba(207, 163, 98, 0.22);
}

/* ===== Responsive ===== */
@media (max-width: 860px) {
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row { row-gap: 14px; }
    body.woocommerce-cart .col-lg-4 { margin-top: 24px; }
    body.woocommerce-cart .col-lg-4 .card-body > .d-flex.justify-content-between { grid-template-columns: 1fr; }
}

/* Mobile (<768px): Bootstrap stacks every column full-width inside the
 * cart card. Without intervention the image lands centered alone in a
 * full-width row (looks oversized), the title text wraps awkwardly under
 * "2025 UK / Bees / Circulated £1 / Coin quantity", and the trash sits in
 * its own row at the bottom. We re-flow the row into a 3-column grid:
 * image | content | trailing (remove on row 1, price on row 2) so the
 * quantity input and price never share a cell and never collide. */
@media (max-width: 767.98px) {
    body.woocommerce-cart .woocommerce-cart-form__cart-item .card-body {
        padding: 16px !important;
    }
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row {
        display: grid !important;
        grid-template-columns: 64px minmax(0, 1fr) auto;
        column-gap: 12px;
        row-gap: 12px;
        align-items: center;
        margin: 0 !important;
    }
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row > div {
        max-width: none;
        flex: unset;
        width: auto;
        padding: 0;
        min-width: 0;
    }
    /* Image — first column, two rows tall so qty/price sit alongside it */
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row > div:nth-child(1) {
        grid-column: 1;
        grid-row: 1 / span 2;
        align-self: start;
    }
    body.woocommerce-cart .cart-item-image,
    body.woocommerce-cart .cart-item-image img {
        width: 64px !important;
        height: 64px !important;
        max-width: 64px !important;
        max-height: 64px !important;
        margin: 0 !important;
    }
    /* Title — middle column, top row */
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row > div:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        padding-right: 4px;
    }
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row > div:nth-child(2) .product-title {
        font-size: 15px !important;
        line-height: 1.35 !important;
        word-break: break-word;
    }
    /* Remove — right column, top row, sits flush with title */
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row > div:nth-child(5) {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        align-self: start;
    }
    body.woocommerce-cart .woocommerce-cart-form__cart-item .remove-item {
        padding: 0 !important;
    }
    /* Quantity — middle column, second row */
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row > div:nth-child(3) {
        grid-column: 2;
        grid-row: 2;
        justify-self: start;
        align-self: center;
    }
    body.woocommerce-cart .woocommerce-cart-form__cart-item input.qty,
    body.woocommerce-cart .woocommerce-cart-form__cart-item input[type="number"].form-control {
        width: 100% !important;
        max-width: 72px !important;
        min-width: 56px;
        padding: 8px 10px !important;
        font-size: 14px !important;
    }
    /* Price — right column, second row, never overlaps qty */
    body.woocommerce-cart .woocommerce-cart-form__cart-item .row > div:nth-child(4) {
        grid-column: 3;
        grid-row: 2;
        justify-self: end;
        align-self: center;
        text-align: right;
        white-space: nowrap;
    }
    body.woocommerce-cart .woocommerce-cart-form__cart-item h5 {
        font-size: 16px !important;
    }

    /* Hide the per-item "Coin quantity" label WC injects via .quantity > label
     * — it's redundant once the column layout collapses. */
    body.woocommerce-cart .woocommerce-cart-form__cart-item .quantity > label,
    body.woocommerce-cart .woocommerce-cart-form__cart-item .quantity .screen-reader-text {
        display: none !important;
    }

    /* Totals card — tighter padding, labels right next to values, no
     * giant Lora total that was overflowing the card. */
    body.woocommerce-cart .col-lg-4 .card-body { padding: 18px !important; }
    body.woocommerce-cart .col-lg-4 ul.list-unstyled li.ukch-totals-row--total span:last-child {
        font-size: 18px !important;
    }
    body.woocommerce-cart .col-lg-4 ul.list-unstyled li {
        flex-wrap: wrap;
        gap: 4px;
    }
}

/* ===== Empty cart state =====
 * Custom template at woocommerce/cart/cart-empty.php replaces the WC
 * default notice. Slim full-width banner with a 4-up product grid below
 * (same .product-card markup as the category archive). */

body.woocommerce-cart.woocommerce-cart-is-empty .woocommerce {
    padding: 0 16px;
}
.ukch-cart-empty-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 56px) 0 clamp(64px, 8vw, 104px);
}
/* Hide WC's stock notice + "Return to shop" link — our template owns
 * the empty state. */
body.woocommerce-cart .cart-empty.woocommerce-info,
body.woocommerce-cart.woocommerce-cart-is-empty .return-to-shop {
    display: none !important;
}

/* ----- Top banner ----- */
.ukch-cart-empty-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: clamp(28px, 3.5vw, 44px) clamp(28px, 4vw, 56px);
    margin-bottom: clamp(32px, 4vw, 56px);
    background:
        radial-gradient(ellipse at top right, rgba(207,163,98,0.10), transparent 55%),
        linear-gradient(180deg, var(--cp-bg) 0%, var(--cp-ivory) 100%);
    border: 1px solid var(--cp-line);
    border-radius: 18px;
    box-shadow: 0 1px 2px rgba(28,28,30,0.03), 0 14px 36px rgba(28,28,30,0.05);
    font-family: 'Poppins', Arial, sans-serif;
}
.ukch-cart-empty-banner__copy {
    flex: 1 1 320px;
    min-width: 0;
}
.ukch-cart-empty-banner__title {
    margin: 0 0 6px;
    font-family: 'Lora', Georgia, serif;
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: 500;
    line-height: 1.2;
    color: var(--cp-ink);
}
.ukch-cart-empty-banner__sub {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--cp-muted);
}
.ukch-cart-empty-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    flex: 0 0 auto;
}

/* Shared CTA button styles (used by banner). */
.ukch-cart-empty__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 24px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
    line-height: 1;
    min-width: 160px;
}
.ukch-cart-empty__btn--primary {
    background: linear-gradient(180deg, var(--cp-gold) 0%, var(--cp-gold-dark) 100%);
    border: 1px solid var(--cp-gold-dark);
    color: #ffffff !important;
    box-shadow: 0 8px 22px rgba(207, 163, 98, 0.30);
}
.ukch-cart-empty__btn--primary:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 12px 28px rgba(207, 163, 98, 0.36);
    color: #ffffff !important;
}
.ukch-cart-empty__btn--ghost {
    background: transparent;
    border: 1px solid var(--cp-line);
    color: var(--cp-ink) !important;
}
.ukch-cart-empty__btn--ghost:hover {
    border-color: var(--cp-gold-line);
    background: var(--cp-ivory);
    color: var(--cp-gold-dark) !important;
}

/* ----- Browse-by-collection tiles -----
 * Replaces the previous "Recommended for you" Slick slider, which had
 * persistent broken-thumbnail and double-handler issues. Static grid of
 * product categories, no AJAX, no images-with-onerror — each tile links
 * directly to the category archive. */
.ukch-cart-empty-cats { margin-top: clamp(8px, 2vw, 24px); }
.ukch-cart-empty-cats__title {
    margin: 0 0 clamp(20px, 2.5vw, 32px);
    font-family: 'Lora', Georgia, serif;
    font-size: clamp(20px, 2.4vw, 28px);
    font-weight: 500;
    color: var(--cp-ink);
    letter-spacing: -0.01em;
    text-align: center;
    position: relative;
    padding-bottom: 12px;
}
.ukch-cart-empty-cats__title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 48px;
    height: 1px;
    background: var(--cp-gold);
}
.ukch-cart-empty-cats__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.ukch-cart-empty-cat {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    background: var(--cp-bg);
    border: 1px solid var(--cp-line);
    border-radius: 14px;
    text-decoration: none;
    color: var(--cp-ink) !important;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
    overflow: hidden;
    position: relative;
}
.ukch-cart-empty-cat:hover {
    border-color: var(--cp-gold-line);
    box-shadow: 0 8px 24px rgba(28, 28, 30, 0.06);
    transform: translateY(-2px);
}
.ukch-cart-empty-cat__media {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--cp-ivory);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cp-line);
}
.ukch-cart-empty-cat__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.ukch-cart-empty-cat__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(207, 163, 98, 0.14), rgba(207, 163, 98, 0.04));
    color: var(--cp-gold-dark);
    font-size: 22px;
}
.ukch-cart-empty-cat__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.ukch-cart-empty-cat__name {
    font-family: 'Lora', Georgia, serif;
    font-size: 16px;
    font-weight: 500;
    color: var(--cp-ink);
    line-height: 1.25;
    /* Truncate to two lines so long category names stay tidy. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ukch-cart-empty-cat__count {
    font-family: 'Poppins', Arial, sans-serif;
    font-size: 12px;
    color: var(--cp-muted);
    letter-spacing: 0.04em;
}
.ukch-cart-empty-cat__arrow {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(207, 163, 98, 0.10);
    color: var(--cp-gold-dark);
    font-size: 13px;
    transition: background .2s ease, transform .2s ease;
}
.ukch-cart-empty-cat:hover .ukch-cart-empty-cat__arrow {
    background: var(--cp-gold);
    color: #ffffff;
    transform: translateX(2px);
}

@media (max-width: 860px) {
    .ukch-cart-empty-cats__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .ukch-cart-empty-cats__grid { grid-template-columns: 1fr; }
}

/* Dark mode */
body.dark-mode .ukch-cart-empty-cats__title { color: #f2eadd; }
body.dark-mode .ukch-cart-empty-cat {
    background: #222;
    border-color: rgba(242, 234, 221, 0.10);
    color: #f2eadd !important;
}
body.dark-mode .ukch-cart-empty-cat:hover {
    border-color: rgba(207, 163, 98, 0.45);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
body.dark-mode .ukch-cart-empty-cat__name { color: #f2eadd; }
body.dark-mode .ukch-cart-empty-cat__count { color: rgba(242, 234, 221, 0.6); }
body.dark-mode .ukch-cart-empty-cat__media {
    background: #1c1c1c;
    border-color: rgba(242, 234, 221, 0.12);
}

/* Dark mode */
body.dark-mode .ukch-cart-empty-banner {
    background:
        radial-gradient(ellipse at top right, rgba(207,163,98,0.18), transparent 55%),
        linear-gradient(180deg, #222 0%, #1c1c1c 100%);
    border-color: rgba(242, 234, 221, 0.10);
}
body.dark-mode .ukch-cart-empty-banner__title { color: #f2eadd; }
body.dark-mode .ukch-cart-empty-banner__sub { color: rgba(242, 234, 221, 0.7); }
body.dark-mode .ukch-cart-empty__btn--ghost {
    border-color: rgba(242, 234, 221, 0.18);
    color: #f2eadd !important;
}
body.dark-mode .ukch-cart-empty__btn--ghost:hover {
    background: #1c1c1c;
    border-color: rgba(207, 163, 98, 0.45);
    color: var(--cp-gold) !important;
}

/* Mobile: banner stacks copy + buttons, buttons go full-width */
@media (max-width: 600px) {
    .ukch-cart-empty-banner {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }
    .ukch-cart-empty-banner__actions { width: 100%; }
    .ukch-cart-empty__btn { flex: 1 1 auto; min-width: 0; }
}
