/* viliante-six-hero-slides-v1 */

/* VILIANTE SIX HERO SLIDES V1 */
/* Adds salon, spa, gym, bathroom, nail, travel backgrounds. */

.hero-slide-salon .hero-slide-bg {
  background-image: url("/assets/hero-salon.webp?v=202605201345") !important;
}

.hero-slide-spa .hero-slide-bg {
  background-image: url("/assets/hero-spa.webp?v=202605201345") !important;
}

.hero-slide-gym .hero-slide-bg {
  background-image: url("/assets/hero-gym.webp?v=202605201345") !important;
}

.hero-slide-bathroom .hero-slide-bg {
  background-image: url("/assets/hero-bathroom.webp?v=202605201345") !important;
}

.hero-slide-nail .hero-slide-bg {
  background-image: url("/assets/hero-nail.webp?v=202605201345") !important;
}

.hero-slide-travel .hero-slide-bg {
  background-image: url("/assets/hero-travel.webp?v=202605201345") !important;
}

@media (max-width: 900px) {
  .hero-slide-salon .hero-slide-bg {
    background-image: url("/assets/hero-salon-mobile.webp?v=202605201345") !important;
  }

  .hero-slide-spa .hero-slide-bg {
    background-image: url("/assets/hero-spa-mobile.webp?v=202605201345") !important;
  }

  .hero-slide-gym .hero-slide-bg {
    background-image: url("/assets/hero-gym-mobile.webp?v=202605201345") !important;
  }

  .hero-slide-bathroom .hero-slide-bg {
    background-image: url("/assets/hero-bathroom-mobile.webp?v=202605201345") !important;
  }

  .hero-slide-nail .hero-slide-bg {
    background-image: url("/assets/hero-nail-mobile.webp?v=202605201345") !important;
  }

  .hero-slide-travel .hero-slide-bg {
    background-image: url("/assets/hero-travel.webp?v=202605201345") !important;
  }
}


/* viliante-hero-soft-crossfade-final-v1 */

/* VILIANTE HERO SOFT CROSSFADE FINAL V1 */
/* One image fades out while the next image fades in slowly. */

.hero-showcase {
  position: relative !important;
  overflow: hidden !important;
}

.hero-slider {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}

.hero-slide {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;

  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: 1 !important;

  transform: none !important;
  transition: opacity 1.85s cubic-bezier(.45, 0, .2, 1) !important;
  will-change: opacity !important;
}

.hero-slide.viliante-crossfade-active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 5 !important;
}

.hero-slide.viliante-crossfade-leaving {
  opacity: 0 !important;
  visibility: visible !important;
  pointer-events: none !important;
  z-index: 4 !important;
}

/* Never allow image/overlay layers to block clicks */
.hero-slide-bg,
.hero-overlay,
.hero-shade,
.hero-slide::before,
.hero-slide::after {
  pointer-events: none !important;
}

