/* The five lesson colours carry through the overview, navigation and working pages. */
:root{--bg:#f6f7fb;--text:#202d45;--muted:#58647a;--accent:#315fa4;--soft:#eaf0fb;--amber:#a6672e;--line:#dce2ed;--panel:#fff;--panel-deep:#f1f4fa;--navy:#24354f;--blue:#315fa4;--terracotta:#a84e38;--teal:#197272;--violet:#7650a0;--gold:#91671f}
[data-session="1"]{--accent:#315fa4;--soft:#eaf0fb;--amber:#a6672e;--lesson-color:#315fa4;--lesson-tint:#eaf0fb}
[data-session="2"]{--accent:#a84e38;--soft:#fcf0ea;--amber:#286b85;--lesson-color:#a84e38;--lesson-tint:#fcf0ea}
[data-session="3"]{--accent:#197272;--soft:#e6f3f0;--amber:#99661f;--lesson-color:#197272;--lesson-tint:#e6f3f0}
[data-session="4"]{--accent:#7650a0;--soft:#f1ecf8;--amber:#99691f;--lesson-color:#7650a0;--lesson-tint:#f1ecf8}
[data-session="5"]{--accent:#91671f;--soft:#faf2e1;--amber:#315fa4;--lesson-color:#91671f;--lesson-tint:#faf2e1}
body{background:var(--bg);color:var(--text)}
h1,h2,h3{color:var(--text)}
h1{font-weight:650;letter-spacing:-.045em}
.site-header{border-bottom:1px solid #dfe4ee;box-shadow:0 3px 16px #24354f03}
.brand-icon{color:var(--navy)}
.brand small{color:#6b7282;letter-spacing:.14em}
.header-inner nav a{color:#596477}
.header-inner nav a[aria-current=page]{color:var(--navy)}
.header-inner nav a[aria-current=page]:after{background:var(--gold)}
.lecturer-entry{border-color:#c6cedc;background:#f7f8fc;color:#374767}
.lecturer-entry:hover{background:#eaf0fb;border-color:#8b9dbb;color:#274b82}
main{padding-top:46px}
.intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;gap:32px;margin-bottom:40px;padding:4px 0 34px;border-bottom:1px solid #dce2ed}
.intro .eyebrow{display:inline-block;background:#e9eef8;color:#3e5780;border:1px solid #dce4f2;padding:6px 10px;border-radius:5px;letter-spacing:.075em}
.intro h1{font-size:clamp(2.7rem,4.2vw,3.8rem);line-height:1.07;margin:18px 0 20px;color:var(--navy)}
.intro h1 .accent{color:#b98533}
.intro p{color:#59667c;font-size:1.0625rem;line-height:1.75}
.semester-meta{justify-content:flex-end;gap:22px;padding-bottom:5px}
.semester-meta>div{padding-top:13px;border-top:3px solid var(--blue)}
.semester-meta>div:nth-child(2){border-top-color:var(--terracotta)}
.semester-meta>div:nth-child(3){border-top-color:var(--violet)}
.semester-meta>div+div{border-left:0;padding-left:0}
.semester-meta strong{color:#283951;font-weight:500;font-size:1.4rem}
.semester-meta span{font-size:.8125rem;color:#657089}
.home-grid{grid-template-columns:minmax(0,1.05fr) minmax(360px,1fr);gap:40px}
.section-heading h2{font-size:1.3rem}
.section-heading .micro{color:#66738a}
.session-list{display:grid;gap:11px}
.session-row,.session-row:first-child{background:#fff;border:1px solid #dce2ed;border-left:4px solid var(--lesson-color);border-radius:11px;padding:17px 17px 17px 14px;grid-template-columns:42px minmax(0,1fr) 22px;gap:15px;box-shadow:0 3px 9px #24354f03;transition:box-shadow .18s,background .18s,transform .18s}
.session-row:hover{padding-left:14px;background:var(--lesson-tint);box-shadow:0 5px 18px #24354f09;transform:translateY(-1px)}
.session-number{width:40px;height:43px;background:var(--lesson-tint);color:var(--lesson-color);border-radius:8px;font-size:.9375rem;font-weight:600}
.session-row:hover .session-number{background:var(--lesson-color);color:white}
.session-row h3{font-size:1.0625rem;font-weight:600;letter-spacing:-.015em;color:#263750;line-height:1.35;margin-bottom:5px}
.session-row p{font-size:.875rem;color:#5d6980;line-height:1.55}
.row-arrow,.session-row:hover .row-arrow{color:var(--lesson-color)}
.home-note{padding:18px 2px;margin-top:11px}
.home-note .note-icon{color:var(--gold)}
.home-note strong{color:#34405b}
.home-note p{color:#647087}
.listening-player{border-color:#d7dfeb;box-shadow:0 5px 22px #24354f05;background:white}
.home-grid>aside>.listening-player{border-top:1px solid #d7dfeb;box-shadow:0 12px 38px #24354f0a;padding:29px}
.listening-player h3{font-size:1.5rem;color:#263750;letter-spacing:-.03em}
.listening-player .player-top .eyebrow{color:#506385;letter-spacing:.09em}
.tag{background:#eef1f7;color:#57637c;font-size:.75rem}
[data-audio-source="class"] .tag{background:#faf0d8;color:#73551e}
.variant-options{background:#eef1f7;border-color:#dce3ef;padding:5px;border-radius:9px;gap:5px}
.variant-options button{color:#55647e}
.variant-options button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 3px 8px #24354f12}
.variant-options button:hover{background:var(--soft);border-color:var(--accent);color:var(--accent)}
.variant-options button[aria-pressed=true]:hover{background:var(--accent);color:white}
.wave-wrap{background:linear-gradient(180deg,#f3f5fa,#edf1f8);color:var(--accent);height:96px}
.playhead{background:#263c61}
.play-button{background:var(--accent);box-shadow:0 3px 9px #24354f15;color:white}
.play-button:hover{background:var(--accent);filter:brightness(.92)}
.play-button>span{pointer-events:none}
.player-status,.volume-label,.loop-details summary{color:#5d6a81}
.listening-player .micro{color:#647089;border-color:#e0e5ef}
.home-resource{background:#eef0fa;border-color:#dce0f0;border-radius:12px;padding:21px 24px}
.home-resource:hover{background:#e7ebf8;border-color:#abb8d7;color:#365897}
.home-resource h3{color:#35486c}
.home-resource p{color:#63708b}
.home-resource>span{color:#7650a0}
.session-nav{border-color:#dce2ed;background:white;box-shadow:none}
.session-nav a{border-top:3px solid var(--lesson-color);padding-top:12px}
.session-nav a b{color:var(--lesson-color)}
.session-nav a:hover{background:var(--lesson-tint);color:var(--lesson-color)}
.session-nav a[aria-current=page]{background:var(--lesson-tint);color:var(--lesson-color);box-shadow:inset 0 -3px var(--lesson-color)}
.lesson-head>.eyebrow{color:var(--accent)}
.lesson-head h1{color:var(--navy)}
.lesson-head .question{color:#59667d}
.outcome{background:var(--soft);border-left:3px solid var(--accent)}
.outcome p{color:#40516b}
.resource-pill{background:white;border-color:#d7dfeb;color:#42526d;box-shadow:0 2px 6px #24354f04}
a.resource-pill:hover{background:var(--soft);border-color:var(--accent);color:var(--accent)}
.lesson-side{border-color:#dce2ed}
.lesson-side h2{color:#334561}
.lesson-side .save-card>.eyebrow{color:var(--accent)}
.concepts h3{color:#2d3f5a}
.interactive{background:#f2f5fa;border-color:#d9e2ec;box-shadow:none}
.interactive-header h2{color:#2c405c}
.interactive .reset{background:white;border-color:#91a0b8;color:#526580}
.interactive .reset:hover{background:var(--soft);color:var(--accent)}
.diagram text{fill:#50627b}
.resource-intro h1{color:var(--navy)}
.resource-group{--resource-color:var(--blue)}
.resource-group:nth-of-type(2){--resource-color:var(--violet)}
.resource-group:nth-of-type(3){--resource-color:var(--terracotta)}
.resource-group:nth-of-type(4){--resource-color:var(--teal)}
.resource-group:nth-of-type(5){--resource-color:var(--gold)}
.resource-group>h2{display:flex;align-items:center;gap:12px;color:#2c3e59}
.resource-group>h2:before{content:"";width:5px;height:23px;background:var(--resource-color);border-radius:3px;flex-shrink:0}
.resource-table{background:white;border-color:#d9e1ec;box-shadow:0 3px 12px #24354f03}
.resource-row strong{color:#30425f}
.resource-action a{color:#365b92;text-decoration-color:#a8bbd8}
/* Free resources use the same lesson palette, with a clear instrument/effect split. */
.resource-group.free-tools{--resource-color:var(--navy);scroll-margin-top:110px}
.free-tools-intro{font-size:1rem;line-height:1.7;margin-bottom:26px}
.tool-category{--tool-color:var(--violet);--tool-tint:#f1ecf8;margin:0 0 28px}
.tool-category[data-tool-category="mixing"]{--tool-color:var(--teal);--tool-tint:#e6f3f0}
.tool-category>h3{font-size:1.0625rem;color:var(--tool-color);margin:0 0 14px}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
[data-tool-category="mixing"] .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tool-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:24px;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--tool-color);border-radius:12px;box-shadow:0 4px 16px #24354f05}
.tool-focus{display:inline-block;max-width:100%;padding:4px 8px;margin-bottom:16px;background:var(--tool-tint);color:var(--tool-color);border-radius:4px;font-size:.875rem;font-weight:500;line-height:1.5}
.tool-card h4{color:var(--navy);font-size:1.1875rem;font-weight:650;letter-spacing:-.02em;line-height:1.35;margin:0 0 12px;overflow-wrap:anywhere}
.tool-card p{font-size:1rem;line-height:1.7;margin:0 0 16px}
.tool-card .tool-note{font-size:.875rem;line-height:1.65;color:var(--muted);padding-top:14px;border-top:1px solid var(--line);width:100%}
.tool-card>a{margin-top:auto;padding-top:5px;max-width:100%;color:var(--tool-color);font-size:.9375rem;font-weight:600;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--tool-color),transparent 65%);text-underline-offset:4px;overflow-wrap:anywhere}
.tool-card>a:hover{text-decoration-color:currentColor}
@media(max-width:900px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.tool-grid,[data-tool-category="mixing"] .tool-grid{grid-template-columns:1fr}.tool-card{padding:22px}.tool-category{margin-bottom:24px}}
@media print{.tool-grid,[data-tool-category="mixing"] .tool-grid{display:block}.tool-card{break-inside:avoid;margin-bottom:15px;box-shadow:none}.tool-focus{background:white}}
.worksheet legend{color:var(--accent)}
.worksheet textarea,.worksheet input[type=text]{border-color:#95a3b8;background:white}
.button{background:var(--accent);border-color:var(--accent);color:white}
.button:hover{background:var(--accent);color:white;filter:brightness(.92)}
.button.secondary{background:white;color:var(--accent);border-color:#9caecb}
.button.secondary:hover{background:var(--soft);color:var(--accent);filter:none}
.site-footer{border-color:#dbe2ec}
.footer-course,.tutor-link>span:first-child{color:#69748a}
.tutor-link{color:#354768}
.tutor-link:hover{color:#315fa4}
@media(max-width:1100px){.home-grid{gap:27px;grid-template-columns:minmax(0,1.05fr) minmax(330px,1fr)}.home-grid>aside>.listening-player{padding:24px}.session-row,.session-row:first-child{padding:17px 12px;gap:12px}.session-row:hover{padding-left:12px}.semester-meta{gap:15px}.semester-meta strong{font-size:1.25rem}.intro{gap:24px}}
@media(max-width:800px){.intro{display:block;padding-bottom:28px;margin-bottom:32px}.semester-meta{display:none}.home-grid{grid-template-columns:1fr;gap:26px}.intro h1{font-size:3rem}.session-row,.session-row:first-child{padding:18px 16px}.session-row:hover{padding-left:16px}.session-nav a{padding-top:10px}}
@media(max-width:520px){main{padding-top:30px}.intro{padding-bottom:25px;margin-bottom:29px}.intro .eyebrow{font-size:.75rem;letter-spacing:.045em;padding:6px 8px}.intro h1{font-size:2.7rem;margin:17px 0 18px}.intro p{font-size:1rem;line-height:1.75}.section-heading h2{font-size:1.2rem}.session-list{gap:10px}.session-row,.session-row:first-child{grid-template-columns:34px minmax(0,1fr) 16px;gap:11px;padding:16px 12px;border-radius:10px}.session-row:hover{padding-left:12px}.session-number{width:33px;height:39px;font-size:.8125rem}.session-row h3{font-size:.9375rem;line-height:1.4}.session-row p{font-size:.875rem}.home-note{gap:13px;padding:16px 1px}.home-grid>aside>.listening-player{padding:23px 18px}.listening-player h3{font-size:1.4rem}.home-resource{padding:20px}.session-nav a{padding-top:10px}.session-nav a b{font-size:.875rem}.resource-group>h2{font-size:1.25rem}.resource-group>h2:before{height:21px}.lecturer-entry{font-size:.875rem}}
@media(max-width:360px){.header-inner>.brand .brand-icon{display:none}.header-inner>.brand{font-size:.9375rem}.intro h1{font-size:2.4rem}.intro .eyebrow{font-size:.75rem}.home-grid>aside>.listening-player{padding:21px 14px}.session-row,.session-row:first-child{padding:15px 10px;gap:9px}.session-row:hover{padding-left:10px}.session-row h3{font-size:.9375rem}}
@media(prefers-reduced-motion:reduce){.session-row:hover,.play-button:hover{transform:none}}
@media(max-width:520px){.header-inner nav{gap:8px}}
@media print{:root{--bg:white;--text:#111;--muted:#333;--panel:white;--line:#bbb;--accent:#222;--soft:white;--navy:#111}body{background:white;color:#111}.lecturer-entry{display:none}.outcome,.interactive,.resource-table{background:white;box-shadow:none}.worksheet legend{color:#111}.worksheet label.check-item,.delivery-checks label{color:#222}.worksheet textarea,.worksheet input[type=text]{border-color:#999}.resource-group>h2:before{display:none}}
