/* =====================================================================
   AUREA — CART UI  (revamp, 2026-06-07)
   Targets the Urna child theme's custom cart markup
   (woocommerce/cart/cart.php + cart-totals.php):

   form.woocommerce-cart-form
   └─ .row
      ├─ .col-md-8
      │   ├─ .woocommerce-cart-form__contents.shop_table.cart
      │   │   ├─ .cart_item.head           ← column header row
      │   │   └─ .cart_item                ← each line (span-based)
      │   │       .product-info (img + .product-name) / .product-price /
      │   │       .product-quantity / .product-subtotal / .product-remove
      │   └─ .cart-bottom  (Continue shopping + Update cart)
      └─ .col-md-4.tb-cart-total
          ├─ .cart-collaterals > .cart_totals
          │     (.aurea-cart-info-wrapper via woocommerce_before_cart_totals)
          │     h2 + table.shop_table + .wc-proceed-to-checkout
          └─ .coupon  (label + .box: input + Apply)

   Brand: maroon / gold / cream. Mobile-first.
   ===================================================================== */

:root {
    --acrt-maroon: #7a2e2e;
    --acrt-maroon-deep: #5e1f1f;
    --acrt-gold: #b8924f;
    --acrt-gold-soft: #e8d3a1;
    --acrt-cream: #f7f2e9;
    --acrt-cream-soft: #fbf7ef;
    --acrt-ink: #1f1720;
    --acrt-muted: #6f6a5e;
    --acrt-line: #ece6dc;
    --acrt-field-bg: #faf8f4;
    --acrt-radius: 16px;
    --acrt-radius-sm: 10px;
    --acrt-shadow: 0 10px 34px rgba(31, 23, 32, .07);
    --acrt-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --acrt-serif: Georgia, "Times New Roman", serif;
}

/* ---------------------------------------------------------------------
   1. PAGE CHROME
   --------------------------------------------------------------------- */
body.woocommerce-cart #tbay-breadcrumb,
body.woocommerce-cart .tbay-breadcrumb,
body.woocommerce-cart .woocommerce-breadcrumb,
body.woocommerce-cart .page-title,
body.woocommerce-cart .tbay-page-heading {
    display: none !important;
}

body.woocommerce-cart {
    background: var(--acrt-cream);
}

body.woocommerce-cart .woocommerce {
    max-width: 1180px;
    margin: 0 auto;
    padding: 34px 18px 70px;
}

