@charset "UTF-8";
/* title widget */
.sv-title.prefix_on_hover, .sv-title.prefix_on_normal {
  transition: all 0.5s;
  --prefix-width: 60px;
  --prefix-gap: 10px;
}
.sv-title.prefix_on_hover.sv-title-prefix-after:after, .sv-title.prefix_on_normal.sv-title-prefix-after:after {
  position: relative;
  display: inline-block;
  content: "";
  height: 1px;
  inset-inline-end: 0;
  transition: all 0.5s;
  background-color: #0a0a0a;
}
.sv-title.prefix_on_hover.sv-title-prefix-before:before, .sv-title.prefix_on_normal.sv-title-prefix-before:before {
  position: relative;
  display: inline-block;
  content: "";
  height: 1px;
  inset-inline-start: 0;
  transition: all 0.5s;
  background-color: #0a0a0a;
}
.sv-title.prefix_on_normal.sv-title-prefix-after:after {
  width: var(--prefix-width);
  margin-left: var(--prefix-gap);
}
.sv-title.prefix_on_normal.sv-title-prefix-before:before {
  width: var(--prefix-width);
  margin-right: var(--prefix-gap);
}
.sv-title.prefix_on_hover.sv-title-prefix-after:after {
  width: 0;
}
.sv-title.prefix_on_hover.sv-title-prefix-after:hover {
  width: var(--prefix-width);
  margin-left: var(--prefix-gap);
}
.sv-title.prefix_on_hover.sv-title-prefix-before:before {
  width: 0;
}
.sv-title.prefix_on_hover.sv-title-prefix-before:hover {
  width: var(--prefix-width);
  margin-right: var(--prefix-gap);
}
.sv-title a {
  transition: all 0.5s ease-in-out;
}
.sv-title a:hover span {
  transition: all 0.5s ease-in-out;
}
.sv-title .split-char,
.sv-title .split-word,
.sv-title .split-line {
  display: inline-block !important;
}
.sv-title .split-line {
  display: block;
}
.sv-title {
  /* Preserve spaces */
}
.sv-title .split-char,
.sv-title .split-word,
.sv-title .split-line {
  white-space: pre-wrap;
}
.sv-title.sv-stroke-title {
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #b6b6b6;
  -webkit-background-clip: text;
          background-clip: text;
}
.sv-title.sv-gradient-title, .sv-title.sv-gradient-title * {
  -webkit-text-fill-color: transparent;
  -moz-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  background-image: linear-gradient(to right, #ff0000, #00ff00);
}
.sv-title.sv-gradient-title-highlight .highlight, .sv-title.sv-gradient-title-highlight .highlight * {
  -webkit-text-fill-color: transparent;
  -moz-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  background-image: linear-gradient(to right, #ff0000, #00ff00);
}

.elementor-widget .sv-title > a {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

.sv-title-wrapper .sv-title.sv-title-text-reveal,
.sv-title-wrapper .sv-title.sv-title-text-reveal span,
.sv-title-wrapper .sv-title.sv-title-text-reveal a,
.sv-title-wrapper .sv-title.sv-title-text-reveal a span {
  color: rgba(182, 182, 182, 0.2);
  background: linear-gradient(to right, var(--sv-text-reveal-color), var(--sv-text-reveal-color)) no-repeat;
  background-size: 0%;
  -webkit-background-clip: text;
  background-clip: text;
  transition: background-size cubic-bezier(0.1, 0.5, 0.5, 1) 0.5s;
}

/* Image Hover Styles - Add to your widget CSS file */
/* Base styles for image hover container */
.sv-title-has-image-hover {
  position: relative;
}

/* Hover text wrapper */
.sv-title-has-image-hover .title-hover {
  position: relative;
  display: inline-block;
  cursor: pointer;
  transition: all 0.8s ease;
}

/* Remove padding when unhovered */
.sv-title-has-image-hover .title-hover.hovered.after {
  padding-right: 80px;
}

.sv-title-has-image-hover .title-hover.hovered.before {
  padding-left: 80px;
}

/* Remove padding when unhovered */
.sv-title-has-image-hover .title-hover.unhover.after {
  padding-right: 0;
}

.sv-title-has-image-hover .title-hover.unhover.before {
  padding-left: 0;
}

/* Image container positioned absolutely */
.sv-title-has-image-hover .title-img {
  position: absolute;
  top: 50%;
  display: block;
  width: 1.6rem;
  height: 0.65rem;
  overflow: hidden;
  transform: translateY(-50%);
  transition: all 0.8s ease;
  opacity: 1;
  pointer-events: none;
  z-index: 10;
}

.sv-title-has-image-hover .title-hover.after .title-img {
  right: 0;
  left: auto;
}

.sv-title-has-image-hover .title-hover.before .title-img {
  left: 0;
  right: auto;
}

/* Hide image when unhovered */
.sv-title-has-image-hover .title-hover.unhover.after .title-img {
  right: -0.1rem;
  width: 0 !important;
  opacity: 0;
}

.sv-title-has-image-hover .title-hover.unhover.before .title-img {
  left: -0.1rem;
  width: 0 !important;
  opacity: 0;
}

/* Image styling */
.sv-title-has-image-hover .title-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  display: block;
  transition: transform 0.8s ease;
  transition-delay: 0.2s;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

/* Scale image when unhovered */
.sv-title-has-image-hover .title-hover.unhover .title-img img {
  transform: scale(1.3);
  transition-delay: 0s;
}

/* Optional: Add border radius */
.sv-title-has-image-hover .title-img,
.sv-title-has-image-hover .title-img img {
  border-radius: 4px;
}

/* Ensure proper stacking context */
.sv-title-has-image-hover .sv-title {
  position: relative;
  z-index: 1;
}

/* Mobile adjustments - disable on small screens */
@media (max-width: 768px) {
  .sv-title-has-image-hover .title-img {
    display: none !important;
  }
}
/* Optional: Debug mode - uncomment to see boundaries */
/* ✅ Bounce */
.custom-animation-bounce:hover {
  animation: sv-bounce 1s;
}

@keyframes sv-bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-15px);
  }
  60% {
    transform: translateY(-8px);
  }
}
/* ✅ Shake */
.custom-animation-shake:hover {
  animation: sv-shake 0.6s;
}

