/* ═══════════════════════════════════════════════════════════════════════
   Page templates for the server-rendered site (follows the reference's inner pages).
   Loaded after redesign.css on every page.
   ═══════════════════════════════════════════════════════════════════════ */

/* header details that depend on server markup */
.top-nav .nav-links a { display: inline-flex; align-items: center; gap: 6px; }
.top-nav .nav-links a.nav-accent, .top-nav .nav-links a.nav-accent .nav-ico { color: var(--rd-orange); font-weight: 600; }
.top-nav .nav-links a.is-active, .rd-dd.is-active > button { color: var(--rd-orange); }
.top-nav .nav-links a .nav-ico { flex-shrink: 0; }
.rd-hero { background: linear-gradient(100deg, rgba(17,35,59,.92) 0%, rgba(17,35,59,.78) 45%, rgba(17,35,59,.55) 100%), var(--rd-hero-img, url("/assets/photo%201.avif")) center / cover no-repeat; }
.rd-foot-pin, .foot-pin { vertical-align: -2px; margin-right: 2px; }
.rd-foot-social .wa-ico { color: #16a34a; display: grid; place-items: center; }
.rd-foot-social a { color: #222; }
.rd-img-flag { display: grid; place-items: center; height: 100%; }
.rd-img-flag img { width: 74px; height: 50px; object-fit: cover; border-radius: 6px; box-shadow: 0 3px 12px rgba(0,0,0,.25); }
.flag-fallback { font-size: 26px; }
.lm { font-weight: 600; }
body { overflow-x: hidden; }

/* ── Generic page hero (reference: icon tile, centred title, gradient rule) ── */
.rd-page-hero { padding: 54px 0 30px; text-align: center; }
.rd-page-hero h1 { margin: 12px 0 8px; font: 700 36px/1.2 var(--rd-font-title); color: #173054; }
.rd-page-hero p { margin: 0 auto 14px; max-width: 640px; font: 400 16px/1.7 var(--rd-font-body); color: #6b7280; }
.rd-hero-icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; color: #fff; background: linear-gradient(135deg, #1f3d6e, #1b78ad); box-shadow: 0 8px 20px rgba(91,107,240,.3); }
.rd-hero-rule { display: block; width: 100px; height: 4px; margin: 14px auto 0; border-radius: 4px; background: linear-gradient(90deg, #1f3d6e, #1f3d6e); }
.rd-hero-lav, .rd-lav { background: linear-gradient(135deg, #f2f6fb 0%, #f2f6fb 55%, #f2f6fb 100%); }
.rd-hero-peach, .rd-peach { background: linear-gradient(135deg, #f2f6fb 0%, #f2f6fb 55%, #f2f6fb 100%); }
.rd-pin-tile { background: linear-gradient(135deg, #289bd1, #1f3d6e); }

/* ── Destination list (reference: "World Countries") ───────────────────── */
.rd-list-card { max-width: 780px; margin: 0 auto 50px; padding: 0 24px 8px; background: #fff; border-radius: 14px; box-shadow: 0 10px 34px rgba(17,35,59,.1); overflow: hidden; }
.rd-list-head, .rd-list-row { display: grid; grid-template-columns: 1.4fr .4fr .6fr; align-items: center; gap: 12px; padding: 18px 8px; }
.rd-list-head { margin: 0 -24px; padding: 16px 32px; background: #fafbff; font: 600 12px var(--rd-font-body); letter-spacing: .08em; text-transform: uppercase; color: #6b7280; }
.rd-list-row { border-bottom: 1px solid #eef0f4; }
.rd-list-row:last-child { border-bottom: 0; }
.rd-list-name { font: 600 17px var(--rd-font-title); color: #1f3d6e; text-decoration: none; }
.rd-list-row small { display: block; margin-top: 3px; font: 400 12.5px/1.45 var(--rd-font-body); color: #6b7280; }
.rd-list-row .fl img { width: 40px; height: 27px; object-fit: cover; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.25); }
.rd-explore { justify-self: end; display: inline-flex; align-items: center; justify-content: center; height: 36px; padding: 0 18px; border-radius: 8px; background: #7a8fb8; color: #fff; font: 600 14px var(--rd-font-body); text-decoration: none; }
.rd-explore:hover { background: var(--rd-orange); color: #fff; }
.rd-list-note { max-width: 780px; margin: 0 auto; padding: 0 20px 60px; text-align: center; font: 400 14px/1.7 var(--rd-font-body); color: #6b7280; }

/* ── Destination detail (reference: dark hero, gradient headline, stat tiles) ── */
.rd-dhero { padding: 54px 0; color: #fff; background: linear-gradient(135deg, #1f3d2b 0%, #2b4a2f 50%, #4b5563 100%); }
.rd-dhero-grid { display: grid; grid-template-columns: auto 1fr 1.1fr; gap: 34px; align-items: center; }
.rd-dflag img { width: 210px; height: 140px; object-fit: cover; border-radius: 14px; border: 6px solid #fff; box-shadow: 0 10px 28px rgba(0,0,0,.35); }
.rd-dtext h1 { margin: 0 0 12px; font: 700 40px/1.15 var(--rd-font-title); }
.rd-dtext h1 span { background: linear-gradient(90deg, #d6bf95, #8fd16a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rd-dtext p { margin: 0; font: 400 17px/1.6 var(--rd-font-body); color: rgba(255,255,255,.9); }
.rd-dstats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rd-dstat { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-radius: 14px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); }
.rd-dstat svg { color: #d6bf95; }
.rd-dstat b { font: 700 22px var(--rd-font-title); color: #d6bf95; }
.rd-dstat span { font: 400 13px var(--rd-font-body); color: rgba(255,255,255,.85); }
.rd-title.t-green { color: #1f3d6e; font-size: 30px; }
.rd-title.t-teal { color: #1b78ad; font-size: 32px; }
.rd-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 8px; }
.rd-chips a { padding: 9px 16px; border-radius: 999px; background: #fff; border: 1px solid #e3e6ee; color: #374151; font: 500 14px var(--rd-font-body); text-decoration: none; transition: all .15s; }
.rd-chips a:hover, .rd-chips a.is-on { background: var(--rd-orange); border-color: var(--rd-orange); color: #fff; }
.rd-chips-filter { margin: 0 0 28px; }
.rd-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.rd-panel { padding: 28px; border-radius: 16px; background: #fff; box-shadow: 0 8px 30px rgba(15,23,42,.08); }
.rd-panel h3 { margin: 0 0 12px; font: 700 20px var(--rd-font-title); color: #3b6b3e; }
.rd-panel p { margin: 0; font: 400 15px/1.7 var(--rd-font-body); color: #4b5563; }
.rd-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.rd-checks li { display: flex; gap: 12px; align-items: flex-start; font: 400 14.5px/1.55 var(--rd-font-body); color: #374151; }
.rd-checks svg { flex-shrink: 0; color: #2f9a62; margin-top: 2px; }
.rd-cta-band { padding: 56px 0; text-align: center; color: #fff; background: linear-gradient(135deg, #1f3d6e, #1b78ad); }
.rd-cta-band h2 { margin: 0 0 8px; font: 700 30px var(--rd-font-title); }
.rd-cta-band p { margin: 0 0 20px; font: 400 16px var(--rd-font-body); opacity: .92; }
.rd-cta-band .rd-btn-outline { background: transparent; color: #fff; border-color: #fff; margin-left: 8px; }
.rd-cta-band .rd-btn-outline:hover { background: #fff; color: #1f3d6e; }

/* ── Directory & university cards ─────────────────────────────────────── */
.rd-cards4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.rd-unis { margin-bottom: 40px; }
.rd-uni .rd-uni-logo { display: grid; place-items: center; height: 130px; border-radius: 10px; background: #f6f7fb; padding: 14px; }
.rd-uni .rd-uni-logo img { max-width: 100%; max-height: 90px; object-fit: contain; }
.rd-uni .rd-cap b { display: block; font: 600 15px/1.35 var(--rd-font-title); color: #145e8a; }
.rd-uni .rd-cap small { display: block; margin-top: 3px; font: 400 12px var(--rd-font-body); color: #6b7280; }
.rd-empty { padding: 30px; text-align: center; color: #6b7280; font: 400 15px/1.7 var(--rd-font-body); }

/* ── Services ─────────────────────────────────────────────────────────── */
.rd-svc-wrap { max-width: 1000px; margin: 0 auto; padding: 30px 24px 70px; }
.rd-svc-banner { display: flex; align-items: flex-end; min-height: 190px; padding: 28px 34px; border-radius: 14px 14px 0 0; color: #fff; background: linear-gradient(0deg, rgba(17,35,59,.88), rgba(17,35,59,.42)), url("/assets/graduation%201.avif") center / cover, #11233b; }
.rd-svc-banner h1 { margin: 0; font: 700 32px var(--rd-font-title); }
.rd-svc-tabs { position: sticky; top: 63px; z-index: 50; display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 18px; background: #fff; border-bottom: 1px solid #eef0f4; box-shadow: 0 6px 14px rgba(15,23,42,.05); }
.rd-svc-tabs a { padding: 7px 14px; border-radius: 8px; font: 500 13px var(--rd-font-body); color: #4b5563; text-decoration: none; }
.rd-svc-tabs a:hover, .rd-svc-tabs a.is-on { background: linear-gradient(90deg, #1f3d6e, #1b78ad); color: #fff; }
.rd-svc-body { padding: 8px 34px 34px; background: #fff; border-radius: 0 0 14px 14px; box-shadow: 0 10px 34px rgba(17,35,59,.1); }
.rd-svc-body section { padding-top: 28px; scroll-margin-top: 130px; }
.rd-svc-body h2 { margin: 0 0 10px; font: 700 26px var(--rd-font-title); color: #1f2937; }
.rd-svc-body p, .rd-svc-body li { font: 400 16px/1.75 var(--rd-font-body); color: #374151; }
.rd-svc-body .rd-lead { font-weight: 500; color: #1f2937; }
.rd-svc-body ol { margin: 8px 0 0; padding-left: 22px; }
.rd-svc-cta { margin-top: 18px; }

/* ── Institutions (reference: teal banner, aqua section, feature cards) ── */
.rd-banner-teal { padding: 80px 0 70px; text-align: center; color: #fff; background: linear-gradient(135deg, rgba(17,35,59,.9), rgba(31,61,110,.8)), url("/assets/photo%202.avif") center / cover, #11233b; }
.rd-banner-teal h1 { margin: 14px 0 0; font: 700 40px var(--rd-font-title); }
.rd-banner-teal .rd-hero-rule { background: #fff; }
.rd-banner-teal p { max-width: 760px; margin: 22px auto 0; font: 400 17px/1.7 var(--rd-font-body); color: rgba(255,255,255,.95); }
.rd-banner-teal .rd-hero-icon { background: rgba(255,255,255,.2); box-shadow: none; }
.rd-aqua { background: #e1f2fa; }
.rd-cards2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.rd-feature { padding: 26px 24px; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(15,23,42,.07); }
.rd-teal .rd-feature .rd-fi, .rd-fi { display: inline-grid; place-items: center; width: 48px; height: 48px; margin-bottom: 14px; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #1b78ad, #289bd1); }
.rd-feature h3 { margin: 0 0 8px; font: 700 19px var(--rd-font-title); color: #1f2937; }
.rd-feature p { margin: 0; font: 400 15px/1.65 var(--rd-font-body); color: #4b5563; }
.rd-narrow { max-width: 860px; }
.rd-aims { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.rd-aims li { display: flex; gap: 12px; align-items: center; padding: 16px 18px; border-radius: 12px; background: #e1f2fa; border: 1px solid #c3e4f3; font: 400 16px var(--rd-font-body); color: #1f2937; }
.rd-aims svg { color: #1b78ad; flex-shrink: 0; }
.rd-partners-links a { display: grid; place-items: center; }

/* ── Offices ──────────────────────────────────────────────────────────── */
.rd-offices-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 24px; padding-bottom: 50px; max-width: 880px; margin: 0 auto; }
.rd-office-card { padding: 32px; border-radius: 18px; background: #fff; box-shadow: 0 10px 34px rgba(17,35,59,.1); }
.rd-office-card h2 { margin: 0 0 16px; font: 700 22px var(--rd-font-title); color: #1f3d6e; }
.rd-office-card p { margin: 0 0 12px; font: 400 15px/1.6 var(--rd-font-body); color: #374151; }
.rd-office-card p b { font-weight: 700; color: #111827; }
.rd-office-card a { color: #1f3d6e; text-decoration: none; }
.rd-btn-blue { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 18px; margin: 6px 0 18px; border-radius: 8px; background: #1b78ad; color: #fff !important; font: 600 14px var(--rd-font-body); }
.rd-btn-blue:hover { background: #145e8a; }
.rd-office-map iframe, .rd-office-card .rd-office-map iframe { display: block; width: 100%; height: 260px; border: 0; border-radius: 12px; }

/* ── About (reference: gradient page, white card) ─────────────────────── */
.rd-about { background: linear-gradient(135deg, #1b78ad 0%, #1b78ad 55%, #2a5192 100%); padding-bottom: 70px; }
.rd-about-hero { padding: 64px 0 40px; text-align: center; color: #fff; }
.rd-about-hero h1 { margin: 0 0 10px; font: 700 40px var(--rd-font-title); }
.rd-about-hero p { margin: 0; font: 500 17px var(--rd-font-body); opacity: .95; }
.rd-about-card { max-width: 980px; margin: 0 auto; padding: 44px 48px; background: #fff; border-radius: 22px; box-shadow: 0 24px 60px rgba(8,40,80,.3); }
.rd-about-card h2 { margin: 0 0 14px; font: 700 26px var(--rd-font-title); color: #1f2937; }
.rd-about-card p { margin: 0 0 14px; font: 400 16px/1.8 var(--rd-font-body); color: #374151; }
.rd-about-card hr { border: 0; border-top: 1px solid #e5e7eb; margin: 34px 0; }
.rd-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 26px; }
.rd-tile { padding: 22px 16px; text-align: center; border-radius: 14px; background: linear-gradient(135deg, #e1f2fa, #f0f8ff); box-shadow: 0 6px 18px rgba(15,23,42,.06); }
.rd-tile b { display: block; font: 700 38px var(--rd-font-title); color: #1b78ad; }
.rd-tile span { font: 600 15px var(--rd-font-body); color: #374151; }
.rd-team { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 20px; }
.rd-person { text-align: center; padding: 22px 16px; border-radius: 16px; background: #f8fafc; }
.rd-person img, .rd-initials { width: 96px; height: 96px; margin: 0 auto 12px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: #1b78ad; color: #fff; font: 700 28px var(--rd-font-title); }
.rd-person h3 { margin: 0; font: 700 17px var(--rd-font-title); color: #1f2937; }
.rd-person h4 { margin: 4px 0 8px; font: 500 13px var(--rd-font-body); color: #1b78ad; }
.rd-person p { margin: 0; font: 400 13px/1.6 var(--rd-font-body); color: #4b5563; }

/* ── FAQs & sitemap ───────────────────────────────────────────────────── */
.rd-faq-h1 { margin: 0; padding: 54px 0 28px; text-align: center; font: 700 34px var(--rd-font-title); color: #064e3b; }
.rd-peach .rd-narrow { padding-bottom: 70px; }
.rd-qa { margin-bottom: 14px; border-radius: 14px; background: #fff; box-shadow: 0 6px 22px rgba(15,23,42,.07); overflow: hidden; }
.rd-qa summary { display: flex; align-items: center; gap: 16px; padding: 18px 22px; cursor: pointer; list-style: none; font: 600 17px var(--rd-font-title); color: #1f3d6e; }
.rd-qa summary::-webkit-details-marker { display: none; }
.rd-qa .ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; background: #f2f6fb; font-size: 22px; }
.rd-qa .rd-caret { margin-left: auto; transition: transform .2s; color: #6b7280; }
.rd-qa[open] .rd-caret { transform: rotate(180deg); }
.rd-qa-a { padding: 0 24px 22px 82px; font: 400 15.5px/1.75 var(--rd-font-body); color: #374151; }
.rd-qa-a a { color: var(--rd-orange); }
.rd-sm-group { margin-bottom: 28px; padding: 22px 26px; border-radius: 14px; background: #fff; box-shadow: 0 6px 22px rgba(15,23,42,.06); }
.rd-sm-group h2 { margin: 0 0 12px; font: 700 18px var(--rd-font-title); color: #1f3d6e; }
.rd-sm-group ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px 20px; }
.rd-sm-group a { color: #374151; text-decoration: none; font: 400 15px var(--rd-font-body); }
.rd-sm-group a:hover { color: var(--rd-orange); }
.rd-notfound { padding: 90px 0; text-align: center; background: linear-gradient(135deg, #f2f6fb, #f2f6fb); }
.rd-404 { font: 800 96px var(--rd-font-head); background: linear-gradient(90deg, #1f3d6e, #1f3d6e); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rd-notfound h1 { margin: 6px 0 8px; font: 700 28px var(--rd-font-title); color: #1f2937; }
.rd-notfound p { color: #6b7280; margin: 0 0 20px; }

/* ── Course finder (reference: centred "Find Courses" card) ───────────── */
.rd-courses-body { background: #fff; }
.rd-finder-card-wrap { padding: 60px 0 50px; background: linear-gradient(135deg, #f2f6fb 0%, #f2f6fb 55%, #f2f6fb 100%); }
.rd-find-card { max-width: 920px; margin: 0 auto; padding: 44px 40px 48px; text-align: center; border-radius: 22px; background: #fff; box-shadow: 0 14px 44px rgba(30,42,86,.12); }
.rd-find-card h1 { margin: 0; font: 700 34px var(--rd-font-title); background: linear-gradient(90deg, #1f3d6e, #4b5563); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rd-find-form { display: grid; grid-template-columns: 1fr 1.4fr .9fr auto; gap: 12px; margin-top: 30px; }
.rd-find-form select { height: 46px; padding: 0 14px; border: 1px solid #1f3d6e; border-radius: 8px; background: #fff; color: #333; font: 400 14px var(--rd-font-body); }
.rd-find-form button { height: 46px; padding: 0 26px; border: 0; border-radius: 8px; background: #b28a4c; color: #11233b; font: 700 14px var(--rd-font-body); cursor: pointer; }
.rd-find-form button:hover { background: #a37c3a; }
.rd-results { padding: 40px 0 10px; }
.rd-results-title { margin: 0 0 18px; font: 700 26px var(--rd-font-title); color: #1f2937; }
.rd-results-title small { display: block; margin-top: 4px; font: 400 14px var(--rd-font-body); color: #6b7280; }
.rd-info-card { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 0; margin: 40px 0 30px; padding: 26px; border-radius: 18px; background: #fff; box-shadow: 0 8px 30px rgba(15,23,42,.1); border: 1px solid #eef0f4; }
.rd-info-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding-right: 22px; }
.rd-info-tile { display: flex; align-items: center; gap: 12px; padding: 16px; border-radius: 12px; background: #f6f7ff; text-decoration: none; color: #1f2937; }
.rd-info-tile svg { color: #1f3d6e; flex-shrink: 0; }
.rd-info-tile b { font: 600 14px/1.35 var(--rd-font-body); }
.rd-info-col { padding: 4px 22px; border-left: 2px solid #173054; }
.rd-info-col h3 { margin: 0 0 6px; font: 700 15px var(--rd-font-body); color: #173054; }
.rd-info-col p { margin: 0 0 10px; font: 400 14px/1.5 var(--rd-font-body); color: #374151; display: flex; gap: 8px; align-items: flex-start; }
.rd-info-col a { color: #374151; text-decoration: none; }
.rd-btn-red { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 22px; border-radius: 8px; background: #1f3d6e; color: #fff !important; font: 600 14px var(--rd-font-body); text-decoration: none; }
.rd-hours-box { padding: 10px 12px; border-radius: 8px; background: #f2f6fb; border: 1px solid #c7d4e8; text-align: center; }
.rd-hours-box p { display: block; margin: 0 0 4px; font-size: 13px; }

/* ── Home: office band ────────────────────────────────────────────────── */
.rd-office { padding: 72px 0; background: #f8fafc; }
.rd-office-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: center; }
.rd-eyebrow { display: inline-block; margin-bottom: 10px; font: 800 11px var(--rd-font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--rd-orange); }
.rd-office h2 { margin: 0 0 18px; font: 700 34px var(--rd-font-title); color: #1f2937; }
.rd-office-list { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 18px; }
.rd-office-list li { display: flex; gap: 14px; align-items: flex-start; font: 400 14.5px/1.55 var(--rd-font-body); color: #4b5563; }
.rd-office-list li > svg { flex-shrink: 0; padding: 9px; box-sizing: content-box; width: 22px; height: 22px; border-radius: 10px; background: #f2f6fb; color: var(--rd-orange); }
.rd-office-list strong { color: #111827; }
.rd-office-list a { color: var(--rd-orange); text-decoration: none; font-weight: 600; }
.rd-office-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.rd-office .rd-office-map { border-radius: 16px; overflow: hidden; box-shadow: 0 14px 40px rgba(15,23,42,.14); border: 1px solid #e8ebf1; }
.rd-office .rd-office-map iframe { display: block; width: 100%; height: 380px; border: 0; }

/* ── Account/transactional pages inside the shared layout ─────────────── */
.rd-securebar { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px; background: #ecfdf5; color: #166534; font: 600 13px var(--rd-font-body); }
.rd-applybar { padding: 14px 0 0; }
.rd-applybar .apply-back-link { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 8px; background: #fff; border: 1px solid #e3e6ee; color: #374151; font: 600 13px var(--rd-font-body); text-decoration: none; }

/* ── University detail pages restyled to the same language ───────────── */
.rd-detail { background: linear-gradient(180deg, #f6f7fb, #fff 400px); padding-bottom: 40px; }
.rd-detail .detail-hero-section { max-width: var(--rd-container); margin: 0 auto; padding: 24px 24px 0; }
.rd-detail .detail-hero { border-radius: 18px; overflow: hidden; box-shadow: 0 14px 40px rgba(15,23,42,.14); }
.detail-hero-plain { display: grid; place-items: center; min-height: 260px; background: linear-gradient(135deg, #173054, #17212f); color: #fff; text-align: center; }
.detail-hero-plain-in img { width: 86px; height: 86px; object-fit: contain; padding: 10px; border-radius: 16px; background: #fff; margin-bottom: 12px; }
.detail-hero-plain-in h2 { margin: 0 0 6px; font: 700 30px var(--rd-font-title); }
.detail-hero-plain-in p { margin: 0; opacity: .9; }
.rd-detail .university-header-card { max-width: var(--rd-container); margin: -46px auto 0; position: relative; display: flex; align-items: center; gap: 18px; padding: 22px 28px; border-radius: 18px; background: #fff; box-shadow: 0 14px 40px rgba(15,23,42,.14); }
.rd-detail .university-header-copy { flex: 1; }
.rd-detail .university-header-copy h1 { margin: 0; font: 700 28px var(--rd-font-title); color: #1f2937; }
.rd-detail .university-header-copy p { margin: 4px 0 0; color: #6b7280; font: 400 15px var(--rd-font-body); }
.rd-detail .university-mark img { width: 64px; height: 64px; object-fit: contain; }
.rd-detail .detail-content { max-width: var(--rd-container); margin: 0 auto; padding: 24px; }
.rd-detail .detail-section { margin-top: 24px; padding: 28px; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(15,23,42,.07); }
.rd-detail .detail-section h2 { font-family: var(--rd-font-title); color: #1f2937; }
.rd-detail .detail-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.rd-detail .detail-stats article { padding: 18px; border-radius: 14px; background: #fff; box-shadow: 0 8px 28px rgba(15,23,42,.07); text-align: center; }
.rd-detail .detail-stats strong { display: block; font: 700 24px var(--rd-font-title); color: var(--rd-orange); }
.rd-notice { margin: 4px 0 18px; padding: 14px 18px; border-radius: 12px; background: #f2f6fb; border: 1px solid #9fb5d6; color: #11233b; font: 500 14px/1.6 var(--rd-font-body); }
.rd-hdr-cta { margin-left: auto; height: 44px; }
.detail-breadcrumbs { margin-top: 28px; display: flex; gap: 8px; font: 400 14px var(--rd-font-body); color: #6b7280; }
.detail-breadcrumbs a { color: #6b7280; text-decoration: none; }
.detail-breadcrumbs a:hover { color: var(--rd-orange); }
.detail-page .program-card { border-radius: 14px; }
.detail-page .program-side button:not(.save-program), .detail-page .programs-section button.primary { background: linear-gradient(90deg, var(--rd-orange), var(--rd-orange-2)); border: 0; color: #fff; border-radius: 8px; }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .rd-cards4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rd-dhero-grid { grid-template-columns: auto 1fr; }
  .rd-dstats { grid-column: 1 / -1; }
  .rd-info-card { grid-template-columns: 1fr 1fr; gap: 24px; }
  .rd-info-tiles { grid-column: 1 / -1; padding-right: 0; }
  .rd-find-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .rd-office-grid, .rd-2col { grid-template-columns: 1fr; }
  .rd-about-card { margin: 0 16px; padding: 30px 22px; }
  .rd-tiles { grid-template-columns: 1fr; }
  .rd-cards2 { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .rd-page-hero h1, .rd-banner-teal h1, .rd-about-hero h1, .rd-faq-h1 { font-size: 28px; }
  .rd-list-card { margin: 0 14px 40px; padding: 0 14px 4px; }
  .rd-list-head { display: none; }
  .rd-list-row { grid-template-columns: 1fr auto; }
  .rd-list-row .fl { display: none; }
  .rd-dhero-grid { grid-template-columns: 1fr; text-align: center; }
  .rd-dflag img { width: 150px; height: 100px; }
  .rd-dtext h1 { font-size: 30px; }
  .rd-dstats { grid-template-columns: 1fr; }
  .rd-cards4 { grid-template-columns: 1fr; }
  .rd-find-form, .rd-info-card { grid-template-columns: 1fr; }
  .rd-info-col { border-left: 0; border-top: 2px solid #173054; padding: 14px 0 0; }
  .rd-info-tiles { grid-template-columns: 1fr; }
  .rd-svc-body { padding: 4px 18px 26px; }
  .rd-svc-banner { padding: 20px; min-height: 140px; }
  .rd-svc-tabs { position: static; }
  .rd-office-card { padding: 22px; }
  .rd-qa-a { padding-left: 24px; }
  .rd-detail .university-header-card { flex-direction: column; text-align: center; margin-top: -30px; }
  .rd-hdr-cta { margin: 0; }
  .rd-office { padding: 48px 0; }
  .rd-office .rd-office-map iframe { height: 280px; }
}
.rd-find-form select, .rd-find-form button { min-width: 0; width: 100%; box-sizing: border-box; }
.rd-find-form button { width: auto; }


/* ── Fidelity pass 1 (from 1440 px side-by-side + overlay comparison) ── */
.rd-hero-inline h1 { display: inline-flex; align-items: center; gap: 12px; margin: 6px 0 8px; font-size: 34px; }
.rd-inline-ico { color: #1f3d6e; display: inline-flex; }
.rd-hero-inline .rd-hero-rule { display: none; }
.rd-list-narrow { max-width: 560px; }
.rd-list-narrow .rd-list-head, .rd-list-narrow .rd-list-row { grid-template-columns: 1.3fr .6fr .7fr; }
.rd-list-row { padding: 15px 8px; }
.rd-svc-banner { min-height: 205px; }
.rd-banner-teal { padding: 100px 0 90px; }
.rd-banner-teal h1 { font-size: 46px; }
.rd-banner-teal p { max-width: 640px; }
.rd-underlined::after { content: ""; display: block; width: 100px; height: 4px; margin: 14px auto 0; border-radius: 4px; background: #1b78ad; }
.rd-grad-title { background: linear-gradient(90deg, #1f3d6e, #4b5563); -webkit-background-clip: text; background-clip: text; color: transparent !important; font-size: 34px !important; }
.rd-offices-grid { grid-template-columns: minmax(0, 620px); justify-content: center; }
.rd-qa summary { padding: 24px 24px; }
/* courses: grey band behind the info card, like the reference */
.rd-info-band { background: #e4e4e6; padding: 1px 0 6px; margin-top: 50px; }
.rd-info-band .rd-info-card { margin: 28px 0 24px; }

/* country page: photo hero + "Why study" */
.rd-dhero { background: var(--rd-dhero-img, linear-gradient(135deg, #1f3d2b, #4b5563)) center / cover no-repeat; padding: 70px 0; }
.rd-dtext h2 { margin: 0 0 12px; font: 700 24px/1.3 var(--rd-font-title); color: #fff; }
.rd-dtext p { font-size: 15px; }
.rd-dstat-ic { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: linear-gradient(135deg, #f7f0e3, #d6bf95); color: #7d5f27; margin-bottom: 4px; }
.rd-dstat { align-items: flex-start; }
.rd-sec-head { text-align: center; margin-bottom: 34px; }
.rd-sec-head .rd-title { margin: 10px 0 0; }
.rd-ico-green { background: linear-gradient(135deg, #1f5d3a, #b28a4c); box-shadow: none; }
.rd-rule-green { background: linear-gradient(90deg, #1f5d3a, #b28a4c); }
.rd-fi-green { background: linear-gradient(135deg, #1f5d3a, #b28a4c); }
.rd-why .rd-feature { text-align: center; border: 1px solid #f7f0e3; background: linear-gradient(135deg, #fff, #f3f8ff); }
.rd-why .rd-fi { margin-left: auto; margin-right: auto; }
@media (max-width: 640px) { .rd-hero-inline h1 { font-size: 26px; } .rd-banner-teal h1 { font-size: 30px; } .rd-banner-teal { padding: 60px 0; } }
.rd-list-card { width: min(560px, calc(100% - 32px)); box-sizing: border-box; }
.rd-dtext h1 { font-size: 48px; }
.rd-page-hero h1.rd-grad-title { background-image: linear-gradient(90deg, #1f3d6e, #4b5563); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent !important; }

/* ── Fidelity pass 2 (390 px comparison) ── */
@media (max-width: 640px) {
  .rd-svc-tabs { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
  .rd-svc-tabs a { flex: none; }
  .rd-dhero { padding: 34px 0; }
  .rd-dhero-grid { text-align: left; gap: 20px; }
  .rd-dflag img { width: 100%; height: auto; max-height: 190px; object-fit: cover; }
  .rd-dtext h1 { font-size: 32px; }
  .rd-dtext h2 { font-size: 19px; }
}

/* ═══ Accessibility overrides (must follow every rule above that sets orange text) ═══ */
.top-nav .nav-links a.is-active, .rd-dd.is-active > button, .top-nav .nav-links a.nav-accent, .top-nav .nav-links a.nav-accent .nav-ico,
.top-nav .nav-links > a:hover, .rd-dd > button:hover { color: var(--rd-orange-ink); }
.rd-btn-outline { color: #1b78ad; border-color: #1b78ad; }
.rd-btn-outline:hover { background: #1b78ad; color: #fff; }
.rd-cta-band .rd-btn-outline { color: #fff; border-color: #fff; }
.rd-cta-band .rd-btn-outline:hover { background: #fff; color: #1f3d6e; }
.rd-tab { padding: 18px 11px; }
.rd-list-row small, .rd-uni .rd-cap small, .rd-course small, .rd-card small, .rd-notice, .rd-svc-body p, .rd-qa-a { color: #4b5563; }
.program-card .program-school, .program-card .program-meta, .detail-page .program-facts label { color: #4b5563; }
.rd-eyebrow, .rd-office-list a, .rd-office-list li > svg { color: var(--rd-orange-ink); }
.rd-results-title small, .rd-empty, .rd-list-note, .rd-info-col p, .rd-info-col a { color: #4b5563; }
.rd-explore { background: #4b5d82; }
.rd-person h4 { color: #145e8a; }
.rd-qa-a a, .rd-faq-answer a { color: var(--rd-orange-ink); }
.rd-chips a.is-on { background: linear-gradient(90deg, var(--rd-btn-from), var(--rd-btn-to)); border-color: var(--rd-btn-from); color: #fff; }
.rd-detail .detail-stats strong { color: var(--rd-orange-ink); }
.detail-breadcrumbs a { color: #4b5563; }
.detail-page .detail-breadcrumbs a { color: #4b5563; }

/* legacy-page contrast and target-size fixes */
body .visa-wa-btn { background: #0f7a40; }
body .application-note, body .apply-note { color: #4b5563; }
body .apply-program-details small { color: #4b5563; }
body .pw-toggle { width: 36px; height: 36px; }
input[type="checkbox"], input[type="radio"] { min-width: 18px; min-height: 18px; }
body.apply-program-page small { color: #4b5563; }

/* ── Programme detail (/courses/:id) and results paging ───────────────── */
.pg-crumbs { padding-top: 18px; padding-bottom: 6px; font-size: 14px; color: #4b5563; }
.pg-crumbs a { color: #1f3d6e; }
.pg-hero { background: linear-gradient(135deg, #11233b, #1f3d6e); color: #fff; padding: 34px 0; }
.pg-hero-in { display: grid; grid-template-columns: auto 1fr auto; gap: 24px; align-items: center; }
.pg-logo { width: 96px; height: 96px; border-radius: 16px; background: #fff; display: grid; place-items: center; padding: 10px; font-weight: 700; color: #11233b; text-align: center; font-size: 12px; }
.pg-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pg-title h1 { margin: 8px 0 6px; color: #fff; font: 800 30px/1.2 var(--rd-font-head); }
.pg-title p { margin: 0; color: #dbe5f3; } .pg-title a { color: #fff; }
.pg-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 12px; border-radius: 999px; background: #b28a4c; color: #11233b; font: 700 12px var(--rd-font-body); margin-right: 8px; }
.pg-chip-alt { background: rgba(255,255,255,.16); color: #fff; }
.pg-cta { display: flex; flex-direction: column; gap: 10px; min-width: 220px; } .pg-cta small { color: #c7d4e8; font-size: 12px; max-width: 230px; }
.pg-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 24px; padding-top: 28px; padding-bottom: 28px; align-items: start; }
.pg-card { background: #fff; border: 1px solid #e3e8ef; border-radius: 16px; padding: 24px; margin-bottom: 20px; box-shadow: 0 1px 2px rgba(17,35,59,.06); }
.pg-card h2 { margin: 0 0 12px; font: 700 20px var(--rd-font-head); color: #11233b; }
.pg-note { font-size: 13px; color: #4b5563; margin-top: 10px; }
.pg-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; margin: 0; }
.pg-facts dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: #4b5563; font-weight: 700; } .pg-facts dd { margin: 2px 0 0; font-weight: 600; color: #11233b; }
.pg-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; } .pg-list li { display: flex; gap: 10px; align-items: flex-start; } .pg-list svg { color: #17703f; flex: none; margin-top: 4px; }
.pg-steps { margin: 0; padding-left: 20px; display: grid; gap: 10px; } .pg-steps b { color: #11233b; }
.pg-side p { margin: 6px 0; }
.pg-more { padding-bottom: 36px; } .pg-more h2 { margin: 0 0 16px; font: 700 22px var(--rd-font-head); color: #11233b; }
.program-card h3 .program-link { color: inherit; text-decoration: none; } .program-card h3 .program-link:hover { text-decoration: underline; color: #1f3d6e; }
.pg-pager { display: flex; justify-content: center; align-items: center; gap: 20px; margin: 26px 0 6px; } .pg-pager a { padding: 8px 18px; border-radius: 8px; border: 1px solid #c7d4e8; color: #1f3d6e; text-decoration: none; font-weight: 600; } .pg-pager a:hover { background: #f2f6fb; }
@media (max-width: 900px) { .pg-hero-in { grid-template-columns: 1fr; } .pg-grid { grid-template-columns: 1fr; } .pg-cta { min-width: 0; } .pg-title h1 { font-size: 24px; } }
@media (max-width: 520px) { .pg-facts { grid-template-columns: 1fr; } .pg-card { padding: 18px; } }

/* ── Content cards (news, stories, services) ──────────────────────────── */
.dt-wrap { padding-top: 28px; padding-bottom: 40px; }
.dt-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dt-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e3e8ef; border-radius: 16px; overflow: hidden; color: inherit; text-decoration: none; box-shadow: 0 1px 2px rgba(17,35,59,.06); transition: box-shadow .15s, transform .15s; }
.dt-card:hover { box-shadow: 0 14px 30px -12px rgba(17,35,59,.3); transform: translateY(-2px); }
.dt-card img, .dt-ph { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: linear-gradient(135deg, #1f3d6e, #52a3b6); }
.dt-card-b { padding: 16px 18px 20px; } .dt-card-b h3 { margin: 10px 0 6px; font: 700 18px/1.3 var(--rd-font-head); color: #11233b; } .dt-card-b p { margin: 0; color: #4b5563; font-size: 14px; } .dt-card-b small { display: block; margin-top: 8px; color: #4b5563; }
.dt-empty { text-align: center; max-width: 640px; margin: 24px auto 0; } .dt-empty p { color: #4b5563; }
.dt-article { max-width: 780px; padding-top: 12px; padding-bottom: 48px; } .dt-article h1 { font: 800 32px/1.2 var(--rd-font-head); color: #11233b; margin: 12px 0 8px; } .dt-article p { font-size: 17px; line-height: 1.7; }
.dt-lead { font-size: 19px !important; color: #2b3646; } .dt-hero { width: 100%; border-radius: 16px; margin: 12px 0 20px; aspect-ratio: 16/9; object-fit: cover; }
.dt-avatar { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 3px solid #b28a4c; } .dt-quote { margin: 20px 0; padding: 18px 22px; border-left: 4px solid #b28a4c; background: #f7f0e3; font-size: 20px; font-style: italic; border-radius: 0 12px 12px 0; }
.dt-h2 { font: 700 22px var(--rd-font-head); color: #11233b; margin: 0 0 16px; }
.dt-dir { display: grid; grid-template-columns: 280px 1fr; gap: 36px; align-items: start; padding-top: 12px; padding-bottom: 56px; } .dt-dir > img { width: 100%; border-radius: 20px; object-fit: cover; aspect-ratio: 4/5; box-shadow: 0 14px 34px -14px rgba(17,35,59,.4); }
.dt-dir h1 { font: 800 34px var(--rd-font-head); color: #11233b; margin: 10px 0 4px; } .dt-dir p { font-size: 17px; line-height: 1.7; } .dt-message { background: #f2f6fb; border-radius: 16px; padding: 4px 22px 10px; margin: 16px 0; } .dt-message h2 { font: 700 20px var(--rd-font-head); } .dt-sig { max-height: 70px; }
.rd-svc-cta .rd-btn-outline { margin-left: 10px; }
@media (max-width: 900px) { .dt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dt-dir { grid-template-columns: 1fr; } .dt-dir > img { max-width: 260px; } }
@media (max-width: 600px) { .dt-grid { grid-template-columns: 1fr; } .dt-article h1 { font-size: 26px; } }
.dt-card-b h2 { margin: 10px 0 6px; font: 700 18px/1.3 var(--rd-font-head); color: #11233b; }
.detail-breadcrumbs span, .pg-crumbs span { color: #4b5563; }
.program-card .save-program { color: #1f3d6e; }

.detail-page .program-card .save-program { color: #1f3d6e !important; }

/* Task pages (application form, payment, profile) keep the floating shortcuts out of the way of the form. */
.no-float .rd-cta-pill, .no-float .rd-tab-apply { display: none !important; }

/* Programme card actions are real links (a server-built /apply?programme=… URL), not script-bound buttons. */
.program-side .program-apply { display: inline-flex; align-items: center; justify-content: center; width: 148px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, #1f3d6e, #173054); color: #fff; font: 700 14px var(--rd-font-body); text-decoration: none; box-shadow: 0 2px 8px rgba(31,61,110,.3); }
.program-side .program-apply:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(31,61,110,.4); }
@media (max-width: 760px) { .program-side .program-apply { width: 100%; } }
.cf-count { margin: 14px 0 0; color: #4b5563; font-size: 14px; text-align: center; } .cf-notice { margin: 8px auto 0; max-width: 640px; padding: 8px 12px; border-radius: 8px; background: #fff4d6; color: #5f3d00; font-size: 13px; }
.rd-find-form { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; } @media (max-width: 900px) { .rd-find-form { grid-template-columns: 1fr 1fr; } .rd-find-form button { grid-column: 1 / -1; } } @media (max-width: 520px) { .rd-find-form { grid-template-columns: 1fr; } }

/* ── Table of contents (country pages) ─────────────────────────────────── */
html { scroll-padding-top: 88px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
.rd-dsec { scroll-margin-top: 88px; }
.rd-dsec h2:focus { outline: none; } .rd-dsec h2:focus-visible { outline: 3px solid #1f3d6e; outline-offset: 6px; border-radius: 4px; }
.toc { position: fixed; left: 0; top: 150px; z-index: 900; }
.toc-card { position: relative; width: 248px; padding: 14px 14px 12px; background: #fff; border-radius: 0 16px 16px 0; box-shadow: 0 12px 34px rgba(17,35,59,.22); border: 1px solid #e3e8ef; border-left: 0; }
.toc-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; color: #1f3d6e; }
.toc-title { margin: 0; font: 700 15px var(--rd-font-head); color: #1f3d6e; }
.toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.toc a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; min-height: 36px; border-radius: 8px; color: #2b3646; text-decoration: none; font: 500 13px var(--rd-font-body); }
.toc a svg { color: #1b78ad; flex: none; }
.toc a:hover { background: #f2f6fb; color: #11233b; }
.toc a.is-active { background: #e6edf7; color: #11233b; font-weight: 700; box-shadow: inset 3px 0 0 #b28a4c; }
.toc a:focus-visible, .toc-toggle:focus-visible { outline: 3px solid #1f3d6e; outline-offset: 2px; }
.toc-toggle { display: inline-flex; align-items: center; gap: 6px; border: 0; cursor: pointer; font: 700 12px var(--rd-font-body); }
.toc-hide { position: absolute; right: -52px; top: 14px; padding: 7px 12px 7px 10px; background: #1f3d6e; color: #fff; border-radius: 0 10px 10px 0; min-height: 32px; }
.toc-hide:hover { background: #173054; }
.toc-show { padding: 9px 14px; background: #1f3d6e; color: #fff; border-radius: 0 12px 12px 0; box-shadow: 0 8px 22px rgba(17,35,59,.3); min-height: 40px; }
.toc.is-collapsed { top: auto; bottom: 96px; }
@media (max-width: 760px) { .toc-card { width: min(272px, 82vw); } .toc:not(.is-collapsed) { top: 120px; } }
@media print { .toc { display: none; } }
.rd-pc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-bottom: 18px; }
.rd-pc { background: #fff; border: 1px solid #e3e8ef; border-radius: 14px; padding: 18px; box-shadow: 0 1px 2px rgba(17,35,59,.06); }
.rd-pc h3 { margin: 0 0 4px; font: 700 17px var(--rd-font-head); color: #11233b; } .rd-pc p { margin: 0 0 8px; color: #4b5563; font-size: 13px; } .rd-pc ul { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 4px; font-size: 14px; } .rd-pc a { color: #1f3d6e; } .rd-pc-all { font-weight: 700; font-size: 13px; text-decoration: none; }
.pg-table { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; } .pg-table th, .pg-table td { padding: 10px 14px; text-align: left; border-top: 1px solid #e3e8ef; } .pg-table thead th { background: #f2f6fb; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #4b5563; border-top: 0; } .pg-table tbody th { font-weight: 700; color: #11233b; }
.table-wrap.pg-fees { overflow-x: auto; border: 1px solid #e3e8ef; border-radius: 12px; }

/* ── Institution partnership form ──────────────────────────────────────── */
.pf-section { background: linear-gradient(180deg, #f2f6fb, #fff); scroll-margin-top: 88px; }
.pf-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; align-items: start; }
.pf-intro h2 { font: 800 30px/1.2 var(--rd-font-head); color: #11233b; margin: 6px 0 12px; } .pf-intro p { color: #2b3646; line-height: 1.7; }
.pf-form { background: #fff; border: 1px solid #e3e8ef; border-radius: 18px; padding: 26px; box-shadow: 0 14px 34px -18px rgba(17,35,59,.35); }
.pf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.pf-full { grid-column: 1 / -1; padding: 0; }
.pf-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; }
.pf-field label { font: 700 13px var(--rd-font-body); color: #11233b; }
.pf-field input:not([type=checkbox]), .pf-field select, .pf-field textarea { width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid #aab6c8; border-radius: 10px; background: #fff; font: 400 15px var(--rd-font-body); color: #17212f; }
.pf-field textarea { resize: vertical; }
.pf-field input:focus, .pf-field select:focus, .pf-field textarea:focus { outline: 3px solid #c7d4e8; border-color: #1f3d6e; }
.pf-field [aria-invalid="true"] { border-color: #b42318; }
.pf-field small { color: #4b5563; font-size: 12px; } .pf-req { color: #b42318; }
.pf-err { color: #b42318; font-size: 13px; font-weight: 600; min-height: 0; } .pf-err:empty { display: none; }
.pf-trap { position: absolute; left: -9999px; }
.pf-consent { margin: 4px 0 14px; font-size: 14px; } .pf-consent label { display: flex; gap: 10px; align-items: flex-start; } .pf-consent input { width: 20px; height: 20px; margin-top: 2px; accent-color: #1f3d6e; }
.pf-actions .rd-btn-orange[disabled] { opacity: .6; cursor: progress; }
.pf-status { margin-top: 14px; padding: 0; font-size: 15px; } .pf-status:empty { display: none; }
.pf-status.is-ok { padding: 12px 14px; border-radius: 10px; background: #e6f4ec; color: #0f4d2a; border: 1px solid #a9d9bd; }
.pf-status.is-error { padding: 12px 14px; border-radius: 10px; background: #fdeceb; color: #7a1a12; border: 1px solid #f1b5b0; }
@media (max-width: 900px) { .pf-wrap { grid-template-columns: 1fr; } .pf-grid { grid-template-columns: 1fr; } }

/* Dropdown: an invisible bridge keeps the menu open while the pointer crosses the gap; mobile drawer shows sub-links indented. */
.rd-dd-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.rd-dd-menu a:focus-visible { outline: 3px solid #1f3d6e; outline-offset: -3px; background: #f2f6fb; }
.mobile-nav .mobile-nav-sub { padding-left: 34px; font-size: 14px; opacity: .92; border-top: 0; }
.mobile-nav .mobile-nav-sub::before { content: "› "; }

/* ── Photography: purposeful, never behind dense forms or tables. A navy overlay (≥ 78 % at the text side) keeps white text above WCAG AA;
      the solid navy colour shows if an image fails to load. ───────────────────────────────────────────────────────────────────── */
.dt-page .rd-page-hero, .ph-hero { color: #fff; background: linear-gradient(120deg, rgba(17,35,59,.92) 0%, rgba(17,35,59,.8) 55%, rgba(31,61,110,.62) 100%), var(--ph, url("/assets/graduation%20photo.avif")) center / cover no-repeat, #11233b; padding-bottom: 54px; }
.dt-page .rd-page-hero h1, .ph-hero h1 { color: #fff; } .dt-page .rd-page-hero p, .ph-hero p { color: #e6edf7; }
.dt-page .rd-page-hero .rd-hero-icon { color: #d6bf95; }
.rd-cta-band { background: linear-gradient(135deg, rgba(17,35,59,.9), rgba(31,61,110,.82)), url("/assets/graduation%201.avif") center / cover no-repeat, #11233b; }
.pg-hero { background: linear-gradient(135deg, rgba(17,35,59,.93), rgba(31,61,110,.84)), url("/assets/photo%202.avif") center / cover no-repeat, #11233b; }
.rd-finder-card-wrap { background: linear-gradient(180deg, rgba(17,35,59,.84), rgba(31,61,110,.72)), url("/assets/photo%201.avif") center / cover no-repeat, #f2f6fb; padding: 56px 0; }
.rd-finder-card-wrap .rd-find-card { box-shadow: 0 18px 50px rgba(0,0,0,.28); }
.pf-section { background: #f2f6fb; }
@media (max-width: 760px) { .rd-finder-card-wrap { padding: 32px 0; } }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* The contents card sits beside the floating Student Portal / Consultation tabs, not under them. */
.toc:not(.is-collapsed) { left: 34px; } .toc:not(.is-collapsed) .toc-card { border-radius: 16px; border-left: 1px solid #e3e8ef; }
.toc.is-collapsed { left: 34px; }
.toc-show { border-radius: 12px; }
@media (max-width: 760px) { .toc:not(.is-collapsed), .toc.is-collapsed { left: 30px; } }

/* ── Quick-action dock (replaces the vertical edge tabs and the centre call-to-action pill) ── */
.sg-dock { position: fixed; right: 16px; bottom: 76px; z-index: 940; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
.sg-dock.is-on { opacity: 1; visibility: visible; transform: none; }
@media (prefers-reduced-motion: reduce) { .sg-dock { transition: none; } }
.sg-dock-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: #fff; color: #1f3d6e; border: 1px solid #c7d4e8; box-shadow: 0 8px 22px rgba(17,35,59,.18); font: 700 13px var(--rd-font-body); text-decoration: none; }
.sg-dock-btn:hover { background: #f2f6fb; } .sg-dock-btn:focus-visible { outline: 3px solid #1f3d6e; outline-offset: 2px; }
.sg-dock-primary { background: #1f3d6e; color: #fff; border-color: #1f3d6e; } .sg-dock-primary:hover { background: #173054; }
@media (max-width: 640px) { .sg-dock { right: 10px; bottom: 76px; } .sg-dock-btn span { display: none; } .sg-dock-btn { width: 44px; padding: 0; justify-content: center; } .sg-dock-primary span { display: inline; } .sg-dock-primary { width: auto; padding: 0 16px; } }
.no-float .sg-dock { display: none !important; }
.rd-tab, .rd-cta-pill { display: none !important; }

/* FAQ topic icons are SVG (currentColor) rather than emoji */
.rd-faq-tile .ic, .rd-qa .ic { color: var(--sg-navy-700); }
.rd-faq-tile .ic svg, .rd-qa .ic svg { display: block; }
