/* ── Advanced Button Widget ───────────────────────────────────────────────── */
/* All selectors are scoped to .elementor-widget-sea-advanced-button to beat  */
/* specificity from other plugin/theme stylesheets that target a, button, etc */

/* ─ Base ─ */
.elementor-widget-sea-advanced-button .sea-btn {
	--sea-btn-dur: 300ms;
	--sea-btn-hover-bg: #4f46e5;
	--sea-btn-circle-d: 56px;
	--sea-btn-pill-d: 48px;
	--sea-btn-orbit-gap: 24px;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 28px;
	background: #6366f1;
	color: #fff;
	text-decoration: none !important;
	border-radius: 100px;
	border: none;
	box-sizing: border-box;
	font-size: 1rem;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
	position: relative;
	margin: 0;
	-webkit-user-select: none;
	user-select: none;
	outline: none;
	vertical-align: middle;
	white-space: nowrap;
	transition:
		background-color var(--sea-btn-dur) ease,
		color            var(--sea-btn-dur) ease,
		border-color     var(--sea-btn-dur) ease,
		box-shadow       var(--sea-btn-dur) ease,
		transform        var(--sea-btn-dur) ease;
}

.elementor-widget-sea-advanced-button .sea-btn__label  { pointer-events: none; }
.elementor-widget-sea-advanced-button .sea-btn__icon   { display: inline-flex; align-items: center; justify-content: center; line-height: 1; pointer-events: none; }
.elementor-widget-sea-advanced-button .sea-btn__icon i { font-size: 16px; }
.elementor-widget-sea-advanced-button .sea-btn__icon svg { width: 16px; height: 16px; }

/* ─ None preset (simple colour change on hover) — no extra CSS needed ─ */

/* ─ Fill Sweep ─────────────────────────────────────────────────────────── */
.elementor-widget-sea-advanced-button .sea-btn--fill-sweep {
	overflow: hidden;
}

.elementor-widget-sea-advanced-button .sea-btn--fill-sweep::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--sea-btn-hover-bg, #4f46e5);
	z-index: 0;
	transition: transform var(--sea-btn-dur) ease;
}

.elementor-widget-sea-advanced-button .sea-btn--fill-sweep .sea-btn__label,
.elementor-widget-sea-advanced-button .sea-btn--fill-sweep .sea-btn__icon-wrap {
	position: relative;
	z-index: 1;
}

/* left → right */
.elementor-widget-sea-advanced-button .sea-btn--fill-ltr::before { transform: scaleX(0); transform-origin: left center; }
.elementor-widget-sea-advanced-button .sea-btn--fill-ltr:hover::before { transform: scaleX(1); }

/* right → left */
.elementor-widget-sea-advanced-button .sea-btn--fill-rtl::before { transform: scaleX(0); transform-origin: right center; }
.elementor-widget-sea-advanced-button .sea-btn--fill-rtl:hover::before { transform: scaleX(1); }

/* top → bottom */
.elementor-widget-sea-advanced-button .sea-btn--fill-ttb::before { transform: scaleY(0); transform-origin: top center; }
.elementor-widget-sea-advanced-button .sea-btn--fill-ttb:hover::before { transform: scaleY(1); }

/* bottom → top */
.elementor-widget-sea-advanced-button .sea-btn--fill-btt::before { transform: scaleY(0); transform-origin: bottom center; }
.elementor-widget-sea-advanced-button .sea-btn--fill-btt:hover::before { transform: scaleY(1); }

/* ─ Arrow Slide ────────────────────────────────────────────────────────── */
.elementor-widget-sea-advanced-button .sea-btn--arrow-slide .sea-btn__icon-wrap {
	display: inline-grid;
	overflow: hidden;
}

.elementor-widget-sea-advanced-button .sea-btn--arrow-slide .sea-btn__icon-wrap > .sea-btn__icon {
	grid-area: 1 / 1;
	transition: transform var(--sea-btn-dur) ease;
}

/* right icon wrap: A exits right, B enters from left */
.elementor-widget-sea-advanced-button .sea-btn--arrow-slide .sea-btn__icon-wrap--right .sea-btn__icon--b { transform: translateX(-120%); }
.elementor-widget-sea-advanced-button .sea-btn--arrow-slide:hover .sea-btn__icon-wrap--right .sea-btn__icon--a { transform: translateX(120%); }
.elementor-widget-sea-advanced-button .sea-btn--arrow-slide:hover .sea-btn__icon-wrap--right .sea-btn__icon--b { transform: translateX(0); }

/* left icon wrap: A exits left, B enters from right */
.elementor-widget-sea-advanced-button .sea-btn--arrow-slide .sea-btn__icon-wrap--left .sea-btn__icon--b { transform: translateX(120%); }
.elementor-widget-sea-advanced-button .sea-btn--arrow-slide:hover .sea-btn__icon-wrap--left .sea-btn__icon--a { transform: translateX(-120%); }
.elementor-widget-sea-advanced-button .sea-btn--arrow-slide:hover .sea-btn__icon-wrap--left .sea-btn__icon--b { transform: translateX(0); }

