/* =========================================
   QuickShow Light - HIGH FASHION STYLE (STRICT FIXES)
   ========================================= */

/* UTILITY: Force Dashicons */
.dashicons,
.dashicons-before:before,
.qsl-rating-stars span,
.qsl-pill-btn span,
.qsl-trust-badges i {
	font-family: 'dashicons' !important;
}

/* --- Grid Wrapper --- */
#qsl-grid-container {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	/* Force 2 columns */
	gap: 12px;
	/* STRICT: Tight gap */
	padding: 12px;
	width: 100%;
	box-sizing: border-box;
}

@media (min-width: 768px) {
	#qsl-grid-container {
		gap: 20px !important;
		padding: 20px;
		/* Desktop also 2 columns for the layout to work */
		grid-template-columns: repeat(2, 1fr);
	}
}

/* --- Layout Classes for Hybrid Grid --- */
.qsl-hero-deal {
	grid-column: span 2;
	/* Full width */
}

.qsl-product-card {
	grid-column: span 1;
	/* Half width */
}


/* --- Product Card - Minimalist High Fashion --- */
.qsl-product-card {
	position: relative;
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	transition: transform 0.3s ease;
	cursor: pointer;
	border: 1px solid #f0f0f0;
	box-shadow: 0 4px 10px rgba(0,0,0,0.03);
	min-height: 380px;
}

.qsl-product-card:hover {
	transform: translateY(-5px);
}

/* Image Area */
.qsl-card-image {
	position: relative;
	aspect-ratio: 4/4 !important;
	overflow: hidden;
	border-radius: 16px;
	background: #f5f5f5;
}

.qsl-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.qsl-product-card:hover .qsl-card-image img {
	transform: scale(1.05);
}

/* Overlays & Badges - STRICT PLACEMENT */

/* 1. Brand Logo (Top-Right) */
.qsl-badge-brand {
	position: absolute !important;
	top: 10px !important;
	right: 10px !important;
	bottom: auto !important;
	left: auto !important;
	width: 35px !important;
	height: auto;
	object-fit: contain;
	z-index: 20;
	opacity: 0.9;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
}

/* 2. Video Indicator (Top-Left) */
.qsl-video-indicator {
	position: absolute !important;
	top: 10px !important;
	left: 10px !important;
	right: auto !important;
	bottom: auto !important;
	background: rgba(0, 0, 0, 0.6) !important;
	color: #fff;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	text-align: center;
	line-height: 24px;
	z-index: 20;
}

.qsl-video-indicator .dashicons {
	font-size: 14px;
	line-height: 24px;
	width: 24px;
	height: 24px;
}

/* 3. Price & Discount Container */
.qsl-price-container {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
}

/* Price Text */
.qsl-price-text {
	background: transparent;
	color: #000;
	font-weight: 800;
	font-size: 15px;
	padding: 0;
	box-shadow: none;
	display: flex;
	align-items: center;
	gap: 6px;
}

/* Strip HTML from price if needed, usually managed by PHP, but ensure styles reset */
.qsl-price-text span,
.qsl-price-text bdi {
	color: #000 !important;
	font-weight: 700 !important;
}

/* Discount Text */
.qsl-discount-text {
	color: #e63946;
	/* STRICT: Red */
	font-weight: 700;
	font-size: 13px;
	text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
	/* STRICT */
}


/* 4. Overlay Icon (Play/View) - Kept specific center style */
.qsl-card-overlay-icon {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 40px;
	height: 40px;
	background: rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 11;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.qsl-product-card:hover .qsl-card-overlay-icon {
	opacity: 1;
}

.qsl-card-overlay-icon .dashicons {
	font-size: 20px;
	color: #333;
}


/* Info Area - Model Name */
.qsl-card-info {
	text-align: center;
	background: #fff;
	padding: 12px 10px 16px 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.qsl-card-info h3 {
	margin: 8px 0 0 0;
	/* STRICT: Margin-top 8px */
	font-size: 14px;
	/* STRICT */
	font-weight: 600;
	/* Implicitly kept from general good practice */
	color: #333;
	/* STRICT */
	text-transform: uppercase;
	white-space: nowrap;
	/* STRICT */
	overflow: hidden;
	/* STRICT */
	text-overflow: ellipsis;
	/* STRICT */
	letter-spacing: 0.5px;
}


/* =========================================
   Modal & Overlay (PRESERVED)
   ========================================= */
#qsl-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.8);
	z-index: 999999;
	align-items: center;
	justify-content: center;
	display: none;
	backdrop-filter: blur(5px);
}

#qsl-modal-overlay.qsl-active {
	display: flex !important;
}

/* --- Modal Container Layout --- */
#qsl-modal-container {
	display: flex;
	flex-direction: column;
	/* Mobile Default */
	height: 85vh;
	/* Mobile Default */
	width: 90%;
	max-width: 900px;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	position: relative;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
	animation: qslSlideUp 0.3s ease-out;
}

/* Modal Media Section */
.qsl-modal-media {
	width: 100%;
	height: 40%;
	/* Mobile Split */
	position: relative;
	background: #f0f0f0;
}

/* Modal Details Section */
.qsl-modal-details {
	width: 100%;
	height: 60%;
	/* Mobile Split */
	padding: 20px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	background: #fff;
	position: relative;
}

/* Desktop Layout Overrides */
@media (min-width: 768px) {
	#qsl-modal-container {
		flex-direction: row;
		height: 500px;
	}

	.qsl-modal-media {
		width: 55%;
		height: 100%;
	}

	.qsl-modal-details {
		width: 45%;
		height: 100%;
	}
}

/* Animation */
@keyframes qslSlideUp {
	from {
		transform: translateY(100%);
		opacity: 0;
	}

	to {
		transform: translateY(0);
		opacity: 1;
	}
}

