/* ==========================================================================
   HOMEPAGE STYLES - Nosaci Farova Theme
   Premium dark automotive e-commerce design with red accent (#d50616)
   Rich charcoal palette (#1c1c1c) — refined, warm, powerful
   ========================================================================== */


/* --------------------------------------------------------------------------
   KEYFRAMES
   -------------------------------------------------------------------------- */

@keyframes heroFadeIn {
	from {
		opacity: 0;
		transform: translateY(40px);
	}

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

@keyframes subtleGlow {
	0% {
		box-shadow:
			0 0 40px rgba(213, 6, 22, 0.1),
			0 0 80px rgba(213, 6, 22, 0.04);
	}

	100% {
		box-shadow:
			0 0 60px rgba(213, 6, 22, 0.2),
			0 0 120px rgba(213, 6, 22, 0.08);
	}
}


/* --------------------------------------------------------------------------
   PLACEHOLDER IMAGE PATTERN
   Reusable placeholder boxes with SVG icon and descriptive text.
   -------------------------------------------------------------------------- */

.placeholder-img {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	background: #1a1a1a;
	color: rgba(255, 255, 255, 0.2);
	border-radius: var(--radius-lg);
	border: 2px dashed rgba(255, 255, 255, 0.1);
	width: 100%;
	min-height: 300px;
}

.placeholder-img svg {
	opacity: 0.4;
}

.placeholder-img span {
	font-family: var(--font-body);
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
}

/* Light variant for white-background sections */
.placeholder-img--light {
	background: #f0f0f0;
	color: rgba(0, 0, 0, 0.2);
	border-color: rgba(0, 0, 0, 0.08);
}

.placeholder-img--light svg {
	opacity: 0.3;
}


/* --------------------------------------------------------------------------
   REVEAL ANIMATION
   -------------------------------------------------------------------------- */

.reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.revealed {
	opacity: 1;
	transform: translateY(0);
}


/* ==========================================================================
   1. HERO SECTION
   ========================================================================== */

.hero {
	position: relative;
	min-height: 650px;
	display: flex;
	align-items: center;
	background-color: #1c1c1c;
	background-size: cover;
	background-position: center right;
	background-repeat: no-repeat;
	overflow: hidden;
}

/* Dark overlay for text readability over background image */
.hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		90deg,
		rgba(0, 0, 0, 0.75) 0%,
		rgba(0, 0, 0, 0.5) 40%,
		rgba(0, 0, 0, 0.15) 70%,
		transparent 100%
	);
	z-index: 1;
}

/* Red power line at the very top of the hero */
.hero::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary) 30%, transparent 100%);
	z-index: 10;
}

/* Extra padding at bottom for banners overlap */
.hero::after {
	display: none;
}

/* Gradient is now replaced by .hero__overlay */

/* --- Decorative geometric elements --- */

.hero__decorations {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.hero__decoration--lines {
	position: absolute;
	top: -20%;
	right: -5%;
	width: 600px;
	height: 600px;
	background: repeating-linear-gradient(
		-45deg,
		transparent,
		transparent 40px,
		rgba(var(--color-primary-rgb), 0.04) 40px,
		rgba(var(--color-primary-rgb), 0.04) 41px
	);
	transform: rotate(10deg);
}

.hero__decoration--dots {
	position: absolute;
	bottom: 10%;
	left: 5%;
	width: 150px;
	height: 150px;
	background-image: radial-gradient(
		rgba(255, 255, 255, 0.06) 1.5px,
		transparent 1.5px
	);
	background-size: 20px 20px;
}

/* --- Hero container --- */

.hero .container {
	position: relative;
	z-index: 2;
	padding-top: 140px;
	padding-bottom: 200px;
	min-height: 700px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
}

/* --- Hero content (left side) --- */

.hero__content {
	flex: 1;
	max-width: 550px;
	color: var(--color-white);
	z-index: 2;
	text-align: left;
}

/* --- Hero product image (right side) --- */

.hero__product {
	flex: 0 0 auto;
	max-width: 450px;
	width: 40%;
	z-index: 2;
}

.hero__product-img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--radius-lg);
	filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.4));
}

