.classes-page .page-intro{padding-block:54px 35px;max-width:900px;margin-left:0}
.page-intro h1{font-size:clamp(40px,4.8vw,66px);max-width:850px}
.page-intro>p:not(.eyebrow){font-size:16px;color:var(--muted);max-width:700px;margin:22px 0 0}
.classes-main{padding-bottom:90px;min-height:70vh}
.catalog-status{font-size:12px;color:var(--muted);margin:0 0 24px}
.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.class-card{display:flex;flex-direction:column;padding:29px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--sky);min-width:0}
.class-card:nth-child(3n+2){border-top-color:var(--yellow)}
.class-card:nth-child(3n){border-top-color:var(--green)}
.class-card-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 14px;margin-bottom:24px;font-size:10px}
.class-subject{font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.class-status{color:#346340}.class-status.closed{color:var(--muted)}
.class-card h3{font-size:32px;line-height:1.14;margin-bottom:16px}
.class-card h3 a:hover{color:var(--blue)}
.class-schedule{font-size:13px;font-weight:600;margin:0 0 8px;min-height:21px}
.age-label{font-size:12px;color:var(--muted)}
.class-description{font-size:13px;line-height:1.7;color:var(--muted);margin:20px 0 25px}
.class-price{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:3px}
.class-price strong{font-size:25px;letter-spacing:-.025em;font-weight:600}
.class-price>span{font-size:11px;color:var(--muted)}
.class-card>.button{margin-top:auto;font-size:12px;gap:12px;justify-content:space-between}
.catalog-error{padding:40px;grid-column:1/-1;border:1px solid var(--line);background:#fff}
.catalog-error h1,.catalog-error h3{font-size:34px;margin-bottom:20px}
.catalog-error>p{color:var(--muted);font-size:14px}
.catalog-error .text-link{margin-left:22px}
.class-skeleton{height:410px;background:linear-gradient(90deg,#f4f4ef,#fffdf8,#f4f4ef);border:1px solid var(--line);animation:class-pulse 1.4s ease-in-out infinite alternate}
@keyframes class-pulse{to{opacity:.5}}
.classes-help{padding:35px 0;margin-top:42px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:35px}
.classes-help h2{font-size:31px}.classes-help p{font-size:14px;color:var(--muted);margin:12px 0 0}
.class-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;font-size:11px;color:var(--muted);padding-block:30px}
.class-breadcrumb a:hover{text-decoration:underline}
.course-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:70px;align-items:start}
.course-introduction h1{font-size:clamp(40px,4.4vw,62px)}
.course-session-name{font-size:15px;color:var(--muted);margin:22px 0}
.course-facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;font-weight:600}
.course-facts>span{border-bottom:2px solid var(--sky);padding-bottom:6px}
.course-lead{font-size:15px;line-height:1.75;color:var(--muted);margin:24px 0}
.course-gallery{margin-top:25px}
.course-gallery>img{width:100%;height:360px;object-fit:contain;object-position:left center;background:#fff}
.course-thumbnails{display:flex;gap:10px;margin-top:12px;overflow:auto}
.course-thumbnails button{padding:4px;border:1px solid var(--line);background:white;flex:none;cursor:pointer}
.course-thumbnails button[aria-pressed="true"]{border-color:var(--navy)}
.course-thumbnails img{width:65px;height:65px;object-fit:contain}
.course-enrollment{position:sticky;top:130px;background:white;padding:35px;border:1px solid var(--line);border-top:4px solid var(--sky)}
.course-enrollment .eyebrow{font-size:10px;margin-bottom:15px}
.enrollment-price{font-size:37px;font-weight:600;line-height:1.2;letter-spacing:-.025em;margin:0 0 7px}
.course-enrollment del{color:var(--muted);font-size:14px}
.price-unit{font-size:12px;line-height:1.6;color:var(--muted);margin:13px 0 26px}
.course-enrollment .button{width:100%;justify-content:space-between}
.course-enrollment .course-question{font-size:12px;margin-top:8px}
.enrollment-location{padding-top:25px;border-top:1px solid var(--line);margin-top:28px;font-size:12px;color:var(--muted)}
.enrollment-location strong{color:var(--navy);font-size:13px}
.enrollment-location p{margin:10px 0}.enrollment-location a{text-decoration:underline}
.purchase-controls[hidden]{display:none}
.purchase-controls fieldset{padding:0;border:0;margin:0 0 19px}
.purchase-controls legend,.modifier-field{font-size:12px;font-weight:600;margin-bottom:9px}
.choice-buttons{display:flex;flex-wrap:wrap;gap:8px}
.choice-buttons button{font-size:12px;line-height:1.5;text-align:left;background:white;border:1px solid var(--line);color:var(--navy);padding:10px 13px;border-radius:5px;cursor:pointer}
.choice-buttons button[aria-pressed="true"]{background:var(--navy);color:white;border-color:var(--navy)}
.choice-buttons button:disabled{opacity:.4;text-decoration:line-through;cursor:default}
.modifier-field{display:flex;flex-direction:column;gap:7px;margin-block:14px}
.modifier-field textarea,.registration-quantity input{font:inherit;border:1px solid var(--line);border-radius:5px;padding:10px;background:#fff;color:var(--navy);max-width:100%}
.registration-quantity{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin:18px 0}
.registration-quantity input{width:75px}
.purchase-guidance,.stock-detail{font-size:12px;line-height:1.5;margin:12px 0;color:var(--muted)}
.form-error{font-size:13px;color:#a52230;line-height:1.6;margin:12px 0}
.form-error:empty,.stock-detail:empty,.purchase-guidance:empty{display:none}
.button:disabled{opacity:.45;cursor:default}
.plan-choice{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}
.plan-choice small{display:block;color:var(--muted);font-size:11px}
.course-information{border-top:1px solid var(--line);padding-top:60px;margin-top:60px;max-width:870px}
.course-information h2{font-size:42px;margin-bottom:32px}
.course-rich-text{font-size:15px;line-height:1.8;color:var(--muted)}
.course-rich-text h1,.course-rich-text h2,.course-rich-text h3,.course-rich-text h4{font-family:"DM Sans",system-ui,sans-serif;font-size:20px;line-height:1.4;letter-spacing:0;font-weight:600;color:var(--navy);margin:30px 0 14px}
.course-rich-text p{margin:0 0 17px}.course-rich-text a{text-decoration:underline;color:var(--blue)}
.course-rich-text ul,.course-rich-text ol{padding-left:23px}.course-rich-text li>p{margin-bottom:8px}
.course-policy{border-top:1px solid var(--line);padding-block:20px}
.course-policy summary{cursor:pointer;font-weight:600;font-size:15px}
.registration-dialog{padding:0;border:0;margin:0 0 0 auto;position:fixed;inset:0 0 0 auto;width:min(520px,100%);height:100dvh;max-height:100dvh;max-width:100%;background:var(--cream);color:var(--navy)}
.registration-dialog::backdrop{background:rgba(25,40,63,.45)}
.registration-panel{display:flex;flex-direction:column;min-height:100%;height:100%}
.registration-panel-head{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:26px 28px;border-bottom:1px solid var(--line)}
.registration-panel-head h2{font-size:29px}
.icon-close{border:0;padding:6px 12px;background:transparent;color:var(--navy);font-size:30px;cursor:pointer;line-height:1}
.registration-panel-body{padding:5px 28px 25px;overflow:auto;flex:1}
.empty-cart{padding-top:40px;font-size:14px;color:var(--muted)}
.registration-line{display:grid;grid-template-columns:1fr auto;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}
.registration-line h3{font-family:"DM Sans",system-ui,sans-serif;font-size:16px;font-weight:600;line-height:1.5;letter-spacing:0}
.registration-line p{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0}
.line-price{font-size:14px;white-space:nowrap}.line-price del{display:block;color:var(--muted);font-size:12px}
.quantity-control{display:flex;align-items:center;gap:15px;margin-top:15px;font-size:13px}
.quantity-control button{border:1px solid var(--line);background:white;color:var(--navy);border-radius:4px;min-width:30px;min-height:30px;cursor:pointer}
.quantity-control .remove-line{border:0;background:transparent;text-decoration:underline;font-size:12px}
.quantity-control button:disabled{opacity:.35;cursor:default}
.registration-totals{padding:24px 28px;border-top:1px solid var(--line);background:#fff}
.registration-totals>div{display:flex;justify-content:space-between;gap:25px;font-size:13px;margin-bottom:8px}
.registration-totals .total-line{font-size:20px;margin:17px 0 20px}
.registration-totals>.button{width:100%;justify-content:space-between}
.registration-totals>p{font-size:11px;color:var(--muted);line-height:1.6;margin:13px 0 0}
.registration-totals>.registration-enrollment-note{display:block;margin:16px 0 20px;padding:13px 14px;border-left:2px solid #8db9c7;background:#f1f7f9;color:var(--navy);font-size:11px;line-height:1.75}.registration-enrollment-note strong{font-size:11px}.registration-enrollment-note p{font-size:11px;line-height:1.75;color:var(--muted);margin:6px 0 0}.registration-enrollment-note a{display:inline-block;font-size:11px;margin-top:9px;text-underline-offset:3px}
[data-cart-count]{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border:1px solid #8291ab;border-radius:50%;font-size:11px}
.classes-page .header-inner>.button{gap:10px}
@media(max-width:1100px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-detail-grid{gap:38px;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr)}.course-enrollment{padding:27px}}
@media(max-width:700px){.classes-page .page-intro{padding-block:35px 27px}.page-intro>p:not(.eyebrow){font-size:14px}.page-intro h1{font-size:43px}.class-grid{grid-template-columns:1fr;gap:20px}.class-card{padding:25px}.class-card h3{font-size:33px}.class-card-top{margin-bottom:20px}.classes-help{flex-direction:column;align-items:flex-start;gap:20px}.catalog-error{padding:25px}.catalog-error .text-link{margin:15px 0 0}.class-breadcrumb{padding-block:25px;gap:7px}.class-breadcrumb>span:last-child{display:none}.course-detail-grid{display:flex;flex-direction:column;gap:0}.course-introduction{display:contents}.course-introduction>.eyebrow,.course-introduction>h1,.course-session-name,.course-facts{order:1}.course-introduction h1{font-size:41px}.course-introduction>.eyebrow{margin:5px 0 15px}.course-session-name{font-size:13px;margin:18px 0}.course-facts{font-size:11px;margin-bottom:25px}.course-enrollment{order:2;position:static;width:100%;padding:25px}.course-lead{order:3;margin:28px 0 0;font-size:14px}.course-gallery{order:4;width:100%;margin-top:26px}.course-gallery>img{height:270px;object-position:center}.course-information{margin-top:40px;padding-top:40px}.course-information h2{font-size:35px}.course-rich-text{font-size:14px}.course-rich-text h1,.course-rich-text h2,.course-rich-text h3,.course-rich-text h4{font-size:18px}.enrollment-price{font-size:33px}.registration-panel-head{padding:22px}.registration-panel-body{padding-inline:22px}.registration-totals{padding:22px}.registration-line{gap:14px}.registration-line h3{font-size:14px}.line-price{font-size:13px}}
@media(prefers-reduced-motion:reduce){.class-skeleton{animation:none}}
@media(max-width:600px){.classes-page .header-inner{gap:14px}.classes-page .brand{width:120px;height:74px}.classes-page .header-inner>.button{gap:7px;font-size:10px;padding:9px 11px;white-space:nowrap}.classes-page [data-cart-count]{min-width:18px;height:18px;font-size:10px}}

/* Each public class has its own subject photograph. */
.class-card{padding:0;overflow:hidden}
.class-photo{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--soft-blue);flex:none}
.class-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,center);transform:scale(var(--photo-scale,1))}
.class-card-body{display:flex;flex-direction:column;padding:27px;flex:1}
.class-card-body>.button{margin-top:auto;font-size:12px;gap:12px;justify-content:space-between}
.class-card-top{gap:7px 10px;margin-bottom:20px}
.class-card h3{font-size:30px}
.course-gallery .detail-photo-frame{width:100%;aspect-ratio:4/3;overflow:hidden;background:#fff}
.detail-photo-frame>img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,center);transform:scale(var(--photo-scale,1))}
@media(max-width:700px){.class-card{padding:0}.class-card-body{padding:25px}.class-card h3{font-size:33px}.course-gallery .detail-photo-frame{height:auto}}

.class-photo img,.detail-photo-frame>img{transform-origin:var(--photo-origin,center)}
