/* Circle Button Base Styles */
.aafe-circle-button-wrapper {
	width: 100%;
	display: flex;
}

/* Alignment Classes */
.aafe-circle-button-align-left- .aafe-circle-button-wrapper,
.aafe-circle-button-align-left .aafe-circle-button-wrapper {
	justify-content: flex-start;
}

.aafe-circle-button-align-center- .aafe-circle-button-wrapper,
.aafe-circle-button-align-center .aafe-circle-button-wrapper {
	justify-content: center;
}

.aafe-circle-button-align-right- .aafe-circle-button-wrapper,
.aafe-circle-button-align-right .aafe-circle-button-wrapper {
	justify-content: flex-end;
}

.aafe-circle-button-align-justify- .aafe-circle-button-wrapper,
.aafe-circle-button-align-justify .aafe-circle-button-wrapper {
	justify-content: stretch;
}
.aafe-circle-button-align-justify- .aafe-circle-button-wrapper .aafe-circle-button-container,
.aafe-circle-button-align-justify .aafe-circle-button-wrapper .aafe-circle-button-container {
    width: 100%;
}
.aafe-circle-button-align-justify- .aafe-circle-button,
.aafe-circle-button-align-justify .aafe-circle-button {
    width: 100%;
    justify-content: center;
}


.aafe-circle-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	border: none;
	background: transparent;
	cursor: pointer;
	transition: all 0.3s ease;
	z-index: 1;
}

/* The Sliding Circle */
.aafe-circle-button::before {
	content: "";
	position: absolute;
	display: block;
	z-index: -1;
	transition: all 0.3s ease;
	/* Overridable by Elementor */
	inset-inline-start: 0;
	top: 50%;
	transform: translateY(-50%);
	background: #b1dae7;
	width: 45px;
	height: 45px;
	border-radius: 50px;
}

/* Hover State for Circle */
.aafe-circle-button:hover::before {
	width: 100% !important;
}

.aafe-circle-button__text {
	position: relative;
	z-index: 1;
	transition: color 0.3s ease;
}

/* Icon Styles */
.aafe-circle-button__icon {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	transition: all 0.3s ease;
}

.aafe-circle-button__icon .aafe-circle-button__default-svg {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: all 0.3s ease;
}

.aafe-circle-button__icon i,
.aafe-circle-button__icon svg:not(.aafe-circle-button__default-svg) {
	transition: all 0.3s ease;
}

/* Hover Effects (Global System) */
.aafe-circle-button-wrapper[data-hover="lift"] .aafe-circle-button {
    transition: transform var(--aafe-transition, 300ms) var(--aafe-easing, ease), box-shadow var(--aafe-transition, 300ms) var(--aafe-easing, ease);
}
.aafe-circle-button-wrapper[data-hover="lift"]:hover .aafe-circle-button {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.15);
}

.aafe-circle-button-wrapper[data-hover="glow"] .aafe-circle-button {
    transition: box-shadow var(--aafe-transition, 300ms) var(--aafe-easing, ease);
}
.aafe-circle-button-wrapper[data-hover="glow"]:hover .aafe-circle-button {
    box-shadow: 0 0 20px rgba(255,255,255,0.5);
}

.aafe-circle-button-wrapper[data-hover="scale"] .aafe-circle-button {
    transition: transform var(--aafe-transition, 300ms) var(--aafe-easing, ease);
}
.aafe-circle-button-wrapper[data-hover="scale"]:hover .aafe-circle-button {
    transform: scale(var(--aafe-hover-scale, 1.03));
}

.aafe-circle-button-wrapper[data-hover="border-pop"] .aafe-circle-button {
    position: relative;
}
.aafe-circle-button-wrapper[data-hover="border-pop"] .aafe-circle-button::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 2px solid currentColor;
    border-radius: inherit;
    opacity: 0;
    transform: scale(1.1);
    transition: all var(--aafe-transition, 300ms) var(--aafe-easing, ease);
    pointer-events: none;
    z-index: 2;
}
.aafe-circle-button-wrapper[data-hover="border-pop"]:hover .aafe-circle-button::after {
    opacity: 1;
    transform: scale(1);
}

.aafe-circle-button-wrapper[data-hover="shine"] .aafe-circle-button {
    position: relative;
    overflow: hidden;
}
.aafe-circle-button-wrapper[data-hover="shine"] .aafe-circle-button::after {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 50%; height: 100%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%);
    transform: skewX(-20deg);
    transition: left var(--aafe-transition, 300ms) var(--aafe-easing, ease);
    z-index: 2;
    pointer-events: none;
}
.aafe-circle-button-wrapper[data-hover="shine"]:hover .aafe-circle-button::after {
}

/* AAFE IMPROVEMENT: RTL Support */
[dir="rtl"] .aafe-circle-button__default-svg {
    transform: scaleX(-1);
}
