:root{--rs-primary: #72A98F}.rs-loader{display:flex;justify-content:center;align-items:center;height:100vh;opacity:.5}rs-visit-reservation-wizard{display:flex;flex-direction:column;gap:1rem}rs-visit-reservation-wizard .wizard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}rs-visit-reservation-wizard .wizard-header .step-title{margin-bottom:0}rs-visit-reservation-wizard .wizard-header .step-description{margin-bottom:0}rs-visit-reservation-wizard .wizard-header rs-steps li.page-item:not(.disabled){cursor:pointer}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates rs-date-slot.selected .card{border:1px solid var(--rs-primary)}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates rs-date-slot .card-header{display:flex;justify-content:center;align-items:center}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates rs-date-slot .card-header .date-slot-title{font-size:1.2rem;font-weight:700}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates rs-date-slot .card-body{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates rs-date-slot .card-body .available-spots{font-size:2rem;font-weight:700}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates rs-date-slot .card-body .available-spots-text{font-size:1rem;text-align:center}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .available-dates rs-date-slot .card-body button{width:100%;margin-top:1rem}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .time-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .time-slots rs-time-slot.selected .card{border:1px solid var(--rs-primary)}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .time-slots rs-time-slot .card-header{display:flex;justify-content:center;align-items:center}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .time-slots rs-time-slot .card-header .time-slot-title{font-size:1.2rem;font-weight:700}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .time-slots rs-time-slot .available-spots-text{font-size:1rem;text-align:center}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .time-slots rs-time-slot.complete .available-spots-text{color:red}rs-visit-reservation-wizard .wizard-content rs-visit-moments-list .time-slots button.booking-button{width:100%;margin-top:1rem}rs-visit-reservation-wizard .wizard-content .selected-time-slot{display:flex;flex-direction:row;justify-content:flex-end;gap:1rem;font-size:1rem;font-weight:700;margin-bottom:1rem}rs-visit-reservation-wizard .wizard-content rs-contact-data{display:grid;grid-template-columns:1fr 1fr;row-gap:1rem;column-gap:1.5rem;grid-template-rows:auto}rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-field .form-label.invalid,rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-text-area .form-label.invalid{color:red}rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-field .validation-placeholder,rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-text-area .validation-placeholder{height:20px;margin:2px 4px;font-size:smaller}rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-field .validation-placeholder.pristine,rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-text-area .validation-placeholder.pristine{display:none}rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-field .required-indicator,rs-visit-reservation-wizard .wizard-content rs-contact-data rs-form-text-area .required-indicator{margin:0 4px}rs-visit-reservation-wizard .wizard-content rs-contact-data #contact-name{grid-column:1;grid-row:1}rs-visit-reservation-wizard .wizard-content rs-contact-data #contact-last-name{grid-column:2;grid-row:1}rs-visit-reservation-wizard .wizard-content rs-contact-data #contact-email{grid-column:1;grid-row:2}rs-visit-reservation-wizard .wizard-content rs-contact-data #contact-phone{grid-column:2;grid-row:2}rs-visit-reservation-wizard .wizard-content rs-contact-data #contact-info{grid-column:1/3;grid-row:3}rs-visit-reservation-wizard .wizard-footer{display:flex;justify-content:space-between;gap:8px}ul.error-list{list-style:none;padding:0;margin:0}ul.error-list li:not(:last-child){margin-bottom:10px}ul.error-list li .error-title{font-weight:500}.booking-success{text-align:center;padding:3rem 1rem}.booking-success .success-icon{color:var(--rs-primary);margin-bottom:1.5rem}.booking-success .success-icon svg{width:64px;height:64px}.booking-success .success-title{font-size:1.75rem;font-weight:600;color:var(--rs-text, #2D3436);margin-bottom:.75rem}.booking-success .success-message{font-size:1rem;color:var(--rs-text-muted, #636E72);max-width:400px;margin:0 auto}.booking-success .btn-completed{margin-top:8px;visibility:hidden}.btn-outline-primary{--bs-btn-color: var(--rs-primary);--bs-btn-border-color: var(--rs-primary);--bs-btn-hover-bg: var(--rs-primary);--bs-btn-hover-color: white;--bs-btn-hover-border-color: var(--rs-primary);--bs-btn-active-bg: var(--rs-primary);--bs-btn-active-border-color: white}
