:root { --ink:#102a43; --ink-dark:#071e33; --blue:#1b4d76; --gold:#e7b65f; --cream:#f8f4ec; --paper:#fffcf7; --mist:#e6eef2; --muted:#526577; --line:rgba(16,42,67,.15); --max:1200px; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; font-family:Manrope,Arial,sans-serif; color:var(--ink); background:var(--paper); line-height:1.55; } a { color:inherit; } .shell { width:min(var(--max), calc(100% - 56px)); margin:0 auto; }.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.skip-link { position:absolute; top:-48px; left:14px; padding:9px 12px; background:var(--gold); color:var(--ink-dark); z-index:30; }.skip-link:focus { top:10px; }.site-header { height:80px; position:sticky; top:0; z-index:20; background:rgba(255,252,247,.94); backdrop-filter:blur(11px); border-bottom:1px solid var(--line); }.nav-wrap { height:100%; display:flex; align-items:center; justify-content:space-between; }.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-family:Manrope,sans-serif; font-weight:800; font-size:14px; letter-spacing:-.025em; }.brand-mark { width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:#fff; font:500 10px "DM Mono",monospace; letter-spacing:-.06em; }.brand small { display:block; margin-top:-2px; font:500 8px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.1em; color:#6a7986; }.main-nav { display:flex; align-items:center; gap:28px; }.main-nav a { font-size:12px; font-weight:700; text-decoration:none; }.main-nav a:not(.nav-cta) { color:#41566a; }.nav-cta { background:var(--ink); color:#fff; padding:11px 14px; }.nav-cta span { color:var(--gold); margin-left:3px; }.menu-toggle { display:none; border:0; background:transparent; padding:6px; }.menu-toggle span:not(.sr-only) { display:block; width:22px; height:2px; background:var(--ink); margin:4px 0; }
.hero { background:radial-gradient(circle at 83% 12%, #e0ecf3 0, rgba(224,236,243,0) 25%), var(--cream); padding:77px 0 0; overflow:hidden; }.hero-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:70px; align-items:end; }.eyebrow { display:flex; align-items:center; gap:8px; margin:0 0 14px; font:500 10px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.11em; color:#4b667c; }.eyebrow span { width:7px; height:7px; border-radius:50%; background:var(--gold); }.hero h1,.section-heading h2,.approach h2,.about h2,.enquiry h2,.subject-hero h1,.subject-overview h2 { margin:0; font-size:clamp(43px,5.5vw,79px); line-height:.99; letter-spacing:-.065em; max-width:720px; }.hero h1 i,.section-heading h2 i,.approach h2 i,.about h2 i,.enquiry h2 i,.subject-hero h1 i,.subject-overview h2 i,.fit-card h2 i { font-family:"Playfair Display",Georgia,serif; font-weight:600; }.hero-lead { max-width:600px; font-size:17px; line-height:1.7; color:#486276; margin:25px 0 28px; }.hero-actions { display:flex; gap:24px; align-items:center; }.button { border:0; font:800 12px Manrope,sans-serif; display:inline-flex; align-items:center; gap:16px; padding:15px 18px; text-decoration:none; cursor:pointer; transition:transform .18s ease, background .18s ease; }.button:hover { transform:translateY(-2px); }.button-gold { background:var(--gold); color:var(--ink-dark); }.button-gold:hover { background:#f2c976; }.button span { font-size:17px; }.text-link { text-decoration:none; color:var(--ink); font-size:12px; font-weight:800; }.text-link span { color:#b77b15; margin-left:4px; font-size:16px; }.credential-row { display:flex; gap:26px; padding:31px 0 25px; margin:38px 0 0; border-top:1px solid var(--line); }.credential-row div { min-width:94px; }.credential-row dt { font:500 16px "Playfair Display",serif; color:var(--ink); }.credential-row dd { margin:2px 0 0; color:#647787; font-size:9px; line-height:1.35; }.hero-image-wrap { position:relative; max-width:455px; justify-self:end; width:100%; }.hero-photo-frame { height:572px; overflow:hidden; position:relative; background:#bfd7e5; }.hero-photo-frame:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(16,42,67,0) 58%, rgba(16,42,67,.2)); pointer-events:none; }.hero-photo-frame img { width:100%; height:100%; object-fit:cover; object-position:50% 27%; display:block; }.hero-note { position:absolute; left:-55px; bottom:45px; width:230px; padding:18px 20px; background:var(--ink); color:#fff; box-shadow:9px 9px 0 var(--gold); }.hero-note span { font:600 40px/0 "Playfair Display",serif; color:var(--gold); }.hero-note p { font:600 13px/1.45 "Playfair Display",serif; margin:8px 0 0; }
.intro-band { min-height:156px; display:flex; justify-content:space-between; align-items:center; gap:40px; border-bottom:1px solid var(--line); }.intro-band > p { max-width:475px; margin:0; font:600 29px/1.18 "Playfair Display",serif; letter-spacing:-.035em; }.intro-band i { color:#c18622; }.intro-band > div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.intro-band span { border:1px solid var(--line); padding:8px 10px; color:#587080; font:500 9px "DM Mono",monospace; letter-spacing:.06em; text-transform:uppercase; }.section-space { padding-top:112px; padding-bottom:112px; }.section-heading { display:flex; justify-content:space-between; gap:55px; align-items:end; }.section-heading h2,.approach h2,.about h2,.enquiry h2,.subject-overview h2 { font-size:clamp(38px,4.6vw,64px); max-width:750px; }.section-heading > p { max-width:320px; font-size:13px; line-height:1.7; color:var(--muted); margin:0 0 8px; }.subject-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:47px; }.subject-card { min-height:205px; display:flex; flex-direction:column; justify-content:space-between; padding:21px; background:#f1f5f6; text-decoration:none; border-top:3px solid transparent; transition:transform .2s, background .2s, border .2s; }.subject-card:hover { background:#e1edf2; transform:translateY(-3px); border-top-color:var(--gold); }.subject-category { color:#64798b; font:500 9px "DM Mono",monospace; letter-spacing:.08em; text-transform:uppercase; }.subject-card h3 { max-width:220px; margin:35px 0 14px; font-size:21px; letter-spacing:-.04em; line-height:1.15; }.subject-arrow { color:#536b7d; font-size:10px; font-weight:700; }.subject-arrow b { margin-left:3px; color:#b87e1d; font-size:16px; }.approach { background:var(--ink); color:#fdfaf1; }.approach-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:105px; }.eyebrow-light { color:#c2d4dc; }.eyebrow-light span { background:var(--gold); }.approach h2 { max-width:520px; }.approach-lead { max-width:470px; color:#b9ccd4; font-size:14px; line-height:1.7; }.approach-steps { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.2); }.approach-steps li { display:grid; grid-template-columns:52px 1fr; gap:17px; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.16); }.approach-steps span { font:500 10px "DM Mono",monospace; color:var(--gold); padding-top:3px; }.approach-steps h3 { margin:0; font-size:16px; letter-spacing:-.03em; }.approach-steps p { color:#aac0ca; font-size:12px; margin:3px 0 0; }.about { display:grid; grid-template-columns:.7fr 1.3fr; gap:85px; align-items:center; }.about-portrait { height:470px; overflow:hidden; background:#d6e2e6; }.about-portrait img { width:100%; height:100%; object-fit:cover; object-position:47% 26%; }.about-copy > p:not(.eyebrow) { max-width:610px; color:var(--muted); font-size:14px; line-height:1.8; }.achievement-list { margin-top:29px; display:grid; border-top:1px solid var(--line); }.achievement-list div { padding:11px 0; display:grid; grid-template-columns:150px 1fr; gap:12px; border-bottom:1px solid var(--line); }.achievement-list span { color:#b67817; font:500 9px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.08em; padding-top:3px; }.achievement-list p { margin:0; font-size:12px; color:#3c586d; }.faq { padding-top:0; }.faq-list { margin-top:43px; border-top:1px solid var(--line); }.faq details { border-bottom:1px solid var(--line); }.faq summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:18px; padding:19px 0; font-weight:800; font-size:16px; letter-spacing:-.02em; }.faq summary::-webkit-details-marker { display:none; }.faq summary span { color:#b47818; font-size:20px; font-weight:400; }.faq details[open] summary span { transform:rotate(45deg); }.faq details p { max-width:690px; margin:0; padding:0 30px 20px 0; color:var(--muted); font-size:13px; }.enquiry { background:#173a5c; color:#fff; }.enquiry-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:94px; }.enquiry h2 { max-width:480px; }.enquiry > div > p:not(.eyebrow) { color:#b8cddb; font-size:14px; line-height:1.7; max-width:430px; }.enquiry-form { padding:25px; background:#f8f4ec; color:var(--ink); display:grid; grid-template-columns:1fr 1fr; gap:15px; align-content:start; }.enquiry-form label { display:flex; flex-direction:column; gap:6px; font:500 9px "DM Mono",monospace; color:#49687c; text-transform:uppercase; letter-spacing:.08em; }.enquiry-form label:nth-of-type(4),.enquiry-form button,.form-status { grid-column:1 / -1; }.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; border:1px solid #c6d2d5; background:#fff; border-radius:0; color:var(--ink); font:500 13px Manrope,sans-serif; padding:10px; outline-color:var(--gold); }.enquiry-form textarea { resize:vertical; }.enquiry-form button { justify-self:start; margin-top:4px; }.form-status { margin:0; color:#647889; font-size:10px; line-height:1.45; }
.subject-hero { min-height:440px; display:flex; align-items:center; background:radial-gradient(circle at 80% 0, #d8e9f0, rgba(216,233,240,0) 33%), var(--cream); padding:67px 0 59px; }.crumb { display:inline-block; margin-bottom:46px; color:#506c80; font-size:11px; text-decoration:none; font-weight:700; }.subject-hero h1 { margin-bottom:18px; }.subject-hero > div > p:not(.eyebrow) { color:#496579; max-width:600px; font-size:16px; line-height:1.7; margin:0 0 26px; }.subject-overview { display:grid; grid-template-columns:1.2fr .8fr; gap:90px; align-items:center; }.subject-overview > div > p:not(.eyebrow) { max-width:620px; color:var(--muted); font-size:15px; line-height:1.8; }.subject-overview aside { padding:30px; background:#edf3f4; border-top:3px solid var(--gold); }.aside-label { display:block; color:#557287; font:500 9px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.09em; }.subject-overview aside p { margin:12px 0 0; font:600 19px/1.35 "Playfair Display",serif; letter-spacing:-.025em; }.topic-section { background:#f3f6f6; padding:90px 0; }.topic-grid { display:grid; grid-template-columns:repeat(5,1fr); margin-top:47px; border-top:1px solid var(--line); }.topic-grid > div { padding:18px 20px 12px 0; min-height:151px; border-right:1px solid var(--line); }.topic-grid > div + div { padding-left:20px; }.topic-grid > div:last-child { border-right:0; }.topic-grid span { font:500 10px "DM Mono",monospace; color:#b67b1e; }.topic-grid h3 { margin:36px 0 0; font-size:15px; line-height:1.3; letter-spacing:-.03em; }.fit-section { display:grid; grid-template-columns:1fr .72fr; gap:13px; }.fit-card { min-height:336px; background:var(--ink); color:#fff; padding:41px; }.fit-card h2 { font-size:clamp(31px,3.3vw,46px); line-height:1.05; letter-spacing:-.055em; max-width:620px; margin:14px 0 30px; }.text-link-light { color:#fff; }.text-link-light span { color:var(--gold); }.lesson-card { padding:41px; background:var(--cream); }.lesson-card ul { list-style:none; padding:0; margin:21px 0 0; }.lesson-card li { border-top:1px solid var(--line); padding:11px 0; color:#496578; font-size:12px; }.lesson-card li:before { content:"↳"; color:#b87d1d; margin-right:8px; }.related { padding-top:0; }.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:44px; }.site-footer { background:#071e33; color:#fff; }.footer-grid { min-height:230px; display:grid; grid-template-columns:1.3fr .55fr; column-gap:80px; align-content:center; }.brand-light { color:#fff; }.brand-light .brand-mark { background:var(--gold); color:var(--ink); }.brand-light small { color:#96adbc; }.footer-grid > div > p { max-width:360px; margin:17px 0 0; color:#a9bec9; font-size:12px; }.footer-links { display:flex; flex-direction:column; gap:10px; }.footer-links a { color:#dbe6eb; text-decoration:none; font-size:12px; font-weight:700; }.footer-note { grid-column:1 / -1; border-top:1px solid rgba(255,255,255,.14); margin:25px 0 0; padding-top:13px; color:#7891a1; font:400 9px "DM Mono",monospace; letter-spacing:.04em; }
@media (max-width:850px) { .shell { width:min(100% - 40px, var(--max)); }.main-nav { gap:15px; }.hero-grid { gap:35px; }.hero-photo-frame { height:510px; }.hero-note { left:-20px; }.subject-grid { grid-template-columns:repeat(2,1fr); }.approach-grid,.enquiry-grid { gap:56px; }.topic-grid { grid-template-columns:repeat(3,1fr); }.topic-grid > div:nth-child(3) { border-right:0; }.topic-grid > div:nth-child(n+4) { border-top:1px solid var(--line); }.topic-grid > div:nth-child(4) { padding-left:0; }.topic-grid > div:nth-child(5) { border-right:0; } }
@media (max-width:650px) { .site-header { height:68px; }.main-nav { display:none; position:absolute; top:68px; left:0; width:100%; padding:18px 20px 22px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:13px; }.main-nav.is-open { display:flex; }.main-nav .nav-cta { text-align:center; }.menu-toggle { display:block; }.hero { padding-top:45px; }.hero-grid,.about,.subject-overview,.enquiry-grid,.fit-section { grid-template-columns:1fr; }.hero h1 { font-size:51px; }.hero-image-wrap { max-width:365px; justify-self:center; margin-top:0; }.hero-photo-frame { height:438px; }.hero-note { left:-7px; bottom:22px; }.credential-row { gap:15px; }.credential-row div { min-width:0; flex:1; }.intro-band { min-height:0; display:block; padding:46px 0; }.intro-band > div { justify-content:flex-start; margin-top:26px; }.section-space { padding-top:73px; padding-bottom:73px; }.section-heading { display:block; }.section-heading > p { margin-top:20px; }.subject-grid,.related-grid { grid-template-columns:1fr; }.subject-card { min-height:156px; }.subject-card h3 { margin:20px 0; }.approach-grid { grid-template-columns:1fr; }.about { gap:35px; }.about-portrait { height:370px; }.achievement-list div { grid-template-columns:1fr; gap:4px; }.faq { padding-top:0; }.enquiry-form { grid-template-columns:1fr; }.enquiry-form label { grid-column:1 / -1!important; }.subject-hero { min-height:0; padding:47px 0 53px; }.crumb { margin-bottom:30px; }.subject-hero h1 { font-size:50px; }.subject-overview { gap:30px; }.topic-section { padding:69px 0; }.topic-grid { grid-template-columns:1fr; margin-top:33px; }.topic-grid > div,.topic-grid > div + div { min-height:0; border-right:0; border-bottom:1px solid var(--line); padding:14px 0; }.topic-grid > div:nth-child(n+4) { border-top:0; }.topic-grid h3 { margin:7px 0 0; }.fit-card,.lesson-card { padding:30px; }.footer-grid { grid-template-columns:1fr; gap:29px; padding:45px 0; }.footer-note { margin-top:0; } }

/* Small labels need to remain comfortable to read on a phone, not just desktop. */
.brand small,
.eyebrow,
.credential-row dd,
.intro-band span,
.subject-category,
.subject-arrow,
.approach-steps span,
.achievement-list span,
.enquiry-form label,
.form-status,
.aside-label,
.topic-grid span,
.footer-note {
  font-size:11px;
  line-height:1.4;
}

/* Readability refinement for credentials, notes and mobile viewing. */
.brand-mark { font-size:11px; }
.brand small,
.eyebrow,
.credential-row dd,
.intro-band span,
.subject-category,
.subject-arrow,
.approach-steps span,
.achievement-list span,
.enquiry-form label,
.form-status,
.aside-label,
.topic-grid span,
.footer-note,
.crumb { font-size:12px; line-height:1.45; }
.credential-row dt { font-size:20px; }
.credential-row dd { font-size:13px; }
.achievement-list p { font-size:14px; }
.approach-steps p,
.lesson-card li,
.footer-grid > div > p,
.footer-links a { font-size:13px; }
.hero-note { width:270px; padding:20px 22px; }
.hero-note p { font-size:16px; line-height:1.45; }
.footer-phone { color:var(--gold)!important; font-weight:800!important; margin-top:5px; }
