/**
 * NinetyDegreeFocus global theme foundation.
 */

:root {
	--ndf-black: #090909;
	--ndf-charcoal: #171717;
	--ndf-gray: #5b5b5b;
	--ndf-light-gray: #f3f4f5;
	--ndf-white: #ffffff;
	--ndf-lime: #b7ff00;
	--ndf-lime-dark: #95d100;
	--ndf-border: #dedfe1;
	--ndf-error: #9f2521;
	--ndf-radius-sm: 6px;
	--ndf-radius-md: 10px;
	--ndf-radius-lg: 20px;
	--ndf-shadow-sm: 0 10px 28px rgba(9, 9, 9, 0.08);
	--ndf-shadow-md: 0 18px 48px rgba(9, 9, 9, 0.15);
	--ndf-transition: 180ms ease;
	--ndf-container: 1280px;
}

html {
	scroll-behavior: smooth;
}

body.ndf-site {
	background: var(--ndf-white);
	color: var(--ndf-black);
}

.ndf-site *,
.ndf-site *::before,
.ndf-site *::after {
	box-sizing: border-box;
}

.ndf-site img {
	max-width: 100%;
	height: auto;
}

.ndf-site :where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--ndf-lime);
	outline-offset: 3px;
}

.ndf-container {
	width: min(calc(100% - 40px), var(--ndf-container));
	margin-inline: auto;
}

.ndf-container--narrow {
	max-width: 880px;
}

.ndf-eyebrow {
	margin: 0 0 18px;
	color: var(--ndf-lime-dark);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ndf-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 13px 24px;
	border: 1px solid transparent;
	border-radius: var(--ndf-radius-md);
	font-weight: 800;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
	transition:
		background-color var(--ndf-transition),
		border-color var(--ndf-transition),
		color var(--ndf-transition),
		transform var(--ndf-transition);
}

.ndf-button:hover {
	transform: translateY(-1px);
}

.ndf-button--dark {
	border-color: var(--ndf-black);
	background: var(--ndf-black);
	color: var(--ndf-white);
}

.ndf-button--lime {
	border-color: var(--ndf-lime);
	background: var(--ndf-lime);
	color: var(--ndf-black);
}

.ndf-button--lime:hover {
	border-color: var(--ndf-white);
	background: var(--ndf-white);
	color: var(--ndf-black);
}

.ndf-button--outline {
	border-color: rgba(255, 255, 255, 0.82);
	background: rgba(9, 9, 9, 0.28);
	color: var(--ndf-white);
	backdrop-filter: blur(6px);
}

.ndf-button--outline:hover {
	border-color: var(--ndf-white);
	background: var(--ndf-white);
	color: var(--ndf-black);
}

.ndf-text-link {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	color: inherit;
	font-weight: 750;
	text-decoration: none;
}

.ndf-text-link span {
	color: var(--ndf-lime-dark);
	font-size: 1.3em;
	transition: transform var(--ndf-transition);
}

.ndf-text-link:hover span {
	transform: translateX(4px);
}

.ndf-site :where(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="password"],
	input[type="search"],
	input[type="url"],
	select,
	textarea
) {
	border: 1px solid var(--ndf-border);
	border-radius: var(--ndf-radius-sm);
	background: var(--ndf-white);
	color: var(--ndf-black);
}

@media (max-width: 767px) {
	.ndf-container {
		width: min(calc(100% - 30px), var(--ndf-container));
	}
}
