/**
 * Fresh&UP Slider Styles
 * Version: 1.0.0
 */

/* ========================================
	Fresh&UP Brand Colors
	======================================== */
:root {
	--freshup-blue: #0056B8;
	--freshup-dark-blue: #001F3F;
	--freshup-light-blue: #E6F2FF;
	--freshup-white: #FFFFFF;
	--transition-speed: 0.3s;
}

/* ========================================
	Hero Slider Styles
	======================================== */
.freshup-slider {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: var(--freshup-blue);
}

.slider-container {
	position: relative;
	width: 100%;
	height: 600px;
	overflow: hidden;
}

.slider-track {
	display: flex;
	transition: transform 0.6s ease-in-out;
}

.slide {
	min-width: 100%;
	position: relative;
	display: none;
	height: 100%;
}

.slide.active {
	display: block;
}

.slide-content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1400px;
	margin: 0 auto;
	padding: 40px;
	gap: 60px;
	height: 100%;
	box-sizing: border-box;
}

@media screen and (max-width: 640px) {
	.slide-content {
		gap: 10px;
	}
}

/* ========================================
	Hero Banner Height Variant
	======================================== */
.height-hero .slider-container { 
	min-height: 400px;
	height: 400px;
}

.height-hero .slide-content {
	padding: 30px 40px;
	min-height: 400px;
	aspect-ratio: 2.85;
}

.height-hero .slide-text h1 {
	font-size: clamp(2rem, 4vw, 3rem);
	margin-bottom: 16px;
}

.height-hero .slide-text p {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	margin-bottom: 24px;
}

.slide-text { 
	color: var(--freshup-white);
	animation: slideInLeft 0.8s ease-out;
}

@media screen and (min-width: 640px) {
	.slide-text {
		flex: 1; 
	} 
}

.slide-text h1 {
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: 24px;
	color: var(--freshup-white);
}

.slide-text p {
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	line-height: 1.6;
	margin-bottom: 32px;
	opacity: 0.95;
}

