/* opsflo-enhance.css — additive motion layer for the homepage.
   Adds NO colors, fonts, or content. Only transform/opacity motion.
   Hidden states are applied by JS (class .of-rz) so if JS never runs,
   nothing is hidden. Respects prefers-reduced-motion. */

.of-mesh{position:absolute;inset:0;width:100%;height:100%;z-index:0;
  display:block;pointer-events:none}

/* Temporarily hide the header WhatsApp chat button (footer social icon kept).
   Remove this rule when the WhatsApp integration is wired into Book a demo. */
header a[href*="wa.me"], nav a[href*="wa.me"]{display:none !important}

/* Temporarily hide the "Book a demo" CTAs — header pill + floating button.
   Footer "Contact" link is intentionally kept. Remove when CTA strategy is reworked. */
header a[href*="/contact"], nav a[href*="/contact"],
a[href*="/contact"][class*="fixed"][class*="bottom-5"]{display:none !important}

/* scroll reveal — only active once JS marks <html> */
html.of-enh .of-rz{opacity:0;transform:translateY(24px);filter:blur(5px);
  transition:opacity .9s cubic-bezier(.22,.7,0,1),
             transform .9s cubic-bezier(.22,.7,0,1),
             filter .9s cubic-bezier(.22,.7,0,1)}
html.of-enh .of-rz.of-in{opacity:1;transform:none;filter:none}

/* subtle lift on rounded card-like containers (transform only) */
html.of-enh .of-lift{transition:transform .55s cubic-bezier(.32,.72,0,1),
  box-shadow .55s cubic-bezier(.32,.72,0,1);will-change:transform}
html.of-enh .of-lift:hover{transform:translateY(-6px)}

/* magnetic pill buttons keep their own transition; JS drives transform */
html.of-enh .of-mag{will-change:transform}

@media (prefers-reduced-motion:reduce){
  html.of-enh .of-rz{opacity:1!important;transform:none!important;filter:none!important}
  .of-mesh{display:none!important}
  html.of-enh .of-lift:hover{transform:none}
}
