.booking-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;margin:22px 0 28px;color:#5f7066}
.booking-steps li{display:flex;align-items:center;gap:9px;font-size:.9375rem;line-height:1.35;min-width:0}
.booking-steps .step-number{display:grid;place-items:center;flex:0 0 30px;width:30px;min-width:30px;height:30px;border:1px solid #cbd7c8;border-radius:50%;background:#fffdf7;font-size:.875rem;font-weight:600;color:#516a59}
.booking-steps .is-current{font-weight:600;color:#243b32}
.booking-steps .is-current .step-number,.booking-steps .is-done .step-number{background:#e3eddf;border-color:#a9bda8;color:#344e40}
.booking-steps .is-current .step-number{background:#344e40;color:#fffdf7;border-color:#344e40}
.booking-welcome{background:#edf2eb;border:1px solid #ccd9c9;border-radius:20px;padding:24px 26px;margin:18px 0 24px;color:#243b32}
.booking-welcome h1{font-size:clamp(1.8rem,5vw,2.3rem);margin:8px 0 12px}
.booking-welcome p{font-size:1.0625rem;line-height:1.65;margin:0;color:#4e6257;max-width:60ch}
.booking-welcome .eyebrow{color:#516a59}
.booking-intro{color:#4e6257;font-size:1.0625rem;line-height:1.65}
.booking-section-note{margin:-6px 0 4px;font-size:1rem;font-weight:400;color:#4e6257}
.booking-confirmation,.active-booking.booking-confirmed{background:#edf2eb;border:1px solid #ccd9c9;border-radius:22px;color:#243b32;box-shadow:none}
.booking-confirmation{padding:26px;margin:0 0 24px}
.booking-confirmation h2{font-size:clamp(1.75rem,5vw,2.1rem);margin:10px 0 12px}
.booking-confirmation p{font-size:1.0625rem;line-height:1.65;margin:0;color:#4e6257}
.booking-payment-label{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid #d8decf;border-radius:99px;background:#fffdf7;color:#344e40;font-size:.9375rem;font-weight:600;line-height:1.4}
.booking-confirmation .booking-payment-detail{margin-top:16px;font-size:1rem}
.booking-celebration{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid #ccd9c9}
.booking-celebration h3{font-size:2rem;margin:0 0 10px}
.booking-celebration p{font-size:1.0625rem;line-height:1.6;color:#4e6257;max-width:58ch}
.booking-confirmed .booking-facts{padding:18px;background:#fffdf7;border:1px solid #e0dfcf;border-radius:14px}
.booking-confirmed .pill{background:#dfe9da;color:#344e40}
.booking-ready-title{color:#243b32}
.booking-confirmation~.summary{background:#fffdf7;border:1px solid #e0dfcf;border-radius:14px;padding:18px;gap:14px}
.booking-complete-form #price-summary{background:#edf2eb;border-color:#ccd9c9;font-size:1.0625rem;line-height:1.7}
.booking-inquiry-success{background:#edf2eb;border:1px solid #ccd9c9;border-radius:20px;padding:24px;color:#243b32}
.booking-inquiry-success h2{margin:0 0 12px;font-size:1.8rem}
.booking-inquiry-success p{font-size:1.0625rem;line-height:1.6;margin:0 0 12px}
.booking-inquiry-success .booking-reference{font-size:.9375rem;margin-bottom:0;color:#4e6257}
@media(max-width:600px){.booking-steps{gap:8px;margin:18px 0 22px}.booking-steps li{flex-direction:column;align-items:flex-start;font-size:.875rem;gap:7px}.booking-welcome{padding:20px 18px;border-radius:18px}.booking-confirmation{padding:22px 18px;border-radius:18px}.booking-confirmed .booking-facts{padding:14px;gap:16px 10px}.booking-celebration h3{font-size:1.8rem}}
@media print{.booking-steps{display:none}.booking-confirmation,.booking-confirmed{break-inside:avoid}}

.booking-deadline{padding:16px 20px;margin:18px 0;border:1px solid #d7dfce;border-left:4px solid #7c986a;border-radius:14px;background:#f2f5e9;color:#344632;font-size:15px;line-height:1.6}.booking-deadline[hidden]{display:none}

.origen-benefits{background:#edf2e8;border:1px solid #cbdac5;padding:24px;border-radius:16px;display:grid;gap:16px}.origen-benefits[hidden]{display:none}.origen-benefits h2,.origen-benefits p{margin:0}.origen-benefits select{max-width:100%;font-size:1rem}#inline-rewards{display:flex;gap:10px;flex-wrap:wrap}.origen-benefits small{font-size:.875rem;line-height:1.5}

.booking-approved-summary{padding:22px;background:#edf2e8;border:1px solid #cbd8c4;border-radius:16px}
.booking-approved-summary .eyebrow{font-size:.875rem;line-height:1.5;margin:0 0 8px}
.booking-approved-summary h2{font-size:1.55rem;line-height:1.35;margin:0 0 12px}
.booking-approved-summary>p{overflow-wrap:anywhere}
.booking-approved-summary details{margin-top:18px;border-top:1px solid #cbd8c4;padding-top:8px}
.booking-approved-summary summary,.booking-optional>summary{min-height:44px;padding:10px 0;box-sizing:border-box;cursor:pointer;font-size:1rem;font-weight:600;line-height:1.5;touch-action:manipulation}
.booking-approved-summary .grid{padding-top:14px}.booking-approved-summary input[readonly]{background:#ffffffa6;color:#4d5c4e}
.booking-optional{padding:12px 20px;border:1px solid #d9ddd2;border-radius:14px;background:#fafaf5}
.booking-optional[open]>summary{margin-bottom:14px}
.booking-optional>p,.booking-connected{font-size:1rem;line-height:1.6}
.booking-connected{padding:16px 20px;background:#e7eee2;border-radius:12px;color:#2d4733}
#direct-summary{font-size:1.0625rem;line-height:1.7;margin-bottom:22px}
@media(max-width:600px){.booking-approved-summary{padding:18px}.booking-optional{padding:10px 16px}}

.payment-methods{border:0;padding:0;margin:24px 0 0;min-width:0}
.payment-methods legend,.transfer-fields legend{font-size:1.125rem;font-weight:650;line-height:1.4}
.payment-methods .option{margin:10px 0;padding:16px}
.payment-methods small{display:block;font-size:.875rem;line-height:1.5;margin-top:5px}
.transfer-fields{min-width:0;border:1px solid #bdcbbf;background:#f7faf5;border-radius:12px;margin-top:22px;padding:18px}
.transfer-fields label{font-size:1rem;line-height:1.55;margin:18px 0}
.transfer-fields input[type=file]{font-size:1rem;width:100%;max-width:100%;padding:10px 0;border:0;background:transparent}
.transfer-fields small{font-size:.875rem;display:block;margin-top:8px}
.bank-details{display:grid;gap:12px;margin:18px 0}.bank-details div{min-width:0}
.bank-details dt{font-size:.875rem;color:#5f6c66}.bank-details dd{margin:2px 0 0;font-size:1rem;font-weight:600;overflow-wrap:anywhere;user-select:text}
.transfer-confirm{display:flex;align-items:flex-start;gap:10px}.transfer-confirm input{margin-top:2px}
.transfer-review h2{font-size:1.5rem}.transfer-review p{overflow-wrap:anywhere}
@media(max-width:480px){.transfer-fields{padding:14px}.payment-methods .option{padding:14px}}

/* One comfortable set of controls across the customer's reservation steps. */
.customer-booking [hidden]{display:none!important}
.customer-booking :is(button,.btn){min-height:52px;min-width:44px;max-width:100%;padding:13px 20px;border:1px solid #294a3b;border-radius:12px;background:#294a3b;color:#fffdf7;font:600 1rem/1.45 system-ui,sans-serif;letter-spacing:0;text-align:center;white-space:normal;overflow-wrap:anywhere;touch-action:manipulation;box-shadow:0 3px 8px #203c3214;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s}
.customer-booking :is(button,.btn).secondary,.customer-booking .breakfast-selection button{background:#fffdf7;color:#294a3b;border-color:#8ca58f;box-shadow:none}
.customer-booking :is(button,.btn):focus-visible{outline:3px solid #9a6a18;outline-offset:4px}
.customer-booking :is(button,.btn):active:not(:disabled){transform:translateY(1px);box-shadow:none}
.customer-booking :is(button,.btn):disabled{opacity:1;background:#e3e8e1;border-color:#c6d1c5;color:#5f7064;box-shadow:none;cursor:not-allowed;transform:none}
.customer-booking .booking-login button{min-height:52px}
.customer-booking .booking-login form>button{width:100%}
.customer-booking .booking-optional>button{margin:4px 6px 6px 0}
.customer-booking #rules-close{width:auto;flex:none;margin:0;padding:10px 16px;min-height:48px}
.customer-booking .rules-heading h2{min-width:0}
.customer-booking #payment-form .option{border:2px solid #c7d1c5;background:#fffdf7;cursor:pointer;align-items:flex-start;touch-action:manipulation}
.customer-booking #payment-form .option>span{min-width:0}
.customer-booking #payment-form .option input{accent-color:#294a3b;margin-top:2px}
.customer-booking #payment-form .option:has(input:checked){border-color:#476a51;background:#edf4e9}
.customer-booking #payment-form .option:has(input:focus-visible){outline:3px solid #9a6a18;outline-offset:3px}
@media(hover:hover){
 .customer-booking :is(button,.btn):hover:not(:disabled){background:#365e4b;border-color:#365e4b;box-shadow:0 4px 10px #203c321f}
 .customer-booking :is(button,.btn).secondary:hover:not(:disabled),.customer-booking .breakfast-selection button:hover:not(:disabled){background:#edf4e9;color:#294a3b;border-color:#476a51;box-shadow:none}
 .customer-booking #payment-form .option:hover{border-color:#7b957a}
}
@media(max-width:600px){
 .customer-booking :is(main,dialog) :is(button,.btn){width:100%}
 .customer-booking .booking-optional>button{margin:4px 0 6px}
 .customer-booking #rules-close,.customer-booking .booking-login [data-close]{width:auto}
 .customer-booking .rules-buttons{width:100%}
}
@media(prefers-reduced-motion:reduce){.customer-booking :is(button,.btn){transition:none}.customer-booking :is(button,.btn):active:not(:disabled){transform:none}}

.booking-inquiry-summary h2,.booking-origen-offer h2{font-size:1.35rem;line-height:1.4;margin:0 0 12px}.booking-inquiry-summary>p{margin:8px 0;line-height:1.6}.booking-summary-amounts{display:grid;gap:10px;margin:18px 0}.booking-summary-amounts>div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #dce3d6;padding:9px 0}.booking-summary-amounts dt{min-width:0}.booking-summary-amounts dd{margin:0;font-weight:650;white-space:nowrap}.booking-inquiry-summary #inquiry-price-status{font-size:.9375rem;color:#4e6257}.booking-origen-offer{padding:22px;border:1px solid #cbdac5;background:#edf2e8;border-radius:16px;margin:20px 0 24px;color:#294a3b}.booking-origen-offer p{margin:8px 0;font-size:1rem;line-height:1.6}.booking-deposit-summary{border-top:1px solid #cbdac5;margin-top:16px;padding-top:14px}.booking-deposit-summary p{margin:8px 0;font-size:.9375rem;line-height:1.5}
@media(max-width:380px){.booking-summary-amounts>div{flex-wrap:wrap;gap:4px}}

.booking-inquiry-form{margin-top:28px}
.inquiry-section{min-width:0;padding-top:18px}
.inquiry-section>legend{padding:0 10px;font:1.4rem/1.4 Georgia,serif;color:#243b32}
.inquiry-section .booking-section-note{margin:0 0 8px;line-height:1.6}
.inquiry-section .booking-inquiry-summary{margin-top:22px;padding-top:22px;border-top:1px solid #dce3d6}
.inquiry-member-access{display:grid;gap:8px;margin:18px 0 22px}
.inquiry-member-access small,.inquiry-section label small{display:block;margin-top:6px;font-size:.875rem;line-height:1.5;font-weight:400}
.inquiry-member-access button{justify-self:start}
.inquiry-origen-note{margin:22px 0;padding:16px 18px}
.inquiry-privacy{font-size:.9375rem;line-height:1.65;margin:18px 0}
.inquiry-submit{width:100%}
.inquiry-next{margin:12px 0 0;font-size:.9375rem;line-height:1.6}
.booking-help{line-height:1.6}
.auth-booking-entry{display:grid;gap:12px;padding:18px;margin-bottom:26px;border:1px solid #c8d0c6;border-radius:12px;background:#edf2e8}
.auth-booking-entry strong{font-size:1.05rem;line-height:1.5}
.auth-booking-entry .button{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;min-height:48px}
.auth-booking-entry p{font-size:.9375rem;line-height:1.5;color:#455b50;margin:0}
