/* Source-backed course details, scoped to the NVO campaign course section. */
.nvo-course { background: #f6f2ea; }
.nvo-course__intro { display: grid; grid-template-columns: minmax(0, 1fr) 310px; align-items: center; gap: 72px; }
.nvo-course__intro h2 { max-width: 750px; margin: 18px 0 26px; font-size: clamp(39px, 4.4vw, 64px); line-height: 1.05; }
.nvo-course__name { max-width: 640px; font-size: 21px; font-weight: 650; line-height: 1.4; letter-spacing: -.025em; }
.nvo-course__lead { max-width: 610px; margin-top: 18px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.nvo-course__start { padding: 28px; border: 1px solid #bec9bd; border-radius: 12px; background: #e8ece4; }
.nvo-course__start > .eyebrow { color: #41614e; }
.nvo-course__date { margin: 16px 0 24px; }
.nvo-course__date time { display: flex; align-items: center; gap: 17px; }
.nvo-course__date strong { font-family: 'Bricolage Grotesque', 'DM Sans', sans-serif; font-size: 88px; font-weight: 550; letter-spacing: -.075em; line-height: 1; }
.nvo-course__date span { font-size: 18px; line-height: 1.3; }
.nvo-course__start > p:not(.eyebrow):not(.nvo-course__date) { font-size: 16px; line-height: 1.7; }
.nvo-course__start-note { display: block; margin-top: 17px; padding-top: 16px; border-top: 1px solid #c4cfc2; color: #4b5d4f; font-size: 14px; line-height: 1.6; }
.nvo-course__program, .nvo-course__teachers { padding-top: 80px; }
.nvo-course__subheading { max-width: 720px; }
.nvo-course__subheading h2, .nvo-course__subheading h3 { font-size: clamp(30px, 3vw, 42px); font-weight: 600; line-height: 1.1; margin: 15px 0; }
.nvo-course__subheading > p:last-child { max-width: 640px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.nvo-course__lessons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; margin: 35px 0 0; padding: 0; list-style: none; }
.nvo-course__lessons > li { display: flex; flex-direction: column; padding: 22px 0 0; border-top: 2px solid #9daf99; }
.nvo-course__lesson-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 24px; }
.nvo-course__lesson-meta > span { font-size: 14px; font-weight: 650; color: #65705f; }
.nvo-course__lesson-meta time { padding: 4px 9px; border-radius: 4px; background: #e8ece4; color: #43573f; font-size: 14px; white-space: nowrap; }
.nvo-course h3, .nvo-course h4 { margin: 0; font-family: 'Bricolage Grotesque', 'DM Sans', sans-serif; letter-spacing: -.025em; font-weight: 600; }
.nvo-course__lessons h3 { font-size: 25px; line-height: 1.15; }
.nvo-course__lessons li > p { margin: 15px 0 23px; color: var(--muted); font-size: 17px; line-height: 1.7; }
.nvo-course__lesson-teacher { display: block; margin-top: auto; font-size: 14px; line-height: 1.6; color: #566250; }
.nvo-course__bonuses { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 20px 35px; margin-top: 44px; padding: 32px; border-radius: 10px; background: #eee6d9; }
.nvo-course__bonuses h3 { margin-top: 11px; font-size: 28px; line-height: 1.15; }
.nvo-course__bonuses ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px 35px; margin: 0; padding: 0; list-style: none; }
.nvo-course__bonuses li { display: flex; align-items: flex-start; gap: 15px; }
.nvo-course__bonuses time { margin-top: 2px; color: #755935; font-size: 14px; font-weight: 650; white-space: nowrap; }
.nvo-course__bonuses strong { display: block; font-size: 17px; font-weight: 600; line-height: 1.5; }
.nvo-course__bonuses small { display: block; margin-top: 5px; color: #656153; font-size: 14px; }
.nvo-course__panel { grid-column: 2; border-top: 1px solid #d8cdb9; padding-top: 16px; font-size: 15px; color: #5e5c50; }
.nvo-course__panel time { color: inherit; font-size: inherit; font-weight: inherit; }
.nvo-course__teacher-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 35px 26px; margin: 32px 0 0; padding: 0; list-style: none; }
.nvo-course__teacher-grid li { min-width: 0; }
.nvo-course__teacher-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; object-position: center 28%; border-radius: 8px; background: #e8e1d8; }
.nvo-course__teacher-grid h4 { margin-top: 15px; font-size: 20px; line-height: 1.2; }
.nvo-course__teacher-grid p { margin-top: 7px; font-size: 15px; color: var(--muted); line-height: 1.5; }
.nvo-course__more { min-height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 35px; margin-top: 36px; padding: 32px 38px; border-radius: 9px; color: #f6f2ea; background: #263d35; transition: background .18s; }
.nvo-course__more > span:first-child { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.nvo-course__more .eyebrow { color: #cfdbcb; font-size: 13px; }
.nvo-course__more strong { font-family: 'Bricolage Grotesque', 'DM Sans', sans-serif; font-size: clamp(25px, 3vw, 40px); font-weight: 550; letter-spacing: -.035em; line-height: 1.12; }
.nvo-course__more > span > span:last-child { color: #d3ded1; font-size: 16px; }
.nvo-course__more > svg { width: 55px; height: 55px; stroke-width: 1.1; }
.nvo-course__more:hover { background: #365746; }
.nvo-course__more:focus-visible { outline: 3px solid #8b622c; outline-offset: 5px; }
.nvo-course__apply-note { margin: 17px 0 0; font-size: 15px; color: var(--muted); line-height: 1.7; }
.nvo-course__apply-note a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) {
  .nvo-course__intro { grid-template-columns: minmax(0, 1fr) 280px; gap: 45px; }
  .nvo-course__intro h2 { font-size: 46px; }
  .nvo-course__lessons { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .nvo-course__bonuses { grid-template-columns: 200px minmax(0, 1fr); gap: 25px; }
  .nvo-course__teacher-grid { gap: 30px 20px; }
  .nvo-course__teacher-grid h4 { font-size: 18px; }
}
@media (max-width: 820px) {
  .nvo-course__intro { grid-template-columns: minmax(0, 1fr) 240px; gap: 30px; }
  .nvo-course__intro h2 { font-size: 39px; }
  .nvo-course__name { font-size: 18px; }
  .nvo-course__lead { font-size: 18px; }
  .nvo-course__start { padding: 24px; }
  .nvo-course__date strong { font-size: 72px; }
  .nvo-course__date span { font-size: 18px; }
  .nvo-course__program, .nvo-course__teachers { padding-top: 60px; }
  .nvo-course__bonuses { grid-template-columns: 1fr; padding: 26px; }
  .nvo-course__panel { grid-column: 1; }
  .nvo-course__teacher-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nvo-course__more { padding: 28px; }
}
@media (max-width: 560px) {
  .nvo-course__intro { grid-template-columns: 1fr; gap: 30px; }
  .nvo-course__intro h2 { margin: 16px 0 23px; font-size: 40px; }
  .nvo-course__name { font-size: 19px; }
  .nvo-course__start { display: grid; grid-template-columns: 1fr; gap: 14px; padding: 23px; }
  .nvo-course__start > .eyebrow { grid-column: 1 / -1; }
  .nvo-course__date { margin: 0; align-self: center; }
  .nvo-course__date time { gap: 10px; }
  .nvo-course__date strong { font-size: 64px; }
  .nvo-course__date span { font-size: 18px; }
  .nvo-course__start > p:not(.eyebrow):not(.nvo-course__date) { font-size: 16px; }
  .nvo-course__start-note { margin: 0; padding-top: 9px; font-size: 14px; }
  .nvo-course__program, .nvo-course__teachers { padding-top: 48px; }
  .nvo-course__subheading h2, .nvo-course__subheading h3 { font-size: 31px; }
  .nvo-course__subheading > p:last-child { font-size: 18px; }
  .nvo-course__lessons { grid-template-columns: 1fr; gap: 26px; margin-top: 26px; }
  .nvo-course__lessons > li { padding-top: 18px; }
  .nvo-course__lesson-meta { margin-bottom: 15px; }
  .nvo-course__lessons h3 { font-size: 25px; }
  .nvo-course__lessons li > p { font-size: 17px; margin-block: 12px 16px; }
  .nvo-course__bonuses { margin-top: 32px; padding: 23px; gap: 25px; }
  .nvo-course__bonuses h3 { font-size: 26px; }
  .nvo-course__bonuses ul { grid-template-columns: 1fr; gap: 20px; }
  .nvo-course__bonuses li { gap: 18px; }
  .nvo-course__bonuses time { min-width: 43px; }
  .nvo-course__teacher-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 27px 18px; margin-top: 26px; }
  .nvo-course__teacher-grid h4 { font-size: 18px; margin-top: 12px; }
  .nvo-course__teacher-grid p { font-size: 15px; margin-top: 5px; }
  .nvo-course__more { align-items: flex-end; gap: 18px; margin-top: 27px; padding: 25px 23px; }
  .nvo-course__more > span:first-child { gap: 13px; }
  .nvo-course__more .eyebrow { font-size: 13px; }
  .nvo-course__more strong { font-size: 28px; }
  .nvo-course__more > span > span:last-child { font-size: 16px; line-height: 1.6; }
  .nvo-course__more > svg { width: 33px; height: 33px; }
  .nvo-course__apply-note { font-size: 15px; }
}
@media (max-width: 360px) {
  .nvo-course__intro h2 { font-size: 35px; }
  .nvo-course__start { padding: 20px; column-gap: 14px; }
  .nvo-course__date strong { font-size: 55px; }
  .nvo-course__teacher-grid { column-gap: 14px; }
  .nvo-course__teacher-grid h4 { font-size: 17px; }
  .nvo-course__more { padding: 23px 20px; gap: 14px; }
  .nvo-course__more strong { font-size: 26px; }
}

.nvo-course--overview { background: #e8ebe3; }
.nvo-course--overview .nvo-course__start { background: #f6f2ea; }
.nvo-course__overview { margin: 46px 0 0; border: 1px solid #c9d0c3; border-radius: 14px; background: #faf8f2; overflow: hidden; }
.nvo-course__overview > div { display: grid; grid-template-columns: 230px minmax(0, 1fr); border-top: 1px solid #dce0d4; }
.nvo-course__overview > div:first-child { border-top: 0; }
.nvo-course__overview dt { padding: 27px 30px; font-size: 17px; font-weight: 650; line-height: 1.6; color: #365747; background: #f0f2e9; }
.nvo-course__overview dd { margin: 0; padding: 27px 34px; font-size: 19px; line-height: 1.7; color: #414a41; }
.nvo-course__overview strong { color: var(--ink); font-weight: 650; }
.nvo-course__cost-note { margin-top: 12px; font-size: 16px; line-height: 1.65; color: #5d614f; }
.nvo-course__schedule-link { display: flex; align-items: center; gap: 14px; min-height: 44px; margin-top: 15px; border-top: 1px solid #c4cfc2; padding-top: 15px; font-size: 16px; font-weight: 600; line-height: 1.5; text-decoration: underline; text-underline-offset: 4px; }
.nvo-course--details .nvo-course__program { padding-top: 0; }
@media (max-width: 820px) {
  .nvo-course__overview > div { grid-template-columns: 190px minmax(0, 1fr); }
  .nvo-course__overview dt, .nvo-course__overview dd { padding: 23px; }
  .nvo-course__overview dd { font-size: 18px; }
}
@media (max-width: 560px) {
  .nvo-course__overview { margin-top: 30px; }
  .nvo-course__overview > div { grid-template-columns: 1fr; }
  .nvo-course__overview dt { padding: 20px 22px 0; font-size: 17px; background: transparent; }
  .nvo-course__overview dd { padding: 9px 22px 22px; font-size: 17px; }
  .nvo-course__cost-note { font-size: 15px; }
  .nvo-course__schedule-link { margin-top: 0; }
  .nvo-course__subheading h2 { font-size: 31px; }
}

.nvo-course-link { min-height: 60px; max-width: 100%; margin-top: 28px; padding: 19px 25px; gap: 24px; font-size: 18px; text-align: left; background: #263d35; border-color: #263d35; }
.nvo-course-link > span { min-width: 0; }
.nvo-about { background: #e8ebe3; border-top: 1px solid #d4dbce; }
.nvo-about__layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .85fr); gap: 90px; align-items: center; }
.nvo-about h2 { margin: 18px 0 28px; font-size: clamp(40px, 4.4vw, 64px); }
.nvo-about__copy > p:not(.eyebrow) { max-width: 650px; font-size: 19px; line-height: 1.7; color: #465147; }
.nvo-about__copy > p + p { margin-top: 18px; }
.nvo-about__copy strong { color: #263d35; font-weight: 650; }
.nvo-about__experience { padding: 12px 0 12px 50px; border-left: 1px solid #aebdab; }
.nvo-about__total strong { display: block; color: #263d35; font-family: 'Bricolage Grotesque', 'DM Sans', sans-serif; font-size: clamp(64px, 6.7vw, 102px); font-weight: 600; line-height: 1.05; letter-spacing: -.06em; white-space: nowrap; }
.nvo-about__total > span { display: block; margin-top: 12px; font-size: 20px; line-height: 1.5; color: #465147; }
.nvo-about__community { max-width: 340px; margin-top: 36px; padding-top: 28px; border-top: 1px solid #c4cfbe; font-size: 19px; line-height: 1.7; color: #465147; }
.nvo-about__community strong { color: #263d35; font-weight: 650; }
@media (max-width: 1100px) {
  .nvo-about__layout { grid-template-columns: minmax(0, 1.2fr) minmax(270px, .85fr); gap: 45px; }
  .nvo-about__experience { padding-left: 32px; }
}
@media (max-width: 820px) {
  .nvo-about__layout { grid-template-columns: 1fr; gap: 40px; }
  .nvo-about__experience { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; border-left: 0; border-top: 1px solid #aebdab; padding: 35px 0 0; }
  .nvo-about__community { border-top: 0; padding: 0; margin-top: 0; }
}
@media (max-width: 560px) {
  .nvo-course-link { width: 100%; justify-content: space-between; padding-inline: 21px; font-size: 17px; gap: 16px; }
  .nvo-about__copy > p:not(.eyebrow), .nvo-about__community { font-size: 18px; }
  .nvo-about__experience { grid-template-columns: 1fr; gap: 25px; }
  .nvo-about__total strong { font-size: clamp(64px, 16vw, 88px); }
  .nvo-about__total > span { font-size: 18px; }
  .nvo-about__community { max-width: 100%; }
}