/* Close Button */
/* Close Button - Premium Circle */
#qsl-modal-close {
	position: absolute;
	top: 15px;
	left: 15px;
	z-index: 50;
	background: rgba(0, 0, 0, 0.05);
	/* Light grey */
	border: none;
	border-radius: 50%;
	width: 32px;
	/* Spec: 32px */
	height: 32px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #333;
	transition: all 0.3s ease;
	/* Spec: properties */
	box-shadow: none;
	/* Clean start */
}

#qsl-modal-close:hover {
	background: #e63946;
	color: #fff;
	transform: rotate(90deg);
	/* Subtle interaction */
}


/* =========================================
   Swiper & Media
   ========================================= */
.qsl-swiper-container {
	width: 100%;
	height: 100%;
	padding-bottom: 55px; /* Protected area for dots and Avis button */
	box-sizing: border-box;
}

.swiper-wrapper,
.swiper-slide {
	width: 100%;
	height: 100%;
}

/* Fix Pagination Position */
.qsl-swiper-container .swiper-pagination {
	bottom: 0px !important;
}

.swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover !important; /* The "rest of images" (gallery shots) beautifully cover the space */
	display: block;
	margin: 0 auto;
}

/* Ensure only the primary main product image is NEVER cropped */
.swiper-slide:first-child img {
	object-fit: contain !important; 
}

.swiper-slide video {
	width: 100%;
	height: 100%;
	object-fit: cover !important; /* Videos and non-image media cover the space */
	display: block;
	margin: 0 auto;
}

/* Story Buttons */
/* Story Buttons - Bottom Center Glassmorphism */
.qsl-story-buttons {
	position: absolute;
	bottom: 25px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 20;
	display: flex;
	gap: 10px;
	width: auto;
}

.qsl-pill-btn {
	background: rgba(0, 0, 0, 0.4);
	/* Semi-transparent dark */
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.2);
	/* Subtle border */
	backdrop-filter: blur(8px);
	/* Glass effect */
	border-radius: 20px;
	padding: 6px 14px;
	font-size: 11px;
	font-weight: 600;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
	transition: background 0.2s;
}

.qsl-pill-btn:hover {
	background: rgba(0, 0, 0, 0.7);
	transform: none;
}

.qsl-pill-btn .dashicons {
	color: #fff;
	/* Ensure icon is white */
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 16px;
	margin-right: 5px;
}

/* =========================================
   Details Typography & Actions
   ========================================= */
.qsl-details-content {
	padding-bottom: 80px;
	/* Buffer for actions/form */
}

#qsl-modal-title {
	margin: 0 0 10px 0;
	font-size: 14px;
	color: #222;
	line-height: 1.3;
}

.qsl-price-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 20px;
	margin-top: 10px;
}

#qsl-modal-price {
	font-size: 1.8rem;
	font-weight: 800;
	color: #000;
	line-height: 1;
	margin-bottom: 0;
	/* Let row handle gap */
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
}

#qsl-modal-price span.qsl-price-amount {
	color: #000;
}

#qsl-modal-price del {
	color: #999;
	font-size: 1rem;
	font-weight: 400;
	text-decoration: line-through;
	opacity: 0.8;
	order: 2;
	/* Render After Current Price */
	margin-left: 5px;
	/* Gap from Current logic */
}

#qsl-modal-price ins,
#qsl-modal-price span.amount {
	order: 1;
	/* Render First */
	text-decoration: none;
}

#qsl-modal-desc {
	font-size: 14px;
	color: #555;
	line-height: 1.6;
	margin-bottom: 24px;
}

/* Trust Badges */
.qsl-trust-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 15px;
	justify-content: flex-start;
	margin-top: -10px;
	padding-top: 15px;
	border-top: 1px solid #eee;
	margin-bottom: 10px;
}

.qsl-trust-badges span {
	font-size: 13px;
	color: #555;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
}

/* Buy Now Button */
.qsl-btn-primary {
	display: block;
	width: 100%;
	padding: 16px;
	background: #007bff;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	margin-bottom: 0px;
	transition: background 0.2s;
}

.qsl-btn-primary:hover {
	background: #0056b3;
}


/* =========================================
   Form Overlay - STRICT Visibility
   ========================================= */
/* =========================================
   Form Overlay - STRICT Visibility
   ========================================= */
#qsl-cod-form {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	background: #fff;
	z-index: 200;
	padding: 25px 20px;
	box-sizing: border-box;
	box-shadow: 0 -5px 30px rgba(0, 0, 0, 0.2);

	transform: translateY(110%);
	transition: transform 0.3s ease-in-out;
	border-top-left-radius: 16px;
	border-top-right-radius: 16px;

	display: flex;
	flex-direction: column;
}

#qsl-cod-form.active {
	transform: translateY(0);
}

@media(max-width:767px) {
	#qsl-cod-form {
		padding-bottom: 50px;
		/* Safe area for mobile keys */
		max-height: 80%;
		overflow-y: auto;
	}
}

#qsl-cod-form h3 {
	margin: 0 0 10px 0;
	text-align: center;
	color: #333;
}

/* Order Summary */
.qsl-form-summary {
	text-align: center;
	color: #555;
	font-size: 14px;
	margin-bottom: 15px;
}

.qsl-form-summary strong {
	color: #000;
}

/* Zero Risk Box */
.qsl-risk-free-box {
	background: #e3f2fd;
	/* Light Blue */
	border: 1px solid #bbdefb;
	color: #0d47a1;
	padding: 10px 15px;
	border-radius: 8px;
	margin-bottom: 20px;
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	line-height: 1.4;
}

.qsl-risk-free-box .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

#qsl-cod-form input {
	display: block;
	width: 100%;
	padding: 12px 12px 12px 40px;
	/* Icon padding */
	margin-bottom: 0;
	/* Handled by group */
	border: 1px solid #ddd;
	border-radius: 8px;
	font-size: 14px;
	background-color: #fff !important;
	color: #333 !important;
	box-sizing: border-box;
	transition: all 0.3s ease;
}

