/* ============================================================
   Programmes — hub + 7 standalone course pages
   Sharp-edged vector ornaments, photographic heroes,
   high-contrast ledger tables.
   ============================================================ */

/* ---------- course page hero ---------- */
.cs-hero{position:relative;overflow:hidden;isolation:isolate;background:#1D161C;
  padding:clamp(56px,7vw,96px) 0 clamp(40px,5vw,64px)}
.cs-hero-bg{position:absolute;inset:0;z-index:-2}
.cs-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 32%;display:block}
.cs-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(102deg,rgba(29,22,28,.96) 0%,rgba(29,22,28,.88) 48%,rgba(74,35,30,.9) 100%)}
.cs-hero-in{text-align:left}
.cs-hero .ab-crumb{justify-content:flex-start;color:rgba(252,247,234,.72);margin-bottom:18px}
.cs-hero .ab-crumb a{color:var(--hb-gold-dot)}
.cs-medal{display:block;width:86px;margin:0 0 16px;
  filter:drop-shadow(0 14px 22px rgba(0,0,0,.55))}
.cs-medal img{width:100%}
.cs-flag{display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;padding:8px 18px 8px 10px;
  border-radius:999px;background:linear-gradient(180deg,#8C3B32,var(--hb-burg) 58%,#5A1F1A);
  border:1px solid rgba(226,177,93,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 10px 20px -10px rgba(0,0,0,.7)}
.cs-flag img{width:26px;height:26px}
.cs-flag b{font:700 11px/1 var(--hb-text);letter-spacing:.16em;text-transform:uppercase;color:#F3D58C}
.cs-h1{margin:0 0 18px;max-width:22ch;
  font:800 clamp(28px,4.2vw,48px)/1.1 var(--hb-display);color:#FCF7EA;letter-spacing:-.015em}
.cs-intro{max-width:70ch}
.cs-intro p{margin:0 0 14px;font:400 15.4px/1.85 var(--hb-text);color:rgba(252,247,234,.85)}
.cs-intro strong{color:#F3D58C;font-weight:700}
.cs-intro a{color:var(--hb-gold-dot);border-bottom:1px solid rgba(226,177,93,.45);text-decoration:none}
.cs-intro a:hover{border-color:var(--hb-gold-dot)}

/* spec strip */
.cs-spec{list-style:none;margin:26px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,240px));gap:12px}
.cs-spec li{padding:15px 18px;border-radius:14px;
  background:rgba(252,247,234,.07);border:1px solid rgba(226,177,93,.32);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.cs-spec .k{display:block;font:700 9.6px/1 var(--hb-text);letter-spacing:.16em;text-transform:uppercase;
  color:var(--hb-gold-dot);margin-bottom:7px}
.cs-spec b{font:700 14.5px/1.35 var(--hb-display);color:#FCF7EA}
.cs-hero .ab-cta-row{justify-content:flex-start}

/* ---------- sticky section nav ---------- */
.cs-nav{position:sticky;top:0;z-index:20;background:rgba(252,247,234,.94);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hb-border);box-shadow:0 6px 18px -14px rgba(29,22,28,.5)}
.cs-nav .ab-wrap{display:flex;gap:8px;overflow-x:auto;padding-top:12px;padding-bottom:12px;
  scrollbar-width:none}
.cs-nav .ab-wrap::-webkit-scrollbar{display:none}
.cs-nav a{flex:none;padding:9px 15px;border-radius:999px;text-decoration:none;white-space:nowrap;
  font:700 12.4px/1 var(--hb-text);color:var(--hb-muted);border:1px solid var(--hb-border);
  background:linear-gradient(180deg,#FFFDF6,#F6EEDB);transition:all .15s ease}
.cs-nav a:hover{color:#3F2F10;border-color:#B08542;
  background:linear-gradient(180deg,#F6E4B4,#EBD190)}

/* ---------- body ---------- */
.cs-body{max-width:860px;margin:0 auto}
.cs-body p{margin:0 0 15px;font:400 15.4px/1.85 var(--hb-text);color:var(--hb-body)}
.cs-body strong{color:var(--hb-ink);font-weight:700}
.cs-body a{color:var(--hb-burg);font-weight:600;text-decoration:none;
  border-bottom:1.5px solid rgba(123,45,38,.34)}
.cs-body a:hover{border-color:var(--hb-burg)}
.cs-body .ab-checks{margin:4px 0 18px}
.ab-sec.ab--dark .cs-body p{color:rgba(252,247,234,.86)}
.ab-sec.ab--dark .cs-body strong{color:#F3D58C}
.ab-sec.ab--dark .cs-body a{color:var(--hb-gold-dot);border-color:rgba(226,177,93,.45)}
.cs-h3{margin:24px 0 10px;padding-left:16px;position:relative;
  font:700 16.5px/1.4 var(--hb-display);color:var(--hb-ink)}
.cs-h3::before{content:"";position:absolute;left:0;top:.36em;width:6px;height:6px;transform:rotate(45deg);
  background:radial-gradient(circle at 35% 30%,#F3D58C,var(--hb-gold) 55%,#B08542)}
.ab-sec.ab--dark .cs-h3{color:#F3D58C}

/* ---------- tables ---------- */
.cs-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:6px 0 22px}
.cs-table{width:100%;min-width:520px;border-collapse:separate;border-spacing:0;
  border:1.5px solid #D9A64C;border-radius:16px;overflow:hidden;
  box-shadow:0 22px 44px -30px rgba(29,22,28,.4)}
.cs-table th{padding:14px 18px;text-align:left;font:700 13px/1.3 var(--hb-display);color:#FCF7EA;
  background:linear-gradient(180deg,#7E5F31,var(--hb-bronze) 58%,#57411E)}
.cs-table th+th{border-left:1px solid rgba(255,255,255,.16)}
.cs-table td{padding:13px 18px;font:500 13.8px/1.65 var(--hb-text);color:var(--hb-body);
  border-top:1px solid var(--hb-border);background:#FFFDF6;vertical-align:top}
.cs-table td+td{border-left:1px solid var(--hb-border)}
.cs-table tbody tr:nth-child(even) td{background:#F8F1DE}
.cs-table td:first-child{font-weight:700;color:var(--hb-ink)}

/* ---------- course chips ---------- */
.cs-chips{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;max-width:940px;margin:0 auto}
.cs-chip{display:inline-flex;align-items:center;gap:9px;padding:11px 18px;border-radius:999px;
  text-decoration:none;font:700 13px/1 var(--hb-text);color:#3F2F10;
  background:linear-gradient(180deg,#F6E4B4,#EBD190 58%,#D9B96A);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 0 rgba(0,0,0,.16),
    0 8px 14px -9px rgba(143,106,46,.55);transition:transform .15s ease}
.cs-chip:hover{transform:translateY(-2px)}
.cs-chip img{width:19px;height:19px}
.cs-back{font:700 13.5px/1 var(--hb-text);color:var(--hb-burg);text-decoration:none;
  border-bottom:2px solid rgba(123,45,38,.4)}
.cs-back:hover{border-color:var(--hb-burg)}
.hb-btn.cs-desk{color:#fff;background:linear-gradient(180deg,#35815B,#2C6A47 55%,#224F38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.28),
    0 10px 18px -9px rgba(44,106,71,.55)}
.hb-btn.cs-desk:hover{color:#fff;transform:translateY(-1px)}

@media (max-width:860px){
  .cs-spec{grid-template-columns:1fr}
  .cs-hero .ab-cta-row{justify-content:flex-start}
  .cs-h1{max-width:none}
}

/* ============================================================
   Programmes HUB
   ============================================================ */
.pg-hero{position:relative;overflow:hidden;isolation:isolate;background:#1D161C;
  padding:clamp(60px,7.5vw,104px) 0 clamp(46px,6vw,74px);text-align:center}
.pg-hero-bg{position:absolute;inset:0;z-index:-2}
.pg-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;display:block}
.pg-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(178deg,rgba(29,22,28,.93) 0%,rgba(29,22,28,.88) 45%,rgba(74,35,30,.93) 100%)}
.pg-hero-wedge{position:absolute;top:0;right:0;width:46%;height:100%;pointer-events:none;z-index:-1;
  clip-path:polygon(34% 0%,100% 0%,100% 100%,64% 100%);
  background:linear-gradient(135deg,transparent 0%,rgba(226,177,93,.12) 100%)}
.pg-hero .ab-crumb{justify-content:center;color:rgba(252,247,234,.72);margin-bottom:16px}
.pg-hero .ab-crumb a{color:var(--hb-gold-dot)}
.pg-compass{display:block;width:78px;margin:0 auto 18px;opacity:.9;
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.6))}
.pg-h1{margin:0 auto 18px;max-width:24ch;
  font:800 clamp(28px,4.4vw,50px)/1.1 var(--hb-display);color:#FCF7EA;letter-spacing:-.015em}
.pg-lede{margin:0 auto 14px;max-width:74ch;font:500 16px/1.85 var(--hb-text);color:rgba(252,247,234,.88)}
.pg-sub{margin:0 auto;max-width:72ch;font:400 14.6px/1.8 var(--hb-text);color:rgba(252,247,234,.7)}
.pg-open{max-width:660px;margin:26px auto 0;padding:20px 26px;border-radius:16px;
  background:rgba(252,247,234,.07);border:1px solid rgba(226,177,93,.34);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.pg-open .k{display:block;margin-bottom:8px;font:700 9.8px/1 var(--hb-text);letter-spacing:.18em;
  text-transform:uppercase;color:var(--hb-gold-dot)}
.pg-open p{margin:0;font:italic 600 15.5px/1.75 var(--hb-display);color:#F3D58C}
.pg-hero .ab-cta-row{justify-content:center}
.hb-btn.pg-ghost{color:#F3D58C;background:rgba(252,247,234,.08);border:1.5px solid rgba(226,177,93,.45)}
.hb-btn.pg-ghost:hover{color:#F3D58C;transform:translateY(-1px);border-color:var(--hb-gold)}
.hb-btn.pg-app{color:#FCF7EA;background:linear-gradient(180deg,#8A6A38,#6E5327 55%,#4A3714);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.3),
    0 10px 18px -9px rgba(74,55,20,.6)}
.hb-btn.pg-app:hover{color:#FCF7EA;transform:translateY(-1px)}

/* flagship showcase */
.pg-flag{display:grid;grid-template-columns:1.02fr 1fr;gap:34px;align-items:center;
  max-width:1140px;margin:0 auto}
.pg-flag-img{position:relative;margin:0;border-radius:22px;overflow:hidden;
  border:1.5px solid #D9A64C;background:#F0E6CE;
  box-shadow:0 34px 64px -34px rgba(29,22,28,.5),inset 0 1px 0 rgba(255,255,255,.6)}
.pg-flag-img img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.pg-ribbon{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px 7px 8px;border-radius:999px;
  background:linear-gradient(180deg,#8C3B32,var(--hb-burg) 58%,#5A1F1A);
  border:1px solid rgba(226,177,93,.55);box-shadow:0 10px 20px -10px rgba(0,0,0,.75)}
.pg-ribbon img{width:22px;height:22px}
.pg-ribbon b{font:700 9.8px/1 var(--hb-text);letter-spacing:.16em;text-transform:uppercase;color:#F3D58C}
.pg-ribbon--lg{top:18px;left:18px;padding:9px 18px 9px 10px}
.pg-ribbon--lg img{width:26px;height:26px}
.pg-ribbon--lg b{font-size:11px}
.pg-flag-b p{margin:0 0 14px;font:400 15.4px/1.85 var(--hb-text);color:var(--hb-body)}
.pg-promise{margin-top:18px;padding:20px 24px;border-radius:16px;
  border:1px solid rgba(226,177,93,.55);border-left:4px solid var(--hb-burg);background:#FBF3E0}
.pg-promise .k{display:block;margin-bottom:8px;font:700 9.8px/1 var(--hb-text);letter-spacing:.18em;
  text-transform:uppercase;color:var(--hb-bronze)}
.pg-promise p{margin:0;font:italic 600 15px/1.75 var(--hb-display);color:var(--hb-ink)}

/* highlight cards */
.pg-hls{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1140px;margin:0 auto}
.pg-hl{padding:26px 22px 22px;border-radius:18px;
  border:1px solid var(--hb-border);background:linear-gradient(180deg,#FFFDF6,#F6EEDB);
  box-shadow:0 18px 36px -24px rgba(29,22,28,.3),inset 0 1px 0 #fff}
.pg-hl .ic{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;margin-bottom:13px;
  background:radial-gradient(circle at 35% 30%,#F3D58C,var(--hb-gold) 55%,#B08542);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 2px rgba(0,0,0,.2)}
.pg-hl .ic img{width:24px;height:24px}
.pg-hl h3{margin:0 0 10px;font:700 16px/1.32 var(--hb-display);color:var(--hb-ink)}
.pg-hl p{margin:0;font:400 13.9px/1.72 var(--hb-text);color:var(--hb-body)}

.pg-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1080px;margin:0 auto;align-items:start}
.pg-hi{width:24px;height:24px;flex:none}

/* spec / family / guide tables */
.pg-spec th[scope=row],.pg-guide th[scope=row]{width:32%;padding:13px 18px;text-align:left;
  font:700 13.6px/1.5 var(--hb-display);color:var(--hb-ink);background:#FBF3E0;
  border-top:1px solid var(--hb-border);border-right:1px solid var(--hb-border);vertical-align:top}
.pg-spec tbody tr:nth-child(even) th[scope=row],.pg-guide tbody tr:nth-child(even) th[scope=row]{background:#F5E8CC}
.pg-fam td:first-child{color:var(--hb-burg)}
.pg-all td:nth-child(2) a{color:var(--hb-burg);font-weight:700;text-decoration:none;
  border-bottom:1.5px solid rgba(123,45,38,.35)}
.pg-all td:nth-child(2) a:hover{border-color:var(--hb-burg)}
.pg-guide td a{color:var(--hb-burg);font-weight:700;text-decoration:none;
  border-bottom:1.5px solid rgba(123,45,38,.35)}

.pg-gpcta{max-width:820px;margin:30px auto 0;padding:26px 28px;border-radius:20px;text-align:center;
  border:1.5px solid #D9A64C;background:linear-gradient(180deg,#FFFDF6,#F6EEDB);
  box-shadow:0 26px 52px -32px rgba(29,22,28,.4)}
.pg-gpcta p{margin:0 0 12px;font:500 15px/1.8 var(--hb-text);color:var(--hb-body)}
.pg-gpcta .ab-cta-row{margin-top:18px}

/* course cards */
.pg-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1180px;margin:0 auto}
.pg-card{position:relative;display:flex;flex-direction:column;border-radius:20px;overflow:hidden;
  border:1px solid var(--hb-border);background:linear-gradient(180deg,#FFFDF6,#F6EEDB);
  box-shadow:0 22px 44px -28px rgba(29,22,28,.32),inset 0 1px 0 #fff;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.pg-card:hover{transform:translateY(-4px);border-color:#B08542;
  box-shadow:0 30px 56px -28px rgba(29,22,28,.42),inset 0 1px 0 #fff}
.pg-card.is-flag{grid-column:span 3;flex-direction:row;border-color:#8F6A2E;border-width:1.5px;
  background:linear-gradient(180deg,#FBF3E0,#F2E4C2)}
.pg-card.is-flag .pg-shot{flex:0 0 44%;aspect-ratio:auto}
.pg-card.is-flag .pg-card-b{flex:1;padding:30px 32px}
.pg-card.is-flag h3{font-size:24px}
.pg-shot{display:block;aspect-ratio:16/9;overflow:hidden;background:#F0E6CE;
  border-bottom:1px solid var(--hb-border)}
.pg-shot img{width:100%;height:100%;object-fit:cover;display:block}
.pg-card-b{position:relative;display:flex;flex-direction:column;flex:1;padding:22px 22px 20px}
.pg-no{position:absolute;top:-16px;right:20px;width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;font:800 13px/1 var(--hb-display);color:#3F2F10;
  background:radial-gradient(circle at 35% 30%,#F3DA9A,#ECCE77 55%,#C9A44E);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.5),inset 0 -2px 3px rgba(0,0,0,.28),
    0 8px 14px -8px rgba(29,22,28,.5)}
.pg-card.is-flag .pg-no{top:18px;right:24px}
.pg-med{display:block;width:52px;margin-bottom:12px;filter:drop-shadow(0 8px 14px rgba(74,55,20,.3))}
.pg-med img{width:100%}
.pg-card h3{margin:0 0 6px;font:800 19px/1.25 var(--hb-display)}
.pg-card h3 a{color:var(--hb-ink);text-decoration:none}
.pg-card h3 a:hover{color:var(--hb-burg)}
.pg-pos{display:inline-block;align-self:flex-start;margin-bottom:12px;padding:5px 12px;border-radius:999px;
  font:700 9.6px/1 var(--hb-text);letter-spacing:.13em;text-transform:uppercase;color:#3F2F10;
  background:linear-gradient(180deg,#F0CE83,var(--hb-gold) 58%,#C89440)}
.pg-card.is-flag .pg-pos{color:#FCF7EA;background:linear-gradient(180deg,#8C3B32,var(--hb-burg) 58%,#5A1F1A)}
.pg-card p{margin:0 0 12px;font:400 13.8px/1.7 var(--hb-text);color:var(--hb-body)}
.pg-fit{padding:11px 14px;border-radius:11px;background:rgba(226,177,93,.14);
  border:1px solid rgba(226,177,93,.4);font-size:12.8px!important}
.pg-fit .k{display:block;margin-bottom:4px;font:700 9.4px/1 var(--hb-text);letter-spacing:.14em;
  text-transform:uppercase;color:var(--hb-bronze)}
.pg-cta{margin-top:auto;display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  padding:11px 18px;border-radius:999px;text-decoration:none;font:700 12.6px/1 var(--hb-text);
  color:#FCF7EA;background:linear-gradient(180deg,#8C3B32,var(--hb-burg) 58%,#5A1F1A);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -2px 0 rgba(0,0,0,.3),
    0 10px 18px -10px rgba(90,31,26,.65);transition:transform .15s ease}
.pg-cta:hover{transform:translateY(-2px)}

@media (max-width:1100px){
  .pg-cards{grid-template-columns:repeat(2,1fr)}
  .pg-card.is-flag{grid-column:span 2}
  .pg-hls{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .pg-flag{grid-template-columns:1fr;gap:24px}
  .pg-duo{grid-template-columns:1fr}
  .pg-card.is-flag{flex-direction:column}
  .pg-card.is-flag .pg-shot{flex:none;aspect-ratio:16/9}
  .pg-card.is-flag .pg-card-b{padding:22px}
  .pg-card.is-flag h3{font-size:21px}
}
@media (max-width:700px){
  .pg-cards{grid-template-columns:1fr}
  .pg-card.is-flag{grid-column:span 1}
  .pg-hls{grid-template-columns:1fr}
  .pg-spec th[scope=row],.pg-guide th[scope=row]{width:auto}
}
