/* ─────────────────────────────────────────────────────────────────────────── *
   eÎnvățământ — Design System v4
   Based on einvatamant-design-spec.md
 * ─────────────────────────────────────────────────────────────────────────── */

/* ── 1. Design Tokens ────────────────────────────────────────────────────── */
:root {
  /* palette */
  --navy:#102C5C; --navy-2:#1B3D74; --navy-deep:#0A1E40; --navy-soft:#EEF2F9;
  --gold:#F3C012; --gold-deep:#D9A800; --gold-soft:#FBF0CC;
  --red:#CE1126; --red-soft:#FBE7E9;
  --green:#0E7A4F; --green-soft:#E5F3EC;
  --ink:#16202E; --ink-2:#566179; --ink-3:#8B93A4;
  --line:#E5E9F0; --line-2:#D2D8E4; --surface:#FFFFFF;

  /* THE SIGNATURE: score scale — cool(low) → warm/gold(high) */
  --scale: linear-gradient(90deg,#2E62A8 0%,#5C93C8 38%,#E7B30C 78%,#F3C012 100%);

  /* per-level accents */
  --lvl-prescolar:#EF7D54; --lvl-primar:#DD9E12; --lvl-gimnazial:#0E8C84;
  --lvl-liceu:#3D5BC6; --lvl-postliceal:#8E5BA6; --lvl-univ:#1F6B45;

  /* shape & motion */
  --r-md:12px; --r-lg:18px; --r-xl:24px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(16,44,92,.06),0 2px 10px rgba(16,44,92,.05);
  --sh-2:0 16px 38px rgba(16,44,92,.18);
  --sh-pop:0 18px 50px rgba(10,30,64,.22);
  --ease:cubic-bezier(.2,.7,.2,1);

  /* Bootstrap variable overrides */
  --bs-primary:#102C5C;
  --bs-primary-rgb:16,44,92;
  --bs-body-color:#16202E;
  --bs-body-bg:#fff;
  --bs-body-font-family:'Hanken Grotesk',system-ui,sans-serif;
  --bs-border-color:#E5E9F0;
  --bs-link-color:#102C5C;
  --bs-link-hover-color:#1B3D74;
  --bs-card-bg:#fff;
  --bs-card-border-color:#E5E9F0;
  --bs-secondary-rgb:139,147,164;
  --bs-light-rgb:238,242,249;
}

/* ── 2. Base ─────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; -webkit-font-smoothing:antialiased; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:'Hanken Grotesk',system-ui,sans-serif; font-size:15px; line-height:1.5; }
h1,h2,h3,h4 { font-family:'Bricolage Grotesque',sans-serif; letter-spacing:-.02em; margin:0; }
a { color:var(--navy); text-decoration:none; }
a:hover { text-decoration:underline; color:var(--navy-2); }
.num { font-feature-settings:"tnum" 1,"lnum" 1; }
.wrap { max-width:1120px; margin:0 auto; padding:0 20px; }
.hidden { display:none !important; }

/* ── 3. Nav ──────────────────────────────────────────────────────────────── */
.site-nav {
  position:fixed; top:0; left:0; right:0; z-index:50;
  transition:background .25s var(--ease), box-shadow .25s var(--ease);
  background:transparent;
}
.site-nav.nav-solid,
.site-nav.scrolled {
  background:var(--navy);
  box-shadow:0 4px 22px rgba(10,30,64,.28);
}
.nav-in {
  max-width:1120px; margin:0 auto; padding:14px 20px;
  display:flex; align-items:center; gap:24px;
}
.brand {
  font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.45rem;
  letter-spacing:-.035em; color:#fff; text-decoration:none; flex:none;
}
.brand .e { color:var(--gold); margin-right:-.04em; }
.brand:hover { text-decoration:none; color:#fff; }
.nav-links { display:flex; gap:2px; margin-left:auto; align-items:center; }
.nav-links a {
  color:rgba(255,255,255,.85); font-weight:600; font-size:.9rem;
  text-decoration:none; padding:8px 13px; border-radius:var(--r-pill); transition:.15s;
}
.nav-links a:hover { color:#fff; background:rgba(255,255,255,.14); text-decoration:none; }
.nav-cta { background:var(--gold) !important; color:var(--navy-deep) !important; font-weight:700 !important; }
.nav-cta:hover { background:var(--gold-deep) !important; }
@media(max-width:720px) { .nav-links a:not(.nav-cta) { display:none; } }

/* ── 4. Hero — Home ──────────────────────────────────────────────────────── */
.hero-home {
  position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden;
}
.hero-home > img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero-home::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(10,24,52,.66),rgba(10,24,52,.74));
}
.hero-home .hero-in {
  position:relative; z-index:2; width:100%; max-width:840px; margin:0 auto;
  padding:96px 20px 60px; text-align:center; color:#fff;
}
.hero-home .eyebrow {
  font-size:.78rem; text-transform:uppercase; letter-spacing:.16em;
  font-weight:700; color:var(--gold); margin-bottom:14px;
}
.hero-home h1 { font-size:clamp(2.1rem,5.5vw,3.5rem); font-weight:800; line-height:1.05; }
.hero-home > .hero-in > p { font-size:clamp(1rem,2.2vw,1.18rem); opacity:.92; margin:14px auto 0; max-width:560px; }
.hero-stats-home { display:flex; gap:28px; justify-content:center; margin-top:26px; flex-wrap:wrap; }
.hero-stats-home div { font-size:.9rem; opacity:.9; color:#fff; }
.hero-stats-home b { display:block; font-family:'Bricolage Grotesque'; font-size:1.5rem; font-weight:800; letter-spacing:-.02em; }

/* Hero search */
.hero-search {
  display:flex; gap:8px; background:#fff; border-radius:var(--r-pill);
  padding:7px 7px 7px 8px; margin:26px auto 0; max-width:580px;
  box-shadow:0 18px 50px rgba(10,24,52,.35);
}
.hero-search svg { width:20px; height:20px; color:var(--ink-3); align-self:center; margin-left:10px; flex:none; }
.hero-search input {
  flex:1; border:none; outline:none; font-size:1rem; font-family:inherit;
  color:var(--ink); padding:10px 6px; min-width:0;
}
.hero-search input::placeholder { color:var(--ink-3); }
.hero-search button {
  background:var(--navy); color:#fff; border:none; font-weight:700; font-size:.95rem;
  padding:0 24px; border-radius:var(--r-pill); cursor:pointer; font-family:inherit;
}
.hero-search button:hover { background:var(--navy-deep); }

/* ── 5. Hero — Listing / Detail band ─────────────────────────────────────── */
.hero-band {
  position:relative; overflow:hidden; display:flex;
  align-items:flex-end; padding-top:56px; min-height:280px;
}
.hero-band > img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero-band::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(10,24,52,.25),rgba(10,24,52,.30) 38%,rgba(10,24,52,.82));
}
.hero-band.hero-detail {
  min-height:380px;
}
.hero-band.hero-detail::after {
  background:linear-gradient(180deg,rgba(10,24,52,.45),rgba(10,24,52,.55) 45%,rgba(10,24,52,.92));
}
.hero-band .hero-in {
  position:relative; z-index:2; width:100%; max-width:1120px;
  margin:0 auto; padding:0 20px 24px; color:#fff;
}
.hero-crumb { font-size:.8rem; opacity:.88; margin-bottom:9px; }
.hero-crumb a { color:#fff; text-decoration:none; opacity:.85; }
.hero-crumb a:hover { opacity:1; text-decoration:none; }
.hero-band .hero-in h1 { font-size:clamp(1.9rem,4.6vw,2.8rem); font-weight:800; line-height:1.04; }
.hero-band .hero-in h1 .sub {
  font-weight:600; opacity:.9; font-size:.58em; display:block; margin-top:6px;
}
.hero-count { margin-top:8px; font-size:.92rem; opacity:.92; font-weight:600; }
.hero-count b { color:var(--gold); }
.hero-meta { margin-top:8px; font-size:.95rem; opacity:.92; font-weight:500; }

/* Detail hero stat tabs */
.hero-stats { display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
.hstat {
  background:#fff; color:var(--navy); border-radius:14px; padding:11px 15px;
  min-width:120px; box-shadow:0 4px 16px rgba(10,30,64,.22);
}
.hstat .k { font-size:.6rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-3); font-weight:700; }
.hstat .v { font-size:1.7rem; font-weight:800; letter-spacing:-.03em; line-height:1.05; margin-top:2px; }
.hstat .v small { font-size:.95rem; color:var(--ink-3); font-weight:700; }
.hstat.green .v { color:var(--green); }
.hstat .bar {
  width:100%; height:5px; border-radius:3px; background:var(--scale);
  position:relative; overflow:hidden; margin-top:7px;
}
.hstat .bar::after {
  content:""; position:absolute; top:0; right:0; bottom:0;
  background:#E7EAF0; width:var(--cover,30%);
}

/* Segment pills (school detail level switcher) */
.seg-pills { display:flex; gap:7px; margin-bottom:14px; flex-wrap:wrap; }
.seg {
  font-size:.78rem; font-weight:700; color:#fff;
  background:rgba(255,255,255,.16); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.28); padding:6px 14px;
  border-radius:var(--r-pill); text-decoration:none; transition:.15s;
}
.seg.active { background:var(--gold); color:var(--navy-deep); border-color:var(--gold); }
.seg:hover { text-decoration:none; color:#fff; background:rgba(255,255,255,.26); }
.seg.active:hover { color:var(--navy-deep); }

/* Cycle tabs (university hero) */
.cycle-tabs { display:flex; gap:7px; margin-top:18px; flex-wrap:wrap; }
.cyc-tab {
  font-size:.82rem; font-weight:700; color:#fff;
  background:rgba(255,255,255,.16); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.28); padding:8px 16px;
  border-radius:var(--r-pill); text-decoration:none; display:inline-flex; align-items:center; gap:4px; transition:.15s;
}
.cyc-tab.active { background:var(--gold); color:var(--navy-deep); border-color:var(--gold); }
.cyc-tab:hover { text-decoration:none; color:#fff; background:rgba(255,255,255,.26); }
.cyc-tab.active:hover { color:var(--navy-deep); }
.cyc-tab .c { opacity:.7; font-size:.74rem; }
.cyc-tab.active .c { opacity:.85; }

/* ── 6. Sticky Filter Bar (listing pages) ────────────────────────────────── */
.subbar {
  position:sticky; top:56px; z-index:40;
  background:rgba(255,255,255,.95); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); padding:11px 0;
}
.subbar-in {
  max-width:1120px; margin:0 auto; padding:0 20px;
  display:flex; align-items:center; gap:9px; overflow-x:auto; scrollbar-width:none;
}
.subbar-in::-webkit-scrollbar { display:none; }
.chip {
  flex:none; border:1px solid var(--line-2); background:#fff; color:var(--ink-2);
  font-weight:600; font-size:.85rem; padding:7px 14px;
  border-radius:var(--r-pill); cursor:pointer; text-decoration:none; transition:.13s; white-space:nowrap;
  display:inline-flex; align-items:center; gap:3px; font-family:inherit; line-height:1.4;
}
a.chip { display:inline-flex; }
.chip:hover { border-color:var(--navy); color:var(--navy); text-decoration:none; }
.chip.active { background:var(--navy); border-color:var(--navy); color:#fff; }
.chip .c { opacity:.55; font-size:.76rem; margin-left:3px; }
.loc-more, .dom-more {
  flex:none; display:inline-flex; align-items:center; gap:6px;
  border:1px dashed var(--line-2); background:#fff; color:var(--navy);
  font-weight:700; font-size:.85rem; padding:7px 14px;
  border-radius:var(--r-pill); cursor:pointer; transition:.13s; white-space:nowrap;
  font-family:inherit;
}
.loc-more:hover, .dom-more:hover { border-color:var(--navy); background:var(--navy-soft); }
.subbar-sep { width:1px; height:24px; background:var(--line-2); flex:none; }
.subbar-sort { margin-left:auto; display:flex; gap:6px; align-items:center; flex:none; }
.sort-lbl { font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); font-weight:700; }

