.promo-banner {
	--promo-surface: var(--color-warm-bg);
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-lg);
	color: var(--color-off-black);
	background-color: var(--promo-surface);
	box-shadow: var(--shadow-sm);
}

.promo-banner--bg-light {
	--promo-surface: var(--color-light-bg);
}

.promo-banner--bg-warm {
	--promo-surface: var(--color-warm-bg);
}

.promo-banner--bg-offwhite {
	--promo-surface: var(--color-off-white);
}

.promo-banner--bg-dark {
	--promo-surface: var(--color-violet);
	color: var(--color-off-white);
}

.promo-banner--bg-image {
	background-image: var(--promo-bg-image);
	background-size: cover;
	background-position: center;
}

.promo-banner--theme-dark {
	color: var(--color-off-white);
}

.promo-banner__surface {
	position: absolute;
	inset: 0;
	z-index: 4;
}

.promo-banner__inner {
	position: relative;
	z-index: 2;
	display: grid;
	min-height: clamp(330px, 34vw, 520px);
	gap: clamp(var(--spacing-20), 4vw, var(--spacing-34));
	padding: clamp(var(--spacing-24), 4vw, 56px);
}

.promo-banner--layout-split .promo-banner__inner {
	grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
	align-items: stretch;
}

.promo-banner--layout-center .promo-banner__inner {
	max-width: 920px;
}

.promo-banner__body {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	max-width: 760px;
}

.promo-banner__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-10);
	margin-bottom: var(--spacing-20);
}

.promo-banner__badge,
.promo-banner__term {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: var(--spacing-6) var(--spacing-14);
	border-radius: var(--radius-pill);
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-semibold);
	line-height: 1.2;
	background-color: var(--color-white);
	color: var(--color-off-black);
}

.promo-banner__badge {
	background-color: var(--color-blue);
	color: var(--color-white);
}

.promo-banner--theme-dark .promo-banner__term {
	background-color: rgba(244, 246, 248, 0.12);
	color: var(--color-off-white);
}

.promo-banner__title {
	max-width: 12ch;
	color: currentColor;
	font-size: clamp(34px, 5vw, 76px);
	line-height: var(--line-height-tight);
	font-weight: var(--font-weight-bold);
}

.promo-banner__subtitle {
	max-width: 680px;
	margin-top: var(--spacing-20);
	color: currentColor;
	font-size: clamp(var(--font-size-lg), 2vw, 28px);
	line-height: var(--line-height-heading);
	font-weight: var(--font-weight-medium);
}

.promo-banner__text {
	max-width: 620px;
	margin-top: var(--spacing-15);
	color: var(--color-gray);
	font-size: var(--font-size-md);
	line-height: var(--line-height-body);
}

.promo-banner--theme-dark .promo-banner__text {
	color: rgba(244, 246, 248, 0.78);
}

.promo-banner__list {
	display: grid;
	gap: var(--spacing-10);
	margin-top: var(--spacing-24);
	font-size: var(--font-size-base);
	line-height: var(--line-height-heading);
}

.promo-banner__item {
	display: flex;
	align-items: flex-start;
	gap: var(--spacing-10);
	max-width: 620px;
}

.promo-banner__item-icon {
	margin-top: 2px;
	color: var(--color-blue);
	font-size: 20px;
}

.promo-banner--theme-dark .promo-banner__item-icon {
	color: var(--color-off-white);
}

.promo-banner__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--spacing-10);
	margin-top: var(--spacing-24);
}

.promo-banner__price strong {
	color: currentColor;
	font-size: clamp(28px, 3vw, 44px);
	line-height: var(--line-height-tight);
	font-weight: var(--font-weight-bold);
}

.promo-banner__price del {
	color: var(--color-gray);
	font-size: var(--font-size-lg);
	text-decoration-thickness: 1px;
}

.promo-banner--theme-dark .promo-banner__price del {
	color: rgba(244, 246, 248, 0.58);
}

.promo-banner__price span {
	color: var(--color-gray);
	font-size: var(--font-size-sm);
}

.promo-banner--theme-dark .promo-banner__price span {
	color: rgba(244, 246, 248, 0.7);
}

.promo-banner__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-10);
	margin-top: var(--spacing-32);
}

