/* =========================================================
 * Tech Resolve — Website Redesign Diagnostic
 * Editorial Diagnostic Scene
 * Version: 2.1.0
 * ======================================================= */


/* =========================================================
 * Section
 * ======================================================= */

.tr-redesign-diagnostic {
	position: relative;

	overflow: hidden;

	padding:
		clamp(100px, 9vw, 155px)
		var(--tr-gutter);

	color:
		#0c1912;

	background:
		#f4f6f3;
}


/* =========================================================
 * Shell
 * ======================================================= */

.tr-redesign-diagnostic__shell {
	width:
		min(100%, var(--tr-container));

	margin:
		0 auto;
}


/* =========================================================
 * Header
 * ======================================================= */

.tr-redesign-diagnostic__header {
	display: grid;

	grid-template-columns:
		minmax(0, 1.08fr)
		minmax(340px, 0.92fr);

	align-items:
		end;

	gap:
		clamp(50px, 8vw, 120px);

	margin-bottom:
		clamp(48px, 6vw, 72px);
}


.tr-redesign-diagnostic__eyebrow {
	display: block;

	margin-bottom:
		17px;

	color:
		var(--tr-green-deep);

	font-size:
		var(--tr-text-ui);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.15em;
}


.tr-redesign-diagnostic__heading h2 {
	max-width:
		880px;

	margin:
		0;

	color:
		#0b1811;

	font-size:
		clamp(43px, 5.1vw, 73px);

	font-weight:
		800;

	line-height:
		0.99;

	letter-spacing:
		-0.053em;
}


.tr-redesign-diagnostic__intro > p {
	max-width:
		610px;

	margin:
		0;

	color:
		#68746d;

	font-size:
		var(--tr-text-body);

	font-weight:
		var(--tr-weight-body);

	line-height:
		var(--tr-line-body);
}


/* =========================================================
 * Intro Route
 * ======================================================= */

.tr-redesign-diagnostic__intro-route {
	display: flex;
	align-items: center;

	gap:
		10px;

	margin-top:
		25px;

	padding-top:
		15px;

	border-top:
		1px solid #dbe2de;

	color:
		#99a39d;

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.09em;
}


.tr-redesign-diagnostic__intro-route i {
	flex:
		1;

	height:
		1px;

	background:
		#d6dfda;
}


.tr-redesign-diagnostic__intro-route strong {
	color:
		var(--tr-green-deep);

	font-size:
		inherit;

	font-weight:
		inherit;
}


/* =========================================================
 * Scene
 * ======================================================= */

.tr-redesign-diagnostic__scene {
	display: grid;

	grid-template-columns:
		minmax(330px, 0.68fr)
		minmax(0, 1.32fr);

	overflow: hidden;

	background:
		#ffffff;

	border:
		1px solid #dce4df;

	border-radius:
		26px;

	box-shadow:
		0 34px 90px rgba(10, 28, 18, 0.06);
}


/* =========================================================
 * Principle
 * ======================================================= */

.tr-redesign-diagnostic__principle {
	position: relative;

	display: flex;
	flex-direction: column;

	min-width:
		0;

	padding:
		clamp(38px, 4vw, 58px);

	color:
		#ffffff;

	background:
		linear-gradient(
			145deg,
			#06100d,
			#081811
		);

	border-right:
		1px solid rgba(255, 255, 255, 0.065);
}


.tr-redesign-diagnostic__principle::before {
	content: "";

	position: absolute;

	top:
		-210px;

	left:
		-170px;

	width:
		520px;

	height:
		520px;

	background:
		radial-gradient(
			circle,
			rgba(25, 224, 120, 0.13),
			transparent 68%
		);

	pointer-events:
		none;
}


.tr-redesign-diagnostic__principle::after {
	content: "";

	position: absolute;

	inset:
		0;

	opacity:
		0.13;

	background-image:
		linear-gradient(
			rgba(255, 255, 255, 0.035) 1px,
			transparent 1px
		),
		linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.035) 1px,
			transparent 1px
		);

	background-size:
		48px
		48px;

	pointer-events:
		none;
}


