/* TXEXP Services — scoped to .txexp-service-wrap and .txexp-services-archive-wrap.
   Defines its own --txp-* tokens so this sheet is self-contained (homepage.css is
   not loaded on service pages). Keep values in sync with homepage.css if the
   palette changes. */

:root {
	--txp-navy:        #1a2b5c;
	--txp-red:         #c8102e;
	--txp-red-deep:    #a40d24;
	--txp-blue:        #2e4a8a;
	--txp-ink:         #242629;
	--txp-muted:       #687082;
	--txp-muted-soft:  #8a909c;
	--txp-bg:          #f4f4f0;
	--txp-card:        #ffffff;
	--txp-line:        rgba(26, 43, 92, 0.14);
	--txp-line-strong: rgba(26, 43, 92, 0.22);
	--txp-tint:        rgba(26, 43, 92, 0.04);
	--txp-radius:      6px;
}

/* ---- Base context ---- */
.txexp-service-wrap,
.txexp-services-archive-wrap {
	font-family: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-feature-settings: "ss01", "ss02", "cv11";
	color: var(--txp-ink);
	background: var(--txp-bg);
	line-height: 1.5;
	font-size: 15px;
	-webkit-font-smoothing: antialiased;
}
.txexp-service-wrap *,
.txexp-service-wrap *::before,
.txexp-service-wrap *::after,
.txexp-services-archive-wrap *,
.txexp-services-archive-wrap *::before,
.txexp-services-archive-wrap *::after {
	box-sizing: border-box;
}
.txexp-service-wrap a,
.txexp-services-archive-wrap a {
	text-decoration: none;
	color: inherit;
}


/* ---- Simplified single service intro ---- */
.txexp-service-intro {
	max-width: 1280px;
	margin: 0 auto;
	padding: 32px 40px 56px;
}

.txexp-service-intro .txexp-service-crumbs {
	margin-bottom: 22px;
	color: var(--txp-muted);
}

.txexp-service-intro .txexp-service-crumbs a,
.txexp-service-intro .txexp-service-crumbs span:last-child {
	color: var(--txp-muted);
}

.txexp-service-intro .txexp-service-crumbs a:hover {
	color: var(--txp-navy);
}

.txexp-service-intro .txexp-service-crumbs .sep {
	color: var(--txp-line-strong);
}

.txexp-service-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
	gap: 34px;
	align-items: stretch;
}

.txexp-service-intro__media {
	margin: 0;
	min-height: 520px;
	border-radius: var(--txp-radius);
	overflow: hidden;
	background: #d8dbdd;
}

.txexp-service-intro__img,
.txexp-service-intro__placeholder {
	width: 100%;
	height: 100%;
	min-height: 520px;
	object-fit: cover;
	display: block;
}

.txexp-service-intro__placeholder {
	background:
		linear-gradient(135deg, rgba(26, 43, 92, .12), transparent 54%),
		repeating-linear-gradient(90deg, rgba(26, 43, 92, .08) 0 1px, transparent 1px 34px),
		#e1e4e7;
}

.txexp-service-intro__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 46px;
	border: 1px solid var(--txp-line);
	border-radius: var(--txp-radius);
	background: var(--txp-card);
}

.txexp-service-intro__title {
	margin: 12px 0 18px;
	color: var(--txp-navy);
	font-family: "Geist", sans-serif;
	font-size: clamp(38px, 5vw, 62px);
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.03;
}

.txexp-service-intro__desc {
	max-width: 52ch;
	margin: 0 0 28px;
	color: var(--txp-muted);
	font-size: 18px;
	line-height: 1.65;
}

.txexp-service-intro__content .txexp-service-cta {
	align-self: flex-start;
}

/* ---- Hero ---- */
.txexp-service-hero {
	position: relative;
	background-color: var(--txp-navy); /* fallback when no image */
	background-size: cover;
	background-position: center;
	color: #fff;
	display: flex;
	margin-bottom: 40px;
}

.txexp-service-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(8, 14, 34, 0.92) 0%,
		rgba(8, 14, 34, 0.6) 45%,
		rgba(8, 14, 34, 0.22) 100%
	);
}

.txexp-service-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 44px 64px 60px;
	min-height: 520px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.txexp-service-crumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	color: rgba(255, 255, 255, 0.45);
}
.txexp-service-crumbs a {
	color: rgba(255, 255, 255, 0.45);
	transition: color 0.15s;
}
.txexp-service-crumbs a:hover { color: rgba(255, 255, 255, 0.8); }
.txexp-service-crumbs .sep    { color: rgba(255, 255, 255, 0.25); }
.txexp-service-crumbs span:last-child { color: rgba(255, 255, 255, 0.7); }

