/* #region @keyframes */
@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes slideUp {
	from {
		translate: 0 var(--hero-headline-translateY);
	}

	to {
		translate: 0;
	}
}

/* #endregion */
/* #region @prefers-reduced-motion */
@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;
	}

	/* For hero background video */
	video[autoplay] {
		display: none !important;
	}

	.hero {
		background: linear-gradient(to bottom, var(--blue900-70), transparent), url("https://ripcord.sirv.com/Ripcord/poster-womanworking.jpg") center/cover no-repeat !important;
	}
}

/* #endregion */
/* #region Elements */
@view-transition {
	navigation: auto;
}

*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

a {
	color: var(--aqua600);
	text-decoration: none;
	text-decoration-color: transparent;
	text-decoration-thickness: var(--px02);
	text-underline-offset: .12em;
	transition: var(--transition);
}

body {
	background-color: var(--blue950);
	color: var(--blue700);
	font-family: var(--font-sans);
}

button {
	background: none;
	border: none;
	color: var(--blue700);
	cursor: pointer;
}

h1, h2, h3 {
	line-height: 1.2;
	text-wrap: balance;
}

hr {
	border: 0;
	border-top: var(--px01) solid var(--steel300);
	margin-block: var(--px40);
}

html {
	scroll-behavior: smooth;
	scrollbar-gutter: stable;

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

iframe {
	margin-top: var(--px32);
}

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

li {
	text-wrap: pretty;
}

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

/* #endregion */
/* #region Global */
.btn {
	background-color: var(--aqua600);
	border-radius: var(--radius);
	color: white !important;
	display: inline-block;
	font-size: var(--fz16);
	font-weight: 700;
	letter-spacing: var(--px02);
	padding: 1.25em 1.75em;
	text-transform: uppercase;
	transition: var(--transition);

	&:hover {
		background-color: var(--aqua500);
		translate: 0 -4px;
	}
}

.content {
	margin-inline: auto;
	width: min(85%, var(--content-max-width, 1200px));
}

.cta {
	background-image: radial-gradient(circle, var(--blue700), var(--blue950));
	color: white;
	padding-block: var(--px96);
	text-align: center;

	h2 {
		font-size: var(--fz40);
		font-weight: 600;
		line-height: 1;
		margin-bottom: .4em;

		@media (width < 900px) {
			font-size: var(--fz28);
		}
	}

	p {
		font-size: var(--fz20);
		margin: 0 auto var(--px16);
		max-width: 30ch;

		@media (width < 900px) {
			font-size: var(--fz18);
		}
	}

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

.pip {
	background-color: var(--steel300);
	height: var(--px04);
	margin-block: var(--px32);
	width: var(--px40);
}

/* #endregion */
/* #region Nav */
.nav {
	align-items: center;
	display: flex;
	gap: var(--px48);

	@media (width < 1200px) {
		--mobile-menu-width: 60vw;
		align-content: start;
		background-color: var(--blue900-90);
		flex-direction: column;
		gap: var(--px48);
		height: 100vh;
		padding-top: var(--px128);
		position: absolute;
		right: 0;
		top: 0;
		transition: var(--transition);
		translate: var(--mobile-menu-width);
		width: var(--mobile-menu-width);

		.nav-open & {
			translate: 0;
		}
	}

	@media (width < 500px) {
		--mobile-menu-width: 100vw;
	}

	a {
		color: var(--blue700);
		font-size: var(--fz16);
		font-weight: 700;
		letter-spacing: var(--px01);
		text-box: trim-both cap alphabetic;
		text-transform: uppercase;

		@media (width < 1200px) {
			border: none;
			color: white;
			font-size: var(--fz18);
		}

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

	.btn {
		font-size: var(--fz14);
		font-weight: 600;

		&:hover {
			translate: none;
		}
	}
}

.nav-toggle {
	display: none;

	@media (width < 1200px) {
		cursor: pointer;
		display: block;
		font-size: var(--fz28);
		padding: var(--px08);

		.nav-open & {
			color: white;
			padding: 0;
			rotate: 270deg;
			transition: .8s;
			z-index: 10;
		}
	}
}

/* #endregion */
/* #region Header */
.header {
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	background-color: var(--white-90);
	box-shadow: 0 var(--px04) var(--px12) var(--px04) var(--blue700-30);
	padding-block: 1.2rem;
	position: fixed;
	width: 100%;
	z-index: 20;
}

.header-flex {
	align-items: center;
	display: flex;
	justify-content: space-between;

	.logo {
		width: 170px;

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

		&:hover {
			scale: 1.05;
		}
	}
}

/* #endregion */
/* #region Footer */
.footer {
	background: var(--blue950);
	color: var(--steel300);
	padding-block: var(--px64);
	text-align: center;

	a {
		color: var(--aqua300);

		&:has(i) {
			display: block;
			font-size: var(--fz28);
			margin: var(--px32) auto;
			width: fit-content;
		}

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

		&[href*="privacy"] {
			display: block;
			font-size: var(--fz12);
			letter-spacing: var(--px02);
			margin-inline: auto;
			text-transform: uppercase;
			width: fit-content;
		}
	}

	p {
		font-size: var(--fz16);
		line-height: 1.4;
	}
}

/* #endregion */
/* #region Hero */
.hero {
	--primary-animation: fadeIn 1s forwards, slideUp 1s forwards;
	--secondary-animation: fadeIn 2s 1s forwards;
	color: white;
	display: grid;
	grid-template-areas: "hero-stack";

	> * {
		/* Positions the video-overlay-content on top of eachother */
		grid-area: hero-stack;
	}

	video {
		height: 100%;
		object-fit: cover;
		width: 100%;
		z-index: -10;
	}

	.content {
		font-size: 10;
		padding-block: 20vh;

		h1 {
			--hero-headline-translateY: 10vh;
			animation: var(--primary-animation);
			font-size: var(--fz72);
			line-height: 1.2;
			margin-bottom: var(--px24);
			max-width: 30ch;
			opacity: 0;
			translate: 0 var(--hero-headline-translateY);

			@media (width < 1300px) {
				font-size: var(--fz48);
			}
		}

		i {
			font-size: var(--fz24);
			padding-right: var(--px16);
			width: 50px;

			@media (width < 500px) {
				translate: 0 var(--px04);
			}
		}

		li {
			align-items: center;
			animation: var(--secondary-animation);
			display: grid;
			grid-template-columns: auto 1fr;
			line-height: 1.2;

			@media (width < 500px) {
				align-items: start;
			}

			+ li {
				margin-top: 1em;
			}
		}

		ul {
			animation: var(--secondary-animation);
			font-size: var(--fz24);
			list-style: none;
			margin-bottom: 4.5rem;
			opacity: 0;
		}

		.btn {
			animation: var(--secondary-animation);
			display: block;
			opacity: 0;
			width: fit-content;
		}

		.eyebrow {
			animation: var(--secondary-animation);
			color: var(--aqua400);
			font-size: var(--fz14);
			font-weight: 500;
			letter-spacing: var(--px03);
			margin-bottom: var(--px32);
			opacity: 0;
			text-transform: uppercase;
		}

		.subheading {
			animation: var(--secondary-animation);
			font-size: var(--fz32);
			font-weight: 500;
			line-height: 1.4;
			margin-bottom: var(--px40);
			opacity: 0;
		}
	}

	.overlay {
		background: linear-gradient(150deg, var(--blue900), var(--blue900-90), var(--blue900-70), var(--blue900-30));
		z-index: 0;
	}
}

/* #endregion */
/* #region Home-Guide */
.home-guide {
	background: var(--blue700);
	color: white;
	padding-block: var(--px96);

	h2 {
		font-size: var(--fz40);
		margin-bottom: var(--px80);
		max-width: 30ch;

		@media (width < 900px) {
			font-size: var(--fz28);
		}
	}
}

.home-guide-grid {
	display: grid;
	gap: var(--px64) 7vw;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 500px), 1fr));

	h3 {
		font-size: var(--fz28);
		margin-bottom: .7rem;

		@media (width < 900px) {
			font-size: var(--fz24);
		}
	}

	i {
		font-size: var(--fz28);
		margin-bottom: var(--px16);
	}

	p {
		color: var(--blue100);
		font-size: var(--fz20);
	}
}

