/*
 * Home fidelity layer.
 * Keeps the 1920 px Figma geometry intact and scales it fluidly on laptop-width desktops.
 * All selectors are scoped to the front page so the working subpages remain untouched.
 */

body.home.km-site-page {
	overflow-x: clip;
}

.home .km-home-intro__photo {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.home .km-home-intro__photo > img {
	display: block;
}

.home .km-building-highlight {
	display: none;
}

.home .km-home-project .km-pill--gold,
.home .km-contact-section .km-pill--form {
	color: #a38b4b !important;
}

.home .km-home-project .km-pill--gold .km-pill__circle,
.home .km-contact-section .km-pill--form .km-pill__circle {
	color: #fff !important;
}



	.home .km-home-intro__photo > img {
		position: absolute;
		left: -17.32%;
		top: -17.84%;
		width: 117.35%;
		height: 122.98%;
		max-width: none;
		object-fit: cover;
	}

	.home .km-home-intro__media > img.km-home-intro__lines {
		position: absolute;
		left: 233px;
		top: 205px;
		width: 580px;
		height: 386px;
		max-width: none;
		object-fit: contain;
		overflow: visible;
		mix-blend-mode: multiply;
		pointer-events: none;
		z-index: 2;
	}

	.home .km-buildings__visual .b1 {
		overflow: visible;
	}

	.home .km-buildings__visual .b1 .km-building-highlight {
		display: block;
		position: absolute;
		left: 4px;
		top: 27px;
		width: 494px;
		height: 316px;
		max-width: none;
		object-fit: fill;
		mix-blend-mode: multiply;
		pointer-events: none;
		z-index: 2;
	}
}

/*
 * The original artboard is 1920 px wide with a 1620 px content grid.
 * Between 1101 and 1919 px every design measurement is reduced from that
 * source ratio, preventing the fixed 1620 px canvas from being clipped.
 */