/* WooCommerce notices (coupon applied / removed, etc.) */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
    border-radius: var(--acrt-radius-sm);
    border: 1px solid var(--acrt-line);
    border-left: 4px solid var(--acrt-gold);
    background: #fff;
    box-shadow: var(--acrt-shadow);
    padding: 14px 18px;
    font-size: 14px;
    list-style: none;
    margin: 0 0 18px;
}
body.woocommerce-cart .woocommerce-message { border-left-color: #1a7f37; background: #e9f9ee; color: #0d6b2f; }
body.woocommerce-cart .woocommerce-error { border-left-color: #c0392b; background: #fdecec; color: #9d1c1c; }

/* ---------------------------------------------------------------------
   2. LAYOUT  (items | sticky summary)
   --------------------------------------------------------------------- */
.woocommerce-cart-form {
    margin: 0;
}

@media (min-width: 992px) {
    .woocommerce-cart-form > .row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: 30px;
        align-items: start;
        margin: 0;
    }

    .woocommerce-cart-form > .row > .col-md-8,
    .woocommerce-cart-form > .row > .col-md-4 {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        float: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .col-md-4.tb-cart-total {
        position: sticky;
        top: 24px;
    }
}

@media (max-width: 991px) {
    .woocommerce-cart-form > .row {
        margin: 0;
    }
    .woocommerce-cart-form > .row > .col-md-8,
    .woocommerce-cart-form > .row > .col-md-4 {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        padding: 0 !important;
    }
    .col-md-4.tb-cart-total {
        margin-top: 26px;
    }
}

/* ---------------------------------------------------------------------
   3. ITEMS CARD
   --------------------------------------------------------------------- */
.woocommerce-cart-form__contents.cart {
    background: #fff;
    border: 1px solid var(--acrt-line);
    border-radius: var(--acrt-radius);
    box-shadow: var(--acrt-shadow);
    padding: 8px 24px;
    margin: 0;
    width: 100%;
}

/* header row */
.woocommerce-cart-form__contents .cart_item.head {
    display: grid;
    grid-template-columns: 2.4fr 1fr 1.3fr 1fr 34px;
    align-items: center;
    gap: 14px;
    padding: 16px 0 12px;
    border-bottom: 1px solid var(--acrt-line);
    margin: 0;
}

.woocommerce-cart-form__contents .cart_item.head span {
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--acrt-muted);
    font-weight: 700;
}
.woocommerce-cart-form__contents .cart_item.head .product-price,
.woocommerce-cart-form__contents .cart_item.head .product-quantity { text-align: center; }
.woocommerce-cart-form__contents .cart_item.head .product-subtotal { text-align: right; }

/* line rows */
.woocommerce-cart-form__contents .cart_item:not(.head) {
    display: grid;
    grid-template-columns: 2.4fr 1fr 1.3fr 1fr 34px;
    align-items: center;
    gap: 14px;
    padding: 20px 0;
    border-bottom: 1px solid var(--acrt-line);
    margin: 0;
    position: relative;
}
.woocommerce-cart-form__contents .cart_item:not(.head):last-of-type {
    border-bottom: 0;
}

/* product cell: thumbnail + name */
.woocommerce-cart-form__contents .cart_item .product-info {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}
.woocommerce-cart-form__contents .cart_item .product-info > a,
.woocommerce-cart-form__contents .cart_item .product-info > img {
    flex: 0 0 auto;
    display: block;
}
.woocommerce-cart-form__contents .cart_item .product-info img {
    width: 78px;
    height: 78px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid var(--acrt-line);
    background: var(--acrt-cream-soft);
}
.woocommerce-cart-form__contents .cart_item .product-name {
    min-width: 0;
    font-size: 15px;
    line-height: 1.45;
}
.woocommerce-cart-form__contents .cart_item .product-name a,
.woocommerce-cart-form__contents .cart_item .product-name a.name {
    color: var(--acrt-ink);
    font-weight: 600;
    text-decoration: none;
}
.woocommerce-cart-form__contents .cart_item .product-name a:hover {
    color: var(--acrt-maroon);
}
/* cart item meta (Voucher Type, Group size, etc.) */
.woocommerce-cart-form__contents .cart_item .product-name .variation,
.woocommerce-cart-form__contents .cart_item .product-name dl.variation {
    margin: 6px 0 0;
    font-size: 12.5px;
    color: var(--acrt-muted);
    line-height: 1.5;
}
.woocommerce-cart-form__contents .cart_item .product-name dl.variation dt,
.woocommerce-cart-form__contents .cart_item .product-name dl.variation dd {
    display: inline;
    margin: 0;
    font-weight: 400;
}
.woocommerce-cart-form__contents .cart_item .product-name dl.variation dd { margin-right: 8px; }

.woocommerce-cart-form__contents .cart_item .product-price {
    text-align: center;
    color: var(--acrt-ink);
    font-weight: 600;
    font-size: 14.5px;
}

/* quantity stepper */
.woocommerce-cart-form__contents .cart_item .product-quantity {
    text-align: center;
}
.woocommerce-cart-form__contents .cart_item .product-quantity .quantity {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid var(--acrt-line);
    border-radius: 999px;
    overflow: hidden;
    background: var(--acrt-field-bg);
}
.woocommerce-cart-form__contents .cart_item .product-quantity .quantity .qty {
    width: 46px;
    border: 0;
    background: transparent;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: var(--acrt-ink);
    padding: 8px 2px;
    -moz-appearance: textfield;
}
.woocommerce-cart-form__contents .cart_item .product-quantity .quantity .qty::-webkit-outer-spin-button,
.woocommerce-cart-form__contents .cart_item .product-quantity .quantity .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
/* +/- buttons (if the theme/plugin renders them) */
.woocommerce-cart-form__contents .cart_item .product-quantity .quantity .plus,
.woocommerce-cart-form__contents .cart_item .product-quantity .quantity .minus,
.woocommerce-cart-form__contents .cart_item .product-quantity .quantity button {
    border: 0;
    background: transparent;
    color: var(--acrt-maroon);
    width: 34px;
    height: 38px;
    font-size: 18px;
    cursor: pointer;
    line-height: 1;
}

.woocommerce-cart-form__contents .cart_item .product-subtotal {
    text-align: right;
    color: var(--acrt-maroon);
    font-weight: 700;
    font-size: 15px;
}

/* remove (×) button */
.woocommerce-cart-form__contents .cart_item .product-remove {
    text-align: center;
}
.woocommerce-cart-form__contents .cart_item .product-remove a.remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--acrt-line);
    color: var(--acrt-muted) !important;
    font-size: 16px;
    line-height: 1;
    text-decoration: none;
    transition: background .18s, color .18s, border-color .18s;
}
.woocommerce-cart-form__contents .cart_item .product-remove a.remove:hover {
    background: #fdecec;
    border-color: #f3c4c4;
    color: #c0392b !important;
}
.woocommerce-cart-form__contents .cart_item .product-remove a.remove i {
    font-size: 15px;
}

