/**
 * Aurora Showcase Carousel — Layout & Base Styles
 *
 * Structural styles only. Colors, typography, spacing
 * are controlled via Elementor widget style controls.
 *
 * @package Aurora\ShowcaseCarousel
 */

/* ----------------------------------------------------------------
   Wrapper
   ---------------------------------------------------------------- */
.aurora-sc-wrapper {
	position: relative;
	overflow: hidden;
	width: 100vw;
	margin-left: calc(-50vw + 50%);
}

/* ----------------------------------------------------------------
   Swiper Container
   ---------------------------------------------------------------- */
.aurora-sc-swiper {
	overflow: visible !important;
}

.aurora-sc-swiper .swiper-wrapper {
	align-items: var(--aurora-sc-align, center);
}

/* ----------------------------------------------------------------
   Slides — Scale & Opacity (CSS class-based)
   ---------------------------------------------------------------- */
.aurora-sc-wrapper .swiper-slide.aurora-sc-slide {
	transform: scale(var(--aurora-sc-side-scale, 0.85));
	opacity: var(--aurora-sc-side-opacity, 0.6);
	transform-origin: var(--aurora-sc-origin, center center);
	transition: transform var(--aurora-sc-speed, 0.4s) ease,
	            opacity var(--aurora-sc-speed, 0.4s) ease;
}

.aurora-sc-wrapper .swiper-slide.aurora-sc-slide.swiper-slide-active {
	transform: scale(1);
	opacity: 1;
}

/* ----------------------------------------------------------------
   Item Structure
   ---------------------------------------------------------------- */
.aurora-sc-item {
	overflow: hidden;
}

/* ----------------------------------------------------------------
   Media / Image
   ---------------------------------------------------------------- */
.aurora-sc-media {
	overflow: hidden;
	aspect-ratio: var(--aurora-sc-img-ratio, 0.75);
}

.aurora-sc-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Auto ratio — let image determine frame height */
.aurora-sc-auto-ratio .aurora-sc-media {
	aspect-ratio: auto;
}

.aurora-sc-auto-ratio .aurora-sc-media img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* Phlox media frame compatibility */
.aurora-sc-media .aux-media-frame {
	max-width: none !important;
	width: 100%;
	aspect-ratio: var(--aurora-sc-img-ratio, auto);
	overflow: hidden;
}

.aurora-sc-media .aux-media-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

.aurora-sc-auto-ratio .aurora-sc-media .aux-media-frame {
	aspect-ratio: auto;
}

.aurora-sc-auto-ratio .aurora-sc-media .aux-media-image img {
	width: 100% !important;
	height: auto !important;
}

/* ----------------------------------------------------------------
   Content Block (below image)
   ---------------------------------------------------------------- */
.aurora-sc-content > * {
	display: block;
}

.aurora-sc-title {
	margin: 0;
}

.aurora-sc-title a {
	text-decoration: none;
	color: inherit;
}

.aurora-sc-subtitle {
	display: block;
}

.aurora-sc-button {
	position: relative;
	display: inline-block;
	overflow: hidden;
	text-decoration: none;
	transition: color 0.35s ease, border-color 0.35s ease,
		opacity 0.35s ease, transform 0.35s ease, visibility 0.35s ease;
	box-sizing: border-box;
	isolation: isolate;
}

/* Phlox-style radial fill — circle that scales from center on hover.
   Width 220% guarantees the inscribed circle reaches all corners of the
   button rect even for square-ish / heavily padded buttons. */
.aurora-sc-button .aurora-sc-btn-fill {
	position: absolute;
	width: 220%;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0, 0);
	transition: transform 650ms cubic-bezier(0.75, 0.1, 0.25, 0.9);
	pointer-events: none;
	z-index: 0;
}

