/**
 * Aproxian Carousel Buttons — base styles.
 *
 * Deliberately light: every visual property here is also exposed as an
 * Elementor control, so these are just sane defaults that match the
 * original inline-styled pills.
 */

.apc-pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 14px;
	margin: 18px auto 0;
}

.apc-pill {
	display: inline-block;
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	cursor: pointer;
	font-family: inherit;
	font-weight: 600;
	font-size: 15px;
	line-height: 1;
	padding: 11px 22px;
	border-radius: 999px;
	background: #ffffff;
	color: #ae917e;
	text-decoration: none;
	box-shadow: 0 4px 10px rgba( 200, 60, 120, 0.15 );
	transition: all 0.2s ease;
	will-change: transform;
}

.apc-pill:hover {
	background: #ae917e;
	color: #fff;
	transform: translateY( -2px );
}

.apc-pill:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.apc-pill.is-active {
	background: #ae917e;
	color: #fff;
}

/* Horizontal scroller on small screens. */
@media ( max-width: 767px ) {
	.apc-pills-scroll {
		flex-wrap: nowrap;
		overflow-x: auto;
		justify-content: flex-start;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 4px;
	}

	.apc-pills-scroll::-webkit-scrollbar {
		display: none;
	}

	.apc-pills-scroll .apc-pill {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}
}

/* ------------------------------------------------------------------ *
 * Carousel loading / empty states
 * ------------------------------------------------------------------ */

.apc-wrapper .apc-stage {
	transition: min-height 0.3s ease;
}

.apc-wrapper.apc-is-loading .swiper {
	opacity: 0.35;
	transition: opacity 0.2s ease;
	pointer-events: none;
}

.apc-wrapper.apc-is-loading .apc-arrow {
	opacity: 0.35;
	pointer-events: none;
}

.apc-wrapper.apc-is-loading .apc-stage::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 34px;
	height: 34px;
	margin: -17px 0 0 -17px;
	border-radius: 50%;
	border: 3px solid rgba( 0, 0, 0, 0.12 );
	border-top-color: currentColor;
	animation: apc-spin 0.7s linear infinite;
	z-index: 6;
}

.apc-wrapper .apc-stage {
	position: relative;
}

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

@media ( prefers-reduced-motion: reduce ) {
	.apc-pill,
	.apc-wrapper .apc-stage,
	.apc-wrapper.apc-is-loading .swiper {
		transition: none;
	}

	.apc-wrapper.apc-is-loading .apc-stage::after {
		animation: none;
	}
}

.apc-filter-message {
	display: none;
	padding: 32px 16px;
	text-align: center;
	font-size: 16px;
	opacity: 0.75;
}

.apc-filter-message.is-visible {
	display: block;
}

.apc-wrapper.apc-is-empty .apc-arrow,
.apc-wrapper.apc-is-empty .apc-dots-wrap {
	display: none;
}
