/* -------------------------------------------
	1. Base Style
		1-1. Slider Relative
		1-2. Slider Container
		1-3. Slider Wrapper
		1-4. Slider Slide
	2. Auto Height
	3. Navigation
		3-1. Nav Base
		3-2. Nav Type
		3-3. Nav Pos
		3-4. Auto Hide
	4. Pagination
	5. Disable Mobile Slider
	6. Animation Slider
	7. Alignment
	8. Thumbnail Dots
	9. Slider Shadow
	10. Image Gallery
	11. Compatibility With Elementor
	12. Miscellaneous
---------------------------------------------- */

// 1. Base Style
.slider-relative {
	position: relative;
	> .slider-container {
		width: 100%;
	}
}
.slider-container {
	overflow: hidden;
	position: static;
}
.slider-container-initialized .slider-wrapper {
	overflow: visible;
}
.slider-container-android .slider-slide,
.slider-wrapper {
	transform:translate3d(0px,0,0);
}
.slider-wrapper {
	display: flex;
	flex-wrap: nowrap;
	overflow: hidden;
	position:relative;
	width: 100%;
	z-index: 1;
	transition-property:transform;

	&.row {
		width: calc(100% + 2 * var(--alpha-gap));
	}
}
.slider-slide {
	flex-shrink: 0;
	width: 100%;
	position: relative;
	transition-property: transform;
}
.slider-container-fade {
	&.slider-container-free-mode {
		.slider-slide {
			transition-timing-function: ease-out;
		}
	}
	.slider-slide {
		pointer-events: none;
		transition-property: opacity;
		.slider-slide {
			pointer-events: none;
		}
	}
	.slider-slide-active {
		pointer-events: auto;
	}
}
.slider-slide-invisible-blank {
	visibility: hidden;
}
.grid-item .slider-relative .slider-container {
	height: 100%;
}

// 2. Auto Height
.slider-container-autoheight {
	&, .slider-slide {
		height: auto;
	}

	.slider-wrapper {
		align-items: flex-start;
		transition-property: transform, height;
	}
}

// 3. Navigation

// 3-1. Nav Base
.slider-button {
	--alpha-nav-width: 1em;
	--alpha-nav-height: 2em;
	position: absolute;
	z-index: 1;
	top: 50%;
	transform: translate(if-ltr(-50%, 50%), -50%);
	border: none;
	padding: 0;
	width: var(--alpha-nav-width);
	height: var(--alpha-nav-height);
	background: none;
	border-radius: 50%;
	font-size: 2.4rem;
	line-height: 0;
	cursor: pointer;
	color: $body-color;
	transition: .3s;

	&::before {
		content: if-ltr('\e99d', '\e99f');
		// display: inline-block;
		font-family: $theme-font;
		margin: .3em 0 0 0;
	}
	&.disabled {
		opacity: .35;
		cursor: auto;
		pointer-events: none;
	}

	&:not(.disabled):hover {
		color: var(--alpha-primary-color);
	}
}
.slider-button-prev {
	#{$left}: calc(var(--alpha-nav-width) / 2 + .2em + var(--alpha-slider-nav-space));
}
.slider-button-next {
	transform: translate(if-ltr(50%, -50%), -50%);
	#{$right}: calc(var(--alpha-nav-width) / 2 + .2em + var(--alpha-slider-nav-space));
	&::before {
		content: if-ltr('\e99f', '\e99d');
		margin: .3em -.1em 0 0;
	}
}

.swiper-button-lock {
	display: none;
}

// 3-2. Nav Type
.slider-nav-circle {
	.slider-button {
		--alpha-nav-width: 2em;
		border: 2px solid var(--alpha-change-color-light-3);
	}
	&.slider-nav-bottom .slider-button-prev,
	&.slider-nav-top .slider-button-prev {
		#{$right}: calc(var(--alpha-nav-width) / 2 + .2em);
	}
}
.slider-nav-full {
	.slider-button {
		margin: 0;
		top: var(--alpha-gap);
		bottom: var(--alpha-gap);
		width: 1.55em;
		height: auto;
		transform: none;
		border: 0;
		color: var(--alpha-change-color-dark-1);
		border-radius: 0;
		background-color: rgba( 255, 255, 255, .8 );

		&:not(.disabled):hover {
			color: var(--alpha-primary-color);
			background-color: rgba( 255, 255, 255, .8 );
		}

		transition: .4s;

		&.disabled {
			visibility: hidden;
			opacity: 0;
		}
	}

	.slider-button-prev {
		#{$left}: var(--alpha-gap);
		box-shadow: if-ltr(4px 0px 7px -5px rgba(0,0,0,0.2), -4px 0px 7px -5px rgba(0,0,0,0.2));
	}
	.slider-button-next {
		#{$right}: var(--alpha-gap);
		box-shadow: if-ltr(-4px 0px 7px -5px rgba(0,0,0,0.2), 4px 0px 7px -5px rgba(0,0,0,0.2));
	}
	&:hover {
		.slider-button-prev {
			#{$left}: var(--alpha-gap);
		}
		.slider-button-next {
			#{$right}: var(--alpha-gap);
		} 
	}
}