#qsl-cod-form input:focus {
	border-color: #000;
	outline: none;
	box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}

/* Form Grid System */
.qsl-form-row {
	display: flex;
	gap: 10px;
	margin-bottom: 10px;
}

.qsl-input-icon-group {
	position: relative;
	flex: 1;
}

.qsl-input-icon-group.full-width {
	width: 100%;
	margin-bottom: 15px;
}

.qsl-input-icon-group .dashicons {
	position: absolute;
	left: 10px;
	top: 50%;
	transform: translateY(-50%);
	color: #888;
	font-size: 18px;
	pointer-events: none;
}

#qsl-cod-form .qsl-btn-confirm {
	width: 100%;
	padding: 12px;
	background: #27ae60;
	/* Strong Green */
	color: #fff;
	font-weight: 700;
	border: none;
	border-radius: 8px;
	font-size: 16px;
	cursor: pointer;
	margin-top: 15px;
	margin-bottom: 10px;
	transition: background 0.3s;
	display: flex;
	align-items: center;
	justify-content: center;
}

#qsl-cod-form .qsl-btn-confirm:hover {
	background: #219150;
}

/* Cancel Link */
.qsl-cancel-link {
	display: block;
	text-align: center;
	margin-top: 15px;
	color: #999;
	text-decoration: none;
	font-size: 13px;
	transition: color 0.3s;
	cursor: pointer;
}

.qsl-cancel-link:hover {
	color: #333;
	text-decoration: underline;
}

/* =========================================
   Conversion Elements (Social Proof & Scarcity)
   ========================================= */

/* Social Proof */
.qsl-rating-stars {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 8px;
	/* Spacing */
}

.qsl-rating-stars .dashicons {
	color: #FFD700;
	/* Gold */
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 16px;
}

.qsl-rating-text {
	color: #777;
	font-size: 12px;
	font-weight: 500;
}

/* Scarcity Indicator */
.qsl-scarcity-bar {
	margin-bottom: 20px;
	/* Confirm margin */
	width: 100%;
}

.qsl-scarcity-bar p {
	color: #ff5722;
	/* Red/Orange */
	font-weight: 700;
	font-size: 13px;
	margin: 0 0 5px 0;
	animation: qslTextPulse 2s infinite;
}

.qsl-progress-bg {
	width: 100%;
	height: 6px;
	background: #eee;
	border-radius: 3px;
	overflow: hidden;
}

.qsl-progress-fill {
	width: 85%;
	height: 100%;
	background: linear-gradient(90deg, #ff5722, #ff9800);
	border-radius: 3px;
}

@keyframes qslTextPulse {
	0% {
		opacity: 1;
	}

	50% {
		opacity: 0.8;
	}

	100% {
		opacity: 1;
	}
}

/* Buy Now Button Pulse */
@keyframes qslPulse {
	0% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(33, 150, 243, 0.7);
	}

	70% {
		transform: scale(1.02);
		box-shadow: 0 0 0 10px rgba(33, 150, 243, 0);
	}

	100% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(33, 150, 243, 0);
	}
}

#qsl-buy-now {
	animation: qslPulse 2s infinite;
	box-shadow: 0 4px 15px rgba(33, 150, 243, 0.4);
	font-size: 1.1rem;
	/* Larger */
	text-transform: uppercase;
	/* Uppercase */
	text-align: center;
	display: block;
	/* Ensure centering works */
	width: 100%;
	/* Full width as per previous design */
}

/* Video Facade (Lazy Loading) */
.qsl-video-facade {
	position: relative;
	width: 100%;
	height: 100%;
	cursor: pointer;
	background: #000;
	overflow: hidden;
}

.qsl-facade-poster {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.9);
	transition: transform 0.5s ease;
}

.qsl-video-facade:hover .qsl-facade-poster {
	transform: scale(1.05);
}

.qsl-facade-play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 60px;
	height: 60px;
	background: rgba(255, 255, 255, 0.25);
	/* Glassmorphism */
	backdrop-filter: blur(5px);
	border: 2px solid rgba(255, 255, 255, 0.8);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
	transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	z-index: 10;
}

.qsl-video-facade:hover .qsl-facade-play-btn {
	background: #e63946;
	border-color: #e63946;
	transform: translate(-50%, -50%) scale(1.1);
}

.qsl-facade-play-btn .dashicons {
	font-size: 30px;
	color: #fff;
	width: 30px;
	height: 30px;
	line-height: 30px;
	margin-left: 4px;
	/* Visual adjustment */
}

/* =========================================
   Modal Footer Link ("See More Models")
   ========================================= */

/* Ensure space at bottom of content so sticky footer doesn't cover last item when scrolled to end */
.qsl-details-content {
	padding-bottom: 60px !important;
}

.qsl-modal-footer-link {
	position: -webkit-sticky;
	/* Safari */
	position: sticky;
	bottom: 0;
	left: 0;
	width: 100%;
	background: #fff;
	border-top: 1px solid #eee;
	padding: 12px 0;
	z-index: 100;
	text-align: center;
	box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
	font-size: 13px;
	color: #333;
	margin-top: auto;
	/* Push to bottom if content is short */
}

.qsl-modal-footer-link a {
	color: #333;
	text-decoration: underline;
	cursor: pointer;
}

.qsl-modal-footer-link .dashicons {
	font-size: 16px;
	margin-right: 5px;
	vertical-align: middle;
	animation: qslBounce 2s infinite;
}

@keyframes qslBounce {

	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-3px);
	}
}

/* =========================================
   Brand Logo Overlay (Modal)
   ========================================= */
.qsl-modal-media {
	position: relative;
	/* Ensure context for absolute elements */
}

