/* Global Variables */
:root {--navy:#071b2e; --blue:#0d3154; --gold:#bd9132; --gold-light:#dbc176; --cream:#f4f0e7; --paper:#faf9f6; --line:#ddd8ce; --ink:#1e252b; --muted:#606a72; --white:#fff; --serif:Georgia, "Times New Roman", serif; --sans:Arial, Helvetica, sans-serif; --wrap:1220px}

/* Global Reset and Base Styles */
* {box-sizing:border-box}
html {scroll-behavior:smooth}
body {margin:0; background:#fff; color:var(--ink); font-family:var(--sans); line-height:1.65}
img {max-width:100%; height:auto}
a {color:inherit}
.wrap {width:min(calc(100% - 48px), var(--wrap)); margin-inline:auto}
.skip-link {position:absolute; left:-9999px; top:8px; z-index:1000; background:#fff; padding:10px}
.skip-link:focus {left:8px}

/* Header and Navigation */
.topbar {background:var(--navy); color:#dce2e7; font-size:12px}
.topbar-inner {min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:20px}
.topbar nav {display:flex; gap:22px}
.topbar a {text-decoration:none}
.top-apply {color:var(--gold-light); font-weight:700}
.site-header {background:#fff}
.masthead {min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:30px}
.brand {display:inline-flex; align-items:center; gap:15px; text-decoration:none; color:var(--navy)}
.brand img {width:70px; height:70px; object-fit:contain}
.brand span {display:flex; flex-direction:column; line-height:.88}
.brand strong {font-family:var(--serif); font-size:34px; font-weight:400; letter-spacing:.04em}
.brand small {margin-top:8px; text-align:right; font-size:13px; text-transform:uppercase; letter-spacing:.38em}
.header-actions {display:flex; align-items:center; gap:14px;}
.header-login {font-size:14px; font-weight:600; color:var(--navy); text-decoration:none; margin-right:10px;}
.header-login:hover {text-decoration:underline;}
.menu-toggle {display:none; align-items:center; gap:9px; border:1px solid var(--line); background:#fff; padding:10px 12px}
.menu-lines {display:grid; gap:4px}
.menu-lines i {display:block; width:20px; height:2px; background:var(--navy)}
.main-nav {background:var(--paper); border-top:1px solid #ece8df; border-bottom:3px solid var(--gold)}
.nav-row {min-height:52px; display:flex; align-items:center; gap:34px}
.nav-row a {position:relative; text-decoration:none; color:var(--navy); font-size:13px; font-weight:700}
.nav-row a:hover, .nav-row a.active {color:#8b671b}
.nav-row a.active:after {content:""; position:absolute; left:0; right:0; bottom:-17px; height:3px; background:var(--gold)}


/* Shared Typography and Components */
h1, h2, h3 {font-family:var(--serif); font-weight:400; line-height:1.1; color:var(--navy); margin-top:0}
.eyebrow, .kicker {margin:0 0 13px; color:#9a711c; text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:700}
.kicker.light {color:var(--gold-light)}
.lead {font-family:var(--serif); font-size:23px; line-height:1.45; color:var(--blue)}
.text-link {color:var(--blue); font-weight:700; text-underline-offset:4px}
.actions {display:flex; gap:12px; flex-wrap:wrap; margin-top:31px}
.btn {display:inline-flex; min-height:47px; align-items:center; justify-content:center; padding:11px 21px; border:1px solid transparent; border-radius:0; text-decoration:none; font:700 13px var(--sans); cursor:pointer}
.btn-gold {background:var(--gold); color:var(--navy)}
.btn-navy {background:var(--navy); color:#fff}
.btn-outline {border-color:rgba(255,255,255,.55); color:#fff}

/* Home Page */
.home-hero {position:relative; overflow:hidden; background:linear-gradient(120deg,#061726 0%,#0a2947 66%,#123d63 100%); color:#fff; border-bottom:4px solid var(--gold)}
.home-hero:before {content:""; position:absolute; inset:0; background:radial-gradient(circle at 82% 34%,rgba(219,193,118,.14),transparent 23%)}
.home-hero-layout {position:relative; z-index:1; min-height:620px; padding:86px 0; display:grid; grid-template-columns:minmax(0,1.35fr) 330px; gap:90px; align-items:center}
.home-hero-content {max-width:850px}
.home-hero h1 {max-width:850px; margin:0 0 25px; color:#fff; font-size:clamp(55px,6vw,88px); letter-spacing:-.04em}
.home-hero-lead {max-width:750px; margin:0; color:#d7e1e8; font-size:20px; line-height:1.65}
.home-hero-actions {display:flex; gap:13px; flex-wrap:wrap; margin-top:36px}
.home-hero-panel {padding:42px 34px; border:1px solid rgba(255,255,255,.24); background:rgba(255,255,255,.055); text-align:center}
.home-hero-panel img {width:180px; margin-bottom:23px; opacity:.92; filter:drop-shadow(0 12px 20px rgba(0,0,0,.25))}
.home-hero-panel p {margin:0; color:#e2e8ec; font-family:var(--serif); font-size:20px; line-height:1.45}

.home-course-search {position:relative; z-index:2; margin-top:-38px}
.home-search-form {display:grid; grid-template-columns:280px minmax(0,1fr) auto; gap:34px; align-items:end; padding:31px 34px; background:#fff; border-top:4px solid var(--gold); box-shadow:0 18px 48px rgba(7,27,46,.14)}
.home-search-heading h2 {margin:0; font-size:34px}
.home-search-field label {display:block; margin-bottom:8px; color:var(--navy); font-size:12px; font-weight:700}
.home-search-field>div {display:grid; grid-template-columns:1fr auto}
.home-search-field input {width:100%; min-height:52px; padding:13px 15px; border:1px solid #bdb7ac; border-right:0; font:inherit}
.home-search-directory-link {display:flex; align-items:center; gap:12px; min-height:52px; color:var(--blue); font-weight:700; text-decoration:none; white-space:nowrap}
.home-search-directory-link span {font-size:20px}

.home-introduction {padding:120px 0 105px}
.home-introduction-layout {display:grid; grid-template-columns:.92fr 1.08fr; gap:100px; align-items:start}
.home-introduction h2 {max-width:540px; margin:0; font-size:clamp(42px,4.6vw,64px)}
.home-introduction-copy .lead {margin-top:0}
.home-introduction-copy p:not(.lead) {max-width:720px}

.home-latest-courses {padding:100px 0; background:var(--cream);}
.home-latest-courses .home-section-heading {display:flex; justify-content:space-between; align-items:flex-end; gap:60px; margin-bottom:50px;}
.home-latest-courses .home-section-heading > div {max-width:820px;}
.home-latest-courses .home-section-heading h2 {margin:10px 0 18px; font-size:clamp(42px,4vw,60px);}
.home-latest-courses .home-section-heading p:last-child {margin:0; color:var(--muted); font-size:18px; line-height:1.75;}
.latest-course-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px;}
.latest-course-card {display:flex; flex-direction:column; height:100%; padding:34px; background:#fff; border-top:4px solid var(--gold); transition:.25s ease;}
.latest-course-card:hover {transform:translateY(-5px); box-shadow:0 20px 40px rgba(0,0,0,.08);}
.latest-course-badge {align-self:flex-start; margin-bottom:24px; padding:7px 14px; background:var(--gold); color:#fff; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;}
.latest-course-card h3 {margin:0 0 14px; font-size:30px; line-height:1.25;}
.latest-course-card h3 a {color:var(--navy); text-decoration:none;}
.latest-course-card h3 a:hover {text-decoration:underline;}
.latest-course-discipline {margin:0 0 18px; color:var(--blue); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;}
.latest-course-summary {flex:1; margin:0; color:var(--muted); line-height:1.75;}
.latest-course-footer {display:flex; justify-content:space-between; align-items:center; margin-top:30px; padding-top:22px; border-top:1px solid #ddd;}
.latest-course-footer span {color:var(--muted); font-size:14px;}
.latest-course-footer a {color:var(--navy); font-weight:700; text-decoration:none;}
.latest-course-footer a:hover {text-decoration:underline;}





.home-study {padding:105px 0; background:var(--navy); color:#d3dde4}
.home-study-layout {display:grid; grid-template-columns:.82fr 1.18fr; gap:90px; align-items:start}
.home-study-introduction h2 {margin-bottom:24px; color:#fff; font-size:clamp(42px,4.6vw,62px)}
.home-study-introduction>p:not(.kicker) {max-width:520px; margin-bottom:31px; font-size:17px}
.home-study-links {display:grid; border-top:1px solid rgba(255,255,255,.2)}
.home-study-links a {display:grid; grid-template-columns:minmax(0,1fr) 28px; gap:24px; align-items:center; min-height:112px; padding:22px 4px; border-bottom:1px solid rgba(255,255,255,.2); text-decoration:none}
.home-study-links strong {display:block; margin-bottom:5px; color:#fff; font-family:var(--serif); font-size:26px; font-weight:400}
.home-study-links small {display:block; color:#aebbc5; font-size:13px}
.home-study-links b {color:var(--gold-light); font-size:22px}

.home-values {padding:105px 0}
.home-values-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.home-values-grid article {min-height:280px; padding:35px 31px; border-top:4px solid var(--gold); background:#f5f3ee}
.home-values-grid h3 {margin-bottom:18px; font-size:34px}
.home-values-grid p {margin:0; color:var(--muted)}

.home-community {padding:100px 0; background:#f7f5f0}
.home-community-layout {display:grid; grid-template-columns:1.05fr .95fr; gap:85px; align-items:center}
.home-community-image {min-height:510px; background:linear-gradient(135deg,#c7c0b4 0%,#8795a0 45%,#193852 100%); border-bottom:8px solid var(--gold)}
.home-community-content h2 {font-size:clamp(42px,4.4vw,60px)}
.home-community-content .lead {margin-top:25px}
.home-community-links {display:flex; flex-direction:column; align-items:flex-start; gap:12px; margin-top:28px}

.home-admissions {padding:82px 0; background:#0b2a48; color:#d5dfe6}
.home-admissions-layout {display:flex; justify-content:space-between; align-items:center; gap:60px}
.home-admissions h2 {margin:0 0 14px; color:#fff; font-size:clamp(40px,4.3vw,58px)}
.home-admissions p:not(.kicker) {max-width:720px; margin:0; font-size:17px}
.home-admissions-actions {display:flex; gap:13px; flex-wrap:wrap; flex:0 0 auto}







/* Shared Internal Page Banner */
.page-banner {padding:65px 0; background:var(--navy); color:#fff}
.page-banner h1 {max-width:950px; margin-bottom:13px; color:#fff; font-size:clamp(42px,5vw,68px)}
.page-banner p:not(.eyebrow) {max-width:760px; margin:0; color:#d7e0e7; font-size:18px}

/* Standard Content Pages */
.content-layout {display:grid; grid-template-columns:240px 1fr; gap:80px; align-items:start}
.content-layout aside {position:sticky; top:20px; border-top:3px solid var(--gold); padding-top:20px}
.content-layout aside nav {display:grid}
.content-layout aside a {padding:10px 0; border-bottom:1px solid var(--line); text-decoration:none; font-size:13px; font-weight:700; color:var(--blue)}
.content-layout article {max-width:820px}
.content-layout article>.lead {margin-top:0}
.prose-section {padding:28px 0; border-top:1px solid var(--line)}
.prose-section h2 {font-size:31px; margin-bottom:10px}
.prose-section p {margin:0}

/* Footer */
.footer {padding:58px 0 20px; background:#061626; color:#c8d1d8}
.footer-main {display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr; gap:48px}
.footer-brand {display:grid; grid-template-columns:82px 1fr; gap:20px}
.footer-brand img {width:82px}
.footer h2 {margin-bottom:8px; color:#fff; font-size:27px}
.footer h3 {font:700 11px var(--sans); text-transform:uppercase; letter-spacing:.13em; color:#fff}
.footer a, .footer p {display:block; margin:0 0 8px; text-decoration:none; font-size:13px}
.footer-bottom {display:flex; justify-content:space-between; margin-top:42px; padding-top:17px; border-top:1px solid rgba(255,255,255,.15); font-size:12px}

/* Course Directory Page */
.course-directory-banner p:last-child {max-width:760px}
.course-directory {padding:72px 0 100px; background:#f4f2ed}
.course-search-panel {padding:28px 30px; background:#fff; border-top:4px solid var(--gold); box-shadow:0 10px 30px rgba(7,27,46,.07)}
.course-search-panel>label {display:block; margin-bottom:10px; color:var(--navy); font-family:var(--serif); font-size:27px}
.course-search-control {display:grid; grid-template-columns:1fr auto}
.course-search-control input {min-height:54px; width:100%; padding:13px 15px; border:1px solid #bdb7ac; border-right:0; font:inherit}
.course-search-control button {min-width:86px; border:0; background:var(--navy); color:#fff; font-weight:700; cursor:pointer}
.course-directory-layout {display:grid; grid-template-columns:300px minmax(0,1fr); gap:32px; margin-top:32px; align-items:start}
.course-filters {background:#fff; border:1px solid #ddd8ce}
.course-filter-header {display:flex; align-items:center; justify-content:space-between; padding:22px 23px; border-bottom:1px solid #ddd8ce}
.course-filter-header h2 {margin:0; font-size:27px}
.course-filter-header button {border:0; background:transparent; color:var(--blue); font-weight:700; cursor:pointer}
.course-filters fieldset {margin:0; padding:22px 23px 18px; border:0; border-bottom:1px solid #ddd8ce}
.course-filters fieldset:last-child {border-bottom:0}
.course-filters legend {width:100%; margin-bottom:13px; color:var(--navy); font-family:var(--serif); font-size:21px}
.course-filters label {display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap:10px; align-items:start; margin:0 0 11px; cursor:pointer}
.course-filters input {width:16px; height:16px; margin-top:3px; accent-color:var(--navy)}
.course-filters label span {font-size:14px; line-height:1.45}
.course-filters label small {min-width:25px; padding:1px 7px; background:#eeeae2; color:var(--muted); text-align:center; font-size:11px}
.course-results-header {display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:15px}
.course-results-header h2 {margin:0; font-size:32px}
.course-results-header>span {color:var(--muted); font-size:13px}
.course-results-list {display:grid; gap:14px}
.course-result {display:grid; grid-template-columns:minmax(0,1fr) 42px; gap:25px; align-items:center; padding:27px 28px; background:#fff; border-left:5px solid #b3ada3; transition:border-left-color .18s ease, box-shadow .18s ease}
.course-result:hover {border-left-color:var(--gold); box-shadow:0 8px 25px rgba(7,27,46,.07)}
.course-result-subject {margin:0 0 6px; color:#98701f; text-transform:uppercase; letter-spacing:.1em; font-size:10px; font-weight:700}
.course-result h3 {margin:0 0 9px; font-size:27px}
.course-result h3 a {text-decoration:none}
.course-result>div>p:not(.course-result-subject) {max-width:820px; margin:0; color:var(--muted)}
.course-result dl {display:flex; flex-wrap:wrap; gap:10px 28px; margin:18px 0 0}
.course-result dl div {display:flex; gap:6px}
.course-result dt {font-weight:700}
.course-result dd {margin:0}
.course-result-link {display:flex; width:38px; height:38px; align-items:center; justify-content:center; border:1px solid #c9c3b8; color:var(--navy); font-size:20px; font-weight:700; text-decoration:none}
.course-loading,.course-empty {margin-top:14px; padding:25px; background:#fff; border-left:5px solid var(--gold)}
.course-empty h3 {margin:0 0 7px; font-size:25px}
.course-empty p {margin:0}
.course-detail-page {padding:80px 0 100px}
.course-detail-layout {display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:70px; align-items:start}
.course-detail-meta {color:#98701f; text-transform:uppercase; letter-spacing:.08em; font-size:11px; font-weight:700}
.course-detail-meta span {margin:0 8px}
.course-detail-notice {margin-top:38px; padding:28px; background:var(--cream); border-left:5px solid var(--gold)}
.course-detail-notice h2 {font-size:30px}
.course-detail-layout aside {display:grid; gap:17px}
.course-back-link {color:var(--blue); font-weight:700; text-align:center}




/* Contact Page */
.contact-hero {background:var(--navy); color:#fff; border-bottom:4px solid var(--gold)}
.contact-hero-inner {min-height:360px; padding:72px 0; display:flex; align-items:flex-end; justify-content:space-between; gap:70px}
.contact-hero-copy {max-width:790px}
.contact-hero h1 {margin:0 0 20px; color:#fff; font-size:clamp(52px,6vw,82px); letter-spacing:-.035em}
.contact-hero-copy>p:last-child {max-width:720px; margin:0; color:#d5dfe6; font-size:19px; line-height:1.65}
.contact-hero-actions {display:flex; flex-direction:column; align-items:stretch; gap:12px; min-width:245px}
.contact-hero-actions .btn {width:100%}

.contact-page {padding:94px 0 110px; background:#f7f5f0}
.contact-introduction {display:grid; grid-template-columns:170px minmax(0,560px) minmax(280px,1fr); gap:36px; align-items:start; margin-bottom:58px}
.contact-introduction .kicker {padding-top:11px}
.contact-introduction h2 {margin:0; font-size:clamp(40px,4vw,58px)}
.contact-introduction>p:last-child {margin:8px 0 0; color:var(--muted); font-size:17px}

.contact-layout {display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.92fr); gap:48px; align-items:start}

.contact-resources {background:#fff; border:1px solid #ded9cf}
.contact-resources-heading {padding:36px 38px 29px; border-top:4px solid var(--gold); border-bottom:1px solid #e4dfd6}
.contact-resources-heading h2 {margin:0 0 12px; font-size:38px}
.contact-resources-heading p:last-child {margin:0; color:var(--muted)}

.contact-resource-list {display:grid; gap:12px; padding:22px; background:#efede8}
.contact-resource-list a {display:grid; grid-template-columns:minmax(0,1fr) 28px; gap:22px; align-items:center; min-height:96px; padding:20px 22px; border:1px solid #d7d2c9; border-left:5px solid #aaa398; background:#f8f7f4; text-decoration:none; transition:background .18s ease,border-left-color .18s ease}
.contact-resource-list a:hover {background:#fff; border-left-color:var(--gold)}
.contact-resource-copy {display:block; min-width:0}
.contact-resource-copy strong {display:block; margin:0 0 7px; color:var(--navy); font-family:var(--serif); font-size:24px; font-weight:400; line-height:1.2}
.contact-resource-copy small {display:block; color:var(--muted); font-size:13px; line-height:1.55}
.contact-resource-arrow {display:flex; width:28px; height:28px; align-items:center; justify-content:center; color:var(--navy); font-family:Arial,Helvetica,sans-serif; font-size:20px; font-weight:700; line-height:1}

.online-enquiry {min-width:0}
.enquiry-disclosure {background:#fff; border:1px solid #ded9cf; box-shadow:0 22px 55px rgba(7,27,46,.09)}
.enquiry-disclosure>summary {display:flex; min-height:132px; align-items:center; justify-content:space-between; gap:28px; padding:30px 34px; border-top:4px solid var(--gold); cursor:pointer; list-style:none}
.enquiry-disclosure>summary::-webkit-details-marker {display:none}
.enquiry-disclosure>summary span:first-child {display:block}
.enquiry-disclosure>summary small {display:block; margin-bottom:7px; color:#98701f; text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:700}
.enquiry-disclosure>summary strong {display:block; color:var(--navy); font-family:var(--serif); font-size:31px; font-weight:400; line-height:1.15}
.enquiry-disclosure-action {flex:0 0 auto; padding:10px 14px; border:1px solid var(--navy); color:var(--navy); font-size:12px; font-weight:700}
.enquiry-disclosure[open]>summary {border-bottom:1px solid #e4dfd6}
.enquiry-disclosure[open] .enquiry-disclosure-action {background:var(--navy); color:#fff; font-size:0}
.enquiry-disclosure[open] .enquiry-disclosure-action:after {content:"Close form"; font-size:12px}

.enquiry-panel {background:#fff}
.enquiry-panel-heading {padding:36px 38px 27px; border-bottom:1px solid #e4dfd6}
.enquiry-panel-heading h2 {margin:0 0 10px; font-size:38px}
.enquiry-panel-heading p:last-child {margin:0; color:var(--muted); font-size:14px}
.contact-form {padding:34px 38px 40px; background:#fff}
.form-grid {display:grid; grid-template-columns:1fr 1fr; gap:20px}
.contact-form .field {margin-bottom:22px}
.contact-form .field label {display:block; margin-bottom:8px; color:var(--navy); font-size:13px; font-weight:700}
.field-label-row {display:flex; align-items:center; justify-content:space-between; gap:18px}
.field-label-row span {color:var(--muted); font-size:11px}
.contact-form input,.contact-form select,.contact-form textarea {width:100%; border:1px solid #bfb8ac; border-radius:0; background:#fff; padding:13px 14px; color:var(--ink); font:inherit; transition:border-color .18s ease,box-shadow .18s ease}
.contact-form input,.contact-form select {min-height:53px}
.contact-form textarea {min-height:235px; resize:vertical}
.contact-form input:hover,.contact-form select:hover,.contact-form textarea:hover {border-color:#8d877d}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {outline:0; border-color:var(--blue); box-shadow:0 0 0 3px rgba(13,49,84,.12)}
.form-submit-row {display:flex; align-items:center; justify-content:space-between; gap:26px; margin-top:7px; padding-top:25px; border-top:1px solid #e4dfd6}
.form-submit-row p {max-width:430px; margin:0; color:var(--muted); font-size:12px}
.form-submit-row .btn {min-width:150px}
.notice,.form-status,.form-errors {margin:0 0 27px; padding:18px 20px; background:var(--cream); border-left:4px solid var(--gold)}
.form-errors {background:#fff1f1; border-left-color:#9b2a2a}
.form-errors ul {margin:8px 0 0; padding-left:20px}
.website-field {display:none!important}

.enquiry-success {padding:48px 42px; background:#fff; border-top:4px solid var(--gold); box-shadow:0 22px 55px rgba(7,27,46,.09)}
.enquiry-success h2 {margin-bottom:17px; font-size:40px}
.enquiry-success p:not(.kicker) {margin:0 0 29px; color:var(--muted); font-size:17px}
.success-actions {display:flex; align-items:center; gap:25px; flex-wrap:wrap}
.enquiry-success .btn {width:auto}







/* Shared Responsive Styles */
