/**
 * JSD Promo Section
 *
 * An editorial campaign band, not a sale banner: near-black ground, white
 * display headline, one strong call to action, and a great deal of nothing
 * else. No gradients, no imagery, no seasonal decoration — the drama comes
 * entirely from inverting the page and giving the type room.
 *
 * Section chrome comes from section.css; only the composition lives here.
 */

/* Symmetrical, generous padding — this band is a pause in the page, so it does
   not inherit the asymmetric section rhythm used by content sections. */
.jsd-section--promo {
	padding-top: 88px;
	padding-bottom: 88px;
}

.jsd-promo {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 32px 56px;
}

.jsd-promo__copy {
	flex: 1 1 480px;
	min-width: 0;
}

.jsd-section--promo .jsd-promo__eyebrow {
	margin: 0 0 18px;
	color: #a8a8a8;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.jsd-section--promo .jsd-promo__title {
	margin: 0;
	color: #ffffff;
	font-size: clamp(2.25rem, 5.2vw, 4rem);
	font-weight: 800;
	line-height: 0.98;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	text-wrap: balance;
}

.jsd-section--promo .jsd-promo__text {
	max-width: 46ch;
	margin: 20px 0 0;
	color: #c4c4c4;
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.55;
}

/* Actions ---------------------------------------------------------------- */

.jsd-promo__actions {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	padding-bottom: 4px;
}

.jsd-section--promo .jsd-promo__cta {
	display: inline-block;
	padding: 15px 32px;
	border: 1px solid #ffffff;
	border-radius: 2px;
	background: #ffffff;
	color: #000000;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.09em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.jsd-section--promo .jsd-promo__cta:hover,
.jsd-section--promo .jsd-promo__cta:focus-visible {
	border-color: #e5e5e5;
	background: #e5e5e5;
	color: #000000;
}

/* Focus has to read against black, so the ring is white rather than the
   black one used on light sections. */
.jsd-section--promo .jsd-promo__cta:focus-visible,
.jsd-section--promo .jsd-promo__link:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

.jsd-section--promo .jsd-promo__link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding-bottom: 3px;
	border-bottom: 1px solid #333333;
	color: #c4c4c4;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.jsd-section--promo .jsd-promo__link:hover,
.jsd-section--promo .jsd-promo__link:focus-visible {
	border-bottom-color: #ffffff;
	color: #ffffff;
}

.jsd-promo__arrow {
	font-size: 14px;
	line-height: 1;
	transition: transform 0.15s ease;
}

.jsd-section--promo .jsd-promo__link:hover .jsd-promo__arrow,
.jsd-section--promo .jsd-promo__link:focus-visible .jsd-promo__arrow {
	transform: translateX(3px);
}

/* Optional deal grid ----------------------------------------------------- */

.jsd-section--promo .jsd-promo__deals {
	padding: 48px 0 0;
	background: transparent;
}

.jsd-section--promo .jsd-promo__deals .jsd-section__inner {
	max-width: none;
}

/* Responsive ------------------------------------------------------------- */

@media (max-width: 1024px) {
	.jsd-section--promo {
		padding-top: 64px;
		padding-bottom: 64px;
	}

	.jsd-promo {
		gap: 28px 40px;
	}
}

@media (max-width: 767px) {
	.jsd-section--promo {
		padding-top: 52px;
		padding-bottom: 52px;
	}

	.jsd-promo {
		flex-direction: column;
		align-items: stretch;
		gap: 28px;
	}

	.jsd-promo__copy {
		flex: 1 1 auto;
	}

	.jsd-promo__actions {
		align-items: stretch;
		padding-bottom: 0;
	}

	.jsd-section--promo .jsd-promo__cta {
		display: block;
		width: 100%;
		padding: 16px 24px;
	}

	.jsd-section--promo .jsd-promo__link {
		align-self: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jsd-section--promo .jsd-promo__cta,
	.jsd-section--promo .jsd-promo__link,
	.jsd-promo__arrow {
		transition: none;
	}

	.jsd-section--promo .jsd-promo__link:hover .jsd-promo__arrow,
	.jsd-section--promo .jsd-promo__link:focus-visible .jsd-promo__arrow {
		transform: none;
	}
}