.tr-redesign-diagnostic__principle--no-glow::before {
	display: none;
}
.tr-redesign-diagnostic__principle--no-grid::after {
	display: none;
}
.tr-redesign-diagnostic__principle--no-logic .tr-redesign-diagnostic__spectrum {
	margin-top: auto;
}


.tr-redesign-diagnostic__principle > * {
	position: relative;

	z-index:
		2;
}


/* =========================================================
 * Principle Top
 * ======================================================= */

.tr-redesign-diagnostic__principle-top {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap:
		20px;
}


.tr-redesign-diagnostic__principle-top > span {
	color:
		var(--tr-green);

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.12em;
}


.tr-redesign-diagnostic__principle-top > strong {
	color:
		rgba(255, 255, 255, 0.16);

	font-size:
		38px;

	font-weight:
		800;

	line-height:
		1;
}


/* =========================================================
 * Principle Copy
 * ======================================================= */

.tr-redesign-diagnostic__principle h3 {
	max-width:
		430px;

	margin:
		clamp(48px, 6vw, 78px)
		0
		0;

	color:
		#ffffff;

	font-size:
		clamp(31px, 3.2vw, 46px);

	font-weight:
		800;

	line-height:
		1.02;

	letter-spacing:
		-0.042em;
}


.tr-redesign-diagnostic__principle > p {
	max-width:
		430px;

	margin:
		22px
		0
		0;

	color:
		rgba(255, 255, 255, 0.55);

	font-size:
		var(--tr-text-card);

	font-weight:
		var(--tr-weight-body);

	line-height:
		var(--tr-line-card);
}


/* =========================================================
 * Logic
 * ======================================================= */

.tr-redesign-diagnostic__logic {
	display: grid;

	grid-template-columns:
		auto
		1fr
		auto
		1fr
		auto;

	align-items:
		center;

	gap:
		12px;

	width:
		100%;

	margin-top:
		auto;

	padding-top:
		70px;
}


.tr-redesign-diagnostic__logic--2 {
	grid-template-columns:
		auto
		1fr
		auto;
}
.tr-redesign-diagnostic__logic--1 {
	grid-template-columns:
		auto;
}


.tr-redesign-diagnostic__logic > div {
	display: grid;

	gap:
		5px;
}


.tr-redesign-diagnostic__logic > div span {
	color:
		rgba(255, 255, 255, 0.28);

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);
}


.tr-redesign-diagnostic__logic > div strong {
	color:
		rgba(255, 255, 255, 0.68);

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.08em;
}


.tr-redesign-diagnostic__logic > i {
	width:
		100%;

	height:
		1px;

	background:
		linear-gradient(
			to right,
			rgba(255, 255, 255, 0.05),
			rgba(25, 224, 120, 0.42),
			rgba(255, 255, 255, 0.05)
		);
}


/* =========================================================
 * Spectrum
 * ======================================================= */

.tr-redesign-diagnostic__spectrum {
	display: grid;

	grid-template-columns:
		repeat(6, 1fr);

	height:
		4px;

	margin-top:
		28px;

	overflow:
		hidden;

	border-radius:
		999px;
}


.tr-redesign-diagnostic__spectrum span:nth-child(1) {
	background:
		var(--tr-spectrum-green);
}


.tr-redesign-diagnostic__spectrum span:nth-child(2) {
	background:
		var(--tr-spectrum-cyan);
}


.tr-redesign-diagnostic__spectrum span:nth-child(3) {
	background:
		var(--tr-spectrum-blue);
}


.tr-redesign-diagnostic__spectrum span:nth-child(4) {
	background:
		var(--tr-spectrum-violet);
}


.tr-redesign-diagnostic__spectrum span:nth-child(5) {
	background:
		var(--tr-spectrum-pink);
}


.tr-redesign-diagnostic__spectrum span:nth-child(6) {
	background:
		var(--tr-spectrum-orange);
}


/* =========================================================
 * Review
 * ======================================================= */