/* ── 7. Locality / Domain dropdown ──────────────────────────────────────── */
.loc-backdrop {
  position:fixed; inset:0; z-index:60;
  background:rgba(10,24,52,.18); opacity:0; pointer-events:none; transition:.18s;
}
.loc-backdrop.open { opacity:1; pointer-events:auto; }
.loc-pop {
  position:fixed; z-index:61; background:#fff; border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--sh-pop); width:340px;
  max-width:calc(100vw - 32px); overflow:hidden;
  transform:translateY(-6px); opacity:0; pointer-events:none; transition:.18s var(--ease);
}
.loc-pop.open { transform:none; opacity:1; pointer-events:auto; }
.loc-search { padding:12px; border-bottom:1px solid var(--line); position:relative; }
.loc-search input {
  width:100%; border:1px solid var(--line-2); border-radius:var(--r-pill);
  padding:9px 14px 9px 36px; font-size:.92rem; font-family:inherit; color:var(--ink); outline:none;
}
.loc-search input:focus { border-color:var(--navy); box-shadow:0 0 0 3px rgba(16,44,92,.12); }
.loc-search svg { position:absolute; left:24px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--ink-3); }
.loc-list { max-height:300px; overflow-y:auto; padding:6px; }
.loc-item {
  display:flex; justify-content:space-between; align-items:center;
  padding:9px 12px; border-radius:var(--r-md); cursor:pointer; font-size:.92rem; color:var(--ink);
}
.loc-item:hover { background:var(--navy-soft); }
.loc-item .n { color:var(--ink-3); font-size:.82rem; font-weight:600; }
.loc-item.none { color:var(--ink-3); cursor:default; justify-content:center; font-size:.86rem; }
@media(max-width:560px) {
  .loc-pop {
    left:0 !important; right:0 !important; bottom:0 !important; top:auto !important;
    width:100%; max-width:100%; border-radius:18px 18px 0 0; transform:translateY(100%);
  }
  .loc-pop.open { transform:none; }
  .loc-list { max-height:50vh; }
}

