/* ============================================================
   TDMircea Title Color – v2.1.2
   https://true-media-design.eu
   Lightweight · Zero JS · Fully responsive
   All animation keyframes included — no external dependencies
   ============================================================ */

/* ── Root ── */
.tdmtc-root {
	display: flex;
	flex-direction: column;
	width: 100%;
}

/* ── Title wrapper ── */
.tdmtc-title-wrap {
	margin: 0;
	padding: 0;
	font-size: inherit;
	line-height: 1;
}

.tdmtc-title-wrap.tdmtc-layout-inline {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 12px;
}

.tdmtc-title-wrap.tdmtc-layout-block {
	display: flex;
	flex-direction: column;
	align-items: flex-start; /* default; overridden by Elementor selector */
	gap: 4px;
}

/* ── Individual word / part ── */
.tdmtc-word {
	display: inline-block;
	line-height: inherit;
}

/* ── Outline mode ── */
.tdmtc-outline {
	color: transparent;
	-webkit-text-stroke: 2px currentColor;
	paint-order: stroke fill;
	background: none;
}

/* ── Subtitle ── */
.tdmtc-subtitle-wrap {
	display: flex;
	width: 100%;
}

.tdmtc-subtitle-wrap.pos-above { margin-bottom: 14px; }
.tdmtc-subtitle-wrap.pos-below { margin-top:    14px; }

.tdmtc-subtitle {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #e8640a;
	line-height: 1.4;
}

.tdmtc-subtitle.has-bg {
	background: #e8640a;
	color: #fff;
	padding: 0.3em 1em;
	border-radius: 4px;
}

/* ════════════════════════════════════════════════
   ENTRANCE ANIMATION KEYFRAMES — complete set
════════════════════════════════════════════════ */

