:root {
    --navy-950: #071b2d;
    --navy-900: #102a43;
    --navy-800: #183b56;
    --navy-700: #244f6c;
    --teal-700: #0f6f68;
    --teal-500: #2a9d8f;
    --saffron-500: #f4a321;
    --saffron-300: #ffd17a;
    --cream-100: #fffaf0;
    --cream-200: #f8f2e7;
    --slate-700: #415466;
    --slate-500: #5c6f82;
    --slate-300: #cbd5df;
    --slate-150: #e8edf2;
    --white: #ffffff;
    --shadow-sm: 0 12px 30px rgba(16, 42, 67, .08);
    --shadow-lg: 0 28px 70px rgba(7, 27, 45, .16);
    --radius-sm: .75rem;
    --radius-md: 1.25rem;
    --radius-lg: 2rem;
    --section-space: clamp(4.5rem, 8vw, 8rem);
    --font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-display: Georgia, "Times New Roman", serif;
}

html { scroll-behavior: smooth; overflow-x: clip; }

body {
    color: var(--navy-900);
    background: var(--white);
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.7;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}


a { color: var(--teal-700); text-underline-offset: .2em; }
a:hover { color: var(--navy-900); }
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid var(--saffron-500);
    outline-offset: 3px;
    box-shadow: 0 0 0 5px rgba(255, 255, 255, .9);
}
img { max-width: 100%; height: auto; }

h1, h2, h3, h4, h5, h6 {
    color: var(--navy-950);
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.08;
}

h1 { font-size: clamp(2.8rem, 8vw, 6rem); }
h2 { font-size: clamp(2.15rem, 5vw, 3.9rem); }
p { color: var(--slate-700); }

.skip-link {
    position: fixed;
    z-index: 9999;
    top: 1rem;
    left: 1rem;
    padding: .8rem 1rem;
    color: var(--white);
    background: var(--navy-950);
    border-radius: .5rem;
    transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

.section-space { padding-block: var(--section-space); }
.bg-soft { background: var(--cream-100); }
.bg-navy { background: var(--navy-950); }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: var(--teal-700);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
}
.eyebrow::before { width: 1.8rem; height: 2px; content: ""; background: currentColor; }

.lead-copy { color: var(--navy-800); font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.65; }
.text-link, .card-link { display: inline-flex; min-height: 1.5rem; align-items: center; color: var(--navy-900); font-weight: 800; text-decoration: none; }
.text-link span, .card-link span { display: inline-block; transition: transform .2s ease; }
.text-link:hover span, .card-link:hover span { transform: translateX(.25rem); }

.btn {
    border-radius: 999px;
    font-weight: 750;
    padding: .72rem 1.25rem;
}
.btn-lg { padding: .95rem 1.55rem; font-size: 1rem; }
.btn-brand { color: var(--white); background: var(--teal-700); border-color: var(--teal-700); box-shadow: 0 10px 24px rgba(15, 111, 104, .18); }
.btn-brand:hover, .btn-brand:focus { color: var(--white); background: #0a5c57; border-color: #0a5c57; transform: translateY(-1px); }
.btn-outline-brand { color: var(--navy-900); background: transparent; border: 1px solid rgba(16, 42, 67, .3); }
.btn-outline-brand:hover, .btn-outline-brand:focus { color: var(--white); background: var(--navy-900); border-color: var(--navy-900); }

/* Loading skeleton */
.skeleton { overflow: hidden; position: relative; background: #e6e9e6; border-radius: .65rem; }
.skeleton::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent); transform: translateX(-100%); animation: skeleton-wave 1.3s infinite; }
.skeleton-nav { height: 4.5rem; }
.skeleton-kicker { width: 11rem; height: .9rem; }
.skeleton-title { width: 92%; height: 4rem; }
.skeleton-title.short { width: 63%; }
.skeleton-copy { width: 85%; height: 1.1rem; }
.skeleton-copy.short { width: 58%; }
.skeleton-visual { height: 31rem; border-radius: var(--radius-lg); }
@keyframes skeleton-wave { to { transform: translateX(100%); } }

/* Header and navigation */
.site-header { z-index: 1030; background: rgba(255,255,255,.95); border-bottom: 1px solid rgba(16,42,67,.08); backdrop-filter: blur(14px); }
.announcement-bar { color: rgba(255,255,255,.78); background: var(--navy-950); font-size: .8rem; }
.announcement-bar p { color: inherit; }
.announcement-bar a { color: var(--saffron-300); font-weight: 700; text-decoration: none; }
.navbar { min-height: 4.8rem; }
.brand-lockup { display: inline-flex; align-items: center; gap: .75rem; color: var(--navy-900); text-decoration: none; }
.brand-lockup:hover { color: var(--navy-900); }
.brand-mark { display: grid; width: 2.8rem; aspect-ratio: 1; place-items: center; color: var(--navy-950); background: var(--saffron-500); border-radius: 48% 48% 48% 14%; font-family: var(--font-display); font-size: 1.45rem; font-weight: 800; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -.02em; }
.brand-copy small { margin-top: .25rem; color: var(--slate-500); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.navbar .nav-link { position: relative; padding: .65rem .8rem !important; color: var(--slate-700); font-size: .92rem; font-weight: 700; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--navy-950); }
.navbar .nav-link.active::after { position: absolute; right: .8rem; bottom: .25rem; left: .8rem; height: 2px; content: ""; background: var(--saffron-500); }
.dropdown-menu { padding: .65rem; border-radius: 1rem; }
.dropdown-item { padding: .65rem .8rem; border-radius: .6rem; font-weight: 650; }
.dropdown-item:hover { color: var(--navy-900); background: var(--cream-100); }

.mobile-sidebar { width: min(90vw, 26rem) !important; }
.sidebar-nav a { display: flex; align-items: center; justify-content: space-between; padding: 1rem .25rem; color: var(--navy-900); border-bottom: 1px solid var(--slate-150); font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; text-decoration: none; }
.sidebar-nav a span { color: var(--slate-500); font-family: var(--font-sans); font-size: .7rem; }
.sidebar-note { padding: 1.3rem; background: var(--cream-100); border-radius: var(--radius-md); }

