/* Agency-level creative direction pass for the GJS homepage. */
.gjs-homepage {
	--gjs-agency-ink: #07100f;
	--gjs-agency-deep: #081b18;
	--gjs-agency-panel: #0d2420;
	--gjs-agency-green: #1f6f64;
	--gjs-agency-green-bright: #4fa092;
	--gjs-agency-gold: #b5964a;
	--gjs-agency-gold-soft: #e5d4a2;
	--gjs-agency-paper: #fbfcfb;
	--gjs-agency-mist: #eef4f1;
	--gjs-agency-line: rgba(7, 16, 15, 0.13);
	--gjs-agency-shadow: 0 34px 100px rgba(7, 16, 15, 0.18);
	font-family: "Aptos", "Segoe UI", Arial, sans-serif;
}

.gjs-homepage h1,
.gjs-homepage h2,
.gjs-homepage h3 {
	font-family: "Aptos Display", "Aptos", "Segoe UI", Arial, sans-serif;
}

.gjs-section {
	padding: 150px 0;
}

.gjs-section__intro {
	max-width: 900px;
}

.gjs-section__intro p {
	color: #4f6065;
	font-size: 1.12rem;
}

.gjs-eyebrow {
	font-size: 0.74rem;
	font-weight: 900;
}

.gjs-button {
	border-radius: 7px;
	font-weight: 860;
	min-height: 60px;
	padding: 18px 28px;
}