@media (min-width: 1101px) and (max-width: 1919px) {
	.home .km-shell {
		width: 84.375vw;
		max-width: none;
	}

	.home .km-site-header {
		height: clamp(72px, 5.15625vw, 99px);
	}

	.home .km-site-header__inner {
		display: block;
		position: relative;
		height: 100%;
		padding: 0;
	}

	.home .km-site-brand {
		position: absolute;
		left: 1.770833vw;
		top: clamp(12px, .989583vw, 19px);
		width: 14.523438vw;
		height: 3.535938vw;
	}

	.home .km-site-brand img {
		width: 14.523438vw;
		height: 3.535938vw;
		max-height: none;
		object-fit: contain;
	}

	.home .km-site-nav {
		position: absolute;
		left: 37.447917vw;
		top: 0;
		height: 100%;
		margin: 0;
		display: flex;
		align-items: center;
		gap: 3.75vw;
		font-size: clamp(12px, .833333vw, 16px);
		line-height: 1.1;
		font-weight: 700;
		white-space: nowrap;
	}

	.home .km-site-cta {
		position: absolute;
		right: 1.197917vw;
		top: 50%;
		transform: translateY(-50%);
		width: clamp(165px, 11.770833vw, 226px);
		height: clamp(44px, 2.864583vw, 55px);
		margin: 0;
		padding: 0 clamp(14px, 1.145833vw, 22px);
		justify-content: flex-start;
		gap: clamp(9px, .677083vw, 13px);
		border-radius: 40px;
		font-size: clamp(10px, .729167vw, 14px);
		line-height: 1.1;
		white-space: nowrap;
	}

	.home .km-site-cta img {
		width: clamp(22px, 1.458333vw, 28px);
		height: clamp(22px, 1.458333vw, 28px);
		flex: 0 0 auto;
	}

	.home .km-home-hero {
		height: max(555px, 50.364583vw);
	}

	.home .km-home-hero > .km-hero__background {
		left: 0;
		top: clamp(-99px, -5.15625vw, -72px);
		width: 100%;
		height: 55.520833vw;
		max-width: none;
		object-fit: cover;
		object-position: center center;
	}

	.home .km-home-hero .km-hero__content {
		position: absolute;
		inset: 0;
		max-width: none;
		padding: 0;
	}

	.home .km-home-hero .km-hero__badge {
		left: 50%;
		top: 13.489583vw;
		width: 13.177083vw !important;
		height: 13.177083vw !important;
		transform: translateX(-50%);
		margin: 0;
		object-fit: contain !important;
	}

	.home .km-home-hero h1 {
		left: 50%;
		top: 29.479167vw;
		width: 71.875vw;
		height: auto;
		transform: translateX(-50%);
		margin: 0;
		font-size: clamp(48px, 4.166667vw, 80px);
		line-height: 1.1;
		letter-spacing: -.083333vw;
		font-weight: 400;
		white-space: nowrap;
	}

	.home .km-home-hero p {
		left: 50%;
		top: 35.520833vw;
		width: 38.854167vw;
		max-width: none;
		height: auto;
		transform: translateX(-50%);
		margin: 0;
		font-size: clamp(16px, 1.25vw, 24px);
		line-height: clamp(22px, 1.770833vw, 34px);
		font-weight: 400;
	}

	.home .km-pill {
		height: clamp(48px, 3.802083vw, 73px);
		border-radius: 50px;
		padding: 0 clamp(6px, .416667vw, 8px) 0 clamp(20px, 1.614583vw, 31px);
		gap: clamp(12px, 1.041667vw, 20px);
		font-size: clamp(12px, .833333vw, 16px);
		line-height: 1.5;
	}

	.home .km-pill__circle {
		width: clamp(38px, 2.916667vw, 56px);
		height: clamp(38px, 2.916667vw, 56px);
		flex: 0 0 clamp(38px, 2.916667vw, 56px);
		font-size: clamp(15px, 1.041667vw, 20px);
	}

	.home .km-home-hero__actions {
		left: calc(50% - 15.833333vw);
		top: 41.458333vw;
		width: 30vw;
		height: clamp(48px, 3.802083vw, 73px);
		margin: 0;
		display: flex;
		align-items: center;
		gap: 2.864583vw;
	}

	.home .km-home-hero__actions .km-pill {
		width: 16.302083vw;
		flex: 0 0 16.302083vw;
	}

	.home .km-home-hero__thumb {
		position: relative;
		width: 10.833333vw;
		height: clamp(48px, 3.802083vw, 73px);
		padding: clamp(3px, .208333vw, 4px) clamp(4px, .3125vw, 6px);
		border-radius: 50px;
		overflow: hidden;
	}

	.home .km-home-hero__thumb img {
		position: static !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none;
		object-fit: cover;
		border-radius: 50px;
	}

	.home .km-home-hero__thumb span {
		left: 50%;
		top: 50%;
		width: auto;
		height: auto;
		transform: translate(-50%, -50%);
		font-size: clamp(16px, 1.145833vw, 22px);
		line-height: 1;
	}

	.home .km-facts {
		height: max(116px, 9.635417vw);
	}

	.home .km-facts__inner {
		width: 84.375vw;
		height: 100%;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.5625vw;
	}

	.home .km-fact {
		padding: 1.822917vw 0 0;
	}

	.home .km-fact:not(:last-child)::after {
		right: 0;
		top: 1.927083vw;
		height: 5.416667vw;
	}

	.home .km-fact span {
		margin: 0 0 .260417vw;
		font-size: clamp(12px, .9375vw, 18px);
		line-height: 1.55;
	}

	.home .km-fact strong {
		font-size: clamp(30px, 2.5vw, 48px);
		line-height: 1.625;
		white-space: nowrap;
	}

	.home .km-home-intro {
		height: max(520px, 41.354167vw);
	}

	.home .km-home-intro__inner {
		width: 84.375vw;
		height: 100%;
	}

	.home .km-home-intro__copy {
		left: 0;
		top: 7.1875vw;
		width: 37.760417vw;
	}

	.home .km-home-intro__copy h2 {
		margin: 0 0 1.25vw;
		font-size: clamp(32px, 2.5vw, 48px);
		line-height: 1.208333;
		letter-spacing: -.05em;
	}

	.home .km-home-intro__copy p {
		margin: 0 0 .9375vw;
		font-size: clamp(13px, .9375vw, 18px);
		line-height: clamp(20px, 1.458333vw, 28px);
	}

	.home .km-home-intro__media {
		right: 0;
		top: 6.197917vw;
		width: 41.25vw;
		height: 27.1875vw;
	}

	.home .km-home-intro__media > img.km-home-intro__lines {
		left: 12.135417vw;
		top: 10.677083vw;
		width: 30.208333vw;
		height: 20.104167vw;
	}

	.home .km-home-project {
		height: max(500px, 37.083333vw);
	}

	.home .km-home-project__inner {
		width: 84.375vw;
		height: 100%;
	}

	.home .km-home-project__badge-col {
		left: 0;
		top: 3.59375vw;
		width: 14.322917vw;
		height: 31.770833vw;
	}

	.home .km-badge-square {
		width: 12.760417vw;
		height: 12.760417vw;
	}

	.home .km-badge-square img {
		width: 9.53125vw;
		height: auto;
	}

	.home .km-home-project__badge-col > .km-pill {
		left: 0;
		top: 24.53125vw;
		width: 14.322917vw;
	}

	.home .km-home-project__copy {
		left: 17.239583vw;
		top: 3.59375vw;
		width: 35.208333vw;
	}

	.home .km-home-project__copy h2 {
		margin: 0 0 1.09375vw;
		font-size: clamp(32px, 2.5vw, 48px);
		line-height: 1.208333;
		letter-spacing: -.05em;
	}

	.home .km-home-project__copy h3 {
		margin: 0 0 .833333vw;
		font-size: clamp(16px, 1.25vw, 24px);
		line-height: 1.416667;
	}

	.home .km-home-project__copy p {
		margin: 0 0 .9375vw;
		font-size: clamp(13px, .9375vw, 18px);
		line-height: clamp(20px, 1.458333vw, 28px);
	}

	.home .km-home-project__building {
		right: 0;
		top: -10.9375vw;
		width: 35.833333vw;
		height: 48.020833vw;
		max-width: none;
		object-fit: contain;
		object-position: right bottom;
	}

	.home .km-buildings {
		height: max(480px, 39.166667vw);
	}

	.home .km-buildings__inner {
		width: 84.375vw;
		height: 100%;
	}

	.home .km-buildings h2 {
		top: 3.802083vw;
		font-size: clamp(32px, 2.5vw, 48px);
		line-height: 1.208333;
	}

	.home .km-buildings strong {
		top: 8.125vw;
		font-size: clamp(16px, 1.25vw, 24px);
		line-height: 1.166667;
	}

	.home .km-buildings p {
		top: 10.520833vw;
		font-size: clamp(13px, .9375vw, 18px);
		line-height: clamp(20px, 1.458333vw, 28px);
	}

	.home .km-buildings__visual {
		left: 50%;
		top: 14.6875vw;
		width: 54.375vw;
		height: 20.260417vw;
	}

	.home .km-buildings__visual .b1 {
		left: 0;
		top: 1.09375vw;
		width: 26.354167vw;
		height: 19.0625vw;
	}

	.home .km-buildings__visual .b2 {
		left: 26.354167vw;
		top: 0;
		width: 28.020833vw;
		height: 20.260417vw;
	}

	.home .km-buildings__visual .b1 img {
		width: 26.354167vw;
		height: 19.0625vw;
	}

	.home .km-buildings__visual .b2 img {
		width: 28.020833vw;
		height: 20.260417vw;
	}

	.home .km-buildings__visual .b1 .km-building-highlight {
		left: .790514%;
		top: 7.377049%;
		width: 97.628458%;
		height: 86.338798%;
	}

	.home .km-experience {
		height: max(420px, 32.65625vw);
	}

	.home .km-experience__inner {
		width: 84.375vw;
		height: 100%;
	}

	.home .km-experience__mark {
		left: .104167vw;
		top: 4.791667vw;
		width: 15.833333vw;
		height: 17.34375vw;
	}

	.home .km-experience__mark img {
		width: 15.833333vw;
		height: 17.34375vw;
		max-height: none;
		object-fit: contain;
	}

	.home .km-experience__copy {
		left: 28.645833vw;
		top: 4.947917vw;
		width: 39.0625vw;
		height: 26.041667vw;
	}

	.home .km-experience h2 {
		margin: 0 0 1.354167vw;
		font-size: clamp(32px, 2.5vw, 48px);
		line-height: 1.270833;
		letter-spacing: -.05em;
	}

	.home .km-experience p {
		margin: 0 0 .9375vw;
		max-width: none;
		font-size: clamp(13px, .9375vw, 18px);
		line-height: clamp(20px, 1.458333vw, 28px);
	}

	.home .km-experience__copy > .km-pill {
		left: 0;
		top: 19.322917vw;
		width: 14.322917vw;
	}

}

