/* ================================================================
   SAVERNAKE — BASKET PAGE
   basket.css — v17 — 21 May 2026
   Enqueued on basket page only via functions.php
   ================================================================ */


/* ----------------------------------------------------------------
   1. HEADER — strip to logo and contact bar
   ---------------------------------------------------------------- */

/* Main nav */
.woocommerce-cart .elementor-element-1260cf1a [data-widget_type="mega-menu.default"] { display: none !important; }
.woocommerce-cart .elementor-element-1260cf1a .elementor-widget-spacer { display: none !important; }

/* Desktop search */
.woocommerce-cart #header-search { display: none !important; }

/* Mobile nav off-canvas and toggle */
.woocommerce-cart [data-widget_type="off-canvas.default"] { display: none !important; }
.woocommerce-cart .mobile-menu-toggle { display: none !important; }

/* Account icon */
.woocommerce-cart .elementor-element-478baf5 { display: none !important; }

/* Mobile search */
.woocommerce-cart #mobile-search-button,
.woocommerce-cart #mobile-search { display: none !important; }

/* Cart icon - redundant on basket page */
.woocommerce-cart .elementor-element-01a50f3 { display: none !important; }

/* Bespoke Steak Knives link in top bar */
.woocommerce-cart .elementor-element-4db1e19f { display: none !important; }


/* ----------------------------------------------------------------
   2. BASKET HERO — compact, black background, Newsreader
   ---------------------------------------------------------------- */

.woocommerce-cart .elementor-element-f38bb0f {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
}

.woocommerce-cart .elementor-element-f38bb0f .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding-top: 24px !important;
    padding-bottom: 24px !important;
    gap: 24px !important;
}

.woocommerce-cart .elementor-element-f38bb0f h1 {
    font-family: 'Newsreader', serif !important;
    font-size: 56px !important;
    font-weight: 400 !important;
    color: #FBF9F6 !important;
    letter-spacing: -0.01em !important;
    line-height: 1 !important;
    text-transform: none !important;
    text-align: right !important;
    margin: 0 !important;
    order: 2;
}


/* ----------------------------------------------------------------
   3. TWO-COLUMN DESKTOP LAYOUT
   Sticky right column removed in v6 — was extending past cart
   content because its containing block (.woocommerce) also contains
   the Why Savernake section. Pure-CSS bounding isn't possible
   without DOM restructure. Re-enable when functions.php moves
   the Why Savernake injection outside .woocommerce.
   ---------------------------------------------------------------- */

/* ============ ZAZOOM-COLUMNS START — Main desktop two-column layout ============ */
/* v14: switched from CSS grid to flex-wrap so the right column wraps
   below the left when the container can't fit both side by side,
   eliminating the cramping/breakage at 1000-1300px widths.
   Activates at >= 768px (was 1024px in v13). Below 768px the mobile
   card layout takes over via ZAZOOM-CART-SWITCH and ZAZOOM-MOBILE-LAYOUT.
   v14b: left column flex-basis raised from 480 to 560 so the right
   column wraps below at ~1100px viewport rather than ~1020px. This
   gives the desktop cart table the full container width earlier and
   avoids cramping at common laptop widths (1280-1366). */
@media (min-width: 768px) {

    .woocommerce-cart .woocommerce {
        display: flex;
        flex-wrap: wrap;
        column-gap: 56px;
        row-gap: 32px;
        align-items: flex-start;
    }

    /* Full-width children (notices, trust strip) sit on their own rows */
    .woocommerce-cart .woocommerce-notices-wrapper,
    .woocommerce-cart .sav-basket-trust-strip {
        flex-basis: 100%;
    }

    /* Left: cart form — white box, flexible, min 560px before wrap */
    .woocommerce-cart .woocommerce-cart-form {
        flex: 1 1 560px;
        min-width: 0;
        background: #FFFFFF;
        border: 1px solid #E5E0D8;
        border-radius: 8px;
        padding: 32px;
        box-sizing: border-box;
    }

    /* Right column — white box, fixed 420px wide */
    .woocommerce-cart .cart-collaterals {
        flex: 0 0 420px;
        background: #FFFFFF;
        border: 1px solid #E5E0D8;
        border-radius: 8px;
        padding: 28px;
        box-sizing: border-box;
    }

    /* When the right column wraps below the left (container too narrow
       for both), let it take the full container width rather than
       sticking at 420px and floating left. */
    .woocommerce-cart .cart-collaterals {
        max-width: 100%;
    }

}
/* ============ ZAZOOM-COLUMNS END ============ */


/* ----------------------------------------------------------------
   4. BACK LINK AND TRUST STRIP
   Trust strip restored to icon + label + secondary text format
   in v6, matching the bottom Why Savernake icons.
   Margin-top pulled aggressively negative to sit close to the
   black hero strip above.
   ---------------------------------------------------------------- */

/* Continue shopping — inside the black hero, left side, opposite "Basket"
   Injected via JS in functions.php savernake_basket_back_injector */
.sav-basket-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #e6e6de !important;
    text-decoration: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 500;
    margin: 0;
    order: 1;
    transition: color 0.15s;
}

.sav-basket-back:hover { color: #FBF9F6 !important; }

/* ============ ZAZOOM-TRUST START — Trust strip column count ============ */
.sav-basket-trust-strip {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 24px;
    margin-top: -56px;
    margin-bottom: 40px;
    padding-top: 12px;
    align-items: start;
}

@media (min-width: 768px) {
    .sav-basket-trust-strip {
        grid-template-columns: repeat(4, 1fr);
        gap: 20px 32px;
    }
}
/* ============ ZAZOOM-TRUST END ============ */

/* details element styled as a closed box; native open/closed semantics */
.sav-basket-trust-strip__item {
    background: #F0EBE3;
    border: none;
    border-radius: 4px;
    box-sizing: border-box;
    min-width: 0;
    align-self: start;
    overflow: hidden;
    transition: background 0.15s;
}

.sav-basket-trust-strip__item[open] {
    background: #EAE3D8;
}

/* Hide the native disclosure triangle (Chrome / Safari / Firefox) */
.sav-basket-trust-strip__summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    outline: none;
    user-select: none;
}

