/**
 * Expo Slider — 3-up coverflow carousel (matches the original expo-slider.html).
 * @package yendigital
 */

:root {
	--expo-radius:   28px;
	--expo-active-w: 85%;      
	--expo-peek-w:   30%;      
	--expo-height:   680px;    
	--expo-peek-h:   78%;     
	--expo-active-h: 92%;
	--expo-trans:    800;      
	--expo-ease: cubic-bezier(.55, .05, .15, 1);
}

.expo-slider {
	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 6px 0 50px;
	background: #ffedec;     
	font-family: var(--yd-font);
}

.expo-slider__bg {
	display: none;
}

.expo-slider__stage {
	position: relative;
	z-index: 2;
	height: var(--expo-height);
}

.expo-slide {
	position: absolute;
	top: 50%;
	height: var(--expo-peek-h);   
	border-radius: var(--expo-radius);
	overflow: hidden;
	cursor: grab;
	filter: grayscale(1) brightness(.82);
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55);
	transform: translate(-50%, -50%);
	transition: left .8s var(--expo-ease),
		width .8s var(--expo-ease),
		height .8s var(--expo-ease),
		opacity .8s var(--expo-ease),
		filter .8s var(--expo-ease);
}
.expo-slide.no-anim {
	transition: none !important;        
}
.expo-slider.is-dragging .expo-slide {
	cursor: grabbing;
}

.expo-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* dark scrim so the caption stays readable on the active card */
.expo-slide__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .15) 45%, transparent 70%);
	opacity: 0;
	transition: opacity .8s var(--expo-ease);
}

/* --- caption --- */
.expo-slide__caption {
	position: absolute;
	left: 7%;
	top: 16%;                   
	bottom: auto;
	max-width: 56%;
	color: #fff;
	opacity: 0;
	pointer-events: none;       
	transform: translateY(30px);
	transition: opacity .7s .25s var(--expo-ease),
		transform .7s .25s var(--expo-ease);
}
.expo-slide__caption h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(22px, 2.9vw, 42px);
	font-weight: 700;
	line-height: 1.14;
	letter-spacing: 0;
	overflow-wrap: break-word;
	text-shadow: 0 4px 20px rgba(0, 0, 0, .45);
}
.expo-slide__caption p {
	margin: 16px 0 0;
	max-width: 44em;
	font-size: clamp(14px, 1.1vw, 17px);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: .2px;
	opacity: .92;
}

/* --- caption action buttons --- */
.expo-slide__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 28px;
}
.expo-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 15px 34px;
	border: 2px solid transparent;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}
/* Button 1 "Learn More" — primary red; hover flips to the site's black. */
.expo-btn--dark {
	background: var(--yd-primary);   /* #ff3951 */
	border-color: var(--yd-primary);
	color: #fff;
}
.expo-btn--dark:hover {
	background: var(--yd-heading);   /* #14142b */
	border-color: var(--yd-heading);
	color: #fff;
}
/* Button 2 "Get in Touch" — solid white; hover flips to black. */
.expo-btn--light {
	background: #fff;
	border-color: #fff;
	color: var(--yd-heading);
}
.expo-btn--light:hover {
	background: var(--yd-heading);
	border-color: var(--yd-heading);
	color: #fff;
}


.expo-slide.pos-active {
	left: 43%;                        
	width: var(--expo-active-w);
	height: var(--expo-active-h);
	filter: grayscale(0) brightness(1);
	z-index: 4;
}

.expo-slide.pos-prev {
	left: -30%;
	width: var(--expo-peek-w);
	opacity: 0;
	z-index: 1;
}
.expo-slide.pos-next {
	left: 103%;                          /* gap between the active card and the peek */
	width: var(--expo-peek-w);
	z-index: 3;
}
.expo-slide.pos-far-left {
	left: -30%;
	width: var(--expo-peek-w);
	opacity: 0;
	z-index: 1;
}
.expo-slide.pos-far-right {
	left: 128%;
	width: var(--expo-peek-w);
	opacity: 0;
	z-index: 1;
}

.expo-slide.pos-active .expo-slide__scrim {
	opacity: 1;
}
.expo-slide.pos-active .expo-slide__caption {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}


@media (min-width: 901px) {
	.expo-slide__caption {
		top: 50%;
		bottom: auto;
		transform: translateY(calc(-50% + 30px));   /* hidden: centred + slide offset */
	}
	.expo-slide.pos-active .expo-slide__caption {
		transform: translateY(-50%);                /* shown: centred */
	}
	.expo-slide__caption h2 {
		font-size: 56px;                            /* larger hero heading on desktop */
	}
}

/* --- navigation arrows (hidden — navigation via swipe/drag + dots) --- */
.expo-nav {
	display: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 6;
	width: 54px;
	height: 54px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, .15);
	backdrop-filter: blur(6px);
	color: #fff;
	font-size: 22px;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .3s ease;
}
.expo-nav:hover {
	background: rgba(255, 255, 255, .35);
}
.expo-nav--prev {
	left: 24px;
}
.expo-nav--next {
	right: 24px;
}

/* --- dots --- */
.expo-dots {
	position: absolute;
	bottom: 105px;                       /* sit over the bottom of the active card image */
	left: 50%;
	transform: translateX(-50%);
	z-index: 6;
	display: flex;
	gap: 10px;
}
.expo-dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, .55);   /* white + shadow, visible on the image */
	box-shadow: 0 1px 5px rgba(0, 0, 0, .4);
	cursor: pointer;
	transition: width .3s ease, background .3s ease;
}
.expo-dots button.is-active {
	width: 28px;
	border-radius: 6px;
	background: #fff;
}

/* --- responsive: single full-width card on small screens (no h-scroll) --- */
@media (max-width: 900px) {
	:root {
		--expo-active-w: 100%;  
		--expo-height: 400px;    
	}
	.expo-slider {
		padding: 6px 16px 16px; 
	}
	/* Dots sit neatly near the bottom, inside the rounded card. */
	.expo-dots {
		bottom: 30px;
	}
	.expo-slide {
		border-radius: var(--expo-radius);   
		box-shadow: none;
	}
	.expo-slide.pos-active {
		left: 50%;
		height: 100%;            /* fill the stage on mobile */
	}
	
	.expo-slide.pos-prev,
	.expo-slide.pos-next,
	.expo-slide.pos-far-left,
	.expo-slide.pos-far-right {
		left: 50%;
		width: 100%;
		opacity: 0;
	}
	.expo-slide__caption {
		left: 18px;
		top: 8%;                /* lower on mobile so it isn't cramped at the top */
		max-width: 88%;
	}
	.expo-slide__caption h2 {
		font-size: 34px;
		line-height: 1.2;
	}
	.expo-slide__caption p {
		font-size: 13px;
		line-height: 1.45;
		margin-top: 11px;
	}
	/* Keep both CTAs on one row (side by side) — smaller so they fit any phone. */
	.expo-slide__actions {
		margin-top: 20px;
		flex-wrap: nowrap;
		gap: 10px;
	}
	.expo-btn {
		padding: 12px 18px;
		font-size: 13.5px;
		white-space: nowrap;
	}
}