.tr-redesign-diagnostic__review {
	min-width:
		0;

	background:
		#ffffff;
}


/* =========================================================
 * Review Head
 * ======================================================= */

.tr-redesign-diagnostic__review-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;

	gap:
		28px;

	min-height:
		145px;

	padding:
		32px
		34px;

	border-bottom:
		1px solid #e2e8e4;
}


.tr-redesign-diagnostic__review-head > div:first-child > span {
	display: block;

	margin-bottom:
		9px;

	color:
		var(--tr-green-deep);

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.11em;
}


.tr-redesign-diagnostic__review-head h3 {
	max-width:
		600px;

	margin:
		0;

	color:
		#142019;

	font-size:
		clamp(24px, 2.5vw, 35px);

	font-weight:
		800;

	line-height:
		1.07;

	letter-spacing:
		-0.035em;
}


/* =========================================================
 * Review Count
 * ======================================================= */

.tr-redesign-diagnostic__review-count {
	display: grid;

	justify-items:
		end;

	flex:
		0
		0
		auto;
}


.tr-redesign-diagnostic__review-count strong {
	color:
		#0b1811;

	font-size:
		34px;

	font-weight:
		800;

	line-height:
		1;
}


.tr-redesign-diagnostic__review-count span {
	margin-top:
		5px;

	color:
		#a1aba5;

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.08em;
}


/* =========================================================
 * Areas
 * ======================================================= */

.tr-redesign-diagnostic__areas {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));
}


/* =========================================================
 * Area
 * ======================================================= */

.tr-redesign-diagnostic__area {
	position: relative;

	min-height:
		245px;

	padding:
		27px
		27px
		48px;

	border-right:
		1px solid #e5eae7;

	border-bottom:
		1px solid #e5eae7;

	transition:
		background 180ms ease,
		transform 180ms var(--tr-ease);
}


.tr-redesign-diagnostic__area:nth-child(2n) {
	border-right:
		0;
}


.tr-redesign-diagnostic__area:nth-last-child(-n + 2) {
	border-bottom:
		0;
}


.tr-redesign-diagnostic__area::before {
	content: "";

	position: absolute;

	top:
		0;

	right:
		0;

	left:
		0;

	height:
		3px;

	opacity:
		0;

	transition:
		opacity 180ms ease;
}


.tr-redesign-diagnostic__area:nth-child(1)::before {
	background:
		var(--tr-spectrum-green);
}


.tr-redesign-diagnostic__area:nth-child(2)::before {
	background:
		var(--tr-spectrum-cyan);
}


.tr-redesign-diagnostic__area:nth-child(3)::before {
	background:
		var(--tr-spectrum-blue);
}


.tr-redesign-diagnostic__area:nth-child(4)::before {
	background:
		var(--tr-spectrum-violet);
}


.tr-redesign-diagnostic__area:nth-child(5)::before {
	background:
		var(--tr-spectrum-pink);
}


.tr-redesign-diagnostic__area:nth-child(6)::before {
	background:
		var(--tr-spectrum-orange);
}


.tr-redesign-diagnostic__area:nth-child(7)::before {
	background:
		var(--tr-spectrum-green);
}


.tr-redesign-diagnostic__area:nth-child(8)::before {
	background:
		var(--tr-spectrum-cyan);
}


.tr-redesign-diagnostic__area:hover {
	background:
		linear-gradient(
			145deg,
			rgba(25, 224, 120, 0.045),
			transparent 70%
		);
}


.tr-redesign-diagnostic__area:hover::before {
	opacity:
		1;
}


/* =========================================================
 * Area Top
 * ======================================================= */

.tr-redesign-diagnostic__area-top {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap:
		16px;
}


.tr-redesign-diagnostic__area-top > span {
	color:
		#a7b1ab;

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);
}


.tr-redesign-diagnostic__area-top > strong {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width:
		44px;

	min-height:
		27px;

	padding:
		0
		8px;

	color:
		var(--tr-green-deep);

	background:
		rgba(25, 224, 120, 0.055);

	border:
		1px solid rgba(8, 185, 93, 0.13);

	border-radius:
		999px;

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.06em;
}