/* ── 8. Overlay Result Cards (3:2) ───────────────────────────────────────── */
.cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(296px,1fr)); gap:20px; }
.result-card {
  position:relative; aspect-ratio:3/2; border-radius:var(--r-lg); overflow:hidden;
  text-decoration:none; color:#fff; box-shadow:var(--sh-1); display:block;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease);
  opacity:0; transform:translateY(10px); animation:card-rise .5s var(--ease) forwards;
}
@keyframes card-rise { to { opacity:1; transform:none; } }
.result-card:hover { transform:translateY(-5px); box-shadow:var(--sh-2); text-decoration:none; color:#fff; }
.result-card img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s var(--ease);
}
.result-card:hover img { transform:scale(1.07); }
.result-card .scrim {
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(10,24,52,.34) 0%,rgba(10,24,52,0) 34%,rgba(10,24,52,0) 46%,rgba(10,24,52,.86) 100%);
}
.c-top {
  position:absolute; top:11px; left:11px; right:11px; z-index:3;
  display:flex; justify-content:space-between; align-items:flex-start; gap:8px;
}
.lvl-tag {
  font-size:.62rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:#fff; background:rgba(255,255,255,.18); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.28); padding:4px 10px; border-radius:var(--r-pill);
}
.tab {
  background:#fff; color:var(--navy); border-radius:11px; padding:6px 10px 7px;
  box-shadow:0 2px 10px rgba(10,30,64,.18); text-align:right;
}
.tab .k { font-size:.55rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-3); font-weight:700; }
.tab .v { font-size:1.12rem; font-weight:800; letter-spacing:-.02em; line-height:1.05; }
.tab .bar {
  width:100%; height:4px; border-radius:3px; background:var(--scale);
  position:relative; overflow:hidden; margin-top:4px;
}
.tab .bar::after {
  content:""; position:absolute; top:0; right:0; bottom:0;
  background:#E7EAF0; width:var(--cover,30%);
}
.tab.duo { display:flex; gap:10px; text-align:right; }
.tab.duo .col .v { font-size:.98rem; }
.tab.duo .pass { color:var(--green); }
.c-bot { position:absolute; left:14px; right:14px; bottom:13px; z-index:3; }
.c-name {
  font-family:'Bricolage Grotesque'; font-weight:700; font-size:1.05rem;
  line-height:1.18; letter-spacing:-.01em; text-shadow:0 1px 12px rgba(0,0,0,.4);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.c-loc {
  display:flex; align-items:center; gap:5px; font-size:.81rem; opacity:.93;
  margin-top:5px; text-shadow:0 1px 8px rgba(0,0,0,.45);
}
.c-loc svg { width:13px; height:13px; flex:none; }
.priv-flag {
  display:inline-block; font-size:.6rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; color:var(--navy-deep); background:var(--gold);
  padding:1px 7px; border-radius:var(--r-pill); margin-left:7px; vertical-align:2px;
}
.soft-chip {
  background:rgba(255,255,255,.16); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.26); color:#fff; font-size:.76rem; font-weight:600;
  padding:5px 11px; border-radius:var(--r-pill); display:inline-flex; align-items:center;
  gap:6px; margin-top:9px;
}
.soft-chip svg { width:14px; height:14px; }

