/* Interactive CSS hooks — no JS required for basic affordances */

/* Services: highlight tab that matches :target via hash — JS will set aria-current later */
[data-tabs="services"] a:active {
  color: var(--fg);
}

/* Lead-magnet filter current state ready for JS */
[data-filter-group] [aria-current="true"] {
  color: var(--fg);
}

/* Sticky button visibility controlled by [hidden] in HTML; JS removes it in #services */
[data-sticky="ask-ai"]:not([hidden]) {
  display: inline-flex;
  align-items: center;
}

/* FAQ open state */
details[open] summary {
  color: var(--fg);
}

/* Target scroll for service groups */
[id^="svc-"] {
  scroll-margin-top: calc(var(--header-h) + 1.25rem);
}

/* Optional: video-end reveal is JS-owned (timeline end). Do not fake on hover. */

/* Soft fade-in for section titles — disabled under reduced motion via base.css */
@media (prefers-reduced-motion: no-preference) {
  [data-section] > h1,
  [data-section] > h2 {
    animation: nl-fade-up 0.55s ease both;
  }
}

@keyframes nl-fade-up {
  from {
    opacity: 0;
    transform: translateY(0.4rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
