.booking-page{background:#f7f2ec;min-height:100vh}.booking-header{border-top:3px solid var(--wine);background:var(--wine)}.booking-contact{color:#9a6d2e;letter-spacing:.04em;background:#fff;justify-content:flex-end;gap:28px;min-height:38px;padding:7px max(24px,50vw - 560px);font-size:12px;font-weight:600;display:flex}.booking-nav{color:#f2d49c;justify-content:space-between;align-items:center;width:min(1120px,100% - 48px);min-height:84px;margin:auto;display:flex}.booking-nav img{width:245px;height:auto}.booking-nav__back{letter-spacing:.08em;text-transform:uppercase;border:1px solid #f2d49ca6;padding:9px 21px;font-size:11px;font-weight:700}.booking-nav__back:hover,.booking-nav__back:focus-visible{color:#fff;border-color:#fff}.booking-intro{color:#fff;text-align:center;background:radial-gradient(circle at 78% 22%, #dca65b7a, transparent 24rem), linear-gradient(118deg, var(--wine-dark), var(--wine) 58%, #9b643c);min-height:335px;padding:72px 24px 98px}.booking-intro .eyebrow{color:#f1d69f}.booking-intro h1{letter-spacing:.02em;text-transform:uppercase;max-width:880px;margin:9px auto 15px;font-family:Donegal One,Georgia,serif;font-size:clamp(32px,5vw,54px);font-weight:400;line-height:1.14}.booking-intro p{max-width:610px;margin:20px auto 0;font-size:16px}.booking-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;width:min(1120px,100% - 48px);margin:-44px auto 90px;display:grid;box-shadow:0 28px 70px #40231c1f}.booking-progress{color:#f8e8c6;background:var(--wine);min-height:570px;padding:45px 36px;position:sticky;top:20px}.booking-progress__eyebrow{color:#eccd90;letter-spacing:.14em;text-transform:uppercase;margin:0 0 25px;font-size:11px;font-weight:700}.booking-progress ol{margin:0;padding:0;list-style:none}.booking-progress li{color:#ffefd399;align-items:center;gap:13px;min-height:50px;font-size:13px;font-weight:600;display:flex;position:relative}.booking-progress li:not(:last-child):after{content:"";background:#f1d69f47;width:1px;height:20px;position:absolute;top:39px;left:14px}.booking-progress li span{border:1px solid;border-radius:50%;flex:none;place-items:center;width:29px;height:29px;font-size:11px;display:grid}.booking-progress li.is-current{color:#fff}.booking-progress li.is-current span{color:var(--wine);background:#f2d49c;border-color:#f2d49c}.booking-progress li.is-complete{color:#f2d49c}.booking-progress li.is-complete span{font-size:0}.booking-progress li.is-complete span:before{content:"✓";font-size:12px}.booking-summary{border-top:1px solid #ffffff2e;margin:34px 0 0;padding-top:25px}.booking-summary div+div{margin-top:17px}.booking-summary dt{color:#ffffff8f;letter-spacing:.1em;text-transform:uppercase;font-size:10px}.booking-summary dd{color:#fff;margin:3px 0 0;font-family:Donegal One,Georgia,serif;font-size:14px;line-height:1.45}.booking-progress__help{color:#ffffffb8;margin:35px 0 0;font-size:11px;line-height:1.6}.booking-progress__help a{color:#f2d49c;text-underline-offset:3px;text-decoration:underline}.booking-panel{background:#fff;min-height:650px;padding:47px clamp(32px,6vw,76px) 68px}.booking-status{border-left:3px solid var(--gold);color:#6d573a;background:#fbf5e9;margin:0 0 28px;padding:13px 16px;font-size:13px}.booking-status[data-kind=error]{color:#7a1735;border-color:var(--wine);background:#fbeef2}.booking-status:focus{outline:2px solid var(--gold);outline-offset:3px}.booking-step{border:0;margin:0;padding:0 0 42px}.booking-step+.booking-step{border-top:1px solid #eadfd6;padding-top:38px}.booking-step:disabled{opacity:.42}.booking-step legend{width:100%;color:var(--wine);margin:0;padding:0;font-family:Donegal One,Georgia,serif;font-size:clamp(22px,3vw,29px);line-height:1.25}.booking-step legend span{color:var(--gold);letter-spacing:.1em;vertical-align:5px;margin-right:9px;font-family:Open Sans,Arial,sans-serif;font-size:11px;font-weight:700}.booking-step__hint{color:var(--muted);margin:10px 0 22px;font-size:13px}.service-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.service-option,.time-option{cursor:pointer;background:#fff;border:1px solid #dfd1c5;transition:border-color .18s,background .18s,box-shadow .18s}.service-option{text-align:left;flex-direction:column;align-items:flex-start;min-height:83px;padding:17px 19px;display:flex}.service-option strong{color:var(--ink);font-family:Donegal One,Georgia,serif;font-size:16px;font-weight:400;line-height:1.35}.service-option span{color:var(--muted);letter-spacing:.04em;margin-top:7px;font-size:11px}.service-option:hover,.time-option:hover{border-color:var(--gold)}.service-option.is-selected,.time-option.is-selected{border-color:var(--wine);box-shadow:inset 0 0 0 1px var(--wine);background:#fbf0f3}.service-option:focus-visible,.time-option:focus-visible,input:focus-visible,textarea:focus-visible,.booking-submit:focus-visible,.booking-again:focus-visible{outline-offset:2px;outline:3px solid #c789296b}.booking-placeholder{background:linear-gradient(100deg,#f5eee8 25%,#fbf8f4 42%,#f5eee8 58%) 0 0/250% 100%;height:83px;animation:1.4s linear infinite booking-shimmer;overflow:hidden}.booking-empty{color:var(--muted);background:var(--cream);grid-column:1/-1;margin:0;padding:20px}.field-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.field{color:var(--ink);gap:7px;font-size:12px;font-weight:600;display:grid}.field--wide{grid-column:1/-1}.field--date{max-width:310px}.field small{color:var(--muted);font-size:10px;font-weight:400}.field input,.field textarea{width:100%;min-height:48px;color:var(--ink);font:inherit;background:#fff;border:1px solid #d8c9bd;border-radius:0;padding:11px 13px}.field textarea{resize:vertical}.time-options{flex-wrap:wrap;gap:9px;display:flex}.time-option{min-width:82px;padding:11px 15px;font-size:13px;font-weight:600}.privacy-check{color:var(--muted);grid-template-columns:20px 1fr;align-items:start;gap:10px;margin:25px 0 21px;font-size:11px;line-height:1.55;display:grid}.privacy-check input{width:17px;height:17px;accent-color:var(--wine);margin:2px 0 0}.privacy-check a{color:var(--wine);text-underline-offset:2px;text-decoration:underline}.booking-submit,.booking-again{border:1px solid var(--wine);color:#fff;background:var(--wine);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;min-height:48px;padding:12px 24px;font-size:11px;font-weight:700}.booking-submit{justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.booking-submit:disabled{cursor:not-allowed;opacity:.55}.booking-submit:not(:disabled):hover,.booking-again:hover{background:var(--wine-dark)}.booking-submit-note{color:var(--muted);text-align:center;margin:10px 0 0;font-size:10px}.booking-confirmation{text-align:center;max-width:590px;margin:18px auto}.booking-confirmation__mark{border:1px solid var(--gold);width:62px;height:62px;color:var(--gold);border-radius:50%;place-items:center;margin:0 auto 24px;font-size:25px;display:grid}.booking-confirmation h2{color:var(--wine);text-transform:uppercase;margin:7px 0 10px;font-size:clamp(27px,4vw,38px)}.booking-confirmation>p:not(.eyebrow){color:var(--muted)}.booking-confirmation dl{text-align:left;border:1px solid #e5d8cd;margin:32px 0}.booking-confirmation dl div{grid-template-columns:145px 1fr;gap:16px;padding:15px 19px;display:grid}.booking-confirmation dl div+div{border-top:1px solid #e5d8cd}.booking-confirmation dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.booking-confirmation dd{color:var(--ink);margin:0;font-family:Donegal One,Georgia,serif}.booking-confirmation .booking-reference{background:var(--cream)}.booking-reference dd{color:var(--wine);letter-spacing:.08em;font-family:Open Sans,Arial,sans-serif;font-size:19px;font-weight:700}.booking-confirmation__note{font-size:12px}.booking-again{margin-top:12px}[hidden]{display:none!important}@keyframes booking-shimmer{to{background-position-x:-250%}}@media (width<=780px){.booking-contact{justify-content:center}.booking-nav{width:min(100% - 32px,1120px);min-height:72px}.booking-nav img{width:190px}.booking-nav__back{padding:7px 12px;font-size:9px}.booking-intro{min-height:300px;padding-top:58px}.booking-layout{grid-template-columns:1fr;width:min(100% - 28px,680px);margin-top:-35px}.booking-progress{min-height:0;padding:28px 26px;position:static}.booking-progress ol{grid-template-columns:repeat(4,1fr);display:grid}.booking-progress li{text-align:center;flex-direction:column;gap:5px;min-height:43px;font-size:9px}.booking-progress li:not(:last-child):after{width:calc(100% - 30px);height:1px;top:14px;left:calc(50% + 15px)}.booking-summary{grid-template-columns:1fr 1fr;gap:20px;display:grid}.booking-summary div+div{margin-top:0}.booking-progress__help,.booking-progress__eyebrow{display:none}.booking-panel{padding:38px clamp(22px,7vw,48px) 55px}}@media (width<=520px){.booking-contact{gap:18px;min-height:34px;font-size:10px}.booking-intro{padding-inline:20px}.booking-intro p{font-size:14px}.booking-layout{width:calc(100% - 18px);margin-bottom:55px}.booking-progress{padding-inline:18px}.booking-progress li{font-size:8px}.booking-progress li span{width:25px;height:25px}.booking-summary{display:none}.booking-panel{padding:32px 19px 45px}.service-options,.field-grid{grid-template-columns:1fr}.field--wide{grid-column:auto}.service-option{min-height:76px}.booking-confirmation dl div{grid-template-columns:1fr;gap:3px}}@media (prefers-reduced-motion:reduce){.booking-placeholder{animation:none}}
