/* Phase 3: responsive presentation of EXISTING guest, review, Stripe and order routes. */
.hotel-checkout-page{min-width:0}
.hotel-phase3-progress{display:block;padding:12px;border-radius:16px;margin-block:14px 19px}
.hotel-phase3-progress ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:7px}
.hotel-phase3-progress li{min-width:0;display:flex;align-items:center;justify-content:center;gap:9px;text-align:center;border-radius:11px;padding:9px 7px;font-size:13px;font-weight:800;color:var(--muted)}
.hotel-phase3-progress .hotel-phase3-step-number{display:inline-grid;place-items:center;flex:none;width:27px;height:27px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums}
.hotel-phase3-progress li.current{background:var(--hotel-gradient);color:#fff}
.hotel-phase3-progress li.current .hotel-phase3-step-number{background:rgba(255,255,255,.25);color:#fff;border-color:rgba(255,255,255,.45)}
.hotel-phase3-progress li.done{background:var(--primary-soft);color:var(--text)}
.hotel-checkout-page .hotel-checkout-columns{grid-template-columns:minmax(0,1fr) minmax(255px,300px);gap:18px}
.hotel-checkout-page .hotel-guest-preview{min-width:0;padding:22px}
.hotel-checkout-page .hotel-guest-preview>h1{font-size:clamp(23px,2.6vw,30px);line-height:1.3;margin-block:6px 9px}
.hotel-checkout-page .hotel-guest-preview>p.muted{line-height:1.7}
.hotel-checkout-page .hotel-booking-room-group{margin-block:13px 0;min-width:0}
.hotel-checkout-page .hotel-passenger-fieldset{min-width:0}
.hotel-checkout-page .hotel-passenger-fieldset legend{font-weight:850}
.hotel-checkout-page .hotel-guest-fields{gap:14px}
.hotel-checkout-page .hotel-booking-form input:not([type=checkbox]),
.hotel-checkout-page .hotel-booking-form select,
.hotel-checkout-page .hotel-booking-form textarea{min-height:46px;font-size:16px;min-width:0}
.hotel-checkout-page .hotel-booking-form input[aria-invalid=true],
.hotel-checkout-page .hotel-booking-form select[aria-invalid=true]{border-color:#df5464;outline:2px solid #df546455}
.hotel-phase3-field-error{color:#e76576;font-size:12px;font-weight:700;line-height:1.4}
.hotel-checkout-page .hotel-booking-form [type=submit],
.hotel-checkout-page [data-form="hotel-booking-review"] [type=submit],
.hotel-checkout-page #hotel-pay-button{min-height:49px;font-weight:850}
.hotel-checkout-page .hotel-booking-form [type=submit]:disabled,
.hotel-checkout-page [data-form="hotel-booking-review"] [type=submit]:disabled,
.hotel-checkout-page #hotel-pay-button:disabled{cursor:not-allowed;opacity:.6}
.hotel-phase3-summary{min-width:0;top:98px;padding:18px;display:grid;gap:12px}
.hotel-phase3-summary-intro{display:flex;gap:12px;align-items:center;min-width:0}
.hotel-phase3-summary-intro img{width:60px;height:60px;object-fit:cover;border-radius:11px;flex:none}
.hotel-phase3-summary-intro>div{min-width:0;display:grid;gap:2px}
.hotel-phase3-summary-intro strong{font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.hotel-phase3-summary-intro small{font-size:12px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.hotel-phase3-eyebrow{font-size:10px;font-weight:800;letter-spacing:.02em;color:var(--primary)}
.hotel-phase3-summary-amount{border:1px solid var(--border);border-radius:13px;padding:14px;display:grid;gap:5px;background:var(--surface2)}
.hotel-phase3-summary-amount>span{font-size:12px;font-weight:750;color:var(--muted)}
.hotel-phase3-summary-amount>strong{font-size:clamp(19px,2.1vw,25px);font-weight:900;overflow-wrap:anywhere}
.hotel-phase3-summary-amount small{font-size:11px;line-height:1.5;color:var(--muted)}
.hotel-phase3-summary-more{border-top:1px solid var(--border);min-width:0}
.hotel-phase3-summary-more>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;color:var(--primary);font-size:12px;font-weight:850;padding:10px 0;list-style:none}
.hotel-phase3-summary-more>summary::-webkit-details-marker{display:none}
.hotel-phase3-summary-more>summary::after{content:'+';font-size:21px}
.hotel-phase3-summary-more[open]>summary::after{content:'−'}
.hotel-phase3-summary-more dl{margin:0;display:grid;gap:1px}
.hotel-phase3-summary-more dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.hotel-phase3-summary-more dt{font-size:12px;color:var(--muted)}
.hotel-phase3-summary-more dd{margin:0;min-width:0;font-size:12px;font-weight:750;text-align:end;overflow-wrap:anywhere}
.hotel-phase3-policy{margin-top:12px;padding:12px;background:var(--surface2);border-radius:12px;font-size:12px;line-height:1.6}
.hotel-phase3-policy p{white-space:pre-wrap;overflow-wrap:anywhere;margin-block:5px 0}
.hotel-phase3-promo-preview{display:grid;gap:5px;padding:12px;background:var(--primary-soft);border-radius:11px;font-size:12px}
.hotel-phase3-promo-preview strong{font-size:13px}
.hotel-phase3-promo-preview small{color:var(--muted)}
.hotel-phase3-outcome{padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);font-size:13px;line-height:1.7}
.hotel-phase3-outcome-success{border-color:#33a980;color:#118866}
.hotel-phase3-outcome-pending,.hotel-phase3-outcome-warning{border-color:#dba34b;color:#ba8626}
.hotel-phase3-outcome-error{border-color:#eb6980;color:#d6536d}
.hotel-checkout-page .hotel-promotion-box{display:grid;gap:12px}
.hotel-checkout-page .hotel-promotion-form{display:flex;gap:11px;align-items:end;flex-wrap:wrap}
.hotel-checkout-page .hotel-promotion-form label{flex:1 1 120px;min-width:0}
.hotel-checkout-page .hotel-promotion-form input,.hotel-checkout-page .hotel-promotion-form select{min-height:46px;width:100%;min-width:0;font-size:16px}
.hotel-checkout-page #hotel-stripe-element{min-width:0;direction:inherit;margin:17px 0;padding:8px 0}
.hotel-checkout-page #hotel-payment-feedback:not(:empty){border-inline-start:3px solid #e8667c;padding:9px 12px;background:color-mix(in srgb,#e8667c 9%,var(--surface));border-radius:8px}
.hotel-checkout-page #hotel-pay-button[aria-busy=true]{opacity:.7}
.hotel-checkout-page [dir=ltr],.hotel-phase3-summary [dir=ltr]{unicode-bidi:isolate}
.hotel-phase3-progress :focus-visible,.hotel-phase3-summary-more:focus-visible,.hotel-checkout-page input:focus-visible,
.hotel-checkout-page select:focus-visible,.hotel-checkout-page textarea:focus-visible,
.hotel-checkout-page button:focus-visible{outline:3px solid #b85dee;outline-offset:3px}
@media(max-width:860px){
 .hotel-checkout-page .hotel-checkout-columns{display:flex;flex-direction:column;gap:14px}
 .hotel-checkout-page .hotel-phase3-summary{order:-1;position:static;width:100%}
 .hotel-checkout-page .hotel-guest-preview{width:100%}
}
@media(max-width:580px){
 .hotel-checkout-page{padding:13px 11px 40px}
 .hotel-checkout-page .hotel-guest-preview{padding:16px}
 .hotel-checkout-page .hotel-guest-preview>h1{font-size:23px}
 .hotel-checkout-page .hotel-guest-fields{grid-template-columns:1fr;gap:11px}
 .hotel-checkout-page .hotel-booking-room-group{padding:13px}
 .hotel-phase3-progress{padding:8px;margin-block:12px}
 .hotel-phase3-progress li{font-size:11px;gap:5px;padding:8px 4px}
 .hotel-phase3-progress .hotel-phase3-step-number{width:23px;height:23px;font-size:11px}
 .hotel-checkout-page .hotel-phase3-summary{padding:13px}
 /* Summary already exposes the verified quote; keep warnings and cancellation text visible. */
 .hotel-checkout-page:has(form[data-form="hotel-booking-guests"]) .hotel-verified-price,
 .hotel-checkout-page:has(form[data-form="hotel-booking-review"]) .hotel-verified-price{display:none}
 .hotel-phase3-summary-intro img{width:51px;height:51px}
 .hotel-checkout-page .hotel-booking-form [type=submit],
 .hotel-checkout-page [data-form="hotel-booking-review"] [type=submit],
 .hotel-checkout-page #hotel-pay-button{width:100%}
 .hotel-checkout-page .hotel-promotion-form>button{width:100%}
}
@media(max-width:350px){
 .hotel-phase3-progress li{flex-direction:column;gap:3px}
 .hotel-phase3-progress li>span:last-child{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
 .hotel-checkout-page *{scroll-behavior:auto}
}

/* Visible, keyboard-accessible checkout edit entry on mobile and desktop. */
.hotel-checkout-edit-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.hotel-checkout-edit-row h3{margin:0}
.hotel-checkout-edit-row .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:640px){.hotel-checkout-edit-row .btn{width:100%;}}
