/* Build motion v2: separate entrance and interaction vocabularies.
   No content is hidden in CSS; disabled JavaScript leaves everything readable. */
body.family-field .build-reading-progress {
  position: fixed;
  z-index: 49;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #ea7d00;
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: left center;
}
body.family-field :is(.build-motion-card-frame, .build-motion-sheen) { display: none; }

@media (hover: hover) and (pointer: fine) and (min-width: 900px) and (prefers-reduced-motion: no-preference) {
  html.build-motion-interactive body.family-field .build-motion-frame { overflow: hidden; }
  html.build-motion-interactive body.family-field img.build-motion-photo {
    transform: perspective(1400px) translate3d(var(--bm-x, 0px), var(--bm-y, 0px), 0) rotateX(var(--bm-rx, 0deg)) rotateY(var(--bm-ry, 0deg)) scale(var(--bm-scale, 1.075));
    transition: transform 850ms cubic-bezier(.2,.7,.3,1);
    transform-origin: center;
  }
  html.build-motion-interactive body.family-field :is(.tpi-service-mosaic__card, .tpi-editable-service-card, .tpi-editable-support-card, .field-project-card):hover img.build-motion-photo { --bm-scale: 1.105; }
  html.build-motion-interactive body.family-field img.build-motion-hero {
    transform: translate3d(var(--bm-x, 0px), var(--bm-y, 0px), 0) scale(1.05);
    transition: transform 1000ms cubic-bezier(.2,.7,.3,1);
  }
  html.build-motion-interactive body.family-field .build-motion-action { position: relative; }
  html.build-motion-interactive body.family-field .build-motion-action > .elementor-button-content-wrapper {
    position: relative;
    z-index: 2;
    transform: translate3d(var(--bm-x, 0px), var(--bm-y, 0px), 0);
    transition: transform 350ms cubic-bezier(.16,1,.3,1);
  }
  html.build-motion-interactive body.family-field .build-motion-sheen {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(115deg, transparent 35%, rgb(255 255 255 / .24) 48%, transparent 61%);
    background-size: 250% 100%;
    background-position: 150% 0;
    transition: opacity 180ms ease, background-position 0ms 700ms;
  }
  html.build-motion-interactive body.family-field .build-motion-action:is(:hover, :focus-visible) .build-motion-sheen {
    opacity: 1;
    background-position: -70% 0;
    transition: opacity 180ms ease, background-position 800ms cubic-bezier(.2,.7,.3,1);
  }
  html.build-motion-interactive body.family-field .build-motion-action .dashicons-arrow-right-alt2 {
    transition: translate 350ms cubic-bezier(.16,1,.3,1);
  }
  html.build-motion-interactive body.family-field .build-motion-action:is(:hover, :focus-visible) .dashicons-arrow-right-alt2 { translate: 5px 0; }
  html.build-motion-interactive body.family-field .tpi-service-mosaic__label { transition: translate 500ms cubic-bezier(.16,1,.3,1); }
  html.build-motion-interactive body.family-field .tpi-service-mosaic__card:is(:hover, :focus-within) .tpi-service-mosaic__label { translate: 0 -6px; }
  html.build-motion-interactive body.family-field .tpi-service-mosaic__card h3::after {
    transform-origin: left;
    transform: scaleX(.6);
    transition: transform 600ms cubic-bezier(.16,1,.3,1);
  }
  html.build-motion-interactive body.family-field .tpi-service-mosaic__card:is(:hover, :focus-within) h3::after { transform: scaleX(1); }
  html.build-motion-interactive body.family-field .build-motion-card-frame {
    display: block;
    position: absolute;
    inset: 13px;
    z-index: 2;
    border: 1px solid rgb(255 255 255 / .5);
    pointer-events: none;
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 650ms cubic-bezier(.16,1,.3,1), opacity 350ms ease;
  }
  html.build-motion-interactive body.family-field .tpi-service-mosaic__card:is(:hover, :focus-within) .build-motion-card-frame {
    opacity: 1;
    clip-path: inset(0 0 0 0);
  }
  html.build-motion-interactive body.family-field :is(.tpi-editable-support-card, .field-project-card, .ac-company) {
    transition: translate 500ms cubic-bezier(.16,1,.3,1), border-color 350ms ease, box-shadow 350ms ease;
  }
  html.build-motion-interactive body.family-field :is(.tpi-editable-support-card, .field-project-card, .ac-company):is(:hover, :focus-within) {
    translate: 0 -6px;
    border-color: #ea7d00;
    box-shadow: 0 12px 28px rgb(0 0 0 / .09);
  }
  html.build-motion-interactive body.family-field :is(#about, #faq) .elementor-tab-title a {
    background: linear-gradient(#ea7d00, #ea7d00) 0 100% / 0 1px no-repeat;
    transition: background-size 400ms cubic-bezier(.16,1,.3,1);
    text-decoration: none;
  }
  html.build-motion-interactive body.family-field :is(#about, #faq) .elementor-tab-title:is(:hover, :focus-visible, [aria-expanded="true"]) a { background-size: 100% 1px; }
  html.build-motion-interactive body.family-field .op-form-tabs a { transition: color 250ms ease, background-color 250ms ease, border-color 250ms ease; }
  html.build-motion-interactive body.family-field .tpi-home-jump__top svg { transition: translate 300ms ease; }
  html.build-motion-interactive body.family-field .tpi-home-jump__top:is(:hover, :focus-visible) svg { translate: 0 -3px; }
}

@media (prefers-reduced-motion: reduce) {
  body.family-field :is(.build-reading-progress, .build-motion-card-frame, .build-motion-sheen) { display: none; }
  body.family-field :is(.build-motion-photo, .build-motion-hero, .build-motion-action > .elementor-button-content-wrapper) {
    transform: none !important;
    transition: none !important;
  }
}
