.hptwb-bump-form {
	margin: 12px 0 0;
}

/* На отдельной странице объявления кнопка всегда доступна справа снизу. */
.hptwb-bump-form--page {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 99990;
	margin: 0;
}

.hptwb-bump-button,
.hptwb-bump-button.button,
.hptwb-bump-button.hp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 54px;
	padding: 14px 22px;
	border: 0 !important;
	border-radius: 999px !important;
	background: #f43f8f !important;
	background-image: linear-gradient(135deg, #ff5aa5, #e91e78) !important;
	color: #fff !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 10px 28px rgba(233, 30, 120, .38);
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
	animation: hptwb-pulse 2s infinite;
}

.hptwb-bump-button:hover,
.hptwb-bump-button:focus {
	color: #fff !important;
	filter: brightness(1.05);
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 14px 34px rgba(233, 30, 120, .48);
}

.hptwb-bump-button:active {
	transform: translateY(0) scale(.98);
}

.hptwb-bump-button__price {
	display: inline-flex;
	align-items: center;
	font-weight: 800;
}

.hptwb-bump-button__price .woocommerce-Price-amount,
.hptwb-bump-button__price .woocommerce-Price-currencySymbol {
	color: inherit !important;
}

/* В карточке объявления кнопка остаётся обычной и не перекрывает страницу. */
.hptwb-bump-form--block .hptwb-bump-button {
	width: 100%;
	min-height: 46px;
	padding: 11px 16px;
	animation: none;
}

@keyframes hptwb-pulse {
	0% {
		box-shadow: 0 10px 28px rgba(233, 30, 120, .38), 0 0 0 0 rgba(244, 63, 143, .45);
	}
	70% {
		box-shadow: 0 10px 28px rgba(233, 30, 120, .38), 0 0 0 16px rgba(244, 63, 143, 0);
	}
	100% {
		box-shadow: 0 10px 28px rgba(233, 30, 120, .38), 0 0 0 0 rgba(244, 63, 143, 0);
	}
}

.hptwb-notice {
	position: fixed;
	right: 24px;
	bottom: 94px;
	z-index: 99999;
	max-width: 420px;
	padding: 14px 18px;
	border-left: 4px solid #2271b1;
	border-radius: 8px;
	background: #fff !important;
	color: #1d2327 !important;
	box-shadow: 0 8px 30px rgba(0, 0, 0, .18);
}

.hptwb-notice--success { border-left-color: #00a32a; }
.hptwb-notice--error { border-left-color: #d63638; }

@media (prefers-reduced-motion: reduce) {
	.hptwb-bump-button {
		animation: none;
		transition: none;
	}
}

@media (max-width: 600px) {
	.hptwb-bump-form--page {
		left: 16px;
		right: 16px;
		bottom: calc(16px + env(safe-area-inset-bottom));
	}

	.hptwb-bump-form--page .hptwb-bump-button {
		width: 100%;
	}

	.hptwb-notice {
		left: 16px;
		right: 16px;
		bottom: calc(88px + env(safe-area-inset-bottom));
	}
}

.hptwb-bump-button:disabled {
	opacity: .72;
	cursor: wait;
	animation: none;
}

.hptwb-notice a {
	color: #b0004f !important;
	font-weight: 700;
	text-decoration: underline;
}


/* Контрастное уведомление при включённой тёмной теме сайта или системы. */
@media (prefers-color-scheme: dark) {
	.hptwb-notice {
		background: #ffffff !important;
		color: #111111 !important;
		border-color: #d63638 !important;
	}

	.hptwb-notice,
	.hptwb-notice * {
		color: #111111 !important;
	}

	.hptwb-notice a {
		color: #a50046 !important;
	}
}

html.dark .hptwb-notice,
body.dark .hptwb-notice,
.dark-theme .hptwb-notice,
[data-theme="dark"] .hptwb-notice {
	background: #ffffff !important;
	color: #111111 !important;
}

html.dark .hptwb-notice a,
body.dark .hptwb-notice a,
.dark-theme .hptwb-notice a,
[data-theme="dark"] .hptwb-notice a {
	color: #a50046 !important;
}

.hptwb-notice--ajax {
	position: fixed;
	top: 24px;
	left: 50%;
	z-index: 999999;
	max-width: min(520px, calc(100vw - 32px));
	transform: translate(-50%, -12px);
	opacity: 0;
	transition: opacity .2s ease, transform .2s ease;
}

.hptwb-notice--ajax.is-visible {
	transform: translate(-50%, 0);
	opacity: 1;
}

.hptwb-bump-form .hptwb-notice--inline {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 0 10px !important;
	box-sizing: border-box;
}
