:root {
  --bs-primary: #0a8f83;
  --bs-primary-rgb: 10, 143, 131;
  --bs-link-color: #087d74;
  --bs-link-hover-color: #06665f;
  --site-ink: #173052;
  --site-muted: #687c96;
  --site-teal: #0a8f83;
  --site-paper: #fbfaf6;
  --site-line: #e8eeec;
}

html { scroll-padding-top: 88px; }
body {
  background: var(--site-paper);
  color: var(--site-ink);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}

.main-site-navbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  min-height: 76px;
  padding: 10px 0;
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--site-line);
  box-shadow: 0 5px 20px rgba(23, 48, 82, .045);
  backdrop-filter: blur(12px);
}
.main-site-navbar .container { gap: 24px; }
.site-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--site-ink) !important;
  font-family: Outfit, 'Plus Jakarta Sans', sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -.035em;
  white-space: nowrap;
}
.site-brand strong { color: var(--site-teal); }
.site-brand-mark { display: inline-flex; width: 40px; height: 40px; flex: 0 0 40px; }
.site-brand-mark svg { width: 100%; height: 100%; }
.site-navigation { align-items: center; gap: clamp(8px, 1.6vw, 24px); }
.main-site-navbar .site-navigation .nav-link {
  position: relative;
  padding: 10px 2px;
  color: #536981;
  font-size: .94rem;
  font-weight: 600;
  white-space: nowrap;
  transition: color .18s ease;
}
.main-site-navbar .site-navigation .nav-link:hover,
.main-site-navbar .site-navigation .nav-link.active { color: var(--site-teal); }
.main-site-navbar .site-navigation .nav-link.active::after {
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 2px;
  border-radius: 3px;
  background: var(--site-teal);
  content: '';
}
.site-menu-toggle { border-color: #d6e4e1; }
.site-menu-toggle:focus { box-shadow: 0 0 0 .2rem rgba(10, 143, 131, .16); }

.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #0a8f83;
  --bs-btn-border-color: #0a8f83;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #08796f;
  --bs-btn-hover-border-color: #08796f;
  --bs-btn-active-bg: #06665e;
  --bs-btn-active-border-color: #06665e;
  --bs-btn-disabled-bg: #0a8f83;
  --bs-btn-disabled-border-color: #0a8f83;
}
.btn-outline-primary {
  --bs-btn-color: #0a8f83;
  --bs-btn-border-color: #0a8f83;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #0a8f83;
  --bs-btn-hover-border-color: #0a8f83;
}
.text-primary { color: var(--site-teal) !important; }

