/**
 * Atas Medya Banner & Slider - front-end styles.
 *
 * Pure CSS scroll-snap slider. No framework, no external font, no image asset:
 * arrow icons are inline SVG data URIs. Typography is inherited from the
 * active theme so the slider always matches the rest of the site.
 *
 * @package Atas_Medya_Banner
 * @since   1.0.0
 */

/* -----------------------------------------------------------------------------
 * Wrapper & design tokens
 * -------------------------------------------------------------------------- */

.atas-banner-slider-wrapper {
	/* Tema fontu devralınır; gerekirse tek satırla ezilebilir. */
	--atas-font: inherit;

	/* Masaüstü görsel oranı: 1920 x 800 px (12:5). */
	--atas-ratio: 1920 / 800;

	/* Çok geniş ekranlarda slaytın aşırı uzamasını engeller. */
	--atas-max-height: 860px;

	/* aspect-ratio desteklemeyen tarayıcılar için yedek yükseklik. */
	--atas-slide-height: clamp( 320px, 41.6vw, 860px );

	--atas-content-width: 1200px;
	--atas-gutter: clamp( 20px, 5vw, 56px );
	--atas-arrow-size: 46px;
	--atas-speed: 5000ms;
	--atas-ease: cubic-bezier( 0.22, 0.68, 0.28, 1 );
	--atas-transition: 320ms var( --atas-ease );

	position: relative;
	width: 100%;
	margin: 0;
	overflow: hidden;
	font-family: var( --atas-font );
	-webkit-font-smoothing: antialiased;
	background-color: #0b0b0d;
}

/* -----------------------------------------------------------------------------
 * Track - scroll snap, scrollbar fully hidden
 * -------------------------------------------------------------------------- */

.atas-banner-slider-track {
	display: flex;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none; /* Firefox */
	-ms-overflow-style: none; /* IE & legacy Edge */
	-webkit-overflow-scrolling: touch;
}

.atas-banner-slider-track::-webkit-scrollbar {
	display: none; /* Chrome, Safari, Edge */
	width: 0;
	height: 0;
}

/* -----------------------------------------------------------------------------
 * Slide
 * -------------------------------------------------------------------------- */

.atas-banner-slide {
	position: relative;
	display: flex;
	flex: 0 0 100%;
	align-items: center;
	width: 100%;
	min-height: var( --atas-slide-height );
	scroll-snap-align: center;
	scroll-snap-stop: always;
	overflow: hidden;
}

/* Görsel oranı birebir korunur: 1920x800 masaüstü, 1080x1350 mobil. */
@supports ( aspect-ratio: 1 / 1 ) {
	.atas-banner-slide {
		min-height: 0;
		aspect-ratio: var( --atas-ratio );
		max-height: var( --atas-max-height );
	}
}

.atas-banner-picture {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	overflow: hidden;
}

.atas-banner-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	will-change: transform;
}

/* Aktif slaytta çok hafif yakınlaşma - görsele hareket katar, kırpma yapmaz. */
.atas-banner-slider-wrapper.is-enhanced .atas-banner-slide.is-active .atas-banner-image {
	animation: atas-banner-zoom 14s var( --atas-ease ) forwards;
}

@keyframes atas-banner-zoom {
	from {
		transform: scale( 1 );
	}

	to {
		transform: scale( 1.055 );
	}
}

/* -----------------------------------------------------------------------------
 * Readability overlay - hizalamaya göre yön değiştirir
 * -------------------------------------------------------------------------- */

.atas-banner-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background: linear-gradient(
		to top,
		rgba( 0, 0, 0, 0.55 ) 0%,
		rgba( 0, 0, 0, 0.24 ) 42%,
		rgba( 0, 0, 0, 0.04 ) 72%,
		rgba( 0, 0, 0, 0 ) 100%
	);
}

@media screen and ( min-width: 769px ) {
	/* Metin solda: karartma da soldan gelir, görselin sağı temiz kalır. */
	.atas-banner-slide.atas-align-left-center::after {
		background:
			linear-gradient(
				to right,
				rgba( 0, 0, 0, 0.68 ) 0%,
				rgba( 0, 0, 0, 0.42 ) 30%,
				rgba( 0, 0, 0, 0.1 ) 58%,
				rgba( 0, 0, 0, 0 ) 78%
			),
			linear-gradient( to top, rgba( 0, 0, 0, 0.28 ) 0%, rgba( 0, 0, 0, 0 ) 45% );
	}

	.atas-banner-slide.atas-align-right-center::after {
		background:
			linear-gradient(
				to left,
				rgba( 0, 0, 0, 0.68 ) 0%,
				rgba( 0, 0, 0, 0.42 ) 30%,
				rgba( 0, 0, 0, 0.1 ) 58%,
				rgba( 0, 0, 0, 0 ) 78%
			),
			linear-gradient( to top, rgba( 0, 0, 0, 0.28 ) 0%, rgba( 0, 0, 0, 0 ) 45% );
	}

	.atas-banner-slide.atas-align-center-center::after {
		background:
			radial-gradient( ellipse at center, rgba( 0, 0, 0, 0.42 ) 0%, rgba( 0, 0, 0, 0.12 ) 62%, rgba( 0, 0, 0, 0 ) 100% ),
			linear-gradient( to top, rgba( 0, 0, 0, 0.42 ) 0%, rgba( 0, 0, 0, 0 ) 52% );
	}
}