.sav-basket-trust-strip__summary::-webkit-details-marker {
    display: none;
}

.sav-basket-trust-strip__summary::marker {
    display: none;
    content: '';
}

.sav-basket-trust-strip__icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: #FD4712;
    display: inline-block;
}

.sav-basket-trust-strip__icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

.sav-basket-trust-strip__text {
    flex: 1;
    min-width: 0;
    display: block;
}

.sav-basket-trust-strip__label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #1C1917;
    line-height: 1.4;
    display: block;
}

.sav-basket-trust-strip__desc {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 400;
    color: #888;
    line-height: 1.4;
    display: block;
    margin-top: 2px;
}

.sav-basket-trust-strip__chevron {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    margin-top: 4px;
    color: #888;
    display: inline-block;
    transition: transform 0.2s ease, color 0.15s;
}

.sav-basket-trust-strip__chevron svg {
    width: 100%;
    height: 100%;
    display: block;
}

.sav-basket-trust-strip__item[open] .sav-basket-trust-strip__chevron {
    transform: rotate(180deg);
    color: #1C1917;
}

.sav-basket-trust-strip__summary:hover .sav-basket-trust-strip__chevron {
    color: #1C1917;
}

.sav-basket-trust-strip__summary:focus-visible {
    box-shadow: inset 0 0 0 2px #FD4712;
    border-radius: 4px;
}

.sav-basket-trust-strip__body {
    padding: 0 14px 14px;
}

.sav-basket-trust-strip__body p {
    margin: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    color: #1C1917;
}


/* ----------------------------------------------------------------
   5. DESKTOP CART TABLE
   ---------------------------------------------------------------- */

/* Hide on mobile */
/* ============ ZAZOOM-CART-SWITCH-DESKTOP START — Hide desktop cart table below breakpoint ============ */
@media (max-width: 767px) {
    .sav-cart-desktop { display: none !important; }
}
/* ============ ZAZOOM-CART-SWITCH-DESKTOP END ============ */

.woocommerce-cart table.shop_table.sav-cart-desktop {
    border: none;
    border-collapse: collapse;
    width: 100%;
    background: none;
}

/* Hide "Product" column header - redundant */
.woocommerce-cart .sav-cart-desktop thead th.product-name {
    visibility: hidden;
}

.woocommerce-cart table.shop_table.sav-cart-desktop thead tr {
    border-bottom: 1px solid #E5E0D8;
}

.woocommerce-cart table.shop_table.sav-cart-desktop thead th {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #888;
    text-transform: none;
    padding: 0 16px 12px 0;
    border: none;
    background: none;
}

.woocommerce-cart table.shop_table.sav-cart-desktop thead th:last-child {
    padding-right: 0;
}

.woocommerce-cart table.shop_table.sav-cart-desktop tbody tr.cart_item {
    border-bottom: 1px solid #E5E0D8;
}

.woocommerce-cart table.shop_table.sav-cart-desktop td {
    border: none;
    padding: 24px 16px 24px 0;
    vertical-align: top;
    background: none;
}

.woocommerce-cart table.shop_table.sav-cart-desktop td:last-child {
    padding-right: 0;
}

/* Hide the actions row (coupon and update button) */
.woocommerce-cart .woocommerce-cart-form .actions {
    display: none !important;
}


/* ----------------------------------------------------------------
   6. PRODUCT IMAGE
   ---------------------------------------------------------------- */

.woocommerce-cart .sav-cart-desktop .product-thumbnail {
    width: 168px;
    padding-left: 0;
}

.woocommerce-cart .sav-cart-desktop .product-thumbnail img {
    width: 160px;
    height: 160px;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}


/* ----------------------------------------------------------------
   7. PRODUCT NAME AND VARIATION DISPLAY
   ---------------------------------------------------------------- */

.woocommerce-cart .sav-cart-desktop td.product-name > a:first-of-type {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: #1C1917;
    text-decoration: none;
    display: block;
    margin-bottom: 4px;
}

.woocommerce-cart .sav-cart-desktop td.product-name > a:first-of-type:hover {
    color: #FD4712;
}

/* Re-design link for configurator products */
.woocommerce-cart .re-design-button {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    color: #888 !important;
    text-decoration: underline !important;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 4px 0 8px !important;
    display: inline-block !important;
    cursor: pointer;
}

/* Variation labels as clean labelled rows */
.woocommerce-cart .variation {
    margin: 6px 0 0;
    padding: 0;
}

.woocommerce-cart .variation dt,
.woocommerce-cart .variation dd {
    display: block;
    float: none;
    margin: 0;
    padding: 0;
    width: auto;
    line-height: 1.5;
}

.woocommerce-cart .variation dt {
    font-size: 13px;
    font-weight: 600;
    color: #888;
    margin-top: 4px;
}

.woocommerce-cart .variation dd {
    font-size: 13px;
    font-weight: 400;
    color: #1C1917;
    margin-bottom: 0;
}

.woocommerce-cart .variation dd p {
    display: inline;
    margin: 0;
}

/* Delivery commitment block — injected via JS, sits beneath the variation list.
   Visually separated from spec rows so the timeline reads as a commitment,
   not a buried disclaimer. Same treatment desktop and mobile. */
.sav-cart-delivery {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 6px 12px;
    background: #F0EBE3;
    border-radius: 4px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #1C1917;
    line-height: 1.4;
}

.sav-cart-delivery svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    color: #FD4712;
}


/* ----------------------------------------------------------------
   8. PRICE, SUBTOTAL, QUANTITY COLUMNS
   v6: aggressive transparency on quantity stepper to kill any
   inherited fill from theme defaults.
   ---------------------------------------------------------------- */

.woocommerce-cart .sav-cart-desktop td.product-price {
    font-size: 16px;
    font-weight: 400;
    padding-top: 26px;
    white-space: nowrap;
}

