/* Course overview only. Course editing, player and external instructions are separate. */
.course-overview { padding-top:24px!important; padding-bottom:72px!important; }
.course-overview *, .course-overview *::before,.course-overview *::after { box-sizing:border-box; }
.course-overview :is(a,button,summary):focus-visible { outline:2px solid var(--tau-wine); outline-offset:4px; }
.course-overview .course-detail__breadcrumb { flex-wrap:wrap; font-size:14px; margin-bottom:24px; }
.co-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:36px 64px; align-items:start; }
.co-intro { grid-column:1; grid-row:1; min-width:0; }
.course-overview h1 { font-size:clamp(32px,3.4vw,48px); line-height:1.16; letter-spacing:-.035em; font-weight:600; margin:0; overflow-wrap:break-word; }
.co-description { font-size:18px; line-height:1.65; color:var(--ink-soft); margin:22px 0 0; overflow-wrap:anywhere; white-space:pre-line; }
.co-about { margin-top:16px; }
.co-about>summary { display:flex; align-items:center; gap:14px; width:fit-content; min-height:44px; list-style:none; color:var(--tau-wine); cursor:pointer; font-size:15px; font-weight:600; }
.co-about>summary::-webkit-details-marker,.co-module>summary::-webkit-details-marker { display:none; }
.co-about>summary>span { font-size:22px; font-weight:400; }
.co-about[open]>summary>span { transform:rotate(45deg); }
.co-about>div { font-size:17px; line-height:1.7; white-space:pre-line; overflow-wrap:anywhere; padding-top:12px; }
.co-sidebar { grid-column:2; grid-row:1 / span 2; position:static; top:104px; border:1px solid var(--line); border-top:2px solid var(--tau-wine); background:var(--surface,#fff); min-width:0; box-shadow:0 14px 36px -28px #4b203c45; }
.co-sidebar.is-sticky { position:sticky; }
.co-cover { position:relative; height:180px; display:grid; place-items:center; overflow:hidden; border-bottom:1px solid var(--line); background:#eee5e7; }
.co-cover>span { color:var(--tau-wine); font-size:56px; font-weight:700; letter-spacing:-.06em; }
.co-cover small { font-size:13px; letter-spacing:.08em; }
.co-cover img { position:absolute; z-index:1; inset:0; width:100%; height:100%; padding:16px; object-fit:contain; background:#fff; }
.co-cover img.is-broken { display:none; }
.co-sidebar__body { padding:24px; }
.co-facts { display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; margin:0 0 24px; }
.co-facts__teacher { grid-column:1/-1; }
.co-facts dt { font-size:13px; color:var(--muted); line-height:1.45; }
.co-facts dd { margin:5px 0 0; font-size:17px; line-height:1.45; font-weight:600; overflow-wrap:anywhere; }
.co-facts__teacher dd { font-size:16px; font-weight:500; }
.co-primary-action form { margin:0; }
.course-overview .co-primary-action .tau-button { width:100%; min-height:50px; padding:12px 16px; white-space:normal; text-align:center; font-size:16px; line-height:1.5; border-radius:2px; }
.co-note { margin:13px 0 0; font-size:14px; line-height:1.55; color:var(--muted); }
.co-program-link { display:flex; align-items:center; justify-content:center; min-height:44px; color:var(--tau-wine); text-decoration:underline; text-underline-offset:4px; font-size:14px; margin-top:8px; }
.co-rating { padding-top:16px; margin-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:14px; }
.co-rating form { margin:0; }
.co-like { min-height:44px; display:flex; align-items:center; gap:8px; border:0; background:transparent; padding:0 6px; font:inherit; color:inherit; cursor:pointer; }
.co-like[aria-pressed=true],.co-like:hover { color:var(--tau-wine); }
.co-like>span { font-size:23px; }
.co-progress { padding:0 0 20px; }
.co-progress>div { display:flex; justify-content:space-between; gap:12px; font-size:14px; }
.co-progress strong { color:var(--tau-wine); }
.co-progress progress { display:block; appearance:none; width:100%; height:5px; border:0; background:#e6dfe1; margin-top:12px; accent-color:var(--tau-wine); }
.co-progress progress::-webkit-progress-bar { background:#e6dfe1; }
.co-progress progress::-webkit-progress-value { background:var(--tau-wine); }
.co-progress progress::-moz-progress-bar { background:var(--tau-wine); }
.co-progress p { color:var(--muted); font-size:13px; margin:8px 0 0; }
.co-program { grid-column:1; grid-row:2; min-width:0; }
.co-program__heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px 20px; margin-bottom:24px; flex-wrap:wrap; }
.course-overview h2 { font-size:clamp(26px,2.5vw,34px); font-weight:600; line-height:1.2; letter-spacing:-.025em; margin:0; }
#curriculum-title { scroll-margin-top:110px; }
#curriculum-title:focus { outline:none; }
.co-program__heading p { margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.co-toggle-all { min-height:44px; font:inherit; font-size:14px; color:var(--tau-wine); background:transparent; border:0; padding:0; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.co-toggle-all[hidden] { display:none; }
.co-modules { border-bottom:1px solid var(--line); }
.co-module { border:1px solid var(--line); border-bottom:0; }
.co-module>summary { display:flex; list-style:none; align-items:center; gap:16px; padding:20px; min-height:84px; cursor:pointer; background:var(--surface,#fff); transition:background .22s,box-shadow .22s; }
.co-module>summary:hover { background:#74163d05; }
.co-module__number { flex:none; font-size:14px; color:var(--tau-wine); }
.co-module__title { display:grid; gap:6px; min-width:0; flex:1; }
.co-module__title strong { font-size:18px; line-height:1.4; font-weight:600; overflow-wrap:anywhere; }
.co-module__title small { font-size:13px; color:var(--muted); line-height:1.5; }
.co-module__toggle { position:relative; flex:none; width:20px; height:20px; color:var(--muted); }
.co-module__toggle::before,.co-module__toggle::after { content:''; position:absolute; width:12px; height:1px; left:4px; top:10px; background:currentColor; transition:transform .24s,opacity .24s; }
.co-module__toggle::after { transform:rotate(90deg); }
.co-module:is([open]:not(.has-disclosure-motion),.is-expanded) .co-module__toggle::after { transform:rotate(0); opacity:0; }
.co-module:is([open]:not(.has-disclosure-motion),.is-expanded)>summary { background:#74163d06; box-shadow:inset 2px 0 var(--tau-wine); }
.co-steps { list-style:none; margin:0; padding:0 20px; }
.co-steps>li { border-top:1px solid var(--line); }
.co-step { display:grid; grid-template-columns:36px minmax(0,1fr) 20px; align-items:start; gap:12px; padding:17px 0; color:var(--ink); min-height:76px; text-decoration:none; }
a.co-step:hover .co-step__copy strong { color:var(--tau-wine); text-decoration:underline; text-underline-offset:4px; }
.co-step__icon { color:var(--tau-wine); display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--line); background:#74163d04; }
.co-step__icon svg { width:21px; height:21px; }
.co-step__copy { display:grid; gap:4px; min-width:0; }
.co-step__copy strong { font-weight:550; font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
.co-step__copy small { color:var(--muted); font-size:13px; line-height:1.5; }
.co-step__status { font-size:13px; line-height:1.5; color:var(--muted); }
.co-step__state { display:grid; place-items:center; min-height:30px; font-size:18px; color:var(--muted); }
.co-step__state svg { width:17px; height:17px; }
.co-step.is-next .co-step__status { color:var(--tau-wine); font-weight:600; }
.co-step.is-done .co-step__state { color:#337046; }
.co-step.is-locked .co-step__icon { color:var(--muted); background:transparent; }
.co-empty { padding:24px; border:1px solid var(--line); margin-bottom:16px; }
.co-empty h3 { font-size:20px; margin:0 0 10px; }
.co-empty p,.co-module__empty { color:var(--muted); font-size:16px; line-height:1.6; }
.co-module__empty { padding:0 20px 20px; margin:0; }
.co-about>summary>span { transition:transform .24s; }
.co-about.has-disclosure-motion:not(.is-expanded)>summary>span { transform:none; }
.co-step__icon { transition:background .2s,border-color .2s,color .2s,transform .2s; }
.co-step__copy strong { transition:color .2s; }
.co-step.is-next { background:linear-gradient(90deg,#74163d08,transparent); }
.co-step.is-next .co-step__icon { border-color:#74163d55; background:#74163d0a; }
.co-module__content { display:flow-root; }
.co-primary-action .tau-button { transition:background .2s,box-shadow .2s,transform .2s; }
.co-like>span { display:inline-block; transition:transform .2s; }
@media(hover:hover) and (pointer:fine){
 a.co-step:hover .co-step__icon { background:#74163d0c; border-color:#74163d66; transform:translateY(-1px); }
 .co-primary-action .tau-button:hover { transform:translateY(-1px); box-shadow:0 5px 14px -8px #74163d80; }
 .co-like:hover>span { transform:scale(1.12); }
}
.has-course-motion :is(.co-intro,.co-sidebar,.co-program) { animation:co-enter .5s cubic-bezier(.22,.7,.2,1) both; }
.has-course-motion .co-sidebar { animation-delay:50ms; }
.has-course-motion .co-program { animation-delay:90ms; }
:is(.tau-intro-pending,.tau-transitioning) .has-course-motion :is(.co-intro,.co-sidebar,.co-program) { animation-play-state:paused; }
@keyframes co-enter { from { opacity:0; translate:0 8px; } to { opacity:1; translate:0 0; } }
@media(max-width:1100px){ .co-layout { grid-template-columns:minmax(0,1fr) 300px; gap:32px; } .co-sidebar__body { padding:20px; } }
@media(max-width:800px){
 .co-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
 .co-intro { grid-column:1; grid-row:1; }
 .co-sidebar { grid-column:1; grid-row:2; position:static; }
 .co-program { grid-column:1; grid-row:3; }
 .co-cover { display:none; }
 .co-sidebar__body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 28px; }
 .co-facts { grid-column:1; grid-row:1 / span 4; margin-bottom:0; align-content:start; }
 .co-progress,.co-primary-action,.co-note,.co-program-link { grid-column:2; }
 .co-rating { grid-column:1/-1; margin-top:20px; padding-top:8px; }
 .course-overview h1 { font-size:36px; }
}
@media(max-width:540px){
 .course-overview { padding-top:16px!important; padding-bottom:48px!important; }
 .course-overview h1 { font-size:32px; letter-spacing:-.025em; }
 .co-description { font-size:17px; margin-top:16px; }
 .co-sidebar__body { display:block; padding:20px; }
 .co-facts { margin-bottom:22px; }
 .co-module>summary { padding:18px 16px; gap:12px; }
 .co-module__title strong { font-size:17px; }
 .co-steps { padding-inline:16px; }
 .co-step { grid-template-columns:30px minmax(0,1fr) 18px; gap:10px; }
 .co-step__icon { width:30px; height:32px; }
 .co-step__copy strong { font-size:16px; }
 .co-program__heading { margin-bottom:18px; }
}
@media(prefers-reduced-motion:reduce){.course-overview *,.course-overview *::before,.course-overview *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important;}}
