.booking-container{max-width:800px;margin:0 auto}@media (width>=769px){.booking-page-wrapper .page-header{padding-bottom:24px}.booking-page-wrapper .section{padding-top:0}.booking-container{border:1px solid var(--color-border);background:#fff;border-radius:12px;margin-top:0;margin-bottom:80px;padding:64px 48px;box-shadow:0 4px 30px #00000005}.booking-nav{width:100%;max-width:600px;margin:32px auto 0}.booking-nav .btn-outline{letter-spacing:.3px;cursor:pointer;align-items:center;transition:color .2s;display:inline-flex;color:var(--color-text-light)!important;text-transform:none!important;background:0 0!important;border:none!important;min-width:auto!important;padding:0!important;font-size:.9375rem!important;font-weight:500!important}.booking-nav .btn-outline:before{content:"← ";margin-right:6px;font-family:inherit}.booking-nav .btn-outline:hover{text-decoration:underline;color:var(--color-accent)!important}.booking-nav .btn-primary:after{content:" →";margin-left:6px;font-family:inherit}}.header-duration-hint{color:var(--color-text-light);letter-spacing:.5px;align-items:center;gap:8px;margin-top:14px;font-size:.875rem;display:inline-flex}.header-duration-hint .clock-icon{width:16px;height:16px;color:var(--color-accent-gold)}.step-indicator{justify-content:space-between;max-width:550px;margin:0 auto 48px;display:flex;position:relative}.step-indicator:before{content:"";background:var(--color-border);z-index:1;height:1px;position:absolute;top:18px;left:28px;right:28px}.step-mobile-label{display:none}.step-indicator-item{z-index:2;flex-direction:column;flex:1;align-items:center;max-width:100px;display:flex;position:relative}.step-circle{width:36px;height:36px;font-family:var(--font-heading);border:1.5px solid var(--color-border);color:var(--color-text-light);z-index:2;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.875rem;transition:all .3s;display:flex}.step-circle.active,.step-circle.completed{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.step-label{color:var(--color-text-light);letter-spacing:.5px;text-transform:uppercase;text-align:center;white-space:nowrap;margin-top:10px;font-size:.75rem;font-weight:500}.step-label.active{color:var(--color-accent-gold);font-weight:600}.step-content{min-height:400px}.step-content h2{text-align:center;text-transform:uppercase;letter-spacing:.5px}.step-subtitle{color:var(--color-text-light);text-align:center;margin-bottom:32px;font-size:.9375rem}.step-content .decorative-line-left{margin:16px auto}.step-loading,.step-error{text-align:center;color:var(--color-text-light);padding:48px}.step-error{color:#b91c1c}.service-type-list{flex-direction:column;gap:16px;max-width:600px;margin:0 auto 32px;display:flex}.service-type-card{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;padding:20px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.service-type-card.selected{border-color:var(--color-accent);background:var(--color-bg-warm-light);box-shadow:0 4px 20px #856d5814}.card-header-flex{align-items:center;gap:16px;width:100%;display:flex}.icon-circle{background:var(--color-bg-warm);width:44px;height:44px;color:var(--color-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-circle .service-icon-svg{width:28px;height:28px}.text-area{text-align:left;flex:1}.text-area h3{font-family:var(--font-heading);letter-spacing:.5px;text-transform:uppercase;color:var(--color-text);margin-bottom:4px;font-size:.9375rem;font-weight:600}.text-area p{color:var(--color-text-light);font-size:.8125rem;line-height:1.45}.status-indicator{color:var(--color-text-light);justify-content:center;align-items:center;display:flex}.status-indicator .chevron-icon{width:18px;height:18px;color:var(--color-border)}.checked-circle{background:var(--color-accent);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.checked-circle .checkmark-svg{width:14px;height:14px}.duration-inline-section{border-top:1px solid var(--color-border);text-align:left;margin-top:20px;padding-top:18px}.duration-inline-section h4{text-transform:uppercase;color:var(--color-accent-gold);letter-spacing:1px;margin-bottom:12px;font-size:.75rem;font-weight:600}.duration-options-flex{gap:12px;width:100%;display:flex}.duration-card{border:1.5px solid var(--color-border);cursor:pointer;font-family:var(--font-body);background:#fff;border-radius:6px;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:16px;transition:all .25s;display:flex;position:relative}.duration-card:hover{border-color:var(--color-accent-gold)}.duration-card.selected{border-color:var(--color-accent);background:var(--color-bg-warm-light)}.duration-card .duration-time{color:var(--color-text);margin-bottom:4px;font-size:.875rem;font-weight:600}.duration-card .duration-price{font-family:var(--font-heading);color:var(--color-accent-gold);font-size:1.0625rem;font-weight:500}.radio-circle{border:1.5px solid var(--color-border);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:absolute;top:10px;right:10px}.duration-card.selected .radio-circle{border-color:var(--color-accent)}.radio-dot{background:var(--color-accent);border-radius:50%;width:8px;height:8px}.calendar{max-width:400px;margin:0 auto 32px}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendar-nav-btn{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);font-size:1rem;font-family:var(--font-body);background:0 0;border-radius:4px;padding:8px 14px;transition:all .2s}.calendar-nav-btn:hover:not(:disabled){border-color:var(--color-accent-gold);color:var(--color-accent-gold)}.calendar-nav-btn:disabled{opacity:.3;cursor:not-allowed}.calendar-month{font-family:var(--font-heading);font-size:1.0625rem;font-weight:500}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-day-header{text-align:center;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px;padding:8px 0;font-size:.75rem;font-weight:600}.calendar-day{aspect-ratio:1;font-family:var(--font-body);color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:.875rem;transition:all .2s;display:flex}.calendar-day:hover:not(.disabled):not(.selected){background:var(--color-bg-warm)}.calendar-day.today{color:var(--color-accent-gold);font-weight:700}.calendar-day.selected{background:var(--color-accent-gold);color:#fff;font-weight:600}.calendar-day.disabled{color:var(--color-border);cursor:not-allowed}.calendar-day.empty{cursor:default}.time-slots-section{text-align:center;margin-bottom:32px}.time-slots-section h3{margin-bottom:16px;font-size:1rem}.slots-loading,.slots-empty{color:var(--color-text-light);padding:16px;font-size:.9375rem}.time-slots-grid{grid-template-columns:repeat(4,1fr);gap:10px;max-width:500px;margin:0 auto;display:grid}.time-slot{border:1px solid var(--color-border);font-family:var(--font-body);cursor:pointer;background:#fff;border-radius:4px;padding:12px 8px;font-size:.9375rem;transition:all .2s}.time-slot.available:hover:not(.selected){border-color:var(--color-accent-gold);background:var(--color-bg-warm)}.time-slot.selected{border-color:var(--color-accent-gold);background:var(--color-accent-gold);color:#fff;font-weight:600}.time-slot:focus{outline:none}.booking-form{max-width:500px;margin:0 auto}.booking-form .form-group{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.booking-form label{text-transform:uppercase;letter-spacing:1px;color:var(--color-text);font-size:.8125rem;font-weight:600}.booking-form input,.booking-form textarea{border:1px solid var(--color-border);font-family:var(--font-body);color:var(--color-text);background:var(--color-bg-warm-light);border-radius:4px;padding:14px 18px;font-size:1rem;transition:border-color .3s,box-shadow .3s}.booking-form input:focus,.booking-form textarea:focus{border-color:var(--color-accent-gold);outline:none;box-shadow:0 0 0 3px #a782591a}.booking-form textarea{resize:vertical}.form-error{color:#b91c1c;font-size:.8125rem}.form-hint{color:var(--color-text-light);font-size:.8125rem}.form-success{color:#15803d;font-size:.8125rem}.booking-form input.postcode-input-invalid{border-color:#b91c1c}.booking-form input.postcode-input-invalid:focus{border-color:#b91c1c;box-shadow:0 0 0 3px #b91c1c1f}.booking-form input.postcode-input-valid{border-color:#15803d}.booking-form input.postcode-input-valid:focus{border-color:#15803d;box-shadow:0 0 0 3px #15803d1f}.booking-nav-single{justify-content:flex-end}.postcode-form{max-width:420px;margin:0 auto}.postcode-form .booking-nav.booking-nav-single{justify-content:center;width:100%}.postcode-form .booking-nav.booking-nav-single .btn{width:100%;max-width:none}.postcode-input-wrapper{align-items:center;display:flex;position:relative}.postcode-input-wrapper .input-icon{width:18px;height:18px;color:var(--color-accent-gold);pointer-events:none;position:absolute;left:18px}.postcode-input-wrapper .postcode-input{width:100%;padding-left:48px!important}.postcode-suggestions{z-index:10;border:1px solid var(--color-border);background:#fff;border-radius:4px;max-height:240px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 16px #00000014}.postcode-suggestion-item{text-align:left;width:100%;font-family:var(--font-body);color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:10px 14px;font-size:.9375rem;transition:background .15s;display:block}.postcode-suggestion-item:hover,.postcode-suggestion-item:focus{background:var(--color-bg-warm);color:var(--color-accent-gold);outline:none}.booking-summary{background:var(--color-bg-warm-light);border:1px solid var(--color-border);border-radius:4px;margin-bottom:32px;padding:32px}.summary-section{border-bottom:1px solid var(--color-border);margin-bottom:24px;padding-bottom:24px}.summary-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.summary-section h3{font-size:.8125rem;font-family:var(--font-body);text-transform:uppercase;letter-spacing:1.5px;color:var(--color-accent-gold);margin-bottom:12px;font-weight:600}.summary-row{justify-content:space-between;padding:6px 0;display:flex}.summary-label{color:var(--color-text-light);font-size:.9375rem}.summary-value{color:var(--color-text);text-align:right;font-size:.9375rem;font-weight:500}.summary-price{font-family:var(--font-heading);color:var(--color-accent-gold);font-size:1.125rem}.payment-note{color:var(--color-text-light);margin-top:12px;font-size:.8125rem;font-style:italic}.booking-error{text-align:center;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-bottom:16px;padding:16px;font-size:.9375rem}.booking-coming-soon{border:1px solid var(--color-border);background:var(--color-bg-warm-light);text-align:center;max-width:680px;margin:0 auto;padding:64px 48px;box-shadow:0 18px 50px #3a2a1f14}.booking-coming-soon-mark{border:1px solid var(--color-accent-gold);width:64px;height:64px;color:var(--color-accent-gold);font-family:var(--font-heading);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 24px;font-size:1.75rem;display:flex}.booking-coming-soon h2{margin-bottom:0}.booking-coming-soon .decorative-line{margin:18px auto 24px}.booking-coming-soon p{max-width:540px;color:var(--color-text-light);margin:0 auto}.booking-coming-soon-note{font-size:.9rem;margin-top:14px!important}.turnstile-verification{flex-direction:column;align-items:center;display:flex}.turnstile-widget iframe{margin:24px auto 0}.turnstile-status{color:var(--color-text-light);text-align:center;margin-top:8px;font-size:.8125rem}.turnstile-status:empty{display:none}.booking-success{text-align:center;padding:48px 24px}.success-icon{background:var(--color-accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 24px;font-size:1.75rem;display:flex}.booking-success h2{margin-bottom:0}.booking-success .decorative-line{margin:16px auto 20px}.booking-success p{color:var(--color-text-light);margin-bottom:8px}.success-date{font-family:var(--font-heading);margin-top:8px;font-size:1.125rem;font-weight:500;color:var(--color-text)!important}.success-note{margin-top:16px;font-size:.875rem;margin-bottom:32px!important}.booking-nav{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:32px;padding-top:24px;display:flex}.booking-nav .btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=768px){.booking-coming-soon{padding:48px 24px}.booking-page-wrapper .page-header{padding-bottom:16px}.booking-page-wrapper .section{padding-top:16px}.step-indicator{max-width:100%;margin-bottom:24px}.step-indicator:before{left:20px;right:20px}.step-mobile-label{text-align:center;color:var(--color-accent-gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:32px;font-size:.8125rem;font-weight:600;display:block}.step-label{display:none}.step-line{width:24px;margin:0 6px}.booking-nav{gap:12px}.booking-nav .btn{flex:1;min-width:0;padding-inline:14px}.booking-nav-confirm{align-items:stretch}.booking-nav-confirm .btn{letter-spacing:.65px;white-space:nowrap;height:60px;min-height:60px;padding:10px 8px;font-size:clamp(.72rem,3.4vw,.875rem);line-height:1.2}.booking-nav.booking-nav-single{justify-content:center}.booking-nav.booking-nav-single .btn{flex:1;width:100%;max-width:none}.time-slots-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}.summary-row{flex-direction:column;gap:2px}.summary-value{text-align:left}}.required-asterisk{color:#b91c1c;margin-left:4px;font-weight:700}
