﻿@layer fonts, settings, elements, layouts, styles, components, objects, animations, overrides;

@layer fonts {
	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Regular.ttf") format('truetype');
		font-style: normal;
		font-weight: 400;
	}

	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Light.ttf") format('truetype');
		font-style: normal;
		font-weight: 300;
	}

	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Bold.ttf") format('truetype');
		font-weight: 700;
	}

	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Italic.ttf") format('truetype');
		font-style: italic;
	}

	@font-face {
		font-family: "Fanwood Text";
		src: url("/style/fonts/FanwoodText-Regular.ttf") format('truetype');
	}

	@font-face {
		font-family: "Fanwood Text";
		src: url("/style/fonts/FanwoodText-Italic.ttf") format('truetype');
		font-style: italic;
	}
}

@layer settings {
	:root {
		interpolate-size: allow-keywords;
		scrollbar-gutter: stable;
		/* Colors */
		--clr-blue-steel: hsl(189 9% 73%); /* #B4BFC1 */
		--clr-brown-dark: hsl(22 38% 41%); /* #905D40 */
		--clr-brown-light: hsl(27 27% 59%); /* #B49E79  */
		--clr-gray-dark: hsl(220 2% 35%); /* #58595B (body) */
		--clr-gray-medium: hsl(240 1% 81%); /*  #CECECF */
		--clr-gray-light: hsl(180 4% 91%); /* #E7E9E9 */
		--clr-gray-pale: hsl(0,0%,96%); /* #F5F5F5 */
		--clr-lagoon: hsl(186 100% 13%); /* #003A40 */
		--clr-black: hsl(220 0% 14%); /* #242424 */
		--clr-white: hsl(0 100% 100%); /* just in case we decide on alternate "white" */
		--clr-neutral-light: hsl(30 6% 93%); /* #EFEEED  */
		--clr-default-bg: var(--clr-white);
		--clr-default-ft: var(--clr-gray-dark);
		--clr-warning: hsl(0 86% 36%); /* */
		--clr-success: hsl(128 76% 22%); /* */
		--clr-stroke: hsl(28 16% 84%); /* #DCD5CF  */
		--clr-sidebar-extra: hsl(183 50% 18%);
		/* Font Settings */
		--ft-base-multiplier: 1;
		--ff-sans-serif: "Lato";
		--ff-serif: "Fanwood Text";
		--fs-100: calc(var(--ft-base-multiplier) * 0.5625rem);
		--fs-150: calc(var(--ft-base-multiplier) * 0.6875rem);
		--fs-200: calc(var(--ft-base-multiplier) * 0.75rem);
		--fs-250: calc(var(--ft-base-multiplier) * 0.8125rem);
		--fs-300: calc(var(--ft-base-multiplier) * 0.875rem);
		--fs-400: calc(var(--ft-base-multiplier) * 1rem);
		/* "Large" fonts do not get increased on mobile. */
		--fs-500: 1.125rem;
		--fs-600: 1.25rem;
		--fs-700: 1.375rem;
		--fs-800: 1.5rem;
		--fs-900: 1.875rem;
		--fs-1000: 2rem;
		--fs-1100: 2.75rem;
		--fs-1200: 3.125rem;
		/* Size Restrictions */
		--text-max-inline: 70ch;
		--min-inline-panel: 320px;
		--min-inline-content: 256px;
		--mobile-inline-breakpoint: 991;
		/* Object Sizes */
		--site-header-height: 250px;
		/* Spacing */
		--space-block: 1rem;
		--space-block-025: calc(0.25 * var(--space-block));
		--space-block-050: calc(0.5 * var(--space-block));
		--space-block-075: calc(0.75 * var(--space-block));
		--space-block-100: calc(1 * var(--space-block));
		--space-block-125: calc(1.25 * var(--space-block));
		--space-block-150: calc(1.5 * var(--space-block));
		--space-block-200: calc(2 * var(--space-block));
		--space-block-300: calc(3 * var(--space-block));
		--space-block-375: calc(3.75 * var(--space-block));
		--space-block-400: calc(4 * var(--space-block));
		--space-block-500: calc(5 * var(--space-block));
		--space-block-550: calc(5.5 * var(--space-block));
		--space-block-600: calc(6 * var(--space-block));
		--space-block-700: calc(7 * var(--space-block));
		--space-block-720: calc(7.2 * var(--space-block));
		--space-block-800: calc(8 * var(--space-block));
		--space-block-900: calc(9 * var(--space-block));
		--space-block-1000: calc(10 * var(--space-block));
		--space-block-1100: calc(11 * var(--space-block));
		--space-block-1200: calc(12 * var(--space-block));
		--space-inline: 1em;
		--space-inline-025: calc(0.25 * var(--space-inline));
		--space-inline-050: calc(0.50 * var(--space-inline));
		--space-inline-075: calc(0.75 * var(--space-inline));
		--space-inline-100: var(--space-inline);
		--space-inline-125: clamp(var(--space-inline), 1.5625%, calc(1.25 * var(--space-inline)));
		--space-inline-150: clamp(var(--space-inline), 1.875%, calc(1.5 * var(--space-inline)));
		--space-inline-200: clamp(var(--space-inline), 2.5%, calc(2 * var(--space-inline)));
		--space-inline-300: clamp(var(--space-inline), 3.75%, calc(3 * var(--space-inline)));
		--space-inline-400: clamp(var(--space-inline), 5%, calc(4 * var(--space-inline)));
		--space-inline-500: clamp(var(--space-inline), 6.25%, calc(5 * var(--space-inline)));
		--space-inline-600: clamp(var(--space-inline), 7.5%, calc(6 * var(--space-inline)));
		--space-inline-700: clamp(var(--space-inline), 8.75%, calc(7 * var(--space-inline)));
		--space-inline-800: clamp(var(--space-inline), 10%, calc(8 * var(--space-inline)));
		--space-inline-900: clamp(var(--space-inline), 11.25%, calc(9 * var(--space-inline)));
		--site-header-padding-block-start: var(--space-block-200);
		--site-header-padding-inline: clamp(var(--space-inline), 6.25%, 80px);
		--site-footer-padding-block-start: var(--space-block-550);
		--gutter-col-2: var(--space-inline-300);
		/* Layers (z-index) */
		--z-burried: -100;
		--z-back: -1;
		--z-flat: 0;
		--z-front: 1;
		--z-float: 5;
		--z-top: 10;
		--z-modal: 100;
		--z-messages: 1000;
		/* More */
		--animation-duration: 0.15s;
		--border-radius-default: 0.5em;
		--box-shadow-heavy: 0px 0px 10px 0px rgba(0, 0, 0, 0.25);
		--box-shadow-light: 0px 0px 10px 0px rgba(0, 0, 0, 0.15);
	}

	@media (width <= 650px) {
		:root {
			--ft-base-multiplier: 1.1;
		}
	}

	@media (width > 1300px) {
		:root {
			--ft-base-multiplier: 1.1;
		}
	}
}

@layer elements {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
		font: inherit;
	}

	/*#region top-level type elements*/
	html {
		min-inline-size: var(--min-inline-panel);
		min-block-size: 100%;
		min-block-size: 100vh;
		min-block-size: 100svh;
		margin-inline: auto;
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-400);
		line-height: 1.625;
		color: var(--clr-default-ft);
		background-color: var(--clr-default-bg);
		-webkit-font-smoothing: antialiased;
		-moz-text-size-adjust: none;
		-webkit-text-size-adjust: none;
		hanging-punctuation: first last;
		text-size-adjust: none;
	}

		html:focus-within {
			scroll-behavior: smooth;
		}

	body {
		display: grid;
		grid-template-rows: auto 1fr auto;
		grid-template-columns: 1fr;
		inline-size: 100%;
		text-rendering: optimizeSpeed;
	}

	dialog {
		display: grid;
		place-items: center;
		padding-block: var(--space-block-200);
		padding-inline: var(--space-inline-200);
		margin: auto;
	}

		dialog[data-non-modal="true"] {
			position: fixed;
			inset: 0;
			z-index: var(--z-modal);
			inline-size: 100%;
			overflow: auto;
			block-size: 100vb;
		}

	main > section:first-of-type {
		padding-block-start: calc(var(--space-block-200) + var(--site-header-height));
	}

	section {
		background-color: transparent;
	}
	/*#endregion top-level type elements*/

	/*#region text and inline elements */
	a:not(.link, .button) {
		--link-clr: var(--clr-brown-dark);
		color: var(--link-clr);
		text-decoration-skip-ink: auto;
		text-underline-offset: 0.33em;
		transition: color ease-in-out var(--animation-duration);
	}

		a:not(.link, .button):where(:hover, :focus-visible) {
			color: color-mix(in hsl, var(--link-clr), var(--clr-white) 33%);
		}

	abbr {
		text-transform: uppercase;
	}

	b, strong {
		font-weight: 700;
	}

	em, i {
		font-style: italic;
	}

	p {
		/*max-inline-size: var(--text-max-inline);*/
		/*text-wrap: pretty;*/
	}

	small {
		font-size: var(--fs-200);
	}

	sup, sub {
		padding-inline-start: var(--space-inline-025);
		font-size: var(--fs-100);
	}
	/*#endregion text and inline elements */

	/*#region images & other visual */
	img,
	picture,
	svg,
	video {
		display: inline-block;
		block-size: auto;
		vertical-align: middle;
		font-style: italic;
	}

	figure, img, picture, video {
		inline-size: 100%;
		object-fit: cover;
		object-position: top center;
	}

	figure {
		display: flex;
		flex-flow: column nowrap;
		row-gap: var(--space-block);
	}

	hr {
		block-size: 1.5px;
		background-color: var(--clr-brown-light);
		border: none;
	}
	/*#endregion images & other visual */

	/*#region form elements */
	form:has(input[type="search"]) {
		position: relative;
		container-type: inline-size;
	}

	input, select, textarea {
		accent-color: var(--clr-brown-dark);
	}

		input:where([type="checkbox"], [type="radio"]) {
			zoom: 1.2;
		}

		input:is([type="date"],[type="email"],[type="number"],[type="password"],[type="search"],[type="text"],[type="tel"],[type="url"]),
		select,
		textarea {
			padding-block: var(--space-block-025);
			padding-inline: var(--space-inline-050);
			min-inline-size: 0;
			inline-size: 100%;
			border-inline: none;
			border-block-start: none;
			border-block-end: 1px solid var(--clr-brown-dark);
			background-color: inherit;
			color: inherit;
		}

		input[type="number"] {
			max-inline-size: 8rem;
		}

		input:is([type="date"],[type="email"],[type="number"],[type="password"],[type="search"],[type="text"],[type="tel"],[type="url"]):where(:hover,:focus-visible) {
			background-color: var(--clr-neutral-light);
		}

	:is(input, select, textarea):user-invalid {
		background-color: color-mix(in hsl, var(--clr-warning), var(--clr-white) 80%);
		color: var(--clr-warning);
		border-color: currentColor;
	}

	input[type="search"] + span.status {
		position: absolute;
		inset: auto 0 -2em 0;
		padding: var(--space-block-025);
		font-size: var(--fs-300);
		block-size: 0;
		opacity: 0;
		transition: ease-in-out var(--animation-duration);
	}

		input[type="search"] + span.status[data-status] {
			opacity: 1;
			block-size: auto;
		}

	input[type="search"] + span[data-status="too-short"] {
		color: var(--clr-warning);
	}

	label {
		display: block;
	}

		label:has(input) {
			display: flex;
			flex-flow: row nowrap;
			column-gap: 1rem;
			row-gap: calc(0.5 * var(--space-inline));
			align-items: start;
			line-height: 1;
		}

	textarea:not([rows]) {
		min-block-size: 10em;
	}

	select, textarea {
		border: 1px solid var(--clr-brown-dark);
		border-radius: var(--border-radius-default);
	}
	/*#endregion form elements */

	nav {
		display: flex;
		flex-flow: row nowrap;
		inline-size: 100%;
	}

	/*#region table related */
	table {
		inline-size: 100%;
		border: none;
		border-collapse: collapse;
	}

		table > caption {
			padding-block: var(--space-block);
			padding-inline: var(--space-inline);
			text-align: left;
		}

	tbody > tr:nth-child(even) {
		background-color: var(--clr-neutral-light);
	}

	tbody > tr:nth-child(odd) {
		background-color: var(--clr-gray-light);
	}

	td, th {
		padding-block: var(--space-block-025);
		padding-inline: var(--space-inline-050);
	}

	td {
		vertical-align: top;
	}

		td > :where(input, select, textarea) {
			inline-size: 100%;
		}

	th {
		vertical-align: bottom;
		font-weight: 700;
		text-align: left;
	}

	thead {
		background-color: var(--clr-lagoon);
		color: var(--clr-white);
	}
	/*#endregion table related */

	/*#region lists */
	:where(ol,ul)[role='list'] {
		list-style: none;
	}

	:where(ol,ul):not([role='list']) {
		margin-inline-start: 1em;
	}

	ul:not([role='list']) {
		list-style: disc;
	}

	:where(ol,ul):not([role='list']) > li {
		margin-inline-start: var(--space-inline);
		margin-block-end: var(--space-block-050);
	}
	/*#endregion lists */

	:target {
		scroll-margin-block: 5ex;
	}

	::backdrop {
		background-color: var(--clr-lagoon);
		opacity: 0.75;
	}
}

@layer layouts {
	[data-layout="columns"] {
		display: flex;
		flex-flow: row wrap;
		column-gap: var(--col-gap, var(--space-inline));
		row-gap: var(--row-gap, var(--space-block));
	}

	[data-layout="even-columns"] {
		--col-gap: var(--space-inline);
		--column-count: 2;
		--item-min-width: calc(var(--min-inline-content) - var(--col-gap));
		--gap-count: calc(var(--column-count) - 1);
		--total-gap-width: calc(var(--gap-count) * var(--col-gap));
		--item-max-width: calc((100% - var(--total-gap-width)) / var(--column-count));
		--row-gap: var(--space-block);
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(max(var(--item-min-width), var(--item-max-width)), 1fr));
		column-gap: var(--col-gap);
		row-gap: var(--row-gap);
	}

	/*#region flow */
	[data-layout="flow"] *:has( + *) {
		margin-block-end: var(--space-inline);
	}

	[data-layout="flow"] * + .heading {
		margin-block-start: var(--space-block-200);
	}

	[data-layout="flow"] > .heading {
		margin-block-end: var(--space-block-025);
	}
	/*#endregion flow */

	[data-layout="rows"] {
		display: flex;
		flex-flow: column nowrap;
		column-gap: var(--col-gap, var(--space-inline));
		row-gap: var(--row-gap, var(--space-block));
	}

	[data-layout="subgrid"] {
		display: grid;
		grid-template-rows: subgrid;
		grid-row: span var(--subgrid-rows, 2);
	}
}