.home-guide-grid-text div + div {
	margin-top: var(--px48);
}

.home-guide-testimonials-grid {
	display: grid;
	gap: var(--px16);
	grid-template-columns: auto 1fr;
	justify-items: start;
	margin-top: var(--px64);

	@media (width < 500px) {
		grid-template-columns: auto;
	}

	&:first-of-type {
		margin-top: 0;
	}

	div {
		position: relative;
	}

	i {
		color: var(--blue500);
		font-size: var(--fz72);
		font-weight: 700;
		opacity: .3;
		position: absolute;
		translate: -1rem -3rem;
	}

	img {
		aspect-ratio: 1;
		background: linear-gradient(to bottom, var(--aqua300), var(--blue500));
		border-radius: 50%;
		width: 100px;

		@media (width < 500px) {
			width: 75px;
		}
	}

	p {
		font-size: var(--fz18);
		line-height: 1.4;
		margin-bottom: var(--px08);
		max-width: 40ch;
		position: relative;
	}
}

/* #endregion */
/* #region Home-Portfolio */
.home-portfolio {
	background: linear-gradient(to bottom right, var(--blue100), white);
	padding-block: var(--px96);
	text-align: center;

	h2 {
		font-size: var(--fz14);
		font-weight: 600;
		letter-spacing: var(--px03);
		margin-bottom: var(--px32);
		text-transform: uppercase;
	}

	p {
		font-size: var(--fz24);
		font-weight: 600;

		@media (width < 900px) {
			font-size: var(--fz18);
		}
	}

	.btn {
		display: block;
		margin: var(--px64) auto 0;
		width: fit-content;
	}

	.tagline {
		font-size: var(--fz40);
		font-weight: 700;
		line-height: 1.1;
		margin-bottom: var(--px24);

		@media (width < 900px) {
			font-size: var(--fz28);
		}
	}
}