.catalog-page { min-height: 72vh; }
.catalog-page h1,
.catalog-page h2,
.catalog-page h3,
.catalog-page h4,
.catalog-page h5 { color: var(--site-ink); font-family: Outfit, 'Plus Jakarta Sans', sans-serif; }
.catalog-page .sticky-filters .card,
.catalog-page .university-card {
  overflow: hidden;
  border: 1px solid rgba(222, 232, 228, .9);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(23, 48, 82, .07);
}
.catalog-page .sticky-filters .card { box-shadow: 0 8px 22px rgba(23, 48, 82, .06); }
.catalog-page .university-card { transition: transform .2s ease, box-shadow .2s ease; }
.catalog-page .university-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 34px rgba(23, 48, 82, .11);
}
.catalog-page .university-logo-panel {
  min-height: 160px;
  background: #eaf6f3 !important;
}
.catalog-page .university-logo-panel img {
  width: 88px;
  height: 88px;
  max-width: 88px !important;
  max-height: 88px !important;
  padding: 10px;
  border-radius: 50%;
  background: #fff;
  object-fit: contain;
  box-shadow: 0 5px 16px rgba(23, 48, 82, .08);
}
.catalog-page .university-card .card-body { padding: 1.35rem; }
.catalog-page .university-card .card-title { font-weight: 700; line-height: 1.35; }
.catalog-page .form-control,
.catalog-page .form-select { border-color: #dfe9e6; border-radius: 10px; }
.catalog-page .form-control:focus,
.catalog-page .form-select:focus {
  border-color: #68bdb2;
  box-shadow: 0 0 0 .2rem rgba(10, 143, 131, .13);
}
.catalog-page .page-link { color: var(--site-teal); border-color: var(--site-line); }
.catalog-page .page-item.active .page-link { color: #fff; background: var(--site-teal); border-color: var(--site-teal); }

.site-footer {
  color: #506780;
  background: #e9f6f3;
  border-top: 1px solid #d9ede8;
}
.site-footer h5 { color: var(--site-ink); font-family: Outfit, sans-serif; font-weight: 700; }
.site-footer a { color: #087d74 !important; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }

@media (max-width: 991.98px) {
  .main-site-navbar { min-height: 68px; }
  .site-navigation { align-items: stretch; gap: 2px; padding: 12px 0 6px; }
  .main-site-navbar .site-navigation .nav-link { padding: 11px 4px; }
  .main-site-navbar .site-navigation .nav-link.active::after { right: auto; width: 42px; }
  .catalog-page .university-logo-panel { min-height: 125px; }
}
@media (max-width: 575.98px) {
  .site-brand { gap: 8px; font-size: 1.12rem; }
  .site-brand-mark { width: 36px; height: 36px; flex-basis: 36px; }
  .catalog-page .university-card .card-body { padding: 1.1rem; }
}

/* Make the catalogue theme win over the legacy theme chooser palette. */
html[data-bs-theme][data-color-theme]:root {
  --bs-primary: #0a8f83 !important;
  --bs-primary-rgb: 10, 143, 131 !important;
  --bs-light-primary: rgba(10, 143, 131, .1) !important;
  --bs-primary-bg-subtle: #e8f6f2 !important;
}
html[data-bs-theme][data-color-theme]:root .btn-primary {
  --bs-btn-bg: #0a8f83 !important;
  --bs-btn-border-color: #0a8f83 !important;
  --bs-btn-hover-bg: #08796f !important;
  --bs-btn-hover-border-color: #08796f !important;
  --bs-btn-active-bg: #06665e !important;
  --bs-btn-active-border-color: #06665e !important;
}
.catalog-page .noUi-connect { background: var(--site-teal) !important; }
.catalog-page .noUi-handle { border-color: var(--site-teal) !important; }
.catalog-page .noUi-handle { background: var(--site-teal) !important; }

/* Direction results use the same calm, spacious card language as the landing page. */
.direction-page .direction-card {
  border: 1px solid #edf1ef !important;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(23, 48, 82, .055);
  transition: transform .18s ease, box-shadow .18s ease;
}
.direction-page .direction-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(23, 48, 82, .09);
}
.direction-page .direction-card .card-body { padding: clamp(18px, 2.2vw, 30px) !important; }
.direction-logo-wrap {
  display: flex;
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid #e8efed;
  border-radius: 16px;
  background: #f3faf8;
}
.direction-logo-wrap img { width: 58px; height: 58px; object-fit: contain; }
.direction-page .direction-card h3 { font-size: 1.03rem; line-height: 1.4; }
.direction-page .direction-card .row.align-items-center { row-gap: 16px; }
.direction-page .direction-card .row.g-3 { padding-top: 18px; border-top: 1px solid #edf1ef; }
.direction-page .direction-card .badge.bg-light {
  padding: .42rem .65rem;
  border: 1px solid #e8eeec;
  border-radius: 8px;
  font-weight: 600;
}
.direction-page .direction-card .text-danger { color: #d87867 !important; }
.direction-page .direction-card .btn { border-radius: 10px; font-weight: 700; }
.direction-page > .row > .col-lg-9 > .d-flex h1 { font-size: clamp(1.55rem, 2vw, 2rem); }
.direction-page .badge.bg-primary { border-radius: 8px; padding: .5rem .75rem; }
@media (max-width: 767.98px) {
  .direction-page .direction-card .col-12.col-lg-4 { align-items: flex-start !important; }
  .direction-page .direction-card .col-12.col-lg-8 { text-align: left !important; }
  .direction-page .direction-card .row.g-3 { row-gap: 14px !important; }
  .direction-page .direction-card .col-md-auto { margin-left: 0 !important; }
}

/* Keep shared site chrome and long content usable on narrow screens. */
html, body { max-width: 100%; overflow-x: clip; }
img, video, iframe, svg { max-width: 100%; }
.site-footer .row { row-gap: 1.25rem; }
.catalog-page, .direction-page, .container, .container-fluid { min-width: 0; }
.table-responsive { max-width: 100%; -webkit-overflow-scrolling: touch; }
.catalog-page table { min-width: 560px; }
.catalog-page .page-heading, .direction-page .page-heading { flex-wrap: wrap; }
.catalog-page .form-control, .catalog-page .form-select, .direction-page .form-control, .direction-page .form-select { min-width: 0; }

@media (max-width: 767.98px) {
  .main-site-navbar { padding: 8px 0; }
  .main-site-navbar .container { gap: 10px; }
  .main-site-navbar .navbar-brand { max-width: calc(100% - 56px); white-space: normal; font-size: 1.08rem; line-height: 1.1; }
  .site-brand-mark { width: 34px; height: 34px; flex-basis: 34px; }
  .main-site-navbar .navbar-collapse { flex-basis: 100%; }
  .main-site-navbar .site-navigation { width: 100%; padding: 8px 0 4px; }
  .main-site-navbar .site-navigation .nav-link { min-height: 44px; display: flex; align-items: center; white-space: normal; }
  .main-site-navbar .site-navigation .nav-link.active::after { bottom: 4px; }
  .catalog-page .sticky-filters { position: static !important; top: auto !important; }
  .site-footer { padding-bottom: max(1.5rem, env(safe-area-inset-bottom)) !important; }
  .site-footer .col-md-4 { width: 100%; }
  .direction-page .direction-card .row { --bs-gutter-x: 1rem; }
  .direction-page .direction-card .btn { width: 100%; }
}

@media (max-width: 575.98px) {
  .main-site-navbar .container { padding-right: 14px; padding-left: 14px; }
  .site-menu-toggle { flex: 0 0 auto; padding: 6px 9px; }
  .catalog-page .university-card .card-body { padding: 1rem; }
  .catalog-page .university-logo-panel { min-height: 105px; }
  .catalog-page .university-logo-panel img { width: 70px; height: 70px; }
  .catalog-page h1, .direction-page h1 { font-size: clamp(1.35rem, 6vw, 1.8rem); overflow-wrap: anywhere; }
  .catalog-page .pagination { flex-wrap: wrap; gap: 3px; }
  .catalog-page .pagination .page-link { padding: .4rem .65rem; }
}