.qsl-modal-brand-overlay {
	position: absolute;
	top: 15px;
	/* Aligned with close button roughly */
	right: 15px;
	width: 40px;
	/* Smaller, premium pill size */
	height: auto;
	z-index: 50;
	/* Above swiper slides */
	object-fit: contain;
	background: rgba(255, 255, 255, 0.8);
	backdrop-filter: blur(2px);
	border-radius: 4px;
	padding: 2px;
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
	pointer-events: none;
	/* Let clicks pass through to swiper */
}

/* Cleanup layout since Title is removed */
.qsl-modal-details {
	padding-top: 10px !important;
	/* Pull content up */
}

/* =========================================
   Countdown Timer & Expiry
   ========================================= */

.qsl-timer-badge {
	background: #fff5f5;
	border: 1px solid #ffcccc;
	color: #d32f2f;
	border-radius: 50px;
	padding: 4px 12px;
	font-size: 0.85rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 32px;
	vertical-align: middle;
}

@media (max-width: 480px) {
	.qsl-timer-badge {
		font-size: 0.85rem;
		margin-left: 10px;
		padding: 3px 6px;
	}
}

.qsl-expiry-text {
	text-align: center;
	font-size: 13px;
	color: #666;
	margin-top: 8px;
	font-weight: 500;
}

/* =========================================
   Swipe Hint Overlay
   ========================================= */
#qsl-swipe-hint {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 50;
	display: flex;
	flex-direction: column;
	align-items: center;
	pointer-events: none;
	/* Crucial */
	transition: opacity 0.5s ease;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	padding: 15px 25px;
	border-radius: 12px;
	backdrop-filter: blur(4px);
}

.qsl-hint-hidden {
	opacity: 0;
	visibility: hidden;
}

.qsl-hand-icon {
	margin-bottom: 8px;
	/* Removed animation from container */
	display: flex;
	justify-content: center;
}

.qsl-hand-img {
	width: 48px;
	height: auto;
	margin-bottom: 12px;
	filter: invert(1) brightness(2);
	animation: qslSwipeAnim 1.5s infinite ease-in-out;
}

.qsl-hint-text {
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

@keyframes qslSwipeAnim {
	0% {
		transform: translateX(0);
		opacity: 0.8;
	}

	50% {
		transform: translateX(-15px);
		opacity: 1;
	}

	100% {
		transform: translateX(0);
		opacity: 0.8;
	}
}

/* Hide Default Theme Title */
.hero-section.is-width-constrained {
	display: none !important;
}

/* Hero Section */
.qsl-hero-section {
	height: 250px;
	background-image: url('https://www.centredeluxe.com/wp-content/uploads/2026/01/hero-banner-lp.webp?q=80&w=2080&auto=format&fit=crop');
	background-size: cover;
	background-position: center;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: white;
	margin-bottom: 0;
	margin-top: -50px;
}

@media (min-width: 768px) {
	.qsl-hero-section {
		height: 400px;
		border-radius: 12px;
		margin-bottom: 20px;
	}
}

.qsl-hero-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	border-radius: inherit;
}

.qsl-hero-content {
	position: relative;
	z-index: 2;
	padding: 20px;
	top: 50px;
}

.qsl-hero-content h1 {
	font-size: 2rem;
	font-weight: 800;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: #fff;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.qsl-hero-content p {
	font-size: 1rem;
	color: #f0f0f0;
	margin: 0;
}

