.reservation-section{display:grid;grid-template-columns:.8fr 1.25fr;align-items:start;gap:70px;padding:90px 0 100px;border-top:1px solid var(--line);margin-top:65px}
.reservation-intro{padding-top:16px}.reservation-intro h2{font-size:clamp(44px,4.2vw,64px);line-height:1.05;margin:24px 0}.reservation-intro>p:not(.kicker){font-size:14px;color:var(--muted);line-height:1.8}.reservation-intro h2 em{color:var(--accent)}
.reservation-photo{margin-top:38px;position:relative}.reservation-photo img{width:100%;height:280px;border-radius:130px 130px 12px 12px;object-position:center 60%;outline:1px solid #0000000d}.reservation-photo span{display:block;font:italic 20px Georgia,serif;text-align:center;padding:16px 0}.reservation-details{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--muted);padding-top:12px;border-top:1px solid var(--line)}
.reservation-card{background:#fffcf7;border:1px solid #ddcbbd;border-radius:24px;padding:32px;box-shadow:0 4px 8px #612c3203,0 18px 60px #612c3207;min-width:0}.reservation-card [hidden]{display:none!important}.reservation-card-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.reservation-wordmark{font:italic 28px Georgia,serif;letter-spacing:-.04em}.reservation-demo{font-size:9px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:99px;padding:5px 9px;white-space:nowrap}.reservation-disclaimer{font-size:10px;color:var(--muted);margin:10px 0 26px}
.reservation-progress{list-style:none;margin:0 0 30px;padding:0 0 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}.reservation-progress li{display:flex;align-items:center;gap:7px}.reservation-progress li>span{font-size:11px;font-variant-numeric:tabular-nums;border:1px solid var(--line);border-radius:50%;width:23px;height:23px;display:grid;place-items:center}.reservation-progress [aria-current=step]{font-weight:650;color:var(--ink)}.reservation-progress [aria-current=step]>span{background:var(--accent);border-color:var(--accent);color:white}
.reservation-step h3{font-size:30px;line-height:1.2;margin-bottom:24px}.reservation-step h3:focus,.booking-success h3:focus{outline:0}.reservation-fields{display:grid;grid-template-columns:1.15fr 1fr;gap:18px}.reservation-fields label,.booking-request{font-size:11px;font-weight:600;display:flex;flex-direction:column;gap:9px}.reservation-fields input,.reservation-fields select,.booking-request textarea{width:100%;min-width:0;background:#fffaf2;border:1px solid var(--line);border-radius:12px;padding:12px;min-height:48px;font-size:13px;font-weight:400;color:var(--ink);color-scheme:light}.reservation-fields input:focus,.reservation-fields select:focus,.booking-request textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.quick-dates{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:16px 0 25px}.quick-dates button{background:none;display:flex;align-items:center;flex-direction:column;border:1px solid transparent;border-radius:12px;min-height:62px;padding:8px 2px;line-height:1.5;color:var(--ink);font-variant-numeric:tabular-nums}.quick-dates small{font-size:10px;color:var(--muted)}.quick-dates strong{font-size:16px;font-weight:550}.quick-dates button[aria-pressed=true]{background:var(--accent);color:white}.quick-dates button[aria-pressed=true] small{color:#fff}.quick-dates button:hover:not([aria-pressed=true]){border-color:var(--line);background:#f4eadf}
.booking-time-heading{display:flex;gap:12px;justify-content:space-between;align-items:baseline;margin-bottom:12px}.booking-time-heading h4{font:600 11px Inter,Arial,sans-serif;margin:0}.booking-time-heading span{font-size:10px;color:var(--muted)}.booking-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.booking-slots button{border:1px solid var(--line);border-radius:12px;background:transparent;min-height:48px;font-size:13px;font-variant-numeric:tabular-nums;transition:background-color .15s,border-color .15s}.booking-slots button:hover:enabled:not([aria-pressed=true]){border-color:var(--accent);background:#f4eadf}.booking-slots button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:white}.booking-slots button:disabled{background:repeating-linear-gradient(-45deg,#f7f1e8,#f7f1e8 4px,#faf6ef 4px,#faf6ef 8px);color:#8c7673;opacity:.65;text-decoration:line-through}.reservation-actions{border-top:1px solid var(--line);padding-top:22px;margin-top:26px;display:flex;align-items:center;justify-content:space-between;gap:14px}.reservation-actions>span{font-size:11px;max-width:160px;color:var(--muted)}.reservation-actions .cta{white-space:nowrap;padding:13px 24px;min-height:48px}.reservation-card .cta:disabled{background:#e8dcd1;color:#887672;opacity:1}.booking-back{min-height:44px;background:none;font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:7px 0}.booking-empty{font-size:12px;padding:18px;background:#f3e8dc;border-radius:12px;color:var(--ink)}.booking-step-description{color:var(--muted);font-size:12px;margin:-10px 0 22px}.booking-recap{background:#f5ece2;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:24px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-recap dt{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}.booking-recap dd{font-size:13px;margin:0;font-weight:550}.booking-request{margin-top:20px}.booking-request span{font-weight:400;color:var(--muted)}.booking-request textarea{resize:vertical;min-height:78px}.booking-success{text-align:center;padding:5px 0 12px}.booking-success>svg{width:56px;height:56px;margin:0 auto 18px;stroke:var(--accent);stroke-width:1.4;fill:none}.booking-success>p.kicker{margin-bottom:15px;font-size:9px}.booking-success h3{font-size:36px;line-height:1.15;margin-bottom:24px}.booking-success .booking-recap{text-align:left}.booking-success>p:not(.kicker){font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:25px}
@media(max-width:1050px){.reservation-section{gap:30px;grid-template-columns:.7fr 1.2fr}.reservation-card{padding:25px}.reservation-photo img{height:230px}.reservation-actions .cta{padding:13px 19px}}
@media(max-width:760px){.reservation-section{grid-template-columns:1fr;padding:42px 0 55px;margin-top:40px;gap:26px}.reservation-intro{padding:0}.reservation-intro h2{font-size:43px;margin:17px 0}.reservation-intro>p:not(.kicker){font-size:13px}.reservation-photo,.reservation-details{display:none}.reservation-card{padding:22px 18px;border-radius:20px}.reservation-wordmark{font-size:26px}.reservation-progress{font-size:10px;gap:5px;margin-bottom:24px}.reservation-progress li{gap:5px}.reservation-progress li>span{height:20px;width:20px;font-size:10px}.reservation-step h3{font-size:27px}.reservation-fields{gap:12px;grid-template-columns:1fr 1fr}.reservation-fields label{font-size:10px}.reservation-fields input,.reservation-fields select{padding:10px;font-size:12px}.quick-dates{gap:3px;margin-bottom:23px}.quick-dates button{min-height:58px}.booking-slots{gap:7px}.booking-slots button{font-size:12px}.reservation-actions{gap:10px}.reservation-actions .cta{font-size:11px;padding:12px 19px}.reservation-actions>span{font-size:10px;max-width:115px}.booking-recap{padding:15px}.booking-success h3{font-size:32px}}
@media(prefers-reduced-motion:reduce){.reservation-card *{transition:none!important}}
