.booking-modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem)}.booking-modal{position:relative;width:min(42rem,100%);max-height:90svh;overflow-y:auto;color:var(--text-main);background:var(--bg-soft);border:1px solid var(--border-soft);border-radius:.5rem;padding:1.5rem;box-shadow:0 2rem 6rem rgba(0,0,0,.35);animation:bookingEnter .55s cubic-bezier(.2,.8,.2,1)}.booking-modal-close{position:absolute;top:1rem;right:1rem;color:var(--base-200);background:transparent;border:1px solid var(--border-soft);border-radius:999px;padding:.5rem .75rem;cursor:pointer}.booking-modal-header{padding-right:5rem;margin-bottom:1.5rem}.booking-modal-header p{color:var(--accent-frost);margin-bottom:.75rem}.booking-modal-header h3{font-size:2rem;letter-spacing:-.04rem}.booking-form{gap:1rem}.booking-form,.booking-form label{display:flex;flex-direction:column}.booking-form label{gap:.45rem;color:var(--base-300)}.booking-form input,.booking-form select,.booking-form textarea{width:100%;color:var(--base-100);background:rgba(242,237,230,.06);border:1px solid var(--border-soft);border-radius:.5rem;padding:.85rem 1rem;font:inherit}.booking-form textarea{resize:vertical}.booking-form input[aria-invalid=true]{border-color:#dc7d64}.booking-form span,.booking-form-error{color:#f2aa96;font-size:.9rem}.booking-form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.booking-confirmation a,.booking-form button[type=submit]{min-height:3.25rem;color:var(--base-500);background:var(--accent-frost);border:1px solid var(--accent-frost);border-radius:999px;padding:0 1.25rem;cursor:pointer;font:inherit;display:inline-flex;align-items:center;justify-content:center}.booking-confirmation{min-height:32rem;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:1rem}.booking-confirmation-mark{width:7rem;height:7rem;border-radius:50%;border:1px solid var(--accent-bronze);display:grid;place-items:center;position:relative;animation:bookingPulse 1.6s ease-in-out infinite}.booking-confirmation-mark:before{content:"";position:absolute;inset:-.75rem;border-radius:50%;border:1px solid rgba(184,150,90,.28);animation:bookingRing 1.6s ease-in-out infinite}.booking-confirmation-mark span{width:2.5rem;height:1.4rem;border-left:3px solid var(--accent-frost);border-bottom:3px solid var(--accent-frost);transform:rotate(-45deg) translate(.2rem,-.1rem)}.booking-confirmation h3{font-size:2.3rem;letter-spacing:0;color:var(--accent-frost)}.booking-confirmation-summary{color:var(--base-200)}.booking-confirmation-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.my-bookings{position:fixed;right:1rem;bottom:1rem;z-index:80}.my-bookings-toggle{color:var(--base-500);background:var(--accent-frost);border:0;border-radius:999px;padding:.9rem 1.1rem;cursor:pointer;font:inherit}.my-bookings-panel{position:absolute;right:0;bottom:4rem;width:min(24rem,calc(100vw - 2rem));max-height:70svh;overflow-y:auto;color:var(--text-main);background:var(--bg-soft);border:1px solid var(--border-soft);border-radius:.5rem;padding:1rem;transform:translateY(1rem);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.my-bookings.open .my-bookings-panel{transform:translateY(0);opacity:1;pointer-events:auto}.my-bookings-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.my-bookings-header button{color:var(--base-200);background:transparent;border:1px solid var(--border-soft);border-radius:999px;padding:.4rem .65rem;cursor:pointer}.my-bookings-empty{color:var(--base-300)}.my-bookings-list{display:flex;flex-direction:column;gap:.75rem}.my-bookings-list article{border:1px solid var(--border-soft);border-radius:.5rem;padding:1rem}.my-bookings-list span{color:var(--accent-frost);font-size:.85rem}.my-bookings-list h3{font-size:1.1rem;letter-spacing:0;margin:.5rem 0}.my-bookings-list p{color:var(--base-300)}@keyframes bookingEnter{0%{opacity:0;transform:translateY(1.5rem) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bookingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes bookingRing{0%{opacity:.9;transform:scale(.88)}to{opacity:0;transform:scale(1.22)}}@media (max-width:1000px){.booking-modal{padding:1rem}.booking-form-row{grid-template-columns:1fr}}