.woocommerce-cart .sav-cart-desktop td.product-subtotal {
    font-size: 16px;
    font-weight: 500;
    padding-top: 26px;
    white-space: nowrap;
}

/* Quantity stepper — fully unstyled */
.woocommerce-cart .sav-cart-desktop .quantity,
.woocommerce-cart .quantity,
.woocommerce-cart .qty-btn,
.woocommerce-cart .quantity input.qty {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.woocommerce-cart .sav-cart-desktop .quantity {
    display: flex;
    align-items: center;
    width: fit-content;
}

.woocommerce-cart .qty-btn {
    padding: 8px 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #1C1917;
    font-weight: 400;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
}

.woocommerce-cart .qty-btn:hover {
    color: #FD4712;
}

.woocommerce-cart .quantity input.qty {
    width: 32px;
    text-align: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #1C1917;
    padding: 8px 0;
    -moz-appearance: textfield;
    appearance: textfield;
}

.woocommerce-cart .quantity input.qty::-webkit-inner-spin-button,
.woocommerce-cart .quantity input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}


/* ----------------------------------------------------------------
   9. REMOVE BUTTON
   ---------------------------------------------------------------- */

.woocommerce-cart table.sav-cart-desktop td.product-remove {
    text-align: right;
    padding-right: 0;
    vertical-align: top;
    padding-top: 28px;
}

.woocommerce-cart td.product-remove a.remove {
    color: #bbb !important;
    font-size: 20px;
    line-height: 1;
    text-decoration: none;
    background: none !important;
    border-radius: 0;
    width: auto;
    height: auto;
    display: inline;
    transition: color 0.15s;
}

.woocommerce-cart td.product-remove a.remove:hover {
    color: #1C1917 !important;
    background: none !important;
}


/* ----------------------------------------------------------------
   10. CART TOTALS PANEL AND CART-COLLATERALS ORDER
   v6: flex order applied at .cart-collaterals level so reviews and
   reassurance can be repositioned even when injected as siblings
   of .cart_totals.
   ---------------------------------------------------------------- */

/* Override WooCommerce defaults that float cart_totals right at 48% width */
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart_totals,
.woocommerce-cart .wc-proceed-to-checkout {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
}

/* Cart collaterals: flex column with explicit order for all children */
.woocommerce-cart .cart-collaterals {
    display: flex;
    flex-direction: column;
}

.woocommerce-cart .cart-collaterals > .cart_totals { order: 1; }
.woocommerce-cart .cart-collaterals > .sav-basket-reassurance { order: 2; }
.woocommerce-cart .cart-collaterals > .sav-basket-express-divider { order: 3; }
.woocommerce-cart .cart-collaterals > .sav-express-row { order: 4; }
.woocommerce-cart .cart-collaterals > .sav-basket-klarna { order: 5; }
.woocommerce-cart .cart-collaterals > .sav-basket-reviews { order: 99; }

/* Cart totals: flex column with order so coupon sits below totals */
.woocommerce-cart .cart_totals {
    background: none;
    display: flex;
    flex-direction: column;
}

.woocommerce-cart .cart_totals > h2 { order: 0; }
.woocommerce-cart .cart_totals > .shop_table { order: 1; }
.woocommerce-cart .cart_totals > button.sav-coupon-toggle { order: 2; }
.woocommerce-cart .cart_totals > .cart-coupon-form { order: 3; }
.woocommerce-cart .cart_totals > .wc-proceed-to-checkout { order: 4; }
.woocommerce-cart .cart_totals > .sav-basket-reassurance { order: 5; }
.woocommerce-cart .cart_totals > .sav-basket-reviews { order: 99; }

.woocommerce-cart .cart_totals h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 20px;
}

.woocommerce-cart .cart_totals .shop_table {
    width: 100%;
    border: none;
    border-collapse: collapse;
    margin-bottom: 0;
}

.woocommerce-cart .cart_totals .shop_table th,
.woocommerce-cart .cart_totals .shop_table td {
    padding: 12px 0;
    border: none;
    border-bottom: 1px solid #E5E0D8;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    vertical-align: middle;
    background: none;
}

.woocommerce-cart .cart_totals .shop_table th {
    font-weight: 400;
    color: #888;
    text-align: left;
    min-width: 40%;
}

.woocommerce-cart .cart_totals .shop_table td {
    text-align: right;
    font-weight: 400;
    color: #1C1917;
}

/* Shipping row */
#shipping_method {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: right;
}

#shipping_method li label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #1C1917;
}

/* Total row */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
    border-bottom: none;
    padding-top: 20px;
}

.woocommerce-cart .cart_totals .order-total th {
    font-size: 16px;
    font-weight: 600;
    color: #1C1917;
}

.woocommerce-cart .cart_totals .order-total td strong {
    font-family: 'Newsreader', serif;
    font-size: 30px;
    font-weight: 600;
    color: #1C1917;
    letter-spacing: -0.01em;
}

.woocommerce-cart .cart_totals .order-total .includes_tax {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: #888;
    display: block;
    margin-top: 2px;
}

/* Hide shipping calculator - UK flat rate, redundant */
.woocommerce-cart .shipping-calculator-button,
.woocommerce-cart .woocommerce-shipping-destination,
.woocommerce-cart .woocommerce-shipping-calculator {
    display: none !important;
}


/* ----------------------------------------------------------------
   11. COUPON FIELD — sits below the totals table
   ---------------------------------------------------------------- */

button.sav-coupon-toggle,
.woocommerce button.sav-coupon-toggle,
.woocommerce-cart button.sav-coupon-toggle,
.cart_totals button.sav-coupon-toggle,
html body .woocommerce button.sav-coupon-toggle {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #444 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    text-decoration: underline !important;
    letter-spacing: normal !important;
    padding: 0 !important;
    margin: 16px 0 8px !important;
    height: auto !important;
    line-height: 1.5 !important;
    width: 100% !important;
    min-width: 0 !important;
    display: block !important;
    text-align: center !important;
    cursor: pointer !important;
}

