.booking-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(35px,6vw,90px);align-items:start;padding-top:12px}
.booking-intro h2{font-size:clamp(38px,4.2vw,60px);margin:24px 0;color:var(--wine)}
.booking-intro>p:not(.eyebrow){font-size:15px;line-height:1.9;color:var(--muted);max-width:450px;margin-bottom:22px}
.booking-intro>.text-link{font-size:13px;margin-top:10px}
.booking-shell{background:#eee6df;padding:clamp(24px,3.5vw,46px);border-radius:36px;min-width:0}
.booking-progress{list-style:none;padding:0;margin:0 0 32px;display:flex;gap:18px;border-bottom:1px solid #d8c7bf;padding-bottom:22px}
.booking-progress li{font-family:var(--serif);font-size:24px;color:#978984;display:flex;gap:8px;align-items:center;flex:1}
.booking-progress span{font-family:var(--sans);font-size:10px;line-height:1.5}
.booking-progress [aria-current]{color:var(--wine)}
.booking-progress .is-complete{color:#735650}
.booking-loading{padding:65px 0;text-align:center;font-size:14px;color:var(--muted)}
.booking-topics{border:0;padding:0;margin:0 0 28px;min-width:0}
.booking-topics legend{font-size:13px;line-height:1.7;color:var(--ink);margin-bottom:13px}
.booking-topics>div{display:flex;gap:8px;flex-wrap:wrap}
.booking-topics button{padding:12px 16px;min-height:44px;border:1px solid #cdbdb6;border-radius:999px;background:transparent;color:var(--wine);font:500 12px var(--sans);cursor:pointer}
.booking-topics button[aria-pressed=true]{background:var(--wine);color:var(--paper);border-color:var(--wine)}
.booking-month{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}
.booking-month h3{font-family:var(--serif);font-size:28px;color:var(--wine);margin:0;text-transform:capitalize}
.booking-month>div{display:flex;gap:4px}
.booking-month button{width:44px;height:44px;border:1px solid #d5c4bc;border-radius:50%;background:transparent;color:var(--wine);font-size:26px;cursor:pointer}
.booking-month button:disabled{opacity:.35;cursor:default}
.booking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.booking-weekday{text-align:center;font-size:10px;color:var(--muted);padding:0 0 12px}
.booking-calendar button{width:100%;aspect-ratio:1;min-height:36px;border:1px solid #dccbc3;border-radius:50%;background:var(--paper);color:var(--wine);font:500 13px var(--sans);cursor:pointer}
.booking-calendar button[aria-pressed=true]{background:var(--wine);color:var(--paper);border-color:var(--wine)}
.booking-calendar button:disabled{background:transparent;border-color:transparent;color:#a99c97;cursor:default}
.booking-calendar-key{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);margin:17px 0 27px}
.booking-calendar-key>span{width:8px;height:8px;border-radius:50%;background:var(--wine)}
.booking-times{border-top:1px solid #d8c7bf;padding-top:22px}
.booking-times h4{font:500 13px var(--sans);color:var(--wine);line-height:1.7;margin:0 0 14px}
.booking-times>div{display:flex;gap:8px;flex-wrap:wrap}
.booking-times button{min-height:44px;padding:11px 13px;border-radius:999px;border:1px solid #cdbdb6;background:var(--paper);font:500 12px var(--sans);color:var(--wine);cursor:pointer}
.booking-times button[aria-pressed=true]{background:var(--wine);color:var(--paper)}
.booking-times>p{font-size:12px;line-height:1.8;color:var(--muted)}
.booking-times a{text-decoration:underline;text-underline-offset:3px}
.booking-status{font-size:12px;line-height:1.8;color:var(--wine);margin:18px 0 0}
.booking-status:empty{margin:0}
.booking-next{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:25px;flex-wrap:wrap}
.booking-next>span{font-size:11px;color:var(--muted)}
.booking-content .button{font-size:12px;min-height:48px;padding:13px 21px}
.booking-content .button:disabled{opacity:.4;cursor:default;transform:none}
.booking-summary{padding-bottom:24px;border-bottom:1px solid #d8c7bf;margin-bottom:24px}
.booking-summary h3{font-family:var(--serif);font-size:29px;line-height:1.25;color:var(--wine);margin:15px 0 10px}
.booking-summary>p:last-child{font-size:13px;line-height:1.8;color:var(--wine)}
.booking-summary>p:last-child span{display:inline-block;color:var(--muted)}
.booking-form>p:first-child{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:20px}
.booking-form label{display:block;font-size:12px;line-height:1.7;color:var(--wine);margin-top:19px}
.booking-form input{display:block;width:100%;min-height:49px;padding:12px 15px;font:14px var(--sans);border:1px solid #d2bfb6;border-radius:12px;background:var(--paper);color:var(--ink);margin-top:7px}
.booking-optional{font-size:10px;color:var(--muted);margin-left:5px}
.booking-email-note{display:block;font-size:11px;color:var(--muted);line-height:1.7;margin-top:8px}
.booking-confirmation .booking-email-confirmation{padding:15px 18px;border-radius:15px;background:var(--paper);font-size:12px;overflow-wrap:anywhere}
.booking-data-note{font-size:10px;line-height:1.8;color:var(--muted);margin-top:19px}
.booking-form>.button{margin-top:24px;width:100%}
.booking-back{display:block;margin:22px auto 0;background:transparent;border:0;color:var(--wine);cursor:pointer;font:12px var(--sans)}
.booking-unavailable{text-align:center;padding:20px 0 15px}
.booking-ornament{font-family:Georgia,serif;font-size:58px;color:#b29084;display:block;margin-bottom:21px}
.booking-unavailable h3{font-family:var(--serif);font-size:clamp(34px,4vw,52px);line-height:1.12;color:var(--wine);margin:22px 0}
.booking-unavailable>p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted);max-width:380px;margin:0 auto 26px}
.booking-unavailable .text-link{display:block;margin:20px auto 0;border:0;background:transparent;font:12px var(--sans);color:var(--wine);cursor:pointer}
.booking-confirmation{outline:none}
.booking-check{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--wine);color:var(--paper);font-size:22px;margin-bottom:25px}
.booking-confirmation>h3{font-family:var(--serif);font-size:clamp(42px,5vw,65px);line-height:1.12;color:var(--wine);margin:21px 0 30px}
.booking-confirmation>p:not(.eyebrow){font-size:14px;line-height:1.8;color:var(--muted);margin:20px 0}
.booking-confirmation .booking-address{color:var(--wine)}
.booking-confirmation>.text-link{font-size:12px;margin-top:15px}
@media(max-width:950px){.booking-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px}.booking-shell{padding:25px}.booking-progress{gap:9px}.booking-progress li{gap:6px;font-size:22px}.booking-progress span{font-size:9px}.booking-calendar{gap:3px}}
@media(max-width:700px){.booking-layout{display:block;padding-top:0}.booking-intro{margin-bottom:36px}.booking-intro h2{font-size:43px}.booking-intro>p:not(.eyebrow){font-size:14px}.booking-shell{padding:25px 21px;border-radius:28px}.booking-progress{margin-bottom:25px}.booking-progress li{font-size:22px}.booking-progress span{font-size:9px}.booking-topics button{font-size:11px;padding:11px 12px}.booking-month h3{font-size:27px}.booking-calendar{gap:4px}.booking-calendar button{font-size:12px}.booking-next{display:block}.booking-next>.button{margin-top:15px;width:100%}.booking-summary h3{font-size:27px}}
@media(max-width:360px){.booking-shell{padding:22px 16px}.booking-calendar{gap:2px}.booking-calendar button{min-height:30px}.booking-month h3{font-size:24px}.booking-progress{gap:6px}.booking-progress li{font-size:21px}.booking-progress span{font-size:8px}.booking-topics button{font-size:10px;padding:10px 11px}.booking-times button{font-size:11px}}
