/**
 * TactNexa Homepage
 *
 * Page-specific styles only.
 * Global theme styles remain in style.css.
 */

/* =========================================================
   Home Design Tokens
   ========================================================= */

.tnx-home {
	--tnx-home-max-width: 1200px;

	--tnx-navy-950: #031126;
	--tnx-navy-900: #061a36;
	--tnx-navy-800: #0a2548;

	--tnx-blue-500: #1677ff;
	--tnx-blue-400: #2f8cff;
	--tnx-cyan-400: #52d7ff;

	--tnx-white: #ffffff;
	--tnx-text-light: #d9e7f7;
	--tnx-text-muted: #9fb5cd;

	background: #ffffff;
}


/* =========================================================
   Shared Homepage Container
   ========================================================= */

.tnx-home-container {
	width: min(
		calc(100% - 48px),
		var(--tnx-home-max-width)
	);

	margin-inline: auto;
}


/* =========================================================
   Hero
   ========================================================= */

.tnx-hero {
	position: relative;
	overflow: hidden;

	background-color: var(--tnx-navy-950);

	background-image:
		linear-gradient(
			90deg,
			rgba(3, 17, 38, 0.99) 0%,
			rgba(3, 17, 38, 0.95) 24%,
			rgba(3, 17, 38, 0.80) 40%,
			rgba(3, 17, 38, 0.48) 56%,
			rgba(3, 17, 38, 0.14) 76%,
			rgba(3, 17, 38, 0.04) 100%
		),
		url("../images/home/tactnexa_hero.png");

	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;

	color: var(--tnx-white);
}


.tnx-hero__inner {
	min-height: 520px;

	display: flex;
	align-items: center;

	padding-top: 72px;
	padding-bottom: 72px;
}


.tnx-hero__content {
	width: min(100%, 650px);
}


/* =========================================================
   Hero Typography
   ========================================================= */

.tnx-hero__eyebrow {
	margin: 0 0 18px;

	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.4;

	letter-spacing: 0.18em;
	text-transform: uppercase;

	color: var(--tnx-cyan-400);
}


.tnx-hero__title {
	max-width: 720px;

	margin: 0;

	font-size: clamp(2.5rem, 5vw, 4.35rem);
	font-weight: 800;
	line-height: 1.03;

	letter-spacing: -0.035em;

	color: var(--tnx-white);
}


.tnx-hero__description {
	max-width: 590px;

	margin: 24px 0 0;

	font-size: clamp(1rem, 1.5vw, 1.12rem);
	line-height: 1.75;

	color: var(--tnx-text-light);
}


/* =========================================================
   Hero CTA
   ========================================================= */

.tnx-hero__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 50px;

	margin-top: 30px;
	padding: 0 26px;

	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;

	background:
		linear-gradient(
			135deg,
			var(--tnx-blue-500),
			var(--tnx-blue-400)
		);

	color: var(--tnx-white);

	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;

	text-decoration: none;

	box-shadow:
		0 10px 30px rgba(22, 119, 255, 0.24),
		inset 0 1px 0 rgba(255, 255, 255, 0.14);

	transition:
		transform 160ms ease,
		box-shadow 160ms ease,
		filter 160ms ease;
}


.tnx-hero__button:hover {
	color: var(--tnx-white);

	transform: translateY(-2px);

	filter: brightness(1.07);

	box-shadow:
		0 14px 36px rgba(22, 119, 255, 0.32),
		inset 0 1px 0 rgba(255, 255, 255, 0.16);
}


.tnx-hero__button:focus-visible {
	outline: 3px solid var(--tnx-cyan-400);
	outline-offset: 4px;
}


/* =========================================================
   Tablet
   ========================================================= */

@media (max-width: 1024px) {

	.tnx-home-container {
		width: min(
			calc(100% - 40px),
			var(--tnx-home-max-width)
		);
	}

	.tnx-hero {
		background-position: 62% center;
	}

	.tnx-hero__inner {
		min-height: 480px;

		padding-top: 64px;
		padding-bottom: 64px;
	}

	.tnx-hero__content {
		width: min(100%, 600px);
	}

	.tnx-hero__title {
		font-size: clamp(2.4rem, 6vw, 3.8rem);
	}
}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 767px) {

	.tnx-home-container {
		width: calc(100% - 32px);
	}

	.tnx-hero {
		background-image:
			linear-gradient(
				90deg,
				rgba(3, 17, 38, 0.98) 0%,
				rgba(3, 17, 38, 0.94) 48%,
				rgba(3, 17, 38, 0.72) 72%,
				rgba(3, 17, 38, 0.48) 100%
			),
			url("../images/home/tactnexa_hero.png");

		background-position: 69% center;
	}

	.tnx-hero__inner {
		min-height: 520px;

		padding-top: 56px;
		padding-bottom: 56px;
	}

	.tnx-hero__content {
		width: 100%;
	}

	.tnx-hero__eyebrow {
		margin-bottom: 14px;

		font-size: 0.72rem;
	}

	.tnx-hero__title {
		max-width: 100%;

		font-size: clamp(2.05rem, 10vw, 3.1rem);
		line-height: 1.06;
	}

	.tnx-hero__description {
		max-width: 100%;

		margin-top: 20px;

		font-size: 1rem;
		line-height: 1.65;
	}

	.tnx-hero__button {
		width: 100%;

		margin-top: 26px;
	}
}


/* =========================================================
   Small Mobile
   ========================================================= */

@media (max-width: 420px) {

	.tnx-home-container {
		width: calc(100% - 28px);
	}

	.tnx-hero {
		background-position: 66% center;
	}

	.tnx-hero__inner {
		min-height: 500px;

		padding-top: 48px;
		padding-bottom: 48px;
	}

	.tnx-hero__title {
		font-size: clamp(2rem, 11vw, 2.7rem);
	}
}


/* =========================================================
   Accessibility
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.tnx-hero__button {
		transition: none;
	}

	.tnx-hero__button:hover {
		transform: none;
	}
}