@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=DM+Serif+Display:ital@0;1&display=swap');

:root {
  --paper:#f5f0e5; --ink:#1b1a17; --soft:#555047; --dark:#181816;
  --gold:#e6ca7b; --ochre:#946a25; --line:#cfc6b5; --width:1240px;
  --serif:'DM Serif Display',Georgia,serif; --sans:'DM Sans',Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}
img{display:block;width:100%;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid #946a25;outline-offset:5px}
.hero :focus-visible,footer :focus-visible{outline-color:var(--gold)}
.skip{position:absolute;left:1rem;top:1rem;z-index:100;transform:translateY(-200%);background:#fff;padding:.5rem 1rem}
.skip:focus{transform:translateY(0)}
.wrap{width:min(calc(100% - 88px),var(--width));margin-inline:auto}
[id]{scroll-margin-top:110px}
h2{font:400 clamp(36px,4.35vw,68px)/.98 var(--serif);letter-spacing:-.036em;margin:0}
p{margin:0}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.chapter{display:flex;align-items:center;gap:11px;margin:0 0 17px}
.chapter span{color:var(--ochre);font-variant-numeric:tabular-nums}
.chapter span::after{content:'';display:inline-block;height:1px;width:19px;background:currentColor;vertical-align:middle;margin-left:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 15px;border:1px solid transparent;text-decoration:none;font-size:13px;font-weight:800;line-height:1.2}
.btn-dark{background:var(--ink);color:#fffdf4}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn:hover{filter:brightness(1.09)}
.text-link{font-size:13px;font-weight:800;text-underline-offset:5px;text-decoration-thickness:1px}
.text-link span{margin-left:4px}

header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
header .nav{display:flex;justify-content:space-between;align-items:center;min-height:80px;gap:24px}
.logo{display:flex;align-items:center}
.navlinks{display:flex;align-items:center;gap:clamp(13px,1.75vw,28px)}
.navlinks a:not(.btn){font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}
.navlinks a:not(.btn):hover{text-decoration:underline;text-underline-offset:5px}
.navlinks .btn{min-height:38px}
.menu{display:none;background:transparent;border:1px solid var(--line);width:44px;height:44px;font-size:23px;line-height:1;cursor:pointer}

.hero{position:relative;isolation:isolate;background:var(--dark);color:#fcf5e7;overflow:hidden}
.hero-layout{min-height:510px;display:flex;align-items:center}
.hero-copy{position:relative;z-index:2;width:52%;padding:48px 0 32px}
.hero-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--gold)}
.hero-kicker span{width:20px;height:1px;background:currentColor}
.hero-brand{max-width:570px;margin:17px 0 21px;line-height:0}
.hero-brand-logo{display:block;width:57.8%;height:auto;overflow:visible}
.cta{display:flex;align-items:center;flex-wrap:wrap;gap:11px 22px;margin-top:43px}
.hero-credential{margin-top:18px;color:#c7bead;font-size:11px;letter-spacing:.07em}
.hero-photo{position:absolute;z-index:-1;inset:0 0 0 auto;width:64%;margin:0;overflow:hidden}
.hero-photo img{height:100%;object-fit:cover;object-position:59% 45%}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--dark),rgba(24,24,22,.9) 11%,rgba(24,24,22,.38) 34%,transparent 57%),linear-gradient(0deg,rgba(24,24,22,.82),transparent 24%);pointer-events:none}
.hero-photo figcaption{position:absolute;z-index:1;right:clamp(20px,5vw,80px);bottom:19px;display:flex;align-items:center;gap:10px;color:#fff5df;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.hero-photo figcaption span{width:25px;height:1px;background:var(--gold)}

.spread{padding-block:clamp(34px,4vw,60px)}
.pathways{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(28px,4.2vw,64px);align-items:start}
.pathways > section > h2{font-size:clamp(34px,3.65vw,55px)}
.pathways .questions{padding:0 0 0 clamp(20px,3vw,44px);border-inline-start:1px solid var(--line)}
.service-index{list-style:none;margin:0;padding:0}
.service-index li{border-top:1px solid var(--line)}
.service-index li:last-child{border-bottom:1px solid var(--line)}
.service-index a{display:grid;grid-template-columns:28px minmax(0,1fr) 26px;gap:10px;align-items:center;text-decoration:none;padding:11px 0}
.service-index a:hover strong{text-decoration:underline;text-underline-offset:4px}
.index-no{font-size:10px;color:var(--ochre);font-weight:800;letter-spacing:.07em}
.service-index strong{display:block;font:400 clamp(21px,2.2vw,31px)/1.08 var(--serif);letter-spacing:-.018em}
.service-index small{display:block;color:var(--soft);font-size:12px;margin-top:3px;line-height:1.35}
.row-arrow{color:var(--ochre);font-size:20px;text-align:right;padding-right:2px}
.reflection,.reflection blockquote{margin:0}
.reflection blockquote p{font:400 clamp(23px,2.6vw,37px)/1.12 var(--serif);letter-spacing:-.024em}
.reflection figcaption{font-size:12px;line-height:1.4;margin-top:15px;font-weight:800}
.reflection a{text-underline-offset:4px;text-decoration-color:#997632}
.quote-work{display:block;margin-top:4px;font-size:11px;font-weight:500}
.home-quote-banner{padding-block:clamp(16px,2vw,28px);background:#f0e8d8;border-bottom:1px solid var(--line)}
.home-quote-banner .reflection{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(14px,3vw,40px);align-items:center}
.home-quote-banner blockquote p{font-size:clamp(20px,2vw,26px);line-height:1.25}
.home-quote-banner .reflection figcaption{margin:0;border-inline-start:1px solid #a78e5a;padding-inline-start:16px;color:#4e3b26}

.about{background:#e8e5df;border-block:1px solid #d9d3c8}
.about-grid{display:grid;grid-template-columns:1fr .83fr .62fr;gap:clamp(17px,2.8vw,44px);align-items:center}
.about-copy h2{font-size:clamp(37px,3.8vw,59px)}
.about-copy .pull{font:italic 400 clamp(21px,2vw,29px)/1.17 var(--serif);margin:10px 0 12px;color:#725220}
.about-copy p:not(.chapter):not(.pull){font-size:14px;color:#38352e;margin-bottom:10px}
.about-copy .text-link{display:inline-block;margin-top:4px}
.about-photo{position:relative;height:clamp(260px,30vw,405px);background:radial-gradient(ellipse closest-side at 50% 48%,#c4c2bd 0%,#d6d3cd 38%,#e3e0da 70%,rgba(232,229,223,0) 100%)}
.about-original-portrait{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden}
.contact-sheet{min-width:0;background:#25241f;color:#f7edda;padding:14px 14px 12px}
.contact-sheet summary{position:relative;display:grid;gap:4px;padding-right:22px;font-family:var(--serif);font-size:18px;line-height:1.08}
.sheet-index{display:flex;gap:8px;color:#e3c47d;font:800 9px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.14em}
.sheet-index b{font-weight:500}
.sheet-photos{display:grid;gap:9px;margin-top:12px}
.sheet-photos figure{margin:0}
.sheet-photos img{aspect-ratio:1.9;object-fit:cover}
.sheet-photos figure:nth-child(2){width:88%;justify-self:end}
.sheet-photos figcaption{display:flex;gap:8px;padding-top:4px;color:#e4c985;font-size:9px;letter-spacing:.05em}
.sheet-photos figcaption span{color:#eee4cf}

.practical{display:grid;grid-template-columns:minmax(0,820px);justify-content:center}
.group{position:relative;background:#e9d28f;padding:clamp(18px,2.5vw,36px);border-top:3px solid #9b742e}
.group .chapter span{color:#684911}
.group h2,.questions h2{font-size:clamp(34px,3.55vw,55px)}
.group h2 em{font-weight:400}
.group>p:not(.chapter),.questions>p:not(.chapter){font-size:14px;margin-top:11px;line-height:1.52}
.programme-facts{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin:14px 0 8px}
.programme-facts div{border-top:1px solid #ad904f;padding-top:5px}
.programme-facts dt{font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:800}
.programme-facts dd{font-size:12px;font-weight:650;margin:0}
summary{cursor:pointer;list-style:none;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:'+';position:absolute;right:1px;top:50%;transform:translateY(-50%);font:500 18px/1 var(--sans);color:inherit}
details[open]>summary::after{content:'−'}
.programme-details{border-block:1px solid #ad904f;margin:10px 0}
.programme-details summary,.note>summary,.faq-list summary{padding:9px 24px 9px 0;font-size:13px;font-weight:800}
.group .programme-note{font-size:11px!important;margin-top:7px!important}
.themes{padding-bottom:9px}
.theme{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #ad904f;padding:5px 0;font-size:12px}
.theme span{font-size:10px;font-weight:800}
.themes p{font-size:11px;margin-top:5px}
.questions{padding-top:8px}
.questions>p:not(.chapter){max-width:38ch;color:var(--soft)}
.notes-index{margin:16px 0}
.note{border-top:1px solid var(--line)}
.note:last-child{border-bottom:1px solid var(--line)}
.note>summary{font:400 22px/1.15 var(--serif);padding-block:12px}
.note>summary small{margin-left:6px;font:800 10px var(--sans);color:var(--ochre);vertical-align:middle}
.step-grid,.faq-list{padding:0 6px 10px 0}
.step{display:grid;grid-template-columns:60px 1fr;gap:0 9px;padding:7px 0;border-top:1px solid var(--line)}
.step-num{font-size:9px;color:var(--ochre);font-weight:800;padding-top:4px}
.step h3{margin:0;font-size:14px}
.step p{grid-column:2;font-size:12px;color:var(--soft)}
.faq-list details{border-top:1px solid var(--line)}
.faq-list summary{font-size:12px}
.faq-list p{font-size:12px;color:var(--soft);padding:0 18px 10px 0}

footer{background:var(--dark);color:#f8efdd;padding:29px 0 18px}
.footer-reflection{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding-bottom:21px}
.footer-reflection blockquote p{font-size:clamp(23px,2.45vw,35px)}
.footer-reflection .quote-work{color:#cfc4b0}
.footer-contacts{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;border-top:1px solid #5b5549;padding-top:12px;font-size:12px}
.footer-contacts strong{margin-right:8px}
.footer-contacts>div span,.footer-legal{color:#d4c9b6}
.footer-contacts a{text-underline-offset:3px}
.mobile-cta{display:none}

@media(max-width:1050px){
  .wrap{width:calc(100% - 64px)}
  .hero-layout{min-height:460px}
  .about-grid{grid-template-columns:1.05fr .85fr .7fr}
  .contact-sheet{padding:10px}
  .contact-sheet summary{font-size:17px}
}
@media(max-width:979px){
  .menu{display:grid;place-items:center}
  header .nav{min-height:72px}
  .navlinks{display:none;position:absolute;inset:100% 0 auto;background:var(--paper);border-bottom:1px solid var(--line);padding:9px 24px 18px;box-shadow:0 10px 18px #0002}
  .navlinks.open{display:grid;gap:0}
  .navlinks a:not(.btn){padding:10px 0;border-bottom:1px solid var(--line)}
  .navlinks .btn{margin-top:11px;justify-self:start}
}
@media(max-width:899px){
  .wrap{width:calc(100% - 48px)}
  .about-grid{grid-template-columns:1fr .8fr}
  .contact-sheet{grid-column:1/-1}
  .sheet-photos{grid-template-columns:1fr 1fr}
  .sheet-photos figure:nth-child(2){width:100%}
}
@media(max-width:690px){
  .wrap{width:calc(100% - 38px)}
  [id]{scroll-margin-top:86px}
  header .nav{min-height:63px}
  .hero-layout{min-height:clamp(320px,89vw,420px)}
  .hero-copy{width:100%;padding:40px 0 35px}
  .hero-kicker{font-size:9px;gap:8px}
  .hero-brand{margin:13px 0 16px}
  .cta{gap:8px 14px;margin-top:33px}
  .cta .text-link,.cta .btn{font-size:12px}
  .hero-credential{margin-top:12px;font-size:10px}
  .hero-photo{inset:0;width:100%;pointer-events:none}
  .hero-photo img{object-position:30% 37%;opacity:.6}
  .hero-photo::after{
    background:linear-gradient(90deg,#181816bf 0%,#18181685 52%,#18181633 100%),
               linear-gradient(0deg,#181816e0,transparent 43%,transparent 75%,#18181659);
  }
  .hero-photo figcaption{right:19px;bottom:9px;font-size:8px}
  .spread{padding-block:30px}
  .pathways{grid-template-columns:minmax(0,1fr);gap:28px}
  .pathways .questions{padding:22px 0 0;border-inline-start:0;border-top:1px solid var(--line)}
  .chapter{margin-bottom:10px}
  .service-index a{grid-template-columns:23px minmax(0,1fr) 23px;padding-block:10px}
  .reflection figcaption{margin-top:10px}
  .home-quote-banner .reflection{grid-template-columns:minmax(0,1fr);gap:9px}
  .home-quote-banner .reflection figcaption{padding-inline-start:11px}
  .about-grid{grid-template-columns:1fr;gap:7px}
  .about-photo{height:clamp(234px,68vw,345px);width:min(100%,350px);justify-self:center}
  .contact-sheet{grid-column:1;margin-top:3px}
  .contact-sheet summary{min-height:40px}
  .questions{padding-top:0}
  .notes-index{margin:12px 0}
  footer{padding:21px 0 80px}
  .footer-reflection{grid-template-columns:1fr;gap:13px;padding-bottom:15px}
  .footer-reflection .btn{justify-self:start}
  .footer-contacts{justify-content:flex-start;gap:6px 17px}
  .footer-contacts>div{width:100%}
  .mobile-cta{display:block;position:fixed;z-index:19;inset:auto 0 0;background:#f5f0e5ee;border-top:1px solid var(--line);padding:6px 19px calc(6px + env(safe-area-inset-bottom))}
  .mobile-cta .btn{width:100%;min-height:42px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Dark third band, with the existing gold accents carried into the programme. */
.practical-band{background:#24231f;color:#f8efdd}
.practical-band .group{background:#302d26;border-top-color:#c9a75a}
.practical-band .chapter span,.practical-band .programme-facts dt,.practical-band .theme span{color:var(--gold)}
.practical-band .programme-facts div,.practical-band .programme-details,
.practical-band .theme{border-color:#78694d}
.practical-band .programme-note,.practical-band .themes p{color:#ded3be}
.practical-band .group .btn-dark{background:var(--gold);color:var(--ink)}
.practical-band :focus-visible{outline-color:var(--gold)}

.pathways-options{min-width:0;margin-top:18px}
.service-location{margin:12px 0 0;color:var(--soft);font-size:14px;line-height:1.55}
