/* #region @-rules */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-delay: 0s !important;
		animation-duration: 0s !important;
		scroll-behavior: auto !important;
		transition-delay: 0s !important;
		transition-duration: 0s !important;
	}
}

@view-transition {
	navigation: auto;
}

/* #endregion */
/* #region elements */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:focus-visible {
	outline: var(--px03) solid var(--blue500);
	outline-offset: var(--px03);
}

a {
	color: var(--blue500);
	transition: var(--transition);
}

body {
	background: white;
	color: var(--blue900);
	font-family: var(--font-sans);
}

button {
	background: none;
	border: none;
	color: inherit;
	cursor: pointer;
	font: inherit;
}

footer, header, section {
	padding-inline: max(8%, calc((100% - var(--content-width, 1200px)) / 2));
}

h1, h2, h3, h4 {
	font-family: var(--font-serif);
	font-weight: 400;
	line-height: 1.2;
	margin-bottom: var(--px12);
	text-wrap: balance;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-height);
	scrollbar-gutter: stable;

	&:has(.header.nav-open) {
		overflow: hidden;
	}
}

img {
	display: block;
	height: auto;
	max-width: 100%;
}

p {
	font-size: var(--fz18);
	line-height: 1.7;
	margin-bottom: var(--px16);
	text-wrap: pretty;
}

sup {
	display: inline-block;
	font-size: var(--fz12);
	translate: var(--px02) -4px;
}

/* #endregion */
/* #region global */
.btn {
	--btn-bg: var(--green600);
	--btn-bg-hover: var(--green500);
	--btn-border-color: var(--green600);
	--btn-color: white;
	background: var(--btn-bg);
	border: var(--px02) solid var(--btn-border-color);
	border-radius: var(--radius);
	color: var(--btn-color);
	cursor: pointer;
	display: inline-block;
	font-family: var(--font-sans);
	font-size: var(--fz16);
	font-weight: 600;
	line-height: 1.2;
	padding: var(--px12) var(--px28);
	text-align: center;
	text-decoration: none;
	transition: var(--transition);

	&:hover {
		background: var(--btn-bg-hover);
		border-color: var(--btn-border-color-hover, var(--btn-bg-hover));
		color: var(--btn-color-hover, var(--btn-color));
	}

	&.btn-light {
		--btn-bg: white;
		--btn-bg-hover: var(--green100);
		--btn-border-color: white;
		--btn-color: var(--blue700);
	}

	&.btn-outline {
		--btn-bg: transparent;
		--btn-bg-hover: var(--blue700);
		--btn-border-color: var(--blue700);
		--btn-color: var(--blue700);
		--btn-color-hover: white;
	}

	&.btn-outline-light {
		--btn-bg: transparent;
		--btn-bg-hover: white;
		--btn-border-color: hsl(from white h s l / .7);
		--btn-border-color-hover: white;
		--btn-color: white;
		--btn-color-hover: var(--blue700);
	}
}

.cta {
	--glow-a: hsl(from var(--blue300) h s l / .4);
	--glow-b: hsl(from var(--blue400) h s l / .4);
	background-color: var(--blue700);
	background-image:
		radial-gradient(ellipse 60% 100% at 100% 130%, var(--glow-a), transparent),
		radial-gradient(ellipse 70% 90% at 0% -30%, var(--glow-b), transparent);
	padding-block: var(--px96);
	text-align: center;

	h2 {
		color: white;
		font-size: var(--fz48);
		margin: 0 auto var(--px04);
		max-width: 20ch;
		text-wrap: initial;
	}

	p {
		color: var(--blue200);
		margin: 0 auto var(--px32);
		max-width: 35ch;
	}

	.btn {
		--btn-bg: var(--green600);
		--btn-bg-hover: var(--green500);
		--btn-border-color: var(--green600);
		--btn-color: white;
	}
}

.fade-in {
	@media (scripting: enabled) {

		&:not(section),
		&:is(section) > * {
			opacity: 0;
			transition: var(--transition-lg);
			translate: 0 var(--px20);
		}

		&.visible:not(section),
		&.visible:is(section) > * {
			opacity: 1;
			translate: 0 0;
		}
	}
}