/* =========================================================
 * Area Copy
 * ======================================================= */

.tr-redesign-diagnostic__area--no-meta h4 {
	margin-top: 0;
}
.tr-redesign-diagnostic__area--no-state {
	padding-bottom: 27px;
}


.tr-redesign-diagnostic__area h4 {
	max-width:
		360px;

	margin:
		25px
		0
		0;

	color:
		#17231c;

	font-size:
		20px;

	font-weight:
		var(--tr-weight-bold);

	line-height:
		1.12;

	letter-spacing:
		-0.022em;
}


.tr-redesign-diagnostic__area > p {
	max-width:
		410px;

	margin:
		12px
		0
		0;

	color:
		#6f7b74;

	font-size:
		var(--tr-text-card);

	font-weight:
		var(--tr-weight-body);

	line-height:
		var(--tr-line-card);
}


/* =========================================================
 * Area State
 * ======================================================= */

.tr-redesign-diagnostic__area-state {
	position: absolute;

	right:
		27px;

	bottom:
		20px;

	left:
		27px;

	display: flex;
	align-items: center;

	gap:
		7px;

	color:
		#a0aaa4;

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.07em;
}


.tr-redesign-diagnostic__area-state i {
	width:
		5px;

	height:
		5px;

	background:
		var(--tr-green);

	border-radius:
		50%;
}


/* =========================================================
 * Output
 * ======================================================= */

.tr-redesign-diagnostic__output {
	grid-column:
		1
		/
		-1;

	display: grid;

	grid-template-columns:
		minmax(190px, 0.28fr)
		minmax(0, 1fr)
		auto;

	align-items:
		center;

	gap:
		clamp(28px, 4vw, 56px);

	padding:
		24px
		30px;

	color:
		#ffffff;

	background:
		#091710;

	border-top:
		1px solid rgba(255, 255, 255, 0.06);
}


/* =========================================================
 * Output Label
 * ======================================================= */

.tr-redesign-diagnostic__output-label {
	display: flex;
	align-items: center;

	gap:
		10px;
}


.tr-redesign-diagnostic__output-label i {
	width:
		7px;

	height:
		7px;

	background:
		var(--tr-green);

	border-radius:
		50%;

	box-shadow:
		0 0 10px rgba(25, 224, 120, 0.48);
}


.tr-redesign-diagnostic__output-label strong {
	color:
		var(--tr-green);

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.10em;
}


.tr-redesign-diagnostic__output > p {
	max-width:
		790px;

	margin:
		0;

	color:
		rgba(255, 255, 255, 0.58);

	font-size:
		var(--tr-text-card);

	font-weight:
		var(--tr-weight-body);

	line-height:
		var(--tr-line-card);
}


/* =========================================================
 * Output Route
 * ======================================================= */

.tr-redesign-diagnostic__output-route {
	display: flex;
	align-items: center;

	gap:
		8px;

	color:
		rgba(255, 255, 255, 0.34);

	font-size:
		var(--tr-text-label);

	font-weight:
		var(--tr-weight-label);

	line-height:
		var(--tr-line-ui);

	letter-spacing:
		0.06em;
}


.tr-redesign-diagnostic__output-route i {
	width:
		18px;

	height:
		1px;

	background:
		rgba(255, 255, 255, 0.12);
}


.tr-redesign-diagnostic__output-route strong {
	color:
		var(--tr-green);

	font-size:
		inherit;

	font-weight:
		inherit;
}


/* =========================================================
 * Tablet
 * ======================================================= */

@media (max-width: 1080px) {

	.tr-redesign-diagnostic__scene {
		grid-template-columns:
			1fr;
	}


	.tr-redesign-diagnostic__principle {
		min-height:
			430px;

		border-right:
			0;

		border-bottom:
			1px solid rgba(255, 255, 255, 0.07);
	}


	.tr-redesign-diagnostic__principle h3,
	.tr-redesign-diagnostic__principle > p {
		max-width:
			720px;
	}


	.tr-redesign-diagnostic__output {
		grid-template-columns:
			180px
			minmax(0, 1fr);
	}


	.tr-redesign-diagnostic__output-route {
		grid-column:
			2;
	}

}


