/* Shared visual system for the September design refresh. */
:root { --navy:#142b3c; --navy-deep:#10212f; --gold:#c9ad70; --gold-hover:#ddc38e; --cream:#fbfaf7; --cream-warm:#f1efe9; --text-heading:#182c3b; --text-body:#43515a; --text-secondary:#58666f; --radius-md:4px; --radius-lg:6px; }
body { -webkit-font-smoothing:antialiased; }
h1,h2,h3 { text-wrap:balance; }
p { text-wrap:pretty; }
.container,.nav__inner { max-width:1180px; }
.nav { background:rgba(250,249,246,.98); }
.nav__logo-text { font-size:2rem; }
.nav__logo-suffix { letter-spacing:.18em; }
.nav__cta,.btn { border-radius:3px; }
.nav__cta { border-color:#b6a177; color:var(--navy); padding:10px 25px; }
.nav__link { font-size:13px; letter-spacing:.015em; }
.btn { min-height:50px; font-weight:500; box-shadow:none; transition:background-color .18s,color .18s,border-color .18s; }
.btn:hover { transform:none; box-shadow:none; }
.btn--primary { color:#10283b; }
.hero { padding:142px 0 72px; background:var(--navy); }
.hero__bg-pattern { display:none; }
.hero__inner { grid-template-columns:1.12fr .88fr; gap:78px; }
.hero__content { max-width:650px; }
.hero__title { font-size:clamp(2.4rem,3.5vw,3.3rem); line-height:1.14; letter-spacing:-.035em; font-weight:500; margin-bottom:28px; max-width:550px; font-style:normal; text-wrap:balance; }
.hero__text { font-size:16px; line-height:1.85; color:#d4dde3; max-width:425px; }
.hero__actions { margin-top:34px; gap:20px; flex-wrap:wrap; }
.hero__actions .btn { padding:16px 21px; font-size:14px; }
.hero__actions .btn--outline-light { border-color:transparent; border-bottom-color:#70818b; border-radius:0; padding-left:0; padding-right:0; color:#f4f1e9; }
.hero__actions .btn--outline-light:hover { color:var(--gold-hover); background:transparent; border-bottom-color:var(--gold-hover); }
.mentor-feature { position:relative; overflow:hidden; border-radius:100px 12px 12px 12px; height:490px; background:#e9e4da; }
.mentor-feature img { width:100%; height:100%; object-fit:cover; object-position:center 24%; }
.mentor-feature__caption { position:absolute; left:0; right:0; bottom:0; padding:65px 30px 27px; background:linear-gradient(transparent,rgba(7,20,34,.93) 60%); color:white; }
.mentor-feature__caption strong { display:block; font-family:var(--font-serif); font-size:30px; font-weight:500; margin-bottom:7px; }
.mentor-feature__caption span { display:block; font-size:13px; line-height:1.7; color:#e1e8ec; }
.programme-facts { background:var(--cream); }
.programme-facts__grid { display:grid; grid-template-columns:repeat(3,1fr); padding-top:34px; padding-bottom:34px; gap:35px; border-bottom:1px solid var(--border); }
.programme-facts__grid div { padding-right:15px; }
.programme-facts__grid div:last-child { border:0; }
.programme-facts strong { display:block; font-size:16px; font-weight:500; color:var(--navy); }
.programme-facts span { display:block; font-size:12px; color:#59646a; margin-top:5px; }
.section { padding-top:96px; padding-bottom:96px; }
.section-header { margin-bottom:40px; }
.section h2 { font-size:clamp(2.1rem,3.2vw,3rem); letter-spacing:-.015em; line-height:1.12; font-weight:500; }
.problem__grid { gap:72px; align-items:center; }
.problem__point { padding:18px 0; }
.problem__point p { font-size:15px; }
.problem__point strong { display:block; color:var(--navy); margin-bottom:4px; }
.problem__point-number { display:none; }
.problem__points { gap:0; }
.problem__text p { max-width:420px; line-height:1.85; }
.solution__card { border-radius:0; background:none; padding:26px 0 0; }
.solution__intro { max-width:640px; }
.solution__intro p { font-size:17px; line-height:1.85; color:#d2dbe1; }
.solution__grid { gap:42px; }
.solution__card h3 { font-size:26px; margin-bottom:16px; }
.solution__card p { color:#becbd4; line-height:1.8; font-size:14px; }
.process-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; align-items:start; }
.process-layout .section-header { margin:0; text-align:left; }
.process-layout .lead { margin:22px 0; font-size:16px; line-height:1.8; }
.steps { width:100%; max-width:none; margin:0; }
.step,.step:last-child { padding:26px 0; border:0; border-top:1px solid var(--border); border-radius:0; background:none; gap:24px; grid-template-columns:28px minmax(0,1fr); }
.step:first-child { padding-top:0; border-top:0; }
.step::before { content:none; }
.step__number { width:auto; height:auto; display:block; padding-top:3px; border:0; border-radius:0; background:none; font-size:15px; color:var(--gold-muted); }
.step__content h3 { padding:0; font-family:var(--font-sans); font-size:17px; font-weight:500; line-height:1.5; margin-bottom:8px; }
.step__content p { font-size:14px; line-height:1.8; }
.outcomes__grid { column-gap:65px; row-gap:0; }
.outcome { padding:24px 0; background:none; border-radius:0; border-bottom:1px solid #d9d5cb; }
.outcome p { font-size:15px; line-height:1.8; }
.compliance { border-radius:3px; }
.director__image-wrap { max-width:380px; }
.director__image--real { object-fit:cover; object-position:center 20%; border-radius:4px; }
.director__image-accent { display:none; }
.director__credentials { gap:12px; border-top:1px solid var(--border); padding-top:24px; }
.director__role { text-transform:none; letter-spacing:0; font-size:14px; color:#7d663a; }
.director__content p { line-height:1.85; }
.page-header { padding-top:145px; padding-bottom:58px; }
.page-header h1 { font-size:clamp(2.8rem,4.6vw,4.2rem); letter-spacing:-.025em; }
.page-header .lead { max-width:650px; color:#d0dce4; }
.page-header__bg-pattern { display:none; }
.form__input,.form__textarea,.form__select { border-radius:3px; background:white; }
.form__input:focus,.form__textarea:focus,.form__select:focus { outline:2px solid var(--gold); outline-offset:2px; }
.faq { border-radius:3px; }
.footer { background:var(--navy-deep); }
.fade-in { opacity:1; transform:none; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:9999; background:white; color:var(--navy); padding:14px 20px; border:2px solid var(--gold); }
.skip-link:focus { top:12px; }
:focus-visible { outline:3px solid #c8a65a; outline-offset:5px; }
@media(max-width:900px) {
 .hero__inner { gap:30px; grid-template-columns:1.1fr .9fr; }
 .mentor-feature { height:430px; }
 .hero__title { font-size:3.35rem; }
 .programme-facts__grid { gap:20px; }
 .programme-facts__grid div:nth-child(2) { border:0; }
 .process-layout { gap:40px; grid-template-columns:1fr 1.2fr; }
}
@media(max-width:640px) {
 .hero { padding:110px 0 36px; }
 .hero__inner { grid-template-columns:1fr; gap:35px; }
 .hero__title { font-size:2.7rem; max-width:500px; }
 .hero__text { font-size:16px; }
 .hero__actions { flex-direction:column; }
 .hero__actions .btn { width:100%; }
 .hero__actions .btn--outline-light { width:auto; align-self:flex-start; }
 .mentor-feature { height:400px; border-radius:60px 10px 10px 10px; }
 .mentor-feature img { object-position:center 20%; }
 .programme-facts__grid { grid-template-columns:1fr; gap:0; padding-top:16px; padding-bottom:16px; }
 .programme-facts__grid div { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:5px 15px; padding:13px 0; border:0; }
 .programme-facts strong { font-size:15px; }
 .programme-facts span { font-size:12px; margin:0; }
 .section { padding:54px 0; }
 .problem__grid { gap:24px; }
 .page-header { padding:115px 0 42px; }
 .process-layout { grid-template-columns:1fr; gap:32px; }
 .step,.step:last-child { padding:22px 0; }
 .step:first-child { padding-top:0; }
}
/* Motion enhances the layout; content stays visible without JavaScript. */
@keyframes enter-softly {
 from { opacity:0; transform:translateY(18px); }
 to { opacity:1; transform:translateY(0); }
}
@keyframes portrait-enter {
 from { opacity:0; transform:translateY(16px) scale(.985); }
 to { opacity:1; transform:translateY(0) scale(1); }
}
.motion-ready .hero__title { animation:enter-softly .8s cubic-bezier(.2,.65,.3,1) both; }
.motion-ready .hero__text { animation:enter-softly .8s .1s cubic-bezier(.2,.65,.3,1) both; }
.motion-ready .hero__actions { animation:enter-softly .8s .2s cubic-bezier(.2,.65,.3,1) both; }
.motion-ready .mentor-feature { animation:portrait-enter 1s .12s cubic-bezier(.2,.65,.3,1) both; }
.motion-ready .fade-in { opacity:0; transform:translateY(20px); transition:opacity .65s ease,transform .8s cubic-bezier(.2,.65,.3,1); }
.motion-ready .fade-in--visible,.motion-ready .fade-in:focus-within { opacity:1; transform:none; }
.motion-ready .fade-in--delay-1 { transition-delay:80ms; }
.motion-ready .fade-in--delay-2 { transition-delay:160ms; }
.motion-ready .fade-in--delay-3 { transition-delay:240ms; }
.btn__arrow { display:inline-block; transition:transform .25s ease; }
.btn:hover .btn__arrow,.btn:focus-visible .btn__arrow { transform:translateX(4px); }
.nav { transition:background-color .25s,box-shadow .25s; }
.nav__link { text-underline-offset:6px; }
.nav__link:hover { text-decoration:underline; text-decoration-thickness:1px; }
@media(hover:hover) and (pointer:fine) {
 .mentor-feature img { transition:transform 1s cubic-bezier(.2,.65,.3,1); }
 .mentor-feature:hover img { transform:scale(1.025); }
}
@media print {
 .motion-ready .fade-in { opacity:1; transform:none; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .motion-ready .fade-in { opacity:1; transform:none; }
 .mentor-feature:hover img,.btn:hover .btn__arrow { transform:none; }
}

/* Clearer page rhythm and restrained programme layouts. */
:root { --section-py:clamp(3.25rem,5vw,4.75rem); --text-h2:clamp(1.65rem,2.2vw,2.1rem); }
h2 { font-weight:500; line-height:1.28; letter-spacing:-.025em; }
h3 { font-family:var(--font-sans); font-weight:600; font-size:1.05rem; letter-spacing:0; line-height:1.45; }
.section-header { margin-bottom:2rem; }
.hero { padding-bottom:58px; }
.hero__title { max-width:580px; }
.hero__text { max-width:480px; line-height:1.75; }
.programme-history-line { max-width:1180px; margin:0 auto; padding:19px var(--container-px); font-size:.875rem; color:var(--text-secondary); border-bottom:1px solid var(--border); }
.programme-facts__grid { gap:40px; padding-top:27px; padding-bottom:27px; }
.programme-facts strong { line-height:1.5; }
.programme-facts span { line-height:1.65; }
.page-header { padding-top:132px; padding-bottom:44px; }
.page-header h1 { max-width:850px; font-size:clamp(2.2rem,3.8vw,3.35rem); line-height:1.16; margin-bottom:18px; }
.page-header p { max-width:660px; line-height:1.7; }
.page-header p:not(.lead) { color:#d0dce4; margin-bottom:12px; }
.page-programme main > .section { background:var(--cream); border-bottom:1px solid var(--border); }
.page-programme #practical-work { color:var(--text-body); }
.page-programme #practical-work h2,.page-programme #practical-work h3 { color:var(--text-heading); }
.programme-layout { display:grid; grid-template-columns:minmax(220px, .8fr) minmax(0, 1.65fr); gap:75px; align-items:start; }
.programme-layout > h2 { margin:0; max-width:300px; }
.programme-copy { min-width:0; font-size:1rem; line-height:1.75; }
.programme-copy > p { margin:0 0 1.25rem; line-height:1.75; }
.programme-copy h3 { margin:2rem 0 .65rem; }
.programme-copy > h3:first-child { margin-top:0; }
.programme-copy > ul { margin:1rem 0; padding-left:1.2rem; }
.curriculum-row { border-top:1px solid var(--border); padding:24px 0; display:grid; grid-template-columns:minmax(140px,.75fr) minmax(0,1.6fr); gap:28px; }
.curriculum-row h3 { margin:0; font-size:.98rem; }
.curriculum-row p { margin:0 0 1rem; font-size:.95rem; line-height:1.75; }
.curriculum-row p:last-child { margin-bottom:0; }
.assignment-list { margin-top:1.6rem; }
.assignment-row { display:grid; grid-template-columns:minmax(140px,.75fr) minmax(0,1.6fr); gap:28px; padding:22px 0; border-top:1px solid var(--border); }
.assignment-row h3 { margin:0; font-size:.98rem; }
.assignment-row p { margin:0; font-size:.95rem; line-height:1.75; }
.page-programme .audience__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 50px; }
.audience__item { background:none; border:0; border-bottom:1px solid var(--border); padding:24px 0; border-radius:0; gap:0; }
.audience__item h4 { font-size:1rem; }
.format-panel { border:0; border-radius:0; padding:0; background:none; }
.format-panel__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 35px; }
.format-panel__item { padding:20px 0; }
.format-panel__label { text-transform:none; letter-spacing:0; font-size:.85rem; color:var(--text-secondary); margin-bottom:7px; }
.format-panel__value { font-family:var(--font-sans); font-size:1.05rem; line-height:1.6; }
.page-programme #format > .container > p { max-width:700px; margin-top:1.5rem; }
.page-programme #format .programme-price { max-width:700px; }
.page-programme #learn .learning-areas { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 55px; }
.learning-area { border-left:0; border-top:1px solid var(--border); padding:23px 0; }
.learning-area ul { margin:0; }
.outcomes__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.outcome { gap:0; padding:17px 0; }
.outcome p { font-size:.95rem; }
.outcome-features { max-width:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 55px; margin-top:40px; }
.next-step-feature { border-top:1px solid var(--border); padding-top:24px; }
.next-step-feature h3 { margin:0 0 13px; font-size:1.1rem; }
.next-step-feature p { font-size:.95rem; line-height:1.75; margin-bottom:16px; }
.next-step-feature .btn { font-size:.875rem; min-height:0; padding:0 0 7px; border-bottom:1px solid #a9a399; border-radius:0; }
.outcome-features .programme-price { grid-column:1 / -1; margin:0; display:grid; grid-template-columns:1fr 1.4fr; gap:16px 55px; }
.outcome-features .programme-price p { font-size:.95rem; line-height:1.75; }
.outcome-features .programme-price p:first-child { grid-row:1 / 3; }
.outcome-features > p { font-size:.9rem; margin:0; }
.solution__card { padding:24px 0; border:0; border-top:1px solid #657580; border-radius:0; }
.solution__card h3 { font-size:1.08rem; margin-bottom:14px; }
.solution__card p { font-size:.95rem; }
.compliance { border:0; border-top:1px solid var(--border); background:transparent; padding:24px 0 0; font-size:.9rem; }
.content-narrow { max-width:720px; }
.text-lg p { font-size:1rem; line-height:1.8; }
.page-about .expect-panel { background:none; border:0; border-top:1px solid var(--border); padding:25px 0; }
.page-about .expect-list__item { border:0; padding:10px 0; }
.page-apply .sidebar { position:static; }
.sidebar__panel { padding:24px; border-radius:0; box-shadow:none; }
.sidebar__fact { display:block; padding:12px 0; }
.sidebar__fact-label { display:block; margin-bottom:4px; font-size:.8rem; }
.sidebar__fact-value { display:block; text-align:left; font-size:.95rem; line-height:1.6; }
.sidebar-detail { padding:20px 0; border-top:1px solid var(--border); font-size:.875rem; line-height:1.75; }
.sidebar__extra { background:none; padding:24px 0; }
.application-process { margin-top:48px; }
.application-process .steps { margin-top:20px; }
.faq { background:none; border:0; border-bottom:1px solid var(--border); border-radius:0; }
.faq__question { font-size:1rem; padding:22px 0; }
.faq__answer-inner { padding:0 0 22px; }
.faq__answer-inner p { font-size:.95rem; line-height:1.75; }
@media(min-width:641px) { .motion-ready .fade-in { opacity:1; transform:none; transition:none; } }
@media(max-width:900px) { .programme-layout { grid-template-columns:1fr 1.6fr; gap:35px; } .format-panel__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .curriculum-row,.assignment-row { grid-template-columns:1fr; gap:10px; } }
@media(max-width:640px) {
 .section { padding:40px 0; }
 .hero { padding:110px 0 34px; }
 .hero__title { font-size:2.35rem; margin-bottom:22px; }
 .page-header { padding:110px 0 34px; }
 .page-header h1 { font-size:2.2rem; }
 .programme-layout { grid-template-columns:1fr; gap:24px; }
 .programme-layout > h2 { max-width:none; }
 .page-programme .audience__grid,.page-programme #learn .learning-areas,.outcome-features,.outcomes__grid { grid-template-columns:1fr; gap:0; }
 .outcome-features { gap:28px; }
 .outcome-features .programme-price { grid-template-columns:1fr; gap:12px; }
 .outcome-features .programme-price p:first-child { grid-row:auto; }
 .format-panel__grid { gap:0 20px; }
 .format-panel__value { font-size:.95rem; }
 .programme-copy { font-size:.95rem; }
 .sidebar__facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
 .sidebar__fact { border-bottom:1px solid var(--border); }
 .sidebar__panel { padding:20px; }
 .programme-history-line { font-size:.82rem; line-height:1.6; }
 .motion-ready .fade-in { opacity:1; transform:none; transition:none; }
}
main section[id], main h3[id], #why { scroll-margin-top:100px; }

/* Second design pass: compact lower-page composition and consistent heading space. */
.section h2 { margin-bottom:24px; }
.section h3 { margin-bottom:14px; }
.content-narrow > h2 + p, .director__content > h2 + p { margin-top:0; }
.content-narrow > h3 { margin-top:32px; }
.content-narrow > p + h2 { margin-top:40px; }
.programme-layout > h2 { margin-bottom:0; }
.programme-copy h3 { margin-top:30px; margin-bottom:14px; }
.curriculum-row h3,.assignment-row h3 { margin:0; }
.page-programme main > .cta-section { background:var(--navy); border-bottom:0; }
.cta-section h2 { color:var(--white); margin-bottom:20px; }
.cta-section p { color:#d4dde3; margin-bottom:28px; }
.cta-section__inner { max-width:650px; }
.page-about #history { background:var(--cream-warm); }
.page-about #history .content-narrow { max-width:820px; }
.page-about #history h2 { font-size:1.85rem; margin-bottom:26px; }
.page-about #history p { max-width:740px; margin-bottom:0; }
.skills-summary { display:grid; grid-template-columns:.85fr 1.65fr; gap:60px; align-items:start; }
.outcomes-heading { text-align:left; }
.outcomes-heading h2 { font-size:2rem; max-width:270px; }
.outcomes-heading .lead { font-size:.95rem; line-height:1.7; max-width:280px; margin:0; }
.skills-summary .outcomes__grid { grid-template-columns:1fr; gap:0; }
.skills-summary .outcome { padding:13px 0; }
.skills-summary .outcome:first-child { padding-top:0; }
.skills-summary .outcome p { font-size:.95rem; line-height:1.65; }
.outcome-features { margin-top:34px; gap:24px; }
.next-step-feature { background:var(--white); border:1px solid #ddd9cf; padding:27px 30px; }
.next-step-feature h3 { margin:0 0 15px; font-size:1.08rem; }
.next-step-feature p { font-size:.92rem; line-height:1.7; margin:0 0 18px; }
.next-step-feature .btn { display:inline-flex; background:none; border:0; color:var(--navy); padding:0; gap:8px; text-decoration:underline; text-underline-offset:5px; line-height:1.6; }
.programme-fees-section { background:var(--cream); border-bottom:1px solid var(--border); }
.fee-layout { display:grid; grid-template-columns:.85fr 1.65fr; gap:60px; }
.fee-layout > h2 { max-width:280px; margin:0; }
.fee-copy .programme-price { margin:0; padding:0; border:0; }
.fee-copy .programme-price p:first-child { font-size:1.05rem; line-height:1.9; margin-bottom:24px; padding-bottom:23px; border-bottom:1px solid var(--border); }
.fee-copy p { font-size:.95rem; line-height:1.75; margin-bottom:18px; }
.fee-copy > p { margin-top:18px; }
.fee-copy .compliance { margin-top:24px; padding-top:22px; }
.fee-copy .compliance p { font-size:.875rem; margin-bottom:0; }
.page-programme #who h2 { max-width:750px; }
.page-programme #who .lead { max-width:760px; font-size:1rem; }
.page-programme #format .programme-price { padding-top:25px; margin-top:25px; }
.page-programme #learn .section-header .lead { max-width:760px; }
.page-about .director__content h2 { margin-bottom:24px; }
.page-about .expect-panel h3 { margin-bottom:20px; }
.legal-content h2 { margin-top:32px; margin-bottom:18px; }
.form__section h3 { margin-bottom:12px; }
@media(max-width:900px) { .skills-summary,.fee-layout { grid-template-columns:1fr 1.6fr; gap:35px; } }
@media(max-width:640px) {
 .section h2 { margin-bottom:22px; }
 .skills-summary,.fee-layout { grid-template-columns:1fr; gap:22px; }
 .outcomes-heading h2,.outcomes-heading .lead,.fee-layout > h2 { max-width:none; }
 .outcomes-heading h2 { font-size:1.8rem; margin-bottom:14px; }
 .outcome-features { margin-top:27px; gap:18px; }
 .next-step-feature { padding:23px 22px; }
 .skills-summary .outcome p { font-size:.92rem; }
 .page-about #history h2 { font-size:1.6rem; margin-bottom:23px; }
 .programme-layout > h2 { margin-bottom:0; }
 .fee-copy .programme-price p:first-child { font-size:1rem; }
}
.section h2 { font-size:clamp(1.65rem,2.2vw,2.15rem); line-height:1.28; }
.page-about .grid-split h2 { max-width:420px; }
.page-about .expect-list { gap:8px; }
.page-about .expect-list__item p { margin:0; font-size:.95rem; line-height:1.65; }
@media(max-width:640px) { .section h2 { font-size:1.65rem; } .outcomes-heading h2 { font-size:1.8rem; } }

/* A solid mobile menu anchored below the header. */
@media (max-width: 768px) {
  .nav, .nav--scrolled {
    background: var(--cream);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .nav__mobile {
    position: absolute;
    top: 100%;
    bottom: auto;
    height: calc(100vh - 4.5rem);
    height: calc(100dvh - 4.5rem);
    background: var(--cream);
    padding: 24px var(--container-px) max(24px, env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    gap: 8px;
    border-top: 1px solid var(--border-light);
  }
  .nav__mobile .nav__link {
    color: var(--navy);
    padding: 18px 0;
    flex-shrink: 0;
  }
  .nav__mobile .nav__cta {
    margin-top: 16px;
    background: var(--navy);
    border-color: var(--navy);
    color: var(--cream);
    flex-shrink: 0;
  }
}
@media (min-width: 769px) {
  .nav__mobile--open { display: none; }
}