.placeholder-img--hero-product {
	min-height: 350px;
	border-radius: var(--radius-lg);
	background: rgba(255, 255, 255, 0.05);
	border: 2px dashed rgba(255, 255, 255, 0.1);
}

.hero__content.revealed {
	animation: heroFadeIn 0.8s ease forwards;
}

/* Label */
.hero__label {
	display: inline-block;
	font-family: var(--font-body);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 3px;
	color: var(--color-primary);
	text-transform: uppercase;
	padding: 6px 16px;
	padding-left: 16px;
	border-left: 3px solid var(--color-primary);
	margin-bottom: 20px;
}

/* Title — bigger, tighter, premium */
.hero__title {
	font-family: var(--font-heading);
	font-size: 4rem;
	font-weight: 800;
	line-height: 1.05;
	color: var(--color-white);
	margin: 0 0 10px 0;
	text-transform: uppercase;
	letter-spacing: -1px;
}

.hero__title-accent {
	color: var(--color-primary);
}

/* Subtitle — with red square accent */
.hero__subtitle {
	position: relative;
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.8);
	margin: 0 0 20px 0;
	text-transform: uppercase;
	letter-spacing: 2px;
	padding-left: 18px;
}

.hero__subtitle::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	background: var(--color-primary);
	border-radius: 1px;
}

/* Description */
.hero__description {
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.6);
	max-width: 450px;
	margin: 0 0 30px 0;
}

/* Action buttons */
.hero__actions {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.hero__actions .btn {
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
}

/* Hero image is now a background-image on .hero via inline style */

/* --- Slider navigation arrows --- */

.hero__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.1);
	color: var(--color-white);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all var(--transition);
}

.hero__arrow:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
}

.hero__arrow--prev {
	left: 30px;
}

.hero__arrow--next {
	right: 30px;
}

/* Alternative naming support */
.hero__nav-prev,
.hero__nav-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 5;
	transition: all var(--transition);
}

.hero__nav-prev:hover,
.hero__nav-next:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
}

.hero__nav-prev {
	left: 30px;
}

.hero__nav-next {
	right: 30px;
}

/* --- Dot indicators --- */

.hero__dots {
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 5;
	display: flex;
	gap: 10px;
}

.hero__dot {
	width: 30px;
	height: 4px;
	border-radius: 2px;
	border: none;
	background: rgba(255, 255, 255, 0.3);
	cursor: pointer;
	transition: all var(--transition);
	padding: 0;
}

.hero__dot:hover {
	background: rgba(255, 255, 255, 0.6);
}

.hero__dot--active {
	background: var(--color-primary);
	width: 40px;
}

.hero__dot--active:hover {
	background: var(--color-primary);
}


/* ==========================================================================
   2. BANNERS SECTION - 3 Simple Images
   Full-width edge-to-edge images below hero
   ========================================================================== */

.banners {
	position: relative;
	z-index: 4;
	margin-top: -80px;
	padding: 0 0 40px;
	background: transparent;
}

.banners .container {
	max-width: var(--container-width);
}

.banners__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.banners__item {
	overflow: hidden;
	border-radius: var(--radius);
	aspect-ratio: 16 / 10;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
}

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

.banners__item:hover img {
	transform: scale(1.05);
}

.banners__card {
	position: relative;
	height: 280px;
	border-radius: var(--radius-lg);
	overflow: hidden;
	cursor: pointer;
	transition: transform var(--transition), box-shadow var(--transition);
}

.banners__card:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 50px rgba(213, 6, 22, 0.15);
}

