/* Featured/promo hero + trending row (homepage). Built entirely from
   tokens.css custom properties, so light/dark is automatic — no
   dark-mode-specific rules here. The hero image scrim is the one
   exception (fixed rgba over a photo, same technique as
   .gs-platform-banner::before in home.css), since it needs to stay
   legible regardless of site theme. See mosioc/design-system.md */

.gs-hero-promo {
	position: relative;
	max-width: 1440px;
	margin-inline: auto;
	margin-block-start: var(--space-8);
	border-radius: var(--radius-xl);
	overflow: hidden;
	box-shadow: var(--shadow-md);
}

.gs-hero-promo__track {
	position: relative;
	min-height: 480px;
	/* Let the page still scroll vertically by default; hero-promo.js only
	   calls preventDefault() once a drag is clearly more horizontal than
	   vertical, so a horizontal swipe/mouse-drag changes slides instead of
	   scrolling or selecting text. */
	touch-action: pan-y;
	user-select: none;
	cursor: grab;
}

.gs-hero-promo__track:active {
	cursor: grabbing;
}

.gs-hero-promo__slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	background-size: cover;
	background-position: center;
	opacity: 0;
	visibility: hidden;
	z-index: 0;
	transition: opacity var(--transition-base);
}

.gs-hero-promo__slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

.gs-hero-promo__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(10, 11, 13, .85) 0%, rgba(10, 11, 13, .35) 45%, rgba(10, 11, 13, .05) 75%);
}

.gs-hero-promo__content {
	position: relative;
	padding: var(--space-8);
	max-width: 640px;
}

.gs-hero-promo__content .gs-platform-row {
	margin-block-end: var(--space-3);
}

.gs-hero-promo__content .gs-badge--platform {
	background: rgba(255, 255, 255, .1);
	border-color: rgba(255, 255, 255, .3);
	color: #fff;
}

.gs-hero-promo__title {
	margin: 0 0 var(--space-4);
	font-size: var(--font-3xl);
	line-height: 1.25;
}

.gs-hero-promo__title a {
	color: #fff;
	text-decoration: none;
}

.gs-hero-promo__title a:hover {
	color: var(--accent);
}

.gs-hero-promo__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-4);
}

.gs-hero-promo__price {
	font-size: var(--font-xl);
	font-weight: 700;
	color: #fff;
}

.gs-hero-promo__price del {
	color: rgba(255, 255, 255, .6);
	/* see .price del in woocommerce.css re: ss02 needing >= 500 */
	font-weight: 500 !important;
	font-size: var(--font-sm);
	margin-inline-end: var(--space-2);
}

/* "انتخاب گزینه‌ها" / add-to-cart — frosted glass over the cover photo,
   matching the header/theme-toggle treatment, instead of the solid --accent
   fill buttons get everywhere else on the site. */
.gs-hero-promo__meta a.button {
	background: color-mix(in srgb, var(--accent) 70%, transparent);
	border-color: rgba(255, 255, 255, .3);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}

.gs-hero-promo__meta a.button:hover {
	background: color-mix(in srgb, var(--accent-hover) 75%, transparent);
	border-color: rgba(255, 255, 255, .3);
}

.gs-hero-promo__dots {
	position: absolute;
	inset-block-end: var(--space-4);
	inset-inline-end: var(--space-4);
	z-index: 2;
	display: flex;
	gap: var(--space-2);
}

.gs-hero-promo__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: var(--radius-full);
	background: rgba(255, 255, 255, .4);
	cursor: pointer;
	transition: background-color var(--transition-fast);
}

.gs-hero-promo__dot.is-active {
	background: var(--accent);
}

@media (max-width: 781px) {
	.gs-hero-promo__track {
		min-height: 380px;
	}

	.gs-hero-promo__content {
		padding: var(--space-5);
		max-width: 100%;
	}

	.gs-hero-promo__title {
		font-size: var(--font-2xl);
	}
}
