/* Certified Programmes index (5 Sep 2026). Drawn by novamira-sandbox/programmes-page.php. */
.soma-pg{--pg-max:1180px;background:var(--soma-base)}
.soma-pg h1,.soma-pg h2{text-wrap:balance}
.soma-pg p{margin:0}
.soma-pg a.soma-pg-ghost{background:transparent;color:var(--soma-white);box-shadow:inset 0 0 0 1.5px var(--soma-line-inverse)}
.soma-pg a.soma-pg-ghost:hover{background:var(--soma-white-12)}
.soma-pg-hero{background:var(--soma-primary);color:var(--soma-white);position:relative;overflow:hidden;padding:clamp(3rem,2rem + 4vw,6rem) var(--soma-gutter) clamp(2.5rem,1.5rem + 3vw,4.5rem)}
.soma-pg-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(70% 90% at 15% 20%,rgba(13,124,104,.35) 0%,rgba(13,124,104,0) 60%),radial-gradient(50% 70% at 95% 100%,rgba(204,213,255,.18) 0%,rgba(204,213,255,0) 60%);pointer-events:none}
.soma-pg-hero__in{position:relative;max-width:var(--pg-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,1rem + 5vw,6rem);align-items:end}
.soma-pg-hero .soma-eyebrow{color:var(--soma-periwinkle)}
.soma-pg-hero h1{color:var(--soma-white);font-size:clamp(2.3rem,1.1rem + 3.8vw,4rem);letter-spacing:-.01em;margin:18px 0 22px}
.soma-pg-lead{color:var(--soma-white-70);font-size:clamp(1.125rem,1.05rem + .35vw,1.375rem);line-height:1.6;max-width:36em}
.soma-pg-note{color:var(--soma-white-50);font-size:1rem;line-height:1.6;max-width:34em;margin-top:12px}
.soma-pg-hero__acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.soma-pg-facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.soma-pg-facts div{background:var(--soma-white-12);border-radius:var(--soma-r-md);padding:16px 18px}
.soma-pg-facts dt{font-family:var(--soma-font-display);font-weight:600;font-size:clamp(1.75rem,1.4rem + 1.2vw,2.5rem);line-height:1;color:var(--soma-white);font-variant-numeric:tabular-nums}
.soma-pg-facts dt small{font-size:.5em;color:var(--soma-white-70);margin-left:2px}
.soma-pg-facts dd{margin:6px 0 0;font-size:.875rem;color:var(--soma-white-70)}
.soma-pg-sec{padding:clamp(2.5rem,1.5rem + 3vw,4.5rem) var(--soma-gutter)}
.soma-pg-sec--white{background:var(--soma-white)}
.soma-pg-sec__in{max-width:var(--pg-max);margin:0 auto}
.soma-pg-sec__head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:20px;align-items:end;margin-bottom:24px}
.soma-pg-sec__head p{color:var(--soma-text);font-size:1.0625rem;line-height:1.6;max-width:34em}
.soma-pg-sec h2{font-size:clamp(1.75rem,1.3rem + 1.8vw,2.6rem);margin-top:8px;letter-spacing:-.01em}
/* the four */
.soma-pg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,.75rem + 1vw,1.5rem)}
.soma-pg .soma-pg-card{display:flex;flex-direction:column;background:var(--soma-white);border-radius:var(--soma-r-lg);overflow:hidden;color:var(--soma-primary);text-decoration:none;transition:transform var(--soma-dur-lift) var(--soma-ease),box-shadow var(--soma-dur-lift) var(--soma-ease)}
.soma-pg .soma-pg-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px var(--soma-shadow)}
.soma-pg-card__media{display:block;aspect-ratio:16/8;background:var(--soma-primary-deep);overflow:hidden;border-left:6px solid var(--c)}
.soma-pg-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.soma-pg-card__body{display:flex;flex-direction:column;gap:10px;padding:24px 26px 26px;flex:1}
.soma-pg-card__field{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--c)}
.soma-pg-card__title{font-family:var(--soma-font-display);font-weight:600;font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem);line-height:1.1}
.soma-pg-card__ex{color:var(--soma-text);font-size:.9375rem;line-height:1.55}
.soma-pg-card__meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.8125rem;color:var(--soma-text);margin-top:4px}
.soma-pg-card__stars{color:#B7791F;font-weight:600}
.soma-pg-card__stars i{font-style:normal;color:var(--soma-text);font-weight:500}
.soma-pg-card__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--soma-line)}
.soma-pg-card__foot b{font-family:var(--soma-font-display);font-size:1.5rem;font-weight:600}
.soma-pg-bundle{margin-top:clamp(1rem,.75rem + 1vw,1.5rem)}
/* steps */
.soma-pg-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.soma-pg-step{background:var(--soma-base);border-radius:var(--soma-r-lg);padding:24px;display:flex;flex-direction:column;gap:8px;color:var(--soma-text);font-size:.9375rem;line-height:1.55}
.soma-pg-step b{font-family:var(--soma-font-display);font-weight:500;font-size:2.2rem;line-height:1;color:var(--soma-secondary)}
.soma-pg-step__t{font-family:var(--soma-font-display);font-weight:600;font-size:1.4rem;color:var(--soma-primary)}
.soma-pg .soma-pg-step a{color:var(--soma-secondary);font-weight:600;text-decoration:none}
/* soon */
.soma-pg-soon{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.soma-pg .soma-pg-soon a{display:flex;align-items:center;gap:14px;background:var(--soma-white);border-radius:var(--soma-r-md);padding:14px 16px;color:var(--soma-primary);text-decoration:none}
.soma-pg-soon__img{display:block;width:84px;height:60px;border-radius:10px;overflow:hidden;border-left:4px solid var(--c);flex:none}
.soma-pg-soon__img img{width:100%;height:100%;object-fit:cover;display:block}
.soma-pg-soon a b{display:block;font-family:var(--soma-font-display);font-size:1.25rem;font-weight:600;line-height:1.1}
.soma-pg-soon a small{display:block;color:var(--soma-secondary);font-weight:600;font-size:.8125rem;margin-top:4px}
/* ending */
.soma-pg-end{background:var(--soma-primary);color:var(--soma-white);padding:clamp(3.5rem,2rem + 5vw,7rem) var(--soma-gutter)}
.soma-pg-end__in{max-width:var(--pg-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(2rem,1rem + 4vw,5rem);align-items:center}
.soma-pg-end .soma-eyebrow{color:var(--soma-periwinkle)}
.soma-pg-end h2{color:var(--soma-white);font-size:clamp(2rem,1.3rem + 3vw,3.4rem);margin:14px 0 14px}
.soma-pg-end p{color:var(--soma-white-70);max-width:36em;font-size:1.0625rem}
.soma-pg-end__acts{display:flex;flex-direction:column;gap:10px;min-width:280px}
.soma-pg-end__acts .soma-btn{justify-content:center}
@media (max-width:1100px){
  .soma-pg-hero__in{grid-template-columns:1fr;align-items:start}
  .soma-pg-facts{max-width:560px}
  .soma-pg-sec__head{grid-template-columns:1fr}
  .soma-pg-steps,.soma-pg-soon{grid-template-columns:1fr}
  .soma-pg-end__in{grid-template-columns:1fr}
  .soma-pg-end__acts{flex-direction:row;flex-wrap:wrap}
}
@media (max-width:760px){
  .soma-pg-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .soma-pg-hero h1{font-size:clamp(2rem,7.6vw,2.7rem)}
  .soma-pg-facts{grid-template-columns:1fr 1fr;gap:8px}
  .soma-pg-facts div{padding:12px 14px}
  .soma-pg-hero__acts .soma-btn{flex:1;justify-content:center}
  .soma-pg-card__foot{flex-direction:column;align-items:stretch}
  .soma-pg-card__foot .soma-btn{justify-content:center}
  .soma-pg-end__acts{flex-direction:column}
}

/* The closing band was the same #131527 as the footer, so 400px of band ran
   into 700px of footer with no edge and the page's last call to action read as
   footer furniture. Green is the Academy's action colour — same treatment as
   the field pages and the knowledge-check band on Start Here — so the three
   tier pages now close the same way. */
.soma-pg-end{background:var(--soma-secondary)}
.soma-pg-end .soma-eyebrow{color:rgba(255,255,255,.72)}
.soma-pg-end p{color:rgba(255,255,255,.82)}
/* The primary button was this exact green, so on a green band it vanished. */
.soma-pg-end__acts .soma-btn:not(.soma-pg-ghost){background:var(--soma-white);color:var(--soma-secondary);border-color:var(--soma-white)}
.soma-pg-end__acts .soma-btn:not(.soma-pg-ghost):hover{background:var(--soma-base);color:var(--soma-secondary)}
/* And the site-wide .soma-page a:hover turns any link near-black, which on
   green is close to invisible. Every link in the band holds its white. */
.soma-programmes .soma-pg-end a:hover,
.soma-programmes .soma-pg-end a:focus-visible{color:var(--soma-white)}
.soma-programmes .soma-pg-end__acts a.soma-btn:not(.soma-pg-ghost):hover,
.soma-programmes .soma-pg-end__acts a.soma-btn:not(.soma-pg-ghost):focus-visible{color:var(--soma-secondary)}

/* The field filter when it wakes up. Same bar as Deep Dives: pinned under the
   header while the list is on screen, one row, chips inverted for the light
   ground. Shipped now so the page is right the moment the eighth programme
   publishes and the filter starts rendering itself. */
.soma-pg-sec--list .soma-dv-chips--stick{
  position:sticky;top:81px;z-index:20;
  background:var(--soma-base);
  padding:14px 0 12px;
  margin:0 0 clamp(1.5rem,1rem + 1.5vw,2.25rem);
  box-shadow:0 10px 12px -12px rgba(19,21,39,.35);
}
body.admin-bar .soma-pg-sec--list .soma-dv-chips--stick{top:113px}
.soma-pg-sec--list .soma-dv-chips--stick:empty{display:none}
.soma-pg-sec--list .soma-dv-chips--stick .soma-dd-filter{
  flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;
}
.soma-pg-sec--list .soma-dv-chips--stick .soma-dd-filter::-webkit-scrollbar{display:none}
.soma-pg-sec--list .soma-dv-chips--stick .soma-chip{
  flex:none;white-space:nowrap;
  background:var(--soma-white);color:var(--soma-text);border:1px solid var(--soma-line);
}
.soma-pg-sec--list .soma-dv-chips--stick .soma-chip:hover{color:var(--soma-primary);border-color:var(--soma-primary)}
.soma-pg-sec--list .soma-dv-chips--stick .soma-chip--on,
.soma-pg-sec--list .soma-dv-chips--stick .soma-chip--on:hover{background:var(--soma-primary);color:var(--soma-white);border-color:var(--soma-primary)}


/* soma: section heads align at the top */
/* These heads were bottom-aligned, which pushed the brief above the heading it
   belongs to -- and by a different amount on every section, depending on
   whether the heading wrapped. The two columns now start together. */
.soma-pg-sec__head{align-items:start}
.soma-pg-sec__head > :nth-child(2){padding-top:4px}

/* The series band. Dark, over the series cover, and the whole band is one
   link. Written at .soma-page strength because templates.css colours headings
   and anchor buttons at that strength and was painting the title ink-on-ink and
   the button white-on-white. (6 Sep 2026) */
.soma-pg-bundle{margin-top:clamp(1.75rem,1rem + 2vw,3rem)}
.soma-page a.soma-pgb{display:block;position:relative;overflow:hidden;background:var(--soma-primary);color:var(--soma-white);border-radius:var(--soma-r-lg);text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.soma-page a.soma-pgb:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(19,21,39,.28)}
.soma-pgb::before{content:'';position:absolute;inset:0;background-image:var(--soma-pgb-art);background-size:cover;background-position:center;opacity:.5}
.soma-pgb::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,rgba(19,21,39,.97) 0%,rgba(19,21,39,.93) 42%,rgba(19,21,39,.72) 100%),radial-gradient(60% 120% at 8% 8%,rgba(13,124,104,.42) 0%,rgba(13,124,104,0) 60%)}
.soma-pgb__in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:clamp(1.5rem,1rem + 2vw,3.5rem);align-items:center;padding:clamp(1.75rem,1.2rem + 1.6vw,2.75rem)}
.soma-pgb__body{display:flex;flex-direction:column;gap:10px;min-width:0}
.soma-page .soma-pgb__eyebrow{font-family:var(--soma-font-body);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--soma-periwinkle)}
.soma-page .soma-pgb__title{font-family:var(--soma-font-display);font-size:clamp(1.6rem,1.2rem + 1.5vw,2.4rem);line-height:1.15;letter-spacing:-.01em;color:var(--soma-white)}
.soma-page .soma-pgb__line{font-size:1.0625rem;line-height:1.6;color:var(--soma-white-70);max-width:44em}
.soma-pgb__pts{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:6px}
.soma-page .soma-pgb__pts span{font-size:.8125rem;letter-spacing:.02em;padding:5px 12px;border-radius:999px;background:var(--soma-white-12);color:var(--soma-white)}
.soma-pgb__buy{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.soma-page .soma-pgb__save{display:inline-flex;align-items:baseline;gap:6px;background:var(--soma-secondary);color:var(--soma-white);font-weight:600;font-size:.9375rem;padding:6px 14px;border-radius:999px}
.soma-pgb__save i{font-style:normal;opacity:.8;font-size:.8125rem}
.soma-pgb__prices{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.soma-page .soma-pgb__prices s{color:var(--soma-white-70);font-size:1.0625rem;text-decoration-thickness:1px}
.soma-page .soma-pgb__prices b{font-family:var(--soma-font-display);font-size:clamp(1.9rem,1.4rem + 1.6vw,2.6rem);font-weight:600;line-height:1;color:var(--soma-white)}
.soma-page .soma-pgb .soma-pgb__cta{display:inline-flex;align-items:center;justify-content:center;width:100%;margin-top:4px;background:var(--soma-white);color:var(--soma-primary);border-color:var(--soma-white);font-weight:600}
.soma-page a.soma-pgb:hover .soma-pgb__cta{background:var(--soma-periwinkle);border-color:var(--soma-periwinkle);color:var(--soma-primary)}
.soma-page .soma-pgb__note{font-size:.8125rem;color:var(--soma-white-70)}
@media (max-width:860px){.soma-pgb__in{grid-template-columns:1fr;gap:1.5rem;align-items:start}.soma-pgb__buy{align-self:stretch;width:100%}}