/* ---------------------------------------------------------------------
   4. CART ACTIONS  (continue shopping / update cart)
   --------------------------------------------------------------------- */
.cart-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin: 22px 0 0;
}
.cart-bottom .continue-to-shop {
    float: none !important;
    margin: 0;
}
.cart-bottom .continue-to-shop a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--acrt-maroon);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
}
.cart-bottom .continue-to-shop a:hover { text-decoration: underline; }

.cart-bottom .update-cart {
    float: none !important;
    margin: 0;
}
.cart-bottom .update-cart button.update,
.cart-bottom button[name="update_cart"] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    color: var(--acrt-maroon);
    border: 1.5px solid var(--acrt-gold);
    border-radius: 999px;
    padding: 11px 22px;
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: .02em;
    cursor: pointer;
    transition: background .18s, color .18s;
}
.cart-bottom .update-cart button.update:hover {
    background: var(--acrt-maroon);
    color: #fff;
}
.cart-bottom .update-cart button.update[disabled] {
    opacity: .5;
    cursor: default;
}

/* ---------------------------------------------------------------------
   5. SUMMARY  (cart totals + proceed to checkout)
   --------------------------------------------------------------------- */
.col-md-4.tb-cart-total .cart-collaterals {
    width: 100% !important;
    float: none !important;
    margin: 0;
}

.cart_totals {
    background: #fff;
    border: 1px solid var(--acrt-line);
    border-radius: var(--acrt-radius);
    box-shadow: var(--acrt-shadow);
    padding: 26px 24px 28px;
    /* render the How-It-Works trust block below the totals + CTA */
    display: flex;
    flex-direction: column;
}
.cart_totals > * { order: 0; }
.cart_totals > .aurea-cart-info-wrapper { order: 1; }

.cart_totals h2 {
    font-family: var(--acrt-serif);
    font-size: 21px;
    font-weight: 700;
    color: var(--acrt-ink);
    margin: 0 0 18px;
    padding: 0 0 12px;
    position: relative;
    text-transform: none;
}
.cart_totals h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 46px;
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--acrt-gold), var(--acrt-gold-soft));
}