button.sav-coupon-toggle:hover,
html body .woocommerce button.sav-coupon-toggle:hover {
    background: transparent !important;
    background-color: transparent !important;
    color: #1C1917 !important;
}

.cart-coupon-form {
    margin-bottom: 4px;
}

.cart-coupon-form .sav-coupon-fields {
    display: none;
    align-items: center;
    gap: 8px;
}

.cart-coupon-form.sav-coupon-open .sav-coupon-fields {
    display: flex;
}

.cart-coupon-form input#cart-coupon-code {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    border: 1px solid #CBBFB0;
    border-radius: 4px;
    padding: 10px 14px;
    flex: 1;
    min-width: 0;
    background: #FBF9F6;
    color: #1C1917;
    box-shadow: none;
}

.cart-coupon-form input#cart-coupon-code:focus {
    outline: none;
    border-color: #1C1917;
}

.cart-coupon-form button[name="apply_coupon"] {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    border: 1px solid #1C1917;
    border-radius: 4px;
    padding: 10px 16px;
    background: none;
    color: #1C1917;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s;
}

.cart-coupon-form button[name="apply_coupon"]:hover {
    background: #1C1917;
    color: #FBF9F6;
}


/* ----------------------------------------------------------------
   12. REVIEWS STRIP — at the very bottom of the right column
   ---------------------------------------------------------------- */

.sav-basket-reviews {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    margin: 32px 0 16px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: #1C1917;
}

.sav-basket-reviews__stars-wrap {
    position: relative;
    display: inline-block;
    line-height: 1;
}

.sav-basket-reviews__stars-bg {
    color: #E5E0D8;
    letter-spacing: -1px;
    font-size: 14px;
}

.sav-basket-reviews__stars-fg {
    color: #FD4712;
    letter-spacing: -1px;
    font-size: 14px;
    position: absolute;
    left: 0;
    top: 0;
    width: 98%;
    overflow: hidden;
    white-space: nowrap;
}

.sav-basket-reviews__count {
    color: #1C1917;
}

.sav-basket-reviews__source {
    margin-left: auto;
    font-size: 10px;
    font-weight: 600;
    color: #888;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Legacy single-strip class - kept for safety if cache serves stale markup */
.sav-basket-reviews__stars {
    color: #FD4712;
    letter-spacing: -1px;
    font-size: 14px;
}


/* ----------------------------------------------------------------
   13. CHECKOUT BUTTON
   v7: .wc-proceed-to-checkout switched from flex column to block
   with text-align center. The flex parent in v6 was stretching the
   button to full width despite max-width. Block parent with
   text-align and inline-block button gives reliable 280px centred.
   Broader selector chain to beat any theme override.
   ---------------------------------------------------------------- */

.woocommerce-cart .wc-proceed-to-checkout {
    margin-top: 0;
    margin-bottom: 0;
    text-align: center;
}

html body .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
html body .woocommerce-cart .wc-proceed-to-checkout .checkout-button,
html body.woocommerce-cart a.checkout-button,
html body.woocommerce-cart .checkout-button {
    display: inline-block !important;
    width: 100% !important;
    max-width: 280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    background: #FD4712 !important;
    color: #FBF9F6 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    padding: 16px 24px !important;
    border-radius: 48px !important;
    border: none !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
    transition: background 0.15s;
    box-sizing: border-box !important;
}

html body .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
html body.woocommerce-cart .checkout-button:hover {
    background: #e03e0e !important;
}


/* ----------------------------------------------------------------
   14. REASSURANCE STACK — below CTA
   v6: padlock SVG via ::before on the first line.
   NOTE: "Free 14-day returns." should be removed from the
   reassurance string in functions.php. CSS can't selectively
   remove part of a text node.
   ---------------------------------------------------------------- */

.sav-basket-reassurance {
    margin-top: 16px;
    text-align: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #1C1917;
    line-height: 1.6;
}

.sav-basket-reassurance__secure {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: #1C1917;
    margin-bottom: 6px;
    letter-spacing: -0.005em;
}

.sav-basket-reassurance__secure::before {
    content: '';
    display: inline-block;
    width: 13px;
    height: 15px;
    margin-right: 6px;
    vertical-align: -2px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1917' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='11' width='18' height='11' rx='2' ry='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.sav-basket-reassurance__line {
    display: block;
    margin-bottom: 4px;
}

.sav-basket-reassurance__line:last-child {
    margin-bottom: 0;
}

html body .sav-basket-reassurance a,
html body .sav-basket-reassurance a:link,
html body .sav-basket-reassurance a:visited {
    color: #1C1917 !important;
    text-decoration: none !important;
}

html body .sav-basket-reassurance a:hover {
    color: #FD4712 !important;
    text-decoration: underline !important;
}


/* ----------------------------------------------------------------
   15. EXPRESS PAYMENT BUTTONS AND KLARNA
   Apple/Google Pay above PayPal. "Or pay with" divider hidden.
   ---------------------------------------------------------------- */

.sav-basket-express-divider {
    display: none !important;
}

.sav-express-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    margin-top: 24px;
}

.sav-express-row > * {
    width: 100%;
    max-width: 280px;
    min-width: 0;
}

/* Stripe (Apple/Google Pay) above PayPal */
.sav-express-row .wc-stripe-cart-checkout-container { order: 1; }
.sav-express-row .wc-ppcp-cart-payments__container { order: 2; }

.sav-express-row .wc-ppcp-cart-payments__container {
    width: 100% !important;
    max-width: 280px !important;
    margin: 0 !important;
}

.sav-express-row .wc-ppcp-cart-payments__container .paypal-buttons {
    min-width: 0 !important;
}

.sav-express-row .wc-stripe-cart-checkout-container {
    margin: 0 !important;
}

.sav-express-row .wc_stripe_cart_payment_methods {
    width: 100% !important;
    max-width: 280px !important;
    margin: 0 auto !important;
}

#wc-stripe-googlepay-container .gpay-card-info-container,
#wc-stripe-applepay-container button {
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    border-radius: 48px !important;
}

