/**
 * TECH-NEXS homepage — custom layout matching the brand redesign.
 * Uses the --tn-* tokens defined in kh-tech-nexs-brand.css.
 */

.tn-home {
	overflow-x: hidden;
}

.tn-home section {
	padding: 30px 0;
}

/* Higher specificity than ".tn-home section" so the hero keeps its own
   (larger) top padding regardless of the general section padding above —
   needed to clear the theme's floating overlay header. */
.tn-home section.tn-hero {
	padding: 168px 0 30px;
}

.tn-container {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 24px;
}

.tn-eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tn-primary);
	margin: 0 0 12px;
}

.tn-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 44px;
	flex-wrap: wrap;
}

.tn-section-head h2 {
	font-size: clamp(26px, 3.2vw, 38px);
	font-weight: 800;
	color: var(--tn-dark);
	margin: 0 0 10px;
	line-height: 1.2;
}

.tn-section-head p {
	color: var(--tn-muted);
	font-size: 15.5px;
	max-width: 620px;
	margin: 0;
}

.tn-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	font-size: 14.5px;
	color: var(--tn-primary) !important;
	text-decoration: none !important;
	white-space: nowrap;
	padding: 12px 24px;
	border: 1.5px solid rgba(0, 121, 255, 0.35);
	border-radius: 999px;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.tn-link-arrow i {
	font-size: 13px;
	transition: transform 0.2s ease;
}

.tn-link-arrow:hover {
	background: rgba(0, 121, 255, 0.08);
	border-color: var(--tn-primary);
	transform: translateY(-1px);
}

.tn-link-arrow:hover i {
	transform: translateX(3px);
}

.tn-home a:focus-visible,
.tn-home button:focus-visible {
	outline: 2px solid var(--tn-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

.tn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 30px;
	border-radius: 10px;
	font-weight: 600;
	font-size: 15px;
	text-decoration: none !important;
	border: none;
	cursor: pointer;
	transition: all 0.2s ease;
	font-family: inherit;
}

.tn-btn-primary {
	background: linear-gradient(180deg, #2f93ff 0%, #0079ff 55%, #0067dd 100%);
	color: #fff !important;
	box-shadow: 0 10px 26px rgba(0, 121, 255, 0.45);
}

.tn-btn-primary:hover {
	background: linear-gradient(180deg, #2f93ff 0%, #0067dd 55%, var(--tn-dark-blue) 100%);
	box-shadow: 0 12px 30px rgba(0, 121, 255, 0.55);
	transform: translateY(-1px);
}

.tn-btn-primary:active {
	transform: translateY(0);
	box-shadow: 0 6px 16px rgba(0, 121, 255, 0.45);
}

.tn-btn-arrow {
	transition: transform 0.2s ease;
}

.tn-btn-primary:hover .tn-btn-arrow {
	transform: translateX(4px);
}

.tn-btn-outline {
	background: transparent;
	color: var(--tn-dark) !important;
	border: 1.5px solid var(--tn-border);
}

.tn-btn-outline:hover {
	border-color: var(--tn-primary);
	color: var(--tn-primary) !important;
	transform: translateY(-1px);
}

.tn-btn-white {
	background: #fff;
	color: var(--tn-dark-blue) !important;
}

.tn-btn-white:hover {
	background: var(--tn-gray);
	transform: translateY(-1px);
}

.tn-btn-ghost-white {
	background: transparent;
	border: 1.5px solid rgba(255, 255, 255, 0.4);
	color: #fff !important;
}

.tn-btn-ghost-white:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.08);
	transform: translateY(-1px);
}

/* =========================================================
   HERO
   ========================================================= */
.tn-hero {
	position: relative;
	background: linear-gradient(180deg, #050b18 0%, #081c34 55%, #0a2540 100%);
	color: #fff;
	overflow: hidden;
}

.tn-hero-art {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.tn-hero-photo {
	position: absolute;
	inset: 0;
	background-image: url("../../images/tech-nexs-hero-bg.jpg");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

/* Left-to-right scrim keeps hero copy readable over the bright photo;
   a darker base wash keeps the bottom (stats row) legible too. */
.tn-hero-scrim {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(4, 12, 26, 0.92) 0%, rgba(4, 12, 26, 0.75) 32%, rgba(4, 12, 26, 0.25) 60%, rgba(4, 12, 26, 0.15) 100%),
		linear-gradient(180deg, rgba(4, 12, 26, 0.2) 0%, rgba(4, 12, 26, 0) 30%, rgba(4, 12, 26, 0.55) 100%);
}

/* Dissolves the photo to a flat, solid color before the hard edge into the
   next (light) section, instead of the image's skyline getting cropped
   abruptly at the section boundary. */
.tn-hero-fade {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 220px;
	background: linear-gradient(180deg, rgba(5, 11, 24, 0) 0%, #050b18 90%);
}

.tn-hero-inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 260px;
	gap: 40px;
	align-items: start;
}

.tn-hero-tag {
	display: inline-block;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--tn-light-blue);
	margin: 0 0 18px;
}

.tn-hero h1 {
	font-size: clamp(34px, 4.6vw, 56px);
	font-weight: 800;
	line-height: 1.12;
	margin: 0 0 20px;
	color: #fff;
}

.tn-hero h1 span {
	background: linear-gradient(90deg, var(--tn-light-blue), var(--tn-primary));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.tn-hero-lead {
	font-size: 16.5px;
	line-height: 1.65;
	color: #c7d6ea;
	max-width: 540px;
	margin: 0 0 32px;
}

.tn-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0 0 44px;
}

.tn-hero-play {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 600;
	font-size: 15px;
}

.tn-hero-play-label {
	transition: color 0.2s ease;
}

.tn-hero-play:hover .tn-hero-play-label {
	color: var(--tn-light-blue);
}

.tn-hero-play .tn-play-circle {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	border: 1.5px solid rgba(255, 255, 255, 0.35);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	animation: tn-play-pulse 2.4s ease-out infinite;
}

.tn-hero-play .tn-play-circle i {
	/* Optically center the play glyph, which otherwise reads left-shifted
	   inside its circle. */
	margin-left: 2px;
}

.tn-hero-play:hover .tn-play-circle {
	background: var(--tn-primary);
	border-color: var(--tn-primary);
	transform: scale(1.08);
	animation-play-state: paused;
	box-shadow: 0 0 0 rgba(0, 121, 255, 0);
}

.tn-hero-play:active .tn-play-circle {
	transform: scale(0.97);
}

@keyframes tn-play-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.25);
	}
	70% {
		box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.tn-hero-play .tn-play-circle {
		animation: none;
	}
}

