/* HelpAge payment redirect — covers the donation form, status stays in view */

:root {
	--helpage-payment-radius: 10px;
}

body:has(#payment-modal.active) .elementor-field-group-payment_type label:before {
	display: none !important;
}

/* Positioning context for form-scoped overlay — same radius as loader panel */
.donate-form,
#donate-form,
#donate-form-section,
.helpage-payment-modal-host,
.helpage-payment-modal-host.elementor-widget-container,
.e-n-tabs.helpage-payment-modal-host {
	position: relative !important;
}

.helpage-payment-modal-host,
.helpage-payment-modal-host.elementor-widget-container {
	border-radius: var(--helpage-payment-radius) !important;
	overflow: hidden;
}

#payment-modal {
	display: none;
	position: absolute;
	inset: 0;
	width: auto;
	min-width: 100%;
	max-width: none;
	height: auto;
	min-height: 100%;
	z-index: 99999;
	align-items: stretch;
	justify-content: stretch;
	background: #fff;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	align-self: stretch;
}

#payment-modal.active {
	display: flex;
}

/* Fills the tabs/form container; status content stays sticky in view */
#payment-modal .modal-box {
	position: sticky;
	top: max(16px, 12vh);
	width: 100%;
	max-width: none;
	min-height: 280px;
	height: auto;
	margin: 0;
	background: #fdfdfd;
	border-radius: var(--helpage-payment-radius);
	border: 1px solid #ffcc01;
	padding: 48px 24px;
	text-align: center;
	box-sizing: border-box;
	box-shadow: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	align-self: stretch;
}

#payment-modal .loader {
	width: 40px;
	height: 40px;
	margin: 0 auto 18px;
	border: 3px solid #eee;
	border-top-color: #c41230;
	border-radius: 50%;
	animation: helpage-payment-spin 0.8s linear infinite;
	flex-shrink: 0;
}

#payment-modal.is-recovery .loader {
	display: none;
}

#payment-modal.is-recovery .modal-box {
	padding: 28px 20px;
}

@keyframes helpage-payment-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	#payment-modal .loader {
		animation: none;
	}
}

#payment-modal .modal-text {
	font-size: 16px;
	line-height: 1.45;
	color: #222;
	margin: 0 0 8px;
	max-width: 28em;
}

#payment-modal .modal-subtext {
	font-size: 13px;
	line-height: 1.4;
	color: #666;
	margin: 0;
	max-width: 28em;
}

#payment-modal .helpage-payment-recovery-actions {
	margin-top: 20px;
}

#payment-modal .helpage-payment-retry {
	appearance: none;
	border: 0;
	background: #c41230;
	color: #fff;
	font-size: 14px;
	padding: 10px 20px;
	border-radius: 4px;
	cursor: pointer;
}

#payment-modal .helpage-payment-retry:hover,
#payment-modal .helpage-payment-retry:focus {
	background: #a30e28;
}

#payment-modal .helpage-payment-status[aria-live] {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

#donate-btn.helpage-payment-locked,
button.helpage-payment-locked {
	pointer-events: none;
	opacity: 0.7;
}

@media (max-width: 767px) {
	#payment-modal .modal-box {
		top: max(12px, 8vh);
		min-height: 240px;
		padding: 36px 16px;
	}
}

/* Compact donation form validation errors */
#Donation .elementor-message,
#donate-form .elementor-message,
.donate-form .elementor-message,
#donate-form-section .elementor-message,
.helpage-payment-modal-host .elementor-message,
form.elementor-form#Donation .elementor-message {
	font-size: 13px !important;
	line-height: 1.4 !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

#Donation .elementor-message-danger:not(.elementor-help-inline),
#donate-form .elementor-message-danger:not(.elementor-help-inline),
.donate-form .elementor-message-danger:not(.elementor-help-inline),
#donate-form-section .elementor-message-danger:not(.elementor-help-inline),
.helpage-payment-modal-host .elementor-message-danger:not(.elementor-help-inline) {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 10px 0 0;
	padding: 10px 12px;
	border-radius: 6px;
	border: 1px solid #f5c2c7;
	background: #fff5f5;
	color: #9b1c1c !important;
	box-shadow: none;
}

/* Replace Elementor eicon / SVG X with a small warning mark */
#Donation .elementor-message-danger:before,
#donate-form .elementor-message-danger:before,
.donate-form .elementor-message-danger:before,
#donate-form-section .elementor-message-danger:before,
.helpage-payment-modal-host .elementor-message-danger:before,
#Donation .elementor-message-danger.elementor-message-svg:before,
#donate-form .elementor-message-danger.elementor-message-svg:before,
.donate-form .elementor-message-danger.elementor-message-svg:before,
#donate-form-section .elementor-message-danger.elementor-message-svg:before,
.helpage-payment-modal-host .elementor-message-danger.elementor-message-svg:before {
	content: "" !important;
	font-family: inherit !important;
	display: inline-block;
	width: 14px;
	height: 14px;
	min-width: 14px;
	margin: 2px 0 0;
	vertical-align: top;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='8' cy='8' r='7' stroke='%23c41230' stroke-width='1.5'/%3E%3Cpath stroke='%23c41230' stroke-width='1.5' stroke-linecap='round' d='M8 4.5v4.2M8 11.2h.01'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 14px 14px !important;
}

/* Field-level errors: text only, no icon */
#Donation .elementor-form-help-inline:before,
#donate-form .elementor-form-help-inline:before,
.donate-form .elementor-form-help-inline:before,
#donate-form-section .elementor-form-help-inline:before,
.helpage-payment-modal-host .elementor-form-help-inline:before,
#Donation .elementor-form-help-inline.elementor-message-svg:before,
#donate-form .elementor-form-help-inline.elementor-message-svg:before,
.donate-form .elementor-form-help-inline.elementor-message-svg:before {
	display: none !important;
	content: none !important;
	background: none !important;
}

#Donation .elementor-form-help-inline,
#donate-form .elementor-form-help-inline,
.donate-form .elementor-form-help-inline,
#donate-form-section .elementor-form-help-inline,
.helpage-payment-modal-host .elementor-form-help-inline {
	display: block;
	margin-top: 6px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #c41230 !important;
	font-size: 12px !important;
	line-height: 1.35 !important;
	font-weight: 500 !important;
}

#Donation .elementor-field-group.elementor-error,
#donate-form .elementor-field-group.elementor-error,
.donate-form .elementor-field-group.elementor-error,
#donate-form-section .elementor-field-group.elementor-error,
.helpage-payment-modal-host .elementor-field-group.elementor-error {
	margin-bottom: 4px;
}

/* When field-level errors exist, form-level banner is redundant */
#Donation.has-field-errors > .elementor-message-danger:not(.elementor-help-inline),
#donate-form form.has-field-errors > .elementor-message-danger:not(.elementor-help-inline),
.donate-form form.has-field-errors > .elementor-message-danger:not(.elementor-help-inline),
#donate-form-section form.has-field-errors > .elementor-message-danger:not(.elementor-help-inline),
.helpage-payment-modal-host form.has-field-errors > .elementor-message-danger:not(.elementor-help-inline) {
	display: none !important;
}