@layer styles {
	/*#region backgrounds */
	/*#region blendmode */
	[data-bg-blend]:not([data-bg-blend=""]) {
		background-blend-mode: var(--bg-blend, normal);
	}

	[data-bg-blend="multiply"] {
		--bg-blend: multiply;
	}

	[data-bg-blend="screen"] {
		--bg-blend: screen;
	}

	[data-bg-blend="overlay"] {
		--bg-blend: overlay;
	}

	[data-bg-blend="darken"] {
		--bg-blend: darken;
	}

	[data-bg-blend="lighten"] {
		--bg-blend: lighten;
	}

	[data-bg-blend="color-dodge"] {
		--bg-blend: color-dodge;
	}

	[data-bg-blend="saturation"] {
		--bg-blend: saturation;
	}

	[data-bg-blend="color"] {
		--bg-blend: color;
	}

	[data-bg-blend="luminosity"] {
		--bg-blend: luminosity;
	}

	[data-bg-blend="color-burn"] {
		--bg-blend: color-burn;
	}

	[data-bg-blend="difference"] {
		--bg-blend: difference;
	}

	[data-bg-blend="exclusion"] {
		--bg-blend: exclusion;
	}

	[data-bg-blend="hard-light"] {
		--bg-blend: hard-light;
	}

	[data-bg-blend="hue"] {
		--bg-blend: hue;
	}

	[data-bg-blend="soft-light"] {
		--bg-blend: soft-light;
	}
	/*#endregion blendmode */

	/*#region blur */
	[data-bg-blur]:not([data-bg-blur=""]) {
		position: relative;
		z-index: var(--z-float);
	}

	[data-bg-blur]::after {
		position: absolute;
		inset: 0;
		backdrop-filter: blur(var(--blur, 1rem));
		z-index: var(--z-back);
	}

	[data-bg-blur]:not([data-bg-blur=""])::after {
		content: '';
	}

	[data-bg-blur="overlay"]::after {
		bottom: -2px;
	}

	[data-bg-blur="overlay-75"] {
		min-block-size: calc(2.25 * var(--site-header-height));
	}

		[data-bg-blur="overlay-75"]::after {
			block-size: 75%;
		}

	[data-bg-blur="border"]::after {
		--size: 2.25rem;
		--remainder: calc(100% - var(--size));
		clip-path: polygon(0% 0%, 0% 100%, var(--size) 100%, var(--size) var(--size), var(--remainder) var(--size), var(--remainder) var(--remainder), var(--size) var(--remainder), var(--size) 100%, 100% 100%, 100% 0%);
	}

	@media (width < 990px) {
		[data-bg-blur="border"]::after {
			--size: 0.5rem;
		}
	}
	/*#endregion blur */

	/*#region color */
	[data-bg-c] {
		background-color: var(--bg-color, inherit);
	}

	[data-bg-c="blue-steel"] {
		--bg-color: var(--clr-blue-steel);
	}

	[data-bg-c="brown-dark"] {
		--bg-color: var(--clr-brown-dark);
	}

	[data-bg-c="stroke"] {
		--bg-color: var(--clr-stroke);
	}

	[data-bg-c="brown-light"] {
		--bg-color: var(--clr-brown-light);
	}

	[data-bg-c="neutral-light"] {
		--bg-color: var(--clr-neutral-light);
	}

	[data-bg-c="gray-dark"] {
		--bg-color: var(--clr-gray-dark);
	}

	[data-bg-c="gray-medium"] {
		--bg-color: var(--clr-gray-medium);
	}

	[data-bg-c="gray-light"] {
		--bg-color: var(--clr-gray-light);
	}

	[data-bg-c="gray-pale"] {
		--bg-color: var(--clr-gray-pale);
	}

	[data-bg-c="lagoon"] {
		--bg-color: var(--clr-lagoon);
	}

	[data-bg-c="white"] {
		--bg-color: var(--clr-white);
	}
	/*#endregion color */

	/*#region images */
	[data-bg-img="true"] {
		--bg-limit: var(--min-inline-content);
		background-image: var(--bg-image, none);
		background-position: top center;
		background-repeat: no-repeat;
		background-size: cover;
	}

	[data-bg-img-limit^="bil-"] {
		--bg-limit: 33%;
		--bg-dir: 180deg;
		background-image: linear-gradient(var(--bg-dir), transparent, transparent var(--bg-limit), var(--bg-color, var(--clr-white)) var(--bg-limit)), var(--bg-image);
	}

	[data-bg-img-limit^="bil-bottom"] {
		--bg-dir: 360deg;
	}

	[data-bg-img-limit="bil-bottom-50"] {
		--bg-limit: 50%;
	}

	[data-bg-img-limit^="bil-top"] {
		padding-block-start: var(--space-block-500);
	}

	[data-bg-img-limit="bil-top-66"] {
		--bg-limit: 66%;
	}

	[data-bg-blur][data-bg-img-limit^="bil-"]::after {
		block-size: var(--bg-limit);
	}

	[data-bg-blur][data-bg-img-limit^="bil-bottom"]::after {
		bottom: -2px;
		top: auto;
	}
	/*#endregion images */
	/*#endregion backgrounds */

	/*#region fonts */
	/*#region color */
	[data-ft-c] {
		color: var(--ft-color, inherit);
	}

	[data-ft-c="black"] {
		--ft-color: var(--clr-black);
	}

	[data-ft-c="blue-steel"] {
		--ft-color: var(--clr-blue-steel);
	}

	[data-ft-c="brown-dark"] {
		--ft-color: var(--clr-brown-dark);
	}

	[data-ft-c="stroke"] {
		--ft-color: var(--clr-stroke);
	}

	[data-ft-c="brown-light"] {
		--ft-color: var(--clr-brown-light);
	}

	[data-ft-c="neutral-light"] {
		--ft-color: var(--clr-neutral-light);
	}

	[data-ft-c="gray-dark"] {
		--ft-color: var(--clr-gray-dark);
	}

	[data-ft-c="gray-medium"] {
		--ft-color: var(--clr-gray-medium);
	}

	[data-ft-c="gray-light"] {
		--ft-color: var(--clr-gray-light);
	}

	[data-ft-c="gray-pale"] {
		--ft-color: var(--clr-gray-pale);
	}

	[data-ft-c="lagoon"] {
		--ft-color: var(--clr-lagoon);
	}

	[data-ft-c="white"] {
		--ft-color: var(--clr-white);
	}

	[data-ft-c="warning"] {
		--ft-color: var(--clr-warning);
	}

	[data-ft-c="success"] {
		--ft-color: var(--clr-success);
	}
	/*#endregion color */

	/*#region style */
	[data-ft-s="header-1a"] {
		font-family: var(--ff-serif);
		font-size: var(--fs-1100);
		line-height: 1.1458;
	}

	[data-ft-s="header-1b"] {
		font-family: var(--ff-serif);
		font-size: var(--fs-1000);
	}

	[data-ft-s="header-2"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-900);
		line-height: 1.2667;
	}

	[data-ft-s="header-tag-1a"] {
		font-family: var(--ff-serif);
		font-size: var(--fs-800);
		font-style: italic;
		line-height: 0.9583;
	}

	[data-ft-s="header-tag-1b"] {
		font-family: var(--ff-serif);
		font-style: italic;
		line-height: 1.4375;
	}

	[data-ft-s="header-tag-2a"] {
		font-family: var(--ff-serif);
		font-size: var(--fs-800);
		font-style: italic;
		line-height: 0.9583;
		text-transform: lowercase;
	}

	[data-ft-s="subhead-1a"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-300);
		font-weight: 700;
		letter-spacing: 0.03em;
		line-height: 1.5714;
		text-transform: uppercase;
	}

	[data-ft-s="subhead-1b"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-200);
		font-weight: 700;
		letter-spacing: 0.03em;
		line-height: 1.4167;
		text-transform: uppercase;
	}

	[data-ft-s="subhead-2a"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-700);
		line-height: 1.0909;
	}

	[data-ft-s="subhead-2b"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-600);
		line-height: 1.2;
	}

	[data-ft-s="subhead-2c"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-500);
		line-height: 1.2778;
	}

	[data-ft-s="subhead-2d"] {
		font-family: var(--ff-sans-serif);
		line-height: 1.375;
	}

	/* default font setting */
	[data-ft-s="body-copy-1a"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-400);
		line-height: 1.625;
	}

	[data-ft-s="body-copy-1b"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-300);
		line-height: 1.4375;
	}

	[data-ft-s="disclaimer"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-200);
		font-style: italic;
		line-height: 1.3333;
	}

	[data-ft-s="description"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-200);
		line-height: 1.125;
	}

	[data-ft-s="stats-value"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-1200);
		font-weight: 300;
		line-height: 0.82;
	}

	[data-ft-s="stats-label"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-300);
		line-height: 1;
		text-transform: lowercase;
	}

	[data-ft-s="stats-source"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-100);
		line-height: 1.3333;
	}

	[data-ft-s="cta-1a"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-300);
		font-weight: 700;
		letter-spacing: 0.05em;
		line-height: 1.6429;
		text-decoration: none;
		text-transform: uppercase;
	}

	[data-ft-s="cta-1b"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-200);
		font-weight: 700;
		letter-spacing: 0.05em;
		line-height: 1.9167;
		text-decoration: none;
		text-transform: uppercase;
	}

	[data-ft-s="main-nav-0"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-300);
		font-weight: 700;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	[data-ft-s="main-nav-1"] {
		font-family: var(--ff-serif);
		font-size: var(--fs-600);
	}

	[data-ft-s="main-nav-2"] {
		margin-block: var(--space-block-100) var(--space-block-050);
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-200);
		font-weight: 700;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	[data-ft-s="main-nav-3"] {
		margin-block: var(--space-inline-050);
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-250);
	}

	[data-ft-s="tile-header"] {
		font-family: var(--ff-serif);
		font-size: var(--fs-1000);
		line-height: 1.0938;
	}

	[data-ft-s="footer-nav"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-150);
	}

	[data-ft-s="footer-nav-up-bld"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-150);
		font-weight: 700;
		text-transform: uppercase;
	}

	[data-ft-s="thumbnail-overlay"] {
		font-family: var(--ff-sans-serif);
		font-size: var(--fs-250);
		font-weight: 700;
		letter-spacing: 0.39px;
		text-transform: uppercase;
	}
	/*#endregion style */

	/*#region text-align */
	:is([data-ta], [class*="ta-"]) * {
		text-align: inherit;
	}

	[data-ta="l"], .ta-l {
		text-align: left;
	}

	[data-ta="c"], .ta-c {
		text-align: center;
	}

	[data-ta="r"], .ta-r {
		text-align: right;
	}

	@media (width < 991px) {
		[data-ta="lm"], .ta-lm {
			text-align: left;
		}

		[data-ta="cm"], .ta-cm {
			text-align: center;
		}

		[data-ta="rm"], .ta-rm {
			text-align: right;
		}
	}

	@media (width >= 991px) {
		[data-ta="ld"], .ta-ld {
			text-align: left;
		}

		[data-ta="cd"], .ta-cd {
			text-align: center;
		}

		[data-ta="rd"], .ta-rd {
			text-align: right;
		}
	}
	/*#endregion text-align*/
	/*#endregion fonts */
}

