
/* ── Base ────────────────────────────────────────────────── */

.mat-animated-text{
  display:block;
  line-height:1.2;
  word-break:normal !important;
  overflow-wrap:normal !important;
  white-space:normal;
}

.mat-unit{
  display:inline-block;
  opacity:0;
  will-change:transform, opacity;
}

/* ── WORD WRAP FIX (IMPORTANT) ───────────────────────────── */

.mat-word{
  display:inline-block !important;
  white-space:nowrap !important;
  vertical-align:top;
}

.mat-char{
  display:inline-block;
}

.mat-space{
  display:inline-block;
  width:.28em;
}

/* ── Starting positions by direction ─────────────────────── */

.mat-animated-text[data-mat-direction="bottom"] .mat-unit{
  transform:translateY(var(--mat-distance));
}

.mat-animated-text[data-mat-direction="top"] .mat-unit{
  transform:translateY(calc(var(--mat-distance) * -1));
}

.mat-animated-text[data-mat-direction="left"] .mat-unit{
  transform:translateX(calc(var(--mat-distance) * -1));
}

.mat-animated-text[data-mat-direction="right"] .mat-unit{
  transform:translateX(var(--mat-distance));
}

.mat-animated-text[data-mat-fade-only="true"] .mat-unit{
  transform:none !important;
}

/* ── Reveal Animations ───────────────────────────────────── */

.mat-animated-text.mat-is-visible[data-mat-direction="bottom"] .mat-unit{
  animation:mat-from-bottom var(--mat-duration) var(--mat-easing) var(--mat-delay) forwards;
}

.mat-animated-text.mat-is-visible[data-mat-direction="top"] .mat-unit{
  animation:mat-from-top var(--mat-duration) var(--mat-easing) var(--mat-delay) forwards;
}

.mat-animated-text.mat-is-visible[data-mat-direction="left"] .mat-unit{
  animation:mat-from-left var(--mat-duration) var(--mat-easing) var(--mat-delay) forwards;
}

.mat-animated-text.mat-is-visible[data-mat-direction="right"] .mat-unit{
  animation:mat-from-right var(--mat-duration) var(--mat-easing) var(--mat-delay) forwards;
}

.mat-animated-text.mat-is-visible[data-mat-fade-only="true"] .mat-unit{
  animation:mat-fade-only var(--mat-duration) var(--mat-easing) var(--mat-delay) forwards;
}

/* ── Keyframes ───────────────────────────────────────────── */

@keyframes mat-from-bottom{
  from{opacity:0;transform:translateY(var(--mat-distance));}
  to{opacity:1;transform:translateY(0);}
}

@keyframes mat-from-top{
  from{opacity:0;transform:translateY(calc(var(--mat-distance) * -1));}
  to{opacity:1;transform:translateY(0);}
}

@keyframes mat-from-left{
  from{opacity:0;transform:translateX(calc(var(--mat-distance) * -1));}
  to{opacity:1;transform:translateX(0);}
}

@keyframes mat-from-right{
  from{opacity:0;transform:translateX(var(--mat-distance));}
  to{opacity:1;transform:translateX(0);}
}

@keyframes mat-fade-only{
  from{opacity:0;}
  to{opacity:1;}
}

/* ── Gradient Text ───────────────────────────────────────── */

.mat-animated-text[style*="background-clip"] .mat-unit{
  background:inherit;
  background-size:inherit;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}

/* ── Animated Gradient ───────────────────────────────────── */

.mat-animated-text.mat-gradient-animated{
  animation:mat-gradient-flow var(--mat-flow-speed,3s) ease-in-out infinite alternate;
}

@keyframes mat-gradient-flow{
  0%{background-position:0% center;}
  100%{background-position:100% center;}
}

.mat-animated-text.mat-gradient-animated .mat-unit{
  background:inherit;
  background-size:inherit;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}

/* Gradient + reveal combos */

.mat-animated-text.mat-gradient-animated.mat-is-visible[data-mat-direction="bottom"] .mat-unit,
.mat-animated-text.mat-gradient-animated.mat-is-visible[data-mat-direction="top"] .mat-unit,
.mat-animated-text.mat-gradient-animated.mat-is-visible[data-mat-direction="left"] .mat-unit,
.mat-animated-text.mat-gradient-animated.mat-is-visible[data-mat-direction="right"] .mat-unit,
.mat-animated-text.mat-gradient-animated.mat-is-visible[data-mat-fade-only="true"] .mat-unit{
  animation:
    mat-gradient-flow var(--mat-flow-speed,3s) ease-in-out infinite alternate,
    var(--mat-animation, mat-from-bottom) var(--mat-duration) var(--mat-easing) var(--mat-delay) forwards;
}

/* ── Editor Button ───────────────────────────────────────── */

.mat-preview-btn{
  display:block;
  width:calc(100% - 30px);
  margin:0 15px 15px;
  padding:8px 14px;
  background:#6a5acd;
  color:#fff;
  border:none;
  border-radius:4px;
  cursor:pointer;
  font-size:12px;
  font-family:sans-serif;
  text-align:center;
  transition:background .2s;
}

.mat-preview-btn:hover{
  background:#5a4abf;
}

.elementor-widget-mat_animated_text .mat-word{
  display:inline-block !important;
  white-space:nowrap !important;
  vertical-align:top !important;
}

.mat-animated-text .mat-word{
  display:inline-block !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
}

/* ── HARD NO-WRAP CORE FIX ─────────────────────────────── */

.mat-animated-text{
  display: inline-block !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  max-width: 100%;
}

/* Prevent line breaks anywhere inside structure */
.mat-animated-text *{
  white-space: nowrap !important;
}

/* Force single-line flow container */
.mat-word{
  display: inline-flex !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  align-items: baseline;
}

/* Space must NEVER trigger wrapping */
.mat-space{
  display: inline-block !important;
  white-space: nowrap !important;
}

/* Safety: Elementor sometimes overrides headings */
.elementor-widget-mat_animated_text h1,
.elementor-widget-mat_animated_text h2,
.elementor-widget-mat_animated_text h3,
.elementor-widget-mat_animated_text h4,
.elementor-widget-mat_animated_text h5,
.elementor-widget-mat_animated_text h6,
.elementor-widget-mat_animated_text p{
  white-space: nowrap !important;
  word-break: keep-all !important;
}