*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sand: #f5f0eb;--sand-dark: #ebe4dc;--warm-white: #faf8f5;--sage: #8a9a7b;--sage-deep: #6b7d5e;--clay: #c4a882;--clay-light: #d4be9f;--stone: #9c9488;--charcoal: #3a3631;--charcoal-light: #5a554f;--blush: #e8d5c4;--mist: #d4cdc4;--error: #c47b6b;--success: #7b9c6b;--serif: "Cormorant Garamond", Georgia, serif;--sans: "Jost", system-ui, sans-serif}html{scroll-behavior:smooth}body{min-width:320px;overflow-x:hidden;background:var(--warm-white);color:var(--charcoal);font-family:var(--sans);font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit}button,input,select,textarea{font:inherit;max-width:100%}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:1rem;left:1rem;z-index:200;transform:translateY(-150%);padding:.7rem 1rem;background:var(--charcoal);color:var(--warm-white);font-size:.82rem;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;transition:transform .2s ease}.skip-link:focus{transform:translateY(0)}.site-nav{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.5rem 3rem;transition:background .5s ease,padding .4s ease,box-shadow .5s ease}.site-nav.scrolled{padding:1rem 3rem;background:#faf8f5eb;box-shadow:0 1px #0000000a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.nav-logo{color:var(--charcoal);font-family:var(--serif);font-size:1.4rem;font-weight:400;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}.nav-logo span{font-size:.85em;font-weight:300;letter-spacing:.05em;opacity:.7}.nav-links{display:flex;gap:2.5rem;list-style:none}.nav-links a{position:relative;color:var(--charcoal-light);font-size:.82rem;font-weight:400;letter-spacing:.12em;text-decoration:none;text-transform:uppercase;transition:color .3s ease}.nav-links a:after{position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--sage);content:"";transition:width .4s ease}.nav-links a:hover{color:var(--charcoal)}.nav-links a:hover:after{width:100%}.nav-toggle{display:none;flex-direction:column;gap:5px;padding:4px;border:0;background:none;cursor:pointer}.nav-toggle span{width:24px;height:1.5px;background:var(--charcoal)}section{padding:8rem 2rem}.content-state{position:fixed;right:1rem;bottom:1rem;z-index:120;max-width:min(320px,calc(100vw - 2rem));padding:.7rem .9rem;border:1px solid rgba(138,154,123,.18);background:#faf8f5eb;color:var(--sage-deep);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.section-empty{max-width:560px;margin:0 auto;padding:2rem;border:1px solid var(--sand-dark);color:var(--stone);font-size:.9rem;text-align:center}.section-label{display:block;margin-bottom:1.5rem;color:var(--sage);font-size:.72rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase}.section-heading{margin-bottom:1.5rem;color:var(--charcoal);font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:300;line-height:1.2}.btn{position:relative;z-index:0;display:inline-block;overflow:hidden;max-width:100%;min-height:2.75rem;padding:1rem 2.8rem;border:1px solid var(--charcoal);background:transparent;color:var(--charcoal);cursor:pointer;font-family:var(--sans);font-size:.78rem;font-weight:400;letter-spacing:.18em;overflow-wrap:anywhere;text-decoration:none;text-align:center;text-transform:uppercase;transition:color .5s ease}.btn:before{position:absolute;top:0;left:-100%;z-index:-1;width:100%;height:100%;background:var(--charcoal);content:"";transition:left .5s ease}.btn:hover{color:var(--warm-white)}.btn:hover:before{left:0}.btn-sage{border-color:var(--sage-deep);color:var(--sage-deep)}.btn-sage:before{background:var(--sage-deep)}.hero{position:relative;display:flex;min-height:100vh;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(165deg,var(--warm-white) 0%,var(--sand) 40%,var(--blush) 100%)}.hero.has-image{background:var(--charcoal)}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.36}.hero:before,.hero:after{position:absolute;border-radius:50%;content:""}.hero:before{top:-20%;right:-10%;width:60vw;height:60vw;background:radial-gradient(circle,rgba(138,154,123,.08) 0%,transparent 70%)}.hero:after{bottom:-15%;left:-5%;width:40vw;height:40vw;background:radial-gradient(circle,rgba(196,168,130,.1) 0%,transparent 70%)}.hero-content{position:relative;z-index:1;max-width:800px;padding:2rem;text-align:center}.hero.has-image .hero-content{max-width:880px}.hero.has-image .hero-eyebrow,.hero.has-image .hero-sub{color:#fffbf6e6}.hero.has-image h1,.hero.has-image h1 em{color:var(--warm-white)}.hero-eyebrow{margin-bottom:2rem;color:var(--sage);font-size:.78rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase}.hero h1{margin-bottom:1.5rem;color:var(--charcoal);font-family:var(--serif);font-size:clamp(2.8rem,6.5vw,5.5rem);font-weight:300;line-height:1.1}.hero h1 em{color:var(--sage-deep);font-style:italic}.hero-sub{max-width:520px;margin:0 auto 2.5rem;color:var(--charcoal-light);font-size:1.05rem;line-height:1.8}.scroll-hint{position:absolute;bottom:2.5rem;left:50%;display:flex;transform:translate(-50%);flex-direction:column;align-items:center;gap:.5rem;color:var(--stone);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}.scroll-hint .line{width:1px;height:40px;background:var(--stone)}.about{background:var(--warm-white)}.about-grid{display:grid;max-width:1200px;align-items:center;gap:6rem;grid-template-columns:1fr 1fr;margin:0 auto}.about-image{position:relative;overflow:hidden;aspect-ratio:3 / 4}.about-image img{display:block;width:100%;height:100%;object-fit:cover}.about-image:after{position:absolute;inset:-20px -20px 20px 20px;z-index:-1;border:1px solid var(--clay-light);content:""}.img-placeholder{display:flex;width:100%;height:100%;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--sand-dark) 0%,var(--blush) 50%,var(--clay-light) 100%)}.img-placeholder svg{width:80px;height:80px;color:var(--charcoal);opacity:.25}.about-text p{margin-bottom:1.5rem;color:var(--charcoal-light);font-size:1rem;line-height:1.9}.about-badges{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.about-badge{padding:.4rem .9rem;border:1px solid var(--sand-dark);background:#8a9a7b0f;color:var(--sage-deep);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.about-stats{display:flex;gap:3rem;margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--sand-dark)}.stat-number{color:var(--sage-deep);font-family:var(--serif);font-size:2.4rem;font-weight:300;line-height:1}.stat-label{margin-top:.4rem;color:var(--stone);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}.quote-section{position:relative;overflow:hidden;background:var(--charcoal);color:var(--sand);text-align:center}.quote-section .section-label{color:var(--clay-light)}.quote-text{max-width:700px;margin:0 auto 2rem;color:var(--sand);font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,3rem);font-style:italic;font-weight:300;line-height:1.4}.quote-attr{color:var(--stone);font-size:.82rem;letter-spacing:.15em;text-transform:uppercase}.offerings{background:var(--sand)}.offerings-header{display:flex;max-width:1200px;align-items:flex-end;justify-content:space-between;margin:0 auto 4rem}.offerings-header .section-heading{margin-bottom:0}.offerings-grid{display:grid;max-width:1200px;gap:2rem;grid-template-columns:repeat(3,1fr);margin:0 auto}.offering-card{padding:3rem 2.5rem;background:var(--warm-white);transition:transform .5s ease,box-shadow .5s ease}.offering-card:hover{transform:translateY(-4px);box-shadow:0 20px 60px #3a36310f}.offering-number{margin-bottom:1.5rem;color:var(--sand-dark);font-family:var(--serif);font-size:3.5rem;font-weight:300;line-height:1}.offering-card h3{margin-bottom:1rem;font-family:var(--serif);font-size:1.5rem;font-weight:400}.offering-card p{margin-bottom:1.5rem;color:var(--charcoal-light);font-size:.92rem;line-height:1.8}.offering-detail{color:var(--sage-deep);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.schedule{background:var(--warm-white)}.schedule-container{max-width:900px;margin:0 auto}.schedule-header{margin-bottom:4rem;text-align:center}.schedule-header p{max-width:500px;margin:0 auto;color:var(--charcoal-light);font-size:1rem}.schedule-section-title{display:flex;align-items:center;gap:.6rem;margin-top:3rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--sage);color:var(--charcoal);font-family:var(--serif);font-size:1.2rem;font-weight:400}.schedule-group:first-of-type .schedule-section-title{margin-top:0}.schedule-row{display:grid;align-items:center;gap:1rem;grid-template-columns:130px 1fr auto auto;padding:1.6rem 1rem;border-bottom:1px solid var(--sand-dark);border-radius:2px;color:inherit;text-decoration:none;transition:background .3s ease,padding-left .3s ease}.schedule-row.bookable{cursor:pointer}.schedule-row.bookable:hover{padding-left:1.5rem;background:var(--sand)}.schedule-row.bookable:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px}.schedule-day{font-family:var(--serif);font-size:1.1rem;font-weight:400}.schedule-class{display:flex;flex-direction:column;gap:.15rem}.schedule-class-name{font-size:.95rem;font-weight:400}.schedule-class-venue{color:var(--stone);font-size:.76rem;letter-spacing:.03em}.schedule-time{color:var(--charcoal-light);font-size:.85rem;text-align:right}.schedule-badge{padding:.3rem .7rem;border-radius:2px;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.schedule-badge.book{background:#8a9a7b1f;color:var(--sage-deep)}.schedule-badge.school{background:#9c94881f;color:var(--stone)}.schedule-note{margin-top:1rem;padding:.8rem 1rem;border-left:2px solid var(--sage);background:#8a9a7b0d;color:var(--stone);font-size:.82rem;font-style:italic}.pricing{background:var(--warm-white)}.pricing-container{max-width:1000px;margin:0 auto}.pricing-header{margin-bottom:4rem;text-align:center}.pricing-header p{max-width:460px;margin:0 auto;color:var(--charcoal-light);font-size:1rem}.pricing-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr)}.pricing-card{position:relative;padding:3rem 2.5rem;border:1px solid var(--sand-dark);text-align:center;transition:transform .5s ease}.pricing-card.featured{border-color:var(--sage);background:linear-gradient(180deg,rgba(138,154,123,.04) 0%,transparent 100%)}.pricing-card.featured:before{position:absolute;top:-12px;left:50%;transform:translate(-50%);padding:.3rem 1rem;background:var(--sage-deep);color:var(--warm-white);content:"Most Popular";font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}.pricing-card:hover{transform:translateY(-4px)}.pricing-name{margin-bottom:.5rem;font-family:var(--serif);font-size:1.3rem;font-weight:400}.pricing-price{margin-bottom:.3rem;color:var(--charcoal);font-family:var(--serif);font-size:2.8rem;font-weight:300}.pricing-period{margin-bottom:2rem;color:var(--stone);font-size:.78rem;letter-spacing:.08em}.pricing-features{margin-bottom:2.5rem;list-style:none}.pricing-features li{padding:.6rem 0;border-bottom:1px solid var(--sand);color:var(--charcoal-light);font-size:.88rem}.newsletter{background:linear-gradient(180deg,var(--sand) 0%,var(--blush) 100%);text-align:center}.newsletter-container{max-width:520px;margin:0 auto}.newsletter-container p{color:var(--charcoal-light);font-size:1rem;line-height:1.8}.newsletter-form{display:flex;gap:0;margin-top:2rem}.newsletter-form input{flex:1;padding:.9rem 1.2rem;border:1px solid var(--sand-dark);border-right:0;background:var(--warm-white);color:var(--charcoal);font-size:.88rem;font-weight:300;outline:none}.newsletter-form input:focus{border-color:var(--sage)}.newsletter-form button{padding:.9rem 1.8rem;border:1px solid var(--sage-deep);background:var(--sage-deep);color:var(--warm-white);cursor:pointer;font-size:.72rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;transition:background .4s;white-space:nowrap}.newsletter-form button:hover{border-color:var(--charcoal);background:var(--charcoal)}.newsletter-success{margin-top:2rem;padding:1rem;color:var(--sage-deep);font-size:.9rem}.booking-page{min-height:100vh;background:var(--warm-white)}.booking-section{max-width:1180px;margin:0 auto;padding-top:10rem}.booking-header{max-width:640px;margin-bottom:3rem}.booking-header p,.booking-selected,.booking-success p{color:var(--charcoal-light);font-size:1rem;line-height:1.8}.booking-grid{display:grid;align-items:flex-start;gap:1.25rem;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(320px,1.1fr)}.booking-panel,.booking-success{border:1px solid var(--sand-dark);border-radius:6px;background:var(--warm-white)}.booking-panel{display:grid;gap:1rem;padding:1.25rem}.booking-panel .section-label{margin-bottom:0}.booking-panel h2{color:var(--charcoal);font-family:var(--serif);font-size:1.35rem;font-weight:400;line-height:1.25}.booking-class-list,.booking-date-list,.booking-form{display:grid;gap:.85rem}.booking-choice,.booking-date{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem;border:1px solid var(--sand-dark);border-radius:6px;background:#fff;color:var(--charcoal);cursor:pointer;min-width:0;text-align:left}.booking-choice>span,.booking-date>span{min-width:0}.booking-choice.selected,.booking-date.selected{border-color:var(--sage);background:#8a9a7b14}.booking-choice strong,.booking-date strong{display:block;font-size:.95rem;font-weight:400}.booking-choice small,.booking-date small{display:block;color:var(--stone);font-size:.76rem;line-height:1.5}.booking-choice>span:last-child,.booking-status{color:var(--sage-deep);font-size:.75rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.booking-status.full{color:var(--error)}.booking-form label{display:grid;gap:.4rem}.booking-form label span{color:var(--charcoal-light);font-size:.72rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.booking-form input,.booking-form textarea{width:100%;padding:.75rem .85rem;border:1px solid var(--sand-dark);border-radius:6px;background:#fff;color:var(--charcoal);font:inherit}.booking-form textarea{min-height:7rem;resize:vertical}.booking-form input:focus,.booking-form textarea:focus,.booking-choice:focus-visible,.booking-date:focus-visible{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px #8a9a7b24}.booking-terms{display:flex!important;align-items:flex-start;gap:.65rem}.booking-terms input{width:1rem;height:1rem;margin-top:.2rem;accent-color:var(--sage)}.booking-terms label,.booking-policy-links{color:var(--charcoal-light);letter-spacing:0!important;line-height:1.5;text-transform:none!important}.booking-terms label{font-size:.82rem;font-weight:400}.booking-policy-links{margin-top:.25rem;font-size:.78rem}.booking-terms a{color:var(--sage-deep);font-weight:400}.booking-success{max-width:680px;margin:0 auto;padding:3rem;text-align:center}.booking-success p{margin-bottom:1rem}.booking-success .btn{margin-top:1.5rem}.placeholder-page{min-height:100vh;background:linear-gradient(165deg,var(--warm-white) 0%,var(--sand) 55%,var(--blush) 100%)}.placeholder-section{max-width:720px;margin:0 auto;padding-top:12rem}.placeholder-section p{margin-bottom:2rem;color:var(--charcoal-light);font-size:1.05rem;line-height:1.8}.legal-page{min-height:100vh;background:var(--warm-white)}.legal-section{max-width:780px;margin:0 auto;padding-top:12rem}.legal-copy{display:grid;gap:1.15rem;color:var(--charcoal-light);font-size:1rem;line-height:1.8}.auth-page{min-height:100vh;background:linear-gradient(165deg,var(--warm-white) 0%,var(--sand) 55%,var(--blush) 100%)}.auth-section{display:flex;min-height:100vh;align-items:center;justify-content:center;padding-top:8rem}.auth-panel{width:min(100%,460px);padding:3rem;border:1px solid rgba(138,154,123,.2);background:#faf8f5e6;box-shadow:0 30px 80px #3a363114}.auth-intro{margin-bottom:2rem;color:var(--charcoal-light);font-size:.98rem;line-height:1.8}.auth-form{display:grid;gap:1.2rem}.auth-form label{display:grid;gap:.45rem;color:var(--charcoal-light);font-size:.76rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase}.auth-form input{width:100%;padding:.9rem 1rem;border:1px solid var(--sand-dark);background:var(--warm-white);color:var(--charcoal);font-size:1rem;font-weight:300;letter-spacing:0;outline:none}.auth-form input:focus{border-color:var(--sage);box-shadow:0 0 0 3px #8a9a7b24}.auth-form .btn{width:100%;margin-top:.4rem}.auth-form .btn:disabled{cursor:wait;opacity:.6}.auth-error{padding:.8rem 1rem;border-left:2px solid var(--error);background:#c47b6b14;color:var(--charcoal);font-size:.88rem}.auth-warning{padding:.8rem 1rem;border-left:2px solid var(--clay);background:#b58b4814;color:var(--charcoal);font-size:.88rem;line-height:1.6}.auth-text-button{margin-top:1rem;padding:0;border:0;background:transparent;color:var(--sage-deep);cursor:pointer;font:inherit;font-size:.82rem;text-decoration:underline}.auth-back-link{display:inline-block;margin-top:1.5rem;color:var(--sage-deep);font-size:.78rem;font-weight:400;letter-spacing:.12em;text-decoration:none;text-transform:uppercase}.auth-recovery-panel{display:grid;gap:.85rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(138,154,123,.2)}.auth-recovery-panel h2{margin:0;font-size:1rem;font-weight:400}.auth-recovery-panel p{margin:0;color:var(--charcoal-light);font-size:.9rem;line-height:1.7}.auth-code-block,.auth-code-list{display:grid;gap:.45rem;margin:0}.auth-code-block span{color:var(--stone);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.auth-code-block code,.auth-code-list code{display:inline-block;max-width:100%;padding:.35rem .5rem;background:var(--warm-white);color:var(--charcoal);font-size:.88rem;overflow-wrap:anywhere}.auth-code-list{padding-left:1.2rem}.admin-shell{display:grid;min-height:100vh;background:var(--warm-white);grid-template-columns:260px 1fr}.admin-shell section{padding:0}.admin-sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;gap:2rem;padding:2rem 1.25rem;border-right:1px solid var(--sand-dark);background:var(--charcoal);color:var(--sand)}.admin-brand{padding:0 .75rem;color:var(--warm-white);font-family:var(--serif);font-size:1.05rem;letter-spacing:.1em;line-height:1.4;text-decoration:none;text-transform:uppercase}.admin-brand span{display:block;color:var(--clay-light);font-size:.82em;letter-spacing:.05em}.admin-nav{display:grid;gap:.25rem}.admin-nav-link{padding:.75rem;border-radius:6px;color:var(--mist);font-size:.78rem;font-weight:400;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.admin-nav-link:hover,.admin-nav-link.active{background:#faf8f51a;color:var(--warm-white)}.admin-workspace{min-width:0;padding:2rem}.mobile-admin-nav{display:none;gap:.4rem;margin-bottom:1rem;color:var(--charcoal-light);font-size:.72rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.mobile-admin-nav select{width:100%;padding:.8rem 1rem;border:1px solid var(--sand-dark);border-radius:6px;background:var(--warm-white);color:var(--charcoal)}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--sand-dark)}.admin-eyebrow{display:block;margin-bottom:.35rem;color:var(--sage-deep);font-size:.72rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase}.admin-header h1{color:var(--charcoal);font-family:var(--serif);font-size:2rem;font-weight:300;line-height:1.2}.admin-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.8rem}.admin-user{color:var(--stone);font-size:.82rem}.admin-secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.55rem .8rem;border:1px solid var(--sand-dark);border-radius:6px;background:transparent;color:var(--charcoal-light);cursor:pointer;font-size:.72rem;font-weight:400;letter-spacing:.08em;overflow-wrap:anywhere;text-align:center;text-decoration:none;text-transform:uppercase}.admin-secondary-link:hover{border-color:var(--sage);color:var(--sage-deep)}.admin-main{display:grid;gap:1.25rem}.admin-stats{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.stat-card,.admin-panel,.admin-alert{border:1px solid var(--sand-dark);border-radius:6px;background:var(--warm-white)}.stat-card{padding:1.25rem}.stat-card span{color:var(--stone);font-size:.72rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.stat-card strong{display:block;margin:.4rem 0;color:var(--charcoal);font-family:var(--serif);font-size:2.4rem;font-weight:300;line-height:1}.stat-card p{color:var(--charcoal-light);font-size:.82rem;line-height:1.5}.admin-alert{padding:1rem;border-color:#c47b6b66;background:#c47b6b14;color:var(--charcoal);font-size:.9rem}.admin-dashboard-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-panel{padding:1.25rem}.admin-panel h2{margin-bottom:1rem;color:var(--charcoal);font-family:var(--serif);font-size:1.25rem;font-weight:400}.admin-list{display:grid;gap:.8rem;list-style:none}.admin-list li{display:grid;gap:.2rem;padding-bottom:.8rem;border-bottom:1px solid var(--sand)}.admin-list li:last-child{padding-bottom:0;border-bottom:0}.admin-list strong{color:var(--charcoal);font-size:.95rem;font-weight:400}.admin-list span,.admin-empty{color:var(--stone);font-size:.88rem;line-height:1.6}.admin-content-list{display:grid;gap:1rem}.content-editor{padding:1.25rem;border:1px solid var(--sand-dark);border-radius:6px;background:var(--warm-white)}.content-editor form{display:grid;gap:1.25rem}.content-editor-header,.content-editor-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;min-width:0}.content-editor-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.6rem}.content-editor-header h2{color:var(--charcoal);font-family:var(--serif);font-size:1.35rem;font-weight:400;line-height:1.25}.content-toggle{display:flex;align-items:center;gap:.55rem;min-height:2.5rem;color:var(--charcoal-light);font-size:.78rem;font-weight:400}.content-toggle.disabled{color:var(--stone)}.content-toggle input{width:1rem;height:1rem;accent-color:var(--sage)}.content-form-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.content-field{display:grid;gap:.4rem;min-width:0}.content-field.wide{grid-column:1 / -1}.metadata-editor{display:grid;gap:1rem;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.metadata-editor.wide,.metadata-card.wide{grid-column:1 / -1}.metadata-card{display:grid;gap:1rem;min-width:0;padding:1rem;border:1px solid var(--sand);border-radius:6px;background:#fff}.metadata-card legend{padding:0 .35rem;color:var(--sage-deep);font-size:.72rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.metadata-list{display:grid;gap:.85rem}.metadata-list-row,.metadata-record{display:grid;gap:.75rem;min-width:0}.metadata-record{padding:.85rem;border:1px solid var(--sand);border-radius:6px;background:var(--warm-white)}.metadata-record-fields{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.metadata-link-field{display:grid;gap:.75rem;min-width:0}.metadata-row-actions{display:flex;flex-wrap:wrap;gap:.5rem}.content-field span{color:var(--charcoal-light);font-size:.72rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.content-field input,.content-field select,.content-field textarea{width:100%;padding:.75rem .85rem;border:1px solid var(--sand-dark);border-radius:6px;background:#fff;color:var(--charcoal);font:inherit}.content-field textarea{min-height:7rem;resize:vertical}.content-field input:focus,.content-field select:focus,.content-field textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px #8a9a7b24}.content-field-help{color:var(--stone);font-size:.82rem;line-height:1.5}.pricing-plan-editor,.pricing-plan-list{display:grid;gap:1rem}.pricing-plan-editor h3{color:var(--charcoal);font-family:var(--serif);font-size:1.2rem;font-weight:400}.pricing-plan-card,.legal-editor{display:grid;gap:1rem;padding:1rem;border:1px solid var(--sand);border-radius:6px;background:#fff}.pricing-plan-card legend{padding:0 .35rem;color:var(--sage-deep);font-size:.72rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.legal-editor-list{display:grid;gap:1rem}.legal-editor-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.legal-editor-header h3{color:var(--charcoal);font-family:var(--serif);font-size:1.1rem;font-weight:400}.legal-editor-header a{color:var(--sage-deep);font-size:.76rem;font-weight:400;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.media-uploader form,.media-library{display:grid;gap:1rem}.media-library-header,.media-card-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.media-library-header>span{color:var(--stone);font-size:.78rem}.media-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.media-card{overflow:hidden;border:1px solid var(--sand-dark);border-radius:6px;background:#fff}.media-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--sand)}.media-card-body{display:grid;gap:.9rem;padding:1rem}.media-card-body form{display:grid;gap:.85rem}.media-card-meta{color:var(--stone);font-size:.76rem;line-height:1.5}.media-picker-preview{display:flex;align-items:center;gap:.85rem;padding:.75rem;border:1px solid var(--sand);border-radius:6px;background:#8a9a7b0f}.media-picker-preview img{width:5rem;height:3.5rem;flex:0 0 auto;object-fit:cover}.media-picker-preview p{color:var(--charcoal-light);font-size:.84rem;line-height:1.5}.availability-form{display:grid;gap:1.25rem}.availability-tools-grid{display:grid;gap:1.25rem;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.availability-day-list{display:grid;gap:1rem;margin-top:1rem}.availability-day{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--sand);border-radius:6px;background:#fff}.availability-day-header,.availability-rule-summary,.availability-list li,.availability-list-actions,.availability-flags{display:flex;align-items:center;gap:.85rem}.availability-day-header,.availability-rule-summary,.availability-list li{justify-content:space-between}.availability-day-header h3,.availability-rule-summary h4{color:var(--charcoal);font-family:var(--serif);font-weight:400;line-height:1.2}.availability-day-header h3{font-size:1.1rem}.availability-rule-summary h4{font-size:1rem}.availability-day-header span,.availability-rule-summary>span{color:var(--stone);font-size:.78rem;white-space:nowrap}.availability-rule-list,.availability-list{display:grid;gap:.85rem}.availability-rule-card{display:grid;gap:1rem;padding:1rem;border:1px solid var(--sand-dark);border-radius:6px;background:var(--warm-white)}.availability-list{margin-top:1rem;list-style:none}.availability-list li{padding:.85rem 0;border-top:1px solid var(--sand)}.availability-list strong{display:block;color:var(--charcoal);font-size:.92rem;font-weight:400}.availability-list span{color:var(--stone);font-size:.78rem}.availability-flags{flex-wrap:wrap}.availability-flags label{display:flex;align-items:center;gap:.5rem;color:var(--charcoal-light);font-size:.82rem}.availability-flags input{width:1rem;height:1rem;accent-color:var(--sage)}.booking-admin-layout{display:grid;align-items:start;gap:1.25rem;grid-template-columns:minmax(0,1.25fr) minmax(20rem,.75fr)}.roster-admin-layout{display:grid;align-items:start;gap:1.25rem;grid-template-columns:minmax(0,1.2fr) minmax(20rem,.8fr)}.booking-admin-filters,.roster-filters,.analytics-filters{display:grid;gap:1.25rem}.booking-admin-list,.booking-admin-rows,.booking-admin-detail,.booking-admin-note-form,.roster-list,.roster-occurrence-rows,.roster-detail{display:grid;gap:1rem}.booking-admin-detail-anchor{min-width:0;scroll-margin-top:1rem}.booking-admin-detail-anchor:focus{outline:none}.booking-admin-date-group{display:grid;gap:1rem}.booking-admin-date-heading,.booking-admin-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.booking-admin-date-heading h2,.booking-admin-detail-header h2{margin-bottom:0}.booking-admin-date-heading span{color:var(--stone);font-size:.78rem;white-space:nowrap}.booking-admin-row{display:grid;align-items:center;gap:.85rem;grid-template-columns:4.2rem minmax(0,1.2fr) minmax(0,1fr) auto;width:100%;padding:.9rem;border:1px solid var(--sand);border-radius:6px;background:#fff;color:inherit;cursor:pointer;font:inherit;text-align:left}.roster-occurrence-row{display:grid;align-items:center;gap:.85rem;grid-template-columns:4.2rem minmax(0,1.2fr) minmax(8rem,.7fr) auto;width:100%;padding:.9rem;border:1px solid var(--sand);border-radius:6px;background:#fff;color:inherit;cursor:pointer;font:inherit;text-align:left}.booking-admin-row:hover,.booking-admin-row.selected,.roster-occurrence-row:hover,.roster-occurrence-row.selected{border-color:var(--sage);box-shadow:0 0 0 3px #8a9a7b1a}.booking-admin-time{color:var(--charcoal);font-size:.9rem;font-weight:500}.booking-admin-summary{display:grid;gap:.2rem;min-width:0}.booking-admin-summary strong{overflow-wrap:anywhere;color:var(--charcoal);font-size:.95rem;font-weight:400}.booking-admin-summary small,.booking-admin-contact{overflow-wrap:anywhere;color:var(--stone);font-size:.78rem}.roster-counts,.roster-spaces,.roster-status{color:var(--stone);font-size:.78rem}.roster-counts strong{color:var(--charcoal);font-weight:500}.roster-spaces{justify-self:end;padding:.35rem .55rem;border-radius:999px;background:#527d6a1a;color:var(--success);white-space:nowrap}.roster-spaces.low,.roster-status.closed{background:#b5893f1f;color:#73551b}.booking-status-badge{display:inline-flex;justify-content:center;min-width:5.8rem;padding:.35rem .55rem;border:1px solid var(--sand-dark);border-radius:999px;background:var(--sand);color:var(--charcoal-light);font-size:.72rem;font-weight:500;text-align:center}.booking-status-badge.confirmed{border-color:#527d6a59;background:#527d6a1a;color:var(--success)}.booking-status-badge.waitlisted{border-color:#b5893f59;background:#b5893f1f;color:#73551b}.booking-status-badge.cancelled{border-color:#c47b6b59;background:#c47b6b1a;color:var(--error)}.booking-admin-detail,.roster-detail{position:sticky;top:1rem}.roster-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.booking-admin-detail-list{display:grid;gap:.85rem}.booking-admin-detail-list div{display:grid;gap:.2rem;padding-bottom:.85rem;border-bottom:1px solid var(--sand)}.booking-admin-detail-list dt{color:var(--stone);font-size:.72rem;text-transform:uppercase}.booking-admin-detail-list dd{overflow-wrap:anywhere;color:var(--charcoal);font-size:.9rem;line-height:1.5}.booking-admin-detail-list a{color:var(--sage-deep)}.roster-attendee-section{display:grid;gap:.75rem}.roster-attendee-section h3{color:var(--charcoal);font-family:var(--serif);font-size:1rem;font-weight:400}.roster-attendee-list,.analytics-list{display:grid;gap:.75rem;list-style:none}.roster-attendee-list li,.analytics-list li{display:grid;gap:.45rem;padding:.85rem;border:1px solid var(--sand);border-radius:6px;background:#fff}.roster-attendee-list li>div,.roster-attendee-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}.roster-attendee-list strong,.analytics-list strong{color:var(--charcoal);font-size:.92rem;font-weight:500}.roster-attendee-list span,.roster-attendee-list p,.analytics-list span{overflow-wrap:anywhere;color:var(--stone);font-size:.8rem;line-height:1.5}.roster-attendee-actions a,.attention-link{min-height:2.5rem;align-items:center;color:var(--sage-deep);font-size:.82rem}.roster-attendee-actions a{display:inline-flex;padding:.45rem .7rem;border:1px solid var(--sand-dark);border-radius:6px;background:var(--warm-white);text-decoration:none}.analytics-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.attention-link{display:grid;gap:.3rem;text-decoration:none}.attention-link.urgent strong{color:var(--error)}.attention-link.attention strong{color:#73551b}.class-type-list{display:grid;gap:1rem}.class-type-form{display:grid;gap:1.25rem}.class-type-flags,.class-type-actions{display:flex;flex-wrap:wrap;gap:.85rem}.class-type-flags label{display:flex;align-items:center;gap:.5rem;color:var(--charcoal-light);font-size:.82rem}.class-type-flags input{width:1rem;height:1rem;accent-color:var(--sage)}.admin-primary-button{min-height:2.5rem;max-width:100%;padding:.75rem 1rem;border:1px solid var(--charcoal);border-radius:6px;background:var(--charcoal);color:var(--warm-white);cursor:pointer;font-size:.72rem;font-weight:400;letter-spacing:.08em;overflow-wrap:anywhere;text-align:center;text-transform:uppercase}.admin-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;max-width:100%;padding:.75rem 1rem;border:1px solid var(--sand-dark);border-radius:6px;background:#fff;color:var(--charcoal-light);cursor:pointer;font-size:.72rem;font-weight:400;letter-spacing:0;overflow-wrap:anywhere;text-align:center;text-decoration:none;text-transform:uppercase}.admin-secondary-button.compact{padding:.55rem .75rem}.admin-danger-button.compact{min-height:2.2rem;padding:.55rem .75rem}.admin-secondary-button:hover{border-color:var(--sage);color:var(--sage-deep)}.admin-danger-button{min-height:2.5rem;max-width:100%;padding:.75rem 1rem;border:1px solid rgba(196,123,107,.55);border-radius:6px;background:#c47b6b1a;color:var(--error);cursor:pointer;font-size:.72rem;font-weight:400;letter-spacing:.08em;overflow-wrap:anywhere;text-align:center;text-transform:uppercase}.admin-primary-button:disabled,.admin-secondary-button:disabled{cursor:wait;opacity:.65}.admin-danger-button:disabled{cursor:wait;opacity:.65}.content-save-state{min-height:1.5rem;color:var(--success);font-size:.82rem}.content-save-state.error{color:var(--error)}.newsletter-offer{margin-top:1rem;color:var(--sage-deep);font-size:.82rem;font-weight:400}.newsletter-privacy{margin-top:.6rem;color:var(--stone);font-size:.72rem}.contact{position:relative;overflow:hidden;padding:10rem 2rem;background:var(--charcoal);color:var(--sand);text-align:center}.contact:before,.contact:after{position:absolute;border:1px solid rgba(245,240,235,.04);border-radius:50%;content:""}.contact:before{top:-10%;right:-10%;width:40vw;height:40vw}.contact:after{bottom:-5%;left:-5%;width:30vw;height:30vw}.contact .section-label{color:var(--clay-light)}.contact .section-heading{margin-bottom:1.5rem;color:var(--sand)}.contact p{max-width:440px;margin:0 auto 3rem;color:var(--stone);font-size:1rem;line-height:1.8}.contact .btn{border-color:var(--sand);color:var(--sand)}.contact .btn:before{background:var(--sand)}.contact .btn:hover{color:var(--charcoal)}.contact-details{display:flex;flex-wrap:wrap;justify-content:center;gap:3rem;margin-top:4rem}.contact-detail{color:var(--stone);font-size:.82rem}.contact-detail a{color:var(--clay-light);text-decoration:none;transition:color .3s}.contact-detail a:hover{color:var(--sand)}.contact-hours{margin-top:1.5rem;color:var(--stone);font-size:.75rem;letter-spacing:.08em}footer{display:flex;align-items:center;justify-content:space-between;padding:2.5rem 3rem;border-top:1px solid rgba(245,240,235,.06);background:var(--charcoal)}footer span{color:var(--stone);font-size:.75rem;letter-spacing:.08em}.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:1.5rem}.footer-links a{color:var(--stone);font-size:.75rem;letter-spacing:.08em;text-decoration:none;transition:color .3s}.footer-links a:hover{color:var(--clay-light)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(max-width:1024px){.offerings-grid,.booking-grid,.media-grid,.booking-admin-layout{grid-template-columns:repeat(2,1fr)}.admin-shell{grid-template-columns:1fr}.admin-sidebar{display:none}.admin-workspace{padding:1.25rem}.mobile-admin-nav{display:grid}}@media(max-width:768px){.site-nav,.site-nav.scrolled{padding:1rem 1.5rem}.nav-links{position:fixed;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:2rem;background:var(--warm-white);z-index:99}.nav-links.open{display:flex}.nav-links a{font-size:1rem}.nav-toggle{z-index:101;display:flex}section{padding:5rem 1.5rem}.hero h1{font-size:clamp(2.7rem,15vw,4rem)}.about-grid{gap:3rem;grid-template-columns:1fr}.about-image{max-width:80%;margin:0 auto}.about-stats{gap:2rem}.offerings-header{flex-direction:column;align-items:flex-start;gap:1.5rem}.offerings-grid,.booking-grid,.pricing-grid{grid-template-columns:1fr}.booking-section{padding-top:7rem}.booking-success{padding:2rem 1.4rem}.schedule-row{grid-template-columns:1fr 1fr;gap:.3rem}.schedule-day{grid-column:1 / -1}.schedule-time{text-align:left}.newsletter-form{flex-direction:column}.newsletter-form input{border-right:1px solid var(--sand-dark)}.contact{padding:6rem 1.5rem}.contact-details{flex-direction:column;gap:1rem}footer{flex-direction:column;gap:1rem;padding:2rem 1.5rem;text-align:center}.footer-links{justify-content:center}.auth-section{align-items:flex-start;padding:7rem 1.5rem 4rem}.auth-panel{padding:2rem 1.4rem}.admin-header{flex-direction:column}.admin-header-actions{justify-content:flex-start}.admin-stats,.admin-dashboard-grid,.analytics-grid,.availability-tools-grid,.media-grid,.booking-admin-layout,.roster-admin-layout{grid-template-columns:1fr}.content-editor-header,.content-editor-footer,.legal-editor-header,.booking-admin-date-heading,.booking-admin-detail-header,.availability-day-header,.availability-rule-summary,.availability-list li,.media-library-header,.media-card-actions{flex-direction:column}.availability-day-header,.availability-rule-summary,.availability-list li{align-items:flex-start}.content-form-grid,.metadata-editor,.metadata-record-fields{grid-template-columns:1fr}.legal-section{padding-top:8rem}.booking-admin-row,.roster-occurrence-row{align-items:flex-start;grid-template-columns:1fr}.roster-spaces{justify-self:start}.booking-status-badge{width:max-content}.booking-admin-detail,.roster-detail{position:static}}@media(max-width:480px){.site-nav,.site-nav.scrolled{padding:.85rem 1rem}.nav-logo{max-width:13rem;font-size:1rem;line-height:1.25;overflow-wrap:anywhere}.nav-links{padding:5rem 1.5rem}section{padding:4rem 1rem}.hero-content{padding:1rem}.hero h1{font-size:clamp(2.35rem,14vw,3.4rem)}.section-label,.admin-eyebrow{letter-spacing:.18em}.btn{width:100%;padding-inline:1rem}.booking-section,.legal-section,.placeholder-section{padding-inline:1rem}.booking-choice,.booking-date{align-items:flex-start;flex-direction:column}.booking-choice>span:last-child,.booking-status,.schedule-badge{white-space:normal}.booking-terms{align-items:flex-start}.admin-workspace{padding:.85rem}.admin-panel,.content-editor,.stat-card{padding:1rem}.content-editor-header,.content-editor-footer,.content-editor-actions,.class-type-actions,.availability-list-actions,.roster-detail-actions{align-items:stretch;width:100%}.content-editor-actions,.class-type-actions,.availability-list-actions,.roster-detail-actions{flex-direction:column}.admin-primary-button,.admin-secondary-button,.admin-danger-button,.admin-secondary-link{width:100%}.booking-admin-date-heading span,.availability-day-header span,.availability-rule-summary>span{white-space:normal}.media-picker-preview{align-items:flex-start;flex-direction:column}.media-picker-preview img{width:100%;height:auto;aspect-ratio:4 / 3}.footer-links{flex-direction:column;gap:.75rem}}
