/* One Morning Mist composition for every core program. */
.cp-hero { grid-template-columns: 1.1fr .9fr; }
.sp-craft .cp-hero h1 { max-width: 17ch; font-size: clamp(38px, 4vw, 58px); }
.cp-hero .sc-hero-art { max-width: 490px; justify-self: end; }
.cp-facts { background: var(--sp-whisper); }
.cp-facts dl { display: grid; grid-template-columns: repeat(3,1fr); margin-block: 0; padding-block: 25px; gap: 24px; }
.cp-facts dl > div + div { border-left: 1px solid var(--sc-line); padding-left: 32px; }
.cp-facts dt { font-size: 12px; color: var(--sp-teal); margin-bottom: 6px; }
.cp-facts dd { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.4; }
.cp-facts dd span { display: block; font-size: 13px; font-weight: 400; margin-top: 4px; }
.cp-story { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(32px, 6vw, 84px); }
.cp-story-copy > p { margin-top: 20px; font-size: 16px; }
.cp-story .sc-link { margin-top: 15px; }
.cp-story img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 5px 40px 5px 5px; }
.cp-story figcaption { font-size: 12px; margin-top: 12px; color: var(--sp-teal); }
.cp-learning { margin: 22px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--sc-line); }
.cp-learning li { font-size: 16px; padding-block: 12px; border-bottom: 1px solid var(--sc-line); }
.cp-learning strong { font-weight: 600; color: var(--sp-teal); }
.cp-practical { background: var(--sp-whisper); }
.cp-practical-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 7vw, 96px); }
.cp-practical :is(h2 + p) { font-size: 15px; margin-top: 18px; }
.cp-schedule { margin: 24px 0 0; }
.cp-schedule > div { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; padding-block: 15px; border-top: 1px solid var(--sc-line); }
.cp-schedule > div:last-child { border-bottom: 1px solid var(--sc-line); }
.cp-schedule dt { font-size: 16px; font-weight: 600; color: var(--sp-teal); }
.cp-schedule dd { margin: 0; font-size: 13px; }
.cp-schedule .cp-duration { grid-column: 2; grid-row: 1; white-space: nowrap; }
.cp-schedule .cp-activity { grid-column: 1 / -1; font-size: 15px; }
.cp-detail { border-bottom: 1px solid var(--sc-line); }
.cp-detail summary { cursor: pointer; color: var(--sp-teal); font-size: 15px; font-weight: 600; padding-block: 18px; }
.cp-detail p { font-size: 15px; padding-bottom: 18px; }
.sp-craft .cp-tuition .cp-option { margin-top: 14px; font-size: 15px; }
.cp-rates { margin: 24px 0; }
.cp-rates > div { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px; padding-block: 16px; border-top: 1px solid var(--sc-line); }
.cp-rates > div:last-child { border-bottom: 1px solid var(--sc-line); }
.cp-rates dt { font-size: 16px; font-weight: 600; color: var(--sp-teal); }
.cp-rates dt span { display: block; margin-top: 3px; color: var(--sp-text); font-size: 13px; font-weight: 400; }
.cp-rates dd { margin: 0; font-size: 13px; white-space: nowrap; }
.cp-rates dd strong { font-family: var(--sc-heading); color: var(--sp-teal); font-size: 26px; font-weight: 500; }
.cp-tuition { scroll-margin-top: 84px; }
.sp-craft .cp-price { margin-top: 22px; color: var(--sp-teal); font-size: 15px; }
.cp-price strong { font-family: var(--sc-heading); font-weight: 500; font-size: 48px; line-height: 1.2; letter-spacing: -.035em; }
.sp-craft .cp-price + p { margin-top: 18px; font-size: 15px; }
.cp-cost-details { margin: 20px 0 24px; padding-left: 20px; font-size: 15px; }
.cp-cost-details li { padding-block: 4px; }
.cp-tuition .sp-tuition-ccap { display: flex; align-items: start; gap: 12px; border-block: 1px solid var(--sc-line); padding-block: 18px; }
.cp-tuition .sp-ccap-seal { border: 1px solid var(--sc-line); padding: 4px 6px; font-size: 10px; color: var(--sp-teal); letter-spacing: .06em; }
.cp-tuition .sp-tuition-ccap p { font-size: 14px; }
.cp-tuition .sp-tuition-ccap strong { font-weight: 600; }
.cp-tuition .sc-link { margin-top: 16px; }
.cp-faq { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(28px, 7vw, 96px); }
.cp-faq .sp-faq-list { width: 100%; max-width: none; margin: 0; }
.cp-faq .sp-faq-item { border-top: 1px solid var(--sc-line); border-bottom: 0; background: none; border-radius: 0; box-shadow: none; margin: 0; }
.cp-faq .sp-faq-item:last-child { border-bottom: 1px solid var(--sc-line); }
.cp-faq .sp-faq-item summary { padding: 19px 0; font-size: 16px; font-weight: 500; color: var(--sp-text); line-height: 1.5; gap: 20px; }
.cp-faq .sp-faq-chevron { width: 18px; height: 18px; flex-shrink: 0; }
.cp-faq .sp-faq-answer { padding: 0 12px 20px 0; font-size: 16px; line-height: 1.7; }
.cp-contact { background: var(--sp-whisper); scroll-margin-top: 84px; }
.cp-contact-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "intro form" "details form"; gap: 24px clamp(32px,8vw,110px); align-items: start; }
.cp-contact-copy { grid-area: intro; }
.cp-contact-copy > p { font-size: 16px; margin-top: 20px; }
.cp-contact-details { grid-area: details; }
.cp-contact-grid .sc-question-form { grid-area: form; }
.sp-craft .cp-call { margin-top: 26px; font-size: 15px; }
.cp-call a { font-weight: 600; text-underline-offset: 4px; }
.cp-call span { display: block; font-size: 13px; margin-top: 6px; }
.cp-explore { display: flex; flex-direction: column; align-items: start; margin-top: 24px; padding-top: 14px; border-top: 1px solid var(--sc-line); }
@media (max-width: 899px) {
  .cp-hero { grid-template-columns: 1.25fr .75fr; gap: 18px; }
  .cp-story { gap: 30px; }
  .cp-practical-grid, .cp-faq { grid-template-columns: 1fr; gap: 40px; }
  .cp-contact-grid { grid-template-columns: 1fr; grid-template-areas: "intro" "form" "details"; gap: 28px; }
  .cp-facts dl > div + div { padding-left: 20px; }
}
@media (max-width: 599px) {
  .cp-hero { grid-template-columns: 1fr; gap: 4px; padding-block: 28px 18px; }
  .cp-hero .sc-location { font-size: 12px; margin-bottom: 18px; }
  .cp-hero .sc-lead { margin-top: 18px; }
  .cp-hero .sc-actions { gap: 4px 18px; margin-top: 20px; }
  .cp-hero .sc-hero-art { justify-self: center; width: 290px; max-width: 100%; margin-top: 8px; }
  .cp-hero .sc-hero-art img { max-height: 172px; }
  .cp-facts dl { grid-template-columns: 1fr; gap: 0; padding-block: 8px; }
  .cp-facts dl > div, .cp-facts dl > div + div { display: grid; grid-template-columns: 74px 1fr; gap: 18px; padding: 14px 0; border: 0; }
  .cp-facts dl > div + div { border-top: 1px solid var(--sc-line); }
  .cp-facts dt { padding-top: 3px; margin: 0; }
  .cp-facts dd { font-size: 16px; }
  .cp-facts dd span { font-size: 12px; }
  .cp-story { grid-template-columns: 1fr; gap: 26px; }
  .cp-story img { max-height: 250px; }
  .cp-schedule > div { gap: 4px 12px; }
  .cp-schedule dt { font-size: 15px; }
  .cp-faq { gap: 24px; }
}