.link {
	color: var(--green600);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--green400);
	text-decoration-thickness: var(--px02);
	text-underline-offset: var(--px04);
	transition: var(--transition);

	&:hover {
		color: var(--green700);
		text-decoration-color: var(--green500);
	}

	&.link-light {
		color: var(--green300);
		text-decoration-color: var(--green200);

		&:hover {
			color: var(--green100);
		}
	}
}

.skip {
	background-color: var(--blue700);
	color: white;
	left: var(--px16);
	padding: var(--px08) var(--px16);
	position: absolute;
	text-decoration: none;
	top: -100%;
	z-index: 30;

	&:focus {
		top: var(--px16);
	}
}

.stagger > * {
	@media (scripting: enabled) {
		opacity: 0;
		translate: 0 var(--px16);

		&.visible {
			opacity: 1;
			translate: 0 0;
		}
	}
}

/* #endregion */
/* #region header */
.header {
	background: white;
	border-bottom: var(--px01) solid var(--blue100);
	height: var(--header-height);
	position: fixed;
	transition: var(--transition);
	width: 100%;
	z-index: 20;

	&.scrolled {
		box-shadow: 0 var(--px02) var(--px16) hsl(from black h s l / .1);
	}
}

.logo {
	display: block;
	line-height: 0;

	img {
		width: 200px;
	}
}

.nav {
	align-items: center;
	display: flex;
	gap: var(--px32);

	@media (width < 1000px) {
		align-items: stretch;
		background: white;
		border-bottom: var(--px01) solid var(--blue100);
		box-shadow: 0 var(--px16) var(--px24) hsl(from black h s l / .1);
		flex-direction: column;
		gap: 0;
		left: 0;
		opacity: 0;
		padding: var(--px16) max(8%, var(--px24)) var(--px32);
		position: absolute;
		right: 0;
		top: 100%;
		translate: 0 -8px;
		visibility: hidden;
	}

	a:not(.btn) {
		font-weight: 500;
		padding-block: var(--px04);
		position: relative;
		text-decoration: none;
		transition: var(--transition);

		@media (width < 1000px) {
			font-size: var(--fz20);
			padding-block: var(--px12);
		}

		&::after {
			background: var(--green600);
			bottom: 0;
			content: "";
			height: var(--px02);
			left: 0;
			position: absolute;
			scale: 0 1;
			transition: var(--transition);
			width: 100%;
		}

		&:hover, &[aria-current="page"] {
			color: var(--green600);
		}

		&:hover::after, &[aria-current="page"]::after {
			scale: 1;
		}
	}

	.btn {
		@media (width < 1000px) {
			margin-top: var(--px16);
		}
	}

	.nav-client {
		color: var(--blue-muted);
		font-size: var(--fz14);

		@media (width < 1000px) {
			font-size: var(--fz20);
		}
	}
}

.nav-flex {
	align-items: center;
	display: flex;
	gap: var(--px32);
	height: 100%;
	justify-content: space-between;
}

.nav-open {
	.nav {
		opacity: 1;
		translate: 0 0;
		visibility: visible;
	}
}

.nav-toggle {
	display: none;
	height: var(--px48);
	position: relative;
	width: var(--px48);

	@media (width < 1000px) {
		display: block;
	}

	.bars {
		background: var(--blue700);
		height: var(--px02);
		left: 50%;
		position: absolute;
		top: 50%;
		transition: var(--transition);
		translate: -50% -50%;
		width: var(--px24);

		&::before, &::after {
			background: var(--blue700);
			content: "";
			height: var(--px02);
			left: 0;
			position: absolute;
			transition: var(--transition);
			width: 100%;
		}

		&::before {
			top: -8px;
		}

		&::after {
			top: var(--px08);
		}
	}

	.nav-open & {
		.bars {
			background: transparent;

			&::before {
				rotate: 45deg;
				top: 0;
			}

			&::after {
				rotate: -45deg;
				top: 0;
			}
		}
	}
}

/* #endregion */
/* #region footer */
.footer {
	background: var(--blue950);
	color: hsl(from white h s l / .7);
	padding-block: var(--px64) var(--px32);

	a {
		color: var(--blue400);
		text-decoration: none;
		transition: var(--transition);

		&:hover {
			color: white;
		}
	}

	ul {
		list-style: none;
	}
}