/* Hero */
.hero-section { position: relative; padding: clamp(5rem, 10vw, 8.5rem) 0; color: var(--white); background: var(--navy-950); }
.hero-grid { position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.35) 1px, transparent 1px); background-size: 70px 70px; mask-image: linear-gradient(to right, transparent, #000 35%, #000); }
.hero-section::before { position: absolute; width: 28rem; height: 28rem; top: -14rem; right: -8rem; content: ""; background: rgba(244,163,33,.16); border-radius: 50%; filter: blur(3px); }
.hero-eyebrow { color: var(--saffron-300); }
.hero-section h1 { margin: 1.1rem 0 1.5rem; color: var(--white); }
.hero-section h1 span { color: var(--saffron-300); font-style: italic; font-weight: 500; }
.hero-lead { max-width: 46rem; color: rgba(255,255,255,.75); font-size: clamp(1.05rem, 2vw, 1.25rem); }
.hero-section .btn-outline-light { color: var(--white); border-color: rgba(255,255,255,.42); }
.hero-section .btn-outline-light:hover { color: var(--navy-950); background: var(--white); }
.hero-proof { color: rgba(255,255,255,.72); font-size: .88rem; font-weight: 650; }
.hero-proof span { color: var(--saffron-300); }
.hero-dashboard { position: relative; padding: 1.1rem; background: var(--white); border: 1px solid rgba(255,255,255,.45); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); transform: rotate(1.2deg); }
.dashboard-topline { display: flex; justify-content: space-between; padding: .7rem .4rem 1.2rem; color: var(--navy-900); font-size: .78rem; font-weight: 800; }
.status-dot { color: var(--teal-700); }
.status-dot::before { display: inline-block; width: .5rem; height: .5rem; margin-right: .35rem; content: ""; background: var(--teal-500); border-radius: 50%; }
.focus-card { display: flex; align-items: center; gap: 1rem; margin-bottom: .7rem; padding: 1.15rem; color: var(--navy-900); background: var(--cream-100); border-radius: 1rem; }
.focus-card:nth-of-type(3) { background: #e9f5f2; }
.focus-card:nth-of-type(4) { background: #eef3f8; }
.focus-number { display: grid; width: 2.7rem; height: 2.7rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(16,42,67,.18); border-radius: 50%; font-size: .72rem; font-weight: 800; }
.focus-card small, .focus-card strong { display: block; }
.focus-card small { color: var(--slate-500); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.focus-card strong { font-family: var(--font-display); font-size: 1.08rem; }
.progress-note { display: flex; align-items: center; justify-content: space-between; margin-top: 1rem; padding: .8rem .5rem .2rem; }
.progress-note span, .progress-note strong { display: block; color: var(--navy-900); }
.progress-note span { color: var(--slate-500); font-size: .72rem; }
.progress-ring { display: grid; width: 3.3rem; height: 3.3rem; place-items: center; border: 5px solid var(--saffron-500); border-left-color: var(--cream-200); border-radius: 50%; }
.progress-ring span { color: var(--navy-900); font-weight: 900; }

.trust-strip { background: var(--white); border-bottom: 1px solid var(--slate-150); }
.trust-item { display: flex; align-items: center; gap: .7rem; min-height: 5.2rem; padding: 1rem; border-right: 1px solid var(--slate-150); border-bottom: 1px solid var(--slate-150); }
.trust-item strong { color: var(--saffron-500); font-size: .72rem; }
.trust-item span { color: var(--navy-900); font-family: var(--font-display); font-weight: 700; }

/* General sections */
.section-heading { max-width: 74rem; margin-bottom: 2rem; }
.section-heading > div { max-width: 46rem; }
.section-heading h2 { margin: .8rem 0 0; }
.section-heading > p { max-width: 31rem; margin: 0; }
.section-heading.light h2 { color: var(--white); }
.section-heading.light p { color: rgba(255,255,255,.66); }

.course-card, .blog-card, .faculty-card { overflow: hidden; background: var(--white); border: 1px solid var(--slate-150); border-radius: var(--radius-md); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.course-card:hover, .blog-card:hover, .faculty-card:hover { border-color: rgba(15,111,104,.32); box-shadow: var(--shadow-sm); transform: translateY(-5px); }
.course-card-visual { position: relative; display: flex; min-height: 12rem; align-items: flex-start; justify-content: space-between; padding: 1.2rem; overflow: hidden; }
.course-card-visual::before, .blog-card-visual::before, .gallery-pattern::before { position: absolute; width: 11rem; height: 11rem; right: -3rem; bottom: -5rem; content: ""; border: 2rem solid rgba(255,255,255,.22); border-radius: 50%; }
.visual-1 { background: linear-gradient(145deg, #0f6f68, #174d52); }
.visual-2 { background: linear-gradient(145deg, #d98913, #a9551e); }
.visual-3 { background: linear-gradient(145deg, #315c7c, #102a43); }
.visual-4 { background: linear-gradient(145deg, #6d557a, #342d5c); }
.course-index, .course-category { position: relative; z-index: 1; color: var(--white); }
.course-index { font-family: var(--font-display); font-size: 3.5rem; line-height: 1; opacity: .38; }
.course-category { padding: .38rem .65rem; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.25); border-radius: 999px; font-size: .7rem; font-weight: 800; letter-spacing: .04em; }
.course-card-body, .blog-card-body, .faculty-card-body { padding: 1.5rem; }
.course-card h2 a, .blog-card h2 a { color: var(--navy-950); text-decoration: none; }
.course-card p, .blog-card p { font-size: .94rem; }
.meta-chip { padding: .3rem .6rem; color: var(--slate-700); background: var(--cream-100); border-radius: 999px; font-size: .7rem; font-weight: 750; }

.learning-method { background: linear-gradient(to bottom, var(--white), #f7fbfa); }
.method-steps { border-top: 1px solid var(--slate-300); }
.method-steps article { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--slate-300); }
.method-steps article > span { color: var(--teal-700); font-size: .75rem; font-weight: 850; }
.method-steps h3 { margin-bottom: .4rem; font-size: 1.45rem; }
.method-steps p { margin: 0; }

.faculty-section .faculty-card { border-color: rgba(255,255,255,.12); }
.faculty-portrait { display: grid; min-height: 15rem; place-items: center; overflow: hidden; }
.faculty-portrait img { width: 100%; height: 100%; object-fit: cover; }
.faculty-portrait > span { color: rgba(255,255,255,.86); font-family: var(--font-display); font-size: 4rem; }
.portrait-1 { background: linear-gradient(145deg, #d98913, #7e3f25); }
.portrait-2 { background: linear-gradient(145deg, #0f766e, #164e63); }
.portrait-3 { background: linear-gradient(145deg, #596e8a, #293a54); }
.portrait-4 { background: linear-gradient(145deg, #8b657e, #4d3a68); }
.faculty-role { color: var(--teal-700); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.faculty-card h2 { margin-top: .55rem; }
.faculty-specialism { color: var(--navy-800); font-weight: 700; }

.blog-card-visual { position: relative; display: flex; min-height: 13rem; align-items: flex-end; padding: 1.2rem; overflow: hidden; text-decoration: none; }
.blog-card-visual span { position: relative; z-index: 1; color: var(--white); font-family: var(--font-display); font-size: 1.4rem; font-style: italic; }
.blog-meta, .article-meta { display: flex; flex-wrap: wrap; gap: .65rem 1rem; margin-bottom: .8rem; color: var(--slate-500); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.faq-panel { padding: clamp(1.5rem, 5vw, 4rem); background: var(--cream-100); border-radius: var(--radius-lg); }
.accordion-item { background: transparent; border-color: rgba(16,42,67,.15); }
.accordion-button { padding: 1.25rem .25rem; color: var(--navy-900); background: transparent; font-family: var(--font-display); font-size: 1.12rem; font-weight: 700; box-shadow: none !important; }
.accordion-button:not(.collapsed) { color: var(--teal-700); background: transparent; }
.accordion-body { padding: 0 .25rem 1.25rem; color: var(--slate-700); }

/* Internal page hero */
.page-hero { position: relative; padding: clamp(4.5rem, 9vw, 8rem) 0; overflow: hidden; background: var(--cream-100); border-bottom: 1px solid var(--slate-150); }
.page-hero::after { position: absolute; width: 22rem; height: 22rem; right: -8rem; bottom: -11rem; content: ""; border: 4rem solid rgba(244,163,33,.18); border-radius: 50%; }
.page-hero h1 { max-width: 58rem; margin: .9rem 0 1.3rem; font-size: clamp(2.8rem, 7vw, 5.4rem); }
.page-hero .lead { max-width: 48rem; color: var(--slate-700); font-size: 1.1rem; }
.breadcrumb { font-size: .78rem; }
.breadcrumb a { color: var(--slate-700); text-decoration: none; }
.page-hero-note { position: relative; z-index: 1; padding: 1.4rem; background: var(--white); border: 1px solid var(--slate-150); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.page-hero-note p { margin: .6rem 0 0; font-size: .9rem; }
.note-number { color: var(--saffron-500); font-family: var(--font-display); font-size: 2.6rem; font-weight: 700; line-height: 1; }

.value-card { display: flex; gap: 1.25rem; height: 100%; padding: 1.6rem; background: var(--white); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }
.value-card > span { color: var(--saffron-500); font-size: .75rem; font-weight: 850; }
.value-card h3 { font-size: 1.5rem; }
.value-card p { margin: 0; }
.section-sticky { top: 9rem; }
.timeline-list { border-left: 1px solid var(--slate-300); }
.timeline-list article { position: relative; display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 0 0 3rem 2rem; }
.timeline-list article::before { position: absolute; width: .75rem; height: .75rem; top: .1rem; left: -.4rem; content: ""; background: var(--saffron-500); border: 3px solid var(--white); border-radius: 50%; box-shadow: 0 0 0 1px var(--saffron-500); }
.timeline-list article > span { color: var(--teal-700); font-size: .74rem; font-weight: 850; }
.timeline-list h3 { font-size: 1.55rem; }
.inline-cta { display: flex; flex-direction: column; gap: 2rem; padding: clamp(1.5rem, 5vw, 3.5rem); background: var(--cream-100); border-radius: var(--radius-lg); }
.inline-cta h2 { margin: .6rem 0; }

.filter-toolbar { padding-bottom: 1.3rem; border-bottom: 1px solid var(--slate-150); }
.filter-btn { padding: .5rem .85rem; color: var(--slate-700); background: var(--white); border: 1px solid var(--slate-300); font-size: .78rem; }
.filter-btn:hover, .filter-btn.active { color: var(--white); background: var(--navy-900); border-color: var(--navy-900); }
.filter-item, .gallery-item { transition: opacity .2s ease, transform .2s ease; }
.filter-item.is-hidden, .gallery-item.is-hidden { display: none; }
.checklist-grid, .question-grid { display: grid; gap: 1rem; }
.checklist-grid > div, .question-grid > div { display: flex; gap: .9rem; padding: 1.2rem; background: var(--white); border: 1px solid var(--slate-150); border-radius: 1rem; }
.checklist-grid span, .question-grid span { color: var(--saffron-500); font-size: .72rem; font-weight: 850; }
.checklist-grid p, .question-grid p { margin: 0; color: var(--navy-900); font-weight: 650; }
.programme-facts { display: grid; gap: .9rem; }
.programme-facts div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--slate-150); }
.programme-facts small { color: var(--slate-500); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.programme-facts strong { color: var(--navy-900); }
.programme-content h3 { margin-top: 2.5rem; font-size: 1.65rem; }
.feature-list { display: grid; gap: .8rem; padding: 0; list-style: none; }
.feature-list li { position: relative; padding-left: 1.8rem; color: var(--slate-700); }
.feature-list li::before { position: absolute; left: 0; content: "✓"; color: var(--teal-700); font-weight: 900; }
.enquiry-card { padding: 1.5rem; background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }

.teaching-points { display: grid; gap: .8rem; }
.teaching-points > div { display: grid; grid-template-columns: 6rem 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--slate-300); }
.teaching-points strong { color: var(--navy-900); font-family: var(--font-display); font-size: 1.2rem; }
.teaching-points span { color: var(--slate-700); }

.gallery-card { position: relative; min-height: 25rem; overflow: hidden; border-radius: var(--radius-md); }
.gallery-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gallery-pattern { position: absolute; inset: 0; overflow: hidden; }
.gallery-pattern > span { position: absolute; top: 1.4rem; left: 1.4rem; color: rgba(255,255,255,.6); font-family: var(--font-display); font-size: 3.5rem; }
.gallery-overlay { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 4.5rem 1.5rem 1.5rem; background: linear-gradient(transparent, rgba(7,27,45,.94)); }
.gallery-overlay span { color: var(--saffron-300); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gallery-overlay h2 { margin: .5rem 0; color: var(--white); }
.gallery-overlay p { margin: 0; color: rgba(255,255,255,.72); }

.featured-article { background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: var(--radius-lg); }
.featured-article-visual { display: grid; min-height: 22rem; place-items: center; }
.featured-article-visual span { color: rgba(255,255,255,.86); font-family: var(--font-display); font-size: clamp(2.5rem, 5vw, 4rem); font-style: italic; line-height: .95; text-align: center; }
.featured-article-copy { padding: clamp(1.5rem, 5vw, 4rem); }
.featured-article-copy h2 { margin: 1rem 0; font-size: clamp(2rem, 4vw, 3.2rem); }

.article-hero { padding: clamp(4.5rem, 9vw, 8rem) 0; background: var(--cream-100); }
.article-hero h1 { margin: 1rem 0 1.4rem; font-size: clamp(2.7rem, 7vw, 5.2rem); }
.article-hero .lead { max-width: 50rem; margin-inline: auto; color: var(--slate-700); }
.article-content { color: var(--slate-700); font-family: var(--font-display); font-size: 1.18rem; line-height: 1.85; }
.article-content h2 { margin: 2.8rem 0 1rem; font-size: 2rem; }
.article-content p:first-child { color: var(--navy-800); font-size: 1.35rem; }
.article-takeaway { margin-top: 3rem; padding: 1.8rem; background: #eaf5f2; border-left: 4px solid var(--teal-700); border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.article-sidebar { display: grid; gap: 1rem; }
.sidebar-block { padding: 1.4rem; background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }
.article-links li + li { border-top: 1px solid var(--slate-150); }
.article-links a { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 0; color: var(--navy-900); font-size: .88rem; font-weight: 700; text-decoration: none; }
.sidebar-cta { color: var(--white); background: var(--navy-950); }
.sidebar-cta h2 { color: var(--white); }
.sidebar-cta p { color: rgba(255,255,255,.7); }

.resource-card { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; height: 100%; padding: clamp(1.4rem, 4vw, 2.2rem); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }
.resource-number { color: var(--saffron-500); font-family: var(--font-display); font-size: 1.4rem; }
.resource-card h2 { margin: .6rem 0 .8rem; font-size: 1.7rem; }
.resource-card ol { display: grid; gap: .45rem; padding-left: 1.2rem; color: var(--navy-800); font-weight: 650; }

/* Forms */
.form-panel, .contact-aside { padding: clamp(1.4rem, 4vw, 2.5rem); border-radius: var(--radius-lg); }
.form-panel { background: var(--cream-100); }
.contact-aside { background: var(--white); border: 1px solid var(--slate-150); box-shadow: var(--shadow-sm); }
.form-label { color: var(--navy-900); font-size: .82rem; font-weight: 750; }
.form-control, .form-select { min-height: 3.2rem; color: var(--navy-900); background-color: var(--white); border-color: var(--slate-300); border-radius: .75rem; }
textarea.form-control { min-height: 8rem; }
.form-control:focus, .form-select:focus { border-color: var(--teal-700); box-shadow: 0 0 0 .2rem rgba(15,111,104,.12); }
.form-feedback.is-success { color: var(--teal-700); font-weight: 700; }
.form-feedback.is-error { color: #a12b2b; font-weight: 700; }
.direct-contact { padding-top: 1.5rem; border-top: 1px solid var(--slate-150); }

.legal-content { font-size: 1.04rem; }
.legal-content h2 { margin: 2.5rem 0 .8rem; font-size: 1.75rem; }
.legal-content p, .legal-content li { color: var(--slate-700); line-height: 1.78; }
.legal-content li + li { margin-top: .45rem; }
.legal-lead { font-size: 1.18rem; color: var(--navy-900) !important; }
.legal-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin-bottom: 1.25rem; border: 1px solid var(--slate-150); border-radius: var(--radius-lg); background: var(--slate-150); }
.legal-summary div { display: grid; gap: .3rem; padding: 1rem 1.15rem; background: #fff; }
.legal-summary span { color: var(--slate-500); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.legal-summary strong { color: var(--navy-900); font-size: .92rem; }
.legal-summary a { color: var(--teal-700); }
.legal-nav { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 2rem; }
.legal-nav a { padding: .45rem .75rem; border: 1px solid var(--slate-150); border-radius: 999px; color: var(--slate-700); font-size: .8rem; font-weight: 700; text-decoration: none; }
.legal-nav a:hover, .legal-nav a[aria-current="page"] { border-color: var(--teal-700); background: var(--teal-700); color: #fff; }
.policy-contact { margin-top: 3rem; padding: 1.5rem; border-left: 4px solid var(--saffron-500); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; background: var(--cream-100); }
.policy-contact h2 { margin: .45rem 0 .65rem; font-size: 1.35rem; }
.policy-contact p:last-child { margin-bottom: 0; }

/* Footer */
.site-footer { color: var(--white); background: var(--navy-950); }
.footer-cta { padding: clamp(1.5rem, 5vw, 3rem); background: var(--teal-700); border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
.footer-cta h2 { margin: .7rem 0; color: var(--white); }
.footer-cta p { color: rgba(255,255,255,.72); }
.brand-lockup-light { color: var(--white); }
.brand-lockup-light:hover { color: var(--white); }
.brand-lockup-light .brand-copy small { color: rgba(255,255,255,.55); }
.footer-copy { max-width: 25rem; color: rgba(255,255,255,.6); }
.footer-title { color: var(--white); font-family: var(--font-sans); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-links { display: grid; gap: .55rem; }
.footer-links a, .footer-contact a { color: rgba(255,255,255,.66); text-decoration: none; }
.footer-links a:hover, .footer-contact a:hover { color: var(--saffron-300); }
.newsletter-form .form-control { min-height: 3rem; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); color: var(--white); }
.newsletter-form .form-control::placeholder { color: rgba(255,255,255,.45); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); }
.footer-bottom p, .footer-bottom a { color: rgba(255,255,255,.5); font-size: .76rem; }
.footer-bottom a { display: inline-flex; min-height: 1.5rem; align-items: center; text-decoration: none; }

.back-to-top { position: fixed; z-index: 1020; right: 1.1rem; bottom: 1.1rem; display: grid; width: 2.8rem; height: 2.8rem; place-items: center; opacity: 0; color: var(--white); background: var(--navy-900); border: 0; border-radius: 50%; pointer-events: none; transform: translateY(1rem); transition: .2s ease; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.privacy-toast { position: fixed; z-index: 1040; right: 1rem; bottom: 1rem; left: 1rem; display: none; align-items: center; justify-content: space-between; gap: 1rem; max-width: 42rem; margin-left: auto; padding: 1rem; background: var(--white); border: 1px solid var(--slate-150); border-radius: 1rem; box-shadow: var(--shadow-lg); }
.privacy-toast.is-visible { display: flex; }
.privacy-toast p { font-size: .82rem; }
.privacy-toast a { display: inline-flex; min-height: 1.5rem; align-items: center; font-size: .8rem; font-weight: 700; }

.error-page { display: grid; min-height: 65vh; place-items: center; padding: var(--section-space) 0; background: var(--cream-100); }
.error-page .container { max-width: 48rem; }
.error-code { margin-bottom: -2rem; color: rgba(244,163,33,.2); font-family: var(--font-display); font-size: clamp(7rem, 25vw, 14rem); font-weight: 800; line-height: .7; }
.error-page h1 { font-size: clamp(2.5rem, 7vw, 4.8rem); }
.error-page p { max-width: 38rem; margin-inline: auto; }

/* Premium homepage */
.premium-home-hero {
    position: relative;
    display: flex;
    min-height: clamp(45rem, 87vh, 58rem);
    align-items: center;
    padding: clamp(5rem, 10vw, 9rem) 0;
    color: var(--white);
    background:
        radial-gradient(circle at 78% 44%, rgba(15, 111, 104, .34), transparent 28%),
        linear-gradient(135deg, #061827 0%, var(--navy-950) 46%, #0c3540 100%);
}
.premium-hero-grid { position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.35) 1px, transparent 1px); background-size: 76px 76px; mask-image: linear-gradient(90deg, transparent, #000 35%, #000); }
.premium-hero-orb { position: absolute; border-radius: 50%; pointer-events: none; }
.orb-one { width: 24rem; height: 24rem; top: -13rem; left: -9rem; border: 4.5rem solid rgba(244, 163, 33, .11); }
.orb-two { width: 9rem; height: 9rem; right: 4%; bottom: 4%; background: rgba(244, 163, 33, .08); filter: blur(1px); }
.hero-label { display: inline-flex; align-items: center; gap: .75rem; color: var(--saffron-300); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hero-label span { display: block; width: 2.5rem; height: 2px; background: currentColor; }
.premium-home-hero h1 { max-width: 49rem; margin: 1.2rem 0 1.5rem; color: var(--white); font-size: clamp(3.35rem, 7.8vw, 6.8rem); }
.premium-home-hero h1 em { color: var(--saffron-300); font-weight: 500; }
.premium-hero-lead { max-width: 45rem; color: rgba(255,255,255,.72); font-size: clamp(1.05rem, 2vw, 1.26rem); }
.premium-primary-btn { color: var(--navy-950); font-weight: 850; box-shadow: 0 14px 36px rgba(244, 163, 33, .19); }
.premium-primary-btn:hover { color: var(--navy-950); background: #ffc45a; border-color: #ffc45a; }
.hero-assurances { display: grid; grid-template-columns: 1fr; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.15); }
.hero-assurances > div { display: grid; grid-template-columns: 2.2rem 1fr; column-gap: .7rem; }
.hero-assurances span { grid-row: span 2; color: var(--saffron-300); font-size: .7rem; font-weight: 850; }
.hero-assurances strong { color: var(--white); font-family: var(--font-display); font-size: 1rem; }
.hero-assurances small { color: rgba(255,255,255,.48); font-size: .72rem; }

.learning-compass { position: relative; min-height: 34rem; max-width: 39rem; margin-inline: auto; }
.compass-ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; transform: translate(-50%, -50%); }
.ring-outer { width: min(31rem, 90vw); height: min(31rem, 90vw); }
.ring-inner { width: min(22rem, 65vw); height: min(22rem, 65vw); border-style: dashed; border-color: rgba(244,163,33,.32); }
.compass-ring::before, .compass-ring::after { position: absolute; content: ""; background: rgba(255,255,255,.13); }
.compass-ring::before { width: 1px; height: 120%; top: -10%; left: 50%; }
.compass-ring::after { width: 120%; height: 1px; top: 50%; left: -10%; }
.compass-core { position: absolute; z-index: 2; top: 50%; left: 50%; display: grid; width: 14rem; height: 14rem; place-content: center; padding: 1.4rem; text-align: center; background: rgba(7,27,45,.76); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 30px 70px rgba(0,0,0,.25); backdrop-filter: blur(8px); transform: translate(-50%, -50%); }
.compass-core > span { color: var(--saffron-300); font-size: .58rem; font-weight: 850; letter-spacing: .18em; }
.compass-core strong { margin: .5rem 0; color: var(--white); font-family: var(--font-display); font-size: 1.65rem; line-height: 1.02; }
.compass-core small { color: rgba(255,255,255,.5); font-size: .58rem; text-transform: uppercase; }
.floating-note { position: absolute; z-index: 3; display: flex; align-items: center; gap: .75rem; min-width: 12.5rem; padding: .9rem; color: var(--navy-900); background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.55); border-radius: 1rem; box-shadow: var(--shadow-lg); backdrop-filter: blur(8px); }
.floating-note > span { display: grid; width: 2.3rem; height: 2.3rem; flex: 0 0 auto; place-items: center; color: var(--teal-700); background: #e8f5f2; border-radius: 50%; font-size: .68rem; font-weight: 850; }
.floating-note small, .floating-note strong { display: block; }
.floating-note small { color: var(--slate-500); font-size: .56rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.floating-note strong { font-family: var(--font-display); font-size: .96rem; }
.note-concept { top: 4%; left: 0; }
.note-practice { top: 45%; right: -2%; }
.note-review { bottom: 2%; left: 4%; }
.compass-accent { position: absolute; z-index: 1; width: 4.4rem; height: 4.4rem; top: 18%; right: 12%; background: var(--saffron-500); border: 1rem solid rgba(7,27,45,.65); border-radius: 50%; box-shadow: 0 0 0 1px rgba(255,255,255,.25); }

.premium-trust-bar { background: var(--white); border-bottom: 1px solid var(--slate-150); }
.premium-trust-item { display: flex; align-items: center; gap: .9rem; min-height: 6.5rem; padding: 1rem; border-right: 1px solid var(--slate-150); border-bottom: 1px solid var(--slate-150); }
.premium-trust-item > span { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; color: var(--teal-700); background: #e9f5f2; border-radius: 50%; font-family: var(--font-display); font-size: .75rem; font-weight: 800; }
.premium-trust-item strong, .premium-trust-item small { display: block; }
.premium-trust-item strong { color: var(--navy-900); font-family: var(--font-display); font-size: .97rem; }
.premium-trust-item small { color: var(--slate-500); font-size: .68rem; }

.premium-about-section { overflow: hidden; background: linear-gradient(180deg, var(--white), #fbfdfc); }
.about-composition { position: relative; min-height: 34rem; max-width: 37rem; }
.about-panel-main { position: absolute; z-index: 2; inset: 2rem 2.5rem 3rem 0; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.5rem, 5vw, 3.2rem); color: var(--white); background: var(--navy-950); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.about-panel-main .eyebrow { color: var(--saffron-300); }
.about-panel-main blockquote { margin: 1.3rem 0; color: var(--white); font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3.35rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.06; }
.about-panel-main p { color: rgba(255,255,255,.6); }
.about-panel-index { position: absolute; z-index: 3; right: 0; bottom: 0; display: grid; width: 9rem; height: 9rem; place-content: center; color: var(--navy-950); text-align: center; background: var(--saffron-500); border-radius: 50%; box-shadow: 0 16px 45px rgba(244,163,33,.28); }
.about-panel-index span, .about-panel-index strong { display: block; }
.about-panel-index span { font-size: .7rem; font-weight: 850; }
.about-panel-index strong { font-family: var(--font-display); font-size: 1.3rem; }
.about-panel-pattern { position: absolute; top: 0; right: 0; display: grid; grid-template-columns: repeat(3, 1.1rem); gap: .7rem; }
.about-panel-pattern i { width: 1.1rem; height: 1.1rem; background: var(--teal-500); border-radius: 50%; opacity: .55; }
.about-principles { border-top: 1px solid var(--slate-300); }
.about-principles > div { display: grid; grid-template-columns: 2.5rem 1fr; gap: .6rem; padding: .85rem 0; border-bottom: 1px solid var(--slate-300); }
.about-principles span { color: var(--saffron-500); font-size: .7rem; font-weight: 850; }
.about-principles p { margin: 0; color: var(--navy-900); font-weight: 700; }

.premium-heading > div:first-child { max-width: 49rem; }
.premium-heading > div:last-child { max-width: 30rem; }
.premium-heading > div:last-child p { margin-bottom: .8rem; }
.premium-courses-section .course-card { border: 0; box-shadow: 0 12px 35px rgba(16,42,67,.07); }

.premium-faculty-section { overflow: hidden; background: var(--white); }
.premium-faculty-section .faculty-card { box-shadow: 0 12px 35px rgba(16,42,67,.07); }

.premium-facilities-section { color: var(--white); background: var(--navy-950); }
.premium-facilities-section h2, .premium-facilities-section h3 { color: var(--white); }
.premium-facilities-section p { color: rgba(255,255,255,.62); }
.facility-intro { padding-bottom: 1rem; }
.facility-grid { display: grid; gap: 1rem; }
.facility-card { position: relative; display: grid; min-height: 24rem; align-content: end; overflow: hidden; padding: 1.4rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-md); }
.facility-card::after { position: absolute; inset: 0; content: ""; background: linear-gradient(transparent 20%, rgba(7,27,45,.94)); pointer-events: none; }
.facility-card > div:last-child, .facility-number { position: relative; z-index: 2; }
.facility-number { position: absolute; top: 1rem; left: 1rem; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; color: var(--saffron-300); background: rgba(7,27,45,.55); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; font-size: .65rem; font-weight: 850; }
.facility-card small { color: var(--saffron-300); font-size: .62rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.facility-card h3 { margin: .45rem 0; font-size: 1.6rem; }
.facility-card p { margin: 0; font-size: .83rem; }
.facility-visual { position: absolute; inset: 0; overflow: hidden; }
.facility-visual::before { position: absolute; inset: 0; content: ""; opacity: .65; background-image: linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px); background-size: 42px 42px; }
.facility-visual span, .facility-visual i { position: absolute; display: block; }
.facility-visual-one { background: linear-gradient(145deg, #1f7370, #0c3a46); }
.facility-visual-one span { width: 14rem; height: 9rem; top: 18%; right: -2rem; border: 2rem solid rgba(244,163,33,.56); border-radius: 50%; }
.facility-visual-one i { width: 8rem; height: 8rem; top: 32%; left: 15%; background: rgba(255,255,255,.12); transform: rotate(45deg); }
.facility-visual-two { background: linear-gradient(145deg, #9a5c24, #53371e); }
.facility-visual-two span { width: 13rem; height: 13rem; top: -4rem; right: -3rem; border: 2px solid rgba(255,255,255,.5); border-radius: 50%; box-shadow: 0 0 0 2.5rem rgba(255,255,255,.06); }
.facility-visual-two i { width: 1px; height: 70%; top: 8%; left: 45%; background: rgba(255,255,255,.4); transform: rotate(34deg); }
.facility-visual-three { background: linear-gradient(145deg, #475e7a, #1e3049); }
.facility-visual-three span { width: 12rem; height: 5rem; top: 23%; right: 4%; border: 1px solid rgba(255,255,255,.45); transform: skew(-18deg); }
.facility-visual-three i { width: 5rem; height: 5rem; top: 14%; left: 10%; background: var(--saffron-500); border-radius: 50%; opacity: .7; }
.facility-visual-four { background: linear-gradient(145deg, #6f5070, #382e55); }
.facility-visual-four span { width: 14rem; height: 14rem; top: -6rem; right: 8%; border: 2.5rem solid rgba(255,255,255,.1); border-radius: 50%; }
.facility-visual-four i { width: 8rem; height: 8rem; top: 20%; left: 12%; border: 1px solid var(--saffron-300); border-radius: 50%; }

.premium-results-section { overflow: hidden; background: linear-gradient(180deg, var(--cream-100), var(--white)); }
.results-board { position: relative; overflow: hidden; padding: 1.25rem; background: var(--white); border: 1px solid var(--slate-150); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.results-board-head { display: flex; flex-direction: column; gap: .2rem; margin-bottom: 1rem; padding: .7rem .7rem 1.2rem; border-bottom: 1px solid var(--slate-150); }
.results-board-head > span { color: var(--teal-700); font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.results-board-head small { color: var(--slate-500); }
.result-row { position: relative; z-index: 2; display: grid; grid-template-columns: 2.4rem 1fr; gap: .8rem; align-items: center; margin-bottom: .65rem; padding: 1rem; background: var(--cream-100); border-radius: .9rem; }
.result-code { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; color: var(--teal-700); background: var(--white); border-radius: 50%; font-size: .64rem; font-weight: 850; }
.result-row strong, .result-row small { display: block; }
.result-row strong { color: var(--navy-900); font-family: var(--font-display); }
.result-row small { color: var(--slate-500); font-size: .7rem; }
.result-row b { display: none; color: var(--slate-500); font-size: .55rem; letter-spacing: .1em; }
.results-path { position: absolute; z-index: 1; right: -3rem; bottom: -4rem; display: flex; align-items: end; gap: .6rem; opacity: .12; }
.results-path i { display: block; width: 2.2rem; background: var(--teal-700); border-radius: 1rem 1rem 0 0; }
.results-path i:nth-child(1) { height: 5rem; }.results-path i:nth-child(2) { height: 8rem; }.results-path i:nth-child(3) { height: 11rem; }.results-path i:nth-child(4) { height: 15rem; }

.premium-testimonials-section { overflow: hidden; }
.testimonial-carousel { max-width: 68rem; margin: 2.5rem auto 0; }
.premium-testimonial { padding: clamp(1.5rem, 5vw, 4rem); background: var(--navy-950); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.testimonial-mark { color: var(--saffron-500); font-family: var(--font-display); font-size: 5rem; line-height: .65; }
.premium-testimonial blockquote { max-width: 56rem; margin: 1.4rem 0 2rem; color: var(--white); font-family: var(--font-display); font-size: clamp(1.55rem, 4vw, 2.8rem); line-height: 1.25; }
.testimonial-person { display: flex; align-items: center; gap: .9rem; }
.testimonial-avatar { display: grid; width: 3.2rem; height: 3.2rem; place-items: center; color: var(--navy-950); background: var(--saffron-500); border-radius: 50%; font-family: var(--font-display); font-size: 1.3rem; font-weight: 800; }
.testimonial-person strong, .testimonial-person span { display: block; }
.testimonial-person strong { color: var(--white); }
.testimonial-person span { color: rgba(255,255,255,.52); font-size: .76rem; }
.testimonial-controls { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
.testimonial-controls button { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; color: var(--navy-900); background: var(--white); border: 1px solid var(--slate-300); border-radius: 50%; }
.testimonial-controls button:hover { color: var(--white); background: var(--navy-900); }
.feedback-standard { display: grid; gap: 2rem; margin-top: 2.5rem; padding: clamp(1.5rem, 5vw, 3.5rem); background: var(--white); border: 1px solid var(--slate-150); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.feedback-standard-intro h3 { margin: .8rem 0; font-size: clamp(1.8rem, 4vw, 3rem); }
.feedback-standard-points { display: grid; gap: .8rem; }
.feedback-standard-points > div { padding: 1rem 0; border-bottom: 1px solid var(--slate-150); }
.feedback-standard-points span { color: var(--saffron-500); font-size: .65rem; font-weight: 850; }
.feedback-standard-points strong { display: block; margin: .25rem 0; color: var(--navy-900); font-family: var(--font-display); font-size: 1.1rem; }
.feedback-standard-points p { margin: 0; font-size: .8rem; }

.premium-blog-section .blog-card { border: 0; box-shadow: 0 12px 35px rgba(16,42,67,.07); }
.premium-faq-panel { padding: clamp(1.5rem, 6vw, 4.5rem); }
.premium-faq-panel .accordion-button { display: flex; gap: .8rem; align-items: center; }
.faq-index { color: var(--saffron-500); font-family: var(--font-sans); font-size: .62rem; font-weight: 850; }

.premium-contact-cta { position: relative; overflow: hidden; padding: clamp(4rem, 8vw, 7rem) 0; color: var(--white); background: var(--teal-700); }
.premium-contact-pattern { position: absolute; width: 30rem; height: 30rem; top: 50%; right: 4%; border: 4.5rem solid rgba(255,255,255,.08); border-radius: 50%; transform: translateY(-50%); }
.premium-contact-pattern::after { position: absolute; width: 9rem; height: 9rem; top: 50%; left: 50%; content: ""; background: rgba(244,163,33,.2); border-radius: 50%; transform: translate(-50%,-50%); }
.premium-contact-cta h2 { max-width: 58rem; margin: .8rem 0 1rem; color: var(--white); }
.premium-contact-cta p { max-width: 50rem; margin: 0; color: rgba(255,255,255,.9); }
.premium-contact-cta .text-warning, .footer-cta .text-warning { color: #fff1c9 !important; }
.about-principles span, .faq-index, .resource-card > span, .checklist-grid span, .question-grid span, .value-card > span, .resource-number { color: #8a5100; }

.premium-map-section { overflow: hidden; background: var(--cream-100); }
.map-information { display: flex; min-height: 31rem; flex-direction: column; justify-content: center; padding: clamp(2rem, 6vw, 5rem); }
.map-information h2 { margin: .8rem 0 1rem; }
.map-privacy-note { font-size: .78rem; }
.map-consent { position: relative; display: grid; min-height: 31rem; place-items: center; overflow: hidden; background: #dfe9e5; }
.map-grid { position: absolute; inset: 0; opacity: .7; background-image: linear-gradient(32deg, transparent 45%, rgba(15,111,104,.2) 46%, rgba(15,111,104,.2) 48%, transparent 49%), linear-gradient(-28deg, transparent 42%, rgba(16,42,67,.15) 43%, rgba(16,42,67,.15) 46%, transparent 47%); background-size: 130px 100px, 170px 130px; }
.map-grid i { position: absolute; display: block; width: 1.4rem; height: 1.4rem; background: var(--teal-700); border: .4rem solid rgba(255,255,255,.75); border-radius: 50%; box-shadow: 0 0 0 1px var(--teal-700); }
.map-grid i:nth-child(1) { top: 20%; left: 18%; }.map-grid i:nth-child(2) { top: 65%; left: 25%; }.map-grid i:nth-child(3) { top: 27%; right: 22%; }.map-grid i:nth-child(4) { right: 14%; bottom: 18%; }
.map-grid > span { position: absolute; width: 10rem; height: 10rem; top: 50%; left: 50%; border: 1px solid rgba(15,111,104,.3); border-radius: 50%; transform: translate(-50%,-50%); }
.map-consent-card { position: relative; z-index: 2; max-width: 22rem; margin: 1.5rem; padding: 1.6rem; text-align: center; background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.75); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); backdrop-filter: blur(8px); }
.map-pin { position: relative; display: block; width: 3rem; height: 3rem; margin: 0 auto 1rem; background: var(--saffron-500); border-radius: 50% 50% 50% 10%; transform: rotate(-45deg); }
.map-pin::after { position: absolute; width: .9rem; height: .9rem; top: 50%; left: 50%; content: ""; background: var(--white); border-radius: 50%; transform: translate(-50%,-50%); }
.map-consent-card p { font-size: .85rem; }
.google-map-frame { width: 100%; min-height: 31rem; height: 100%; border: 0; }

@media (min-width: 576px) {
    .hero-assurances { grid-template-columns: repeat(3, 1fr); }
    .result-row { grid-template-columns: 2.4rem 1fr auto; }
    .result-row b { display: block; }
}

@media (min-width: 768px) {
    .premium-trust-item { border-bottom: 0; }
    .feedback-standard { grid-template-columns: 1fr 1fr; align-items: center; }
}

@media (min-width: 992px) {
    .facility-intro { position: sticky; top: 9rem; }
    .facility-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(20rem, auto)); }
    .facility-large { grid-row: span 2; }
    .facility-wide { grid-column: 2; }
    .map-information { padding-left: max(3rem, calc((100vw - 1320px) / 2)); }
}

@media (max-width: 991.98px) {
    .premium-home-hero { min-height: auto; }
    .learning-compass { margin-top: 2rem; }
    .note-practice { right: 0; }
    .premium-facilities-section .facility-intro { margin-bottom: 1rem; }
}

@media (max-width: 575.98px) {
    .learning-compass { min-height: 29rem; }
    .ring-outer { width: 22rem; height: 22rem; }
    .ring-inner { width: 15rem; height: 15rem; }
    .compass-core { width: 11rem; height: 11rem; }
    .compass-core strong { font-size: 1.35rem; }
    .floating-note { min-width: 10.5rem; padding: .7rem; }
    .floating-note > span { width: 2rem; height: 2rem; }
    .note-concept { top: 2%; }.note-practice { top: 48%; }.note-review { bottom: 1%; }
    .compass-accent { width: 3rem; height: 3rem; top: 21%; right: 7%; border-width: .65rem; }
    .premium-trust-item:nth-child(2n) { border-right: 0; }
    .about-composition { min-height: 30rem; }
    .about-panel-main { right: 1rem; bottom: 2rem; }
    .about-panel-index { width: 7rem; height: 7rem; }
    .facility-card { min-height: 21rem; }
}

/* Complete blog system */
.blog-archive-hero {
    position: relative;
    padding: clamp(4.5rem, 8vw, 7.5rem) 0 clamp(3.5rem, 6vw, 5.5rem);
    overflow: hidden;
    color: var(--white);
    background:
        radial-gradient(circle at 88% 20%, rgba(244,163,33,.2) 0 8rem, transparent 8.1rem),
        linear-gradient(135deg, var(--navy-950), #123e57);
}
.blog-archive-hero::after { position: absolute; right: -8rem; bottom: -13rem; width: 28rem; height: 28rem; content: ""; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(255,255,255,.025), 0 0 0 8rem rgba(255,255,255,.02); }
.blog-archive-hero .container { z-index: 1; }
.blog-archive-hero h1 { max-width: 59rem; margin: 1rem 0 1.25rem; color: var(--white); font-size: clamp(2.8rem, 7vw, 5.4rem); }
.blog-archive-hero .lead { max-width: 49rem; color: rgba(255,255,255,.72); }
.blog-archive-hero .breadcrumb-item, .blog-archive-hero .breadcrumb-item::before { color: rgba(255,255,255,.55); }
.blog-archive-hero .breadcrumb a { color: rgba(255,255,255,.82); }
.blog-archive-hero .eyebrow { color: var(--saffron-300); }
.blog-hero-search { padding: 1.35rem; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-md); backdrop-filter: blur(10px); }
.blog-hero-search .form-label { color: var(--white); font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.blog-hero-search .form-control { min-height: 3.15rem; border: 0; }
.blog-hero-search .btn { border-radius: 0 .7rem .7rem 0; box-shadow: none; }

.blog-category-nav { background: var(--white); border-bottom: 1px solid var(--slate-150); box-shadow: 0 8px 22px rgba(16,42,67,.04); }
.blog-taxonomy-scroll { display: flex; gap: .65rem; padding: 1rem 0; overflow-x: auto; scrollbar-width: thin; }
.blog-taxonomy-pill { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .45rem; padding: .58rem .9rem; color: var(--navy-800); background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: 999px; font-size: .78rem; font-weight: 800; text-decoration: none; }
.blog-taxonomy-pill span { display: grid; min-width: 1.35rem; height: 1.35rem; padding-inline: .25rem; place-items: center; color: var(--slate-700); background: var(--white); border-radius: 999px; font-size: .68rem; }
.blog-taxonomy-pill:hover, .blog-taxonomy-pill.active { color: var(--white); background: var(--teal-700); border-color: var(--teal-700); }
.blog-taxonomy-pill:hover span, .blog-taxonomy-pill.active span { color: var(--teal-700); }

.blog-featured-story { background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.blog-featured-visual { position: relative; display: grid; min-height: 25rem; padding: 2rem; overflow: hidden; place-items: center; background: linear-gradient(145deg, var(--teal-700), var(--navy-900)); text-decoration: none; }
.blog-featured-visual::before, .blog-featured-visual::after { position: absolute; content: ""; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.blog-featured-visual::before { width: 21rem; height: 21rem; right: -6rem; bottom: -9rem; box-shadow: 0 0 0 3.5rem rgba(255,255,255,.04); }
.blog-featured-visual::after { width: 8rem; height: 8rem; top: 2rem; left: 2rem; border-color: rgba(244,163,33,.55); }
.blog-featured-visual > span { position: relative; z-index: 1; color: var(--white); font-family: var(--font-display); font-size: clamp(2.8rem, 6vw, 4.8rem); font-style: italic; line-height: .92; }
.blog-featured-visual small { display: block; margin-bottom: 1rem; color: var(--saffron-300); font-family: var(--font-sans); font-size: .75rem; font-style: normal; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.blog-featured-visual img { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; }
.blog-featured-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(1.75rem, 5vw, 4rem); }
.blog-featured-copy h2 { margin: .8rem 0 1rem; font-size: clamp(2.2rem, 4vw, 3.5rem); }
.blog-featured-copy p { font-size: 1.05rem; }

.blog-results-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--slate-150); }
.blog-results-heading h2 { margin: .5rem 0 0; font-size: clamp(2rem, 4vw, 3rem); }
.clear-blog-filter { flex: 0 0 auto; font-size: .85rem; font-weight: 800; }
.blog-system-card { display: flex; flex-direction: column; }
.blog-system-card .blog-card-visual { isolation: isolate; }
.blog-system-card .blog-card-visual img { position: absolute; z-index: 0; width: 100%; height: 100%; inset: 0; object-fit: cover; transition: transform .45s ease; }
.blog-system-card:hover .blog-card-visual img { transform: scale(1.04); }
.blog-system-card .blog-card-visual:has(img)::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(180deg, transparent 45%, rgba(7,27,45,.55)); }
.blog-system-card .blog-card-body { display: flex; flex: 1; flex-direction: column; }
.blog-system-card h2 { margin: .75rem 0; }
.blog-system-card .blog-card-footer { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--slate-150); }
.blog-system-card .blog-meta { display: grid; gap: .1rem; }
.blog-category-link { display: inline-flex; color: var(--teal-700); font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.blog-category-link.is-static { cursor: default; }
.blog-empty-state { padding: clamp(2rem, 6vw, 4rem); text-align: center; background: var(--cream-100); border: 1px dashed var(--slate-300); border-radius: var(--radius-lg); }
.blog-pagination { margin-top: 3rem; }
.blog-pagination .page-link { min-width: 2.75rem; padding: .7rem .9rem; color: var(--navy-900); border-color: var(--slate-150); text-align: center; }
.blog-pagination .page-item:first-child .page-link, .blog-pagination .page-item:last-child .page-link { min-width: auto; }
.blog-pagination .active > .page-link { color: var(--white); background: var(--teal-700); border-color: var(--teal-700); }

.blog-archive-sidebar, .article-sidebar { display: grid; gap: 1rem; }
.blog-sidebar-panel { padding: 1.4rem; background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }
.blog-sidebar-panel h2 { margin: .6rem 0 1rem; }
.blog-ranked-list { margin: 0; padding: 0; list-style: none; counter-reset: blog-rank; }
.blog-ranked-list li { display: grid; grid-template-columns: 2rem 1fr; gap: .7rem; padding: .85rem 0; border-top: 1px solid var(--slate-150); counter-increment: blog-rank; }
.blog-ranked-list li::before { color: var(--saffron-500); content: counter(blog-rank, decimal-leading-zero); font-family: var(--font-display); font-size: 1rem; font-weight: 700; }
.blog-ranked-list a { color: var(--navy-900); font-size: .88rem; font-weight: 750; line-height: 1.45; text-decoration: none; }
.blog-tag-cloud { display: flex; flex-wrap: wrap; gap: .5rem; }
.blog-tag-cloud a, .article-tag-row a { padding: .42rem .66rem; color: var(--navy-800); background: var(--white); border: 1px solid var(--slate-150); border-radius: 999px; font-size: .75rem; font-weight: 750; text-decoration: none; }
.blog-tag-cloud a:hover, .article-tag-row a:hover { color: var(--white); background: var(--teal-700); border-color: var(--teal-700); }

.blog-article-hero { padding: clamp(4rem, 8vw, 7rem) 0 2.25rem; background: var(--cream-100); border-bottom: 1px solid var(--slate-150); }
.blog-article-hero h1 { max-width: 62rem; margin: 1rem 0 1.4rem; font-size: clamp(2.75rem, 7vw, 5.35rem); }
.blog-article-hero .lead { max-width: 54rem; color: var(--slate-700); font-size: clamp(1.1rem, 2vw, 1.35rem); }
.article-byline-card { display: flex; align-items: center; gap: .85rem; padding: 1rem; background: var(--white); border: 1px solid var(--slate-150); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.article-byline-card small, .article-byline-card strong { display: block; }
.article-byline-card small { color: var(--slate-500); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.article-byline-card strong { color: var(--navy-900); font-size: .88rem; }
.article-author-mark { display: grid; flex: 0 0 auto; width: 3rem; height: 3rem; place-items: center; color: var(--white); background: var(--teal-700); border-radius: 50%; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; }
.article-fact-row { display: flex; flex-wrap: wrap; gap: .7rem 1.5rem; margin-top: 2rem; padding-top: 1.25rem; color: var(--slate-500); border-top: 1px solid var(--slate-150); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.article-featured-image-wrap { margin-top: 2rem; }
.article-featured-image { width: 100%; max-height: 42rem; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.blog-article .article-content { color: var(--slate-700); font-family: var(--font-display); font-size: clamp(1.08rem, 2vw, 1.22rem); line-height: 1.88; }
.blog-article .article-content > * { max-width: 46rem; }
.blog-article .article-content h2, .blog-article .article-content h3 { scroll-margin-top: 7rem; }
.blog-article .article-content h2 { margin: 3rem 0 1rem; font-size: clamp(1.9rem, 4vw, 2.5rem); }
.blog-article .article-content h3 { margin: 2.2rem 0 .8rem; font-size: 1.55rem; }
.blog-article .article-content p:first-child { color: var(--navy-800); font-size: 1.35rem; }
.blog-article .article-content blockquote { margin: 2.25rem 0; padding: 1.5rem 1.75rem; color: var(--navy-900); background: #eaf5f2; border-left: 4px solid var(--teal-700); border-radius: 0 var(--radius-md) var(--radius-md) 0; font-size: 1.25rem; font-style: italic; }
.blog-article .article-content img { margin-block: 1.5rem; border-radius: var(--radius-md); }
.blog-article .article-content table { display: block; width: 100%; margin: 2rem 0; overflow-x: auto; border-collapse: collapse; font-family: var(--font-sans); font-size: .92rem; }
.blog-article .article-content th, .blog-article .article-content td { padding: .75rem; border: 1px solid var(--slate-300); }
.blog-article .article-content th { background: var(--cream-100); }
.article-tag-row { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 3rem; padding-block: 1.25rem; border-block: 1px solid var(--slate-150); }
.article-tag-row > span { margin-right: .3rem; color: var(--slate-500); font-size: .74rem; font-weight: 800; text-transform: uppercase; }
.article-author-box { display: flex; gap: 1.1rem; margin-top: 2rem; padding: 1.5rem; background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }
.article-author-box h2 { margin: .45rem 0 .6rem; }
.blog-compact-list, .blog-category-list { margin: 0; padding: 0; list-style: none; }
.blog-compact-list li, .blog-category-list li { border-top: 1px solid var(--slate-150); }
.blog-compact-list a, .blog-category-list a { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .8rem 0; color: var(--navy-900); font-size: .86rem; font-weight: 750; line-height: 1.4; text-decoration: none; }
.blog-compact-list small { flex: 0 0 auto; color: var(--slate-500); font-size: .65rem; text-transform: uppercase; }
.blog-category-list b { display: grid; flex: 0 0 auto; min-width: 1.55rem; height: 1.55rem; place-items: center; color: var(--teal-700); background: var(--white); border-radius: 50%; font-size: .68rem; }

.article-comments { margin-top: 4rem; padding-top: 3rem; border-top: 1px solid var(--slate-150); }
.article-section-heading h2 { margin: .6rem 0 .8rem; }
.article-section-heading > p { max-width: 42rem; }
.comment-list { display: grid; gap: 1rem; margin-top: 2rem; }
.comment-card { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding: 1.25rem; background: var(--white); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }
.comment-card.is-reply { margin-left: 2rem; background: var(--cream-100); }
.comment-avatar { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; color: var(--white); background: var(--navy-800); border-radius: 50%; font-family: var(--font-display); font-weight: 700; }
.comment-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-bottom: .45rem; }
.comment-heading strong { color: var(--navy-900); }
.comment-heading span { padding: .16rem .45rem; color: var(--teal-700); background: #eaf5f2; border-radius: 999px; font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.comment-heading time { margin-left: auto; color: var(--slate-500); font-size: .7rem; }
.comment-card p { margin: 0; white-space: normal; }
.comment-empty, .comments-closed { margin-top: 1.5rem; padding: 1rem 1.2rem; background: var(--cream-100); border: 1px dashed var(--slate-300); border-radius: var(--radius-sm); }
.comment-form { position: relative; margin-top: 2rem; padding: clamp(1.35rem, 4vw, 2rem); background: var(--cream-100); border: 1px solid var(--slate-150); border-radius: var(--radius-md); }
.comment-form .form-control { min-height: 3rem; background: var(--white); border-color: var(--slate-300); }
.comment-form textarea.form-control { min-height: 9rem; }
.blog-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; }
.related-articles-section { background: var(--cream-100); border-top: 1px solid var(--slate-150); }

@media (max-width: 767.98px) {
    .legal-summary { grid-template-columns: 1fr; }
    .blog-results-heading { align-items: flex-start; flex-direction: column; }
    .blog-featured-visual { min-height: 19rem; }
    .blog-system-card .blog-card-footer { align-items: flex-start; flex-direction: column; }
    .article-fact-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .article-author-box { align-items: flex-start; flex-direction: column; }
    .comment-card.is-reply { margin-left: 1rem; }
    .comment-heading time { width: 100%; margin-left: 0; }
}

/* Reveal enhancement */
[data-reveal] { transition: opacity .55s ease, transform .55s ease; }
.js [data-reveal]:not(.is-revealed) { opacity: 0; transform: translateY(1.5rem); }
.js [data-reveal].is-revealed { opacity: 1; transform: translateY(0); }

@media (min-width: 576px) {
    .privacy-toast { left: auto; }
    .trust-item { padding: 1rem 1.5rem; }
    .checklist-grid, .question-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 768px) {
    .trust-item { border-bottom: 0; }
    .inline-cta { flex-direction: row; align-items: center; justify-content: space-between; }
}

@media (min-width: 992px) {
    .hero-dashboard { margin-left: 1.5rem; }
    .page-hero .lead { font-size: 1.2rem; }
    .footer-cta { transform: translateY(-1px); }
}

@media (max-width: 767.98px) {
    .brand-copy strong { font-size: 1.08rem; }
    .brand-copy small { font-size: .58rem; }
    .brand-mark { width: 2.45rem; }
    .hero-dashboard { margin-top: 1rem; transform: none; }
    .trust-item:nth-child(2n) { border-right: 0; }
    .section-heading > p { margin-top: .5rem; }
    .faculty-card-body, .course-card-body, .blog-card-body { padding: 1.3rem; }
    .page-hero-note { margin-top: 1rem; }
    .privacy-toast { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .js [data-reveal]:not(.is-revealed) { opacity: 1; transform: none; }
}

@media print {
    .site-header, .site-footer, .back-to-top, .privacy-toast, .article-sidebar { display: none !important; }
    body { color: #000; background: #fff; }
    a { color: #000; text-decoration: underline; }
    .section-space { padding-block: 2rem; }
}
