/**
 * AFSD ConvertPlus Callback Enhancer - Calm Solid-White Card & Safe Bottom-Left Launcher
 */

/* ==========================================================================
   1. Bottom-Left Manual Callback Launcher & Mobile Tap-to-Open Invitation
   ========================================================================== */
.afsd-cp-launcher-root {
	position: fixed;
	left: max(16px, env(safe-area-inset-left, 16px));
	bottom: max(16px, env(safe-area-inset-bottom, 16px));
	z-index: 99990;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.afsd-cp-launcher-root.afsd-cp-launcher-hidden {
	opacity: 0 !important;
	pointer-events: none !important;
	visibility: hidden !important;
}

.afsd-cp-manual-btn {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 16px;
	border-radius: 999px;
	border: 1px solid #14532d;
	background-color: #165b33;
	color: #ffffff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.01em;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
	transition: background-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.afsd-cp-manual-btn:hover,
.afsd-cp-manual-btn:focus-visible {
	background-color: #114727;
	color: #ffffff;
	outline: 2px solid #0f172a;
	outline-offset: 2px;
}

.afsd-cp-manual-btn[disabled],
.afsd-cp-manual-btn[aria-disabled="true"] {
	opacity: 0.65;
	cursor: wait;
}

.afsd-cp-manual-btn[hidden],
.afsd-cp-call-fallback[hidden] {
	display: none !important;
}

.afsd-cp-call-fallback {
	text-decoration: none !important;
}

.afsd-cp-launcher-root.afsd-cp-invite-active .afsd-cp-manual-btn {
	box-shadow: 0 6px 18px rgba(22, 91, 51, 0.32);
	border-width: 2px;
}

.afsd-cp-invite-dismiss {
	appearance: none;
	-webkit-appearance: none;
	width: 36px;
	height: 36px;
	min-width: 36px;
	min-height: 36px;
	border-radius: 50%;
	border: 1px solid #cbd5e1;
	background-color: #ffffff;
	color: #334155;
	font-size: 18px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(15, 23, 42, 0.12);
}

.afsd-cp-invite-dismiss[hidden] {
	display: none !important;
}

.afsd-cp-visually-hidden {
	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;
}

/* ==========================================================================
   2. Calm Solid-White Compact Modal Card (Overrides for Allowlisted Styles)
   ========================================================================== */
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay {
	background: rgba(15, 23, 42, 0.55) !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

/* Remove bounce / zoom animations */
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-animate-container,
.cp-modal-popup-container.afsd-cp-enhanced-modal .smile-animated {
	animation: none !important;
	-webkit-animation: none !important;
	transition: none !important;
	transform: none !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-modal {
	max-width: 400px !important;
	width: calc(100% - 24px) !important;
	margin: 0 auto !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-modal-content,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-modal-body {
	background-color: #ffffff !important;
	background-image: none !important;
	border-radius: 12px !important;
	box-shadow: 0 16px 40px rgba(15, 23, 42, 0.24) !important;
	border: 1px solid #e2e8f0 !important;
	padding: 24px 22px !important;
	color: #0f172a !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-content-section-overlay,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-form-section-overlay,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-background {
	background-image: none !important;
	filter: none !important;
}

/* Hide decorative stock photo containers if present in template */
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-image-container {
	display: none !important;
}

/* Typography: Headline & Short Description */
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-title,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-title span {
	color: #0f172a !important;
	font-size: 21px !important;
	line-height: 1.3 !important;
	font-weight: 700 !important;
	text-align: left !important;
	text-shadow: none !important;
	margin-bottom: 8px !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-description,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-short-description,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-info-container,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-description span {
	color: #334155 !important;
	font-size: 14.5px !important;
	line-height: 1.45 !important;
	font-weight: 400 !important;
	text-align: left !important;
	text-shadow: none !important;
	margin-bottom: 16px !important;
}

/* Keep native CP labels hidden so only the injected linked label is visible */
.cp-modal-popup-container.afsd-cp-enhanced-modal label:not(.afsd-cp-field-label),
.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-native-label-hidden {
	display: none !important;
}

/* Persistent Visible Field Labels */
.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-field-label {
	display: block !important;
	color: #1e293b !important;
	font-size: 13.5px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	margin: 10px 0 4px 0 !important;
	text-align: left !important;
}

/* Form Inputs */
.cp-modal-popup-container.afsd-cp-enhanced-modal input.cp-input[name="param[name]"],
.cp-modal-popup-container.afsd-cp-enhanced-modal input.cp-input[name="param[Phone]"] {
	width: 100% !important;
	min-height: 44px !important;
	padding: 10px 12px !important;
	font-size: 16px !important; /* Prevents iOS auto-zoom on focus */
	line-height: 1.35 !important;
	color: #0f172a !important;
	background-color: #ffffff !important;
	border: 1px solid #94a3b8 !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	margin-bottom: 6px !important;
	box-sizing: border-box !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal input.cp-input:focus {
	border-color: #165b33 !important;
	outline: 2px solid rgba(22, 91, 51, 0.25) !important;
	outline-offset: 1px !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal input.afsd-cp-input-invalid,
.cp-modal-popup-container.afsd-cp-enhanced-modal input.cp-error,
.cp-modal-popup-container.afsd-cp-enhanced-modal input.cp-input-error {
	border-color: #b91c1c !important;
	background-color: #fef2f2 !important;
}

/* Keep honeypot strictly hidden */
.cp-modal-popup-container.afsd-cp-enhanced-modal input[name="cp_set_hp"] {
	display: none !important;
}

/* Brand Dark Green CTA Button */
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-submit.btn-subscribe {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 46px !important;
	margin-top: 14px !important;
	padding: 12px 18px !important;
	background-color: #165b33 !important;
	background-image: none !important;
	border: 1px solid #14532d !important;
	border-radius: 8px !important;
	color: #ffffff !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	text-align: center !important;
	text-shadow: none !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-submit.btn-subscribe:hover,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-submit.btn-subscribe:focus-visible {
	background-color: #114727 !important;
	outline: 2px solid #0f172a !important;
	outline-offset: 2px !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-submit.btn-subscribe.afsd-cp-is-submitting {
	opacity: 0.75 !important;
	cursor: progress !important;
}

/* 44x44px Accessible Close Target */
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	top: 8px !important;
	right: 8px !important;
	border-radius: 50% !important;
	background-color: #f1f5f9 !important;
	color: #0f172a !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	z-index: 2147483646 !important;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close:hover,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close:focus-visible {
	background-color: #e2e8f0 !important;
	outline: 2px solid #0f172a !important;
}

/* Inline Validation & Retry / Phone Fallback Box */
.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-status-region {
	margin-top: 10px;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-error-box {
	background-color: #fef2f2;
	border: 1px solid #fecaca;
	border-radius: 8px;
	padding: 10px 12px;
	color: #991b1b;
	font-size: 13.5px;
	line-height: 1.4;
	text-align: left;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-error-text {
	margin: 0;
	font-weight: 500;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-error-actions {
	margin-top: 8px;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-retry-btn {
	appearance: none;
	-webkit-appearance: none;
	background-color: #ffffff;
	border: 1px solid #991b1b;
	color: #991b1b;
	border-radius: 6px;
	padding: 6px 12px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-fallback-phone {
	margin: 8px 0 0 0;
	color: #1e293b;
	font-size: 13.5px;
}

.cp-modal-popup-container.afsd-cp-enhanced-modal .afsd-cp-phone-link {
	color: #165b33 !important;
	font-weight: 700 !important;
	text-decoration: underline !important;
}

/* Final template normalization: typography and one calm card. Popup scope only. */
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-title,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-title span,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-description,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-description span,
.cp-modal-popup-container.afsd-cp-enhanced-modal label,
.cp-modal-popup-container.afsd-cp-enhanced-modal input,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-submit,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-submit span,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-msg-on-submit {
 font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif !important;
}
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-submit span {
 font-size:16px !important; line-height:1.25 !important; font-weight:650 !important;
}
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-modal-content {
 padding:0 !important; border:0 !important; box-shadow:none !important; background:transparent !important;
}
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-modal-body {
 padding:28px 24px !important; background:#fff !important;
}
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-modal-body-overlay,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-content-section-overlay,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-form-section-overlay {
 background:transparent !important; opacity:0 !important; pointer-events:none !important;
}
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close {
 left:auto !important; bottom:auto !important; top:8px !important; right:8px !important;
 transform:none !important; margin:0 !important;
}
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close img { display:none !important; }
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close:before,
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close:after {
 content:""; position:absolute; width:18px; height:2px; background:#24372b; left:13px; top:21px;
}
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close:before { transform:rotate(45deg); }
.cp-modal-popup-container.afsd-cp-enhanced-modal .cp-overlay-close:after { transform:rotate(-45deg); }