/* Background image area */
.banners__bg,
.banners__card-bg {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.banners__bg .placeholder-img,
.banners__card-bg .placeholder-img {
	min-height: 100%;
	height: 100%;
	border-radius: 0;
	border: none;
}

.placeholder-img--banner {
	min-height: 100%;
	height: 100%;
	border-radius: 0;
	border: none;
	background: #f0f0f0;
	color: rgba(0, 0, 0, 0.15);
	border: 1px solid rgba(0, 0, 0, 0.05);
}

/* Gradient overlay */
.banners__overlay,
.banners__card-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(20, 20, 20, 0.85) 0%,
		rgba(28, 28, 28, 0.3) 50%,
		transparent 100%
	);
	z-index: 2;
}

/* Content */
.banners__content,
.banners__card-content {
	position: absolute;
	bottom: 0;
	left: 0;
	padding: 24px;
	z-index: 3;
	color: var(--color-white);
}

.banners__tag {
	display: inline-block;
	background: var(--color-primary);
	color: var(--color-white);
	padding: 4px 12px;
	font-size: 0.75rem;
	font-weight: 700;
	border-radius: 4px;
	margin-bottom: 10px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.banners__title {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 12px 0;
	color: var(--color-white);
	line-height: 1.2;
}

.banners__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 20px;
	background: transparent;
	border: 2px solid var(--color-white);
	color: var(--color-white);
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	border-radius: 4px;
	transition: all var(--transition);
	text-decoration: none;
}

.banners__btn:hover {
	background: var(--color-white);
	color: #1c1c1c;
}

.banners__btn svg {
	width: 16px;
	height: 16px;
	transition: transform var(--transition);
}

.banners__btn:hover svg {
	transform: translateX(4px);
}


/* ==========================================================================
   3. FEATURES STRIP
   ========================================================================== */

.features,
.features-strip {
	position: relative;
	padding: 40px 0;
	background: var(--color-white);
	border-bottom: 1px solid var(--color-border);
}

/* Red gradient top border — fades from transparent to red to transparent */
.features::before,
.features-strip::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(
		90deg,
		transparent 0%,
		var(--color-primary) 30%,
		var(--color-primary) 70%,
		transparent 100%
	);
}

.features__strip,
.features-strip__grid {
	display: flex;
	align-items: center;
	justify-content: center;
}

.features__item,
.features-strip__item {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 0 30px;
	justify-content: center;
}

.features__icon,
.features-strip__icon {
	flex-shrink: 0;
	color: var(--color-primary);
	width: 45px;
	height: 45px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.3s ease;
}

.features__icon:hover,
.features-strip__icon:hover {
	transform: scale(1.05);
}

.features__icon svg,
.features-strip__icon svg {
	width: 100%;
	height: 100%;
}

.features__text,
.features-strip__text {
	flex: 1;
}

.features__title,
.features__text h3,
.features-strip__text h4 {
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-dark);
	margin: 0 0 4px 0;
	line-height: 1.3;
}

.features__desc,
.features__text p,
.features-strip__text p {
	font-family: var(--font-body);
	font-size: 0.85rem;
	color: var(--color-text-light);
	line-height: 1.4;
	margin: 0;
}

/* Vertical separator */
.features__separator,
.features-strip__separator {
	width: 1px;
	height: 50px;
	background: var(--color-border);
	flex-shrink: 0;
}


/* ==========================================================================
   4. PRODUCTS SECTION
   ========================================================================== */

.products,
.products-section {
	padding: 80px 0;
	background: var(--color-white);
}

.products .section-title,
.products-section .section-title {
	text-transform: uppercase;
	letter-spacing: 2px;
	font-size: 1.75rem;
}

.products__grid,
.products-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-top: 40px;
}

/* Product card */
.products__card,
.product-card {
	position: relative;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	overflow: hidden;
	transition: all var(--transition);
	display: flex;
	flex-direction: column;
}

/* Red bottom-border line that expands on hover */
.products__card::after,
.product-card::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 2px;
	background: var(--color-primary);
	transition: width 0.4s ease, left 0.4s ease;
	z-index: 2;
}

.products__card:hover::after,
.product-card:hover::after {
	width: 100%;
	left: 0;
}