.txexp-service-hero__text {
	max-width: 860px;
}

.txexp-service-eyebrow {
	display: block;
	margin-bottom: 16px;
	color: rgba(255, 255, 255, 0.55);
}

.txexp-service-hero__title {
	font-family: "Geist", sans-serif;
	font-weight: 500;
	letter-spacing: -0.025em;
	font-size: 64px;
	line-height: 1.04;
	color: #fff;
	margin: 0 0 20px;
}

.txexp-service-hero__subtitle {
	color: rgba(255, 255, 255, 0.72);
	font-size: 19px;
	line-height: 1.6;
	max-width: 680px;
	margin: 0;
}

/* ---- Alternating sections ---- */
.txexp-service-section {
	display: flex;
	align-items: stretch;
	min-height: 480px;
}

.txexp-service-section.image-right {
	flex-direction: row-reverse;
}

.txexp-service-section__image {
	flex: 0 0 50%;
	width: 50%;
	position: relative;
	overflow: hidden;
	background: var(--txp-line);
}

.txexp-service-section__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.txexp-service-section__img-placeholder {
	position: absolute;
	inset: 0;
	background: var(--txp-tint);
}

.txexp-service-section__content {
	flex: 0 0 50%;
	width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 64px 72px;
	background: var(--txp-card);
}

.txexp-service-section:nth-child(even) .txexp-service-section__content {
	background: var(--txp-bg);
}

.txexp-service-section__num {
	display: block;
	margin-bottom: 14px;
	color: var(--txp-muted);
}

.txexp-service-section__title {
	font-family: "Geist", sans-serif;
	font-weight: 500;
	letter-spacing: -0.018em;
	font-size: 32px;
	line-height: 1.12;
	color: var(--txp-navy);
	margin: 0 0 20px;
}

.txexp-service-section__desc {
	font-size: 16px;
	line-height: 1.65;
	color: var(--txp-muted);
	margin: 0;
	max-width: 440px;
}

.txexp-service-details {
	max-width: 1240px;
	margin: 0 auto;
	padding: 72px 28px 88px;
}
.txexp-service-details__head {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 48px;
	align-items: end;
	padding-bottom: 26px;
	border-bottom: 1px solid var(--txp-line);
	margin-bottom: 28px;
}
.txexp-service-details__head h2 {
	margin: 0;
	color: var(--txp-navy);
	font-size: 34px;
	line-height: 1.12;
	font-weight: 500;
	letter-spacing: -0.015em;
}
.txexp-service-details__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	border-top: 1px solid var(--txp-line);
	border-left: 1px solid var(--txp-line);
}
.txexp-service-details__grid article {
	background: var(--txp-card);
	border-right: 1px solid var(--txp-line);
	border-bottom: 1px solid var(--txp-line);
	padding: 22px;
}
.txexp-service-details__grid p,
.txexp-service-details__grid li {
	color: var(--txp-muted);
	font-size: 14px;
	line-height: 1.6;
}
.txexp-service-details__grid ul {
	margin: 14px 0 0;
	padding-left: 18px;
}
.txexp-service-details__grid p { margin: 14px 0 0; }
.txexp-service-action {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 28px;
	padding: 22px 24px;
	background: var(--txp-card);
	border: 1px solid var(--txp-line);
	border-radius: var(--txp-radius);
}
.txexp-service-action h3 {
	margin: 0;
	color: var(--txp-navy);
	font-size: 20px;
	line-height: 1.2;
	font-weight: 500;
}
.txexp-service-action p {
	margin: 4px 0 0;
	color: var(--txp-muted);
	font-size: 14px;
	line-height: 1.5;
}
.txexp-service-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 46px;
	padding: 0 20px;
	border-radius: var(--txp-radius);
	background: var(--txp-red);
	color: #fff !important;
	font-weight: 600;
}

/* ---- Archive hero ---- */
.txexp-services-archive-hero {
	background: var(--txp-navy);
	color: #fff;
	padding: 80px 0 96px;
	text-align: center;
}

.txexp-services-archive-hero__inner {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 40px;
}

.txexp-services-archive-eyebrow {
	display: block;
	margin-bottom: 14px;
	color: rgba(255, 255, 255, 0.55);
}