@layer components {
	/*#region author(s)*/
	:where(.author, .authors) {
		padding-block: var(--space-block-200);
		padding-inline: var(--space-inline-200);
	}

	.author {
		margin-block-end: calc(-1 * var(--space-block-600));
	}

	.authors {
		margin-block-end: calc(-7 * var(--space-block-200));
	}

	.author-card {
		position: relative;
		display: grid;
		grid-template-columns: auto 1fr;
		grid-template-areas: "img details";
		column-gap: 0;
		row-gap: 0;
		inline-size: 100%;
		block-size: 100%;
		background-color: var(--clr-white);
		z-index: var(--z-front);
	}

		.author-card .headshot {
			grid-area: img;
		}

			.author-card .headshot img {
				max-inline-size: 325px;
			}

	.author-details {
		grid-area: details;
		justify-content: center;
		padding-block: var(--space-block);
		padding-inline: var(--space-inline-300);
	}

	@media (width < 850px) {
		.author .author-card {
			display: flex;
			flex-flow: column wrap;
			align-items: center;
		}

			.author .author-card .headshot {
				padding: var(--space-block);
			}
	}

	.authors .carousel {
		inline-size: clamp(var(--min-inline-content), 95%, 1280px);
		margin-inline: auto;
		row-gap: var(--space-block-200);
	}

	.authors .carousel-title {
		padding-inline-start: var(--space-inline-200);
	}

	.authors .carousel .carousel-slide-list {
		column-gap: var(--space-inline);
	}

	.authors .carousel .slide {
		inline-size: clamp(var(--min-inline-content), 90vi, 600px);
	}

	.authors .headshot {
		max-inline-size: 150px;
	}

	.authors .carousel .carousel-buttons {
		padding-block-start: 0;
	}
	/*#endregion author(s)*/

	/*#region banner */
	.banner {
		display: flex;
		flex-flow: column nowrap;
		row-gap: var(--bnr-row-gap, var(--space-block));
		padding-inline: var(--site-header-padding-inline);
		padding-block-end: var(--space-block-300);
	}

		.banner[data-ta="c"] > * {
			inline-size: clamp(var(--min-inline-content), 80%, 640px);
			margin-inline: auto;
		}

	@media (width >= 850px) {
		.banner.bio {
			display: grid;
			grid-template-columns: 2fr 1fr;
			column-gap: var(--gutter-col-2);
		}

			.banner.bio > * {
				grid-column: 1;
			}
	}

	.banner.location-instance {
		--bnr-row-gap: var(--space-block-200);
	}

		.banner.location-instance .link-list {
			--col-gap: var(--space-inline-300);
		}
	/*#endregion banner */

	.basic-container {
		isolation: isolate;
		display: flex;
		flex-flow: column nowrap;
		align-items: start;
		justify-content: center;
		row-gap: var(--space-inline);
		padding-block: var(--space-block-200);
		padding-inline: var(--space-inline-200);
		block-size: 100%;
		inline-size: 100%;
	}

	/*#region bio (individual) */
	.individual-bio {
	}

	.bio-tabs.tab-module {
		padding-block-end: 0;
		background-color: inherit;
		box-shadow: none;
	}

	.bio-tabs .control-box {
		padding-block-start: 0;
		padding-inline: 0;
	}

	.bio-tabs .control-box-list {
		border-color: var(--clr-lagoon);
	}

	.bio-tab-info {
		row-gap: var(--space-block-200);
	}

		.bio-tab-info.details ul {
			list-style: none;
			margin-inline-start: 0;
		}

		.bio-tab-info.details li {
			margin-block-end: 0;
			margin-inline-start: 0;
		}

		.bio-tab-info.details .community-items-wrapper > ul {
			display: grid;
			grid-template-columns: repeat(auto-fill, minmax(var(--min-inline-content), 1fr));
			column-gap: var(--space-inline-200);
			row-gap: var(--space-block-150);
		}

			.bio-tab-info.details .community-items-wrapper > ul > li {
				color: var(--clr-brown-dark);
				/* font styles copied directly from subhead-1a, in styles.fonts.style layer */
				font-family: var(--ff-sans-serif);
				font-size: var(--fs-300);
				font-weight: 700;
				letter-spacing: 0.03em;
				text-transform: uppercase;
			}

				.bio-tab-info.details .community-items-wrapper > ul > li > ul {
					/* remove inherited styles from > ul > li */
					color: var(--clr-default-ft);
					font-size: var(--fs-400);
					font-weight: 400;
					letter-spacing: normal;
					text-transform: none;
				}

		.bio-tab-info.details .memberships ul {
			display: flex;
			flex-flow: row wrap;
			column-gap: var(--space-inline);
		}

		.bio-tab-info.details .memberships li:not(:last-child) {
			border-inline-end: 1px solid;
			padding-inline-end: var(--space-inline);
		}

	.individual-bio .sidebar {
		max-inline-size: 406px;
		text-align: center;
	}

	.bio-sidebar-details {
		padding-block: var(--space-block-200);
	}

	.bio-contact-options {
		align-items: center;
		padding-inline: var(--space-inline-200);
	}

	.bio-contact {
		flex-grow: 1;
		padding-inline-end: var(--space-inline);
		border-inline-end: 1px solid transparent;
	}

		.bio-contact[data-adjacent-sibling="true"] {
			border-color: currentColor;
		}
	/*#endregion bio (individual) */

	/*#region body loading */
	body.loading {
		opacity: 0.3;
	}
	/*#endregion body loading */

	/*#region body copy */
	.body-copy {
	}

		/*#region sneak-peek*/
		.body-copy[data-variant="sneak-peek"] {
			display: flex;
			flex-flow: row nowrap;
			row-gap: var(--space-inline);
			align-items: center;
			justify-content: space-between;
		}

			.body-copy[data-variant="sneak-peek"] .text {
				align-self: start;
			}

				.body-copy[data-variant="sneak-peek"] .text > * + * {
					margin-block-start: 1em;
				}

			.body-copy[data-variant="sneak-peek"].expanded .text {
				--lines: none;
			}

			.body-copy[data-variant="sneak-peek"] button .icon {
				--rot: 0deg;
				rotate: var(--rot);
				transition: ease-in-out var(--animation-duration);
			}

			.body-copy[data-variant="sneak-peek"].expanded button .icon {
				--rot: 180deg;
			}

	@media (width >= 850px) {
		.body-copy[data-variant="sneak-peek"].expanded .text > :where(ol,ul) {
			column-count: 2;
			column-gap: var(--space-inline-150);
		}
	}
	/*#endregion sneak-peek*/
	/*#endregion body copy */

	/*#region buttons */
	.button {
		--btn-face: var(--bg-color, inherit);
		--btn-text: var(--ft-color, inherit);
		--btn-border-width: 0;
		appearance: none;
		display: inline-block;
		padding-block: var(--space-block-025);
		padding-inline: var(--space-inline-050);
		min-inline-size: 1.5em;
		line-height: 1;
		text-align: left;
		text-decoration: none;
		background-color: var(--btn-face);
		border: var(--btn-border-width) solid currentColor;
		color: var(--btn-text);
		cursor: pointer;
		transition: all var(--animation-duration) ease-in-out;
	}

		.button[data-variant]:where(:hover, :focus-visible) {
			background-color: var(--btn-text);
			color: var(--btn-face);
		}

		.button[data-variant="primary"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-lagoon);
			--btn-text: var(--clr-white);
		}

		.button[data-variant="secondary"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-brown-dark);
			--btn-text: var(--clr-white);
		}

		.button[data-variant="tertiary"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-brown-light);
			--btn-text: var(--clr-black);
		}

		.button[data-variant="quaternary"] {
			--btn-border-width: 1px;
			--btn-face: color-mix(in hsl longer hue, var(--clr-brown-dark), 10% var(--clr-black));
			--btn-text: var(--clr-white);
		}
		/* add sequentials as needed: quinary, senary, septenary, octonary, nonary, denary, etc. */

		/* special variants */
		.button[data-variant="delete"], 
		.button[data-variant="off"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-warning);
			--btn-text: var(--clr-white);
		}

		.button[data-variant="on"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-success);
			--btn-text: var(--clr-white);
		}

		.button[disabled] {
			cursor: not-allowed;
			filter: grayscale(1);
		}

	.checkbox-button {
		--c-text: var(--clr-lagoon);
		--c-brd: var(--clr-brown-dark);
		--c-fill: var(--clr-white);
		display: flex;
		align-items: center;
		justify-content: center;
		padding-block: var(--space-block-025);
		padding-inline: var(--space-inline);
		block-size: 100%;
		max-inline-size: 320px;
		margin-inline: auto;
		color: var(--c-text);
		background-color: var(--c-fill);
		border: 1px solid var(--c-brd);
		border-radius: 1em;
		cursor: pointer;
		text-align: center;
	}

		.checkbox-button > input {
			/* copied from .visually-hidden */
			clip-path: inset(50%);
			height: 1px;
			overflow: hidden;
			position: absolute;
			white-space: nowrap;
			width: 1px;
		}

		.checkbox-button:has(input:checked) {
			color: var(--c-fill);
			background-color: var(--c-brd);
		}

		.button.btn-on-top {
			position: relative;
			z-index: var(--z-modal);
		}
	/*#endregion buttons */

	/*#region card */
	.card {
		margin-inline: auto;
		inline-size: fit-content;
	}

		.card :where(.heading, .body-copy, .link) {
			margin-block: 0;
		}

		.card > .card-content > .card-links > ul {
			display: flex;
			flex-flow: row wrap;
			column-gap: calc(2 * var(--space-inline));
			row-gap: var(--space-block);
			align-content: center;
			justify-content: start;
		}

		.card[data-ta="c"] > .card-content .body-copy > * {
			margin-inline: auto;
		}

		.card:is([data-ta="c"], .ta-c) > .card-content > .card-links > ul {
			justify-content: center;
		}

		.card .card-visuals .basic-container {
			padding: 0;
		}

		/*#region awards-rec*/
		.card[data-variant="awards-rec"] {
			display: grid;
			grid-template-columns: 1fr;
			grid-template-rows: auto 1fr 2fr;
			row-gap: calc(2 * var(--space-block));
			column-gap: var(--gutter-col-2);
			padding-block: var(--space-block-500);
			padding-inline: var(--space-inline-200);
		}

			.card[data-variant="awards-rec"] .card-header {
				grid-column: 1;
				grid-row: 1;
			}

			.card[data-variant="awards-rec"] .card-visuals {
				grid-column: 1;
				grid-row: 2;
			}

			.card[data-variant="awards-rec"] .card-content {
				grid-column: 1;
				grid-row: 3;
				align-self: start;
				padding-inline-start: var(--space-inline-200);
				border-inline-start: 1px solid var(--clr-brown-dark);
			}

			.card[data-variant="awards-rec"] .card-content-copy .basic-container {
				row-gap: 0;
				padding: 0;
			}

				.card[data-variant="awards-rec"] .card-content-copy .basic-container .basic-container {
					inline-size: clamp(var(--min-inline-content), 50%, 500px);
				}

	@media (width >= 850px) {
		.card[data-variant="awards-rec"] {
			grid-template-columns: 1fr 1fr;
			grid-template-rows: auto auto;
			padding-inline: var(--space-block-500);
		}

			.card[data-variant="awards-rec"] .card-content {
				grid-column: 2;
				grid-row: 2;
			}
	}
	/*#endregion awards-rec*/

	/*#region color-block */
	.card.color-block {
		--visuals-clamp: clamp(var(--min-inline-content), 60%, 700px);
		position: relative;
		background-color: white;
	}

		.card.color-block::before {
			--size: var(--space-block-200);
			content: "";
			position: relative;
			top: calc(-1 * var(--size) + 2px);
			margin-inline: var(--site-header-padding-inline);
			block-size: var(--size);
			background-color: inherit;
			z-index: var(--z-float);
		}

		.card.color-block .card-visuals {
			inline-size: var(--visuals-clamp);
			margin-inline: auto;
			z-index: var(--z-front);
		}

		.card.color-block .card-content {
			--offset-top: var(--space-block-700);
			margin-block-start: calc(-1 * var(--offset-top));
			padding-block-start: var(--offset-top);
			background-color: var(--bg-color);
			z-index: var(--z-flat);
		}

			.card.color-block .card-content .body-copy {
				padding-block-start: var(--space-block);
				margin-inline: auto;
				inline-size: clamp(var(--min-inline-content), 75%, 1100px);
			}

		.card.color-block .card-links {
			margin-block-start: var(--space-block);
			padding: var(--space-block);
			background-color: var(--clr-lagoon);
		}

		.card.color-block > .card-content > .card-links > ul {
			justify-content: center;
		}
	/*#endregion color-block */

	/*#region floating-content*/
	.card[data-variant="floating-content"] {
		--spacer-row: clamp(var(--min-inline-content), 33vb, 500px);
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: var(--spacer-row) var(--space-block-500) 1fr var(--space-block-200);
		margin-inline: 0;
		inline-size: 100%;
	}

		.card[data-variant="floating-content"] > .card-visuals {
			grid-column: 1;
			grid-row: 1 / span 2;
			block-size: auto;
			z-index: var(--z-flat);
		}

		.card[data-variant="floating-content"] > .card-content {
			grid-column: 1;
			grid-row: 2 / span 2;
			--row-gap: var(--space-block-200);
			padding-block: var(--row-gap);
			padding-inline: var(--space-inline);
			margin-inline: auto;
			inline-size: max(var(--min-inline-content), 90%);
			box-shadow: var(--box-shadow-heavy);
			background-color: var(--clr-white);
			z-index: var(--z-front);
		}

	@media (width >= 850px) {
		.card[data-variant="floating-content"] {
			grid-template-columns: 2fr 1fr 2fr;
			grid-template-rows: var(--space-block-700) 1fr var(--space-block-700);
		}

			.card[data-variant="floating-content"] > .card-visuals {
				grid-column: 1 / span 2;
				grid-row: 1 / -1;
			}

			.card[data-variant="floating-content"] > .card-content {
				grid-column: 2 / span 2;
				grid-row: 2;
				margin-inline: 0;
				padding-block: var(--space-block-500);
				padding-inline: var(--site-header-padding-inline);
			}
	}
	/*#endregion floating-content*/

	/*#region floating-visuals */
	section:has(.card[data-variant="floating-visuals"]) {
		position: relative;
	}

	.card[data-variant="floating-visuals"] {
		position: relative;
		margin-inline: var(--space-inline-200);
		margin-block-end: var(--space-block-200);
		padding-block: var(--space-block-200);
		padding-inline: var(--space-inline);
	}

		.card[data-variant="floating-visuals"] > .card-content {
			--row-gap: var(--space-block-200);
			position: relative;
			top: calc(-2 * var(--row-gap));
			padding-block: var(--row-gap);
			padding-inline: var(--space-inline-300);
			box-shadow: var(--box-shadow-heavy);
			background-color: var(--clr-white);
		}

		.card[data-variant="floating-visuals"] > .card-visuals {
			position: relative;
			top: calc(-2 * var(--row-gap));
		}

	@media (width >= 850px) {
		.card[data-variant="floating-visuals"] {
			display: flex;
			flex-flow: row nowrap;
			column-gap: 0;
		}

			.card[data-variant="floating-visuals"] > .card-content {
				flex-shrink: 0;
				inline-size: 66%;
				padding-block: var(--space-block-700);
			}

				.card[data-variant="floating-visuals"] > .card-content > * {
					inline-size: 66%;
				}

			.card[data-variant="floating-visuals"] > .card-visuals {
				left: auto;
				right: 20%;
				/*top: calc(-1 * var(--space-block-200));*/
				flex-shrink: 0;
				inline-size: clamp(var(--min-inline-content), 50%, 550px);
			}
	}

	@media (width >=1000px) {
		.card[data-variant="floating-visuals"] > .card-visuals {
			right: 15%;
		}
	}
	/*#endregion floating-visuals */

	/*#region header-over-all */
	.card[data-variant="header-over-all"] {
		display: grid;
		row-gap: var(--space-block);
		column-gap: var(--gutter-col-2);
		grid-template-areas: "header" "visuals" "content";
	}

		.card[data-variant="header-over-all"] .card-header {
			grid-area: header;
		}

		.card[data-variant="header-over-all"] .card-visuals {
			grid-area: visuals;
		}

	.card.visuals-last[data-variant="header-over-all"] .card-visuals {
		max-inline-size: clamp(var(--min-inline-content), 50%, 400px);
	}

	.card[data-variant="header-over-all"] .card-content {
		grid-area: content;
	}

	.card.visuals-last[data-variant="header-over-all"] {
		column-gap: calc(2 * var(--gutter-col-2));
		grid-template-areas: "header" "content" "visuals";
	}

	@media (width >= 850px) {
		.card[data-variant="header-over-all"] {
			grid-template-areas: "header header" "visuals content";
			grid-template-columns: 3fr 2fr;
		}

		.card.visuals-last[data-variant="header-over-all"] {
			grid-template-areas: "header header" "content visuals";
		}
	}
	/*#endregion header-over-all */

	/*#region icon-card*/
	.card[data-variant="icon-card"] {
		--icon-color: var(--ft-color);
		display: grid;
		grid-template-columns: 2em 1fr;
		grid-auto-flow: row;
		column-gap: var(--space-inline);
	}

		.card[data-variant="icon-card"] > * {
			grid-column: 2;
		}

		.card[data-variant="icon-card"] > .icon {
			grid-column: 1;
			grid-row: 1 / span 2;
			align-self: start;
			font-size: 2em;
		}

		.card[data-variant="icon-card"] .card-header .heading {
			/*margin-block-end: 0;*/
		}
	/*#endregion icon-card*/

	/*#region indent & inline cards */
	.card:where([data-variant^="indent-card"],[data-variant="inline-header"]) {
		display: grid;
		grid-template-columns: 1fr;
	}

	.card:where([data-variant^="indent-card"],[data-variant="inline-header"]) {
		padding-block: var(--space-block-900);
		padding-inline: var(--space-block-200);
	}

		.card:where([data-variant^="indent-card"],[data-variant="inline-header"]) > .card-content {
			align-self: start;
		}

		.card:where([data-variant^="indent-card"],[data-variant="inline-header"]) > .card-content {
			padding-inline-start: var(--space-inline-200);
			border-inline-start: 1px solid var(--clr-brown-dark);
		}

	.card[data-variant="inline-image"] {
		padding-block: var(--space-block);
		padding-inline: var(--space-inline-900);
	}

	@media (width >= 850px) {
		.card:not(.no-desktop-mode):where([data-variant^="indent-card"],[data-variant="inline-header"]) {
			padding-inline: var(--space-inline-700);
		}

		.card:not(.no-desktop-mode)[data-variant^="indent-card"] {
			grid-template-rows: auto 1fr;
			--col-gap: calc(5 * var(--space-inline));
		}

			.card:not(.no-desktop-mode)[data-variant^="indent-card"] > .card-visuals {
				grid-row: 1 / 3;
			}

			.card:not(.no-desktop-mode)[data-variant^="indent-card"] > .card-content {
				grid-row: 2;
				margin-inline-start: var(--space-block-300);
			}

		.card:not(.no-desktop-mode)[data-variant="indent-card"] {
			grid-template-columns: 3fr 2fr;
		}

			.card:not(.no-desktop-mode)[data-variant="indent-card"] > .card-visuals {
				grid-column: 2;
			}

			.card:not(.no-desktop-mode)[data-variant="indent-card"] > .card-content {
				grid-column: 1;
			}

		.card[data-variant="indent-card-reversed"] {
			grid-template-columns: 2fr 3fr;
		}

			.card[data-variant="indent-card-reversed"] > .card-visuals {
				grid-column: 1;
			}

			.card[data-variant="indent-card-reversed"] > .card-content {
				grid-column: 2;
			}

		.card[data-variant="inline-header"] {
			grid-template-columns: 1fr 2fr;
			grid-template-rows: 2rem 1fr;
		}

			.card[data-variant="inline-header"] > .card-content {
				grid-column: 2;
				grid-row: 2;
			}

			.card[data-variant="inline-header"] > .card-header {
				grid-column: 1;
				grid-row: 1 / -1;
			}

				/* There is at least one inline-header card that has a heading without a header-tag. 
				We want the header to be aligned with the content, so move to row 2; */
				.card[data-variant="inline-header"] > .card-header:has(:not(:nth-child(2))) {
					grid-row: 2 / -1;
				}

			.card[data-variant="inline-header"] > .card-visuals {
				grid-column: 2;
				grid-row: 1;
			}

		.card[data-variant="inline-image"] {
			display: grid;
			grid-template-columns: 2fr 3fr;
			grid-template-rows: auto auto;
			row-gap: var(--space-block);
			column-gap: var(--gutter-col-2);
		}

			.card[data-variant="inline-image"] > .card-header {
				align-self: end;
				grid-column: 2;
				grid-row: 1;
			}

			.card[data-variant="inline-image"] > .card-visuals {
				grid-column: 1;
				grid-row: 1 / -1;
			}
	}
	/*#endregion indent & inline cards */	

	/*#region stats-card */
	.card[data-variant="stats-card"] {
		row-gap: var(--space-block-300);
		margin-block: var(--space-block-600);
	}

		.card[data-variant="stats-card"] .card-footnotes {
			inline-size: clamp(var(--min-inline-content), 50%, 640px);
			margin-inline: auto;
			text-align: left;
		}
	/*#endregion stats-card */

	/*#region visuals-first */
	.card[data-variant="visuals-first"] {
		display: grid;
		row-gap: var(--space-block);
		grid-template-columns: 1fr;
		grid-template-rows: repeat(3, auto);
	}

		.card[data-variant="visuals-first"] .card-visuals {
			grid-row: 1;
			margin-block-end: var(--space-block);
		}

		.card[data-variant="visuals-first"] .card-header {
			grid-row: 2;
		}

		.card[data-variant="visuals-first"] .card-content {
			grid-row: 3;
		}

	@media (width < 850px) {
		.card[data-variant="visuals-first"] .card-visuals {
			overflow: hidden;
		}
	}
	/*#endregion visuals-first */

	/*#region location-intro-card */
	.card.location-intro-card {
		display: flex;
		flex-flow: column nowrap;
		row-gap: var(--space-block);
	}

		.card.location-intro-card .loc-phones {
			column-gap: var(--space-inline-200);
			justify-content: space-between;
		}

			.card.location-intro-card .loc-phones > * {
				flex-grow: 1;
				padding-inline-end: var(--space-inline);
				border-inline-end: 1px solid transparent;
			}

				.card.location-intro-card .loc-phones > *[data-adjacent-sibling="true"] {
					border-color: var(--clr-stroke);
				}

		.card.location-intro-card :where(.loc-address, .loc-phones > [data-layout="rows"]) {
			--row-gap: var(--space-block-025);
		}

	@media (width >=850px) {
		.card.location-intro-card {
			display: grid;
			grid-template-columns: 1fr 1fr;
			grid-template-rows: auto 1fr;
			column-gap: var(--gutter-col-2);
			row-gap: var(--space-block);
		}

			.card.location-intro-card .body-copy > :where(ol, ul) {
				column-count: 2;
				column-gap: var(--space-inline-150);
			}

			.card.location-intro-card .card-visuals {
				grid-column: 1;
				grid-row: 1 / -1;
			}

			.card.location-intro-card .card-header {
				grid-column: 2;
				grid-row: 1;
			}

			.card.location-intro-card .card-content {
				grid-column: 2;
				grid-row: 2;
			}
	}
	/*#endregion location-intro-card */

	/*#region location-organization-card */
	.location-organization-card {
		--row-gap: var(--space-block-200);
	}

		.location-organization-card .bucket {
			border-block-end: 1px solid var(--clr-stroke);
		}

			.location-organization-card .bucket:not(:has(ul)) {
				display: none;
			}

			.location-organization-card .bucket .button .icon {
				rotate: 0;
				transition: ease-in-out var(--animation-duration);
			}

			.location-organization-card .bucket:has( .bucket-content[data-state="open"]) .button .icon {
				rotate: 180deg;
			}

			.location-organization-card .bucket .button {
				padding-block: var(--space-block-150);
				padding-inline: 0;
				inline-size: 100%;
			}

		.location-organization-card .bucket-content {
			padding-block-end: var(--space-block);
		}

			.location-organization-card .bucket-content ul {
				list-style: none;
			}

			.location-organization-card .bucket-content li {
				display: grid;
				grid-template-columns: var(--space-inline) auto;
				column-gap: var(--space-inline);
				margin-inline-start: 0;
			}

				.location-organization-card .bucket-content li::before {
					content: "\2014";
				}

	@media (width >= 850px) {
		.location-organization-card {
			display: grid;
			grid-template-columns: 2fr 3fr;
			--col-gap: var(--space-inline-400);
			padding-block: var(--space-block-400);
			padding-inline: var(--space-inline-200);
		}

			.location-organization-card .bucket .body-copy > :where(ol, ul) {
				column-count: 2;
				column-gap: var(--space-inline-150);
			}
	}
	/*#endregion location-organization-card */

	@media (width >= 850px) {
		.card {
			inline-size: auto;
		}
	}
	/*#endregion card */

	/*#region careers-positions */
	.careers-positions {
		--row-gap: var(--space-block-200);
		padding-block: var(--space-block-500);
		padding-inline: var(--site-header-padding-inline);
	}

		.careers-positions .careers-positions-feed iframe {
			inline-size: 100%;
		}
	/*#endregion careers-positions */

	/*#region carousel */

	/*#region carousel (base)*/
	.carousel {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr auto;
		padding-block: var(--space-block-300);
		inline-size: 100%;
		overflow-x: hidden;
		z-index: var(--z-front);
	}

	.carousel-slide-list {
		align-self: end;
		align-items: stretch;
		display: grid;
		grid-template-columns: 1fr;
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
		gap: 0;
		padding-block: var(--space-block);
		scroll-snap-type: inline mandatory;
		scroll-behavior: smooth;
		overflow-x: auto;
	}

		.carousel-slide-list::-webkit-scrollbar {
			width: 2px;
			height: 2px;
		}

		.carousel-slide-list::-webkit-scrollbar-thumb {
			background: color-mix(in hsl, var(--bg-color), black);
			border-radius: 1rem;
		}

		.carousel-slide-list::-webkit-scrollbar-track {
			background: color-mix(in hsl, var(--bg-color), white 5%);
		}

	.carousel-buttons {
		display: flex;
		flex-flow: row nowrap;
		column-gap: calc(1.5 * var(--space-inline));
		padding-block: var(--space-block-200);
		position: relative;
		z-index: var(--z-front);
	}

	.carousel-control.button {
		--bg-color: transparent;
	}


	.carousel .slide {
		margin-inline-start: var(--slide-gap, var(--space-inline));
		inline-size: var(--slide-size, auto);
		scroll-snap-align: start;
		scroll-margin-inline-start: var(--slide-gap);
	}
	/*#endregion carousel (base) */

	/*#region inline-carousel */
	.carousel .inline-carousel-wrapper {
		--btn-size: 18px;
		display: grid;
		grid-template-columns: var(--btn-size) 1fr var(--btn-size);
		column-gap: var(--space-inline-050);
	}

		.carousel .inline-carousel-wrapper .inline-button {
			align-self: center;
			inline-size: var(--btn-size);
		}

			.carousel .inline-carousel-wrapper .inline-button .button {
				padding-inline: 0;
				inline-size: var(--btn-size);
				min-inline-size: 0;
			}

			.carousel .inline-carousel-wrapper .inline-button [data-variant="icon-only"] {
				inline-size: var(--btn-size);
			}
	/*#endregion inline-carousel */

	/*#region carousel-division-leaders */
	.carousel-division-leaders {
		--slide-gap: var(--space-inline);
		--slide-size: var(--min-inline-content);
	}

		.carousel-division-leaders .carousel {
			padding-block: var(--space-block);
		}

		.carousel-division-leaders .carousel-slide-list {
			gap: var(--space-inline-200);
		}

	/*#endregion carousel-division-leaders */

	/*#region carousel-insights */
	.carousel-insights .carousel-container {
		position: relative;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr 100px auto auto 1fr;
	}

	.carousel-insights .carousel {
		--slide-size: 286px;
		--slide-gap: 1rem;
		grid-column: 1;
		grid-row: 2 / span 3;
		row-gap: var(--space-block);
		padding-inline-start: var(--space-inline-500);
		padding-block-start: var(--space-block-900);
	}

		.carousel-insights .carousel .slide.page-slide {
			position: relative;
			display: grid;
			grid-template-columns: 1fr;
			grid-template-rows: auto 1fr auto;
			row-gap: var(--space-block);
			padding-block: var(--space-block-300) var(--space-block);
			padding-inline: var(--space-inline);
			background: var(--clr-white);
			box-shadow: var(--box-shadow-heavy);
		}

			.carousel-insights .carousel .slide.page-slide .card-header {
				--row-gap: calc(2 * var(--space-block));
			}

			.carousel-insights .carousel .slide.page-slide .card-links {
				padding-block: calc(0.5 * var(--space-block));
				border-block-start: 1px solid var(--clr-stroke);
			}
	/*#endregion carousel-insights */

	/*#region carousel-photos */
	.carousel-photos .carousel {
		--slide-size: var(--min-inline-content);
		padding-inline-start: var(--space-inline-500);
	}

	.carousel-photos .carousel-intro-card .card {
		padding-block-end: var(--space-block-300);
		padding-inline: var(--site-header-padding-inline);
	}

	.carousel-photos .carousel-slide-list {
	}

	.carousel-photos .slide.photo-slide .button {
		inline-size: 100%;
	}

	.carousel-photos .slide.photo-slide figcaption {
		display: none;
	}

	@media (width >= 650px) {
		.carousel-photos .carousel {
			--slide-size: 350px;
		}
	}
	/*#endregion carousel-photos */

	/*#region carousel-team */
	.carousel-team {
		--img-size: 90px;
		padding-block: var(--space-block-200);
		padding-inline: var(--site-header-padding-inline);
	}

		.carousel-team .carousel {
			--row-gap: var(--space-block-200);
			--slide-size: 256px;
			--slide-gap: 0;
			padding-inline: 0;
		}

		.carousel-team .carousel-title {
			padding-block-end: var(--space-block);
			border-block-end: 1px solid var(--clr-stroke);
		}

		.carousel-team .carousel-slide-list {
			--row-gap: var(--space-block-150);
			--block-multiplier: 3.1;
			display: flex;
			flex-flow: column wrap;
			column-gap: var(--space-inline-300);
			row-gap: var(--row-gap);
			block-size: calc((var(--block-multiplier) * var(--img-size)) + var(--row-gap));
			padding-block: var(--space-block-025) var(--space-block);
		}

			.carousel-team .carousel-slide-list.one-row {
				--block-multiplier: 1.75;
			}

		.carousel-team .carousel .slide.team-wide-slide {
			--pd: 4px;
			display: grid;
			grid-template-columns: var(--img-size) 1fr;
			grid-template-rows: 1fr;
			column-gap: var(--space-inline);
			padding: var(--pd);
		}

	.team-wide-slide .card-visuals {
		grid-column: 1;
	}

	.team-wide-slide .card-details {
		grid-column: 2;
		display: flex;
		flex-flow: column nowrap;
		row-gap: var(--space-inline-025);
		justify-content: space-between;
	}

	@media (width >= 650px) {
		.carousel-team .carousel .inline-carousel-wrapper {
			--btn-size: 36px;
			column-gap: var(--space-inline-300);
		}

		.carousel-team .carousel .slide.team-wide-slide {
			--slide-size: 450px;
		}
	}
	/*#endregion carousel-team */

	/*#region carousel-videos */
	.carousel-videos .carousel {
		--slide-size: 350px;
		--slide-gap: var(--space-block-200);
		padding-inline-start: var(--space-inline-500);
	}

	.carousel-videos .carousel-intro-card {
		padding-inline-end: var(--site-header-padding-inline);
	}
	/*#endregion carousel-videos */

	/*#endregion carousel */

	.chip {
		padding-block: var(--space-block-025);
		padding-inline: var(--space-inline-025);
		border: 1px solid currentColor;
	}

	/*#region content-flow */
	.content-flow {
		display: flex;
		flex-flow: column nowrap;
		row-gap: var(--space-block-200);
		padding-block: var(--space-block-500);
		padding-inline: var(--site-header-padding-inline);
	}

		.content-flow:has( + .content-flow) {
			padding-block-end: var(--space-block);
		}

		.content-flow + .content-flow {
			padding-block-start: 0;
		}

	@media (width >= 991px) {
		.content-flow.reverse-flow-mobile:not(:has(iframe)) {
			padding-inline-end: var(--space-inline-200);
		}
	}
	/*#endregion content-flow */

	/*#region content-grid*/
	.content-grid {
		padding-block: var(--space-block-200) 0;
		inline-size: 100%;
	}

	.content-grid-items {
		--row-gap: 0;
		--col-gap: 1px;
		--item-min-width: 15rem;
	}

	.content-grid-item {
		--row-gap: var(--space-block);
		--pd: var(--space-block-200);
		position: relative;
		padding: var(--pd);
	}

		.content-grid-item::before {
			content: '';
			position: absolute;
			inline-size: 1px;
			inset: var(--pd) 0 var(--pd) auto;
		}

		.content-grid-item::after {
			content: '';
			position: absolute;
			block-size: 1px;
			inline-size: calc(100% - (2 * var(--pd)));
			bottom: 0;
		}

		.content-grid-item[data-adjacent-sibling="true"]::before {
			background-color: var(--clr-stroke);
		}

		.content-grid-item[data-last-row="false"]::after {
			background-color: var(--clr-stroke);
		}

	.content-grid .content-grid-links {
		--col-gap: var(--space-inlline-200);
		justify-content: space-evenly;
		padding-block: var(--space-block-150);
		border-block-start: 1px solid var(--clr-stroke);
	}

	/*#region lone-link in content-grid-links */

	/* For some grids they want the footer/links bg to be gray and extend the entire width of the page */
	.content-grid.full-gray-footer {
		overflow-x: clip;
	}

		.content-grid.full-gray-footer .content-grid-links {
			position: relative;
			border-block-start: 0;
		}

			.content-grid.full-gray-footer .content-grid-links > .link {
				z-index: var(--z-front);
			}

			.content-grid.full-gray-footer .content-grid-links::after {
				position: absolute;
				content: '';
				top: 0;
				block-size: 100%;
				inline-size: 100vi;
				background-color: var(--clr-neutral-light);
				z-index: var(--z-flat);
			}

	/* We also need to remove the bottom padding from the content-grid's parent container */
	.content-flow:has( .content-grid.full-gray-footer) {
		padding-block-end: 0;
	}
	/*#endregion lone-link in content-grid-links */

	.content-grid:where([data-variant="col-3"], [data-variant="locations-grid"]) .content-grid-items {
		--column-count: 3;
	}

	/*#region locations-grid */
	.content-grid[data-variant="locations-grid"] {
		row-gap: var(--space-block-200);
		padding-block: var(--space-block-500);
		padding-inline: var(--site-header-padding-inline);
	}

		.content-grid[data-variant="locations-grid"] .content-grid-item {
			position: relative;
		}

			.content-grid[data-variant="locations-grid"] .content-grid-item .location-link {
				justify-content: center;
			}

				.content-grid[data-variant="locations-grid"] .content-grid-item .location-link::after {
					content: '';
					position: absolute;
					inset: 0;
				}

	/*#endregion locations-grid */
	/*#endregion content-grid*/

	/*#region content-with-sidebar-module */
	.content-with-sidebar-module {
		--mod-block-pad: var(--space-block-400);
		position: relative;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-areas: "content" "sidebar";
		row-gap: var(--space-block);
		padding-block: var(--mod-block-pad);
		padding-inline: var(--space-inline-200);
	}

	.content {
		grid-area: content;
	}

	.sidebar {
		align-self: start;
		grid-area: sidebar;
		justify-content: space-between;
		z-index: var(--z-float);
	}

		.sidebar .control-box {
			padding-block: var(--space-block-600) var(--space-block);
			inline-size: 100%;
		}

		.sidebar .extras {
			--row-gap: 1px;
			--bg-color: var(--clr-sidebar-extra);
		}

		.sidebar .extra {
			padding-block: var(--space-block);
			background-color: var(--bg-color);
		}

			.sidebar .extra :where(.link, .button) {
				padding-inline-start: var(--space-block-300);
			}

	@media (width >= 850px) {
		.content-with-sidebar-module {
			grid-template-areas: "content sidebar";
			grid-template-columns: 1fr auto;
			column-gap: var(--site-header-padding-inline);
			padding-inline-start: var(--site-header-padding-inline);
		}

		.sidebar {
			inline-size: clamp(var(--min-inline-content), 50vi, 450px);
			margin-block-start: calc(-2 * var(--mod-block-pad));
		}
	}
	/*#endregion content-with-sidebar-module */

	/*#region control-box */
	.control-box {
		--row-gap: var(--space-block-400);
		padding-block: var(--space-block-200) var(--row-gap);
		padding-inline: var(--space-block-300);
		inline-size: fit-content;
	}

		.control-box > .control-box-title {
			padding-block-end: var(--space-block-025);
		}

			.control-box > .control-box-title:not(.no-border) {
				border-block-end: 1px solid currentColor;
			}

		.control-box > .control-box-list {
			--row-gap: var(--space-block);
		}

		.control-box button {
			inline-size: 100%;
			padding-inline: 0;
		}
	/*#endregion control-box */

	/*#region cta-module */
	.cta-module {
		--overlap: var(--site-footer-padding-block-start);
		padding-block: var(--space-block-375);
	}

		/* When the CTA has "bg-blur" enabled there are issues with z-index */
		/* preventing the overlap from appearing correctly. This is part of the "CTA-Module" fix. */
		.cta-module:not([data-variant]):not([data-bg-blur]) {
			margin-block-end: calc(-1 * var(--overlap));
		}

		.cta-module > .card {
			--row-gap: var(--space-block-300);
			align-items: center;
			margin-inline: auto;
			text-align: center;
		}

		/* "CTA-Module" fix. */
		.cta-module[data-bg-blur]:not([data-variant]) > .card::after {
			content: '';
			position: absolute;
			inset: auto 0 0 0;
			block-size: var(--overlap);
			background-color: var(--clr-gray-pale);
		}

		.cta-module .card-links {
			padding-block: var(--space-block);
			padding-inline: var(--space-inline-200);
			inline-size: clamp(var(--min-inline-content), 60%, 800px);
			background-color: var(--clr-white);
			box-shadow: var(--box-shadow-light);
			z-index: var(--z-top);
		}

			.cta-module .card-links ul {
				justify-content: center;
			}

		/*#region full-bleed*/
		.cta-module[data-variant="full-bleed"] {
			padding-block: var(--space-block-500);
			padding-inline: var(--site-header-padding-inline);
		}

			.cta-module[data-variant="full-bleed"] .card-header {
				--row-gap: var(--space-block-050);
			}

			.cta-module[data-variant="full-bleed"] .card-links {
				background-color: transparent;
				box-shadow: none;
			}
	/*#endregion full-bleed*/
	/*#endregion cta-module */

	/*#region document-tool */
	.document-tool .button:where(.doc-tool-button, .doc-link-button) {
		--btn-face: var(--clr-white);
		--btn-border: transparent;
		border: 0;
	}

	.document-tool .button.doc-tool-button {
		--btn-text: var(--clr-brown-dark);
	}

	.document-tool .button.doc-link-button {
		--btn-text: var(--clr-lagoon);
	}

	.document-tool .button.doc-tool-button {
		padding-block: var(--space-block);
		padding-inline: var(--space-block-200);
		inline-size: 100%;
		border-inline-start: 7px solid var(--btn-border);
	}

		.document-tool .button.doc-tool-button.active {
			--btn-face: var(--clr-lagoon);
			--btn-text: var(--clr-white);
			--btn-border: var(--clr-brown-light);
		}

	.document-tool .button.doc-link-button {
		padding-block: var(--space-block-050);
		padding-inline: var(--space-inline-025);
		text-align: center;
		border-block-end: 7px solid var(--btn-border);
	}

		.document-tool .button.doc-link-button.active {
			--btn-border: var(--btn-text);
		}

	.document-tool .document-toolbars {
		display: grid;
		grid-template-areas: "toolbars";
	}

	.document-tool .doc-bar {
		grid-area: toolbars;
	}

	.document-tool .fund-doc-bar-options {
		justify-content: space-evenly;
		text-align: center;
		align-items: end;
		border-block: 1px solid currentColor;
	}

	.document-tool .ticker-doc-option {
		flex-wrap: nowrap;
		justify-content: center;
	}

	.document-tool .document-viewer iframe {
		aspect-ratio: 7 / 9;
		inline-size: 100%;
		block-size: 100%;
		border: 1px solid var(--clr-stroke);
	}

	@media (width >= 1000px) {
		.document-tool {
			display: grid;
			grid-template-columns: 3fr 7fr;
			column-gap: var(--space-inline-200);
		}

			.document-tool .fund-doc-bar-options {
				flex-wrap: nowrap;
				border-block-start: 0;
			}
	}
	/*#endregion document-tool */

	.editor-target {
		--thickness: 5px;
		outline: var(--thickness) dotted var(--clr-warning);
		outline-offset: calc(-1 * var(--thickness));
	}

	/*#region featured-pages (insights / bio) */
	.featured-pages-wrapper {
		--row-gap: var(--space-block-200);
		padding-block: var(--space-block) var(--space-block-500);
		padding-inline: var(--site-header-padding-inline);
	}

	.featured-news-media.featured-pages-wrapper {
		padding-block-end: var(--space-block-900);
	}

	.featured-pages {
		display: grid;
		grid-template-areas: "thumb" "list" "paging";
		row-gap: var(--space-block-050);
	}

	.featured-pages-thumbnail {
		--bg-image: url('/assets/background/Featured-Insights_Image-Thumbnail.jpg');
		grid-area: thumb;
		max-inline-size: 360px;
	}

	.featured-pages-list {
		--row-gap: var(--space-block);
		grid-area: list;
	}

	.pagination.featured-pages-pagination {
		grid-area: paging;
		align-items: start;
	}

	.featured-page {
		--row-gap: var(--space-block-050);
		display: noone;
		padding-block: var(--row-gap);
		border-block-end: 1px solid var(--clr-stroke);
	}

		.featured-page.active {
			display: flex;
		}

	@media (width >= 850px) {
		.featured-pages {
			grid-template-areas: "thumb list" ". paging";
			grid-template-columns: 1fr 2fr;
			column-gap: var(--space-inline-200);
		}
	}
	/*#endregion featured-pages (insights / bio) */

	/*#region feedback */
	.feedback-list {
		position: fixed;
		top: 1rem;
		right: 1rem;
		z-index: var(--z-messages);
	}

	.feedback-item {
		--msgBg: var(--clr-success);
		--msgText: var(--clr-white);
		padding: 0.5em 1em;
		background-color: var(--msgBg);
		color: var(--msgText);
		box-shadow: var(--box-shadow-light);
		border-radius: 0.25em;
		opacity: 0;
		transform: translateX(120%);
		animation: slide-in-out ease-in-out 15s;
	}

		.feedback-item[data-result="error"] {
			--msgBg: var(--clr-warning);
		}
	/*#endregion feedback */

	/*#region fund related styles */
	.mutual-fund-prices {
		row-gap: var(--space-block-400);
	}

	.fund-prices-table tbody > tr:not([class]):nth-child(even) {
		background-color: var(--clr-white);
	}

	.fund-prices-table tbody > tr:not([class]):nth-child(odd) {
		background-color: var(--clr-neutral-light);
	}

	.fund-prices-table tbody td {
		padding-block: var(--space-block);
	}

	.fund-description-row > td {
		vertical-align: middle;
		border-block-end: 1px solid var(--clr-stroke);
	}

	.fund-description-row button .icon {
		rotate: var(--rotate, 0);
		transition: ease-in-out var(--animation-duration);
	}

	.fund-description-row button[aria-expanded="true"] .icon {
		--rotate: 180deg;
	}

	.fund-logo {
		max-inline-size: 4rem;
		object-fit: contain;
		filter: brightness(0.25) invert(1) opacity(0.5);
	}
	/*#endregion fund related styles */

	/*#region heading */
	.heading, .header-tag {
		line-height: 1.1;
	}
	/*#endregion heading */

	/*#region icons */
	.icon {
		display: flex;
		min-inline-size: 0.25em;
		max-inline-size: 1em;
		color: var(--icon-color, inherit);
		flex-shrink: 0;
	}

		.icon.restrict {
			inline-size: auto;
			max-inline-size: 1em;
		}

		.icon > svg {
			inline-size: 100%;
		}
	/*#endregion icons */

	/*#region inline-form */
	.inline-form {
		display: flex;
		flex-flow: row wrap;
	}

	@media (width >= 650px) {
		.inline-form {
			display: grid;
			grid-template-columns: auto 15rem auto;
			align-items: baseline;
			column-gap: var(--space-inline);
			row-gap: var(--space-block-050);
			inline-size: fit-content;
		}
	}
	/*#endregion inline-form */

	/*#region line-bar-heading */
	.inline-bar-heading {
		display: flex;
		flex-flow: row nowrap;
		column-gap: var(--space-inline);
		align-items: center;
		inline-size: 100%;
	}

		.inline-bar-heading hr {
			flex-grow: 1;
			flex-shrink: 0;
		}
	/*#endregion line-bar-heading */

	/*#region input-container */
	.input-container {
		display: flex;
		flex-flow: column nowrap;
		row-gap: var(--space-block-050);
		column-gap: var(--space-inline-050);
	}

	@container (width >= 450px) {
		.input-container.grow-inline {
			display: grid;
			grid-template-columns: auto 1fr;
		}
	}
	/*#endregion input-container */

	/*#region insights main page items */
	.insights-top-three {
	}

	.insights-filtering {
		padding-block: var(--space-block-200);
		padding-inline: var(--site-header-padding-inline);
	}

	.insights-filtering-wrapper {
		--row-gap: var(--space-block-200);
	}

	.insights-search-form {
		inline-size: 100%;
		border-block-end: 1px solid var(--clr-stroke);
	}

	.insight-type-links {
		justify-content: space-evenly;
		inline-size: 100%;
	}

	.insight-type-link {
		padding-block: var(--space-block-050);
		padding-inline: var(--space-inline-300);
		flex-grow: 1;
		text-align: center;
		border-inline-end: 1px solid transparent;
	}

		.insight-type-link[data-adjacent-sibling="true"] {
			border-color: var(--clr-stroke);
		}

		.insight-type-link .link.active {
			--ft-color: var(--clr-brown-dark);
			text-underline-offset: 0.33em;
			text-decoration: underline;
			text-decoration-color: var(--clr-stroke);
		}

	.insights-lists {
		--row-gap: var(--space-block-200);
		padding-block: var(--row-gap) var(--space-block-500);
		padding-inline: var(--site-header-padding-inline);
	}

	.insights-lists-wrapper {
		--row-gap: var(--space-block);
	}

	.insight-list {
		gap: var(--space-block-050);
	}

		.insight-list.group-one {
			display: grid;
		}

		.insight-list.group-two {
			--column-count: 4;
		}

		.insight-list.group-three {
			--column-count: 1;
		}

	@media (width>= 850px) {
		.insight-list.group-one {
			grid-template-columns: 2fr 3fr;
		}

		.insight-list.group-three {
			--column-count: 2;
		}
	}

	.insight-card {
		--pad: var(--space-block);
		position: relative;
		display: grid;
		row-gap: 0;
		column-gap: 0;
		inline-size: 100%;
		background-color: var(--clr-neutral-light);
	}

	@media (width >= 650px) {
		.insight-card.inline {
			grid-template-columns: 200px 1fr;
		}
	}

	.insight-card.prime {
		grid-row: 1 / span 3;
	}

	.insight-card-thumbnail {
		position: relative;
		display: grid;
		grid-template-areas: "thumb";
	}

		.insight-card-thumbnail > * {
			grid-area: thumb;
		}

	.blog .insight-card-thumbnail img {
		block-size: 100%;
	}

	.insight-card-thumbnail .thumbnail-overlay {
		--clr-overlay: color-mix(in hsl, transparent, black 60%);
		display: flex;
		flex-flow: column nowrap;
		justify-content: end;
		padding: var(--pad);
		background: linear-gradient(180deg, transparent, var(--clr-overlay));
		z-index: var(--z-front);
	}

	.insight-card-content {
		padding: var(--pad);
	}

		.insight-card-content > * {
			display: -webkit-box;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 2;
			line-clamp: 2;
			overflow: hidden;
		}

	.insight-card.block:not(.prime) .insight-card-description {
		display: none;
	}
	/*#endregion insights main page items */

	/*#region insight-article */
	.insight-article .copy[data-show] {
		--max-block-size: 650px;
	}

	.insight-article-thumbnail {
		margin-block-end: var(--space-block-200);
	}

		.insight-article-thumbnail img {
			max-inline-size: clamp(var(--min-inline-content), 75%, 550px);
		}

	.insight-article .sidebar .control-box {
		padding-block-end: var(--space-block-600);
	}

	.insight-article .sidebar .control-box-list {
		--row-gap: var(--space-block-200);
	}
	/*#endregion insight-article */

	/*#region link */
	.link {
		color: var(--ft-color, inherit);
		cursor: pointer;
		text-decoration: none;
	}

	.virtual-link::before {
		content: '';
		position: absolute;
		inset: var(--space-block-025);
		z-index: var(--z-front);
	}
	/*#endregion link */

	/*#region link-list */
	.link-list-module-container {
		padding-block: var(--space-block-500);
		padding-inline: var(--site-header-padding-inline);
	}

	.link-list-module-wrapper {
	}

	.link-list-module {
		display: grid;
		grid-template-columns: 1fr;
		text-align: center;
	}

	.link-list-module-item {
		display: flex;
		flex-flow: column nowrap;
		row-gap: var(--space-block);
		inline-size: 100%;
		padding-block: var(--space-block-150);
		border-block-end: 1px solid var(--clr-stroke);
	}

	@media (width >= 650px) {
		.link-list-module {
			grid-template-columns: 2fr 1fr var(--space-inline);
			text-align: left;
		}

		.link-list-module-item {
			grid-column: 1 / -1;
			display: grid;
			grid-template-columns: subgrid;
			row-gap: var(--space-block-050);
			align-items: baseline;
		}
	}
	/*#endregion link-list */

	/*#region news-feed*/
	.news-feed {
	}

		.news-feed .content {
			row-gap: var(--space-block-400);
		}

	.news-feed-items {
		row-gap: var(--space-block-200);
	}

	.news-item-copy {
		line-height: 1.4;
	}

	.news-feed .sidebar {
		--row-gap: 0;
	}

		.news-feed .sidebar .control-box {
			padding-block-end: var(--space-block-300);
		}

	.news-feed-socials {
		--row-gap: var(--space-block);
		padding-block: var(--space-block-200);
		padding-inline: var(--space-block-300) var(--space-inline-200);
		background-color: var(--clr-sidebar-extra);
	}

		.news-feed-socials .icon {
			inline-size: 1em;
		}

	.news-feed-facebook {
		--row-gap: var(--space-block);
		margin-block-start: var(--space-block-200);
	}

		.news-feed-facebook header {
			padding-block-end: var(--space-block-025);
			padding-inline: var(--space-inline-400) var(--space-inline-200);
		}

		.news-feed-facebook .header-tag {
			border-block-end: 1px solid currentColor;
		}
	/*#endregion news-feed*/

	/*#region newsletter-signup */
	.newsletter-signup {
		container: newsletter-signup / inline-size;
		padding-block: var(--pd-top, var(--space-block-1200)) var(--pd-bottom, var(--space-block-500));
		padding-inline: var(--pd-sides, var(--site-header-padding-inline));
	}

		/* Use additional CSS ".compact" on child block to use this padding for insights home page */
		.newsletter-signup.compact {
			--pd-top: var(--space-block-200);
			--pd-bottom: var(--space-block-200);
			--pd-sides: var(--space-inline-200);
		}

	.newsletter-signup-body {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		grid-template-areas: "header" "body";
		row-gap: var(--space-block);
		inline-size: 100%;
	}

	.signup-header {
		grid-area: header;
	}

	.signup-form {
		grid-area: body;
	}

		.signup-form :where(label, input[type="email"]) {
			inline-size: 100%;
		}

		.signup-form input[type="email"] {
			background-color: transparent;
		}

	@container (width >= 730px ) {
		.newsletter-signup-body {
			grid-template-columns: 1fr 1fr;
			grid-template-areas: "header ." ". body";
			column-gap: var(--space-inline-200);
			row-gap: 0;
		}
	}

	@media (width >= 730px) {
		/* We need to make room in the banner for this signup form to lift */
		body[data-page="insights"] .banner {
			padding-block-end: var(--space-block-900);
		}

		.newsletter-signup.compact {
			position: relative;
			margin-block-start: calc(-1 * var(--space-block-700));
			margin-inline: auto var(--space-inline-200);
			inline-size: clamp(var(--min-inline-content), 60%, 730px);
			box-shadow: var(--box-shadow-heavy);
			z-index: var(--z-top);
		}
	}
	/*#endregion newsletter-signup */

	/*#region pagination*/
	.pagination {
		display: flex;
		flex-flow: column nowrap;
		place-items: center;
	}

	.pagination-controls {
		--col-gap: 0;
	}

		.pagination-controls > li:not(:last-child) {
			border-inline-end: 1px solid var(--clr-stroke);
		}

	.pagination-link {
		padding-inline: var(--space-inline);
	}

		.pagination-link.active {
			color: var(--clr-brown-dark);
		}
	/*#endregion pagination*/

	/*#region quote-module */
	.quote-module {
		--pd: var(--space-block-700);
		justify-content: center;
		position: relative;
		padding-block: var(--pd) var(--space-block-900);
		padding-inline: var(--space-inline);
		text-align: center;
	}

		.quote-module::before {
			--size: 35em;
			--offset: 0.10em;
			position: absolute;
			content: "\2019\2019";
			inset-block: var(--pd);
			inset-inline: 0;
			color: color-mix(in hsl, var(--clr-brown-light), transparent 90%);
			font-size: var(--size);
			font-family: "Time New Roman";
			letter-spacing: calc(-1 * var(--offset));
			line-height: 0.85;
			rotate: 180deg;
			z-index: var(--z-flat);
		}

		.quote-module > :where(.card-header, .card-content) {
			z-index: var(--z-front);
		}

		.quote-module .card-content {
			--row-gap: var(--space-block-200);
			max-inline-size: 800px;
			margin-inline: auto;
		}

		.quote-module .card-content-copy p {
			inline-size: fit-content;
			margin-inline: auto;
			quotes: "“" "”";
		}

			.quote-module .card-content-copy p::before {
				content: open-quote;
				color: var(--clr-brown-dark);
			}

			.quote-module .card-content-copy p::after {
				content: close-quote;
				color: var(--clr-brown-dark);
			}

	@media (width >= 650px) {
		.quote-module {
			padding-inline: var(--space-inline-200);
		}
	}
	/*#endregion quote-module */

	/*#region sequenced-cards-module */
	.sequenced-cards-module {
	}

		.sequenced-cards-module .sequenced-card {
			display: grid;
			grid-template-columns: 1fr;
			grid-template-rows: 420px 128px 1fr;
			row-gap: 0;
		}

		.sequenced-cards-module .sequenced-card-visuals {
			grid-column: 1;
			grid-row: 1 / span 2;
			z-index: var(--z-flat);
		}

		.sequenced-cards-module .sequenced-card-detail {
			grid-column: 1;
			grid-row: 2 / span 2;
			padding-block: var(--space-block-300);
			padding-inline: var(--space-inline-200) var(--site-header-padding-inline);
			background-color: var(--bg-color);
			z-index: var(--z-front);
		}

	@media (width >= 650px) {
		.sequenced-cards-module .sequenced-card {
			grid-template-columns: 2fr 3fr;
			grid-template-rows: 1fr;
			column-gap: var(--gutter-col-2);
		}

		.sequenced-cards-module .sequenced-card-visuals {
			grid-row: 1;
			grid-column: 1;
		}

		.sequenced-cards-module .sequenced-card-detail {
			grid-row: 1;
			grid-column: 2;
			padding-block: var(--space-block-900);
		}
	}

	.sequenced-cards-module :where(.sequenced-card-visuals, .sequenced-card-headings, .sequenced-card-copy) {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
	}

		.sequenced-cards-module :where(.sequenced-card-visuals, .sequenced-card-headings, .sequenced-card-copy) > * {
			grid-column: 1;
			grid-row: 1;
		}

	.sequenced-cards-module .sequenced-card-indicators {
		display: grid;
		grid-template-columns: 1fr;
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
		margin-block-end: var(--space-block-200);
		inline-size: 100%;
		block-size: 7px;
		border-block-end: 1px solid var(--clr-lagoon);
	}

	.sequenced-cards-module .sequenced-card-indicator {
		background-color: transparent;
		transition: ease-in-out var(--animation-duration);
	}

		.sequenced-cards-module .sequenced-card-indicator.active {
			background-color: var(--clr-lagoon);
		}

	.sequenced-cards-module .sequenced-card-content {
		block-size: 0;
		opacity: 0;
		z-index: var(--z-back);
		transition: opacity ease-in-out var(--animation-duration);
	}

		.sequenced-cards-module .sequenced-card-content.active {
			block-size: auto;
			opacity: 1;
			z-index: var(--z-flat);
		}

	.sequenced-cards-module .sequence-controls {
		margin-block-start: var(--space-block-200);
	}
	/*#endregion sequenced-cards-module */

	/*#region share-links */
	.share-links {
		--row-gap: var(--space-block-050);
		padding-block: var(--row-gap);
	}
	/*#endregion share-links */

	/*#region tab-module */
	.tab-module-panels {
		display: grid;
		grid-template-areas: "tabItem";
	}

	.tab-module-panel-item {
		grid-area: tabItem;
	}

	.tab-module {
		--bg-color: var(--clr-white);
		--clr-accent: var(--clr-lagoon);
		--sz-accent: 7px;
		grid-template-rows: auto 1fr;
		padding-block-end: var(--space-block-500);
		background-color: var(--bg-color);
		box-shadow: var(--box-shadow-heavy);
	}

	section[data-bg-img="true"]:not([data-bg-c]) .tab-module {
		--bg-color: transparent;
	}

	.tab-module .control-box {
		inline-size: 100%;
	}

	.tab-module .control-box-list {
		flex-flow: row wrap;
		justify-content: space-evenly;
		border-block-end: 1px solid var(--clr-stroke);
	}

	.tab-module .control-box-list-item {
		padding-block: var(--space-block) calc(var(--space-block) - var(--sz-accent));
		padding-inline: var(--space-inline-200);
		border-block-end: var(--sz-accent) solid transparent;
		transition: ease-in-out var(--animation-duration);
	}

		.tab-module .control-box-list-item:has(> .button.active) {
			border-color: var(--clr-accent);
		}

	.tab-module .tab-module-extra-links {
		display: flex;
		flex-flow: row wrap;
		column-gap: var(--space-inline);
		align-content: center;
		justify-content: center;
	}
	/*#endregion tab-module */

	/*#region tab-module.division-leadership */
	.tab-module.division-leadership {
	}

		.tab-module.division-leadership .control-box {
			padding-block-end: 0;
		}

	/*#endregion tab-module.division-leadership */

	/*#region loc-side-tabs-module */
	.loc-side-tabs-module {
		display: grid;
		column-gap: 0;
		row-gap: 0;
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
	}

		.loc-side-tabs-module .control-box {
			--active-btn-text: var(--clr-brown-dark);
			--row-gap: calc(2 * var(--space-block));
			grid-row: 1;
		}

			.loc-side-tabs-module .control-box .control-box-title {
				border-color: var(--clr-brown-dark);
			}

		.loc-side-tabs-module .tab-module-panel-wrapper {
			grid-row: 2;
		}

		.loc-side-tabs-module .control-box .control-box-list button.active {
			--btn-text: var(--active-btn-text);
		}

		.loc-side-tabs-module .control-box-extra-option {
			padding-block: var(--space-block-200);
		}

		.loc-side-tabs-module .tab-module-panels {
			block-size: 100%;
		}

	.loc-side-tabs-panel-fig {
		position: relative;
		display: flex;
		flex-flow: column nowrap;
		justify-content: end;
		padding: 0;
		inline-size: 100%;
		block-size: 100%;
	}

		.loc-side-tabs-panel-fig .location-description {
			--row-gap: var(--space-block-150);
			padding-block: var(--space-block);
			padding-inline: var(--space-block-500);
			color: var(--clr-white);
		}

			.loc-side-tabs-panel-fig .location-description [data-layout="columns"] {
				--col-gap: clamp(var(--space-inline), 50%, calc(5 * var(--space-inline)));
			}

	.location-side-tabs-detail {
		--row-gap: calc(0 * var(--space-block));
	}

		.location-side-tabs-detail .link {
			margin-block-start: auto;
			padding-block-start: var(--space-block);
		}

	@media (width < 650px) {
		.loc-side-tabs-panel-fig .location-description {
			margin-block-start: 75%;
		}
	}

	@media (width >= 650px) {
		.loc-side-tabs-module {
			grid-template-rows: 1fr;
			grid-template-columns: 1fr 1fr;
		}

			.loc-side-tabs-module .control-box {
				padding-block: var(--space-block-200);
				padding-inline-start: var(--space-block-500);
			}

			.loc-side-tabs-module .tab-module-panel-wrapper {
				grid-row: 1;
			}
	}
	/*#endregion loc-side-tabs-module */

	/*#region side-tabs-module */
	.side-tabs-module {
		--clr-accent: var(--clr-lagoon);
		--sz-accent: 7px;
		display: grid;
		column-gap: var(--space-inline);
		row-gap: var(--space-block);
		grid-template-columns: 1fr;
		padding-block: clamp(var(--space-block-200), 10%, var(--space-block-700));
		padding-inline: clamp(var(--space-inline-025), 3%, var(--space-inline));
	}

		.side-tabs-module .control-box {
			padding-block: 0;
		}

		.side-tabs-module .control-box-list {
			--row-gap: 0;
		}

		.side-tabs-module .control-box-list-item {
			position: relative;
		}

			.side-tabs-module .control-box-list-item::before {
				content: '';
				position: absolute;
				inset: 0 auto 0 calc(-1 * var(--sz-accent));
				inline-size: var(--sz-accent);
				scale: 0;
				background-color: transparent;
				transition: ease-in-out var(--animation-duration);
			}

			.side-tabs-module .control-box-list-item:has(.button.active)::before {
				scale: 1;
				background-color: var(--clr-accent);
			}

			.side-tabs-module .control-box-list-item .button {
				padding-block: var(--space-block-150);
				padding-inline: var(--space-inline-200);
				border-inline-start: 1px solid var(--clr-accent);
			}

		.side-tabs-module .control-box-list .button.active {
			background-color: color-mix(in hsl, var(--clr-white), transparent 40%);
		}

	@media (width < 850px) {
		.side-tabs-module .control-box {
			padding-inline: 0;
			inline-size: auto;
		}
	}

	@media (width >= 850px) {
		.side-tabs-module {
			grid-template-columns: 1fr 1fr;
			padding-inline: var(--space-inline-300);
		}
	}
	/*#endregion side-tabs-module */

	.table-container {
		inline-size: 100%;
		overflow-x: auto;
	}

	/*#region text variants */
	.x075 {
		font-size: 0.75em;
	}

	.x1 {
		font-size: 16px;
	}

	.x2 {
		font-size: 2em;
	}

	[data-variant="text+icon"], [data-variant="icon+text"] {
		display: flex;
		flex-flow: row nowrap;
		column-gap: var(--variant-gap, var(--space-inline-050));
		align-items: baseline;
		justify-content: start;
	}

	[data-ta="c"] :where([data-variant="text+icon"], [data-variant="icon+text"]) {
		justify-content: center;
	}

	[data-variant="text+dash"]::after {
		content: "\2014";
		padding-inline-start: var(--space-inline-025);
	}

	[data-variant="icon-only"] .icon {
		inline-size: 1em;
	}

	[data-variant="icon-only"] .text {
		/* based on .visually-hidden class but modified to allow it visible when hover over ancestor button */
		position: absolute;
		block-size: 1px;
		inline-size: 1px;
		overflow: hidden;
		white-space: nowrap;
		opacity: 0;
		clip-path: inset(50%);
	}

	[data-variant="spread"] {
		display: flex;
		flex-flow: row nowrap;
		column-gap: var(--space-inline);
		align-items: start;
		justify-content: space-between;
		inline-size: 100%;
	}
	/*#endregion text variants */

	/*#region timeline */
	.timeline {
		--row-gap: var(--space-block-400);
		padding-block: var(--space-block-200);
	}

	.timeline-controls {
		--row-gap: var(--space-block-150);
		margin-inline: auto;
		padding-block-start: var(--space-block-300);
		text-align: center;
		background-color: var(--clr-white);
		box-shadow: var(--box-shadow-light);
	}

	.timeline-header {
		padding-inline: var(--space-inline-200);
	}

	.timeline-tickmarks-wrapper {
		padding-block: var(--space-block-025);
		padding-inline: var(--space-inline-200);
	}

	.timeline-tickmarks {
		--col-gap: 0;
		position: relative;
		justify-content: space-evenly;
	}

	.timeline-tickmarks-wrapper .text {
		font-size: clamp(0.5rem, 2vw, 1em);
	}

	.timeline-tickmarks::before {
		content: "";
		position: absolute;
		top: 10px;
		inline-size: 100%;
		block-size: 1px;
		background-color: var(--clr-stroke);
		z-index: var(--z-back);
	}

	.timeline-links {
		padding-block: var(--space-block);
		padding-inline: var(--space-inline);
		justify-content: space-evenly;
		background-color: var(--clr-gray-light);
	}

	.timeline-tickmark-wrapper:not(.active) .timeline-tickmark {
		filter: contrast(0.5);
		opacity: 0.5;
	}

	.timeline-tickmark {
		--icon-color: var(--clr-brown-dark);
		--row-gap: var(--space-block-025);
		display: flex;
		place-items: center;
		background-color: transparent;
	}

	.timeline-tickmark-wrapper .timeline-tickmark .icon svg {
		fill: white;
	}

	.timeline-panel {
		display: grid;
		grid-template-areas: "header" "copy" "visual" "buttons";
		row-gap: var(--space-block);
		margin-inline: auto;
		inline-size: clamp(var(--min-inline-content), 90%, 1200px);
	}

		.timeline-panel .timeline-panel-header {
			grid-area: header;
			align-self: end;
		}

		.timeline-panel .timeline-panel-copy {
			grid-area: copy;
		}

		.timeline-panel .timeline-panel-visual {
			grid-area: visual;
			inline-size: clamp(var(--min-inline-content), 100%, 500px);
			margin-inline: auto;
		}

		.timeline-panel .timeline-buttons {
			grid-area: buttons;
		}

		.timeline-panel .timeline-panel-content:not(.active) {
			display: none;
		}

		.timeline-panel .timeline-panel-visual .timeline-panel-content {
			block-size: 100%;
			inline-size: 100%;
		}

	.timeline .button.timeline-navigator {
		color: var(--clr-white);
		background-color: transparent;
	}

	@media (width >= 850px) {
		.timeline-panel {
			grid-template-areas: "header visual" "copy visual" "buttons .";
			grid-template-columns: 3fr 320px;
			grid-template-rows: auto 1fr auto;
			column-gap: var(--space-block-200);
		}
	}
	/*#endregion timeline */

	/*#region navigation */
	.navigation {
		display: flex;
		flex-flow: row wrap;
		justify-content: space-evenly;
		column-gap: var(--space-inline);
		row-gap: var(--space-block);
	}

		.navigation[data-variant="divider-menu"] > li[data-adjacent-sibling="true"] {
			display: flex;
			gap: var(--space-inline);
			align-items: center;
		}

			.navigation[data-variant="divider-menu"] > li[data-adjacent-sibling="true"]::after {
				content: '|';
			}

		.navigation[data-variant="icon-menu"] .icon {
			inline-size: 1em;
			transition: all var(--animation-duration) ease-in-out;
		}

			.navigation[data-variant="icon-menu"] .icon:where(:hover, :focus-within) {
				filter: brightness(0.5);
			}

	.nav-link {
		display: flex;
		flex-flow: row nowrap;
		gap: calc(var(--space-inline)/4);
	}

	@media (width < 991px) {
		.navigation[data-variant="icon-menu"] {
			inline-size: 100%;
		}

		.navigation[data-variant="main-menu"] {
			flex-flow: column nowrap;
			padding-inline: var(--space-inline);
		}

		.nav-link {
			color: var(--ft-color);
			padding-block-end: var(--space-block-025);
			border-block-end: 1px solid var(--clr-stroke);
		}
	}

	@media (width >= 991px) {
		nav:has( > .navigation:where([data-variant="divider-menu"],[data-variant="icon-menu"])) {
			justify-content: end;
		}

		.navigation[data-variant="main-menu"] {
			align-items: baseline;
			padding-block-end: var(--space-block-050);
			border-block-end: 1px solid var(--top-menu-border-color, var(--clr-white));
		}

			.navigation[data-variant="main-menu"].lp-menu {
				--top-menu-border-color: transparent;
				column-gap: var(--space-block-200);
				justify-content: center;
			}

		.nav-link {
			position: relative;
		}

			.nav-link::after {
				position: absolute;
				content: '';
				top: 100%;
				left: -15%;
				scale: 0.5;
				inline-size: 120%;
				block-size: 0.55em;
				background-color: transparent;
				transition: ease-in-out var(--animation-duration);
			}

			.nav-link:has(+ .submenu[data-state="open"])::after {
				background-color: currentColor;
				scale: 1;
			}
	}
	/*#endregion navigation */

	/*#region page-sections */
	.page-section {
	}

		.page-section[data-variant="col-2-v1"] {
			display: grid;
			grid-template-columns: 1fr;
			row-gap: var(--space-block-500);
			column-gap: calc(2 * var(--gutter-col-2));
			padding-block: var(--space-block-900);
			padding-inline: var(--site-header-padding-inline);
		}

	@media (width >= 850px) {
		.page-section[data-variant="col-2-v1"] {
			grid-template-columns: 1fr 1fr;
		}
	}
	/*#endregion page-sections */

	/*#region read-more-control */
	.copy[data-show] {
		--max-block-size: 600px;
	}

	.read-more-control {
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: var(--space-inline);
		align-items: center;
		padding-block: var(--space-block);
	}
	/*#endregion read-more-control */

	/*#region service-module */
	.service-module {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: auto calc(3 * var(--space-block)) auto;
		row-gap: 0;
		padding: 0;
	}

		.service-module .control-box {
			--active-btn-text: var(--clr-white);
			grid-column: 1;
			grid-row: 1 / span 2;
			z-index: var(--z-front);
		}

			.service-module .control-box .control-box-list button.active {
				--btn-text: var(--active-btn-text);
			}

		.service-module :where(.service-module-panels, .service-module-panels-item, .service-module-panel) {
			grid-column: 1 / -1;
			grid-row: 1 / -1;
			display: grid;
			grid-template-rows: subgrid;
			grid-template-columns: subgrid;
		}

	.service-module-panel {
		padding-inline: var(--space-inline-300);
	}

	.service-module-tile {
		grid-column: 1;
		grid-row: 1 / span 2;
	}

	.service-module-content {
		grid-column: 1;
		grid-row: 3;
		row-gap: var(--space-block-300);
		padding-block: var(--space-block-300);
		padding-inline: var(--space-inline-200);
		align-self: start;
		inline-size: 100%;
	}

	.service-module-card-list {
		--row-gap: 0;
	}

	.service-module-card-list-item {
		--row-gap: 0.5rem;
	}

		.service-module-card-list-item > *:first-child {
			padding-block: var(--space-block);
		}

		.service-module-card-list-item:not(:last-child) > *:first-child {
			border-block-end: 1px solid var(--clr-stroke);
		}

	@media (width < 650px) {
		.service-module .control-box {
			inline-size: 100%;
		}
	}

	@media (width >= 650px) {
		.service-module {
			grid-template-columns: 1fr 1fr;
			grid-template-rows: auto 1fr;
			column-gap: var(--gutter-col-2);
		}

			.service-module .control-box {
				margin-block-start: calc(-1 * var(--space-block-200));
				align-self: start;
				justify-self: end;
			}


		.service-module-content {
			grid-column: 2;
			grid-row: 1 / -1;
			padding-inline: 0 var(--gutter-col-2);
		}
	}

	/*#region point-list */
	.service-module-panel[data-variant="point-list"] .service-module-card-list-wrapper {
		display: flex;
		flex-flow: column;
		row-gap: var(--space-block-200);
	}

	.service-module-panel[data-variant="point-list"] .service-module-card-list {
		border-block-end: 1px solid var(--clr-stroke);
	}

	.service-module-panel[data-variant="point-list"] .service-module-card-list-item .button {
		inline-size: 100%;
	}

		.service-module-panel[data-variant="point-list"] .service-module-card-list-item .button:not(.active) {
			opacity: 0.7;
		}

	.service-module-panel[data-variant="point-list"] .service-module-card-list-item .card {
		align-items: center;
		inline-size: 100%;
		margin-inline: 0;
	}

	.service-module-panel[data-variant="point-list"] .service-module-card-list-item .card-header {
		grid-row: 1 / span 2;
	}

	.service-module-panel[data-variant="point-list"] .service-module-card-list-item :where(.card-content, .card-visuals) {
		display: none;
	}

	.service-module-panel[data-variant="point-list"] .selected-point-title {
		align-items: center;
	}

	.service-module-panel[data-variant="point-list"] .selected-point-icon {
		font-size: 2rem;
	}

	@media (width >= 650px) {
		.service-module-panel[data-variant="point-list"] .service-module-content {
			padding-inline: 0;
		}

		.service-module-panel[data-variant="point-list"] .service-module-card-list-wrapper {
			display: grid;
			grid-template-columns: 1fr 1fr;
			column-gap: var(--gutter-col-2);
		}

		.service-module-panel[data-variant="point-list"] .selected-point-target {
			padding-block-start: var(--space-block);
		}
	}
	/*#endregion point-list */

	/*#endregion service-module */

	.speedbump {
		padding-block: var(--space-block-400);
		padding-inline: var(--space-inline-200);
	}

	/*#region statistics */
	.statistics {
		--col-gap: 0;
		--stat-size: 10rem;
		display: flex;
		flex-flow: row wrap;
		align-items: start;
		justify-content: center;
	}

	.statistics-item {
		inline-size: var(--stat-size);
	}

	.statistics-item {
		border-inline-end: 1px solid transparent;
	}

		.statistics-item[data-adjacent-sibling="true"] {
			border-color: var(--clr-stroke);
		}

	.stat {
		--row-gap: 1rem;
		padding-inline: var(--space-inline-200);
		text-align: center;
	}

	@media (width >= 650px) {
		.statistics {
			--stat-size: 12rem;
		}
	}
	/*#endregion statistics */

	/*#region submenu */
	.submenu {
		display: grid;
		grid-template-columns: 1fr;
		row-gap: var(--space-block);
		padding-block-start: var(--space-block);
		border-block-end: 1px solid var(--clr-stroke);
	}

		.submenu form {
			padding-block: var(--space-block);
		}

		.submenu ul[data-layout="rows"] {
			--row-gap: calc(1.25 * var(--space-block));
		}

		.submenu[data-variant="bar-submenu"] ul[data-layout="rows"] {
			--row-gap: 0;
		}

	@media (width >= 991px) {
		.submenu {
			--slots: 2;
			--tile-width: 450px;
			position: absolute;
			display: grid;
			grid-template-columns: var(--tile-width) repeat(var(--slots), auto);
			column-gap: calc(2 * var(--space-inline));
			padding-block-start: calc(var(--space-block) + var(--site-header-height));
			padding-block-end: var(--space-block-200);
			padding-inline: var(--site-header-padding-inline);
			inset: 0 0 auto 0;
			background-color: var(--clr-white);
			z-index: var(--z-back);
		}

			.submenu .basic-container {
				grid-row: 1 / -1;
				block-size: 311px;
				inline-size: var(--tile-width);
			}

			.submenu[data-variant="bar-submenu"] {
				--tile-width: 311px;
				--slots: 3;
			}

			.submenu.bar-menu > :where([data-slot="1"], [data-slot="2"]) {
				border-inline-end: 1px solid var(--clr-stroke);
			}

			.submenu form {
				grid-column: 2 / -1;
			}
	}
	/*#endregion submenu */

	/*#region team-directory*/
	.team-directory-header {
		row-gap: var(--space-block-200);
		padding-block: var(--space-block-400);
	}

	.team-alpha-search {
		justify-content: end;
	}

		.team-alpha-search .letters {
			justify-content: end;
		}

	.search-by-name {
		flex-grow: 1;
	}

	.search-by-location {
		--col-gap: var(--space-inline-200);
	}

	.team-directory-members {
		--col-size: 228px;
		--column-count: 4;
		--item-min-width: var(--col-size); /* override calcs from even-columns layout */
		--item-max-width: var(--col-size);
		--col-gap: var(--space-inline-050);
		--row-gap: var(--space-block-400);
	}

	.team-directory-member {
		position: relative;
		display: flex;
		flex-flow: column nowrap;
		align-items: center;
		text-align: center;
	}

		.team-directory-member .headshot {
			inline-size: 175px;
		}

		.team-directory-member > :where(.team-member-name, .team-member-title) {
			padding-block: var(--space-block-050) var(--space-block-025);
		}
	/*#endregion team-directory*/

	/*#region toolbar */
	.toolbar {
		display: flex;
		flex-flow: row wrap;
		gap: var(--space-inline);
		align-items: center;
		justify-content: center;
		padding-block: var(--space-block-025);
		padding-inline: var(--space-inline-025);
		border: 1px solid var(--clr-stroke);
	}
	/*#endregion toolbar */

	/*#region video */
	.video {
		aspect-ratio: 16 / 9;
		inline-size: 100%;
	}

		.video > iframe {
			inline-size: 100%;
			block-size: 100%;
		}
	/*#endregion video */

	/*#region visitor forms */
	.visitor-form {
		position: relative;
		padding-block-start: var(--space-block-500);
		margin-block-end: min(var(--space-block-1200), 35vmax);
		box-shadow: var(--box-shadow-light);
	}

	.visitor-form-header {
		padding-block-end: var(--space-block-300);
		max-inline-size: clamp(var(--min-inline-content), 75%, 750px);
		margin-inline: auto;
		row-gap: var(--space-block-200);
	}

		.visitor-form-header.has-line {
			border-block-end: 1px solid var(--clr-stroke);
		}

	.visitor-form-trailer {
		position: absolute;
		padding-block: 1em;
		padding-inline: var(--space-inline-300);
		left: 0;
		right: 0;
		display: flex;
		flex-flow: row wrap;
		gap: var(--space-block);
		align-items: center;
		justify-content: space-between;
	}

	.visitor-form form {
		inline-size: clamp(var(--min-inline-content), 65%, 800px);
		margin-inline: auto;
	}

	.contact-us-form {
		display: grid;
		grid-template-columns: 1fr;
		column-gap: var(--space-inline);
		row-gap: var(--space-block-200);
	}

	form .col-span {
		grid-column: 1 / -1;
	}

	.find-advisor-leaders {
		--column-count: 3;
		--item-max-width: var(--min-inline-content);
		--col-gap: var(--space-inline-200);
		--row-gap: var(--space-block-300);
	}

		.find-advisor-leaders .team-directory-member {
			inline-size: var(--item-max-width);
			margin-inline: auto;
		}

	.lp-form {
		row-gap: var(--space-block-025);
		border-radius: 0.5rem;
	}

	.wizard {
		--progress: 0;
		display: grid;
		grid-template-areas: "panels";
	}

		.wizard fieldset {
			border: 0;
		}

		.wizard legend {
			position: relative;
			padding-block-end: var(--space-block-200);
			margin-block-end: var(--space-block-300);
			inline-size: 100%;
			text-align: center;
			border-block-end: 1px solid var(--clr-stroke);
		}

	.wizard-panel {
		--progress-indent: 2rem;
		--progress-meter: calc(var(--progress) - (2 * var(--progress-indent)));
		grid-area: panels;
	}

		.wizard-panel footer {
			margin-block-start: var(--space-block-400);
		}

	.wizard legend > span.text {
		max-inline-size: 85%;
		margin-inline: auto;
	}

	.wizard legend::after {
		content: '';
		position: absolute;
		block-size: 5px;
		inline-size: var(--progress-meter);
		inset: auto var(--progress-indent) 0 var(--progress-indent);
		background-color: var(--clr-lagoon);
	}

	@media (width >= 850px) {
		.contact-us-form {
			grid-template-columns: 1fr 1fr;
		}
	}
	/*#endregion visitor forms */

	/*#region your journey */
	.your-journey {
		--journey-lg: var(--space-block-720);
		--journey-md: var(--space-block-500);
		--journey-sm: var(--space-block-200);
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
		gap: 0;
	}

		.your-journey > * {
			padding-block: var(--journey-lg);
			padding-inline: var(--journey-sm);
		}

		.your-journey .basic-container {
			padding: 0;
		}

	.your-journey-intro {
		--row-gap: var(--journey-md);
		background-color: color-mix(in hsl, var(--bg-color), transparent 100%);
	}

	.your-journey-intro-cta {
		--row-gap: var(--journey-sm);
	}

	.your-journey-questions {
		background-color: color-mix(in hsl, var(--bg-color), transparent 60%);
	}

		.your-journey-questions > ul {
			--row-gap: 0;
		}

	.your-journey-question {
		padding-block: var(--journey-sm);
		border-block-start: 1px solid currentColor;
	}

		.your-journey-question:last-child {
			border-block-end: 1px solid currentColor;
		}

	@media (width >= 850px) {
		.your-journey {
			grid-template-columns: 2fr 3fr;
		}

			.your-journey > * {
				padding-inline: var(--journey-md);
			}
	}
	/*#endregion your journey */
}