.home-portfolio-grid {
	--col-min-width: 300px;
	display: grid;
	gap: var(--px24);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--col-min-width)), auto));
	justify-content: center;
	justify-items: center;
	margin: var(--px80) auto 0;

	a {
		border-radius: var(--radius);
		display: block;
		overflow: hidden;
	}

	h3 {
		font-size: var(--fz16);
		font-weight: 600;
		margin-bottom: .6em;
	}

	img {
		border-radius: var(--radius);
		transition: var(--transition);

		&:hover {
			scale: 1.1;
		}
	}
}

/* #endregion */
/* #region Home-Process */
.home-process {
	background: linear-gradient(to right, var(--white-70), var(--white-90)), url("https://ripcord.sirv.com/Ripcord/wave.svg") center/cover white;
	padding-block: var(--px64) var(--px96);

	h2 {
		font-size: var(--fz40);
		margin-bottom: var(--px16);

		@media (width < 900px) {
			font-size: var(--fz28);
		}
	}

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

.home-process-grid {
	display: grid;
	gap: var(--px32) 4vw;
	grid-template-columns: repeat(3, 1fr);
	margin-top: var(--px64);

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

	h3 {
		font-size: var(--fz24);
		font-weight: 700;
		letter-spacing: var(--px01);
		margin-bottom: var(--px16);
		text-transform: uppercase;
	}

	i {
		font-size: var(--fz48);
		font-weight: 500;
		margin-bottom: var(--px16);
	}

	p {
		font-size: var(--fz18);
		text-align: left;
		text-wrap: balance;
	}
}

/* #endregion */
/* #region Home-Services */
.home-services {
	background: linear-gradient(150deg, var(--aqua100), white 20%, white 80%, var(--aqua100));
	padding-block: var(--px96) var(--px128);
	text-align: center;

	h2 {
		font-size: var(--fz14);
		font-weight: 600;
		letter-spacing: var(--px03);
		margin-bottom: var(--px32);
		text-transform: uppercase;
	}

	p {
		font-size: var(--fz24);
		font-weight: 600;
	}

	.tagline {
		font-size: var(--fz40);
		font-weight: 700;
		line-height: 1.1;
		margin-bottom: var(--px16);
	}
}

.home-services-grid {
	display: grid;
	gap: var(--px48) var(--px16);
	grid-template-columns: repeat(4, 1fr);
	margin-block: var(--px64) var(--px80);

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

	@media (width < 700px) {
		grid-template-columns: auto;
	}

	a {
		background: linear-gradient(transparent, var(--blue100));
		border-radius: var(--radius);
		padding: var(--px32);
		position: relative;
		transition: var(--transition);

		&::before {
			background: linear-gradient(transparent 0%, transparent 50%, var(--theme-light));
			border-radius: var(--radius);
			content: "";
			inset: 0;
			opacity: 0;
			position: absolute;
			transition: var(--transition);
		}

		&:hover {
			box-shadow: var(--px02) var(--px08) var(--px16) var(--blue200);
			translate: 0 -6px;

			&::before {
				opacity: 1;
			}

			h3 {
				color: var(--theme-dark);
			}

			i {
				background-color: var(--theme-dark);
				color: white;
				scale: 1.1;
				translate: 0 -6px;
			}
		}

		h3 {
			color: var(--blue700);
			font-size: var(--fz24);
			margin-bottom: var(--px16);
			position: relative;
			transition: var(--transition);
		}

		i {
			aspect-ratio: 1;
			background-color: var(--theme-light);
			border-radius: 50%;
			color: var(--theme-dark);
			display: grid;
			font-size: var(--fz28);
			margin: 0 auto var(--px24);
			place-items: center;
			position: relative;
			transition: var(--transition);
			width: var(--px96);
		}

		p {
			color: var(--blue700);
			font-size: var(--fz16);
			font-weight: 400;
			margin-bottom: 0;
			position: relative;
			transition: var(--transition);
		}

		&.theme-aqua {
			--theme-dark: var(--theme-aqua-dark);
			--theme-light: var(--theme-aqua-light);
		}

		&.theme-orange {
			--theme-dark: var(--theme-orange-dark);
			--theme-light: var(--theme-orange-light);
		}

		&.theme-purple {
			--theme-dark: var(--theme-purple-dark);
			--theme-light: var(--theme-purple-light);
		}

		&.theme-red {
			--theme-dark: var(--theme-red-dark);
			--theme-light: var(--theme-red-light);
		}
	}
}

/* #endregion */
/* #region Sub */
.sub {
	background-color: white;
	padding-block: var(--px160);

	@media (width < 500px) {
		padding-top: var(--px128);
	}

	h1 {
		font-size: var(--fz32);
		font-weight: 700;
		margin-bottom: .5em;
		text-transform: uppercase;
	}

	h2 {
		font-size: var(--fz24);
		font-weight: 700;
		margin-block: 1.4em .3em;
	}

	h3 {
		font-size: var(--fz28);
		font-weight: 300;
		line-height: 1.4;
	}

	li {
		font-size: var(--fz18);
		line-height: 1.5;
		padding-left: .5em;

		+ li {
			margin: .5em 0 0;
		}
	}

	ul {
		margin: 0 0 2em 1.3em;
	}
}

.sub-tagline {
	font-size: var(--fz24);
	font-weight: 300;
	line-height: 1.4;
}

/* #endregion */
/* #region Sub-About */
.sub-about-grid {
	display: grid;
	gap: var(--px32) var(--px48);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), auto));
	margin-top: var(--px64);

	h3 {
		font-size: var(--fz20);
		font-weight: 700;
		margin-top: 0;
	}

	i {
		font-size: var(--fz32);
		margin-bottom: .4em;
	}
}

