.calendar-intro{max-width:760px;margin:0 0 22px}.calendar-links{display:flex;gap:24px;flex-wrap:wrap;margin:24px 0 16px}.calendar-privacy{max-width:760px}.class-status{font-size:13px;color:var(--muted);margin-bottom:24px;max-width:760px}.class-error{padding:24px;background:#f5dfce;border-left:4px solid var(--coral)}.class-calendar-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,1fr);gap:32px;align-items:start}.class-month{min-width:0;background:#fffaf1;border:1px solid #abbeb4;border-radius:18px;overflow:hidden}.class-month-top{background:var(--forest);color:var(--paper);padding:22px 24px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}.class-month-top h3{font-size:23px;letter-spacing:-.03em}.class-month-controls{display:flex;gap:6px}.class-month-controls button{min-width:44px;min-height:44px;background:transparent;border:1px solid #a7b8a9;border-radius:50%;color:var(--paper);font:inherit;cursor:pointer}.class-month-controls #class-today{border-radius:24px;padding:0 15px;font-size:13px}.class-month-controls button:disabled{opacity:.4;cursor:default}.class-weekdays,.class-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:0 12px}.class-weekdays{padding-top:18px;padding-bottom:8px;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.class-month-days{padding-bottom:18px}.class-day{min-width:0;min-height:87px;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:flex-start;padding:8px 3px;border:1px solid transparent;border-radius:10px;background:#f3f0e7;color:var(--ink);font:inherit;cursor:pointer}.class-day-number{font-size:16px;font-weight:500;line-height:1.5}.class-day.has-class{background:#dfb957;color:#163637;border-color:#a88431;box-shadow:inset 0 -3px #a88431}.class-day-badge{font-size:10px;line-height:1.3;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.class-day-title{font-size:10px;line-height:1.25;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.class-day[aria-current=date] .class-day-number{border-bottom:2px solid currentColor}.class-day.selected{outline:3px solid var(--forest);outline-offset:-3px}.class-day:hover{border-color:var(--forest)}.class-month-legend{padding:0 22px 20px;display:flex;gap:10px;align-items:center;font-size:12px;color:#3d5751}.class-legend-dot{width:13px;height:13px;border-radius:4px;background:#dfb957;border:1px solid #a88431;flex-shrink:0}.class-list-top{margin-bottom:18px}.class-list-top h3{font-size:28px;letter-spacing:-.04em}.class-list-top p{font-size:14px;margin-top:8px;color:var(--muted)}#class-show-all{margin-top:12px;border:0;background:transparent;text-decoration:underline;color:var(--ink);font:inherit;font-size:14px;padding:6px 0;cursor:pointer}.class-card{padding:26px;background:#e1e8dc;border-radius:14px;border:1px solid #b6c6b6;margin-bottom:16px}.class-card-date{text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:700;margin-bottom:13px}.class-card h3{font-size:28px;line-height:1.15;margin-bottom:15px;overflow-wrap:anywhere}.class-card-time,.class-card-location{font-size:15px;margin:5px 0}.class-card .button{font-size:13px;padding:12px 19px;margin-top:18px}.class-empty{padding:25px;background:#e1e8dc;border-radius:14px;font-size:16px}.class-event-wrap{max-width:900px;margin:0 auto}.class-event-title{overflow-wrap:anywhere}.class-event-meta{padding:28px;background:#e1e8dc;border-radius:16px;display:grid;gap:10px;margin:28px 0}.class-event-meta dt{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.class-event-meta dd{margin:0 0 12px}.class-event-description{white-space:pre-wrap;overflow-wrap:anywhere;margin:25px 0 35px;line-height:1.8}.class-event-footer{border-top:1px solid var(--line);padding-top:25px;margin-top:35px}.class-event-wrap .back-link{display:inline-block;margin-bottom:26px}#class-calendar-content :focus-visible,.class-event-wrap :focus-visible{outline:3px solid #7a3f2d;outline-offset:4px}#class-list-heading:focus{outline:none}@media(max-width:950px){.class-calendar-layout{grid-template-columns:minmax(0,1fr)}.class-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.class-card{margin:0}.class-day{min-height:84px}.class-day-title{font-size:12px}.class-day-badge{font-size:11px}}@media(max-width:520px){.class-month-top{padding:18px 14px;gap:12px}.class-month-top h3{font-size:22px}.class-month-controls{gap:4px}.class-weekdays,.class-month-days{gap:3px;padding-left:7px;padding-right:7px}.class-day{min-height:65px;padding:7px 1px;border-radius:7px}.class-day-title{display:none}.class-day-badge{font-size:9px;letter-spacing:0}.class-day-number{font-size:16px}.class-month-legend{padding:0 14px 16px}.class-list{grid-template-columns:1fr}.class-card{padding:24px}.calendar-links{gap:18px}.class-event-meta{padding:22px}.class-month-controls button{min-width:40px;min-height:44px}}

/* Gather hero: existing illustrative image, no claim of real class photography. */
.gather-hero{position:relative;isolation:isolate;min-height:480px;display:flex;align-items:flex-end;background:#153a31;overflow:hidden;color:#fffaf1}.gather-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;z-index:-2}.gather-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,34,27,.06) 15%,rgba(9,34,27,.3) 48%,rgba(9,34,27,.88) 100%);z-index:-1}.gather-hero-copy{padding-top:150px;padding-bottom:62px}.gather-hero h1{color:#fffaf1;font-size:clamp(3.5rem,7vw,6.5rem);max-width:900px;line-height:1.03}.gather-hero .topic-subtitle{color:#fff2d7;font-size:clamp(1.3rem,2.2vw,1.8rem);margin-top:18px}.gather-image-note{position:absolute;bottom:13px;right:5%;font-size:10px;letter-spacing:.04em;color:#e3e9dc}.gather-hero+section.section{padding-top:55px}.gather-hero+section .section-title{margin-bottom:25px}#class-status[hidden]{display:none}@media(max-width:600px){.gather-hero{min-height:360px}.gather-hero-image{object-position:52% center}.gather-hero-copy{padding-top:155px;padding-bottom:50px}.gather-hero h1{font-size:clamp(2.8rem,12vw,4rem);max-width:340px}.gather-hero .topic-subtitle{font-size:1.2rem;margin-top:14px}.gather-hero+section.section{padding-top:38px}.gather-hero+section .section-title{margin-bottom:22px}}