// 3-3. Nav Pos
.slider-button {
	.slider-nav-top & {
		position: absolute;
		top: calc( -1/2 * var(--alpha-nav-height) );
		#{$left}: auto;
		#{$right}: calc(var(--alpha-nav-width) / 2);
		font-size: 1.6rem;
	}
	.slider-nav-bottom & {
		position: absolute;
		bottom: calc( -1/2 * var(--alpha-nav-height) );
		top: auto;
		#{$left}: auto;
		#{$right}: calc(var(--alpha-nav-width) / 2);
	}
}
.slider-nav-outer {
	--alpha-nav-outer-pos: -1.5em;
	@media (min-width: 1360px) {
		.slider-button-next {
			#{$right}: var(--alpha-nav-outer-pos);
		}
		.slider-button-prev {
			#{$left}: var(--alpha-nav-outer-pos);
		}
	}
}

// 3-4. Auto Hide
.slider-nav-fade {
	.slider-button {
		opacity: 0;
		transition: opacity .3s, margin .3s, color .3s;
	}
	.slider-button-prev {
		margin-#{$left}: -2em;
	}
	.slider-button-next {
		margin-#{$right}: -2em;
	}
	&.slider-nav-outer {
		.slider-button-prev {
			margin-#{$left}: 2em;
		}
		.slider-button-next {
			margin-#{$right}: 2em;
		}
	}
	&.slider-nav-full .slider-button-prev {
		margin-#{$left}: 0;
	}
	&.slider-nav-full .slider-button-next {
		margin-#{$right}: 0;
	}
	&:hover {
		.slider-button {
			opacity: 1;
		}
		.slider-button.disabled{
			opacity: .35;
		}
		.slider-button-prev {
			margin-#{$left}: 0;
		}
		.slider-button-next {
			margin-#{$right}: 0;
		}
	}
}

// 4. Pagination  
/* Dots */
.slider-dots-default {
	.slider-pagination-bullet {
		&:not(.active):hover {
			opacity: .8;
		}
	}
}
.slider-dots-white {
	.slider-pagination-bullet {
		background: var(--alpha-white-color);;
		color: var(--alpha-white-color);;   
		opacity: .8;
		&:not(.active):hover {
			opacity: 1;
		}
		&.active {
			color: var(--alpha-white-color);;   
			opacity: 1;
		}
	}
}

.slider-dots-grey {
	.slider-pagination-bullet {
		background: #efefef;
		color: #efefef;
		&:not(.active):hover {
			background: var(--alpha-grey-color);
			color: var(--alpha-grey-color);
		}
		&.active {
			color: var(--alpha-grey-color);
		}
	}
}

.slider-dots-dark {
	.slider-pagination-bullet {
		background: #a1a1a1;
		color: #a1a1a1;
		&:not(.active):hover {
			background: var(--alpha-dark-color);
			color: var(--alpha-dark-color);
		}
		&.active {
			color: var(--alpha-dark-color);
		}
	}
}
.slider-pagination {
	position: absolute;
	left: 50%;
	transition: .3s opacity;
	transform: translate3d(-50%,0,0);
	bottom: -1.5rem;
	line-height: 0;
	z-index: 10;

	.slider-dots-inner & {
		bottom: 2rem;
	}
	.slider-dots-outer & {
		bottom: -4rem;
	}
	&.swiper-pagination-hidden {
		opacity: 0;
	}
}

.slider-pagination-bullet {
	width: 10px;
	height: 10px;
	display: inline-block;
	border-radius: 9rem;
	color: var(--alpha-primary-color);
	background: var(--alpha-primary-color);
	border: 2px solid;
	opacity: .4;
	transition: .3s;
	.swiper-pagination-clickable & {
		cursor: pointer;
	}

	&.active {
		color: var(--alpha-primary-color);
		opacity: 1;
		background: transparent;
	}
	&:first-child:last-child {
		display: none;
	}
}

