/**
 * Loaded last — ensures hover transitions are never stripped by page CSS.
 * Transitions must live on base states, never on :hover.
 */

:is(
    a,
    button,
    .btn,
    .cis-btn,
    .card,
    .premium-card,
    .link-arrow,
    .link-primary,
    .back-to-top,
    .home-feature-card,
    .home-stage-card,
    .home-global-item,
    .home-pathway-card,
    .home-cocurricular-card,
    .home-expert-icon,
    .home-image-frame,
    .home-accreditation-item,
    .site-footer__social-link,
    .site-footer__links a,
    .main-nav__link,
    .main-nav__dropdown-item a,
    .life-card,
    .community-card,
    .voice-card,
    .horizontal-card,
    .feature-item,
    .facility-card,
    .learning-card,
    .process-step-card,
    .gallery-card,
    .accred-horizontal-card,
    .benefit-card,
    .cis-profile-card,
    .parents-card__button,
    .apply-timeline__card,
    .apply-why-card,
    .apply-trust-bar__item
) {
    transition: var(--transition-interactive);
}

:is(
    .home-cocurricular-card img,
    .home-stage-card__media img,
    .home-pathway-card__media img,
    .home-image-frame img,
    .card-img-top,
    .premium-card img,
    .life-card img,
    .community-card img,
    .horizontal-card img,
    .voice-img,
    .gallery-card img
) {
    transition: var(--transition-transform);
}

:is(
    .home-stage-card__grade,
    .site-footer__links a::before,
    .main-nav__caret-icon,
    .home-cocurricular-card__overlay
) {
    transition: var(--transition-interactive);
}

.cis-btn span span.text-1,
.cis-btn span span.text-2,
.cis-btn svg {
    transition: var(--transition-hover);
}

.link-arrow__arrow {
    transition: max-width var(--duration) var(--ease), margin-left var(--duration) var(--ease), opacity var(--duration) var(--ease);
}

.link-arrow__arrow svg {
    transition: transform var(--duration) var(--ease);
}

@media (prefers-reduced-motion: reduce) {
    .link-arrow__arrow {
        max-width: 22px;
        margin-left: 0.4rem;
        opacity: 1;
    }

    .link-arrow__arrow svg {
        transform: none;
    }
}