/* ── Fade ── */
@keyframes tdmtc-fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes tdmtc-fadeInUp {
	from { opacity: 0; transform: translateY(30px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes tdmtc-fadeInDown {
	from { opacity: 0; transform: translateY(-30px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes tdmtc-fadeInLeft {
	from { opacity: 0; transform: translateX(-40px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes tdmtc-fadeInRight {
	from { opacity: 0; transform: translateX(40px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes tdmtc-fadeInUpBig {
	from { opacity: 0; transform: translateY(120px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes tdmtc-fadeInDownBig {
	from { opacity: 0; transform: translateY(-120px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ── Zoom ── */
@keyframes tdmtc-zoomIn {
	from { opacity: 0; transform: scale(0.5); }
	to   { opacity: 1; transform: scale(1); }
}
@keyframes tdmtc-zoomInUp {
	from { opacity: 0; transform: scale(0.5) translateY(60px); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes tdmtc-zoomInDown {
	from { opacity: 0; transform: scale(0.5) translateY(-60px); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes tdmtc-zoomInLeft {
	from { opacity: 0; transform: scale(0.5) translateX(-60px); }
	to   { opacity: 1; transform: scale(1) translateX(0); }
}
@keyframes tdmtc-zoomInRight {
	from { opacity: 0; transform: scale(0.5) translateX(60px); }
	to   { opacity: 1; transform: scale(1) translateX(0); }
}

/* ── Slide ── */
@keyframes tdmtc-slideInUp {
	from { opacity: 0; transform: translateY(100%); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes tdmtc-slideInDown {
	from { opacity: 0; transform: translateY(-100%); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes tdmtc-slideInLeft {
	from { opacity: 0; transform: translateX(-100%); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes tdmtc-slideInRight {
	from { opacity: 0; transform: translateX(100%); }
	to   { opacity: 1; transform: translateX(0); }
}

/* ── Bounce ── */
@keyframes tdmtc-bounceIn {
	0%   { opacity: 0; transform: scale(0.3); }
	50%  { opacity: 1; transform: scale(1.08); }
	70%  { transform: scale(0.95); }
	100% { opacity: 1; transform: scale(1); }
}
@keyframes tdmtc-bounceInUp {
	0%   { opacity: 0; transform: translateY(80px); }
	60%  { opacity: 1; transform: translateY(-20px); }
	80%  { transform: translateY(8px); }
	100% { transform: translateY(0); }
}
@keyframes tdmtc-bounceInDown {
	0%   { opacity: 0; transform: translateY(-80px); }
	60%  { opacity: 1; transform: translateY(20px); }
	80%  { transform: translateY(-8px); }
	100% { transform: translateY(0); }
}
@keyframes tdmtc-bounceInLeft {
	0%   { opacity: 0; transform: translateX(-80px); }
	60%  { opacity: 1; transform: translateX(20px); }
	80%  { transform: translateX(-8px); }
	100% { transform: translateX(0); }
}
@keyframes tdmtc-bounceInRight {
	0%   { opacity: 0; transform: translateX(80px); }
	60%  { opacity: 1; transform: translateX(-20px); }
	80%  { transform: translateX(8px); }
	100% { transform: translateX(0); }
}

/* ── Rotate ── */
@keyframes tdmtc-rotateIn {
	from { opacity: 0; transform: rotate(-200deg); }
	to   { opacity: 1; transform: rotate(0); }
}
@keyframes tdmtc-rotateInUpLeft {
	from { opacity: 0; transform-origin: left bottom; transform: rotate(45deg); }
	to   { opacity: 1; transform-origin: left bottom; transform: rotate(0); }
}
@keyframes tdmtc-rotateInUpRight {
	from { opacity: 0; transform-origin: right bottom; transform: rotate(-45deg); }
	to   { opacity: 1; transform-origin: right bottom; transform: rotate(0); }
}
@keyframes tdmtc-rotateInDownLeft {
	from { opacity: 0; transform-origin: left bottom; transform: rotate(-45deg); }
	to   { opacity: 1; transform-origin: left bottom; transform: rotate(0); }
}
@keyframes tdmtc-rotateInDownRight {
	from { opacity: 0; transform-origin: right bottom; transform: rotate(45deg); }
	to   { opacity: 1; transform-origin: right bottom; transform: rotate(0); }
}

/* ── Flip ── */
@keyframes tdmtc-flipInX {
	from { opacity: 0; transform: perspective(400px) rotateX(90deg); }
	40%  { transform: perspective(400px) rotateX(-20deg); }
	70%  { transform: perspective(400px) rotateX(10deg); }
	to   { opacity: 1; transform: perspective(400px) rotateX(0); }
}
@keyframes tdmtc-flipInY {
	from { opacity: 0; transform: perspective(400px) rotateY(90deg); }
	40%  { transform: perspective(400px) rotateY(-20deg); }
	70%  { transform: perspective(400px) rotateY(10deg); }
	to   { opacity: 1; transform: perspective(400px) rotateY(0); }
}

/* ── Special ── */
@keyframes tdmtc-blurIn {
	from { opacity: 0; filter: blur(12px); transform: scale(1.04); }
	to   { opacity: 1; filter: blur(0);    transform: scale(1); }
}
@keyframes tdmtc-rollIn {
	from { opacity: 0; transform: translateX(-100%) rotate(-120deg); }
	to   { opacity: 1; transform: translateX(0) rotate(0); }
}
@keyframes tdmtc-jackInTheBox {
	from { opacity: 0; transform: scale(0.1) rotate(30deg); transform-origin: center bottom; }
	50%  { transform: rotate(-10deg); }
	70%  { transform: rotate(3deg); }
	to   { opacity: 1; transform: scale(1); }
}
@keyframes tdmtc-lightSpeedInLeft {
	from { opacity: 0; transform: translateX(-100%) skewX(30deg); }
	60%  { opacity: 1; transform: skewX(-20deg); }
	80%  { transform: skewX(5deg); }
	to   { opacity: 1; transform: translateX(0) skewX(0); }
}
@keyframes tdmtc-lightSpeedInRight {
	from { opacity: 0; transform: translateX(100%) skewX(-30deg); }
	60%  { opacity: 1; transform: skewX(20deg); }
	80%  { transform: skewX(-5deg); }
	to   { opacity: 1; transform: translateX(0) skewX(0); }
}
@keyframes tdmtc-heartBeat {
	0%   { transform: scale(1); }
	14%  { transform: scale(1.3); }
	28%  { transform: scale(1); }
	42%  { transform: scale(1.3); }
	70%  { transform: scale(1); }
}
@keyframes tdmtc-pulse {
	from { transform: scale(1); opacity: 0; }
	50%  { transform: scale(1.08); opacity: 1; }
	to   { transform: scale(1); opacity: 1; }
}
@keyframes tdmtc-rubberBand {
	from { transform: scale(1); opacity: 0; }
	30%  { transform: scaleX(1.25) scaleY(0.75); opacity: 1; }
	40%  { transform: scaleX(0.75) scaleY(1.25); }
	50%  { transform: scaleX(1.15) scaleY(0.85); }
	65%  { transform: scaleX(0.95) scaleY(1.05); }
	75%  { transform: scaleX(1.05) scaleY(0.95); }
	to   { transform: scale(1); opacity: 1; }
}
@keyframes tdmtc-shakeX {
	from, to { transform: translateX(0); opacity: 1; }
	0%   { opacity: 0; }
	10%, 30%, 50%, 70%, 90% { transform: translateX(-8px); }
	20%, 40%, 60%, 80%       { transform: translateX(8px); }
}
@keyframes tdmtc-shakeY {
	from, to { transform: translateY(0); opacity: 1; }
	0%   { opacity: 0; }
	10%, 30%, 50%, 70%, 90% { transform: translateY(-8px); }
	20%, 40%, 60%, 80%       { transform: translateY(8px); }
}
@keyframes tdmtc-swing {
	0%   { opacity: 0; transform: rotate(0); }
	20%  { opacity: 1; transform: rotate(15deg); }
	40%  { transform: rotate(-10deg); }
	60%  { transform: rotate(5deg); }
	80%  { transform: rotate(-5deg); }
	100% { transform: rotate(0); }
}
@keyframes tdmtc-tada {
	0%   { opacity: 0; transform: scale(1); }
	10%  { opacity: 1; transform: scale(0.9) rotate(-3deg); }
	20%  { transform: scale(0.9) rotate(-3deg); }
	30%, 50%, 70%, 90% { transform: scale(1.1) rotate(3deg); }
	40%, 60%, 80%      { transform: scale(1.1) rotate(-3deg); }
	100% { transform: scale(1) rotate(0); }
}
@keyframes tdmtc-wobble {
	0%   { opacity: 0; transform: translateX(0); }
	15%  { opacity: 1; transform: translateX(-20px) rotate(-5deg); }
	30%  { transform: translateX(15px) rotate(3deg); }
	45%  { transform: translateX(-10px) rotate(-3deg); }
	60%  { transform: translateX(8px) rotate(2deg); }
	75%  { transform: translateX(-5px) rotate(-1deg); }
	100% { transform: translateX(0); }
}
@keyframes tdmtc-jello {
	0%, 11%, 100% { transform: none; opacity: 1; }
	0%   { opacity: 0; }
	22%  { transform: skewX(-12.5deg) skewY(-12.5deg); }
	33%  { transform: skewX(6.25deg) skewY(6.25deg); }
	44%  { transform: skewX(-3.125deg) skewY(-3.125deg); }
	55%  { transform: skewX(1.5625deg) skewY(1.5625deg); }
	66%  { transform: skewX(-0.78125deg) skewY(-0.78125deg); }
	77%  { transform: skewX(0.390625deg) skewY(0.390625deg); }
	88%  { transform: skewX(-0.1953125deg) skewY(-0.1953125deg); }
}

/* Animated part — initial hidden state */
.tdmtc-anim {
	opacity: 0; /* becomes visible when animation fires */
	will-change: transform, opacity, filter;
}

/* ════════════════════════════════════════════════
   RESPONSIVE — Tablet (≤1024px)
════════════════════════════════════════════════ */
@media ( max-width: 1024px ) {
	.tdmtc-title-wrap.tdmtc-layout-inline {
		gap: 8px;
	}
}

/* ════════════════════════════════════════════════
   RESPONSIVE — Mobile (≤767px)
════════════════════════════════════════════════ */
@media ( max-width: 767px ) {
	.tdmtc-title-wrap.tdmtc-layout-inline {
		gap: 6px;
	}

	.tdmtc-word {
		white-space: normal;
		word-break: break-word;
		max-width: 100%;
		hyphens: auto;
	}
}

/* ════════════════════════════════════════════════
   RESPONSIVE — Small mobile (≤480px)
════════════════════════════════════════════════ */
@media ( max-width: 480px ) {
	.tdmtc-title-wrap.tdmtc-layout-inline {
		gap: 4px;
	}
}

/* ════════════════════════════════════════════════
   ACCESSIBILITY: respect reduced-motion preference
════════════════════════════════════════════════ */
@media ( prefers-reduced-motion: reduce ) {
	.tdmtc-anim {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
	}
}