/* Hide inactive text completely */
.hero-slide:not(.viliante-crossfade-active) .hero-showcase-content,
.hero-slide:not(.viliante-crossfade-active) h1,
.hero-slide:not(.viliante-crossfade-active) p,
.hero-slide:not(.viliante-crossfade-active) .eyebrow,
.hero-slide:not(.viliante-crossfade-active) .hero-actions {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Active text only */
.hero-slide.viliante-crossfade-active .hero-showcase-content,
.hero-slide.viliante-crossfade-active h1,
.hero-slide.viliante-crossfade-active p,
.hero-slide.viliante-crossfade-active .eyebrow,
.hero-slide.viliante-crossfade-active .hero-actions {
  opacity: 1 !important;
  visibility: visible !important;
}

.hero-showcase-content {
  position: relative !important;
  z-index: 40 !important;
}

/* Dots */
.hero-slider-dots-disabled {
  position: absolute !important;
  z-index: 90 !important;
  pointer-events: auto !important;
}

.hero-slider-dots-disabled span,
.hero-slider-dots-disabled button {
  pointer-events: auto !important;
  cursor: pointer !important;
}

.hero-slider-dots-disabled span.active,
.hero-slider-dots-disabled button.active,
.hero-slider-dots-disabled span.viliante-dot-active,
.hero-slider-dots-disabled button.viliante-dot-active {
  opacity: 1 !important;
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide {
    transition: none !important;
  }
}


/* viliante-hard-hero-slider-rebuild-v1 */

/* VILIANTE HARD HERO SLIDER REBUILD V1 */
/* Bypasses old broken hero slider. Uses one clean 6-slide soft crossfade. */

.hero-showcase {
  position: relative !important;
  overflow: hidden !important;
}

/* Hide old mixed slider/buttons/dots. New stage below controls hero. */
.hero-showcase > .hero-slider,
.hero-showcase > .viliante-shared-hero-actions {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.viliante-final-hero-stage {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  overflow: hidden !important;
}

.viliante-final-hero-slide {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;

  opacity: 0 !important;
  visibility: visible !important;
  pointer-events: none !important;
  z-index: 1 !important;

  transition: opacity 1.95s cubic-bezier(.45, 0, .2, 1) !important;
  will-change: opacity !important;
}

.viliante-final-hero-slide.is-active {
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 5 !important;
}

.viliante-final-hero-bg {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;

  background-image: var(--desktop-bg) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;

  opacity: .96 !important;
  filter: saturate(.96) contrast(.96) brightness(1.08) !important;

  pointer-events: none !important;
}

.viliante-final-hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;

  background:
    linear-gradient(90deg,
      rgba(255,247,235,.18) 0%,
      rgba(255,247,235,.08) 38%,
      rgba(8,12,20,.10) 100%
    ) !important;

  pointer-events: none !important;
}

.viliante-final-hero-slide .hero-showcase-content {
  position: relative !important;
  z-index: 40 !important;
  height: 100% !important;
  pointer-events: auto !important;
}

.viliante-final-hero-slide:not(.is-active) .hero-showcase-content,
.viliante-final-hero-slide:not(.is-active) h1,
.viliante-final-hero-slide:not(.is-active) p,
.viliante-final-hero-slide:not(.is-active) .eyebrow,
.viliante-final-hero-slide:not(.is-active) .hero-actions {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.viliante-final-hero-slide.is-active .hero-showcase-content,
.viliante-final-hero-slide.is-active h1,
.viliante-final-hero-slide.is-active p,
.viliante-final-hero-slide.is-active .eyebrow,
.viliante-final-hero-slide.is-active .hero-actions {
  opacity: 1 !important;
  visibility: visible !important;
}

.viliante-final-hero-slide .hero-actions {
  position: relative !important;
  z-index: 80 !important;
  pointer-events: auto !important;
}

.viliante-final-hero-slide .hero-actions .btn {
  position: relative !important;
  z-index: 90 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    border-color .22s ease !important;
}

.viliante-final-hero-slide .hero-actions .btn:hover {
  transform: translateY(-7px) !important;
}

.viliante-final-hero-slide .hero-actions .btn-primary:hover {
  box-shadow: 0 28px 62px rgba(19, 87, 183, .44) !important;
}

.viliante-final-hero-slide .hero-actions .btn-secondary:hover,
.viliante-final-hero-slide .hero-actions .btn-ghost:hover,
.viliante-final-hero-slide .hero-actions .hero-ghost:hover {
  background: rgba(255,255,255,.98) !important;
  box-shadow: 0 26px 56px rgba(8,12,20,.24) !important;
}

/* New dots */
.viliante-final-hero-dots {
  position: absolute !important;
  left: 50% !important;
  bottom: 24px !important;
  transform: translateX(-50%) !important;
  z-index: 120 !important;

  display: flex !important;
  align-items: center !important;
  gap: 9px !important;

  pointer-events: auto !important;
}

.viliante-final-hero-dot {
  width: 9px !important;
  height: 9px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: rgba(255,255,255,.58) !important;
  cursor: pointer !important;
  transition: width .22s ease, background .22s ease !important;
}

.viliante-final-hero-dot.is-active {
  width: 28px !important;
  background: rgba(255,255,255,.96) !important;
}

/* Keep product float above new background but below text/buttons if needed */
.hero-product-float {
  z-index: 45 !important;
}

/* Mobile */
@media (max-width: 900px) {
  .viliante-final-hero-bg {
    background-image: var(--mobile-bg) !important;
    opacity: .96 !important;
    filter: saturate(1.02) contrast(1.02) brightness(1.01) !important;
  }

  .viliante-final-hero-overlay {
    background:
      linear-gradient(180deg,
        rgba(255,247,235,.14) 0%,
        rgba(255,247,235,.08) 38%,
        rgba(8,12,20,.18) 100%
      ) !important;
  }

  .viliante-final-hero-slide .hero-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .viliante-final-hero-slide .hero-actions .btn {
    width: 100% !important;
    min-height: 48px !important;
    padding: 12px 14px !important;
    font-size: 14px !important;
  }

  .viliante-final-hero-slide .hero-actions .hero-ghost,
  .viliante-final-hero-slide .hero-actions .btn-ghost,
  .viliante-final-hero-slide .hero-actions a[href*="request"] {
    display: none !important;
  }

  .viliante-final-hero-dots {
    bottom: 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .viliante-final-hero-slide {
    transition: none !important;
  }
}


/* viliante-force-hero-transparent-final-v1 */

/* FINAL strongest hero transparency override */

.hero-showcase .hero-slide-bg,
.hero-slide-bg {
  opacity: 0.35 !important;
  filter: saturate(0.85) contrast(0.92) brightness(1.08) !important;
}

.hero-showcase .hero-slide::after,
.hero-slide::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  background: rgba(251, 248, 242, 0.42) !important;
}

.hero-showcase-content {
  position: relative !important;
  z-index: 5 !important;
}

@media (max-width: 768px) {
  .hero-showcase .hero-slide-bg,
  .hero-slide-bg {
    opacity: 0.35 !important;
    filter: saturate(0.85) contrast(0.92) brightness(1.08) !important;
  }

  .hero-showcase .hero-slide::after,
  .hero-slide::after {
    background: rgba(251, 248, 242, 0.42) !important;
  }
}


/* viliante-real-hero-opacity-fix-v1 */

/* REAL ACTIVE HERO SYSTEM */

.viliante-final-hero-bg {
  opacity: 0.62 !important;
  filter:
    brightness(1.08)
    saturate(0.88)
    contrast(0.92) !important;
}

/* softer beige overlay */
.viliante-final-hero-overlay {
  background:
    linear-gradient(
      180deg,
      rgba(251,248,242,0.30) 0%,
      rgba(251,248,242,0.38) 100%
    ) !important;
}

/* desktop + mobile same transparency */
@media (max-width: 768px) {

  .viliante-final-hero-bg {
    opacity: 0.62 !important;
  }

  .viliante-final-hero-overlay {
    background:
      linear-gradient(
        180deg,
        rgba(251,248,242,0.30) 0%,
        rgba(251,248,242,0.38) 100%
      ) !important;
  }

}


/* viliante-scroll-reveal-v1 */

/* Premium scroll reveal effects */

.viliante-reveal {
  opacity: 0;
  transform: translateY(34px);
  filter: blur(6px);
  transition:
    opacity 760ms ease,
    transform 760ms cubic-bezier(.2,.8,.2,1),
    filter 760ms ease;
  will-change: opacity, transform, filter;
}

.viliante-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.viliante-reveal-delay-1 {
  transition-delay: 120ms;
}

.viliante-reveal-delay-2 {
  transition-delay: 220ms;
}

.viliante-reveal-delay-3 {
  transition-delay: 320ms;
}

@media (prefers-reduced-motion: reduce) {
  .viliante-reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}


/* viliante-scroll-reveal-premium-v2 */

.viliante-reveal {
  opacity: 0 !important;
  transform: translateY(42px) scale(0.982) !important;
  filter: blur(10px) !important;
  transition:
    opacity 900ms ease,
    transform 900ms cubic-bezier(.16, 1, .3, 1),
    filter 900ms ease !important;
}

.viliante-reveal.is-visible {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
  filter: blur(0) !important;
}

.viliante-reveal.is-visible::before {
  animation: vilianteSoftSweep 1150ms ease both;
}

.viliante-product-specs-row div,
.viliante-product-image-row figure,
.viliante-action-card,
.card,
details {
  position: relative;
  overflow: hidden;
}

.viliante-product-specs-row div::after,
.viliante-product-image-row figure::after,
.viliante-action-card::after,
.card::after,
details::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255,255,255,.38) 42%,
    transparent 72%
  );
  transform: translateX(-120%);
  opacity: 0;
}

