/**
 * Phone OTP Login/Signup frontend styles.
 */

.wcpols-container,
.wcpols-container *,
.wcpols-container *::before,
.wcpols-container *::after {
	box-sizing: border-box !important;
}

.wcpols-container {
	--wcpols-primary: #1a609b;
	--wcpols-button-text: #ffffff;
	--wcpols-background: #ffffff;
	--wcpols-text: #102a43;
	width: 100% !important;
	max-width: 470px !important;
	margin: 24px auto !important;
	color: var(--wcpols-text) !important;
	font-family: inherit !important;
}

.wcpols-container .wcpols-card {
	width: 100% !important;
	padding: 28px !important;
	border: 1px solid rgba(15, 23, 42, 0.1) !important;
	border-radius: 18px !important;
	background: var(--wcpols-background) !important;
	box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08) !important;
	overflow: hidden !important;
}

.wcpols-container .wcpols-header {
	margin: 0 0 20px !important;
	text-align: center !important;
}

.wcpols-container .wcpols-phone-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 58px !important;
	height: 58px !important;
	margin: 0 0 13px !important;
	border-radius: 50% !important;
	background: color-mix(in srgb, var(--wcpols-primary) 12%, transparent) !important;
	color: var(--wcpols-primary) !important;
}

.wcpols-container .wcpols-title {
	margin: 0 0 6px !important;
	padding: 0 !important;
	color: var(--wcpols-text) !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

.wcpols-container .wcpols-subtitle {
	margin: 0 !important;
	color: color-mix(in srgb, var(--wcpols-text) 68%, transparent) !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
}

.wcpols-container .wcpols-tabs {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 6px !important;
	width: 100% !important;
	margin: 0 0 18px !important;
	padding: 5px !important;
	border-radius: 12px !important;
	background: rgba(15, 23, 42, 0.055) !important;
}

.wcpols-container .wcpols-tab {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 8px 12px !important;
	border: 0 !important;
	border-radius: 9px !important;
	background: transparent !important;
	color: var(--wcpols-text) !important;
	font: inherit !important;
	font-size: 14px !important;
	font-weight: 650 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}

.wcpols-container .wcpols-tab.is-active {
	background: var(--wcpols-primary) !important;
	color: var(--wcpols-button-text) !important;
	box-shadow: 0 5px 14px color-mix(in srgb, var(--wcpols-primary) 22%, transparent) !important;
}

.wcpols-container .wcpols-progress {
	display: flex !important;
	align-items: flex-start !important;
	justify-content: center !important;
	width: 100% !important;
	margin: 0 0 18px !important;
	padding: 0 4px !important;
}

.wcpols-container .wcpols-progress-step {
	display: flex !important;
	flex: 0 0 auto !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 4px !important;
	min-width: 48px !important;
	color: rgba(15, 23, 42, 0.42) !important;
}

.wcpols-container .wcpols-progress-number {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 27px !important;
	height: 27px !important;
	border: 1px solid rgba(15, 23, 42, 0.2) !important;
	border-radius: 50% !important;
	background: #fff !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
}

.wcpols-container .wcpols-progress-label {
	font-size: 11px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
}

.wcpols-container .wcpols-progress-line {
	flex: 1 1 auto !important;
	height: 1px !important;
	max-width: 68px !important;
	margin: 13px 4px 0 !important;
	background: rgba(15, 23, 42, 0.14) !important;
}

.wcpols-container .wcpols-progress-step.is-active,
.wcpols-container .wcpols-progress-step.is-complete {
	color: var(--wcpols-primary) !important;
}

.wcpols-container .wcpols-progress-step.is-active .wcpols-progress-number,
.wcpols-container .wcpols-progress-step.is-complete .wcpols-progress-number {
	border-color: var(--wcpols-primary) !important;
	background: var(--wcpols-primary) !important;
	color: var(--wcpols-button-text) !important;
}

.wcpols-container .wcpols-section[hidden],
.wcpols-container .wcpols-message[hidden],
.wcpols-container .wcpols-spinner[hidden] {
	display: none !important;
}

.wcpols-container .wcpols-section {
	animation: wcpols-fade-in 0.23s ease both !important;
}

@keyframes wcpols-fade-in {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.wcpols-container .wcpols-label {
	display: block !important;
	margin: 0 0 8px !important;
	color: var(--wcpols-text) !important;
	font-size: 14px !important;
	font-weight: 650 !important;
}

.wcpols-container .wcpols-phone-row {
	display: flex !important;
	align-items: stretch !important;
	gap: 9px !important;
	width: 100% !important;
}

.wcpols-container .wcpols-country-select,
.wcpols-container .wcpols-single-country,
.wcpols-container .wcpols-phone-input,
.wcpols-container .wcpols-name-input,
.wcpols-container .wcpols-email-input {
	min-height: 50px !important;
	margin: 0 !important;
	border: 1px solid rgba(15, 23, 42, 0.16) !important;
	border-radius: 11px !important;
	background: var(--wcpols-background) !important;
	color: var(--wcpols-text) !important;
	font: inherit !important;
	outline: none !important;
	box-shadow: none !important;
}

.wcpols-container .wcpols-country-select {
	flex: 0 0 42% !important;
	width: 42% !important;
	padding: 0 11px !important;
}

.wcpols-container .wcpols-single-country {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	min-width: 78px !important;
	padding: 0 14px !important;
	font-weight: 650 !important;
}

.wcpols-container .wcpols-phone-input {
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	padding: 0 14px !important;
}

.wcpols-container .wcpols-name-input,
.wcpols-container .wcpols-email-input {
	display: block !important;
	width: 100% !important;
	margin-bottom: 16px !important;
	padding: 0 14px !important;
}

.wcpols-container .wcpols-country-select:focus,
.wcpols-container .wcpols-phone-input:focus,
.wcpols-container .wcpols-name-input:focus,
.wcpols-container .wcpols-email-input:focus,
.wcpols-container .wcpols-otp-digit:focus {
	border-color: var(--wcpols-primary) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wcpols-primary) 18%, transparent) !important;
}

.wcpols-container .wcpols-field-help {
	margin: 7px 0 16px !important;
	color: color-mix(in srgb, var(--wcpols-text) 65%, transparent) !important;
	font-size: 12px !important;
	line-height: 1.45 !important;
}

.wcpols-container .wcpols-button {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	width: 100% !important;
	min-height: 49px !important;
	margin: 0 !important;
	padding: 11px 17px !important;
	border: 0 !important;
	border-radius: 11px !important;
	background: var(--wcpols-primary) !important;
	color: var(--wcpols-button-text) !important;
	font: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	cursor: pointer !important;
	box-shadow: 0 8px 20px color-mix(in srgb, var(--wcpols-primary) 24%, transparent) !important;
}

.wcpols-container .wcpols-button:hover:not(:disabled) {
	transform: translateY(-1px) !important;
}

.wcpols-container .wcpols-button:active:not(:disabled) {
	transform: translateY(0) scale(0.99) !important;
}

.wcpols-container .wcpols-button:disabled {
	opacity: 0.65 !important;
	cursor: not-allowed !important;
}

.wcpols-container .wcpols-spinner {
	width: 17px !important;
	height: 17px !important;
	border: 2px solid currentColor !important;
	border-right-color: transparent !important;
	border-radius: 50% !important;
	animation: wcpols-spin 0.7s linear infinite !important;
}

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

.wcpols-container .wcpols-message {
	margin: 0 0 16px !important;
	padding: 11px 13px !important;
	border: 1px solid transparent !important;
	border-radius: 10px !important;
	font-size: 13px !important;
	line-height: 1.45 !important;
}

.wcpols-container .wcpols-message.is-success {
	border-color: rgba(22, 163, 74, 0.28) !important;
	background: rgba(22, 163, 74, 0.08) !important;
	color: #166534 !important;
}

.wcpols-container .wcpols-message.is-success::before {
	content: "✓ " !important;
	font-weight: 800 !important;
}

.wcpols-container .wcpols-message.is-error {
	border-color: rgba(220, 38, 38, 0.24) !important;
	background: rgba(220, 38, 38, 0.07) !important;
	color: #991b1b !important;
}

.wcpols-container .wcpols-message.is-info {
	border-color: color-mix(in srgb, var(--wcpols-primary) 25%, transparent) !important;
	background: color-mix(in srgb, var(--wcpols-primary) 8%, transparent) !important;
	color: var(--wcpols-primary) !important;
}

.wcpols-container .wcpols-back-button,
.wcpols-container .wcpols-resend-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--wcpols-primary) !important;
	font: inherit !important;
	font-size: 13px !important;
	font-weight: 650 !important;
	cursor: pointer !important;
	box-shadow: none !important;
}

.wcpols-container .wcpols-back-button {
	padding: 0 0 14px !important;
}

.wcpols-container .wcpols-otp-title {
	margin: 0 0 6px !important;
	padding: 0 !important;
	color: var(--wcpols-text) !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	text-align: center !important;
}

.wcpols-container .wcpols-otp-sent-text {
	margin: 0 0 17px !important;
	color: color-mix(in srgb, var(--wcpols-text) 68%, transparent) !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
	text-align: center !important;
}

.wcpols-container .wcpols-phone-preview {
	display: block !important;
	margin-top: 4px !important;
	color: var(--wcpols-text) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.2px !important;
}

.wcpols-container .wcpols-otp-boxes {
	display: flex !important;
	flex-flow: row nowrap !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: 100% !important;
	margin: 0 0 18px !important;
	padding: 0 !important;
}

.wcpols-container .wcpols-otp-boxes .wcpols-otp-digit {
	display: block !important;
	flex: 0 1 52px !important;
	width: 52px !important;
	min-width: 0 !important;
	max-width: 52px !important;
	height: 54px !important;
	min-height: 54px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(15, 23, 42, 0.18) !important;
	border-radius: 11px !important;
	background: var(--wcpols-background) !important;
	color: var(--wcpols-text) !important;
	font: inherit !important;
	font-size: 23px !important;
	font-weight: 700 !important;
	line-height: 54px !important;
	text-align: center !important;
	caret-color: var(--wcpols-primary) !important;
	outline: none !important;
	box-shadow: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

.wcpols-container .wcpols-otp-boxes .wcpols-otp-digit:focus {
	border-color: var(--wcpols-primary) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wcpols-primary) 18%, transparent) !important;
	transform: translateY(-1px) !important;
}

.wcpols-container .wcpols-resend-area {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 4px !important;
	margin-top: 12px !important;
}

