/* WMC site effects, added to every page by worker.mjs. Content only hides once effects.js has set
   html.wmc-fx, so the site still shows everything if the script fails. */
:root { --wmc-gold: #e8c12a; --wmc-teal: #12363c; --wmc-ease: cubic-bezier(.2, .7, .2, 1); }

/* Reveal on scroll */
html.wmc-fx .wmc-reveal { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .8s var(--wmc-ease), transform .8s var(--wmc-ease); transition-delay: var(--wmc-delay, 0ms); will-change: opacity, transform; }
html.wmc-fx .wmc-reveal.wmc-zoom { transform: scale(.94); }
html.wmc-fx .wmc-reveal.wmc-left { transform: translate3d(-36px, 0, 0); }
html.wmc-fx .wmc-reveal.wmc-right { transform: translate3d(36px, 0, 0); }
html.wmc-fx .wmc-reveal.wmc-in { opacity: 1; transform: none; }

/* Divider lines draw across */
html.wmc-fx .wmc-draw .elementor-divider-separator { transform: scaleX(0); transform-origin: left center; transition: transform 1s var(--wmc-ease) .15s; }
html.wmc-fx .wmc-draw.wmc-in .elementor-divider-separator { transform: scaleX(1); }

/* Reading progress */
#wmc-progress { position: fixed; inset: 0 0 auto 0; height: 3px; background: var(--wmc-gold); transform-origin: 0 50%; transform: scaleX(0); z-index: 99999; pointer-events: none; }

/* Back to top */
#wmc-top { position: fixed; right: 18px; bottom: 18px; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--wmc-teal); color: #fff; box-shadow: 0 6px 18px #0003; cursor: pointer; z-index: 9999; display: grid; place-items: center;
  opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none; transition: opacity .3s, transform .3s var(--wmc-ease), background .2s; }
#wmc-top.wmc-show { opacity: 1; transform: none; pointer-events: auto; }
#wmc-top:hover { background: var(--wmc-gold); color: #111; }
#wmc-top:focus-visible { outline: 3px solid var(--wmc-gold); outline-offset: 3px; }
#wmc-top svg { width: 20px; height: 20px; }

/* Hover polish */
.elementor-button, .elementor-widget-button a { transition: transform .25s var(--wmc-ease), box-shadow .25s var(--wmc-ease), background-color .25s, color .25s !important; }
.elementor-button:hover, .elementor-widget-button a:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -8px #0006; }
.elementor-widget-image .elementor-widget-container { overflow: hidden; border-radius: inherit; }
.elementor-widget-image img { transition: transform .7s var(--wmc-ease), filter .7s var(--wmc-ease); }
.elementor-widget-image:hover img { transform: scale(1.045); }
.elementor-widget-icon-box .elementor-widget-container, .wmc-card { transition: transform .35s var(--wmc-ease), box-shadow .35s var(--wmc-ease); }
.elementor-widget-icon-box:hover .elementor-widget-container, .wmc-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px -18px #0005; }
.elementor-social-icon { transition: transform .25s var(--wmc-ease), filter .25s !important; }
.elementor-social-icon:hover { transform: translateY(-3px) scale(1.06); }
.elementor-nav-menu a.elementor-item { transition: color .2s, opacity .2s; }

/* Hero */
.wmc-hero-inner { will-change: transform, opacity; }

@media (prefers-reduced-motion: reduce) {
  html.wmc-fx .wmc-reveal, html.wmc-fx .wmc-draw .elementor-divider-separator { opacity: 1 !important; transform: none !important; transition: none !important; }
  .elementor-widget-image:hover img, .elementor-button:hover, .elementor-widget-icon-box:hover .elementor-widget-container, .wmc-card:hover { transform: none !important; }
  #wmc-progress { display: none; }
}