/* =========================================================
 * Mobile
 * ======================================================= */

@media (max-width: 720px) {

	.tr-redesign-diagnostic {
		padding:
			82px
			var(--tr-gutter);
	}


	.tr-redesign-diagnostic__header {
		grid-template-columns:
			1fr;

		gap:
			28px;

		margin-bottom:
			42px;
	}


	.tr-redesign-diagnostic__heading h2 {
		font-size:
			clamp(40px, 11vw, 58px);
	}


	.tr-redesign-diagnostic__intro-route {
		gap:
			7px;
	}


	.tr-redesign-diagnostic__scene {
		border-radius:
			18px;
	}


	.tr-redesign-diagnostic__principle {
		min-height:
			auto;

		padding:
			34px
			22px;
	}


	.tr-redesign-diagnostic__principle h3 {
		margin-top:
			42px;
	}


	/* =====================================================
	 * Diagnostic Logic — Horizontal on Mobile
	 * =================================================== */

	.tr-redesign-diagnostic__logic {
		grid-template-columns:
			max-content
			minmax(12px, 1fr)
			max-content
			minmax(12px, 1fr)
			max-content;

		align-items:
			center;

		gap:
			8px;

		width:
			100%;

		margin-top:
			0;

		padding-top:
			46px;
	}


	.tr-redesign-diagnostic__logic--2 {
		grid-template-columns:
			max-content
			minmax(12px, 1fr)
			max-content;
	}


	.tr-redesign-diagnostic__logic--1 {
		grid-template-columns:
			max-content;
	}


	.tr-redesign-diagnostic__logic > div {
		display:
			grid;

		gap:
			4px;

		min-width:
			0;
	}


	.tr-redesign-diagnostic__logic > div span {
		font-size:
			var(--tr-text-label);

		line-height:
			1;
	}


	.tr-redesign-diagnostic__logic > div strong {
		font-size:
			var(--tr-text-label);

		line-height:
			1.25;

		letter-spacing:
			0.06em;

		white-space:
			nowrap;
	}


	.tr-redesign-diagnostic__logic > i {
		display:
			block;

		width:
			100%;

		height:
			1px;

		margin:
			0;

		background:
			linear-gradient(
				to right,
				rgba(255, 255, 255, 0.08),
				rgba(25, 224, 120, 0.48),
				rgba(255, 255, 255, 0.08)
			);
	}


	.tr-redesign-diagnostic__spectrum {
		margin-top:
			24px;
	}


	.tr-redesign-diagnostic__review-head {
		align-items:
			flex-start;

		padding:
			28px
			22px;
	}


	.tr-redesign-diagnostic__review-count {
		display:
			none;
	}


	.tr-redesign-diagnostic__areas {
		grid-template-columns:
			1fr;
	}


	.tr-redesign-diagnostic__area,
	.tr-redesign-diagnostic__area:nth-child(2n),
	.tr-redesign-diagnostic__area:nth-last-child(-n + 2) {
		min-height:
			0;

		padding:
			25px
			22px
			48px;

		border-right:
			0;

		border-bottom:
			1px solid #e5eae7;
	}


	.tr-redesign-diagnostic__area:last-child {
		border-bottom:
			0;
	}


	.tr-redesign-diagnostic__area--no-state {
		padding-bottom:
			25px;
	}


	.tr-redesign-diagnostic__area-state {
		right:
			22px;

		bottom:
			18px;

		left:
			22px;
	}


	.tr-redesign-diagnostic__output {
		grid-template-columns:
			1fr;

		gap:
			16px;

		padding:
			25px
			22px;
	}


	.tr-redesign-diagnostic__output-route {
		grid-column:
			auto;

		flex-wrap:
			wrap;
	}

}