/* -----------------------------------------------------------------------------
 * Content overlay & alignment
 * -------------------------------------------------------------------------- */

.atas-banner-content-overlay {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp( 12px, 1.6vw, 20px );
	width: 100%;
	max-width: var( --atas-content-width );
	margin: 0 auto;
	padding: 48px var( --atas-gutter );
	text-align: left;
}

.atas-align-center-center .atas-banner-content-overlay {
	align-items: center;
	text-align: center;
}

.atas-align-right-center .atas-banner-content-overlay {
	align-items: flex-end;
	text-align: right;
}

/* Masaüstünde oklar içeriğin üzerine binmesin: yatay boşluk en az ok alanı kadar. */
@media screen and ( min-width: 769px ) {
	.atas-banner-content-overlay {
		padding-right: max( var( --atas-gutter ), calc( var( --atas-arrow-size ) + 2.2vw + 28px ) );
		padding-left: max( var( --atas-gutter ), calc( var( --atas-arrow-size ) + 2.2vw + 28px ) );
	}
}

/* Aktif slaytta içerik sırayla yumuşakça belirir. */
.atas-banner-slider-wrapper.is-enhanced .atas-banner-content-overlay > * {
	opacity: 1;
	transform: none;
	transition: none;
}

.atas-banner-slider-wrapper.is-enhanced .atas-banner-slide.is-active .atas-banner-content-overlay > * {
	opacity: 1;
	transform: none;
}

.atas-banner-slider-wrapper.is-enhanced .atas-banner-slide.is-active .atas-banner-content-overlay > *:nth-child( 1 ) {
	transition-delay: 120ms;
}

.atas-banner-slider-wrapper.is-enhanced .atas-banner-slide.is-active .atas-banner-content-overlay > *:nth-child( 2 ) {
	transition-delay: 230ms;
}

.atas-banner-slider-wrapper.is-enhanced .atas-banner-slide.is-active .atas-banner-content-overlay > *:nth-child( 3 ) {
	transition-delay: 340ms;
}

/* -----------------------------------------------------------------------------
 * Typography - tema fontu devralınır
 * -------------------------------------------------------------------------- */

.atas-banner-slider-wrapper .atas-banner-subtitle {
	display: block;
	margin: 0;
	font-family: inherit;
	font-size: clamp( 11px, 0.95vw, 14px );
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1.4;
	color: rgba( 255, 255, 255, 0.9 );
	background: transparent;
	text-shadow: 0 1px 2px rgba( 0, 0, 0, 0.38 );
}

/* Slogan altında ince aksan çizgisi. */
.atas-banner-slider-wrapper .atas-banner-subtitle::after {
	content: "";
	display: block;
	width: 38px;
	height: 2px;
	margin-top: 12px;
	background-color: currentColor;
	opacity: 0.55;
}

.atas-align-center-center .atas-banner-subtitle::after {
	margin-right: auto;
	margin-left: auto;
}

.atas-align-right-center .atas-banner-subtitle::after {
	margin-left: auto;
}

.atas-banner-slider-wrapper .atas-banner-title {
	margin: 0;
	max-width: 11em;
	font-family: inherit;
	font-size: clamp( 28px, 3.9vw, 56px );
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: #ffffff;
	background: transparent;
	text-shadow: 0 1px 3px rgba( 0, 0, 0, 0.4 );
	text-wrap: auto;
}

.atas-align-center-center .atas-banner-title {
	max-width: 14em;
}

/* -----------------------------------------------------------------------------
 * Call to action
 * -------------------------------------------------------------------------- */

.atas-banner-slider-wrapper .atas-banner-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 4px;
	padding: 15px 30px;
	font-family: inherit;
	font-size: clamp( 14px, 1.05vw, 16px );
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1;
	text-decoration: none;
	color: #111113;
	background-color: #ffffff;
	border: 0;
	border-radius: 8px;
	box-shadow: 0 8px 22px rgba( 0, 0, 0, 0.22 );
	transition: transform var( --atas-transition ), box-shadow var( --atas-transition ), background-color var( --atas-transition );
}