.cart_totals table.shop_table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 6px;
    border: 0;
    background: transparent;
}
.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
    padding: 13px 0;
    border: 0;
    border-bottom: 1px solid var(--acrt-line);
    font-size: 14.5px;
    text-align: left;
    background: transparent;
}
.cart_totals table.shop_table th {
    color: var(--acrt-muted);
    font-weight: 600;
}
.cart_totals table.shop_table td {
    text-align: right;
    color: var(--acrt-ink);
    font-weight: 600;
}
.cart_totals table.shop_table .order-total th,
.cart_totals table.shop_table .order-total td {
    border-bottom: 0;
    padding-top: 16px;
    font-size: 18px;
}
.cart_totals table.shop_table .order-total th { color: var(--acrt-ink); font-weight: 700; }
.cart_totals table.shop_table .order-total td,
.cart_totals table.shop_table .order-total .woocommerce-Price-amount {
    color: var(--acrt-maroon);
    font-weight: 800;
}
.cart_totals table.shop_table .cart-discount th,
.cart_totals table.shop_table .cart-discount td { color: #1a7f37; }
.cart_totals table.shop_table small { color: var(--acrt-muted); font-weight: 400; }

/* proceed to checkout */
.cart_totals .wc-proceed-to-checkout,
.col-md-4 .wc-proceed-to-checkout {
    padding: 14px 0 0;
    margin: 0;
}
.wc-proceed-to-checkout a.checkout-button,
.wc-proceed-to-checkout a.button.checkout-button {
    display: block;
    width: 100%;
    text-align: center;
    box-sizing: border-box;
    min-height: 56px;
    line-height: 1.2;
    padding: 17px 22px;
    border: 0;
    border-radius: var(--acrt-radius-sm);
    background: linear-gradient(135deg, var(--acrt-maroon), var(--acrt-maroon-deep));
    color: #fff !important;
    font-family: var(--acrt-font);
    font-size: 15.5px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s, box-shadow .18s, filter .18s;
    box-shadow: 0 14px 30px rgba(122, 46, 46, .28);
}
.wc-proceed-to-checkout a.checkout-button::before {
    content: "";
    display: inline-block;
    width: 17px;
    height: 17px;
    margin-right: 9px;
    vertical-align: -3px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wc-proceed-to-checkout a.checkout-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 38px rgba(122, 46, 46, .36);
    filter: brightness(1.05);
}

/* ---------------------------------------------------------------------
   6. COUPON BOX
   --------------------------------------------------------------------- */
.col-md-4.tb-cart-total .coupon {
    background: #fff;
    border: 1px solid var(--acrt-line);
    border-radius: var(--acrt-radius);
    box-shadow: var(--acrt-shadow);
    padding: 20px 22px;
    margin: 22px 0 0;
}
.col-md-4.tb-cart-total .coupon > label[for="coupon_code"] {
    display: block;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--acrt-ink);
    margin: 0 0 10px;
    text-transform: none;
}
.col-md-4.tb-cart-total .coupon .box {
    display: flex;
    gap: 10px;
}
.col-md-4.tb-cart-total .coupon #coupon_code {
    flex: 1 1 auto;
    min-width: 0;
    padding: 12px 14px;
    border: 1.5px solid var(--acrt-line);
    border-radius: var(--acrt-radius-sm);
    background: var(--acrt-field-bg);
    font-size: 14px;
    color: var(--acrt-ink);
    transition: border-color .18s, box-shadow .18s, background .18s;
}
.col-md-4.tb-cart-total .coupon #coupon_code:focus {
    outline: none;
    border-color: var(--acrt-maroon);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(122, 46, 46, .12);
}
.col-md-4.tb-cart-total .coupon .box button[name="apply_coupon"],
.col-md-4.tb-cart-total .coupon .box button {
    flex: 0 0 auto;
    padding: 12px 18px;
    border: 0;
    border-radius: var(--acrt-radius-sm);
    background: var(--acrt-ink);
    color: #fff;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .18s;
    white-space: nowrap;
}
.col-md-4.tb-cart-total .coupon .box button[name="apply_coupon"]:hover {
    background: var(--acrt-maroon);
}

/* ---------------------------------------------------------------------
   7. "HOW IT WORKS" trust block inside the summary (rendered below CTA)
   --------------------------------------------------------------------- */