@keyframes sv-shake {
  0%, 100% {
    transform: translateX(0);
  }
  20%, 60% {
    transform: translateX(-10px);
  }
  40%, 80% {
    transform: translateX(10px);
  }
}
/* ✅ Pulse */
.custom-animation-pulse:hover {
  animation: sv-pulse 0.8s;
}

@keyframes sv-pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
/* ✅ Rubber Band */
.custom-animation-rubber-band:hover {
  animation: sv-rubber-band 1s;
}

@keyframes sv-rubber-band {
  0% {
    transform: scale3d(1, 1, 1);
  }
  30% {
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    transform: scale3d(1.05, 0.95, 1);
  }
  100% {
    transform: scale3d(1, 1, 1);
  }
}
/* ✅ Swing */
.custom-animation-swing:hover {
  animation: sv-swing 1s ease;
}

@keyframes sv-swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }
  100% {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}
/* ✅ Tada */
.custom-animation-tada:hover {
  animation: sv-tada 1s;
}

@keyframes sv-tada {
  0% {
    transform: scale3d(1, 1, 1);
  }
  10%, 20% {
    transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg);
  }
  30%, 50%, 70%, 90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate(3deg);
  }
  40%, 60%, 80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg);
  }
  100% {
    transform: scale3d(1, 1, 1);
  }
}
/* ✅ Wobble */
.custom-animation-wobble:hover {
  animation: sv-wobble 1s;
}

@keyframes sv-wobble {
  0% {
    transform: translateX(0%);
  }
  15% {
    transform: translateX(-25%) rotate(-5deg);
  }
  30% {
    transform: translateX(20%) rotate(3deg);
  }
  45% {
    transform: translateX(-15%) rotate(-3deg);
  }
  60% {
    transform: translateX(10%) rotate(2deg);
  }
  75% {
    transform: translateX(-5%) rotate(-1deg);
  }
  100% {
    transform: translateX(0);
  }
}
/* ✅ Jello */
.custom-animation-jello:hover {
  animation: sv-jello 0.9s;
}

@keyframes sv-jello {
  0%, 100% {
    transform: none;
  }
  30% {
    transform: skewX(-20deg) skewY(-10deg);
  }
  40% {
    transform: skewX(10deg) skewY(5deg);
  }
  50% {
    transform: skewX(-10deg) skewY(-5deg);
  }
  65% {
    transform: skewX(5deg) skewY(2deg);
  }
  75% {
    transform: skewX(-5deg) skewY(-2deg);
  }
}
/* Hide empty split spans */
span.split:empty,
span.split-char:empty,
span.split-word:empty,
span.split-line:empty {
  display: none !important;
}/*# sourceMappingURL=sv-text-animation.css.map */