/* ECM Salary Benchmark — front-end styles.
   All scoped under .ecm-sb-wrap, ecm-sb- prefixed, !important for Elementor override reliability. */

.ecm-sb-wrap,
.ecm-sb-wrap * {
	box-sizing: border-box !important;
}

.ecm-sb-wrap {
	max-width: 760px !important;
	margin: 0 auto !important;
	font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif !important;
	color: #3D3660 !important;
	line-height: 1.55 !important;
	-webkit-font-smoothing: antialiased !important;
}

/* ---------- Hero ---------- */
.ecm-sb-hero {
	background: linear-gradient(155deg, #2D1B69 0%, #3A2280 30%, #5B3FB5 65%, #7C5FD6 100%) !important;
	border-radius: 18px !important;
	padding: 38px 34px !important;
	text-align: center !important;
	color: #FFFFFF !important;
	margin-bottom: 20px !important;
}

.ecm-sb-eyebrow {
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	color: #A78BFA !important;
	margin-bottom: 12px !important;
}

.ecm-sb-title {
	font-family: 'Instrument Serif', Georgia, serif !important;
	font-size: 42px !important;
	line-height: 1.08 !important;
	color: #FFFFFF !important;
	margin: 0 0 16px 0 !important;
	font-weight: 400 !important;
}

.ecm-sb-freshness {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	font-size: 12.5px !important;
	color: rgba(255,255,255,0.78) !important;
	font-weight: 500 !important;
}

.ecm-sb-dot {
	width: 8px !important;
	height: 8px !important;
	border-radius: 50% !important;
	background: #34D399 !important;
	box-shadow: 0 0 0 0 rgba(52,211,153,0.7) !important;
	animation: ecm-sb-pulse 2s infinite !important;
}

@keyframes ecm-sb-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(52,211,153,0.6); }
	70%  { box-shadow: 0 0 0 8px rgba(52,211,153,0); }
	100% { box-shadow: 0 0 0 0 rgba(52,211,153,0); }
}

/* ---------- Form card ---------- */
.ecm-sb-card {
	background: #FFFFFF !important;
	border: 1px solid #E8E5F0 !important;
	border-radius: 16px !important;
	padding: 26px !important;
	box-shadow: 0 4px 24px rgba(45,27,105,0.06) !important;
}

.ecm-sb-form {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 16px 18px !important;
}

.ecm-sb-field {
	display: flex !important;
	flex-direction: column !important;
}

.ecm-sb-label {
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #6B6490 !important;
	margin-bottom: 7px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.4px !important;
}

.ecm-sb-select {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 15px !important;
	color: #1A1530 !important;
	background: #FFFFFF !important;
	border: 2px solid #E8E5F0 !important;
	border-radius: 10px !important;
	padding: 11px 12px !important;
	width: 100% !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235B3FB5' d='M6 8L0 0h12z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	transition: border-color 0.15s ease !important;
}

.ecm-sb-select:focus {
	outline: none !important;
	border-color: #1A1530 !important;
}

.ecm-sb-field-cta {
	grid-column: 1 / -1 !important;
	margin-top: 4px !important;
}

.ecm-sb-field-role {
	grid-column: 1 / -1 !important;
}

.ecm-sb-btn {
	background: #F47458 !important;
	color: #FFFFFF !important;
	font-family: 'DM Sans', sans-serif !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	text-align: center !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 15px 28px !important;
	width: 100% !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease !important;
	user-select: none !important;
}

.ecm-sb-btn:hover {
	background: #E55D40 !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 22px rgba(244,116,88,0.35) !important;
}

.ecm-sb-btn[data-loading="1"] {
	opacity: 0.7 !important;
	pointer-events: none !important;
}

/* ---------- Results ---------- */
.ecm-sb-results {
	display: none !important;
	margin-top: 22px !important;
}

.ecm-sb-results[data-state="done"] {
	display: block !important;
}

.ecm-sb-result-head {
	background: #0F0A1E !important;
	border-radius: 16px !important;
	padding: 30px 26px !important;
	text-align: center !important;
	color: #FFFFFF !important;
}

.ecm-sb-result-eyebrow {
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	color: #A78BFA !important;
	margin-bottom: 12px !important;
}

.ecm-sb-result-band {
	font-family: 'JetBrains Mono', monospace !important;
	font-size: 38px !important;
	font-weight: 700 !important;
	color: #FFFFFF !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px !important;
	flex-wrap: wrap !important;
}

.ecm-sb-sep {
	color: #6B6490 !important;
	font-weight: 400 !important;
}