.promo-banner__media {
	position: relative;
	display: flex;
	align-items: stretch;
	justify-content: center;
	min-width: 0;
}

.promo-banner__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 100%;
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-color: rgba(255, 255, 255, 0.28);
}

.promo-banner__glow,
.promo-banner__ring {
	position: absolute;
	pointer-events: none;
}

.promo-banner__glow {
	width: 58%;
	aspect-ratio: 1;
	border-radius: var(--radius-pill);
	background-color: var(--color-warm-surface);
	filter: blur(30px);
	opacity: 0.55;
}

.promo-banner__ring {
	display: none;
	inset: clamp(24px, 5vw, 70px);
	border: var(--frame-border);
	border-radius: var(--radius-lg);
}

.promo-banner__media-img {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	width: min(82%, 430px);
	max-height: 92%;
	object-fit: contain;
	filter: drop-shadow(0 20px 22px rgba(0, 0, 0, 0.12));
}

.promo-banner--glow-none .promo-banner__stage {
	background-color: transparent;
}

.promo-banner--glow-none .promo-banner__glow {
	display: none;
}

.promo-banner--glow-blue .promo-banner__glow {
	background-color: var(--color-off-white);
}

.promo-banner--glow-offwhite .promo-banner__glow {
	background-color: var(--color-white);
}

.promo-banner--glow-violet .promo-banner__stage {
	background-color: var(--color-violet);
}

.promo-banner--glow-violet .promo-banner__glow {
	background-color: var(--color-off-white);
	opacity: 0.2;
}

.promo-banner--glow-ring .promo-banner__stage {
	background-color: transparent;
}

.promo-banner--glow-ring .promo-banner__glow {
	display: none;
}

.promo-banner--glow-ring .promo-banner__ring {
	display: block;
}

.promo-banner--fit-bottom .promo-banner__stage {
	align-items: flex-end;
}

.promo-banner--fit-bottom .promo-banner__media-img {
	width: auto;
	height: 100%;
	max-height: none;
	object-fit: contain;
	object-position: bottom;
}

.promo-banner--fit-bottom .promo-banner__stage::after {
	content: "";
	position: absolute;
	left: 10%;
	right: 10%;
	bottom: 0;
	height: 18%;
	border-radius: var(--radius-pill) var(--radius-pill) 0 0;
	background-color: rgba(255, 255, 255, 0.28);
	filter: blur(16px);
}

.promo-banner--view-compact {
	display: flex;
	min-height: 100%;
	padding: var(--frame-pad);
	border: var(--frame-border);
	border-radius: var(--frame-radius);
	background-color: transparent;
	box-shadow: none;
}

.promo-banner--view-compact::before {
	content: "";
	position: absolute;
	inset: var(--frame-pad);
	z-index: 0;
	border-radius: var(--frame-radius-inner);
	background-color: var(--promo-surface);
	pointer-events: none;
	transition: inset var(--transition-base), border-radius var(--transition-base);
}

.promo-banner--view-compact:hover::before,
.promo-banner--view-compact:focus-within::before {
	inset: 0;
	border-radius: var(--frame-radius);
}

.promo-banner--view-compact:hover .promo-banner__inner,
.promo-banner--view-compact:focus-within .promo-banner__inner {
	clip-path: inset(calc(-1 * var(--frame-pad)) round var(--frame-radius));
}

.promo-banner--view-compact .promo-banner__inner {
	position: relative;
	z-index: 1;
	display: block;
	flex: 1;
	min-height: 430px;
	padding: var(--spacing-24);
	border-radius: var(--frame-radius-inner);
	background-color: transparent;
	overflow: visible;
	clip-path: inset(0 round var(--frame-radius-inner));
	transition: clip-path var(--transition-base);
}

.promo-banner--view-compact.promo-banner--bg-image::before {
	background-image: var(--promo-bg-image);
	background-size: cover;
	background-position: center;
}

.promo-banner--view-compact.promo-banner--bg-image {
	background-image: none;
}

.promo-banner--view-compact.promo-banner--bg-image .promo-banner__inner {
	background-image: none;
}

.promo-banner--view-compact.promo-banner--layout-split .promo-banner__inner {
	grid-template-columns: none;
}

.promo-banner--view-compact .promo-banner__body {
	position: relative;
	z-index: 3;
	justify-content: flex-start;
	width: 66%;
	min-height: 382px;
	max-width: none;
	padding-bottom: 72px;
}

