:root{--ink:#352d27;--muted:#776f6a;--brand:#a64b23;--brand-dark:#803919;--line:#eae3df;--paper:#fff;--wash:#fbf9f7;--open:#2d8a55;--last:#bd7b19;--full:#9a938e;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--wash)}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:radial-gradient(circle at 100% 0,#f9efe9 0,transparent 35%),var(--wash)}
button,input,textarea,select{font:inherit}
.publicProgramShell{width:min(1180px,100%);margin:auto;padding:24px 18px max(36px,env(safe-area-inset-bottom))}
.publicBrand{display:flex;align-items:center;gap:11px}
.publicBrand img{object-fit:contain;filter:drop-shadow(0 6px 10px rgba(201, 109, 47,.18))}
.publicBrand strong,.publicBrand span{display:block}
.publicBrand strong{font-size:20px}
.publicBrand span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.04em}
.publicHero{padding:48px 4px 30px}
.eyebrow{color:var(--brand);font-size:11px;font-weight:900;letter-spacing:.17em}
.publicHero h1{margin:10px 0 0;font-size:clamp(38px,9vw,62px);line-height:.98;letter-spacing:-.055em}
.multisportPlusNotice{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:12px 15px;border:1px solid #efd8c8;border-radius:16px;background:#fdf6f2;color:#734b31;font-size:13px}
.multisportPlusNotice>span{display:grid;flex:0 0 26px;width:26px;height:26px;place-items:center;border-radius:50%;background:#c96d2f;color:#fff;font-family:Georgia,serif;font-weight:900}
.publicProgramLayout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:start;gap:18px}
.publicProgramLayout>*{min-width:0}
.publicProgramSide{display:grid;min-width:0;gap:18px}
.programCard,.requestCard,.groupTimeRequestCard{min-width:0;border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.93);box-shadow:0 18px 60px rgba(69, 52, 40,.08)}
.programCard{padding:16px}
.weekToolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px}
.weekToolbar button{width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--brand-dark);font-size:28px;cursor:pointer}
.weekToolbar button:disabled{opacity:.28}
.weekToolbar div{text-align:center}
.weekToolbar span,.weekToolbar strong{display:block}
.weekToolbar span{color:var(--muted);font-size:11px}
.weekToolbar strong{margin-top:3px;font-size:15px}
.groupDemandHighlights{margin-top:16px;padding:13px;border:1px solid #edd1bf;border-radius:18px;background:linear-gradient(135deg,#fdf6f2,#fff)}
.groupDemandHighlights[hidden]{display:none}
.groupDemandHighlights>div:first-child span,.groupDemandHighlights>div:first-child strong{display:block}
.groupDemandHighlights>div:first-child span{color:var(--brand);font-size:9px;font-weight:950;letter-spacing:.14em}
.groupDemandHighlights>div:first-child strong{margin-top:3px;font-size:14px}
.groupDemandHighlightList{display:flex;gap:8px;overflow:auto;margin-top:10px;padding-bottom:2px;scrollbar-width:none}
.groupDemandHighlightList::-webkit-scrollbar{display:none}
.groupDemandHighlightList button,.groupDemandHighlightList article{flex:0 0 auto;min-width:185px;padding:10px 12px;border:1px solid #edd1bf;border-radius:14px;background:#fff;color:var(--ink);text-align:left}
.groupDemandHighlightList button{cursor:pointer}
.groupDemandHighlightList b,.groupDemandHighlightList span{display:block}
.groupDemandHighlightList b{font-size:13px}
.groupDemandHighlightList span{margin-top:4px;color:var(--brand-dark);font-size:11px;font-weight:800}
.dayTabs{display:flex;gap:7px;overflow:auto;margin:18px -2px 12px;padding:2px 2px 5px;scrollbar-width:none}
.dayTabs::-webkit-scrollbar{display:none}
.dayTabs button{flex:1 0 58px;min-height:64px;border:1px solid var(--line);border-radius:17px;background:#fff;color:var(--muted);cursor:pointer}
.dayTabs button span,.dayTabs button b{display:block}
.dayTabs button span{font-size:10px;font-weight:800}
.dayTabs button b{margin-top:5px;font-size:20px}
.dayTabs button em{display:block;margin-top:3px;color:var(--brand);font-size:7px;font-style:normal;font-weight:950;letter-spacing:.08em}
.dayTabs button.hasDemand{border-color:#dfae8e;box-shadow:inset 0 -3px 0 #c96d2f}
.dayTabs button.hasDemand.active em{color:#fff}
.dayTabs button.active{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 8px 20px rgba(201, 109, 47,.23)}
.dayTabs button.unpublished{border-color:#e3e1df;background:#efeeed;color:#9b9794;box-shadow:none}
.dayTabs button.unpublished.active{border-color:#c8c4c2;background:#d8d6d4;color:#696562}
.dayTabs button.closedDay,.dayTabs button.closedDay.active{border-color:#bdb8b5;background:#d9d6d4;color:#625e5b;box-shadow:none}.dayTabs button.closedDay em{color:#625e5b}
.legend{display:flex;gap:14px;padding:3px 4px 12px;color:var(--muted);font-size:11px;font-weight:700}
.legend span{display:flex;align-items:center;gap:5px}
.legend i{width:8px;height:8px;border-radius:50%}
.legend .open{background:var(--open)}
.legend .last{background:var(--last)}
.legend .full{background:var(--full)}
.programState{padding:28px 10px;text-align:center;color:var(--muted)}
.programState.unpublished{margin:6px 0;padding:28px 12px;border:1px solid #dedbd9;border-radius:18px;background:#efeeed;color:#777370;font-weight:850}
.programState[hidden]{display:none}
.slotList{display:grid;gap:9px}
.slotButton{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:74px;padding:12px 13px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:.16s ease}
.slotButton:hover,.slotButton:focus-visible{transform:translateY(-1px);border-color:#ddc5b5;outline:none}
.slotButton.selected{border-color:var(--brand);box-shadow:0 0 0 3px rgba(201, 109, 47,.12)}
.slotButton.full{background:#faf9f8}
.slotButton.groupInterest{border-color:#dfae8e;background:linear-gradient(135deg,#fdf6f2,#fff)}
.slotButton.groupInterest .slotAvailability{background:#f7e5d9;color:var(--brand-dark)}
.slotTime{font-size:20px;font-weight:900}
.slotType{font-weight:850}
.slotType small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:650}
.slotAvailability{padding:6px 9px;border-radius:999px;background:#edf8f1;color:var(--open);font-size:10px;font-weight:900;white-space:nowrap}
.slotButton.last .slotAvailability{background:#fff5df;color:var(--last)}
.slotButton.full .slotAvailability{background:#eeebe9;color:#716b67}
.requestCard,.groupTimeRequestCard{padding:24px}
.requestCard h2,.groupTimeRequestCard h2{margin:7px 0 14px;font-size:26px;letter-spacing:-.035em}
.groupTimeRequestCard h2{font-size:23px;line-height:1.08}
.selectionSummary{min-height:48px;padding:13px 14px;border-radius:14px;background:#f7f4f2;color:var(--muted);font-size:13px;font-weight:750}
form{display:grid;min-width:0;gap:12px;margin-top:17px}
label{min-width:0;color:var(--muted);font-size:11px;font-weight:850}
label span{font-weight:600}
input,textarea,select{display:block;width:100%;margin-top:6px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(201, 109, 47,.1)}
textarea{resize:vertical}
.groupDemandNote{display:flex;align-items:center;gap:9px;margin:0;padding:11px 12px;border-radius:14px;background:#f7f4f2;color:var(--muted);font-size:12px;font-weight:750;line-height:1.4}
.groupDemandNote>span{display:grid;flex:0 0 27px;width:27px;height:27px;place-items:center;border-radius:50%;background:#f0d6c5;color:#7b4a29;font-weight:900}
.submitRequest{min-height:52px;border:0;border-radius:16px;background:var(--brand);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(201, 109, 47,.22)}
.submitRequest:disabled{background:#c9c4c0;box-shadow:none;cursor:not-allowed}
.requestDisclaimer{margin:0;color:var(--muted);font-size:11px;font-weight:700;line-height:1.45}
.privacyNotice{margin:0;padding:10px 11px;border-radius:12px;background:#faf8f6;color:var(--muted);font-size:10px;font-weight:650;line-height:1.5}
.privacyNotice a{color:var(--brand-dark);font-weight:850;text-underline-offset:2px}
.websiteField{position:absolute;left:-10000px}
.formMessage{margin-top:12px;padding:0;color:var(--muted);font-size:13px}
.formMessage.success,.formMessage.error{padding:12px 14px;border-radius:13px}
.formMessage.success{background:#ebf8f0;color:#266a40}
.formMessage.error{background:#fff6f0;color:#95603c}
footer{padding:28px 4px 0;text-align:center;color:#9a938e;font-size:11px;font-weight:700}
.privacyPage{min-height:100vh}
.privacyShell{width:min(820px,100%);margin:auto;padding:24px 18px max(44px,env(safe-area-inset-bottom))}
.privacyTopbar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.privacyBack{padding:10px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--brand-dark);font-size:12px;font-weight:850;text-decoration:none}
.privacyCard{margin-top:32px;padding:clamp(22px,5vw,42px);border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.96);box-shadow:0 18px 60px rgba(69, 52, 40,.08)}
.privacyCard h1{margin:9px 0 8px;font-size:clamp(30px,7vw,46px);line-height:1.02;letter-spacing:-.045em}
.privacyUpdated{margin:0 0 28px;color:var(--muted);font-size:12px;font-weight:700}
.privacyCard section+section{margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}
.privacyCard h2{margin:0 0 8px;font-size:17px;letter-spacing:-.02em}
.privacyCard p,.privacyCard li{color:var(--muted);font-size:13px;line-height:1.65}
.privacyCard p{margin:0}
.privacyCard ul{margin:8px 0 0;padding-left:20px}
.privacyCard a{color:var(--brand-dark);font-weight:850;text-underline-offset:2px}
.privacyNote{margin-top:25px!important;padding:13px 14px;border-radius:14px;background:#f7f4f2;color:var(--brand-dark)!important;font-weight:750}
@media(max-width:900px){.publicProgramShell{width:min(760px,100%)}
.publicProgramLayout{grid-template-columns:minmax(0,1fr)}
.publicProgramSide{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(max-width:650px){.publicProgramSide{grid-template-columns:1fr}
}
@media(max-width:520px){.publicProgramShell{padding:18px 12px 32px}
.privacyShell{padding:18px 12px 32px}.privacyTopbar{align-items:flex-start}.privacyBack{white-space:nowrap}.privacyCard{margin-top:22px;border-radius:22px}
.publicHero{padding:38px 5px 25px}
.multisportPlusNotice{align-items:flex-start}
.programCard{padding:12px;border-radius:22px}
.slotButton{grid-template-columns:61px minmax(0,1fr) auto;gap:8px;padding:11px 10px}
.slotTime{font-size:18px}
.slotAvailability{padding:5px 7px}
.requestCard,.groupTimeRequestCard{padding:19px;border-radius:22px}
}

.membershipGate{margin-bottom:18px;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--paper)}
.membershipGate h2{margin:0;font-size:19px}
.membershipGate p{margin:10px 0;color:var(--muted);font-size:14px;line-height:1.5}
.membershipChoices,.memberLinks{display:flex;flex-wrap:wrap;gap:10px}
.membershipChoices button,.memberLinks a{min-height:44px;padding:12px 16px;border:1px solid var(--line);border-radius:13px;background:var(--paper);color:var(--brand-dark);font-weight:750;font-size:14px;cursor:pointer}
.membershipChoices button[aria-pressed="true"]{background:var(--brand-dark);color:var(--paper);border-color:var(--brand-dark)}
.memberDirections{margin-top:14px;padding-top:8px;border-top:1px solid var(--line)}
.formMessage a{display:inline-block;margin-top:10px;color:inherit;font-weight:800;text-underline-offset:3px}
.membershipChoices button:focus-visible,.memberLinks a:focus-visible,.formMessage a:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.publicProgramLayout:has(#prospectForms[hidden]){grid-template-columns:minmax(0,1fr)}

/* Studio surfaces keep the timetable calm and readable. */
:root{--ink:#292a27;--muted:#6f685e;--line:#ded5c8;--paper:#fffdf9;--wash:#f6f2eb}body{background:var(--wash)}.publicBrand strong{font-size:26px;letter-spacing:-1.2px}.publicBrand img{filter:none}.publicHero h1{font-weight:550;letter-spacing:-.04em}.publicHero{padding-top:38px}