.ecm-sb-result-sub {
	font-size: 13.5px !important;
	color: rgba(255,255,255,0.65) !important;
	margin-top: 10px !important;
}

.ecm-sb-strong {
	font-family: 'JetBrains Mono', monospace !important;
	color: #FFFFFF !important;
	font-weight: 500 !important;
}

/* range bar */
.ecm-sb-bar {
	background: #FFFFFF !important;
	border: 1px solid #E8E5F0 !important;
	border-radius: 14px !important;
	padding: 22px 24px !important;
	margin-top: 16px !important;
}

.ecm-sb-bar-track {
	position: relative !important;
	height: 10px !important;
	background: #F3F1F9 !important;
	border-radius: 6px !important;
}

.ecm-sb-bar-fill {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	height: 10px !important;
	width: 100% !important;
	border-radius: 6px !important;
	background: linear-gradient(90deg, #5B3FB5 0%, #7C5FD6 100%) !important;
}

.ecm-sb-bar-marker {
	position: absolute !important;
	top: -5px !important;
	left: 50% !important;
	width: 20px !important;
	height: 20px !important;
	border-radius: 50% !important;
	background: #F47458 !important;
	border: 3px solid #FFFFFF !important;
	box-shadow: 0 2px 8px rgba(244,116,88,0.5) !important;
	transform: translateX(-50%) !important;
}

.ecm-sb-bar-labels {
	display: flex !important;
	justify-content: space-between !important;
	margin-top: 14px !important;
	font-family: 'JetBrains Mono', monospace !important;
	font-size: 12.5px !important;
	color: #6B6490 !important;
}

.ecm-sb-bar-labels span:nth-child(2) {
	color: #F47458 !important;
	font-weight: 700 !important;
}

/* total comp */
.ecm-sb-totalcomp {
	background: #EDE9FE !important;
	border-radius: 14px !important;
	padding: 18px 24px !important;
	margin-top: 16px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}

.ecm-sb-tc-label {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #3A2280 !important;
}

.ecm-sb-tc-val {
	font-family: 'JetBrains Mono', monospace !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	color: #2D1B69 !important;
}

/* comparison */
.ecm-sb-compare {
	background: #FFFFFF !important;
	border: 1px solid #E8E5F0 !important;
	border-radius: 14px !important;
	padding: 22px 24px !important;
	margin-top: 16px !important;
}

.ecm-sb-compare-head,
.ecm-sb-method-head {
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	color: #5B3FB5 !important;
	margin-bottom: 16px !important;
}

.ecm-sb-agg-row {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 11px 0 !important;
	border-bottom: 1px solid #F3F1F9 !important;
}

.ecm-sb-agg-row:last-child {
	border-bottom: none !important;
}

.ecm-sb-agg-name {
	font-size: 14.5px !important;
	font-weight: 600 !important;
}

.ecm-sb-agg-name a {
	color: #5B3FB5 !important;
	text-decoration: none !important;
}

.ecm-sb-agg-name a:hover {
	text-decoration: underline !important;
}

.ecm-sb-agg-val {
	font-family: 'JetBrains Mono', monospace !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	color: #1A1530 !important;
}

.ecm-sb-compare-note {
	margin-top: 14px !important;
	font-size: 13px !important;
	color: #6B6490 !important;
	background: #F3F1F9 !important;
	border-radius: 8px !important;
	padding: 11px 14px !important;
}

.ecm-sb-compare-note b {
	color: #2D1B69 !important;
}

/* methodology */
.ecm-sb-method {
	margin-top: 16px !important;
	padding: 22px 24px !important;
	background: #F3F1F9 !important;
	border-radius: 14px !important;
}

.ecm-sb-method-body {
	font-size: 13px !important;
	color: #6B6490 !important;
	line-height: 1.6 !important;
}

/* newsletter */
.ecm-sb-newsletter {
	margin-top: 16px !important;
	background: linear-gradient(155deg, #2D1B69 0%, #3A2280 50%, #5B3FB5 100%) !important;
	border-radius: 16px !important;
	padding: 26px !important;
	color: #FFFFFF !important;
}

.ecm-sb-nl-title {
	font-family: 'Instrument Serif', Georgia, serif !important;
	font-size: 24px !important;
	color: #FFFFFF !important;
	margin-bottom: 6px !important;
}

.ecm-sb-nl-sub {
	font-size: 13.5px !important;
	color: rgba(255,255,255,0.72) !important;
	margin-bottom: 16px !important;
}

.ecm-sb-beehiiv {
	width: 100% !important;
	min-height: 180px !important;
	height: auto !important;
	border: none !important;
	margin: 0 !important;
}

/* ---------- v1.2 components ---------- */

/* quarter-over-quarter badge */
.ecm-sb-qoq {
	display: none;
	align-items: center !important;
	gap: 8px !important;
	margin: 14px auto 0 auto !important;
	padding: 8px 16px !important;
	background: rgba(52,211,153,0.12) !important;
	border: 1px solid rgba(52,211,153,0.4) !important;
	border-radius: 999px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #0e8f63 !important;
	width: fit-content !important;
}
.ecm-sb-qoq[data-dir="down"] {
	background: rgba(244,116,88,0.12) !important;
	border-color: rgba(244,116,88,0.4) !important;
	color: #c0492f !important;
}
.ecm-sb-qoq-arrow { font-size: 11px !important; }

/* factor breakdown */
.ecm-sb-breakdown,
.ecm-sb-offer,
.ecm-sb-city {
	background: #FFFFFF !important;
	border: 1px solid #E8E5F0 !important;
	border-radius: 14px !important;
	padding: 22px 24px !important;
	margin-top: 16px !important;
}
.ecm-sb-breakdown-head,
.ecm-sb-offer-head,
.ecm-sb-city-head {
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	color: #5B3FB5 !important;
	margin-bottom: 16px !important;
}
.ecm-sb-bd-row {
	display: grid !important;
	grid-template-columns: 1fr 90px 54px !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 8px 0 !important;
}
.ecm-sb-bd-label { font-size: 13.5px !important; color: #3D3660 !important; }
.ecm-sb-bd-label b { color: #1A1530 !important; font-weight: 600 !important; }
.ecm-sb-bd-track {
	height: 8px !important;
	background: #F3F1F9 !important;
	border-radius: 4px !important;
	overflow: hidden !important;
}
.ecm-sb-bd-bar { height: 8px !important; border-radius: 4px !important; }
.ecm-sb-bd-bar.ecm-sb-up { background: #34D399 !important; }
.ecm-sb-bd-bar.ecm-sb-down { background: #F47458 !important; margin-left: auto !important; }
.ecm-sb-bd-bar.ecm-sb-flat { background: #C4C0D8 !important; }
.ecm-sb-bd-pct {
	font-family: 'JetBrains Mono', monospace !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	text-align: right !important;
}
.ecm-sb-up { color: #0e8f63 !important; }
.ecm-sb-down { color: #c0492f !important; }
.ecm-sb-flat { color: #6B6490 !important; }

/* offer checker */
.ecm-sb-offer-sub { font-size: 13px !important; color: #6B6490 !important; margin: -8px 0 14px 0 !important; }
.ecm-sb-offer-row { display: flex !important; gap: 10px !important; }
.ecm-sb-offer-input {
	flex: 1 !important;
	font-family: 'DM Sans', sans-serif !important;
	font-size: 15px !important;
	color: #1A1530 !important;
	border: 2px solid #E8E5F0 !important;
	border-radius: 10px !important;
	padding: 11px 14px !important;
	background: #FFFFFF !important;
}
.ecm-sb-offer-input:focus { outline: none !important; border-color: #1A1530 !important; }
.ecm-sb-offer-btn,
.ecm-sb-share-btn {
	font-family: 'DM Sans', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #FFFFFF !important;
	background: #5B3FB5 !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 11px 22px !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: background 0.15s ease !important;
}
.ecm-sb-offer-btn:hover, .ecm-sb-share-btn:hover { background: #3A2280 !important; }
.ecm-sb-offer-result {
	margin-top: 14px !important;
	font-size: 14px !important;
	color: #3D3660 !important;
	line-height: 1.55 !important;
}
.ecm-sb-offer-result:empty { display: none !important; }

/* city compare */
.ecm-sb-city-result {
	margin-top: 14px !important;
	font-size: 14px !important;
	color: #3D3660 !important;
	line-height: 1.55 !important;
}
.ecm-sb-city-result:empty { display: none !important; }
.ecm-sb-muted { color: #8E89AB !important; }

/* share */
.ecm-sb-share { margin-top: 16px !important; text-align: center !important; }
.ecm-sb-share-btn { background: transparent !important; color: #5B3FB5 !important; border: 1.5px solid #C4C0D8 !important; }
.ecm-sb-share-btn:hover { background: #F3F1F9 !important; }

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
	.ecm-sb-form {
		grid-template-columns: 1fr !important;
	}
	.ecm-sb-title {
		font-size: 32px !important;
	}
	.ecm-sb-result-band {
		font-size: 30px !important;
	}
	.ecm-sb-hero {
		padding: 30px 22px !important;
	}
}