/* ── 9. Sticky Subnav (detail pages) ─────────────────────────────────────── */
.subnav {
  position:sticky; top:56px; z-index:40;
  background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.subnav-in {
  max-width:1120px; margin:0 auto; padding:0 20px;
  display:flex; gap:4px; overflow-x:auto; scrollbar-width:none;
}
.subnav-in::-webkit-scrollbar { display:none; }
.subnav-in a {
  flex:none; padding:14px; font-weight:600; font-size:.9rem; color:var(--ink-2);
  text-decoration:none; border-bottom:2.5px solid transparent; white-space:nowrap;
}
.subnav-in a:hover { color:var(--navy); text-decoration:none; }
.subnav-in a.active { color:var(--navy); border-bottom-color:var(--gold); }

/* ── 10. Detail Page Layout ──────────────────────────────────────────────── */
.detail-layout {
  display:grid; grid-template-columns:1fr 318px; gap:36px; padding:34px 0 60px;
}
@media(max-width:880px) {
  .detail-layout { grid-template-columns:1fr; }
  .detail-side { order:-1; }
}
.detail-layout section { scroll-margin-top:120px; margin-bottom:38px; }
.sec-h { font-size:1.3rem; font-weight:700; margin-bottom:4px; }
.sec-sub { color:var(--ink-2); font-size:.92rem; margin-bottom:16px; }

/* ── 11. Year Cards ──────────────────────────────────────────────────────── */
.year-cards { display:flex; gap:14px; flex-wrap:wrap; }
.ycard {
  flex:1; min-width:210px; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:16px 18px; background:#fff; box-shadow:var(--sh-1);
}
.ycard .yr { font-size:.72rem; font-weight:700; color:var(--ink-3); text-transform:uppercase; letter-spacing:.05em; }
.ycard .big { display:flex; align-items:baseline; gap:8px; margin-top:4px; }
.ycard .big .n { font-size:2.3rem; font-weight:800; letter-spacing:-.03em; line-height:1; font-family:'Bricolage Grotesque'; }
.ycard .pctl {
  font-size:.82rem; font-weight:700; color:var(--navy);
  background:var(--navy-soft); padding:3px 9px; border-radius:var(--r-pill);
}
.ycard .bar {
  height:7px; border-radius:4px; background:var(--scale);
  position:relative; overflow:hidden; margin:12px 0 13px;
}
.ycard .bar::after {
  content:""; position:absolute; top:0; right:0; bottom:0;
  background:#EEF1F5; width:var(--cover,30%);
}
.ycard .row {
  display:flex; justify-content:space-between; font-size:.86rem; padding:3px 0;
  border-top:1px solid var(--line);
}
.ycard .row span:first-child { color:var(--ink-2); }
.ycard .row b { font-weight:700; }
.hist-toggle {
  margin-top:12px; background:none; border:1px solid var(--line-2); color:var(--navy);
  font-weight:700; font-size:.85rem; padding:8px 14px; border-radius:var(--r-pill);
  cursor:pointer; font-family:inherit;
}
.hist-toggle:hover { background:var(--navy-soft); }

/* ── 12. Graduate Flow ───────────────────────────────────────────────────── */
.flow {
  border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  background:#fff; box-shadow:var(--sh-1);
}
.flow-row {
  display:grid; grid-template-columns:1fr auto; gap:14px; align-items:center;
  padding:11px 16px; border-bottom:1px solid var(--line);
}
.flow-row:last-child { border-bottom:none; }
.flow-name { font-weight:600; font-size:.92rem; }
.flow-name .self {
  font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--navy-deep); background:var(--gold); padding:1px 7px;
  border-radius:var(--r-pill); margin-left:7px;
}
.flow-track {
  height:9px; border-radius:5px; background:var(--navy-soft);
  position:relative; overflow:hidden; margin-top:6px;
}
.flow-fill {
  position:absolute; left:0; top:0; bottom:0; border-radius:5px;
  background:var(--navy-2); width:var(--w);
}
.flow-fill.self { background:var(--gold-deep); }
.flow-fig { text-align:right; white-space:nowrap; }
.flow-fig .pct { font-size:1.05rem; font-weight:800; letter-spacing:-.02em; font-family:'Bricolage Grotesque'; }
.flow-fig .el { font-size:.76rem; color:var(--ink-3); font-weight:600; }
.flow-more {
  width:100%; padding:12px; background:var(--navy-soft); border:none;
  color:var(--navy); font-weight:700; font-size:.88rem; cursor:pointer; font-family:inherit;
}
.flow-more:hover { background:#dce5f0; }

/* ── 13. Reviews ─────────────────────────────────────────────────────────── */
.rev-summary {
  display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center;
  border:1px solid var(--line); border-radius:var(--r-lg); padding:20px 22px;
  background:#fff; box-shadow:var(--sh-1);
}
@media(max-width:560px) { .rev-summary { grid-template-columns:1fr; gap:16px; } }
.rev-overall { text-align:center; }
.rev-overall .n { font-size:3rem; font-weight:800; letter-spacing:-.03em; line-height:1; font-family:'Bricolage Grotesque'; }
.rev-overall .stars { color:var(--gold); font-size:1rem; letter-spacing:2px; margin-top:4px; }
.rev-overall .cnt { font-size:.8rem; color:var(--ink-3); margin-top:4px; font-weight:600; }
.crit { display:flex; align-items:center; gap:12px; margin:7px 0; }
.crit .lab { width:170px; font-size:.86rem; color:var(--ink-2); font-weight:600; }
.crit .track { flex:1; height:7px; border-radius:4px; background:var(--navy-soft); overflow:hidden; }
.crit .fill { height:100%; background:var(--gold); border-radius:4px; width:var(--w); }
.crit .val { width:30px; text-align:right; font-weight:700; font-size:.85rem; }
.rev-cta { margin-top:16px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.btn-gold {
  background:var(--gold); color:var(--navy-deep); font-weight:700; border:none;
  padding:11px 20px; border-radius:var(--r-pill); cursor:pointer; font-size:.92rem; font-family:inherit;
}
.btn-gold:hover { background:var(--gold-deep); }
.rev-empty { color:var(--ink-3); font-size:.9rem; margin-top:14px; }
.rev-form-wrap { margin-top:16px; border:1px solid var(--line); border-radius:var(--r-lg); padding:18px; }

/* ── 14. Sidebar Cards ───────────────────────────────────────────────────── */
.detail-side {
  display:flex; flex-direction:column; gap:16px;
  position:sticky; top:118px; align-self:start;
}
.scard {
  border:1px solid var(--line); border-radius:var(--r-lg); background:#fff;
  box-shadow:var(--sh-1); overflow:hidden;
}
.scard-h {
  font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; font-weight:700;
  color:var(--ink-3); padding:13px 16px 0;
}
.scard-cap { font-size:.78rem; color:var(--ink-2); padding:3px 16px 11px; line-height:1.35; }
.crow {
  display:flex; gap:10px; padding:10px 16px; border-bottom:1px solid var(--line);
  font-size:.88rem; align-items:baseline; text-decoration:none; color:inherit;
}
.crow:last-child { border-bottom:none; }
.crow .ck {
  font-size:.62rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-3);
  font-weight:700; width:46px; flex:none; padding-top:2px;
}
.crow a { color:var(--navy); text-decoration:none; font-weight:600; }
.crow a:hover { text-decoration:underline; }

/* map placeholder */
.map-placeholder { height:150px; position:relative; background:#dfe6ee; overflow:hidden; }
.map-placeholder .grid-lines { position:absolute; inset:0; width:100%; height:100%; opacity:.5; }
.map-placeholder .pin { position:absolute; left:50%; top:46%; transform:translate(-50%,-100%); color:var(--red); }
.map-placeholder .pin svg { width:30px; height:30px; filter:drop-shadow(0 3px 4px rgba(0,0,0,.3)); }
.map-foot {
  padding:11px 16px; display:flex; justify-content:space-between; align-items:center; font-size:.85rem;
}
.map-foot a { color:var(--navy); font-weight:700; text-decoration:none; }
.map-foot a:hover { text-decoration:underline; }

/* similar schools (.sim2) */
.sim2 {
  display:flex; gap:11px; padding:12px 16px; border-bottom:1px solid var(--line);
  align-items:flex-start; text-decoration:none; color:inherit;
}
.sim2:last-child { border-bottom:none; }
.sim2:hover { background:var(--navy-soft); text-decoration:none; }
.sim2 img { width:46px; height:46px; border-radius:10px; object-fit:cover; flex:none; }
.sim2-body { flex:1; min-width:0; }
.sim2-top { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.sim2 .sn { font-weight:600; font-size:.88rem; line-height:1.2; color:var(--navy); }
.sim2 .sm { font-weight:800; font-size:.95rem; color:var(--navy); flex:none; }
.dpills { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.dpill {
  font-size:.68rem; font-weight:600; color:var(--navy); background:var(--navy-soft);
  border:1px solid #dce3ef; padding:2px 9px; border-radius:var(--r-pill); text-decoration:none;
}
.dpill:hover { background:var(--navy); color:#fff; border-color:var(--navy); text-decoration:none; }
.dpill.static { color:var(--ink-3); background:#f2f4f8; border-color:var(--line); cursor:default; }

/* cross-sell university cards */
.sim-uni {
  display:flex; gap:11px; padding:12px 16px; border-bottom:1px solid var(--line); align-items:flex-start;
}
.sim-uni:last-child { border-bottom:none; }
.sim-uni img { width:42px; height:42px; border-radius:9px; object-fit:cover; flex:none; }
.sim-uni .sn { font-weight:600; font-size:.86rem; line-height:1.2; color:var(--navy); text-decoration:none; display:block; }
.sim-uni .sn:hover { text-decoration:underline; }
.sim-uni .sl { font-size:.77rem; color:var(--ink-3); margin:1px 0 7px; }

/* faculty rows */
.frow {
  display:flex; justify-content:space-between; padding:10px 16px;
  border-bottom:1px solid var(--line); text-decoration:none; color:inherit; font-size:.88rem;
}
.frow:last-child { border-bottom:none; }
.frow:hover { background:var(--navy-soft); }
.frow .fc { color:var(--ink-3); font-weight:700; font-size:.8rem; }

/* ── 15. Home Page Sections ──────────────────────────────────────────────── */
.sec { padding:48px 0 8px; }
.sec-head {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:20px; gap:12px; flex-wrap:wrap;
}
.sec-head h2 { font-size:1.55rem; font-weight:800; }
.sec-head p { color:var(--ink-2); margin:4px 0 0; font-size:.95rem; }
.sec-head a { color:var(--navy); font-weight:700; font-size:.9rem; text-decoration:none; white-space:nowrap; }
.sec-head a:hover { text-decoration:underline; }

/* Level tiles */
.levels { display:grid; grid-template-columns:repeat(auto-fill,minmax(196px,1fr)); gap:16px; }
.lvl-tile {
  position:relative; aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden;
  text-decoration:none; color:#fff; box-shadow:var(--sh-1);
  transition:transform .26s var(--ease), box-shadow .26s var(--ease);
}
.lvl-tile:hover { transform:translateY(-5px); box-shadow:var(--sh-2); text-decoration:none; }
.lvl-tile img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s var(--ease);
}
.lvl-tile:hover img { transform:scale(1.07); }
.lvl-tile::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(10,24,52,.1) 0%,rgba(10,24,52,0) 34%,rgba(10,24,52,.85) 100%);
}
.lvl-tile .accent { position:absolute; top:0; left:0; right:0; height:5px; background:var(--ac); z-index:2; }
.lvl-tile .body { position:absolute; left:14px; right:14px; bottom:14px; z-index:2; }
.lvl-tile .ln {
  font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.2rem;
  letter-spacing:-.01em; text-shadow:0 1px 12px rgba(0,0,0,.4);
}
.lvl-tile .lc { font-size:.84rem; opacity:.92; margin-top:3px; display:flex; align-items:center; gap:6px; }
.lvl-tile .dot { width:8px; height:8px; border-radius:50%; background:var(--ac); box-shadow:0 0 0 2px rgba(255,255,255,.5); }

/* university band */
.uni-band {
  background:var(--navy); border-radius:var(--r-xl); overflow:hidden; position:relative;
  color:#fff; display:grid; grid-template-columns:1.1fr 1fr;
}
@media(max-width:760px) { .uni-band { grid-template-columns:1fr; } }
.uni-band .ub-img { position:relative; min-height:230px; }
.uni-band .ub-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.uni-band .ub-img::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(16,44,92,.1),var(--navy));
}
.uni-band .ub-body { padding:32px; }
.uni-band h2 { font-size:1.7rem; font-weight:800; }
.uni-band p { opacity:.88; margin:8px 0 18px; font-size:.96rem; }
.cyc-cards { display:flex; gap:10px; flex-wrap:wrap; }
.cyc-card {
  flex:1; min-width:120px; background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18); border-radius:var(--r-md); padding:14px;
  text-decoration:none; color:#fff; transition:.15s;
}
.cyc-card:hover { background:rgba(255,255,255,.18); text-decoration:none; }
.cyc-card .n { font-family:'Bricolage Grotesque'; font-size:1.6rem; font-weight:800; }
.cyc-card .l { font-size:.84rem; opacity:.85; }
.uni-all {
  display:inline-block; margin-top:16px; background:var(--gold); color:var(--navy-deep);
  font-weight:700; text-decoration:none; padding:11px 22px; border-radius:var(--r-pill); font-size:.92rem;
}
.uni-all:hover { background:var(--gold-deep); text-decoration:none; }

