/* Shared, progressively enhanced frontend motion. Content is hidden only after
   the motion controller has successfully initialised. */
:root {
  --pmsl-motion-duration:560ms;
  --pmsl-motion-ui-duration:220ms;
  --pmsl-motion-distance:18px;
  --pmsl-motion-stagger:70ms;
  --pmsl-motion-ease:cubic-bezier(.22,.61,.36,1);
}

html.pmsl-motion-ready :where(.reveal-up,.reveal-left,.reveal-right,.reveal-scale,.pmsl-reveal),
html.pmsl-motion-ready .stagger-children>*,
html.pmsl-motion-ready .pmsl-reveal-group>* {
  opacity:0;
  transition:opacity var(--pmsl-motion-duration) var(--pmsl-motion-ease),transform var(--pmsl-motion-duration) var(--pmsl-motion-ease);
  will-change:opacity,transform;
}
html.pmsl-motion-ready :where(.reveal-up,.pmsl-reveal,.pmsl-reveal-up),
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group)>* { transform:translateY(var(--pmsl-motion-distance)); }
html.pmsl-motion-ready .reveal-left { transform:translateX(calc(var(--pmsl-motion-distance) * -1)); }
html.pmsl-motion-ready .reveal-right { transform:translateX(var(--pmsl-motion-distance)); }
html.pmsl-motion-ready .reveal-scale { transform:scale(.985); }
html.pmsl-motion-ready :where(.reveal-up,.reveal-left,.reveal-right,.reveal-scale,.pmsl-reveal).is-visible,
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>* { opacity:1; transform:none; will-change:auto; }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(2) { transition-delay:var(--pmsl-motion-stagger); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(3) { transition-delay:calc(var(--pmsl-motion-stagger) * 2); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(4) { transition-delay:calc(var(--pmsl-motion-stagger) * 3); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(5) { transition-delay:calc(var(--pmsl-motion-stagger) * 4); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(6) { transition-delay:calc(var(--pmsl-motion-stagger) * 5); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(7) { transition-delay:calc(var(--pmsl-motion-stagger) * 6); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(8) { transition-delay:calc(var(--pmsl-motion-stagger) * 7); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(9) { transition-delay:calc(var(--pmsl-motion-stagger) * 8); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(10) { transition-delay:calc(var(--pmsl-motion-stagger) * 9); }
html.pmsl-motion-ready :where(.stagger-children,.pmsl-reveal-group).is-visible>*:nth-child(11) { transition-delay:calc(var(--pmsl-motion-stagger) * 10); }
html.pmsl-motion-ready .pmsl-hero-motion-item { transition-delay:var(--pmsl-hero-delay,0ms); }

/* Hero artwork remains fully static. Existing hero-copy utility motion is moved
   from the container to its individual text elements. */
:where(.pmsl-hero__visual,.pmsl-about-hero__visual,.pmsl-products-hero__visual,.pmsl-sus-hero__visual,.pmsl-contact-hero__visual),
:where(.pmsl-hero__visual,.pmsl-about-hero__visual,.pmsl-products-hero__visual,.pmsl-sus-hero__visual,.pmsl-contact-hero__visual) :where(figure,img) {
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  animation:none!important;
  will-change:auto!important;
}
:where(.pmsl-hero__copy,.pmsl-about-hero__copy,.pmsl-products-hero__copy,.pmsl-sus-hero__copy,.pmsl-contact-hero__copy).reveal-left {
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}

@media (hover:hover) and (pointer:fine) {
  :where(.pmsl-button,.wp-block-button__link,.pmsl-contact-form__submit):not(.pmsl-back-to-top) { transition:background-color var(--pmsl-motion-ui-duration) ease,color var(--pmsl-motion-ui-duration) ease,border-color var(--pmsl-motion-ui-duration) ease,box-shadow var(--pmsl-motion-ui-duration) ease,transform var(--pmsl-motion-ui-duration) ease; }
  :where(.pmsl-button,.wp-block-button__link,.pmsl-contact-form__submit):not(.pmsl-back-to-top):hover { transform:translateY(-2px); }
  :where(.pmsl-about-stat,.pmsl-about-vision-card,.pmsl-about-value,.pmsl-about-people-card,.pmsl-about-growth-card,.pmsl-products-application,.pmsl-products-quality-card,.pmsl-products-choose-card,.pmsl-sus-priority,.pmsl-sus-community-card,.pmsl-contact-card,.pmsl-contact-team-card) { transition:border-color var(--pmsl-motion-ui-duration) ease,box-shadow var(--pmsl-motion-ui-duration) ease,transform var(--pmsl-motion-ui-duration) ease; }
  :where(.pmsl-about-stat,.pmsl-about-vision-card,.pmsl-about-value,.pmsl-about-people-card,.pmsl-about-growth-card,.pmsl-products-application,.pmsl-products-quality-card,.pmsl-products-choose-card,.pmsl-sus-priority,.pmsl-sus-community-card,.pmsl-contact-card,.pmsl-contact-team-card):hover { transform:translateY(-3px); box-shadow:0 8px 20px rgba(6,37,79,.09); }
}
@media (max-width:767px) { :root { --pmsl-motion-distance:10px; --pmsl-motion-stagger:45ms; } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
  :where(.reveal-up,.reveal-left,.reveal-right,.reveal-scale,.pmsl-reveal,.stagger-children>*,.pmsl-reveal-group>*) { opacity:1!important; transform:none!important; }
}