/* #endregion */
/* #region Sub-Contact */
.sub-contact-confirm-grid {
	--col-min-width: 300px;
	column-gap: var(--px32);
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(var(--col-min-width), 1fr));
	margin-top: var(--px16);

	h3 {
		font-size: var(--fz24);
		font-weight: 700;
		line-height: 1.2em;
		margin-block: 2em .2em;
	}
}

/* #endregion */
/* #region Sub-Insites */
.sub-insites-grid {
	display: grid;
	gap: var(--px32);
	grid-template-columns: auto auto;
	margin-top: var(--px64);

	@media (width < 700px) {
		grid-template-columns: auto;
	}

	a {
		border-radius: var(--radius);
		color: white;
		display: grid;
		grid-template-rows: 3fr 1fr;
		overflow: hidden;

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

		&:hover > div {
			background-color: var(--aqua500);
		}

		&:hover img {
			scale: 1.1;
		}

		> div {
			background-color: var(--steel700);
			color: var(--white-90);
			line-height: 1.1;
			padding: var(--px16) var(--px32) var(--px24);
			transition: var(--transition);
			z-index: 10;
		}

		h2 {
			font-weight: 600;
			margin-top: 0;

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

		img {
			height: 100%;
			object-fit: cover;
			transition: var(--transition);
			width: 100%;
		}

		.date {
			display: block;
			font-size: var(--fz14);
			margin-top: .5em;
			text-transform: uppercase;
		}
	}
}

/* #endregion */
/* #region Sub-Insites-Article */
.sub-insites-article {
	--content-max-width: 1000px;
	margin-inline: auto;

	a {
		font-weight: 700;

		&:hover {
			text-decoration: underline;
		}
	}

	h1 {
		font-size: var(--fz40);
		line-height: 1.2;
		margin-bottom: var(--px16);
		text-transform: none;
	}

	h2 {
		font-size: var(--fz28);
		margin-block: var(--px32) .3em;
	}

	h3 {
		font-size: var(--fz20);
		font-weight: 700;
		line-height: 1.2em;
		margin-block: 1.2em .2em;
	}

	hr {
		margin-block: var(--px40);
	}

	li {
		font-size: var(--fz18);
	}

	ul {
		margin: var(--px16) 0 0 var(--px24);
	}

	.btn-back {
		background-color: var(--aqua050);
		border-radius: var(--radius);
		color: var(--aqua700);
		display: block;
		font-size: var(--fz14);
		letter-spacing: var(--px01);
		margin-bottom: var(--px24);
		padding: var(--px08) var(--px16);
		text-transform: uppercase;
		transition: var(--transition);
		width: fit-content;

		&:hover {
			background-color: var(--aqua100);
			text-decoration: none;

			.arrow {
				margin-right: .5ch;
				opacity: 1;
			}
		}

		+ img {
			border-radius: var(--radius);
		}

		.arrow {
			margin-right: -1ch;
			opacity: 0;
			transition: var(--transition);
		}
	}

	.callout {
		background-color: var(--aqua050);
		border-radius: var(--radius);
		font-size: var(--fz20);
		margin-bottom: var(--px48);
		padding: var(--px32);
		position: relative;
	}

	.caption {
		font-size: var(--fz24);
		font-weight: 700;
		margin-block: 1.5em .2em;
	}

	.section {
		background: linear-gradient(to right, var(--blue050), transparent);
		border-radius: var(--radius);
		padding: .2rem 2.8rem .8rem;

		img {
			border: var(--px02) solid var(--blue100);
			border-radius: var(--radius);
			margin-block: var(--px24) var(--px48);
		}

		+ .section {
			margin-top: var(--px32);
		}
	}

	.time-grid {
		display: grid;
		font-weight: 500;
		gap: var(--px32);
		grid-template-columns: repeat(3, auto);
		justify-content: start;
		margin-block: var(--px24);

		i {
			font-size: var(--fz20);
			padding-right: var(--px08);
		}
	}
}

/* #endregion */
/* #region Sub-Insites-Article--Best-Boston */
.sub-insites-article--best-boston {
	.company-review {
		margin-top: var(--px80);
	}

	.logo-grid {
		align-items: center;
		display: grid;
		gap: var(--px16) 3vw;
		grid-template-columns: auto auto;
		justify-content: start;
		margin-bottom: var(--px24);

		h2 {
			font-size: var(--fz32);
			margin-top: 0;
		}

		img {
			width: 180px;
		}

		+ p {
			margin-bottom: var(--px32);
			max-width: 90%;
		}

		.bestfor {
			background-color: var(--purple100);
			color: var(--purple700);
			font-size: var(--fz14);
			font-weight: 700;
			letter-spacing: var(--px01);
			margin-bottom: .3rem;
			padding: .3rem .7rem;
			text-transform: uppercase;
			width: fit-content;
		}
	}

	.number {
		align-content: center;
		background-color: var(--purple500);
		color: white;
		display: grid;
		font-size: var(--fz24);
		font-weight: 700;
		height: 3.5rem;
		justify-content: center;
		margin-bottom: var(--px16);
		padding: var(--px16);
		width: 3.5rem;
	}

	.pros-cons-grid {
		--cons-color: crimson;
		--pros-color: var(--aqua500);
		background-color: var(--blue050);
		border-radius: var(--radius);
		display: grid;
		gap: var(--px48);
		grid-template-columns: 1fr 1fr;
		padding: var(--px32);

		h3 {
			margin-block: 0 var(--px24);
		}

		i {
			margin: .2rem .7rem 0 0;
		}

		li {
			display: grid;
			font-size: var(--fz16);
			grid-template-columns: auto 1fr;
			list-style-type: none;
			margin-top: var(--px16);
		}

		ul {
			margin-left: 0;
		}

		.cons {
			i {
				color: var(--cons-color);
			}
		}

		.pros {
			i {
				color: var(--pros-color);
			}
		}
	}

	.what-to-consider span {
		letter-spacing: var(--px01);
		text-transform: uppercase;
	}
}

/* #endregion */
/* #region Sub-Insites-Article--How-Long */
.sub-insites-article--how-long {
	.steps-grid {
		background-color: var(--steel100);
		display: grid;
		font-size: var(--fz16);
		gap: var(--px16) var(--px48);
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
		padding: var(--px16) var(--px32);

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

		p {
			margin-bottom: 0;
		}
	}
}

/* #endregion */
/* #region Sub-Insites-Article--Mistakes */
.sub-insites-article--mistakes {
	h2 {
		font-size: var(--fz28);
		margin-block: 0 1.2rem;
	}

	.mistakes-fix {
		background-color: var(--blue050);
		border-radius: var(--radius);
		margin-block: var(--px32) var(--px96);
		padding: var(--px32);

		h3 {
			font-size: var(--fz14);
			letter-spacing: var(--px02);
			margin-block: 0 var(--px16);
			text-transform: uppercase;
		}

		i {
			font-size: var(--fz20);
			margin-right: .3rem;
		}

		p {
			font-size: var(--fz16);
			font-weight: 500;
			margin-bottom: 0;
		}
	}

	.mistakes-grid {
		display: grid;
		gap: var(--px32) var(--px48);
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), auto));

		p:last-of-type {
			margin-bottom: 0;
		}
	}
}

