.omosi-promo-fab,
.omosi-promo-action,
.omosi-promo-remove {
	border: 0;
	border-radius: 999px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.omosi-promo-fab {
	position: fixed;
	z-index: 9998;
	right: 22px;
	bottom: 22px;
	max-width: calc(100vw - 32px);
	padding: 13px 19px;
	background: #76245e;
	color: #fff;
	box-shadow: 0 8px 28px rgba(40, 15, 34, .22);
}
.omosi-promo-fab[hidden], .omosi-promo-modal[hidden], .omosi-promo-entry [hidden] { display: none !important; }
.omosi-promo-modal { position: fixed; z-index: 10000; inset: 0; display: grid; place-items: center; padding: 18px; }
.omosi-promo-modal__backdrop { position: absolute; inset: 0; background: rgba(22, 14, 20, .55); }
.omosi-promo-modal__panel {
	position: relative;
	width: min(100%, 460px);
	padding: 30px;
	border-radius: 16px;
	background: #fffafc;
	color: #2a1b25;
	box-shadow: 0 20px 70px rgba(0, 0, 0, .24);
}
.omosi-promo-modal__panel h2 { margin: 3px 24px 10px 0; font-size: clamp(24px, 5vw, 32px); line-height: 1.15; }
.omosi-promo-modal__panel p { line-height: 1.55; }
.omosi-promo-modal__close { position: absolute; top: 10px; right: 13px; border: 0; background: transparent; font-size: 30px; cursor: pointer; color: #4b3444; }
.omosi-promo-eyebrow { margin: 0; color: #76245e; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.omosi-promo-email-form { display: grid; gap: 9px; margin-top: 18px; }
.omosi-promo-email-form label, .omosi-promo-entry label { font-weight: 600; }
.omosi-promo-email-form input, .omosi-promo-entry input { min-width: 0; width: 100%; padding: 12px 13px; border: 1px solid #d9c8d4; border-radius: 8px; background: #fff; color: #21131c; font: inherit; box-sizing: border-box; }
.omosi-promo-action { padding: 12px 16px; background: #76245e; color: #fff; }
.omosi-promo-action:disabled { cursor: wait; opacity: .7; }
.omosi-promo-footnote { margin: 16px 0 0; color: #6c5b66; font-size: 12px; }
.omosi-promo-status { min-height: 1.4em; margin: 8px 0 0; color: #55434f; font-size: 13px; }
.omosi-promo-status[data-state="success"] { color: #17623e; }
.omosi-promo-status[data-state="error"] { color: #a12345; }
.omosi-promo-entry { margin: 16px 0; padding: 14px; border: 1px solid #ead8e3; border-radius: 10px; background: #fff9fc; }
.omosi-promo-entry__controls { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; margin-top: 8px; }
.omosi-promo-entry__controls .omosi-promo-action, .omosi-promo-remove { white-space: nowrap; }
.omosi-promo-remove { padding: 10px 13px; background: #f1e4ec; color: #76245e; }
.omosi-summary__pay-heading { margin-top: 16px; padding-top: 12px; border-top: 1px solid rgba(70, 35, 58, .15); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
@media (max-width: 600px) {
	.omosi-promo-fab { right: 12px; bottom: 12px; padding: 11px 15px; font-size: 14px; }
	.omosi-promo-modal__panel { padding: 24px 20px; }
	.omosi-promo-entry__controls { grid-template-columns: minmax(0, 1fr) auto; }
	.omosi-promo-entry__controls input { grid-column: 1 / -1; }
	.omosi-promo-entry__controls .omosi-promo-action { grid-column: 1 / 2; }
}
