.page-intro {
    padding-top: 64px;
    padding-bottom: 22px;
}
.page-intro h1 {
    margin-bottom: 12px;
}
.page-intro .lead {
    max-width: 850px;
}
.class-grid, .plans-grid, .coach-grid {
    display: grid;
    gap: 18px;
}
.class-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.plans-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plans-grid + .small-note { margin-top: 20px; }
.coach-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.simple-card, .plan-card, .coach-card, .form-panel, .account-side, .post, .empty-state {
    border: 1px solid var(--line);
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 10px 24px #52616318;
}
.simple-card, .plan-card, .coach-card { padding: 22px; }
.simple-card p, .plan-card p, .coach-card p { color: var(--muted); }
.plan-card {
    display: flex;
    flex-direction: column;
    min-height: 245px;
}
.plan-card .button { margin-top: auto; align-self: flex-start; }
.price { color: var(--dark) !important; font-size: 1.9rem; font-weight: 500; }
.price span { color: var(--muted); font-size: .9rem; }
.small-note, .field-help { color: var(--muted); font-size: .88rem; }
.light-band, .timetable-section { background: #f7f9fb; }
.table-scroll { overflow-x: auto; border: 1px solid var(--line); background: #fff; }
table { width: 100%; border-collapse: collapse; }
caption { padding: 10px; text-align: left; font-weight: 700; }
th, td { border: 1px solid #d7dde3; padding: 10px; text-align: left; vertical-align: top; }
thead th { background: #eaf2fb; }
.schedule { min-width: 950px; font-size: .88rem; }
.schedule th:first-child { min-width: 100px; }
.schedule td { min-width: 120px; }
.schedule tbody tr:nth-child(even) { background: #f7f9fb; }
.prices-table { min-width: 420px; }
.prices-table td:last-child, .prices-table th:last-child { width: 140px; text-align: right; }
.coach-card { display: flex; gap: 18px; }
.coach-initial { display: grid; place-items: center; flex: 0 0 50px; height: 50px; border: 1px solid var(--dark); font-size: 1.5rem; font-style: italic; }
.coach-role { color: var(--link) !important; font-weight: 700; }
.facility-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; max-width: 760px; }
.form-section { padding-top: 10px; }
.form-panel, .account-side { padding: 27px; }
.form-panel { max-width: 600px; }
form label { display: block; margin: 16px 0 5px; font-weight: 700; }
form input:not([type="hidden"]), form select, form textarea { display: block; width: 100%; padding: 12px; border: 1px solid #9ba4ae; border-radius: 2px; background: #fff; }
form input:focus, form select:focus, form textarea:focus { border-color: var(--primary); background: #f8fbff; }
form textarea { resize: vertical; }
form .button { margin-top: 22px; }
.form-errors { padding: 13px 16px; border-left: 4px solid #b23b33; background: #fff0ee; }
.form-switch { margin-top: 20px; }
.account-grid, .community-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .8fr); align-items: start; gap: 22px; }
.account-grid .form-panel, .community-layout .form-panel { max-width: none; }
.current-plan { padding: 18px; border: 1px solid #a6c8ea; background: #f2f8ff; }
.current-plan span { color: var(--muted); font-size: .88rem; }
.text-button { padding: 0; border: 0; background: none; color: var(--link); text-decoration: underline; }
.post, .empty-state { padding: 18px; margin-bottom: 16px; }
.post-top { display: flex; justify-content: space-between; gap: 16px; }
.post-top time { color: var(--muted); font-size: .88rem; }
.post p { overflow-wrap: anywhere; }
.community-layout .small-note { margin-top: 20px; }
.next-step { display: flex; align-items: center; justify-content: space-between; gap: 25px; }
@media (max-width: 900px) {
    .class-grid, .plans-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
    .page-intro { padding-top: 45px; }
    .class-grid, .plans-grid, .coach-grid, .account-grid, .community-layout, .facility-list { grid-template-columns: 1fr; }
    .next-step { align-items: flex-start; flex-direction: column; }
    .form-panel, .account-side { padding: 20px; }
}
