:root{color-scheme:light;--paper:#f8f5ef;--ink:#152b2c;--muted:#617370;--gold:#aa8142;--line:#d9ded6;--green:#234e46}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 system-ui,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.res-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 5vw;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-size:.85rem;font-weight:750;letter-spacing:.09em}.brand img{width:54px;height:54px;border-radius:50%}.brand small{display:block;font-size:.65rem;font-weight:400;letter-spacing:0;color:var(--muted)}.back{font-size:.8rem}main{max-width:1400px;margin:auto;padding:42px 4vw}.eyebrow{font-size:.68rem;font-weight:750;letter-spacing:.2em;color:var(--gold)}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.1}h1{font-size:clamp(2.3rem,4vw,4rem);margin:12px 0}h2{font-size:1.5rem;margin:12px 0 22px}.intro>p:last-child{color:var(--muted)}.steps{display:flex;gap:8px;padding:24px 0 8px;flex-wrap:wrap}.steps button{border:0;border-bottom:2px solid transparent;background:none;padding:12px 16px;color:var(--muted);font-size:.78rem}.steps button[aria-current]{border-color:var(--gold);color:var(--ink)}#notice{min-height:24px;font-size:.82rem;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.panel,.calendar-shell{border:1px solid var(--line);background:#fffdf9;border-radius:16px;padding:24px}.summary{position:sticky;top:20px}.domes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.domes button{padding:18px;text-align:start;border:1px solid var(--line);border-radius:14px;background:#fffdf9}.domes button.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.domes strong{display:block;font:1.35rem Georgia,serif}.domes small{color:var(--muted)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-toolbar h2{font-size:1.1rem;margin:0}.calendar-toolbar button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent}.months{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px}.month h3{text-align:center;font-size:1.1rem}.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday{text-align:center;font-size:.65rem;color:var(--muted);padding:10px 0}.day{border:0;border-radius:8px;background:transparent;min-height:60px;padding:5px 1px;font-size:.8rem;color:var(--ink)}.day small{display:block;font-size:.55rem;white-space:nowrap}.day:hover:not(:disabled){background:#ece8dc}.day.in-range{background:#e4ece6}.day.selected{background:var(--green);color:white}.day.blocked{color:#919893;text-decoration:line-through}.legend,.muted{font-size:.7rem;color:var(--muted)}label{display:block;font-size:.75rem;margin:14px 0}input,select,textarea{display:block;width:100%;min-width:0;min-height:44px;margin-top:6px;border:1px solid var(--line);border-radius:8px;padding:10px;background:white;color:var(--ink)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fields label{min-width:0}.primary,.secondary{min-height:44px;padding:12px 16px;border-radius:8px;border:0;font-weight:650}.primary{width:100%;background:var(--green);color:white;margin-top:16px}.secondary{background:#ece8dc;color:var(--ink)}#quote dl{margin:20px 0}#quote dl div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.78rem}dd{margin:0;text-align:end;font-weight:650}#quote dl div.total{font-size:1rem;padding:15px 0}.consent{display:flex;align-items:flex-start;gap:10px;line-height:1.5}.consent input{width:20px;min-height:20px;height:20px;margin:0;flex-shrink:0}.methods{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.methods button{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:white}.methods button.selected{border-color:var(--green);background:#e4ece6}.policy{padding:16px;background:#f1ede3;font-size:.78rem;border-radius:10px}footer{padding:30px 4vw;text-align:center;font-size:.75rem;border-top:1px solid var(--line)}#success-links a{display:block;padding:14px;border:1px solid var(--line);border-radius:8px;margin:10px 0}#review-details{overflow-wrap:anywhere}@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr) 300px}.months{grid-template-columns:1fr}.month:nth-child(2){display:none}}@media(max-width:760px){.res-header{padding:14px}.brand{font-size:.66rem;letter-spacing:.03em}.brand img{width:40px;height:40px}.brand small{max-width:160px}.back{font-size:.65rem}main{padding:24px 14px}.layout{grid-template-columns:1fr}.summary{position:static}.months{grid-template-columns:1fr}.panel,.calendar-shell{padding:16px}.day{min-height:62px}.day small{font-size:.62rem}.fields{gap:8px}input,select,textarea{font-size:16px}.steps button{padding:10px 4px;font-size:.67rem}.steps{justify-content:space-between}.legend{line-height:1.5}.intro br{display:none}.domes button{padding:14px}}
:root .intro br { display: initial; }
@media (max-width:330px) { .day small { font-size:.5rem; } h1 { font-size:2rem; } }
.prelaunch{border-inline-start:4px solid var(--gold);background:#fff8e8;font-size:.85rem}
.prelaunch a{font-weight:700;text-underline-offset:3px}

/* El motor de reservas conserva la misma identidad que la portada y los portales. */
:root{--paper:#f3efe7;--ink:#182029;--muted:#5f6462;--gold:#815315;--gold-light:#e5c178;--line:rgba(24,32,41,.15);--green:#071018}
body{font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}
h1,h2,h3,.domes strong{font-family:Baskerville,"Baskerville Old Face","Hoefler Text",Georgia,serif}
.res-header{background:#05080b;color:#f3efe7;border-bottom-color:rgba(229,193,120,.22)}
.brand small{color:#cfc4b5}
.back{color:#e5c178;text-underline-offset:4px}
.eyebrow{color:#815315}
.steps button[aria-current]{border-color:#815315;color:#071018;font-weight:800}
.panel,.calendar-shell,.domes button{background:#fffdf8;border-color:var(--line);border-radius:6px}
.domes button.selected{border-color:#815315;background:#fffbf2;box-shadow:inset 0 0 0 1px #815315}
.calendar-toolbar button:hover:not(:disabled),.day:hover:not(:disabled){background:#f1e7d4}
.day.in-range{background:#f0e6d4}
.day.selected{background:#071018;color:#fffdf8}
.day.blocked{color:#8b908c}
.primary{background:#071018;color:#fffdf8;border-radius:4px}
.primary:hover:not(:disabled){background:#1b2c39}
.secondary{background:#ece4d5;border-radius:4px}
.methods button.selected{border-color:#815315;background:#f6edda;color:#071018}
.policy{background:#eee5d6}
.policy{margin:20px 0;overflow-wrap:anywhere}
.policy strong{display:block;font:1.15rem Georgia,serif;margin-bottom:8px}
.policy dl{margin:12px 0}
.policy dl div{padding:10px 0;border-top:1px solid var(--line)}
.policy dt{font-weight:700}
.policy dd{margin:4px 0 0;text-align:start;font-weight:400}
.summary{background:#0d1821;color:#f3efe7;border-color:#283846;box-shadow:0 20px 45px rgba(7,16,24,.12)}
.summary .eyebrow{color:#e5c178}
.summary .muted,.summary small{color:#c8d0d3}
.summary label{color:#f3efe7}
.summary input,.summary select{background:#fffdf8;color:#182029;border-color:#b8bec0}
.summary #quote dl div{border-color:rgba(243,239,231,.2)}
.summary #quote dl div.total{color:#e5c178}
.summary .primary{background:#e5c178;color:#071018}
.summary .primary:hover:not(:disabled){background:#f1d69a}
.summary .secondary{background:#263847;color:#f3efe7}
.prelaunch{background:#fff8e8;border-color:#815315}
footer{background:#05080b;color:#d1d8da;border-color:rgba(229,193,120,.22)}
footer a{color:#e5c178}
@media(max-width:760px){.summary{box-shadow:none}.res-header{gap:10px}.back{white-space:nowrap}}
.payment-group-note{font-size:.78rem;font-weight:750;color:#815315;margin:12px 0 4px}
.reservation-alternatives{margin:16px 0;padding:14px;border:1px solid var(--line);background:#fbf6eb;border-radius:6px}
.reservation-alternatives summary{cursor:pointer;font-weight:750;color:#815315}
.reservation-alternatives .methods{margin-bottom:0}
.reservation-alternatives .methods[hidden]{display:none}
.crypto-toggle{font-weight:750}
#crypto-methods{margin-top:10px;padding-inline-start:12px;border-inline-start:2px solid #c9a45f}
.methods button:disabled{opacity:.6}
#quote .split-plan{margin:14px 0 4px;padding:12px 14px;border:1px solid rgba(229,193,120,.4);border-radius:8px;background:rgba(229,193,120,.08);font-size:.8rem}
#quote .split-plan summary{cursor:pointer;color:#e5c178;font-weight:750;list-style-position:inside}
#quote .split-plan summary:focus-visible{outline:3px solid #e5c178;outline-offset:3px}
#quote .split-plan p{margin:9px 0}
#quote .split-plan small,#quote .split-unavailable{display:block;color:#b8c4c9;line-height:1.5}
.payment-plan{margin:22px 0;padding:0;border:0}
.payment-plan legend{font:1.45rem Georgia,serif;margin-bottom:12px}
.plan-option{display:flex;align-items:flex-start;gap:12px;margin:10px 0;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;cursor:pointer;font-size:.92rem}
.plan-option:has(input:checked){border-color:#815315;box-shadow:inset 0 0 0 1px #815315;background:#fbf4e5}
.plan-option input{width:20px;height:20px;min-height:20px;margin:2px 0 0;flex:none;accent-color:#815315}
.plan-option strong,.plan-option small{display:block}
.plan-option small{margin-top:4px;color:#5f6462;font-size:.78rem;line-height:1.5}
#payment-plan-note{margin:8px 0;color:#5f6462;font-size:.78rem}
textarea:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.review-price-summary{margin:18px 0;padding:14px 16px;border:1px solid #c9a45f;border-radius:8px;background:#fbf4e5}
.review-price-summary dl{margin:0}
.review-price-summary dl div{display:flex;justify-content:space-between;gap:12px;padding:6px 0}
.review-price-summary dt,.review-price-summary dd{margin:0;font-size:.86rem}
.review-price-summary dd{text-align:end;font-weight:750;white-space:nowrap}
.review-price-summary dl div:nth-child(2){border-top:1px solid #d6c6a8;color:#071018;font-weight:800}
.review-price-summary small{display:block;margin-top:8px;color:#5f6462;line-height:1.4}
#success-copy{font-size:1rem;line-height:1.7;max-width:75ch}
#success-links a[data-reservation-link="pay"]{background:#071018;color:#fffdf8;border-color:#071018;font-weight:750;text-decoration:none;text-align:center}
#success-links a[data-reservation-link="pay"]:hover{background:#1b2c39}
#success-links a[data-reservation-link="portal"]{display:inline-block;border:0;padding:6px 0;margin:12px 0;font-size:.85rem;color:#815315}
.success-help{margin:18px 0 0;color:#5f6462;font-size:.83rem;line-height:1.6}
.success-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;padding:0;list-style:none;counter-reset:success-step}.success-progress li{position:relative;min-height:104px;padding-block:16px 14px;padding-inline:46px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.success-progress li:before{counter-increment:success-step;content:counter(success-step);position:absolute;top:14px;inset-inline-start:14px;display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;font-weight:800}.success-progress li.done,.success-progress li.current{border-color:#7d9e92}.success-progress li.done:before{content:'✓';background:var(--green);color:#fff}.success-progress li.current{background:#edf4f0}.success-progress strong,.success-progress span{display:block}.success-progress span{margin-top:5px;color:var(--muted);font-size:.75rem;line-height:1.4}#payment-options-status{min-height:1.4em;color:var(--muted)}
.booking-created .intro,.booking-created .steps,.booking-created #notice,.booking-created .summary{display:none}
.booking-created .layout{display:block;max-width:780px;margin-inline:auto}
.booking-created #success-step{padding:clamp(24px,5vw,44px)}
@media(max-width:760px){.success-progress{grid-template-columns:1fr}.success-progress li{min-height:0}.steps button{min-height:44px;font-size:.75rem}}
.policy #reservation-policy-status{margin:10px 0;line-height:1.6}
.policy #reservation-policy-status:focus{outline:2px solid var(--gold);outline-offset:3px}
.policy #retry-booking-terms{margin:4px 0 12px;min-height:44px}
@media(max-width:760px){.policy #retry-booking-terms{width:100%}}

/* Two-stage checkout: keep the guest form and payment review together. */
body.public-reservar .booking-details-stage .layout{grid-template-columns:minmax(0,1fr);max-width:760px;margin-inline:auto}
.booking-details-stage .summary{display:none}
.booking-details-stage #guest-step{border-end-start-radius:0;border-end-end-radius:0;border-bottom:0;padding-bottom:4px}
.booking-details-stage #review-step{border-start-start-radius:0;border-start-end-radius:0;border-top:0;padding-top:4px}
.booking-details-stage #review-step h2{padding-top:24px;border-top:1px solid var(--line)}
.booking-details-stage #review-details{font-size:.85rem;color:var(--muted);line-height:1.5}
.booking-details-stage .fields label{margin-block:8px 4px}
.booking-details-stage #guest-step textarea{min-height:68px}
.booking-details-stage .optional-guest{margin:14px 0;border:1px solid var(--line);border-radius:7px;background:#f5f8f6}
.booking-details-stage .optional-guest summary{padding:12px 14px;cursor:pointer;font-size:.85rem;font-weight:650;color:#294b43}
.booking-details-stage .optional-guest[open]{padding:0 14px 14px}
.booking-details-stage .optional-guest[open] summary{padding-inline:0}
.booking-details-stage #payment-plan{margin-block:20px 12px}
.booking-details-stage .plan-option{margin-block:8px;padding:12px 14px}
.booking-details-stage #submit-booking{margin-top:12px}
@media(max-width:560px){.booking-details-stage .fields{grid-template-columns:1fr}.booking-details-stage #guest-step,.booking-details-stage #review-step{padding-inline:18px}}
.booking-recovery{margin:16px 0 24px;border-inline-start:4px solid #815315;max-width:780px;overflow-wrap:anywhere}
.booking-recovery h2{margin-bottom:10px}
.booking-recovery p{margin-block:10px 16px;max-width:68ch}
.recovery-actions{display:flex;flex-wrap:wrap;gap:10px}
.recovery-actions button{min-height:48px;white-space:normal;text-align:start}
.edit-booking-dates{border:0;background:transparent;color:#294b43;min-height:44px;padding:8px 0;text-decoration:underline;text-underline-offset:4px;font-weight:650}
.booking-created .booking-recovery{display:none}
@media(max-width:560px){.recovery-actions button{width:100%}.booking-recovery{padding:18px}.review-price-summary dl div{flex-wrap:wrap}.review-price-summary dd{margin-inline-start:auto}}
