/***********************/
/*** GNOME SURF BRANDING ***/
/* Team 50337 - Gnome Surf Therapy */
/* Overrides interface-base.css variables */

.interface-layout[data-team="50337"] {
    --color-body: #27282A;
    --color-primary: #27282A;
    --color-secondary: #E64928;
    --color-tertiary: #B83C3C;
    --color-rfv: #E64928;
    --color-icons: #E64928;
    --color-links: #B83C3C;
    --color-links-hover: #E64928;
    --font-headings: caveat-brush, sans-serif;
    --font-subheadings: bitter, serif;
    --font-primary: bitter, serif;
    --font-secondary: caveat-brush, sans-serif;
    --font-controls: normal 1em muli, sans-serif;
    --color-buttons: #E64928;
    --color-buttons-hover: #27282A;
    --color-buttons-text: #FFFFFF;
    --color-buttons-text-hover: #FFFFFF;
    --font-buttons: muli, sans-serif;
}

.interface-layout[data-team="50337"] h1 {font-size: 400%; color: var(--color-primary)}
.interface-layout[data-team="50337"] h2 {font-size: 275%; color: var(--color-secondary)}
.interface-layout[data-team="50337"] h3 {font-size: 150%; color: var(--color-primary)}

@media (max-width: 992px) {.interface-layout[data-team="50337"] .interface-logo {height: 80px}}
@media (min-width: 992.1px) {.interface-layout[data-team="50337"] .interface-logo {height: 90px}}