.tn-hero-stats {
	display: flex;
	flex-wrap: wrap;
}

.tn-hero-stat {
	padding: 0 28px;
	border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.tn-hero-stat:first-child {
	padding-left: 0;
	border-left: none;
}

.tn-hero-stat b {
	display: block;
	font-size: 26px;
	font-weight: 800;
	color: var(--tn-light-blue);
}

.tn-hero-stat span {
	font-size: 13px;
	color: #93a9c4;
}

.tn-hero-scroll {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin: 0 auto 0;
	color: #93a9c4 !important;
	font-size: 12px;
	font-weight: 600;
	text-decoration: none !important;
	cursor: pointer;
	user-select: none;
	width: fit-content;
	text-align: center;
}

.tn-hero-scroll:hover {
	color: #fff !important;
}

.tn-hero-scroll-circle {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	border: 1.5px solid rgba(255, 255, 255, 0.35);
	display: flex;
	align-items: center;
	justify-content: center;
	animation: tnScrollBounce 1.8s ease-in-out infinite;
	transition: background 0.2s ease;
}

.tn-hero-scroll:hover .tn-hero-scroll-circle {
	background: var(--tn-primary);
	border-color: var(--tn-primary);
}

@keyframes tnScrollBounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(6px); }
}

.tn-hero-side {
	position: relative;
	z-index: 1;
	/* margin-top: 18px; */
}

.tn-hero-badge {
	margin: 0 0 18px;
}

.tn-hero-badge span {
	display: block;
	font-size: 12.5px;
	font-weight: 600;
	color: #9fd0f2;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.55);
}