.slider-btn {
	display: inline-block;
	padding: 16px 40px;
	background: var(--freshup-white);
	color: var(--freshup-blue);
	text-decoration: none;
	font-weight: 600;
	font-size: 1.125rem;
	border-radius: 50px;
	transition: all var(--transition-speed) ease;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.slider-btn:hover {
	background: var(--freshup-dark-blue);
	color: var(--freshup-white);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.slide-image {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	animation: slideInRight 0.8s ease-out;
	height: 100%;
	overflow: hidden;
}

.slide-image img {
	max-width: 100%;
	max-height: 100%;
	height: auto;
	width: auto;
	object-fit: contain;
	border-radius: 20px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

/* Slider Navigation Arrows */
.slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: var(--freshup-white);
	border: none;
	color: var(--freshup-blue);
	width: 50px;
	height: 50px;
	border-radius: 50%;
	cursor: pointer;
	z-index: 10;
	transition: all var(--transition-speed) ease;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.slider-arrow:hover {
	background: var(--freshup-dark-blue);
	color: var(--freshup-white);
	transform: translateY(-50%) scale(1.1);
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.slider-arrow.prev {
	left: 30px;
}

.slider-arrow.next {
	right: 30px;
}

.slider-arrow svg {
	display: block;
	margin: 0 auto;
}

/* Slider Dots Navigation */
.slider-dots {
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 12px;
	z-index: 10;
}

.dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.5);
	border: 2px solid var(--freshup-white);
	cursor: pointer;
	transition: all var(--transition-speed) ease;
	padding: 0;
}

.dot:hover,
.dot.active {
	background: var(--freshup-white);
	transform: scale(1.3);
}

/* Animations */
@keyframes slideInLeft {
	from {
		opacity: 0;
		transform: translateX(-50px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes slideInRight {
	from {
		opacity: 0;
		transform: translateX(50px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* Responsive Design */
@media (max-width: 968px) {
	.slide-content {
		flex-direction: column;
		text-align: center;
		padding: 40px 30px;
	}

	.slide-text {
		flex: 0 1 auto;
	}

	.slide-image {
		flex: 1 1 auto;
		min-height: 0;
	}

	.slide-text h1 {
		font-size: 2.5rem;
	}

	.slide-text p {
		font-size: 1.125rem;
	}

	.slider-arrow {
		width: 40px;
		height: 40px;
	}

	.slider-arrow.prev {
		left: 15px;
	}

	.slider-arrow.next {
		right: 15px;
	}

	.slider-container {
		height: 500px;
	}

	/* Hero variant responsive adjustments */
	.height-hero .slider-container {
		height: 350px !important;
	}

	.height-hero .slide-content {
		padding: 30px;
	}
}

@media (max-width: 640px) {
	.slide-content {
		padding: 30px 20px; 
	}

	/* Hero variant responsive adjustments */
	.height-hero .slider-container {
		height: 300px !important;
	}

	.height-hero .slide-content {
		padding: 20px;
	}

	.slide-text h1 {
		font-size: 2rem;
		margin-bottom: 16px;
	}

	.slide-text p {
		font-size: 1rem;
		margin-bottom: 24px;
	}

	.slider-btn {
		padding: 12px 30px;
		font-size: 1rem;
	}

	.slider-container {
		height: 400px;
	}
}

/* ========================================
	Fade Transition Effect
	======================================== */
.transition-fade .slide {
	opacity: 0;
	transition: opacity 0.8s ease-in-out;
}

.transition-fade .slide.active {
	opacity: 1;
}

.transition-fade .slide-text {
	animation: none;
}

.transition-fade .slide-image {
	animation: none;
}

/* ========================================
	Full Background Layout
	======================================== */
.layout-fullBackground .slide,
.slide-layout-fullBackground {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
}

.layout-fullBackground .slide::before,
.slide-layout-fullBackground::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(135deg, rgba(0, 86, 184, 0.85) 0%, rgba(0, 61, 130, 0.85) 100%);
	z-index: 1;
}

/* Per-slide overlay opacity support */
.slide-layout-fullBackground[data-slide-opacity="0"]::before { opacity: 0; }
.slide-layout-fullBackground[data-slide-opacity="5"]::before { opacity: 0.05; }
.slide-layout-fullBackground[data-slide-opacity="10"]::before { opacity: 0.10; }
.slide-layout-fullBackground[data-slide-opacity="15"]::before { opacity: 0.15; }
.slide-layout-fullBackground[data-slide-opacity="20"]::before { opacity: 0.20; }
.slide-layout-fullBackground[data-slide-opacity="25"]::before { opacity: 0.25; }
.slide-layout-fullBackground[data-slide-opacity="30"]::before { opacity: 0.30; }
.slide-layout-fullBackground[data-slide-opacity="35"]::before { opacity: 0.35; }
.slide-layout-fullBackground[data-slide-opacity="40"]::before { opacity: 0.40; }
.slide-layout-fullBackground[data-slide-opacity="45"]::before { opacity: 0.45; }
.slide-layout-fullBackground[data-slide-opacity="50"]::before { opacity: 0.50; }
.slide-layout-fullBackground[data-slide-opacity="55"]::before { opacity: 0.55; }
.slide-layout-fullBackground[data-slide-opacity="60"]::before { opacity: 0.60; }
.slide-layout-fullBackground[data-slide-opacity="65"]::before { opacity: 0.65; }
.slide-layout-fullBackground[data-slide-opacity="70"]::before { opacity: 0.70; }
.slide-layout-fullBackground[data-slide-opacity="75"]::before { opacity: 0.75; }
.slide-layout-fullBackground[data-slide-opacity="80"]::before { opacity: 0.80; }
.slide-layout-fullBackground[data-slide-opacity="85"]::before { opacity: 0.85; }
.slide-layout-fullBackground[data-slide-opacity="90"]::before { opacity: 0.90; }
.slide-layout-fullBackground[data-slide-opacity="95"]::before { opacity: 0.95; }
.slide-layout-fullBackground[data-slide-opacity="100"]::before { opacity: 1.0; }

/* Hide overlay when no-overlay class is present */
.slide.no-overlay.slide-layout-fullBackground::before,
.slide.no-overlay::before {
	display: none !important;
}

.layout-fullBackground .slide-content,
.slide-layout-fullBackground .slide-content {
	position: relative;
	z-index: 2;
	justify-content: center;
	text-align: center;
}

.layout-fullBackground .slide-text,
.slide-layout-fullBackground .slide-text {
	max-width: 800px;
	text-align: center;
}

.layout-fullBackground .slide-text h1,
.layout-fullBackground .slide-text p,
.slide-layout-fullBackground .slide-text h1,
.slide-layout-fullBackground .slide-text p {
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* ========================================
	Full Width Alignment Support
	======================================== */
.alignfull .freshup-slider,
.wp-block[data-align="full"] .freshup-slider {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	border-radius: 0;
}

.alignfull .slide-content,
.wp-block[data-align="full"] .slide-content {
	max-width: 100%;
	padding-left: 60px;
	padding-right: 60px;
}

/* Wide Alignment Support */
.alignwide .slide-content,
.wp-block[data-align="wide"] .slide-content {
	max-width: 1600px;
}

/* Adjust arrows for full-width layout */
.alignfull .slider-arrow.prev,
.wp-block[data-align="full"] .slider-arrow.prev {
	left: 40px;
}

.alignfull .slider-arrow.next,
.wp-block[data-align="full"] .slider-arrow.next {
	right: 40px;
}

/* Responsive adjustments for full-width */
@media (max-width: 968px) {
	.alignfull .slide-content,
	.wp-block[data-align="full"] .slide-content {
		padding-left: 40px;
		padding-right: 40px;
	}

	.alignfull .slider-arrow.prev,
	.wp-block[data-align="full"] .slider-arrow.prev {
		left: 20px;
	}

	.alignfull .slider-arrow.next,
	.wp-block[data-align="full"] .slider-arrow.next {
		right: 20px;
	}
}

@media (max-width: 640px) {
	.alignfull .slide-content,
	.wp-block[data-align="full"] .slide-content {
		padding-left: 20px;
		padding-right: 20px;
	}

	.alignfull .slider-arrow.prev,
	.wp-block[data-align="full"] .slider-arrow.prev {
		left: 10px;
	}

	.alignfull .slider-arrow.next,
	.wp-block[data-align="full"] .slider-arrow.next {
		right: 10px;
	}
}