/* Butonun sonundaki ince ok işareti. */
.atas-banner-slider-wrapper .atas-banner-btn::after {
	content: "";
	width: 6px;
	height: 6px;
	margin-left: 12px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate( 45deg );
	transition: transform var( --atas-transition );
}

.atas-banner-slider-wrapper .atas-banner-btn:hover,
.atas-banner-slider-wrapper .atas-banner-btn:focus {
	color: #111113;
	background-color: #ffffff;
	transform: translateY( -2px );
	box-shadow: 0 14px 32px rgba( 0, 0, 0, 0.3 );
}

.atas-banner-slider-wrapper .atas-banner-btn:hover::after {
	transform: rotate( 45deg ) translate( 2px, -2px );
}

.atas-banner-slider-wrapper .atas-banner-btn:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

.atas-banner-slider-wrapper .atas-banner-btn:active {
	transform: translateY( 0 );
	box-shadow: 0 4px 12px rgba( 0, 0, 0, 0.2 );
}

/* -----------------------------------------------------------------------------
 * Navigation arrows
 * -------------------------------------------------------------------------- */

.atas-banner-slider-wrapper .atas-banner-arrow {
	position: absolute;
	top: 50%;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var( --atas-arrow-size );
	height: var( --atas-arrow-size );
	margin: 0;
	padding: 0;
	transform: translateY( -50% );
	background-color: rgba( 20, 20, 22, 0.28 );
	background-repeat: no-repeat;
	background-position: center;
	background-size: calc( var( --atas-arrow-size ) * 0.23 ) auto;
	border: 1px solid rgba( 255, 255, 255, 0.22 );
	border-radius: 50%;
	box-shadow: none;
	cursor: pointer;
	opacity: 0;
	-webkit-backdrop-filter: blur( 10px );
	backdrop-filter: blur( 10px );
	transition: opacity var( --atas-transition ), background-color var( --atas-transition ), border-color var( --atas-transition ), transform var( --atas-transition );
}

.atas-banner-arrow--prev {
	left: clamp( 12px, 2.2vw, 34px );
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='22' viewBox='0 0 13 22'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M11.5 1 2 11l9.5 10'/%3E%3C/svg%3E" );
}

.atas-banner-arrow--next {
	right: clamp( 12px, 2.2vw, 34px );
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='22' viewBox='0 0 13 22'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1.5 1 11 11l-9.5 10'/%3E%3C/svg%3E" );
}

.atas-banner-slider-wrapper:hover .atas-banner-arrow,
.atas-banner-slider-wrapper:focus-within .atas-banner-arrow {
	opacity: 1;
}

.atas-banner-slider-wrapper .atas-banner-arrow:hover {
	background-color: rgba( 20, 20, 22, 0.55 );
	border-color: rgba( 255, 255, 255, 0.45 );
}

.atas-banner-slider-wrapper .atas-banner-arrow--prev:hover {
	transform: translateY( -50% ) translateX( -2px );
}

.atas-banner-slider-wrapper .atas-banner-arrow--next:hover {
	transform: translateY( -50% ) translateX( 2px );
}

