/* Shared motion: use the homepage's quiet, stationary hover feedback everywhere. */
:root {
  --site-motion-duration: 200ms;
  --site-motion-ease: cubic-bezier(.4, 0, .2, 1);
}

/* Content is readable immediately, without scroll observers or delayed entrances. */
body :is(.v3-anim-up, .v3-anim-left, .v3-anim-right, .v3-anim-scale, .v3-stagger > *, .v3-hero-left > *, .v3-hero-right) {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition-delay: 0s !important;
}

body :is(a, button, input:not([type=range]), select, summary, [role=button]) {
  transition-property: color, background-color, border-color, box-shadow, opacity !important;
  transition-duration: var(--site-motion-duration) !important;
  transition-timing-function: var(--site-motion-ease) !important;
  transition-delay: 0s !important;
}

body :is(.v3-card, .article-card, .related-card, .project-card, .sc-card, .rh-path, .rh-feature, .rh-latest, .rh-result, .rh-tool, .main-site-range, .site-next-card, .tool-related-grid > a, .ldg-layer-card, .ldg-param-card, .lvt-card, .ba2-compare-item, .sol-product-card, .lsg-cct-segment, .lsg-pf-card, .lsg-cri-card, .lsg-mistake-card, .lcg-card, .room-card, .fixture-card, .area-card, .mf-card) {
  transition-property: color, background-color, border-color, box-shadow !important;
  transition-duration: var(--site-motion-duration) !important;
  transition-timing-function: var(--site-motion-ease) !important;
  transition-delay: 0s !important;
}

/* Hover never shifts a target away from the pointer or zooms product photography. */
body :is(.v3-card, .article-card, .related-card, .project-card, .sc-card, .rh-path, .rh-feature, .rh-latest, .rh-result, .rh-tool, .main-site-range, .site-next-card, .tool-related-grid > a, .ldg-layer-card, .ldg-param-card, .lvt-card, .ba2-compare-item, .sol-product-card, .lsg-cct-segment, .lsg-pf-card, .lsg-cri-card, .lsg-mistake-card, .lcg-card, .room-card, .fixture-card, .area-card, .mf-card, .v3-btn-primary, .v3-btn-white, .v3-btn-quote, .v3-soc a, .v3-float a, .v3-strip-item, .v3-rev):hover,
body .v3-card:hover .ico,
body :is(.project-card, .article-card, .related-card, .room-card, .fixture-card, .area-card):hover img,
body #product-lines .grid a:hover,
body :is(#indoor, #commercial) .bg-white.rounded-xl:hover {
  transform: none !important;
}

body :is(.article-card, .related-card, .project-card, .sc-card, .rh-path, .rh-feature, .rh-latest, .main-site-range, .tool-related-grid > a):is(:hover, :focus-within) {
  border-color: #b10b1d;
  box-shadow: 0 3px 12px rgb(0 0 0 / 4%);
}

body :is(.project-img, .article-card img, .related-card img, .room-card img, .fixture-card img, .area-card img) {
  transition-property: opacity, border-color !important;
  transition-duration: var(--site-motion-duration) !important;
  transition-timing-function: var(--site-motion-ease) !important;
}

/* Retire decorative sweeps, bouncing badges and continuously pulsing contact links. */
body :is(.v3-btn-primary, .v3-card)::after {
  content: none !important;
}
body :is(.v3-float a, .side-toolbar .wa-btn, .v3-hero-badge .dot, .v3-scroll-indicator, .v3-scroll-indicator .dot, .v3-strip-item) {
  animation: none !important;
}
/* Preserve the homepage's main-site-first contact order without its old script. */
body .v3-float .wa { order: 1; }
body .v3-card::before {
  transform: none !important;
  opacity: 0;
  transition: opacity var(--site-motion-duration) var(--site-motion-ease) !important;
}
body .v3-card:hover::before { opacity: 1; }
body .v3-footer-col a:hover { padding-left: 0; }

body .v3-header {
  transition: box-shadow var(--site-motion-duration) var(--site-motion-ease) !important;
}
body .v3-header.scrolled { box-shadow: 0 2px 14px rgb(0 0 0 / 6%); }

/* Only newly opened UI fades in; page sections never wait to become visible. */
@keyframes site-content-in {
  from { opacity: .65; }
  to { opacity: 1; }
}
body .fade-in,
body.site-home .home-panel:not([hidden]),
body .v3-nav.show,
body .v3-nav-item.is-open > .v3-dropdown,
body .faq-item.open .faq-answer:not([hidden]),
body details[open] > :not(summary),
body .sc-preview[open] {
  animation: var(--site-motion-animation, site-content-in) var(--site-motion-duration) var(--site-motion-ease) !important;
}

/* Preserve functional arrow, switch and calculator-diagram movement. */
body :is(.faq-chevron, .ba2-faq-icon, .lv-faq-icon, .toggle-arrow, .sol-chevron, .dropdown-chevron, .v3-submenu-toggle svg, .sleep-slider),
body .sleep-slider::before {
  transition-duration: var(--site-motion-duration) !important;
  transition-timing-function: var(--site-motion-ease) !important;
  transition-delay: 0s !important;
}
body .v3-submenu-toggle svg { transition-property: transform; }
body :is(.faq-answer, .ba2-faq-a, .lv-faq-a, .case-details, .sol-collapsible, .roi-bar, .il-bar, .led-bar, .led-compare-bar, .dim-energy-fill, .kelvin-marker, .kelvin-marker-label, .ct-swatch, .tco-bar-solar, .tco-bar-grid, .tco-year-bar-solar, .tco-year-bar-grid) {
  transition-duration: var(--site-motion-duration) !important;
  transition-timing-function: var(--site-motion-ease) !important;
  transition-delay: 0s !important;
}

/* Keep geometry/selection states, but remove motion when requested or printing. */
@media (prefers-reduced-motion: reduce), print {
  :root { --site-motion-duration: 0s; --site-motion-animation: none; }
  html { scroll-behavior: auto !important; }
  html body *, html body *::before, html body *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