.tn-hero-badge strong {
	display: block;
	font-size: 19px;
	font-weight: 800;
	line-height: 1.25;
	margin-top: 2px;
	background: linear-gradient(90deg, var(--tn-light-blue), #fff);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.55));
}

.tn-hero-rail {
	list-style: none;
	margin: 0;
	padding: 4px 16px;
	display: flex;
	flex-direction: column;
	background: linear-gradient(180deg, rgba(8, 26, 51, 0.8), rgba(4, 15, 30, 0.7));
	border: 1px solid rgba(0, 170, 255, 0.35);
	border-radius: 16px;
	backdrop-filter: blur(6px);
}

/* Defensive reset: forces compact spacing regardless of any inherited
   list/heading margins from the theme's base stylesheet. */
.tn-hero-rail li,
.tn-hero-rail li span,
.tn-hero-rail li strong,
.tn-hero-rail li small {
	margin: 0;
}

.tn-hero-rail li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.tn-hero-rail li:last-child {
	border-bottom: none;
}

.tn-hero-rail li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 4px;
	border-radius: 8px;
	transition: background 0.2s ease;
	text-decoration: none !important;
}

.tn-hero-rail li a:hover {
	background: rgba(255, 255, 255, 0.06);
}

.tn-hero-rail li i {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--tn-light-blue), var(--tn-primary));
	color: #fff;
	font-size: 13px;
}

.tn-hero-rail li strong {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
}

.tn-hero-rail li small {
	display: block;
	font-size: 11px;
	color: #93a9c4;
}

/* =========================================================
   SERVICES
   ========================================================= */
.tn-services {
	background: var(--tn-gray);
}

.tn-services-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 16px;
}

.tn-service-card {
	background: #fff;
	border: 1px solid var(--tn-border);
	border-radius: 14px;
	padding: 20px 18px 18px;
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.tn-service-card:hover {
	box-shadow: 0 14px 30px rgba(8, 31, 59, 0.09);
	transform: translateY(-3px);
	border-color: rgba(0, 121, 255, 0.25);
}

.tn-service-icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: rgba(0, 121, 255, 0.1);
	color: var(--tn-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	margin: 0 0 14px;
}

.tn-service-card h3 {
	font-size: 15.5px;
	font-weight: 700;
	color: var(--tn-dark);
	margin: 0 0 12px;
	line-height: 1.3;
	min-height: 40px;
}

.tn-service-card ul {
	list-style: none;
	margin: 0 0 14px;
	padding: 0;
}

.tn-service-card ul li {
	position: relative;
	padding-left: 15px;
	font-size: 12.5px;
	color: var(--tn-muted);
	line-height: 1.75;
}

.tn-service-card ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--tn-light-blue);
}

.tn-service-card .tn-link-arrow {
	padding: 0;
	border: none;
	border-radius: 0;
	font-size: 13.5px;
	gap: 6px;
}

.tn-service-card .tn-link-arrow:hover {
	background: none;
	border-color: transparent;
	transform: none;
	text-decoration: underline;
}

/* =========================================================
   TRUST STRIP
   ========================================================= */
.tn-trust-strip {
	background: var(--tn-dark);
	padding: 34px 0;
}

.tn-trust-strip .tn-container {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.tn-trust-item {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 190px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 12px;
	padding: 12px 16px;
}

.tn-trust-item i {
	color: var(--tn-light-blue);
	font-size: 18px;
}

.tn-trust-item strong {
	display: block;
	color: #dce8f7;
	font-size: 13.5px;
	font-weight: 700;
}

.tn-trust-item small {
	display: block;
	color: #7f96b2;
	font-size: 11.5px;
}


/* =========================================================
   MAKING A REAL IMPACT
   ========================================================= */
.tn-impact-band {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 20px;
	padding: 44px 34px 38px;
	color: #fff;
	background-image:
		linear-gradient(180deg, rgba(4, 12, 26, 0.75) 0%, rgba(4, 12, 26, 0.55) 45%, rgba(4, 12, 26, 0.85) 100%),
		url("../../images/tech-nexs-hero-bg.jpg");
	background-size: cover;
	background-position: center;
}

.tn-impact-label {
	display: block;
	font-size: 22px;
	font-weight: 800;
	margin: 0 0 32px;
}

.tn-impact-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	position: relative;
	z-index: 1;
}

.tn-impact-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
}

.tn-impact-icon {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--tn-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	flex: 0 0 54px;
	box-shadow: 0 0 0 6px rgba(0, 121, 255, 0.18), 0 8px 20px rgba(0, 0, 0, 0.35);
}

.tn-impact-stat b {
	font-size: 28px;
	font-weight: 800;
}

.tn-impact-stat small {
	display: block;
	font-size: 12.5px;
	color: #cfe0f2;
}

/* =========================================================
   ABOUT
   ========================================================= */