.wc-ppcp-cart-payment-method.or,
.wc-stripe-payment-method.or {
    display: none !important;
}

.sav-basket-klarna {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #1C1917;
}

.sav-basket-klarna__logo {
    display: inline-flex;
    align-items: center;
    background: #0A0B09;
    color: #FFB3C7;
    font-weight: 700;
    font-size: 11px;
    padding: 3px 8px;
    border-radius: 3px;
    letter-spacing: 0.02em;
}


/* ----------------------------------------------------------------
   16. WHY SAVERNAKE SECTION
   v6: duplicate icon block hidden (icons now live in the top
   trust strip instead).
   ---------------------------------------------------------------- */

.sav-basket-why {
    margin-top: 56px;
    padding-top: 40px;
    padding-bottom: 40px;
    border-top: 1px solid #E5E0D8;
}

.sav-basket-why__eyebrow {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 8px;
}

.sav-basket-why__heading {
    font-family: 'Newsreader', serif;
    font-size: 22px;
    font-weight: 400;
    color: #1C1917;
    margin: 0 0 12px;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

@media (min-width: 480px) {
    .sav-basket-why__heading {
        white-space: nowrap;
    }
}

.sav-basket-why__body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #1C1917;
    line-height: 1.6;
    max-width: 520px;
    margin: 0;
}

/* Duplicate icon block — hidden because the top trust strip
   now does this job. functions.php could drop the markup entirely
   in a follow-up. */
.sav-basket-why__icons {
    display: none !important;
}

.sav-basket-why__reviews {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #888;
    display: flex;
    align-items: center;
    gap: 8px;
}

.sav-basket-why__reviews-stars {
    color: #FD4712;
    letter-spacing: -1px;
}


/* ----------------------------------------------------------------
   17. MOBILE
   ---------------------------------------------------------------- */

/* ============ ZAZOOM-CART-SWITCH-MOBILE START — Hide mobile cards above breakpoint ============ */
@media (min-width: 768px) {
    .sav-cart-mobile { display: none !important; }
}
/* ============ ZAZOOM-CART-SWITCH-MOBILE END ============ */

/* ============ ZAZOOM-MOBILE-LAYOUT START — Mobile card layout styles ============ */
@media (max-width: 767px) {

    .sav-cart-card {
        padding: 20px 0;
        border-bottom: 1px solid #E5E0D8;
    }

    .sav-cart-card__row {
        display: flex;
        gap: 16px;
        align-items: flex-start;
    }

    /* Mobile thumb: targets the bespoke card markup if it renders.
       Aggressive override on standard WC markup was removed in v11
       because it disrupted configured-knife layered renders. */
    .sav-cart-card__thumb img {
        width: 192px;
        height: 192px;
        object-fit: cover;
        border-radius: 4px;
        display: block;
    }

    .sav-cart-card__info {
        flex: 1;
        min-width: 0;
    }

    .sav-cart-card__header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 6px;
    }

    .sav-cart-card__name a {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 15px;
        font-weight: 600;
        color: #1C1917;
        text-decoration: none;
    }

    .sav-cart-card__meta .variation dt {
        font-size: 12px;
        font-weight: 600;
        color: #888;
        margin-top: 4px;
    }

    .sav-cart-card__meta .variation dd {
        font-size: 12px;
        color: #1C1917;
    }

    .sav-cart-card__bottom {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 12px;
    }

    .sav-cart-card__subtotal .woocommerce-Price-amount {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 15px;
        font-weight: 600;
    }

    .sav-cart-mobile .quantity {
        display: flex;
        align-items: center;
    }

    .sav-cart-mobile .qty-btn {
        padding: 6px 6px;
        cursor: pointer;
        display: flex;
        align-items: center;
        color: #1C1917;
    }

    .sav-cart-mobile .quantity input.qty {
        width: 28px;
        text-align: center;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 15px;
        padding: 6px 0;
        -moz-appearance: textfield;
        appearance: textfield;
    }

    .sav-cart-mobile .quantity input.qty::-webkit-inner-spin-button,
    .sav-cart-mobile .quantity input.qty::-webkit-outer-spin-button {
        -webkit-appearance: none;
    }

    .cart-collaterals { margin-top: 24px; }
    .sav-basket-trust-strip {
        margin-top: 24px;
        margin-bottom: 32px;
        padding-top: 0;
        padding-bottom: 0;
    }

    .sav-basket-why { margin-top: 40px; padding-top: 32px; }
    .sav-basket-why__heading { font-size: 20px; }

}
/* ============ ZAZOOM-MOBILE-LAYOUT END ============ */


/* ----------------------------------------------------------------
   18. MOBILE STICKY CTA BAR
   Fixed bottom bar showing total and Checkout button. Only renders
   below 768px viewport. Injected via JS in functions.php.
   ---------------------------------------------------------------- */

/* ============ ZAZOOM-CTA-BAR START — Sticky mobile CTA bar ============ */
@media (max-width: 767px) {

    .sav-mobile-cta-bar {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 10px 16px;
        background: rgba(251, 249, 246, 0.97);
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
        box-shadow: 0 -1px 0 #E5E0D8, 0 -8px 24px rgba(0, 0, 0, 0.06);
    }

    .sav-mobile-cta-bar__total {
        display: flex;
        flex-direction: column;
        flex-shrink: 0;
        line-height: 1.1;
    }

    .sav-mobile-cta-bar__total-label {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 10px;
        font-weight: 600;
        color: #888;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        margin-bottom: 2px;
    }

    .sav-mobile-cta-bar__total-value .woocommerce-Price-amount {
        font-family: 'Newsreader', serif;
        font-size: 22px;
        font-weight: 400;
        color: #1C1917;
        letter-spacing: -0.01em;
    }

    html body .sav-mobile-cta-bar__cta,
    html body .sav-mobile-cta-bar__cta:link,
    html body .sav-mobile-cta-bar__cta:visited {
        flex: 1;
        max-width: 220px;
        background: #FD4712 !important;
        color: #FFFFFF !important;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 13px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        padding: 14px 20px;
        border-radius: 48px;
        text-align: center;
        text-decoration: none !important;
        transition: background 0.15s;
    }

    html body .sav-mobile-cta-bar__cta:hover,
    html body .sav-mobile-cta-bar__cta:focus {
        background: #e03e0e !important;
        color: #FFFFFF !important;
    }

    /* Push page content up so it isn't hidden behind the fixed bar */
    body.woocommerce-cart {
        padding-bottom: 80px;
    }

}
/* ============ ZAZOOM-CTA-BAR END ============ */


