/* ==========================================================================
   Text Reveal Hover Animation (character-by-character slide-up)
   ========================================================================== */

/* Parent container needs overflow hidden for the slide effect */
.text-reveal-parent {
	overflow: hidden;
}

/* The wrapper span that contains the character splits */
.text-reveal {
	display: inline-flex;
	overflow: hidden;
}

/* Each character wrapper — clips the sliding text */
.text-reveal-char {
	display: inline-flex;
	flex-direction: column;
	overflow: hidden;
	height: 1.2em;
	line-height: 1.2;
}

/* Primary text (visible by default) */
.text-reveal-primary {
	display: block;
	transition: transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
	transition-delay: calc(var(--i, 0) * 0.008s);
	white-space: pre;
}

/* Secondary text (hidden below, slides up on hover) */
.text-reveal-secondary {
	display: block;
	transition: transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
	transition-delay: calc(var(--i, 0) * 0.008s);
	white-space: pre;
}

/* Hover: slide both texts up */
.text-reveal-parent:hover .text-reveal-primary,
.text-reveal-parent:focus .text-reveal-primary {
	transform: translateY(-100%);
}

.text-reveal-parent:hover .text-reveal-secondary,
.text-reveal-parent:focus .text-reveal-secondary {
	transform: translateY(-100%);
}

/* Ensure navigation links work with flex layout */
.main-navigation ul li a.text-reveal-parent {
	display: inline-flex;
	align-items: center;
}

/* Ensure buttons maintain inline-flex when animated */
.btn.text-reveal-parent,
.service-card__button.text-reveal-parent,
.services-cta__button.text-reveal-parent {
	display: inline-flex;
	align-items: center;
}

/* Ensure card links and read-more maintain inline-flex */
.card-link.text-reveal-parent,
.card-read-more.text-reveal-parent {
	display: inline-flex;
	align-items: center;
}

/* Footer links */
.footer-col ul li a.text-reveal-parent {
	display: inline-flex;
}

/* Blog card title links */
.blog-card .card-body h3 a.text-reveal-parent {
	display: inline-flex;
	flex-wrap: wrap;
}

/* Site branding title link */
.site-branding .site-title a.text-reveal-parent {
	display: inline-flex;
}

/* Pagination links */
.posts-navigation a.text-reveal-parent,
.pagination a.text-reveal-parent {
	display: inline-flex;
}
