.course-directory { width:100%; color:#102b47; }
.course-directory__introduction { margin:0 0 1.25rem; padding:clamp(1.5rem,3vw,2.6rem); border-top:4px solid #5fbce5; background:linear-gradient(135deg,#f9fcfe,#eef6fa); box-shadow:0 12px 30px rgba(10,39,68,.09); }
.course-directory h1,.course-directory h2,.course-directory h3 { color:#102b47; }
.course-directory h1 { margin:.2rem 0 1rem; font-size:clamp(2.25rem,4vw,3.8rem); }
.course-directory h2 { margin:.2rem 0 1rem; font-size:clamp(1.65rem,2.6vw,2.45rem); }
.course-directory p { max-width:76ch; line-height:1.7; }
.course-directory__workspace { display:grid; grid-template-columns:250px minmax(0,1fr); gap:1.25rem; align-items:start; }
.course-contents { position:sticky; top:18px; max-height:calc(100vh - 36px); overflow:auto; border-top:4px solid #96334d; background:#0c3458; color:#fff; box-shadow:0 14px 30px rgba(8,35,59,.16); }
.course-contents__heading { padding:18px 16px; background:#092b4a; }
.course-contents__heading p { margin:0 0 10px; color:#bfe4f5; font:800 .72rem/1.2 var(--label); letter-spacing:.12em; text-transform:uppercase; }
.course-contents button { width:100%; border:0; color:inherit; text-align:left; cursor:pointer; }
.course-contents__heading button { padding:8px 0; background:transparent; color:#fff; font-weight:800; }
.course-contents__school { border-top:1px solid rgba(181,220,239,.24); }
.course-contents__school>button { display:grid; gap:3px; padding:14px 16px; background:rgba(255,255,255,.035); }
.course-contents__school>button:hover,.course-contents__school>button:focus-visible,.course-contents__school>button[aria-pressed=true] { background:#fff; color:#0d3b62; }
.course-contents__school button b { font-size:.83rem; letter-spacing:.06em; }
.course-contents__school button span { font-size:.72rem; line-height:1.35; opacity:.83; }
.course-contents__school>p { margin:0; padding:10px 16px 16px; color:#b9d1df; font-size:.72rem; line-height:1.4; }
.course-contents__courses { padding:4px 0 9px; background:rgba(1,16,31,.2); }
.course-contents__courses a { display:block; padding:7px 13px 7px 24px; color:#e9f7fd; text-decoration:none; }
.course-contents__courses a:hover,.course-contents__courses a:focus-visible { background:rgba(128,202,236,.18); }
.course-contents__courses b,.course-contents__courses span { display:block; }
.course-contents__courses b { font-size:.72rem; letter-spacing:.045em; }
.course-contents__courses span { margin-top:2px; font-size:.69rem; line-height:1.3; opacity:.76; }
.course-directory__browse { display:grid; gap:1.1rem; min-width:0; padding:clamp(1.4rem,2.6vw,2.4rem); background:#fff; box-shadow:0 12px 30px rgba(10,39,68,.08); }
.course-directory__browse-heading p:last-child { color:#4c6578; }
.course-directory__search { display:grid; gap:.45rem; max-width:680px; color:#173e68; font-weight:800; }
.course-directory__search input { width:100%; border:1px solid #7891aa; border-radius:0; padding:.86rem; font:inherit; }
.course-directory__search input:focus { outline:3px solid rgba(94,178,216,.35); outline-offset:1px; }
.course-directory__active-filter { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 13px; border-left:3px solid #5fbce5; background:#eef6fa; color:#173e68; font-weight:800; }
.course-directory__active-filter button { border:0; background:transparent; color:#7c2440; font-weight:800; cursor:pointer; }
#course-count { margin:0; color:#4d6678; font-size:.86rem; }
.course-directory__courses { display:grid; gap:1px; background:#d6e0e9; border:1px solid #d6e0e9; }
.course-directory__course { scroll-margin-top:24px; padding:1.45rem; background:#fff; }
.course-directory__course[hidden] { display:none; }
.course-directory__course h3 { margin:.25rem 0 .7rem; font-size:1.3rem; }
.course-directory__code { margin:0; color:#295a87; font:800 .82rem/1.3 var(--label); letter-spacing:.08em; }
.course-directory__course dl { display:grid; grid-template-columns:minmax(150px,24%) 1fr; gap:.45rem 1.2rem; margin:1rem 0 0; padding-top:1rem; border-top:1px solid #d6e0e9; }
.course-directory__course dl>div { display:contents; }
.course-directory__course dt { font-weight:800; }
.course-directory__course dd { margin:0; line-height:1.5; }
@media (max-width:1180px) { .course-directory__workspace { grid-template-columns:210px minmax(0,1fr); } }
@media (max-width:760px) { .course-directory__workspace { grid-template-columns:1fr; } .course-contents { position:static; max-height:none; } .course-directory__course dl { grid-template-columns:1fr; gap:.2rem; } .course-directory__course dd { margin-bottom:.7rem; } }
