/**
 * UNCHAINED Relocation Calculator - front end styles.
 *
 * A single self-contained widget matching the reference "arbitrage
 * calculator" design: a still-home/already-moved toggle, custom currency and
 * destination dropdowns, a big equivalent-salary result, a red-tinted
 * "opportunity cost" risk card and a dark CTA card. Every color/spacing
 * value is driven by the widget's own Elementor Style controls through CSS
 * custom properties on the root element.
 *
 * @package Unchained\Relocation_Calculator
 * @since   1.0.0
 */

.unchained-rc-calculator {
	--unchained-rc-calc-radius: 20px;
	--unchained-rc-calc-gap: 14px;
	--unchained-rc-calc-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--unchained-rc-calc-font-display: 'Space Grotesk', inherit, sans-serif;
	--unchained-rc-calc-font-body: 'Inter', inherit, sans-serif;

	--unchained-rc-calc-background: #050505;
	--unchained-rc-calc-card-background: #101010;
	--unchained-rc-calc-border: rgba(255, 255, 255, 0.08);
	--unchained-rc-calc-text: #ffffff;
	--unchained-rc-calc-text-muted: rgba(255, 255, 255, 0.55);
	--unchained-rc-calc-primary: #4f8cff;
	--unchained-rc-calc-success: #22c55e;
	--unchained-rc-calc-danger: #ef4444;
	--unchained-rc-calc-cta-background: #101010;

	--unchained-rc-calc-button-background: #f59e0b;
	--unchained-rc-calc-button-text-color: #101010;
	--unchained-rc-calc-button-hover-background: #fbbf24;
	--unchained-rc-calc-button-toggle-active: #ffffff;
	--unchained-rc-calc-button-toggle-active-text: #101010;

	--unchained-rc-calc-dropdown-background: #101010;
	--unchained-rc-calc-dropdown-border: rgba(255, 255, 255, 0.12);
	--unchained-rc-calc-dropdown-text: #ffffff;
	--unchained-rc-calc-dropdown-option-hover: #4f8cff;

	box-sizing: border-box;
	background-color: var(--unchained-rc-calc-background);
	color: var(--unchained-rc-calc-text);
	font-family: var(--unchained-rc-calc-font-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	display: flex;
	flex-direction: column;
	gap: var(--unchained-rc-calc-gap);
	max-width: 480px;
	width: 100%;
}

.unchained-rc-calculator *,
.unchained-rc-calculator *::before,
.unchained-rc-calculator *::after {
	box-sizing: inherit;
}

/* Toggle. */
.unchained-rc-calculator__toggle {
	display: flex;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid var(--unchained-rc-calc-border);
	border-radius: 999px;
	padding: 4px;
	gap: 4px;
}

.unchained-rc-calculator__toggle-btn {
	flex: 1;
	background: transparent;
	border: none;
	border-radius: 999px;
	color: var(--unchained-rc-calc-text-muted);
	cursor: pointer;
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 13px;
	font-weight: 600;
	padding: 8px 14px;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.unchained-rc-calculator__toggle-btn--active {
	background-color: var(--unchained-rc-calc-button-toggle-active);
	color: var(--unchained-rc-calc-button-toggle-active-text);
}

/* Fields. */
.unchained-rc-calculator__inputs {
	display: flex;
	flex-direction: column;
	gap: var(--unchained-rc-calc-gap);
}

.unchained-rc-calculator__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.unchained-rc-calculator__label {
	font-size: 13px;
	color: var(--unchained-rc-calc-text-muted);
}

/* Compare-to toggle: sits inline with the destination label so it adds no extra height. */
.unchained-rc-calculator__field-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 6px 10px;
}

.unchained-rc-calculator__compare-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.unchained-rc-calculator__compare-label {
	font-size: 11px;
	color: var(--unchained-rc-calc-text-muted);
}

.unchained-rc-calculator__compare-btn {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid var(--unchained-rc-calc-border);
	border-radius: 999px;
	color: var(--unchained-rc-calc-text-muted);
	cursor: pointer;
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	padding: 5px 10px;
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.unchained-rc-calculator__compare-btn--active {
	background-color: var(--unchained-rc-calc-primary);
	border-color: var(--unchained-rc-calc-primary);
	color: #ffffff;
}

.unchained-rc-calculator__income-row {
	display: grid;
	grid-template-columns: minmax(110px, 1fr) 2fr;
	gap: 10px;
}

.unchained-rc-calculator__salary-wrap {
	display: flex;
	align-items: center;
	background: var(--unchained-rc-calc-dropdown-background);
	border: 1px solid var(--unchained-rc-calc-dropdown-border);
	border-radius: 12px;
	padding: 0 14px;
	transition: border-color 0.3s ease;
}

.unchained-rc-calculator__salary-wrap:focus-within {
	border-color: var(--unchained-rc-calc-primary);
}

.unchained-rc-calculator__salary-input {
	appearance: none;
	background: transparent;
	border: none;
	color: var(--unchained-rc-calc-dropdown-text);
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 14px;
	font-weight: 600;
	padding: 10px 0;
	width: 100%;
}

.unchained-rc-calculator__salary-input:focus {
	outline: none;
}

.unchained-rc-calculator__hint {
	font-size: 12px;
	color: var(--unchained-rc-calc-text-muted);
	margin: 0;
}

.unchained-rc-calculator__adjust-link {
	background: none;
	border: none;
	color: var(--unchained-rc-calc-button-background);
	cursor: pointer;
	font: inherit;
	font-size: 12px;
	padding: 0;
	text-decoration: underline;
}

/* Custom dropdown, shared by currency and destination. */
.unchained-rc-calculator__dropdown {
	position: relative;
}

.unchained-rc-calculator__dropdown-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: var(--unchained-rc-calc-dropdown-background);
	border: 1px solid var(--unchained-rc-calc-dropdown-border);
	border-radius: 12px;
	color: var(--unchained-rc-calc-dropdown-text);
	cursor: pointer;
	font: inherit;
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 14px;
	font-weight: 600;
	padding: 10px 14px;
	text-align: left;
	transition: border-color 0.3s ease;
}

.unchained-rc-calculator__dropdown--open .unchained-rc-calculator__dropdown-trigger,
.unchained-rc-calculator__dropdown-trigger:focus-visible {
	border-color: var(--unchained-rc-calc-primary);
	outline: none;
}

.unchained-rc-calculator__dropdown-arrow {
	color: var(--unchained-rc-calc-text-muted);
	font-size: 14px;
	flex-shrink: 0;
	margin-left: 8px;
}

.unchained-rc-calculator__dropdown-list {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 20;
	margin: 0;
	padding: 6px;
	list-style: none;
	max-height: 280px;
	overflow-y: auto;
	background: var(--unchained-rc-calc-dropdown-background);
	border: 1px solid var(--unchained-rc-calc-dropdown-border);
	border-radius: 14px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.unchained-rc-calculator__dropdown-option {
	display: flex;
	align-items: baseline;
	gap: 8px;
	border-radius: 10px;
	color: var(--unchained-rc-calc-dropdown-text);
	cursor: pointer;
	font-size: 13px;
	padding: 10px 10px;
}

.unchained-rc-calculator__dropdown-option:hover,
.unchained-rc-calculator__dropdown-option--focused {
	background-color: color-mix( in srgb, var(--unchained-rc-calc-dropdown-option-hover) 85%, transparent );
}

.unchained-rc-calculator__dropdown-option--selected {
	background-color: var(--unchained-rc-calc-dropdown-option-hover);
	color: #ffffff;
}

.unchained-rc-calculator__dropdown-check {
	width: 14px;
	flex-shrink: 0;
	opacity: 0;
	color: inherit;
}

.unchained-rc-calculator__dropdown-option--selected .unchained-rc-calculator__dropdown-check {
	opacity: 1;
}

.unchained-rc-calculator__dropdown-option-label {
	flex-shrink: 0;
}

.unchained-rc-calculator__dropdown-option-sublabel {
	color: var(--unchained-rc-calc-text-muted);
	font-size: 11px;
	margin-left: auto;
	text-align: right;
}

.unchained-rc-calculator__dropdown-option--selected .unchained-rc-calculator__dropdown-option-sublabel {
	color: rgba(255, 255, 255, 0.8);
}

/* Calculate button (Live Updates off). */
.unchained-rc-calculator__calculate-button {
	background-color: var(--unchained-rc-calc-button-background);
	border: none;
	border-radius: 12px;
	color: var(--unchained-rc-calc-button-text-color);
	cursor: pointer;
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 14px;
	font-weight: 700;
	padding: 12px;
	transition: background-color 0.3s ease;
}

.unchained-rc-calculator__calculate-button:hover {
	background-color: var(--unchained-rc-calc-button-hover-background);
}

.unchained-rc-calculator__divider {
	border-top: 1px solid var(--unchained-rc-calc-border);
}

/* Results. */
.unchained-rc-calculator__results {
	display: flex;
	flex-direction: column;
	gap: var(--unchained-rc-calc-gap);
	text-align: center;
}

/*
 * `display: flex` above has the same specificity as the browser's default
 * `[hidden] { display: none }` rule, and author styles win that tie - so
 * without this override, the panel `hidden` attribute set by
 * setMode()/render_moved_results() would be silently ignored and both the
 * "still home" and "already moved" result panels would render at once.
 */
.unchained-rc-calculator__results[hidden] {
	display: none;
}

.unchained-rc-calculator__result-intro {
	font-size: 13px;
	color: var(--unchained-rc-calc-text-muted);
	line-height: 1.6;
}

.unchained-rc-calculator__result-value {
	font-family: var(--unchained-rc-calc-font-display);
	font-size: clamp(28px, 6vw, 36px);
	font-weight: 700;
	color: var(--unchained-rc-calc-success);
	line-height: 1.2;
}

.unchained-rc-calculator__result-sub {
	font-size: 13px;
	color: var(--unchained-rc-calc-text-muted);
	margin-top: -8px;
}

/* Risk card. */
.unchained-rc-calculator__risk-card {
	background: color-mix( in srgb, var(--unchained-rc-calc-danger) 10%, var(--unchained-rc-calc-card-background) );
	border: 1px solid color-mix( in srgb, var(--unchained-rc-calc-danger) 30%, transparent );
	border-radius: var(--unchained-rc-calc-radius);
	padding: 16px;
	text-align: center;
}

.unchained-rc-calculator__risk-title {
	color: var(--unchained-rc-calc-danger);
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 4px;
}

.unchained-rc-calculator__risk-subtitle {
	color: color-mix( in srgb, var(--unchained-rc-calc-danger) 70%, var(--unchained-rc-calc-text-muted) );
	font-size: 11px;
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.unchained-rc-calculator__stat-row {
	display: flex;
	justify-content: space-around;
	gap: 12px;
}

.unchained-rc-calculator__stat-row--single {
	justify-content: center;
}

.unchained-rc-calculator__stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.unchained-rc-calculator__stat-label {
	color: var(--unchained-rc-calc-text-muted);
	font-size: 11px;
}

.unchained-rc-calculator__stat-value {
	color: var(--unchained-rc-calc-danger);
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 16px;
	font-weight: 700;
}

.unchained-rc-calculator__stat-row--single .unchained-rc-calculator__stat-value {
	font-size: 24px;
}

.unchained-rc-calculator__stat--negative .unchained-rc-calculator__stat-value {
	color: var(--unchained-rc-calc-danger);
}

.unchained-rc-calculator__stat-divider {
	border-top: 1px solid color-mix( in srgb, var(--unchained-rc-calc-danger) 20%, transparent );
	margin: 12px 0;
}

/* CTA card. */
.unchained-rc-calculator__cta {
	background-color: var(--unchained-rc-calc-cta-background);
	border: 1px solid var(--unchained-rc-calc-border);
	border-radius: var(--unchained-rc-calc-radius);
	padding: 18px;
	text-align: center;
}

.unchained-rc-calculator__cta-heading {
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 6px;
}

.unchained-rc-calculator__cta-description {
	color: var(--unchained-rc-calc-text-muted);
	font-size: 13px;
	line-height: 1.5;
	margin: 0 0 14px;
}

.unchained-rc-calculator__cta-button {
	background-color: var(--unchained-rc-calc-button-background);
	border-radius: 12px;
	color: var(--unchained-rc-calc-button-text-color);
	display: inline-block;
	font-family: var(--unchained-rc-calc-font-display);
	font-size: 14px;
	font-weight: 700;
	padding: 12px 28px;
	text-decoration: none;
	transition: background-color 0.3s ease, transform 0.3s ease;
}

.unchained-rc-calculator__cta-button:hover {
	background-color: var(--unchained-rc-calc-button-hover-background);
	transform: translateY(-1px);
}

.unchained-rc-calculator__footer {
	color: var(--unchained-rc-calc-text-muted);
	font-size: 11px;
	line-height: 1.6;
	margin: 0;
	text-align: center;
}

/* Responsive. */
@media (max-width: 480px) {
	.unchained-rc-calculator__income-row {
		grid-template-columns: 1fr;
	}

	.unchained-rc-calculator__stat-row {
		flex-wrap: wrap;
		row-gap: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.unchained-rc-calculator * {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}
