.upcoming-classes{background:var(--ivory)}
.upcoming-classes-heading{text-align:center;margin-bottom:3rem}
.upcoming-classes-heading h2{margin:0}
.class-calendar{max-width:1180px;margin:0 auto}
.class-calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;border:1px solid var(--line);background:var(--paper)}
.class-calendar-toolbar button{appearance:none;border:0;background:transparent;color:var(--olive);padding:1rem 1.25rem;font:600 .7rem var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.class-calendar-toolbar button:first-child{text-align:left}.class-calendar-toolbar button:last-child{text-align:right}
.class-calendar-toolbar button:hover,.class-calendar-toolbar button:focus-visible{background:var(--ivory)}
.class-calendar-month{font:400 clamp(2rem,3.4vw,3.5rem) var(--serif);text-align:center;margin:2rem 0 1.25rem}
.class-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--paper)}
.class-calendar-weekday{padding:.75rem;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.67rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.class-calendar-day{min-height:125px;padding:.8rem;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink);text-align:left;font-family:var(--sans)}
.class-calendar-day.is-empty{background:rgba(247,243,235,.45)}
button.class-calendar-day{cursor:pointer;transition:background .2s,color .2s}
button.class-calendar-day:hover,button.class-calendar-day:focus-visible,button.class-calendar-day.is-selected{background:var(--olive);color:#fff;outline:0}
.class-calendar-number{display:block;font:400 1.25rem var(--serif)}
.class-calendar-title,.class-calendar-time{display:block}.class-calendar-title{margin-top:1rem;font:400 1.15rem/1.1 var(--serif)}
.class-calendar-time{margin-top:.35rem;font-size:.7rem;letter-spacing:.06em}
.class-calendar-detail{margin-top:1.5rem}
.class-event-card{display:grid;grid-template-columns:minmax(260px,38%) 1fr;background:var(--paper);border:1px solid var(--line);box-shadow:0 20px 60px rgba(41,48,31,.08)}
.class-event-card.no-image{display:block}.class-event-card.no-image .class-event-content{max-width:760px}
.class-event-image{min-height:390px}.class-event-content{padding:clamp(2rem,4vw,4rem)}
.class-event-content h3{font:400 clamp(2.2rem,4vw,4rem)/1 var(--serif);margin:0 0 1.8rem}
.class-event-content dl{display:flex;flex-wrap:wrap;gap:1.25rem 2.5rem;margin:0 0 1.8rem}.class-event-content dl div{min-width:110px}
.class-event-content dt{color:var(--brass);font-size:.65rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.class-event-content dd{margin:.25rem 0 0}
.class-event-description{max-width:650px;color:var(--muted);margin:0 0 2rem}.class-calendar-error{text-align:center;color:var(--muted)}
@media(max-width:700px){.class-calendar-toolbar{grid-template-columns:1fr 1fr}.class-calendar-toolbar button:nth-child(2){grid-column:1/-1;grid-row:2;border-top:1px solid var(--line)}.class-calendar-day{min-height:82px;padding:.45rem}.class-calendar-weekday{padding:.55rem .2rem;font-size:.58rem}.class-calendar-number{font-size:1rem}.class-calendar-title{margin-top:.55rem;font:600 .68rem/1.15 var(--sans);overflow-wrap:anywhere}.class-calendar-time{font-size:.58rem}.class-event-card{grid-template-columns:1fr}.class-event-image{min-height:65vw}.class-event-content{padding:2rem}.class-event-content .button{width:100%}}
@media(max-width:420px){.class-calendar-day{min-height:72px}.class-calendar-time{letter-spacing:0}.class-calendar-toolbar button{padding:.9rem .65rem;font-size:.6rem}}
