/* ==========================================================================
   Pages: Programmes (index) + Programme (detail)
   Layout signature — an editorial index set in type rather than photography,
   then full-width staggered rows that alternate image side. The detail page
   runs a narrow prose measure against a sticky facts card.
   ========================================================================== */

.blob[data-pos="p0"]{--s:320px;left:-8%;top:14%;}
.blob[data-pos="p2"]{--s:300px;right:-7%;top:22%;--d:2s;}
.blob[data-pos="ps1"]{--s:300px;right:-8%;top:30%;--d:1s;}

/* ==========================================================================
   INDEX
   ========================================================================== */

/* ---- Typographic hero, no photograph ---- */
.prog-hero{background:var(--forest);padding:190px 0 var(--sec);position:relative;overflow:hidden;}
/* A faint diagonal rule field instead of an image — the page's own texture. */
.prog-hero::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(115deg,
    rgba(255,255,255,.028) 0 2px,transparent 2px 68px);
  pointer-events:none;
}
.prog-hero .wrap{position:relative;z-index:var(--z-content);}
.prog-hero-in{max-width:60ch;margin-bottom:64px;}
.prog-hero h1{color:#fff;font-size:clamp(2.4rem,5.4vw,4rem);}
.prog-hero h1 em{font-style:normal;color:var(--hivis);}
.prog-hero-lede{margin-top:22px;}

/* ---- The index list itself ---- */
.prog-index{border-top:1px solid rgba(255,255,255,.18);}
.prog-index-row{
  display:grid;grid-template-columns:64px 1fr auto 24px;
  gap:20px;align-items:center;
  padding:26px 0;border-bottom:1px solid rgba(255,255,255,.18);
  color:#fff;transition:padding-left var(--dur),background var(--dur);
}
.prog-index-row:hover{padding-left:14px;background:rgba(255,255,255,.04);}
.prog-index-n{font-size:.8rem;color:var(--hivis);font-weight:600;}
.prog-index-t{
  font-family:var(--f-display);font-weight:800;
  font-size:clamp(1.2rem,2.4vw,1.9rem);letter-spacing:var(--track-display);
}
.prog-index-c{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft);}
.prog-index-row svg{color:var(--hivis);}

/* ---- Staggered rows -----------------------------------------------------
   Full-width alternating rows. The image side flips on every other row, and
   each row carries an oversized ghosted numeral.
   ------------------------------------------------------------------------ */
.prog-row-sec{padding:var(--sec) 0;scroll-margin-top:100px;}
.prog-row-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;position:relative;z-index:var(--z-content);}
.prog-row-sec--flip .prog-row-grid{direction:rtl;}
.prog-row-sec--flip .prog-row-grid > *{direction:ltr;}

.prog-row-media{position:relative;}
.prog-row-ph{height:460px;border-radius:var(--r);position:relative;}
.prog-row-ph-sub{
  position:absolute;width:170px;height:170px;border-radius:var(--r-sm);
  right:-26px;bottom:-34px;box-shadow:var(--sh-soft);
  background:var(--cream);
}
.prog-row-sec--flip .prog-row-ph-sub{right:auto;left:-26px;}

.prog-row-txt{position:relative;}
.prog-row-n{
  position:absolute;top:-64px;left:-6px;
  font-family:var(--f-display);font-weight:800;font-size:6rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px var(--line-2);
  pointer-events:none;user-select:none;
}
.prog-row-txt h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:16px;}
.prog-row-lede{margin-bottom:28px;}

.prog-facts{display:grid;grid-template-columns:repeat(3,auto);gap:26px;margin-bottom:30px;}
.prog-facts dt{
  display:flex;align-items:center;gap:7px;
  font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted-2);margin-bottom:6px;
}
.prog-facts dt svg{color:var(--forest-3);}
.prog-facts dd{font-weight:600;font-size:.92rem;}

/* ---- CTA ---- */
.prog-cta{position:relative;background:var(--forest);padding:var(--sec) 0;}
.prog-cta-media{position:absolute;inset:0;z-index:0;}
.prog-cta-media .ph{width:100%;height:100%;}
.prog-cta-media::after{content:"";position:absolute;inset:0;background:rgba(14,31,23,.88);}
.prog-cta .wrap{position:relative;z-index:var(--z-content);}
.prog-cta-in{max-width:46ch;margin:0 auto;}
.prog-cta-in h2{color:#fff;font-size:clamp(1.6rem,3.2vw,2.3rem);margin-bottom:12px;}
.prog-cta-in .lede-dark{margin:0 auto 28px;}

/* ==========================================================================
   DETAIL
   ========================================================================== */
.crumbs{
  position:relative;z-index:var(--z-content);
  display:flex;gap:10px;align-items:center;
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--on-dark-soft);margin-bottom:26px;
}
.crumbs a{color:var(--hivis);}
.crumbs a:hover{text-decoration:underline;}

