.page-grade-math { background: #fff; }
.page-practice { background: #fff; }
.practice-intro { padding: 28px 0 24px; }
.practice-intro h1 { margin: 0 0 12px; font-size: 38px; line-height: 1.15; letter-spacing: 0; }
.practice-intro .section-kicker { margin-bottom: 10px; }
.practice-intro p { margin-bottom: 14px; font-size: 16px; }
.practice-quick-facts { display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; padding: 0; margin: 0 0 14px; font-weight: 700; }
.practice-intro-actions, .practice-booking-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.practice-intro-actions a { padding-block: 6px; }
.practice-booking, .practice-about { padding: 32px 0; border-top: 1px solid #dce3e9; }
.practice-booking { background: #f3f7f8; }
.practice-booking-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px; }
.practice-booking h2, .practice-about h2 { font-size: 26px; line-height: 1.3; letter-spacing: 0; margin: 0 0 16px; }
.practice-booking p, .practice-about p { font-size: 16px; line-height: 1.6; }
.practice-booking .practice-pricing { margin-top: 0; }
.practice-booking .button { min-width: 0; white-space: normal; }
.practice-about details { border-bottom: 1px solid #dce3e9; }
.practice-about summary, .grade-goals summary { cursor: pointer; padding: 16px 0; font-weight: 700; }
.practice-about details p { max-width: 900px; }
.practice-about > .container > p { margin: 20px 0 0; }
.practice-about summary:focus-visible, .grade-goals summary:focus-visible, .grade-curriculum > summary:focus-visible { outline: 3px solid #ba881b; outline-offset: 3px; }
.grade-intro { padding: 42px 0 0; border-bottom: 1px solid #dce3e9; }
.grade-intro h1 { font-size: 40px; line-height: 1.15; letter-spacing: 0; margin: 8px 0 18px; }
.grade-intro p { max-width: 800px; }
.grade-intro .grade-interest-facts { margin-bottom: 0; border-bottom: 0; }
.grade-services { padding: 28px 0; border-bottom: 1px solid #dce3e9; }
.grade-services h2, .grade-reference-intro h2 { font-size: 26px; line-height: 1.3; letter-spacing: 0; margin: 0 0 14px; }
.grade-services-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 48px; }
.grade-services-grid h3 { font-size: 20px; line-height: 1.4; letter-spacing: 0; margin: 0 0 8px; }
.grade-services p, .grade-reference-intro p { font-size: 16px; line-height: 1.65; }
.grade-services p { margin: 0 0 12px; }
.grade-class-overview, .grade-class-links a, .grade-showcase, #practice-options { scroll-margin-top: 140px; }
.grade-class-links { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.grade-class-links a { color: #a61b36; font-weight: 700; padding-block: 10px; text-underline-offset: 4px; }
.grade-interest-label { font-weight: 700; }
.grade-reference-intro { max-width: 900px; margin-bottom: 16px; }
.grade-reference-intro p { margin: 0; }
.grade-reference-intro h3 { font-size: 20px; line-height: 1.4; letter-spacing: 0; margin: 16px 0 8px; }
.grade-showcase { padding: 28px 0 48px; background: #fff; border-top: 1px solid #dce3e9; }
.grade-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid #cbd6de; margin-bottom: 32px; }
.grade-tabs button { min-height: 52px; padding: 12px 8px; border: 0; border-bottom: 3px solid transparent; color: #415466; background: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.grade-tabs button[aria-selected="true"] { color: #a61b36; border-bottom-color: #b31837; background: #fff7f8; }
.grade-tabs button:hover { background: #f4f7f8; }
.grade-tabs button:focus-visible, .grade-panel:focus-visible { outline: 3px solid #ba881b; outline-offset: 3px; }
.grade-panel { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 28px 48px; align-items: start; scroll-margin-top: 140px; }
.grade-panel[hidden] { display: none; }
.grade-learning h2 { font-size: 28px; line-height: 1.25; letter-spacing: 0; margin: 8px 0 18px; }
.grade-learning h3, .grade-sample h3 { font-size: 20px; letter-spacing: 0; margin: 24px 0 12px; }
.grade-sample h3 { margin-top: 0; }
.grade-panel p, .grade-panel li { font-size: 16px; line-height: 1.6; }
.grade-learning ol, .grade-learning ul { padding-left: 22px; }
.grade-learning li { padding-left: 5px; margin-bottom: 12px; }
.grade-learning ol li::marker { color: #b31837; font-weight: 700; }
.grade-learning .button { margin-top: 14px; white-space: normal; }
.grade-preview { display: block; width: min(100%, 300px); background: #f0f4f6; border: 1px solid #cbd6de; margin: 14px 0; }
.grade-preview img { display: block; width: 100%; height: auto; aspect-ratio: 17 / 22; }
.grade-sample-actions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.grade-sample-actions a { color: #a61b36; font-weight: 700; text-underline-offset: 4px; }
.grade-panel .grade-small { color: #61717e; font-size: 14px; }
.grade-map-link { display: block; color: #a61b36; font-weight: 700; margin-top: 20px; text-underline-offset: 4px; }
.grade-pack-heading { font-weight: 700; margin-top: 24px; }
.grade-curriculum { grid-column: 1 / -1; border-block: 1px solid #cbd6de; scroll-margin-top: 140px; min-width: 0; }
.grade-curriculum > summary { cursor: pointer; padding: 20px 0; font-size: 18px; font-weight: 700; }
.grade-goals { border-bottom: 1px solid #dce3e9; }
.grade-curriculum h3 { font-size: 28px; line-height: 1.25; margin: 8px 0 14px; letter-spacing: 0; }
.grade-curriculum > p { max-width: 900px; }
.grade-units { list-style: none; padding: 0; margin: 28px 0; }
.grade-units > li { display: grid; grid-template-columns: 150px minmax(0, 1.3fr) minmax(0, 1fr); gap: 24px; border-top: 1px solid #dce3e9; padding: 22px 0; }
.grade-units h4 { font-size: 18px; line-height: 1.4; margin: 0 0 8px; letter-spacing: 0; }
.grade-units p { margin: 0; }
.grade-unit-range { color: #a61b36; font-weight: 700; }
.grade-goal-label { display: block; color: #536575; font-size: 13px; font-weight: 700; margin-bottom: 7px; }
.grade-contents { border-top: 1px solid #cbd6de; border-bottom: 1px solid #cbd6de; }
.grade-contents summary { cursor: pointer; font-weight: 700; padding: 18px 0; font-size: 18px; }
.grade-topic-list { columns: 2; column-gap: 52px; padding: 0 0 0 28px; margin: 12px 0 24px; }
.grade-topic-list li { break-inside: avoid; padding: 3px 8px; }
.grade-contents summary:focus-visible { outline: 3px solid #ba881b; outline-offset: 3px; }
.grade-context { border-top: 1px solid #dce3e9; margin-top: 40px; padding-top: 28px; max-width: 960px; }
.grade-context h2 { font-size: 24px; letter-spacing: 0; }
.grade-context p { font-size: 16px; line-height: 1.7; }
@media (max-width: 900px) {
  .grade-panel { gap: 28px; }
  .grade-units > li { grid-template-columns: 125px minmax(0, 1fr); gap: 12px 20px; }
  .grade-unit-goal { grid-column: 2; }
}
@media (max-width: 700px) {
  .practice-intro { padding-top: 22px; }
  .practice-intro h1 { font-size: 30px; }
  .practice-quick-facts { gap: 6px 16px; font-size: 15px; }
  .practice-intro-actions { gap: 6px 20px; }
  .practice-booking-grid { grid-template-columns: minmax(0, 1fr); }
  .grade-services-grid { grid-template-columns: minmax(0, 1fr); }
  .grade-intro { padding-top: 26px; }
  .grade-intro h1 { font-size: 30px; }
  .grade-panel { grid-template-columns: minmax(0, 1fr); }
  .grade-learning h2 { font-size: 26px; }
  .grade-tabs button { font-size: 14px; padding-inline: 3px; }
  .grade-learning .button { width: 100%; text-align: center; }
  .grade-preview { width: min(100%, 260px); }
  .grade-learning { border-top: 1px solid #dce3e9; padding-top: 24px; }
  .grade-curriculum h3 { font-size: 25px; }
  .grade-units > li { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .grade-unit-goal { grid-column: 1; }
  .grade-topic-list { columns: 1; }
}