.tn-about-combined-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}

.tn-about-copy h2 {
	font-size: clamp(24px, 2.8vw, 32px);
	font-weight: 800;
	color: var(--tn-dark);
	margin: 0 0 16px;
	line-height: 1.25;
}

.tn-about-copy p {
	color: var(--tn-muted);
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 24px;
}

.tn-about-media {
	position: relative;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--tn-dark-blue), var(--tn-dark));
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	min-height: 260px;
}

.tn-about-media::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.14) 1.5px, transparent 1.5px);
	background-size: 22px 22px;
	opacity: 0.5;
}

.tn-play-btn {
	position: relative;
	z-index: 1;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	border: 1.5px solid rgba(255, 255, 255, 0.4);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	cursor: pointer;
}

.tn-about-media-caption {
	position: absolute;
	left: 24px;
	bottom: 22px;
	z-index: 1;
	color: #fff;
}

.tn-about-media-caption strong {
	display: block;
	font-size: 16px;
}

.tn-about-media-caption span {
	font-size: 12.5px;
	color: #b9d2ea;
}

/* =========================================================
   WHY CHOOSE US
   ========================================================= */
.tn-why-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	background: #fff;
	border: 1px solid var(--tn-border);
	border-radius: 18px;
	padding: 36px 30px;
	box-shadow: 0 10px 26px rgba(8, 31, 59, 0.05);
}

.tn-why-item {
	text-align: center;
}

.tn-why-icon {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(0, 121, 255, 0.1);
	color: var(--tn-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	margin: 0 auto 16px;
}

.tn-why-item h3 {
	font-size: 15.5px;
	font-weight: 700;
	color: var(--tn-dark);
	margin: 0 0 8px;
}

.tn-why-item p {
	font-size: 13px;
	color: var(--tn-muted);
	line-height: 1.55;
	margin: 0;
}

/* =========================================================
   STORY / QUOTE / TRUSTED BY
   ========================================================= */
.tn-story {
	background: var(--tn-gray);
}

.tn-story-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 20px;
}

.tn-story-video {
	position: relative;
	border-radius: 16px;
	aspect-ratio: 4 / 3.2;
	background: linear-gradient(135deg, var(--tn-dark-blue), var(--tn-dark));
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.tn-story-video::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.14) 1.5px, transparent 1.5px);
	background-size: 22px 22px;
	opacity: 0.5;
}

.tn-story-video-caption {
	position: absolute;
	left: 22px;
	bottom: 20px;
	z-index: 1;
	color: #fff;
}

.tn-story-video-caption strong {
	display: block;
	font-size: 15px;
}

.tn-story-video-caption span {
	font-size: 12px;
	color: #b9d2ea;
	max-width: 220px;
	display: block;
}

.tn-story-quote {
	background: #fff;
	border: 1px solid var(--tn-border);
	border-radius: 16px;
	padding: 26px 22px;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.tn-story-quote:hover {
	box-shadow: 0 14px 30px rgba(8, 31, 59, 0.09);
	transform: translateY(-3px);
}

.tn-story-quote-mark {
	color: rgba(0, 121, 255, 0.2);
	font-size: 26px;
	margin-bottom: 10px;
}

.tn-story-quote-slides {
	position: relative;
	flex: 1;
	min-height: 92px;
}

.tn-story-quote-slide {
	display: none;
	margin: 0;
}

.tn-story-quote-slide.is-active {
	display: block;
}

.tn-story-quote-slide p {
	font-size: 16px;
	font-weight: 600;
	color: var(--tn-dark);
	line-height: 1.4;
	margin: 0 0 10px;
}

.tn-story-quote-slide cite {
	font-style: normal;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--tn-primary);
}

.tn-story-quote-nav {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 16px;
}

.tn-story-quote-nav button {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 1px solid var(--tn-border);
	background: #fff;
	color: var(--tn-dark);
	cursor: pointer;
	font-size: 12px;
}

.tn-story-quote-nav button:hover {
	border-color: var(--tn-primary);
	color: var(--tn-primary);
}

.tn-story-quote-count {
	font-size: 12.5px;
	color: var(--tn-muted);
}

.tn-story-trusted {
	background: var(--tn-dark);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 16px;
	padding: 24px 22px;
	color: #fff;
}

.tn-story-trusted-label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--tn-light-blue);
	margin: 0 0 16px;
	line-height: 1.4;
}