@layer objects {
	#admin-toolbar {
		position: fixed;
		top: 0;
		left: var(--space-inline);
		inline-size: 205px;
		padding-block: var(--space-block-025) var(--space-block-050);
		padding-inline: var(--space-inline);
		border-end-end-radius: 0.5rem;
		border-end-start-radius: 0.5rem;
		text-align: center;
		z-index: var(--z-modal);
	}

	body.loading #site-header {
		opacity: 0;
	}

	#editor-toolbar {
		position: absolute;
		visibility: hidden;
		font-size: var(--fs-800);
		border-radius: 0.25rem;
		z-index: var(--z-modal);
	}

	#example-block {
		position: sticky;
		top: 0;
		padding: var(--space-block);
		block-size: clamp(150px, 100%, 450px);
		outline: 3px dashed var(--clr-stroke);
	}

	#site-header {
		position: relative;
		grid-column: 1;
		grid-row: 1;
		display: flex;
		flex-flow: row nowrap;
		justify-content: center;
		align-items: center;
		gap: calc(2 * var(--space-block));
		padding-block: var(--site-header-padding-block-start) var(--space-block);
		padding-inline: var(--site-header-padding-inline);
		background-color: transparent;
		opacity: 1;
		transition: opacity ease-in-out 0.01s;
		z-index: var(--z-modal);
	}

	#logo {
		inline-size: clamp(200px, 40%, 300px);
		z-index: var(--z-modal);
	}

	#site-header[data-ft-c="white"] #logo img {
		filter: brightness(0) invert(1);
	}

	#main-menu-toggle {
		position: absolute;
		inset: 1rem 1rem auto auto;
		z-index: var(--z-modal);
	}

	#main-menu {
		position: absolute;
		display: block;
		inset: 0 0 auto 0;
		padding-block-start: calc(var(--space-block) + var(--site-header-height));
		background-color: var(--clr-white);
		opacity: 0;
		z-index: var(--z-top);
	}

	#site-content {
		grid-column: 1;
		grid-row: 1 / 3;
	}

	#site-footer {
		position: relative;
		grid-column: 1;
		grid-row: 3;
		row-gap: calc(2 * var(--space-block));
		align-items: center;
		padding-block-start: var(--site-footer-padding-block-start);
		padding-block-end: var(--space-block-200);
		padding-inline: var(--space-inline-400);
		z-index: var(--z-float);
	}

	/* "CTA-Module" fix. */
	#site-content:has(.cta-module[data-bg-blur]:not([data-variant])) + #site-footer {
		padding-block-start: 0;
	}

	#speedbump-dialog {
		block-size: fit-content;
		inline-size: clamp(var(--min-inline-content), 90%, 950px);
	}

	@media (width < 991px) {
		#site-footer {
			--column-count: 1;
		}

			#site-footer > * {
				inline-size: fit-content;
				margin-inline: auto;
				text-align: center;
			}
	}

	@media (width >= 991px) {
		#site-header {
			flex-flow: column nowrap;
		}

		#main-menu-toggle {
			display: none;
		}

		#main-menu {
			position: static;
			/* Removing the block padding here wil cause an infinite loop of resizing so don't do that! */
			padding-block: var(--space-block) var(--space-block-050);
			background-color: transparent;
			opacity: 1;
		}
	}
}

