/* Subtle, premium interaction details shared across BrightPath. */
.brand img,
.nav-links a,
.nav-trigger,
.nav-drop,
.nav-drop a,
.footer a,
.photo-card,
.photo-card>img,
.blog-card,
.blog-card img,
.stat,
.quote,
.feature,
.price-card,
.faq-item,
.form-card,
.cta,
.hero-image img,
.split img,
.floating-card,
.field input,
.field textarea,
.field select {
  transition: transform .32s cubic-bezier(.2,.75,.25,1), border-color .32s ease, box-shadow .32s ease, background-color .32s ease, color .22s ease, filter .32s ease;
}

.nav-links>a:not(.btn) { position: relative; }
.nav-links>a:not(.btn)::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -7px;
  height: 1px;
  background: var(--lime);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .28s ease;
}

.article a:not(.btn) {
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: #baff0066;
  text-underline-offset: 4px;
  transition: color .2s ease, text-decoration-color .2s ease;
}

.field input:focus,
.field textarea:focus,
.field select:focus {
  outline: none;
  border-color: #8fc900;
  box-shadow: 0 0 0 3px #baff0014;
  background: #0d110e;
}

@media (hover: hover) and (pointer: fine) {
  .brand:hover img { transform: translateY(-1px) scale(1.025); filter: drop-shadow(0 7px 14px #baff001c); }
  .nav-links>a:not(.btn):hover::after { transform: scaleX(1); transform-origin: left; }
  .nav-drop { transform: translateY(4px); }
  .nav-group:hover .nav-drop,
  .nav-group.open .nav-drop { transform: translateY(0); }
  .nav-drop a:hover { transform: translateX(3px); background: #1b221c; }
  .btn:hover { transform: translateY(-2px); }
  .btn-primary:hover { box-shadow: 0 12px 32px #baff0030; filter: brightness(1.04); }
  .btn-secondary:hover { border-color: #687268; background: #181d19; box-shadow: 0 10px 26px #0005; }
  .photo-card:hover,
  .blog-card:hover { transform: translateY(-5px); border-color: #465047; box-shadow: 0 20px 48px #0007; }
  .photo-card:hover>img,
  .blog-card:hover img { transform: scale(1.035); filter: saturate(1.06) contrast(1.02); }
  .stat:hover,
  .quote:hover,
  .feature:hover,
  .price-card:hover,
  .faq-item:hover,
  .form-card:hover { transform: translateY(-3px); border-color: #3d483e; box-shadow: 0 16px 38px #0005; }
  .price-card.featured:hover { border-color: var(--lime); box-shadow: 0 0 0 1px var(--lime) inset, 0 18px 42px #0007; }
  .cta:hover { border-color: #61792a; box-shadow: 0 20px 55px #0006; transform: translateY(-3px); }
  .hero-image:hover img,
  .split>div:hover>img { transform: translateY(-3px); filter: saturate(1.04); box-shadow: 0 24px 60px #0007; }
  .floating-card:hover { transform: translateY(-4px); border-color: #5b6d5d; box-shadow: 0 18px 44px #0007; }
  .footer a { display: inline-block; }
  .footer a:hover { transform: translateX(3px); }
  .article a:not(.btn):hover { color: var(--lime); text-decoration-color: var(--lime); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
