:root {
    --navy-950: #07162f;
    --navy-900: #0b2146;
    --navy-800: #123462;
    --blue-600: #1558a6;
    --gold-500: #c7a35a;
    --gold-300: #e4c988;
    --green-600: #43a62d;
    --gray-50: #f7f9fc;
    --gray-100: #edf1f6;
    --gray-500: #68758a;
    --ink: #19263a;
    --white: #fff;
    --shadow: 0 18px 50px rgba(7, 22, 47, .11);
}

html { scroll-behavior: smooth; }
body { color: var(--ink); font-family: "DM Sans", sans-serif; line-height: 1.7; }
h1, h2, .display-font { color: var(--navy-950); font-family: "Libre Caslon Display", serif; }
h1 { font-size: clamp(2.7rem, 6vw, 5.6rem); line-height: 1.02; }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.12; }
h3, h4, h5 { color: var(--navy-900); font-weight: 700; }
a { color: var(--blue-600); text-decoration: none; }
img { max-width: 100%; }
.skip-link { background: var(--gold-500); color: var(--navy-950); left: 1rem; padding: .6rem 1rem; position: fixed; top: -5rem; z-index: 9999; }
.skip-link:focus { top: 1rem; }
.topbar { background: var(--navy-950); color: #cbd5e4; font-size: .82rem; padding: .45rem 0; }
.topbar a { color: #fff; }
.site-header { background: rgba(255, 255, 255, .96); border-bottom: 1px solid rgba(11, 33, 70, .08); backdrop-filter: blur(14px); }
.navbar { min-height: 82px; }
.navbar-brand img { height: 62px; width: auto; }
.navbar-nav .nav-link { color: var(--navy-900); font-size: .92rem; font-weight: 600; padding: .8rem .65rem !important; }
.navbar-nav .nav-link:hover, .navbar-nav .nav-link:focus { color: var(--blue-600); }
.dropdown-menu { border: 0; border-radius: 0 0 10px 10px; box-shadow: var(--shadow); padding: .65rem; }
.dropdown-item { border-radius: 6px; color: var(--navy-900); font-size: .9rem; padding: .65rem .8rem; }
.dropdown-item:hover { background: var(--gray-100); color: var(--blue-600); }
.btn { border-radius: 4px; font-weight: 700; letter-spacing: .01em; padding: .8rem 1.2rem; }
.btn-sm { padding: .55rem .85rem; }
.btn-gold { background: var(--gold-500); border-color: var(--gold-500); color: var(--navy-950); }
.btn-gold:hover { background: var(--gold-300); border-color: var(--gold-300); color: var(--navy-950); transform: translateY(-1px); }
.btn-navy { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.btn-navy:hover { background: var(--blue-600); border-color: var(--blue-600); color: #fff; }
.section-pad { padding: 6.5rem 0; }
.section-soft { background: var(--gray-50); }
.eyebrow { color: var(--blue-600); display: block; font-size: .78rem; font-weight: 700; letter-spacing: .16em; margin-bottom: .8rem; text-transform: uppercase; }
.text-gold { color: var(--gold-300) !important; }
.lead-copy { color: var(--gray-500); font-size: 1.12rem; max-width: 760px; }
.hero { background: linear-gradient(90deg, rgba(7, 22, 47, .96) 0%, rgba(7, 22, 47, .78) 56%, rgba(7, 22, 47, .25) 100%), url("https://images.unsplash.com/photo-1562774053-701939374585?auto=format&fit=crop&w=2000&q=86") center/cover; color: #fff; min-height: 700px; position: relative; }
.hero .container { padding-bottom: 7rem; padding-top: 8rem; }
.hero h1, .hero p { color: #fff; }
.hero p { font-size: 1.18rem; max-width: 740px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero-statbar { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 8px; backdrop-filter: blur(10px); margin-top: 4rem; padding: 1.4rem; }
.stat-value { color: var(--gold-300); font-family: "Libre Caslon Display", serif; font-size: 2.2rem; line-height: 1; }
.stat-label { color: #dae3ef; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.page-hero { background: linear-gradient(105deg, rgba(7, 22, 47, .97), rgba(18, 52, 98, .75)), var(--hero-image, url("https://images.unsplash.com/photo-1523240795612-9a054b0db644?auto=format&fit=crop&w=1800&q=82")) center/cover; color: #fff; padding: 7rem 0 5rem; }
.page-hero h1, .page-hero p { color: #fff; }
.breadcrumbs { color: #d4ddeb; font-size: .85rem; margin-bottom: 1.4rem; }
.breadcrumbs a { color: var(--gold-300); }
.premium-card { background: #fff; border: 1px solid #e4e9f1; border-radius: 10px; box-shadow: 0 8px 28px rgba(7, 22, 47, .06); height: 100%; padding: 2rem; transition: .25s ease; }
.premium-card:hover { border-color: rgba(199, 163, 90, .55); box-shadow: var(--shadow); transform: translateY(-5px); }
.icon-box { align-items: center; background: #edf3fb; border-radius: 8px; color: var(--blue-600); display: inline-flex; font-size: 1.4rem; height: 50px; justify-content: center; margin-bottom: 1.25rem; width: 50px; }
.feature-image { border-radius: 10px; box-shadow: var(--shadow); min-height: 500px; object-fit: cover; width: 100%; }
.check-list { list-style: none; padding: 0; }
.check-list li { margin-bottom: .7rem; padding-left: 1.7rem; position: relative; }
.check-list li::before { color: var(--green-600); content: "\f058"; font-family: "Font Awesome 6 Free"; font-weight: 900; left: 0; position: absolute; }
.process-step { border-left: 2px solid #dbe4f1; padding: 0 0 2.4rem 2.5rem; position: relative; }
.process-step::before { align-items: center; background: var(--navy-900); border: 5px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #dbe4f1; color: #fff; content: attr(data-step); display: flex; font-weight: 700; height: 42px; justify-content: center; left: -22px; position: absolute; top: 0; width: 42px; }
.process-step:last-child { border-color: transparent; }
.directory-toolbar { background: #fff; border-radius: 10px; box-shadow: var(--shadow); margin-top: -3rem; padding: 1.3rem; position: relative; z-index: 2; }
.institution-card .status { border-radius: 99px; font-size: .72rem; font-weight: 700; padding: .35rem .65rem; text-transform: uppercase; }
.status-accredited { background: #e8f6e4; color: #28751b; }
.status-member { background: #fff4d8; color: #805d12; }
.directory-ref { color: var(--gray-500); font-size: .78rem; }
.verification-panel { background: linear-gradient(145deg, #fff, #f3f7fc); border: 1px solid #dde6f1; border-radius: 12px; box-shadow: var(--shadow); padding: clamp(1.5rem, 4vw, 3rem); }
.verification-result { border-left: 4px solid var(--green-600); display: none; margin-top: 1.5rem; }
.verification-result.is-visible { display: block; }
.notice { background: #fff8e7; border-left: 4px solid var(--gold-500); color: #5f4b24; padding: 1rem 1.2rem; }
.placeholder-card { border: 1px dashed #aeb9c9; box-shadow: none; }
.placeholder-label { background: var(--gray-100); border-radius: 3px; color: var(--gray-500); display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .08em; padding: .25rem .5rem; text-transform: uppercase; }
.reference-card { overflow: hidden; position: relative; }
.reference-card::after { background: linear-gradient(180deg, var(--gold-500), transparent); content: ""; height: 100%; opacity: .55; position: absolute; right: 0; top: 0; width: 3px; }
.reference-mark { align-items: center; background: linear-gradient(145deg, var(--navy-950), var(--navy-800)); border-radius: 8px; color: #fff; display: flex; height: 66px; justify-content: space-between; margin-bottom: 1.4rem; padding: 0 1rem; }
.reference-mark i { color: var(--gold-300); font-size: 1.35rem; }
.reference-mark span { font-family: "Libre Caslon Display", serif; font-size: 1.3rem; letter-spacing: .08em; }
.news-card time { color: var(--gray-500); font-size: .82rem; }
.resource-row { align-items: center; border-bottom: 1px solid #e2e8f0; display: flex; gap: 1rem; padding: 1.15rem 0; }
.resource-row:last-child { border: 0; }
.resource-icon { color: var(--blue-600); font-size: 1.4rem; width: 35px; }
.form-control, .form-select { border-color: #ccd5e2; border-radius: 5px; min-height: 50px; }
.form-control:focus, .form-select:focus { border-color: var(--blue-600); box-shadow: 0 0 0 .2rem rgba(21, 88, 166, .12); }
.honeypot { left: -9999px !important; position: absolute !important; }
.cta-band { background: var(--navy-800); color: #fff; padding: 3.5rem 0; }
.cta-band h2, .cta-band p { color: #fff; }
.site-footer { background: var(--navy-950); color: #bdc8d7; padding: 5rem 0 2rem; }
.site-footer h3 { color: #fff; font-family: "DM Sans", sans-serif; font-size: .84rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer a { color: #dce4ef; display: block; margin-bottom: .5rem; }
.site-footer a:hover { color: var(--gold-300); }
.footer-logo { filter: brightness(0) invert(1); height: 90px; margin-bottom: 1rem; object-fit: contain; object-position: left; width: 190px; }
.site-footer hr { border-color: rgba(255,255,255,.14); margin: 3rem 0 1.5rem; }
.back-to-top { background: var(--gold-500); border: 0; bottom: 1rem; color: var(--navy-950); display: none; height: 42px; position: fixed; right: 1rem; width: 42px; z-index: 100; }
.back-to-top.is-visible { display: block; }

@media (max-width: 1199.98px) {
    .navbar-brand img { height: 54px; }
    .navbar-collapse { max-height: calc(100vh - 120px); overflow-y: auto; padding: 1rem 0; }
}
@media (max-width: 767.98px) {
    .section-pad { padding: 4.5rem 0; }
    .hero { min-height: auto; }
    .hero .container { padding-bottom: 5rem; padding-top: 5rem; }
    .hero-statbar .col-6 { margin-bottom: 1rem; }
    .topbar { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