.atas-banner-slider-wrapper .atas-banner-arrow:focus-visible {
	opacity: 1;
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

/* Dokunmatik cihazlarda hover olmadığı için oklar kalıcı olarak görünür. */
@media ( hover: none ) {
	.atas-banner-slider-wrapper .atas-banner-arrow {
		opacity: 1;
	}
}

/* -----------------------------------------------------------------------------
 * Pagination dots
 * -------------------------------------------------------------------------- */

.atas-banner-dots {
	position: absolute;
	right: 0;
	bottom: clamp( 20px, 2.4vw, 34px );
	left: 0;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: 0;
	padding: 0;
	pointer-events: none;
}

.atas-banner-slider-wrapper .atas-banner-dot {
	width: 8px;
	height: 8px;
	margin: 0;
	padding: 0;
	background-color: rgba( 255, 255, 255, 0.45 );
	border: 0;
	border-radius: 999px;
	box-shadow: 0 1px 6px rgba( 0, 0, 0, 0.25 );
	cursor: pointer;
	pointer-events: auto;
	transition: width var( --atas-transition ), background-color var( --atas-transition );
}

.atas-banner-slider-wrapper .atas-banner-dot:hover {
	background-color: rgba( 255, 255, 255, 0.78 );
}

.atas-banner-slider-wrapper .atas-banner-dot.is-active {
	width: 28px;
	background-color: #ffffff;
}

.atas-banner-slider-wrapper .atas-banner-dot:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

/* -----------------------------------------------------------------------------
 * Autoplay progress bar
 * -------------------------------------------------------------------------- */

.atas-banner-progress {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 4;
	height: 3px;
	background-color: rgba( 255, 255, 255, 0.16 );
	pointer-events: none;
}

.atas-banner-progress span {
	display: block;
	width: 0;
	height: 100%;
	background-color: rgba( 255, 255, 255, 0.9 );
}

.atas-banner-slider-wrapper.is-playing .atas-banner-progress span {
	animation: atas-banner-progress var( --atas-speed ) linear forwards;
}

.atas-banner-slider-wrapper.is-paused .atas-banner-progress span {
	animation-play-state: paused;
}

@keyframes atas-banner-progress {
	from {
		width: 0;
	}

	to {
		width: 100%;
	}
}

/* -----------------------------------------------------------------------------
 * Mobile
 * -------------------------------------------------------------------------- */

@media screen and ( max-width: 768px ) {
	.atas-banner-slider-wrapper {
		/* Mobil görsel oranı: 1080 x 1350 px (4:5). */
		--atas-ratio: 1080 / 1350;
		--atas-max-height: 760px;
		--atas-slide-height: min( 125vw, 760px );
	}

	.atas-banner-slide {
		align-items: flex-end;
	}

	.atas-banner-slide::after {
		background: linear-gradient(
			to top,
			rgba( 0, 0, 0, 0.72 ) 0%,
			rgba( 0, 0, 0, 0.34 ) 46%,
			rgba( 0, 0, 0, 0 ) 84%
		);
	}

	.atas-banner-content-overlay,
	.atas-align-left-center .atas-banner-content-overlay,
	.atas-align-right-center .atas-banner-content-overlay {
		align-items: center;
		gap: 14px;
		padding: 32px 22px 80px;
		text-align: center;
	}

	.atas-banner-slider-wrapper .atas-banner-subtitle::after {
		margin-right: auto;
		margin-left: auto;
	}

	.atas-banner-slider-wrapper .atas-banner-title {
		max-width: 12em;
	}

	.atas-banner-slider-wrapper .atas-banner-btn {
		padding: 14px 26px;
	}

	/* Arrows are hidden; swiping is the natural interaction on touch devices. */
	.atas-banner-slider-wrapper .atas-banner-arrow {
		display: none;
	}

	.atas-banner-dots {
		bottom: 28px;
	}

	/* Banner'a özel mobil hizalama; genel ayarı ezmek için daha yüksek özgüllük. */
	.atas-banner-slider-wrapper .atas-banner-slide.atas-mobile-top {
		align-items: flex-start;
	}

	.atas-banner-slider-wrapper .atas-banner-slide.atas-mobile-top .atas-banner-content-overlay {
		padding: 72px 22px 32px;
	}

	.atas-banner-slider-wrapper .atas-banner-slide.atas-mobile-center {
		align-items: center;
	}

	.atas-banner-slider-wrapper .atas-banner-slide.atas-mobile-center .atas-banner-content-overlay {
		padding: 48px 22px 56px;
	}

	.atas-banner-slider-wrapper .atas-banner-slide.atas-mobile-bottom {
		align-items: flex-end;
	}

	.atas-banner-slider-wrapper .atas-banner-slide.atas-mobile-bottom .atas-banner-content-overlay {
		padding: 32px 22px 80px;
	}
}

/* -----------------------------------------------------------------------------
 * Accessibility
 * -------------------------------------------------------------------------- */

@media ( prefers-reduced-motion: reduce ) {
	.atas-banner-slider-track {
		scroll-behavior: auto;
	}

	.atas-banner-slider-wrapper .atas-banner-btn,
	.atas-banner-slider-wrapper .atas-banner-arrow,
	.atas-banner-slider-wrapper .atas-banner-dot,
	.atas-banner-slider-wrapper.is-enhanced .atas-banner-content-overlay > * {
		transition: none;
	}

	.atas-banner-slider-wrapper .atas-banner-btn:hover {
		transform: none;
	}

	.atas-banner-slider-wrapper.is-enhanced .atas-banner-content-overlay > * {
		opacity: 1;
		transform: none;
	}

	.atas-banner-slider-wrapper.is-enhanced .atas-banner-slide.is-active .atas-banner-image,
	.atas-banner-slider-wrapper.is-playing .atas-banner-progress span {
		animation: none;
	}

	.atas-banner-progress {
		display: none;
	}
}