.wcpols-container .wcpols-countdown {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 58px !important;
	height: 28px !important;
	padding: 0 9px !important;
	border: 1px solid rgba(15, 23, 42, 0.1) !important;
	border-radius: 999px !important;
	background: rgba(15, 23, 42, 0.045) !important;
	color: color-mix(in srgb, var(--wcpols-text) 60%, transparent) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	font-variant-numeric: tabular-nums !important;
}

.wcpols-container .wcpols-resend-button {
	padding: 5px 8px !important;
}

.wcpols-container .wcpols-resend-button:disabled {
	color: color-mix(in srgb, var(--wcpols-text) 42%, transparent) !important;
	cursor: not-allowed !important;
}

.wcpols-container .wcpols-profile-title {
	margin: 0 0 7px !important;
	font-size: 20px !important;
	text-align: center !important;
}

.wcpols-container .wcpols-profile-description {
	margin: 0 0 19px !important;
	color: color-mix(in srgb, var(--wcpols-text) 68%, transparent) !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	text-align: center !important;
}

.wcpols-container .wcpols-optional-text {
	font-weight: 400 !important;
	opacity: 0.7 !important;
}

.wcpols-container .wcpols-recaptcha {
	min-height: 0 !important;
}

.wcpols-container .wcpols-footer-text {
	margin: 17px 0 0 !important;
	color: color-mix(in srgb, var(--wcpols-text) 62%, transparent) !important;
	font-size: 12px !important;
	line-height: 1.45 !important;
	text-align: center !important;
}

.wcpols-container.wcpols-shake .wcpols-card {
	animation: wcpols-shake 0.42s ease both !important;
}

@keyframes wcpols-shake {
	0%, 100% { transform: translateX(0); }
	20% { transform: translateX(-6px); }
	40% { transform: translateX(5px); }
	60% { transform: translateX(-4px); }
	80% { transform: translateX(3px); }
}

/**
 * Checkout OTP authentication.
 */

.wcpols-checkout-authentication {
	width: 100% !important;
	margin: 0 0 32px !important;
	padding: 24px !important;
	border: 1px solid rgba(0, 0, 0, 0.1) !important;
	border-radius: 12px !important;
	background: #ffffff !important;
	box-sizing: border-box !important;
}

.wcpols-checkout-authentication *,
.wcpols-checkout-authentication *::before,
.wcpols-checkout-authentication *::after {
	box-sizing: border-box !important;
}

.wcpols-checkout-authentication-header {
	margin-bottom: 18px !important;
	text-align: center !important;
}