.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__body {
	width: 61%;
}

.promo-banner--view-compact.promo-banner--layout-center .promo-banner__body {
	width: 100%;
	padding-bottom: 72px;
}

.promo-banner--view-compact .promo-banner__badges {
	gap: var(--spacing-6);
	margin-bottom: var(--spacing-15);
}

.promo-banner--view-compact .promo-banner__badge,
.promo-banner--view-compact .promo-banner__term {
	min-height: 30px;
	padding: var(--spacing-5) var(--spacing-10);
	font-size: var(--font-size-xs);
}

.promo-banner--view-compact .promo-banner__title {
	max-width: 13ch;
	font-size: clamp(27px, 2.25vw, 34px);
	line-height: 1.05;
}

.promo-banner--view-compact .promo-banner__subtitle {
	margin-top: var(--spacing-14);
	font-size: clamp(var(--font-size-base), 1.4vw, var(--font-size-lg));
	line-height: var(--line-height-heading);
}

.promo-banner--view-compact .promo-banner__text {
	margin-top: var(--spacing-10);
	font-size: var(--font-size-sm);
	line-height: var(--line-height-heading);
}

.promo-banner--view-compact .promo-banner__list {
	margin-top: var(--spacing-15);
	font-size: var(--font-size-sm);
	line-height: var(--line-height-heading);
	gap: var(--spacing-6);
}

.promo-banner--view-compact .promo-banner__item {
	gap: var(--spacing-6);
}

.promo-banner--view-compact .promo-banner__item-icon {
	font-size: 17px;
}

.promo-banner--view-compact .promo-banner__price {
	position: absolute;
	left: 0;
	bottom: 0;
	margin-top: var(--spacing-20);
	gap: var(--spacing-6);
}

.promo-banner--view-compact .promo-banner__price strong {
	font-size: clamp(25px, 2.1vw, 32px);
}

.promo-banner--view-compact .promo-banner__price del,
.promo-banner--view-compact .promo-banner__price span {
	font-size: var(--font-size-sm);
}

.promo-banner--view-compact .promo-banner__media {
	position: absolute;
	z-index: 1;
	right: -5%;
	top: 24%;
	bottom: -3%;
	width: 49%;
	height: auto;
	min-height: 0;
	transition: bottom var(--transition-base), transform var(--transition-base);
}

.promo-banner--view-compact:hover .promo-banner__media,
.promo-banner--view-compact:focus-within .promo-banner__media {
	bottom: calc(-1 * var(--frame-pad));
}

.promo-banner--view-compact .promo-banner__stage {
	min-height: 0;
	height: 100%;
	overflow: visible;
	border-radius: 0;
	background-color: transparent;
	transform-origin: center;
	transition: transform var(--transition-base);
}

.promo-banner--view-compact:hover .promo-banner__stage,
.promo-banner--view-compact:focus-within .promo-banner__stage {
	transform: scale(1.035);
}

.promo-banner--view-compact .promo-banner__glow {
	width: 72%;
	filter: blur(34px);
	opacity: 0.58;
}

.promo-banner--view-compact .promo-banner__ring {
	inset: 12%;
	border-radius: var(--radius-lg);
}

.promo-banner--view-compact .promo-banner__media-img {
	width: 112%;
	max-width: none;
	max-height: 96%;
	filter: drop-shadow(0 18px 18px rgba(0, 0, 0, 0.12));
}

.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__media {
	right: -7%;
	top: 22%;
	bottom: -10%;
}

.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__media-img {
	width: auto;
	height: 112%;
	max-height: none;
}

.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__stage {
	transform-origin: center bottom;
}

.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__stage::after {
	left: 8%;
	right: 2%;
	bottom: 4%;
	height: 14%;
}

.promo-banner--view-compact.promo-banner--media-doctor.promo-banner--fit-bottom .promo-banner__media {
	top: 8%;
	bottom: 0;
}

.promo-banner--view-compact.promo-banner--media-doctor.promo-banner--fit-bottom:hover .promo-banner__media,
.promo-banner--view-compact.promo-banner--media-doctor.promo-banner--fit-bottom:focus-within .promo-banner__media {
	bottom: calc(-1 * var(--frame-pad));
}

