/* ECM Payment Processor Fee Calculator
   All styles scoped under .ecm-pfc-wrapper. !important per ECM Elementor convention. */

.ecm-pfc-wrapper {
	--ecm-pfc-ink: #0F0A1E;
	--ecm-pfc-deep: #2D1B69;
	--ecm-pfc-dark: #3A2280;
	--ecm-pfc-mid: #5B3FB5;
	--ecm-pfc-bright: #7C5FD6;
	--ecm-pfc-light: #A78BFA;
	--ecm-pfc-soft: #EDE9FE;
	--ecm-pfc-coral: #F47458;
	--ecm-pfc-coral-h: #E55D40;
	--ecm-pfc-green: #34D399;
	--ecm-pfc-g900: #1A1530;
	--ecm-pfc-g700: #3D3660;
	--ecm-pfc-g500: #6B6490;
	--ecm-pfc-g400: #8E89AB;
	--ecm-pfc-g300: #C4C0D8;
	--ecm-pfc-g200: #E8E5F0;
	--ecm-pfc-g100: #F3F1F9;
	--ecm-pfc-grad: linear-gradient(155deg, #2D1B69 0%, #3A2280 30%, #5B3FB5 65%, #7C5FD6 100%);

	max-width: 1180px !important;
	margin: 0 auto !important;
	font-family: 'DM Sans', system-ui, sans-serif !important;
	color: var(--ecm-pfc-g700) !important;
	line-height: 1.55 !important;
	box-sizing: border-box !important;
}
.ecm-pfc-wrapper *,
.ecm-pfc-wrapper *::before,
.ecm-pfc-wrapper *::after { box-sizing: border-box !important; }

/* Intro */
.ecm-pfc-intro { text-align: center !important; margin-bottom: 28px !important; }
.ecm-pfc-eyebrow {
	font-size: 13px !important; font-weight: 700 !important; letter-spacing: 2px !important;
	text-transform: uppercase !important; color: var(--ecm-pfc-mid) !important; margin-bottom: 12px !important;
}
.ecm-pfc-title {
	font-family: 'Instrument Serif', Georgia, serif !important; font-weight: 400 !important;
	font-size: 44px !important; line-height: 1.1 !important; color: var(--ecm-pfc-g900) !important;
	margin: 0 0 14px !important;
}
.ecm-pfc-lede {
	font-size: 18px !important; color: var(--ecm-pfc-g500) !important; max-width: 760px !important;
	margin: 0 auto !important;
}

/* App grid */
.ecm-pfc-app {
	display: grid !important; grid-template-columns: 360px 1fr !important; gap: 28px !important;
	align-items: start !important;
}

/* Controls card */
.ecm-pfc-controls {
	background: #fff !important; border: 1px solid var(--ecm-pfc-g200) !important; border-radius: 16px !important;
	padding: 22px !important; display: flex !important; flex-direction: column !important; gap: 22px !important;
	position: sticky !important; top: 24px !important;
}
.ecm-pfc-field { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.ecm-pfc-label {
	font-size: 14.5px !important; font-weight: 600 !important; color: var(--ecm-pfc-g900) !important;
	text-transform: none !important;
}
.ecm-pfc-input-money { position: relative !important; display: flex !important; align-items: center !important; }
.ecm-pfc-prefix {
	position: absolute !important; left: 12px !important; color: var(--ecm-pfc-g400) !important;
	font-family: 'JetBrains Mono', monospace !important; font-size: 15px !important;
}
.ecm-pfc-input {
	width: 100% !important; padding: 11px 12px 11px 26px !important; border: 2px solid var(--ecm-pfc-g200) !important;
	border-radius: 10px !important; font-family: 'JetBrains Mono', monospace !important; font-size: 16px !important;
	color: var(--ecm-pfc-g900) !important; background: #fff !important; -moz-appearance: textfield !important;
}
.ecm-pfc-input:focus { outline: none !important; border-color: var(--ecm-pfc-g900) !important; }
.ecm-pfc-select {
	width: 100% !important; padding: 11px 12px !important; border: 2px solid var(--ecm-pfc-g200) !important;
	border-radius: 10px !important; font-family: 'DM Sans', sans-serif !important; font-size: 15px !important;
	color: var(--ecm-pfc-g900) !important; background: #fff !important; cursor: pointer !important;
}
.ecm-pfc-select:focus { outline: none !important; border-color: var(--ecm-pfc-g900) !important; }

.ecm-pfc-range {
	width: 100% !important; -webkit-appearance: none !important; appearance: none !important; height: 6px !important;
	border-radius: 6px !important; background: var(--ecm-pfc-g200) !important; cursor: pointer !important; margin: 2px 0 !important;
}
.ecm-pfc-range::-webkit-slider-thumb {
	-webkit-appearance: none !important; appearance: none !important; width: 18px !important; height: 18px !important;
	border-radius: 50% !important; background: var(--ecm-pfc-mid) !important; border: 2px solid #fff !important;
	box-shadow: 0 1px 4px rgba(91,63,181,.4) !important;
}
.ecm-pfc-range::-moz-range-thumb {
	width: 18px !important; height: 18px !important; border-radius: 50% !important; background: var(--ecm-pfc-mid) !important;
	border: 2px solid #fff !important;
}
.ecm-pfc-derived, .ecm-pfc-hint {
	font-size: 13.5px !important; color: var(--ecm-pfc-g400) !important;
	font-family: 'JetBrains Mono', monospace !important;
}
.ecm-pfc-hint { font-family: 'DM Sans', sans-serif !important; }

/* Custom mix */
.ecm-pfc-mix {
	margin-top: 6px !important; padding: 14px !important; background: var(--ecm-pfc-g100) !important;
	border-radius: 10px !important; display: flex !important; flex-direction: column !important; gap: 12px !important;
}
.ecm-pfc-mix-head { display: flex !important; justify-content: space-between !important; align-items: center !important; }
.ecm-pfc-mix-label { font-size: 13.5px !important; color: var(--ecm-pfc-g700) !important; }
.ecm-pfc-mix-val { font-family: 'JetBrains Mono', monospace !important; font-size: 13.5px !important; color: var(--ecm-pfc-mid) !important; font-weight: 700 !important; }
.ecm-pfc-mix-total {
	font-family: 'JetBrains Mono', monospace !important; font-size: 13.5px !important; font-weight: 700 !important;
	color: var(--ecm-pfc-g500) !important; text-align: right !important; padding-top: 4px !important;
	border-top: 1px dashed var(--ecm-pfc-g300) !important;
}
.ecm-pfc-mix-total.ecm-pfc-mix-off { color: var(--ecm-pfc-coral) !important; }

/* Results */
.ecm-pfc-results { display: flex !important; flex-direction: column !important; gap: 14px !important; }

.ecm-pfc-headline {
	background: var(--ecm-pfc-grad) !important; color: #fff !important; border-radius: 16px !important;
	padding: 24px 26px !important; text-align: left !important;
}
.ecm-pfc-headline-flat { background: var(--ecm-pfc-ink) !important; }
.ecm-pfc-headline-label {
	font-size: 13px !important; font-weight: 700 !important; letter-spacing: 1.5px !important;
	text-transform: uppercase !important; color: var(--ecm-pfc-light) !important; margin-bottom: 8px !important;
}
.ecm-pfc-headline-amount {
	font-family: 'Instrument Serif', Georgia, serif !important; font-size: 32px !important; line-height: 1.1 !important;
	color: #fff !important;
}
.ecm-pfc-headline-sub { font-size: 15px !important; color: rgba(255,255,255,.75) !important; margin-top: 8px !important; }
.ecm-pfc-mono { font-family: 'JetBrains Mono', monospace !important; font-weight: 700 !important; }

/* Rows */
.ecm-pfc-table { display: flex !important; flex-direction: column !important; gap: 10px !important; }
.ecm-pfc-row {
	background: #fff !important; border: 1px solid var(--ecm-pfc-g200) !important; border-radius: 14px !important;
	padding: 16px 18px !important; transition: transform .15s ease, box-shadow .15s ease !important;
}
.ecm-pfc-row:hover { transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(45,27,105,.10) !important; }
.ecm-pfc-row-best { border-color: var(--ecm-pfc-green) !important; box-shadow: 0 0 0 1px var(--ecm-pfc-green) !important; }
.ecm-pfc-row-baseline { background: var(--ecm-pfc-g100) !important; }

.ecm-pfc-row-main { display: flex !important; justify-content: space-between !important; align-items: center !important; gap: 16px !important; flex-wrap: wrap !important; }
.ecm-pfc-row-name { display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important; }
.ecm-pfc-swatch { width: 12px !important; height: 12px !important; border-radius: 3px !important; flex: 0 0 auto !important; }
.ecm-pfc-pname { font-size: 18px !important; font-weight: 700 !important; color: var(--ecm-pfc-g900) !important; }
.ecm-pfc-type {
	font-size: 13px !important; color: var(--ecm-pfc-g400) !important; font-family: 'JetBrains Mono', monospace !important;
	border: 1px solid var(--ecm-pfc-g200) !important; border-radius: 5px !important; padding: 2px 6px !important;
}
.ecm-pfc-badge {
	font-size: 12px !important; font-weight: 700 !important; letter-spacing: .5px !important; text-transform: uppercase !important;
	border-radius: 5px !important; padding: 3px 7px !important;
}
.ecm-pfc-badge-best { background: var(--ecm-pfc-green) !important; color: #06351f !important; }
.ecm-pfc-badge-base { background: var(--ecm-pfc-soft) !important; color: var(--ecm-pfc-mid) !important; }

.ecm-pfc-row-figures { display: flex !important; gap: 22px !important; }
.ecm-pfc-fig { text-align: right !important; }
.ecm-pfc-fig-num { font-size: 23px !important; color: var(--ecm-pfc-g900) !important; }
.ecm-pfc-fig-lbl { font-size: 13px !important; color: var(--ecm-pfc-g400) !important; text-transform: uppercase !important; letter-spacing: .5px !important; }

.ecm-pfc-row-meta { margin-top: 12px !important; padding-top: 12px !important; border-top: 1px solid var(--ecm-pfc-g100) !important; }
.ecm-pfc-platforms { display: flex !important; align-items: center !important; gap: 6px !important; flex-wrap: wrap !important; }
.ecm-pfc-platforms-lbl { font-size: 13.5px !important; color: var(--ecm-pfc-g400) !important; }
.ecm-pfc-plat {
	font-size: 13.5px !important; color: var(--ecm-pfc-mid) !important; text-decoration: none !important;
	background: var(--ecm-pfc-soft) !important; border-radius: 6px !important; padding: 3px 8px !important;
}
.ecm-pfc-plat:hover { background: var(--ecm-pfc-mid) !important; color: #fff !important; }
.ecm-pfc-note { font-size: 14px !important; color: var(--ecm-pfc-g500) !important; margin-top: 8px !important; }

.ecm-pfc-disclaimer { font-size: 13.5px !important; color: var(--ecm-pfc-g400) !important; line-height: 1.5 !important; margin-top: 4px !important; }

/* CTA */
.ecm-pfc-cta {
	display: inline-flex !important; align-items: center !important; gap: 8px !important; align-self: flex-start !important;
	background: var(--ecm-pfc-coral) !important; color: #fff !important; text-decoration: none !important;
	font-weight: 700 !important; font-size: 16px !important; padding: 13px 26px !important; border-radius: 10px !important;
	transition: background .15s ease, transform .15s ease !important;
}
.ecm-pfc-cta:hover { background: var(--ecm-pfc-coral-h) !important; transform: translateY(-2px) !important; color: #fff !important; }

/* FAQ */
.ecm-pfc-faq { margin-top: 40px !important; }
.ecm-pfc-faq-title {
	font-family: 'Instrument Serif', Georgia, serif !important; font-weight: 400 !important; font-size: 32px !important;
	color: var(--ecm-pfc-g900) !important; margin: 0 0 16px !important;
}
.ecm-pfc-faq-item { border-bottom: 1px solid var(--ecm-pfc-g200) !important; padding: 4px 0 !important; }
.ecm-pfc-faq-q {
	cursor: pointer !important; list-style: none !important; padding: 14px 0 !important; font-weight: 600 !important;
	font-size: 17px !important; color: var(--ecm-pfc-g900) !important; position: relative !important; padding-right: 28px !important;
}
.ecm-pfc-faq-q::-webkit-details-marker { display: none !important; }
.ecm-pfc-faq-q::after {
	content: '+' !important; position: absolute !important; right: 4px !important; top: 12px !important;
	font-size: 23px !important; color: var(--ecm-pfc-mid) !important; transition: transform .2s ease !important;
}
.ecm-pfc-faq-item[open] .ecm-pfc-faq-q::after { transform: rotate(45deg) !important; }
.ecm-pfc-faq-a { font-size: 16px !important; color: var(--ecm-pfc-g500) !important; padding: 0 0 16px !important; }

/* Newsletter */
.ecm-pfc-newsletter {
	margin-top: 40px !important; background: var(--ecm-pfc-grad) !important; border-radius: 18px !important;
	padding: 36px 28px !important; text-align: center !important; color: #fff !important;
}
.ecm-pfc-nl-pulse {
	display: inline-flex !important; align-items: center !important; gap: 7px !important; font-size: 13.5px !important;
	color: rgba(255,255,255,.8) !important; font-family: 'JetBrains Mono', monospace !important; margin-bottom: 12px !important;
}
.ecm-pfc-dot {
	width: 8px !important; height: 8px !important; border-radius: 50% !important; background: var(--ecm-pfc-green) !important;
	box-shadow: 0 0 0 0 rgba(52,211,153,.6) !important; animation: ecm-pfc-pulse 2s infinite !important;
}
@keyframes ecm-pfc-pulse {
	0% { box-shadow: 0 0 0 0 rgba(52,211,153,.6) !important; }
	70% { box-shadow: 0 0 0 8px rgba(52,211,153,0) !important; }
	100% { box-shadow: 0 0 0 0 rgba(52,211,153,0) !important; }
}
.ecm-pfc-nl-title {
	font-family: 'Instrument Serif', Georgia, serif !important; font-weight: 400 !important; font-size: 28px !important;
	color: #fff !important; margin: 0 0 8px !important;
}
.ecm-pfc-nl-sub { font-size: 15px !important; color: rgba(255,255,255,.75) !important; margin: 0 0 20px !important; }
.ecm-pfc-newsletter iframe.ecm-pfc-beehiiv {
	width: 100% !important; max-width: 480px !important; border: none !important; background: transparent !important;
	min-height: 180px !important; height: auto !important; display: block !important; margin: 0 auto !important;
}

/* Responsive */
@media (max-width: 768px) {
	.ecm-pfc-app { grid-template-columns: 1fr !important; }
	.ecm-pfc-controls { position: static !important; }
	.ecm-pfc-title { font-size: 34px !important; }
	.ecm-pfc-row-main { align-items: flex-start !important; }
	.ecm-pfc-row-figures { gap: 18px !important; }
}
@media (max-width: 480px) {
	.ecm-pfc-headline-amount { font-size: 27px !important; }
	.ecm-pfc-fig-num { font-size: 20px !important; }
}

/* ---- v1.1 additions ---- */

/* Statement baseline + checks */
.ecm-pfc-check {
	display: flex !important; align-items: center !important; gap: 7px !important; font-size: 14px !important;
	color: var(--ecm-pfc-g700) !important; cursor: pointer !important; margin-top: 4px !important;
}
.ecm-pfc-check input { accent-color: var(--ecm-pfc-mid) !important; }
.ecm-pfc-stmt {
	margin-top: 8px !important; padding: 12px !important; background: var(--ecm-pfc-g100) !important;
	border-radius: 10px !important; display: flex !important; flex-direction: column !important; gap: 10px !important;
}
.ecm-pfc-stmt-row { display: flex !important; flex-direction: column !important; gap: 4px !important; }
.ecm-pfc-mini { font-size: 13px !important; color: var(--ecm-pfc-g500) !important; text-transform: uppercase !important; letter-spacing: .5px !important; }
.ecm-pfc-input-suffix { position: relative !important; display: flex !important; align-items: center !important; }
.ecm-pfc-input-suffix .ecm-pfc-input { padding-left: 12px !important; padding-right: 28px !important; }
.ecm-pfc-suffix {
	position: absolute !important; right: 12px !important; color: var(--ecm-pfc-g400) !important;
	font-family: 'JetBrains Mono', monospace !important; font-size: 15px !important;
}

/* Advanced disclosure (controls) */
.ecm-pfc-adv { border-top: 1px solid var(--ecm-pfc-g200) !important; padding-top: 12px !important; }
.ecm-pfc-adv-sum, .ecm-pfc-assume-sum {
	cursor: pointer !important; list-style: none !important; font-size: 14.5px !important; font-weight: 600 !important;
	color: var(--ecm-pfc-mid) !important;
}
.ecm-pfc-adv-sum::-webkit-details-marker, .ecm-pfc-assume-sum::-webkit-details-marker { display: none !important; }

/* Share row */
.ecm-pfc-share { display: flex !important; align-items: center !important; gap: 10px !important; flex-wrap: wrap !important; }
.ecm-pfc-share-btn {
	background: #fff !important; border: 1.5px solid var(--ecm-pfc-g200) !important; color: var(--ecm-pfc-g700) !important;
	font-family: 'DM Sans', sans-serif !important; font-size: 14.5px !important; font-weight: 600 !important;
	padding: 9px 16px !important; border-radius: 9px !important; cursor: pointer !important;
	transition: background .15s ease, border-color .15s ease !important;
}
.ecm-pfc-share-btn:hover { background: var(--ecm-pfc-g100) !important; border-color: var(--ecm-pfc-g300) !important; }
.ecm-pfc-share-done {
	font-size: 13.5px !important; font-weight: 700 !important; color: var(--ecm-pfc-green) !important;
	font-family: 'JetBrains Mono', monospace !important;
}

/* Assumptions panel */
.ecm-pfc-assume { background: var(--ecm-pfc-g100) !important; border-radius: 12px !important; padding: 14px 16px !important; }
.ecm-pfc-assume-body { margin-top: 10px !important; }
.ecm-pfc-assume-body p { font-size: 14.5px !important; color: var(--ecm-pfc-g500) !important; margin: 0 0 8px !important; }
.ecm-pfc-assume-body p:last-child { margin-bottom: 0 !important; }
.ecm-pfc-assume-body strong { color: var(--ecm-pfc-g700) !important; }

/* Excluded fees note */
.ecm-pfc-excludes { border: 1px dashed var(--ecm-pfc-g300) !important; border-radius: 12px !important; padding: 14px 16px !important; }
.ecm-pfc-excludes-h {
	font-size: 13px !important; font-weight: 700 !important; letter-spacing: 1px !important; text-transform: uppercase !important;
	color: var(--ecm-pfc-g400) !important; margin-bottom: 6px !important;
}
.ecm-pfc-excludes p { font-size: 14px !important; color: var(--ecm-pfc-g500) !important; margin: 0 !important; line-height: 1.55 !important; }

/* Row microfacts + visit link */
.ecm-pfc-microfacts { display: flex !important; gap: 14px !important; flex-wrap: wrap !important; margin-top: 8px !important; }
.ecm-pfc-micro { font-size: 13.5px !important; color: var(--ecm-pfc-g500) !important; font-family: 'JetBrains Mono', monospace !important; }
.ecm-pfc-visit {
	display: inline-block !important; margin-top: 10px !important; font-size: 14.5px !important; font-weight: 600 !important;
	color: var(--ecm-pfc-mid) !important; text-decoration: none !important;
}
.ecm-pfc-visit:hover { color: var(--ecm-pfc-dark) !important; text-decoration: underline !important; }

/* Correction form */
.ecm-pfc-correct { margin-top: 28px !important; }
.ecm-pfc-correct-wrap { border: 1px solid var(--ecm-pfc-g200) !important; border-radius: 12px !important; padding: 4px 16px !important; }
.ecm-pfc-correct-sum {
	cursor: pointer !important; list-style: none !important; padding: 14px 0 !important; font-weight: 600 !important;
	font-size: 15px !important; color: var(--ecm-pfc-mid) !important;
}
.ecm-pfc-correct-sum::-webkit-details-marker { display: none !important; }
.ecm-pfc-correct-body { padding: 4px 0 16px !important; }
.ecm-pfc-correct-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; margin-bottom: 10px !important; }
.ecm-pfc-textarea {
	width: 100% !important; padding: 10px 12px !important; border: 2px solid var(--ecm-pfc-g200) !important; border-radius: 10px !important;
	font-family: 'DM Sans', sans-serif !important; font-size: 15px !important; color: var(--ecm-pfc-g900) !important; resize: vertical !important;
	margin-bottom: 10px !important;
}
.ecm-pfc-textarea:focus { outline: none !important; border-color: var(--ecm-pfc-g900) !important; }
.ecm-pfc-correct-submit { background: var(--ecm-pfc-mid) !important; color: #fff !important; border-color: var(--ecm-pfc-mid) !important; }
.ecm-pfc-correct-submit:hover { background: var(--ecm-pfc-dark) !important; border-color: var(--ecm-pfc-dark) !important; }
.ecm-pfc-correct-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.ecm-pfc-correct-thanks { color: #06351f !important; background: var(--ecm-pfc-green) !important; border-radius: 8px !important; padding: 10px 12px !important; font-size: 14.5px !important; font-weight: 600 !important; margin-bottom: 12px !important; }
.ecm-pfc-correct-err { color: #7a1f12 !important; background: #fde0d8 !important; border-radius: 8px !important; padding: 10px 12px !important; font-size: 14.5px !important; font-weight: 600 !important; margin-bottom: 12px !important; }

@media (max-width: 768px) {
	.ecm-pfc-correct-grid { grid-template-columns: 1fr !important; }
}
