/* Compact booking summary. Native WooCommerce owns every displayed amount. */
.ppb-cart-summary {
 --ppb-summary-wine: #5c0f1f;
 position: sticky;
 top: 24px;
 min-width: 0;
 padding: 0;
 border: 1px solid #e6e1dc;
 border-radius: var(--ppb-radius-panel);
 background: #fff;
 box-shadow: 0 6px 20px #30292506;
 overflow: hidden;
}
.ppb-cart-summary__header { padding: 24px 24px 0; }
.ppb-cart-summary__header h2 {
 margin: 0;
 color: var(--ppx-ink);
 font: 600 20px/1.25 var(--ppx-font);
 letter-spacing: -.02em;
}
.ppb-cart-summary__body { padding: 19px 24px 24px; }
.ppb-cart-summary .cart_totals {
 float: none !important;
 width: 100% !important;
 margin: 0;
}
.ppb-cart-summary .cart_totals > h2 { display: none; }
.ppb-cart-summary .cart-collaterals { width: 100%; }
.ppb-cart-summary table {
 width: 100%;
 margin: 0;
 border: 0;
 border-spacing: 0;
 border-collapse: separate;
 font: 400 14px/1.5 var(--ppx-font);
}
.ppb-cart-summary table tr { display: table-row; background: transparent; }
.ppb-cart-summary table :is(th,td) {
 display: table-cell;
 padding: 10px 0;
 border: 0;
 background: transparent;
 color: var(--ppx-ink);
 vertical-align: top;
 text-align: left;
 font-size: 14px;
 font-weight: 400;
 letter-spacing: 0;
 text-transform: none;
}
.ppb-cart-summary table th { width: 48%; }
.ppb-cart-summary table td { padding-left: 14px; text-align: right; font-weight: 550; }
.ppb-cart-summary table td::before { display: none; }
.ppb-cart-summary .woocommerce-Price-amount { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ppb-cart-summary .cart-subtotal :is(th,td) { padding-top: 4px; font-size: 15px; }
.ppb-cart-summary .cart-discount :is(th,td) { color: #306448; }
.ppb-cart-summary .woocommerce-remove-coupon {
 display: inline-flex;
 align-items: center;
 min-height: 34px;
 margin-top: 1px;
 color: #306448;
 font-size: 12px;
 font-weight: 400;
 text-underline-offset: 3px;
}
.ppb-cart-summary :is(.tax-rate,.tax-total,.fee) th { color: var(--ppx-muted); }
.ppb-cart-summary :is(.tax-rate,.tax-total,.fee) th small { display: block; font-size: 12px; font-weight: 400; }
.ppb-cart-summary .order-total :is(th,td) { padding-block: 12px; color: var(--ppb-summary-wine); font-weight: 500; }
.ppb-cart-summary .order-total:has(td > strong) :is(th,td) {
 padding: 17px 13px;
 border-top: 12px solid #fff;
 background: #f5f3f1;
 vertical-align: middle;
}
.ppb-cart-summary .order-total:has(td > strong) th { border-radius: var(--ppb-radius-panel) 0 0 var(--ppb-radius-panel); font-size: 15px; font-weight: 600; }
.ppb-cart-summary .order-total:has(td > strong) td { padding-left: 8px; border-radius: 0 var(--ppb-radius-panel) var(--ppb-radius-panel) 0; }
.ppb-cart-summary .order-total strong { color: var(--ppb-summary-wine); font-size: 28px; font-weight: 650; line-height: 1.2; letter-spacing: -.035em; }
.ppb-cart-summary .order-total:not(:has(td > strong)) :is(th,td) { padding-top: 16px; padding-bottom: 4px; color: var(--ppx-muted); font-size: 13px; font-weight: 400; }
.ppb-cart-summary .ppx-deposit-balance :is(th,td) { padding-top: 16px; color: var(--ppb-summary-wine); font-size: 15px; font-weight: 600; }
.ppb-cart-summary .ppx-deposit-balance th small { display: block; margin-top: 4px; color: var(--ppx-muted); font-size: 12px; font-weight: 400; line-height: 1.4; }
.ppb-cart-summary .tax_label { display: block; font-size: 12px; font-weight: 400; }
.ppb-cart-summary .includes_tax { display: block; margin-top: 5px; color: var(--ppx-muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
.ppb-cart-summary .wc-proceed-to-checkout { padding: 21px 0 0; }
.ppb-booking .ppb-cart-summary .wc-proceed-to-checkout a.checkout-button {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 100%;
 min-height: 56px;
 margin: 0;
 padding: 15px 18px;
 border: 1px solid #960000;
 border-radius: var(--ppb-radius-control);
 background: #960000;
 color: #fff;
 box-shadow: none;
 font: 600 15px/1.4 var(--ppx-font);
 letter-spacing: 0;
 text-transform: none;
 transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.ppb-cart-summary .checkout-button::after { content: "→"; margin-left: auto; padding-left: 12px; font-size: 21px; font-weight: 400; }
.ppb-cart-summary__care {
 display: flex;
 align-items: flex-start;
 gap: 12px;
 padding: 17px 24px 19px;
 border-top: 1px solid #e9e4df;
 background: #faf9f8;
 color: var(--ppx-muted);
}
.ppb-cart-summary__care > span { flex: none; width: 23px; height: 23px; margin-top: 1px; color: #9d6c2a; }
.ppb-cart-summary__care svg { display: block; width: 23px; height: 23px; }
.ppb-cart-summary__care p { margin: 0; font-size: 13px; line-height: 1.6; }
.ppb-cart-summary__care strong { display: block; margin-bottom: 4px; color: var(--ppb-summary-wine); font-size: 13px; font-weight: 600; }
@media (hover:hover) and (pointer:fine) {
 .ppb-booking .ppb-cart-summary .wc-proceed-to-checkout a.checkout-button:hover { background: #780000; border-color: #780000; box-shadow: 0 7px 15px #96000024; transform: translateY(-1px); }
}
@media (max-width:1099px) {
 .ppb-cart-summary__header { padding-inline: 21px; }
 .ppb-cart-summary__body { padding-inline: 21px; }
 .ppb-cart-summary__care { padding-inline: 21px; }
 .ppb-cart-summary .order-total strong { font-size: 27px; }
}
@media (max-width:899px) {
 .ppb-cart-summary { position: static; }
 .ppb-cart-summary .order-total strong { font-size: 30px; }
}
@media (max-width:767px) {
 .ppb-cart-summary { border-radius: var(--ppb-radius-panel); }
 .ppb-cart-summary__header { padding: 21px 22px 0; }
 .ppb-cart-summary__body { padding: 21px 22px 23px; }
 .ppb-cart-summary__care { padding: 18px 22px 20px; }
 .ppb-cart-summary .order-total strong { font-size: 28px; }
}
@media (max-width:359px) {
 .ppb-cart-summary__header { padding-inline: 18px; }
 .ppb-cart-summary__header h2 { font-size: 19px; }
 .ppb-cart-summary__body { padding-inline: 18px; }
 .ppb-cart-summary__care { padding-inline: 18px; }
 .ppb-cart-summary .order-total:has(td > strong) :is(th,td) { padding-inline: 10px; }
 .ppb-cart-summary .order-total strong { font-size: 24px; }
 .ppb-cart-summary .order-total:has(td > strong) th { font-size: 14px; }
}
@media (prefers-reduced-motion:reduce) {
 .ppb-booking .ppb-cart-summary .wc-proceed-to-checkout a.checkout-button { transition: none; transform: none; }
}
.ppb-keyboard .ppb-cart-summary .wc-proceed-to-checkout a.checkout-button { transition: none; transform: none; }

/* The primary obligations stay visible; plugin accounting detail stays accessible. */
.ppb-cart-value { margin: 0 0 10px; }
.ppb-cart-value > div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.ppb-cart-value dt { color: var(--ppx-ink); font-size: 14px; font-weight: 550; }
.ppb-cart-value dt small { display: block; margin-top: 4px; color: var(--ppx-muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
.ppb-cart-value dd { margin: 0; color: var(--ppb-summary-wine); font-size: 19px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ppb-cart-breakdown { margin-top: 18px; border-block: 1px solid var(--ppx-border); }
.ppb-cart-breakdown > summary { display: flex; gap: 12px; justify-content: space-between; align-items: center; min-height: 48px; cursor: pointer; color: var(--ppb-summary-wine); font-size: 13px; font-weight: 550; list-style: none; }
.ppb-cart-breakdown > summary::-webkit-details-marker { display: none; }
.ppb-cart-breakdown > summary::after { content: '+'; font-size: 21px; font-weight: 400; }
.ppb-cart-breakdown[open] > summary::after { content: '−'; }
.ppb-cart-breakdown table { margin-bottom: 16px; }
.ppb-cart-breakdown:focus-within { outline-offset: 3px; }
.ppb-cart-next small { display: block; margin-top: 4px; font-size: 12px; font-weight: 450; line-height: 1.4; }
.ppb-cart-next[hidden] { display: none; }
.ppb-payment-mode { display: inline-flex; align-items: center; padding: 4px 7px; margin-bottom: 8px; border: 1px solid #e5d8cd; border-radius: var(--ppb-radius-control); background: #fbf5ee; color: var(--ppb-summary-wine); font-size: 11px; font-weight: 550; line-height: 1.4; }
.ppb-card-additions--empty { padding-block: 5px; background: transparent; }
.ppb-card-additions--empty .ppb-text-button { min-height: 44px; }
.ppb-cart-page .product-subtotal small { display: block; max-width: 175px; color: var(--ppx-muted); font-size: 12px; line-height: 1.4; font-weight: 400; }
@media (max-width:767px) {
 .ppb-cart-summary__header { padding: 18px 18px 0; }
 .ppb-cart-summary__body { padding: 16px 18px 18px; }
 .ppb-cart-summary__care { padding: 15px 18px; }
 .ppb-cart-page .ppb-quantity { grid-template-columns: 44px 48px 44px; }
 .ppb-cart-page .ppb-quantity__label { font-size: 12px; }
 .ppb-service-card__booking { gap: 12px; align-items: center; }
 .ppb-service-card__booking > .product-subtotal { padding-bottom: 0; text-align: right; }
 .ppb-cart-dock > .ppb-primary { display: flex; align-items: center; justify-content: space-between; gap: 8px; max-width: 58%; font-size: 13px; line-height: 1.35; }
 .ppb-cart-dock > .ppb-primary > span:last-child { flex: none; }
}
