*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--navy:#1e1040;--navy2:#2a1858;--cream:#f8f5f0;--white:#fff;--accent:#8b6fd4;--accent2:#7055b8;--text:#3a3a3a;--muted:#7a7a7a;--sans:"Segoe UI", system-ui, sans-serif}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased}.container{max-width:1100px;margin:0 auto;padding:0 2rem}.section{padding:96px 0}.section-light{background:var(--cream)}.section-dark{background:var(--navy)}.section-accent{background:var(--accent)}.section-label{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:.75rem;font-weight:700;display:block}.section-label.light{color:#ffffff8c}h2{color:var(--navy);margin-bottom:1.5rem;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600;line-height:1.15}.section-dark h2{color:var(--white)}.navbar{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f1c2ef2;justify-content:space-between;align-items:center;height:68px;padding:0 2.5rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--white);letter-spacing:.04em;font-size:1.25rem;font-weight:700;text-decoration:none}.nav-logo-family{color:#2596be}.nav-links{align-items:center;gap:2rem;display:flex}.nav-link{color:#ffffffbf;letter-spacing:.03em;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--white)}.nav-book-btn{background:var(--accent);color:var(--white);letter-spacing:.03em;border-radius:4px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s}.nav-book-btn:hover{background:var(--accent2)}.nav-link--admin{color:#c4abf0!important}.user-menu{position:relative}.user-menu-btn{width:36px;height:36px;color:var(--white);cursor:pointer;background:#ffffff1f;border:1.5px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s;display:flex}.user-menu-btn:hover{background:#ffffff38;border-color:#ffffff80}.user-menu-dropdown{background:var(--white);z-index:200;border:1px solid #e5e0d8;border-radius:8px;min-width:160px;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000024}.user-menu-item{width:100%;font-family:var(--sans);color:var(--navy);text-align:left;cursor:pointer;background:0 0;border:none;padding:.75rem 1.1rem;font-size:.9rem;font-weight:500;transition:background .15s;display:block}.user-menu-item:hover{background:#f5f2fd}.user-menu-item--admin{color:var(--accent)}.user-menu-item--danger{color:#c0392b;border-top:1px solid #ece8e2}.user-menu-item--danger:hover{background:#fdf0ef}.parallax-bg{z-index:-1;background-image:url(/sunrise.png);background-position:50%;background-size:cover;position:fixed;inset:0}.hero{text-align:center;background-position:50%;background-size:cover;justify-content:center;align-items:center;min-height:100vh;padding:0 2rem;display:flex}.hero-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fff8f0c7;border-radius:14px;max-width:680px;padding:3rem 3.5rem}.hero-title{color:var(--navy);letter-spacing:-.02em;margin-bottom:1.25rem;font-size:clamp(2.8rem,8vw,5.5rem);font-weight:700;line-height:1.05}.hero-poses{opacity:.7;justify-content:center;align-items:center;gap:1rem;margin:.75rem 0 1rem;display:flex}.hero-poses svg,.hero-poses img{width:auto;height:108px}.hero-subtitle{color:var(--muted);margin-bottom:2.5rem;font-size:clamp(1rem,2.5vw,1.25rem);line-height:1.6}.hero-btns{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.hero-btn{background:var(--accent);color:var(--white);letter-spacing:.03em;border-radius:4px;padding:.85rem 2.25rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .2s,transform .15s;display:inline-block}.hero-btn:hover{background:var(--accent2);transform:translateY(-1px)}.hero-btn--outline{color:var(--white);background:0 0;border:2px solid #fff9}.hero-btn--outline:hover{border-color:var(--white);background:#ffffff1f}.section-lotus{background:0 0}.section-lotus h2,.section-lotus .section-label{text-shadow:0 1px 4px #fff9}.section-about-parallax{background-position:50%;background-size:cover;align-items:center;min-height:100vh;display:flex;position:relative}.section-about-parallax .container{z-index:1;width:100%;position:relative}.two-col{grid-template-columns:1fr 1fr;align-items:start;gap:5rem;display:grid}.about-text{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff8f0d1;border-radius:10px;padding:2rem 2.25rem}.about-text h2{margin-bottom:1.25rem}.about-text p{color:var(--muted);margin-bottom:1rem;font-size:1.05rem;line-height:1.75}.about-quote{border-left:4px solid var(--accent,#b07d4a);color:var(--muted);background:#b07d4a12;border-radius:0 6px 6px 0;margin:1.25rem 0;padding:.75rem 1.25rem;font-size:1.1rem;font-style:italic;line-height:1.75}.about-list{margin:.5rem 0 1rem;padding:0;list-style:none}.about-list li{color:var(--muted);padding:.3rem 0 .3rem 1.6rem;font-size:1.05rem;line-height:1.75;position:relative}.about-list li:before{content:"✦";color:var(--accent,#b07d4a);font-size:.75rem;position:absolute;top:.55rem;left:0}.about-image{object-fit:cover;border-radius:50%;width:420px;height:420px;margin:0 auto;display:block}.cards{grid-template-columns:repeat(2,1fr);gap:2rem;max-width:780px;margin-top:2.5rem;display:grid}.card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:.75rem;padding:2rem;transition:border-color .2s;display:flex}.card:hover{border-color:#5b8fa880}.card-title-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.card h3{color:var(--white);font-size:1.35rem;font-weight:600;line-height:1.2}.card-level{text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff24;border-radius:20px;flex-shrink:0;padding:.2rem .65rem;font-size:.7rem;font-weight:700}.card-meta{align-items:center;gap:.5rem;display:flex}.card-type{letter-spacing:.06em;color:var(--accent);font-size:.75rem;font-weight:600}.card-meta-dot{color:#ffffff40;font-size:.75rem}.card-duration{color:#fff6;font-size:.75rem}.card-desc{color:#ffffffa6;flex:1;font-size:.95rem;line-height:1.6}.card-btn{color:var(--accent);letter-spacing:.04em;margin-top:.5rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:color .2s;display:inline-block}.card-btn:hover{color:#8ab9cc}.schedule-filters{margin-top:2rem}.schedule-pills{flex-wrap:wrap;gap:.4rem;display:flex}.schedule-pill{font-family:var(--sans);color:#ffffff8c;cursor:pointer;white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff26;border-radius:20px;padding:.3rem .85rem;font-size:.8rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.schedule-pill--active{background:var(--white);border-color:var(--white);color:var(--navy)}@keyframes scheduleFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.schedule-grid--fade{animation:.2s scheduleFadeIn}.schedule-empty-loc{color:#ffffff4d;flex:1;padding:.5rem 0;font-size:.875rem;font-style:italic}.schedule-grid{grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:1.25rem;display:grid}.schedule-card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:1.25rem;padding:2rem;display:flex}.schedule-location{color:var(--white);border-bottom:1px solid #ffffff1a;padding-bottom:1rem;font-size:1.2rem;font-weight:700}.schedule-rows{flex-direction:column;gap:0;display:flex}.schedule-row{border-bottom:1px solid #ffffff0f;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:.7rem 0;display:grid}.schedule-day{color:#ffffffbf;font-size:.95rem}.schedule-type{letter-spacing:.1em;text-transform:uppercase;border-radius:3px;padding:.25rem .6rem;font-size:.7rem;font-weight:700}.schedule-time{color:#ffffff8c;white-space:nowrap;font-size:.9rem;font-weight:600}.section-locations{background:var(--cream)}.section-locations h2{color:var(--navy)}.section-locations .section-label{color:var(--accent)}.locations-grid{grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:2.5rem;display:grid}.location-card{background:var(--white);border:1px solid #e8e3da;border-radius:10px;overflow:hidden;box-shadow:0 2px 12px #0000000f}.map-embed{border:0;width:100%;height:220px;display:block}.location-info{padding:1.75rem 2rem}.location-info h3{color:var(--navy);margin-bottom:.4rem;font-size:1.3rem;font-weight:700}.venue-name{color:var(--accent2);margin-bottom:.4rem;font-weight:600}.venue-address{color:var(--muted);margin-bottom:.75rem;font-size:.9rem;line-height:1.5}.venue-days{letter-spacing:.08em;color:var(--navy);text-transform:uppercase;font-size:.8rem;font-weight:700}.location-contact-link{color:var(--accent2);margin-top:.85rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:color .2s;display:inline-block}.location-contact-link:hover{color:var(--navy)}.section-teachers{background:var(--navy)}.section-teachers h2,.section-teachers .section-label{color:var(--white)}.section-teachers .section-label{color:#ffffff8c}.teachers-featured{flex-direction:column;gap:1.5rem;margin-bottom:3rem;display:flex}.teacher-card-featured{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:14px;align-items:flex-start;gap:2rem;padding:2rem;display:flex}.teacher-photo--lg{flex-shrink:0;width:160px;height:160px}.teacher-photo--lg .teacher-initials{font-size:2.8rem}.teacher-featured-body{flex-direction:column;gap:.75rem;padding-top:.25rem;display:flex}.teacher-profile-btn{color:var(--accent);margin-top:.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-block}.teacher-profile-btn:hover{opacity:.75}.teachers-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:start;gap:1rem;display:grid}.teacher-card-pub{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;outline:none;padding:1rem 1.25rem;transition:background .2s,border-color .2s}.teacher-card-pub:hover,.teacher-card-pub:focus-visible,.teacher-card-pub--open{background:#ffffff1a;border-color:#ffffff38}.teacher-card-header{align-items:center;gap:1rem;display:flex}.teacher-card-bio{opacity:0;max-height:0;transition:max-height .35s,opacity .3s;overflow:hidden}.teacher-card-pub--open .teacher-card-bio{opacity:1;max-height:300px}.teacher-card-bio p{color:#ffffffa6;border-top:1px solid #ffffff1a;margin-top:.85rem;padding-top:.85rem;font-size:.875rem;line-height:1.65}.teacher-chevron{color:#ffffff73;flex-shrink:0;width:16px;height:16px;margin-left:auto;transition:transform .3s}.teacher-chevron--open{transform:rotate(180deg)}.teacher-photo{background:var(--accent2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.teacher-photo img{object-fit:cover;width:100%;height:100%}.teacher-initials{color:var(--white);letter-spacing:.03em;font-size:1.3rem;font-weight:700}.teacher-name{color:var(--white);font-size:.975rem;font-weight:700}.teacher-bio{color:#ffffffa6;margin-top:.2rem;font-size:.875rem;line-height:1.6}.events-list{flex-direction:column;gap:1.25rem;margin-top:2.5rem;display:flex}.event-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;display:flex}.event-card-info{flex-direction:column;flex:1;gap:.4rem;min-width:0;display:flex}.event-date{color:var(--navy);font-size:1rem;font-weight:700}.event-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem .75rem;font-size:.875rem;display:flex}.event-badge{letter-spacing:.1em;text-transform:uppercase;border-radius:3px;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.event-time{color:var(--text);font-weight:600}.event-teacher{color:var(--accent2);font-weight:500}.event-desc{color:var(--muted);margin:.25rem 0 0;font-size:.875rem}.event-card-action{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.5rem;display:flex}.event-price{color:var(--text);font-size:.85rem;font-weight:700}.event-price-free{color:#27a96c;font-size:.85rem;font-weight:700}.event-book-btn{background:var(--navy);color:var(--white);letter-spacing:.03em;cursor:pointer;white-space:nowrap;border:none;border-radius:5px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s}.event-book-btn:hover{background:var(--navy2)}@media (width<=600px){.event-card{flex-direction:column;align-items:flex-start}.event-card-action{flex-direction:row;justify-content:space-between;align-items:center;width:100%}}.news-section{border-top:1px solid #e8e3da}.news-list{flex-direction:column;margin-top:2.5rem;display:flex}.news-item{border-bottom:1px solid #e8e3da;grid-template-columns:140px 1fr;align-items:start;gap:1.5rem 2.5rem;padding:2rem 0;display:grid}.news-date{color:var(--muted);padding-top:.2rem;font-size:.8rem;font-weight:500}.news-title{color:var(--navy);margin-bottom:.4rem;font-size:1.1rem;font-weight:600}.news-excerpt,.news-body{color:var(--muted);white-space:pre-wrap;grid-column:2;margin-top:.35rem;font-size:.95rem;line-height:1.6}.news-body a{color:var(--accent2);text-underline-offset:2px;text-decoration:underline}.news-body a:hover{color:var(--navy)}.book-container{text-align:center}.book-rating{color:#ffffffe6;letter-spacing:.03em;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1rem;text-decoration:none;transition:opacity .2s;display:inline-flex}.book-rating:hover{opacity:.8}.book-rating span{opacity:.85;font-size:.9rem}.section-accent h2{color:var(--white)}.section-accent p{color:#fffc;margin-bottom:2rem;font-size:1.1rem}.book-cta-btn{background:var(--white);color:var(--accent2);letter-spacing:.03em;border-radius:4px;padding:.9rem 2.5rem;font-size:1rem;font-weight:700;text-decoration:none;transition:opacity .2s;display:inline-block}.book-cta-btn:hover{opacity:.9}.footer{background:var(--navy);padding:3rem 0}.footer-inner{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;display:flex}.footer-logo{color:var(--white);letter-spacing:.04em;font-size:1.15rem;font-weight:700}.footer-links{flex-wrap:wrap;justify-content:center;gap:.75rem 1.75rem;display:flex}.footer-links a{color:#ffffff8c;font-size:.875rem;text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--white)}.footer-copy{color:#ffffff4d;font-size:.8rem}.nav-left{align-items:center;gap:.75rem;display:flex}.nav-mobile-right,.nav-mobile-menu{display:none}.nav-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:.25rem;display:none}.nav-hamburger span{background:var(--white);border-radius:2px;width:22px;height:2px;display:block}.nav-mobile-signin{color:#ffffffd9;font-size:.9rem;font-weight:500;text-decoration:none}@media (width<=768px){.hero-overlay{padding:2rem 1.5rem}.two-col{grid-template-columns:1fr;gap:2.5rem}.about-image{width:260px;height:260px}.cards{grid-template-columns:1fr;max-width:100%}.schedule-grid{grid-template-columns:1fr}.schedule-pills{gap:.35rem}.locations-grid{grid-template-columns:1fr}.news-item{grid-template-columns:1fr;gap:.5rem}.section{padding:64px 0}.teacher-card-featured{text-align:center;flex-direction:column;align-items:center}.teacher-photo--lg{width:120px;height:120px}.teachers-grid{grid-template-columns:1fr}.nav-links{display:none}.nav-hamburger{display:flex}.nav-mobile-right{align-items:center;display:flex}.nav-mobile-menu{z-index:101;background:#0f1c2efa;flex-direction:column;gap:.25rem;padding:2rem;display:flex;position:fixed;inset:68px 0 0;overflow-y:auto}.nav-mobile-link{color:#fffc;border-bottom:1px solid #ffffff14;padding:.85rem 0;font-size:1.2rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-mobile-link:hover{color:var(--white)}.nav-mobile-book{background:var(--accent);color:var(--white);text-align:center;border-radius:6px;margin-top:1.5rem;padding:1rem;font-size:1rem;font-weight:600;text-decoration:none}}.waiver-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;background:#0a061ebf;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.waiver-card{background:var(--white);border-radius:12px;flex-direction:column;width:100%;max-width:680px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000059}.waiver-header{border-bottom:1px solid #e8e3da;flex-shrink:0;padding:2rem 2rem 1.25rem}.waiver-title{color:var(--navy);margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.waiver-subtitle{color:var(--muted);font-size:.9rem}.waiver-body{flex-direction:column;flex:1;gap:1rem;padding:1.5rem 2rem;display:flex;overflow-y:auto}.waiver-para{color:var(--text);font-size:.875rem;line-height:1.7}.waiver-footer{border-top:1px solid #e8e3da;flex-direction:column;flex-shrink:0;gap:1rem;padding:1.25rem 2rem 1.75rem;display:flex}.waiver-check-label{color:var(--navy);cursor:pointer;align-items:flex-start;gap:.65rem;font-size:.9rem;font-weight:600;line-height:1.5;display:flex}.waiver-check-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:.15rem}.waiver-btn{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;width:100%;padding:.85rem 2rem;font-size:1rem;font-weight:600;transition:background .2s}.waiver-btn:hover:not(:disabled){background:var(--navy2)}.waiver-btn:disabled{opacity:.45;cursor:not-allowed}@media (width<=540px){.waiver-header,.waiver-body,.waiver-footer{padding-left:1.25rem;padding-right:1.25rem}}.booking-page{background:#d8d0f0;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 2rem 4rem;display:flex}.booking-header-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;width:100%;max-width:720px;padding:2rem 2.5rem}.schedule-location-section{flex-direction:column;width:100%;max-width:720px;display:flex}.schedule-section-header{letter-spacing:.12em;text-transform:uppercase;color:#1e1040;width:100%;max-width:720px;padding:.5rem 0 .25rem;font-size:.75rem;font-weight:700}.schedule-list{flex-direction:column;gap:1.25rem;width:100%;max-width:720px;padding-bottom:4px;display:flex}.schedule-row{border:1.5px solid #644bb44d;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem;transition:border-color .15s,background .15s;display:flex}.schedule-row--bookable{cursor:pointer}.schedule-row--bookable:hover{background:#ffffff26;border-color:#644bb48c}.schedule-row--booked{opacity:.55;cursor:default}.schedule-row-info{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.schedule-date{color:#1e1040;font-size:.95rem;font-weight:600}.schedule-details{flex-wrap:wrap;align-items:center;gap:.4rem .65rem;display:flex}.schedule-time{white-space:nowrap;font-size:.85rem;font-weight:600}.schedule-teacher{color:#1e1040;font-size:.82rem;font-weight:500}.schedule-location{font-size:.82rem}.schedule-row-action{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.4rem;display:flex}.schedule-price{color:#3a3a3a;font-size:.8rem;font-weight:700}.schedule-price--free{color:#27a96c}.schedule-row-arrow{opacity:.5;font-size:1.1rem;transition:opacity .15s,transform .15s}.schedule-row--bookable:hover .schedule-row-arrow{opacity:1;transform:translate(3px)}.slot-type{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:3px;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.slot-booked-badge{letter-spacing:.08em;text-transform:uppercase;color:#27a96c;white-space:nowrap;background:#27a96c1f;border-radius:3px;padding:.2rem .5rem;font-size:.7rem;font-weight:700}.slot-desc{color:var(--muted);padding-top:.1rem;font-size:.8rem;font-style:italic}.slot-empty{color:#1e1040;text-align:center;padding:2rem 0;font-style:italic}.booking-signin-prompt{text-align:center;color:var(--muted);border-top:1px solid #e5e0d8;flex-direction:column;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.booking-divider{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-top:1px solid #e5e0d8;margin-top:.5rem;padding:1rem 0 .25rem;font-size:.75rem;font-weight:700}.booking-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;width:100%;max-width:640px;padding:3rem}.booking-back{color:var(--navy);cursor:pointer;text-align:left;letter-spacing:.02em;background:0 0;border:none;width:100%;max-width:640px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.booking-back:hover{color:var(--accent2)}.booking-title{color:var(--navy);letter-spacing:-.02em;margin-bottom:.5rem;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700}.booking-subtitle{color:var(--muted);margin-bottom:2.25rem;font-size:1rem}.booking-form{flex-direction:column;gap:1.25rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.form-group input,.form-group select,.form-group textarea{font-family:var(--sans);color:var(--text);background:var(--white);resize:vertical;border:1px solid #ddd8d0;border-radius:5px;outline:none;padding:.65rem .85rem;font-size:.95rem;transition:border-color .2s}.form-group input::placeholder,.form-group textarea::placeholder{color:#bbb5ac}.booking-submit{background:var(--navy);color:var(--white);font-family:var(--sans);letter-spacing:.03em;cursor:pointer;border:none;border-radius:5px;margin-top:.5rem;padding:.9rem 2rem;font-size:1rem;font-weight:600;transition:background .2s,transform .15s}.booking-submit:hover:not(:disabled){background:var(--navy2);transform:translateY(-1px)}.booking-submit:disabled{opacity:.6;cursor:not-allowed}.booking-success{text-align:center;padding:3.5rem 3rem}.success-icon{background:var(--accent);width:56px;height:56px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;font-size:1.5rem;display:flex}.donation-prompt{text-align:left;border-top:1px solid #e5e0d8;margin-top:2rem;padding-top:2rem}.donation-title{color:var(--navy);margin-bottom:.75rem;font-size:1.25rem;font-weight:700}.donation-body{color:var(--text);margin-bottom:1.5rem;font-size:.925rem;line-height:1.65}.donation-presets{gap:.75rem;margin-bottom:.85rem;display:flex}.donation-preset-btn{background:var(--navy);color:var(--white);cursor:pointer;border:none;border-radius:6px;flex:1;padding:.65rem;font-size:1rem;font-weight:600;transition:background .15s,transform .1s}.donation-preset-btn:hover:not(:disabled){background:var(--navy2);transform:translateY(-1px)}.donation-preset-btn:disabled{opacity:.5;cursor:not-allowed}.donation-custom-row{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.donation-currency{color:var(--navy);font-size:1rem;font-weight:600}.donation-custom-input{font-family:var(--sans);color:var(--text);background:var(--white);border:1px solid #ddd8d0;border-radius:5px;outline:none;flex:1;padding:.6rem .75rem;font-size:.95rem;transition:border-color .2s}.donation-custom-input:focus{border-color:var(--accent)}.donation-custom-btn{background:var(--accent);color:var(--white);cursor:pointer;white-space:nowrap;border:none;border-radius:5px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;transition:background .15s}.donation-custom-btn:hover:not(:disabled){background:var(--accent2)}.donation-custom-btn:disabled{opacity:.5;cursor:not-allowed}.donation-skip{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-top:.25rem;padding:0;font-size:.875rem;text-decoration:underline}.donation-skip:hover{color:var(--navy)}.booking-price-note{color:var(--muted);background:#fffbf0;border:1px solid #f0dfa0;border-radius:6px;margin:0;padding:.6rem .85rem;font-size:.85rem}@media (width<=540px){.booking-page{padding:5rem 1rem 3rem}.booking-card,.booking-header-card{padding:1.5rem 1.25rem}.form-row{grid-template-columns:1fr}.schedule-row{flex-wrap:wrap}.schedule-row-action{flex-direction:row;justify-content:flex-end;align-items:center;gap:.75rem;width:100%}}.bm-form{display:contents}.bm-class-summary{flex-direction:column;flex:1;gap:.3rem;display:flex}.bm-date{color:var(--navy);margin:.2rem 0 0;font-size:1.3rem;font-weight:700}.bm-meta{color:var(--muted);flex-wrap:wrap;gap:.35rem .75rem;font-size:.875rem;font-weight:500;display:flex}.bm-close{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-self:flex-start;padding:.25rem;font-size:1.1rem;line-height:1}.bm-close:hover{color:var(--navy)}.auth-page{background:#d8d0f0;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 2rem 4rem;display:flex}.auth-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;width:100%;max-width:480px;padding:3rem}.auth-card--wide{max-width:680px}.auth-back{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;max-width:480px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.auth-back:hover{color:var(--accent2)}.auth-card--wide~.auth-back,.auth-card--wide .auth-back{max-width:680px}.auth-icon{background:var(--accent);width:56px;height:56px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;font-size:1.4rem;display:flex}.auth-title{color:var(--navy);letter-spacing:-.02em;margin-bottom:.5rem;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:700}.auth-subtitle{color:var(--muted);margin-bottom:2rem;font-size:1rem;line-height:1.6}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.profile-name-row{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.form-group label{color:var(--navy);letter-spacing:.02em;font-size:.825rem;font-weight:600}.form-group input{font-family:var(--sans);color:var(--text);background:var(--white);border:1px solid #ddd8d0;border-radius:5px;outline:none;padding:.65rem .85rem;font-size:.95rem;transition:border-color .2s}.form-group input::placeholder{color:#bbb5ac}.form-group input:focus{border-color:var(--accent)}.form-group input:disabled{color:var(--muted);cursor:not-allowed;background:#f5f3ef}.form-success{color:#27a96c;background:#f0faf5;border:1px solid #b2e4ce;border-radius:5px;padding:.65rem .85rem;font-size:.875rem}.account-header-actions{align-items:center;gap:.5rem;display:flex}@media (width<=480px){.profile-name-row{grid-template-columns:1fr}.account-header{flex-direction:column;gap:.25rem}.account-header .auth-subtitle{margin-bottom:0}.booking-row-main{flex-wrap:wrap}.booking-actions{width:100%;margin-left:0}}.auth-submit{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;width:100%;padding:.9rem 2rem;font-size:1rem;font-weight:600;transition:background .2s,transform .15s}.auth-submit:hover:not(:disabled){background:var(--navy2);transform:translateY(-1px)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.account-header{border-bottom:1px solid #e8e3da;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.account-menu{position:relative}.account-menu-btn{width:36px;height:36px;color:var(--navy);cursor:pointer;background:#f0edf9;border:1.5px solid #d8d0f0;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s;display:flex}.account-menu-btn:hover{border-color:var(--accent);background:#e8e2f5}.account-menu-dropdown{background:var(--white);z-index:50;border:1px solid #e5e0d8;border-radius:8px;min-width:150px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001a}.account-menu-item{width:100%;font-family:var(--sans);color:var(--navy);text-align:left;cursor:pointer;background:0 0;border:none;padding:.75rem 1.1rem;font-size:.9rem;font-weight:500;transition:background .15s;display:block}.account-menu-item:hover{background:#f5f2fd}.account-menu-item--danger{color:#c0392b;border-top:1px solid #ece8e2}.account-menu-item--danger:hover{background:#fdf0ef}.auth-logout{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ddd8d0;border-radius:5px;padding:.4rem 1rem;font-size:.875rem;font-weight:500;transition:border-color .2s,color .2s}.auth-logout:hover{border-color:var(--navy);color:var(--navy)}.no-bookings{text-align:center;color:var(--muted);flex-direction:column;gap:1.25rem;padding:2rem 0;display:flex}.bookings-section{flex-direction:column;gap:0;display:flex}.bookings-section+.bookings-section{margin-top:2rem}.bookings-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.5rem;font-size:.72rem;font-weight:700}.bookings-section--past .booking-row{opacity:.6}.bookings-section--past .booking-row:hover{opacity:.85}.bookings-section--past .booking-watch-btn{opacity:1!important}.booking-watch-btn{background:var(--navy);color:var(--white);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:.25rem .65rem;font-size:.8rem;font-weight:600;transition:background .2s}.booking-watch-btn:hover:not(:disabled){background:var(--accent2)}.booking-watch-btn:disabled{opacity:.6;cursor:default}.bookings-list{flex-direction:column;gap:0;display:flex}.booking-row{border-bottom:1px solid #e8e3da;flex-direction:column;gap:.3rem;padding:1.25rem 0;display:flex}.booking-row-main{align-items:center;gap:1rem;display:flex}.booking-row--cancelled{opacity:.65}.booking-actions{gap:.5rem;margin-left:auto;display:flex}.booking-cancel,.booking-rebook{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ddd8d0;border-radius:4px;padding:.25rem .65rem;font-size:.8rem;font-weight:500;transition:border-color .2s,color .2s}.booking-cancel:hover:not(:disabled){color:#c0392b;border-color:#c0392b}.booking-rebook:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.booking-cancel:disabled,.booking-rebook:disabled{opacity:.5;cursor:not-allowed}.booking-review-row{margin-top:.4rem}.booking-review-btn{color:#f0b429;border:1px solid #f0b42966;border-radius:4px;padding:.2rem .6rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s}.booking-review-btn:hover{border-color:#f0b429}.booking-reviewed-badge{color:var(--muted);letter-spacing:.02em;font-size:.8rem;text-decoration:none}.booking-reviewed-badge:hover{color:var(--navy)}.late-cancel-warning{color:#7a2020;background:#fff5f5;border:1px solid #f5c6c6;border-radius:8px;margin-top:.75rem;padding:.85rem 1rem;font-size:.875rem;line-height:1.5}.late-cancel-actions{gap:.65rem;margin-top:.65rem;display:flex}.late-cancel-confirm{color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--sans);background:#c0392b;border:none;border-radius:5px;padding:.45rem 1rem}.late-cancel-confirm:hover:not(:disabled){background:#a93226}.late-cancel-confirm:disabled{opacity:.5;cursor:not-allowed}.late-cancel-dismiss{color:var(--navy);border:1px solid var(--navy);cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--sans);background:0 0;border-radius:5px;padding:.45rem 1rem}.late-cancel-dismiss:hover{background:var(--navy);color:var(--white)}.booking-class{color:var(--navy);font-size:1rem;font-weight:600}.booking-location{color:var(--muted);font-size:.875rem}.booking-row-meta{align-items:center;gap:1rem;display:flex}.booking-date,.booking-time{color:var(--muted);font-size:.8rem}.booking-teacher{color:var(--accent2);font-size:.8rem;font-weight:500}.booking-status{letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:700}.booking-notes{color:var(--muted);margin-top:.2rem;font-size:.875rem;font-style:italic}.form-error{color:#c0392b;background:#fdf0ef;border:1px solid #f5c6c2;border-radius:5px;padding:.65rem .85rem;font-size:.875rem}.qr-page-card{text-align:center;flex-direction:column;align-items:center;display:flex}.qr-page-box{background:#fff;border:1px solid #e8e3da;border-radius:12px;flex-direction:column;align-items:center;gap:1rem;margin-top:1.5rem;padding:1.5rem;display:flex}.qr-page-name{color:var(--navy);margin:0;font-size:1rem;font-weight:600}.profile-qr-section{border-top:1px solid #e8e3da;flex-direction:column;align-items:center;gap:.65rem;margin-top:2rem;padding-top:1.75rem;display:flex}.profile-qr-label{color:var(--navy);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.85rem;font-weight:700}.profile-qr-box{background:#fff;border:1px solid #e8e3da;border-radius:10px;padding:1rem}.profile-qr-hint{color:var(--muted);text-align:center;margin:0;font-size:.8rem}.vmodal-overlay{z-index:200;background:#000000d1;justify-content:center;align-items:center;padding:1.5rem;animation:.18s vmodal-in;display:flex;position:fixed;inset:0}@keyframes vmodal-in{0%{opacity:0}to{opacity:1}}.vmodal{background:#0e0e14;border-radius:10px;flex-direction:column;width:100%;max-width:860px;animation:.2s vmodal-rise;display:flex;overflow:hidden;box-shadow:0 24px 64px #0009}@keyframes vmodal-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.vmodal-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:.75rem 1rem .75rem 1.25rem;display:flex}.vmodal-title{color:#ffffffbf;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;overflow:hidden}.vmodal-close{color:#ffffff73;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:.25rem .5rem;font-size:1rem;transition:color .15s,background .15s}.vmodal-close:hover{color:#fff;background:#ffffff1a}.vmodal-body{background:#000;justify-content:center;align-items:center;min-height:200px;display:flex}.vmodal-video{width:100%;max-height:72vh;display:block}.vmodal-loading,.vmodal-error{color:#ffffff73;padding:3rem;font-size:.9rem;font-style:italic}.vmodal-error{color:#e89090}.admin-page{background:#fdf0e6;flex-direction:column;gap:2rem;max-width:100%;min-height:100vh;padding:6rem 2rem 4rem;display:flex}.admin-page>*{width:100%;max-width:860px;margin-left:auto;margin-right:auto}.admin-header{border-bottom:1px solid #e5e0d8;justify-content:space-between;align-items:flex-start;padding-bottom:1.5rem;display:flex}.admin-title{color:var(--navy);margin-bottom:.25rem;font-size:2rem;font-weight:700}.admin-sub{color:var(--muted);font-size:.95rem}.admin-back{color:var(--navy);cursor:pointer;background:0 0;border:none;font-size:.9rem;font-weight:700;transition:color .2s}.admin-back:hover{color:var(--accent2)}.admin-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:2px solid #bfb9af;gap:.25rem;padding-bottom:0;display:flex;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--navy)}.admin-tab--active{color:var(--navy);border-bottom-color:var(--navy)}.admin-location-tabs{gap:.5rem;margin-bottom:1.25rem;display:flex}.admin-location-tab{font-family:var(--sans);color:var(--muted);cursor:pointer;background:#f5f2ef;border:1.5px solid #e0dbd4;border-radius:6px;align-items:center;gap:.5rem;padding:.45rem 1rem;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:flex}.admin-location-tab:hover{border-color:var(--accent2);color:var(--navy)}.admin-location-tab--active{background:var(--navy);border-color:var(--navy);color:var(--white)}.admin-location-tab-count{background:#fff3;border-radius:10px;padding:.1rem .45rem;font-size:.75rem;font-weight:700}.admin-location-tab:not(.admin-location-tab--active) .admin-location-tab-count{color:var(--muted);background:#00000014}.admin-location-block{margin-bottom:1.5rem}.admin-location-title{color:var(--accent2);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.admin-table{border:1px solid #e5e0d8;border-radius:8px;overflow:hidden}.admin-table-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#f2ede6;align-items:center;gap:1rem;padding:.6rem 1.25rem;font-size:.75rem;font-weight:700;display:grid}.admin-table-head--schedules{grid-template-columns:auto auto auto 1fr auto auto 1.5fr 1.3fr}.admin-table-head--classtypes{grid-template-columns:auto 1.5fr 1.5fr auto auto}.admin-table-head--teachers{grid-template-columns:auto 2fr minmax(0,1.5fr)}.admin-table-head--posts{grid-template-columns:auto 2fr 1fr}.admin-table-head--customers{grid-template-columns:auto 1.5fr minmax(0,2fr) 1fr}.admin-table-row{background:var(--white);border-top:1px solid #e5e0d8;align-items:center;gap:1rem;padding:.85rem 1.25rem;transition:background .15s;display:grid}.admin-table-row--schedules{grid-template-columns:auto auto auto 1fr auto auto 1.5fr 1.3fr}.admin-table-row--classtypes{grid-template-columns:auto 1.5fr 1.5fr auto auto}.admin-table-row--teachers{grid-template-columns:auto 2fr minmax(0,1.5fr)}.admin-table-row--posts{grid-template-columns:auto 2fr 1fr}.admin-table-row--customers{grid-template-columns:auto 1.5fr minmax(0,2fr) 1fr}.admin-table-row:hover{background:#faf8f5}.admin-table-row--inactive{opacity:.45}.admin-cell-day{color:var(--navy);font-size:.95rem;font-weight:500}.admin-cell-time{color:var(--muted);font-size:.875rem}.admin-cell-desc{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-style:italic;overflow:hidden}.admin-form-desc{grid-column:1/-1}.slot-type{letter-spacing:.1em;text-transform:uppercase;border-radius:3px;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.slot-type--yin{color:#2d7a96;background:#82b4c833}.slot-type--yang{color:#6340b0;background:#8b6fd426}.slot-type--offsite{color:#a05a10;background:#dc8c3c26}.admin-toggle{letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;padding:.2rem .45rem;font-size:.65rem;font-weight:700;transition:opacity .15s}.admin-toggle--on{color:#1a7a4a;background:#d4f0e0}.admin-toggle--off{color:#7a1a1a;background:#f0d4d4}.admin-toggle:hover{opacity:.8}.admin-row-actions{align-items:center;gap:.25rem;display:flex}.admin-icon-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .3rem;font-size:1rem;line-height:1;transition:background .15s}.admin-icon-btn:hover{background:#f0ece8}.admin-icon-btn--delete:hover{background:#fdf0ef}.admin-post-status-cell{flex-direction:column;gap:.3rem;display:flex}.admin-delete{color:#ccc;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.85rem;transition:color .15s,background .15s}.admin-delete:hover{color:#c0392b;background:#fdf0ef}.admin-add-card{background:var(--white);border:1px solid #e5e0d8;border-radius:8px;padding:1.75rem}.admin-add-form{margin-top:1rem}.admin-form-field{margin-bottom:1.25rem}.admin-form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--navy);font-size:.8rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{font-family:var(--sans);color:var(--text);resize:vertical;border:1px solid #ddd8d0;border-radius:5px;outline:none;padding:.55rem .75rem;font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent)}.admin-teacher-select{font-family:var(--sans);color:var(--text);background:var(--white);cursor:pointer;border:1px solid #ddd8d0;border-radius:4px;outline:none;max-width:130px;padding:.3rem .5rem;font-size:.8rem}.admin-teacher-select:focus{border-color:var(--accent)}.admin-edit-btn{color:var(--navy);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ddd8d0;border-radius:4px;padding:.25rem .65rem;font-size:.8rem;font-weight:500;transition:border-color .15s}.admin-edit-btn:hover{border-color:var(--accent)}.admin-form-actions{align-items:center;gap:.75rem;display:flex}.admin-cancel-btn{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #ddd8d0;border-radius:5px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;transition:border-color .2s}.admin-cancel-btn:hover{border-color:var(--navy);color:var(--navy)}.admin-add-btn{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;transition:background .2s}.admin-add-btn:hover:not(:disabled){background:var(--navy2)}.admin-add-btn:disabled{opacity:.6;cursor:not-allowed}.admin-post-status{font-size:.8rem;font-weight:600}.admin-post-status--published{color:#1a7a4a}.admin-post-status--draft{color:var(--muted)}.admin-invite-cell{align-items:center;display:flex}.admin-invite-ok{color:#1a7a4a;font-size:.85rem;font-weight:600}.admin-sub-note{color:var(--muted);margin-bottom:.75rem;font-size:.8rem}.admin-error{color:#c0392b;background:#fdf0ef;border:1px solid #f5c6c2;border-radius:5px;margin-bottom:.75rem;padding:.65rem .85rem;font-size:.875rem}.admin-field-hint{color:var(--muted);font-size:.78rem;font-style:italic}.admin-input-readonly{cursor:default;color:var(--muted)!important;background:#f5f2ed!important}.admin-checkbox-label{color:var(--navy);cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.admin-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent2);cursor:pointer;flex-shrink:0}.admin-color-row{align-items:center;gap:.75rem;display:flex}.admin-color-row input[type=color]{cursor:pointer;background:0 0;border:1px solid #ddd8d0;border-radius:5px;width:40px;height:36px;padding:2px}.admin-contrast-block{flex-direction:column;gap:.6rem;margin-top:.6rem;display:flex}.admin-contrast-hints{flex-wrap:wrap;gap:.5rem;display:flex}.admin-color-swatches{flex-wrap:wrap;gap:.35rem;display:flex}.admin-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:24px;height:24px;padding:0;transition:transform .1s,border-color .1s}.admin-color-swatch:hover{transform:scale(1.2)}.admin-color-swatch--active{border-color:var(--navy);box-shadow:0 0 0 2px white, 0 0 0 4px var(--navy);transform:scale(1.15)}.admin-contrast-chip{white-space:nowrap;border-radius:20px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.admin-contrast-chip--pass{color:#27a96c;background:#f0faf5;border:1px solid #b2e4ce}.admin-contrast-chip--fail{color:#c0392b;background:#fdf0ef;border:1px solid #f5c6c2}.admin-credential-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:.5rem;margin-bottom:.5rem;display:grid}.admin-credential-row input{font-family:var(--sans);color:var(--text);border:1px solid #ddd8d0;border-radius:5px;outline:none;padding:.45rem .65rem;font-size:.875rem}.admin-credential-row input:focus{border-color:var(--accent)}@media (width<=640px){.admin-credential-row{grid-template-columns:1fr auto}.admin-credential-row input:last-of-type{grid-column:1/-1}}.admin-color-swatch{vertical-align:middle;border:1px solid #0000001a;border-radius:3px;width:18px;height:18px;display:inline-block}@media (width<=640px){.admin-form-row{grid-template-columns:1fr}.admin-table-head{display:none}.admin-table-row--classtypes{grid-template-columns:auto 1fr auto}.admin-table-row--teachers{grid-template-columns:auto 1fr}.admin-table-row--posts{grid-template-columns:auto 1fr auto}.admin-table-row--customers{grid-template-columns:auto 1fr}.admin-table-row--schedules{grid-template-columns:auto auto auto 1fr}}.admin-tab-badge{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 6px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.admin-messages-list{flex-direction:column;gap:1rem;display:flex}.admin-message-card{background:#fff;border:1px solid #e8e3da;border-radius:8px;flex-direction:column;gap:.5rem;padding:1.25rem 1.5rem;display:flex}.admin-message-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-message-meta{flex-direction:column;gap:.1rem;display:flex}.admin-message-meta strong{color:var(--navy);font-size:.95rem}.admin-message-email{color:var(--accent);font-size:.85rem;text-decoration:none}.admin-message-email:hover{text-decoration:underline}.admin-message-date{color:var(--muted);white-space:nowrap;font-size:.8rem}.admin-message-subject{color:var(--navy);font-size:.95rem;font-weight:600}.admin-message-body{color:var(--text);white-space:pre-wrap;font-size:.9rem;line-height:1.6}.admin-reply-btn{color:var(--accent);margin-top:.25rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s;display:inline-block}.admin-reply-btn:hover{color:var(--accent2)}.teacher-page{background:#e8f0e8;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 2rem 4rem;display:flex}.teacher-back{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;max-width:720px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.teacher-back:hover{color:var(--accent2)}.teacher-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;width:100%;max-width:720px;padding:2.5rem}.teacher-header{border-bottom:1px solid #e8e3da;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.teacher-title{color:var(--navy);margin-bottom:.25rem;font-size:1.8rem;font-weight:700}.teacher-sub{color:var(--muted);font-size:.9rem}.teacher-loading,.teacher-empty{color:var(--muted);text-align:center;padding:2rem 0;font-style:italic}.teacher-sessions{flex-direction:column;gap:1.5rem;display:flex}.teacher-section{flex-direction:column;gap:.375rem;display:flex}.teacher-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.25rem;font-size:.72rem;font-weight:700}.teacher-section--past .teacher-session-link{opacity:.55}.teacher-section--past .teacher-session-link:hover{opacity:.8}.teacher-session-link{background:#faf8f5;border:1px solid #e5e0d8;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.teacher-session-link:hover{background:#f2ede6;border-color:#d0c8bc}.teacher-session-right{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.teacher-session-arrow{color:var(--muted);font-size:.9rem}.teacher-session{border:1px solid #e5e0d8;border-radius:8px;overflow:hidden}.teacher-checkin-link{text-align:right;color:var(--accent2);letter-spacing:.03em;padding:.4rem 1.25rem 0;font-size:.8rem;font-weight:700;text-decoration:none;display:block}.teacher-checkin-link:hover{text-decoration:underline}.teacher-session-row{cursor:pointer;text-align:left;background:#faf8f5;border:none;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem 1.25rem;transition:background .15s;display:flex}.teacher-session-row:hover{background:#f5f2ef}.teacher-session-info{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.teacher-session-date{color:var(--navy);font-size:.95rem;font-weight:600}.teacher-session-loc,.teacher-session-time{color:var(--muted);font-size:.875rem}.teacher-session-chevron{color:var(--muted);flex-shrink:0;font-size:.7rem}.teacher-roster{background:var(--white);border-top:1px solid #e5e0d8;padding:1.25rem}.teacher-roster-empty{color:var(--muted);font-size:.9rem;font-style:italic}.teacher-roster-count{color:var(--accent2);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.teacher-roster-table{flex-direction:column;display:flex}.teacher-roster-head,.teacher-roster-row{grid-template-columns:1.5fr 2fr 1fr auto;align-items:center;gap:1rem;padding:.5rem 0;font-size:.875rem;display:grid}.teacher-roster-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #e8e3da;margin-bottom:.25rem;padding-bottom:.5rem;font-size:.75rem;font-weight:700}.teacher-roster-row{border-bottom:1px solid #f0ede8}.teacher-roster-row:last-child{border-bottom:none}.teacher-roster-email,.teacher-roster-phone{color:var(--muted)}.teacher-roster-status{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.teacher-roster-status--pending{color:#e8a020}.teacher-roster-status--confirmed{color:#27a96c}.teacher-session-actions{justify-content:flex-end;align-items:center;gap:1rem;padding:.4rem 1.25rem 0;display:flex}.teacher-upload-link{color:var(--navy);cursor:pointer;letter-spacing:.03em;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:700;transition:color .2s}.teacher-upload-link:hover{color:var(--accent2)}.teacher-recording-badge{letter-spacing:.04em;font-size:.75rem;font-weight:700}.teacher-recording-badge--live{color:#27a96c}.teacher-recording-badge--draft{color:var(--muted)}.teacher-watch-btn{font-family:var(--sans);background:var(--navy);color:var(--white);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:.25rem .7rem;font-size:.775rem;font-weight:600;transition:background .15s}.teacher-watch-btn:hover:not(:disabled){background:var(--accent2)}.teacher-watch-btn:disabled{opacity:.5;cursor:not-allowed}.upload-panel{background:#faf8f5;border-top:1px solid #e5e0d8;flex-direction:column;gap:.75rem;padding:1rem 1.25rem 1.25rem;display:flex}.upload-title-preview{color:var(--navy);margin:0;font-size:.875rem;font-weight:600}.upload-fields{flex-direction:column;gap:.5rem;display:flex}.upload-input{background:var(--white);width:100%;color:var(--navy);box-sizing:border-box;border:1px solid #ddd8cf;border-radius:6px;padding:.6rem .85rem;font-family:inherit;font-size:.875rem}.upload-input:focus{border-color:var(--accent2);outline:none}.upload-input:disabled{opacity:.6}.upload-textarea{resize:vertical;min-height:60px}.upload-file-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.upload-choose-btn{background:var(--white);min-width:0;color:var(--muted);cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;border:1.5px dashed #c0bab0;border-radius:6px;flex:1;padding:.6rem 1rem;font-size:.85rem;transition:border-color .2s;overflow:hidden}.upload-choose-btn:hover:not(:disabled){border-color:var(--accent2);color:var(--navy)}.upload-choose-btn:disabled{opacity:.6;cursor:default}.upload-submit-btn{background:var(--navy);color:var(--white);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:.6rem 1.25rem;font-size:.875rem;font-weight:600;transition:background .2s}.upload-submit-btn:hover:not(:disabled){background:var(--accent2)}.upload-submit-btn:disabled{opacity:.6;cursor:default}.upload-progress-bar{background:#e5e0d8;border-radius:3px;height:6px;overflow:hidden}.upload-progress-fill{background:var(--accent2);border-radius:3px;height:100%;transition:width .2s}.upload-error{color:#c0392b;font-size:.85rem}.upload-done{color:#27a96c;border-top:1px solid #e5e0d8;padding:1rem 1.25rem;font-size:.875rem;font-weight:600}.tp-page{background:#fdf8f3;min-height:100vh;padding:5rem 1.5rem 4rem}.tp-container{max-width:760px;margin:0 auto}.tp-loading{text-align:center;color:var(--muted);padding:6rem 2rem;font-size:1rem}.tp-back{color:var(--muted);margin-bottom:2rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:color .15s;display:inline-block}.tp-back:hover{color:var(--navy)}.tp-hero{align-items:flex-start;gap:2rem;margin-bottom:2.5rem;display:flex}.tp-photo{background:var(--accent);border:4px solid #fffc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:160px;height:160px;display:flex;overflow:hidden;box-shadow:0 4px 20px #00000014}.tp-photo img{object-fit:cover;width:100%;height:100%}.tp-initials{color:var(--white);font-size:3rem;font-weight:700}.tp-hero-info{flex-direction:column;gap:.5rem;padding-top:1rem;display:flex}.tp-name{color:var(--navy);font-size:2rem;font-weight:800;line-height:1.15}.tp-tagline{color:var(--muted);font-size:1rem;line-height:1.6}.tp-section{border-top:1px solid #e8e3da;margin-bottom:2.5rem;padding-top:2rem}.tp-section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--accent2);margin-bottom:1rem;font-size:.75rem;font-weight:700}.tp-bio{color:var(--text);flex-direction:column;gap:1rem;font-size:1rem;line-height:1.75;display:flex}.tp-credentials{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.tp-credential{color:var(--navy);background:var(--white);border:1px solid #e8e3da;border-radius:8px;align-items:center;gap:.85rem;padding:.65rem 1rem;font-size:.95rem;font-weight:500;display:flex}.tp-cred-img{object-fit:contain;flex-shrink:0;width:36px;height:36px}.tp-cta{text-align:center;border-top:1px solid #e8e3da;padding-top:2.5rem}.tp-book-btn{background:var(--navy);color:var(--white);border-radius:6px;padding:.85rem 2.5rem;font-size:1rem;font-weight:700;text-decoration:none;transition:background .2s;display:inline-block}.tp-book-btn:hover{background:var(--navy2)}@media (width<=600px){.tp-hero{text-align:center;flex-direction:column;align-items:center}.tp-photo{width:130px;height:130px}.tp-name{font-size:1.6rem}.tp-hero-info{align-items:center;padding-top:0}}.walkin-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:600;background:#0a061ebf;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.walkin-panel{background:var(--white);border-radius:12px;flex-direction:column;width:100%;max-width:480px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000059}.walkin-header{border-bottom:1px solid #e8e3da;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;display:flex}.walkin-title{color:var(--navy);margin:0;font-size:1.2rem;font-weight:700}.walkin-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1}.walkin-close:hover{color:var(--navy)}.walkin-tabs{border-bottom:1px solid #e8e3da;display:flex}.walkin-tab{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem;font-size:.9rem;font-weight:600;transition:color .15s,border-color .15s}.walkin-tab--active{color:var(--navy);border-bottom-color:var(--accent)}.walkin-tab:hover:not(.walkin-tab--active){color:var(--navy)}.walkin-paid-toggle{color:var(--navy);cursor:pointer;border-bottom:1px solid #f0ebe3;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;display:flex}.walkin-paid-toggle input[type=checkbox]{accent-color:#27a96c;cursor:pointer;width:1rem;height:1rem}.walkin-scan-section{flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 1.5rem 1.5rem;display:flex}.walkin-hint{color:var(--muted);text-align:center;margin:0;font-size:.875rem;line-height:1.5}.walkin-scanner-box{background:#000;border-radius:8px;width:100%;max-width:300px;min-height:260px;overflow:hidden}.walkin-status{color:var(--muted);margin:0;font-size:.85rem}.walkin-scan-error{color:#c0392b;text-align:center;margin:0;font-size:.85rem;line-height:1.5}.walkin-form-section{flex-direction:column;gap:0;display:flex;overflow-y:auto}.walkin-form{flex-direction:column;gap:.85rem;padding:1.25rem 1.5rem 1rem;display:flex}.walkin-form--new{border-top:1px solid #e8e3da;padding-top:.5rem}.walkin-email-row{align-items:flex-end;gap:.65rem;display:flex}.walkin-lookup-btn{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;flex-shrink:0;margin-bottom:0;padding:.65rem 1rem;font-size:.875rem;font-weight:600}.walkin-lookup-btn:hover:not(:disabled){background:var(--navy2)}.walkin-lookup-btn:disabled{opacity:.5;cursor:not-allowed}.walkin-lookup-btn--full{width:100%;margin-top:.25rem}.walkin-found{flex-direction:column;gap:.65rem;padding:.75rem 1.5rem 1.25rem;display:flex}.walkin-found-meta{color:var(--muted);font-size:.875rem;font-weight:400}.walkin-found-name{color:var(--navy);background:#f0faf5;border:1px solid #b8e8d0;border-radius:6px;margin:0;padding:.65rem .85rem;font-size:.9rem}.walkin-hint--new{color:var(--muted);margin:0;font-size:.8rem}.walkin-name-row{gap:.75rem;display:flex}.walkin-name-row .form-group{flex:1}.walkin-form-error{color:#c0392b;margin:0;font-size:.85rem}.walkin-submit{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;border:none;border-radius:6px;margin-top:.25rem;padding:.85rem;font-size:1rem;font-weight:600;transition:background .2s}.walkin-submit:hover:not(:disabled){background:var(--navy2)}.walkin-submit:disabled{opacity:.5;cursor:not-allowed}.walkin-success{text-align:center;color:#27a96c;padding:2rem 1.5rem;font-size:1.1rem;font-weight:600}@media (width<=480px){.walkin-name-row{flex-direction:column}.walkin-header,.walkin-scan-section,.walkin-form{padding-left:1.25rem;padding-right:1.25rem}}.checkin-page{background:#e8f0e8;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 1.5rem 4rem;transition:background .6s;display:flex}.checkin-page--all-in{background:#a8dfc0}.checkin-back{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;max-width:560px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.checkin-back:hover{color:var(--accent2)}.checkin-card{background:var(--white);border:1px solid #e5e0d8;border-radius:12px;width:100%;max-width:560px;padding:2rem}.checkin-loading,.checkin-empty{color:var(--muted);text-align:center;padding:2rem 0;font-style:italic}.checkin-header{border-bottom:1px solid #e8e3da;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;padding-bottom:1.5rem;display:flex}.checkin-session-label{text-transform:uppercase;letter-spacing:.1em;color:var(--accent2);margin-bottom:.35rem;font-size:.8rem;font-weight:700}.checkin-title{color:var(--navy);font-size:1.5rem;font-weight:700;line-height:1.2}.checkin-count{background:#f0faf5;border:1px solid #b2e4ce;border-radius:10px;flex-direction:column;flex-shrink:0;align-items:center;min-width:80px;padding:.75rem 1.25rem;display:flex}.checkin-count-num{color:#27a96c;font-size:2rem;font-weight:700;line-height:1}.checkin-count-den{color:var(--muted);font-size:1rem;font-weight:500}.checkin-count-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:.25rem;font-size:.7rem;font-weight:700}.checkin-list{flex-direction:column;gap:.5rem;display:flex}.checkin-row{background:var(--white);text-align:left;border:1.5px solid #e5e0d8;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem 1.25rem;transition:border-color .15s,background .15s;display:flex}.checkin-row-action{all:unset;cursor:pointer}.checkin-row-action:disabled{opacity:.7;cursor:not-allowed}.checkin-row:has(.checkin-row-action:not(:disabled)):hover:not(.checkin-row--unpaid){background:#f8fdf9;border-color:#27a96c}.checkin-row--in{background:#f0faf5;border-color:#27a96c}.checkin-row--unpaid{background:#fffbf0;border-color:#e8a020}.checkin-row:disabled{opacity:.7;cursor:not-allowed}.checkin-student-info{flex-direction:column;gap:.2rem;display:flex}.checkin-name{color:var(--navy);font-size:1rem;font-weight:600}.checkin-time{color:#27a96c;font-size:.8rem}.checkin-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:.35rem .85rem;font-size:.8rem;font-weight:700}.checkin-badge--out{color:var(--muted);background:#f2ede6}.checkin-badge--in{color:#fff;background:#27a96c}.checkin-badge--unpaid{color:#c07000;background:#fff0e0}.checkin-collect-btn{white-space:nowrap;cursor:pointer;color:#fff;background:#27a96c;border:none;border-radius:20px;flex-shrink:0;padding:.35rem .85rem;font-size:.8rem;font-weight:700;transition:background .15s}.checkin-collect-btn:hover:not(:disabled){background:#1e8a56}.checkin-collect-btn:disabled{opacity:.7;cursor:not-allowed}.checkin-unpaid-badge{text-transform:uppercase;letter-spacing:.05em;color:#c07000;background:#fff0e0;border:1px solid #f5d080;border-radius:4px;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.checkin-teacher{color:var(--accent2);margin-top:.2rem;font-size:.85rem;font-weight:500}.checkin-recording-section{border-top:1px solid #e8e3da;margin-top:1.75rem;padding-top:1.5rem}.checkin-upload-toggle{color:var(--navy);cursor:pointer;background:0 0;border:1.5px dashed #c0bab0;border-radius:6px;width:100%;padding:.6rem 1.25rem;font-size:.875rem;font-weight:600;transition:border-color .2s,color .2s}.checkin-upload-toggle:hover{border-color:var(--accent2);color:var(--accent2)}.checkin-recording-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.checkin-recording-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.checkin-watch-btn{font-family:var(--sans);color:var(--navy);cursor:pointer;background:#f0f4f8;border:1px solid #ddd8d0;border-radius:5px;padding:.4rem 1rem;font-size:.825rem;font-weight:600;transition:background .15s}.checkin-watch-btn:hover:not(:disabled){background:#e5eaf0}.checkin-watch-btn:disabled{opacity:.5;cursor:not-allowed}.checkin-recording-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.checkin-recording-title{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;overflow:hidden}.checkin-recording-status{color:var(--muted);font-size:.75rem;font-weight:600}.checkin-recording-status--live{color:#27a96c}.checkin-publish-btn{font-family:var(--sans);cursor:pointer;white-space:nowrap;border-radius:5px;flex-shrink:0;padding:.4rem 1rem;font-size:.825rem;font-weight:600;transition:background .15s,color .15s}.checkin-publish-btn--publish{background:var(--navy);color:var(--white);border:none}.checkin-publish-btn--publish:hover:not(:disabled){background:var(--accent2)}.checkin-publish-btn--unpublish{color:var(--muted);background:0 0;border:1px solid #ddd8d0}.checkin-publish-btn--unpublish:hover:not(:disabled){color:#c0392b;border-color:#c0392b}.checkin-publish-btn:disabled{opacity:.5;cursor:not-allowed}.checkin-header-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.65rem;display:flex}.checkin-walkin-btn{background:var(--accent);color:var(--white);font-family:var(--sans);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:700;transition:background .2s}.checkin-walkin-btn:hover{background:var(--accent2)}.checkin-name-row{align-items:center;gap:.5rem;display:flex}.checkin-walkin-badge{text-transform:uppercase;letter-spacing:.05em;color:#c07000;background:#fff0e0;border:1px solid #f5d080;border-radius:4px;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.checkin-walkin-inline{border-bottom:1px solid #f0ebe3;padding:1rem 1.25rem}.checkin-wi-search-row{gap:.5rem;display:flex}.checkin-wi-phone{border:1.5px solid #ddd;border-radius:8px;outline:none;flex:1;padding:.55rem .85rem;font-size:.95rem;transition:border-color .15s}.checkin-wi-phone:focus{border-color:var(--accent)}.checkin-wi-search-btn{background:var(--navy);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.9rem;font-weight:600}.checkin-wi-search-btn:disabled{opacity:.5;cursor:not-allowed}.checkin-wi-qr-btn{color:var(--navy);cursor:pointer;background:#f2ede6;border:none;border-radius:8px;padding:.55rem .85rem;font-size:.85rem;font-weight:600}.checkin-wi-qr-btn:hover{background:#e8e0d5}.checkin-wi-result{flex-direction:column;gap:.6rem;margin-top:.75rem;display:flex}.checkin-wi-paid-toggle{color:var(--navy);cursor:pointer;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500;display:flex}.checkin-wi-paid-toggle input{accent-color:#27a96c;cursor:pointer}.checkin-wi-found{background:#f8fdf9;border:1.5px solid #27a96c;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .85rem;display:flex}.checkin-wi-found-name{color:var(--navy);font-size:.95rem;font-weight:600}.checkin-wi-action-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#27a96c;border:none;border-radius:20px;padding:.4rem 1rem;font-size:.85rem;font-weight:700}.checkin-wi-action-btn:disabled{opacity:.6;cursor:not-allowed}.checkin-wi-no-account{color:var(--muted);margin:0;font-size:.82rem}.checkin-wi-name-row{gap:.5rem;display:flex}.checkin-wi-name-row input{border:1.5px solid #ddd;border-radius:8px;outline:none;flex:1;padding:.5rem .75rem;font-size:.9rem}.checkin-wi-name-row input:focus{border-color:var(--accent)}.checkin-wi-new-form{flex-direction:column;gap:.5rem;display:flex}.checkin-wi-success{color:#27a96c;margin:.5rem 0 0;font-size:.85rem;font-weight:600}.checkin-wi-error{color:#c0392b;margin:.5rem 0 0;font-size:.85rem}.contact-page{background:var(--cream);min-height:100vh;font-family:var(--sans);padding:3rem 2rem 5rem}.contact-page-header{max-width:900px;margin:0 auto 3rem}.contact-back{color:var(--muted);margin-bottom:1.5rem;font-size:.875rem;text-decoration:none;transition:color .2s;display:inline-block}.contact-back:hover{color:var(--navy)}.contact-label{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:.75rem;font-weight:700;display:block}.contact-page-header h1{color:var(--navy);margin-bottom:.75rem;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.15}.contact-intro{color:var(--muted);max-width:560px;font-size:1.05rem;line-height:1.6}.contact-body{grid-template-columns:1fr 340px;align-items:start;gap:2.5rem;max-width:900px;margin:0 auto;display:grid}.contact-form-col{background:var(--white);border-radius:12px;padding:2rem;box-shadow:0 2px 12px #0000000f}.contact-form{flex-direction:column;gap:1.25rem;display:flex}.contact-field{flex-direction:column;gap:.4rem;display:flex}.contact-field label{color:var(--navy);font-size:.85rem;font-weight:600}.contact-field input,.contact-field textarea{font-size:.95rem;font-family:var(--sans);color:var(--text);background:var(--cream);resize:vertical;border:1px solid #ddd8d0;border-radius:6px;padding:.7rem .9rem;transition:border-color .2s}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--accent);outline:none}.contact-error{color:#c0392b;font-size:.875rem}.contact-submit{background:var(--navy);color:var(--white);font-size:1rem;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:.85rem 2rem;transition:background .2s}.contact-submit:hover:not(:disabled){background:var(--navy2)}.contact-submit:disabled{opacity:.6;cursor:not-allowed}.contact-success{text-align:center;padding:2rem 0}.contact-success-icon{color:#27a96c;background:#27a96c22;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1rem;font-size:1.5rem;display:flex}.contact-success h2{color:var(--navy);margin-bottom:.5rem;font-size:1.5rem}.contact-success p{color:var(--muted);margin-bottom:1.5rem}.contact-home-btn{background:var(--navy);color:var(--white);border-radius:6px;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .2s;display:inline-block}.contact-home-btn:hover{background:var(--navy2)}.contact-info-col{flex-direction:column;gap:1.5rem;display:flex}.contact-info-block{background:var(--white);border-radius:12px;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex;box-shadow:0 2px 12px #0000000f}.contact-info-block h3{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:.25rem;font-size:.7rem;font-weight:700}.contact-link{color:var(--navy);font-size:.95rem;text-decoration:none;transition:color .2s}.contact-link:hover{color:var(--accent)}.contact-hours-status{align-items:center;gap:.4rem;margin-bottom:.25rem;display:flex}.hours-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.hours-dot--open{background:#27a96c}.hours-dot--closed{background:#bbb}.hours-open{color:#27a96c;font-size:.85rem;font-weight:600}.hours-closed{color:var(--muted);font-size:.85rem;font-weight:600}.contact-hours-row{justify-content:space-between;gap:1rem;font-size:.875rem;display:flex}.contact-hours-row span:first-child{color:var(--muted)}.contact-hours-row span:last-child{color:var(--text);font-weight:500}.contact-location{border-top:1px solid #f0ece6;flex-direction:column;gap:.1rem;padding-top:.75rem;font-size:.875rem;display:flex}.contact-location:first-of-type{border-top:none;padding-top:0}.contact-location strong{color:var(--navy);font-size:.95rem}.contact-location span{color:var(--muted)}@media (width<=700px){.contact-body{grid-template-columns:1fr}.contact-info-col{order:-1}.contact-submit{text-align:center;width:100%}}.review-page{background:var(--cream);min-height:100vh;font-family:var(--sans);padding:3rem 2rem 5rem}.review-back{color:var(--muted);margin-bottom:2rem;font-size:.875rem;text-decoration:none;transition:color .2s;display:inline-block}.review-back:hover{color:var(--navy)}.review-card{background:var(--white);border-radius:12px;max-width:520px;margin:0 auto;padding:2.5rem 2rem;box-shadow:0 2px 12px #0000000f}.review-label{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:block}.review-card h1{color:var(--navy);margin-bottom:.25rem;font-size:1.75rem;font-weight:700;line-height:1.2}.review-class-info{color:var(--muted);margin-bottom:1.75rem;font-size:.9rem}.review-stars-input{gap:.25rem;display:flex}.review-star-btn{color:#ddd;cursor:pointer;background:0 0;border:none;padding:0;font-size:2rem;line-height:1;transition:color .1s,transform .1s}.review-star-btn--filled{color:#f0b429}.review-star-btn:hover{transform:scale(1.1)}.review-form{flex-direction:column;gap:1.25rem;margin-top:1.5rem;display:flex}.review-field{flex-direction:column;gap:.4rem;display:flex}.review-field label{color:var(--navy);font-size:.85rem;font-weight:600}.review-optional{color:var(--muted);font-weight:400}.review-field input,.review-field textarea{font-size:.95rem;font-family:var(--sans);color:var(--text);background:var(--cream);resize:vertical;border:1px solid #ddd8d0;border-radius:6px;padding:.7rem .9rem;transition:border-color .2s}.review-field input:focus,.review-field textarea:focus{border-color:var(--accent);outline:none}.review-error{color:#c0392b;font-size:.875rem}.review-submit{background:var(--navy);color:var(--white);font-size:1rem;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:.85rem 2rem;transition:background .2s}.review-submit:hover:not(:disabled){background:var(--navy2)}.review-submit:disabled{opacity:.6;cursor:not-allowed}.review-submitted-icon{color:#f0b429;background:#f0b42922;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1rem;font-size:1.75rem;display:flex}.review-card h1{text-align:center}.review-stars-display{justify-content:center;gap:.2rem;margin:.75rem 0;font-size:1.25rem;display:flex}.review-stars-display--lg{font-size:1.75rem}.star-on{color:#f0b429}.star-off{color:#ddd}.review-existing-body{text-align:center;color:var(--text);margin:.5rem 0 1rem;font-size:.95rem;font-style:italic;line-height:1.6}.review-pending-note{text-align:center;color:var(--muted);margin-bottom:1.5rem;font-size:.875rem}.review-home-btn{background:var(--navy);color:var(--white);text-align:center;border-radius:6px;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .2s;display:block}.review-home-btn:hover{background:var(--navy2)}.review-loading,.review-page-error{text-align:center;color:var(--muted);margin-top:4rem}.reviews-page{background:var(--cream);min-height:100vh;font-family:var(--sans);padding:3rem 2rem 5rem}.reviews-page-header{max-width:860px;margin:0 auto 3rem}.reviews-back{color:var(--muted);margin-bottom:1.5rem;font-size:.875rem;text-decoration:none;transition:color .2s;display:inline-block}.reviews-back:hover{color:var(--navy)}.reviews-label{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:block}.reviews-page-header h1{color:var(--navy);margin-bottom:1rem;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.15}.reviews-avg{align-items:center;gap:.5rem;display:flex}.reviews-avg-star{color:#f0b429;font-size:1.5rem;line-height:1}.reviews-avg-score{color:var(--navy);font-size:1.75rem;font-weight:700;line-height:1}.reviews-avg-count{color:var(--muted);font-size:.9rem}.reviews-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;max-width:860px;margin:0 auto;display:grid}.rv-card{background:var(--white);border-radius:12px;flex-direction:column;gap:.75rem;padding:1.5rem;display:flex;box-shadow:0 2px 12px #0000000f}.rv-stars{gap:.1rem;font-size:1.1rem;display:flex}.rv-star--on{color:#f0b429}.rv-star--off{color:#ddd}.rv-body{color:var(--text);flex:1;font-size:.95rem;font-style:italic;line-height:1.6}.rv-meta{border-top:1px solid #f0ece6;flex-direction:column;gap:.15rem;margin-top:auto;padding-top:.5rem;display:flex}.rv-name{color:var(--navy);font-size:.875rem;font-weight:600}.rv-class{color:var(--accent);font-size:.8rem;font-weight:500}.rv-date{color:var(--muted);font-size:.8rem}.reviews-empty{text-align:center;color:var(--muted);margin-top:4rem}.benefits-page{background:var(--cream);min-height:100vh;font-family:var(--sans);padding:3rem 2rem 5rem}.benefits-header{max-width:760px;margin:0 auto 3.5rem}.benefits-back{color:var(--muted);margin-bottom:1.5rem;font-size:.875rem;text-decoration:none;transition:color .2s;display:inline-block}.benefits-back:hover{color:var(--navy)}.benefits-label{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:block}.benefits-header h1{color:var(--navy);margin-bottom:1rem;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.15}.benefits-intro{color:var(--muted);max-width:680px;font-size:1.05rem;line-height:1.75}.benefits-body{flex-direction:column;gap:3rem;max-width:960px;margin:0 auto;display:flex}.benefits-section-header{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.benefits-section-icon{font-size:1.5rem;line-height:1}.benefits-section h2{color:var(--navy);margin:0;font-size:1.35rem;font-weight:700}.benefits-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.benefits-card{background:var(--white);border-top:3px solid var(--accent);border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000000d}.benefits-card h3{color:var(--navy);margin-bottom:.5rem;font-size:1rem;font-weight:700}.benefits-card p{color:var(--muted);margin:0;font-size:.925rem;line-height:1.7}.benefits-cta{background:var(--navy);text-align:center;max-width:960px;color:var(--white);border-radius:16px;margin:4rem auto 0;padding:3rem 2.5rem}.benefits-cta h2{color:var(--white);margin-bottom:.75rem;font-size:clamp(1.4rem,3vw,2rem);font-weight:700}.benefits-cta p{color:#ffffffbf;margin-bottom:1.75rem;font-size:1rem;line-height:1.6}.benefits-cta-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.benefits-cta-btn{font-size:.95rem;font-weight:600;font-family:var(--sans);border-radius:6px;padding:.8rem 2rem;text-decoration:none;transition:opacity .2s,background .2s;display:inline-block}.benefits-cta-btn--primary{background:var(--accent);color:var(--white)}.benefits-cta-btn--primary:hover{opacity:.88}.benefits-cta-btn--secondary{color:var(--white);background:0 0;border:2px solid #ffffff73}.benefits-cta-btn--secondary:hover{border-color:var(--white)}@media (width<=640px){.benefits-grid{grid-template-columns:1fr}.benefits-cta{padding:2rem 1.5rem}}