.tn-story-trusted ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}

.tn-story-trusted li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 600;
	color: #dce8f7;
}

.tn-story-trusted li i {
	flex: 0 0 20px;
	color: var(--tn-light-blue);
	text-align: center;
}

/* =========================================================
   INDUSTRY SOLUTIONS
   ========================================================= */
.tn-industries {
	background: var(--tn-gray);
}

.tn-industries-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 14px;
}

.tn-industry-card {
	position: relative;
	border-radius: 14px;
	aspect-ratio: 3 / 4.2;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	color: #fff;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tn-industry-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(8, 31, 59, 0.18);
}

.tn-industry-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--tn-industry-bg, linear-gradient(140deg, var(--tn-dark-blue), var(--tn-primary)));
}

.tn-industry-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 35%, rgba(3, 12, 24, 0.85) 100%);
}

.tn-industry-card-body {
	position: relative;
	z-index: 1;
	padding: 16px 14px;
}

.tn-industry-card-body i {
	font-size: 17px;
	color: var(--tn-light-blue);
	margin-bottom: 8px;
	display: block;
}

.tn-industry-card-body strong {
	display: block;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
}

.tn-industry-card-body span {
	font-size: 11.5px;
	color: #cfe0f2;
	line-height: 1.4;
}

/* =========================================================
   APPROACH
   ========================================================= */
.tn-approach-steps {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
	position: relative;
	margin-top: 30px;
}

.tn-approach-step {
	position: relative;
	z-index: 1;
	text-align: center;
	background: #fff;
	border: 1px solid var(--tn-border);
	border-radius: 14px;
	padding: 34px 16px 22px;
}

.tn-approach-step .tn-step-num {
	position: absolute;
	top: -26px;
	left: 50%;
	transform: translateX(-50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--tn-primary);
	color: #fff;
	font-weight: 800;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 16px rgba(0, 121, 255, 0.3), 0 0 0 6px rgba(0, 121, 255, 0.1);
}

.tn-approach-step h3 {
	font-size: 15.5px;
	font-weight: 700;
	color: var(--tn-dark);
	margin: 0 0 8px;
}

.tn-approach-step p {
	font-size: 13px;
	color: var(--tn-muted);
	line-height: 1.5;
	margin: 0;
}

/* =========================================================
   PARTNERS
   ========================================================= */
.tn-about-partners {
	display: flex;
	flex-direction: column;
}

.tn-about-partners-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 22px;
}

.tn-about-partners-head p {
	color: var(--tn-muted);
	font-size: 13px;
	line-height: 1.5;
	margin: 6px 0 0;
}

.tn-partners-logo-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px 28px;
}

.tn-partner-logo {
	font-weight: 800;
	font-size: 16px;
	color: var(--tn-dark);
	letter-spacing: 0.01em;
	opacity: 0.85;
	transition: opacity 0.2s ease;
}

.tn-partner-logo:hover {
	opacity: 1;
}

.tn-partner-logo-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 700;
	font-size: 14.5px;
	color: var(--tn-primary) !important;
	text-decoration: none !important;
	opacity: 1;
}

.tn-partner-logo-more:hover {
	text-decoration: underline;
}

/* =========================================================
   PRODUCTS
   ========================================================= */
.tn-products-card {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #04152e 0%, #06264d 55%, #04152e 100%);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 22px;
	padding: 34px 32px 30px;
}

.tn-products-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(115deg, transparent 40%, rgba(0, 198, 255, 0.14) 48%, transparent 56%),
		radial-gradient(circle at 85% 0%, rgba(0, 121, 255, 0.28), transparent 55%);
	pointer-events: none;
}

.tn-products-card .tn-section-head,
.tn-products-card .tn-products-grid {
	position: relative;
	z-index: 1;
}

.tn-products-card .tn-section-head h2,
.tn-products-card .tn-eyebrow {
	color: #fff;
}

.tn-products-card .tn-eyebrow {
	color: var(--tn-light-blue);
}

.tn-products-card .tn-section-head p {
	color: #9fb4cc;
}

.tn-products-card .tn-link-arrow {
	background: var(--tn-primary);
	border-color: var(--tn-primary);
	color: #fff !important;
}

.tn-products-card .tn-link-arrow:hover {
	background: var(--tn-dark-blue);
	border-color: var(--tn-dark-blue);
}

.tn-products-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 16px;
}

