/**
 * PowerX Promo Banners Widget Stylesheet
 * 
 * Commercial Grade, Responsive & Mobile First.
 * Supports Swiper Carousel and Responsive Grid layouts with HTML5 Picture tag.
 *
 * @package PowerX_Core
 * @version 0.0.1
 */

.px-promo-banners-wrap {
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

/* -------------------------------------------------------------------------
 * SECTION HEADER (Pre-title, Headline, Subtitle, Arrows, Counter)
 * ------------------------------------------------------------------------- */
.px-promo-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: var(--px-promo-header-mb, 24px);
	gap: 20px;
}

.px-promo-header-left {
	flex: 1;
}

.px-promo-pretitle {
	font-size: 13px;
	font-weight: 800;
	color: var(--powerx-danger-500, #ef4444);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: var(--px-promo-pretitle-mb, 6px);
}

.px-promo-main-title {
	font-size: 26px;
	font-weight: 800;
	color: var(--powerx-neutral-900, #0f172a);
	line-height: 1.25;
	margin: var(--px-promo-main-title-margin, 0 0 6px 0);
	letter-spacing: -0.02em;
}

.px-promo-subtitle {
	font-size: 14px;
	color: var(--powerx-neutral-600, #64748b);
	line-height: 1.5;
	margin: 0;
}

.px-promo-header-right {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.px-promo-counter {
	font-size: 13px;
	font-weight: 700;
	color: var(--powerx-neutral-900, #0f172a);
	background: var(--powerx-neutral-100, #f1f5f9);
	padding: 4px 10px;
	border-radius: 9999px;
}
.px-promo-counter-current {
	color: var(--powerx-danger-500, #ef4444);
}

.px-promo-nav-buttons {
	display: flex;
	gap: 6px;
}

.px-promo-arrow {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--powerx-neutral-150, #e2e8f0);
	background: var(--powerx-neutral-0, #ffffff);
	color: var(--powerx-neutral-800, #334155);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s ease;
	outline: none;
	padding: 0;
}

.px-promo-arrow:hover {
	background: var(--powerx-neutral-900, #0f172a);
	color: var(--powerx-neutral-0, #ffffff);
	border-color: var(--powerx-neutral-900, #0f172a);
}

.px-promo-arrow.swiper-button-disabled {
	opacity: 0.35;
	cursor: not-allowed;
	pointer-events: none;
}

.px-promo-arrow svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

/* -------------------------------------------------------------------------
 * GRID LAYOUT
 * ------------------------------------------------------------------------- */
.px-promo-grid {
	display: grid;
	grid-template-columns: repeat(var(--px-promo-cols-desktop, 5), 1fr);
	gap: var(--px-promo-gap, 20px);
}

@media (max-width: 1024px) {
	.px-promo-grid {
		grid-template-columns: repeat(var(--px-promo-cols-tablet, 3), 1fr);
	}
}

@media (max-width: 767px) {
	.px-promo-grid {
		grid-template-columns: repeat(var(--px-promo-cols-mobile, 1), 1fr);
	}
}

/* -------------------------------------------------------------------------
 * SWIPER CAROUSEL LAYOUT
 * ------------------------------------------------------------------------- */
.px-promo-carousel-container {
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.px-promo-swiper {
	width: 100%;
	position: relative;
	overflow: hidden;
}

.px-promo-swiper .swiper-wrapper {
	align-items: stretch;
}

.px-promo-swiper .swiper-slide {
	height: auto;
	box-sizing: border-box;
	display: flex;
}

/* Side Navigation Arrows (Default) */
.px-promo-arrow-side {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: var(--powerx-z-active, 25);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--powerx-neutral-0, #ffffff);
	border-width: var(--px-promo-arrow-border-width, 1px);
	border-style: var(--px-promo-arrow-border-style, solid);
	border-color: var(--px-promo-arrow-border, #e2e8f0);
	color: var(--powerx-neutral-900, #0f172a);
	box-shadow: 0 4px 16px var(--powerx-overlay-dark, rgba(0, 0, 0, 0.15));
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
	outline: none;
	padding: 0;
}

.px-promo-arrow-side.px-promo-prev {
	left: -22px;
}

.px-promo-arrow-side.px-promo-next {
	right: -22px;
}

.px-promo-arrow-side:hover {
	background: var(--powerx-neutral-900, #0f172a);
	color: var(--powerx-neutral-0, #ffffff);
	border-color: var(--powerx-neutral-900, #0f172a);
	transform: translateY(-50%) scale(1.08);
	box-shadow: 0 8px 24px var(--powerx-overlay-navy, rgba(15, 23, 42, 0.25));
}

.px-promo-arrow-side.swiper-button-disabled {
	opacity: 0.25;
	cursor: not-allowed;
	pointer-events: none;
	transform: translateY(-50%);
}

.px-promo-arrow-side svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

@media (max-width: 767px) {
	.px-promo-arrow-side.px-promo-prev {
		left: 6px;
	}
	.px-promo-arrow-side.px-promo-next {
		right: 6px;
	}
	.px-promo-arrow-side {
		width: 36px;
		height: 36px;
	}
	.px-promo-arrow-side svg {
		width: 14px;
		height: 14px;
	}
}

/* -------------------------------------------------------------------------
 * CARD STYLES
 * ------------------------------------------------------------------------- */
.px-promo-banner-card {
	position: relative;
	width: 100%;
	aspect-ratio: var(--px-promo-aspect, 3 / 4);
	background-color: var(--powerx-color-token, #10141d);
	border-radius: var(--px-promo-radius, 22px);
	overflow: hidden;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	box-shadow: 0 4px 20px var(--powerx-overlay-dark, rgba(0, 0, 0, 0.08));
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	isolation: isolate;
}

.px-promo-banner-card:hover {
	box-shadow: 0 12px 32px var(--powerx-overlay-dark, rgba(0, 0, 0, 0.18));
}

/* Media Picture */
.px-promo-banner-picture {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: var(--powerx-z-content, 1);
}

.px-promo-banner-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.px-promo-banner-card:hover .px-promo-banner-img {
	transform: scale(1.04);
}

/* -------------------------------------------------------------------------
 * DEFAULT / NATURAL UNCROPPED ASPECT RATIO MODE
 * ------------------------------------------------------------------------- */
.px-promo-banners-wrap.px-aspect-default .px-promo-banner-card {
	aspect-ratio: auto;
	height: auto;
	min-height: auto;
}

.px-promo-banners-wrap.px-aspect-default .px-promo-banner-picture {
	position: relative;
	inset: auto;
	width: 100%;
	height: auto;
	display: block;
}

.px-promo-banners-wrap.px-aspect-default .px-promo-banner-img {
	width: 100%;
	height: auto;
	max-width: 100%;
	object-fit: contain;
	display: block;
}

.px-promo-banners-wrap.px-aspect-default .px-promo-banner-body {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-height: 100%;
	z-index: var(--powerx-z-card, 4);
}

/* Overlay Layer */
.px-promo-banner-overlay {
	position: absolute;
	inset: 0;
	z-index: var(--powerx-z-card, 2);
	background: linear-gradient(
		180deg,
		transparent var(--px-promo-overlay-start, 50%),
		var(--px-promo-overlay-color, rgba(10, 14, 23, 0.75)) 100%
	);
	opacity: var(--px-promo-overlay-opacity, 0.45);
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.px-promo-banner-card:hover .px-promo-banner-overlay {
	opacity: var(--px-promo-overlay-hover-opacity, 0.6);
}

.px-promo-banners-wrap.px-overlay-flat .px-promo-banner-overlay {
	background: var(--px-promo-overlay-color, rgba(10, 14, 23, 0.75));
}

.px-promo-banners-wrap.px-no-overlay .px-promo-banner-overlay {
	display: none !important;
}

/* Whole Card Link */
.px-promo-card-link-overlay {
	position: absolute;
	inset: 0;
	z-index: var(--powerx-z-card, 3);
	text-indent: -9999px;
	outline: none;
}

/* Card Content Area */
.px-promo-banner-body {
	position: relative;
	z-index: var(--powerx-z-card, 4);
	padding: var(--px-promo-body-pad, 24px 20px);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	width: 100%;
	box-sizing: border-box;
	pointer-events: none;
}

.px-promo-banner-body a,
.px-promo-banner-body button {
	pointer-events: auto;
}

/* Badge (Alt Başlık) */
.px-promo-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--powerx-overlay-dark, rgba(0, 0, 0, 0.45));
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid var(--powerx-overlay-light, rgba(255, 255, 255, 0.16));
	color: var(--powerx-neutral-0, #ffffff);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: var(--px-promo-badge-pad, 4px 12px);
	border-radius: 9999px;
	margin-bottom: var(--px-promo-badge-mb, 8px);
}

/* Headline / Price (Büyük Başlık) */
.px-promo-highlight {
	color: var(--powerx-neutral-0, #ffffff);
	font-size: 19px;
	font-weight: 800;
	line-height: 1.25;
	margin: var(--px-promo-highlight-margin, 0 0 4px 0);
	letter-spacing: -0.01em;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

/* Content / Subtitle (Açıklama) */
.px-promo-content {
	color: var(--powerx-overlay-light, rgba(255, 255, 255, 0.85));
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.35;
	margin: var(--px-promo-content-margin, 0 0 14px 0);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Action Buttons Container */
.px-promo-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
}

/* Primary Button (Pill white) */
.px-promo-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	cursor: pointer;
	border-radius: 9999px;
	transition: all 0.25s ease;
	font-family: inherit;
}

.px-promo-btn-1 {
	background: var(--powerx-neutral-0, #ffffff);
	color: var(--powerx-neutral-900, #0f172a);
	font-weight: 700;
	font-size: 13px;
	padding: var(--px-promo-btn1-pad, 8px 24px);
	box-shadow: 0 4px 12px var(--powerx-overlay-dark, rgba(0, 0, 0, 0.2));
	border: 1px solid transparent;
}

.px-promo-btn-1:hover {
	background: var(--powerx-neutral-100, #f1f5f9);
	color: var(--powerx-neutral-900, #000000);
	box-shadow: 0 6px 18px var(--powerx-overlay-dark, rgba(0, 0, 0, 0.3));
}

/* Secondary Button */
.px-promo-btn-2 {
	background: var(--powerx-overlay-light, rgba(255, 255, 255, 0.15));
	color: var(--powerx-neutral-0, #ffffff);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border: 1px solid var(--powerx-overlay-light, rgba(255, 255, 255, 0.3));
	font-weight: 600;
	font-size: 13px;
	padding: var(--px-promo-btn2-pad, 8px 18px);
}

.px-promo-btn-2:hover {
	background: var(--powerx-overlay-light, rgba(255, 255, 255, 0.3));
	color: var(--powerx-neutral-0, #ffffff);
}

/* -------------------------------------------------------------------------
 * PAGINATION DOTS
 * ------------------------------------------------------------------------- */
.px-promo-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 24px;
}

.px-promo-pagination .swiper-pagination-bullet {
	width: 6px;
	height: 6px;
	background: var(--powerx-neutral-200, #cbd5e1);
	border-radius: 50%;
	opacity: 0.7;
	margin: 0 !important;
	transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
	cursor: pointer;
}

.px-promo-pagination .swiper-pagination-bullet-active {
	background: var(--powerx-danger-500, #ef4444);
	width: 22px;
	height: 5px;
	border-radius: 4px;
	opacity: 1;
}