@layer animations {
	[data-mobile-state], [data-state] {
		animation: var(--animation-name) var(--animation-duration) ease-in-out forwards;
	}

	/*#region show more/less */
	:where([data-show="less"], [data-show="more"]) {
		position: relative;
		max-block-size: var(--max-block-size, var(--space-block-200));
		overflow: hidden;
		z-index: var(--z-flat);
		transition: max-block-size ease-in-out var(--animation-duration);
	}

	[data-show="less"]::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		inline-size: 100%;
		block-size: 33%;
		background-image: linear-gradient(transparent, var(--bg-color));
		z-index: var(--z-front);
	}

	[data-show="more"] {
		--max-block-size: auto;
	}
	/*#endregion show more/less */

	/*#region show-hide */
	@keyframes hide {
		from {
			opacity: 1;
		}

		to {
			opacity: 0;
		}
	}

	@keyframes show {
		from {
			opacity: 0;
		}

		to {
			opacity: 1;
		}
	}

	[data-state="open"] {
		--animation-name: show;
	}

	[data-state="closing"] {
		--animation-name: hide;
	}

	[data-state="closed"] {
		display: none;
	}

	@media (width < 991px) {
		[data-mobile-state="open"] {
			--animation-name: show;
		}

		[data-mobile-state="closing"] {
			--animation-name: hide;
		}

		[data-mobile-state="closed"] {
			display: none;
		}
	}
	/*#endregion show-hide */

	@keyframes slide-in-out {
		0%, 100% {
			opacity: 0;
			transform: translateX(120%);
		}

		8%, 92% {
			opacity: 1;
			transform: translateX(-5%);
		}

		10%, 90% {
			opacity: 1;
			transform: translateX(0);
		}
	}
}