.wcpols-checkout-authentication-title {
	margin: 0 0 6px !important;
	padding: 0 !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

.wcpols-checkout-authentication-description {
	margin: 0 !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	opacity: 0.75 !important;
}

.wcpols-checkout-authentication-form .wcpols-container {
	margin-top: 0 !important;
	margin-bottom: 20px !important;
}

.wcpols-checkout-guest-divider {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	margin-top: 20px !important;
	color: rgba(0, 0, 0, 0.55) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-align: center !important;
}

.wcpols-checkout-guest-divider::before,
.wcpols-checkout-guest-divider::after {
	content: "" !important;
	flex: 1 !important;
	height: 1px !important;
	background: rgba(0, 0, 0, 0.14) !important;
}

.wcpols-checkout-guest-divider span {
	flex: 0 0 auto !important;
}

@media screen and (max-width: 520px) {
	.wcpols-container {
		margin: 16px auto !important;
	}

	.wcpols-container .wcpols-card {
		padding: 21px 14px !important;
		border-radius: 14px !important;
	}

	.wcpols-container .wcpols-title {
		font-size: 21px !important;
	}

	.wcpols-container .wcpols-progress {
		margin-bottom: 16px !important;
	}

	.wcpols-container .wcpols-progress-line {
		max-width: 42px !important;
		margin-right: 1px !important;
		margin-left: 1px !important;
	}

	.wcpols-container .wcpols-country-select {
		flex-basis: 43% !important;
		width: 43% !important;
		padding: 0 7px !important;
		font-size: 13px !important;
	}

	.wcpols-container .wcpols-otp-boxes {
		gap: 6px !important;
	}

	.wcpols-container .wcpols-otp-boxes .wcpols-otp-digit {
		flex-basis: 46px !important;
		width: 46px !important;
		max-width: 46px !important;
		height: 50px !important;
		min-height: 50px !important;
		border-radius: 9px !important;
		font-size: 21px !important;
		line-height: 50px !important;
	}

	.wcpols-checkout-authentication {
		padding: 18px 12px !important;
		border-radius: 10px !important;
	}

	.wcpols-checkout-authentication-title {
		font-size: 19px !important;
	}
}

@media screen and (max-width: 390px) {
	.wcpols-container .wcpols-card {
		padding-right: 11px !important;
		padding-left: 11px !important;
	}

	.wcpols-container .wcpols-otp-boxes {
		gap: 4px !important;
	}

	.wcpols-container .wcpols-otp-boxes .wcpols-otp-digit {
		flex-basis: 42px !important;
		width: 42px !important;
		max-width: 42px !important;
		height: 47px !important;
		min-height: 47px !important;
		font-size: 20px !important;
		line-height: 47px !important;
	}
}

@media screen and (max-width: 340px) {
	.wcpols-container .wcpols-otp-boxes {
		gap: 3px !important;
	}

	.wcpols-container .wcpols-otp-boxes .wcpols-otp-digit {
		flex-basis: 38px !important;
		width: 38px !important;
		max-width: 38px !important;
		height: 44px !important;
		min-height: 44px !important;
		font-size: 18px !important;
		line-height: 44px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wcpols-container *,
	.wcpols-container *::before,
	.wcpols-container *::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
/* Popup Login v1.5 Phase 1 */
body.wcpols-popup-open { overflow: hidden; }

.wcpols-floating-button {
	position: fixed;
	z-index: 99990;
	bottom: 24px;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 48px;
	padding: 0 18px;
	border: 0;
	border-radius: 999px;
	background: var(--wcpols-popup-button, #1a609b);
	box-shadow: 0 12px 30px rgba(16, 24, 40, 0.22);
	color: var(--wcpols-popup-button-text, #fff);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: transform .16s ease, box-shadow .16s ease;
}
.wcpols-floating-button:hover,
.wcpols-floating-button:focus { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(16,24,40,.28); color: var(--wcpols-popup-button-text,#fff); }
.wcpols-floating-button.is-bottom-right { right: 24px; }
.wcpols-floating-button.is-bottom-left { left: 24px; }
.wcpols-floating-icon { display: inline-flex; }
.wcpols-popup[hidden] { display: none !important; }
.wcpols-popup { position: fixed; z-index: 99999; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; }
.wcpols-popup-overlay { position: absolute; inset: 0; background: rgba(15,23,42,.66); backdrop-filter: blur(5px); opacity: 0; transition: opacity .18s ease; }
.wcpols-popup-dialog { position: relative; z-index: 1; width: min(100%,580px); max-height: calc(100vh - 48px); overflow-y: auto; border-radius: 18px; background: #fff; box-shadow: 0 28px 80px rgba(15,23,42,.34); opacity: 0; transform: translateY(18px) scale(.97); transition: opacity .18s ease, transform .18s ease; }
.wcpols-popup.is-open .wcpols-popup-overlay,
.wcpols-popup.is-open .wcpols-popup-dialog { opacity: 1; }
.wcpols-popup.is-open .wcpols-popup-dialog { transform: translateY(0) scale(1); }
.wcpols-popup-close { position: sticky; top: 12px; z-index: 3; float: right; width: 38px; height: 38px; margin: 12px 12px -50px 0; border: 1px solid #e5e7eb; border-radius: 50%; background: #fff; color: #334155; font-size: 26px; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(15,23,42,.1); }
.wcpols-popup-content { padding: 18px; }
.wcpols-popup-content .wcpols-container { margin: 0 auto; }

@media (max-width: 600px) {
	.wcpols-popup { align-items: flex-end; padding: 0; }
	.wcpols-popup-dialog { width: 100%; max-height: 92vh; border-radius: 20px 20px 0 0; }
	.wcpols-popup-content { padding: 12px; }
	.wcpols-floating-button { right: 16px; bottom: 16px; left: auto; max-width: calc(100vw - 32px); }
}


/* Popup Login v1.5 Phase 2: triggers, device rules and animations */
.wcpols-popup.animation-fade .wcpols-popup-dialog {
	transform: none;
}

.wcpols-popup.animation-zoom .wcpols-popup-dialog {
	transform: scale(0.92);
}

.wcpols-popup.animation-slide-up .wcpols-popup-dialog {
	transform: translateY(54px);
}

.wcpols-popup.animation-slide-down .wcpols-popup-dialog {
	transform: translateY(-54px);
}

.wcpols-popup.animation-fade.is-open .wcpols-popup-dialog,
.wcpols-popup.animation-zoom.is-open .wcpols-popup-dialog,
.wcpols-popup.animation-slide-up.is-open .wcpols-popup-dialog,
.wcpols-popup.animation-slide-down.is-open .wcpols-popup-dialog {
	transform: none;
}

@media (max-width: 767px) {
	.wcpols-popup-system.is-device-desktop {
		display: none !important;
	}
}

@media (min-width: 768px) {
	.wcpols-popup-system.is-device-mobile {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wcpols-popup-overlay,
	.wcpols-popup-dialog,
	.wcpols-floating-button {
		transition-duration: 0.01ms !important;
	}
}


/* Popup Login v1.5 Phase 3: WooCommerce trigger support */
.wcpols-popup-system .checkout-button.wcpols-login-required {
	position: relative;
}

.wcpols-popup-system .checkout-button.wcpols-login-required::after {
	content: "";
	position: absolute;
	inset: 0;
}


/* ================================================================
 * WCPOLS v1.6 Phase 1 - Premium UI Foundation
 * ================================================================ */

.wcpols-container.is-initialising .wcpols-card {
	position: relative !important;
	min-height: 360px !important;
	color: transparent !important;
	user-select: none !important;
}

.wcpols-container.is-initialising .wcpols-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 20;
	background:
		linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, 0.72) 40%, transparent 60%) -180% 0 / 180% 100% no-repeat,
		linear-gradient(#e9eef5 0 0) 50% 34px / 58px 58px no-repeat,
		linear-gradient(#e9eef5 0 0) 50% 110px / 52% 20px no-repeat,
		linear-gradient(#f1f4f8 0 0) 50% 145px / 70% 12px no-repeat,
		linear-gradient(#eef2f7 0 0) 50% 195px / calc(100% - 56px) 48px no-repeat,
		linear-gradient(#eef2f7 0 0) 28px 263px / calc(100% - 56px) 50px no-repeat,
		linear-gradient(#dce7f2 0 0) 28px 329px / calc(100% - 56px) 49px no-repeat,
		var(--wcpols-background, #fff);
	animation: wcpols-skeleton-shimmer 1.25s ease-in-out infinite !important;
}

.wcpols-container.is-ready .wcpols-card {
	animation: wcpols-card-arrive 0.48s cubic-bezier(0.22, 1, 0.36, 1) both !important;
}

.wcpols-container .wcpols-card {
	transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease !important;
}

.wcpols-container .wcpols-card:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 24px 56px rgba(15, 23, 42, 0.12) !important;
}

.wcpols-container .wcpols-button,
.wcpols-container .wcpols-tab,
.wcpols-floating-button {
	overflow: hidden !important;
	isolation: isolate !important;
	-webkit-tap-highlight-color: transparent !important;
}

.wcpols-container .wcpols-button {
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, opacity 0.2s ease !important;
}

.wcpols-container .wcpols-button:hover:not(:disabled) {
	filter: brightness(1.035) !important;
	box-shadow: 0 11px 26px color-mix(in srgb, var(--wcpols-primary) 30%, transparent) !important;
}

.wcpols-container .wcpols-button.is-loading {
	cursor: progress !important;
	filter: saturate(0.88) !important;
}

.wcpols-container .wcpols-button.is-loading > :not(.wcpols-spinner):not(.wcpols-ripple) {
	opacity: 0.78 !important;
}

.wcpols-ripple {
	position: absolute !important;
	z-index: -1 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.36) !important;
	pointer-events: none !important;
	transform: scale(0) !important;
	animation: wcpols-ripple 0.58s ease-out forwards !important;
}

.wcpols-container.is-verifying .wcpols-otp-boxes {
	animation: wcpols-otp-pulse 1s ease-in-out infinite !important;
}

.wcpols-container.has-verification-success .wcpols-otp-digit,
.wcpols-container.has-authentication-success .wcpols-card {
	animation: wcpols-success-pop 0.52s cubic-bezier(0.34, 1.56, 0.64, 1) both !important;
}

.wcpols-container.has-verification-success .wcpols-otp-digit {
	border-color: #16a34a !important;
	box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.14) !important;
}

.wcpols-container.has-verification-error .wcpols-otp-digit {
	border-color: #dc2626 !important;
	animation: wcpols-error-flash 0.5s ease !important;
}

.wcpols-global-loader[hidden],
.wcpols-toast-region:empty {
	display: none !important;
}

.wcpols-global-loader {
	position: fixed !important;
	inset: 0 !important;
	z-index: 2147483000 !important;
	display: grid !important;
	place-items: center !important;
	opacity: 0 !important;
	pointer-events: none !important;
	transition: opacity 0.18s ease !important;
}

.wcpols-global-loader.is-visible {
	opacity: 1 !important;
	pointer-events: auto !important;
}

.wcpols-global-loader-backdrop {
	position: absolute !important;
	inset: 0 !important;
	background: rgba(15, 23, 42, 0.28) !important;
	backdrop-filter: blur(3px) !important;
}

.wcpols-global-loader-panel {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	min-width: 166px !important;
	padding: 16px 20px !important;
	border: 1px solid rgba(255, 255, 255, 0.65) !important;
	border-radius: 16px !important;
	background: rgba(255, 255, 255, 0.96) !important;
	color: #172033 !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 650 !important;
	box-shadow: 0 22px 70px rgba(15, 23, 42, 0.28) !important;
	transform: translateY(8px) scale(0.96) !important;
	transition: transform 0.2s ease !important;
}

.wcpols-global-loader.is-visible .wcpols-global-loader-panel {
	transform: translateY(0) scale(1) !important;
}

.wcpols-global-loader-spinner {
	width: 24px !important;
	height: 24px !important;
	border: 3px solid rgba(34, 113, 177, 0.2) !important;
	border-top-color: #1a609b !important;
	border-radius: 50% !important;
	animation: wcpols-spin 0.68s linear infinite !important;
}

.wcpols-toast-region {
	position: fixed !important;
	top: max(20px, env(safe-area-inset-top)) !important;
	right: max(20px, env(safe-area-inset-right)) !important;
	z-index: 2147483100 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
	width: min(390px, calc(100vw - 32px)) !important;
	pointer-events: none !important;
}

.wcpols-toast {
	position: relative !important;
	display: grid !important;
	grid-template-columns: 34px minmax(0, 1fr) 28px !important;
	align-items: center !important;
	gap: 10px !important;
	min-height: 62px !important;
	padding: 13px 12px 13px 14px !important;
	overflow: hidden !important;
	border: 1px solid rgba(15, 23, 42, 0.1) !important;
	border-left: 4px solid #1a609b !important;
	border-radius: 14px !important;
	background: rgba(255, 255, 255, 0.98) !important;
	color: #172033 !important;
	box-shadow: 0 18px 50px rgba(15, 23, 42, 0.18) !important;
	pointer-events: auto !important;
	animation: wcpols-toast-enter 0.42s cubic-bezier(0.22, 1, 0.36, 1) both !important;
}

.wcpols-toast.is-success { border-left-color: #16a34a !important; }
.wcpols-toast.is-error { border-left-color: #dc2626 !important; }
.wcpols-toast.is-warning { border-left-color: #d97706 !important; }
.wcpols-toast.is-info { border-left-color: #1a609b !important; }

.wcpols-toast.is-leaving {
	animation: wcpols-toast-leave 0.24s ease forwards !important;
}

.wcpols-toast-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	border-radius: 50% !important;
	background: rgba(34, 113, 177, 0.12) !important;
	color: #1a609b !important;
	font-size: 16px !important;
	font-weight: 800 !important;
}

.wcpols-toast.is-success .wcpols-toast-icon { background: rgba(22, 163, 74, 0.12) !important; color: #15803d !important; }
.wcpols-toast.is-error .wcpols-toast-icon { background: rgba(220, 38, 38, 0.11) !important; color: #b91c1c !important; }
.wcpols-toast.is-warning .wcpols-toast-icon { background: rgba(217, 119, 6, 0.12) !important; color: #b45309 !important; }

.wcpols-toast-message {
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.45 !important;
}

.wcpols-toast-close {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 28px !important;
	height: 28px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: transparent !important;
	color: #64748b !important;
	font-size: 21px !important;
	line-height: 1 !important;
	cursor: pointer !important;
}

.wcpols-toast-close:hover,
.wcpols-toast-close:focus-visible {
	background: rgba(15, 23, 42, 0.07) !important;
	color: #0f172a !important;
	outline: none !important;
}

.wcpols-toast-progress {
	position: absolute !important;
	left: 0 !important;
	bottom: 0 !important;
	height: 3px !important;
	width: 100% !important;
	background: currentColor !important;
	opacity: 0.22 !important;
	transform-origin: left center !important;
	animation: wcpols-toast-progress 4.2s linear forwards !important;
}

.wcpols-toast.is-error .wcpols-toast-progress {
	animation-duration: 6.5s !important;
}

@keyframes wcpols-skeleton-shimmer {
	to { background-position: 180% 0, 50% 34px, 50% 110px, 50% 145px, 50% 195px, 28px 263px, 28px 329px, 0 0; }
}

@keyframes wcpols-card-arrive {
	from { opacity: 0; transform: translateY(12px) scale(0.985); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes wcpols-ripple {
	to { transform: scale(1); opacity: 0; }
}

@keyframes wcpols-otp-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.018); }
}

@keyframes wcpols-success-pop {
	0% { transform: scale(0.96); }
	55% { transform: scale(1.025); }
	100% { transform: scale(1); }
}

@keyframes wcpols-error-flash {
	0%, 100% { background: var(--wcpols-background) !important; }
	50% { background: rgba(220, 38, 38, 0.08) !important; }
}

@keyframes wcpols-toast-enter {
	from { opacity: 0; transform: translateX(32px) scale(0.96); }
	to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes wcpols-toast-leave {
	to { opacity: 0; transform: translateX(24px) scale(0.96); }
}

@keyframes wcpols-toast-progress {
	to { transform: scaleX(0); }
}

@media (max-width: 600px) {
	.wcpols-toast-region {
		top: max(12px, env(safe-area-inset-top)) !important;
		right: 12px !important;
		left: 12px !important;
		width: auto !important;
	}

	.wcpols-toast {
		min-height: 58px !important;
		padding: 11px 10px 11px 12px !important;
	}

	.wcpols-global-loader-panel {
		min-width: 154px !important;
		padding: 14px 17px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wcpols-container *,
	.wcpols-container *::before,
	.wcpols-container *::after,
	.wcpols-global-loader *,
	.wcpols-toast {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}


/* Premium UI v1.6 Phase 2: commercial popup animation engine */
.wcpols-popup {
	--wcpols-popup-duration: 420ms;
	--wcpols-popup-easing: cubic-bezier(.22,1,.36,1);
	perspective: 1200px;
}

.wcpols-popup .wcpols-popup-overlay {
	transition: opacity var(--wcpols-popup-duration) var(--wcpols-popup-easing) !important;
}

.wcpols-popup .wcpols-popup-dialog {
	will-change: transform, opacity;
	backface-visibility: hidden;
	transform-origin: center center;
	transition: none !important;
}

.wcpols-popup.is-opening .wcpols-popup-dialog {
	animation-duration: var(--wcpols-popup-duration) !important;
	animation-timing-function: var(--wcpols-popup-easing) !important;
	animation-fill-mode: both !important;
}

.wcpols-popup.is-closing .wcpols-popup-dialog {
	animation: wcpols-popup-premium-close var(--wcpols-popup-duration) var(--wcpols-popup-easing) both !important;
}

.wcpols-popup.animation-fade.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-fade-in !important; }
.wcpols-popup.animation-scale.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-scale-in !important; }
.wcpols-popup.animation-spring.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-spring-in !important; }
.wcpols-popup.animation-bounce.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-bounce-in !important; }
.wcpols-popup.animation-flip.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-flip-in !important; }
.wcpols-popup.animation-rotate.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-rotate-in !important; }
.wcpols-popup.animation-slide-up.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-slide-up-in !important; }
.wcpols-popup.animation-slide-down.is-opening .wcpols-popup-dialog { animation-name: wcpols-popup-slide-down-in !important; }

.wcpols-popup.animation-fade .wcpols-popup-dialog,
.wcpols-popup.animation-scale .wcpols-popup-dialog,
.wcpols-popup.animation-spring .wcpols-popup-dialog,
.wcpols-popup.animation-bounce .wcpols-popup-dialog,
.wcpols-popup.animation-flip .wcpols-popup-dialog,
.wcpols-popup.animation-rotate .wcpols-popup-dialog,
.wcpols-popup.animation-slide-up .wcpols-popup-dialog,
.wcpols-popup.animation-slide-down .wcpols-popup-dialog {
	opacity: 1;
	transform: none;
}

@keyframes wcpols-popup-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes wcpols-popup-scale-in { from { opacity: 0; transform: scale(.76); } to { opacity: 1; transform: scale(1); } }
@keyframes wcpols-popup-spring-in { 0% { opacity: 0; transform: scale(.68); } 58% { transform: scale(1.075); } 78% { transform: scale(.975); } 91% { transform: scale(1.012); } 100% { opacity: 1; transform: scale(1); } }
@keyframes wcpols-popup-bounce-in { 0% { opacity: 0; transform: translateY(-84px) scale(.94); } 55% { transform: translateY(15px) scale(1.01); } 74% { transform: translateY(-8px); } 88% { transform: translateY(4px); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes wcpols-popup-flip-in { from { opacity: 0; transform: rotateX(-78deg) scale(.88); } 70% { transform: rotateX(8deg) scale(1.01); } to { opacity: 1; transform: rotateX(0) scale(1); } }
@keyframes wcpols-popup-rotate-in { from { opacity: 0; transform: rotate(-13deg) scale(.78); } 72% { transform: rotate(2deg) scale(1.015); } to { opacity: 1; transform: rotate(0) scale(1); } }
@keyframes wcpols-popup-slide-up-in { from { opacity: 0; transform: translateY(70px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes wcpols-popup-slide-down-in { from { opacity: 0; transform: translateY(-70px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes wcpols-popup-premium-close { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(16px) scale(.94); } }

@media (prefers-reduced-motion: reduce) {
	.wcpols-popup.is-opening .wcpols-popup-dialog,
	.wcpols-popup.is-closing .wcpols-popup-dialog {
		animation-name: wcpols-popup-fade-in !important;
		animation-duration: 1ms !important;
	}
}


/* =========================================================
   WCPOLS v1.6 Phase 3 — Live Theme Customizer
   ========================================================= */

.wcpols-container {
	--wcpols-secondary: #0c2e53;
	--wcpols-button: var(--wcpols-primary);
	--wcpols-radius: 18px;
	--wcpols-font-size: 16px;
	--wcpols-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--wcpols-card-shadow: 0 18px 45px rgba(16, 24, 40, .14);
	--wcpols-card-width: 560px;

	width: min(100%, var(--wcpols-card-width)) !important;
	max-width: var(--wcpols-card-width) !important;
	border-radius: var(--wcpols-radius) !important;
	box-shadow: var(--wcpols-card-shadow) !important;
	font-family: var(--wcpols-font-family) !important;
	font-size: var(--wcpols-font-size) !important;
}

.wcpols-container,
.wcpols-container input,
.wcpols-container select,
.wcpols-container textarea,
.wcpols-container button {
	font-family: var(--wcpols-font-family) !important;
}

.wcpols-container .wcpols-box,
.wcpols-container .wcpols-card,
.wcpols-container .wcpols-form-card {
	border-radius: var(--wcpols-radius) !important;
}

.wcpols-container .wcpols-submit,
.wcpols-container .wcpols-button,
.wcpols-container button[type="submit"],
.wcpols-container button[data-wcpols-send-otp],
.wcpols-container button[data-wcpols-verify-otp] {
	background: linear-gradient(
		135deg,
		var(--wcpols-button),
		var(--wcpols-secondary)
	) !important;
	color: var(--wcpols-button-text) !important;
	border-radius: max(8px, calc(var(--wcpols-radius) * .58)) !important;
	box-shadow: 0 9px 22px color-mix(
		in srgb,
		var(--wcpols-button) 27%,
		transparent
	) !important;
}

.wcpols-container input,
.wcpols-container select,
.wcpols-container textarea,
.wcpols-container .wcpols-country-selector,
.wcpols-container .wcpols-otp-input {
	border-radius: max(8px, calc(var(--wcpols-radius) * .52)) !important;
}

.wcpols-container .wcpols-tab.is-active,
.wcpols-container .wcpols-tab.active,
.wcpols-container [role="tab"][aria-selected="true"] {
	color: var(--wcpols-primary) !important;
}

.wcpols-container .wcpols-step.is-active .wcpols-step-number,
.wcpols-container .wcpols-step.is-complete .wcpols-step-number,
.wcpols-container .wcpols-step.active .wcpols-step-number,
.wcpols-container .wcpols-step.completed .wcpols-step-number {
	background: linear-gradient(
		135deg,
		var(--wcpols-primary),
		var(--wcpols-secondary)
	) !important;
	color: var(--wcpols-button-text) !important;
}

.wcpols-popup-dialog {
	width: min(
		calc(100vw - 32px),
		calc(var(--wcpols-card-width, 560px) + 48px)
	) !important;
	max-width: calc(var(--wcpols-card-width, 560px) + 48px) !important;
	border-radius: calc(var(--wcpols-radius, 18px) + 6px) !important;
	box-shadow: var(
		--wcpols-card-shadow,
		0 18px 45px rgba(16, 24, 40, .14)
	) !important;
	background: var(--wcpols-background, #fff) !important;
	color: var(--wcpols-text, #102a43) !important;
	font-family: var(
		--wcpols-font-family,
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		sans-serif
	) !important;
}

.wcpols-popup-content {
	font-size: var(--wcpols-font-size, 16px) !important;
}

.wcpols-popup-content .wcpols-container {
	width: 100% !important;
	max-width: 100% !important;
	box-shadow: none !important;
}

@media (max-width: 600px) {
	.wcpols-container {
		--wcpols-card-width: 100%;
		border-radius: min(var(--wcpols-radius), 20px) !important;
	}

	.wcpols-popup-dialog {
		width: calc(100vw - 20px) !important;
		max-height: calc(100vh - 20px) !important;
		border-radius: min(calc(var(--wcpols-radius) + 3px), 22px) !important;
	}
}


/* =========================================================
   WCPOLS v1.6 Phase 3.1 — Premium Form UI Restore
   Restores the premium heading, tabs and horizontal stepper.
   ========================================================= */

.wcpols-container .wcpols-title-text,
.wcpols-container .wcpols-subtitle-text {
	display: inline !important;
}

.wcpols-container .wcpols-tabs {
	margin-bottom: 18px !important;
}

.wcpols-container .wcpols-tab.is-active,
.wcpols-container .wcpols-tab[aria-selected="true"] {
	background: linear-gradient(
		135deg,
		var(--wcpols-button, var(--wcpols-primary)),
		var(--wcpols-secondary, var(--wcpols-primary))
	) !important;
	color: var(--wcpols-button-text, #ffffff) !important;
}

.wcpols-container .wcpols-progress {
	display: flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	align-items: flex-start !important;
	justify-content: center !important;
	width: 100% !important;
	margin: 0 0 20px !important;
	padding: 0 4px !important;
}

.wcpols-container .wcpols-progress-step {
	display: flex !important;
	flex: 0 0 auto !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 4px !important;
	min-width: 50px !important;
	position: relative !important;
	z-index: 2 !important;
}

.wcpols-container .wcpols-progress-line {
	display: block !important;
	flex: 1 1 auto !important;
	height: 1px !important;
	max-width: 72px !important;
	margin: 13px 5px 0 !important;
	background: color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 16%,
		transparent
	) !important;
}

.wcpols-container .wcpols-progress-number {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 27px !important;
	height: 27px !important;
	border-radius: 50% !important;
}

.wcpols-container .wcpols-progress-step.is-active .wcpols-progress-number,
.wcpols-container .wcpols-progress-step.is-complete .wcpols-progress-number {
	background: linear-gradient(
		135deg,
		var(--wcpols-primary),
		var(--wcpols-secondary, var(--wcpols-primary))
	) !important;
	color: var(--wcpols-button-text, #ffffff) !important;
}

@media (max-width: 480px) {
	.wcpols-container .wcpols-progress-line {
		max-width: 58px !important;
		margin-inline: 2px !important;
	}

	.wcpols-container .wcpols-progress-step {
		min-width: 45px !important;
	}
}


/* =========================================================
   WCPOLS v1.6 Phase 3.4 — Checkout Interaction Fix
   ========================================================= */

.wcpols-checkout-authentication
.wcpols-container.is-initialising
.wcpols-card {
	color: inherit !important;
	user-select: auto !important;
}

.wcpols-checkout-authentication
.wcpols-container.is-initialising
.wcpols-card::after {
	display: none !important;
	content: none !important;
	pointer-events: none !important;
}

.wcpols-checkout-authentication .wcpols-container,
.wcpols-checkout-authentication .wcpols-card,
.wcpols-checkout-authentication .wcpols-tabs,
.wcpols-checkout-authentication .wcpols-tab,
.wcpols-checkout-authentication .wcpols-section,
.wcpols-checkout-authentication input,
.wcpols-checkout-authentication button,
.wcpols-checkout-authentication select {
	pointer-events: auto !important;
}

.wcpols-checkout-authentication .wcpols-tab {
	cursor: pointer !important;
	opacity: 1 !important;
	position: relative !important;
	z-index: 3 !important;
}

.wcpols-checkout-authentication .wcpols-container.is-ready .wcpols-card,
.wcpols-checkout-authentication .wcpols-container .wcpols-card {
	opacity: 1 !important;
}


/* =========================================================
   WCPOLS v1.6 Phase 3.5 — Checkout Active Colour Restore
   Restores full colour and contrast inside checkout auth form.
   ========================================================= */

.wcpols-checkout-authentication,
.wcpols-checkout-authentication .wcpols-container,
.wcpols-checkout-authentication .wcpols-card,
.wcpols-checkout-authentication .wcpols-header,
.wcpols-checkout-authentication .wcpols-tabs,
.wcpols-checkout-authentication .wcpols-progress,
.wcpols-checkout-authentication .wcpols-section {
	opacity: 1 !important;
	filter: none !important;
}

.wcpols-checkout-authentication .wcpols-container {
	color: var(--wcpols-text, #102a43) !important;
}

.wcpols-checkout-authentication .wcpols-title,
.wcpols-checkout-authentication .wcpols-title-text,
.wcpols-checkout-authentication .wcpols-label,
.wcpols-checkout-authentication label {
	color: var(--wcpols-text, #102a43) !important;
	opacity: 1 !important;
}

.wcpols-checkout-authentication .wcpols-subtitle,
.wcpols-checkout-authentication .wcpols-subtitle-text,
.wcpols-checkout-authentication .wcpols-help,
.wcpols-checkout-authentication .wcpols-note,
.wcpols-checkout-authentication .wcpols-security-note {
	color: color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 72%,
		transparent
	) !important;
	opacity: 1 !important;
}

.wcpols-checkout-authentication .wcpols-tab {
	color: var(--wcpols-text, #102a43) !important;
	background: color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 7%,
		var(--wcpols-background, #ffffff)
	) !important;
	opacity: 1 !important;
}

.wcpols-checkout-authentication .wcpols-tab.is-active,
.wcpols-checkout-authentication .wcpols-tab[aria-selected="true"] {
	background: linear-gradient(
		135deg,
		var(--wcpols-button, var(--wcpols-primary, #1a609b)),
		var(--wcpols-secondary, #0c2e53)
	) !important;
	color: var(--wcpols-button-text, #ffffff) !important;
	box-shadow: 0 8px 20px color-mix(
		in srgb,
		var(--wcpols-button, var(--wcpols-primary, #1a609b)) 30%,
		transparent
	) !important;
}

.wcpols-checkout-authentication .wcpols-progress-number {
	background: var(--wcpols-background, #ffffff) !important;
	border: 1px solid color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 18%,
		transparent
	) !important;
	color: color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 60%,
		transparent
	) !important;
	opacity: 1 !important;
}

.wcpols-checkout-authentication
.wcpols-progress-step.is-active
.wcpols-progress-number,
.wcpols-checkout-authentication
.wcpols-progress-step.is-complete
.wcpols-progress-number {
	background: linear-gradient(
		135deg,
		var(--wcpols-primary, #1a609b),
		var(--wcpols-secondary, #0c2e53)
	) !important;
	border-color: transparent !important;
	color: var(--wcpols-button-text, #ffffff) !important;
}

.wcpols-checkout-authentication .wcpols-progress-label {
	color: color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 62%,
		transparent
	) !important;
	opacity: 1 !important;
}

.wcpols-checkout-authentication
.wcpols-progress-step.is-active
.wcpols-progress-label,
.wcpols-checkout-authentication
.wcpols-progress-step.is-complete
.wcpols-progress-label {
	color: var(--wcpols-primary, #1a609b) !important;
	font-weight: 700 !important;
}

.wcpols-checkout-authentication input,
.wcpols-checkout-authentication select,
.wcpols-checkout-authentication textarea {
	background: var(--wcpols-background, #ffffff) !important;
	color: var(--wcpols-text, #102a43) !important;
	border-color: color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 18%,
		transparent
	) !important;
	opacity: 1 !important;
	filter: none !important;
}

.wcpols-checkout-authentication input::placeholder,
.wcpols-checkout-authentication textarea::placeholder {
	color: color-mix(
		in srgb,
		var(--wcpols-text, #102a43) 58%,
		transparent
	) !important;
	opacity: 1 !important;
}

.wcpols-checkout-authentication .wcpols-button,
.wcpols-checkout-authentication button[type="submit"],
.wcpols-checkout-authentication button[data-wcpols-send-otp],
.wcpols-checkout-authentication button[data-wcpols-verify-otp] {
	background: linear-gradient(
		135deg,
		var(--wcpols-button, var(--wcpols-primary, #1a609b)),
		var(--wcpols-secondary, #0c2e53)
	) !important;
	color: var(--wcpols-button-text, #ffffff) !important;
	opacity: 1 !important;
	filter: none !important;
	box-shadow: 0 10px 24px color-mix(
		in srgb,
		var(--wcpols-button, var(--wcpols-primary, #1a609b)) 28%,
		transparent
	) !important;
}

.wcpols-checkout-authentication
.wcpols-container:not(.is-verifying)
button:not(:disabled),
.wcpols-checkout-authentication
.wcpols-container:not(.is-verifying)
input:not(:disabled),
.wcpols-checkout-authentication
.wcpols-container:not(.is-verifying)
select:not(:disabled) {
	opacity: 1 !important;
	cursor: pointer;
}

.wcpols-checkout-authentication
.wcpols-container:not(.is-verifying)
input:not(:disabled),
.wcpols-checkout-authentication
.wcpols-container:not(.is-verifying)
select:not(:disabled) {
	cursor: text;
}


/* =========================================================
   WCPOLS v1.6 Phase 3.6 — Checkout Overlay / Faded State Fix
   ========================================================= */

/*
 * WooCommerce BlockUI can place a translucent overlay over the checkout
 * authentication area after a checkout refresh. That overlay makes the
 * complete Login / Sign Up form look disabled even when the controls work.
 */
.wcpols-checkout-authentication,
.wcpols-checkout-authentication-form,
.wcpols-checkout-authentication.processing,
.wcpols-checkout-authentication-form.processing,
.wcpols-checkout-authentication.blocked,
.wcpols-checkout-authentication-form.blocked {
	opacity: 1 !important;
	filter: none !important;
	pointer-events: auto !important;
}

.wcpols-checkout-authentication > .blockUI.blockOverlay,
.wcpols-checkout-authentication > .blockOverlay,
.wcpols-checkout-authentication-form > .blockUI.blockOverlay,
.wcpols-checkout-authentication-form > .blockOverlay,
.wcpols-checkout-authentication .blockUI.blockOverlay,
.wcpols-checkout-authentication .blockOverlay {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.wcpols-checkout-authentication::before,
.wcpols-checkout-authentication::after,
.wcpols-checkout-authentication-form::before,
.wcpols-checkout-authentication-form::after {
	pointer-events: none !important;
}

.wcpols-checkout-authentication .wcpols-container,
.wcpols-checkout-authentication .wcpols-container *,
.wcpols-checkout-authentication-form .wcpols-container,
.wcpols-checkout-authentication-form .wcpols-container * {
	filter: none !important;
}

.wcpols-checkout-authentication
.wcpols-container:not(.is-verifying):not(.is-loading),
.wcpols-checkout-authentication-form
.wcpols-container:not(.is-verifying):not(.is-loading) {
	opacity: 1 !important;
}

.wcpols-checkout-authentication
.wcpols-container:not(.is-verifying):not(.is-loading)
.wcpols-card,
.wcpols-checkout-authentication-form
.wcpols-container:not(.is-verifying):not(.is-loading)
.wcpols-card {
	opacity: 1 !important;
	filter: none !important;
}


/* =========================================================
   WCPOLS v1.6 Phase 3.7 — Checkout Tab State Fix
   Prevents tab clicks from triggering a faded checkout state.
   ========================================================= */

.wcpols-checkout-authentication .wcpols-container,
.wcpols-checkout-authentication .wcpols-container.is-ready,
.wcpols-checkout-authentication .wcpols-container.is-initialising,
.wcpols-checkout-authentication .wcpols-container.processing,
.wcpols-checkout-authentication .wcpols-container.blocked,
.wcpols-checkout-authentication .wcpols-container.loading,
.wcpols-checkout-authentication .wcpols-container.is-loading {
	opacity: 1 !important;
	filter: none !important;
	pointer-events: auto !important;
}

.wcpols-checkout-authentication .wcpols-container .wcpols-card,
.wcpols-checkout-authentication
.wcpols-container.is-initialising
.wcpols-card {
	color: var(--wcpols-text, #102a43) !important;
	opacity: 1 !important;
	filter: none !important;
	user-select: auto !important;
}

.wcpols-checkout-authentication
.wcpols-container.is-initialising
.wcpols-card::after,
.wcpols-checkout-authentication
.wcpols-container.is-loading
.wcpols-card::after,
.wcpols-checkout-authentication
.wcpols-container.loading
.wcpols-card::after {
	display: none !important;
	content: none !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.wcpols-checkout-authentication .wcpols-tab,
.wcpols-checkout-authentication .wcpols-tab:hover,
.wcpols-checkout-authentication .wcpols-tab:focus,
.wcpols-checkout-authentication .wcpols-tab:active {
	opacity: 1 !important;
	filter: none !important;
}

.wcpols-checkout-authentication .wcpols-tab.is-active,
.wcpols-checkout-authentication .wcpols-tab[aria-selected="true"] {
	background: linear-gradient(
		135deg,
		var(--wcpols-button, var(--wcpols-primary, #1a609b)),
		var(--wcpols-secondary, #0c2e53)
	) !important;
	color: var(--wcpols-button-text, #ffffff) !important;
	opacity: 1 !important;
	filter: none !important;
}


/* =========================================================
   WCPOLS v1.6 Phase 4 — Premium Animated Progress Stepper
   ========================================================= */

.wcpols-container .wcpols-progress {
	--wcpols-step-size: 30px;
	position: relative !important;
	display: grid !important;
	grid-template-columns:
		minmax(54px, auto)
		minmax(34px, 1fr)
		minmax(54px, auto)
		minmax(34px, 1fr)
		minmax(54px, auto) !important;
	align-items: start !important;
	width: 100% !important;
	margin: 0 0 24px !important;
	padding: 2px 6px 0 !important;
	overflow: visible !important;
}

.wcpols-container .wcpols-progress-step {
	position: relative !important;
	z-index: 3 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 6px !important;
	min-width: 54px !important;
	opacity: 1 !important;
}

.wcpols-container .wcpols-progress-number {
	position: relative !important;
	display: grid !important;
	place-items: center !important;
	width: var(--wcpols-step-size) !important;
	height: var(--wcpols-step-size) !important;
	min-width: var(--wcpols-step-size) !important;
	border: 1px solid color-mix(in srgb,var(--wcpols-text,#102a43) 17%,transparent) !important;
	border-radius: 999px !important;
	background: var(--wcpols-background,#fff) !important;
	color: color-mix(in srgb,var(--wcpols-text,#102a43) 58%,transparent) !important;
	font-size: .78em !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	box-shadow: 0 2px 7px rgba(16,24,40,.06) !important;
	transition: transform .28s cubic-bezier(.34,1.56,.64,1),background .24s ease,color .24s ease,border-color .24s ease,box-shadow .24s ease !important;
}

.wcpols-container .wcpols-progress-number::before {
	content: "" !important;
	position: absolute !important;
	inset: -4px !important;
	border: 2px solid transparent !important;
	border-radius: inherit !important;
	transform: scale(.78) !important;
	opacity: 0 !important;
	transition: transform .28s cubic-bezier(.34,1.56,.64,1),opacity .2s ease,border-color .2s ease !important;
}

.wcpols-container .wcpols-progress-label {
	display: block !important;
	color: color-mix(in srgb,var(--wcpols-text,#102a43) 57%,transparent) !important;
	font-size: .73em !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	white-space: nowrap !important;
	transition: color .22s ease,transform .22s ease,font-weight .22s ease !important;
}

.wcpols-container .wcpols-progress-step.is-active .wcpols-progress-number,
.wcpols-container .wcpols-progress-step[aria-current="step"] .wcpols-progress-number {
	border-color: transparent !important;
	background: linear-gradient(135deg,var(--wcpols-primary,#1a609b),var(--wcpols-secondary,#0c2e53)) !important;
	color: var(--wcpols-button-text,#fff) !important;
	transform: translateY(-2px) scale(1.08) !important;
	box-shadow: 0 8px 18px color-mix(in srgb,var(--wcpols-primary,#1a609b) 28%,transparent),0 0 0 4px color-mix(in srgb,var(--wcpols-primary,#1a609b) 10%,transparent) !important;
}

.wcpols-container .wcpols-progress-step.is-active .wcpols-progress-number::before,
.wcpols-container .wcpols-progress-step[aria-current="step"] .wcpols-progress-number::before {
	border-color: color-mix(in srgb,var(--wcpols-primary,#1a609b) 25%,transparent) !important;
	transform: scale(1) !important;
	opacity: 1 !important;
	animation: wcpols-step-pulse 1.8s ease-in-out infinite !important;
}

.wcpols-container .wcpols-progress-step.is-active .wcpols-progress-label,
.wcpols-container .wcpols-progress-step[aria-current="step"] .wcpols-progress-label {
	color: var(--wcpols-primary,#1a609b) !important;
	font-weight: 800 !important;
}

.wcpols-container .wcpols-progress-step.is-complete .wcpols-progress-number {
	border-color: transparent !important;
	background: linear-gradient(135deg,var(--wcpols-primary,#1a609b),var(--wcpols-secondary,#0c2e53)) !important;
	color: transparent !important;
	box-shadow: 0 6px 15px color-mix(in srgb,var(--wcpols-primary,#1a609b) 22%,transparent) !important;
}

.wcpols-container .wcpols-progress-step.is-complete .wcpols-progress-number::after {
	content: "✓" !important;
	position: absolute !important;
	inset: 0 !important;
	display: grid !important;
	place-items: center !important;
	color: var(--wcpols-button-text,#fff) !important;
	font-size: 15px !important;
	font-weight: 900 !important;
	animation: wcpols-step-check .32s cubic-bezier(.34,1.56,.64,1) both !important;
}

.wcpols-container .wcpols-progress-step.is-complete .wcpols-progress-label {
	color: var(--wcpols-primary,#1a609b) !important;
	font-weight: 700 !important;
}

.wcpols-container .wcpols-progress-step.is-upcoming {
	opacity: .78 !important;
}

.wcpols-container .wcpols-progress-line {
	position: relative !important;
	z-index: 1 !important;
	display: block !important;
	width: auto !important;
	max-width: none !important;
	height: 3px !important;
	margin: calc(var(--wcpols-step-size) / 2 - 1px) 8px 0 !important;
	border-radius: 999px !important;
	background: color-mix(in srgb,var(--wcpols-text,#102a43) 12%,transparent) !important;
	overflow: hidden !important;
}

.wcpols-container .wcpols-progress-line-fill {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	border-radius: inherit !important;
	background: linear-gradient(90deg,var(--wcpols-primary,#1a609b),var(--wcpols-secondary,#0c2e53)) !important;
	transform: scaleX(0) !important;
	transform-origin: left center !important;
	transition: transform .42s cubic-bezier(.4,0,.2,1),opacity .25s ease !important;
}

.wcpols-container .wcpols-progress-line.is-complete .wcpols-progress-line-fill {
	transform: scaleX(1) !important;
}

.wcpols-container .wcpols-progress-line.is-active .wcpols-progress-line-fill {
	transform: scaleX(.18) !important;
	opacity: .6 !important;
}

.wcpols-container .wcpols-section[data-step] {
	transform-origin: top center !important;
	will-change: opacity,transform !important;
}

.wcpols-container .wcpols-section.is-step-entering {
	opacity: 0 !important;
	transform: translateY(10px) scale(.985) !important;
}

.wcpols-container .wcpols-section.is-step-entering.is-step-visible {
	opacity: 1 !important;
	transform: translateY(0) scale(1) !important;
	transition: opacity .28s ease,transform .34s cubic-bezier(.22,1,.36,1) !important;
}

.wcpols-container .wcpols-section.is-step-leaving {
	opacity: 0 !important;
	transform: translateY(-7px) scale(.99) !important;
	transition: opacity .16s ease,transform .18s ease !important;
	pointer-events: none !important;
}

@keyframes wcpols-step-pulse {
	0%,100% { box-shadow: 0 0 0 0 color-mix(in srgb,var(--wcpols-primary,#1a609b) 18%,transparent); }
	50% { box-shadow: 0 0 0 5px transparent; }
}

@keyframes wcpols-step-check {
	from { opacity: 0; transform: scale(.35) rotate(-18deg); }
	to { opacity: 1; transform: scale(1) rotate(0); }
}

@media (max-width: 480px) {
	.wcpols-container .wcpols-progress {
		--wcpols-step-size: 27px;
		grid-template-columns:minmax(45px,auto) minmax(20px,1fr) minmax(45px,auto) minmax(20px,1fr) minmax(45px,auto) !important;
		padding-inline: 0 !important;
	}
	.wcpols-container .wcpols-progress-step { min-width: 45px !important; }
	.wcpols-container .wcpols-progress-line { margin-inline: 3px !important; }
	.wcpols-container .wcpols-progress-label { font-size: .67em !important; }
}

@media (prefers-reduced-motion: reduce) {
	.wcpols-container .wcpols-progress-number,
	.wcpols-container .wcpols-progress-number::before,
	.wcpols-container .wcpols-progress-label,
	.wcpols-container .wcpols-progress-line-fill,
	.wcpols-container .wcpols-section[data-step] {
		animation: none !important;
		transition-duration: .01ms !important;
	}
}


/* =========================================================
   WCPOLS v1.6 Phase 5 — Dark Mode
   ========================================================= */

.wcpols-container,
.wcpols-popup-system {
	--wcpols-dark-background: #151922;
	--wcpols-dark-surface: #1c2230;
	--wcpols-dark-surface-raised: #232b3a;
	--wcpols-dark-text: #f4f7fb;
	--wcpols-dark-muted: #aeb8c8;
	--wcpols-dark-border: rgba(255, 255, 255, .13);
	color-scheme: light;
}

.wcpols-theme-dark,
.wcpols-theme-auto[data-resolved-theme="dark"] {
	color-scheme: dark;
}

.wcpols-container.wcpols-theme-dark,
.wcpols-theme-dark .wcpols-container,
.wcpols-container.wcpols-theme-auto[data-resolved-theme="dark"],
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-container {
	--wcpols-background: var(--wcpols-dark-background) !important;
	--wcpols-text: var(--wcpols-dark-text) !important;
	background: var(--wcpols-dark-background) !important;
	color: var(--wcpols-dark-text) !important;
	border-color: var(--wcpols-dark-border) !important;
}

.wcpols-theme-dark .wcpols-card,
.wcpols-theme-dark .wcpols-box,
.wcpols-theme-dark .wcpols-form-card,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-card,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-box,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-form-card {
	background: var(--wcpols-dark-background) !important;
	color: var(--wcpols-dark-text) !important;
	border-color: var(--wcpols-dark-border) !important;
}

.wcpols-theme-dark .wcpols-title,
.wcpols-theme-dark .wcpols-title-text,
.wcpols-theme-dark .wcpols-label,
.wcpols-theme-dark label,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-title,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-title-text,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-label,
.wcpols-theme-auto[data-resolved-theme="dark"] label {
	color: var(--wcpols-dark-text) !important;
}

.wcpols-theme-dark .wcpols-subtitle,
.wcpols-theme-dark .wcpols-subtitle-text,
.wcpols-theme-dark .wcpols-help,
.wcpols-theme-dark .wcpols-note,
.wcpols-theme-dark .wcpols-security-note,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-subtitle,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-subtitle-text,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-help,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-note,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-security-note {
	color: var(--wcpols-dark-muted) !important;
}

.wcpols-theme-dark .wcpols-tabs,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-tabs {
	background: rgba(255, 255, 255, .07) !important;
}

.wcpols-theme-dark .wcpols-tab:not(.is-active),
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-tab:not(.is-active) {
	background: transparent !important;
	color: var(--wcpols-dark-text) !important;
}

.wcpols-theme-dark input,
.wcpols-theme-dark select,
.wcpols-theme-dark textarea,
.wcpols-theme-dark .wcpols-country-selector,
.wcpols-theme-auto[data-resolved-theme="dark"] input,
.wcpols-theme-auto[data-resolved-theme="dark"] select,
.wcpols-theme-auto[data-resolved-theme="dark"] textarea,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-country-selector {
	background: var(--wcpols-dark-surface) !important;
	color: var(--wcpols-dark-text) !important;
	border-color: var(--wcpols-dark-border) !important;
}

.wcpols-theme-dark input::placeholder,
.wcpols-theme-dark textarea::placeholder,
.wcpols-theme-auto[data-resolved-theme="dark"] input::placeholder,
.wcpols-theme-auto[data-resolved-theme="dark"] textarea::placeholder {
	color: var(--wcpols-dark-muted) !important;
	opacity: .82 !important;
}

.wcpols-theme-dark .wcpols-progress-number,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-progress-number {
	background: var(--wcpols-dark-surface) !important;
	border-color: var(--wcpols-dark-border) !important;
	color: var(--wcpols-dark-muted) !important;
}

.wcpols-theme-dark .wcpols-progress-line,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-progress-line {
	background: rgba(255, 255, 255, .11) !important;
}

.wcpols-theme-dark .wcpols-progress-label,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-progress-label {
	color: var(--wcpols-dark-muted) !important;
}

.wcpols-theme-dark .wcpols-popup-dialog,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-popup-dialog {
	background: var(--wcpols-dark-background) !important;
	color: var(--wcpols-dark-text) !important;
	border: 1px solid var(--wcpols-dark-border) !important;
}

.wcpols-theme-dark .wcpols-popup-close,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-popup-close {
	background: var(--wcpols-dark-surface-raised) !important;
	color: var(--wcpols-dark-text) !important;
	border-color: var(--wcpols-dark-border) !important;
}

.wcpols-theme-dark .wcpols-message,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-message {
	background: var(--wcpols-dark-surface) !important;
	border-color: var(--wcpols-dark-border) !important;
}

@media (prefers-color-scheme: dark) {
	.wcpols-container.wcpols-theme-auto:not([data-resolved-theme]),
	.wcpols-theme-auto:not([data-resolved-theme]) .wcpols-container {
		--wcpols-background: var(--wcpols-dark-background) !important;
		--wcpols-text: var(--wcpols-dark-text) !important;
		background: var(--wcpols-dark-background) !important;
		color: var(--wcpols-dark-text) !important;
		color-scheme: dark;
	}
}


/* =========================================================
   WCPOLS v1.6 Phase 6 — Accessibility
   ========================================================= */

.wcpols-screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.wcpols-container :focus-visible,
.wcpols-popup :focus-visible,
.wcpols-floating-button:focus-visible {
	outline: 3px solid color-mix(
		in srgb,
		var(--wcpols-primary, #1a609b) 72%,
		#ffffff
	) !important;
	outline-offset: 3px !important;
	box-shadow:
		0 0 0 2px var(--wcpols-background, #ffffff),
		0 0 0 5px color-mix(
			in srgb,
			var(--wcpols-primary, #1a609b) 28%,
			transparent
		) !important;
}

.wcpols-theme-dark :focus-visible,
.wcpols-theme-auto[data-resolved-theme="dark"] :focus-visible {
	outline-color: color-mix(
		in srgb,
		var(--wcpols-primary, #4ea3ff) 82%,
		#ffffff
	) !important;
	box-shadow:
		0 0 0 2px var(--wcpols-dark-background, #151922),
		0 0 0 5px color-mix(
			in srgb,
			var(--wcpols-primary, #4ea3ff) 36%,
			transparent
		) !important;
}

.wcpols-button,
.wcpols-tab,
.wcpols-floating-button,
.wcpols-popup-close {
	min-height: 44px;
}

.wcpols-popup-close {
	min-width: 44px;
	display: inline-grid !important;
	place-items: center !important;
}

.wcpols-section[aria-hidden="true"],
.wcpols-popup[aria-hidden="true"] {
	pointer-events: none !important;
}

@media (forced-colors: active) {
	.wcpols-container,
	.wcpols-popup-dialog,
	.wcpols-button,
	.wcpols-tab,
	.wcpols-progress-number,
	.wcpols-popup-close,
	.wcpols-container input,
	.wcpols-container select,
	.wcpols-container textarea {
		border: 1px solid CanvasText !important;
	}

	.wcpols-tab.is-active,
	.wcpols-tab[aria-selected="true"],
	.wcpols-progress-step.is-active .wcpols-progress-number,
	.wcpols-progress-step.is-complete .wcpols-progress-number {
		background: Highlight !important;
		color: HighlightText !important;
	}
}

@media (prefers-contrast: more) {
	.wcpols-container,
	.wcpols-popup-dialog,
	.wcpols-container input,
	.wcpols-container select,
	.wcpols-container textarea {
		border-width: 2px !important;
	}

	.wcpols-subtitle,
	.wcpols-help,
	.wcpols-note,
	.wcpols-security-note,
	.wcpols-progress-label {
		opacity: 1 !important;
	}
}


/* =========================================================
   WCPOLS v1.6 Phase 7 — Performance
   ========================================================= */

.wcpols-container {
	contain: layout paint style;
}

.wcpols-popup[hidden],
.wcpols-section[hidden] {
	display: none !important;
}

.wcpols-popup.is-open .wcpols-popup-dialog,
.wcpols-popup.is-closing .wcpols-popup-dialog,
.wcpols-section.is-step-entering,
.wcpols-section.is-step-leaving,
.wcpols-ripple {
	will-change: transform, opacity;
}

.wcpols-popup:not(.is-open):not(.is-closing) .wcpols-popup-dialog,
.wcpols-section:not(.is-step-entering):not(.is-step-leaving) {
	will-change: auto;
}

.wcpols-progress,
.wcpols-toast-region {
	contain: layout paint;
}

body:not(.woocommerce-checkout)
.wcpols-container:not(.wcpols-popup-content .wcpols-container) {
	content-visibility: auto;
	contain-intrinsic-size: 620px;
}

@media (max-width: 600px) {
	body:not(.woocommerce-checkout)
	.wcpols-container:not(.wcpols-popup-content .wcpols-container) {
		contain-intrinsic-size: 560px;
	}
}


/* =========================================================
   WCPOLS v1.6 Phase 8 — Premium Polish
   ========================================================= */

.wcpols-premium-surface {
	position: relative;
	isolation: isolate;
	overflow: clip;
	transition:
		transform .3s cubic-bezier(.22, 1, .36, 1),
		box-shadow .3s ease,
		border-color .3s ease !important;
}

.wcpols-premium-surface::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	border-radius: inherit;
	background:
		radial-gradient(
			circle at top left,
			color-mix(in srgb,var(--wcpols-primary,#1a609b) 10%,transparent),
			transparent 38%
		),
		radial-gradient(
			circle at bottom right,
			color-mix(in srgb,var(--wcpols-secondary,#0c2e53) 8%,transparent),
			transparent 42%
		);
}

.wcpols-premium-surface:hover {
	transform: translateY(-1px);
	box-shadow:
		0 18px 50px rgba(16,24,40,.11),
		0 4px 14px rgba(16,24,40,.06) !important;
}

.wcpols-button,
.wcpols-floating-button,
.wcpols-popup-close,
.wcpols-tab {
	position: relative;
	overflow: hidden;
	transform: translateZ(0);
	transition:
		transform .2s cubic-bezier(.22,1,.36,1),
		box-shadow .22s ease,
		background-color .22s ease,
		border-color .22s ease,
		color .22s ease !important;
}

.wcpols-button::after,
.wcpols-floating-button::after,
.wcpols-popup-close::after,
.wcpols-tab::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(
		115deg,
		transparent 25%,
		rgba(255,255,255,.28) 48%,
		transparent 70%
	);
	transform: translateX(-130%);
	transition: transform .55s ease;
}

.wcpols-button:hover::after,
.wcpols-floating-button:hover::after,
.wcpols-popup-close:hover::after,
.wcpols-tab:hover::after {
	transform: translateX(130%);
}

.wcpols-button:hover,
.wcpols-floating-button:hover,
.wcpols-popup-close:hover {
	transform: translateY(-2px);
}

.wcpols-button.is-pressed,
.wcpols-floating-button.is-pressed,
.wcpols-popup-close.is-pressed,
.wcpols-tab.is-pressed {
	transform: translateY(0) scale(.975) !important;
	transition-duration: .08s !important;
}

.wcpols-field,
.wcpols-input-wrap,
.wcpols-container .form-row {
	position: relative;
}

.wcpols-field::after,
.wcpols-input-wrap::after,
.wcpols-container .form-row::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 0;
	height: 2px;
	border-radius: 999px;
	background: linear-gradient(
		90deg,
		var(--wcpols-primary,#1a609b),
		var(--wcpols-secondary,#0c2e53)
	);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .25s cubic-bezier(.22,1,.36,1);
	pointer-events: none;
}

.wcpols-field.is-focused::after,
.wcpols-input-wrap.is-focused::after,
.wcpols-container .form-row.is-focused::after {
	transform: scaleX(1);
}

.wcpols-container input,
.wcpols-container select,
.wcpols-container textarea {
	transition:
		border-color .22s ease,
		box-shadow .22s ease,
		background-color .22s ease,
		transform .22s ease !important;
}

.wcpols-container input:focus,
.wcpols-container select:focus,
.wcpols-container textarea:focus {
	transform: translateY(-1px);
}

.wcpols-message-animated:not([hidden]) {
	animation: wcpols-message-enter .3s cubic-bezier(.22,1,.36,1) both;
}

.wcpols-container.has-success-celebration::before {
	animation: wcpols-success-glow .8s ease both;
}

.wcpols-container.has-success-celebration .wcpols-progress-number {
	animation: wcpols-success-pop .5s cubic-bezier(.34,1.56,.64,1) both;
}

.wcpols-section.has-error-shake {
	animation: wcpols-error-shake .42s cubic-bezier(.36,.07,.19,.97) both;
}

.wcpols-otp-input,
.wcpols-code-input,
input[inputmode="numeric"][maxlength="1"] {
	transition:
		transform .18s ease,
		border-color .18s ease,
		box-shadow .18s ease !important;
}

.wcpols-otp-input:focus,
.wcpols-code-input:focus,
input[inputmode="numeric"][maxlength="1"]:focus {
	transform: translateY(-3px) scale(1.04);
	box-shadow:
		0 10px 20px color-mix(
			in srgb,
			var(--wcpols-primary,#1a609b) 16%,
			transparent
		) !important;
}

.wcpols-premium-popup-dialog {
	backdrop-filter: blur(18px) saturate(135%);
	-webkit-backdrop-filter: blur(18px) saturate(135%);
}

.wcpols-popup.is-open .wcpols-premium-popup-dialog {
	animation: wcpols-popup-premium-enter .42s cubic-bezier(.22,1,.36,1) both;
}

.wcpols-popup.is-closing .wcpols-premium-popup-dialog {
	animation: wcpols-popup-premium-exit .22s ease both;
}

@keyframes wcpols-message-enter {
	from { opacity:0; transform:translateY(-8px) scale(.985); }
	to { opacity:1; transform:translateY(0) scale(1); }
}

@keyframes wcpols-success-glow {
	0%,100% { opacity:.9; filter:brightness(1); }
	45% { opacity:1; filter:brightness(1.16); }
}

@keyframes wcpols-success-pop {
	0%,100% { transform:scale(1); }
	45% { transform:scale(1.13); }
}

@keyframes wcpols-error-shake {
	10%,90% { transform:translateX(-1px); }
	20%,80% { transform:translateX(4px); }
	30%,50%,70% { transform:translateX(-6px); }
	40%,60% { transform:translateX(6px); }
}

@keyframes wcpols-popup-premium-enter {
	from { opacity:0; transform:translateY(18px) scale(.965); filter:blur(4px); }
	to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); }
}

@keyframes wcpols-popup-premium-exit {
	from { opacity:1; transform:translateY(0) scale(1); }
	to { opacity:0; transform:translateY(10px) scale(.98); }
}

@media (max-width:782px) {
	.wcpols-container {
		padding-inline:clamp(16px,4vw,24px) !important;
	}

	.wcpols-button {
		width:100%;
	}

	.wcpols-popup-dialog {
		width:min(94vw,560px) !important;
		max-height:92vh !important;
		overflow-y:auto !important;
	}
}

@media (max-width:480px) {
	.wcpols-title {
		font-size:clamp(1.35rem,7vw,1.75rem) !important;
	}

	.wcpols-popup-dialog {
		width:calc(100vw - 20px) !important;
		margin:10px !important;
	}
}

[dir="rtl"] .wcpols-button::after,
[dir="rtl"] .wcpols-floating-button::after,
[dir="rtl"] .wcpols-popup-close::after,
[dir="rtl"] .wcpols-tab::after {
	transform:translateX(130%);
}

[dir="rtl"] .wcpols-button:hover::after,
[dir="rtl"] .wcpols-floating-button:hover::after,
[dir="rtl"] .wcpols-popup-close:hover::after,
[dir="rtl"] .wcpols-tab:hover::after {
	transform:translateX(-130%);
}

@media (prefers-reduced-motion:reduce) {
	.wcpols-premium-surface:hover,
	.wcpols-button:hover,
	.wcpols-floating-button:hover,
	.wcpols-popup-close:hover,
	.wcpols-container input:focus,
	.wcpols-container select:focus,
	.wcpols-container textarea:focus,
	.wcpols-otp-input:focus,
	.wcpols-code-input:focus,
	input[inputmode="numeric"][maxlength="1"]:focus {
		transform:none !important;
	}

	.wcpols-message-animated,
	.wcpols-container.has-success-celebration::before,
	.wcpols-container.has-success-celebration .wcpols-progress-number,
	.wcpols-section.has-error-shake,
	.wcpols-popup.is-open .wcpols-premium-popup-dialog,
	.wcpols-popup.is-closing .wcpols-premium-popup-dialog {
		animation:none !important;
	}
}


/* =========================================================
   WCPOLS Enterprise v2.0 Phase 1 — White Label Branding
   ========================================================= */

.wcpols-enterprise-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin: 0 0 18px;
	text-align: center;
}

.wcpols-enterprise-logo {
	display: block;
	width: auto;
	max-width: min(180px, 70%);
	max-height: 64px;
	object-fit: contain;
}

.wcpols-enterprise-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 5px 11px;
	border: 1px solid color-mix(
		in srgb,
		var(--wcpols-primary, #1a609b) 22%,
		transparent
	);
	border-radius: 999px;
	background: color-mix(
		in srgb,
		var(--wcpols-primary, #1a609b) 10%,
		var(--wcpols-background, #ffffff)
	);
	color: var(--wcpols-primary, #1a609b);
	font-size: .74em;
	font-weight: 800;
	letter-spacing: .045em;
	line-height: 1;
	text-transform: uppercase;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
}

.wcpols-enterprise-footer {
	position: relative;
	margin-top: 20px !important;
	padding-top: 16px;
}

.wcpols-enterprise-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 18%;
	right: 18%;
	height: 1px;
	background: linear-gradient(
		90deg,
		transparent,
		color-mix(
			in srgb,
			var(--wcpols-text, #102a43) 14%,
			transparent
		),
		transparent
	);
}

.wcpols-theme-dark .wcpols-enterprise-badge,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-enterprise-badge {
	background: color-mix(
		in srgb,
		var(--wcpols-primary, #4ea3ff) 16%,
		var(--wcpols-dark-surface, #1c2230)
	);
	border-color: color-mix(
		in srgb,
		var(--wcpols-primary, #4ea3ff) 32%,
		transparent
	);
}

@media (max-width: 480px) {
	.wcpols-enterprise-brand {
		margin-bottom: 15px;
	}

	.wcpols-enterprise-logo {
		max-width: 74%;
		max-height: 52px;
	}

	.wcpols-enterprise-badge {
		width: auto;
		max-width: 100%;
		white-space: normal;
		line-height: 1.25;
	}
}


/* =========================================================
   WCPOLS Enterprise v2.0 Phase 1.1 — Branding Enhancement
   ========================================================= */

.wcpols-enterprise-brand {
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	margin: 0 auto 18px !important;
	width: 100%;
	text-align: center;
}

.wcpols-enterprise-logo {
	display: block;
	width: var(--wcpols-brand-logo-size, 84px) !important;
	height: var(--wcpols-brand-logo-size, 84px) !important;
	max-width: min(var(--wcpols-brand-logo-size, 84px), 46vw) !important;
	max-height: min(var(--wcpols-brand-logo-size, 84px), 46vw) !important;
	margin: 0 auto !important;
	border: 4px solid color-mix(
		in srgb,
		var(--wcpols-primary, #1a609b) 14%,
		var(--wcpols-background, #ffffff)
	);
	border-radius: 50% !important;
	background: var(--wcpols-background, #ffffff);
	box-shadow:
		0 12px 28px rgba(16, 24, 40, .16),
		0 3px 9px rgba(16, 24, 40, .08);
	object-fit: cover !important;
	object-position: center;
	aspect-ratio: 1 / 1;
}

.wcpols-enterprise-badge {
	order: 2;
	margin: 0 auto !important;
}

.wcpols-enterprise-brand + .wcpols-header {
	margin-top: 0;
}

.wcpols-theme-dark .wcpols-enterprise-logo,
.wcpols-theme-auto[data-resolved-theme="dark"] .wcpols-enterprise-logo {
	border-color: color-mix(
		in srgb,
		var(--wcpols-primary, #4ea3ff) 28%,
		var(--wcpols-dark-surface, #1c2230)
	);
	background: var(--wcpols-dark-surface, #1c2230);
	box-shadow:
		0 14px 30px rgba(0, 0, 0, .34),
		0 3px 10px rgba(0, 0, 0, .2);
}

@media (max-width: 480px) {
	.wcpols-enterprise-logo {
		max-width: min(var(--wcpols-brand-logo-size, 84px), 38vw) !important;
		max-height: min(var(--wcpols-brand-logo-size, 84px), 38vw) !important;
		border-width: 3px;
	}
}


/* =========================================================
   WCPOLS Enterprise v2.0 Phase 1.2
   Media Library + Header Logo Position Fix
   ========================================================= */

/*
 * The brand logo now occupies the original round phone-icon position.
 * Its badge sits directly below it, before the Welcome Back heading.
 */
.wcpols-header-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 9px;
	width: 100%;
	margin: 0 auto 14px;
	text-align: center;
}

.wcpols-header-brand-logo {
	margin: 0 auto !important;
	flex: 0 0 auto;
}

.wcpols-header-brand-badge {
	display: inline-flex;
	margin: 0 auto !important;
	order: initial;
}

.wcpols-header-brand-without-logo {
	margin-bottom: 13px;
}

/*
 * Prevent the old separate enterprise-brand area from creating space
 * on pages that still contain cached markup.
 */
.wcpols-card > .wcpols-enterprise-brand {
	display: none !important;
}

/*
 * Keep the heading immediately below the logo/badge group.
 */
.wcpols-header-brand + .wcpols-title,
.wcpols-phone-icon + .wcpols-title {
	margin-top: 0 !important;
}

@media (max-width: 480px) {
	.wcpols-header-brand {
		gap: 8px;
		margin-bottom: 12px;
	}
}


/* v3.0.2 popup visibility reliability */
button.wcpols-floating-button {
	display: inline-flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	z-index: 2147483000 !important;
	isolation: isolate;
}
.wcpols-popup-system[data-admin-preview="yes"] .wcpols-floating-button::before {
	content: "Preview";
	position: absolute;
	top: -9px;
	right: 12px;
	padding: 2px 7px;
	border-radius: 999px;
	background: #111827;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .04em;
	text-transform: uppercase;
	box-shadow: 0 4px 12px rgba(15,23,42,.22);
}


/* v3.0.3 floating-button position reliability */
button.wcpols-floating-button.is-bottom-right,
button.wcpols-floating-button[data-button-position="bottom-right"] {
	position: fixed !important;
	right: 24px !important;
	left: auto !important;
	bottom: 24px !important;
}
button.wcpols-floating-button.is-bottom-left,
button.wcpols-floating-button[data-button-position="bottom-left"] {
	position: fixed !important;
	left: 24px !important;
	right: auto !important;
	bottom: 24px !important;
}
@media (max-width: 600px) {
	button.wcpols-floating-button.is-bottom-right,
	button.wcpols-floating-button[data-button-position="bottom-right"] {
		right: 16px !important;
		left: auto !important;
		bottom: 16px !important;
	}
	button.wcpols-floating-button.is-bottom-left,
	button.wcpols-floating-button[data-button-position="bottom-left"] {
		left: 16px !important;
		right: auto !important;
		bottom: 16px !important;
	}
}

/* =========================================================
   WCPOLS v3.2.5 — Compact popup shell
   Remove the oversized white shell around the authentication card.
   ========================================================= */
.wcpols-popup .wcpols-popup-dialog {
	width: min(calc(100vw - 32px), var(--wcpols-card-width, 560px)) !important;
	max-width: var(--wcpols-card-width, 560px) !important;
	padding: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	box-shadow: none !important;
}

.wcpols-popup .wcpols-popup-content {
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.wcpols-popup .wcpols-popup-content .wcpols-container {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.wcpols-popup .wcpols-popup-content .wcpols-card {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	border-radius: var(--wcpols-radius, 18px) !important;
}

.wcpols-popup .wcpols-popup-close {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	float: none !important;
	margin: 0 !important;
}

@media (max-width: 600px) {
	.wcpols-popup .wcpols-popup-dialog {
		width: calc(100vw - 20px) !important;
		max-width: calc(100vw - 20px) !important;
		max-height: calc(100vh - 20px) !important;
		overflow-y: auto !important;
		border-radius: var(--wcpols-radius, 18px) !important;
	}
}

/* =========================================================
   WCPOLS v3.2.6 — Uniform popup backdrop
   Prevent the site's white content column from appearing as
   a large white area around the authentication card.
   ========================================================= */
.wcpols-popup .wcpols-popup-overlay {
	background: rgba(2, 6, 23, .88) !important;
	backdrop-filter: blur(4px) saturate(85%) !important;
	-webkit-backdrop-filter: blur(4px) saturate(85%) !important;
}

.wcpols-popup .wcpols-popup-dialog,
.wcpols-popup .wcpols-popup-content {
	background: transparent !important;
}

.wcpols-popup .wcpols-popup-content .wcpols-container {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

@media (max-width: 600px) {
	.wcpols-popup .wcpols-popup-overlay {
		background: rgba(2, 6, 23, .9) !important;
	}
}

/* =========================================================
   WCPOLS v3.2.7 — True viewport popup mounting
   The popup node is moved directly under <body> by frontend.js so
   transformed theme wrappers cannot constrain position: fixed.
   ========================================================= */
body > .wcpols-popup-system .wcpols-popup {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	background: transparent !important;
	isolation: isolate !important;
}

body > .wcpols-popup-system .wcpols-popup-overlay {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100dvh !important;
}

