.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;height:100vh;height:-webkit-fill-available;height:100dvh;background-color:#000000bf;display:flex;justify-content:center;align-items:center;z-index:1000;overflow:hidden}.modal-overlay,.modal-overlay .modal-content{transform:translateZ(0);touch-action:manipulation;-webkit-overflow-scrolling:touch}.modal-overlay .modal-content{background:var(--surface)!important;color:var(--text);padding:2rem;border-radius:8px;border:1px solid var(--border);position:relative;width:90%;max-width:500px;max-height:90vh;max-height:-webkit-fill-available;max-height:90dvh;box-shadow:0 4px 32px #000c;-webkit-user-select:none;user-select:none;z-index:1001;overflow-y:auto;overflow-x:hidden}.modal-overlay .modal-content a{margin:0 auto 20px;padding:0 25px 25px;color:var(--accent)!important;transition:color .2s ease}.modal-overlay .modal-content a:hover{color:var(--accent-hover)!important}.modal-overlay .modal-content p.success-message{color:var(--accent)!important;padding-top:40px;text-align:center}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);padding:.5rem;line-height:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-height:44px;min-width:44px;transition:color .2s ease}.modal-close:hover{color:var(--text)}.modal-overlay .modal-content h2{margin-top:0;margin-bottom:1.5rem;color:var(--text);font-size:1.75rem}.form-group{margin-bottom:1.5rem}.modal-overlay .form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-family:var(--font-ui);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.modal-overlay .form-group input{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:4px;font-size:16px;background:var(--surface-2);color:var(--text);font-family:var(--font-body);-webkit-appearance:none;appearance:none;touch-action:manipulation}.modal-overlay .form-group input:focus{outline:2px solid var(--accent);outline-offset:3px;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.submit-button{background-color:var(--accent);color:var(--bg);border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:.82rem;font-family:var(--font-ui);font-weight:700;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;width:100%;transition:background-color .3s ease;-webkit-appearance:none;appearance:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:44px;position:relative;z-index:1002;-webkit-user-select:none;user-select:none}.submit-button:hover{background-color:var(--accent-hover)}@supports (-webkit-touch-callout:none){.modal-overlay{position:sticky}.modal-content,.modal-overlay{-webkit-overflow-scrolling:touch}.modal-content{max-height:90vh;max-height:-webkit-fill-available;max-height:90dvh;overflow-y:auto;transform:translateZ(0);touch-action:manipulation}.submit-button{-webkit-touch-callout:none;-webkit-user-select:none;min-height:44px;min-width:44px;transform:translateZ(0)}body.modal-open{-webkit-overflow-scrolling:touch;position:fixed;width:100%}}body.modal-open{overflow:hidden;position:fixed;width:100%}@supports (-webkit-touch-callout:none){body.modal-open{-webkit-overflow-scrolling:touch;position:fixed;width:100%}}.modal-content form:not(:has(.form-group:has(input[type=password]))) .submit-button{margin-top:.5rem}.modal-content form .form-group:last-of-type{margin-bottom:1rem}.book-page{background:var(--bg);min-height:100vh;padding:4rem 0 5rem;color:var(--text)}.book-page h1{font-size:3rem;font-weight:800;color:var(--text);text-shadow:none;margin-bottom:.5rem;line-height:1.05}.book-intro{color:var(--text-muted);font-size:.95rem;margin-bottom:2.5rem;line-height:1.6}.book-form{max-width:640px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.book-form .form-group{margin-bottom:1.5rem}.book-form .form-group label{display:block;margin-bottom:.4rem;color:var(--text-secondary);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-ui)}.book-form .form-group input,.book-form .form-group select,.book-form .form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.95rem;font-family:var(--font-body);transition:border-color .2s ease,box-shadow .2s ease;appearance:none;-webkit-appearance:none}.book-form .form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2372726A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer}.book-form .form-group select option{background:var(--surface);color:var(--text)}.book-form .form-group input:focus,.book-form .form-group select:focus,.book-form .form-group textarea:focus{outline:2px solid var(--accent);outline-offset:3px;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.book-form .form-group input::placeholder,.book-form .form-group textarea::placeholder{color:var(--text-muted)}.book-form .form-group input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.5;cursor:pointer}.book-form .form-group textarea{resize:vertical;min-height:100px}.field-hint{display:block;margin-top:.3rem;font-size:.78rem;color:var(--text-muted)}.book-submit{background:var(--accent);color:var(--bg);border:none;padding:.85rem 2rem;border-radius:8px;font-size:.82rem;font-weight:700;font-family:var(--font-ui);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:background .2s ease;margin-top:.5rem}.book-submit:hover{background:var(--accent-hover)}.book-submit:disabled{background:var(--border-active);color:var(--text-muted);cursor:not-allowed}.book-submit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.book-success{background:var(--accent-dim);border:1px solid #c8ff1a59;border-radius:8px;color:var(--accent)}.book-error,.book-success{margin-top:1.25rem;padding:1rem 1.25rem;font-size:.95rem}.book-error{background:#ff6b6b1a;border:1px solid #ff6b6b66;border-radius:8px;color:var(--error)}.book-divider{border:none;border-top:1px solid var(--surface-2);margin:2.5rem 0}@media (max-width:640px){.form-row{grid-template-columns:1fr;gap:0}}.booking-modal-content{max-width:680px!important;max-height:90vh;overflow-y:auto}.booking-modal-content h2{color:var(--text);font-size:1.75rem;margin-bottom:.25rem}