/* #endregion */
/* #region Sub-Insites-Article--Readability */
.imagecontain {
	border: var(--px01) solid var(--steel500);
	box-shadow: var(--px04) var(--px04) 6px var(--px02) var(--steel300);
	margin-block: var(--px32);
}

.quote {
	background-color: var(--blue100);
	border-radius: var(--radius);
	color: var(--blue700);
	font-size: var(--fz24);
	font-style: italic;
	line-height: 1.4em;
	padding: var(--px32);
}

/* #endregion */
/* #region Sub-Portfolio */
.sub-portfolio-grid {
	--col-min-width: 300px;
	align-items: end;
	display: grid;
	gap: var(--px24);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--col-min-width)), 1fr));
	justify-content: center;
	margin-top: var(--px64);

	a {
		> div {
			border-radius: var(--radius);
			overflow: hidden;
			transition: var(--transition);
		}
	}

	h2 {
		font-size: var(--fz18);
		font-weight: 700;
		margin-block: 0 .4em;
	}

	img {
		aspect-ratio: 4/3;
		object-fit: cover;
		transition: var(--transition);

		&:hover {
			scale: 1.1;
		}
	}
}

/* #endregion */
/* #region Sub-Proposal */
.formbox-proposal {
	margin-inline: auto;
	width: 500px;
}