/* ─ Icon Spin ──────────────────────────────────────────────────────────── */
.elementor-widget-sea-advanced-button .sea-btn--icon-spin .sea-btn__icon {
	transition: transform var(--sea-btn-dur) ease;
}

.elementor-widget-sea-advanced-button .sea-btn--spin-90:hover  .sea-btn__icon { transform: rotate(90deg); }
.elementor-widget-sea-advanced-button .sea-btn--spin-180:hover .sea-btn__icon { transform: rotate(180deg); }
.elementor-widget-sea-advanced-button .sea-btn--spin-360:hover .sea-btn__icon { transform: rotate(360deg); }

/* ─ Expand (circle → pill) ─────────────────────────────────────────────── */
.elementor-widget-sea-advanced-button .sea-btn--expand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: transparent;
	padding: 0;
	overflow: visible;
}

.elementor-widget-sea-advanced-button .sea-btn--expand::before {
	content: '';
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: var(--sea-btn-circle-d, 56px);
	border-radius: 100px;
	background: #6366f1;
	z-index: 0;
	transition: width var(--sea-btn-dur) ease;
}

.elementor-widget-sea-advanced-button .sea-btn--expand:hover::before {
	width: 100%;
}

.elementor-widget-sea-advanced-button .sea-btn--expand .sea-btn__icon-wrap {
	position: relative;
	z-index: 1;
	width: var(--sea-btn-circle-d, 56px);
	height: var(--sea-btn-circle-d, 56px);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.elementor-widget-sea-advanced-button .sea-btn--expand .sea-btn__label {
	position: relative;
	z-index: 1;
	padding-right: 20px;
	transition: color var(--sea-btn-dur) ease;
}

/* ─ Pill Slide (icon bubble slides side to side) ───────────────────────── */
.elementor-widget-sea-advanced-button .sea-btn--pill-slide {
	--sea-pill-dx:     0px;
	--sea-pill-lbl-dx: 0px;

	display: inline-flex;
	align-items: center;
	padding: 4px;
	gap: 12px;
	overflow: hidden;
}

.elementor-widget-sea-advanced-button .sea-btn--pill-slide .sea-btn__label {
	padding: 10px 12px;
	transition: transform var(--sea-btn-dur) ease;
}

.elementor-widget-sea-advanced-button .sea-btn--pill-slide .sea-btn__icon-pill {
	width: var(--sea-btn-pill-d, 48px);
	height: var(--sea-btn-pill-d, 48px);
	border-radius: 50%;
	background: rgba(255,255,255,0.15);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	/* Transparent border at rest so size stays constant; colour fades in on hover */
	border: var(--sea-pill-border-width, 2px) solid transparent;
	transition:
		transform        var(--sea-btn-dur) ease,
		background-color var(--sea-btn-dur) ease,
		border-color     var(--sea-btn-dur) ease;
}

.elementor-widget-sea-advanced-button .sea-btn--pill-slide:hover .sea-btn__icon-pill {
	transform: translateX(var(--sea-pill-dx, 0px));
	border-color: var(--sea-pill-border-color, rgba(255, 255, 255, 0.65));
}

.elementor-widget-sea-advanced-button .sea-btn--pill-slide:hover .sea-btn__label {
	transform: translateX(var(--sea-pill-lbl-dx, 0px));
}

/* ─ Orbit (text orbits around circle on hover) ──────────────────────────── */
.elementor-widget-sea-advanced-button .sea-btn--orbit {
	width:  var(--sea-btn-circle-d, 80px);
	height: var(--sea-btn-circle-d, 80px);
	padding: 0;
	border-radius: 50%;
	overflow: visible;
}

.elementor-widget-sea-advanced-button .sea-btn--orbit .sea-btn__icon-wrap {
	width:  100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
}

/* Label is hidden at rest — JS reads it, then hides */
.elementor-widget-sea-advanced-button .sea-btn__orbit-src {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
}

/* Ring added by JS — wraps all orbit characters */
.elementor-widget-sea-advanced-button .sea-btn__orbit-ring {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
	opacity: 0;
	transform-origin: 50% 50%;
	transition: opacity var(--sea-btn-dur) ease;
	animation: sea-orbit-spin 7s linear infinite;
	animation-play-state: paused;
}

.elementor-widget-sea-advanced-button .sea-btn--orbit:hover .sea-btn__orbit-ring {
	opacity: 1;
	animation-play-state: running;
}

@keyframes sea-orbit-spin {
	to { transform: rotate(360deg); }
}

/* Individual characters inside the ring */
.elementor-widget-sea-advanced-button .sea-btn__orbit-char {
	position: absolute;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
	color: inherit;
	line-height: 1;
}