// 5. Disable Mobile Slider
@include mq(xl, max) {
	.touchable .alpha-disable-mobile-slider *:not(.slider-container) > .slider-wrapper {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		&::-webkit-scrollbar {
			height: 7px;
			width: 4px;
		}
		&::-webkit-scrollbar-thumb {
			margin-#{$right}: 2px;
			background: rgba(#000, 0);
			border-radius: 5px;
			cursor: pointer;
			transition: background .3s;
		}

		&:hover::-webkit-scrollbar-thumb {
			background: rgba(#000, 0.25);
		}
	}
}

// 6. Animation Slider
.slider-wrapper {
	.slide-animate {
		transform:  translate3d(0, 0, 0) scale(1);
		visibility: hidden;
		opacity: 0;
		&.show-content,
		&.animated,
		&.appear-animation-visible {
			visibility: visible;
			opacity: 1;
		}
	}
}


// 7. Alignment
.slider-full-height {
	.slider-slide {
		height: auto;
	}
}
.slider-same-height {
	> .slider-wrapper {
		display: flex;
		> .slider-slide {
			height: auto;
			> :first-child {
				height: 100%;
			}
		}
	}
}
.slider-top > .slider-wrapper {
	align-items: flex-start;
}
.slider-middle > .slider-wrapper {
	align-items: center;
}
.slider-bottom > .slider-wrapper {
	align-items: flex-end;
}

// 8. Thumbnail Dots
.slider-thumb-dots {
	flex: 0 0 100%;
	text-align: center;
	margin: -4rem auto 1rem;

	.slider-pagination-bullet {
		position: relative;
		z-index: 1;
		border-radius: 50%;
		background: transparent;
		border: none;
		opacity: 1;
		
		padding: .3rem;
		width: 8rem;
		height: 8rem;
		vertical-align: middle;

		span {
			border-radius: 50%;
			width: 100%;
			height: 100%;
			display: block;
			background-image: url(../images/placeholders/thumb-placeholder.jpg);
		}

		&:hover {
			cursor: pointer;
		}
	}

	.slider-pagination-bullet {
		margin-#{$right}: 2.5rem;
	}

	button.slider-pagination-bullet:last-child {
		margin-#{$right}: 0;
	}

	img {
		border-radius: 50%;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	&.dots-bordered {
		.slider-pagination-bullet {
			border: 2px solid var(--alpha-change-color-light-3);
			transition: border .3s;

			&:hover,
			&.active {
				border-color: var(--alpha-primary-color);
			}
		}
	}

	.slider-dots-inner ~ & {
		margin-top: -10rem;
	}
	.slider-dots-outer ~ & {
		margin-top: 2rem;
	}	

	&.disabled {
		display: none;
	}
}

// 9. Slider Shadow
div.slider-container.slider-shadow.slider-container-horizontal,
div.slider-container.slider-shadow.slider-container-vertical {
	margin: -20px;
	padding: 20px;
	width: calc(100% + 40px) !important;
	height: auto;
}
@include mq(sm, max) {
	.slider-shadow .slider-wrapper {
		margin: -15px;
		padding: 15px;
	}
}

// 10. Image Gallery
.slider-image-gallery {
	figure {
		display: flex;
		align-items: center;
		justify-content: center;
	} 
	img {
		width: 100%;
		object-fit: cover;
	}
}
.slider-container .slider-image-org img {
	width: auto;
}

// 11. Compatibility With Elementor
.elementor-column-gap-default {
	--alpha-slider-nav-space: var(--alpha-gap);
}
.elementor-column-gap-no {
	--alpha-slider-nav-space: 0px;
}
.elementor-column-gap-narrow {
	--alpha-slider-nav-space: 5px;
}
.elementor-column-gap-extended {
	--alpha-slider-nav-space: 15px;
}
.elementor-column-gap-wide {
	--alpha-slider-nav-space: 20px;
}
.elementor-column-gap-wider {
	--alpha-slider-nav-space: 30px;
}
.elementor .slider-wrapper {
	flex-wrap: nowrap;
}
div.slider-container.slider-shadow.elementor-container {
	max-width: calc(100% + 60px);
}
.elementor-section .row {
	width: calc( 100% + 2 * var(--alpha-gap) );
	margin-left: calc( -1 * var(--alpha-gap) );
	margin-right: calc( -1 * var(--alpha-gap) );
}
.elementor-container .elementor-column > .elementor-column-wrap > .slider-wrapper .elementor-element-populated {
	padding: 0;
}
.elementor-editor-active .elementor.elementor-edit-area-active .slider-slide .elementor-element.elementor-section {
	margin-top: 0;
}
.elementor-column.grid-item .elementor-row.slider-wrapper {
	&,
	>.slider-slide {
		height: 100%;
	}
}

// 12. Miscellaneous
.slider-scrollbar-drag {
	position: relative;
	width: 100%;
	top: 0;
	left: 0;
	height: 4px;
	border-radius: 1rem;
	background: rgba(0, 0, 0, .2);
}
.slider-container-vertical {
	.slider-wrapper {
		flex-direction: column;
	}
}
.slider-container-horizontal {
	> .slider-pagination-bullets {
		.slider-pagination-bullet {
			margin: 0 .5rem;
		}
	}
}

@media (min-width: 992px) {
	.hide-nav-desktop .slider-button,
	.hide-dots-desktop .slider-pagination {
		display: none !important;
	}
}
@media (max-width: 991px) and (min-width: 768px) {
	.hide-nav-tablet .slider-button,
	.hide-dots-tablet .slider-pagination {
		display: none !important;
	}
}
@media (max-width: 767px) {
	.hide-nav-mobile .slider-button,
	.hide-dots-mobile .slider-pagination {
		display: none !important;
	}
}