.sub-proposal {
	--content-max-width: 900px;
	padding-block: var(--px16) var(--px80);

	a {
		text-decoration: underline;
	}

	h2 {
		font-size: var(--fz32);
		font-weight: 700;
		line-height: 1.5em;
		margin-bottom: var(--px16);
	}

	h3 {
		font-size: var(--fz24);
		font-weight: 700;
		margin-bottom: var(--px16);

		span {
			background-color: var(--aqua050);
			border-radius: var(--radius);
			color: var(--aqua500);
			font-size: var(--fz16);
			margin-left: var(--px08);
			padding: .3rem .7rem;

			@media (width < 700px) {
				display: block;
				margin: .3rem 0 0;
				width: fit-content;
			}
		}
	}

	img {
		margin-bottom: var(--px08);
	}

	li {
		line-height: 1.4;
		padding-left: .3rem;

		+ li {
			margin-top: 1.7rem;
		}
	}

	ul {
		margin: 0 0 var(--px48) var(--px24);
	}

	.indent {
		margin-left: var(--px16);
	}
}

.sub-proposal-acceptbar {
	background-color: var(--blue950-90);
	bottom: 0;
	padding: var(--px64);
	position: fixed;
	text-align: center;
	text-wrap: balance;
	width: 100%;
}

.sub-proposal-acceptpage h1 {
	text-align: center;
	text-transform: none;
}

