.emp-checkout { display: flex; flex-direction: column; gap: 16px; max-width: 720px; }
.emp-checkout__loading { padding: 56px 20px; text-align: center; color: var(--emp-muted); font-size: 14px; }

/* ── Empty state ── */
.emp-checkout__empty { text-align: center; padding: 64px 24px; }
.emp-checkout__empty p { color: var(--emp-muted); margin: 0 0 22px; }

/* ── Form blocks ── */
.emp-checkout__block { background: var(--emp-bg-card); border: 1px solid var(--emp-border); border-radius: 16px; padding: 14px 16px; }
.emp-checkout__block-h { font-weight: 800; font-size: 13.5px; margin-bottom: 11px; color: var(--emp-charcoal); }
.emp-checkout__deliver { font-size: 12px; color: #4A4954; background: var(--emp-cream); border-radius: 12px; padding: 11px 13px; line-height: 1.45; }
.emp-checkout__guest .eaddr__form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.emp-checkout__guest .eaddr__field--full { grid-column: 1 / -1; }

/* ── Payment ── */
.emp-pay { display: flex; align-items: center; gap: 11px; padding: 12px; border: 1.5px solid var(--emp-border); border-radius: 13px; margin-bottom: 9px; cursor: pointer; background: var(--emp-bg-card); position: relative; }
.emp-pay:hover { border-color: var(--emp-charcoal); }
.emp-pay--sel { border-color: var(--emp-coral); background: var(--emp-coral-light); }
.emp-pay input[type=radio] { position: absolute; opacity: 0; pointer-events: none; }
.emp-pay__pico { width: 34px; height: 34px; border-radius: 9px; background: var(--emp-cream); display: grid; place-items: center; font-size: 17px; flex-shrink: 0; }
.emp-pay__text { flex: 1; min-width: 0; }
.emp-pay__pnm { font-weight: 700; font-size: 13px; color: var(--emp-charcoal); }
.emp-pay__psub { display: block; font-size: 11px; color: var(--emp-muted); margin-top: 1px; }
.emp-pay__radio { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--emp-border); flex-shrink: 0; }
.emp-pay--sel .emp-pay__radio { border-color: var(--emp-coral); background: var(--emp-coral); box-shadow: inset 0 0 0 3px #fff; }
.emp-pay__fields { padding: 0 12px 12px; }
.emp-checkout__muted { color: var(--emp-muted); font-size: 13px; }

/* ── Summary ── */
.emp-checkout__summary { background: var(--emp-bg-card); border: 1px solid var(--emp-border); border-radius: 16px; padding: 14px 16px; }
.emp-checkout__srow { display: flex; justify-content: space-between; font-size: 13.5px; color: var(--emp-charcoal); padding: 5px 0; }
.emp-checkout__slabel { color: var(--emp-muted); }
.emp-checkout__srow--disc span:last-child { color: #2E9E6B; font-weight: 700; }
.emp-checkout__free { color: #2E9E6B; font-weight: 800; }
.emp-checkout__stotal { display: flex; justify-content: space-between; align-items: baseline; padding-top: 11px; margin-top: 6px; border-top: 1px solid var(--emp-border); }
.emp-checkout__stotal b { font-size: 16px; color: var(--emp-charcoal); }
.emp-checkout__amt { color: var(--emp-coral); font-size: 18px; font-weight: 800; }

/* ── Errors + Pay ── */
.emp-checkout__errors { background: var(--emp-coral-light); border: 1px solid var(--emp-coral); border-radius: 12px; padding: 10px 14px; font-size: 12.5px; color: var(--emp-coral); }
.emp-checkout__errors[hidden] { display: none; }
.emp-checkout__errors ul { margin: 0; padding-left: 16px; }
.emp-checkout__pay { width: 100%; justify-content: center; padding: 15px; font-weight: 800; font-size: 15px; }
.emp-checkout__pay:disabled { opacity: 0.6; cursor: default; }

/* ── Confirmation ── */
.emp-confirm { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 30px 16px; }
.emp-confirm__check { width: 80px; height: 80px; border-radius: 50%; background: #2E9E6B; display: grid; place-items: center; margin-bottom: 20px; box-shadow: 0 12px 30px rgba(46,158,107,.35); }
.emp-confirm__title { font-size: 24px; font-weight: 800; margin: 0; color: var(--emp-charcoal); }
.emp-confirm__sub { color: var(--emp-muted); font-size: 13.5px; line-height: 1.55; margin: 10px 0 0; max-width: 320px; }
.emp-confirm__orderno { background: var(--emp-cream); border-radius: 12px; padding: 10px 16px; font-weight: 800; font-size: 14px; margin-top: 18px; letter-spacing: .5px; color: var(--emp-charcoal); }
.emp-confirm__track { width: 100%; margin-top: 22px; }
.emp-confirm__track-title { font-size: 11.5px; font-weight: 800; color: var(--emp-muted); text-align: left; letter-spacing: .5px; margin-bottom: 9px; }
.emp-confirm__tb { display: flex; align-items: center; gap: 10px; background: var(--emp-bg-card); border: 1px solid var(--emp-border); border-radius: 13px; padding: 11px; margin-bottom: 8px; text-align: left; }
.emp-confirm__tb-logo { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; font-size: 15px; border: 1px solid var(--emp-border); overflow: hidden; background: var(--emp-coral); color: #fff; font-weight: 700; flex-shrink: 0; }
.emp-confirm__tb-logo img { width: 100%; height: 100%; object-fit: cover; }
.emp-confirm__tb-meta { flex: 1; min-width: 0; }
.emp-confirm__tb-nm { font-weight: 700; font-size: 12.5px; color: var(--emp-charcoal); }
.emp-confirm__tb-st { font-size: 11px; color: #2E9E6B; margin-top: 1px; font-weight: 600; }
.emp-confirm__tb-eta { margin-left: auto; font-size: 11px; color: var(--emp-muted); white-space: nowrap; }
.emp-confirm__foot { display: flex; flex-direction: column; gap: 9px; margin-top: 16px; }
.emp-confirm__foot .emp-btn { width: 100%; justify-content: center; }
.emp-btn--charcoal { background: var(--emp-charcoal); color: #fff; }
.emp-btn--outline { background: #fff; color: var(--emp-coral); border: 1.5px solid var(--emp-coral); }

/* ── Your order (itemized, read-only) ── */
.emp-checkout__order { display: flex; flex-direction: column; gap: 10px; }
.emp-checkout__obrand-h { font-size: 12px; font-weight: 700; color: var(--emp-teal); text-transform: uppercase; letter-spacing: .4px; margin-bottom: 5px; }
.emp-checkout__oitem { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; padding: 3px 0; }
.emp-checkout__oname { color: var(--emp-muted); }
.emp-checkout__oprice { font-weight: 700; color: var(--emp-charcoal); white-space: nowrap; }

/* ── Combined cart+checkout ([empyra_cart_checkout]) ── */
.emp-cc { display: flex; flex-direction: column; gap: 16px; max-width: 720px; }
.emp-cc__step[hidden] { display: none; }
.emp-cc__back { display: inline-flex; align-items: center; gap: 6px; background: none; border: none; color: var(--emp-teal); font-weight: 600; font-size: 13px; cursor: pointer; padding: 0; align-self: flex-start; margin-top: 4px; }
.emp-cc__back:hover { color: var(--emp-coral); }
/* Totals block while it re-costs shipping/tax via AJAX */
.emp-checkout__totals--busy { opacity: .55; transition: opacity .15s; pointer-events: none; }

/* ── Sign in, inside the checkout ─────────────────────────────────────────
   Guests cannot check out, so the delivery block asks for an email and a code
   first. It sits where the address picker will be, at the same weight, so the
   step reads as part of the purchase rather than an interruption. */
.emp-checkout__auth { display: flex; flex-direction: column; gap: 14px; }
.emp-checkout__auth-lede { margin: 0; font-size: 13px; color: var(--emp-muted); }
.emp-checkout__auth-step { display: flex; flex-direction: column; gap: 12px; }
/* display:flex outranks the bare [hidden] rule — without this the code step is
   on screen before a code has been sent. */
.emp-checkout__auth-step[hidden] { display: none; }
.emp-checkout__auth-step .emp-btn { align-self: flex-start; }
.emp-checkout__auth-sent { margin: 0; font-size: 13px; }
.emp-checkout__auth-code { letter-spacing: .5em; font-size: 18px; text-align: center; max-width: 200px; }
.emp-checkout__auth-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.emp-checkout__auth-error {
    margin: 0;
    padding: 9px 12px;
    border-radius: var(--emp-r-input);
    background: var(--emp-danger-light);
    color: var(--emp-danger);
    font-size: 13px;
}
