/* ------------------------------------------------------------------------------------
   iqac.uz additions on top of the Figma stylesheets (styles.css / figma-1x1.css / figma-pages.css):
   responsive navigation, partners carousel, news featured slider, hero partner marquee,
   CMS-driven page banners. Loaded last, so it wins ties.
   ------------------------------------------------------------------------------------ */

/* ---- Navigation: between the desktop (>1280px) and mobile (<=960px) layouts the eight
   menu items do not fit on one row -> wrap into centred rows instead of overflowing. ---- */
@media (max-width: 1280px) and (min-width: 961px) {
  .site-nav {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.1rem 1rem;
    min-height: 0;
    padding: 0.55rem 0;
    overflow: visible;
  }
  .site-nav a {
    font-size: 0.88rem;
    padding: 0.35rem 0;
  }
  .site-nav > a::after,
  .site-nav > .nav-item > a::after {
    width: 9px;
    height: 9px;
  }
}

/* ---- Hero partner strip: seamless marquee (two identical halves, shifted by 50%) ---- */
.hero-partners {
  overflow: hidden;
}
.hero-partners .hero-partners-inner.is-marquee {
  display: flex;
  justify-content: flex-start;
  width: max-content;
  max-width: none;
  gap: clamp(2rem, 4vw, 96px);
  padding-right: clamp(2rem, 4vw, 96px);
  overflow: visible;
  animation: iqac-marquee 42s linear infinite;
}
.hero-partners .hero-partners-inner.is-marquee:hover {
  animation-play-state: paused;
}
.hero-partners .hero-partners-inner.is-marquee .hero-partner {
  flex: 0 0 auto;
}
@keyframes iqac-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-partners .hero-partners-inner.is-marquee { animation: none; }
}

/* ---- News: featured slide + clickable dots ---- */
.news-featured-wrap .news-featured { cursor: pointer; }
.news-featured-wrap .news-featured-img { transition: opacity .45s ease; }
.news-featured-wrap .news-featured.is-switching .news-featured-img { opacity: 0; }
.carousel-dots span { cursor: pointer; }

/* ---- Partners: infinite carousel (desktop / tablet), plain grid on phones ---- */
.partners-track-wrap.is-carousel {
  touch-action: pan-y;
  user-select: none;
}
.partners-track-wrap.is-carousel .partners-grid {
  display: flex !important;
  flex-wrap: nowrap;
  width: max-content !important;
  margin-left: 0 !important;
  gap: var(--pc-gap, 24px) !important;
  justify-content: flex-start;
  transition: transform .7s cubic-bezier(.22, .61, .36, 1);
  will-change: transform;
}
.partners-track-wrap.is-carousel .partner-card {
  flex: 0 0 var(--pc-w, 434px);
  width: var(--pc-w, 434px) !important;
  height: var(--pc-w, 434px) !important;
  aspect-ratio: auto !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(var(--pc-w, 434px) * 0.06);
  padding: calc(var(--pc-w, 434px) * 0.08) calc(var(--pc-w, 434px) * 0.07) !important;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
}
.partners-track-wrap.is-carousel .partner-card .partner-logo {
  position: static !important;
  left: auto !important;
  top: auto !important;
  width: auto !important;
  height: auto !important;
  max-height: calc(var(--pc-w, 434px) * 0.38) !important;
  max-width: 78% !important;
  object-fit: contain;
}
.partners-track-wrap.is-carousel .partner-card p {
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: auto !important;
  max-width: 100%;
  margin: 0 !important;
}
.partners-track-wrap.is-carousel .partner-card:only-child {
  margin: 0 auto;
}
@media (max-width: 960px) {
  .partners-track-wrap,
  .partners-track-wrap.is-carousel {
    width: auto;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    overflow: visible;
  }
  .partners-track-wrap .partners-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: auto;
    margin-left: 0;
  }
}
@media (max-width: 640px) {
  .partners-track-wrap .partners-grid {
    grid-template-columns: 1fr;
  }
}

/* ---- Page banners: CMS image inserted into banners that have no visual in the template
   (e.g. the regulatory-documents "mark" banner) ---- */
.page-hero-banner .page-hero-fig--cms {
  position: absolute;
  right: 3%;
  bottom: 0;
  top: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  width: 36%;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
}
.page-hero-banner .page-hero-fig--cms img {
  max-height: 94%;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: bottom;
  filter: drop-shadow(0 18px 40px rgba(0, 0, 0, .25));
}
.page-hero-banner--mark .page-hero-copy {
  position: relative;
  z-index: 2;
  max-width: 60%;
}
@media (max-width: 1024px) {
  .page-hero-banner .page-hero-fig--cms { display: none; }
  .page-hero-banner--mark .page-hero-copy { max-width: 100%; }
}