/* ----------------------------------------------------------------
   19. NEWSLETTER SUPPRESSION ON BASKET
   Hides the footer newsletter band on the basket URL so it doesn't
   compete with the checkout CTA.
   Broad pattern below — narrow to exact class once identified.
   ---------------------------------------------------------------- */

body.woocommerce-cart .footer-newsletter,
body.woocommerce-cart .newsletter-block,
body.woocommerce-cart .newsletter-signup,
body.woocommerce-cart [class*="newsletter-band"],
body.woocommerce-cart [class*="footer-newsletter"],
body.woocommerce-cart .klaviyo-form,
body.woocommerce-cart [class*="klaviyo-form"] {
    display: none !important;
}


/* ============ ZAZOOM-THUMB START — Mobile thumbnail size override ============ */
/* ----------------------------------------------------------------
   19. MOBILE THUMBNAIL SIZE OVERRIDE (v14)
   The configurator's PHP renders knife images with an inline
   style="max-width: 100px; height: auto;" attribute, which beats
   normal CSS. Higher specificity plus !important is needed to
   defeat that inline style while leaving the inline rendering
   intact (we just want to resize the thumbnail in this context).
   Scoped to the mobile cart card markup only.
   ---------------------------------------------------------------- */

@media (max-width: 767px) {
    body.woocommerce-cart .sav-cart-card .sav-cart-card__thumb img {
        width: 192px !important;
        max-width: 192px !important;
        height: 192px !important;
        object-fit: cover !important;
        display: block !important;
    }
}
/* ============ ZAZOOM-THUMB END ============ */

/* ----------------------------------------------------------------
   20. PAGE GUTTER OVERRIDE
   The basket page's outer Elementor section has heavy horizontal
   padding (~105px each side). Reducing it claws back ~150px of
   horizontal room, which is what lets the two-column layout
   survive down to ~1100px viewport before the right column wraps.
   ID-based selector — if Elementor regenerates this section the
   ID may change and this rule will silently stop working.
   ---------------------------------------------------------------- */

.woocommerce-cart .elementor-element-d85e149 {
    padding-left: 32px !important;
    padding-right: 32px !important;
}


/* ----------------------------------------------------------------
   21. CART ROW LAYOUT — DESKTOP
   Converts the WC cart table into a CSS grid per row:
       [thumb 160px] [name + variation + chip] [subtotal stacked over qty]
   Drops the column headers (Price / Qty / Total) and the unit price
   column entirely — only the line subtotal is shown.
   The remove (X) cell is hidden; qty stepper handles removal via
   minimum=0. Vertical alignment locks both subtotal and qty stepper
   to grid-row 1 of the right column, with margin-top spacing the
   stepper directly below the subtotal regardless of left column height.
   ---------------------------------------------------------------- */

/* ============ ZAZOOM-ROW-LAYOUT START — Desktop cart row grid ============ */

/* Lose table display - convert to block flow for grid layout */
.woocommerce-cart .sav-cart-desktop,
.woocommerce-cart .sav-cart-desktop tbody {
    display: block;
}

/* Hide column headers entirely - the layout speaks for itself */
.woocommerce-cart .sav-cart-desktop thead {
    display: none;
}

/* Hide unit price and standalone remove cells */
.woocommerce-cart .sav-cart-desktop td.product-price,
.woocommerce-cart .sav-cart-desktop td.product-remove {
    display: none;
}

/* Each row: 3-column grid (thumb | name+variation | right stack) */
.woocommerce-cart .sav-cart-desktop tbody tr {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) auto;
    column-gap: 24px;
    align-items: start;
    padding: 24px 0;
    border: none !important;
    border-bottom: 1px solid #E5E0D8 !important;
}

/* Last row: no bottom border to avoid doubling with white box edge */
.woocommerce-cart .sav-cart-desktop tbody tr:last-child {
    border-bottom: none !important;
}

/* Strip all table-cell defaults including any inherited borders */
.woocommerce-cart .sav-cart-desktop tbody td {
    display: block;
    padding: 0 !important;
    border: none !important;
    width: auto !important;
    vertical-align: top;
    background: none !important;
}

/* Thumb cell - left column, spans both grid rows */
.woocommerce-cart .sav-cart-desktop td.product-thumbnail {
    grid-column: 1;
    grid-row: 1 / -1;
    width: 160px !important;
}

.woocommerce-cart .sav-cart-desktop td.product-thumbnail img,
.woocommerce-cart .sav-cart-desktop td.product-thumbnail a img {
    width: 160px !important;
    height: 160px !important;
    max-width: 160px !important;
    object-fit: cover;
    border-radius: 4px;
}

/* Name + variation + chip - middle column, spans both grid rows */
.woocommerce-cart .sav-cart-desktop td.product-name {
    grid-column: 2;
    grid-row: 1 / -1;
    padding-top: 4px !important;
}

/* Variation: stack label (dt) above value (dd) vertically */
.woocommerce-cart .sav-cart-desktop .variation dt,
.woocommerce-cart .sav-cart-desktop .variation dd {
    display: block !important;
    float: none !important;
}

/* Subtotal - right column, top row, centred over stepper */
.woocommerce-cart .sav-cart-desktop td.product-subtotal {
    grid-column: 3;
    grid-row: 1;
    text-align: center !important;
    white-space: nowrap;
    font-size: 18px;
    font-weight: 500;
    padding-top: 4px !important;
    align-self: start;
    min-width: 90px !important;
}