.aurora-sc-button .aurora-sc-btn-fill::after {
	position: relative;
	content: '';
	display: block;
	padding-top: 100%;
	border-radius: 50%;
	background-color: var(--aurora-sc-fill, #3d3d3d);
}

.aurora-sc-button .aurora-sc-btn-text {
	position: relative;
	z-index: 1;
	transition: color 0.35s ease;
}

.aurora-sc-button:hover .aurora-sc-btn-fill,
.aurora-sc-item:hover .aurora-sc-button .aurora-sc-btn-fill {
	transform: translate(-50%, -50%) scale(1, 1);
}

.aurora-sc-button:hover .aurora-sc-btn-text,
.aurora-sc-item:hover .aurora-sc-button .aurora-sc-btn-text {
	color: var(--aurora-sc-text-hover, #ffffff);
}

/* Reveal-on-hover variant: button is rendered as overlay inside .aurora-sc-media,
   so it never affects flow / image alignment and always sits within the slide. */
.aurora-sc-item--reveal-btn .aurora-sc-media {
	position: relative;
}

.aurora-sc-button--overlay {
	position: absolute;
	top: var(--aurora-sc-btn-y, 50%);
	left: var(--aurora-sc-btn-x, 50%);
	/* Anchor-aware translate so 0% / 50% / 100% align edges, then user offset, then hover slide-in (8px). */
	transform:
		translate(calc(-1 * var(--aurora-sc-btn-x, 50%)), calc(-1 * var(--aurora-sc-btn-y, 50%)))
		translate(var(--aurora-sc-btn-offset-x, 0px), var(--aurora-sc-btn-offset-y, 0px))
		translateY(8px);
	z-index: 5;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	white-space: nowrap;
	margin-top: 0 !important;
}

.aurora-sc-item--reveal-btn:hover .aurora-sc-button--overlay,
.aurora-sc-item--reveal-btn:focus-within .aurora-sc-button--overlay,
.aurora-sc-button--overlay:focus-visible {
	opacity: 1;
	visibility: visible;
	transform:
		translate(calc(-1 * var(--aurora-sc-btn-x, 50%)), calc(-1 * var(--aurora-sc-btn-y, 50%)))
		translate(var(--aurora-sc-btn-offset-x, 0px), var(--aurora-sc-btn-offset-y, 0px));
	pointer-events: auto;
}

/* ----------------------------------------------------------------
   Pagination Bars
   ---------------------------------------------------------------- */
.aurora-sc-dots.swiper-pagination {
	position: relative;
	bottom: auto;
	margin-top: 24px;
	text-align: center;
	display: flex;
	justify-content: center;
	gap: var(--aurora-sc-bar-gap, 6px);
}

.aurora-sc-dots .swiper-pagination-bullet {
	cursor: pointer;
	transition: background-color 0.3s, width 0.3s;
	opacity: 1;
	border-radius: var(--aurora-sc-bar-radius, 2px);
	margin: 0 !important;
}

/* ----------------------------------------------------------------
   Navigation Arrows
   ---------------------------------------------------------------- */
.aurora-sc-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--aurora-sc-arrow-size, 36px);
	height: var(--aurora-sc-arrow-size, 36px);
	font-size: var(--aurora-sc-arrow-size, 36px);
	cursor: pointer;
	transition: color 0.3s, background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
	box-sizing: border-box;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
}

.aurora-sc-arrow svg {
	width: 100%;
	height: 100%;
	display: block;
	flex-shrink: 0;
}

.aurora-sc-arrow i {
	font-size: inherit;
	color: inherit;
	line-height: 1;
}

.aurora-sc-arrow-prev {
	left: var(--aurora-sc-arrow-offset, 10px);
}

.aurora-sc-arrow-next {
	right: var(--aurora-sc-arrow-offset, 10px);
}

/* Swiper disabled state */
.aurora-sc-arrow.swiper-button-disabled {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

/* ----------------------------------------------------------------
   Responsive — Mobile
   ---------------------------------------------------------------- */
@media (max-width: 767px) {
	.aurora-sc-wrapper .swiper-slide.aurora-sc-slide {
		transform: scale(1) !important;
		opacity: 1 !important;
	}

	.aurora-sc-arrow {
		display: none;
	}
}