.txexp-services-archive-title {
	font-family: "Geist", sans-serif;
	font-weight: 500;
	letter-spacing: -0.025em;
	font-size: 52px;
	line-height: 1.02;
	color: #fff;
	margin: 0 0 18px;
}

.txexp-services-archive-subtitle {
	color: rgba(255, 255, 255, 0.68);
	font-size: 18px;
	line-height: 1.6;
	max-width: 480px;
	margin: 0 auto;
}

/* ---- Archive grid ---- */
.txexp-services-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 1280px;
	margin: 64px auto;
	padding: 0 40px;
}

/* ---- Service cards ---- */
.txexp-service-card {
	display: flex;
	flex-direction: column;
	background: var(--txp-card);
	border-radius: var(--txp-radius);
	border: 1px solid var(--txp-line);
	overflow: hidden;
	transition: box-shadow 0.2s, transform 0.2s;
	color: var(--txp-ink);
}

.txexp-service-card:hover {
	box-shadow: 0 8px 32px rgba(26, 43, 92, 0.12);
	transform: translateY(-2px);
}

.txexp-service-card__image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--txp-tint);
	position: relative;
}

.txexp-service-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}

.txexp-service-card:hover .txexp-service-card__img {
	transform: scale(1.04);
}

.txexp-service-card__img-placeholder {
	position: absolute;
	inset: 0;
	background: var(--txp-line);
}

.txexp-service-card__body {
	padding: 24px;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 10px;
}

.txexp-service-card__title {
	font-family: "Geist", sans-serif;
	font-weight: 500;
	letter-spacing: -0.012em;
	font-size: 20px;
	color: var(--txp-navy);
	margin: 0;
}

.txexp-service-card__excerpt {
	color: var(--txp-muted);
	font-size: 14px;
	line-height: 1.55;
	margin: 0;
	flex: 1;
}

.txexp-service-card__excerpt p { margin: 0; }

.txexp-service-card__cta {
	margin-top: 8px;
	color: var(--txp-blue);
}

/* ---- Responsive ---- */
@media (max-width: 1080px) {
	.txexp-service-section__content {
		padding: 48px 48px;
	}

	.txexp-service-section__desc {
		max-width: none;
	}
}

@media (max-width: 860px) {
	.txexp-service-intro {
		padding: 24px 28px 44px;
	}

	.txexp-service-intro__grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.txexp-service-intro__media,
	.txexp-service-intro__img,
	.txexp-service-intro__placeholder {
		min-height: 340px;
	}

	.txexp-service-intro__content {
		padding: 32px;
	}

	.txexp-service-section,
	.txexp-service-section.image-right {
		flex-direction: column;
		min-height: auto;
	}

	.txexp-service-section__image,
	.txexp-service-section__content {
		flex: none;
		width: 100%;
	}

	.txexp-service-section__image {
		aspect-ratio: 16 / 9;
		position: relative;
	}

	.txexp-service-section__content {
		padding: 40px 32px;
	}

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

	.txexp-service-details__head,
	.txexp-service-details__grid {
		grid-template-columns: 1fr;
	}

	.txexp-service-action {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 860px) {
	.txexp-service-hero__inner {
		min-height: 420px;
		padding: 36px 40px 52px;
	}

	.txexp-service-hero__title {
		font-size: 48px;
	}

	.txexp-service-hero__text {
		max-width: none;
	}
}

@media (max-width: 540px) {
	.txexp-service-intro {
		padding: 20px 18px 36px;
	}

	.txexp-service-intro__media,
	.txexp-service-intro__img,
	.txexp-service-intro__placeholder {
		min-height: 240px;
	}

	.txexp-service-intro__content {
		padding: 24px;
	}

	.txexp-service-intro__desc {
		font-size: 16px;
	}

	.txexp-service-hero__inner {
		min-height: 360px;
		padding: 30px 24px 42px;
	}

	.txexp-services-archive-hero__inner {
		padding: 0 20px;
	}

	.txexp-service-hero__title {
		font-size: 36px;
	}

	.txexp-service-hero__subtitle,
	.txexp-services-archive-subtitle {
		font-size: 16px;
	}

	.txexp-service-section__content {
		padding: 32px 20px;
	}

	.txexp-services-archive-hero {
		padding: 56px 0 64px;
	}

	.txexp-services-archive-title {
		font-size: 38px;
	}

	.txexp-services-grid {
		grid-template-columns: 1fr;
		padding: 0 20px;
		margin: 40px auto;
		gap: 20px;
	}
}
