/* Motion follows browsing and deliberate interaction; content is visible by default. */
:root { --fa-scroll-progress: 0; }
html { scroll-padding-top: 116px; }
.wp-site-blocks > .wp-block-template-part:first-child { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.fa-header { position: relative; transition: box-shadow .25s ease; }
.fa-header.is-scrolled { box-shadow: 0 6px 22px #10252d22; }
.fa-header::after { position: absolute; inset: auto 0 -1px; height: 3px; background: var(--fa-signal); content: ''; transform: scaleX(var(--fa-scroll-progress)); transform-origin: left; pointer-events: none; }

.fa-button > span, .fa-text-link > span, .fa-resource-link > span { display: inline-block; transition: transform .25s ease; }
.fa-button:is(:hover, :focus-visible) > span, .fa-text-link:is(:hover, :focus-visible) > span, .fa-resource-card:is(:hover, :focus-visible) .fa-resource-link > span { transform: translate(3px, -3px); }
.fa-product-card, .fa-resource-card, .fa-company-link { transition: border-color .25s ease, box-shadow .25s ease; }
.fa-product-card:focus-within, .fa-resource-card:focus-visible, .fa-company-link:focus-visible { border-color: var(--fa-signal); box-shadow: 0 8px 24px #10252d10; }
.fa-application-card { transition: border-color .25s ease, background-color .25s ease; }
.fa-application-card:focus-within { border-color: var(--fa-signal); }
.fa-process-number { transition: color .25s ease, border-color .25s ease; }

.fa-scene-controls { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px; border-top: 1px solid var(--fa-line); background: var(--fa-white); }
.fa-scene-button { flex: 1 1 110px; min-height: 44px; padding: 9px 10px; border: 1px solid var(--fa-line); border-radius: 0; color: var(--fa-muted); background: var(--fa-white); cursor: pointer; font-size: .75rem; line-height: 1.4; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.fa-scene-button[aria-pressed="true"] { border-color: var(--fa-ink); color: var(--fa-white); background: var(--fa-ink); }
.fa-scene-button:hover { border-color: var(--fa-signal); }
.fa-application-media.fa-scene-viewer > img { display: block; width: 100%; flex: none; aspect-ratio: 4 / 3; object-fit: contain; background: var(--fa-white); }
.fa-scene-viewer figcaption { flex: 1; margin: 0; }
.fa-back-to-top { position: fixed; z-index: 40; right: 24px; bottom: 24px; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid #ffffff55; border-radius: 2px; background: var(--fa-ink); color: var(--fa-white); box-shadow: 0 4px 16px #10252d22; font-size: 24px; cursor: pointer; transition: background-color .2s ease, transform .2s ease; }
.fa-back-to-top[hidden] { display: none; }
.fa-back-to-top:hover { background: var(--fa-steel); transform: translateY(-3px); }

@media (hover: hover) and (pointer: fine) {
  .fa-product-card:hover, .fa-resource-card:hover, .fa-company-link:hover { border-color: var(--fa-signal); box-shadow: 0 10px 28px #10252d12; }
  .fa-application-card:hover { border-color: var(--fa-signal); background: #eb692d06; }
  .fa-card-product-image img, .fa-oem-media img { transition: transform .4s ease; }
  .fa-card-product-image:hover img { transform: scale(1.06); }
  .fa-oem-media:hover img { transform: scale(1.025); }
  .fa-process > li:hover .fa-process-number { color: var(--fa-signal); border-color: var(--fa-signal); }
}
@media (max-width: 781px) {
  .fa-application-media.fa-scene-viewer > img { aspect-ratio: 4 / 3; }
  .fa-back-to-top { right: 16px; bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fa-header, .fa-button > span, .fa-text-link > span, .fa-resource-link > span, .fa-product-card, .fa-resource-card, .fa-company-link, .fa-application-card, .fa-process-number, .fa-scene-button, .fa-back-to-top, .fa-card-product-image img, .fa-oem-media img { transition: none; }
  .fa-button > span, .fa-text-link > span, .fa-resource-link > span, .fa-card-product-image:hover img, .fa-oem-media:hover img, .fa-back-to-top:hover { transform: none !important; }
}
