/* GMS Motion System — lightweight, reusable, accessibility-safe */
:root {
  --gms-motion-duration: 650ms;
  --gms-motion-distance: 24px;
  --gms-motion-ease: cubic-bezier(.2,.75,.25,1);
}

/* JS only applies these classes after the document is ready. */
.gms-motion-ready .gms-motion-item {
  opacity: 0;
  transform: translate3d(0, var(--gms-motion-distance), 0);
  transition:
    opacity var(--gms-motion-duration) var(--gms-motion-ease),
    transform var(--gms-motion-duration) var(--gms-motion-ease);
  transition-delay: var(--gms-motion-delay, 0ms);
  will-change: opacity, transform;
}

.gms-motion-ready .gms-motion-item[data-motion-direction="left"] {
  transform: translate3d(calc(var(--gms-motion-distance) * -1), 0, 0);
}

.gms-motion-ready .gms-motion-item[data-motion-direction="right"] {
  transform: translate3d(var(--gms-motion-distance), 0, 0);
}

.gms-motion-ready .gms-motion-item[data-motion-direction="scale"] {
  transform: scale(.965);
}

.gms-motion-ready .gms-motion-item.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  will-change: auto;
}

/* Premium but subtle interactions. */
.gms-audience-grid > *,
.gms-category-grid > *,
.gms-solution-grid > *,
.gms-content-card,
.gms-catalog-card,
.gms-btn {
  transition:
    transform 220ms ease,
    box-shadow 220ms ease,
    border-color 220ms ease,
    background-color 220ms ease;
}

.gms-audience-grid > *:hover,
.gms-category-grid > *:hover,
.gms-solution-grid > *:hover,
.gms-content-card:hover,
.gms-catalog-card:hover {
  transform: none;
  box-shadow: 0 12px 28px rgba(11, 29, 58, .08);
}

.gms-btn:hover {
  transform: translateY(-2px);
}

.gms-content-card img,
.gms-catalog-card__image img {
  transition: transform 420ms var(--gms-motion-ease);
}

.gms-content-card:hover img,
.gms-catalog-card:hover .gms-catalog-card__image img {
  transform: scale(1.035);
}

/* FAQ opening feedback without forcing a fixed height. */
.gms-faq details[open] {
  border-color: rgba(17, 86, 179, .42);
  box-shadow: inset 4px 0 var(--gms-blue);
}

.gms-faq details > *:not(summary) {
  animation: gms-faq-in 260ms ease both;
}

@keyframes gms-faq-in {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Never hide content when visitors request reduced motion. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }

  .gms-motion-ready .gms-motion-item,
  .gms-motion-ready .gms-motion-item[data-motion-direction] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  .gms-audience-grid > *,
  .gms-category-grid > *,
  .gms-solution-grid > *,
  .gms-content-card,
  .gms-catalog-card,
  .gms-btn,
  .gms-content-card img,
  .gms-catalog-card__image img {
    transition: none !important;
  }
}
