  :root{
    --ink:#17163a;
    --paper:#faf7f2;
    --primary:#2e3192;
    --accent:#c98a2c;
    --muted:#6b6f8a;
    --line:#dcd6c9;
    --card:#ffffff;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Cormorant Garamond',serif;
    font-weight:500;
    line-height:1.08;
    margin:0;
  }
  a{color:inherit;text-decoration:none;}
  a:focus-visible, button:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}
  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }
  .wrap{max-width:1140px; margin:0 auto; padding:0 24px;}

  /* -------- Header -------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(250,247,242,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 24px;
  }
  .logo{font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:600; letter-spacing:0.02em;}
  .logo em{color:var(--accent); font-style:normal;}
  nav ul{list-style:none; display:flex; gap:32px; margin:0; padding:0;}
  nav a{font-size:0.92rem; font-weight:500; color:var(--ink); position:relative; padding:4px 0;}
  nav a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--accent);
    transition:width 0.2s ease;
  }
  nav a:hover::after{width:100%;}
  .nav-cta{
    background:var(--primary); color:#fff !important; padding:10px 20px; border-radius:2px;
    font-size:0.88rem; font-weight:600; letter-spacing:0.02em;
  }
  .nav-cta-outline{
    background:transparent; color:var(--primary) !important; border:1.5px solid var(--primary);
    padding:8.5px 18px; border-radius:2px; font-size:0.88rem; font-weight:600; letter-spacing:0.02em;
  }
  .nav-cta-outline:hover{background:rgba(46,49,146,0.06);}
  .nav-links{display:flex; align-items:center; gap:32px;}
  .menu-toggle{display:none; background:none; border:none; font-size:1.5rem; color:var(--ink); cursor:pointer;}

  @media (max-width:820px){
    nav ul{
      display:none; flex-direction:column; gap:0;
      position:absolute; top:100%; left:0; right:0; background:var(--paper);
      border-bottom:1px solid var(--line);
    }
    nav ul.open{display:flex;}
    nav ul li{border-top:1px solid var(--line);}
    nav ul a{display:block; padding:16px 24px;}
    .nav-links{gap:16px;}
    .menu-toggle{display:block;}
  }

  /* -------- Hero -------- */
  .hero{
    padding:96px 24px 80px;
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{position:relative; z-index:2;}
  .eyebrow{
    font-size:0.78rem; text-transform:uppercase; letter-spacing:0.16em;
    color:var(--accent); font-weight:600; margin-bottom:18px; display:block;
  }
  .hero h1{
    font-size:clamp(2.4rem, 5.4vw, 4.1rem);
    max-width:15ch;
    color:var(--ink);
  }
  .hero h1 .accent-italic{font-style:italic; color:var(--primary);}
  .hero p.sub{
    max-width:52ch; margin-top:26px; font-size:1.08rem; color:var(--muted);
  }
  .hero-cta-row{display:flex; gap:18px; margin-top:38px; flex-wrap:wrap;}
  .btn-primary, .btn-secondary{
    padding:15px 28px; font-size:0.95rem; font-weight:600; border-radius:2px;
    display:inline-block; letter-spacing:0.01em;
  }
  .btn-primary{background:var(--primary); color:#fff;}
  .btn-secondary{border:1px solid var(--ink); color:var(--ink);}
  .btn-primary:hover{background:#25276f;}
  .btn-secondary:hover{background:var(--ink); color:#fff;}

  /* Ubuntu ring motif — interlocking circles, abstract, not literal pattern */
  .ring-motif{
    position:absolute; top:-60px; right:-120px; width:520px; height:520px;
    z-index:1; opacity:0.9;
  }
  @media (max-width:820px){ .ring-motif{display:none;} }

  /* -------- Stats bar -------- */
  .stats-bar{
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    background:var(--card);
  }
  .stats-grid{
    display:grid; grid-template-columns:repeat(4,1fr);
    max-width:1140px; margin:0 auto;
  }
  .stat{
    padding:34px 20px; text-align:center; border-left:1px solid var(--line);
  }
  .stat:first-child{border-left:none;}
  .stat .num{font-family:'Cormorant Garamond',serif; font-size:2.1rem; color:var(--primary); font-weight:600;}
  .stat .label{font-size:0.8rem; color:var(--muted); text-transform:uppercase; letter-spacing:0.08em; margin-top:6px;}
  @media (max-width:720px){
    .stats-grid{grid-template-columns:repeat(2,1fr);}
    .stat:nth-child(3){border-left:none;}
  }

  /* -------- Section shared -------- */
  section{padding:88px 0;}
  .section-head{max-width:60ch; margin-bottom:52px;}
  .section-head .eyebrow{margin-bottom:14px;}
  .section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);}
  .section-head p{color:var(--muted); margin-top:16px; font-size:1.02rem;}

  /* -------- Programmes -------- */
  .programme-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .programme-card{
    background:var(--card); padding:38px; display:flex; flex-direction:column; gap:14px;
  }
  .programme-card .tag{
    font-size:0.74rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--accent); font-weight:600;
  }
  .programme-card h3{font-size:1.5rem;}
  .programme-card p{color:var(--muted); font-size:0.96rem; margin:0;}
  .programme-card .learn{
    margin-top:auto; font-size:0.88rem; font-weight:600; color:var(--primary);
    padding-top:8px; border-top:1px solid var(--line);
  }
  @media (max-width:720px){ .programme-grid{grid-template-columns:1fr;} }

  /* -------- Certification / ISO strip -------- */
  .cert-strip{
    background:var(--ink); color:#f4f2ec;
  }
  .cert-strip .wrap{
    display:flex; align-items:center; justify-content:space-between; gap:48px; flex-wrap:wrap;
  }
  .cert-strip h2{color:#fff; font-size:clamp(1.7rem,3vw,2.3rem); max-width:22ch;}
  .cert-strip p{color:#c8c6e0; max-width:44ch; margin-top:14px; font-size:0.98rem;}
  .cert-badges{display:flex; gap:28px; flex-wrap:wrap;}
  .cert-badge{
    border:1px solid rgba(255,255,255,0.25); padding:16px 22px; text-align:center; min-width:130px;
  }
  .cert-badge .code{font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--accent);}
  .cert-badge .desc{font-size:0.74rem; color:#c8c6e0; text-transform:uppercase; letter-spacing:0.06em; margin-top:4px;}

  /* -------- Ubuntu note -------- */
  .ubuntu-note{
    text-align:center; padding:96px 24px; background:var(--paper);
  }
  .ubuntu-note .display{
    font-style:italic; font-size:clamp(1.8rem,3.6vw,2.6rem); color:var(--primary);
    max-width:20ch; margin:0 auto;
  }
  .ubuntu-note p.caption{margin-top:22px; color:var(--muted); font-size:0.92rem;}
  .ubuntu-note a{color:var(--accent); font-weight:600; border-bottom:1px solid var(--accent);}

  /* -------- Final CTA -------- */
  .final-cta{background:var(--primary); color:#fff; text-align:center;}
  .final-cta h2{color:#fff; font-size:clamp(2rem,4vw,2.8rem); max-width:18ch; margin:0 auto;}
  .final-cta p{color:#d4d3ef; margin-top:16px; max-width:48ch; margin-left:auto; margin-right:auto;}
  .final-cta .btn-primary{background:#fff; color:var(--primary); margin-top:32px;}
  .final-cta .btn-primary:hover{background:var(--accent); color:#fff;}

  /* -------- Footer -------- */
  footer{background:var(--ink); color:#c8c6e0; padding:64px 0 32px; font-size:0.9rem;}
  .footer-grid{
    display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px;
  }
  .footer-grid h4{
    color:#fff; font-family:'Inter',sans-serif; font-size:0.82rem; text-transform:uppercase;
    letter-spacing:0.08em; margin-bottom:16px; font-weight:600;
  }
  .footer-grid ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px;}
  .footer-grid a:hover{color:#fff;}
  .footer-bottom{
    max-width:1140px; margin:48px auto 0; padding:24px 24px 0; border-top:1px solid rgba(255,255,255,0.12);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.8rem; color:#8f8dbd;
  }
  @media (max-width:720px){ .footer-grid{grid-template-columns:1fr 1fr;} }

/* ================= Shared subpage components ================= */

.page-hero{
  padding:64px 24px 56px;
  border-bottom:1px solid var(--line);
}
.page-hero .eyebrow{margin-bottom:14px;}
.page-hero h1{font-size:clamp(2.1rem,4.4vw,3.2rem); max-width:20ch;}
.page-hero p.sub{max-width:56ch; margin-top:18px; color:var(--muted); font-size:1.04rem;}

.prose{max-width:70ch;}
.prose p{margin:0 0 20px; color:var(--ink); font-size:1.02rem;}
.prose p.muted{color:var(--muted);}
.prose h2{font-size:1.7rem; margin:0 0 16px;}
.prose h3{font-size:1.3rem; margin:36px 0 12px;}
.prose blockquote{
  border-left:3px solid var(--accent); margin:32px 0; padding:6px 0 6px 24px;
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.3rem; color:var(--primary);
}

/* Two-column content layout */
.split{display:grid; grid-template-columns:1.3fr 0.9fr; gap:64px;}
@media (max-width:860px){ .split{grid-template-columns:1fr;} }
.side-card{
  background:var(--card); border:1px solid var(--line); padding:28px; align-self:start;
}
.side-card h4{
  font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted);
  margin:0 0 14px; font-weight:600;
}
.side-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
.side-card li{font-size:0.94rem; border-bottom:1px solid var(--line); padding-bottom:12px;}
.side-card li:last-child{border-bottom:none; padding-bottom:0;}
.side-card li a{color:var(--primary); font-weight:600;}

/* Timetable */
.timetable{width:100%; border-collapse:collapse; margin-top:8px;}
.timetable th, .timetable td{
  text-align:left; padding:14px 16px; border-bottom:1px solid var(--line); font-size:0.94rem;
}
.timetable th{
  font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); font-weight:600;
}
.timetable td.day{font-weight:600; color:var(--primary); white-space:nowrap;}
.timetable tr:last-child td{border-bottom:none;}

/* Accreditation badges */
.badge-row{display:flex; gap:24px; flex-wrap:wrap; margin:28px 0 8px; align-items:center;}
.badge{
  width:120px; height:120px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  flex-direction:column; text-align:center; border:2px solid;
  font-family:'Inter',sans-serif;
}
.badge.cpd{border-color:#6a3fa0; color:#6a3fa0;}
.badge.clero{border-color:#3f4fa0; color:#3f4fa0;}
.badge .badge-title{font-size:0.68rem; font-weight:700; letter-spacing:0.04em; line-height:1.2;}
.badge .badge-sub{font-size:0.58rem; margin-top:4px; opacity:0.8;}

.detail-card{
  background:var(--card); border:1px solid var(--line); padding:24px; margin-bottom:16px;
}
.detail-card .k{font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted);}
.detail-card .v{font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:var(--ink); margin-top:4px;}

/* External/network link list used in footer expansion + programme pages */
.network-note{
  font-size:0.82rem; color:#8f8dbd; margin-top:10px;
}