.products__card:hover,
.product-card:hover {
	border-color: var(--color-primary);
	box-shadow: 0 12px 30px rgba(213, 6, 22, 0.08);
	transform: translateY(-4px);
}

.products__card-link {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	flex: 1;
}

/* Product image wrapper */
.products__image-wrap,
.product-card__image {
	position: relative;
	aspect-ratio: 1 / 1;
	background: var(--color-light);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.products__image,
.product-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.products__card:hover .products__image,
.product-card:hover .product-card__image img {
	transform: scale(1.05);
}

.product-card__image .placeholder-img {
	min-height: 0;
	height: 100%;
	border: 0;
	border-radius: 0;
}

/* Sale badge — on-brand red */
.products__badge,
.product-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: 4px;
	z-index: 2;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Product info */
.products__info,
.product-card__info {
	padding: 16px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.products__category {
	font-family: var(--font-body);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--color-primary);
	margin-bottom: 6px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

/* Star rating */
.products__rating,
.product-card__rating {
	display: flex;
	gap: 2px;
	margin-bottom: 8px;
}

.products__star--full,
.product-card__rating .star {
	color: #f5a623;
	font-size: 0.9rem;
	line-height: 1;
}

.products__star--half {
	color: #f5a623;
	font-size: 0.9rem;
	line-height: 1;
	opacity: 0.6;
}

.products__star--empty,
.product-card__rating .star--empty {
	color: #dddddd;
	font-size: 0.9rem;
	line-height: 1;
}

/* Product name */
.products__name,
.product-card__name {
	font-family: var(--font-heading);
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--color-dark);
	margin: 0 0 8px 0;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Product price */
.products__price,
.product-card__price {
	margin-top: auto;
	padding-bottom: 4px;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-dark);
}

.products__price .woocommerce-Price-amount,
.product-card__price .woocommerce-Price-amount {
	font-family: var(--font-heading);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-dark);
}

.products__price .woocommerce-Price-currencySymbol {
	font-size: 0.85rem;
	font-weight: 600;
}

.products__price del,
.product-card__price del {
	font-size: 0.85rem;
	color: var(--color-text-light);
	font-weight: 400;
	margin-right: 8px;
	opacity: 0.5;
}

.products__price del .woocommerce-Price-amount {
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--color-text-light);
}

.products__price ins,
.product-card__price ins {
	text-decoration: none;
	color: var(--color-primary);
}

.products__price ins .woocommerce-Price-amount,
.product-card__price ins .woocommerce-Price-amount {
	color: var(--color-primary);
}

/* Card footer with button */
.products__card-footer {
	padding: 12px 16px 16px;
}

.btn--small {
	padding: 8px 20px;
	font-size: 0.82rem;
}

/* Products section footer */
.products__footer,
.products-section__footer {
	text-align: center;
	margin-top: 40px;
}

.products__empty {
	text-align: center;
	font-family: var(--font-body);
	font-size: 1rem;
	color: var(--color-text-light);
	padding: 40px 20px;
}

/* Staggered reveal for product cards */
.products__grid .products__card:nth-child(1) { transition-delay: 0s; }
.products__grid .products__card:nth-child(2) { transition-delay: 0.08s; }
.products__grid .products__card:nth-child(3) { transition-delay: 0.16s; }
.products__grid .products__card:nth-child(4) { transition-delay: 0.24s; }
.products__grid .products__card:nth-child(5) { transition-delay: 0.32s; }
.products__grid .products__card:nth-child(6) { transition-delay: 0.4s; }
.products__grid .products__card:nth-child(7) { transition-delay: 0.48s; }
.products__grid .products__card:nth-child(8) { transition-delay: 0.56s; }

.products-grid .product-card:nth-child(1) { transition-delay: 0s; }
.products-grid .product-card:nth-child(2) { transition-delay: 0.08s; }
.products-grid .product-card:nth-child(3) { transition-delay: 0.16s; }
.products-grid .product-card:nth-child(4) { transition-delay: 0.24s; }