.tn-product-card {
	background: #fff;
	border-radius: 14px;
	padding: 22px 16px;
	text-align: center;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tn-product-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
}

.tn-product-icon {
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: linear-gradient(135deg, var(--tn-light-blue), var(--tn-primary));
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 19px;
	margin: 0 auto 14px;
}

.tn-product-card h3 {
	color: var(--tn-dark);
	font-size: 14.5px;
	font-weight: 800;
	margin: 0 0 6px;
}

.tn-product-card p {
	color: var(--tn-muted);
	font-size: 12px;
	line-height: 1.5;
	margin: 0;
}

/* =========================================================
   BLOG
   ========================================================= */
.tn-blog-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
}

.tn-blog-card {
	background: #fff;
	border: 1px solid var(--tn-border);
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none !important;
	display: block;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.tn-blog-card:hover {
	box-shadow: 0 14px 30px rgba(8, 31, 59, 0.09);
	transform: translateY(-3px);
}

.tn-blog-media {
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, var(--tn-dark-blue), var(--tn-primary));
	position: relative;
	overflow: hidden;
}

.tn-blog-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.tn-blog-cat {
	position: absolute;
	top: 12px;
	left: 12px;
	background: rgba(8, 31, 59, 0.75);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 5px;
}

.tn-blog-body {
	padding: 18px 18px 20px;
}

.tn-blog-body h3 {
	font-size: 15px;
	font-weight: 700;
	color: var(--tn-dark);
	line-height: 1.4;
	margin: 0 0 10px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.tn-blog-date {
	font-size: 12px;
	color: var(--tn-muted);
}

/* =========================================================
   CTA BAND
   ========================================================= */
.tn-cta-band {
	position: relative;
	background: radial-gradient(circle at 15% 30%, #0d3a6b 0%, var(--tn-dark) 60%);
	color: #fff;
	padding: 56px 0;
}

.tn-cta-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.tn-cta-inner h2 {
	font-size: clamp(22px, 2.8vw, 30px);
	font-weight: 800;
	margin: 0 0 8px;
	color: #fff;
}

.tn-cta-inner p {
	color: #b9d2ea;
	margin: 0;
	font-size: 15px;
}

.tn-cta-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

.tn-cta-tagline {
	text-align: right;
	line-height: 1.3;
}

.tn-cta-tagline span {
	display: block;
	font-size: 12.5px;
	color: #9fb4cc;
}

.tn-cta-tagline strong {
	display: block;
	font-size: 15px;
	color: var(--tn-light-blue);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1200px) {
	.tn-services-grid,
	.tn-industries-grid,
	.tn-products-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 992px) {
	.tn-home section.tn-hero {
		padding-top: 148px;
	}

	.tn-hero-inner,
	.tn-about-combined-grid {
		grid-template-columns: 1fr;
	}

	.tn-hero-side {
		margin-top: 32px;
		max-width: 360px;
	}

	.tn-hero-globe {
		width: 60%;
		opacity: 0.5;
	}

	.tn-services-grid,
	.tn-industries-grid,
	.tn-products-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.tn-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.tn-approach-steps {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 32px;
	}

	.tn-why-grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 32px;
	}

	.tn-hero-stat {
		flex: 0 0 44%;
		border-left: none;
		padding: 0 0 0 20px;
		margin-bottom: 16px;
	}

	.tn-hero-stat:nth-child(odd) {
		padding-left: 0;
	}

	.tn-hero-stat:nth-child(even) {
		border-left: 1px solid rgba(255, 255, 255, 0.2);
	}

	.tn-impact-stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.tn-hero-scroll {
		display: none;
	}
}

@media (max-width: 640px) {
	.tn-home section {
		padding: 56px 0;
	}

	.tn-home section.tn-hero {
		padding-top: 128px;
	}

	.tn-services-grid,
	.tn-industries-grid,
	.tn-products-grid,
	.tn-blog-grid {
		grid-template-columns: 1fr;
	}

	.tn-partners-logo-row {
		gap: 24px 32px;
	}

	.tn-approach-steps {
		grid-template-columns: repeat(2, 1fr);
	}

	.tn-why-grid {
		grid-template-columns: 1fr;
		padding: 28px 20px;
	}

	.tn-impact-stats {
		gap: 18px 24px;
	}

	.tn-cta-inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.tn-cta-tagline {
		text-align: left;
	}
}
