/**
 * Category-page carousels — make it obvious the slides are links.
 *
 * The widget's own overlay (title + copy + "Learn More") only appears on :hover,
 * which never fires on a phone. These rules add a caption that is always on show
 * and bring the carousel's arrows and dots back to a usable size.
 *
 * Brand: navy #1C2C4C, navy-dark #0f1a2e, aqua #98F5EE. Suranna / Mulish.
 */

.uc_overlay_elegant_carousel {
	--vgc-navy: #1C2C4C;
	--vgc-navy-dark: #0f1a2e;
	--vgc-aqua: #98F5EE;
}

/* ── The slide is a link now, so say so ──────────────────────────────────── */

.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder {
	cursor: pointer;
	overflow: hidden;
}

.uc_overlay_elegant_carousel .uc_elegant_carousel_placeholder img {
	transition: transform 0.5s ease;
}

.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder:hover .uc_elegant_carousel_placeholder img,
.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder.is-focused .uc_elegant_carousel_placeholder img {
	transform: scale(1.04);
}

/* The anchor the script lays over each slide. Nothing visible — it is the hit
   area, and it gives us middle-click, right-click and keyboard focus for free. */
.vgc-slide-link {
	position: absolute;
	inset: 0;
	z-index: 4;
	display: block;
	text-decoration: none;
	border-radius: inherit;
}

.vgc-slide-link:focus-visible {
	outline: 3px solid var(--vgc-aqua);
	outline-offset: -3px;
}

/* ── Always-visible caption ──────────────────────────────────────────────── */

/* Scoped to the carousel and marked important: the theme zeroes padding on
   descendants of the widget, which otherwise flattens this band to a sliver. */
.uc_overlay_elegant_carousel .vgc-slide-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	box-sizing: border-box;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	padding: 46px 18px 18px !important;
	min-height: 108px;
	pointer-events: none;
	background: linear-gradient(
		to top,
		rgba(28, 44, 76, 0.92) 0%,
		rgba(28, 44, 76, 0.75) 42%,
		rgba(28, 44, 76, 0) 100%
	);
	/* The slides are arch-shaped; follow the same curve at the bottom corners. */
	border-bottom-left-radius: inherit;
	border-bottom-right-radius: inherit;
	transition: opacity 0.35s ease;
}

.uc_overlay_elegant_carousel .vgc-slide-title {
	margin: 0 !important;
	padding: 0 !important;
	/* The widget centres text inside the slide; the caption reads better ranged
	   left next to the arrow chip, and the centring rule needs outranking. */
	text-align: left !important;
	font-family: "Suranna", Georgia, serif;
	font-size: 21px;
	font-weight: 400;
	line-height: 1.22;
	color: #fff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
	overflow-wrap: anywhere;
}

/* Small aqua disc with a navy arrow — the "there is more here" cue. */
.uc_overlay_elegant_carousel .vgc-slide-go {
	flex: 0 0 auto;
	width: 34px !important;
	height: 34px !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 50%;
	background: var(--vgc-aqua);
	color: var(--vgc-navy);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	transition: transform 0.3s ease;
}

.vgc-slide-go svg {
	width: 15px;
	height: 15px;
	display: block;
}

.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder:hover .vgc-slide-go,
.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder.is-focused .vgc-slide-go {
	transform: translateX(4px);
}

/* On hover the widget's own full overlay fades in on top, so the caption steps
   aside rather than doubling the title. */
.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder:hover .vgc-slide-caption,
.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder.is-focused .vgc-slide-caption {
	opacity: 0;
}

/* Touch devices get no hover overlay at all, so keep the caption put. */
@media (hover: none) {
	.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder:hover .vgc-slide-caption {
		opacity: 1;
	}
}

/* ── Arrows: the widget ships them at zero size ──────────────────────────── */

/* The widget writes its sizing against the per-page element id (#uc_overlay_
   carousel_elementor_xxxxx …), which outranks any class selector, so these
   overrides have to be marked important to land. */