/* ==========================================================================
   5. PROMO SECTION - Dark promotional banner
   Rich charcoal gradient, not pure black
   ========================================================================== */

.promo,
.promo-section {
	position: relative;
	padding: 0;
	background: linear-gradient(135deg, #1c1c1c 0%, #252525 100%);
	min-height: 350px;
	overflow: hidden;
}

/* Decorative red diagonal stripe on the left */
.promo__stripe {
	position: absolute;
	top: -50%;
	left: -5%;
	width: 200px;
	height: 200%;
	background: linear-gradient(
		180deg,
		transparent 0%,
		rgba(213, 6, 22, 0.06) 30%,
		rgba(213, 6, 22, 0.1) 50%,
		rgba(213, 6, 22, 0.06) 70%,
		transparent 100%
	);
	transform: rotate(15deg);
	pointer-events: none;
}

.promo__wrapper {
	display: flex;
	min-height: 350px;
	position: relative;
	z-index: 1;
}

/* Left: image */
.promo__visual,
.promo__image {
	flex: 1;
	max-width: 50%;
	position: relative;
}

.promo__visual .promo__img,
.promo__image .promo__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.placeholder-img--promo {
	min-height: 350px;
	border-radius: var(--radius-lg);
	background: #141414;
	border: 1px solid rgba(213, 6, 22, 0.1);
	box-shadow:
		0 0 40px rgba(213, 6, 22, 0.08),
		0 0 80px rgba(213, 6, 22, 0.04);
}

.promo__visual .placeholder-img,
.promo__image .placeholder-img {
	min-height: 100%;
	height: 100%;
	border-radius: 0;
	border: 0;
}

/* Right: content */
.promo__content {
	flex: 1;
	max-width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 60px;
	color: var(--color-white);
}

.promo__label {
	display: inline-block;
	font-family: var(--font-body);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 3px;
	color: var(--color-primary);
	text-transform: uppercase;
	margin-bottom: 8px;
}

/* Red accent line below the label */
.promo__label::after {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	background: var(--color-primary);
	margin-top: 10px;
}

.promo__title {
	font-family: var(--font-heading);
	font-size: 2.5rem;
	font-weight: 800;
	text-transform: uppercase;
	line-height: 1.15;
	color: var(--color-white);
	margin: 0 0 16px 0;
}

.promo__description {
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.6);
	margin: 0 0 30px 0;
	max-width: 400px;
}

.promo__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}


/* ==========================================================================
   6. CATEGORIES SECTION
   ========================================================================== */

.categories {
	padding: 80px 0;
	background: var(--color-light);
}

.categories__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 24px;
}

.categories__card {
	display: block;
	background: var(--color-white);
	border: 1px solid var(--color-light-2);
	border-top: 2px solid transparent;
	border-radius: var(--radius);
	overflow: hidden;
	text-decoration: none;
	transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.categories__card:hover {
	border-color: var(--color-primary);
	border-top-color: var(--color-primary);
	box-shadow: var(--shadow);
	transform: translateY(-4px);
}

/* Thumbnail area */
.categories__thumb {
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--color-light);
}

.categories__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.categories__card:hover .categories__image {
	transform: scale(1.05);
}

/* Placeholder for categories without images */
.categories__placeholder {
	width: 100%;
	height: 100%;
	background: var(--color-dark-2);
	display: flex;
	align-items: center;
	justify-content: center;
}

.categories__initial {
	font-family: var(--font-heading);
	font-size: 3rem;
	font-weight: 800;
	color: rgba(var(--color-primary-rgb), 0.2);
}

/* Overlay gradient (for image cards) */
.categories__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(28, 28, 28, 0.8) 0%,
		rgba(28, 28, 28, 0.2) 50%,
		rgba(28, 28, 28, 0.05) 100%
	);
	transition: background var(--transition);
	z-index: 1;
}

.categories__card:hover .categories__overlay {
	background: linear-gradient(
		to top,
		rgba(28, 28, 28, 0.85) 0%,
		rgba(28, 28, 28, 0.35) 50%,
		rgba(28, 28, 28, 0.15) 100%
	);
}