/* Qty stepper - right column, same row 1 cell, sits directly below subtotal */
.woocommerce-cart .sav-cart-desktop td.product-quantity {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    align-self: start;
    margin-top: 36px;
}

/* ============ ZAZOOM-ROW-LAYOUT END ============ */


/* ----------------------------------------------------------------
   22. TRUST STRIP — non-interactive tiles (v15)
   Trust boxes are visual reassurance only. Chevrons and any
   expandable behaviour were considered and rejected — kept here
   defensively in case any old chevron markup persists.
   functions.php v9 strips chevrons and bodies from the markup;
   the [open] state and chevron rules in section 4 become inert.
   ---------------------------------------------------------------- */

.sav-basket-trust-strip__chevron {
    display: none !important;
}

/* Disable click-to-expand on any legacy <details> markup */
.sav-basket-trust-strip__item summary {
    list-style: none;
    cursor: default;
    pointer-events: none;
}

.sav-basket-trust-strip__item summary::-webkit-details-marker {
    display: none;
}


/* ----------------------------------------------------------------
   23. VARIATION DISPLAY — ONE LINE AT WIDE DESKTOP (>=1200px)
   Each dt/dd pair sits on a single line at >=1200px.
   The dt already carries a trailing colon from WooCommerce output
   so ::after adds a space only, not ': '.
   ---------------------------------------------------------------- */

@media (min-width: 1200px) {
    .woocommerce-cart .sav-cart-desktop .variation dt,
    .woocommerce-cart .sav-cart-desktop .variation dd {
        display: inline !important;
        float: none !important;
        margin-top: 0 !important;
    }
    .woocommerce-cart .sav-cart-desktop .variation dt::after {
        content: ' ';
    }
    .woocommerce-cart .sav-cart-desktop .variation dd::after {
        content: '';
        display: block;
    }
}


/* ----------------------------------------------------------------
   24. EDGE TYPE — hidden on desktop and mobile
   ---------------------------------------------------------------- */

.woocommerce-cart .sav-cart-desktop .variation dt.variation-EdgeType,
.woocommerce-cart .sav-cart-desktop .variation dd.variation-EdgeType,
.woocommerce-cart .sav-cart-card .variation dt.variation-EdgeType,
.woocommerce-cart .sav-cart-card .variation dd.variation-EdgeType {
    display: none !important;
}


/* ----------------------------------------------------------------
   25. CART TOTALS ORDER
   Checkout button immediately under totals table.
   Coupon and form sit below. Not scoped to mobile only —
   this is the correct order at all widths.
   ---------------------------------------------------------------- */

.woocommerce-cart .cart_totals > .wc-proceed-to-checkout { order: 2; }
.woocommerce-cart .cart_totals > button.sav-coupon-toggle { order: 3; }
.woocommerce-cart .cart_totals > .cart-coupon-form { order: 4; }


/* ----------------------------------------------------------------
   26. PAYPAL Z-INDEX
   Prevents PayPal iframe floating over the sticky header on scroll.
   ---------------------------------------------------------------- */

.woocommerce-cart .wc-ppcp-cart-payments__container,
.woocommerce-cart .wc-ppcp-cart-payments__container iframe,
.woocommerce-cart .paypal-buttons-container {
    z-index: 1 !important;
    position: relative !important;
}


/* ----------------------------------------------------------------
   27. MOBILE
   All mobile-specific overrides consolidated here.
   woocommerce-smallscreen.css is dequeued on basket page via
   functions.php (priority 100), so these rules have clear authority.
   ---------------------------------------------------------------- */

/* Hide basket hero bar — logo header is sufficient on mobile */
@media (max-width: 767px) {
    .woocommerce-cart .elementor-element-f38bb0f {
        display: none !important;
    }
}

/* Hide sticky CTA bar — permanent checkout button reinstated */
@media (max-width: 767px) {
    .sav-mobile-cta-bar {
        display: none !important;
    }
    body.woocommerce-cart {
        padding-bottom: 0;
    }
}

/* Trust strip — compact, no secondary line, guttered */
@media (max-width: 767px) {
    .sav-basket-trust-strip {
        margin-top: -32px;
        margin-bottom: 24px;
        gap: 8px 12px;
        padding-left: 16px;
        padding-right: 16px;
    }
    .sav-basket-trust-strip__summary {
        padding: 8px 10px;
        gap: 8px;
    }
    .sav-basket-trust-strip__label {
        font-size: 11px;
    }
    .sav-basket-trust-strip__desc {
        display: none;
    }
}

/* Page guttering — strip outer padding, white boxes edge to edge */
@media (max-width: 767px) {
    .woocommerce-cart .elementor-element-d85e149 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .woocommerce-cart .woocommerce-cart-form {
        background: #FFFFFF;
        border: 1px solid #E5E0D8;
        border-left: none;
        border-right: none;
        border-radius: 0;
        padding: 16px;
        box-sizing: border-box;
    }
    .woocommerce-cart .cart-collaterals {
        background: #FFFFFF;
        border: 1px solid #E5E0D8;
        border-left: none;
        border-right: none;
        border-radius: 0;
        padding: 16px;
        box-sizing: border-box;
    }
}

