/* ==========================================================================
   Villa Breakfast · checkout components
   Summary list, payment choices, delivery ticket. Only checkout, checkout-address
   and confirmation use them (WP: enqueue with page-checkout.css).
   ========================================================================== */

/* ---------- Checkout summary list ---------- */
.cb-summary__items{list-style:none;display:grid;gap:12px}
.cb-summary__items li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;font-size:.9375rem}
.cb-summary__items small{display:block;font-size:.8125rem;font-weight:500;color:var(--ink-2)}
.cb-summary__items li>span:last-child{font-weight:800;font-variant-numeric:tabular-nums}
.cb-summary__qty{min-width:32px;padding:2px 6px;border-radius:8px;background:var(--cream);font-weight:800;text-align:center}

/* ---------- Payment (checkout) ---------- */
.cb-pay{min-width:0;margin:0;padding:0;border:0;display:grid;gap:10px}
.cb-pay legend{padding:0;margin-bottom:10px}
.cb-pay__express{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cb-pay__wallet{min-height:56px;padding-inline:12px;font-size:1rem;letter-spacing:0;white-space:nowrap}
.cb-pay__or{display:flex;align-items:center;gap:12px;margin:4px 0;font-size:var(--fs-xs);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.cb-pay__or::before,.cb-pay__or::after{content:"";flex:1;height:2px;background:var(--line)}
.cb-pay__opt{align-items:center;min-height:64px;padding:10px 16px;border-radius:var(--r-md);border:2px solid var(--line-strong);background:var(--paper)}
.cb-pay__opt:has(input:checked){border-color:var(--espresso);box-shadow:0 3px 0 var(--espresso)}
.cb-pay__opt .cb-check__box{margin:0}
.cb-pay__txt{display:flex;align-items:center;gap:10px;line-height:1.25}
.cb-pay__txt>.i{width:24px;height:24px;color:var(--terracotta)}
.cb-pay__txt small{display:block;font-size:.8125rem;font-weight:600;color:var(--ink-2)}

/* ---------- Delivery ticket (summary + confirmation) ---------- */
.cb-ticket{--notch:14px;--tk-bg:var(--paper);position:relative;background:var(--tk-bg);border-radius:var(--r-lg);box-shadow:var(--sh-2);-webkit-mask:radial-gradient(circle var(--notch) at 0 var(--cut,50%),transparent 98%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% var(--cut,50%),transparent 98%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle var(--notch) at 0 var(--cut,50%),transparent 98%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% var(--cut,50%),transparent 98%,#000) 100% 0/51% 100% no-repeat}
.cb-ticket::before,.cb-ticket::after{content:"";position:absolute;left:0;right:0;height:10px;background:radial-gradient(circle 5px at 50% 0,transparent 98%,var(--tk-bg)) 0 0/16px 10px repeat-x}
.cb-ticket::before{top:-9px;transform:scaleY(-1)}
.cb-ticket::after{bottom:-9px}
.cb-ticket__sec{padding:20px 22px}
.cb-ticket__sec+.cb-ticket__sec{border-top:2px dashed var(--line-strong)}
.cb-ticket__kicker{margin:0 0 4px;font-size:.6875rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.cb-ticket__rows{display:grid;gap:12px}
.cb-ticket__row{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center}
.cb-ticket__row>.i{width:24px;height:24px;color:var(--terracotta)}
.cb-ticket__row strong{display:block;line-height:1.2;overflow-wrap:anywhere}
.cb-ticket__row span{font-size:var(--fs-sm);color:var(--ink-2)}
.cb-ticket__row .cb-link{min-height:auto;font-size:var(--fs-sm)}
.cb-ticket__items{list-style:none;display:grid;gap:8px;font-size:.9375rem}
.cb-ticket__items li{display:flex;justify-content:space-between;gap:12px}
.cb-ticket__items small{display:block;color:var(--ink-2);font-size:.8125rem}
.cb-ticket__no{font:800 2.25rem/1 var(--font-display);font-variation-settings:"wdth" 76;letter-spacing:-.03em}
