.booking-modal{--booking-primary: var(--theme-primary, #9E1A1A);--booking-primary-light: var(--theme-primary-light, #D94249);--booking-primary-dark: var(--theme-primary-dark, #681111);--booking-primary-glow: var(--theme-primary-glow, rgba(158, 26, 26, .5));--booking-gold: var(--theme-secondary-highlight, #D8C590);--booking-gold-bright: var(--text-strong, #E8C65F);--booking-bg: var(--bg-gradient-middle, #292B2E);--booking-bg-dark: var(--overlay-dark, #17181B);--booking-bg-light: var(--overlay-light, #3B3034);--booking-bg-hover: var(--theme-hover-bg, #232427);--booking-text: var(--text-primary, #F8F6F1);--booking-text-secondary: var(--text-secondary, #D9D6D1);--booking-text-muted: var(--text-muted, #A5A5A4);--booking-text-light: var(--text-light, #EFEBE5);--booking-border: var(--border-secondary, rgba(255, 255, 255, .18));--booking-border-accent: var(--border-accent, rgba(217, 66, 73, .64));--booking-font-heading: var(--font-header, "Cinzel", serif);--booking-font-body: var(--font-body, "Crimson Text", serif);--booking-radius: 8px;position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:24px;color:var(--booking-text);font-family:var(--booking-font-body);font-size:var(--font-size, 1.1rem);line-height:1.5}.booking-modal.is-open{display:flex}.booking-modal,.booking-modal *{box-sizing:border-box}.booking-modal__backdrop{position:absolute;inset:0;background:#0a0a0cd1;backdrop-filter:blur(var(--blur-strength, 15px));-webkit-backdrop-filter:blur(var(--blur-strength, 15px))}.booking-modal__dialog{position:relative;z-index:1;width:min(100%,600px);max-height:min(90vh,900px);overflow-y:auto;overscroll-behavior:contain;padding:34px;background:linear-gradient(145deg,var(--bg-gradient-start, #3A2529) 0%,var(--booking-bg) 48%,var(--bg-gradient-end, #1D1F22) 100%);color:var(--booking-text);border:1px solid var(--border-primary, rgba(158, 26, 26, .78));border-radius:var(--booking-radius)}.booking-modal__close{position:absolute;top:13px;right:15px;z-index:2;display:grid;place-items:center;width:38px;height:38px;padding:0;color:var(--booking-text-muted);background:transparent;border:1px solid transparent;border-radius:50%;font-family:Arial,sans-serif;font-size:29px;line-height:1;cursor:pointer;transition:color .16s ease,background .16s ease,border-color .16s ease}.booking-modal__close:hover{color:var(--booking-text);background:var(--booking-bg-hover);border-color:var(--booking-border-accent)}.booking-modal__close:focus-visible{outline:2px solid var(--booking-gold);outline-offset:3px}.booking-modal__header{position:relative;padding:5px 30px 25px 0;border-bottom:1px solid var(--booking-border);text-align:center}.booking-modal__eyebrow{margin:0 0 10px;color:var(--booking-gold);font-family:var(--booking-font-heading);font-size:.72rem;font-weight:700;letter-spacing:.2em;line-height:1.6;text-transform:uppercase}.booking-modal__header h2{margin:0 0 12px;color:var(--booking-text);font-family:var(--booking-font-heading);font-size:clamp(1.65rem,5vw,2.2rem);font-weight:700;line-height:1.25;text-shadow:0 2px 14px rgba(0,0,0,.35)}.booking-modal__header>p:last-child{max-width:420px;margin:0 auto;color:var(--booking-text-secondary);font-family:var(--booking-font-body);font-size:1.05rem;line-height:1.5}.booking-modal__section{padding:23px 0;border-bottom:1px solid var(--booking-border)}.booking-modal__section-title{display:flex;align-items:center;gap:10px;margin:0 0 17px;color:var(--booking-gold);font-family:var(--booking-font-heading);font-size:1rem;font-weight:700;line-height:1.5}.booking-modal__section-title:before{content:"\2660";color:var(--booking-primary-light);font-size:1.05rem}.booking-modal__event-card{padding:17px 18px;background:linear-gradient(120deg,var(--overlay-banner, rgba(158, 26, 26, .32)),rgba(0,0,0,.12));border:1px solid var(--booking-border-accent);border-left:3px solid var(--booking-primary-light);border-radius:5px}.booking-modal__field-label{display:block;margin-bottom:7px;color:var(--booking-text-muted);font-family:var(--booking-font-heading);font-size:.67rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.booking-modal__event-name{margin:0;color:var(--booking-text);font-family:var(--booking-font-heading);font-size:1.12rem;font-weight:700;line-height:1.5}.booking-modal__event-details{margin:7px 0 0;color:var(--booking-text-secondary);font-size:1rem;line-height:1.5}.booking-modal__field{margin-bottom:19px}.booking-modal__field:last-child{margin-bottom:0}.booking-modal__field label{display:block;margin-bottom:8px;color:var(--booking-text-light);font-family:var(--booking-font-body);font-size:1.05rem;font-weight:700}.booking-modal__field input,.booking-modal__field select{display:block;width:100%;min-height:47px;padding:11px 13px;color:var(--booking-text);background:#0f1012b8;border:1px solid var(--booking-border);border-radius:5px;font-family:var(--booking-font-body);font-size:1rem;line-height:1.4;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.booking-modal__field input::placeholder{color:var(--booking-text-muted);opacity:.85}.booking-modal__field input:hover,.booking-modal__field select:hover{border-color:var(--booking-border-accent)}.booking-modal__field input:focus,.booking-modal__field select:focus,.booking-modal__quantity-control input:focus{outline:none;border-color:var(--booking-primary-light);box-shadow:0 0 0 2px var(--booking-primary-glow),0 0 14px #9e1a1a1f}.booking-modal__field select option{color:var(--booking-text);background:var(--booking-bg-dark)}.booking-modal__help{display:block;margin-top:7px;color:var(--booking-text-muted);font-size:.9rem;line-height:1.45}.booking-modal__quantity-control{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:8px;align-items:center}.booking-modal__quantity-button{display:grid;place-items:center;min-height:47px;padding:0;color:var(--booking-gold);background:var(--booking-bg-hover);border:1px solid var(--booking-border);border-radius:5px;font-family:var(--booking-font-body);font-size:1.5rem;line-height:1;cursor:pointer;transition:color .16s ease,background .16s ease,border-color .16s ease}.booking-modal__quantity-button:hover:not(:disabled){color:var(--booking-text);background:var(--booking-primary-dark);border-color:var(--booking-primary-light)}.booking-modal__quantity-button:disabled{opacity:.4;cursor:not-allowed}.booking-modal__quantity-control input{width:100%;min-width:0;min-height:47px;padding:8px;color:var(--booking-text);background:#0f1012b8;border:1px solid var(--booking-border);border-radius:5px;font-family:var(--booking-font-body);font-size:1.1rem;text-align:center}.booking-modal__quantity-control input::-webkit-inner-spin-button,.booking-modal__quantity-control input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.booking-modal__quantity-control input[type=number]{appearance:textfield;-moz-appearance:textfield}.booking-modal__guest{padding-top:1rem}.booking-modal__preference{display:flex;align-items:flex-start;gap:13px;padding:17px;background:linear-gradient(135deg,#9e1a1a29,#0000001f);border:1px solid var(--booking-border);border-radius:5px;cursor:pointer;transition:background .16s ease,border-color .16s ease}.booking-modal__preference:hover{background:var(--booking-hover-bg, rgba(158, 26, 26, .22));border-color:var(--booking-border-accent)}.booking-modal__preference>input{flex:0 0 auto;width:19px;height:19px;margin:3px 0 0;accent-color:var(--booking-primary-light);cursor:pointer}.booking-modal__checkbox-copy{display:grid;gap:7px}.booking-modal__checkbox-copy strong{color:var(--booking-gold);font-family:var(--booking-font-heading);font-size:.91rem;font-weight:700;line-height:1.5}.booking-modal__checkbox-copy>span{color:var(--booking-text-secondary);font-family:var(--booking-font-body);font-size:1rem;line-height:1.55}.booking-modal__summary{display:grid;gap:13px;padding:23px 0}.booking-modal__summary-row,.booking-modal__summary-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.booking-modal__summary-row{color:var(--booking-text-secondary);font-size:1rem}.booking-modal__summary-total{padding-top:16px;border-top:1px solid var(--booking-border-accent);color:var(--booking-text);font-family:var(--booking-font-heading);font-size:1rem;font-weight:700}.booking-modal__summary-total span:last-child{color:var(--booking-gold-bright);font-family:var(--booking-font-heading);font-size:1.5rem;font-weight:700;text-shadow:0 0 18px rgba(232,198,95,.12)}.booking-modal__summary-note{margin:0;color:var(--booking-text-muted);font-size:.92rem;line-height:1.5}.booking-modal__error{margin:0 0 16px;padding:12px 14px;color:#ffd9d9;background:#9e1a1a3d;border:1px solid var(--booking-primary-light);border-left:3px solid var(--booking-primary-light);border-radius:4px;font-size:.95rem;line-height:1.5}.booking-modal__submit{position:relative;display:block;width:100%;min-height:54px;padding:14px 20px;color:#fff;background:linear-gradient(135deg,var(--booking-primary-light),var(--booking-primary),var(--booking-primary-dark));border:1px solid var(--booking-primary-light);border-radius:5px;box-shadow:0 4px 18px #9e1a1a3d,inset 0 1px #ffffff1f;font-family:var(--booking-font-heading);font-size:.88rem;font-weight:700;letter-spacing:.055em;line-height:1.5;text-align:center;cursor:pointer;transition:filter .16s ease,transform .16s ease,box-shadow .16s ease}.booking-modal__submit:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 6px 25px var(--booking-primary-glow),inset 0 1px #ffffff26;transform:translateY(-1px)}.booking-modal__submit:active:not(:disabled){transform:translateY(0)}.booking-modal__submit:focus-visible{outline:2px solid var(--booking-gold);outline-offset:4px}.booking-modal__submit:disabled{opacity:.6;cursor:wait;transform:none}.booking-modal__fine-print{margin:13px 0 0;color:var(--booking-text-muted);font-size:.85rem;line-height:1.5;text-align:center}.booking-modal__guests{display:grid;gap:1rem;min-width:0}.booking-modal__guest{box-sizing:border-box;min-width:0;padding:1.25rem;border:1px solid var(--border-primary, rgba(158, 26, 26, .78));border-left:4px solid var(--theme-primary, #9E1A1A);border-radius:10px;background:var(--overlay-dark, #17181B);box-shadow:0 3px 10px #0000002e;contain:layout style}.booking-modal__guest-title{margin:0 0 1rem;padding:0 0 .75rem;border-bottom:1px solid var(--border-secondary, rgba(255, 255, 255, .18));color:var(--text-strong, #E8C65F);font-family:var(--font-header, Georgia, serif);font-size:1.1rem;letter-spacing:.04em}.booking-modal__guest-fields{display:grid;gap:.85rem;min-width:0}.booking-modal__guest .booking-modal__field{min-width:0;margin:0}.booking-modal__guest input[type=text],.booking-modal__guest input[type=email],.booking-modal__guest input[type=tel]{box-sizing:border-box;width:100%;max-width:100%}.booking-modal__guest .booking-modal__preference{display:flex;align-items:flex-start;gap:.75rem;margin-top:1rem;padding:.9rem;border:1px solid var(--border-secondary, rgba(255, 255, 255, .18));border-radius:7px;background:var(--overlay-medium, #252428);cursor:pointer}.booking-modal__guest .booking-modal__preference input{flex:0 0 auto;margin-top:.25rem}.booking-modal__guest .booking-modal__checkbox-copy{display:grid;gap:.3rem;min-width:0}.booking-modal__guest .booking-modal__checkbox-copy strong{color:var(--text-primary, #F8F6F1)}.booking-modal__guest .booking-modal__checkbox-copy>span{color:var(--text-secondary, #D9D6D1);line-height:1.4}.booking-modal__guest,.booking-modal__guest-fields{transition:none}.booking-modal__guests,.booking-modal__guest{animation:none!important;transition:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.booking-modal__guest{contain:layout style;box-shadow:none!important;transform:none!important}.booking-modal__guest input,.booking-modal__guest select,.booking-modal__guest textarea,.booking-modal__guest button{transition:none!important;animation:none!important}@media(max-width:600px){.booking-modal{align-items:center;padding:10px}.booking-modal__dialog{width:100%;max-height:94dvh;padding:25px 20px;border-radius:6px}.booking-modal__header{padding:8px 23px 21px}.booking-modal__header h2{font-size:1.65rem}.booking-modal__section{padding:19px 0}.booking-modal__section-title{font-size:.94rem}.booking-modal__preference{padding:14px}.booking-modal__submit{padding:13px 14px;font-size:.78rem}.booking-modal__guest{padding:1rem}}@media(prefers-reduced-motion:reduce){.booking-modal__dialog{animation:none}.booking-modal__close,.booking-modal__quantity-button,.booking-modal__field input,.booking-modal__field select,.booking-modal__submit{transition:none}}