/* Why Savernake section — restore guttering on mobile */
@media (max-width: 767px) {
    .sav-basket-why {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* Mobile card — thumbnail, typography, inline variations */
@media (max-width: 767px) {
    body.woocommerce-cart .sav-cart-card .sav-cart-card__thumb,
    body.woocommerce-cart .sav-cart-card .sav-cart-card__thumb img {
        width: 165px !important;
        max-width: 165px !important;
        height: 165px !important;
        object-fit: cover !important;
        border-radius: 4px !important;
        display: block !important;
        flex-shrink: 0 !important;
    }
    .woocommerce-cart .sav-cart-card__name a {
        font-size: 13px;
        line-height: 1.3;
    }
    .woocommerce-cart .sav-cart-card__subtotal .woocommerce-Price-amount {
        font-size: 13px;
    }
    /* Inline variations — label: value on one line */
    .woocommerce-cart .sav-cart-card__meta .variation dt,
    .woocommerce-cart .sav-cart-card__meta .variation dd {
        display: inline !important;
        float: none !important;
        margin-top: 0 !important;
        font-size: 11px;
        line-height: 1.4;
    }
    .woocommerce-cart .sav-cart-card__meta .variation dt::after {
        content: ' ';
    }
    .woocommerce-cart .sav-cart-card__meta .variation dd::after {
        content: '';
        display: block;
    }
}

/* Delivery chip — ivory background, icon visible, constrained */
.woocommerce-cart .sav-cart-card__info {
    overflow: hidden;
}

@media (max-width: 767px) {
    .woocommerce-cart .sav-cart-card .sav-cart-delivery {
        display: flex !important;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        background: #FBF9F6 !important;
        padding: 6px 12px !important;
        border-radius: 4px !important;
        font-size: 11px !important;
        color: #1C1917 !important;
        white-space: normal;
    }
    .woocommerce-cart .sav-cart-card .sav-cart-delivery span {
        white-space: normal;
        word-break: break-word;
    }
    .woocommerce-cart .sav-cart-card .sav-cart-delivery svg {
        display: inline-block !important;
    }
}

/* Shipping row — reinstated in totals */
@media (max-width: 767px) {
    .woocommerce-cart .cart_totals tr.shipping {
        display: table-row !important;
    }
}

/* Checkout button — reinstated, flex-centred, 48px height to match express buttons */
@media (max-width: 767px) {
    .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
    .woocommerce-cart .wc-proceed-to-checkout .checkout-button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 48px !important;
        padding: 0 24px !important;
        line-height: 1 !important;
        font-size: 13px !important;
        border-radius: 24px !important;
        box-sizing: border-box !important;
    }
}

/* Express buttons — full width on mobile */
@media (max-width: 767px) {
    .sav-express-row > * {
        max-width: 100% !important;
    }
    .sav-express-row .wc-ppcp-cart-payments__container,
    .sav-express-row .wc-stripe-cart-checkout-container,
    .sav-express-row .wc_stripe_cart_payment_methods {
        max-width: 100% !important;
    }
}

/* Coupon toggle — centred, legible, tighter margin */
@media (max-width: 767px) {
    button.sav-coupon-toggle,
    .woocommerce button.sav-coupon-toggle,
    .woocommerce-cart button.sav-coupon-toggle,
    .cart_totals button.sav-coupon-toggle,
    html body .woocommerce button.sav-coupon-toggle {
        color: #444 !important;
        text-align: center !important;
        width: 100% !important;
        margin: 8px 0 4px !important;
    }
}


/* ----------------------------------------------------------------
   28. WHY SAVERNAKE — TWO COLUMN WITH ACCORDIONS
   Desktop: heading/body left, accordions right, align-items start
   so left column stays at natural height when accordions expand.
   Mobile: accordions stack above the heading/body via flex order.
   ---------------------------------------------------------------- */

@media (min-width: 768px) {
    .sav-basket-why {
        display: flex;
        flex-direction: row;
        gap: 56px;
        align-items: flex-start;
    }
    .sav-basket-why__left {
        flex: 1 1 0;
        min-width: 0;
    }
    .sav-basket-why__right {
        flex: 1 1 0;
        min-width: 0;
    }
}

@media (max-width: 767px) {
    .sav-basket-why {
        display: flex;
        flex-direction: column;
    }
    .sav-basket-why__right {
        order: -1;
        margin-bottom: 24px;
    }
}

/* Accordion tiles */
.sav-why-accordion {
    border-bottom: 1px solid #E5E0D8;
}

.sav-why-accordion:first-child {
    border-top: 1px solid #E5E0D8;
}

.sav-why-accordion:last-child {
    border-bottom: none;
}

.sav-why-accordion__summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #1C1917;
    user-select: none;
    outline: none;
}

.sav-why-accordion__summary::-webkit-details-marker {
    display: none;
}

.sav-why-accordion__summary::marker {
    display: none;
    content: '';
}

/* Chevron via CSS — rotates on open */
.sav-why-accordion__summary::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.2s ease;
}

.sav-why-accordion[open] > .sav-why-accordion__summary::after {
    transform: rotate(180deg);
}

.sav-why-accordion__body {
    padding: 0 0 16px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #555;
    line-height: 1.6;
}

.sav-why-accordion__body p {
    margin: 0;
}


/* ----------------------------------------------------------------
   28b. WHY SAVERNAKE — OVERLAP FIX AND ACCORDION BACKGROUND
   ---------------------------------------------------------------- */

/* Constrain heading so it doesn't bleed into the right column */
.sav-basket-why__heading {
    max-width: 100%;
    word-break: break-word;
}

/* Increase gap between columns to prevent overlap at wide viewports */
@media (min-width: 768px) {
    .sav-basket-why {
        gap: 80px;
    }
}

/* White box background on accordions, matching cart/payment boxes */
.sav-basket-why__right {
    background: #FFFFFF;
    border: 1px solid #E5E0D8;
    border-radius: 8px;
    padding: 0 24px;
}

/* First and last accordion borders adjusted for the box */
.sav-why-accordion:first-child {
    border-top: none;
}


/* ----------------------------------------------------------------
   28c. WHY SAVERNAKE — HEADING WRAP AND ICON LAYOUT
   ---------------------------------------------------------------- */

/* Cap the heading size in the basket Why section so it wraps */
.sav-basket-why__heading {
    font-size: 28px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
}

/* Left column: constrain width so heading wraps before hitting right column */
.sav-basket-why__left {
    max-width: 420px;
}

/* Summary: icon + label + chevron in a row */
.sav-why-accordion__summary {
    gap: 12px;
}

.sav-why-accordion__icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    color: #FD4712;
    display: inline-flex;
    align-items: center;
}

.sav-why-accordion__icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

.sav-why-accordion__label {
    flex: 1;
}
