@layer reset, base, layout, components, responsive;
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  body, h1, h2, p { margin: 0; }
  a { color: inherit; }
  img { display: block; max-width: 100%; }
  button, input { font: inherit; }
}
@layer base {
  :root { color-scheme: dark; --bg: #050b16; --text: #f6f7fb; --muted: #c2c9d4; --cyan: #82ddec; --gold: #e6cd92; --line: #ffffff24; --radius: 22px; }
  html { background: var(--bg); }
  body { min-width: 280px; color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; line-height: 1.6; }
  a { text-decoration: none; -webkit-tap-highlight-color: transparent; }
  a:focus-visible { outline: 3px solid var(--cyan); outline-offset: 5px; }
  ::selection { background: #82ddec; color: #050b16; }
  .icon { flex-shrink: 0; }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  .skip-link { position: absolute; top: 8px; left: 12px; z-index: 20; padding: 12px 20px; background: #fff; color: #050b16; border-radius: 8px; transform: translateY(-160%); }
  .skip-link:focus { transform: translateY(0); }
}
@layer layout {
  .orbit { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: #050b16; }
  .orbit img { width: 100%; height: 100%; }
  .orbit img { object-fit: cover; object-position: 50% 40%; opacity: .68; }
  .orbit::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #02060dbc 0%, #02060d28 32%, #03081378 70%, #030813f5 100%); }
  .site-shell { width: min(1440px, 100%); margin-inline: auto; min-height: 100svh; display: flex; flex-direction: column; padding: 0 64px; }
  .site-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 0; }
  main { flex: 1; display: grid; align-items: center; outline: none; }
  .gateway { width: min(1120px, 100%); margin: 46px auto 62px; }
  .hero-copy { text-align: center; margin-bottom: 52px; }
  .section-label { font-size: 10px; font-weight: 600; letter-spacing: .25em; line-height: 1.6; color: var(--muted); }
  .hero-copy .section-label { margin-bottom: 16px; }
  .hero-copy h1 { font-size: clamp(46px, 5.5vw, 80px); line-height: 1.08; letter-spacing: -.055em; font-weight: 350; }
  .hero-copy h1 em { font-family: Georgia, "Times New Roman", serif; color: var(--cyan); font-weight: 400; letter-spacing: -.055em; }
  .hero-description { color: #d4dbe6; font-size: 14px; font-weight: 400; letter-spacing: .09em; margin: 22px 0 0; }
  .service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .site-footer { padding: 0 0 26px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #b4bdcb; font-size: 11px; letter-spacing: .035em; }
  .site-footer p { color: #d0d7e0; }
}
@layer components {
  .wordmark { display: inline-flex; align-items: center; min-height: 48px; font-size: 32px; font-weight: 650; letter-spacing: -.065em; line-height: 1; }
  .wordmark span { color: #5de0ee; }
  .language-switch { display: flex; border: 1px solid var(--line); border-radius: 100px; padding: 4px; background: #101725; }
  .language-switch a { display: grid; place-items: center; min-width: 48px; min-height: 44px; border: 1px solid transparent; border-radius: 100px; font-size: 11px; font-weight: 650; letter-spacing: .05em; color: #bdc6d4; }
  .language-switch a[aria-current] { background: #263544; color: #fff; border-color: #82ddec7a; }
  .language-switch a:hover { color: #fff; }
  .service-card { --accent: var(--cyan); position: relative; overflow: hidden; isolation: isolate; border: 1px solid #74cddd61; border-radius: var(--radius); background: #08121e; min-height: 402px; transition: transform 180ms ease; }
  .service-card--visa { --accent: var(--gold); border-color: #ddc78b61; }
  .service-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #06101a55, #050b16c9 42%, #050b16 100%); }
  .card-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; opacity: .55; transition: transform 350ms ease, opacity 250ms ease; }
  .card-content { padding: 32px 34px; display: flex; flex-direction: column; height: 100%; }
  .card-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .service-badge { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid #ffffff29; border-radius: 100px; color: var(--accent); background: #050b16d9; font-size: 9px; font-weight: 650; letter-spacing: .12em; }
  .service-badge .icon { width: 16px; height: 16px; }
  .card-number { font-size: 11px; color: #c6d0dd; font-variant-numeric: tabular-nums; letter-spacing: .12em; }
  .card-copy { margin-top: 75px; }
  .card-copy h2 { font-size: clamp(26px, 2.6vw, 36px); font-weight: 550; line-height: 1.2; letter-spacing: -.04em; }
  .card-copy p { font-size: 14px; line-height: 1.75; color: #d1d7e1; margin-top: 16px; max-width: 37ch; }
  .button { display: inline-flex; justify-content: center; align-items: center; gap: 24px; min-height: 48px; padding: 12px 22px; border-radius: 100px; color: #091321; background: #f8fafc; font-size: 12px; font-weight: 650; line-height: 1.4; align-self: flex-start; }
  .button .icon { width: 18px; height: 18px; transition: transform 160ms ease; }
  .service-link { margin-top: 30px; }
  .hero-visa-entry { display: none; }
  .service-status { align-self: flex-start; display: inline-flex; align-items: center; gap: 9px; min-height: 48px; margin-top: 30px; padding: 10px 17px; border: 1px solid #82ddec55; border-radius: 100px; color: var(--accent); background: #071422; font-size: 12px; font-weight: 650; }
  .service-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
  .education-upcoming .service-status { margin-top: 0; }
  @media (prefers-reduced-motion: no-preference) {
    .service-card--upcoming .service-status { animation: education-status-in 650ms ease-out both; }
    @keyframes education-status-in { from { opacity: .35; transform: translateY(5px); } }
  }
  .button:hover .icon { transform: translateX(3px); }
  .button.is-pending { opacity: .65; }

  .back-link { min-height: 48px; display: inline-flex; align-items: center; gap: 10px; font-size: 12px; color: #d4dce8; margin-bottom: 36px; }
  .back-link .icon { width: 18px; height: 18px; }




  .state-panel { border: 1px solid var(--line); border-radius: var(--radius); background: #08111ef5; padding: 40px; }




  .state-panel p { color: #cad3df; max-width: 62ch; font-size: 15px; }


  .error-panel { width: min(680px, 100%); margin: 50px auto 90px; }
  .error-panel h1 { font-size: clamp(28px, 4vw, 44px); font-weight: 450; letter-spacing: -.04em; line-height: 1.2; margin: 20px 0; }
  .error-panel .button { margin-top: 30px; }
  .reference { margin-top: 18px; font-size: 12px; overflow-wrap: anywhere; }
}
@layer responsive {
  @media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .service-card:not(.service-card--upcoming):hover, .service-card:focus-within { transform: translateY(-4px); }
    .service-card:not(.service-card--upcoming):hover .card-image { transform: scale(1.025); opacity: .65; }
  }
  @media (min-width: 1600px) { .gateway { margin-block: 62px 80px; } .service-card { min-height: 448px; } .card-content { padding: 40px; } .card-copy { margin-top: 95px; } }
  @media (max-width: 900px) { .site-shell { padding-inline: 32px; } .card-content { padding: 28px; } .service-grid { gap: 20px; } .card-copy { margin-top: 64px; } }
  @media (max-width: 640px) {
    .hero-visa-entry { display: inline-flex; margin-top: 22px; background: var(--gold); }
    .card-visa-entry { display: none; }
    .site-shell { padding-inline: 20px; }
    .site-header { padding: 20px 0; gap: 16px; }
    .wordmark { font-size: 27px; }
    .language-switch { padding: 3px; }
    .language-switch a { min-width: 44px; }
    .gateway { margin: 32px auto 40px; }
    .hero-copy { margin-bottom: 32px; }
    .hero-copy h1 { font-size: clamp(40px, 10.4vw, 62px); line-height: 1.12; }
    .hero-copy .section-label { margin-bottom: 16px; font-size: 9px; }
    .hero-description { font-size: 12px; letter-spacing: .035em; margin-top: 18px; }
    .service-grid { grid-template-columns: 1fr; gap: 18px; }
    .service-card { min-height: 330px; }
    .card-content { padding: 26px; }
    .card-copy { margin-top: 48px; }
    .card-copy h2 { font-size: 30px; }
    .card-copy p { font-size: 13px; max-width: 40ch; margin-top: 12px; }
    .service-link, .service-status { margin-top: 24px; }
    .site-footer { flex-direction: column; text-align: center; gap: 5px; font-size: 10px; padding-bottom: 22px; }
    .orbit img { object-position: 48% center; opacity: .52; }

    .back-link { margin-bottom: 28px; }
    .state-panel { padding: 26px; }

    .state-panel p { font-size: 14px; }

  }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
}

/* Product screens: calm, accessible catalogue and enquiry workspace. */
body:not(.page-home) { --bg:#f6f8fb; --text:#14223b; --muted:#59677b; --line:#dce3ed; --cyan:#146f83; background:var(--bg); color:var(--text); color-scheme:light; }
body:not(.page-home) .site-shell { padding-inline:48px; }
body:not(.page-home) .site-header { border-bottom:1px solid var(--line); gap:28px; padding-block:20px; }
body:not(.page-home) .wordmark span { color:#0985aa; }
body:not(.page-home) main { display:block; }
body:not(.page-home) .language-switch { background:#fff; }
body:not(.page-home) .language-switch a { color:#485971; }
body:not(.page-home) .language-switch a[aria-current] { background:#e9f3f7; color:#15485f; border-color:#bad6df; }
body:not(.page-home) .section-label { color:#667c97; }
body:not(.page-home) .site-footer { color:#5b6b81; padding-top:24px; border-top:1px solid var(--line); }
body:not(.page-home) .site-footer p { color:#53647b; }
body:not(.page-home) .back-link { color:#40546e; margin-bottom:24px; }
body:not(.page-home) .button { font-size:13px; }
body:not(.page-home) a:focus-visible, body:not(.page-home) button:focus-visible, body:not(.page-home) select:focus-visible, body:not(.page-home) input:focus-visible, body:not(.page-home) textarea:focus-visible { outline:3px solid #007dab; outline-offset:3px; }
.product-nav { display:flex; align-items:center; gap:24px; margin-left:auto; font-size:13px; font-weight:600; }
.product-nav a { min-height:44px; display:inline-flex; align-items:center; gap:8px; }
.count-pill { display:inline-grid; place-items:center; min-width:22px; height:22px; border-radius:20px; font-size:11px; color:#13617a; background:#e1eef4; }
.product-section { width:100%; margin:40px auto 80px; }
.product-section h1 { font-size:clamp(28px,3.6vw,46px); line-height:1.18; letter-spacing:-.045em; font-weight:550; margin:12px 0 16px; overflow-wrap:anywhere; }
.product-section h2 { font-size:20px; line-height:1.35; letter-spacing:-.025em; font-weight:600; }
.product-section h3 { font-size:14px; margin:24px 0 12px; }
.page-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:32px; margin-bottom:28px; }
.page-heading > div { max-width:760px; }
.page-heading p:not(.section-label) { color:#5d6d83; font-size:15px; max-width:68ch; }
.page-heading > .button { margin-top:40px; flex-shrink:0; }
.primary { background:#172b49; color:#fff; border:1px solid #172b49; }
.secondary { background:#fff; color:#233f62; border:1px solid #cad5e3; }
.button:disabled { opacity:.6; cursor:wait; }
button { cursor:pointer; }
.text-link { display:inline-flex; align-items:center; min-height:44px; color:#146584; font-size:13px; font-weight:600; background:none; border:0; padding:0; text-align:left; }
.text-link:hover { text-decoration:underline; }
.muted { color:#607188; font-size:13px; }
.muted:not(p) { display:block; }


.catalogue-filters { display:grid; grid-template-columns:minmax(180px,1.5fr) minmax(140px,1fr) minmax(180px,1.2fr) auto; gap:16px; align-items:end; border:1px solid #dce4ee; background:#fff; padding:22px; border-radius:16px; box-shadow:0 3px 15px #1b355607; }
.catalogue-filters > .text-link { grid-column:1/-1; min-height:24px; justify-self:start; font-size:12px; }
.field { display:flex; flex-direction:column; gap:8px; min-width:0; margin-bottom:20px; }
.catalogue-filters .field { margin:0; }
.field label, fieldset legend { font-size:13px; color:#263d5a; font-weight:600; }
input:not([type=radio]):not([type=checkbox]),select,textarea { width:100%; border:1px solid #cbd5e3; border-radius:9px; padding:12px 13px; min-height:48px; background:#fff; color:#18324f; font:inherit; font-size:14px; }
select { padding-right:28px; }
textarea { resize:vertical; }
select[multiple] { min-height:160px; }
[aria-invalid=true] { border-color:#a43e35!important; }
.results-heading { display:flex; justify-content:space-between; align-items:center; font-size:13px; color:#607188; margin:28px 0 18px; }
.results-heading h2 { font-size:17px; color:#273f5c; }
.university-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.university-card { background:#fff; border:1px solid #dce4ee; border-radius:15px; padding:26px; display:flex; flex-direction:column; align-items:flex-start; }



.university-card h2 { font-size:20px; margin-bottom:12px; }
.university-card h2 a:hover { text-decoration:underline; }
.university-card .text-link { margin-top:auto; padding-top:18px; }
.ranking { font-size:11px; color:#65758a; border-top:1px solid #e8edf3; margin-top:18px; padding-top:14px; width:100%; }
.ranking strong { margin-left:8px; color:#193c5b; font-size:15px; }
.source-note { color:#66778b; font-size:12px; line-height:1.7; margin-top:22px; }
.pagination { display:flex; align-items:center; justify-content:center; gap:20px; margin:28px 0; font-size:13px; color:#536981; }
.empty-state { text-align:center; padding:64px 24px; border:1px dashed #c8d5e4; border-radius:16px; background:#fff; }
.empty-state p { color:#607188; margin:14px 0; }
.empty-state .button { margin-top:24px; }


.detail-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); align-items:start; gap:26px; }
.panel { background:#fff; border:1px solid #dbe4ee; border-radius:16px; padding:30px; min-width:0; }
.panel > h2 { margin-bottom:22px; }
.detail-list { display:grid; grid-template-columns:minmax(140px,.7fr) minmax(0,1.6fr); gap:0 24px; font-size:14px; margin:0 0 30px; }
.detail-list dt,.detail-list dd { padding:15px 0; border-bottom:1px solid #e8edf3; }
.detail-list dt { color:#63748a; }
.detail-list dd { margin:0; white-space:pre-line; overflow-wrap:anywhere; }
.adviser-panel { background:#eef4f8; position:sticky; top:20px; display:flex; flex-direction:column; gap:20px; }
.adviser-panel > h2 { margin:0; }
.adviser-panel p { color:#536981; font-size:14px; }
.type-badge { display:inline-flex; border:1px solid #cfe1e8; border-radius:6px; background:#f0f7f9; color:#2b657c; padding:4px 8px; font-size:10px; font-weight:600; line-height:1.5; margin-bottom:12px; }
.programme-list { display:flex; flex-direction:column; gap:16px; }
.programme-card { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; background:#fff; border:1px solid #dbe4ee; border-radius:14px; padding:26px; }
.programme-card > div:first-child { min-width:0; }
.programme-card h2 { margin-bottom:12px; }
.programme-card h2 a:hover { text-decoration:underline; }
.fee-preview { margin-top:16px; color:#334d69; font-size:13px; max-width:85ch; }
.card-actions { display:flex; flex-direction:column; gap:10px; flex-shrink:0; }
.card-actions .button { width:100%; font-size:11px!important; }
.source-links { padding:0; list-style:none; }
.source-links a { display:inline-flex; align-items:center; min-height:44px; color:#146584; font-size:13px; text-decoration:underline; overflow-wrap:anywhere; }
.notice { padding:16px 20px; border:1px solid #dfc891; color:#6b4c17; background:#fff9e9; border-radius:10px; margin:20px 0; font-size:13px; }
body:not(.page-home) .error-panel { color:#203650; background:#fff; }
body:not(.page-home) .error-panel p { color:#5d6d83; }
.comparison-scroll { overflow:auto; border:1px solid #dbe4ee; background:#fff; border-radius:14px; margin-top:20px; }
.comparison-table { border-collapse:collapse; width:100%; min-width:640px; font-size:13px; }
.comparison-table th,.comparison-table td { padding:20px; vertical-align:top; text-align:left; border-right:1px solid #e0e7ef; border-bottom:1px solid #e0e7ef; min-width:240px; max-width:360px; overflow-wrap:anywhere; }
.comparison-table th:first-child { min-width:150px; width:170px; color:#607188; background:#f6f8fb; font-weight:500; }
.comparison-table thead th:not(:first-child) > a { display:block; color:#203f61; font-size:17px; margin:8px 0; }
.comparison-table thead form { margin-top:16px; }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:28px; }
.narrow-section { max-width:1100px; }
.contact-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:24px; align-items:start; }
.context-panel { background:#edf3f8; }
.context-panel ul { padding-left:18px; font-size:13px; color:#324e6c; }
.context-panel li { margin-bottom:14px; }
.context-panel .muted { font-size:11px; }
.privacy-note { font-size:12px; color:#5a6c82; margin:20px 0; }
.privacy-note a,.footer-links a { display:inline-flex; align-items:center; min-height:44px; color:inherit; text-decoration:underline; overflow-wrap:anywhere; }
.footer-links { display:flex; flex-wrap:wrap; justify-content:center; gap:0 16px; min-width:0; }
.privacy-document h2 { margin-top:24px; font-size:20px; }
.privacy-document p { margin-top:8px; white-space:pre-line; overflow-wrap:anywhere; }
.enquiry-form > .button { width:100%; }
.form-error { padding:18px; background:#fff1ef; border:1px solid #e7b8b0; border-radius:10px; color:#8c3025; font-size:13px; margin-bottom:24px; }
.form-error h2 { font-size:16px; margin:0 0 10px; }
.form-error ul { margin:0; padding-left:18px; }
.form-error a { text-decoration:underline; }
.field-error { color:#9c342a; font-size:12px; }
.honeypot { display:none; }
.submission-status { font-size:12px; margin-top:12px; }
.visa-landing { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:70px; padding-block:25px; }
.visa-hero-copy h1 { font-size:clamp(40px,4vw,60px); max-width:14ch; }
.visa-hero-copy > p:not(.section-label) { color:#607188; font-size:16px; max-width:48ch; margin:24px 0; }
.visa-hero-copy > .button { margin:12px 0; }
.visa-explainer { background:#ecf2f6; padding:36px; }
.visa-explainer h2 { font-size:20px; margin-top:22px; }
.visa-explainer p { color:#607188; font-size:14px; }
.visa-explainer ol { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding-left:22px; margin-top:30px; font-size:13px; color:#334f6b; }
.hero-icon { display:grid; place-items:center; width:60px; height:60px; border-radius:18px; background:#fff; color:#8b662e; }
.hero-icon .icon { width:30px; height:30px; }
.wizard-section { max-width:940px; }
.stepper { overflow:auto; padding:8px 0 18px; margin-bottom:24px; }
.stepper ol { display:flex; padding:0; margin:0; list-style:none; gap:12px; min-width:700px; justify-content:space-between; }
.stepper li,.stepper li a { display:flex; align-items:center; gap:8px; font-size:11px; color:#728198; }
.stepper li a { min-height:44px; color:#3d6888; }
.stepper li > span,.stepper a > span { display:grid; place-items:center; width:26px; height:26px; border-radius:20px; background:#e3eaf3; font-size:11px; color:#61768d; flex-shrink:0; }
.stepper li[aria-current] { color:#163e62; font-weight:700; }
.stepper li[aria-current] > span { background:#173d60; color:#fff; }
.wizard-heading { max-width:740px; margin-bottom:28px; }
.wizard-heading p:not(.section-label) { font-size:14px; color:#607188; }
.wizard-form,.summary-panel { max-width:780px; }
fieldset { border:0; padding:0; margin:0 0 24px; min-width:0; }
fieldset legend { margin-bottom:16px; }
.option-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.radio-option { display:flex; align-items:center; gap:12px; padding:16px; min-height:58px; border:1px solid #d4dfeb; border-radius:10px; font-size:14px; cursor:pointer; }
.radio-option:has(input:checked) { background:#eaf3f8; border-color:#4481a5; }
input[type=radio],input[type=checkbox] { accent-color:#235b80; width:18px; height:18px; flex-shrink:0; }
.checkbox-option { display:flex; align-items:center; gap:12px; min-height:48px; font-size:14px; margin:12px 0; cursor:pointer; }
.summary-list { margin:0; }
.summary-list > div { display:grid; grid-template-columns:130px minmax(0,1fr) auto; gap:20px; border-bottom:1px solid #dfe7ef; padding:20px 0; }
.summary-list dt { color:#65768b; font-size:13px; }
.summary-list dd { margin:0; font-size:14px; overflow-wrap:anywhere; }
.summary-list .text-link { min-height:44px; align-self:start; }
.context-panel .summary-list > div { grid-template-columns:100px minmax(0,1fr); gap:12px; }
.inline-chip { display:inline-block; font-size:11px; padding:3px 7px; border:1px solid #ccdae7; border-radius:5px; margin:6px 4px 6px 0; }
.receipt-section { max-width:700px; padding-block:40px; text-align:center; }
.receipt-section > p:not(.section-label) { font-size:15px; color:#607188; }
.receipt-mark { display:grid; place-items:center; width:72px; height:72px; border-radius:50%; background:#e1f1ed; color:#18705b; font-size:32px; margin:0 auto 28px; }
.receipt-reference { display:flex; flex-direction:column; gap:8px; padding:22px; margin:28px 0; border:1px solid #d5e1eb; background:#fff; border-radius:14px; }
.receipt-reference span { font-size:12px; color:#65768b; }
.receipt-reference strong { font-size:22px; font-weight:600; letter-spacing:.06em; color:#23496b; }
.receipt-section .button { margin-top:30px; }
@media(max-width:1100px){.university-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.catalogue-filters{grid-template-columns:1fr 1fr;}.catalogue-filters > .button{width:100%;}.detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);}.product-nav{gap:14px;}}
@media(max-width:760px){body:not(.page-home) .site-shell{padding-inline:20px;}body:not(.page-home) .site-header{flex-wrap:wrap;gap:10px 16px;}body:not(.page-home) .wordmark{margin-right:auto;}.product-nav{order:3;width:100%;margin:0;gap:22px;border-top:1px solid #e0e7ef;padding-top:10px;}.product-section{margin:26px auto 50px;}.page-heading{flex-direction:column;gap:8px;}.page-heading > .button{margin:0;}.university-grid{grid-template-columns:1fr;}.catalogue-filters{grid-template-columns:1fr;padding:18px;}.catalogue-filters > .text-link{grid-column:auto;}.panel{padding:22px;}.detail-grid,.contact-grid,.visa-landing{grid-template-columns:1fr;gap:22px;}.adviser-panel{position:static;}.detail-list{grid-template-columns:1fr;gap:0;}.detail-list dt{padding:16px 0 4px;border:0;font-size:12px;}.detail-list dd{padding:4px 0 16px;}.programme-card{flex-direction:column;gap:18px;padding:22px;}.card-actions{width:100%;}.card-actions .button{width:100%;}.card-actions>form{width:100%;}.option-grid{grid-template-columns:1fr;}.binary-options{grid-template-columns:1fr 1fr;}.summary-list>div{grid-template-columns:1fr auto;gap:8px;}.summary-list dt{grid-column:1/-1;}.summary-list dd{font-size:13px;}.summary-list .text-link{font-size:12px;}.context-panel .summary-list>div{grid-template-columns:1fr;}.visa-hero-copy h1{font-size:42px;}.visa-landing{padding-block:0;}.visa-explainer ol{gap:10px;}.receipt-section{padding-block:20px;}.receipt-reference strong{font-size:18px;}.comparison-table th,.comparison-table td{min-width:220px;padding:16px;}.comparison-table th:first-child{min-width:130px;}.form-actions .button{flex:1;}.source-links a{max-width:100%;}}

/* Complete touch targets, including secondary text links. */
.university-card h2 a,.programme-card h2 a,.comparison-table thead th:not(:first-child)>a,.form-error a { display:flex; align-items:center; min-height:44px; }
.catalogue-filters>.text-link { min-height:44px; }
.programme-card,.university-card { overflow-wrap:anywhere; }

.product-nav a,.summary-list .text-link { min-width:44px; }

/* Focus the invalid country selection group and preserve native summary keyboard feedback. */
.destination-options:focus-visible,summary:focus-visible { outline:3px solid #2563eb;outline-offset:5px;border-radius:8px; }

/* Edge-to-edge viewport: zero effect on devices without cutouts. */
body { padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px); }
body.pilot-education .site-header { top:env(safe-area-inset-top,0px);left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px); }
.field-hint { margin:0;font-size:12px;line-height:1.6;color:#607188; }
@media(max-width:760px){
 body.pilot-country .wizard-form>.form-actions,
 body.journey-step .journey-content .form-actions { padding-bottom:max(16px,env(safe-area-inset-bottom,0px)); }
}

body.pilot-country .destination-search { top:max(10px,env(safe-area-inset-top,0px)); }
@media(max-width:760px){body.pilot-country .destination-search { top:max(6px,env(safe-area-inset-top,0px)); }}

.pagination { flex-wrap:wrap;gap:12px; }
.page-numbers { display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap; }
.page-numbers a { display:inline-flex;justify-content:center;align-items:center;min-width:44px;min-height:44px;border:1px solid #dce4ee;border-radius:8px;background:#fff;color:#193c5b;font-size:13px; }
.page-numbers a[aria-current="page"] { background:#173d60;color:#fff;border-color:#173d60; }
@media(max-width:600px){.page-numbers{order:3;flex-basis:100%;}}
