/* Rules target CMS-generated content. The home navigation, courses, statistics
   and all footer elements outside the menu retain the original stylesheet. */
.cms-primary-menu .nav-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.cms-primary-menu .nav-submenu { grid-column: 1 / -1; }
.cms-primary-menu .nav-submenu .nav-submenu { position: static; width: auto; box-shadow: none; padding-left: 1rem; }
.cms-footer-links { display: grid; gap: .45rem; list-style: none; padding: 0; margin: 0; }
.cms-footer-links .cms-footer-links { padding-left: .75rem; }
.cms-search { position: relative; }
.cms-search summary { cursor: pointer; list-style: none; }
.cms-search summary::-webkit-details-marker { display: none; }
.cms-search-box { position: absolute; right: 0; top: 100%; z-index: 30; width: min(20rem, 85vw); padding: .75rem; background: white; color: #222; }
.cms-search-box input { max-width: 100%; }
.cms-screen-reader { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.cms-more { text-align: right; margin-bottom: .75rem; }
.hero-carousel__control[hidden], .hero-carousel__dots[hidden], .about-carousel__dots[hidden] { display: none; }
.cms-events .cal-card:nth-child(4n + 2) { background: linear-gradient(135deg, #f06a2a, #ff8a3c 54%, #f25b2d); }
.cms-events .cal-card:nth-child(4n + 3) { background: linear-gradient(135deg, #1ea95a, #35c46f 52%, #169a52); }
.cms-events .cal-card:nth-child(4n) { background: linear-gradient(135deg, #5b48f5, #7a5cff 52%, #4b40d8); }
.listcolumn-news__item { color: inherit; text-decoration: none; }
.listcolumn-news__item:hover .listcolumn-news__item-title { color: var(--color-primary); }
.cms-article-meta, .cms-adjacent { margin: 1rem 0; font-size: .875rem; }
.pg-article img, .pg-article video { max-width: 100%; height: auto; }
.pg-article, .research-team-member__body { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .cms-primary-menu, .cms-search { width: 100%; }
  .cms-search-box { position: static; width: 100%; }
}
