:root {
  --miro-ease: cubic-bezier(.22, 1, .36, 1);
  --miro-accent: #c8a56a;
  --miro-intensity: 1;
  --miro-reveal-y: 30px;
  --miro-reveal-x: 34px;
  --miro-scale-start: .955;
  --miro-card-lift: -6px;
  --miro-image-scale: 1.03;
  --miro-cursor-opacity: .16;
  --miro-light-opacity: .7;
}

.miro-intensity-subtle {
  --miro-reveal-y: 20px;
  --miro-reveal-x: 22px;
  --miro-scale-start: .97;
  --miro-card-lift: -4px;
  --miro-image-scale: 1.02;
  --miro-cursor-opacity: .11;
  --miro-light-opacity: .48;
}

.miro-intensity-cinematic {
  --miro-reveal-y: 39px;
  --miro-reveal-x: 44px;
  --miro-scale-start: .94;
  --miro-card-lift: -8px;
  --miro-image-scale: 1.04;
  --miro-cursor-opacity: .21;
  --miro-light-opacity: .9;
}

html { scroll-behavior: smooth; }

.miro-scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 99999;
  width: 100%;
  height: 2px;
  pointer-events: none;
  transform: scaleX(var(--miro-scroll, 0));
  transform-origin: left center;
  background: linear-gradient(90deg, var(--miro-accent), #f2dfaa);
  box-shadow: 0 0 14px rgba(200, 165, 106, .35);
}

/* Content stays visible if JavaScript is unavailable. */
.miro-motion-active [data-miro-reveal] {
  opacity: 0;
  transform: translate3d(0, var(--miro-reveal-y), 0);
  transition:
    opacity .82s var(--miro-ease) var(--miro-delay, 0ms),
    transform .82s var(--miro-ease) var(--miro-delay, 0ms);
  will-change: opacity, transform;
}

.miro-motion-active [data-miro-reveal="scale"] { transform: scale(var(--miro-scale-start)); }
.miro-motion-active [data-miro-reveal="right"] { transform: translate3d(var(--miro-reveal-x), 0, 0); }

.miro-motion-active [data-miro-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.miro-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.miro-hero::after {
  content: "";
  position: absolute;
  inset: -15%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle at var(--miro-pointer-x, 65%) var(--miro-pointer-y, 35%), rgba(255,255,255,.17), transparent 33%);
}

.miro-hero > .elementor-container,
.miro-hero > .e-con-inner {
  position: relative;
  z-index: 1;
  transform: translate3d(var(--miro-hero-x, 0), var(--miro-hero-y, 0), 0);
  transition: transform .85s var(--miro-ease);
}

.miro-hero .elementor-background-overlay {
  transform: scale(1.035);
  animation: miroHeroBreathe 12s ease-in-out infinite alternate;
}

@keyframes miroHeroBreathe { to { transform: scale(1.085); } }

.miro-magnetic {
  --miro-mx: 0px;
  --miro-my: 0px;
  position: relative;
  overflow: hidden;
  transform: translate3d(var(--miro-mx), var(--miro-my), 0);
  transition: transform .34s var(--miro-ease), box-shadow .34s ease;
  will-change: transform;
}

.miro-magnetic:hover { box-shadow: 0 12px 30px rgba(0,0,0,.14); }

.miro-magnetic::after {
  content: "";
  position: absolute;
  inset: -2px;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 22%, rgba(255,255,255,.38) 45%, transparent 68%);
  transform: translateX(-130%);
  transition: transform .7s var(--miro-ease);
}

.miro-magnetic:hover::after { transform: translateX(130%); }

.miro-tilt {
  --miro-rx: 0deg;
  --miro-ry: 0deg;
  --miro-lift: 0px;
  transform: perspective(950px) rotateX(var(--miro-rx)) rotateY(var(--miro-ry)) translateY(var(--miro-lift));
  transform-style: preserve-3d;
  transition: transform .5s var(--miro-ease), box-shadow .5s ease;
  will-change: transform;
}

.miro-tilt:hover {
  --miro-lift: var(--miro-card-lift);
  box-shadow: 0 22px 44px rgba(0,0,0,.11);
}

.miro-tilt img { transition: transform .75s var(--miro-ease); }
.miro-tilt:hover img { transform: scale(var(--miro-image-scale)); }

/* MIRO signature effect: a warm pool of light follows the pointer. */
.miro-light-reveal {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.miro-light-reveal::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(
    circle 190px at var(--miro-light-x, 50%) var(--miro-light-y, 50%),
    rgba(255, 245, 214, .34),
    rgba(237, 205, 137, .12) 28%,
    transparent 66%
  );
  mix-blend-mode: screen;
  transition: opacity .45s ease;
}

.miro-light-reveal:hover::after { opacity: var(--miro-light-opacity); }

.main-header-menu > .menu-item > a,
.elementor-nav-menu--main .elementor-item { position: relative; }

.main-header-menu > .menu-item > a::before,
.elementor-nav-menu--main .elementor-item::before {
  content: "";
  position: absolute;
  right: 18%;
  bottom: 8px;
  left: 18%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .4s var(--miro-ease);
}

.main-header-menu > .menu-item > a:hover::before,
.elementor-nav-menu--main .elementor-item:hover::before { transform: scaleX(1); }

.miro-motion-active .elementor-divider-separator {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .9s var(--miro-ease) .15s;
}

.miro-motion-active .is-visible .elementor-divider-separator { transform: scaleX(1); }

.miro-cursor-glow {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  pointer-events: none;
  opacity: var(--miro-cursor-opacity);
  transform: translate3d(calc(var(--miro-cursor-x, -400px) - 50%), calc(var(--miro-cursor-y, -400px) - 50%), 0);
  background: radial-gradient(circle, rgba(200,165,106,.38), transparent 68%);
  mix-blend-mode: soft-light;
}

.miro-back-to-top {
  position: fixed;
  right: clamp(16px, 2vw, 28px);
  bottom: clamp(16px, 2vw, 28px);
  z-index: 9990;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  color: #fff;
  background: rgba(24,24,24,.86);
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
  cursor: pointer;
  opacity: 0;
  transform: translateY(14px) scale(.92);
  pointer-events: none;
  transition: opacity .35s ease, transform .35s var(--miro-ease), background .25s ease;
  backdrop-filter: blur(8px);
}

.miro-back-to-top.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.miro-back-to-top:hover { background: var(--miro-accent); }

.miro-field-active {
  transform: translateY(-2px);
  transition: transform .25s var(--miro-ease), box-shadow .25s ease;
  box-shadow: 0 8px 24px rgba(0,0,0,.07);
}

.single-product .woocommerce-product-gallery,
.single-product .summary.entry-summary { transition: transform .5s var(--miro-ease), opacity .5s ease; }

@media (max-width: 767px), (pointer: coarse) {
  .miro-cursor-glow { display: none; }
  .miro-hero > .elementor-container,
  .miro-hero > .e-con-inner { transform: none; }
  .miro-light-reveal::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .miro-scroll-progress,
  .miro-cursor-glow { display: none; }
  .miro-motion-active [data-miro-reveal],
  .miro-motion-active [data-miro-reveal].is-visible,
  .miro-magnetic,
  .miro-tilt,
  .miro-tilt:hover,
  .miro-tilt img,
  .miro-tilt:hover img {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .miro-hero .elementor-background-overlay { animation: none; transform: none; }
}