.cart_totals .aurea-cart-info-wrapper {
    margin: 24px 0 0;
    padding-top: 22px;
    border-top: 1px solid var(--acrt-line);
}
.cart_totals .aurea-timezone-badge {
    text-align: center;
    background: linear-gradient(135deg, var(--acrt-cream-soft), #f3e6cf);
    border: 1px solid var(--acrt-gold-soft);
    border-radius: var(--acrt-radius-sm);
    color: var(--acrt-maroon);
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.5;
    padding: 12px 16px;
    margin: 0 0 18px;
}
.cart_totals .aurea-how-it-works { text-align: left; }
.cart_totals .aurea-how-it-works h3 {
    font-family: var(--acrt-serif);
    font-size: 17px;
    font-weight: 700;
    color: var(--acrt-ink);
    margin: 0 0 2px;
    padding: 0;
    border: 0;
    text-align: center;
}
.cart_totals .aurea-how-subtitle {
    color: var(--acrt-muted);
    font-size: 12.5px;
    line-height: 1.5;
    margin: 0 0 14px;
    text-align: center;
}
.cart_totals .aurea-steps { display: block; margin: 0; }
.cart_totals .aurea-step {
    display: grid;
    grid-template-columns: 42px 1fr;
    grid-template-rows: auto auto;
    column-gap: 13px;
    align-items: center;
    padding: 12px 2px;
    border: 0;
    border-bottom: 1px solid var(--acrt-line);
    background: transparent;
    text-align: left;
}
.cart_totals .aurea-step:last-child { border-bottom: 0; }
.cart_totals .aurea-step-icon {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: center;
    width: 42px;
    height: 42px;
    margin: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    line-height: 1;
    background: linear-gradient(135deg, var(--acrt-cream-soft), #f1e3c8);
    box-shadow: inset 0 0 0 1px var(--acrt-gold-soft);
}
.cart_totals .aurea-step h4 {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--acrt-ink);
    margin: 0;
    line-height: 1.2;
}
.cart_totals .aurea-step p {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    font-size: 12px;
    color: var(--acrt-muted);
    line-height: 1.4;
    margin: 2px 0 0;
}

/* ---------------------------------------------------------------------
   8. EMPTY CART
   --------------------------------------------------------------------- */
.woocommerce-page .cart-empty,
.woocommerce-page .wc-empty-cart-message {
    text-align: center;
    font-family: var(--acrt-serif);
    font-size: 22px;
    color: var(--acrt-ink);
    background: #fff;
    border: 1px solid var(--acrt-line);
    border-radius: var(--acrt-radius);
    box-shadow: var(--acrt-shadow);
    padding: 40px 26px 14px;
    margin: 0 auto 18px;
    max-width: 560px;
}
.woocommerce-page .return-to-shop {
    text-align: center;
    max-width: 560px;
    margin: 0 auto;
}
.woocommerce-page .return-to-shop .button {
    display: inline-block;
    background: linear-gradient(135deg, var(--acrt-maroon), var(--acrt-maroon-deep));
    color: #fff !important;
    border-radius: var(--acrt-radius-sm);
    padding: 14px 30px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    text-decoration: none;
    box-shadow: 0 14px 30px rgba(122, 46, 46, .28);
}

/* ---------------------------------------------------------------------
   9. MOBILE  (≤768px: each line becomes a labelled card)
   --------------------------------------------------------------------- */
@media (max-width: 768px) {
    body.woocommerce-cart .woocommerce { padding: 22px 14px 56px; }

    .woocommerce-cart-form__contents.cart {
        background: transparent;
        border: 0;
        box-shadow: none;
        padding: 0;
    }

    .woocommerce-cart-form__contents .cart_item.head {
        display: none !important;
    }

    .woocommerce-cart-form__contents .cart_item:not(.head) {
        display: block;
        background: #fff;
        border: 1px solid var(--acrt-line);
        border-radius: 14px;
        box-shadow: var(--acrt-shadow);
        padding: 16px 16px 6px;
        margin: 0 0 14px;
    }

    .woocommerce-cart-form__contents .cart_item .product-info {
        margin: 0 0 12px;
        padding-right: 40px;
    }
    .woocommerce-cart-form__contents .cart_item .product-info img {
        width: 64px;
        height: 64px;
    }

    .woocommerce-cart-form__contents .cart_item .product-price,
    .woocommerce-cart-form__contents .cart_item .product-quantity,
    .woocommerce-cart-form__contents .cart_item .product-subtotal {
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: right;
        padding: 11px 0;
        border-top: 1px solid var(--acrt-line);
    }
    .woocommerce-cart-form__contents .cart_item .product-price::before,
    .woocommerce-cart-form__contents .cart_item .product-quantity::before,
    .woocommerce-cart-form__contents .cart_item .product-subtotal::before {
        content: attr(data-title);
        font-size: 11px;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--acrt-muted);
        font-weight: 700;
    }

    .woocommerce-cart-form__contents .cart_item .product-remove {
        position: absolute;
        top: 14px;
        right: 14px;
    }

    .cart-bottom {
        margin-top: 18px;
    }
    .cart-bottom .continue-to-shop.hidden-xs {
        display: inline-flex !important;
    }
    .cart-bottom .continue-to-shop,
    .cart-bottom .update-cart {
        flex: 1 1 100%;
        text-align: center;
    }
    .cart-bottom .update-cart button.update {
        width: 100%;
        justify-content: center;
    }

    .cart_totals,
    .col-md-4.tb-cart-total .coupon {
        padding: 22px 18px;
    }
}