/* Category info */
.categories__info {
	padding: 16px 20px;
}

.categories__name {
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-dark);
	margin: 0 0 4px 0;
}

.categories__count {
	font-family: var(--font-body);
	font-size: 0.82rem;
	color: var(--color-text-light);
}

.categories__empty {
	text-align: center;
	font-family: var(--font-body);
	font-size: 1rem;
	color: var(--color-text-light);
	padding: 40px 20px;
}

/* --- home-categories (alternative card-style layout) --- */

.home-categories {
	padding: 80px 0;
	background: var(--color-light);
}

.home-categories__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 20px;
	margin-top: 40px;
}

.home-categories__card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-top: 2px solid transparent;
	border-radius: var(--radius);
	overflow: hidden;
	text-align: center;
	transition: all var(--transition);
	text-decoration: none;
	color: inherit;
	display: block;
}

.home-categories__card:hover {
	border-color: var(--color-primary);
	border-top-color: var(--color-primary);
	box-shadow: var(--shadow);
	transform: translateY(-3px);
}

.home-categories__card-image {
	aspect-ratio: 1 / 1;
	background: var(--color-light);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.home-categories__card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.home-categories__card:hover .home-categories__card-image img {
	transform: scale(1.05);
}

.home-categories__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-light);
	font-size: 3rem;
	font-weight: 800;
	color: var(--color-primary);
	opacity: 0.3;
}

.home-categories__name {
	padding: 16px 12px 4px;
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-dark);
	margin: 0;
}

.home-categories__count {
	padding: 0 12px 16px;
	font-family: var(--font-body);
	font-size: 0.85rem;
	color: var(--color-text-light);
	margin: 0;
}


/* ==========================================================================
   7. CTA SECTION
   ========================================================================== */

.cta {
	position: relative;
	background: var(--color-primary);
	padding: 80px 0;
	overflow: hidden;
}

/* Pattern overlay — slightly more visible for depth */
.cta__pattern {
	position: absolute;
	inset: 0;
	background-image:
		repeating-linear-gradient(
			45deg,
			transparent,
			transparent 20px,
			rgba(0, 0, 0, 0.06) 20px,
			rgba(0, 0, 0, 0.06) 21px
		),
		repeating-linear-gradient(
			-45deg,
			transparent,
			transparent 20px,
			rgba(0, 0, 0, 0.06) 20px,
			rgba(0, 0, 0, 0.06) 21px
		);
	pointer-events: none;
}

.cta__wrapper {
	position: relative;
	z-index: 1;
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}

.cta__title {
	font-family: var(--font-heading);
	font-size: 2.2rem;
	font-weight: 700;
	color: var(--color-white);
	margin: 0 0 12px 0;
	line-height: 1.2;
}

.cta__description {
	font-family: var(--font-body);
	font-size: 1.05rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.8);
	margin: 0 0 24px 0;
}

.cta__phone {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	font-family: var(--font-heading);
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--color-white);
	margin-bottom: 32px;
}

.cta__phone-icon {
	opacity: 0.8;
}