.footer-bottom {
	align-items: baseline;
	border-top: var(--px01) solid hsl(from white h s l / .1);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--fz14);
	gap: var(--px12) var(--px32);
	justify-content: space-between;
	margin-top: var(--px48);
	padding-top: var(--px24);

	.copyright {
		font-size: inherit;
		margin: 0;
	}

	.legal-links {
		display: flex;
		flex-wrap: wrap;
		gap: var(--px08) var(--px24);
	}
}

.footer-main {
	display: flex;
	flex-wrap: wrap;
	gap: var(--px48) var(--px96);
	justify-content: space-between;

	.address {
		font-size: var(--fz16);
		margin-top: var(--px20);
	}

	.logo img {
		filter: brightness(0) invert(1);
	}

	.site-links {
		align-content: start;
		display: grid;
		gap: var(--px12) var(--px64);
		grid-template-columns: repeat(2, auto);
	}
}

/* #endregion */
/* #region hero */
.hero {
	--hero-scrim: linear-gradient(to left, hsl(from var(--blue900) h s l / .92) 0%, hsl(from var(--blue900) h s l / .7) 50%, hsl(from var(--blue900) h s l / .3) 100%);
	align-items: center;
	display: flex;
	isolation: isolate;
	min-height: 80vh;
	overflow: hidden;
	padding-top: var(--header-height);
	position: relative;

	@media (width < 900px) {
		--hero-scrim: none;
		align-items: stretch;
		flex-direction: column;
		min-height: 0;
		padding-inline: 0;
	}

	.actions {
		display: flex;
		flex-wrap: wrap;
		gap: var(--px16);
	}

	.bg {
		inset: 0;
		position: absolute;
		z-index: 0;

		@media (width < 900px) {
			flex: none;
			height: 55svh;
			position: relative;
		}

		&::after {
			background: var(--hero-scrim);
			content: "";
			inset: 0;
			position: absolute;
		}
	}

	.image {
		height: 100%;
		object-fit: cover;
		object-position: 30% 40%;
		width: 100%;

		@media (width < 900px) {
			object-position: 25% center;
		}
	}

	.pause {
		align-items: center;
		background: hsl(from white h s l / .8);
		border: var(--px01) solid var(--blue200);
		border-radius: 50%;
		color: var(--blue700);
		display: flex;
		height: var(--px40);
		justify-content: center;
		position: absolute;
		right: var(--px24);
		top: calc(var(--header-height) + var(--px16));
		transition: var(--transition);
		width: var(--px40);
		z-index: 20;

		&:hover {
			background: white;
		}

		&[hidden] {
			display: none;
		}

		&[aria-pressed="true"] {
			.icon-pause {
				display: none;
			}

			.icon-play {
				display: block;
			}
		}

		.icon-play {
			display: none;
		}
	}

	.text {
		margin-left: auto;
		max-width: 38rem;
		padding-block: var(--px64);
		position: relative;
		width: 100%;
		z-index: 10;

		@media (width < 900px) {
			margin-inline: 8%;
			padding: var(--px32) 0 var(--px48);
			width: auto;
		}

		h1 {
			color: white;
			font-size: var(--fz60);
			line-height: 1.1;
			margin-bottom: var(--px20);

			@media (width < 900px) {
				color: var(--blue700);
			}
		}

		p {
			color: hsl(from white h s l / .9);
			font-size: var(--fz20);
			margin-bottom: var(--px32);
			max-width: 34rem;

			@media (width < 900px) {
				color: var(--blue900);
			}
		}
	}

	.video {
		height: 100%;
		object-fit: cover;
		object-position: 30% 40%;
		width: 100%;

		@media (width < 900px) {
			object-position: 25% center;
		}
	}
}

/* #endregion */
/* #region home */
.home {
	padding-block: var(--px64) var(--px80);

	@media (width < 700px) {
		padding-block: var(--px64);
	}
}

