/**
 * Teknij Shortcode - Frontend Slider Styles
 */

/* Page Builder & Flexbox Integration - ensure slider never collapses to 0 width */
.elementor-shortcode:has(.teknij-slider-wrap),
.elementor-widget-container:has(.teknij-slider-wrap),
.elementor-widget-shortcode:has(.teknij-slider-wrap),
.elementor-element:has(.teknij-slider-wrap),
.e-con:has(.teknij-slider-wrap),
.e-con-inner:has(.teknij-slider-wrap) {
	width: 100% !important;
	min-width: 100% !important;
	flex: 1 1 100% !important;
	max-width: 100% !important;
}

.e-con .elementor-widget-shortcode {
	width: 100% !important;
	min-width: 100% !important;
	flex: 1 1 100% !important;
}

.elementor-widget-shortcode .elementor-shortcode {
	width: 100% !important;
	min-width: 100% !important;
	display: block;
}

/* Slider Container */
.teknij-slider-wrap {
	position: relative;
	width: 100% !important;
	min-width: 100% !important;
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
	user-select: none;
	-webkit-user-select: none;
	box-sizing: border-box;
	display: block;
}

.teknij-slider-wrap * {
	box-sizing: border-box;
}

/* Shadows */
.teknij-shadow-subtle {
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}
.teknij-shadow-medium {
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}
.teknij-shadow-deep {
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
}

/* Viewport */
.teknij-slider-viewport {
	width: 100% !important;
	min-width: 100% !important;
	height: 100%;
	min-height: 100%;
	position: relative;
	overflow: hidden;
}

/* Track (Slide Effect) */
.teknij-effect-slide .teknij-slider-track {
	display: flex;
	height: 100%;
	min-height: 100%;
	width: 100% !important;
	min-width: 100% !important;
	transition: transform var(--teknij-speed, 750ms) cubic-bezier(0.25, 1, 0.5, 1);
	will-change: transform;
}

.teknij-effect-slide .teknij-slide-item {
	flex: 0 0 100% !important;
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100%;
	height: 100%;
	min-height: 100%;
	position: relative;
	overflow: hidden;
}

/* Track (Fade Effect) */
.teknij-effect-fade .teknij-slider-track {
	position: relative;
	width: 100%;
	height: 100%;
}

.teknij-effect-fade .teknij-slide-item {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--teknij-speed, 750ms) ease, visibility var(--teknij-speed, 750ms) ease;
	z-index: 1;
}

.teknij-effect-fade .teknij-slide-item.teknij-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 2;
}

/* Slide Background & Images */
.teknij-slide-bg-wrap {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	overflow: hidden;
}

.teknij-slide-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	pointer-events: none;
}

.teknij-slide-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	pointer-events: none;
}

/* Full Slide Link */
.teknij-slide-link-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 4;
	text-indent: -9999px;
}

/* Content Layout */
.teknij-slide-content-wrap {
	position: relative;
	z-index: 3;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 40px 60px;
}

.teknij-slide-content-wrap.align-center {
	justify-content: center;
}

.teknij-slide-content-wrap.align-left {
	justify-content: flex-start;
}

.teknij-slide-content-wrap.align-right {
	justify-content: flex-end;
}

.teknij-slide-content {
	width: 100%;
	pointer-events: auto;
}

/* Typography & Subtitle */
.teknij-slide-subtitle {
	display: inline-block;
	margin-bottom: 14px;
	line-height: 1.4;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

/* Title Heading */
.teknij-slide-title {
	margin: 0 0 24px 0;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
	word-wrap: break-word;
}

/* Action Button */
.teknij-slide-btn-wrap {
	display: block;
	margin-top: 10px;
}

.teknij-slide-btn {
	display: inline-block;
	text-decoration: none;
	font-weight: 700;
	cursor: pointer;
	border: none;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
	transition: all 0.25s ease;
	line-height: 1;
	vertical-align: middle;
}

.teknij-slide-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}

/* Navigation Arrows */
.teknij-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border: none;
	padding: 0;
	transition: all 0.25s ease;
	outline: none;
}

.teknij-svg-icon {
	width: 100%;
	height: 100%;
	display: block;
	transition: transform 0.2s ease;
}

.teknij-arrow-prev:hover .teknij-svg-icon {
	transform: translateX(-2px);
}

.teknij-arrow-next:hover .teknij-svg-icon {
	transform: translateX(2px);
}

/* Arrow Shapes */
.teknij-arrow-style-circle .teknij-arrow {
	border-radius: 50%;
	padding: 8px;
}

.teknij-arrow-style-square .teknij-arrow {
	border-radius: 6px;
	padding: 8px;
}

/* Arrow Visibility Modes */
.teknij-arrows-hover .teknij-arrow {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.2s ease, background-color 0.2s ease;
}

.teknij-slider-wrap:hover .teknij-arrows-hover .teknij-arrow,
.teknij-arrows-hover:hover .teknij-arrow {
	opacity: 1;
	visibility: visible;
}

.teknij-arrows-always .teknij-arrow {
	opacity: 1;
	visibility: visible;
}

/* Pagination Dots */
.teknij-pagination {
	position: absolute;
	bottom: 22px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	display: flex;
	align-items: center;
	gap: 8px;
}

.teknij-dot {
	cursor: pointer;
	border: none;
	padding: 0;
	background-color: rgba(255, 255, 255, 0.4);
	transition: all 0.3s ease;
	outline: none;
}

.teknij-dots-dots .teknij-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
}

.teknij-dots-dots .teknij-dot.active {
	transform: scale(1.3);
}

.teknij-dots-bars .teknij-dot {
	width: 28px;
	height: 4px;
	border-radius: 2px;
}

.teknij-dots-bars .teknij-dot.active {
	width: 40px;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
	.teknij-slide-content-wrap {
		padding: 24px 30px;
	}
}