/*
 * Final CTA and supplied-asset corrections.
 */
.home .km-pill__circle .km-pill__arrow {
	display: block;
	width: clamp(14px, .9375vw, 18px) !important;
	height: clamp(14px, .9375vw, 18px) !important;
	max-width: none;
	object-fit: contain;
}

.home .km-home-hero__actions .km-pill--hero,
.home .km-home-project .km-pill--gold {
	border-width: 1.5px !important;
	border-style: solid !important;
	border-color: #a38b4b !important;
}

@media (min-width: 1101px) {
	.home .km-home-hero__actions {
		left: 50%;
		width: clamp(180px, 16.302083vw, 313px);
		transform: translateX(-50%);
		justify-content: center;
		gap: 0;
	}

	.home .km-home-hero__actions .km-pill {
		width: 100%;
		flex: 0 0 100%;
	}
}

@media (max-width: 1100px) {
	body.home.km-site-page {
		overflow-x: hidden;
	}

	.home .km-home-intro__photo {
		position: relative;
		inset: auto;
		width: 100%;
		aspect-ratio: 792 / 522;
	}

	.home .km-home-intro__photo > img {
		position: absolute;
		left: -17.32%;
		top: -17.84%;
		width: 117.35%;
		height: 122.98%;
		max-width: none;
		object-fit: cover;
	}

	.home .km-home-intro__media > img.km-home-intro__lines {
		display: none;
	}
}