/* #endregion */
/* #region home__intro */
.home__intro {
	.grid {
		align-items: start;
		display: grid;
		gap: var(--px48) var(--px96);
		grid-template-columns: 1.1fr 1fr;

		@media (width < 900px) {
			grid-template-columns: 1fr;
		}
	}

	.questions {
		li {
			border-bottom: var(--px01) solid var(--blue100);
			color: var(--blue700);
			font-family: var(--font-serif);
			font-size: var(--fz20);
			line-height: 1.35;
			padding-block: var(--px16);

			&:first-child {
				padding-top: 0;
			}

			&:last-child {
				border-bottom: none;
				padding-bottom: 0;
			}
		}

		ul {
			border-left: var(--px03) solid var(--blue500);
			list-style: none;
			padding-left: var(--px32);
		}

		.label {
			color: var(--blue-muted);
			font-size: var(--fz16);
			font-weight: 600;
			margin-bottom: var(--px24);
		}
	}

	.text {
		h2 {
			font-size: var(--fz48);
			max-width: 16ch;
		}

		p {
			color: var(--blue-muted);
			max-width: 52ch;
		}
	}
}

/* #endregion */
/* #region home__help */
.home__help {
	background: var(--blue050);

	h2 {
		font-size: var(--fz48);
		max-width: 18ch;
	}

	.moments {
		border-top: var(--px01) solid var(--blue200);
		display: grid;
		gap: var(--px32) var(--px40);
		grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr));
		list-style: none;
		margin-top: var(--px32);
		padding-top: var(--px40);

		h4 {
			font-family: var(--font-sans);
			font-size: var(--fz18);
			font-weight: 600;
			margin-bottom: var(--px08);
		}

		p {
			color: var(--blue-muted);
			font-size: var(--fz16);
			line-height: 1.6;
			margin: 0;
		}
	}

	.panel {
		display: flex;
		flex-direction: column;

		h3 {
			font-size: var(--fz32);
			margin-bottom: var(--px12);
		}

		img {
			aspect-ratio: 3 / 2;
			background: var(--blue200);
			border-radius: var(--radius);
			object-fit: cover;
			width: 100%;
		}

		p {
			color: var(--blue-muted);
			margin-bottom: var(--px16);
		}

		.body {
			padding-top: var(--px24);
		}
	}

	.panels {
		display: grid;
		gap: var(--px40);
		grid-template-columns: repeat(2, 1fr);
		margin-top: var(--px40);

		@media (width < 800px) {
			grid-template-columns: 1fr;
		}
	}

	.subhead {
		font-size: var(--fz24);
		margin-top: var(--px64);
	}
}

/* #endregion */
/* #region home__promise */
.home__promise {
	background: var(--blue800);

	.grid {
		align-items: start;
		display: grid;
		gap: var(--px48) var(--px96);
		grid-template-columns: 1fr 1.5fr;

		@media (width < 1000px) {
			grid-template-columns: 1fr;
		}
	}

	.list {
		display: grid;
		gap: var(--px40);
		grid-template-columns: repeat(2, 1fr);
		list-style: none;

		@media (width < 600px) {
			grid-template-columns: 1fr;
		}

		li {
			border-top: var(--px02) solid var(--blue400);
			padding-top: var(--px20);

			h3 {
				color: white;
				font-size: var(--fz24);
			}

			p {
				color: hsl(from white h s l / .7);
				font-size: var(--fz16);
				line-height: 1.6;
				margin: 0;
			}
		}
	}

	.text {
		h2 {
			color: white;
			font-size: var(--fz48);
			max-width: 12ch;
		}

		p {
			color: hsl(from white h s l / .7);
			margin-bottom: var(--px32);
			max-width: 40ch;
		}
	}
}

/* #endregion */
/* #region home__services */
.home__services {
	.col {
		border-top: var(--px03) solid var(--blue700);
		padding-top: var(--px24);

		h3 {
			font-size: var(--fz32);
		}

		p {
			color: var(--blue-muted);
			max-width: 46ch;
		}
	}

	.cols {
		display: grid;
		gap: var(--px48) var(--px64);
		grid-template-columns: repeat(2, 1fr);
		margin-top: var(--px40);

		@media (width < 800px) {
			grid-template-columns: 1fr;
		}
	}

	.intro {
		h2 {
			font-size: var(--fz48);
			max-width: 18ch;
		}
	}
}