/* county tiles */
.counties { display:flex; flex-wrap:wrap; gap:10px; }
.cty {
  display:flex; align-items:center; gap:8px; border:1px solid var(--line-2); background:#fff;
  border-radius:var(--r-pill); padding:9px 16px; text-decoration:none; color:var(--ink);
  font-weight:600; font-size:.92rem; transition:.13s;
}
.cty:hover { border-color:var(--navy); background:var(--navy-soft); color:var(--navy); text-decoration:none; }
.cty .c { color:var(--ink-3); font-weight:600; font-size:.8rem; }
.cty-more {
  display:inline-flex; align-items:center; gap:6px; border:1px dashed var(--line-2); background:#fff;
  color:var(--navy); font-weight:700; border-radius:var(--r-pill); padding:9px 16px;
  cursor:pointer; font-size:.92rem; font-family:inherit;
}
.cty-more:hover { background:var(--navy-soft); }

/* clasament cards */
.ranks { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.rank {
  border:1px solid var(--line); border-radius:var(--r-lg); padding:22px; background:#fff;
  box-shadow:var(--sh-1); text-decoration:none; color:inherit; transition:.2s var(--ease);
  position:relative; overflow:hidden; display:block;
}
.rank::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--gold); }
.rank:hover { transform:translateY(-4px); box-shadow:var(--sh-2); text-decoration:none; color:inherit; }
.rank .ic {
  width:42px; height:42px; border-radius:11px; background:var(--navy-soft); color:var(--navy);
  display:grid; place-items:center; margin-bottom:13px;
}
.rank .ic svg { width:22px; height:22px; }
.rank h3 { font-size:1.12rem; font-weight:700; margin-bottom:0; }
.rank p { color:var(--ink-2); font-size:.88rem; margin:6px 0 12px; }
.rank .top1 { font-size:.82rem; color:var(--ink-3); }
.rank .top1 b { color:var(--navy); }
.rank .go { font-weight:700; font-size:.88rem; color:var(--navy); margin-top:12px; display:inline-block; }

