/**
 * Falcon West Calculators — scoped utilities + self-contained face tokens.
 *
 * Token source of truth is still Falcon West Core (`falcon-west-material`)
 * when that sheet is present. This file does not copy the Material sheet
 * and does not declare --md-sys-color-* or --shape-pill.
 *
 * `.fw-calc` carries hex fallbacks so Energy / Beaver Builder pages without
 * Core still get finished chrome (no competing palette, no theme bleed).
 */

.fw-calc,
.bic-calculator,
.captive-calc,
.fwcc-calculator {
	/*
	 * Local aliases: inherit Core when present, hex when not.
	 * Do not re-assign --md-* here — that would shadow Core.
	 */
	--fw-ink: var(--md-text-high, #080808);
	--fw-ink-medium: var(--md-text-medium, #5c5c5c);
	--fw-paper: var(--md-surface, #ffffff);
	--fw-canvas: var(--md-background, #fcfefe);
	--fw-rust: var(--color-rust-700, #a85f2e);
	--fw-rust-hover: var(--color-rust-800, #8a4d25);
	--fw-navy: var(--md-secondary, #15445d);
	--fw-line: var(--color-line-300, #8a8a8a);
	--fw-hairline: var(--md-outline, #e0e0e0);
	--fw-orange: var(--md-primary-decorative, #d2793d);
	--fw-danger: var(--md-error, #b3261e);
	--fw-sky: #3d96d2;
	--fw-sky-100: #e3f1fa;
	--fw-on-primary: var(--md-on-primary, #ffffff);
	--fw-elev-1: var(--elevation-1, 0 1px 2px rgba(8, 8, 8, 0.12), 0 1px 3px rgba(8, 8, 8, 0.08));
	--fw-elev-2: var(--elevation-2, 0 2px 4px rgba(8, 8, 8, 0.14));
	--fw-elev-4: var(--elevation-4, 0 4px 8px rgba(8, 8, 8, 0.16));
	--fw-radius: var(--shape-small, 4px);
	--fw-font: var(--font-body, "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif);
	--focus-field-border: var(--color-rust-700, #a85f2e);

	font-family: var(--fw-font);
	color: var(--fw-ink);
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
}

.fw-calc *,
.fw-calc *::before,
.fw-calc *::after,
.bic-calculator *,
.bic-calculator *::before,
.bic-calculator *::after,
.captive-calc *,
.captive-calc *::before,
.captive-calc *::after,
.fwcc-calculator *,
.fwcc-calculator *::before,
.fwcc-calculator *::after {
	box-sizing: inherit;
}

/* Isolate from Beaver Builder / theme form and heading bleed. */
.fw-calc h1,
.fw-calc h2,
.fw-calc h3,
.fw-calc h4,
.fw-calc h5,
.fw-calc h6 {
	font-family: inherit;
	color: var(--fw-ink);
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	letter-spacing: normal;
	text-transform: none;
}

.fw-calc p {
	font-family: inherit;
	color: inherit;
	margin: 0;
}

.fw-calc input,
.fw-calc select,
.fw-calc textarea,
.fw-calc button,
.fw-calc label {
	font-family: inherit;
	font-size: inherit;
	color: inherit;
	box-shadow: none;
}

.fw-calc input[type="text"],
.fw-calc input[type="number"],
.fw-calc select {
	width: 100%;
	height: 56px;
	padding: 0 16px;
	background: var(--fw-paper);
	border: 1px solid var(--fw-line);
	border-radius: var(--fw-radius);
	color: var(--fw-ink);
	line-height: 1.5;
	-webkit-appearance: none;
	appearance: none;
}

.fw-calc input[type="text"]:focus,
.fw-calc input[type="number"]:focus,
.fw-calc select:focus {
	outline: none;
	border: 2px solid var(--fw-rust);
	padding: 0 15px;
}

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

/* Navy focus ring everywhere except text fields (component CSS owns fields). */
.fw-calc :focus-visible,
.bic-calculator :focus-visible,
.captive-calc :focus-visible,
.fwcc-calculator :focus-visible {
	outline: var(--focus-ring-width, 2px) solid var(--focus-ring-color, #15445d);
	outline-offset: var(--focus-ring-offset, 2px);
}

.fw-calc a,
.bic-calculator a,
.captive-calc a,
.fwcc-calculator a {
	color: var(--md-link, #2d78ad);
	text-decoration: none;
}

.fw-calc a:hover,
.bic-calculator a:hover,
.captive-calc a:hover,
.fwcc-calculator a:hover {
	color: var(--md-link-hover, #1f5a85);
	text-decoration: underline;
}

/* Hide number spinners */
.fw-calc input[type="number"]::-webkit-outer-spin-button,
.fw-calc input[type="number"]::-webkit-inner-spin-button,
.bic-calculator input[type="number"]::-webkit-outer-spin-button,
.bic-calculator input[type="number"]::-webkit-inner-spin-button,
.fwcc-calculator input[type="number"]::-webkit-outer-spin-button,
.fwcc-calculator input[type="number"]::-webkit-inner-spin-button,
.captive-calc input[type="number"]::-webkit-outer-spin-button,
.captive-calc input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.fw-calc input[type="number"],
.bic-calculator input[type="number"],
.fwcc-calculator input[type="number"],
.captive-calc input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}

@media (prefers-reduced-motion: reduce) {
	.fw-calc *,
	.bic-calculator *,
	.captive-calc *,
	.fwcc-calculator * {
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 1ms !important;
	}
}

/* ── Shared legal closer (2.4.1) — ink on the light canvas ────────────
 * Rendered by FWC_Assets::legal_closer() at the bottom of every face.
 * Copyright year, legal name + Privacy Policy links, CA license + Version.
 */
.fw-calc .fw-calc-legal {
	margin: 64px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--fw-hairline, #e0e0e0);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.4px;
	line-height: 1.6;
	text-align: center;
	color: var(--fw-ink-medium, #5c5c5c);
	background: transparent;
}

.fw-calc .fw-calc-legal-line {
	margin: 0;
	font-size: 12px;
	color: inherit;
}

.fw-calc .fw-calc-legal-sep {
	margin: 0 6px;
	color: var(--fw-line, #8a8a8a);
}

.fw-calc .fw-calc-legal-link {
	color: var(--fw-sky, #3d96d2);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.fw-calc .fw-calc-legal-link:hover,
.fw-calc .fw-calc-legal-link:focus {
	color: var(--fw-ink, #080808);
	text-decoration: underline;
}

.fw-calc .fw-calc-legal-link:focus-visible {
	outline: 2px solid var(--fw-rust, #a85f2e);
	outline-offset: 2px;
}