.uc_overlay_elegant_carousel .owl-nav button.owl-prev,
.uc_overlay_elegant_carousel .owl-nav button.owl-next {
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 46px !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: var(--vgc-navy) !important;
	box-shadow: 0 3px 14px rgba(28, 44, 76, 0.28) !important;
	font-size: 0 !important;
	opacity: 1 !important;
	cursor: pointer;
	z-index: 6;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.uc_overlay_elegant_carousel .owl-nav button.owl-prev { left: -8px !important; }
.uc_overlay_elegant_carousel .owl-nav button.owl-next { right: -8px !important; }

.uc_overlay_elegant_carousel .owl-nav button.owl-prev:hover,
.uc_overlay_elegant_carousel .owl-nav button.owl-next:hover,
.uc_overlay_elegant_carousel .owl-nav button.owl-prev:focus-visible,
.uc_overlay_elegant_carousel .owl-nav button.owl-next:focus-visible {
	background: var(--vgc-navy) !important;
	color: #fff !important;
}

/* Draw the chevrons ourselves — the widget's own glyphs are sized to nothing. */
.uc_overlay_elegant_carousel .owl-nav button.owl-prev::before,
.uc_overlay_elegant_carousel .owl-nav button.owl-next::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 11px;
	height: 11px;
	border-top: 2.5px solid currentColor;
	border-right: 2.5px solid currentColor;
}

.uc_overlay_elegant_carousel .owl-nav button.owl-next::before {
	transform: translate(-65%, -50%) rotate(45deg);
}

.uc_overlay_elegant_carousel .owl-nav button.owl-prev::before {
	transform: translate(-35%, -50%) rotate(-135deg);
}

.uc_overlay_elegant_carousel .owl-nav button.disabled {
	opacity: 0.35 !important;
	cursor: default;
}

/* Hide any icon markup the widget put inside the buttons. */
.uc_overlay_elegant_carousel .owl-nav button.owl-prev > *,
.uc_overlay_elegant_carousel .owl-nav button.owl-next > * {
	display: none !important;
}

.uc_overlay_elegant_carousel {
	position: relative;
}

/* ── Dots ────────────────────────────────────────────────────────────────── */

.uc_overlay_elegant_carousel .owl-dots {
	margin-top: 18px;
}

.uc_overlay_elegant_carousel .owl-dots button.owl-dot span {
	width: 9px !important;
	height: 9px !important;
	margin: 0 5px !important;
	background: rgba(28, 44, 76, 0.28) !important;
	border-radius: 50% !important;
	transition: background-color 0.2s ease, width 0.2s ease;
}

.uc_overlay_elegant_carousel .owl-dots button.owl-dot.active span {
	width: 26px !important;
	border-radius: 5px !important;
	background: var(--vgc-navy) !important;
}

.uc_overlay_elegant_carousel .owl-dots button.owl-dot:focus-visible span {
	outline: 2px solid var(--vgc-navy);
	outline-offset: 3px;
}

/* ── Narrow screens ──────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
	.uc_overlay_elegant_carousel .owl-nav button.owl-prev { left: 0 !important; }
	.uc_overlay_elegant_carousel .owl-nav button.owl-next { right: 0 !important; }
}

@media (max-width: 767px) {
	.uc_overlay_elegant_carousel .vgc-slide-caption {
		padding: 38px 14px 14px !important;
		min-height: 92px;
	}

	.uc_overlay_elegant_carousel .vgc-slide-title {
		font-size: 18px;
	}

	.uc_overlay_elegant_carousel .vgc-slide-go {
		width: 30px !important;
		height: 30px !important;
	}

	.uc_overlay_elegant_carousel .owl-nav button.owl-prev,
	.uc_overlay_elegant_carousel .owl-nav button.owl-next {
		width: 40px !important;
		height: 40px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.uc_overlay_elegant_carousel *,
	.vgc-slide-caption,
	.vgc-slide-go {
		transition: none !important;
	}

	.uc_overlay_elegant_carousel .uc_elegant_carousel_container_holder:hover .uc_elegant_carousel_placeholder img {
		transform: none;
	}
}