.pshow-hero{position:relative;background:var(--forest);padding:170px 0 var(--sec);}
.pshow-hero-media{position:absolute;inset:0;z-index:0;}
.pshow-hero-media .ph{width:100%;height:100%;}
.pshow-hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,31,23,.82),rgba(14,31,23,.95));
}
.pshow-hero .wrap{position:relative;z-index:var(--z-content);}
.pshow-hero-in{max-width:56ch;}
.pshow-hero h1{color:#fff;margin-top:16px;font-size:clamp(2.1rem,4.4vw,3.2rem);}
.pshow-lede{margin-top:20px;}

/* ---- Prose + sticky facts ---- */
.pshow-body{padding:var(--sec) 0;}
.pshow-grid{display:grid;grid-template-columns:1fr 360px;gap:64px;align-items:start;position:relative;z-index:var(--z-content);}
.pshow-block{margin-bottom:46px;max-width:62ch;}
.pshow-block:last-child{margin-bottom:0;}
.pshow-block h2{font-size:1.5rem;margin-bottom:12px;}
.pshow-block p{color:var(--muted);}

.pshow-aside{position:sticky;top:110px;}
.pshow-facts .card-body{padding:28px 26px;}
.pshow-facts h3{font-size:1.05rem;margin-bottom:18px;}
.pshow-facts dl{margin-bottom:22px;}
.pshow-facts dl > div{padding:12px 0;border-bottom:1px solid var(--line);}
.pshow-facts dl > div:last-child{border-bottom:none;}
.pshow-facts dt{
  font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted-2);margin-bottom:4px;
}
.pshow-facts dd{font-size:.9rem;font-weight:500;}
.pshow-reassure{font-size:.78rem;color:var(--muted);margin-top:14px;text-align:center;}

/* ---- Three-photo band, deliberately uneven ---- */
.pshow-photos{padding:var(--sec) 0;}
.pshow-photos .kicker{margin-bottom:30px;}
.pshow-photo-grid{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:auto auto;gap:20px;}
.pshow-photo{border-radius:var(--r);}
.pshow-photo--0{grid-row:1 / span 2;min-height:520px;}
.pshow-photo--1{min-height:250px;}
.pshow-photo--2{min-height:250px;}

/* ---- Impact strip ---- */
.pshow-impact{padding:var(--sec) 0;}
.impact-row{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;}
.impact-cell{
  padding:28px 26px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);display:flex;flex-direction:column;gap:8px;
}
.impact-n{
  font-family:var(--f-display);font-weight:800;
  font-size:clamp(1.5rem,3vw,2.1rem);line-height:1;letter-spacing:-.03em;
}
.impact-l{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}

/* ---- Other programmes ---- */
.pshow-more{padding:0 0 var(--sec);}
.pshow-more .kicker{margin-bottom:26px;}
.pshow-more-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.pshow-more-card .card-body{padding:28px 26px;}
.pshow-more-card .chip{margin-bottom:14px;}
.pshow-more-card h3{margin-bottom:8px;}
.pshow-more-card p{font-size:.9rem;color:var(--muted);margin-bottom:16px;}

/* ---- CTA ---- */
.pshow-cta{position:relative;background:var(--forest);padding:var(--sec) 0;}
.pshow-cta-media{position:absolute;inset:0;z-index:0;}
.pshow-cta-media .ph{width:100%;height:100%;}
.pshow-cta-media::after{content:"";position:absolute;inset:0;background:rgba(14,31,23,.9);}
.pshow-cta .wrap{position:relative;z-index:var(--z-content);}
.pshow-cta-in{max-width:50ch;}
.pshow-cta-in h2{color:#fff;font-size:clamp(1.6rem,3.2vw,2.3rem);margin-bottom:14px;}
.pshow-cta-in .lede-dark{margin-bottom:28px;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  .pshow-grid{grid-template-columns:1fr;gap:44px;}
  .pshow-aside{position:static;max-width:480px;}
  .prog-row-grid{gap:40px;}
}

@media (max-width:860px){
  .prog-hero{padding:150px 0 var(--sec);}
  .prog-index-row{grid-template-columns:44px 1fr 20px;gap:14px;padding:20px 0;}
  .prog-index-c{display:none;}
  .prog-row-grid{grid-template-columns:1fr;gap:34px;}
  .prog-row-sec--flip .prog-row-grid{direction:ltr;}
  .prog-row-ph{height:300px;}
  .prog-row-ph-sub{width:120px;height:120px;right:-10px;bottom:-24px;}
  .prog-row-sec--flip .prog-row-ph-sub{left:auto;right:-10px;}
  .prog-row-n{position:static;display:block;font-size:3rem;margin-bottom:6px;}
  .prog-facts{grid-template-columns:1fr 1fr;gap:20px;}
  .pshow-photo-grid{grid-template-columns:1fr;}
  .pshow-photo--0{grid-row:auto;min-height:320px;}
  .impact-row{grid-template-columns:1fr;gap:26px;}
  .pshow-more-row{grid-template-columns:1fr;}
}
