/*
 * The cart page in the checkout's design language (functions/woocommerce/cart-layout.php).
 * Items card on the left, a 400px Order Summary on the grey page at right,
 * one orange button. Loaded after the cart-checkout bundle and scoped to
 * body.tc-cart-v2, so the bundle's older cart rules are overridden here.
 */

body.tc-cart-v2 {
    --tc-cart-ink: var(--ink-800, #252d38);
    --tc-cart-body: var(--ink-600, #444);
    --tc-cart-muted: var(--ink-400, #687281);
    --tc-cart-line: var(--line, #e0e4ea);
    --tc-cart-line-strong: var(--line-strong, #d7dde6);
    --tc-cart-surface-1: var(--surface-1, #f7f9fb);
    --tc-cart-surface-2: var(--surface-2, #f2f4f7);
    --tc-cart-navy: var(--navy-700, #293042);
    --tc-cart-orange: var(--orange-500, #ea6a17);
    --tc-cart-orange-hover: var(--orange-600, #d65f10);
    --tc-cart-orange-active: var(--orange-700, #c2540c);
    --tc-cart-green: var(--success-600, #16843e);
    --tc-cart-steel: var(--steel-600, #0a7497);
    --tc-cart-radius: 8px;
}

/* #wrapper p (global stylesheet) adds a bottom margin; spacing here comes from gaps. */
body.tc-cart-v2 #wrapper .tc-cart p {
    margin: 0;
}

/* The page's own cards replace the outer content card. */
body.tc-cart-v2 #tc-content.tc-cart-page {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

body.tc-cart-v2 #tc-content.tc-cart-page .post {
    margin: 0;
    padding: 0;
}

body.tc-cart-v2 .tc-cart {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 12px 0 48px;
    font-family: var(--font-ui);
    color: var(--tc-cart-body);
}

/* ── Heading ───────────────────────────────────────────────────────────── */

body.tc-cart-v2 .tc-cart__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 12px;
}

body.tc-cart-v2 .tc-cart__title {
    margin: 0;
    padding: 0;
    font: 700 30px/1.15 var(--font-ui);
    letter-spacing: -0.2px;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart__count {
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart__continue,
body.tc-cart-v2 .tc-cart__continue:visited {
    margin-left: auto;
    font-size: 15px;
    font-weight: 600;
    color: var(--tc-cart-steel);
    text-decoration: none;
}

body.tc-cart-v2 .tc-cart__continue:hover,
body.tc-cart-v2 .tc-cart__continue:focus-visible {
    color: var(--steel-700, #08607d);
    text-decoration: underline;
}

/* ── Layout ────────────────────────────────────────────────────────────── */

body.tc-cart-v2 .tc-cart__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    align-items: start;
    gap: 40px;
}

body.tc-cart-v2 .tc-cart__main {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

body.tc-cart-v2 .tc-cart__aside {
    position: sticky;
    top: 16px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

body.tc-cart-v2 .tc-cart__card {
    padding: 28px 32px;
    border: 1px solid var(--tc-cart-line);
    border-radius: var(--tc-cart-radius);
    background: #fff;
    box-shadow: var(--shadow-hairline, 0 0 0.875rem 0 rgb(41 48 66 / 5%));
}

body.tc-cart-v2 .tc-cart__items {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-bottom: 8px;
}

/* The free-shipping meter runs the full width of the items card, like the
   slideout's band: no box and no inset, straight under the card's top edge,
   with a rule below it. Its content lines up with the rows under it. */
body.tc-cart-v2 .tc-cart__items > .tc-ship-meter--cart,
body.tc-cart-v2 .tc-cart__items > .tc-ship-meter--cart.is-unlocked {
    margin: -28px -32px 0;
    padding: 20px 32px;
    border: 0;
    border-bottom: 1px solid var(--tc-cart-line);
    border-radius: 7px 7px 0 0;
    background: #fff;
}

/* The band's rule already separates it from the first row. */
body.tc-cart-v2 .tc-cart__items > .tc-ship-meter--cart ~ .tc-cart-lines > .tc-cart-line:first-child {
    border-top: 0;
}

body.tc-cart-v2 .tc-cart__items > .woocommerce-notices-wrapper:not(:empty) {
    padding-top: 16px;
}

body.tc-cart-v2 .tc-cart__form-actions {
    display: none;
}

/* ── Notices: the removed-item Undo and coupon messages ───────────────── */

body.tc-cart-v2 .tc-cart .woocommerce-notices-wrapper:empty {
    display: none;
}

body.tc-cart-v2 .tc-cart .woocommerce-message,
body.tc-cart-v2 .tc-cart .woocommerce-info,
body.tc-cart-v2 .tc-cart .woocommerce-error {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    margin: 0 0 8px;
    padding: 12px 14px;
    border: 1px solid var(--tc-cart-line);
    border-radius: var(--tc-cart-radius);
    background: var(--tc-cart-surface-1);
    font-size: 14px;
    line-height: 1.4;
    color: var(--tc-cart-body);
    list-style: none;
}

body.tc-cart-v2 .tc-cart .woocommerce-message::before,
body.tc-cart-v2 .tc-cart .woocommerce-info::before,
body.tc-cart-v2 .tc-cart .woocommerce-error::before {
    display: none;
}

body.tc-cart-v2 .tc-cart .woocommerce-error {
    border-color: #fecdca;
    background: var(--danger-050, #fef3f2);
    color: var(--danger-700, #b42318);
}

body.tc-cart-v2 .tc-cart .woocommerce-message a,
body.tc-cart-v2 .tc-cart .woocommerce-info a {
    font-weight: 600;
    color: var(--tc-cart-steel);
}

body.tc-cart-v2 .tc-cart .woocommerce-message .restore-item {
    margin-left: auto;
}

/* ── Line items ────────────────────────────────────────────────────────── */

body.tc-cart-v2 .tc-cart-lines {
    margin: 0;
    padding: 0;
    list-style: none;
}

body.tc-cart-v2 .tc-cart-line {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) 130px;
    gap: 20px;
    margin: 0;
    padding: 22px 0;
    border-top: 1px solid var(--tc-cart-line);
}

body.tc-cart-v2 .tc-cart-line__thumb a,
body.tc-cart-v2 .tc-cart-line__thumb > img {
    display: block;
}

body.tc-cart-v2 .tc-cart-line__thumb img {
    display: block;
    width: 96px !important;
    max-width: 96px !important;
    height: 96px !important;
    max-height: 96px !important;
    margin: 0;
    border: 1px solid var(--tc-cart-line);
    border-radius: 6px;
    object-fit: cover;
}

body.tc-cart-v2 .tc-cart-line__body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

body.tc-cart-v2 .tc-cart-line__about {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

body.tc-cart-v2 .tc-cart-line__name {
    font-size: 17px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-line__name a,
body.tc-cart-v2 .tc-cart-line__name a:visited {
    color: var(--tc-cart-ink);
    text-decoration: none;
}

body.tc-cart-v2 .tc-cart-line__name a:hover,
body.tc-cart-v2 .tc-cart-line__name a:focus-visible {
    color: var(--tc-cart-ink);
    text-decoration: underline;
}

body.tc-cart-v2 .tc-cart-line dl.variation {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 6px;
    margin: 0;
    font-size: 13px;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-line dl.variation dt,
body.tc-cart-v2 .tc-cart-line dl.variation dd,
body.tc-cart-v2 .tc-cart-line dl.variation p {
    margin: 0;
    padding: 0;
    font-weight: 400;
}

body.tc-cart-v2 .tc-cart-line__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 10px;
    font-size: 13px;
    color: var(--tc-cart-muted);
    font-variant-numeric: tabular-nums;
}

body.tc-cart-v2 .tc-cart-line__sku {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 500;
}

body.tc-cart-v2 .tc-cart-line__was,
body.tc-cart-v2 .tc-cart-line__was-total {
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-line__note {
    margin: 0;
    font-size: 13px;
    color: var(--orange-700, #c2540c);
}

body.tc-cart-v2 .tc-cart-tag {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border: 1px solid #b7ebc9;
    border-radius: var(--radius-pill, 999px);
    background: var(--success-050, #ecfdf3);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--success-700, #136c34);
}

body.tc-cart-v2 .tc-cart-line__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
}

body.tc-cart-v2 .tc-cart-line__actions .product-quantity {
    display: block;
}

body.tc-cart-v2 .tc-cart-qty {
    display: inline-flex;
    align-items: center;
    height: 40px;
    overflow: hidden;
    border: 1px solid var(--tc-cart-line-strong);
    border-radius: var(--tc-cart-radius);
    background: #fff;
}

body.tc-cart-v2 .tc-cart-qty__btn {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font: 500 20px/1 var(--font-ui);
    color: var(--tc-cart-ink);
    cursor: pointer;
}

body.tc-cart-v2 .tc-cart-qty__btn:hover {
    background: var(--tc-cart-surface-1);
}

body.tc-cart-v2 .tc-cart-qty__btn:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 2px var(--tc-cart-orange);
}

body.tc-cart-v2 .tc-cart-qty__btn:disabled {
    background: transparent;
    color: var(--tc-cart-line-strong);
    cursor: default;
}

body.tc-cart-v2 .tc-cart-qty__input {
    width: 36px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    font: 600 16px/1 var(--font-ui);
    font-variant-numeric: tabular-nums;
    text-align: center;
    color: var(--tc-cart-ink);
    -moz-appearance: textfield;
    appearance: textfield;
}

body.tc-cart-v2 .tc-cart-qty__input::-webkit-outer-spin-button,
body.tc-cart-v2 .tc-cart-qty__input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

body.tc-cart-v2 .tc-cart-qty__input:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 2px var(--tc-cart-orange);
}

body.tc-cart-v2 .tc-cart-qty-fixed {
    font-size: 14px;
    color: var(--tc-cart-muted);
}

/* Quiet actions: grey text, never orange (orange is the one next step). */
body.tc-cart-v2 .tc-cart-line__actions .tc-save-for-later,
body.tc-cart-v2 .tc-cart-line__actions .tc-save-for-later:visited,
body.tc-cart-v2 .tc-cart-line__remove,
body.tc-cart-v2 .tc-cart-line__remove:visited {
    display: inline;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
    color: var(--tc-cart-muted) !important;
    text-decoration: none;
}

body.tc-cart-v2 .tc-cart-line__actions .tc-save-for-later:hover,
body.tc-cart-v2 .tc-cart-line__actions .tc-save-for-later:focus-visible,
body.tc-cart-v2 .tc-cart-line__remove:hover,
body.tc-cart-v2 .tc-cart-line__remove:focus-visible {
    background: none;
    color: var(--tc-cart-ink) !important;
    text-decoration: underline;
}

body.tc-cart-v2 .tc-cart-line__dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--ink-300, #838e95);
}

body.tc-cart-v2 .tc-cart-line__total {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    padding-top: 2px;
    font-variant-numeric: tabular-nums;
}

body.tc-cart-v2 .tc-cart-line__amount {
    font-size: 17px;
    font-weight: 600;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-line__was-total {
    font-size: 13px;
}

body.tc-cart-v2 .tc-cart-line__save {
    font-size: 13px;
    font-weight: 600;
    color: var(--tc-cart-green);
}

body.tc-cart-v2 .tc-cart-line.is-added {
    animation: tc-cart-added 1.6s var(--ease-out, ease-out);
}

@keyframes tc-cart-added {
    from {
        background: var(--success-050, #ecfdf3);
    }
    to {
        background: transparent;
    }
}

/* ── Goes With Your Cart ───────────────────────────────────────────────── */

body.tc-cart-v2 .tc-cart-recs {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

body.tc-cart-v2 .tc-cart-recs__title {
    margin: 0;
    padding: 0;
    font: 700 20px/1.3 var(--font-ui);
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-recs__sub {
    margin: 0;
    font-size: 14px;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-recs__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.tc-cart-v2 .tc-cart-rec {
    position: relative; /* keeps WooCommerce's screen-reader price text inside the scroller */
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    margin: 0;
}

body.tc-cart-v2 .tc-cart-rec__thumb {
    position: relative;
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 6px;
    background: var(--tc-cart-surface-2);
}

body.tc-cart-v2 .tc-cart-rec__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    transition: transform var(--dur-fast, 150ms) var(--ease-standard, ease);
}

body.tc-cart-v2 .tc-cart-rec__thumb:hover img {
    transform: scale(1.03);
}

body.tc-cart-v2 .tc-cart-rec__flag {
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 2px 8px;
    border: 1px solid #b7ebc9;
    border-radius: var(--radius-pill, 999px);
    background: var(--success-050, #ecfdf3);
    font-size: 11px;
    font-weight: 700;
    color: var(--success-700, #136c34);
}

body.tc-cart-v2 .tc-cart-rec__name,
body.tc-cart-v2 .tc-cart-rec__name:visited {
    display: -webkit-box;
    min-height: 40px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 15px;
    line-height: 1.35;
    color: var(--tc-cart-ink);
    text-decoration: none;
}

body.tc-cart-v2 .tc-cart-rec__name:hover,
body.tc-cart-v2 .tc-cart-rec__name:focus-visible {
    color: var(--tc-cart-ink);
    text-decoration: underline;
}

body.tc-cart-v2 .tc-cart-rec__note {
    margin-top: -4px;
    font-size: 12px;
    color: var(--tc-cart-muted);
}

/* Price above a full-width button: "Select Options" doesn't fit beside the
   price on the 148px phone cards. */
body.tc-cart-v2 .tc-cart-rec__row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-top: auto;
}

body.tc-cart-v2 .tc-cart-rec__price {
    font-size: 16px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-rec__price del {
    font-size: 13px;
    font-weight: 400;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-rec__price ins {
    text-decoration: none;
}

body.tc-cart-v2 .tc-cart-rec__add,
body.tc-cart-v2 .tc-cart-rec__add:visited {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    height: 36px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid var(--tc-cart-navy);
    border-radius: var(--tc-cart-radius);
    background: #fff;
    box-shadow: none;
    font: 600 14px/1 var(--font-ui);
    color: var(--tc-cart-navy);
    text-decoration: none;
    text-transform: none;
    white-space: nowrap;
    cursor: pointer;
    transition: var(--transition-control);
}

body.tc-cart-v2 .tc-cart-rec__add:hover,
body.tc-cart-v2 .tc-cart-rec__add:focus-visible {
    background: var(--tc-cart-surface-1);
    color: var(--navy-950, #121820);
    text-decoration: none;
}

body.tc-cart-v2 .tc-cart-rec__add[aria-busy="true"] {
    opacity: 0.6;
    pointer-events: none;
}

/* ── Order Summary ─────────────────────────────────────────────────────── */

body.tc-cart-v2 .cart-collaterals,
body.tc-cart-v2 .cart-collaterals .cart_totals {
    float: none;
    width: 100%;
}

body.tc-cart-v2 .tc-cart-summary {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

body.tc-cart-v2 .tc-cart-summary__title {
    margin: 0;
    padding: 0;
    font: 700 20px/1.3 var(--font-ui);
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-summary__rows {
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 15px;
    color: var(--tc-cart-body);
}

body.tc-cart-v2 .tc-cart-summary__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 0;
    border: 0;
    font-variant-numeric: tabular-nums;
}

body.tc-cart-v2 .tc-cart-summary__row > span:last-child,
body.tc-cart-v2 .tc-cart-summary__row > strong {
    text-align: right;
}

body.tc-cart-v2 .tc-cart-summary .is-saving,
body.tc-cart-v2 .tc-cart-summary .is-saving .woocommerce-Price-amount {
    font-weight: 600;
    color: var(--tc-cart-green);
}

body.tc-cart-v2 .tc-cart-summary .woocommerce-remove-coupon {
    margin-left: 6px;
    font-size: 13px;
    font-weight: 400;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-summary .tc-checkout-free {
    font-weight: 600;
    color: var(--tc-cart-green);
}

body.tc-cart-v2 .tc-cart-summary__subrows {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: -8px;
    font-size: 13px;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-summary__nudge {
    color: var(--orange-700, #c2540c);
}

body.tc-cart-v2 .tc-cart-summary .tc-summary-quiet {
    color: var(--tc-cart-muted);
}

/* The bundle hides .order-total inside the cart form and boxes it elsewhere. */
body.tc-cart-v2 .tc-cart-summary .order-total {
    display: flex;
    align-items: baseline;
    margin: 4px 0 0;
    padding: 14px 0 0;
    border: 0;
    border-top: 1px solid var(--tc-cart-line);
}

body.tc-cart-v2 .tc-cart-summary .order-total > span {
    font-size: 17px;
    font-weight: 600;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-summary .order-total > strong {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--tc-cart-ink);
}

/* Sales and coupons together, once, under the Total (the slideout and checkout say the same). */
body.tc-cart-v2 .tc-cart-summary__saving,
body.tc-cart-v2 #wrapper .tc-cart-summary__saving {
    margin: 4px 0 0;
    padding: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    text-align: right;
    color: var(--success-600, #16843e);
}

body.tc-cart-v2 .tc-cart-summary__saving .woocommerce-Price-amount {
    color: inherit;
}

body.tc-cart-v2 .tc-cart-summary__actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
}

body.tc-cart-v2 .wc-proceed-to-checkout a.checkout-button.tc-cart-checkout-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 56px;
    min-height: 56px;
    margin: 0;
    padding: 0 20px;
    border: 0;
    border-radius: var(--tc-cart-radius);
    background: var(--tc-cart-orange);
    box-shadow: none;
    font: 700 19px/1 var(--font-ui);
    color: #fff;
    text-decoration: none;
    text-transform: none;
    transition: var(--transition-control);
}

body.tc-cart-v2 .wc-proceed-to-checkout a.checkout-button.tc-cart-checkout-button:hover,
body.tc-cart-v2 .wc-proceed-to-checkout a.checkout-button.tc-cart-checkout-button:focus-visible {
    background: var(--tc-cart-orange-hover);
    color: #fff;
    transform: var(--lift-hover, translateY(-1px));
}

body.tc-cart-v2 .wc-proceed-to-checkout a.checkout-button.tc-cart-checkout-button:active {
    background: var(--tc-cart-orange-active);
    transform: none;
}

body.tc-cart-v2 .wc-proceed-to-checkout a.checkout-button.tc-cart-checkout-button:focus-visible {
    outline: 2px solid var(--tc-cart-navy);
    outline-offset: 2px;
    box-shadow: var(--ring-focus);
}

/* Wallet buttons (Stripe Apple Pay / Google Pay, PayPal) under Go to Checkout. */
body.tc-cart-v2 .tc-cart-express-label {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    font-size: 13px;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-express-label::before,
body.tc-cart-v2 .tc-cart-express-label::after {
    flex: 1 1 auto;
    height: 1px;
    background: var(--tc-cart-line);
    content: "";
}

body.tc-cart-v2 .tc-cart-express-label[hidden] {
    display: none;
}

/* Go to Checkout first, then the label, then the wallets (a plugin stylesheet
   orders the button last). */
body.tc-cart-v2 .wc-proceed-to-checkout a.checkout-button.tc-cart-checkout-button {
    order: -1;
}

body.tc-cart-v2 .tc-cart-summary__actions .wc-stripe-cart-checkout-container,
body.tc-cart-v2 .tc-cart-summary__actions .wc-ppcp-cart-payment-methods,
body.tc-cart-v2 .tc-cart-summary__actions .wc-ppcp-cart-payment-method {
    margin: 0;
    padding: 0;
}

body.tc-cart-v2 .tc-cart-summary__actions .wc_stripe_cart_payment_methods {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
}

body.tc-cart-v2 .tc-cart-summary__actions .wc_stripe_cart_payment_methods > li {
    margin: 0 !important;
    padding: 0;
}

/* WooCommerce's order-attribution fields are hidden inputs; keep them out of the flex gaps. */
body.tc-cart-v2 .tc-cart-summary__actions wc-order-attribution-inputs {
    display: none;
}

/* The page's own "Express checkout" label replaces Stripe's "— or —". */
body.tc-cart-v2 .tc-cart-summary__actions .wc-stripe-payment-method.or {
    display: none !important;
}

body.tc-cart-v2 .tc-cart-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 10px;
    margin: -6px 0 0;
    padding: 0;
    font-size: 13px;
    color: var(--tc-cart-muted);
    list-style: none;
}

body.tc-cart-v2 .tc-cart-trust li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

body.tc-cart-v2 .tc-cart-trust li + li::before {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--ink-300, #838e95);
    content: "";
}

/* Points this order earns (same box as checkout). */
body.tc-cart-v2 .tc-checkout-rewards__earn {
    margin: 0;
    padding: 13px 15px;
    border: 0;
    border-radius: var(--tc-cart-radius);
    background: #edf3f6;
    font-size: 14px;
    line-height: 1.45;
    color: var(--tc-cart-body);
}

body.tc-cart-v2 .tc-checkout-rewards__earn-main {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--tc-cart-body);
}

body.tc-cart-v2 .tc-checkout-rewards__earn strong {
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-checkout-rewards__coin {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
}

/* Coupon & Rewards: inline, no reload (WooCommerce's cart script applies it). */
body.tc-cart-v2 .tc-cart-codes {
    padding: 14px 0;
    border-top: 1px solid var(--tc-cart-line);
    border-bottom: 1px solid var(--tc-cart-line);
}

body.tc-cart-v2 .tc-cart-codes__toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    color: var(--tc-cart-steel);
    list-style: none;
    cursor: pointer;
}

body.tc-cart-v2 .tc-cart-codes__toggle::-webkit-details-marker {
    display: none;
}

body.tc-cart-v2 .tc-cart-codes__toggle::after {
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    content: "+";
}

body.tc-cart-v2 .tc-cart-codes[open] .tc-cart-codes__toggle::after {
    content: "\2212";
}

body.tc-cart-v2 .tc-cart-codes__toggle:hover {
    color: var(--steel-700, #08607d);
}

body.tc-cart-v2 .tc-cart-codes__toggle:focus-visible {
    outline: 2px solid var(--tc-cart-orange);
    outline-offset: 2px;
    border-radius: 4px;
}

body.tc-cart-v2 .tc-cart-codes__panel {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-top: 12px;
}

body.tc-cart-v2 .tc-cart-codes .coupon {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
}

body.tc-cart-v2 .tc-cart-codes .coupon .input-text {
    flex: 1 1 160px;
    min-width: 0;
    height: 44px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid var(--tc-cart-line-strong);
    border-radius: var(--tc-cart-radius);
    background: #fff;
    font: 400 15px/1 var(--font-ui);
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-codes .coupon .input-text:focus {
    border-color: var(--tc-cart-navy);
    outline: none;
    box-shadow: var(--ring-focus);
}

body.tc-cart-v2 .tc-cart-codes .coupon .tc-cart-codes__apply {
    height: 44px;
    margin: 0;
    padding: 0 18px;
    border: 1px solid var(--tc-cart-navy);
    border-radius: var(--tc-cart-radius);
    background: #fff;
    box-shadow: none;
    font: 600 15px/1 var(--font-ui);
    color: var(--tc-cart-navy);
    text-transform: none;
}

body.tc-cart-v2 .tc-cart-codes .coupon .tc-cart-codes__apply:hover {
    background: var(--tc-cart-surface-1);
}

body.tc-cart-v2 .tc-cart-codes .coupon-error-notice {
    flex: 1 0 100%;
    margin: 0;
    font-size: 13px;
    color: var(--danger-700, #b42318);
}

/* One review, still (the checkout's slider script is not loaded here). */
body.tc-cart-v2 .tc-checkout-reviews {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 18px;
    border: 1px solid var(--tc-cart-line);
    border-radius: var(--tc-cart-radius);
    background: #fff;
    box-shadow: var(--shadow-hairline, 0 0 0.875rem 0 rgb(41 48 66 / 5%));
}

body.tc-cart-v2 .tc-checkout-reviews__slide {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

body.tc-cart-v2 .tc-checkout-reviews__slide:not(.is-active),
body.tc-cart-v2 .tc-checkout-reviews__controls {
    display: none;
}

body.tc-cart-v2 .tc-checkout-reviews__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

body.tc-cart-v2 .tc-checkout-reviews .tc-star-rating {
    display: inline-flex !important;
    align-items: center;
    gap: 1px;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    font-size: 0;
}

body.tc-cart-v2 .tc-checkout-reviews .tc-star {
    display: block;
    width: 15px;
    height: 15px;
    fill: var(--warning-500, #febd16);
}

body.tc-cart-v2 .tc-checkout-reviews__author {
    font-size: 13px;
    font-weight: 600;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-checkout-reviews__verified {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--tc-cart-green);
}

body.tc-cart-v2 .tc-checkout-reviews__check {
    width: 12px;
    height: 12px;
    fill: currentColor;
}

body.tc-cart-v2 .tc-checkout-reviews blockquote {
    margin: 0;
    padding: 0;
    border: 0;
}

body.tc-cart-v2 .tc-checkout-reviews blockquote p {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-checkout-reviews__product {
    font-size: 12px;
    color: var(--tc-cart-muted);
}

/* ── Empty cart ────────────────────────────────────────────────────────── */

body.tc-cart-v2 .tc-cart-empty__body {
    display: flex;
    align-items: center;
    gap: 24px;
}

body.tc-cart-v2 .tc-cart-empty__icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--tc-cart-surface-2);
    color: var(--tc-cart-navy);
}

body.tc-cart-v2 .tc-cart-empty__icon .icon {
    width: 26px;
    height: 26px;
    fill: currentColor;
}

body.tc-cart-v2 .tc-cart-empty__copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.tc-cart-v2 .tc-cart-empty__title {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font: 700 22px/1.25 var(--font-ui);
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-empty__title::before {
    display: none;
}

body.tc-cart-v2 .tc-cart-empty__copy p {
    margin: 0;
    font-size: 15px;
}

body.tc-cart-v2 .tc-cart-empty__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 14px;
}

body.tc-cart-v2 .tc-cart-empty__primary,
body.tc-cart-v2 .tc-cart-empty__primary:visited,
body.tc-cart-v2 .tc-cart-empty__secondary,
body.tc-cart-v2 .tc-cart-empty__secondary:visited {
    display: inline-flex;
    align-items: center;
    height: 48px;
    padding: 0 22px;
    border-radius: var(--tc-cart-radius);
    font: 700 16px/1 var(--font-ui);
    text-decoration: none;
    white-space: nowrap;
    transition: var(--transition-control);
}

body.tc-cart-v2 .tc-cart-empty__primary,
body.tc-cart-v2 .tc-cart-empty__primary:visited {
    border: 1px solid var(--tc-cart-orange);
    background: var(--tc-cart-orange);
    color: #fff;
}

body.tc-cart-v2 .tc-cart-empty__primary:hover,
body.tc-cart-v2 .tc-cart-empty__primary:focus-visible {
    background: var(--tc-cart-orange-hover);
    color: #fff;
    transform: var(--lift-hover, translateY(-1px));
}

body.tc-cart-v2 .tc-cart-empty__secondary,
body.tc-cart-v2 .tc-cart-empty__secondary:visited {
    border: 1px solid var(--tc-cart-navy);
    background: #fff;
    font-weight: 600;
    color: var(--tc-cart-navy);
}

body.tc-cart-v2 .tc-cart-empty__secondary:hover,
body.tc-cart-v2 .tc-cart-empty__secondary:focus-visible {
    background: var(--tc-cart-surface-1);
    color: var(--navy-950, #121820);
}

body.tc-cart-v2 .tc-cart-promises {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.tc-cart-v2 .tc-cart-promises li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0;
    font-size: 14px;
    color: var(--tc-cart-muted);
}

body.tc-cart-v2 .tc-cart-promises strong {
    display: block;
    margin-bottom: 2px;
    font-size: 16px;
    font-weight: 600;
    color: var(--tc-cart-ink);
}

body.tc-cart-v2 .tc-cart-promises__icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--tc-cart-radius);
    background: var(--tc-cart-surface-2);
    color: var(--tc-cart-navy);
}

body.tc-cart-v2 .tc-cart-promises__icon .icon {
    width: 20px;
    height: 18px;
    fill: currentColor;
}

body.tc-cart-v2 .tc-cart-empty__signin {
    margin: 0;
    padding: 16px;
    border-radius: var(--tc-cart-radius);
    background: #edf3f6;
    font-size: 14px;
    line-height: 1.45;
}

/* ── Phone total bar ──────────────────────────────────────────────────── */

body.tc-cart-v2 .tc-cart-bar {
    display: none;
}

/* ── Narrow screens ───────────────────────────────────────────────────── */

/* The store container has no gutter below its full width. */
@media (max-width: 1311px) {
    body.tc-cart-v2 .tc-cart {
        padding-right: 24px;
        padding-left: 24px;
    }
}

@media (max-width: 899px) {
    body.tc-cart-v2 .tc-cart__grid {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }

    /* Items, then the summary, then add-ons: the way forward before more shopping. */
    body.tc-cart-v2 .tc-cart__main {
        display: contents;
    }

    body.tc-cart-v2 .tc-cart__items {
        order: 1;
    }

    body.tc-cart-v2 .tc-cart__aside {
        position: static;
        order: 2;
        padding: 18px 16px;
        border: 1px solid var(--tc-cart-line);
        border-radius: var(--tc-cart-radius);
        background: #fff;
        box-shadow: var(--shadow-hairline, 0 0 0.875rem 0 rgb(41 48 66 / 5%));
    }

    body.tc-cart-v2 .tc-cart-recs {
        order: 3;
    }

    body.tc-cart-v2 .tc-cart--empty .tc-cart__aside {
        order: 3;
    }

    body.tc-cart-v2 .tc-cart-bar {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 900;
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid var(--tc-cart-line);
        background: #fff;
        box-shadow: 0 -6px 20px rgba(41, 48, 66, 0.1);
        transform: translateY(110%);
        visibility: hidden;
        transition: transform var(--dur-base, 200ms) var(--ease-out, ease-out), visibility 0s linear var(--dur-base, 200ms);
    }

    body.tc-cart-v2 .tc-cart-bar.is-visible {
        transform: none;
        visibility: visible;
        transition: transform var(--dur-base, 200ms) var(--ease-out, ease-out), visibility 0s;
    }

    body.tc-cart-v2 .tc-cart-bar__total {
        display: flex;
        flex-direction: column;
        line-height: 1.2;
    }

    body.tc-cart-v2 .tc-cart-bar__amount {
        font-size: 20px;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        color: var(--tc-cart-ink);
    }

    body.tc-cart-v2 .tc-cart-bar__meta {
        font-size: 12px;
        color: var(--tc-cart-muted);
    }

    body.tc-cart-v2 .tc-cart-bar__checkout,
    body.tc-cart-v2 .tc-cart-bar__checkout:visited {
        display: flex;
        flex: 1 1 auto;
        align-items: center;
        justify-content: center;
        height: 50px;
        border-radius: var(--tc-cart-radius);
        background: var(--tc-cart-orange);
        font: 700 17px/1 var(--font-ui);
        color: #fff;
        text-decoration: none;
    }

    body.tc-cart-v2 .tc-cart-bar__checkout:hover,
    body.tc-cart-v2 .tc-cart-bar__checkout:focus-visible {
        background: var(--tc-cart-orange-hover);
        color: #fff;
    }
}

@media (max-width: 599px) {
    body.tc-cart-v2 .tc-cart {
        gap: 16px;
        padding: 4px 16px 32px;
    }

    body.tc-cart-v2 .tc-cart__title {
        font-size: 26px;
    }

    body.tc-cart-v2 .tc-cart__continue {
        display: none;
    }

    body.tc-cart-v2 .tc-cart__card {
        padding: 16px;
    }

    body.tc-cart-v2 .tc-cart__items {
        padding-bottom: 0;
    }

    body.tc-cart-v2 .tc-cart__items > .tc-ship-meter--cart,
    body.tc-cart-v2 .tc-cart__items > .tc-ship-meter--cart.is-unlocked {
        margin: -16px -16px 0;
        padding: 14px 16px;
    }

    /* Photo | name, then the stepper with the line total beside it, then Save / Remove. */
    body.tc-cart-v2 .tc-cart-line {
        grid-template-columns: 76px minmax(0, 1fr);
        grid-template-rows: auto auto;
        gap: 10px 14px;
        padding: 16px 0;
    }

    body.tc-cart-v2 .tc-cart-line__thumb {
        grid-row: 1 / span 2;
    }

    body.tc-cart-v2 .tc-cart-line__body {
        display: contents;
    }

    body.tc-cart-v2 .tc-cart-line__about {
        grid-column: 2;
        grid-row: 1;
    }

    body.tc-cart-v2 .tc-cart-line__actions {
        grid-column: 2;
        grid-row: 2;
        gap: 10px 12px;
    }

    body.tc-cart-v2 .tc-cart-line__actions .product-quantity {
        flex: 0 0 100%;
    }

    body.tc-cart-v2 .tc-cart-line__thumb img {
        width: 76px !important;
        max-width: 76px !important;
        height: 76px !important;
        max-height: 76px !important;
    }

    body.tc-cart-v2 .tc-cart-line__name {
        font-size: 15px;
    }

    body.tc-cart-v2 .tc-cart-line__total {
        grid-column: 2;
        grid-row: 2;
        align-self: start;
        justify-self: end;
        justify-content: center;
        min-height: 44px;
        gap: 0;
        padding-top: 0;
        pointer-events: none;
    }

    body.tc-cart-v2 .tc-cart-line__was-total {
        display: none;
    }

    body.tc-cart-v2 .tc-cart-line__save {
        font-size: 12px;
    }

    body.tc-cart-v2 .tc-cart-line__actions .tc-save-for-later,
    body.tc-cart-v2 .tc-cart-line__remove {
        font-size: 13px;
    }

    body.tc-cart-v2 .tc-cart-line__amount {
        font-size: 16px;
    }

    body.tc-cart-v2 .tc-cart-qty,
    body.tc-cart-v2 .tc-cart-qty__btn {
        height: 44px;
    }

    body.tc-cart-v2 .tc-cart-qty__btn {
        width: 44px;
    }

    body.tc-cart-v2 .tc-cart-recs__grid {
        position: relative;
        display: flex;
        gap: 12px;
        margin-right: -16px;
        padding-right: 16px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    body.tc-cart-v2 .tc-cart-recs__grid::-webkit-scrollbar {
        display: none;
    }

    body.tc-cart-v2 .tc-cart-rec {
        flex: 0 0 148px;
        scroll-snap-align: start;
    }

    body.tc-cart-v2 .tc-cart-summary .order-total > strong {
        font-size: 24px;
    }

    body.tc-cart-v2 .wc-proceed-to-checkout a.checkout-button.tc-cart-checkout-button {
        height: 54px;
        min-height: 54px;
        font-size: 18px;
    }

    body.tc-cart-v2 .tc-cart-empty__body {
        align-items: flex-start;
        gap: 16px;
    }

    body.tc-cart-v2 .tc-cart-empty__icon {
        width: 48px;
        height: 48px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.tc-cart-v2 .tc-cart-line.is-added {
        animation: none;
    }

    body.tc-cart-v2 .tc-cart-bar,
    body.tc-cart-v2 .tc-cart-bar.is-visible,
    body.tc-cart-v2 .tc-cart-rec__thumb img {
        transition: none;
    }
}
