/* Progressive motion: content stays readable without JavaScript. */
@view-transition {
  navigation: auto;
}
::view-transition-old(root) {
  animation: motion-page-out 0.14s ease-out both;
}
::view-transition-new(root) {
  animation: motion-page-in 0.22s ease-out both;
}
@keyframes motion-page-out {
  to {
    opacity: 0;
  }
}
@keyframes motion-page-in {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.motion-pending {
  opacity: 0;
}
.hero-premium,
.page-hero,
.page-hero-premium,
.tm-hero {
  position: relative;
  isolation: isolate;
}
.hero-premium:after,
.page-hero:after,
.page-hero-premium:after,
.tm-hero:after {
  content: '';
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: 0;
  background: radial-gradient(ellipse at 72% 25%, rgba(77, 174, 155, 0.12), transparent 52%);
  opacity: 0.4;
  animation: motion-hero-glow 12s ease-in-out infinite alternate;
}
@keyframes motion-hero-glow {
  from {
    opacity: 0.25;
  }
  to {
    opacity: 0.9;
  }
}
.tm-card-link i,
.tm-related-grid a > i,
.card .text-link,
.concern-card-link > span,
.resource-copy > span i {
  transition: transform 0.22s ease;
}
.journey-node {
  transition:
    border-color 0.35s,
    box-shadow 0.35s;
}
.journey-node.journey-reached {
  border-color: #91bdae;
  box-shadow: 0 8px 24px rgba(18, 63, 75, 0.07);
}
.journey-node > span {
  transition:
    background 0.35s,
    color 0.35s;
}
.journey-node.journey-reached > span {
  background: #e0f0e6;
  color: #187563;
}
.faq-item summary > span {
  transition: transform 0.25s ease;
}
.faq-item[open] summary > span {
  transform: rotate(45deg);
}
@media (hover: hover) and (pointer: fine) {
  .tm-card:hover .tm-card-link i,
  .card:hover .text-link,
  .concern-card:hover .concern-card-link > span,
  .resource-feature:hover .resource-copy > span i {
    transform: translateX(4px);
  }
  .tm-related-grid a,
  .consult-card,
  .blog-card {
    transition:
      transform 0.22s ease,
      box-shadow 0.22s ease;
  }
  .tm-related-grid a:hover,
  .consult-card:hover,
  .blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(18, 63, 75, 0.09);
  }
}
@media (prefers-reduced-motion: reduce) {
  .motion-pending {
    opacity: 1;
  }
  .hero-premium:after,
  .page-hero:after,
  .page-hero-premium:after,
  .tm-hero:after {
    animation: none;
  }
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }
  .journey-node,
  .journey-node > span,
  .faq-item summary > span,
  .tm-card-link i,
  .tm-related-grid a,
  .consult-card,
  .blog-card,
  .card .text-link,
  .concern-card-link > span,
  .resource-copy > span i {
    transition: none;
  }
  .tm-related-grid a:hover,
  .consult-card:hover,
  .blog-card:hover,
  .tm-card:hover .tm-card-link i,
  .card:hover .text-link,
  .concern-card:hover .concern-card-link > span,
  .resource-feature:hover .resource-copy > span i {
    transform: none;
  }
}

/* Two identical groups create a continuous, gap-free qualifications loop. */
.trust-track {
  animation: trustLoop 36s linear infinite;
  gap: 0;
}
.trust-group {
  display: flex;
  flex-shrink: 0;
  min-width: 100vw;
  justify-content: space-around;
}
.trust-group > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
@keyframes trustLoop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .trust-marquee {
    overflow: visible;
  }
  .trust-track {
    width: 100%;
    animation: none !important;
    transform: none !important;
  }
  .trust-group {
    min-width: 0;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
  }
  .trust-group[aria-hidden='true'] {
    display: none;
  }
}