/* ── 16. University Domain Accordion ─────────────────────────────────────── */
.dom {
  border:1px solid var(--line); border-radius:var(--r-lg); margin-bottom:12px;
  overflow:hidden; background:#fff; box-shadow:var(--sh-1);
}
.dom-h {
  display:flex; align-items:center; gap:10px; padding:14px 16px;
  cursor:pointer; user-select:none;
}
.dom-h:hover { background:var(--navy-soft); }
.dom-h .dn { font-family:'Bricolage Grotesque'; font-weight:700; font-size:1rem; flex:1; }
.dom-h .dc {
  font-size:.78rem; color:var(--ink-3); font-weight:600; background:var(--navy-soft);
  padding:2px 9px; border-radius:var(--r-pill);
}
.dom-h .chev { color:var(--ink-3); transition:transform .2s; }
.dom.open .dom-h .chev { transform:rotate(180deg); }
.dom-b { display:none; border-top:1px solid var(--line); }
.dom.open .dom-b { display:block; }
.prow {
  display:grid; grid-template-columns:1fr auto; gap:14px; align-items:center;
  padding:11px 16px; border-bottom:1px solid var(--line);
}
.prow:last-child { border-bottom:none; }
.prow .pn { font-weight:600; font-size:.93rem; }
.prow .pf { font-size:.8rem; color:var(--ink-3); margin-top:1px; }
.prow .pmeta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.form-chip {
  font-size:.74rem; font-weight:600; color:var(--navy); background:var(--navy-soft);
  padding:3px 9px; border-radius:var(--r-pill); white-space:nowrap;
}
.acc { font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:3px 8px; border-radius:var(--r-pill); }
.acc.ok { color:var(--green); background:var(--green-soft); }
.acc.ap { color:var(--gold-deep); background:var(--gold-soft); }

