/* Native links only: no third-party embeds, scripts or tracking. */
.social-link { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; max-width:100%; padding:10px 16px; border:1px solid #172c53; border-radius:999px; color:#172c53; background:transparent; font:inherit; font-size:14px; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; overflow-wrap:anywhere; }
.social-link:hover { color:#fff; background:#172c53; }
.social-link:focus-visible { outline:3px solid #36aeb5; outline-offset:4px; }
.contact-social { margin-top:24px; }
.site-footer .footer-inner { flex-wrap:wrap; }
.site-footer .social-link { color:#fff; border-color:#8796b9; }
.site-footer .social-link:hover { color:#172c53; background:#fff; border-color:#fff; }

.social-icon { display:block; width:20px; height:20px; flex:0 0 20px; }

/* Give the institutional name a clear, professional presence beside the logo. */
.site-header .brand-descriptor {
  padding-left: 14px;
  border-left: 2px solid var(--cyan);
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.25;
}
@media (max-width: 640px) {
  .site-header .brand-descriptor {
    padding-left: 9px;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: -.015em;
    line-height: 1.3;
    overflow-wrap: normal;
  }
}

/* The centering correction belongs to phones only. Desktop keeps its original header. */
@media (max-width: 640px) {
/* Shared institutional masthead: centered identity, with navigation on its own axis. */
header.site-header {
  background: rgba(255, 255, 255, .98);
  border-bottom: 1px solid #dce9ec;
  box-shadow: 0 3px 15px #10164f04;
}
header.site-header .header-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 0;
  padding-block: 15px 0;
}
header.site-header .brand {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: auto;
  max-width: 640px;
  min-width: 0;
  margin-inline: auto;
}
header.site-header .header-logo {
  flex: 0 0 84px;
  width: 84px;
  height: 64px;
  object-fit: contain;
}
header.site-header .brand-descriptor {
  display: block;
  max-width: 300px;
  padding-left: 20px;
  border-left: 1px solid #62b8bd;
  color: #19214f;
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -.025em;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: normal;
  text-wrap: balance;
  text-align: center;
}
header.site-header .main-nav {
  position: static;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 26px;
  width: 100%;
  padding: 8px 0 10px;
  border-top: 1px solid #e8eff2;
  color: #536079;
  font-size: 13px;
  line-height: 1.5;
}
header.site-header .main-nav a { min-height: 40px; display: inline-flex; align-items: center; padding-block: 9px; }
header.site-header .main-nav a.is-current { color: var(--navy); font-weight: 700; }
header.site-header .main-nav .nav-cta {
  padding: 9px 17px;
  border: 1px solid #c4dcdf;
  border-radius: 10px;
  background: #f2f9f9;
  font-weight: 650;
}
header.site-header .main-nav a::after { bottom: 3px; }
header.site-header .menu-toggle { display: none; }
header.site-header .brand:focus-visible,
header.site-header .menu-toggle:focus-visible { outline: 3px solid #187c84; outline-offset: 4px; border-radius: 8px; }
@media (max-width: 800px) and (min-width: 641px) {
  header.site-header .main-nav { gap: 5px 18px; font-size: 12px; }
}
@media (max-width: 640px) {
  header.site-header .header-inner { flex-direction: row; justify-content: space-between; padding-block: 12px; gap: 10px; }
  header.site-header .brand {
    flex: 1 1 0;
    flex-direction: row;
    gap: 10px;
    width: auto;
    max-width: none;
    margin: 0;
  }
  header.site-header .header-logo { flex: 0 0 64px; width: 64px; height: 49px; }
  header.site-header .brand-descriptor {
    flex: 1 1 0;
    width: auto;
    max-width: none;
    padding: 0;
    border: 0;
    font-size: 13px;
    font-weight: 650;
    letter-spacing: -.015em;
    line-height: 1.4;
    text-align: center;
    text-wrap: balance;
  }
  header.site-header .menu-toggle {
    position: static;
    flex: 0 0 48px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 48px;
    min-height: 48px;
    padding: 7px 6px;
    border: 1px solid #dbe7ea;
    border-radius: 10px;
    background: #f7fafb;
    color: #253254;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
  }
  header.site-header .menu-toggle::before {
    content: "";
    display: block;
    width: 17px;
    height: 12px;
    background: linear-gradient(to bottom, currentColor 0 1.5px, transparent 1.5px 5px, currentColor 5px 6.5px, transparent 6.5px 10.5px, currentColor 10.5px 12px);
  }
  header.site-header .menu-toggle[aria-expanded="true"] { background: #e9f3f5; border-color: #83b6c0; }
  header.site-header .main-nav {
    position: absolute;
    top: 100%;
    left: -20px;
    right: -20px;
    display: none;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    width: auto;
    max-height: calc(100dvh - 100px);
    overflow-y: auto;
    padding: 12px 20px 18px;
    border-top: 1px solid #e5edf0;
    border-bottom: 1px solid #d8e5e8;
    background: #fff;
    box-shadow: 0 12px 24px #10164f0c;
    font-size: 14px;
  }
  header.site-header .main-nav.is-open { display: flex; }
  header.site-header .main-nav a { min-height: 46px; padding: 11px 12px; border-radius: 8px; }
  header.site-header .main-nav a.is-current { background: #f1f7f8; }
  header.site-header .main-nav .nav-cta { margin-block: 5px; padding: 11px 12px; }
  header.site-header .main-nav a::after { left: 12px; right: 12px; bottom: 5px; }
}

}
