/**
 * @file
 * admu2026 — Site Microanimation System
 *
 * Hover patterns and transitions for all site components.
 * Animation tokens (--admu-ease, --admu-dur-*, --admu-lift-*, --admu-shadow-*)
 * are defined in styleguide.css :root.
 */

/* ══════════════════════════════════════════════════════════════════════
   NO UNDERLINE ON HOVER — override every legacy !important rule
   ══════════════════════════════════════════════════════════════════════ */

/* Global reset */
a:hover,
a:focus {
  text-decoration: none !important;
}

/* Override nav.css */
.nav-link:hover {
  text-decoration: none !important;
}

/* Override theme.css hover underlines */
.article--links:hover h6,
.new-articles:hover h5,
.footer-links li a:hover,
.news-inner-content-container a:hover,
.academic-blocks-learn-more:hover,
.dthree--news-page-events .nav-item .nav-link:hover,
.acedemics--titles a:hover h6 {
  text-decoration: none !important;
}

/* Override theme2.css hover underlines */
.news-same-cat-card a:hover,
.row-news-section-no-img--card:hover div:last-child p,
.news-inner-top-nav ul li a,
.admissions-list .btn.btn-angle:hover,
.admissions--link:hover {
  text-decoration: none !important;
}

/* ── Hover feedback: color shift instead of underline ───────────────── */
.nav-link:hover,
.article--links:hover h6,
.new-articles:hover h5,
.news-same-cat-card a:hover,
.academic-blocks-learn-more:hover,
.admissions--link:hover {
  opacity: 0.8;
  transition: opacity var(--admu-dur-fast) var(--admu-ease) !important;
}

/* ══════════════════════════════════════════════════════════════════════
   HOMEPAGE CONTENT — card hover lift
   ══════════════════════════════════════════════════════════════════════ */

/* Featured news cards (.new-articles) */
.new-articles {
  transition: transform var(--admu-dur) var(--admu-ease),
              box-shadow var(--admu-dur) var(--admu-ease);
}
.new-articles:hover {
  transform: translateY(var(--admu-lift));
}

/* News image zoom */
.new-articles .img-container {
  overflow: hidden;
}
.new-articles .img-container img {
  transition: transform var(--admu-dur-slow) var(--admu-ease);
}
.new-articles:hover .img-container img {
  transform: scale(1.04);
}

/* Events calendar cards */
.events-calendar-container > .col-md-4 {
  transition: transform var(--admu-dur) var(--admu-ease);
}
.events-calendar-container > .col-md-4:hover {
  transform: translateY(var(--admu-lift));
}
.events-calendar-container .img-container {
  overflow: hidden;
}
.events-calendar-container .img-container img {
  transition: transform var(--admu-dur-slow) var(--admu-ease);
}
.events-calendar-container > .col-md-4:hover .img-container img {
  transform: scale(1.04);
}

/* Generic views rows */
.views-row,
.node--view-mode-teaser {
  transition: transform var(--admu-dur) var(--admu-ease);
}
.views-row:hover,
.node--view-mode-teaser:hover {
  transform: translateY(var(--admu-lift));
}

/* Article link cards (used across news pages) */
.article--links {
  transition: transform var(--admu-dur) var(--admu-ease);
}
.article--links:hover {
  transform: translateY(var(--admu-lift));
}

/* Homepage banner */
.homepage--banner_slider .slick-slide {
  transition: opacity var(--admu-dur-slow) var(--admu-ease-out);
}

/* Footer links — subtle opacity on hover */
.footer-links li a {
  transition: opacity var(--admu-dur-fast) var(--admu-ease);
}
.footer-links li a:hover {
  opacity: 0.75;
}

/* ══════════════════════════════════════════════════════════════════════
   BUTTONS — unified lift + shadow
   ══════════════════════════════════════════════════════════════════════ */
.btn,
.button,
.form-submit,
.homepage--banner_link a,
.academic-blocks-learn-more {
  transition: transform var(--admu-dur) var(--admu-ease),
              box-shadow var(--admu-dur) var(--admu-ease),
              background-color var(--admu-dur) var(--admu-ease),
              opacity var(--admu-dur) var(--admu-ease) !important;
}
.btn:hover,
.button:hover,
.form-submit:hover,
.homepage--banner_link a:hover,
.academic-blocks-learn-more:hover {
  transform: translateY(var(--admu-lift-sm));
  box-shadow: var(--admu-shadow-hover);
}

/* ══════════════════════════════════════════════════════════════════════
   IMAGES — subtle zoom on hover
   ══════════════════════════════════════════════════════════════════════ */

/* Theme components */
.news-featured-slider .slick-slide img,
.views-row img {
  overflow: hidden;
}

.views-row img {
  transition: transform var(--admu-dur-slow) var(--admu-ease);
}

.views-row:hover img {
  transform: scale(1.04);
}

/* Areté components */
.arete-page-news-article__image,
.arete-events-list-article__image,
.arete-events-slider-article__image,
.arete-feature-cards-article__image,
.arete-card-grid__card-image {
  overflow: hidden;
}

.arete-page-news-article__image img,
.arete-events-list-article__image img,
.arete-events-slider-article__image img,
.arete-feature-cards-article__image img,
.arete-card-grid__card-image img {
  transition: transform var(--admu-dur-slow) var(--admu-ease);
}

.arete-page-news-article:hover .arete-page-news-article__image img,
.arete-events-list-article:hover .arete-events-list-article__image img,
.arete-events-slider-article:hover .arete-events-slider-article__image img,
.arete-feature-cards-article:hover .arete-feature-cards-article__image img,
.arete-card-grid__card:hover .arete-card-grid__card-image img {
  transform: scale(1.04);
}

/* ══════════════════════════════════════════════════════════════════════
   SCROLL-TRIGGERED ENTRANCE ANIMATIONS
   ══════════════════════════════════════════════════════════════════════ */

[data-arete-animate] {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity var(--admu-dur-slow) var(--admu-ease-out),
    transform var(--admu-dur-slow) var(--admu-ease-out);
  will-change: opacity, transform;
}

[data-arete-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}

[data-arete-animate][style*="--admu-delay"] {
  transition-delay: var(--admu-delay, 0ms);
}

/* ── Reduced motion ─────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-arete-animate] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