/* University program search bar */
.prog-tools {
  position:sticky; top:56px; z-index:40;
  background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); padding:11px 0;
}
.prog-tools-in {
  max-width:1120px; margin:0 auto; padding:0 20px;
  display:flex; gap:10px; align-items:center; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;
}
.prog-tools-in::-webkit-scrollbar { display:none; }
.psearch { position:relative; flex:none; width:230px; }
.psearch input {
  width:100%; border:1px solid var(--line-2); border-radius:var(--r-pill);
  padding:8px 14px 8px 34px; font-size:.88rem; font-family:inherit; outline:none; color:var(--ink);
}
.psearch input:focus { border-color:var(--navy); box-shadow:0 0 0 3px rgba(16,44,92,.12); }
.psearch svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--ink-3); }
.result-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px; }
.result-head h2 { font-size:1.25rem; font-weight:700; }
.result-head .ct { font-size:.84rem; color:var(--ink-3); font-weight:600; }

/* ── 17. Footer ──────────────────────────────────────────────────────────── */
.site-footer { background:var(--navy); color:rgba(255,255,255,.7); font-size:.86rem; }
.foot-in {
  max-width:1120px; margin:0 auto; padding:30px 20px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px;
}
.site-footer a { color:rgba(255,255,255,.85); text-decoration:none; }
.site-footer a:hover { color:#fff; text-decoration:underline; }
.foot-brand { font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.2rem; letter-spacing:-.02em; }
.foot-brand .e { color:var(--gold); margin-right:-.04em; }

/* ── 18. Bootstrap Component Overrides ───────────────────────────────────── */
.card {
  border:1px solid var(--line); border-radius:var(--r-lg);
  background:#fff; box-shadow:var(--sh-1);
}
.card-header {
  background:var(--navy-soft); border-bottom:1px solid var(--line-2);
  font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--ink-2); padding:.65rem 1rem;
  border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0;
}
.card-body { background:#fff; }
.table { --bs-table-bg:#fff; --bs-table-striped-bg:var(--navy-soft); color:var(--ink); }
.table thead th {
  background:var(--navy-soft); color:var(--ink-2); font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; border-color:var(--line-2); padding:.5rem .75rem;
}
.table td { border-color:var(--line); vertical-align:middle; padding:.5rem .75rem; }
.table-hover tbody tr:hover { --bs-table-bg-state:var(--navy-soft); }
.badge.bg-warning { background:var(--gold-soft) !important; color:var(--gold-deep) !important; border:1px solid var(--gold); }
.badge.bg-secondary { background:var(--navy-soft) !important; color:var(--ink-3) !important; }
.badge.bg-light { background:var(--navy-soft) !important; color:var(--ink-3) !important; border:1px solid var(--line); }
.btn-primary { background:var(--navy); border-color:var(--navy); }
.btn-primary:hover,.btn-primary:focus { background:var(--navy-2); border-color:var(--navy-2); }
.btn-outline-secondary { border-color:var(--line-2); color:var(--ink-2); }
.btn-outline-secondary:hover { background:var(--navy-soft); border-color:var(--navy); color:var(--navy); }
.alert-light { background:var(--navy-soft); border-color:var(--line-2); color:var(--ink-2); }
.alert-secondary { background:var(--navy-soft); border-color:var(--line-2); color:var(--ink-2); }
.page-link { color:var(--navy); border-color:var(--line-2); }
.page-item.active .page-link { background:var(--navy); border-color:var(--navy); }
.form-control,.form-select { border-color:var(--line-2); color:var(--ink); background:#fff; }
.form-control:focus,.form-select:focus { border-color:var(--navy); box-shadow:0 0 0 3px rgba(16,44,92,.12); }
.form-label { color:var(--ink-2); font-size:.82rem; font-weight:600; }
.breadcrumb { font-size:.82rem; }
.breadcrumb-item a { color:var(--ink-2); }
.breadcrumb-item a:hover { color:var(--navy); text-decoration:none; }
.breadcrumb-item.active { color:var(--ink-3); }
.breadcrumb-item+.breadcrumb-item::before { color:var(--ink-3); }
.list-group-item { border-color:var(--line); background:#fff; color:var(--ink); }
.list-group-item-action:hover,.list-group-item-action:focus { background:var(--navy-soft); color:var(--ink); text-decoration:none; }
.list-group-flush .list-group-item { border-left:0; border-right:0; }

/* ── 19. Misc / Legacy ───────────────────────────────────────────────────── */
.filter-chip {
  display:inline-flex; align-items:center; gap:5px; padding:3px 10px 3px 12px;
  border-radius:var(--r-pill); background:var(--navy-soft); color:var(--navy);
  border:1px solid var(--navy); font-size:.8rem; font-weight:500; text-decoration:none;
}
.filter-chip:hover { background:#dce5f0; text-decoration:none; }
.filter-chip-x { font-weight:700; font-size:.9em; opacity:.7; }
.star-group { display:flex; gap:4px; }
.star-btn { background:none; border:none; font-size:1.4rem; color:var(--line-2); cursor:pointer; padding:0; line-height:1; transition:color .1s; }
.star-btn:hover,.star-btn.active { color:var(--gold); }
.star-btn.selected { color:var(--gold); }
.rank-num { font-weight:700; color:var(--ink-3); min-width:2rem; display:inline-block; }
.rank-row-1 td:first-child { border-left:3px solid var(--gold); padding-left:.6rem; }
.rank-row-2 td:first-child { border-left:3px solid #A8A9AD; padding-left:.6rem; }
.rank-row-3 td:first-child { border-left:3px solid #A0522D; padding-left:.6rem; }
.badge-private {
  background:var(--gold-soft); color:var(--gold-deep); border:1px solid var(--gold);
  font-size:.72rem; font-weight:600; padding:2px 7px; border-radius:var(--r-pill);
}
/* universities listing city headings */
.city-heading {
  font-family:'Bricolage Grotesque'; font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3);
  margin:24px 0 8px; padding-bottom:6px; border-bottom:1px solid var(--line);
}
/* domain badge */
.domain-badge {
  display:inline-block; padding:3px 9px; border-radius:var(--r-md);
  background:var(--navy-soft); color:var(--ink-2); border:1px solid var(--line);
  font-size:.78rem; font-weight:500; text-decoration:none; margin:2px 2px 0 0; transition:.12s;
}
.domain-badge:hover { background:var(--navy-soft); color:var(--navy); border-color:var(--navy); }
/* school siblings */
.school-siblings-label {
  font-size:.63rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); margin-bottom:.35rem;
}
/* search results on home */
.search-result-item { padding:.6rem .75rem; border-bottom:1px solid var(--line); }
.search-result-item:last-child { border-bottom:none; }
.search-result-item:hover { background:var(--navy-soft); }
.search-result-item .sr-name { font-weight:600; color:var(--ink); font-size:.95rem; }
.search-result-item .sr-meta { font-size:.82rem; color:var(--ink-3); margin-top:1px; }
/* county / level filter pills (legacy, used in county.php and level_listing no-county state) */
.filter-section { margin-bottom:1rem; }
.filter-section-label {
  font-size:.68rem; text-transform:uppercase; letter-spacing:.07em;
  font-weight:700; color:var(--ink-3); margin-bottom:7px;
}
.filter-pills-wrap { display:flex; flex-wrap:wrap; gap:6px; }
.filter-pill {
  display:inline-flex; align-items:center; gap:4px; padding:6px 14px;
  border-radius:var(--r-pill); border:1px solid var(--line-2); background:#fff;
  color:var(--ink-2); font-size:.85rem; font-weight:500; text-decoration:none; transition:.13s; white-space:nowrap;
}
.filter-pill:hover { border-color:var(--navy); color:var(--navy); background:var(--navy-soft); text-decoration:none; }
.filter-pill.active { background:var(--navy); border-color:var(--navy); color:#fff; font-weight:600; }
.filter-pill-count { font-size:.72rem; opacity:.65; }
.filter-pill-more { display:none; }
.filter-pill-expand {
  background:none; border:1px dashed var(--line-2); border-radius:var(--r-pill);
  padding:6px 14px; font-size:.85rem; color:var(--ink-3); cursor:pointer; white-space:nowrap;
  line-height:1.5; font-family:inherit; transition:.13s;
}
.filter-pill-expand:hover { border-color:var(--navy); color:var(--navy); }
/* pagination wrapper spacing */
.wrap-page { max-width:1120px; margin:0 auto; padding:0 20px; }