.sub-proposal-disclaimer {
	border-top: var(--px01) solid var(--steel200);
	margin-bottom: var(--px32);
	padding-top: var(--px24);

	p {
		font-size: var(--fz16);
	}
}

.sub-proposal-header {
	background: linear-gradient(to bottom, var(--blue950-50), var(--blue950-50)), url("https://ripcord.sirv.com/Ripcord/wave.png?cy=200") center/cover;
	color: var(--white-90);
	padding: var(--px96) var(--px16) var(--px48);
	text-align: center;

	h1 {
		font-size: var(--fz36);
		line-height: 1.1;
		margin-bottom: .5em;
	}

	img {
		margin: 0 auto var(--px32);
		width: 180px;
	}

	.date {
		font-size: var(--fz16);
		letter-spacing: var(--px01);
		text-transform: uppercase;
	}

	.name {
		font-size: var(--fz24);
		margin-bottom: .5em;
	}
}

.sub-proposal-overview p {
	font-size: var(--fz18);
}

.sub-proposal-totals {
	align-items: center;
	border-top: var(--px02) solid var(--aqua300);
	color: var(--aqua500);
	display: grid;
	font-weight: 700;
	gap: var(--px08) var(--px16);
	grid-template-columns: 1fr auto;
	justify-content: start;
	margin-block: var(--px64) var(--px80);
	padding-top: .8rem;
	width: 80%;

	div {
		font-size: var(--fz14);
		letter-spacing: var(--px01);
		margin: 0;
		text-transform: uppercase;
	}

	span {
		background-color: var(--aqua050);
		border-radius: var(--radius);
		color: var(--aqua500);
		font-size: var(--fz20);
		margin-left: var(--px08);
		padding: var(--px08) var(--px16);
	}
}

/* #endregion */
/* #region Sub-Proposal-SEO */
.sub-proposal-seo {
	margin-bottom: var(--px40);

	.card {
		border: var(--px02) solid var(--steel200);
		border-radius: var(--radius-lg);
		margin-bottom: var(--px32);
		overflow: hidden;

		.card-body {
			background: white;
			padding: var(--px32);

			ul {
				list-style: none;
				margin: 0;
				padding: 0;

				li {
					align-items: start;
					display: grid;
					font-size: var(--fz16);
					gap: .8rem;
					grid-template-columns: auto 1fr;

					i {
						aspect-ratio: 1;
						background: var(--aqua500);
						border-radius: 50%;
						color: white;
						display: grid;
						font-size: 9px;
						place-items: center;
						width: 20px;
					}

					span {
						strong {
							font-weight: 600;
						}

						.value-tag {
							background: var(--aqua050);
							border-radius: var(--radius);
							color: var(--aqua600);
							display: inline-block;
							font-size: var(--fz12);
							font-weight: 500;
							margin-left: .3rem;
							padding: .2rem var(--px08);
							vertical-align: middle;
						}
					}
				}
			}

			.desc {
				border-left: var(--px03) solid var(--steel200);
				font-size: var(--fz16);
				margin-bottom: var(--px32);
				padding-left: var(--px16);
			}

			.timeline {
				align-items: center;
				border-top: var(--px01) solid var(--steel200);
				color: var(--steel600);
				display: grid;
				font-size: var(--fz14);
				gap: var(--px08);
				grid-template-columns: auto 1fr;
				margin-top: var(--px32);
				padding-top: var(--px16);

				i {
					color: var(--aqua600);
					font-size: var(--fz16);
				}

				strong {
					color: var(--blue900);
				}
			}
		}

		.card-header {
			align-items: center;
			background: var(--steel050);
			border-bottom: var(--px02) solid var(--steel200);
			display: grid;
			grid-template-columns: 1fr auto;
			padding: var(--px32) var(--px24) var(--px16);

			.eyebrow {
				color: var(--steel600);
				font-size: var(--fz12);
				letter-spacing: var(--px02);
				margin-bottom: var(--px08);
				text-transform: uppercase;
			}

			.price {
				font-size: var(--fz20);
				font-weight: 700;
			}
		}

		&.featured {
			border-color: var(--aqua500);
			box-shadow: 0 var(--px04) var(--px20) hsl(168 90 32 / .13);

			.card-body {
				.desc {
					border-left-color: var(--aqua400);
				}

				.timeline {
					border-top-color: var(--steel200);
				}
			}

			.card-header {
				background: var(--aqua500);
				border-bottom-color: transparent;

				h3 {
					color: white;
				}

				.eyebrow {
					color: var(--white-90);
				}

				.price {
					color: white;
				}
			}
		}
	}
}

