
    /* Discovery Station page-specific schedule tables, class drawer, add-on banner & review bridge */
    @media (min-width: 600px) {
      .cp-learning li {
        grid-template-columns: 248px 1fr;
      }
    }

    .sr-bridge {
      margin-top: clamp(24px, 3.5vw, 36px);
      background: var(--sp-white);
      border: 1px solid rgba(77, 98, 84, 0.16);
      border-left: 8px solid var(--sp-butter);
      border-radius: var(--radius-lg);
      padding: clamp(24px, 3.5vw, 36px);
      box-shadow: var(--sp-shadow-card);
    }

    .sr-quote {
      margin: 0;
    }

    .sr-quote blockquote {
      font-family: var(--font-serif-soft);
      font-size: clamp(19px, 1.8vw, 24px);
      line-height: 1.55;
      color: var(--sp-ink);
      margin: 0;
    }

    .sr-quote figcaption {
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid rgba(77, 98, 84, 0.14);
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 10px 20px;
      font-size: 14px;
    }

    .sr-quote figcaption strong {
      font-family: var(--font-heading);
      font-weight: 800;
      color: var(--sp-ink);
      margin-right: 8px;
    }

    .sr-source {
      color: var(--sp-quiet);
      font-size: 13px;
    }

    .sr-quote figcaption a {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 13.5px;
      color: var(--sp-deep-sage);
    }

    .ds-classes {
      background-color: var(--sp-white);
      border-block: 1px solid rgba(77, 98, 84, 0.15);
      scroll-margin-top: 84px;
    }

    .ds-class-intro {
      display: grid;
      grid-template-columns: 1.15fr 0.85fr;
      gap: clamp(20px, 4vw, 48px);
      align-items: end;
    }

    .ds-class-intro > p {
      font-size: 17px;
      color: var(--sp-quiet);
      line-height: 1.62;
    }

    .ds-schedules {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
      margin-top: 32px;
    }

    .ds-age {
      background: var(--sp-cream);
      border: 1px solid rgba(77, 98, 84, 0.18);
      border-top: 6px solid var(--sp-butter);
      border-radius: var(--radius-lg);
      padding: 24px;
      box-shadow: var(--sp-shadow-card);
      min-width: 0;
    }

    .ds-age:nth-child(1) { border-top-color: var(--sp-butter); }
    .ds-age:nth-child(2) { border-top-color: var(--sp-sage); }
    .ds-age:nth-child(3) { border-top-color: var(--sp-dusty-teal); }

    .ds-age h3 {
      font-family: var(--font-heading);
      font-size: 21px;
      font-weight: 800;
      color: var(--sp-ink);
      margin-bottom: 14px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .ds-age:nth-child(1) h3::before,
    .ds-age:nth-child(2) h3::before,
    .ds-age:nth-child(3) h3::before {
      content: "";
      width: 10px;
      height: 10px;
      border-radius: 50%;
      display: inline-block;
    }
    .ds-age:nth-child(1) h3::before { background: var(--sp-butter); }
    .ds-age:nth-child(2) h3::before { background: var(--sp-sage); }
    .ds-age:nth-child(3) h3::before { background: var(--sp-dusty-teal); }

    .ds-age table {
      width: 100%;
      table-layout: fixed;
      border-collapse: collapse;
      font-size: 14.5px;
      line-height: 1.45;
    }

    .ds-age :is(th, td) {
      text-align: left;
      vertical-align: top;
      border-bottom: 1px solid rgba(77, 98, 84, 0.15);
      padding: 12px 8px 12px 0;
    }

    .ds-age tbody tr:last-child :is(th, td) {
      border-bottom: none;
      padding-bottom: 4px;
    }

    .ds-age thead th {
      font-family: var(--font-heading);
      color: var(--sp-quiet);
      font-size: 11.5px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      padding-top: 0;
    }

    .ds-age th:first-child {
      width: max(100px, 31%);
    }

    .ds-age tbody th {
      font-family: var(--font-heading);
      font-size: 12.5px;
      font-weight: 700;
      color: var(--sp-quiet);
    }

    .ds-age td {
      font-family: var(--font-heading);
      font-weight: 700;
      color: var(--sp-ink);
    }

    .ds-sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip-path: inset(50%);
      white-space: nowrap;
      border: 0;
    }

    .ds-descriptions {
      margin-top: 26px;
      background: var(--sp-cream);
      border: 1px solid rgba(77, 98, 84, 0.18);
      border-radius: var(--radius-lg);
      padding: 20px 26px;
    }

    .ds-descriptions > summary {
      font-family: var(--font-heading);
      font-size: 17px;
      font-weight: 800;
      color: var(--sp-ink);
      cursor: pointer;
      list-style: none;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }

    .ds-descriptions > summary::-webkit-details-marker {
      display: none;
    }

    .ds-descriptions > summary::after {
      content: "+";
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background: var(--sp-white);
      color: var(--sp-deep-sage);
      font-weight: 800;
      display: grid;
      place-items: center;
      flex-shrink: 0;
      border: 1px solid rgba(77, 98, 84, 0.16);
    }

    .ds-descriptions[open] > summary::after {
      content: "−";
      background: var(--sp-butter);
      color: var(--sp-ink);
    }

    .ds-description-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
      margin-top: 20px;
      padding-top: 20px;
      border-top: 1px solid rgba(77, 98, 84, 0.15);
    }

    .ds-class-description {
      background: var(--sp-white);
      border: 1px solid rgba(77, 98, 84, 0.14);
      border-radius: var(--radius-md);
      padding: 20px;
      box-shadow: var(--sp-shadow-card);
    }

    .ds-class-description h3 {
      font-family: var(--font-heading);
      font-size: 18.5px;
      font-weight: 800;
      color: var(--sp-ink);
    }

    .ds-class-description .ds-teacher {
      display: inline-block;
      margin-top: 6px;
      font-family: var(--font-heading);
      font-size: 12px;
      font-weight: 800;
      color: var(--sp-ink);
      background: var(--sp-sage-tint);
      padding: 3px 10px;
      border-radius: 999px;
    }

    .ds-class-description p:not(.ds-teacher) {
      font-size: 14.5px;
      color: var(--sp-quiet);
      line-height: 1.55;
      margin-top: 10px;
    }

    .ds-addon {
      margin-top: 24px;
      background: var(--sp-teal-tint);
      border: 1px solid rgba(77, 98, 84, 0.2);
      border-left: 8px solid var(--sp-dusty-teal);
      border-radius: var(--radius-lg);
      padding: 24px 28px;
      display: grid;
      grid-template-columns: 0.85fr 1.15fr;
      gap: 8px 36px;
      align-items: center;
    }

    .ds-addon h3 {
      font-family: var(--font-heading);
      font-size: 22px;
      font-weight: 800;
      color: var(--sp-ink);
      grid-column: 1;
      grid-row: 1 / span 2;
    }

    .ds-addon p {
      font-size: 15.5px;
      color: var(--sp-ink);
      line-height: 1.55;
      grid-column: 2;
    }

    .ds-addon .sc-link {
      grid-column: 2;
    }

    .cp-explore {
      margin-top: 18px;
      padding-top: 16px;
      border-top: 1px solid rgba(77, 98, 84, 0.14);
      display: flex;
      flex-wrap: wrap;
      gap: 10px 24px;
    }

    @media (max-width: 1080px) {
      .ds-schedules {
        grid-template-columns: 1fr;
      }
      .ds-description-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 899px) {
      .ds-class-intro,
      .ds-addon {
        grid-template-columns: 1fr;
        gap: 12px;
      }
      .ds-addon h3,
      .ds-addon p,
      .ds-addon .sc-link {
        grid-column: 1;
        grid-row: auto;
      }
    }

    @media (max-width: 599px) {
      .cp-learning li {
        grid-template-columns: 1fr;
      }
      .ds-description-grid {
        grid-template-columns: 1fr;
      }
      .ds-age {
        padding: 18px;
      }
      .ds-descriptions {
        padding: 16px 18px;
      }
      .ds-addon {
        padding: 20px;
      }
    }
/* Keep longer section labels compact without clipping or forcing overflow. */
.cp-story-copy .sc-kicker {
  font-size: clamp(11px, 3vw, 12px);
  letter-spacing: 0.03em;
  gap: 6px;
  padding-inline: 10px;
}

.cp-story-quote-badge {
  font-size: 11px;
  letter-spacing: 0;
}
