:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.h5,.h6{color:#004159;font-weight:bolder;line-height:inherit}a{color:#206179}a:hover{color:#307189}.bg-lightgrey{background-color:#f2f2f2}.bg-kbn-primary{background-color:#004159}.bg-kbn-secondary{background-color:#a870af}.btn-primary{background-color:#0095d9;border:1px solid #0095D9}.btn-primary:hover{background-color:#5cc4b6!important;border:1px solid #5CC4B6!important;text-decoration:none}.btn-outline-secondary{border:1px solid #BABABD}.btn-outline-secondary:hover{color:#fff;text-decoration:none}.bookingsRowsContainer .bookingDataHeader{background-color:#004159!important;color:#fff!important;font-weight:700}.bookingsRowsContainer .bookingDataRow{background-color:#fff;align-items:center;display:flex}.bookingsRowsContainer .bookingDataRow:nth-child(odd){background-color:#f7f7f7}.bookingsRowsContainer .bookingDataHeader>[class^=col-],.bookingsRowsContainer .bookingDataRow>[class^=col-]{padding-top:6px;padding-bottom:6px}.pasthidden{visibility:hidden;display:none}.pastvisible{visibility:visible;display:flex}.lgBookingSection{border:1px solid #ddd}.bookingFormField,.bookingFormFieldLongText{margin:15px 0 30px}.bookingFieldLabel{margin-bottom:5px;font-weight:500;color:#333;text-align:left}.bookingFormFieldLongText textarea{max-width:90%;width:100%;min-height:100px;resize:none}.bookingFieldInput input[type=text]{border-radius:5px;border:1px solid #999;padding:8px;width:90%}.bookingFieldInput select,#selectNumPeople{border-radius:5px;border:1px solid #999;padding:5px;min-width:80px;text-align:center}.divSession{float:left;width:100%;text-align:left;margin:5px 2%;padding:10px;border:1px solid #b6d4ed;border-radius:5px;background-color:#f0f8ff}@media (min-width: 950px){.divSession{width:46%}}.sessionCheckbox{transform:scale(1.8);margin:0 10px}.bookingFormYesNoRadio{transform:scale(1.8);margin:0 10px 0 5px}.app-footer{width:100%;background-color:#004159;color:#fff;padding:1em;position:fixed;bottom:0;z-index:1030;min-height:54px}.listitem-spacing-3 li{margin-bottom:20px}.bookingPriceLabel{font-size:1.2em}.bookingPriceValue{font-size:1.2em;font-weight:700}.bookableProfileImage img{max-height:200px}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}html,body{margin:0;padding:0;overflow-x:hidden}#root{overflow-x:hidden}.booking__page{min-height:100vh;position:relative;isolation:isolate;width:100%!important;overflow-x:hidden;margin-left:0!important;margin-right:0!important;left:auto!important;right:auto!important}.booking__page:before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);z-index:-1;pointer-events:none}.booking__page,.booking__page *{box-sizing:border-box}body:has(.booking__page){overflow-x:hidden}body:has(.booking-hero){display:block}body:has(.booking-hero) #root{max-width:none;width:100%;padding:0;margin:0;text-align:initial}.booking__page img,.booking__page iframe,.booking__page video,.booking__page svg{max-width:100%;height:auto;display:block}.booking__page .hero-description{overflow-wrap:anywhere;word-break:break-word}.booking-hero{position:relative;background:#fff;color:#004159;overflow:hidden}.hero-content{position:relative;max-width:1200px;margin:0 auto;padding:140px 24px 30px;text-align:left}.booking-form-hero-content{position:relative;max-width:1200px;margin:0 auto;padding:90px 24px 12px;min-height:136px;text-align:left}.hero-title{font-size:1.6rem;font-weight:700;margin-top:0;margin-bottom:40px}.hero-description{font-size:1rem;opacity:.95;margin:0 auto;color:#004159}.bookableProfileImage{position:absolute;top:16px;right:24px;margin-bottom:0;z-index:2}.bookableProfileImage img{max-height:120px;width:auto}.booking-progress{max-width:1200px;margin:16px auto 30px;padding:0 24px;display:flex;justify-content:space-between;gap:16px}.booking-progress{position:relative;z-index:2}.booking-hero{z-index:1}.form-step{scroll-margin-top:120px}.progress-step{flex:1;background:#fff;border-radius:12px;padding:16px;text-align:center;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;opacity:.6}.progress-step.active{opacity:1;box-shadow:0 4px 16px #0095d94d;border:2px solid #0095D9}.progress-step.completed{opacity:.6;background:#fff;color:inherit;border:none;box-shadow:0 2px 8px #0000001a}.step-icon{font-size:1.6rem;margin-bottom:6px}.step-title{font-size:.9rem;font-weight:600}.booking-container{max-width:1200px;margin:0 auto;padding:0 24px 60px;display:grid;grid-template-columns:1fr 360px;gap:24px}.booking-form-section{background:#fff;border-radius:16px;padding:32px;box-shadow:0 4px 16px #0000001a}.form-step{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.step-heading{font-size:1.6rem;color:#004159;margin-bottom:8px;text-align:center}.step-description{color:#6c757d;margin-bottom:24px;text-align:center}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:600;color:#2c3e50;margin-bottom:8px;font-size:.95rem}.form-input,.form-select{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;transition:all .2s ease;background:#fff}.form-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23004159' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;padding-right:40px;cursor:pointer}.form-select::-ms-expand{display:none}.form-input:focus,.form-select:focus{outline:none;border-color:#0095d9;box-shadow:0 0 0 3px #0095d91a}.booking-for-line{display:flex;align-items:center;gap:8px;white-space:nowrap;justify-content:center;width:100%}.booking-for-line .form-select{width:auto;min-width:64px;display:inline-block}.form-input.error{border-color:#dc3545}.error-message{color:#dc3545;font-size:.85rem;margin-top:4px}.participant-card{background:#f8f9fa;border:2px solid #e1e8ed;border-radius:12px;padding:20px;margin-bottom:16px}.participant-title{font-size:1.1rem;color:#004159;margin-bottom:12px}.sessions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:36px;margin-bottom:36px}.session-card{background:#fff;border:2px solid #e1e8ed;border-radius:12px;padding:16px 45px 16px 16px;cursor:pointer;transition:all .2s ease;display:flex;gap:12px}.session-card:not(.sold-out):hover{border-color:#0094d98c;box-shadow:0 0 4px #0095d933}.session-card.sold-out{cursor:default;background-color:#f6f6f6}.session-card.selected{border-color:#0095d9;background:linear-gradient(135deg,#0095d90d,#5cc4b60d);box-shadow:0 4px 12px #0095d94d}.session-checkbox{flex:0 0 20px;width:20px;display:flex;align-items:flex-start}.session-checkbox input{width:20px;height:20px;cursor:pointer;accent-color:#0095D9}.session-checkbox input:disabled{cursor:not-allowed;accent-color:#c0c0c0;filter:grayscale(100%);opacity:.6;background-color:#e0e0e0;border-color:silver}.checkbox-placeholder{display:block;width:20px;height:20px;visibility:hidden}.session-details{flex:1;text-align:center}.session-title{font-size:1.1rem;font-weight:600;color:#2c3e50;margin-bottom:8px}.session-date,.session-time{font-size:.9rem;color:#6c757d;margin-bottom:4px}.session-availability{font-weight:400;margin-top:4px;margin-bottom:0}.session-availability.info{color:#17a2b8}.session-availability.warning{color:#ff8f00}.session-availability.danger{color:#d75555}.review-section{background:#f8f9fa;border-radius:12px;padding:16px;margin-bottom:16px;position:relative}.review-section h3{margin-bottom:20px}.review-session{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e1e8ed}.review-session:last-child{border-bottom:none}.btn-edit{position:absolute;top:16px;right:16px;background:none;border:1px solid #0095D9;color:#0095d9;padding:6px 12px;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-edit:hover{background:#0095d9;color:#fff}.step-navigation{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.step-navigation.center{justify-content:center}.btn-back,.btn-next,.btn-submit{padding:12px 28px;font-size:1.05rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .3s ease}.btn-back{background:#6c757d;color:#fff}.btn-back:hover{background:#5a6268}.btn-next,.btn-submit{background:linear-gradient(135deg,#0095d9,#5cc4b6);color:#fff;flex:1;box-shadow:0 4px 12px #0095d94d}.btn-next:hover,.btn-submit:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0095d966}.btn-next:disabled,.btn-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.booking-summary{position:sticky;top:24px;height:fit-content}.summary-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 16px #0000001a}.summary-title{font-size:1.4rem;color:#004159;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e1e8ed;text-align:center}.summary-section{margin-bottom:16px}.summary-section h4{font-size:.9rem;color:#6c757d;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;text-align:center}.summary-item{display:flex;justify-content:center;text-align:center;padding:6px 0;border-bottom:1px solid #f8f9fa;font-weight:600}.summary-empty{color:#adb5bd;font-style:italic;text-align:center}.summary-value{font-weight:600;color:#2c3e50;text-align:center}.summary-total{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:2px solid #e1e8ed;font-size:1.1rem;font-weight:700}.total-amount{color:#0095d9;font-size:1.6rem}.form-error{background:#f8d7da;color:#721c24;padding:12px 16px;border-radius:8px;margin-bottom:12px;border:1px solid #f5c6cb}.payment-container{grid-template-columns:minmax(0,720px);justify-content:center}.payment-container .booking-form-section{margin-top:50px}.payment-summary{text-align:left;margin-bottom:30px;color:#2c3e50;font-size:1.05rem}.payment-summary .priceToPay{font-weight:800;color:#0095d9}.payment-summary .session-list{margin:8px 0 0 20px;padding:0}.payment-section{background:#f5f7fa;border:1px solid #e1e8ed;border-radius:12px;padding:24px;margin-top:16px}.payment-section .section-title{margin:0 0 12px;text-align:center;color:#004159;font-weight:700}.payment-section .section-subtitle{text-align:center;color:#6c757d;margin-bottom:16px}.stripe-box{background:#fff;padding:20px;border-radius:10px;border:2px solid #e1e8ed;box-shadow:0 2px 6px #0000000a;margin-bottom:16px}.payment-footer{text-align:center;margin-top:24px;color:#6c757d}.payment-footer a{color:#0095d9;text-decoration:none}.payment-footer a:hover{text-decoration:underline}@media (max-width: 1250px){.booking-hero,.booking-progress,.booking-container{padding-left:8%;padding-right:8%}}@media (max-width: 1024px){.booking-container{grid-template-columns:1fr}.booking-summary{position:static;order:-1}}@media (max-width: 768px){.hero-title{font-size:1.6rem}.booking-progress{flex-wrap:wrap}.progress-step{flex-basis:calc(50% - 8px)}.booking-form-section{padding:24px}.form-grid,.sessions-grid{grid-template-columns:1fr}.step-navigation{flex-direction:column}.btn-back{order:2}}@media (max-width: 480px){.booking-for-line{white-space:normal}}.auth-shell{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.auth-card{width:min(440px,100%);background:#fff;border-radius:16px;padding:28px;box-shadow:0 12px 40px #0000001f;border:1px solid rgba(0,65,89,.08);text-align:left}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}.auth-logo{width:44px;height:44px;flex:0 0 44px}.auth-brandText{display:grid;gap:2px}.auth-brandName{margin:0;font-size:1.1rem;line-height:1.1;font-weight:800;color:#004159}.auth-brandTagline{margin:0;font-size:.9rem;color:#6c757d}.auth-title{margin:14px 0 6px;font-size:1.4rem;font-weight:800;color:#004159}.auth-subtitle{margin:0 0 16px;color:#6c757d}.auth-form{display:grid;gap:12px}.auth-field label{display:block;font-weight:700;color:#2c3e50;margin-bottom:6px;font-size:.95rem}.auth-input{width:100%;padding:12px 14px;border:2px solid #e1e8ed;border-radius:10px;font-size:1rem;background:#fff;transition:all .2s ease;box-sizing:border-box}.auth-input:focus{outline:none;border-color:#0095d9;box-shadow:0 0 0 3px #0095d91f}.auth-button{margin-top:6px;width:100%;padding:12px 16px;font-size:1.05rem;font-weight:700;border-radius:10px;border:none;cursor:pointer;transition:all .25s ease;background:linear-gradient(135deg,#0095d9,#5cc4b6);color:#fff;box-shadow:0 6px 16px #0095d940}.auth-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0095d952}.auth-button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.auth-error{background:#f8d7da;color:#721c24;padding:10px 12px;border-radius:10px;border:1px solid #f5c6cb;font-weight:600}.auth-links{margin-top:8px;display:flex;justify-content:space-between;gap:12px;font-size:.95rem}.auth-links--center{justify-content:center}.auth-links a{color:#0095d9;font-weight:700;text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-success{background:#d1ecf1;color:#0c5460;padding:10px 12px;border-radius:10px;border:1px solid #bee5eb;font-weight:600}.bookingDataHeader{border-bottom:1px solid #e9ecef;position:sticky;top:0;z-index:2}.bookingDataRow{border-bottom:1px solid #e9ecef;border-radius:8px;transition:all .2s ease}.bookingDataRow:hover{box-shadow:0 2px 8px #00000026}.bookingsRowsContainer .btn{padding:4px 8px}.bookingsRowsContainer .h5{font-weight:600}.dashboardAttendee{margin-bottom:10px;line-height:1.25}.dashboardAttendeeAge{font-size:.85rem;color:#6c757d;margin-top:2px}.dashboardControls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.detailsRow{background:#fafafa;border-top:1px solid #eee}.detailsContent{padding:12px}.detailsCard{border:1px solid #eee;border-radius:6px;padding:8px;margin-bottom:8px}
