/* =========================================
   GLIDE SMOOTH BUTTON - base structure
   (Colors, sizes, spacing are injected by
   Elementor's own Style controls per widget,
   this file only holds layout + animation
   mechanics so it never fights with them.)
========================================= */

.glide-btn-wrapper {
	display: inline-block;
	max-width: 100%;
}

.glide-btn-wrapper.gsb-align-left {
	text-align: left;
}
.glide-btn-wrapper.gsb-align-center {
	text-align: center;
}
.glide-btn-wrapper.gsb-align-right {
	text-align: right;
}

.glide-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	isolation: isolate;
	text-decoration: none !important;
	cursor: pointer;
	box-sizing: border-box;
	padding: 8px 24px 8px 24px !important;
	transition:
		color 0.45s ease,
		border-color 0.45s ease,
		transform 0.3s ease;
}

.glide-btn.gsb-icon-position-left {
	flex-direction: row-reverse;
}

/* Sliding hover background */
.glide-btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 100%;
	border-radius: inherit;
	z-index: -1;
	transition: width 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}

.glide-btn.gsb-slide-right::before {
	left: auto;
	right: 0;
}

.glide-btn:hover::before,
.glide-btn:focus::before {
	width: 100%;
}

/* Text */
.glide-btn .glide-button-text {
	position: relative;
	z-index: 2;
	white-space: nowrap;
	transition:
		color 0.4s ease,
		transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
}

/* Icon */
.glide-btn .glide-button-icon {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
}

.glide-btn .glide-button-icon svg {
	display: block;
	transition: transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
}

/* Fill swap is instant, exactly like the original (no transition on fill) */
.glide-btn .glide-button-icon svg,
.glide-btn .glide-button-icon svg path {
	transition: none;
}

/* Subtle press feedback */
.glide-btn:active {
	transform: scale(0.97);
}

/* Full width option */
.glide-btn-wrapper.gsb-full-width {
	display: block;
	width: 100%;
}
.glide-btn-wrapper.gsb-full-width .glide-btn {
	width: 100%;
}
