body{margin:0;background:#fff;color:var(--ink);font:1rem/1.55 var(--site-font);letter-spacing:-.012em}
.booking-wrap{width:min(100% - 2.5rem,88rem);margin-inline:auto}
.booking-hero{position:relative;min-height:clamp(24rem,42vw,37rem);padding:5.5rem 1rem 0;display:grid;place-items:center;overflow:hidden;background:var(--forest);color:#fff;text-align:center}
.booking-hero:before{position:absolute;inset:0;content:"";background:linear-gradient(#0007,#0007),url('/assets/hero/bar.webp') center 48%/cover no-repeat}
.booking-hero:after{position:absolute;inset:0;content:"";background:linear-gradient(135deg,#10201788 0 25%,transparent 25% 72%,#10201750 72%)}
.booking-hero .booking-wrap{position:relative;z-index:1}
.booking-kicker{margin:0 0 .7rem;color:var(--lime);font-size:.74rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase}
.booking-hero h1{max-width:none;margin:0;font-size:clamp(3.2rem,7vw,6rem);font-weight:730;line-height:.9;letter-spacing:-.08em;text-transform:uppercase}
.booking-hero .booking-wrap>p:last-child{max-width:40rem;margin:1rem auto 0;color:#f1f2ec;font-size:1rem;line-height:1.65}
.booking-main{padding:clamp(4rem,8vw,7rem) 0;background:#fff}
.booking-options{display:grid;grid-template-columns:1fr;gap:.65rem;margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.booking-option{min-height:7rem;padding:1rem;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.8rem;align-content:start;border:1px solid #dce1d8;background:#f5f6f2;color:var(--ink);transition:background .18s,border-color .18s}
.booking-option>span{grid-row:span 2;color:#749062;font-size:.72rem;font-weight:750}.booking-option strong{font-size:1rem;font-weight:700}.booking-option small{margin-top:.2rem;color:#697166;line-height:1.45}
.booking-option.active{border-color:#426e2b;background:#eef4e8;box-shadow:inset 0 0 0 1px #426e2b}
.booking-layout{display:grid;grid-template-columns:1fr;gap:2.2rem;align-items:start}
.booking-copy{max-width:35rem}.booking-copy h2{max-width:12ch;margin:0 0 1rem;font-size:clamp(2.4rem,4vw,4.25rem);font-weight:680;line-height:.92;letter-spacing:-.08em}
.booking-copy>p:not(.booking-kicker):not(.booking-contact):not(.booking-price){margin:0 0 1.15rem;color:#626a60;font-size:.98rem;line-height:1.72}
.booking-price{margin:1.4rem 0;font-size:2.4rem;font-weight:700;letter-spacing:-.06em}.booking-price span{font-size:.9rem;font-weight:500;letter-spacing:0;color:#697166}
.booking-contact{display:flex;flex-wrap:wrap;gap:.6rem;color:#697166;font-size:.9rem;font-weight:650}.booking-contact a{color:#355c31;text-decoration:underline;text-decoration-color:#a0b18f;text-underline-offset:.25em}
.booking-form{min-width:0;padding:0;display:grid;grid-template-columns:1fr;gap:1.15rem .8rem;background:#fff;border:0;border-radius:0}
.booking-form label{display:grid;gap:.35rem;color:#343b32;font-size:.8rem;font-weight:700}
.booking-form input,.booking-form select,.booking-form textarea{width:100%;min-height:3.1rem;padding:.65rem .8rem;border:0;border-radius:2px;background:#f1f3ee;color:#242a23;font:inherit;font-size:1rem;outline:none}
.booking-form textarea{min-height:6rem;resize:vertical}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{outline:2px solid #82ad56;outline-offset:1px}
.booking-submit{min-height:3.25rem;padding:.85rem 1.4rem;border:0;border-radius:0;background:var(--lime);color:#192315;font:inherit;font-size:.82rem;font-weight:750;cursor:pointer;transition:background .18s,transform .18s}.booking-submit:hover{background:#a8dc55;transform:translateY(-2px)}
.booking-small{margin:0;color:#70766b;font-size:.77rem;line-height:1.5}.booking-alert{margin:0 0 1.25rem;padding:1rem 1.1rem;border-left:3px solid #8ca94f;background:#edf3e8;color:#23421e;font-size:.9rem;line-height:1.5}.booking-alert a{color:#335922;font-weight:700}.booking-alert.error{border-color:#a33d34;background:#f9eeeb;color:#862e24}.booking-alert.success{border-color:#4e842a;background:#e3f3d2}
.booking-form.unavailable{display:block;padding:1.5rem;background:#f5f6f2}.booking-form.unavailable h3{margin:.2rem 0}.booking-form.unavailable p{color:#697166;line-height:1.6}.booking-form.unavailable a{color:#426e2b;font-weight:700}
@media(min-width:640px){.booking-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:760px){.booking-layout{grid-template-columns:minmax(14rem,.7fr) minmax(0,1.7fr);gap:clamp(2rem,8vw,9rem)}.booking-copy{position:sticky;top:2rem;max-width:23rem}}
@media(min-width:900px){.booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-form .full-field{grid-column:1/-1}}
@media(max-width:600px){.booking-wrap{width:min(100% - 2rem,88rem)}.booking-hero{min-height:23rem;padding-top:4.5rem}.booking-hero h1{font-size:clamp(2.7rem,12vw,4.2rem)}.booking-main{padding-block:3rem 4rem}}
@media(max-width:380px){.booking-hero h1{font-size:clamp(2.3rem,12vw,2.8rem)}.booking-copy h2{font-size:clamp(2.2rem,11vw,3rem)}.booking-form label{font-size:.9rem}.booking-submit{min-height:3rem}}