.promo-banner--view-compact.promo-banner--media-doctor.promo-banner--fit-bottom .promo-banner__media-img {
	height: 100%;
}

.promo-banner--view-compact.promo-banner--media-doctor.promo-banner--fit-bottom .promo-banner__stage::after {
	bottom: 0;
}

.promo-banner--view-compact.promo-banner--media-image.promo-banner--fit-bottom .promo-banner__media {
	top: 12%;
	bottom: 0;
}

.promo-banner--view-compact.promo-banner--media-image.promo-banner--fit-bottom:hover .promo-banner__media,
.promo-banner--view-compact.promo-banner--media-image.promo-banner--fit-bottom:focus-within .promo-banner__media {
	bottom: calc(-1 * var(--frame-pad));
}

.promo-banner--view-compact.promo-banner--media-image.promo-banner--fit-bottom .promo-banner__stage::after {
	bottom: 0;
}

.promo-banner--view-compact.promo-banner--glow-ring .promo-banner__media {
	right: -3%;
	top: 30%;
	bottom: 2%;
}

.promo-banner--view-compact.promo-banner--glow-ring .promo-banner__media-img {
	width: 104%;
	max-height: 92%;
}

.promo-banner--compact-scale-near-full {
	--promo-compact-media-height: 95%;
}

.promo-banner--compact-scale-three-quarter {
	--promo-compact-media-height: 75%;
}

.promo-banner--compact-scale-half {
	--promo-compact-media-height: 50%;
}

.promo-banner--compact-scale-quarter {
	--promo-compact-media-height: 25%;
}

.promo-banner--view-compact.promo-banner--compact-scale-near-full .promo-banner__media,
.promo-banner--view-compact.promo-banner--compact-scale-three-quarter .promo-banner__media,
.promo-banner--view-compact.promo-banner--compact-scale-half .promo-banner__media,
.promo-banner--view-compact.promo-banner--compact-scale-quarter .promo-banner__media {
	top: 0;
	bottom: 0;
}

.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-near-full .promo-banner__media,
.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-three-quarter .promo-banner__media,
.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-half .promo-banner__media,
.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-quarter .promo-banner__media {
	top: 0;
	bottom: 0;
}

.promo-banner--view-compact.promo-banner--compact-scale-near-full .promo-banner__media-img,
.promo-banner--view-compact.promo-banner--compact-scale-three-quarter .promo-banner__media-img,
.promo-banner--view-compact.promo-banner--compact-scale-half .promo-banner__media-img,
.promo-banner--view-compact.promo-banner--compact-scale-quarter .promo-banner__media-img {
	width: auto;
	height: var(--promo-compact-media-height);
	max-width: none;
	max-height: none;
}

.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-near-full .promo-banner__media-img,
.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-three-quarter .promo-banner__media-img,
.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-half .promo-banner__media-img,
.promo-banner--view-compact.promo-banner--fit-bottom.promo-banner--compact-scale-quarter .promo-banner__media-img {
	height: var(--promo-compact-media-height);
}

.promo-banner__cta {
	position: absolute;
	z-index: 3;
	right: clamp(var(--spacing-20), 2.4vw, var(--spacing-32));
	bottom: clamp(var(--spacing-20), 2.4vw, var(--spacing-32));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--radius-pill);
	background-color: var(--color-white);
	color: var(--color-blue);
	font-size: 24px;
}

.promo-banner--theme-dark .promo-banner__cta {
	background-color: rgba(244, 246, 248, 0.12);
	color: var(--color-off-white);
}

.promo-banner--view-modal {
	--promo-modal-inner-pad: clamp(var(--spacing-20), 3vw, var(--spacing-32));
	box-shadow: none;
}

.promo-banner--view-modal.promo-banner--layout-split .promo-banner__inner {
	grid-template-columns: minmax(0, 0.95fr) minmax(300px, 0.7fr);
}

.promo-banner--view-modal .promo-banner__inner {
	min-height: auto;
	gap: clamp(var(--spacing-15), 3vw, var(--spacing-24));
	padding: var(--promo-modal-inner-pad);
	padding-bottom: 0;
}

.promo-banner--view-modal .promo-banner__body {
	max-width: none;
	justify-content: center;
	padding-bottom: var(--promo-modal-inner-pad);
}

