/* A programme on stage, with the complete catalogue as its static baseline. */
body.home .courses-section {
  --courses-travel:0px;
  --course-gold:#f8ba42;
  --course-line:rgba(255,255,255,.24);
  padding:0;
  overflow:visible;
  background:#101916;
  color:#f7f8f2;
  scroll-margin-top:0;
}
body.home .courses-section:before { display:none; }
.courses-stage { position:relative; isolation:isolate; overflow:hidden; }
.courses-backdrop { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.courses-backdrop img,.courses-backdrop video { width:100%; height:100%; object-fit:cover; object-position:60% center; }
.courses-backdrop video { position:absolute; inset:0; opacity:0; }
.courses-section.video-ready .courses-backdrop video { opacity:1; }
.courses-backdrop:after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(10,22,18,.97) 0%,rgba(10,22,18,.92) 38%,rgba(10,22,18,.5) 100%),linear-gradient(0deg,#101916,transparent 60%);
}
.courses-layout { position:relative; padding-block:80px 64px; }
.courses-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:28px; }
.courses-heading .eyebrow { color:var(--course-gold); font-size:11px; margin-bottom:12px; letter-spacing:0; }
.courses-heading h2 { font:600 42px/1.12 var(--sans); letter-spacing:0; text-transform:none; color:#fff; margin:0; }
.courses-heading h2 em { font:italic 46px/1.1 Georgia,serif; color:var(--course-gold); }
.courses-heading>p { font-size:12px; line-height:1.75; margin:0; color:#ced7d1; }
.courses-toolbar { display:flex; align-items:center; gap:24px; border-bottom:1px solid var(--course-line); margin-bottom:30px; }
.courses-section .filter-bar { flex:1; margin:0; border:0; gap:24px; }
.courses-section .filter-button { padding:14px 0; font-size:10px; color:#dce0d9; letter-spacing:0; }
.courses-section .filter-button:hover { background:none; color:var(--course-gold); }
.courses-section .filter-button.is-active { color:var(--course-gold); border-color:var(--course-gold); }
.courses-section .icon-button { width:40px; height:40px; min-width:40px; border:1px solid var(--course-line); border-radius:0; color:#fff; }
.courses-section .icon-button .icon { width:18px; height:18px; }
.courses-section .icon-button:hover:not(:disabled),.courses-section .icon-button[aria-pressed="true"] { color:#101916; background:var(--course-gold); border-color:var(--course-gold); }
.courses-section button:disabled { opacity:.3; cursor:default; }
.courses-section :is(a,button):focus-visible { outline:2px solid var(--course-gold); outline-offset:5px; }
.courses-section .courses-view { margin-bottom:8px; }
.courses-section .course-grid { gap:32px 26px; }
.courses-section .course-card { background:transparent; border:0; border-radius:0; overflow:visible; min-width:0; }
.courses-section .course-image { aspect-ratio:1.45; background:#172b23; isolation:isolate; }
.courses-section .course-image img { object-fit:cover; transition:none; }
.courses-section .course-image:after { inset:60% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.7)); }
.course-image-caption { position:absolute; z-index:1; bottom:20px; inset-inline:24px; display:flex; align-items:center; justify-content:space-between; font-size:9px; text-transform:uppercase; color:#fff; }
.course-image-caption>span { font:italic 32px/1 Georgia,serif; }
.courses-section .course-body { padding:24px 0 0; }
.course-overline { display:flex; align-items:center; gap:14px; margin-bottom:17px; }
.course-number { color:var(--course-gold); font-size:12px; font-variant-numeric:tabular-nums; }
.course-audience { border-left:1px solid var(--course-line); padding-left:14px; font-size:10px; text-transform:uppercase; color:#dce0d9; }
.courses-section .course-body h3 { font:500 28px/1.15 var(--sans); text-transform:none; letter-spacing:0; color:#fff; margin:0 0 18px; overflow-wrap:anywhere; }
.courses-section .course-meta { margin-bottom:18px; font-size:10px; color:#e0e4df; gap:8px; }
.courses-section .course-meta .icon { color:var(--course-gold); }
.courses-section .course-body>p { font-size:13px; line-height:1.85; color:#d0d8d2; margin-bottom:26px; }
.courses-section .course-link { color:var(--course-gold); border-color:var(--course-line); padding-top:18px; font-size:11px; }
.courses-section .course-link .icon { transition:transform .3s cubic-bezier(.22,1,.36,1); }
.courses-section a.course-link:hover .icon { transform:translate(3px,-3px); }
.courses-section .course-closed { color:#ccd2cc; }
.courses-section .course-callout { position:relative; padding:42px 0; border:0; background:#285548; color:#fff; }
.courses-outro { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:40px; }
.courses-section .course-callout h3 { font:500 27px/1.22 var(--sans); text-transform:none; color:#fff; margin:0; }
.courses-section .course-callout h3 em { font-family:Georgia,serif; color:#f8ca75; }
.courses-section .course-callout p { font-size:12px; color:#e1e9df; margin:0; max-width:320px; }
.courses-section .course-callout .text-link { color:#fff; font-size:10px; }
.courses-empty { padding:55px 0; font-size:16px; }
.courses-navigation { display:none; }

/* Only a measured, sufficiently tall desktop gets the pinned composition. */
.courses-section.is-cinematic .courses-runway { height:calc(100svh + var(--courses-travel)); }
.courses-section.is-cinematic .courses-stage { position:sticky; top:0; height:100svh; }
.is-cinematic .courses-layout {
  height:100%; padding-block:calc(var(--home-header) + 22px) 24px;
  display:grid; grid-template-rows:auto auto minmax(0,1fr) auto;
}
.is-cinematic .courses-heading { margin-bottom:20px; }
.is-cinematic .courses-toolbar { margin-bottom:22px; }
.is-cinematic .course-grid { display:grid; grid-template-columns:1fr; grid-template-rows:minmax(0,1fr); min-height:0; position:relative; }
.is-cinematic .course-card {
  grid-area:1/1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center; gap:70px; min-height:0;
  visibility:hidden; pointer-events:none;
}
.is-cinematic .course-card.is-current { visibility:visible; pointer-events:auto; }
.is-cinematic .course-image {
  grid-column:2; grid-row:1; height:100%; width:100%; aspect-ratio:auto;
  clip-path:inset(0 0 calc((1 - var(--course-visibility,1))*100%) 0);
}
.is-cinematic .course-image img {
  transform:scale(var(--course-scale,1.04)) translateY(var(--course-image-y,0px));
  will-change:transform;
}
.is-cinematic .course-image-caption>span { font-size:72px; }
.is-cinematic .course-body {
  grid-column:1; grid-row:1; padding:0; display:flex; align-items:flex-start; justify-content:center;
  opacity:var(--course-visibility,1); transform:translateY(var(--course-copy-y,0px));
  will-change:transform,opacity;
}
.is-cinematic .course-overline { margin-bottom:20px; }
.is-cinematic .course-number { font:italic 42px/1 Georgia,serif; min-width:48px; }
.is-cinematic .course-body h3 { font-size:52px; line-height:1.08; max-width:550px; margin-bottom:22px; }
.is-cinematic .course-body>p { font-size:14px; line-height:1.85; max-width:420px; margin-bottom:26px; }
.is-cinematic .course-link { width:100%; max-width:320px; margin-top:0; }
.is-cinematic .courses-navigation { display:flex; gap:24px; align-items:center; padding-top:26px; }
.courses-counter { display:flex; align-items:baseline; gap:10px; font-variant-numeric:tabular-nums; flex-shrink:0; }
.courses-counter>span:first-child { font:italic 34px/1 Georgia,serif; color:var(--course-gold); }
.courses-counter>span:last-child { font-size:11px; color:#ced7d1; }
.courses-cues { flex:1; display:grid; grid-template-columns:repeat(var(--cue-count,5),minmax(0,1fr)); gap:16px; }
.course-cue { position:relative; padding:13px 0 0; text-align:left; color:#d0d8d2; font-size:10px; line-height:1.4; min-height:44px; border-top:1px solid var(--course-line); }
.course-cue:before { content:""; position:absolute; left:0; right:0; top:-1px; height:2px; background:var(--course-gold); transform:scaleX(var(--cue-progress,0)); transform-origin:left; }
.course-cue[aria-current="true"] { color:var(--course-gold); }
.course-cue:hover { color:#fff; }
.course-cue span { display:block; overflow-wrap:anywhere; }
.courses-arrows { display:flex; gap:7px; }
.courses-skip { border:0!important; }
.courses-section.is-cinematic.is-single .courses-runway { height:100svh; }
.courses-section.is-cinematic.is-single .courses-stage { position:relative; }
.courses-section [hidden] { display:none!important; }

@media(min-width:1024px) and (max-height:800px) {
  .is-cinematic .courses-layout { padding-top:calc(var(--home-header) + 16px); padding-bottom:18px; }
  .is-cinematic .courses-heading { margin-bottom:10px; }
  .is-cinematic .courses-heading .eyebrow { font-size:9px; margin-bottom:8px; }
  .is-cinematic .courses-heading h2 { font-size:32px; }
  .is-cinematic .courses-heading h2 em { font-size:36px; }
  .is-cinematic .courses-toolbar { margin-bottom:16px; }
  .is-cinematic .course-body h3 { font-size:40px; margin-bottom:16px; }
  .is-cinematic .course-body>p { font-size:12px; margin-bottom:18px; }
  .is-cinematic .course-overline { margin-bottom:12px; }
  .is-cinematic .course-number { font-size:32px; }
  .is-cinematic .course-meta { margin-bottom:12px; }
  .is-cinematic .courses-navigation { padding-top:18px; }
}
@media(max-width:1100px) {
  .is-cinematic .course-card { gap:40px; }
  .is-cinematic .course-body h3 { font-size:40px; }
  .courses-outro { gap:24px; }
  .courses-outro>.text-link { max-width:220px; }
}
@media(max-width:760px) {
  .courses-layout { padding-block:58px 42px; }
  .courses-heading { display:block; margin-bottom:24px; }
  .courses-heading .eyebrow { font-size:9px; }
  .courses-heading h2 { font-size:30px; }
  .courses-heading h2 em { display:block; font-size:36px; }
  .courses-heading>p { margin-top:20px; font-size:12px; }
  .courses-heading>p br { display:none; }
  .courses-section .filter-bar { gap:0 22px; }
  .courses-section .filter-button { min-height:44px; padding-block:12px; font-size:9px; }
  .courses-section .course-grid { grid-template-columns:1fr; gap:44px; }
  .courses-section .course-image { aspect-ratio:1.4; }
  .courses-section .course-body { padding-top:22px; }
  .courses-section .course-body h3 { font-size:32px; }
  .courses-section .course-body>p { font-size:13px; }
  .courses-outro { grid-template-columns:1fr; gap:22px; }
  .courses-section .course-callout { padding:38px 0; }
  .courses-section .course-callout .text-link { min-height:44px; }
  .courses-section .course-link { min-height:44px; }
}
@media(prefers-reduced-motion:no-preference) {
  .courses-section:not(.is-cinematic).has-course-motion .course-image img { transform:scale(calc(1.065 - var(--card-reveal,1)*.065)); }
  .courses-section:not(.is-cinematic).has-course-motion .course-image { clip-path:inset(0 calc((1 - var(--card-reveal,1))*12%) 0 0); }
  .courses-section:not(.is-cinematic).has-course-motion .course-body { transform:translateY(calc((1 - var(--card-reveal,1))*16px)); }
}
@media(prefers-reduced-motion:reduce) {
  .courses-section .course-link .icon { transition:none; }
  .courses-section .courses-backdrop video { display:none; }
}