@layer overrides {
	/*#region additional css decorators */

	/*#region alignment and placement */
	.space-evenly { /* not user selectable */
		justify-content: space-evenly;
	}

	@media (width > 850px) {
		.wrap {
			column-count: 2;
			column-gap: var(--space-inline-300);
		}
	}
	/*#endregion alignment and placement */

	/*#region background size and positioning */
	.bg-pos-vert-c {
		background-position-y: center;
	}

	.bg-pos-vert-b {
		background-position-y: bottom;
	}

	.bg-pos-hz-l {
		background-position-x: left;
	}

	.bg-pos-hz-r {
		background-position-x: right;
	}

	.bg-zoom-150 {
		background-size: 150%;
	}
	/*#endregion background size and positioning */

	/*#region padding */
	[class*="pad-"] {
		--pd-b-base: var(--space-block);
	}

	/*#region pad-all */
	[class*="pad-all-"] {
		padding-block: calc(var(--pad-all-amt, 1) * var(--pd-b-base));
		padding-inline: var(--pad-inline, var(--space-inline));
	}

	.pad-all-2 {
		--pad-all-amt: 2;
		--pad-inline: var(--space-inline-200);
	}

	.pad-all-3 {
		--pad-all-amt: 3;
		--pad-inline: var(--space-inline-300);
	}

	.pad-all-4 {
		--pad-all-amt: 4;
		--pad-inline: var(--space-inline-400);
	}

	.pad-all-5 {
		--pad-all-amt: 5;
		--pad-inline: var(--space-inline-500);
	}

	.pad-all-6 {
		--pad-all-amt: 6;
		--pad-inline: var(--space-inline-600);
	}

	.pad-all-7 {
		--pad-all-amt: 7;
		--pad-inline: var(--space-inline-700);
	}

	.pad-all-8 {
		--pad-all-amt: 8;
		--pad-inline: var(--space-inline-800);
	}

	.pad-all-9 {
		--pad-all-amt: 9;
		--pad-inline: var(--space-inline-900);
	}
	/*#endregion pad-all */

	/*#region pad-block */
	[class*="pad-block-"] {
		padding-block: calc(var(--pad-bl-amt, 1) * var(--pd-b-base));
	}

	.pad-block-2 {
		--pad-bl-amt: 2;
	}

	.pad-block-3 {
		--pad-bl-amt: 3;
	}

	.pad-block-4 {
		--pad-bl-amt: 4;
	}

	.pad-block-5 {
		--pad-bl-amt: 5;
	}

	.pad-block-6 {
		--pad-bl-amt: 6;
	}

	.pad-block-7 {
		--pad-bl-amt: 7;
	}

	.pad-block-8 {
		--pad-bl-amt: 8;
	}

	.pad-block-9 {
		--pad-bl-amt: 9;
	}
	/*#endregion pad-block */

	/*#region pad-inline */
	[class*="pad-inline-"] {
		padding-inline: var(--pad-inline, var(--space-inline));
	}

	.pad-inline-2 {
		--pad-inline: var(--space-inline-200);
	}

	.pad-inline-3 {
		--pad-inline: var(--space-inline-300);
	}

	.pad-inline-4 {
		--pad-inline: var(--space-inline-400);
	}

	.pad-inline-5 {
		--pad-inline: var(--space-inline-500);
	}

	.pad-inline-6 {
		--pad-inline: var(--space-inline-600);
	}

	.pad-inline-7 {
		--pad-inline: var(--space-inline-700);
	}

	.pad-inline-8 {
		--pad-inline: var(--space-inline-800);
	}

	.pad-inline-9 {
		--pad-inline: var(--space-inline-900);
	}
	/*#endregion pad-inline */

	/*#region pad-top */
	[class*="pad-top-"] {
		padding-block-start: calc(var(--pad-top-amt, 1) * var(--pd-b-base));
	}

	.pad-top-2 {
		--pad-top-amt: 2;
	}

	.pad-top-3 {
		--pad-top-amt: 3;
	}

	.pad-top-4 {
		--pad-top-amt: 4;
	}

	.pad-top-5 {
		--pad-top-amt: 5;
	}

	.pad-top-6 {
		--pad-top-amt: 6;
	}

	.pad-top-7 {
		--pad-top-amt: 7;
	}

	.pad-top-8 {
		--pad-top-amt: 8;
	}

	.pad-top-9 {
		--pad-top-amt: 9;
	}
	/*#endregion pad-top */

	/*#region pad-right */
	[class*="pad-right-"] {
		padding-inline-end: var(--pad-right-amt, var(--space-inline));
	}

	.pad-right-2 {
		--pad-right-amt: var(--space-inline-200);
	}

	.pad-right-3 {
		--pad-right-amt: var(--space-inline-300);
	}

	.pad-right-4 {
		--pad-right-amt: var(--space-inline-400);
	}

	.pad-right-5 {
		--pad-right-amt: var(--space-inline-500);
	}

	.pad-right-6 {
		--pad-right-amt: var(--space-inline-600);
	}

	.pad-right-7 {
		--pad-right-amt: var(--space-inline-700);
	}

	.pad-right-8 {
		--pad-right-amt: var(--space-inline-800);
	}

	.pad-right-9 {
		--pad-right-amt: var(--space-inline-900);
	}
	/*#endregion pad-right */

	/*#region pad-bottom */
	[class*="pad-bottom-"] {
		padding-block-end: calc(var(--pad-bottom-amt, 1) * var(--pd-b-base));
	}

	.pad-bottom-2 {
		--pad-bottom-amt: 2;
	}

	.pad-bottom-3 {
		--pad-bottom-amt: 3;
	}

	.pad-bottom-4 {
		--pad-bottom-amt: 4;
	}

	.pad-bottom-5 {
		--pad-bottom-amt: 5;
	}

	.pad-bottom-6 {
		--pad-bottom-amt: 6;
	}

	.pad-bottom-7 {
		--pad-bottom-amt: 7;
	}

	.pad-bottom-8 {
		--pad-bottom-amt: 8;
	}

	.pad-bottom-9 {
		--pad-bottom-amt: 9;
	}
	/*#endregion pad-bottom */

	/*#region pad-left */
	[class*="pad-left-"] {
		padding-inline-start: var(--pad-left-amt, var(--space-inline));
	}

	.pad-left-2 {
		--pad-left-amt: var(--space-inline-200);
	}

	.pad-left-3 {
		--pad-left-amt: var(--space-inline-300);
	}

	.pad-left-4 {
		--pad-left-amt: var(--space-inline-400);
	}

	.pad-left-5 {
		--pad-left-amt: var(--space-inline-500);
	}

	.pad-left-6 {
		--pad-left-amt: var(--space-inline-600);
	}

	.pad-left-7 {
		--pad-left-amt: var(--space-inline-700);
	}

	.pad-left-8 {
		--pad-left-amt: var(--space-inline-800);
	}

	.pad-left-9 {
		--pad-left-amt: var(--space-inline-900);
	}
	/*#endregion pad-left */

	/*#endregion padding */

	/*#region row-limit (text) */
	[class*="row-limit-"] {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: var(--lines, 1);
		line-clamp: var(--lines, 1);
		overflow: hidden;
	}

	.row-limit-2 {
		--lines: 2;
	}

	.row-limit-3 {
		--lines: 3;
	}

	.row-limit-4 {
		--lines: 4;
	}

	.row-limit-5 {
		--lines: 5;
	}
	/*#endregion row-limit (text) */

	/*#region shadows */
	.box-shadow-light {
		box-shadow: var(--box-shadow-light);
	}

	.box-shadow-heavy {
		box-shadow: var(--box-shadow-heavy);
	}
	/*#endregion shadows */

	/*#region shapes */
	[class*="asp-rat-"] {
		aspect-ratio: var(--aspect-ratio, 1);
		block-size: auto;
	}

		[class*="asp-rat-"] :where(figure, img, .basic-container, iframe) {
			aspect-ratio: var(--aspect-ratio, 1);
		}

	.asp-rat-square {
		--aspect-ratio: 1;
	}

	.asp-rat-2 {
		--aspect-ratio: 2;
	}

	.asp-rat-3-2 {
		--aspect-ratio: 3 / 2;
	}

	.asp-rat-5-4 {
		--aspect-ratio: 5 / 4;
	}

	.asp-rat-7-3 {
		--aspect-ratio: 7 / 3;
	}

	.asp-rat-16-9 {
		--aspect-ratio: 16 / 9;
	}
	/*#endregion shapes */

	/*#region sizes */
	.half {
		max-inline-size: min(50%, 550px);
	}

	.one-third {
		max-inline-size: min(33%, 550px);
	}
	/*#endregion sizes */

	/*#endregion additional css decorators */

	/*#region double-column variants */
	@media (width < 991px) {
		.reverse-flow-mobile[data-variant="col-2-v1"] {
			display: flex;
			row-gap: var(--space-block);
			flex-flow: column-reverse nowrap;
		}
	}

	@media (width >= 991px) {
		[data-variant^="col-2"] {
			display: grid;
			grid-template-columns: 1fr 1fr;
			grid-template-areas: "slot1 slot2";
			column-gap: var(--col-gap, var(--gutter-col-2));
		}

			[data-variant^="col-2"] > [data-slot="1"] {
				grid-area: slot1;
			}

			[data-variant^="col-2"] > [data-slot="2"] {
				grid-area: slot2;
			}

		[data-variant="col-2-v2"] {
			grid-template-areas: "slot1 ." "slot2 .";
		}
	}
	/*#endregion double-column variants */

	/*#region display */
	.hidden {
		display: none;
	}

	.visually-hidden:not(:focus) {
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	[data-slot]:not(:has(*)) {
		display: none;
	}

	@media (width < 991px) {
		[data-show="do"] { /* desktop only */
			display: none;
		}
	}

	@media (width >= 991px) {
		[data-show="mo"] { /* mobile only */
			display: none;
		}
	}
	/*#endregion display */

	/*#region a11y */
	@media (prefers-reduced-motion: reduce) {
		:root {
			--animation-duration: 0.01ms !important;
		}

		*,
		*::before,
		*::after {
			animation-duration: var(--animation-duration);
			animation-iteration-count: 1 !important;
			transition-duration: 0.01ms !important;
			scroll-behavior: auto !important;
		}

		html:focus-within {
			scroll-behavior: auto;
		}
	}
	/*#endregion a11y */

	/*#region .raised & data-lifts */
	[data-lift] {
	}

		[data-lift] > :first-child {
			--squish: var(--space-inline-200);
			--lifted-padding: calc(var(--site-header-padding-inline) - var(--squish));
			position: relative;
			margin-inline: var(--squish);
			padding-inline: var(--lifted-padding);
			z-index: var(--z-front);
		}

	[data-variant="raised"] {
		--dflt: var(--space-block-800);
		position: relative;
		margin-block-start: calc(-1 * var(--raise-amt, var(--dflt)));
		z-index: var(--z-float);
	}

	@media (width < 991px) {
		[data-variant="raised"] {
			margin-inline: auto;
			aspect-ratio: 16 / 9;
			inline-size: clamp(var(--min-inline-content), 100%, 500px);
		}
	}
	/*#endregion .raised & data-lifts */

	section[data-bg-img-limit^="bil-top"] > :is(*, :first-child) {
		/* :is() added to fight specificity of [data-lift] > :first-child above */
		margin-inline: auto;
		inline-size: max(var(--min-inline-content), 90%);
	}

	/*#region editor stuff */

	.ql-editor {
		display: flex;
		flex-flow: column nowrap;
		row-gap: 1em; /* Space between paragraphs or elements */
	}

	select.ql-symbols {
		max-inline-size: 3rem;
		font-size: var(--fs-300);
		border-radius: 0;
		border: none;
		background-color: var(--clr-neutral-light);
		cursor: pointer;
	}

	/*#endregion editor stuff */
}
