/* Shared visual system. Form controls, validation and eligibility are unchanged. */
:root { --green:#174c3c; --green-2:#28644f; --ink:#203c32; --muted:#607168; --line:#dce4da; --soft:#f2f5ee; }
html { scroll-padding-top:100px; }
body { background:#f7f8f3; overflow-y:auto !important; }
button, input, select, textarea { font-family:inherit; }
a, button, input, select, textarea { -webkit-tap-highlight-color:transparent; }
a:focus-visible, button:focus-visible { outline:3px solid #b88039; outline-offset:4px; }
.brand span { display:flex; }
.brand strong { font-size:17px; }
.brand small { font-size:11px; }
.topbar { height:84px; padding:0 max(5vw,22px); background:#f7f8f3f5; border-color:var(--line); }
.topbar nav { gap:26px; }
.topbar nav a { font-size:13px; }
.topbar .version-badge { display:none; }
.topbar nav .nav-apply { padding:10px 18px; border:1px solid #b7c7b7; border-radius:8px; }
body:not(.form-page) main#top { height:auto; min-height:0; overflow:visible; }
body:not(.form-page) #pathways { height:auto; min-height:650px; width:min(1200px,90%); margin:0 auto; padding:76px 0 62px; display:grid; grid-template-columns:1fr 1.05fr; gap:8%; align-items:center; text-align:left; }
.welcome-intro { position:relative; }
.welcome-intro .eyebrow { display:flex; align-items:center; gap:10px; font-size:10px; letter-spacing:1.7px; margin:0 0 30px; }
.welcome-dot { width:7px; height:7px; background:#bd8645; border-radius:50%; }
#pathways .welcome-intro h1 { font-family:Manrope,Arial,sans-serif; font-size:clamp(48px,6.2vw,82px); font-weight:600; line-height:1.06; letter-spacing:-4px; margin:0 0 26px; }
.welcome-intro h1 em { font-family:Georgia,serif; color:#68815a; font-weight:400; }
.welcome-intro > p:not(.eyebrow) { font-size:18px; line-height:1.65; color:var(--muted); max-width:350px; }
.welcome-rule { width:52px; height:2px; background:#bd8645; margin:30px 0; }
.welcome-intro > .welcome-note { font-size:14px !important; }
.welcome-location { font-size:11px; color:var(--muted); display:block; margin-top:26px; }
.welcome-links { display:flex; gap:23px; margin-top:30px; font-size:13px; font-weight:700; }
.welcome-links a { text-decoration:none; border-bottom:1px solid #99af91; padding-bottom:4px; }
.choices-heading { display:flex; justify-content:space-between; gap:16px; font-size:10px; color:var(--muted); margin-bottom:17px; }
.choices-heading > span:first-child { letter-spacing:1.3px; font-weight:700; }
body:not(.form-page) #pathways .pathway-grid { display:grid; grid-template-columns:1fr; gap:17px; margin:0 0 20px; }
body:not(.form-page) #pathways .pathway-card { position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; min-height:214px; padding:25px 26px 19px; gap:10px; border:1px solid #d8e1d3; border-radius:15px; background:#fff; box-shadow:0 8px 24px #183d2810; transition:transform .2s,box-shadow .2s; outline:none; }
body:not(.form-page) #pathways .pathway-card:hover { transform:translateY(-3px); box-shadow:0 14px 32px #183d281c; border-color:#9db194; }
body:not(.form-page) #pathways .pathway-card[aria-pressed="true"] { border-color:#35694e; background:#eef4e8; box-shadow:0 0 0 2px #35694e; }
#pathways .pathway-card:focus-visible { outline:3px solid #b88039; outline-offset:4px; }
#pathways .card-number { position:absolute; right:20px; top:18px; font-size:0; color:transparent; }
#pathways .selection-mark { display:grid; place-items:center; width:24px; height:24px; border:1px solid #bacbb5; border-radius:50%; font-size:13px; }
#pathways [aria-pressed="true"] .selection-mark { background:var(--green); color:white; }
#pathways .pathway-art { position:absolute; right:24px; top:65px; width:76px; height:72px; object-fit:contain; border-radius:0; transform:none; }
#pathways .pathway-tag { color:#697c60; font-size:9px; letter-spacing:1px; max-width:85%; }
#pathways .pathway-card strong { font:700 24px/1.3 Manrope,Arial,sans-serif; letter-spacing:-.6px; max-width:calc(100% - 65px); }
#pathways .pathway-card > span:not(.card-number):not(.pathway-tag):not(.click-wave) { font-size:13px; line-height:1.6; color:var(--muted); max-width:calc(100% - 88px); }
#pathways .pathway-card b { display:flex; align-items:center; justify-content:space-between; width:100%; padding-top:13px; margin-top:auto; border-top:1px solid var(--line); font-size:12px; }
#pathways .pathway-card b > span:last-child { background:#f0f4ea; width:26px; height:26px; display:grid; place-items:center; border-radius:50%; font-size:19px; }
.click-wave { display:none; }
#pathways .requirements-check { display:flex; flex-direction:row; align-items:center; gap:12px; margin:0; width:100%; padding:16px; border:1px solid #d5dfcf; border-radius:10px; background:#edf2e7; font-size:12px; }
#pathways .requirements-check input { flex:0 0 19px; width:19px; height:19px; margin:0; }
#pathways #chooseHint { font-size:11px; text-align:center; line-height:1.5; min-height:34px; margin:10px 0 0; }
.programme-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; padding:26px max(5vw,24px); color:#ecf2e7; background:var(--green); }
.programme-strip > div { display:flex; align-items:center; gap:16px; }
.programme-strip b { font:400 26px Georgia,serif; color:#d2deb6; }
.programme-strip strong,.programme-strip small { display:block; }
.programme-strip strong { font-size:13px; }
.programme-strip small { font-size:11px; color:#cad8cb; margin-top:3px; }
body:not(.form-page) #before { display:grid !important; position:relative; inset:auto; grid-template-columns:.8fr 1.2fr; align-items:start; gap:70px; width:min(1200px,90%); max-width:none; margin:auto; padding:76px 0; background:transparent; border:0; }
#before .section-number, #documents .section-number { font-size:11px; letter-spacing:2px; }
#before h2, #documents h2 { font:600 34px/1.2 Manrope,Arial,sans-serif; letter-spacing:-1px; margin:15px 0; }
#before > div:first-child p { display:block; font-size:15px; line-height:1.8; color:var(--muted); }
#before .info-card { padding:28px; background:white; border:1px solid var(--line); border-radius:15px; }
#before .info-card h3 { font-size:16px; margin:0 0 17px; }
#before .info-card ul { display:block; padding-left:18px; font-size:13px; line-height:1.7; margin:0; }
#before .info-card li { margin:9px 0; padding-left:5px; }
body:not(.form-page) #documents { display:block; width:min(1200px,90%); max-width:none; padding:0 0 76px; border-top:1px solid var(--line); }
#documents .section-heading { padding-top:38px; align-items:baseline; }
#documents p { font-size:14px; color:var(--muted); }
.download-grid { gap:16px; }
.download-grid a { background:white; border-color:var(--line); border-radius:12px; padding:22px; transition:transform .2s; }
.download-grid a:hover { transform:translateY(-3px); border-color:#9db194; }
.download-grid small { font-size:11px; }
footer { background:#edf1e8; border-top:1px solid var(--line); padding:36px max(5vw,22px); color:var(--muted); }
footer strong { color:var(--green); }
footer p,footer a { font-size:12px; color:var(--muted); }
body.form-page #application { width:min(1000px,92%); padding-top:32px; }
.form-hero { padding:34px; background:linear-gradient(115deg,#174c3c,#366650); border-radius:16px; box-shadow:none; }
.form-hero h2 { font-family:Manrope,Arial,sans-serif; font-size:32px; letter-spacing:-.8px; }
.form-hero p { font-size:14px; }
fieldset { min-width:0; background:white; border-color:var(--line); border-radius:14px; padding:30px; box-shadow:0 4px 16px #193c2804; }
legend { font-family:Manrope,Arial,sans-serif; font-size:17px; }
input,select,textarea { min-width:0; }
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea { background:#fdfefb; }
input[type=file] { font-size:12px; }
input::file-selector-button { background:#edf2e7; border:0; padding:9px 11px; border-radius:5px; color:var(--green); margin-right:10px; }
input[type=checkbox],input[type=radio] { accent-color:var(--green); }
.declarations label { font-size:13px; line-height:1.65; }
.signature-field canvas { background:#fbfcf8; }
.submit-area { padding:25px; background:#edf2e7; border-radius:14px; }
.submit-area p { color:var(--muted); font-size:13px; }
.submit-area button { color:#fff; flex-shrink:0; }
.button,.submit-area button,.modal-confirm { background:var(--green); border-radius:8px; }
.button:hover,.submit-area button:hover,.modal-confirm:hover { background:#28644f; }
.requirements-modal { max-height:85svh; overflow:auto; border-radius:16px; }
.message-card { background:#fff; margin:7vh auto; border-top:5px solid var(--green); padding:42px; }
.message-card h1 { font:700 32px/1.15 Manrope,Arial,sans-serif; letter-spacing:-1px; }
.message-card p { color:var(--muted); }
.reference { overflow-wrap:anywhere; font-size:13px; }
.success-actions .button { min-width:0; font-size:13px; }
.message-kicker { font-size:10px; letter-spacing:2px; font-weight:700; color:var(--green); }
@media(max-width:900px) {
 body:not(.form-page) #pathways { gap:5%; }
 #pathways .welcome-intro h1 { font-size:58px; }
 #pathways .pathway-card strong { font-size:20px; }
 body:not(.form-page) #before { gap:35px; }
 .programme-strip { gap:18px; }
}
@media(max-width:700px) {
 .topbar { height:72px; padding:0 5%; }
 .topbar nav a { display:none !important; }
 .topbar nav .nav-apply { display:block !important; font-size:11px; padding:8px 10px; }
 .brand strong { font-size:14px; }
 .brand img { width:38px; height:38px; }
 body:not(.form-page) #pathways { grid-template-columns:1fr; padding:38px 0; gap:35px; }
 #pathways .welcome-intro h1 { font-size:54px; letter-spacing:-2.6px; margin-bottom:18px; }
 .welcome-intro .eyebrow { margin-bottom:20px; font-size:9px; }
 .welcome-intro > p:not(.eyebrow) { font-size:16px; }
 .welcome-rule,.welcome-note,.welcome-location { display:none; }
 .welcome-links { margin-top:20px; font-size:12px; }
 .choices-heading > span:last-child { font-size:9px; }
 body:not(.form-page) #pathways .pathway-card { min-height:208px; padding:22px; }
 #pathways .pathway-art { width:65px; right:20px; }
 #pathways .pathway-tag { font-size:8px; }
 #pathways .pathway-card strong { font-size:21px; }
 #pathways .pathway-card > span:not(.card-number):not(.pathway-tag):not(.click-wave) { max-width:calc(100% - 72px); font-size:12px; }
 .programme-strip { grid-template-columns:1fr; padding:25px 5%; gap:20px; }
 .programme-strip b { width:38px; }
 body:not(.form-page) #before { grid-template-columns:1fr; gap:22px; padding:42px 0; }
 #before h2,#documents h2 { font-size:29px; }
 body:not(.form-page) #documents { padding-bottom:42px; }
 .download-grid { grid-template-columns:1fr; }
 #documents .section-heading { display:block; }
 body.form-page #application { width:100%; }
 .form-hero h2 { font-size:26px; }
 .message-card { padding:28px 22px; margin:24px auto; }
 .message-card h1 { font-size:28px; }
 .submit-area { padding:20px; }
 .submit-area button { width:100%; font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto} *,*::before,*::after {transition:none !important;animation:none !important;} }