.viliante-product-specs-row div.is-visible::after,
.viliante-product-image-row figure.is-visible::after,
.viliante-action-card.is-visible::after,
.card.is-visible::after,
details.is-visible::after {
  animation: vilianteCardSheen 950ms ease 180ms both;
}

@keyframes vilianteCardSheen {
  0% { transform: translateX(-120%); opacity: 0; }
  18% { opacity: .55; }
  100% { transform: translateX(120%); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .viliante-reveal,
  .viliante-reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }

  .viliante-product-specs-row div::after,
  .viliante-product-image-row figure::after,
  .viliante-action-card::after,
  .card::after,
  details::after {
    display: none !important;
  }
}


/* vnav-final-css */

/* Hide/remove every old hero dot UI */
.hero-showcase [class*="dot"],
.hero-showcase [class*="Dot"],
.hero-showcase [class*="dots"],
.hero-showcase [class*="Dots"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Only this new nav is allowed */
.hero-showcase .vnav-row {
  position: absolute !important;
  left: 50% !important;
  bottom: 36px !important;
  transform: translateX(-50%) !important;
  z-index: 2147483647 !important;
  display: flex !important;
  gap: 10px !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.hero-showcase .vnav-row button {
  width: 11px !important;
  height: 11px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.9) !important;
  background: rgba(255,255,255,.65) !important;
  cursor: pointer !important;
  box-shadow: 0 5px 16px rgba(0,0,0,.22) !important;
  transition: width .25s ease, background .25s ease !important;
}

.hero-showcase .vnav-row button.on {
  width: 34px !important;
  background: #fff !important;
}
