/* Product Hero — Figma 1346:117. 2-col text + video poster card.
   Modal styling comes from the shared .rw-video-dialog in global-styles.css. */

.rw-block-product-hero {
	color: var(--rw-color-primary-green);
}

.rw-block-product-hero .layout {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--rw-space-md);
	align-items: start;
}

.rw-block-product-hero .text {
	display: flex;
	flex-direction: column;
	gap: var(--rw-space-md);
}

.rw-block-product-hero .head {
	display: flex;
	flex-direction: column;
	gap: var(--rw-space-md);
	margin-bottom: var(--rw-space-sm); /* 24 + 16 = Figma 40px head → tags */
}

.rw-block-product-hero h1 {
	font-size: var(--rw-h1-md-size);
	line-height: 1.12; /* Figma 58 / 65 — relative so it follows the fluid size */
	letter-spacing: var(--rw-h1-md-tracking);
	color: var(--rw-color-primary-green);
	overflow-wrap: break-word;
	hyphens: auto;
}

.rw-block-product-hero .tags {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--rw-space-xs);
}

.rw-block-product-hero .tag {
	display: inline-flex;
	align-items: center;
	min-height: 1.875rem; /* Figma-exact 30px pill */
	padding: 0 var(--rw-space-sm);
	border-radius: var(--rw-radius-xs);
	background: rgba(100, 105, 113, 0.1); /* Figma-exact pill fill */
	font-family: var(--rw-font-mono);
	font-weight: 500;
	font-size: var(--rw-caption-size);
	line-height: 1;
	letter-spacing: var(--rw-caption-tracking);
	text-transform: uppercase;
	color: var(--rw-color-primary-green);
}

.rw-block-product-hero .description {
	margin: 0;
	max-width: 37.125rem; /* Figma-exact 594px measure */
	color: var(--rw-color-grey-01);
}

.rw-block-product-hero .ctas {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rw-space-sm);
}

/* Media card — poster + dark scrim + caption + optional play affordance. */
.rw-block-product-hero .media-frame {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 648 / 416;
	padding: 0;
	border: 0;
	border-radius: var(--rw-radius-lg);
	overflow: hidden;
	background: var(--rw-color-bg-mist);
	font: inherit;
	color: inherit;
	text-align: left;
}

.rw-block-product-hero button.media-frame { cursor: pointer; }
.rw-block-product-hero button.media-frame:focus-visible {
	outline: none;
	box-shadow: var(--rw-state-focus-ring);
}

.rw-block-product-hero .media-frame::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.4); /* Figma-exact scrim */
}

.rw-block-product-hero .poster {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.rw-block-product-hero button.media-frame:hover .poster { transform: scale(1.04); }

.rw-block-product-hero .play {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	transform: translate(-50%, -50%);
	width: 3.5rem;
	height: 3.4375rem; /* Figma-exact 56×55 */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--rw-radius-xs);
	background: var(--rw-color-glass-bg);
	backdrop-filter: blur(var(--rw-blur-glass));
	-webkit-backdrop-filter: blur(var(--rw-blur-glass));
	transition: background-color .2s ease;
}

.rw-block-product-hero button.media-frame:hover .play { background: var(--rw-color-glass-bg-hover); }
.rw-block-product-hero .play svg { width: 0.6875rem; height: 0.6875rem; }

.rw-block-product-hero .media-caption {
	position: absolute;
	left: var(--rw-space-md);
	bottom: 1.25rem;
	z-index: 2;
	display: flex;
	flex-direction: column;
	font-family: var(--rw-font-text);
	font-weight: 600;
	font-size: var(--rw-p1-size);
	line-height: var(--rw-space-md);
	letter-spacing: var(--rw-p1-tracking);
	color: var(--rw-color-white);
}

.rw-block-product-hero .media-subtitle { color: rgba(255, 255, 255, 0.7); }

@media (prefers-reduced-motion: reduce) {
	.rw-block-product-hero .poster { transition: none; }
	.rw-block-product-hero button.media-frame:hover .poster { transform: none; }
}

@media (max-width: 1023px) {
	/* minmax(0, 1fr): a long unbroken word must not widen the track past the viewport. */
	.rw-block-product-hero .layout { grid-template-columns: minmax(0, 1fr); gap: var(--rw-space-xl); }
}

@media (max-width: 767px) {
	.rw-block-product-hero .head { margin-bottom: 0; }
	.rw-block-product-hero .ctas .rw-btn { flex: 1 1 auto; justify-content: center; }
	.rw-block-product-hero .media-frame { aspect-ratio: 350 / 240; }
}