/************************************************************************************************************************************/
/******** BOOKING WIZARD STYLES (mirrored from argenta.site/interfaces/ucEventSessionBookingForm.css) ********/
/************************************************************************************************************************************/
.booking-wrap{padding:1rem}
.booking-wrap .guest-bar{display:flex; align-items:center; justify-content:flex-end; padding:.75rem 0; border-bottom:1px solid #DEE2E6; margin-bottom:1.5rem}
.booking-wrap .guest-bar a{display:flex; align-items:center; gap:.5rem; color:var(--color-buttons); font-weight:600; font-size:.9rem; text-decoration:none}
.booking-wrap .guest-bar a i{font-size:1.25rem}
.booking-wrap .guest-bar a:hover{text-decoration:underline; color:var(--color-buttons-hover)}
.booking-wrap .questions-link{text-align:center; margin-bottom:1.5rem}
.booking-wrap .questions-link a{color:var(--color-secondary); font-size:.75rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; text-decoration:none}
.booking-wrap .questions-link a:hover{color:var(--color-buttons)}

/* WIZARD STEPS */
.booking-wrap .wizard-steps{display:flex; align-items:center; justify-content:center; margin-bottom:2rem; position:relative}
.booking-wrap .wizard-step{display:flex; flex-direction:column; align-items:center; position:relative; z-index:1; flex:1}
.booking-wrap .wizard-step-circle{width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.9rem; font-weight:700; color:#FFF; background:#CCC; transition:background .3s}
.booking-wrap .wizard-step.active .wizard-step-circle{background:var(--color-buttons)}
.booking-wrap .wizard-step.completed .wizard-step-circle{background:var(--color-buttons)}
.booking-wrap .wizard-step-label{margin-top:.35rem; font-size:.75rem; color:#CCC; font-weight:600; transition:color .3s}
.booking-wrap .wizard-step.active .wizard-step-label{color:var(--color-buttons); font-weight:700}
.booking-wrap .wizard-step.completed .wizard-step-label{color:var(--color-buttons)}
.booking-wrap .wizard-line{position:absolute; top:18px; left:0; right:0; height:3px; background:#CCC; z-index:0}
.booking-wrap .wizard-line-fill{height:3px; background:var(--color-buttons); transition:width .4s}

/* BOOKING HEADINGS */
.booking-wrap .booking-heading{font-family:var(--font-headings); font-size:1.6rem; font-weight:700; color:var(--color-body); margin-bottom:1rem; line-height:1.3}
.booking-wrap .booking-intro{font-size:.9rem; color:var(--color-secondary); margin-bottom:1.5rem; line-height:1.6}
.booking-wrap .booking-intro a{color:var(--color-links); text-decoration:underline}
.booking-wrap .booking-intro strong{font-weight:700}

/* PRODUCT SELECTION */
.booking-wrap .product-list{border:1px solid #DEE2E6; border-radius:.5rem; overflow:hidden; margin-bottom:1.5rem}
.booking-wrap .product-item{display:flex; align-items:center; justify-content:space-between; padding:1rem 1.25rem; border-bottom:1px solid #DEE2E6; transition:background .2s}
.booking-wrap .product-item:last-child{border-bottom:none}
.booking-wrap .product-item:hover{background:#FAFAFA}
.booking-wrap .product-name{font-size:.95rem; font-weight:500; color:var(--color-body)}
.booking-wrap .btn-select{padding:.35rem 1rem; border:1px solid var(--color-buttons); border-radius:.25rem; background:#FFF; color:var(--color-buttons); font-size:.8rem; font-weight:600; cursor:pointer; transition:all .2s; min-width:90px; text-align:center}
.booking-wrap .btn-select:hover{background:rgba(0,0,0,.03)}
.booking-wrap .btn-selected{padding:.35rem 1rem; border:1px solid var(--color-buttons); border-radius:.25rem; background:var(--color-buttons); color:#FFF; font-size:.8rem; font-weight:600; cursor:pointer; transition:all .2s; min-width:90px; text-align:center}
.booking-wrap .btn-selected i{margin-right:.25rem}

/* PRICE BAR */
.booking-wrap .price-bar{display:flex; align-items:center; justify-content:space-between; padding:.75rem 1rem; background:#F8F9FA; border-radius:.375rem; margin-bottom:1.5rem; border:1px solid #DEE2E6; position:relative}
.booking-wrap .price-label{font-size:.9rem; font-weight:700; color:var(--color-body)}
.booking-wrap .price-value{font-size:1.1rem; font-weight:700; color:var(--color-body); margin-left:.75rem}
.booking-wrap .price-left{display:flex; align-items:center}

/* QUANTITY STEPPER */
.booking-wrap .qty-bar{display:flex; align-items:center; gap:1rem; padding:.6rem 1rem; background:#F8F9FA; border:1px solid #DEE2E6; border-radius:.375rem; margin-bottom:.75rem; flex-wrap:wrap}
.booking-wrap .qty-label{font-size:.9rem; font-weight:700; color:var(--color-body)}
.booking-wrap .qty-stepper{display:inline-flex; align-items:center; border:1px solid var(--color-buttons); border-radius:.25rem; overflow:hidden}
.booking-wrap .qty-btn{width:2rem; height:2rem; border:none; background:#FFF; color:var(--color-buttons); font-size:1.1rem; font-weight:700; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s}
.booking-wrap .qty-btn:hover:not(:disabled){background:rgba(0,0,0,.03)}
.booking-wrap .qty-btn:disabled{color:#C7CDD2; cursor:not-allowed}
.booking-wrap .qty-value{min-width:2.5rem; text-align:center; font-size:.95rem; font-weight:700; color:var(--color-body)}
.booking-wrap .qty-note{font-size:.8rem; color:#6C757D}

.booking-wrap .discount-link{font-size:.8rem; color:var(--color-secondary)}
.booking-wrap .discount-link a{color:var(--color-body); text-decoration:underline; font-weight:500}
.booking-wrap .discount-link a:hover{color:var(--color-links)}

/* PROMO CODE */
.booking-wrap .promo-wrap{display:inline-block; position:relative}
.booking-wrap .promo-popover{display:none; position:absolute; bottom:calc(100% + .5rem); right:0; background:#FFF; border:1px solid #DEE2E6; border-radius:.5rem; box-shadow:0 4px 16px rgba(0,0,0,.12); padding:.75rem; z-index:100; width:260px; animation:bookingFadeIn .2s ease}
.booking-wrap .promo-popover.open{display:block}
.booking-wrap .promo-popover::after{content:''; position:absolute; bottom:-6px; right:1.5rem; width:12px; height:12px; background:#FFF; border-right:1px solid #DEE2E6; border-bottom:1px solid #DEE2E6; transform:rotate(45deg)}
.booking-wrap .promo-input-wrap{display:flex; align-items:center; border:1px solid #CCC; border-radius:.375rem}
.booking-wrap .promo-input-wrap input{flex:1; min-width:0; border:none; outline:none; padding:.45rem .65rem; font-size:.85rem; color:var(--color-body); border-radius:.375rem 0 0 .375rem; background:#FFF}
.booking-wrap .promo-input-wrap input::placeholder{color:#999}
.booking-wrap .promo-input-wrap .promo-apply{flex-shrink:0; background:none; border:none; border-left:1px solid #CCC; padding:.45rem .75rem; cursor:pointer; color:var(--color-buttons); font-size:.9rem; font-weight:600; white-space:nowrap}
.booking-wrap .promo-input-wrap .promo-apply:hover{background:rgba(0,0,0,.03)}
.booking-wrap .promo-error{font-size:.8rem; color:var(--color-rfv); margin-top:.35rem}

/* PROMO ON PAYMENT SCREEN (Step 7) — for families who forgot their code on Step 1 */
.booking-wrap .payment-promo-wrap{background:#FFF8F6; border:1px solid #F6C9BE; border-radius:.5rem; padding:1rem 1.25rem; margin-bottom:1.5rem; text-align:center}
.booking-wrap .btn-promo-orange{display:inline-flex; align-items:center; justify-content:center; gap:.4rem; padding:.6rem 1.5rem; border:none; border-radius:.375rem; background:var(--color-secondary); color:#FFF; font-size:.95rem; font-weight:700; cursor:pointer; transition:background .2s}
.booking-wrap .btn-promo-orange:hover,.booking-wrap .btn-promo-orange:focus,.booking-wrap .btn-promo-orange:active{background:var(--color-buttons-hover); color:#FFF; box-shadow:none; outline:none}
.booking-wrap .payment-promo-hint{margin-top:.6rem; font-size:.85rem; color:#6C757D}
.booking-wrap .payment-promo-label{margin-bottom:.6rem; font-size:.9rem; font-weight:600; color:var(--color-body)}
.booking-wrap .payment-promo-input{max-width:320px; margin:0 auto}

/* ERROR MESSAGE */
.booking-wrap .error-message{background:#FEF2F2; border:1px solid #FECACA; border-radius:.375rem; padding:.75rem 1rem; color:#CC3333; font-size:.85rem; margin-bottom:1rem; display:none}
.booking-wrap .error-message.show{display:block}

/* ERROR POPUP (modal overlay) */
.booking-wrap .error-overlay{display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,.45); z-index:9999; align-items:center; justify-content:center}
.booking-wrap .error-overlay.open{display:flex}
.booking-wrap .error-popup{background:#FFF; border-radius:.5rem; box-shadow:0 8px 32px rgba(0,0,0,.2); width:100%; max-width:380px; padding:2rem 2rem 1.5rem; position:relative; animation:bookingFadeIn .25s ease; text-align:center}
.booking-wrap .error-popup-icon{font-size:2.5rem; color:var(--color-tertiary); margin-bottom:1rem}
.booking-wrap .error-popup-message{font-size:.95rem; color:var(--color-body); line-height:1.5; margin-bottom:1.25rem}
.booking-wrap .login-modal-close{position:absolute; top:.75rem; right:.75rem; background:none; border:none; font-size:1.25rem; color:#999; cursor:pointer; padding:.25rem; line-height:1}
.booking-wrap .login-modal-close:hover{color:var(--color-body)}
.booking-wrap .btn-signin{display:block; width:100%; padding:.65rem; border:none; border-radius:2rem; background:var(--color-buttons); color:#FFF; font-size:.95rem; font-weight:600; cursor:pointer; transition:background .2s}
.booking-wrap .btn-signin:hover,.booking-wrap .btn-signin:focus,.booking-wrap .btn-signin:active{background:var(--color-buttons-hover); box-shadow:none; outline:none}

/* SECTION CARD */
.booking-wrap .section-card{background:#FFF; border:1px solid #DEE2E6; border-radius:.5rem; padding:1.25rem; margin-bottom:1.5rem}
.interface-layout[data-team="50337"] .booking-wrap h2.section-heading{font-family:var(--font-subheadings); font-size:1.35rem; font-weight:700; color:var(--color-body); margin-bottom:1rem; line-height:1.3}
.interface-layout[data-team="50337"] .booking-wrap h2.section-heading i{color:var(--color-icons); margin-left:.35rem; font-size:1.1rem}

/* BOOKING SUMMARY */
.booking-wrap .booking-summary{background:#F8F9FA; border:1px solid #DEE2E6; border-radius:.5rem; padding:1rem; margin-bottom:1.5rem; text-align:left}
.booking-wrap .booking-summary-title{font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--color-secondary); margin-bottom:.5rem}
.booking-wrap .booking-summary-row{display:flex; justify-content:space-between; font-size:.85rem; color:var(--color-body); padding:.25rem 0}
.booking-wrap .booking-summary-row .label{color:var(--color-secondary)}

/* FORM FIELD LABEL */
.booking-wrap .form-field{margin-bottom:1rem}
.booking-wrap .form-field > label, .booking-wrap .form-field .field-label{display:block; font-size:.85rem; font-weight:600; color:var(--color-body); margin-bottom:.35rem}
.booking-wrap .rfv{font-size:.5rem; margin-right:.25rem; vertical-align:text-top; margin-bottom:.25rem; padding-top:.30rem; color:var(--color-rfv)}

/* CHECKBOX GROUP */
.booking-wrap .checkbox-group{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.5rem}
.booking-wrap .checkbox-option{display:flex; align-items:center; gap:.4rem; padding:.4rem .75rem; border:1px solid #DEE2E6; border-radius:.375rem; font-size:.85rem; color:var(--color-body); cursor:pointer; transition:all .2s; background:#FFF; user-select:none; margin-bottom:0}
.booking-wrap .checkbox-option:hover{border-color:#CCC; background:#F1F1F1}
.booking-wrap .checkbox-option input[type="checkbox"]{width:16px; height:16px; accent-color:var(--color-buttons); cursor:pointer; margin:0}
.booking-wrap .checkbox-option.checked{border-color:var(--color-buttons); background:#F1F1F1}

/* TOGGLE SWITCH */
.booking-wrap .switch-row{display:flex; align-items:center; gap:.75rem; padding:.5rem 0}
.booking-wrap .switch{position:relative; display:inline-block; width:52px; height:28px; flex-shrink:0}
.booking-wrap .switch input{opacity:0; width:0; height:0}
.booking-wrap .slider{position:absolute; cursor:pointer; top:0; left:0; right:0; bottom:0; background-color:#CCC; transition:.3s; border-radius:28px}
.booking-wrap .slider:before{position:absolute; content:""; height:22px; width:22px; left:3px; bottom:3px; background-color:#FFF; transition:.3s; border-radius:50%}
.booking-wrap input:checked + .slider{background-color:var(--color-buttons)}
.booking-wrap input:focus + .slider{box-shadow:none}
.booking-wrap input:checked + .slider:before{transform:translateX(24px)}
.booking-wrap .switch-label{font-size:.9rem; color:var(--color-body); cursor:pointer}

/* BOOKING FOOTER */
.booking-wrap .footer-bar{display:flex; align-items:center; justify-content:space-between; padding:1rem 0; border-top:1px solid #DEE2E6; margin-top:1rem}
.booking-wrap .security-note{display:flex; align-items:center; gap:.5rem}
.booking-wrap .btn-back{padding:.5rem 1.25rem; border:1px solid #CCC; border-radius:.375rem; background:#FFF; color:var(--color-secondary); font-size:.85rem; font-weight:500; cursor:pointer; transition:all .2s}
.booking-wrap .btn-back:hover,.booking-wrap .btn-back:focus,.booking-wrap .btn-back:active{background:#F3F4F6; color:var(--color-body); box-shadow:none; outline:none}
.booking-wrap .btn.btn-primary{background:var(--color-buttons); color:var(--color-buttons-text); border:1px solid var(--color-buttons); outline:none; padding:.5rem 1.25rem; font-size:.9rem; font-weight:600; border-radius:.375rem}
.booking-wrap .btn.btn-primary:hover,.booking-wrap .btn.btn-primary:focus,.booking-wrap .btn.btn-primary:active{background:var(--color-buttons-hover); color:var(--color-buttons-text-hover); border-color:var(--color-buttons-hover); box-shadow:none; outline:none}
.booking-wrap .btn.btn-primary:disabled,.booking-wrap .btn.btn-primary[disabled]{background:#DEE2E6; border-color:#DEE2E6; color:#999; cursor:not-allowed; opacity:1}
.booking-wrap .btn.btn-primary:disabled:hover,.booking-wrap .btn.btn-primary[disabled]:hover{background:#DEE2E6; border-color:#DEE2E6; color:#999}

/* SECTION SUBTEXT */
.booking-wrap .section-subtext{font-size:.9rem; color:var(--color-secondary); margin-bottom:1.5rem; line-height:1.6}

/* FILTER CARD */
.booking-wrap .filter-card{border:1px solid #DEE2E6; border-radius:.5rem; padding:1.25rem 1.25rem .75rem; margin-bottom:1.5rem}
/* Filter-card fields: equal width (row of three cols), smaller font so long location names fit, ellipsis on overflow */
.booking-wrap .filter-card .form-field{min-width:0}
.booking-wrap .filter-card .interface-select-btn,
.booking-wrap .filter-card input.form-control{font-size:.85rem}
.booking-wrap .filter-card .interface-select-btn > span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; flex:1 1 auto}
.booking-wrap .filter-card .interface-select-option{font-size:.85rem}
.booking-wrap .filter-actions{text-align:center; margin-bottom:.5rem; display:flex; justify-content:center; gap:.5rem; flex-wrap:wrap}
.booking-wrap .btn-outline-secondary{background:#FFF; color:var(--color-secondary); border:1px solid #CCC; padding:.5rem 1.25rem; font-size:.9rem; font-weight:500; border-radius:.375rem; cursor:pointer; transition:all .2s}
.booking-wrap .btn-outline-secondary:hover,.booking-wrap .btn-outline-secondary:focus,.booking-wrap .btn-outline-secondary:active{background:#F3F4F6; color:var(--color-body); border-color:#CCC; box-shadow:none; outline:none}

/* SESSIONS AREA */
.booking-wrap .sessions-area{margin-bottom:1.5rem}
.booking-wrap .sessions-empty{text-align:center; padding:2rem 1rem; color:#999; font-size:.9rem}
.booking-wrap .sessions-empty i{display:block; font-size:3.5rem; margin-bottom:.75rem; color:#CCC}
.booking-wrap .date-group{margin-bottom:1.25rem}
.booking-wrap .date-group-header{font-size:.8rem; font-weight:700; text-transform:uppercase; color:var(--color-secondary); letter-spacing:.05em; margin-bottom:.5rem; padding-bottom:.35rem; border-bottom:1px solid #DEE2E6}

/* SESSION CARDS */
.booking-wrap .session-card{display:flex; align-items:center; justify-content:space-between; padding:.75rem 1rem; border:2px solid #DEE2E6; border-radius:.5rem; margin-bottom:.5rem; cursor:pointer; transition:all .2s; background:#FFF}
.booking-wrap .session-card:hover{border-color:var(--color-buttons); background:rgba(0,0,0,.02)}
.booking-wrap .session-card.selected{border-color:var(--color-buttons); background:var(--color-buttons); color:#FFF}
.booking-wrap .session-card.selected .session-time{color:#FFF}
.booking-wrap .session-card.selected .session-name{color:rgba(255,255,255,.85)}
.booking-wrap .session-card-right{text-align:right}
.booking-wrap .session-responsible{display:block; font-weight:normal; font-size:.85rem; color:#888; margin-bottom:.25rem}
.booking-wrap .session-card.selected .session-responsible{color:rgba(255,255,255,.85)}
.booking-wrap .session-card.full{opacity:.5; cursor:not-allowed; pointer-events:none; border-color:#DEE2E6; background:#F8F9FA}
.booking-wrap .session-time{font-size:.95rem; font-weight:600; color:var(--color-body)}
.booking-wrap .session-name{font-size:.8rem; color:var(--color-secondary); margin-top:.15rem}
.booking-wrap .session-full-badge{font-size:.7rem; font-weight:700; text-transform:uppercase; color:#CC3333; letter-spacing:.05em}
.booking-wrap .session-check{display:none; font-size:1.1rem; margin-top:.25rem}
.booking-wrap .session-card.selected .session-check{display:block}

/* SESSION COUNTER */
.booking-wrap .session-counter{display:none; align-items:center; justify-content:center; padding:.6rem 1rem; background:#FFF3CD; border:1px solid #FFE69C; border-radius:.375rem; margin-bottom:1rem; font-size:.85rem; font-weight:600; color:#856404}
.booking-wrap .session-counter.show{display:flex}
.booking-wrap .session-counter i{margin-right:.5rem; font-size:1rem}
.booking-wrap .session-counter.complete{background:#D1E7DD; border-color:#BADBCC; color:#0F5132}

/* SELECTED SUMMARY */
.booking-wrap .selected-summary{background:#F8F9FA; border:1px solid #DEE2E6; border-radius:.375rem; padding:.75rem 1rem; margin-bottom:1.5rem}
.booking-wrap .selected-summary .summary-label{font-size:.8rem; color:#999}
.booking-wrap .selected-summary .summary-value{font-size:.9rem; font-weight:600; color:var(--color-body)}
.booking-wrap .selected-session-row{display:flex; align-items:center; padding:.35rem 0; border-bottom:1px solid #F3F4F6}
.booking-wrap .selected-session-row:last-child{border-bottom:none}
.booking-wrap .selected-session-num{width:24px; height:24px; border-radius:50%; background:var(--color-buttons); color:#FFF; font-size:.75rem; font-weight:700; display:flex; align-items:center; justify-content:center; margin-right:.75rem; flex-shrink:0}
.booking-wrap .selected-session-info{display:flex; align-items:center; flex-wrap:wrap; flex:1; min-width:0}
.booking-wrap .selected-session-loc{color:var(--color-links)}
.booking-wrap .selected-session-loc i{margin-right:.2rem}

/* RESCHEDULE BANNER */
.booking-wrap .reschedule-banner{display:flex; align-items:flex-start; gap:1rem; background:rgba(0,204,120,.07); border:2px solid #00CC78; border-radius:.5rem; padding:1rem 1.25rem; margin-bottom:1.5rem}
.booking-wrap .reschedule-banner-icon{font-size:2rem; color:#00CC78; flex-shrink:0; padding-top:.1rem}
.booking-wrap .reschedule-banner-title{font-family:var(--font-subheadings); font-weight:700; font-size:1rem; color:var(--color-body); margin-bottom:.35rem}
.booking-wrap .reschedule-banner-session{display:flex; align-items:center; gap:.5rem; background:rgba(0,204,120,.12); border-radius:.375rem; padding:.5rem .75rem; margin-bottom:.5rem; font-size:.85rem; color:var(--color-body); line-height:1.5; flex-wrap:wrap}
.booking-wrap .reschedule-banner-session i{color:#00CC78; flex-shrink:0}
.booking-wrap .reschedule-banner-instruction{font-size:.8rem; color:#6B7280; line-height:1.5}
.booking-wrap .reschedule-banner-instruction strong{color:var(--color-body)}
.booking-wrap .booking-pay-notice{display:flex; align-items:flex-start; gap:.6rem; background:rgba(0,161,190,.08); border:1px solid #00A1BE; border-radius:.5rem; padding:.75rem 1rem; margin-bottom:1.25rem; font-size:.9rem; color:var(--color-body); line-height:1.5}
.booking-wrap .booking-pay-notice i{color:#00A1BE; flex-shrink:0; padding-top:.15rem; font-size:1.05rem}

/* ACCESSIBILITY NOTICE (shown when SlotsNeeded > 1) */
.booking-wrap .accessibility-notice{display:flex; align-items:flex-start; gap:1rem; background:rgba(230,73,40,.06); border:2px solid var(--color-secondary); border-radius:.5rem; padding:1rem 1.25rem; margin-bottom:1.5rem}
.booking-wrap .accessibility-notice-icon{font-size:2rem; color:var(--color-secondary); flex-shrink:0; padding-top:.1rem}
.booking-wrap .accessibility-notice-title{font-family:var(--font-subheadings); font-weight:700; font-size:1rem; color:var(--color-body); margin-bottom:.35rem}
.booking-wrap .accessibility-notice-body{font-size:.85rem; color:#6B7280; line-height:1.5}
.booking-wrap .accessibility-notice-body strong{color:var(--color-body)}

/* BOOKING LOADING OVERLAY */
.booking-wrap .booking-loading-overlay{display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(255,255,255,.88); z-index:9998; align-items:center; justify-content:center; flex-direction:column}
.booking-wrap .booking-loading-overlay.open{display:flex}
.booking-wrap .booking-loading-box{text-align:center; padding:2rem}
.booking-wrap .booking-spinner{width:52px; height:52px; border:4px solid #DEE2E6; border-top-color:var(--color-buttons); border-radius:50%; animation:bookingSpinAnim .75s linear infinite; margin:0 auto 1.25rem}
@keyframes bookingSpinAnim{to{transform:rotate(360deg)}}
.booking-wrap .booking-loading-text{font-size:1rem; font-weight:600; color:var(--color-body); font-family:var(--font-primary)}

/* INTERFACE SELECT height inside booking filters (align with date picker) */
.booking-wrap .interface-select{width:100%}
.booking-wrap .interface-select-btn{width:100%; height:48px; background:#FFF; border:1px solid #ced4da; border-radius:.375rem; padding:0 .75rem; display:flex; align-items:center; justify-content:space-between; font-size:1rem; color:var(--color-body); cursor:pointer}
.booking-wrap .interface-select-placeholder{color:#999}

@keyframes bookingFadeIn{from{opacity:0; transform:translateY(-20px)} to{opacity:1; transform:translateY(0)}}

/* REQUIRED DOCUMENT BUTTONS (Step 5) */
.booking-wrap .doc-btn{display:flex; align-items:center; justify-content:space-between; padding:.85rem 1.25rem; border:2px solid var(--color-buttons); border-radius:.5rem; margin-bottom:.75rem; cursor:pointer; transition:all .2s; background:#FFF}
.booking-wrap .doc-btn:hover{background:var(--color-buttons); transform:translateY(-1px); box-shadow:0 2px 8px rgba(0,0,0,.1)}
.booking-wrap .doc-btn:hover .doc-btn-label,.booking-wrap .doc-btn:hover .doc-btn-icon,.booking-wrap .doc-btn:hover .doc-btn-arrow{color:#FFF}
.booking-wrap .doc-btn-opened{border-color:#00CC78 !important; background:rgba(0,204,120,.03) !important}
.booking-wrap .doc-btn-opened:hover{background:rgba(0,204,120,.08) !important}
.booking-wrap .doc-btn-opened .doc-btn-icon{color:var(--color-secondary)}
.booking-wrap .doc-btn-opened:hover .doc-btn-label,.booking-wrap .doc-btn-opened:hover .doc-btn-icon,.booking-wrap .doc-btn-opened:hover .doc-btn-arrow{color:var(--color-body)}
.booking-wrap .doc-btn-left{display:flex; align-items:center; gap:.65rem}
.booking-wrap .doc-btn-icon{font-size:1.3rem; color:var(--color-buttons); transition:color .2s}
.booking-wrap .doc-btn-label{font-size:.95rem; font-weight:700; color:var(--color-buttons); transition:color .2s}
.booking-wrap .doc-btn-opened .doc-btn-label{color:var(--color-body)}
.booking-wrap .doc-btn-arrow{font-size:.7rem; color:var(--color-buttons); opacity:.6; transition:color .2s}
.booking-wrap .doc-btn-opened .doc-btn-arrow{color:var(--color-secondary)}
.booking-wrap .doc-btn-right{flex-shrink:0; margin-left:.75rem}
.booking-wrap .doc-badge{display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .75rem; border-radius:2rem; font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase}
.booking-wrap .doc-badge-pending{background:#FEF2F2; color:#CC3333; border:1px solid #FECACA}
.booking-wrap .doc-badge-opened{background:#F0FDF4; color:#16A34A; border:1px solid #BBF7D0}

/* WAIVER AGREEMENT SECTIONS (Step 5) */
.booking-wrap .waiver-section{position:relative; background:#F8F9FA; border:1px solid #DEE2E6; border-radius:.5rem; padding:1rem; margin-bottom:1.5rem}
.booking-wrap .waiver-title{font-size:.9rem; font-weight:700; color:var(--color-body); margin-bottom:.5rem}
.booking-wrap .waiver-text{font-size:.8rem; color:var(--color-secondary); line-height:1.5; margin-bottom:.75rem}
.booking-wrap .waiver-check{display:flex; align-items:flex-start; gap:.5rem}
.booking-wrap .waiver-check input[type="checkbox"]{width:18px; height:18px; margin-top:2px; accent-color:var(--color-buttons); cursor:pointer}
.booking-wrap .waiver-check label{font-size:.85rem; color:var(--color-body); cursor:pointer}
.booking-wrap .waiver-locked-overlay{position:absolute; top:0; left:0; right:0; bottom:0; background:rgba(248,249,250,.9); border-radius:.5rem; display:flex; align-items:center; justify-content:center; z-index:10; font-size:.9rem; font-weight:600; color:#999; gap:.5rem; cursor:not-allowed}
.booking-wrap .waiver-locked-overlay i{font-size:1rem; color:#CCC}

/* RADIO OPTIONS (photo consent) */
.booking-wrap .radio-option{margin-bottom:.5rem; padding:.6rem .75rem; border:1px solid #DEE2E6; border-radius:.375rem; background:#FFF; transition:all .2s; cursor:pointer}
.booking-wrap .radio-option:hover{border-color:#CCC; background:#F1F1F1}
.booking-wrap .radio-option:has(input:checked){border-color:var(--color-buttons); background:rgba(230,73,40,.04)}
.booking-wrap .radio-option input[type="radio"]{-webkit-appearance:none; -moz-appearance:none; appearance:none; width:18px; height:18px; border:2px solid #CCC; border-radius:50%; margin:0; margin-top:2px; cursor:pointer; position:relative; transition:all .2s; flex-shrink:0}
.booking-wrap .radio-option input[type="radio"]:checked{border-color:var(--color-buttons); border-width:2px}
.booking-wrap .radio-option input[type="radio"]:checked::after{content:''; position:absolute; top:3px; left:3px; width:8px; height:8px; border-radius:50%; background:var(--color-buttons)}
.booking-wrap .radio-option input[type="radio"]:focus{outline:none; box-shadow:none}

/* REVIEW SECTIONS (Step 6 + reused in Step 7/8) */
.booking-wrap .review-section-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem}
.booking-wrap .review-section-header .section-heading{margin-bottom:0}
.booking-wrap .review-edit-link{background:none; border:1px solid var(--color-buttons); color:var(--color-buttons); font-size:.75rem; font-weight:600; padding:.3rem .75rem; border-radius:.25rem; cursor:pointer; text-transform:uppercase; letter-spacing:.05em; display:inline-flex; align-items:center; gap:.3rem; transition:all .2s}
.booking-wrap .review-edit-link:hover{background:var(--color-buttons); color:#FFF}
.booking-wrap .review-edit-link i{font-size:.75rem}
.booking-wrap .review-row{display:flex; padding:.4rem 0; border-bottom:1px solid #F0F0F0; font-size:.9rem}
.booking-wrap .review-row:last-child{border-bottom:none}
.booking-wrap .review-label{flex-shrink:0; width:40%; font-weight:600; color:var(--color-body); padding-right:.75rem}
.booking-wrap .review-value{flex:1; color:var(--color-secondary); word-break:break-word}
.booking-wrap .review-total{margin-top:.5rem; padding-top:.75rem; border-top:2px solid #DEE2E6; font-size:1rem}
.booking-wrap .review-total .review-label, .booking-wrap .review-total .review-value{color:var(--color-body); font-size:1.05rem}
.booking-wrap .review-session-row{padding:.6rem .75rem; margin-bottom:.5rem; background:#F8F9FA; border:1px solid #DEE2E6; border-radius:.375rem}
.booking-wrap .review-session-row:last-child{margin-bottom:0}

/* STRIPE PAYMENT ELEMENT (Step 7) */
.booking-wrap .stripe-payment-element{margin-top:.75rem; padding:1rem; border:1px solid #DEE2E6; border-radius:.5rem; background:#FFF; min-height:180px}

/* THANK YOU / CONFIRMATION (Step 8) */
.booking-wrap .success-card{text-align:center; padding:1.5rem 1rem}
.booking-wrap .success-icon{font-size:5rem; color:#16A34A; margin-bottom:1rem; line-height:1}
.booking-wrap .success-heading{font-family:var(--font-headings); font-size:2.25rem; font-weight:700; color:var(--color-body); margin-bottom:.25rem; line-height:1.2}
.booking-wrap .success-sub{font-size:1rem; color:var(--color-secondary); margin-bottom:1.5rem}
.booking-wrap .confirmation-number{background:#F8F9FA; border:2px dashed var(--color-buttons); border-radius:.5rem; padding:1rem; margin:0 auto 1.5rem; max-width:320px}
.booking-wrap .confirmation-label{font-size:.75rem; font-weight:600; color:var(--color-secondary); letter-spacing:.1em; text-transform:uppercase; margin-bottom:.25rem}
.booking-wrap .confirmation-value{font-family:monospace; font-size:1.5rem; font-weight:700; color:var(--color-body); letter-spacing:.05em}
.booking-wrap .next-steps{background:#FFF8F5; border:1px solid var(--color-buttons); border-radius:.5rem; padding:1rem 1.25rem; margin:1.5rem auto; max-width:560px; text-align:left}
.booking-wrap .next-steps h3{font-size:1.1rem; font-weight:700; color:var(--color-body); margin-bottom:.75rem}
.booking-wrap .next-steps h3 i{color:var(--color-buttons); margin-right:.35rem}
.booking-wrap .next-steps p{font-size:.9rem; color:var(--color-secondary); line-height:1.6; margin-bottom:.5rem}
.booking-wrap .next-steps p:last-child{margin-bottom:0}
.booking-wrap .contact-info{font-size:.85rem; color:var(--color-secondary); margin-top:1rem}

/* BOOKING RESPONSIVE */
@media (max-width:576px){
.booking-wrap{padding:.5rem}
.booking-wrap .booking-heading{font-size:1.3rem}
.interface-layout[data-team="50337"] .booking-wrap h2.section-heading{font-size:1.1rem}
.booking-wrap .footer-bar{flex-direction:column; gap:.75rem; align-items:stretch; text-align:center}
.booking-wrap .session-card{flex-direction:column; align-items:flex-start; gap:.35rem}
.booking-wrap .review-row{flex-direction:column}
.booking-wrap .review-label{width:100%; margin-bottom:.15rem}
.booking-wrap .review-section-header{flex-direction:column; align-items:flex-start; gap:.5rem}
.booking-wrap .success-heading{font-size:1.8rem}
.booking-wrap .success-icon{font-size:4rem}
}