/* #endregion */
/* #region home__start */
.home__start {
	background: var(--blue050);

	h2 {
		font-size: var(--fz48);
		max-width: 16ch;
	}

	.steps {
		counter-reset: step;
		display: grid;
		gap: var(--px32);
		grid-template-columns: repeat(4, 1fr);
		list-style: none;
		margin-block: var(--px48);

		@media (width < 1000px) {
			gap: var(--px40);
			grid-template-columns: 1fr;
		}

		li {
			--line-thickness: var(--px02);
			--step-size: var(--px48);
			counter-increment: step;
			padding-top: var(--px64);
			position: relative;

			@media (width < 1000px) {
				min-height: var(--step-size);
				padding: 0 0 0 var(--px64);
			}

			&::before {
				align-items: center;
				background: var(--blue700);
				border-radius: 50%;
				color: white;
				content: counter(step);
				display: flex;
				font-family: var(--font-serif);
				font-size: var(--fz20);
				height: var(--step-size);
				justify-content: center;
				left: 0;
				position: absolute;
				top: 0;
				width: var(--step-size);
				z-index: 10;
			}

			&::after {
				background: var(--blue400);
				content: "";
				height: var(--line-thickness);
				left: var(--step-size);
				position: absolute;
				right: -2rem;
				top: calc(var(--step-size) / 2 - var(--line-thickness) / 2);

				@media (width < 1000px) {
					bottom: -2.5rem;
					height: auto;
					left: calc(var(--step-size) / 2 - var(--line-thickness) / 2);
					right: auto;
					top: var(--step-size);
					width: var(--line-thickness);
				}
			}

			&:last-child::after {
				display: none;
			}

			h3 {
				font-size: var(--fz24);
			}

			p {
				color: var(--blue-muted);
				font-size: var(--fz16);
				line-height: 1.6;
				margin: 0;
			}
		}
	}
}

/* #endregion */
/* #region home__team */
.home__team {
	.grid {
		align-items: center;
		display: grid;
		gap: var(--px48) var(--px80);
		grid-template-columns: 1fr 1.4fr;

		@media (width < 1000px) {
			grid-template-columns: 1fr;
		}
	}

	.people {
		display: grid;
		gap: var(--px32);
		grid-template-columns: repeat(2, 1fr);

		@media (width < 600px) {
			grid-template-columns: 1fr;
		}

		blockquote {
			color: var(--blue700);
			font-family: var(--font-serif);
			font-size: var(--fz20);
			line-height: 1.45;
			margin-top: var(--px16);
			text-wrap: pretty;
		}

		figcaption {
			margin-top: var(--px16);

			.name {
				color: var(--blue900);
				font-size: var(--fz18);
				font-weight: 600;
				margin: 0;
			}

			.role {
				color: var(--blue-muted);
				font-size: var(--fz14);
				margin: 0;
			}
		}

		img {
			aspect-ratio: 4 / 5;
			background: var(--blue100);
			border-radius: var(--radius);
			object-fit: cover;
			object-position: top;
			width: 100%;
		}
	}

	.text {
		h2 {
			font-size: var(--fz48);
			max-width: 14ch;
		}

		p {
			color: var(--blue-muted);
			max-width: 44ch;
		}
	}
}

/* #endregion */
/* #region sub */
.sub {
	padding-block: var(--px96);

	@media (width < 700px) {
		padding-block: var(--px64);
	}
}

.subhero {
	background:
		linear-gradient(to right, hsl(from var(--blue900) h s l / .9) 0%, hsl(from var(--blue900) h s l / .7) 50%, hsl(from var(--blue900) h s l / .3) 100%),
		var(--subhero-bg) center/cover no-repeat,
		var(--blue800);
	padding-block: calc(var(--header-height) + var(--px96)) var(--px96);

	@media (width < 900px) {
		background:
			linear-gradient(hsl(from var(--blue900) h s l / .75), hsl(from var(--blue900) h s l / .75)),
			var(--subhero-bg) center/cover no-repeat,
			var(--blue800);
		padding-block: calc(var(--header-height) + var(--px64)) var(--px64);
	}

	h1 {
		color: white;
		font-size: var(--fz60);
		line-height: 1.1;
		margin-bottom: var(--px20);
		max-width: 20ch;
		text-wrap: initial;
	}

	p {
		color: hsl(from white h s l / .9);
		font-size: var(--fz20);
		max-width: 46ch;
	}

	.eyebrow {
		color: hsl(from white h s l / .7);
		font-size: var(--fz14);
		font-weight: 600;
		letter-spacing: var(--px02);
		margin-bottom: var(--px24);
		text-transform: uppercase;
	}
}

