/* V3: connected project stages and the original subject / course-card pattern. */
.experiential-tagline{font-family:var(--heading-font);font-size:27px;line-height:1.35;margin-top:22px}
.community-heading .experiential-tagline+.intro{margin-top:13px}
.experiential-network-intro{font-size:15px;color:var(--muted);line-height:1.8;max-width:760px;margin-top:25px}
.project-support-section{max-width:830px}
.project-support-introduction{margin-top:29px;max-width:800px}
.project-support-introduction p,.project-support-chapter p{font-size:15px;line-height:1.85;color:var(--muted)}
.project-support-introduction p+p,.project-support-chapter p+p{margin-top:20px}
.project-support-chapters{margin-top:39px}
.project-support-chapter{padding:32px 0 34px;border-top:1px solid var(--line)}
.project-support-chapter h3{font-size:30px;line-height:1.3;margin-bottom:21px;color:var(--ink)}
.project-support-chapter:last-child{padding-bottom:0}
.project-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:6px 0 30px;padding:22px 0 28px;border-block:1px solid var(--line)}
.flow-step{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0;padding:0 25px 0 0;background:none;border:0;text-align:left;color:var(--muted);transition:none}
.flow-step-index{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;font-family:var(--heading-font);font-size:20px;color:var(--maroon);background:var(--white)}
.flow-step-label{font-size:12px;line-height:1.5;min-height:36px;max-width:150px}
.flow-step-arrow{position:absolute;right:0;top:6px;font-family:Arial,sans-serif;font-size:25px;color:var(--gold);font-weight:300}
.flow-step[aria-selected=true]{color:var(--maroon)}
.flow-step[aria-selected=true] .flow-step-index{background:var(--maroon);border-color:var(--maroon);color:var(--paper)}
.flow-step[aria-selected=true] .flow-step-label{font-weight:600}
.flow-step:hover .flow-step-index{border-color:var(--maroon)}
.curriculum-opening{display:grid;grid-template-columns:1fr 230px;gap:60px;padding-block:65px 60px;border-bottom:1px solid var(--line)}
.curriculum-opening h1{font-size:calc(clamp(50px,5.6vw,78px)*var(--type-scale))}
.curriculum-opening .intro{max-width:870px;margin-top:24px}
.curriculum-ap-number{border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;padding-left:38px;line-height:1.5}
.curriculum-ap-number strong{font-family:var(--heading-font);font-size:110px;font-weight:400;line-height:1;color:var(--maroon)}
.curriculum-ap-number span{font-size:15px}.curriculum-ap-number small{font-size:11px;margin-top:15px;color:var(--muted)}
.curriculum-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:48px;padding-block:45px 70px}
.curriculum-sidebar{border-right:1px solid var(--line);padding-right:22px}
.curriculum-sidebar nav{display:flex;flex-direction:column;gap:5px;position:sticky;top:130px}
.course-subject-choice{display:flex;align-items:center;gap:15px;background:none;border:0;border-left:2px solid transparent;text-align:left;padding:15px;font-size:14px;line-height:1.6;color:var(--ink)}
.course-subject-choice[aria-pressed=true]{color:var(--maroon);border-left-color:var(--maroon);font-weight:600}
.course-subject-choice:hover{background:var(--paper)}
.curriculum-icon{width:25px;height:25px;flex-shrink:0;color:var(--maroon)}
.curriculum-main{min-width:0}
.curriculum-search-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:32px}
.curriculum-search-box{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:11px 15px;flex:1;min-width:230px;max-width:500px}
.curriculum-search-box>svg{width:18px;height:18px;flex-shrink:0}
.curriculum-search-box input{width:100%;min-width:0;border:0;background:none;outline:none;padding:0;font-size:13px;color:var(--ink)}
.curriculum-levels{display:flex;gap:18px;flex-wrap:wrap}
.curriculum-levels button{border:0;border-bottom:2px solid transparent;padding:9px 0;background:none;color:var(--muted);font-size:12px;line-height:1.4}
.curriculum-levels button[aria-pressed=true]{color:var(--maroon);border-bottom-color:var(--maroon)}
.curriculum-subject-section+.curriculum-subject-section{margin-top:55px;padding-top:35px;border-top:1px solid var(--line)}
.curriculum-subject-heading{display:flex;align-items:center;gap:20px}
.curriculum-subject-heading .curriculum-icon{width:34px;height:34px}
.curriculum-subject-heading h2{font-size:42px}
.curriculum-description{color:var(--muted);font-size:15px;line-height:1.8;margin-top:20px}
.curriculum-caption{font-size:12px;color:var(--muted);margin-top:22px}
.curriculum-count{font-size:12px;color:var(--muted);margin-top:32px}
.curriculum-course-group{margin-top:25px}
.curriculum-course-group h3{font-size:26px;color:#88652e;padding-bottom:12px;border-bottom:1px solid var(--line)}
.curriculum-course-row{display:flex;justify-content:space-between;align-items:center;gap:25px;width:100%;padding:20px 0;background:none;border:0;border-bottom:1px solid var(--line);font-size:14px;text-align:left;color:var(--ink);line-height:1.6}
.curriculum-course-row:hover{color:var(--maroon);background:var(--paper)}
.curriculum-course-row .arrow{font-size:19px;color:var(--muted)}
.curriculum-research-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.curriculum-research-grid h3{font-size:30px}
.curriculum-research-grid p{font-size:15px;color:var(--muted);margin-top:20px}
.curriculum-research-grid button.text-link{background:none;border:0;border-bottom:1px solid var(--maroon);padding-inline:0;margin-top:20px}
.curriculum-progression{margin-top:50px;padding-top:30px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:40px}
.curriculum-progression p{font-size:15px;color:var(--muted);max-width:650px}.curriculum-progression button{flex-shrink:0}
.course-dialog{width:min(800px,calc(100% - 40px));max-height:calc(100dvh - 70px);border:0;padding:47px 50px;background:var(--white);color:var(--ink);overflow:auto;box-shadow:0 24px 100px #0003}
.course-dialog::backdrop{background:rgba(38,28,30,.59)}
.course-card-close{position:absolute;right:23px;top:16px;width:33px;height:33px;border:0;background:none;font-size:28px;line-height:1;color:var(--ink)}
.course-card-kicker{font-size:12px;color:var(--maroon);margin-bottom:20px;padding-right:25px}
.course-dialog h2{font-size:43px;line-height:1.2;padding-right:12px}
.course-card-facts{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}
.course-card-facts h3{font-family:var(--body-font);font-size:12px;font-weight:500;color:#88652e;line-height:1.6;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:10px}
.course-card-facts p{font-size:15px}
.course-card-description{font-size:15px;line-height:1.85;margin-top:29px}
.course-card-contacts{border-top:1px solid var(--line);padding-top:24px;margin-top:28px}
.course-card-contacts h3{font-size:29px}
.course-contact-note{font-size:12px;color:var(--muted);margin-top:13px;line-height:1.75}
.course-contact-row{display:grid;grid-template-columns:1fr 1.2fr;gap:25px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.course-contact-row strong{font-size:13px;font-weight:500;display:block}
.course-contact-row span{font-size:11px;color:var(--muted);display:block;margin-top:3px}
.course-contact-row a{font-size:12px;color:var(--maroon);overflow-wrap:anywhere}
.course-card-contacts .text-link{font-size:12px;margin-top:16px}
.diagram-dialog{width:min(1100px,calc(100% - 40px))}.diagram-dialog img{margin-top:30px}.diagram-dialog .text-link{margin-top:20px;font-size:13px}
@media(max-width:1100px){
  .curriculum-layout{grid-template-columns:230px minmax(0,1fr);gap:32px}
  .course-subject-choice{font-size:12px;padding-inline:10px;gap:12px}
  .curriculum-search-row{gap:20px}.curriculum-search-box{max-width:none;flex-basis:100%}
  .curriculum-opening{grid-template-columns:1fr 180px;gap:40px}.curriculum-ap-number{padding-left:30px}
  .curriculum-subject-heading h2{font-size:36px}.curriculum-progression{gap:25px}
}
@media(max-width:740px){
  .project-support-introduction{margin-top:24px}.project-support-introduction p,.project-support-chapter p{font-size:14px;line-height:1.85}.project-support-chapters{margin-top:30px}.project-support-chapter{padding-block:27px}.project-support-chapter h3{font-size:27px;margin-bottom:18px}
  .style-toggle{left:auto;right:10px}.style-panel{left:auto;right:10px}
  .experiential-tagline{font-size:24px;margin-top:20px}.experiential-network-intro{font-size:14px}
  .project-flow{grid-template-columns:1fr;gap:0;padding:5px 0 12px;margin-top:0}
  .flow-step{display:grid;grid-template-columns:37px minmax(0,1fr);gap:16px;align-items:center;min-height:76px;padding:9px 0 22px}
  .flow-step-index{width:36px;height:36px;font-size:18px}
  .flow-step-label{max-width:none;min-height:0;font-size:13px}
  .flow-step-arrow{left:8px;right:auto;top:auto;bottom:-5px;transform:rotate(90deg);font-size:23px}
  .flow-step:last-child{padding-bottom:10px;min-height:62px}
  .curriculum-opening{grid-template-columns:1fr;gap:30px;padding-block:36px}
  .curriculum-opening h1{font-size:calc(48px*var(--type-scale))}.curriculum-opening .intro{font-size:16px;margin-top:20px}
  .curriculum-ap-number{padding:0 0 0 18px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 18px}
  .curriculum-ap-number strong{font-size:61px;grid-row:1/3}.curriculum-ap-number span{font-size:13px;align-self:end}
  .curriculum-ap-number small{font-size:10px;margin-top:3px;align-self:start}
  .curriculum-layout{grid-template-columns:1fr;gap:30px;padding-block:27px 45px}
  .curriculum-sidebar{padding:0 0 24px;border-right:0;border-bottom:1px solid var(--line)}
  .curriculum-sidebar nav{position:static;display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}
  .course-subject-choice{font-size:10px;padding:10px 7px;gap:8px;min-height:49px;line-height:1.6}
  .course-subject-choice .curriculum-icon{width:20px;height:20px}
  .curriculum-search-row{gap:18px;margin-bottom:25px}.curriculum-search-box{min-width:0;padding:11px 13px}
  .curriculum-search-box input{font-size:12px}.curriculum-levels{gap:17px}.curriculum-levels button{font-size:11px}
  .curriculum-subject-heading{gap:13px;align-items:flex-start}.curriculum-subject-heading h2{font-size:33px}
  .curriculum-subject-heading .curriculum-icon{width:27px;height:27px;margin-top:6px}
  .curriculum-description{font-size:14px;margin-top:17px}.curriculum-count{font-size:11px;margin-top:26px}
  .curriculum-caption{font-size:11px}.curriculum-course-group h3{font-size:25px}.curriculum-course-row{font-size:13px;padding-block:18px}
  .curriculum-research-grid{grid-template-columns:1fr;gap:35px}.curriculum-research-grid h3{font-size:29px}.curriculum-research-grid p{font-size:14px}
  .curriculum-progression{display:block;margin-top:35px;padding-top:25px}.curriculum-progression p{font-size:14px}.curriculum-progression button{margin-top:23px}
  .course-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 32px);padding:36px 23px 28px}
  .course-card-close{right:13px;top:10px;font-size:26px}.course-card-kicker{font-size:10px;margin-bottom:17px}
  .course-dialog h2{font-size:33px}.course-card-facts{gap:20px;margin-top:23px;padding-top:20px}
  .course-card-facts h3{font-size:10px}.course-card-facts p{font-size:13px}.course-card-description{font-size:14px;margin-top:23px}
  .course-card-contacts h3{font-size:27px}.course-contact-note{font-size:11px}
  .course-contact-row{grid-template-columns:1fr;gap:6px;padding-block:13px}.course-contact-row a{font-size:11px}.course-contact-row strong{font-size:13px}
  .course-dialog .empty-note{padding:19px;font-size:13px}.diagram-dialog h2{font-size:30px}.diagram-dialog img{margin-top:23px}
}