.promo-banner--view-modal .promo-banner__badges {
	gap: var(--spacing-6);
	margin-bottom: var(--spacing-14);
}

.promo-banner--view-modal .promo-banner__badge,
.promo-banner--view-modal .promo-banner__term {
	min-height: 30px;
	padding: var(--spacing-5) var(--spacing-10);
	font-size: var(--font-size-xs);
}

.promo-banner--view-modal .promo-banner__title {
	max-width: 18ch;
	font-size: clamp(28px, 3vw, 44px);
	line-height: 1.05;
}

.promo-banner--view-modal .promo-banner__subtitle {
	max-width: 520px;
	margin-top: var(--spacing-14);
	font-size: clamp(var(--font-size-base), 1.4vw, var(--font-size-lg));
	line-height: var(--line-height-heading);
}

.promo-banner--view-modal .promo-banner__text {
	max-width: 540px;
	margin-top: var(--spacing-10);
	font-size: var(--font-size-base);
}

.promo-banner--view-modal .promo-banner__list {
	margin-top: var(--spacing-15);
	gap: var(--spacing-6);
	font-size: var(--font-size-sm);
}

.promo-banner--view-modal .promo-banner__item {
	gap: var(--spacing-6);
}

.promo-banner--view-modal .promo-banner__item-icon {
	font-size: 17px;
}

.promo-banner--view-modal .promo-banner__price {
	margin-top: var(--spacing-15);
}

.promo-banner--view-modal .promo-banner__price strong {
	font-size: clamp(26px, 3vw, 36px);
}

.promo-banner--view-modal .promo-banner__actions {
	margin-top: var(--spacing-20);
}

.promo-banner--view-modal .promo-banner__media {
	align-items: flex-end;
	min-height: 280px;
}

.promo-banner--view-modal .promo-banner__stage {
	align-items: flex-end;
	min-height: auto;
	aspect-ratio: 1 / 1;
	overflow: visible;
	border-radius: 0;
	background-color: transparent;
}

.promo-banner--view-modal .promo-banner__glow,
.promo-banner--view-modal .promo-banner__ring,
.promo-banner--view-modal.promo-banner--fit-bottom .promo-banner__stage::after {
	display: none;
}

.promo-banner--view-modal .promo-banner__media-img {
	width: min(98%, 430px);
	max-height: 94%;
	object-position: center bottom;
	filter: drop-shadow(0 14px 16px rgba(0, 0, 0, 0.1));
}

.promo-banner--view-modal.promo-banner--fit-bottom .promo-banner__media-img {
	width: min(112%, 430px);
	height: auto;
	max-width: none;
	max-height: 112%;
}

.promo-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	padding: var(--spacing-32);
	background-color: rgba(22, 22, 22, 0.48);
	overflow: auto;
}

.promo-modal.is-open {
	display: grid;
	place-items: center;
}

.promo-modal__panel {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(980px, 100%);
	max-height: calc(100vh - var(--spacing-32) * 2);
	max-height: calc(100dvh - var(--spacing-32) * 2);
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-color: var(--color-light-bg);
	box-shadow: var(--shadow-sm);
}

.promo-modal__panel:focus {
	outline: none;
}

.promo-modal__content::-webkit-scrollbar {
	width: var(--spacing-6);
	height: var(--spacing-6);
}

.promo-modal__content::-webkit-scrollbar-track {
	background-color: var(--color-light-bg);
	border-radius: var(--radius-pill);
	margin-block: var(--spacing-24);
}

.promo-modal__content::-webkit-scrollbar-thumb {
	background-color: color-mix(in srgb, var(--color-gray) 40%, var(--color-light-bg));
	border-radius: var(--radius-pill);
}

.promo-modal__content::-webkit-scrollbar-thumb:hover {
	background-color: var(--color-gray);
}

.promo-modal__close {
	position: absolute;
	top: var(--spacing-10);
	right: var(--spacing-10);
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	border-radius: var(--radius-pill);
	background-color: var(--color-white);
	color: var(--color-off-black);
	box-shadow: var(--shadow-sm);
}

.promo-modal__body {
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	padding: var(--spacing-10);
}

.promo-modal__body > .promo-banner {
	flex: none;
}