.subhero-about {
	--subhero-bg: url("https://ripcord.sirv.com/DWA/shutterstock_2509507133.jpg?cy=200");
}

.subhero-services {
	--subhero-bg: url("https://ripcord.sirv.com/DWA/family-field.jpg");
}

.subhero-who {
	--subhero-bg: url("https://ripcord.sirv.com/DWA/iStock-657111638.jpg");
}

/* #endregion */
/* #region sub-about */
.sub-about-promise {
	.grid {
		align-items: start;
		display: grid;
		gap: var(--px48) var(--px96);
		grid-template-columns: 1fr 1.6fr;

		@media (width < 1000px) {
			grid-template-columns: 1fr;
		}
	}

	.list {
		counter-reset: promise;
		list-style: none;

		li {
			border-top: var(--px02) solid var(--blue200);
			column-gap: var(--px32);
			counter-increment: promise;
			display: grid;
			grid-template-columns: var(--px64) 1fr;
			padding-block: var(--px32);

			@media (width < 600px) {
				grid-template-columns: 1fr;
				row-gap: var(--px08);
			}

			&::before {
				color: var(--green600);
				content: counter(promise, decimal-leading-zero);
				font-family: var(--font-serif);
				font-size: var(--fz32);
				grid-row: 1 / 3;
				line-height: 1.2;

				@media (width < 600px) {
					grid-row: auto;
				}
			}

			&:last-child {
				border-bottom: var(--px02) solid var(--blue200);
			}

			h3 {
				font-size: var(--fz32);
				grid-column: 2;
				line-height: 1.2;
				margin-bottom: var(--px12);
				max-width: 24ch;

				@media (width < 600px) {
					grid-column: 1;
				}
			}

			p {
				color: var(--blue-muted);
				grid-column: 2;
				margin: 0;
				max-width: 56ch;

				@media (width < 600px) {
					grid-column: 1;
				}
			}
		}
	}

	.text {
		h2 {
			font-size: var(--fz48);
			max-width: 12ch;
		}

		p {
			color: var(--blue-muted);
			max-width: 40ch;
		}
	}
}

.sub-about-team {
	background: var(--blue050);

	.grid {
		display: grid;
		gap: var(--px40) var(--px32);
		grid-template-columns: repeat(auto-fill, minmax(min(max(13rem, (100% - 2 * var(--px32)) / 3), 100%), 1fr));
		list-style: none;
		margin-bottom: var(--px40);
		max-width: calc(3 * 280px + 2 * var(--px32));

		a {
			color: inherit;
			display: block;
			text-decoration: none;

			&:hover img,
			&:focus-visible img {
				background: var(--blue200);
				box-shadow: 0 var(--px12) var(--px24) hsl(from black h s l / .1);
				translate: 0 calc(var(--px08) * -1);
			}

			&:hover .name,
			&:focus-visible .name {
				color: var(--green600);
			}
		}

		img {
			aspect-ratio: 4 / 5;
			background: var(--blue100);
			border-radius: var(--radius);
			object-fit: cover;
			object-position: top;
			transition: var(--transition);
			width: 100%;
		}

		li {
			max-width: 280px;
		}

		.name {
			color: var(--blue900);
			font-size: var(--fz18);
			font-weight: 600;
			line-height: 1.3;
			margin: var(--px16) 0 0;
			transition: var(--transition);
		}

		.role {
			color: var(--blue-muted);
			font-size: var(--fz16);
			line-height: 1.4;
			margin: var(--px04) 0 0;
		}
	}

	.intro {
		margin-bottom: var(--px48);

		h2 {
			font-size: var(--fz48);
			max-width: 20ch;
		}

		p {
			color: var(--blue-muted);
			margin: 0;
			max-width: 54ch;
		}
	}
}