/* Trust Bar */
.qsl-trust-bar {
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(5px);
	height: 40px;
	/* Fixed Height */
	display: flex;
	align-items: center;
	/* Center Vertically */
	justify-content: space-around;
	border-bottom: 1px solid #eee;
	margin-bottom: 0;
	/* Remove gap */
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

@media (max-width: 768px) {
	.qsl-trust-bar {
		position: relative !important;
		height: auto;
		padding: 10px 0;
		margin-bottom: 20px;
	}
}

.qsl-trust-item {
	font-size: 12px;
	font-weight: 600;
	color: #333;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
}

@media (min-width: 768px) {
	.qsl-trust-item {
		flex-direction: row;
		font-size: 14px;
		gap: 8px;
	}
}

/* Filter Bar */
.qsl-filter-bar-sticky {
	position: sticky;
	top: 40px;
	/* Below Trust Bar */
	z-index: 990;
	background: #fff;
	padding: 10px 0;
	border-bottom: 1px solid #f1f1f1;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03);
	margin-top: 0;
}

@media (max-width: 768px) {
	.qsl-filter-bar-sticky {
		top: 0 !important;
	}
}

.qsl-filter-scroll-container {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding: 0 15px;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.qsl-filter-scroll-container::-webkit-scrollbar {
	display: none;
}

.qsl-filter-btn {
	border: 1px solid #eee;
	background: #fff;
	color: #555;
	padding: 8px 18px;
	border-radius: 30px;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
	transition: all 0.3s;
}

.qsl-filter-btn:hover {
	background: #f9f9f9;
}

.qsl-filter-btn.active {
	background: #000;
	color: #fff;
	border-color: #000;
}

/* Card Animation */
@keyframes qslFadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.qsl-fade-in {
	animation: qslFadeIn 0.4s ease forwards;
}

/* Fade Effect for Scroll */
.qsl-scroll-fade-mask {
	position: relative;
	overflow: hidden;
}

.qsl-fade-overlay {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 40px;
	background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
	pointer-events: none;
	z-index: 5;
}

.qsl-filter-scroll-container {
	padding-right: 20px;
	/* Ensure last item is visible */
}

/* =========================================
   Hero Deal Card (Daily / Weekly) - REFINED
   ========================================= */
.qsl-hero-deal {
	grid-column: 1 / -1;
	/* Span full width */
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	display: flex;
	/* Mobile First: Horizontal Forced */
	flex-direction: row !important;
	align-items: center;
	height: auto;
	min-height: 140px;
	/* Ensure height */
	overflow: hidden;
	margin-bottom: 25px;
	border: 1px solid #eee;
	/* Cleaner border */
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	cursor: pointer;
}

.qsl-hero-deal:hover {
	transform: translateY(-5px);
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

/* Image Side */
.qsl-hero-image {
	position: relative;
	width: 50% !important;
	/* Mobile: 1/3 */
	height: auto;
	aspect-ratio: 1/1;
	/* Square */
	overflow: hidden;
}

.qsl-hero-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	/* Premium feel for mobile */
	display: block;
	transition: transform 0.6s ease;
	margin-top: 30px;
}

.qsl-hero-deal:hover .qsl-hero-image img {
	transform: scale(1.05);
}


/* Badge specific: Overlay Style */
.qsl-hero-discount {
	position: absolute;
	top: 10px;
	left: 10px;
	background: #e63946;
	color: #fff;
	font-weight: 800;
	font-size: 13px;
	padding: 5px 10px;
	border-radius: 4px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
	z-index: 2;
}

.qsl-hero-deal.qsl-weekly-deal .qsl-hero-discount {
	background: #27ae60;
}

/* Content Side */
.qsl-hero-content-side {
	width: 65% !important;
	/* Mobile: 2/3 */
	height: 100%;
	/* Full height for centering */
	padding: 10px 15px 10px 5px;
	/* Adjusted padding */
	flex-direction: column;
	justify-content: center;
	/* Vertical Centering */
	align-items: center;
	/* Horizontal Centering */
	text-align: center;
	/* Text Centering */
	background: #fff;
	box-sizing: border-box;
}

/* Label Badge (Daily/Weekly) */
.qsl-hero-badge {
	position: static;
	display: inline-block;
	color: #fff;
	background: #000;
	font-size: 10px;
	/* Mobile Small */
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 4px;
	margin-bottom: 8px;
	/* Increased margin */
	text-transform: uppercase;
	letter-spacing: 1px;
	align-self: center;
	/* Center Badge */
}

/* Daily Deal Specifics */
.qsl-hero-deal.qsl-daily-deal .qsl-hero-badge {
	background: #e63946;
}

/* Weekly Deal Specifics */
.qsl-hero-deal.qsl-weekly-deal .qsl-hero-badge {
	background: #27ae60;
}

/* Pulse Animation for Daily Deal Border */
@keyframes qslBorderPulse {
	0% {
		border-color: #eee;
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	}

	50% {
		border-color: #e63946;
		box-shadow: 0 10px 30px rgba(230, 57, 70, 0.2);
	}

	100% {
		border-color: #eee;
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	}
}

.qsl-hero-deal.qsl-daily-deal {
	animation: qslBorderPulse 3s infinite;
}


.qsl-hero-title {
	font-size: 1.1rem;
	/* Increased Mobile Size */
	width: 100%;
	font-weight: 700;
	margin: 10px 0 6px 0;
	color: #222;
	line-height: 1.2;
}

.qsl-hero-price {
	margin-bottom: 8px;
	display: flex;
	align-items: baseline;
	justify-content: center;
	/* Center Price */
	gap: 6px;
}

/* Current Price */
.qsl-hero-price span.qsl-price-amount {
	font-size: 1.4rem;
	font-weight: 900;
	color: #000;
	display: inline-block;
}

.qsl-hero-price bdi {
	font-size: 1rem;
	font-weight: 900;
	color: #000;
	/* Explicit override check */
}


/* Old Price - Assuming it might be output by WC in a DEL tag or similar, let's style potential standard elements inside */
.qsl-hero-price del,
.qsl-hero-price strike {
	font-size: 0.9rem;
	color: #999;
	font-weight: 400;
	text-decoration: line-through;
	opacity: 0.8;
}

/* Countdown Urgent Styling */
.qsl-hero-countdown {
	background-color: #ffebee;
	/* Light Red */
	color: #c62828;
	/* Dark Red */
	border: 1px solid #ffcdd2;
	font-weight: 700;
	font-size: 11px;
	padding: 4px 8px;
	border-radius: 4px;
	display: inline-block;
	margin-bottom: 12px;
	/* Increased margin */
	align-self: center;
	/* Center Timer */
}

.qsl-hero-countdown .qsl-countdown-timer {
	font-weight: 800;
	/* Bold numbers */
}

/* CTA Button */
.qsl-hero-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	background: #000;
	color: #fff;
	border: none;
	width: auto;
	/* Shrink to fit */
	min-width: 140px;
	/* Min width */
	padding: 8px 20px;
	/* Padding */
	font-size: 12px;
	/* Compact */
	font-weight: 700;
	border-radius: 6px;
	cursor: pointer;
	text-transform: uppercase;
	letter-spacing: 1px;
	transition: all 0.3s ease;
}

.qsl-hero-cta:hover {
	background: #333;
	transform: translateY(-2px);
}

.qsl-hero-cta::after {
	content: '\f345';
	font-family: 'dashicons';
	font-size: 12px;
	display: inline-block;
}

.qsl-hero-cta span.dashicons {
	display: none;
	/* Hide old icon span if present in HTML, prefer CSS pseudo */
}

/* Desktop Layout */
@media (min-width: 768px) {
	.qsl-hero-deal {
		flex-direction: row;
		/* Horizontal */
	}

	.qsl-hero-image {
		width: 50%;
		height: 300px;
		/* Fixed Desktop Height */
	}

	.qsl-hero-image img {
		object-fit: cover;
		/* Cover on desktop */
	}

	.qsl-hero-content-side {
		width: 50%;
		padding: 40px;
		align-items: flex-start;
		/* Left align */
		text-align: left;
	}

	.qsl-hero-title {
		font-size: 1.8rem;
		margin-bottom: 10px;
	}

	.qsl-hero-price {
		margin-bottom: 20px;
	}

	.qsl-hero-price span.qsl-price-amount,
	.qsl-hero-price bdi {
		font-size: 1.6rem;
	}

	.qsl-hero-cta {
		width: auto;
		padding: 14px 30px;
		font-size: 16px;
	}
}

/* =========================================
   MOBILE VIDEO BILLBOARD FIX (CORRECTED SELECTORS)
   ========================================= */
/* =========================================
   VIDEO BILLBOARD LAYOUT (GLOBAL FIX)
   ========================================= */

/* 1. Force the Main Card to Stack Vertically (VIDEO BILLBOARD) */
div.qsl-hero-deal.qsl-video-layout {
	flex-direction: column !important;
	height: auto !important;
	min-height: auto !important;
	border: none !important;
	background: #fff !important;
	padding-bottom: 10px !important;
	grid-column: 1 / -1 !important;
	/* Force Full Width */
}

/* 2. The Media Container (Video/Image) */
div.qsl-hero-deal.qsl-video-layout .qsl-hero-image {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	aspect-ratio: 16/9 !important;
	/* Cinematic Widescreen */
	flex: none !important;
	margin: 0 !important;
	border-radius: 0 !important;
	/* Sharp edges */
}

/* 3. The Video Element Itself */
div.qsl-hero-deal.qsl-video-layout .qsl-hero-video {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 0 !important;
}

/* 4. The Content Container */
div.qsl-hero-deal.qsl-video-layout .qsl-hero-content-side {
	width: 100% !important;
	padding: 20px 15px !important;
	text-align: center !important;
	align-items: center !important;
	display: flex !important;
	flex-direction: column !important;
}

/* 5. Float the Badge (OFFRE SEMAINE) over the Video */
div.qsl-hero-deal.qsl-video-layout .qsl-hero-badge {
	top: 15px !important;
	left: 15px !important;
	z-index: 20;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
	margin: 0 !important;
}

/* 6. Move the Discount Badge (-57%) to the Right */
div.qsl-hero-deal.qsl-video-layout .qsl-hero-discount {
	left: auto !important;
	right: 15px !important;
	top: 15px !important;
	z-index: 20;
}



/* =========================================
   HERO SECTION CLEANUP (Remove Theme Injections)
   ========================================= */
/* 1. Hide any direct children that are NOT our Content or Overlay */
.qsl-hero-section>*:not(.qsl-hero-content):not(.qsl-hero-overlay) {
	display: none !important;
}

/* 2. Kill Pseudo-elements on the main container */
.qsl-hero-section::before,
.qsl-hero-section::after {
	content: none !important;
	display: none !important;
	background: none !important;
}

/* =========================================
   CRITICAL FIX: CONTAIN ESCAPING BADGES
   ========================================= */
/* 1. Force Relative Positioning on ALL Cards */
/* This acts as the anchor. Badges cannot escape this box. */
.qsl-product-card,
.qsl-hero-deal,
div.qsl-hero-deal.qsl-video-layout {
	position: relative !important;
	z-index: 1;
	/* Establish a new stacking context */
	transform: translate3d(0, 0, 0);
	/* Hack to force hardware acceleration & containment */
}

/* 2. Force Overflow Hidden on Video Cards (Mobile) */
/* This physically cuts off anything that tries to float outside */
@media (max-width: 768px) {
	div.qsl-hero-deal.qsl-video-layout {
		overflow: hidden !important;
	}

	/* Ensure the badge stays INSIDE the video area */
	div.qsl-hero-deal.qsl-video-layout .qsl-hero-badge,
	div.qsl-hero-deal.qsl-video-layout .qsl-hero-discount {
		position: absolute !important;
		/* Ensure they don't have negative margins pulling them out */
		margin: 0 !important;
		/* Reset coordinates to be safe */
		top: 10px !important;
	}

	/* Fix the 'Hover Only' issue: Make badges always visible on mobile */
	div.qsl-hero-deal.qsl-video-layout .qsl-hero-badge,
	div.qsl-hero-deal.qsl-video-layout .qsl-hero-discount {
		opacity: 1 !important;
		visibility: visible !important;
		display: block !important;
	}
}

/* =========================================
   LUXURY EDITORIAL BUNDLE OFFER (qsl_bundle_offer)
   ========================================= */

.qsl-luxury-wrapper {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: #000;
    background: #fff;
    max-width: 650px;
    margin: 0 auto;
    position: relative;
    box-shadow: 0 0 50px rgba(0,0,0,0.03);
    border: 1px solid #eee;
    padding-bottom: 80px; /* Space for sticky CTA */
    box-sizing: border-box;
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
}

.qsl-luxury-wrapper * {
    box-sizing: border-box;
}

/* Common Components */
.qsl-lux-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    background: #000;
    color: #fff;
    text-align: center;
    padding: 20px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    border-radius: 2px; /* Sharp corners */
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: background 0.3s ease;
}