.promo-modal__content {
	min-height: 0;
	overflow: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: color-mix(in srgb, var(--color-gray) 40%, var(--color-light-bg)) var(--color-light-bg);
	width: auto;
	margin: 0;
	padding: clamp(var(--spacing-20), 3vw, var(--spacing-32));
	background-color: transparent;
	border-radius: 0;
}

.promo-modal__content.promo-single {
	font-size: var(--font-size-md);
}

.promo-modal__content.promo-single > * + * {
	margin-top: var(--spacing-15);
}

@media (max-width: 980px) {
	.promo-banner--layout-split .promo-banner__inner,
	.promo-banner--view-modal.promo-banner--layout-split .promo-banner__inner {
		grid-template-columns: 1fr;
	}

	.promo-banner__body {
		max-width: none;
	}

	.promo-banner__media {
		min-height: 240px;
	}

	.promo-banner--view-compact .promo-banner__media {
		min-height: 0;
	}

	.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__stage {
		margin-bottom: 0;
	}

	.promo-banner--view-modal .promo-banner__media {
		min-height: 240px;
	}

	.promo-banner--view-modal .promo-banner__stage {
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 640px) {
	.promo-banner__inner,
	.promo-banner--view-compact .promo-banner__inner {
		padding: var(--spacing-20);
	}

	.promo-banner__title,
	.promo-banner--view-compact .promo-banner__title,
	.promo-banner--view-modal .promo-banner__title {
		max-width: 100%;
	}

	.promo-banner--view-modal .promo-banner__inner {
		padding: var(--promo-modal-inner-pad);
		padding-bottom: 0;
	}

	.promo-banner--view-modal .promo-banner__media {
		min-height: 210px;
	}

	.promo-banner--view-modal .promo-banner__actions,
	.promo-banner--view-modal .promo-banner__actions .btn {
		width: 100%;
	}

	.promo-banner--view-compact .promo-banner__inner {
		display: flex;
		flex-direction: column;
		gap: 0;
		min-width: 0;
		min-height: auto;
		padding: var(--spacing-15) var(--spacing-15) 0;
	}

	.promo-banner--view-compact .promo-banner__body,
	.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__body,
	.promo-banner--view-compact.promo-banner--layout-center .promo-banner__body {
		width: 100%;
		min-width: 0;
		min-height: 0;
		padding-bottom: 0;
		overflow-wrap: anywhere;
	}

	.promo-banner--view-compact .promo-banner__badges {
		flex-wrap: nowrap;
		max-width: 100%;
		margin-bottom: var(--spacing-10);
	}

	.promo-banner--view-compact .promo-banner__term {
		flex-shrink: 0;
		white-space: nowrap;
	}

	.promo-banner--view-compact .promo-banner__title {
		font-size: clamp(var(--font-size-xl), 5vw, var(--font-size-heading));
		line-height: var(--line-height-tight);
	}

	.promo-banner--view-compact .promo-banner__subtitle,
	.promo-banner--view-compact .promo-banner__list {
		margin-top: var(--spacing-10);
	}

	.promo-banner.promo-banner--view-compact .promo-banner__inner .promo-banner__media {
		position: relative;
		right: auto;
		top: auto;
		bottom: auto;
		width: calc(100% + var(--spacing-15) * 2);
		height: clamp(calc(var(--spacing-34) * 5), 48vw, calc(var(--spacing-34) * 6));
		flex-grow: 1;
		flex-shrink: 0;
		margin-top: 0;
		margin-inline: calc(-1 * var(--spacing-15));
		padding-top: var(--spacing-20);
	}

	.promo-banner--view-compact:hover .promo-banner__media,
	.promo-banner--view-compact:focus-within .promo-banner__media,
	.promo-banner--view-compact.promo-banner--media-doctor.promo-banner--fit-bottom:hover .promo-banner__media,
	.promo-banner--view-compact.promo-banner--media-doctor.promo-banner--fit-bottom:focus-within .promo-banner__media,
	.promo-banner--view-compact.promo-banner--media-image.promo-banner--fit-bottom:hover .promo-banner__media,
	.promo-banner--view-compact.promo-banner--media-image.promo-banner--fit-bottom:focus-within .promo-banner__media {
		bottom: auto;
	}

	.promo-banner--view-compact .promo-banner__stage {
		position: absolute;
		inset: var(--spacing-20) 0 0;
		height: auto;
		align-items: flex-end;
		min-height: 0;
		overflow: hidden;
		border-radius: 0;
		background-color: transparent;
	}

	.promo-banner--view-compact .promo-banner__stage::after,
	.promo-banner--view-compact .promo-banner__glow,
	.promo-banner--view-compact .promo-banner__ring {
		display: none;
	}

	.promo-banner--view-compact .promo-banner__media-img,
	.promo-banner--view-compact.promo-banner--fit-bottom .promo-banner__media-img {
		width: auto;
		height: 100%;
		max-width: 100%;
		max-height: none;
	}

	.promo-banner--view-compact .promo-banner__media .promo-banner__stage .promo-banner__media-img {
		width: auto;
		height: 100%;
		max-width: 150%;
		max-height: 100%;
		object-fit: contain;
		object-position: center bottom;
		filter: none;
	}

	.promo-banner--view-compact .promo-banner__price {
		position: static;
		margin-top: var(--spacing-14);
	}

	.promo-banner--view-compact.promo-banner--layout-center .promo-banner__inner {
		padding-bottom: var(--spacing-15);
	}

	.promo-banner--view-compact.promo-banner--layout-center .promo-banner__cta {
		position: static;
		align-self: flex-end;
		flex-shrink: 0;
		margin-top: var(--spacing-15);
	}

	.promo-banner__actions {
		width: 100%;
	}

	.promo-banner__actions .btn {
		width: 100%;
	}

	.promo-banner__cta {
		right: var(--spacing-15);
		bottom: var(--spacing-15);
		background-color: var(--color-white);
		color: var(--color-blue);
		box-shadow: var(--shadow-sm);
	}

	.promo-banner--theme-dark .promo-banner__cta {
		background-color: var(--color-white);
		color: var(--color-blue);
	}

	.promo-modal {
		padding-top: max(var(--spacing-24), env(safe-area-inset-top));
		padding-right: max(var(--spacing-10), env(safe-area-inset-right));
		padding-bottom: max(var(--spacing-24), env(safe-area-inset-bottom));
		padding-left: max(var(--spacing-10), env(safe-area-inset-left));
	}

	.promo-modal__panel {
		max-height: calc(100vh - max(var(--spacing-24), env(safe-area-inset-top)) - max(var(--spacing-24), env(safe-area-inset-bottom)));
		max-height: calc(100dvh - max(var(--spacing-24), env(safe-area-inset-top)) - max(var(--spacing-24), env(safe-area-inset-bottom)));
	}

	.promo-modal__content {
		padding: var(--spacing-20);
	}
}

@media (max-width: 980px) {
	.promo-modal__panel {
		display: block;
		overflow: auto;
		overscroll-behavior: contain;
	}

	.promo-modal__body {
		display: block;
		overflow: visible;
	}

	.promo-modal__content {
		overflow: visible;
	}

	.promo-modal__close {
		position: sticky;
		left: 100%;
		right: auto;
		margin: var(--spacing-10) var(--spacing-10) calc(-1 * (44px + var(--spacing-10))) auto;
	}
}

@media (min-width: 981px) and (max-height: 600px) {
	.promo-modal .promo-banner--view-modal {
		--promo-modal-inner-pad: var(--spacing-10);
	}

	.promo-modal .promo-banner__title,
	.promo-modal .promo-banner__price strong {
		font-size: var(--font-size-xl);
	}

	.promo-modal .promo-banner__subtitle,
	.promo-modal .promo-banner__text {
		font-size: var(--font-size-sm);
	}

	.promo-modal .promo-banner__badges {
		margin-bottom: var(--spacing-5);
	}

	.promo-modal .promo-banner__badge,
	.promo-modal .promo-banner__term {
		min-height: var(--spacing-24);
	}

	.promo-modal .promo-banner__subtitle,
	.promo-modal .promo-banner__text,
	.promo-modal .promo-banner__price,
	.promo-modal .promo-banner__actions {
		margin-top: var(--spacing-5);
	}

	.promo-modal .promo-banner__actions .btn {
		min-height: var(--spacing-34);
		padding: var(--spacing-6) var(--spacing-14);
		font-size: var(--font-size-sm);
	}

	.promo-modal .promo-banner__media {
		min-height: 0;
	}
}