/* #endregion */
/* #region sub-bio */
.sub-bio {
	padding-top: calc(var(--header-height) + var(--px48));

	@media (width < 700px) {
		padding-top: calc(var(--header-height) + var(--px32));
	}

	.back {
		color: var(--green600);
		display: inline-block;
		font-size: var(--fz16);
		font-weight: 600;
		margin-bottom: var(--px40);
		text-decoration: none;

		&:hover,
		&:focus-visible {
			color: var(--green700);
		}
	}

	.grid {
		align-items: start;
		display: grid;
		gap: var(--px48) var(--px64);
		grid-template-columns: 350px minmax(0, 1fr);

		@media (width < 900px) {
			grid-template-columns: 1fr;
		}
	}

	.photo {
		aspect-ratio: 4 / 5;
		background: var(--blue100);
		border-radius: var(--radius);
		max-width: 350px;
		object-fit: cover;
		object-position: top;
		position: sticky;
		top: calc(var(--header-height) + var(--px32));
		width: 100%;

		@media (width < 900px) {
			position: static;
		}
	}

	.text {
		h1 {
			font-size: var(--fz48);
			margin-bottom: var(--px08);

			sup {
				font-size: .5em;
				translate: var(--px02) -.2em;
			}
		}

		p:not(.role) {
			max-width: 65ch;
		}

		.disclosure {
			color: var(--blue-muted);
			font-size: var(--fz14);
			margin-top: var(--px32);
		}

		.role {
			color: var(--blue-muted);
			font-size: var(--fz20);
			font-weight: 600;
			margin-bottom: var(--px32);
		}
	}
}

/* #endregion */
/* #region sub-services */
.sub-services-covers {
	background: var(--blue050);

	h2 {
		font-size: var(--fz48);
		max-width: 20ch;
	}

	.group {
		background: white;
		border-top: var(--px03) solid var(--group-color);
		padding: var(--px24);

		h3 {
			font-size: var(--fz32);
			margin-bottom: var(--px04);
		}

		li {
			border-bottom: var(--px01) solid var(--blue100);
			font-size: var(--fz18);
			padding-block: var(--px12);

			&:last-child {
				border-bottom: none;
			}
		}

		p {
			color: var(--blue-muted);
			font-size: var(--fz16);
			margin-bottom: var(--px20);
		}

		ul {
			list-style: none;
		}

		&.group-advisors {
			--group-color: var(--blue800);
		}

		&.group-business {
			--group-color: var(--blue500);
		}

		&.group-family {
			--group-color: var(--blue300);
		}
	}

	.groups {
		align-items: start;
		display: grid;
		gap: var(--px24);
		grid-template-columns: repeat(3, 1fr);
		margin-top: var(--px40);

		@media (width < 900px) {
			grid-template-columns: 1fr;
		}
	}

	.lead {
		color: var(--blue-muted);
		max-width: 56ch;
	}
}

.sub-services-intro {
	h2 {
		font-size: var(--fz48);
		max-width: 16ch;
	}

	p {
		color: var(--blue-muted);
		max-width: 54ch;
	}

	.grid {
		align-items: start;
		display: grid;
		gap: var(--px32) var(--px96);
		grid-template-columns: 1.1fr 1fr;

		@media (width < 900px) {
			grid-template-columns: 1fr;
		}
	}
}

.sub-services-offer {
	padding-top: 0;

	.col {
		border-top: var(--px03) solid var(--blue700);
		padding-top: var(--px24);

		h3 {
			font-size: var(--fz32);
		}

		p {
			color: var(--blue-muted);
			max-width: 46ch;
		}
	}

	.cols {
		display: grid;
		gap: var(--px48) var(--px64);
		grid-template-columns: repeat(2, 1fr);

		@media (width < 800px) {
			grid-template-columns: 1fr;
		}
	}
}

