/* Cart presentation only. WooCommerce owns quantities, coupons and totals. */
.pp-cart-intro { position: relative; margin-bottom: 42px; }
.pp-cart-eyebrow { color: var(--pp-lilac-ink); font-size: 11px; letter-spacing: .14em; margin: 25px 0 14px; }
.pp-cart-intro h1 { font-size: clamp(42px, 6vw, 72px); letter-spacing: -.055em; margin-bottom: 14px; }
.pp-cart-intro h1 > span { color: #aa91dc; }
.pp-cart-intro > p:last-of-type { color: var(--pp-muted); font-size: 15px; }
.pp-cart-back { float: right; font-size: 13px; text-underline-offset: 5px; text-decoration: underline; }
.pp-cart-back span { margin-left: 8px; }
.pp-cart-progress { display: flex; flex-wrap: wrap; gap: 14px 30px; list-style: none; padding: 24px 0 0; margin: 24px 0 0; border-top: 1px solid var(--pp-border); }
.pp-cart-progress li { display: flex; align-items: center; gap: 9px; font-size: 12px; color: var(--pp-muted); }
.pp-cart-progress li span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #f4f1f8; }
.pp-cart-progress li[aria-current] { color: var(--pp-lilac-ink); font-weight: 600; }
.pp-cart-progress li[aria-current] span { background: var(--pp-lilac-100); border: 1px solid #d1c1ec; }
.pp-cart-page .wc-block-cart { font-family: inherit; font-size: 14px; margin-bottom: 0; align-items: start; gap: 32px; }
.pp-cart-page .wc-block-cart.is-large .wc-block-cart__main { padding: 0; width: calc(65% - 32px); }
.pp-cart-page .wc-block-cart.is-large .wc-block-cart__sidebar { width: 35%; }
.pp-cart-page .wc-block-cart__main { min-width: 0; border: 1px solid #e3ddeb; border-radius: 18px; padding: 8px 24px !important; background: #fff; }
.pp-cart-page .wc-block-cart__sidebar { min-width: 0; padding: 26px; border: 1px solid transparent; border-radius: 18px; background: linear-gradient(145deg, #fff, #f9faff 60%, #fbf7ff) padding-box, var(--pp-chrome) border-box; box-shadow: 0 12px 36px #b7acc014; }
.pp-cart-page .wc-block-cart.is-large .wc-block-cart__sidebar { position: sticky; top: 116px; }
.admin-bar .pp-cart-page .wc-block-cart.is-large .wc-block-cart__sidebar { top: 148px; }
.pp-cart-page table.wc-block-cart-items { margin-bottom: 0; border: 0; }
.pp-cart-page .wc-block-cart-items th { font-size: 11px; letter-spacing: .08em; color: var(--pp-muted); padding-top: 18px; padding-bottom: 18px; }
.pp-cart-page .wc-block-cart-items td { padding-top: 26px !important; padding-bottom: 26px !important; border-color: #ebe6f1; }
.pp-cart-page .wc-block-cart-item__image img { border-radius: 12px; background: linear-gradient(135deg, var(--pp-cyan-100), var(--pp-lilac-100)); }
.pp-cart-page .wc-block-components-product-name { font-size: 18px; font-weight: 600; letter-spacing: -.02em; text-decoration: none; line-height: 1.4; }
.pp-cart-page .wc-block-cart-item__prices { margin-top: 8px; color: var(--pp-muted); }
.pp-cart-page .wc-block-cart-item__total { font-weight: 600; color: var(--pp-lilac-ink); }
.pp-cart-page .wc-block-components-product-metadata { font-size: 12px; color: var(--pp-muted); }
.pp-cart-page .wc-block-components-quantity-selector { min-height: 44px; border-radius: 9px; border-color: #d8cde8; background: #faf8fe; margin-top: 18px; }
.pp-cart-page .wc-block-components-quantity-selector input { font-size: 16px; }
.pp-cart-page .wc-block-components-quantity-selector button { min-width: 32px; }
.pp-cart-page .wc-block-cart-item__remove-link { min-height: 44px; font-size: 12px !important; color: var(--pp-muted) !important; text-underline-offset: 4px; }
.pp-cart-page .wc-block-cart__totals-title { font-size: 25px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: -.035em; padding: 0 0 24px !important; }
.pp-cart-page .wc-block-components-totals-wrapper { border-color: #e6dfef; padding-block: 17px; }
.pp-cart-page .wc-block-components-totals-item { padding-inline: 0; gap: 12px; }
.pp-cart-page .wc-block-components-totals-item__value { text-align: right; }
.pp-cart-page .wc-block-components-totals-item__description { color: var(--pp-muted); font-size: 12px; }
.pp-cart-page .wc-block-components-totals-coupon { padding-inline: 0; }
.pp-cart-page .wc-block-components-panel__button { min-height: 44px; }
.pp-cart-page .wc-block-components-totals-footer-item { font-size: 19px; color: var(--pp-lilac-ink); }
.pp-cart-page .wc-block-cart__submit-container { padding: 20px 0 0; }
.pp-cart-page .wc-block-cart__submit-button { width: 100%; min-height: 56px; border: 1px solid #b5a0dc; box-shadow: 0 5px 18px #b69ad529; }
.pp-cart-page .wc-block-components-totals-coupon__button { background: var(--pp-cyan-500) !important; color: var(--pp-cyan-ink) !important; }
.pp-cart-page .wc-block-components-text-input input { border-radius: 8px; font-size: 16px; }
.pp-cart-page :is(a, button, input):focus-visible { outline: 2px solid #8260b4; outline-offset: 3px; }
.pp-cart-page .wp-block-woocommerce-empty-cart-block { padding: 45px 24px; text-align: center; border: 1px solid #e3ddeb; border-radius: 18px; background: linear-gradient(135deg, #f1fcff, #faf7ff); }
.pp-cart-guidance { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 48px; padding-top: 28px; border-top: 1px solid #e3ddeb; }
.pp-cart-guidance strong { font-size: 13px; font-weight: 600; }
.pp-cart-guidance p { color: var(--pp-muted); font-size: 12px; margin: 8px 0 0; max-width: 30em; }
@media (max-width: 1024px) {
    .pp-cart-page .wc-block-cart { display: flex; flex-direction: column; gap: 24px; }
    .pp-cart-page .wc-block-cart .wc-block-cart__main,
    .pp-cart-page .wc-block-cart .wc-block-cart__sidebar { width: 100%; position: static; }
}
@media (max-width: 600px) {
    .pp-cart-back { float: none; display: inline-block; margin-bottom: 12px; }
    .pp-cart-intro { margin-bottom: 26px; }
    .pp-cart-progress { gap: 14px; }
    .pp-cart-progress li { font-size: 11px; gap: 6px; }
    .pp-cart-progress li span { width: 24px; height: 24px; }
    .pp-cart-page .wc-block-cart__main { padding-inline: 14px !important; }
    .pp-cart-page .wc-block-cart__sidebar { padding: 22px 18px; }
    .pp-cart-page .wc-block-components-product-name { font-size: 16px; overflow-wrap: anywhere; }
    .pp-cart-page .wc-block-cart-item__total { font-size: 13px; }
    .pp-cart-guidance { grid-template-columns: 1fr; gap: 22px; margin-top: 32px; }
}
/* Keep the checkout action in the summary so it never covers cart controls. */
.pp-cart-page .wc-block-cart__submit-container--sticky {
    position: static !important;
    width: auto !important;
    padding: 20px 0 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}
.pp-cart-page .wc-block-cart__totals-title { display: block !important; }
@media (max-width: 600px) {
    .pp-cart-page table.wc-block-cart-items,
    .pp-cart-page .wc-block-cart-items tbody { display: block; width: 100%; }
    .pp-cart-page .wc-block-cart-items thead { display: none; }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 48px minmax(0, 1fr); gap: 0 16px; width: 100%; }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-item__image { grid-column: 1; grid-row: 1; width: 48px; padding-right: 0; }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-item__product { grid-column: 2; grid-row: 1; min-width: 0; }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-item__total { grid-column: 2; grid-row: 2; padding: 0 0 12px !important; justify-content: flex-start; }
    .pp-cart-page .wc-block-cart-item__total::before { content: 'Item total'; font-weight: 400; color: var(--pp-muted); margin-right: 10px; }
}
.pp-cart-page .wc-block-cart__submit-container--sticky { display: flex !important; }
/* Explicit mobile grid areas override WooCommerce's own placement rules. */
@media (max-width: 600px) {
    .pp-cart-page { padding-top: 28px; }
    .pp-cart-intro h1 { font-size: clamp(36px, 10vw, 48px); }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-items__row {
        display: grid !important;
        grid-template-areas: 'image product' 'total total' !important;
        grid-template-columns: 56px minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;
        gap: 18px 14px !important;
        padding: 22px 0 !important;
    }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-item__image { grid-area: image !important; width: 56px !important; padding: 0 !important; align-self: start; }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-item__product { grid-area: product !important; padding: 0 !important; min-width: 0; }
    .pp-cart-page .wc-block-cart-items .wc-block-cart-item__total {
        grid-area: total !important; padding: 16px 0 0 !important; border-top: 1px solid #e7dfef;
        display: flex !important; justify-content: space-between !important; align-items: flex-start; gap: 14px; width: 100%;
    }
    .pp-cart-page .wc-block-cart-item__total::before { flex: 0 0 auto; font-size: 13px; margin: 0; }
    .pp-cart-page .wc-block-cart-item__total-price-and-sale-badge-wrapper { align-items: flex-end; min-width: 0; gap: 6px; }
    .pp-cart-page .wc-block-components-sale-badge { white-space: normal; line-height: 1.5; font-size: 11px; }
    .pp-cart-page .wc-block-cart-item__wrap { min-width: 0; }
    .pp-cart-page .wc-block-cart-item__prices { display: flex; flex-wrap: wrap; gap: 6px; line-height: 1.6; }
    .pp-cart-page .wc-block-components-product-name { display: block; line-height: 1.5; font-size: 16px; }
    .pp-cart-page .wc-block-components-product-price { white-space: normal; overflow-wrap: anywhere; }
    .pp-cart-page .wc-block-cart-item__quantity { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 14px; }
    .pp-cart-page .wc-block-components-quantity-selector { margin: 0; }
    .pp-cart-page .wc-block-cart__sidebar { padding: 22px 18px; }
    .pp-cart-page .wc-block-components-totals-item { flex-wrap: wrap; }
    .pp-cart-page .wc-block-components-totals-footer-item { font-size: clamp(16px, 4.5vw, 20px); }
    .pp-cart-page .wc-block-components-totals-coupon__form { display: flex; flex-wrap: wrap; gap: 10px; }
    .pp-cart-page .wc-block-components-totals-coupon__input { flex: 1 1 150px; min-width: 0; margin: 0; }
    .pp-cart-page .wc-block-components-totals-coupon__button { min-height: 48px; }
}
