.booking-modal{padding:0;border:1px solid #c9a84c40;border-radius:22px;width:min(850px,calc(100% - 48px));max-width:850px;max-height:90dvh;background:#f5f0eb;color:#271b18;box-shadow:0 30px 100px #16050566;overflow:auto;overscroll-behavior:contain}.booking-modal::backdrop{background:#170707b8;backdrop-filter:blur(7px)}.booking-modal[open]{animation:booking-enter .24s ease-out}.booking-modal-layout{display:grid;grid-template-columns:.85fr 1.3fr;min-width:0}.booking-modal-intro{padding:55px 30px 35px;background:linear-gradient(145deg,#4a0e0e,#260908);color:#f5f0eb;display:flex;flex-direction:column;min-width:0}.booking-modal-intro .eyebrow{color:#dbc18c;font-size:9px;letter-spacing:2px}.booking-modal-intro h2{font-family:Lora,Georgia,serif;font-size:38px;font-weight:400;line-height:1.18;letter-spacing:-1.4px;margin:15px 0 25px}.booking-modal-intro h2 em{color:#dfc18c}.booking-modal-intro>p:not(.eyebrow){font-size:12px;color:#d9c6b6;line-height:1.9}.booking-modal-hours{margin-top:auto;padding-top:40px}.booking-modal-hours span{display:block;font-size:8px;letter-spacing:1.4px;color:#d1b581}.booking-modal-hours strong{display:block;font-size:18px;font-weight:400;letter-spacing:1px;margin-top:8px}.booking-modal-intro>a{font-size:11px;color:#e4d5c5;margin-top:23px}.booking-modal .booking-card{padding:45px 34px 28px;background:#f5f0eb;min-width:0;margin:0}.booking-modal .booking-card>.eyebrow{padding-right:25px;font-size:9px;margin-bottom:25px}.booking-modal .booking-card label{font-size:11px;line-height:1.6}.booking-modal .booking-card input,.booking-modal .booking-card select{margin-bottom:22px;min-height:44px;font-size:14px;color:#4a0e0e}.booking-modal .form-row{gap:18px}.booking-modal .form-note{font-size:10px;line-height:1.8;margin-top:10px}.booking-modal .booking-card .pill-button{min-height:48px;padding:14px 20px;font-size:12px}.booking-modal-close{position:absolute;right:12px;top:10px;width:40px;height:40px;background:#f5f0eb;border:1px solid #4a0e0e20;border-radius:50%;color:#4a0e0e;display:grid;place-items:center;font:27px/1 Arial;cursor:pointer;z-index:2}.booking-modal-close:hover{background:#e8ddd0}.booking-fab{position:fixed;bottom:24px;left:24px;z-index:29;display:flex;align-items:center;gap:10px;padding:13px 18px;border-radius:40px;background:#4a0e0e;color:#f5f0eb;border:1px solid #c9a84c77;box-shadow:0 5px 25px #0002;font:11px Montserrat,Arial,sans-serif;min-height:48px}.booking-fab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.contact-booking-invite{padding:40px;background:#ece3d8}.contact-booking-invite h3{font-size:30px;line-height:1.3;color:#4a0e0e;margin-bottom:25px}.contact-booking-invite>p:not(.eyebrow){font-size:13px;color:#7b6860}.contact-booking-invite .pill-button{margin:10px 0 18px}.contact-map-section h2{margin-bottom:22px}.contact-map-section>p{font-size:13px;color:#7b6860;margin-bottom:30px}.contact-map{height:430px}@keyframes booking-enter{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:600px){.booking-modal{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:94dvh;border-radius:24px 24px 0 0}.booking-modal-layout{grid-template-columns:minmax(0,1fr)}.booking-modal-intro{padding:25px 25px 20px}.booking-modal-intro .eyebrow{margin-bottom:10px;font-size:8px}.booking-modal-intro h2{font-size:28px;margin:4px 0 8px;line-height:1.2;letter-spacing:-.8px}.booking-modal-intro h2 br{display:none}.booking-modal-intro h2 em:before{content:' '}.booking-modal-intro>p:not(.eyebrow){font-size:11px;margin:0;max-width:270px}.booking-modal-hours,.booking-modal-intro>a{display:none}.booking-modal .booking-card{padding:22px 25px 25px}.booking-modal .booking-card>.eyebrow{display:none}.booking-modal .booking-card input,.booking-modal .booking-card select{font-size:16px;padding:9px 0 12px;margin-bottom:18px;min-height:44px}.booking-modal .booking-card label{font-size:10px}.booking-modal .form-row{gap:16px}.booking-modal .form-note{font-size:10px}.booking-modal-close{top:15px;right:15px;background:#ffffff10;border-color:#ffffff44;color:#fff;width:38px;height:38px}.booking-modal-close:hover{background:#ffffff22}.booking-fab{left:15px;bottom:15px;padding:12px 16px;min-height:46px}.contact-booking-invite{padding:28px}.contact-booking-invite h3{font-size:25px}.contact-map{height:320px}}@media(prefers-reduced-motion:reduce){.booking-modal[open]{animation:none}}
@media(max-width:600px){.booking-modal{position:fixed;inset:0;margin:auto;width:calc(100% - 28px);max-width:420px;max-height:calc(100dvh - 32px);border-radius:22px}.booking-modal-layout{grid-template-columns:minmax(0,1fr)}.booking-modal-intro{padding:25px 25px 20px}.booking-modal-intro .eyebrow{margin-bottom:10px;font-size:8px}.booking-modal-intro h2{font-size:28px;margin:4px 0 8px;line-height:1.2;letter-spacing:-.8px}.booking-modal-intro h2 br{display:none}.booking-modal-intro h2 em:before{content:' '}.booking-modal-intro>p:not(.eyebrow){font-size:11px;margin:0;max-width:270px}.booking-modal-hours,.booking-modal-intro>a{display:none}.booking-modal .booking-card{padding:22px 25px 25px}.booking-modal .booking-card>.eyebrow{display:none}.booking-modal .booking-card input,.booking-modal .booking-card select{font-size:16px;padding:9px 0 12px;margin-bottom:18px;min-height:44px}.booking-modal .booking-card label{font-size:10px}.booking-modal .form-row{gap:16px}.booking-modal .form-note{font-size:10px}.booking-modal-close{top:15px;right:15px;background:#ffffff10;border-color:#ffffff44;color:#fff;width:38px;height:38px}.booking-modal-close:hover{background:#ffffff22}.booking-fab{left:15px;bottom:15px;padding:12px 16px;min-height:46px}.contact-booking-invite{padding:28px}.contact-booking-invite h3{font-size:25px}.contact-map{height:320px}}@media(prefers-reduced-motion:reduce){.booking-modal[open]{animation:none}}