.sub-services-trail {
	background: var(--blue050);

	.grid {
		align-items: start;
		display: grid;
		gap: var(--px48) var(--px96);
		grid-template-columns: 1fr 1.5fr;

		@media (width < 1000px) {
			grid-template-columns: 1fr;
		}
	}

	.steps {
		counter-reset: trail;
		list-style: none;

		li {
			--line-thickness: var(--px02);
			--step-size: var(--px48);
			counter-increment: trail;
			padding: 0 0 var(--px40) var(--px80);
			position: relative;

			&::before {
				align-items: center;
				background: var(--blue700);
				border-radius: 50%;
				color: white;
				content: counter(trail);
				display: flex;
				font-family: var(--font-serif);
				font-size: var(--fz24);
				height: var(--step-size);
				justify-content: center;
				left: 0;
				position: absolute;
				top: 0;
				width: var(--step-size);
				z-index: 10;
			}

			&::after {
				background: var(--blue400);
				bottom: 0;
				content: "";
				left: calc(var(--step-size) / 2 - var(--line-thickness) / 2);
				position: absolute;
				top: var(--step-size);
				width: var(--line-thickness);
			}

			&:last-child {
				padding-bottom: 0;
			}

			&:last-child::after {
				display: none;
			}

			h3 {
				font-size: var(--fz32);
				margin-bottom: var(--px04);
				padding-top: var(--px08);
			}

			p {
				color: var(--blue-muted);
				font-size: var(--fz18);
				margin: 0;
				max-width: 50ch;
			}
		}
	}

	.text {
		position: sticky;
		top: calc(var(--header-height) + var(--px32));

		@media (width < 1000px) {
			position: static;
		}

		h2 {
			font-size: var(--fz48);
			max-width: 14ch;
		}

		p {
			color: var(--blue-muted);
			max-width: 40ch;
		}
	}
}

/* #endregion */
/* #region sub-who */
.sub-who {
	h2 {
		font-size: var(--fz48);
	}

	p {
		color: var(--blue-muted);
	}

	.eyebrow {
		color: var(--blue500);
		font-size: var(--fz14);
		font-weight: 600;
		letter-spacing: var(--px01);
		margin-bottom: var(--px24);
		text-transform: uppercase;
	}
}

.sub-who-owners {
	background: var(--blue050);
}

.sub-who-owners,
.sub-who-retirement {
	.grid {
		align-items: start;
		display: grid;
		gap: var(--px48) var(--px96);
		grid-template-columns: 1.1fr 1fr;

		@media (width < 900px) {
			grid-template-columns: 1fr;
		}
	}

	.label {
		color: var(--blue-muted);
		font-size: var(--fz16);
		font-weight: 600;
		margin-bottom: var(--px24);
	}

	.questions {
		border-left: var(--px03) solid var(--blue500);
		list-style: none;
		padding-left: var(--px32);

		li {
			border-bottom: var(--px01) solid var(--blue100);
			color: var(--blue700);
			font-family: var(--font-serif);
			font-size: var(--fz20);
			line-height: 1.35;
			padding-block: var(--px16);
			text-wrap: pretty;

			&:first-child {
				padding-top: 0;
			}

			&:last-child {
				border-bottom: none;
				padding-bottom: 0;
			}
		}
	}

	.text {
		h2 {
			max-width: 18ch;
		}

		p {
			max-width: 52ch;
		}

		.btn {
			margin-top: var(--px08);
		}
	}
}

.sub-who-transitions {
	h2 {
		max-width: 20ch;
	}

	p {
		max-width: 54ch;
	}

	.link {
		display: inline-block;
		margin-top: var(--px08);
	}

	.moments {
		border-top: var(--px01) solid var(--blue200);
		display: grid;
		gap: var(--px32) var(--px40);
		grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr));
		list-style: none;
		margin-block: var(--px40);
		padding-top: var(--px40);

		h3 {
			font-family: var(--font-sans);
			font-size: var(--fz18);
			font-weight: 600;
			margin-bottom: var(--px08);
		}

		p {
			color: var(--blue-muted);
			font-size: var(--fz16);
			line-height: 1.6;
			margin: 0;
			max-width: none;
		}
	}
}

/* #endregion */
/* TODO */
.todo {
	color: red;
	font-weight: 700;
}

/* NOTE: NOINDEX is active! */