.qsl-lux-btn:hover {
    background: #333;
}

/* A. Hero Section */
.qsl-lux-hero {
    text-align: center;
    padding: 50px 30px 30px;
    background: #fff;
}

.qsl-lux-label-wrapper {
    margin-bottom: 25px;
}

.qsl-lux-label {
    display: inline-block;
    color: #000;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding: 6px 12px;
    border: 1px solid #000;
}

.qsl-lux-headline {
    font-size: 26px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin: 0 0 40px 0;
    color: #000;
}

.qsl-lux-image-box {
    margin: 0 -30px 30px -30px; /* Bleed out of padding */
    background: #f9f9f9;
}

.qsl-lux-hero-img {
    width: 100%;
    display: block;
    height: auto;
    mix-blend-mode: multiply;
}

.qsl-lux-pricing {
    margin-bottom: 30px;
}

.qsl-lux-old-price {
    font-size: 13px;
    color: #777;
    margin-bottom: 8px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.qsl-lux-old-price del {
    color: #999;
}

.qsl-lux-new-price {
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 1px;
}

/* B. Dynamic Products Section */
.qsl-lux-item {
    padding: 0 30px 40px;
    border-bottom: 1px solid #eee;
}

.qsl-lux-item-image {
    margin-bottom: 20px;
    background: #f9f9f9;
}

/* Swiper Gallery Hierarchy (Premium UX) */
.qsl-gallery-main {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
}

.qsl-gallery-main .swiper-slide {
    text-align: center;
    background: #f9f9f9;
    display: flex;
    justify-content: center;
    align-items: center;
}

.qsl-gallery-main .swiper-slide .qsl-hero-video {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    background-color: #000;
}

.qsl-gallery-main img, 
.qsl-gallery-thumbs img {
    aspect-ratio: 4 / 3 !important; 
    object-fit: cover !important; 
    background-color: #fff; /* Ensures white background for transparent PNGs */
    width: 100%;
    height: 100%;
    display: block;
}

/* Luxury Navigation Arrows */
.qsl-gallery-main .swiper-button-next,
.qsl-gallery-main .swiper-button-prev {
    color: #000;
    background: #fff;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.qsl-gallery-main .swiper-button-next::after,
.qsl-gallery-main .swiper-button-prev::after {
    font-size: 14px;
    font-weight: bold;
}

/* Swiper Thumbs Configuration */
.qsl-gallery-thumbs {
    box-sizing: border-box;
    padding: 0;
    width: 100%;
    overflow: hidden;
    position: relative;
    list-style: none;
    z-index: 1;
}

.qsl-gallery-thumbs .swiper-slide {
    width: 25%;
    height: 100%;
    opacity: 0.5;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.3s ease;
}

.qsl-gallery-thumbs .swiper-slide-thumb-active {
    opacity: 1;
    border-color: #000;
}



/* Short Description Styling */
.qsl-lux-short-desc {
    font-size: 14px;
    color: #555;
    line-height: 1.6;
}

.qsl-lux-short-desc ul {
    list-style: none;
    padding: 0;
    margin: 15px 0 0 0;
}

.qsl-lux-short-desc ul li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 12px;
}

.qsl-lux-short-desc ul li::before {
    content: "—";
    display: inline-block;
    margin-right: 10px;
    color: #000;
    font-weight: bold;
}

/* C. Price Reveal & Social Proof */
.qsl-lux-reveal {
    padding: 50px 30px;
    background: #fafafa;
    text-align: center;
    border-bottom: 1px solid #eee;
}

.qsl-lux-reveal-pricing {
    margin-bottom: 40px;
}

.qsl-lux-reveal .qsl-lux-new-price {
    font-size: 22px;
    margin-top: 5px;
}

.qsl-lux-guarantees {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 40px;
    align-items: center;
}

.qsl-lux-guarantee-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.qsl-lux-guarantee-item .dashicons {
    color: #000;
    font-size: 20px;
    width: 20px;
    height: 20px;
}

.qsl-lux-reviews {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.qsl-lux-review-card {
    background: #fff;
    padding: 25px;
    border: 1px solid #eee;
    text-align: left;
}

.qsl-lux-review-card p {
    font-size: 14px;
    font-style: italic;
    color: #333;
    line-height: 1.6;
    margin: 0 0 10px 0;
}

.qsl-lux-review-card cite {
    font-size: 12px;
    font-weight: 700;
    color: #999;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-style: normal;
}


/* D. Checkout Form */
.qsl-lux-checkout {
    padding: 50px 30px;
    background: #fff;
    margin-bottom: 30px; /* Space inside wrapper */
}

.qsl-lux-checkout-title {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-align: center;
    margin: 0 0 40px 0;
    line-height: 1.6;
}

.qsl-lux-checkout-title span {
    font-size: 12px;
    font-weight: 400;
    color: #777;
    letter-spacing: 1px;
}

.qsl-lux-input-group {
    margin-bottom: 30px;
}

.qsl-lux-input-group input {
    width: 100%;
    padding: 12px 0;
    border: none;
    border-bottom: 1px solid #ddd;
    border-radius: 0;
    background: transparent;
    font-size: 15px;
    color: #000;
    transition: border-color 0.3s ease;
    outline: none;
}

.qsl-lux-input-group input::placeholder {
    color: #aaa;
    letter-spacing: 1px;
}

.qsl-lux-input-group input:focus {
    border-bottom-color: #000;
    box-shadow: none; /* Override standard input glow */
}

.qsl-lux-submit {
    margin-top: 20px;
}


/* E. Sticky Footer */
.qsl-lux-sticky {
    position: fixed;
    bottom: -150px;
    left: 0;
    width: 100%;
    background: #fff;
    padding: 12px 15px;
    border: none;
    z-index: 2147483647;
    transition: bottom 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    display: block;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
    text-align: center;
}

/* .is-visible kept for legacy compatibility but JS now controls bottom directly */
.qsl-lux-sticky.is-visible {
    bottom: 0;
}


.qsl-lux-sticky .qsl-lux-scroll {
    max-width: 650px; /* Match wrapper */
    margin: 0 auto;
}

/* Mobile Adjustments */
@media (max-width: 767px) {
    .qsl-luxury-wrapper {
        margin: 0;
        border: none;
        box-shadow: none;
        padding-bottom: 90px;
    }
    
    .qsl-lux-hero {
        padding: 40px 20px 20px;
    }
    
    .qsl-lux-headline {
        font-size: 22px;
    }
    
    .qsl-lux-image-box,
    .qsl-lux-reveal {
        margin-left: -20px;
        margin-right: -20px;
    }
    
    .qsl-lux-item,
    .qsl-lux-checkout {
        padding-left: 20px;
        padding-right: 20px;
    }
    
    .qsl-lux-item-image {
        margin-left: -20px;
        margin-right: -20px;
    }
}

/* =========================================
   Sprint 3: WhatsApp Reviews Pagination
   ========================================= */
.qsl-wa-pagination {
    bottom: 0 !important;
}

.qsl-wa-pagination .swiper-pagination-bullet {
    background: #ccc;
    opacity: 1;
    width: 8px;
    height: 8px;
    transition: all 0.3s ease;
}

.qsl-wa-pagination .swiper-pagination-bullet-active {
    background: #111;
    width: 24px;
    border-radius: 4px;
}

/* Force reset the UL */
.qsl-premium-list ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

/* Force style the LI */
.qsl-premium-list ul li {
    position: relative !important;
    padding-left: 32px !important;
    font-size: 14px !important;
    color: #444 !important;
    line-height: 1.5 !important;
    font-weight: 500 !important;
    text-align: left !important;
    list-style-type: none !important;
    background: none !important; /* Prevent theme bullet images */
}

/* Inject the Dashicon Checkmark */
.qsl-premium-list ul li::before {
    content: "\f152" !important; /* Dashicon Yes (Checkmark) */
    font-family: "dashicons" !important;
    position: absolute !important;
    left: 0 !important;
    top: 1px !important;
    color: #6873cb !important; /* Matching CTA Color */
    font-size: 18px !important;
    line-height: 1 !important;
    font-weight: normal !important;
}

/* =========================================
   Luxury Whitespace Polish
   ========================================= */

/* 1. Product Loop Separation */
.qsl-lux-item {
    margin-bottom: 60px !important;
    padding-bottom: 40px !important;
    border-bottom: 1px solid #eaeaea !important;
}
.qsl-lux-item:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 30px !important;
}

/* 2. Standardize Section Breathing Room */
.qsl-lux-summary,
.qsl-lux-lifestyle,
.qsl-lux-wa-reviews,
.qsl-lux-videos-wrapper,
.qsl-lux-trust-reasons,
.qsl-lux-testimonials,
.qsl-lux-final-reasons {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

/* 3. Value Stack CTAs - breathing room */
.qsl-lux-value-stack {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    padding: 50px 20px !important;
}

#qsl-bundle-checkout .qsl-lux-value-stack {
    margin-bottom: 35px !important;
    background: transparent !important;
    border: none !important;
    padding: 0 0 20px 0 !important;
}

/* Luxury Material Filters */
.qsl-material-filters-wrapper {
   display: flex;
   flex-wrap: nowrap;
   overflow-x: auto;
   gap: 10px;
   padding: 10px 5px;
   scrollbar-width: none; /* Firefox */
}
.qsl-material-filters-wrapper::-webkit-scrollbar {
   display: none; /* Safari/Chrome */
}

.qsl-pill {
   white-space: nowrap;
   border-radius: 25px;
   padding: 8px 16px;
   background: #f5f5f5;
   color: #333;
   border: 1px solid #eee;
   font-size: 14px;
   cursor: pointer;
   transition: all 0.3s ease;
}

.qsl-pill.active, .qsl-pill:hover {
   background: #111;
   color: #fff;
   border-color: #111;
}/* ── UI POLISH: Ghost Button ── */
.qsl-btn-ghost {
	background: transparent;
	color: #007bff;
	border: 2px solid #007bff;
	border-radius: 50px; /* Pill shape */
}

.qsl-btn-ghost:hover {
	background: transparent;
	color: #007bff;
	box-shadow: 0 0 10px rgba(0, 123, 255, 0.4);
	transform: scale(1.02);
}

.qsl-btn-ghost .qsl-sync-icon {
	transition: transform 0.5s ease;
}

.qsl-btn-ghost:hover .qsl-sync-icon {
	transform: rotate(360deg);
}

.qsl-btn-ghost .qsl-sync-icon {
	transition: transform 0.5s ease;
}

.qsl-btn-ghost:hover .qsl-sync-icon {
	transform: rotate(360deg);
}

/* ── CRO ONBOARDING: Coach Mark ── */
.qsl-overlay {
	position: fixed;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(0, 0, 0, 0.6);
	z-index: 9998;
	transition: opacity 0.3s ease;
}

.qsl-highlighted {
	position: relative !important;
	z-index: 9999 !important;
	background: #fff;
	border-radius: 8px; /* Optional visual polish when highlighted */
}

.qsl-coach-mark {
	position: absolute;
	top: 100%; /* Below the filter bar */
	left: 15px;
	width: calc(100% - 30px);
	max-width: 300px;
	margin-top: 15px;
	background: #222;
	color: #fff;
	padding: 15px;
	border-radius: 8px;
	box-shadow: 0 10px 25px rgba(0,0,0,0.3);
	z-index: 9999;
	animation: qslFadeUp 0.4s ease forwards;
	transition: opacity 0.3s ease;
}

/* Caret pointing up */
.qsl-coach-mark::before {
	content: '';
	position: absolute;
	top: -6px;
	left: 20px;
	width: 12px; height: 12px;
	background: #222;
	transform: rotate(45deg);
}

.qsl-coach-mark p {
	font-size: 14px;
	font-weight: 500;
	margin: 0 0 12px 0;
	line-height: 1.4;
}

.qsl-coach-mark button {
	background: #007bff;
	color: #fff;
	border: none;
	padding: 6px 16px;
	border-radius: 20px;
	font-weight: 700;
	cursor: pointer;
	float: right;
}

@keyframes qslFadeUp {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

/* ── CRO: Pulse Reminder ── */
.qsl-pulse-reminder {
	animation: qslPillPulse 2s infinite;
}

@keyframes qslPillPulse {
	0% { box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.7); }
	70% { box-shadow: 0 0 0 10px rgba(0, 123, 255, 0); }
	100% { box-shadow: 0 0 0 0 rgba(0, 123, 255, 0); }
}

/* ── Mobile UX: Load More Button ── */
.qsl-btn-primary:active,
#qsl-load-more-btn:active {
	transform: scale(0.96);
}

.is-loading .qsl-sync-icon {
	animation: qslSpinIcon 1s linear infinite;
}

@keyframes qslSpinIcon {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}