.cta__actions,
.cta__action {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

/* Dark button in CTA */
.btn--dark {
	background-color: var(--color-dark);
	color: var(--color-white);
	border: 2px solid var(--color-dark);
	padding: 14px 36px;
	font-family: var(--font-heading);
	font-size: 0.95rem;
	font-weight: 600;
	border-radius: var(--radius);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all var(--transition);
	cursor: pointer;
	letter-spacing: 0.5px;
}

.btn--dark:hover {
	background-color: var(--color-dark-2);
	border-color: var(--color-dark-2);
	transform: translateY(-2px);
}

/* Centered CTA variant */
.home-cta {
	padding: 60px 0;
	background: var(--color-primary);
	text-align: center;
	color: var(--color-white);
	position: relative;
	overflow: hidden;
}

.home-cta h2 {
	font-family: var(--font-heading);
	font-size: 2rem;
	font-weight: 800;
	margin: 0 0 10px 0;
	color: var(--color-white);
}

.home-cta p {
	font-family: var(--font-body);
	font-size: 1.05rem;
	color: rgba(255, 255, 255, 0.85);
	margin: 0 0 10px 0;
}

.home-cta__phone {
	font-family: var(--font-heading);
	font-size: 2rem;
	font-weight: 800;
	display: block;
	margin-bottom: 25px;
	color: var(--color-white);
}

.home-cta__actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

.home-cta .btn--dark {
	background: #1c1c1c;
	color: var(--color-white);
	border-color: #1c1c1c;
}

.home-cta .btn--dark:hover {
	background: var(--color-dark-2);
	border-color: var(--color-dark-2);
}

.home-cta .btn--outline-white {
	background: transparent;
	border-color: var(--color-white);
	color: var(--color-white);
}

.home-cta .btn--outline-white:hover {
	background: var(--color-white);
	color: var(--color-primary);
}


/* ==========================================================================
   RESPONSIVE - 1200px
   ========================================================================== */

@media (max-width: 1200px) {

	/* Hero */
	.hero__title {
		font-size: 3.2rem;
	}

	.hero__subtitle {
		font-size: 1.3rem;
	}

	.hero__content {
		max-width: 500px;
	}

	/* Banners */
	.banners__grid {
		gap: 16px;
	}

	.banners__card {
		height: 240px;
	}

	/* Features */
	.features__item,
	.features-strip__item {
		padding: 0 16px;
	}

	/* Products: 3 columns */
	.products__grid,
	.products-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	/* Promo */
	.promo__title {
		font-size: 2rem;
	}

	/* CTA */
	.cta__phone {
		font-size: 1.5rem;
	}
}


/* ==========================================================================
   RESPONSIVE - 992px (Tablet)
   ========================================================================== */

@media (max-width: 992px) {

	/* Hero */
	.hero {
		min-height: 500px;
	}

	.hero .container {
		flex-direction: column-reverse;
		align-items: flex-start;
		padding-top: 100px;
		padding-bottom: 120px;
		min-height: 500px;
		gap: 30px;
	}

	.hero__content {
		max-width: 100%;
	}

	.hero__product {
		max-width: 100%;
		width: 100%;
	}

	.hero__product-img {
		height: 250px;
		object-fit: cover;
		border-radius: var(--radius-lg);
	}

	/* Slider arrows smaller */
	.hero__arrow,
	.hero__nav-prev,
	.hero__nav-next {
		width: 40px;
		height: 40px;
	}

	.hero__arrow--prev,
	.hero__nav-prev {
		left: 15px;
	}

	.hero__arrow--next,
	.hero__nav-next {
		right: 15px;
	}

	/* Banners */
	.banners {
		margin-top: -50px;
	}

	.banners__grid {
		gap: 12px;
	}

	/* Products: 2 columns */
	.products__grid,
	.products-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Promo: stack vertically */
	.promo__wrapper {
		flex-direction: column;
		min-height: auto;
	}

	.promo__visual,
	.promo__image {
		max-width: 100%;
		min-height: 250px;
	}

	.promo__content {
		max-width: 100%;
		padding: 40px 30px;
	}

	/* Categories */
	.categories__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.home-categories__grid {
		grid-template-columns: repeat(3, 1fr);
	}

	/* CTA */
	.cta__wrapper {
		max-width: 100%;
	}

	.cta__title {
		font-size: 1.8rem;
	}
}


/* ==========================================================================
   RESPONSIVE - 768px (Mobile)
   ========================================================================== */

@media (max-width: 768px) {

	/* Hero */
	.hero__title {
		font-size: 2.4rem;
		letter-spacing: -0.5px;
	}

	.hero__subtitle {
		font-size: 1.1rem;
		letter-spacing: 1px;
	}

	.hero__description {
		font-size: 0.95rem;
		max-width: 100%;
	}

	.hero__actions {
		flex-direction: column;
		gap: 12px;
	}

	.hero__actions .btn {
		width: 100%;
		text-align: center;
		justify-content: center;
	}

	/* Hide slider arrows on mobile */
	.hero__arrow,
	.hero__nav-prev,
	.hero__nav-next {
		width: 40px;
		height: 40px;
	}

	.hero__arrow--prev,
	.hero__nav-prev {
		left: 12px;
	}

	.hero__arrow--next,
	.hero__nav-next {
		right: 12px;
	}

	.hero__decoration--lines {
		width: 300px;
		height: 300px;
	}

	.hero__decoration--dots {
		width: 100px;
		height: 100px;
	}

	/* Banners: full width on mobile */
	.banners {
		margin-top: -40px;
	}

	.banners .container {
		padding-left: 0;
		padding-right: 0;
		max-width: 100%;
	}

	.banners__grid {
		grid-template-columns: 1fr;
		gap: 20px;
		padding-left: 20px;
		padding-right: 20px;
	}

	.banners__item {
		border-radius: 0;
		aspect-ratio: 16 / 9;
		box-shadow: none;
	}

	/* Features: stack vertically */
	.features__strip,
	.features-strip__grid {
		flex-direction: column;
		gap: 24px;
	}

	.features__item,
	.features-strip__item {
		padding: 0;
		width: 100%;
		justify-content: flex-start;
	}

	/* Separator becomes horizontal */
	.features__separator,
	.features-strip__separator {
		width: 80%;
		height: 1px;
		margin: 0 auto;
	}

	/* Products */
	.products__grid,
	.products-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.products__info,
	.product-card__info {
		padding: 12px;
	}

	.products__name,
	.product-card__name {
		font-size: 0.9rem;
	}

	.products__price .woocommerce-Price-amount {
		font-size: 1rem;
	}

	.products__badge {
		width: 40px;
		height: 40px;
		font-size: 0.65rem;
	}

	.products__card-footer {
		padding: 10px 12px 14px;
	}

	/* Promo */
	.promo__wrapper {
		padding: 40px 0;
	}

	.promo__visual,
	.promo__image {
		max-width: 100%;
		width: 100%;
	}

	.promo__content {
		padding: 20px;
	}

	.promo__title {
		font-size: 1.75rem;
	}

	/* Categories */
	.categories__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.home-categories__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* CTA */
	.cta {
		padding: 60px 0;
	}

	.cta__title {
		font-size: 1.6rem;
	}

	.cta__phone {
		font-size: 1.3rem;
		flex-wrap: wrap;
	}

	.cta__actions {
		flex-direction: column;
		align-items: stretch;
	}

	/* Home CTA */
	.home-cta h2 {
		font-size: 1.6rem;
	}

	.home-cta__phone {
		font-size: 1.6rem;
	}

	.home-cta__actions {
		flex-direction: column;
		align-items: center;
	}
}


/* ==========================================================================
   RESPONSIVE - 480px (Small mobile)
   ========================================================================== */

@media (max-width: 480px) {

	/* Hero */
	.hero__title {
		font-size: 2rem;
		letter-spacing: -0.5px;
	}

	.hero__subtitle {
		font-size: 1rem;
	}

	.hero__label {
		font-size: 0.7rem;
		letter-spacing: 2px;
	}

	/* Hide arrows */
	.hero__arrow,
	.hero__nav-prev,
	.hero__nav-next {
		display: none;
	}

	/* Banners */
	.banners__card,
	.banners__card:last-child {
		height: 200px;
	}

	.banners__title {
		font-size: 1.1rem;
	}

	/* Products: 2 columns on small mobile */
	.products__grid,
	.products-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Categories: 2 columns on small mobile */
	.categories__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.home-categories__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* CTA */
	.cta__phone {
		font-size: 1.1rem;
	}

	/* Promo */
	.promo__title {
		font-size: 1.5rem;
	}

	.promo__description {
		font-size: 0.9rem;
	}
}