.gjs-button--primary {
	background: linear-gradient(135deg, #0a2a25, #207468);
	box-shadow: 0 20px 48px rgba(8, 35, 31, 0.34);
}

.gjs-button--primary:hover {
	box-shadow: 0 26px 62px rgba(8, 35, 31, 0.4);
}

.gjs-card-link {
	font-size: 0.96rem;
	font-weight: 880;
}

.gjs-hero {
	background:
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(180deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(135deg, #07100f 0%, #0b211e 52%, #183834 100%);
	background-size: 96px 96px, 96px 96px, auto;
	color: #ffffff;
	padding: 118px 0 120px;
}

.gjs-hero::before {
	background: linear-gradient(90deg, rgba(181, 150, 74, 0.42), rgba(31, 111, 100, 0.22), transparent 74%);
	height: 160px;
}

.gjs-hero::after {
	background: linear-gradient(90deg, #C1121F 0%, #1E88E5 100%);
	height: 6px;
}

.gjs-hero__grid {
	gap: 92px;
	grid-template-columns: minmax(0, 1.05fr) minmax(430px, 0.95fr);
}

.gjs-hero__brand {
	color: #ffffff;
	margin-bottom: 58px;
}

.gjs-hero__logo-frame {
	background: #ffffff;
	border-color: rgba(255, 255, 255, 0.18);
	box-shadow: 0 22px 60px rgba(0, 0, 0, 0.28);
}

.gjs-hero__brand-text {
	border-left-color: rgba(229, 212, 162, 0.72);
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.94rem;
	max-width: 280px;
}

.gjs-hero .gjs-eyebrow,
.gjs-hero h1,
.gjs-hero p {
	color: #ffffff;
}

.gjs-hero .gjs-eyebrow {
	color: var(--gjs-agency-gold-soft);
}

.gjs-hero .gjs-eyebrow::before {
	background: linear-gradient(90deg, var(--gjs-agency-gold), var(--gjs-agency-green-bright));
}

.gjs-hero h1 {
	font-size: 4.72rem;
	line-height: 1;
	max-width: 940px;
}

.gjs-hero__summary {
	color: rgba(255, 255, 255, 0.78) !important;
	font-size: 1.24rem;
	line-height: 1.76;
	max-width: 800px;
}

.gjs-hero__meta {
	gap: 11px;
	margin-top: 34px;
}

.gjs-hero__meta span {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(255, 255, 255, 0.15);
	box-shadow: none;
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.84rem;
	padding: 12px 14px;
}

.gjs-hero .gjs-button--secondary {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.18);
	box-shadow: none;
	color: #ffffff;
}

.gjs-hero .gjs-button--secondary:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(229, 212, 162, 0.56);
	color: #ffffff;
}

.gjs-hero__proof {
	gap: 16px;
	max-width: 830px;
}

.gjs-hero__proof li {
	background: rgba(255, 255, 255, 0.075);
	border-color: rgba(255, 255, 255, 0.15);
	box-shadow: none;
	min-height: 132px;
}

.gjs-hero__proof span {
	color: var(--gjs-agency-gold-soft);
}

.gjs-hero__proof strong {
	color: #ffffff;
}

.gjs-hero__proof em {
	color: rgba(255, 255, 255, 0.66);
}

.gjs-hero__figure {
	background: #101d1c;
	border-color: rgba(255, 255, 255, 0.18);
	box-shadow: 0 38px 110px rgba(0, 0, 0, 0.42);
}

.gjs-hero__figure::after {
	border-color: rgba(229, 212, 162, 0.36);
}

.gjs-hero__figure figcaption {
	background: #ffffff;
}

.gjs-hero__note {
	background: linear-gradient(135deg, #ffffff, #eef4f1);
	box-shadow: 0 28px 70px rgba(0, 0, 0, 0.28);
	color: var(--gjs-agency-deep);
	left: auto;
	right: -28px;
}

.gjs-hero__note .gjs-icon {
	color: var(--gjs-agency-green);
}

.gjs-services {
	background:
		linear-gradient(180deg, #ffffff 0%, #fbfcfb 100%);
}

.gjs-services__grid {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gjs-service-card {
	border-color: rgba(7, 16, 15, 0.12);
	box-shadow: 0 20px 58px rgba(7, 16, 15, 0.07);
	grid-template-columns: 1fr;
	min-height: auto;
}

.gjs-service-card:first-child {
	grid-column: 1 / -1;
	grid-template-columns: minmax(380px, 1.04fr) minmax(0, 0.96fr);
	min-height: 520px;
}

.gjs-service-card:first-child .gjs-service-card__body {
	padding: 54px;
}

.gjs-service-card:first-child h3 {
	font-size: 2.08rem;
}

.gjs-service-card:not(:first-child) .gjs-service-card__media img {
	aspect-ratio: 1.5 / 1;
	height: auto;
}

.gjs-service-card:not(:first-child) .gjs-service-card__body {
	padding: 32px;
}

.gjs-service-card:not(:first-child) h3 {
	font-size: 1.34rem;
}

.gjs-service-card::before {
	height: 4px;
}

.gjs-service-card__number {
	background: rgba(7, 16, 15, 0.86);
}

.gjs-service-card__outcome {
	background: #f3f7f5;
	border-color: rgba(31, 111, 100, 0.18);
	color: #172123;
}

.gjs-process {
	background:
		linear-gradient(90deg, rgba(7, 16, 15, 0.035) 1px, transparent 1px),
		linear-gradient(180deg, #f7f9f8 0%, #eaf2ef 100%);
	background-size: 96px 96px, auto;
}

.gjs-process__grid {
	gap: 96px;
}

.gjs-process-step {
	border-color: rgba(7, 16, 15, 0.1);
	box-shadow: 0 20px 52px rgba(7, 16, 15, 0.07);
	overflow: hidden;
	position: relative;
}

.gjs-process-step::after {
	color: rgba(31, 111, 100, 0.07);
	content: "0";
	font-size: 6.8rem;
	font-weight: 900;
	line-height: 1;
	position: absolute;
	right: 22px;
	top: 18px;
}

.gjs-process-step:nth-child(1)::after { content: "01"; }
.gjs-process-step:nth-child(2)::after { content: "02"; }
.gjs-process-step:nth-child(3)::after { content: "03"; }
.gjs-process-step:nth-child(4)::after { content: "04"; }

.gjs-process-step > * {
	position: relative;
	z-index: 1;
}

.gjs-experience__media,
.gjs-digital__media {
	box-shadow: var(--gjs-agency-shadow);
}

.gjs-experience__panel {
	background: #ffffff;
	box-shadow: 0 20px 52px rgba(7, 16, 15, 0.07);
}

.gjs-stat-strip {
	box-shadow: 0 18px 46px rgba(7, 16, 15, 0.06);
}

.gjs-digital {
	background:
		linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px),
		linear-gradient(135deg, #07100f 0%, #0d2d28 52%, #213e42 100%);
	background-size: 96px 96px, auto;
}

.gjs-digital__caption {
	background: rgba(255, 255, 255, 0.98);
}

.gjs-trust-card {
	box-shadow: 0 20px 58px rgba(7, 16, 15, 0.07);
}

.gjs-trust-card__standard {
	color: var(--gjs-agency-green);
}

.gjs-trust__bar {
	background: linear-gradient(135deg, #07100f, #102521);
}

.gjs-cta {
	background:
		linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px),
		linear-gradient(135deg, #07100f, #0d2d28 56%, #1b3a3d 100%);
	background-size: 96px 96px, auto;
	padding: 112px 0;
}

.gjs-cta__inner {
	border-bottom-color: rgba(229, 212, 162, 0.24);
	border-top-color: rgba(229, 212, 162, 0.24);
}

.gjs-cta h2 {
	font-size: 3.2rem;
	max-width: 920px;
}

.gjs-cta__note {
	color: rgba(229, 212, 162, 0.82) !important;
}

@media (hover: hover) {
	.gjs-service-card:hover,
	.gjs-trust-card:hover,
	.gjs-process-step:hover {
		box-shadow: var(--gjs-agency-shadow);
		transform: translateY(-7px);
	}

	.gjs-hero__figure:hover img,
	.gjs-service-card:hover .gjs-service-card__media img,
	.gjs-experience__media:hover img,
	.gjs-digital__media:hover img {
		transform: scale(1.04);
	}
}

@media (max-width: 1180px) {
	.gjs-section {
		padding: 116px 0;
	}

	.gjs-hero h1 {
		font-size: 3.5rem;
	}

	.gjs-services__grid,
	.gjs-service-card:first-child {
		grid-template-columns: 1fr;
	}

	.gjs-service-card:first-child {
		min-height: auto;
	}

	.gjs-service-card:first-child .gjs-service-card__body {
		padding: 38px;
	}
}

@media (max-width: 820px) {
	.gjs-section {
		padding: 86px 0;
	}

	.gjs-hero {
		padding: 62px 0 74px;
	}

	.gjs-hero h1 {
		font-size: 2.5rem;
	}

	.gjs-hero__summary {
		font-size: 1.04rem;
	}

	.gjs-hero__brand-text {
		border-left: 0;
		border-top: 2px solid rgba(229, 212, 162, 0.72);
		padding-left: 0;
	}

	.gjs-hero__note {
		position: static;
	}

	.gjs-service-card:first-child .gjs-service-card__body,
	.gjs-service-card:not(:first-child) .gjs-service-card__body {
		padding: 26px;
	}

	.gjs-process-step::after {
		font-size: 4.8rem;
	}

	.gjs-cta h2 {
		font-size: 2rem;
	}
}

@media (max-width: 520px) {
	.gjs-section {
		padding: 70px 0;
	}

	.gjs-hero {
		padding: 48px 0 62px;
	}

	.gjs-hero h1 {
		font-size: 2.14rem;
	}

	.gjs-hero__meta span {
		width: 100%;
	}

	.gjs-service-card:first-child .gjs-service-card__body,
	.gjs-service-card:not(:first-child) .gjs-service-card__body {
		padding: 22px;
	}
}