/* #endregion */
/* #region Sub-Services */
.sub-services-grid {
	--colorbox-offset: 3rem;
	--colorbox-top-margin: 4rem;
	display: grid;
	gap: var(--px32) var(--px64);
	grid-template-columns: 1fr auto;
	margin-top: var(--px96);
	scroll-margin-top: var(--px96);

	@media (width < 1000px) {
		grid-template-columns: auto;
		margin-top: var(--px16);
	}

	@media (width < 500px) {
		scroll-margin-top: 0;
	}

	h2 {
		font-size: var(--fz28);
	}

	.image {
		--img-width: 400px;
		margin-top: calc(var(--colorbox-offset) + var(--colorbox-top-margin));
		position: relative;
		width: var(--img-width);

		@media (width < 1000px) {
			grid-row: 1;
		}

		@media (width < 500px) {
			--img-width: min(300px, 100%);
		}

		&::before {
			aspect-ratio: 1;
			background-color: var(--theme-light, var(--aqua050));
			border-radius: var(--radius);
			content: "";
			left: var(--colorbox-offset);
			position: absolute;
			top: calc(-1 * var(--colorbox-offset));
			width: var(--img-width);

			@media (width < 500px) {
				display: none;
			}
		}

		img {
			border-radius: var(--radius);
			box-shadow: var(--px02) var(--px08) var(--px16) var(--blue200);
			position: relative;
			width: var(--img-width);
		}
	}

	.pip {
		background-color: var(--theme-dark);
	}

	.tagline {
		font-size: var(--fz24);
		margin-bottom: var(--px32);
	}

	&.theme-aqua {
		--theme-dark: var(--theme-aqua-dark);
		--theme-light: var(--theme-aqua-light);
	}

	&.theme-orange {
		--theme-dark: var(--theme-orange-dark);
		--theme-light: var(--theme-orange-light);
	}

	&.theme-purple {
		--theme-dark: var(--theme-purple-dark);
		--theme-light: var(--theme-purple-light);
	}

	&.theme-red {
		--theme-dark: var(--theme-red-dark);
		--theme-light: var(--theme-red-light);
	}
}

.sub-services-icon-grid {
	display: grid;
	gap: var(--px16) var(--px64);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));

	h3 {
		font-size: var(--fz20);
		font-weight: 600;
	}

	i {
		color: var(--theme-dark, var(--blue700));
		font-size: var(--fz24);
		margin-bottom: .6rem;
	}

	p {
		font-size: var(--fz16);
	}
}

/* #endregion */
/* #region Sub-Testimonial */
.sub-testimonial {
	background-color: var(--steel100);
	border-radius: var(--radius);
	display: none;
	margin-top: var(--px96);
	padding: min(2vh, 3rem) min(8vw, 5rem);

	blockquote {
		font-size: var(--fz20);
		margin-left: 0;
	}

	p {
		font-size: var(--fz16);
		font-weight: 700;
		margin-bottom: var(--px48);
	}
}

/* #endregion */