:root{--font-heading:"Cormorant Garamond", serif;--font-body:"Geist", sans-serif;--color-plum:#2f2644;--color-off-white:#f7f6f5;--color-lavender:#a394c7}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-body);background:var(--color-off-white);color:var(--color-plum);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}.container{flex-direction:column;justify-content:center;max-width:40rem;min-height:100dvh;margin:0 auto;padding:2rem 1.5rem;display:flex}h1,h2,h3{font-family:var(--font-heading);font-weight:600;line-height:1.2}h1{margin-bottom:.75rem;font-size:2.5rem}h2{margin-bottom:.5rem;font-size:1.75rem}p{margin-bottom:1rem}a{color:var(--color-lavender);text-underline-offset:.15em;text-decoration-thickness:1px;transition:color .15s}a:hover{color:var(--color-plum)}.brand{text-align:center;margin-bottom:2rem}.brand h1{letter-spacing:-.02em;font-size:3rem;font-weight:700}.brand .tagline{color:var(--color-lavender);margin-bottom:2rem;font-size:1.125rem}.cta{background:var(--color-plum);color:var(--color-off-white);font-family:var(--font-body);letter-spacing:.01em;border-radius:.375rem;padding:.875rem 2.25rem;font-size:1rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-block}.cta:hover{background:var(--color-lavender);color:var(--color-off-white)}.message-card{text-align:center;background:#fff;border:1px solid #a394c733;border-radius:.75rem;padding:2rem}.message-card h2{margin-bottom:1rem}.message-card p:last-child{margin-bottom:0}.loading{text-align:center;padding:3rem 0}.loading-dot{background:var(--color-lavender);border-radius:50%;width:.5rem;height:.5rem;margin:0 .25rem;animation:1.4s ease-in-out infinite pulse;display:inline-block}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.not-found{text-align:center}.not-found h1{color:var(--color-lavender);margin-bottom:.25rem;font-size:4rem}.not-found p{margin-bottom:2rem;font-size:1.125rem}.booking-progress{justify-content:space-between;gap:.25rem;margin-bottom:2rem;display:flex}.booking-progress__step{flex-direction:column;flex:1;align-items:center;gap:.375rem;display:flex}.booking-progress__dot{background:#a394c74d;border-radius:50%;width:.75rem;height:.75rem;transition:background .2s}.booking-progress__step--active .booking-progress__dot{background:var(--color-plum);box-shadow:0 0 0 3px #2f264426}.booking-progress__step--completed .booking-progress__dot{background:var(--color-lavender)}.booking-progress__label{text-transform:uppercase;letter-spacing:.05em;color:#2f264480;font-size:.6875rem}.booking-progress__step--active .booking-progress__label{color:var(--color-plum);font-weight:600}.booking-progress__step--completed .booking-progress__label{color:var(--color-lavender)}.booking-form{background:#fff;border:1px solid #a394c733;border-radius:.75rem;padding:2rem}.booking-form h2{margin-bottom:.5rem}.booking-form__hint{color:#2f264499;margin-bottom:1.5rem}.booking-form__field{margin-bottom:1rem}.booking-form__field label{margin-bottom:.375rem;font-size:.875rem;font-weight:500;display:block}.booking-form__input{width:100%;font-family:var(--font-body);color:var(--color-plum);background:#fff;border:1px solid #a394c74d;border-radius:.375rem;padding:.75rem 1rem;font-size:1rem;transition:border-color .15s}.booking-form__input:focus{outline:2px solid var(--color-lavender);outline-offset:2px;border-color:var(--color-lavender)}.booking-form__row{gap:.5rem;display:flex}.booking-form__select{font-family:var(--font-body);color:var(--color-plum);appearance:auto;background:#fff;border:1px solid #a394c74d;border-radius:.375rem;flex:1;padding:.75rem;font-size:1rem}.booking-form__select:focus{outline:2px solid var(--color-lavender);outline-offset:2px}.booking-form__radio-group{gap:1.5rem;display:flex}.booking-form__radio{cursor:pointer;align-items:center;gap:.5rem;font-size:1rem;display:flex}.booking-form__radio input[type=radio]{width:1.125rem;height:1.125rem;accent-color:var(--color-plum)}.booking-form__error{color:#c44;margin:.75rem 0;font-size:.875rem}.booking-form__field--error .booking-form__input{border-color:#c44}.booking-form__error-text{color:#c44;margin-top:.25rem;font-size:.8125rem;display:block}.booking-form__submit{cursor:pointer;text-align:center;border:none;width:100%;margin-top:1.5rem}.booking-form__submit:disabled{opacity:.6;cursor:not-allowed}.booking-form__link{width:100%;color:var(--color-lavender);font-family:var(--font-body);cursor:pointer;text-align:center;text-underline-offset:.15em;background:0 0;border:none;margin-top:.75rem;font-size:.875rem;text-decoration:underline;display:block}.booking-form__link:hover{color:var(--color-plum)}.otp-inputs{justify-content:center;gap:.5rem;margin:1.5rem 0;display:flex}.otp-input{text-align:center;width:3rem;height:3.5rem;font-size:1.5rem;font-weight:600;font-family:var(--font-body);color:var(--color-plum);border:1px solid #a394c74d;border-radius:.375rem}.otp-input:focus{outline:2px solid var(--color-lavender);outline-offset:2px;border-color:var(--color-lavender)}.slot-date-group{margin-bottom:1.5rem}.slot-date-heading{margin-bottom:.75rem;font-size:1.125rem}.slot-chips{flex-wrap:wrap;gap:.5rem;display:flex}.slot-chip{border:1px solid var(--color-lavender);color:var(--color-plum);font-family:var(--font-body);cursor:pointer;background:#fff;border-radius:2rem;padding:.5rem 1rem;font-size:.875rem;transition:all .15s}.slot-chip:hover{background:#a394c71a}.slot-chip--selected{background:var(--color-plum);color:var(--color-off-white);border-color:var(--color-plum)}.slot-chip--selected:hover{background:var(--color-plum)}.payment-timer{text-align:center;color:var(--color-plum);background:#a394c71a;border-radius:.375rem;margin-bottom:1.5rem;padding:.75rem;font-size:.9375rem;font-weight:500}.payment-timer--urgent{color:#c44;background:#cc44441a}.confirmation{text-align:center}.confirmation__icon{background:var(--color-lavender);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:4rem;height:4rem;margin:0 auto 1.25rem;display:flex}.confirmation__heading{margin-bottom:1.5rem;font-size:2rem}.confirmation__details{text-align:left;background:#fff;border:1px solid #a394c733;border-radius:.75rem;margin-bottom:1.5rem;padding:1.5rem}.confirmation__detail-row{color:var(--color-plum);align-items:flex-start;gap:.75rem;padding:.5rem 0;display:flex}.confirmation__detail-row svg{color:var(--color-lavender);flex-shrink:0;margin-top:.125rem}.confirmation__map-link{margin-bottom:1.5rem;display:inline-block}.confirmation__next-steps{text-align:left;color:#2f2644b3;font-size:.9375rem}.confirmation__next-steps p{margin-bottom:.5rem}.failed{text-align:center}.failed__heading{margin-bottom:1rem;font-size:1.5rem}.failed__reference{background:#a394c71a;border-radius:.375rem;margin-top:1.5rem;padding:1rem;font-size:.9375rem}
