.hbw-widget {
	width: 100%;
	--hbw-gap: 14px;
	--hbw-radius: 8px;
	--hbw-shadow: 0 18px 38px rgba(15, 23, 42, 0.2), 0 6px 16px rgba(15, 23, 42, 0.12);
	padding: 12px;
	overflow: visible;
	box-sizing: border-box;
	contain: layout;
}

.hbw-banner {
	display: flex;
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
	overflow: visible;
	gap: var(--hbw-gap);
}

.hbw-col {
	display: flex;
	flex-direction: column;
	height: 100%;
	align-items: center;
	gap: var(--hbw-gap);
}

.hbw-block {
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
	border-radius: var(--hbw-radius);
	box-shadow: var(--hbw-shadow);
	--hbw-hidden-x: 0%;
	--hbw-hidden-y: 0%;
	transition: transform 600ms ease, opacity 600ms ease;
	opacity: 1;
}

.hbw-widget:not(.hbw-widget--ready) .hbw-block {
	opacity: 0;
	transform: translateX(72px) scaleX(0.88);
	transform-origin: right center;
	will-change: transform, opacity;
}

.hbw-widget.hbw-widget--ready .hbw-block {
	transform-origin: right center;
	will-change: auto;
	transition:
		transform 760ms cubic-bezier(0.16, 1, 0.3, 1),
		opacity 520ms ease;
}

.hbw-block--hidden {
	transform: translate(var(--hbw-hidden-x), var(--hbw-hidden-y));
	opacity: 0;
}

.hbw-block--visible {
	transform: translate(0, 0);
	opacity: 1;
}

.hbw-track {
	display: flex;
	height: 100%;
	will-change: transform;
	transition: transform 600ms ease;
}

.hbw-slide {
	min-width: 100%;
	height: 100%;
	position: relative;
	flex-shrink: 0;
}

.hbw-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}

.hbw-slide::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--hbw-overlay-color, rgba(0, 0, 0, 0.25));
}

.hbw-content {
	position: absolute;
	z-index: 2;
	padding: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-width: min(85%, 28rem);
}

.hbw-text {
	line-height: 1.2;
	font-weight: 600;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.hbw-pos-top-left {
	top: 0;
	left: 0;
}

.hbw-pos-top-right {
	top: 0;
	right: 0;
	align-items: flex-end;
	text-align: right;
}

.hbw-pos-bottom-left {
	bottom: 0;
	left: 0;
}

.hbw-pos-bottom-right {
	right: 0;
	bottom: 0;
	align-items: flex-end;
	text-align: right;
}

.hbw-pos-center {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	align-items: center;
	text-align: center;
}

.hbw-full-link {
	position: absolute;
	inset: 0;
	z-index: 3;
}

.hbw-btn {
	position: relative;
	z-index: 4;
	display: inline-flex;
	align-self: flex-start;
	padding: 0.75rem 1.25rem;
	background: rgba(255, 255, 255, 0.92);
	color: #111111;
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.hbw-pos-top-right .hbw-btn,
.hbw-pos-bottom-right .hbw-btn {
	align-self: flex-end;
}

.hbw-pos-center .hbw-btn {
	align-self: center;
}

.hbw-mobile-wrap {
	display: none;
	overflow: visible;
}

.hbw-widget.hbw-widget--ready .hbw-block[data-block="a"]  { transition-delay: 0ms; }
.hbw-widget.hbw-widget--ready .hbw-block[data-block="b1"] { transition-delay: 90ms; }
.hbw-widget.hbw-widget--ready .hbw-block[data-block="b2"] { transition-delay: 160ms; }
.hbw-widget.hbw-widget--ready .hbw-block[data-block="c"]  { transition-delay: 240ms; }
.hbw-widget.hbw-widget--ready .hbw-block[data-block="d1"] { transition-delay: 320ms; }
.hbw-widget.hbw-widget--ready .hbw-block[data-block="d2"] { transition-delay: 400ms; }

.hbw-widget.hbw-widget--ready .hbw-mobile-hero .hbw-block {
	transition-delay: 0ms;
}

.hbw-widget.hbw-widget--ready .hbw-mobile-grid .hbw-mobile-pair:nth-of-type(1) .hbw-block:nth-of-type(1) {
	transition-delay: 80ms;
}

.hbw-widget.hbw-widget--ready .hbw-mobile-grid .hbw-mobile-pair:nth-of-type(1) .hbw-block:nth-of-type(2) {
	transition-delay: 150ms;
}

.hbw-widget.hbw-widget--ready .hbw-mobile-grid .hbw-mobile-pair:nth-of-type(1) .hbw-block:nth-of-type(3) {
	transition-delay: 220ms;
}

.hbw-widget.hbw-widget--ready .hbw-mobile-grid .hbw-mobile-pair:nth-of-type(2) .hbw-block:nth-of-type(1) {
	transition-delay: 290ms;
}

.hbw-widget.hbw-widget--ready .hbw-mobile-grid .hbw-mobile-pair:nth-of-type(2) .hbw-block:nth-of-type(2) {
	transition-delay: 360ms;
}

.hbw-widget.hbw-widget--ready .hbw-mobile-grid .hbw-mobile-pair:nth-of-type(2) .hbw-block:nth-of-type(3) {
	transition-delay: 430ms;
}

.hbw-mobile-hero {
	width: 100%;
}

.hbw-mobile-grid {
	display: flex;
	flex-direction: column;
	gap: var(--hbw-gap);
}

.hbw-mobile-dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 0 1rem;
}

.hbw-dot {
	width: 0.625rem;
	height: 0.625rem;
	border: 0;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.2);
	padding: 0;
	cursor: pointer;
}

.hbw-dot.is-active {
	background: rgba(0, 0, 0, 0.7);
}

@media (max-width: 768px) {
	.hbw-banner {
		display: none;
	}

	.hbw-mobile-wrap {
		display: block;
	}

	.hbw-mobile-pair {
		display: flex;
		gap: var(--hbw-gap);
		height: 220px;
	}

	.hbw-mobile-pair--flip {
		flex-direction: row-reverse;
	}

	.hbw-mobile-tall {
		flex: 1;
	}

	.hbw-mobile-short-col {
		display: flex;
		flex-direction: column;
		gap: var(--hbw-gap);
		flex: 1;
	}

	.hbw-mobile-card {
		height: 100%;
	}

	.hbw-mobile-card--short {
		flex: 1;
	}

	.hbw-content {
		padding: 0.75rem;
		max-width: calc(100% - 1.5rem);
	}

	.hbw-text {
		font-size: inherit;
	}

	.hbw-btn {
		padding: 0.625rem 1rem;
		font-size: 0.8125rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hbw-block,
	.hbw-track {
		transition: none;
	}

	.hbw-widget:not(.hbw-widget--ready) .hbw-block,
	.hbw-widget.hbw-widget--ready .hbw-block {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
