:root{--navy:#102e3b;--muted:#687b81;--aqua:#b8e8e1;--line:#dce5e4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7faf9;color:var(--navy);font:15px/1.7 system-ui}a{color:inherit;text-underline-offset:4px}button,input,textarea{font:inherit}.button,button{background:var(--navy);color:white;border:0;border-radius:35px;padding:14px 24px;display:inline-block;text-decoration:none;cursor:pointer}button:disabled{opacity:.6;cursor:wait}.stage{background:var(--navy);color:#d4e6e9;text-align:center;font-size:10px;letter-spacing:1px;padding:8px}header{display:flex;justify-content:space-between;align-items:center;padding:24px 7%;border-bottom:1px solid var(--line)}.brand{font:32px/1 Georgia;text-decoration:none}.brand small{display:block;font:8px/2.5 system-ui;letter-spacing:3px}nav{display:flex;gap:25px;font-size:13px}main{max-width:1250px;margin:auto;padding:65px 7%}.auth{max-width:720px;min-height:70vh}h1{font:clamp(45px,6vw,80px)/1.05 Georgia;letter-spacing:-2px;margin:25px 0}h2{font:clamp(30px,4vw,50px)/1.15 Georgia;letter-spacing:-1px;margin:20px 0}h3{font:28px Georgia;margin:15px 0}p{color:var(--muted);max-width:750px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase}.hero{padding:120px 7%;min-height:690px;background:linear-gradient(110deg,#102e3bd9,#43889960),url(https://images.unsplash.com/photo-1576013551627-0cc20b96c2a7?auto=format&fit=crop&w=1800&q=85) 50%/cover;color:white}.hero h1{font-size:clamp(65px,7.5vw,110px)}.hero em{color:#d0eeea}.hero p{color:#e1eeed}.light{background:#f7faf9;color:var(--navy);margin-top:25px}.hero-link{margin-left:25px;font-size:13px}section{margin-bottom:90px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid article{padding:30px;background:white;border:1px solid var(--line);border-radius:8px}.grid p{font-size:13px}.grid h2{font-size:38px}.notice{padding:18px;background:#dfeee8;border:1px solid #bfd7ce;border-radius:8px;font-size:13px}.muted{font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:12px;font-weight:600;margin:15px 0}input,textarea{width:100%;padding:13px;border:1px solid var(--line);background:white;border-radius:6px;color:var(--navy);margin-top:6px;font-size:14px}textarea{resize:vertical}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}.edit-card{padding:30px;background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:30px}.admin-nav{display:flex;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:20px;font-size:12px}footer{border-top:1px solid var(--line);padding:35px 7%;color:var(--muted);font-size:11px}:focus-visible{outline:3px solid #4a9398;outline-offset:4px}@media(max-width:760px){header{padding:20px 6%}nav{gap:14px;font-size:11px}.brand{font-size:27px}main{padding:45px 7%}.form-grid,.grid{grid-template-columns:1fr;gap:10px}.hero{min-height:650px;padding:100px 7%}.hero-link{display:block;margin:20px 0}.edit-card{padding:20px}section{margin-bottom:65px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}select{font:inherit;width:100%;padding:13px;margin-top:6px;border:1px solid var(--line);border-radius:6px;color:var(--navy);background:white}.admin-main{max-width:1700px;padding:40px 4%}.admin-nav{border:0;margin-bottom:40px;gap:10px}.admin-nav a{border-radius:32px;background:#e6efed;padding:12px 20px;text-decoration:none;font-size:15px}.admin-nav a.active{background:var(--navy);color:white}.admin-title{font-size:clamp(36px,4vw,56px);margin:20px 0 30px}.admin-stats{margin-bottom:30px}.admin-stats article{border-radius:14px;padding:26px}.admin-stats h2{margin:10px 0}.admin-stats .stat-label{font-size:26px}.calendar-filters,.calendar-step,.calendar-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.calendar-toolbar{justify-content:space-between;margin:30px 0 12px}.calendar-step h2{font-size:34px;margin:0 15px}.calendar-toolbar button{padding:12px 18px;border-radius:7px;background:#e3eeec;color:var(--navy)}.view-switch{display:flex;gap:5px}.view-switch button.active{background:var(--navy);color:white}.calendar-filters{justify-content:space-between;margin-bottom:20px;font-size:13px}.calendar-filters label{margin:0;max-width:190px}.calendar-key{display:flex;gap:16px;color:var(--muted);font-size:12px;flex-wrap:wrap}.month-calendar{border:1px solid var(--line);border-radius:14px;overflow:hidden}.calendar-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#e9f2ef;text-align:center;padding:14px 0;font-size:13px}.month-cell{min-height:145px;background:white;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:10px;overflow:hidden}.month-cell:nth-child(7n){border-right:0}.month-cell.outside{background:#f1f4f3;color:#91a3a8}.date-number{padding:4px 10px;border-radius:50%;color:inherit;background:transparent;font-size:14px}.date-number.today{background:var(--navy);color:white}.closed-label,.hours-label{display:block;font-size:10px;margin:4px 0;color:#53827b}.closed-label{color:#9b6864}.closed-day{background:#faf1ed}.lesson-chip{width:100%;background:#dcefeb;color:var(--navy);border-left:3px solid #3b9299;padding:5px 6px;margin:5px 0;text-align:left;border-radius:4px;font-size:11px;line-height:1.4;overflow-wrap:anywhere}.lesson-chip,.lesson-chip span,.time-lesson span{display:block}.cancelled{opacity:.6;text-decoration:line-through}.time-scroll{height:650px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:white}.time-heading{display:grid;position:sticky;top:0;z-index:5;background:#e9f2ef;text-align:center;align-items:center;min-height:48px}.time-heading button{background:transparent;color:var(--navy);border-radius:0;padding:10px}.time-heading .today{font-weight:700;color:#24828a}.time-body{display:grid}.time-labels span{display:block;height:64px;font-size:11px;padding:0 8px;text-align:right;transform:translateY(-8px)}.time-day{height:1536px;position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(180deg,transparent 0,transparent 31px,#edf2f0 0,#edf2f0 32px,transparent 0,transparent 63px,#dce5e4 0,#dce5e4 64px)}.closure-band,.working-band{position:absolute;left:0;right:0;background:#dceee45e;pointer-events:none}.closure-band{background:repeating-linear-gradient(135deg,#eedddcaa,#eedddcaa 8px,#f7eeedaa 0,#f7eeedaa 16px);font-size:11px;color:#955b57;padding:5px}.time-lesson{position:absolute;border:1px solid white;border-left:3px solid #388b93;border-radius:5px;background:#d2e9e5;color:var(--navy);padding:4px 6px;overflow:hidden;text-align:left;font-size:11px;line-height:1.3;z-index:2}.empty-calendar{padding:20px;text-align:center;margin:auto;font-size:13px}.lesson-dialog{max-width:580px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:20px;padding:35px;color:var(--navy);max-height:85vh}.lesson-dialog::backdrop{background:#102e3b88;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-close{float:right;padding:3px 12px;font-size:25px;background:#e6efed;color:var(--navy)}.participant{padding:18px 0;border-top:1px solid var(--line)}.participant p{font-size:14px}.participant small{overflow-wrap:anywhere}.closed-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px;background:#f1e9e5;border-radius:10px;margin:10px 0}.closed-row p{margin:5px 0}.delete-form{margin-top:15px}.closed-row button,.delete-form button{background:#e9efed;color:#8b4e47;font-size:12px;padding:10px 16px}summary{cursor:pointer;font-size:20px}section.edit-card{margin-bottom:35px}@media(max-width:760px){.admin-main{padding:25px 4%}.admin-nav{gap:7px;margin-bottom:25px}.admin-nav a{padding:10px 14px;font-size:13px}.calendar-step h2{font-size:25px;margin:0}.calendar-toolbar button{padding:10px 13px}.calendar-toolbar{gap:20px}.month-cell{min-height:100px;padding:4px}.hours-label{display:none}.lesson-chip{font-size:9px;padding:3px;line-height:1.3}.date-number{padding:3px 7px}.calendar-filters{gap:15px}.calendar-key{width:100%;font-size:10px;gap:10px}.calendar-weekdays{font-size:11px}.closed-label{font-size:9px}.closed-row{align-items:flex-start;flex-direction:column}.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-stats article{padding:12px}.admin-stats small{font-size:10px;line-height:1.4;display:block}.admin-stats h2{font-size:30px}.admin-stats .stat-label{font-size:18px}}.policy-details{background:#edf5f2;border:1px solid #c7dcd7;border-radius:18px;padding:30px;margin:30px 0}.policy-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #c7dcd7;padding:0 0 24px;margin-bottom:25px}.policy-details article{margin:25px 0}.policy-details p{margin:8px 0;white-space:pre-line;max-width:none}.privacy-details{margin-top:55px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}td,th{padding:14px;border-bottom:1px solid var(--line)}td{overflow-wrap:anywhere;max-width:350px}.voided{opacity:.55}.module-form-actions{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:760px){.policy-details{padding:20px}.policy-heading{align-items:start;flex-direction:column}}.booking-main{max-width:1250px;padding:55px 6%}.booking-main h1{font-size:clamp(48px,6vw,80px)}.booking-progress{display:flex;gap:25px;list-style:none;padding:20px 0;margin:25px 0 35px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.booking-progress [aria-current]{color:var(--navy);font-weight:700}.program-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:30px}.program-option{background:white;border:1px solid var(--line);color:var(--navy);border-radius:14px;text-align:left;padding:24px;transition:border-color .2s,box-shadow .2s}.program-option h3{font-size:26px}.program-option p{font-size:12px}.program-option>span:not(.eyebrow){font-size:12px;display:block}.program-option strong{display:block;margin-top:15px}.program-option.selected{border:2px solid #448f94;box-shadow:0 0 0 3px #448f9412;padding:23px}.booking-buttons{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:25px 0}.secondary,button.secondary{background:#e4efec;color:var(--navy)}.date-buttons{display:flex;gap:15px;align-items:center;justify-content:space-between;margin:22px 0;flex-wrap:wrap}.date-buttons button{font-size:12px;padding:10px 15px}.date-buttons strong{font-size:14px}.slot-options{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.slot-options button{border-radius:8px;border:1px solid var(--line);padding:13px 18px;background:white;color:var(--navy);font-size:13px}.slot-options button.selected{background:var(--navy);color:white;border-color:var(--navy)}.slot-options small{display:block;font-size:10px}.booking-summary{padding:28px;border:1px solid #c5dcd6;background:#eaf3ef;border-radius:14px;margin:25px 0}.booking-summary h2{font-size:40px}.booking-summary small{overflow-wrap:anywhere}.booking-policy{margin:30px 0}.booking-policy summary{font-size:16px}.booking-details{padding-top:15px}.booking-main .check{align-items:flex-start;font-size:14px;font-weight:400}.booking-main .check input{margin-top:5px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.status-badge{display:inline-block;background:#d4e4df;border-radius:20px;padding:4px 14px;font-size:11px;text-transform:uppercase;letter-spacing:1px}.status-badge.confirmed{background:#b8ddd4}.status-badge.pending{background:#f3e3b5}.status-badge.cancelled,.status-badge.declined,.status-badge.expired{background:#eeddd7}.booking-success{max-width:850px}.booking-success>input{font-size:12px}.booking-main button:disabled{cursor:not-allowed}.booking-picker .notice{margin-top:15px}@media(max-width:760px){.booking-main{padding:35px 5%}.program-options{grid-template-columns:1fr}.program-option{padding:20px}.program-option.selected{padding:19px}.booking-progress{gap:12px;font-size:10px;justify-content:space-between}.booking-summary{padding:22px}.booking-buttons>*{width:100%;text-align:center}.slot-options button{flex:1 0 29%;padding:12px 7px}.date-buttons{gap:10px}.date-buttons strong{order:-1;width:100%;text-align:center}.booking-main .policy-details{padding:18px}.booking-main h2{font-size:34px}}@media(prefers-reduced-motion:reduce){.program-option{transition:none}}.google-login{margin:1.75rem 0}.google-login button{width:100%;background:white;color:#102f40;border:1px solid #c6dce3}.google-login>p{text-align:center;margin-top:1rem}