/* Shared public foundation, derived from the approved homepage and UK page. */
.ve-public-site { --ve-ink:#071a3d; --ve-muted:#566078; --ve-accent:#ac1740; --ve-action:#e02454; --ve-blush:#fff8fb; --ve-surface:#f7f9fc; --ve-border:#e3e6ed; margin:0; color:var(--ve-ink); font-family:"Mulish",sans-serif; line-height:1.7; font-size:16px; background:#fff; }
.ve-public-site *, .ve-public-site *::before,.ve-public-site *::after { box-sizing:border-box; }
.ve-public-site [hidden] { display:none!important; }
.ve-public-site :is(button,input,select,textarea) { font:inherit; }
.ve-public-site :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #ac1740; outline-offset:4px; }
.ve-public-site img { max-width:100%; }
.ve-public-site :is(h1,h2,h3,p,li,dd,a) { overflow-wrap:anywhere; }
.ve-public-site button { cursor:pointer; }
.ve-public-site button:disabled { cursor:wait; }
.ve-document-layout { display:grid; grid-template-columns:minmax(0,8fr) minmax(220px,3fr); gap:64px; align-items:start; }
.ve-prose { min-width:0; max-width:850px; }
.ve-public-site .ve-prose h2 { margin:48px 0 20px; font-size:clamp(25px,2.5vw,32px); line-height:1.3; }
.ve-public-site .ve-prose h2:first-child { margin-top:0; }
.ve-prose h3 { margin:32px 0 14px; font:800 20px/1.4 "Mulish",sans-serif; color:#071a3d; }
.ve-prose :is(p,li) { font-size:15px; line-height:1.9; color:#566078; }
.ve-prose p { margin:0 0 20px; }
.ve-prose ul,.ve-prose ol { margin:20px 0 28px; padding-left:24px; }
.ve-prose li { padding-left:4px; margin:0 0 12px; }
.ve-prose a { color:#ac1740; text-decoration:underline; text-underline-offset:3px; }
.ve-prose :is(h2,h3) { scroll-margin-top:24px; }
.ve-prose .ve-services-faqs { margin:24px 0 40px; }
.ve-document-aside { padding:24px; border-radius:16px; background:#f7f9fc; }
.ve-document-aside nav+nav { border-top:1px solid #e3e6ed; padding-top:24px; margin-top:24px; }
.ve-public-site .ve-document-aside h2 { font:800 17px/1.4 "Mulish",sans-serif; margin:0 0 12px; }
.ve-document-aside ul { padding:0; margin:0; list-style:none; }
.ve-document-aside a { display:flex; align-items:center; min-height:44px; color:#37465c; font-size:13px; text-decoration:none; }
.ve-document-aside a:hover { color:#ac1740; text-decoration:underline; }
.ve-info { padding:22px 24px; margin:24px 0; border-radius:12px; background:#f7f9fc; color:#37465c; font-size:14px; line-height:1.8; }
.ve-info p:last-child { margin-bottom:0; }
.ve-public-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; margin:0; list-style:none; }
.ve-public-card { min-width:0; padding:28px; border:1px solid #e3e6ed; border-radius:16px; background:#fff; }
.ve-public-card h2,.ve-public-card h3 { font:800 21px/1.4 "Mulish",sans-serif; margin:0 0 12px; color:#071a3d; }
.ve-public-card p { font-size:14px; }
.ve-public-card>a { display:inline-flex; min-height:44px; align-items:center; color:#ac1740; font-weight:800; font-size:14px; }
.ve-site-footer { background:#071a3d; color:#fff; padding:60px 0 20px; font-family:"Mulish",sans-serif; }
.ve-footer-top { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,3fr); gap:48px; }
.ve-footer-brand img { width:180px; height:auto; margin-bottom:20px; }
.ve-footer-brand p { color:#d5deeb; font-size:13px; line-height:1.9; max-width:260px; }
.ve-footer-brand a { display:inline-flex; align-items:center; min-height:44px; color:#e4e9f2; font-size:13px; text-decoration:none; }
.ve-footer-brand .ve-footer-social { display:flex; gap:16px; flex-wrap:wrap; }
.ve-footer-groups { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; }
.ve-site-footer h2 { font:800 14px/1.4 "Mulish",sans-serif; color:#fff; margin:0 0 16px; }
.ve-site-footer ul { padding:0; margin:0; list-style:none; }
.ve-footer-groups a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; line-height:1.6; color:#d5deeb; text-decoration:none; }
.ve-site-footer a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.ve-footer-bottom { display:flex; gap:20px; justify-content:space-between; border-top:1px solid #ffffff20; margin-top:40px; padding-top:20px; color:#c0cada; font-size:12px; }
.ve-footer-bottom a { color:inherit; }
.ve-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.ve-form-wide { grid-column:1/-1; }
.ve-form-step { border:0; padding:0; margin:0 0 28px; min-width:0; }
.ve-form-step legend { width:100%; color:#071a3d; font-size:20px; font-weight:800; margin-bottom:20px; }
.ve-form-step summary { min-height:48px; display:flex; align-items:center; padding:12px 0; font-weight:800; cursor:pointer; }
.ve-form-step small { display:block; color:#566078; font-size:13px; margin-bottom:16px; }
.ve-course-choices { max-height:300px; overflow:auto; }
.ve-course-choices label { display:flex; align-items:flex-start; gap:12px; padding:12px; min-height:44px; cursor:pointer; margin:0; font-size:13px; }
.ve-course-choices input { width:18px; height:18px; margin-top:3px; flex-shrink:0; accent-color:#ac1740; }
.ve-course-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 28px; margin:24px 0; }
.ve-course-facts>div { min-width:0; }
.ve-course-facts dt { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.7px; color:#566078; }
.ve-course-facts dd { margin:6px 0 0; font-size:14px; line-height:1.7; color:#071a3d; }
.ve-compare-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:32px; }
.ve-native-tabs { display:flex; flex-wrap:wrap; gap:16px; margin:0 0 24px; }
.ve-native-tabs a { display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; font-size:14px; font-weight:800; color:#071a3d; border-radius:8px; background:#f7f9fc; text-decoration:none; }
.ve-native-tabs a[aria-current] { color:#ac1740; background:#fff0f5; }
.ve-finder-filters { display:grid; grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr)); gap:20px; align-items:end; }
.ve-finder-filters .ve-enquiry__field { margin:0; }
.ve-finder-panel { border:1px solid #e3e6ed; border-radius:16px; padding:28px; margin-bottom:36px; }
.ve-finder-results { display:grid; grid-template-columns:260px minmax(0,1fr); gap:32px; align-items:start; }
.ve-finder-refine { padding:24px; border-radius:16px; background:#f7f9fc; }
.ve-finder-refine summary { min-height:44px; font-weight:800; cursor:pointer; color:#071a3d; }
.ve-finder-refine form { margin-top:24px; }
.ve-finder-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.ve-finder-cards .ve-course-facts { gap:16px; }
.ve-finder-cards h3 { font-size:18px; }
.ve-finder-cards .ve-services-actions { gap:12px; }
.ve-finder-cards .ve-services-text-link { font-size:12px; }
.ve-finder-cards .ve-services-button { padding:10px 16px; font-size:12px; }
.ve-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; margin-top:32px; }
.ve-pagination a,.ve-pagination span { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 16px; color:#071a3d; border-radius:8px; font-size:14px; background:#f7f9fc; }
.ve-pagination a:hover { color:#ac1740; }
.ve-empty { padding:32px; border-radius:16px; background:#f7f9fc; }
.ve-empty h2 { font-size:24px!important; }
.ve-sitemap-group { margin-bottom:36px; }
.ve-sitemap-group ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 24px; list-style:none; padding:0; }
.ve-sitemap-group a { display:flex; align-items:center; min-height:44px; font-size:14px; color:#071a3d; }
@media (max-width:1199px) { .ve-footer-top { grid-template-columns:minmax(0,1fr); } .ve-footer-brand { display:flex; flex-wrap:wrap; align-items:start; gap:24px; } .ve-finder-cards { grid-template-columns:minmax(0,1fr); } }
@media (max-width:1023px) { .ve-document-layout { grid-template-columns:minmax(0,1fr); gap:32px; } .ve-document-aside { order:-1; } .ve-document-aside nav[aria-label="On this page"] ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; } .ve-document-aside nav:not([aria-label="On this page"]) { display:none; } .ve-footer-groups { grid-template-columns:repeat(3,minmax(0,1fr)); } .ve-public-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .ve-finder-results { grid-template-columns:minmax(0,1fr); } .ve-finder-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:639px) { .ve-footer-groups,.ve-form-grid,.ve-finder-filters,.ve-finder-cards,.ve-compare-grid,.ve-public-grid,.ve-sitemap-group ul { grid-template-columns:minmax(0,1fr); } .ve-footer-groups { grid-template-columns:repeat(2,minmax(0,1fr)); } .ve-footer-bottom { display:block; } .ve-course-facts { grid-template-columns:minmax(0,1fr); } .ve-finder-panel,.ve-public-card { padding:22px; } .ve-document-aside nav[aria-label="On this page"] ul { grid-template-columns:minmax(0,1fr); } }
@media (prefers-reduced-motion:reduce) { .ve-public-site *, .ve-public-site *::before,.ve-public-site *::after { scroll-behavior:auto!important; } }

/* Small reset replaces the unused public Bootstrap/carousel/theme payload. */
:where(.ve-public-site) :is(h1,h2,h3,h4,h5,h6) { font-family:inherit; color:#071a3d; line-height:1.3; }
:where(.ve-public-site a) { color:#ac1740; text-decoration:none; }
.ve-public-site p { margin-top:0; }
.ve-public-site figure { margin:0; }
.ve-public-site button { border:0; }
.ve-uk-breadcrumb a { display:inline-flex; align-items:center; min-height:44px; }
.ve-prose a { text-decoration:underline; }
.ve-prose table { width:100%; border-collapse:collapse; }
.ve-prose :is(th,td) { text-align:left; padding:14px; border-bottom:1px solid #e3e6ed; font-size:14px; }
.ve-course-finder .ve-finder-panel form { margin-top:0; }
.ve-finder-institution { margin-top:20px; }
.ve-course-finder .ve-autocomplete { position:relative; }
.ve-course-finder :is(.ve-suggestions,.ve-suggestion-status) { top:calc(100% + 8px); z-index:20; }
.ve-course-finder .ve-suggestions li { color:#071a3d; }

/* Search fields use surface/label focus feedback without a border or ring. */
.ve-public-site :is(.ve-explorer-form,.ve-course-finder,.ve-uk-search,.ve-course-search,[data-course-picker]) :is(input:not([type="checkbox"]):not([type="hidden"]),select) {
  border:0;
  outline:none;
  box-shadow:none;
}
.ve-public-site :is(.ve-explorer-form,.ve-course-finder,.ve-uk-search,.ve-course-search,[data-course-picker]) :is(input:not([type="checkbox"]):not([type="hidden"]),select):focus {
  border:0;
  outline:none;
  box-shadow:none;
  background-color:#fff0f5;
}
.ve-public-site :is(.ve-explorer-field,.ve-course-finder .ve-enquiry__field,.ve-uk-search__query,.ve-course-search .ve-enquiry__field,[data-course-picker] details):focus-within > label {
  color:#ac1740;
}
.ve-public-site .ve-explorer-field { border:0; }
.ve-public-site .ve-uk-search__query,
.ve-public-site .ve-uk-search__query:focus-within { border:0; padding-bottom:11px; }

/* One public process design for service steps, student journeys and visa guides. */
.ve-public-site .ve-process { --ve-process-columns:4; display:grid; grid-template-columns:repeat(var(--ve-process-columns),minmax(0,1fr)); gap:24px; margin:0; padding:0; list-style:none; }
.ve-public-site .ve-process[data-step-count="2"] { --ve-process-columns:2; }
.ve-public-site .ve-process[data-step-count="3"],.ve-public-site .ve-process[data-step-count="6"] { --ve-process-columns:3; }
.ve-public-site .ve-process[data-step-count="5"] { --ve-process-columns:5; }
.ve-public-site .ve-process__step { position:relative; min-width:0; min-height:184px; margin:0; padding:24px 22px; border:1px solid #eee7ec; border-radius:18px; background:#fff; box-shadow:0 6px 24px #071a3d04; }
.ve-public-site .ve-process__marker { display:flex; align-items:center; gap:12px; }
.ve-public-site .ve-process__number { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; border-radius:14px; background:#071a3d; color:#fff; font:800 19px/1 "Mulish",sans-serif; font-variant-numeric:tabular-nums; }
.ve-public-site .ve-process__label { color:#ac1740; font:800 10px/1.5 "Mulish",sans-serif; text-transform:uppercase; letter-spacing:1.5px; }
.ve-public-site .ve-process__body { min-width:0; margin-top:20px; }
.ve-public-site .ve-process h3 { margin:0; color:#071a3d; font:800 15px/1.6 "Mulish",sans-serif; letter-spacing:0; }
.ve-public-site .ve-process p { margin:10px 0 0; color:#566078; font:400 13px/1.8 "Mulish",sans-serif; }
.ve-public-site .ve-process__next { position:absolute; z-index:1; top:36px; right:-25px; display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#fff0f5; color:#ac1740; font:700 18px/1 "Mulish",sans-serif; pointer-events:none; }
.ve-public-site .ve-process[data-step-count="6"] .ve-process__step:nth-child(3n) .ve-process__next,
.ve-public-site .ve-process[data-step-count="8"] .ve-process__step:nth-child(4n) .ve-process__next { display:none; }
.ve-public-site .ve-process.ve-uk-steps { margin-bottom:32px; }
.ve-public-site .ve-process.ve-process--detailed { grid-template-columns:minmax(0,1fr); margin:24px 0 40px; }
.ve-public-site .ve-process--detailed .ve-process__step { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:start; gap:22px; min-height:0; padding:28px; }
.ve-public-site .ve-process--detailed .ve-process__body { margin:0; }
.ve-public-site .ve-process--detailed .ve-process__label { display:none; }
.ve-public-site .ve-process--detailed h3 { font-size:18px; line-height:1.5; }
.ve-public-site .ve-process--detailed p { font-size:14px; line-height:1.85; }
.ve-public-site .ve-process.ve-process--detailed .ve-process__step:nth-child(n) .ve-process__next { display:grid; top:auto; right:auto; bottom:-25px; left:40px; transform:rotate(90deg); }
@media (max-width:1100px) {
  .ve-public-site .ve-process { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ve-public-site .ve-process__step:last-child:nth-child(odd) { grid-column:1/-1; }
  .ve-public-site .ve-process[data-step-count] .ve-process__step:nth-child(odd) .ve-process__next { display:grid; }
  .ve-public-site .ve-process[data-step-count] .ve-process__step:nth-child(even) .ve-process__next { display:none; }
  .ve-public-site .ve-process.ve-process--detailed .ve-process__step:nth-child(n) .ve-process__next { display:grid; }
}
@media (max-width:639px) {
  .ve-public-site .ve-process { grid-template-columns:minmax(0,1fr); gap:20px; }
  .ve-public-site .ve-process__step { display:grid; grid-template-columns:44px minmax(0,1fr); align-items:start; gap:16px; min-height:100px; padding:20px; border-radius:14px; }
  .ve-public-site .ve-process__number { width:44px; height:44px; border-radius:12px; font-size:18px; }
  .ve-public-site .ve-process__label { display:none; }
  .ve-public-site .ve-process__body { margin:0; }
  .ve-public-site .ve-process h3 { font-size:15px; }
  .ve-public-site .ve-process p { font-size:14px; }
  .ve-public-site .ve-process[data-step-count] .ve-process__step:nth-child(n) .ve-process__next,
  .ve-public-site .ve-process.ve-process--detailed .ve-process__step:nth-child(n) .ve-process__next { display:grid; top:auto; right:auto; bottom:-21px; left:30px; width:24px; height:20px; transform:rotate(90deg); }
  .ve-public-site .ve-process--detailed .ve-process__step { grid-template-columns:44px minmax(0,1fr); gap:16px; padding:20px; }
  .ve-public-site .ve-process--detailed h3 { font-size:16px; }
}
