﻿@layer fonts, settings, elements, layouts, styles, components, objects, animations, overrides;

@layer fonts {
	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Regular.woff2") format('woff2');
		font-style: normal;
		font-weight: 400;
		font-display: swap;
	}

	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Light.woff2") format('woff2');
		font-style: normal;
		font-weight: 300;
		font-display: swap;
	}

	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Bold.woff2") format('woff2');
		font-weight: 700;
		font-display: swap;
	}

	@font-face {
		font-family: "Lato";
		src: url("/style/fonts/Lato-Italic.woff2") format('woff2');
		font-style: italic;
		font-display: swap;
	}

	@font-face {
		font-family: "Fanwood Text";
		src: url("/style/fonts/FanwoodText-Regular.woff2") format('woff2');
		font-style: normal;
		font-weight: 400;
		font-display: swap;
	}

	@font-face {
		font-family: "Fanwood Text";
		src: url("/style/fonts/FanwoodText-Italic.woff2") format('woff2');
		font-style: italic;
		font-weight: 400;
		font-display: swap;
	}
}

@layer settings {
	:root {
		interpolate-size: allow-keywords;
		/* Colors */
		--clr-lagoon: hsl(186 100% 13%); /* 01 */
		--clr-blue-midnight: hsl(207 100% 17%); /* 02 */
		--clr-taupe: hsl(35 7% 52%); /* 03 */
		--clr-gray-light: hsl(0 0% 96%); /* 04 */
		--clr-gray-medium: hsl(0 0% 85%); /* 05 */
		--clr-gray-dark: hsl(220 2% 35%);
		--clr-white: hsl(0 100% 100%); /* 06 */
		--clr-gold: hsl(31 61% 48%); /* 07 */
		--clr-blue-steel: hsl(201 23% 47%); /* 08 */
		--clr-warning: hsl(357 58% 36%); /* 09 */
		--clr-blue-green: hsl(188 100% 22%); /* 10 */
		--clr-black: hsl(220 0% 14%);
		--clr-default-bg: var(--clr-white);
		--clr-default-ft: var(--clr-gray-dark);
		--clr-success: hsl(128 76% 22%);
		--clr-stroke: var(--clr-gray-medium);
		/* 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: clamp(2rem, 5vi, 2.75em);
		--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: 130px;
		/* 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);
		--site-header-padding-inline: var(--space-inline-900);
		--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;
		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;
		min-block-size: 100%;
		min-block-size: 100vh;
		min-block-size: 100svh;
		/*inline-size: clamp(var(--min-inline-panel), 100%, 1680px);
		margin-inline: auto;*/
		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-blue-midnight);
		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-gray-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-gray-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-gray-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-gray-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-gray-dark);
		border-radius: var(--border-radius-default);
	}
	/*#endregion form elements */

	/*#region table related */
	table {
		inline-size: 100%;
		border: none;
		border-collapse: collapse;
		background-color: var(--clr-white);
	}

		table > caption {
			padding-block: var(--space-block);
			padding-inline: var(--space-inline);
			text-align: left;
		}

	tbody > tr:nth-child(even) {
		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-blue-midnight);
		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);
		--row-gap: var(--space-block);
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(min(var(--item-min-width), 100%), 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="stroke"] {
		--bg-color: var(--clr-stroke);
	}

	[data-bg-c="black"] {
		--bg-color: var(--clr-black);
	}

	[data-bg-c="blue-green"] {
		--bg-color: var(--clr-blue-green);
	}

	[data-bg-c="gray-dark"] {
		--bg-color: var(--clr-gray-dark);
	}

	[data-bg-c="gold"] {
		--bg-color: var(--clr-gold);
	}

	[data-bg-c="taupe"] {
		--bg-color: var(--clr-taupe);
	}

	[data-bg-c="lagoon"] {
		--bg-color: var(--clr-lagoon);
	}

	[data-bg-c="gray-light"] {
		--bg-color: var(--clr-gray-light);
	}

	[data-bg-c="gray-medium"] {
		--bg-color: var(--clr-gray-medium);
	}

	[data-bg-c="blue-midnight"] {
		--bg-color: var(--clr-blue-midnight);
	}

	[data-bg-c="blue-steel"] {
		--bg-color: var(--clr-blue-steel);
	}

	[data-bg-c="warning"] {
		--bg-color: var(--clr-warning);
	}

	[data-bg-c="success"] {
		--bg-color: var(--clr-success);
	}

	[data-bg-c="white"] {
		--bg-color: var(--clr-white);
	}
	/*#endregion color */

	/*#region images */
	[data-bg-img] {
		--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="stroke"] {
		--ft-color: var(--clr-stroke);
	}

	[data-ft-c="black"] {
		--ft-color: var(--clr-black);
	}

	[data-ft-c="blue-green"] {
		--ft-color: var(--clr-blue-green);
	}

	[data-ft-c="gray-dark"] {
		--ft-color: var(--clr-gray-dark);
	}

	[data-ft-c="gold"] {
		--ft-color: var(--clr-gold);
	}

	[data-ft-c="taupe"] {
		--ft-color: var(--clr-taupe);
	}

	[data-ft-c="lagoon"] {
		--ft-color: var(--clr-lagoon);
	}

	[data-ft-c="gray-light"] {
		--ft-color: var(--clr-gray-light);
	}

	[data-ft-c="gray-medium"] {
		--ft-color: var(--clr-gray-medium);
	}

	[data-ft-c="blue-midnight"] {
		--ft-color: var(--clr-blue-midnight);
	}

	[data-ft-c="blue-steel"] {
		--ft-color: var(--clr-blue-steel);
	}

	[data-ft-c="warning"] {
		--ft-color: var(--clr-warning);
	}

	[data-ft-c="white"] {
		--ft-color: var(--clr-white);
	}

	[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-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: grid;
		grid-template-columns: 1fr;
		row-gap: var(--bnr-row-gap, var(--space-block));
		padding-inline: var(--site-header-padding-inline);
		padding-block-end: var(--space-block-300);
		opacity: 1;
		transition: all ease-in-out 0.02s;
	}

		.banner[data-ta="c"] > * {
			inline-size: clamp(var(--min-inline-content), 80%, 800px);
			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-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-gray-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 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*/

	/*#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-blue-midnight);
			--btn-text: var(--clr-white);
		}

		.button[data-variant="secondary"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-lagoon);
			--btn-text: var(--clr-white);
		}

		.button[data-variant="tertiary"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-gray-light);
			--btn-text: var(--clr-black);
		}

		.button[data-variant="quaternary"] {
			--btn-border-width: 1px;
			--btn-face: var(--clr-gold);
			--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], .button[data-state="busy"] {
			cursor: not-allowed;
			filter: grayscale(1);
			pointer-events: none;
			opacity: 0.75;
		}

	.checkbox-button {
		--c-text: var(--clr-lagoon);
		--c-brd: var(--clr-gray-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 {
		block-size: 100%;
	}

		.card:has( .virtual-link) {
			position: relative;
		}

		.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 icon-card*/
		.card[data-variant="icon-card"] {
			--icon-color: var(--ft-color);
			/*--row-gap: var(--space-block-050);*/
			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*/
	/*#endregion card */

	/*#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-top);
	}

	.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);
	}

		.content-flow[data-variant] {
			display: grid;
			grid-template-columns: 1fr;
			column-gap: var(--space-inline);
		}
	/*#endregion content-flow */

	/*#region content-grid*/
	.content-grid {
		padding-block: var(--space-block-200) 0;
		inline-size: 100%;
	}

	.content-grid-items {
		--item-min-width: 15rem;
	}

	.content-grid-item {
		--row-gap: var(--space-block);
		--pd: var(--space-block);
		position: relative;
		padding: var(--pd);
	}

	.content-grid .content-grid-links {
		--col-gap: var(--space-inline-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-gray-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[data-variant="col-3"] .content-grid-items {
		--column-count: 3;
	}
	/*#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 {
		padding-block: var(--space-block-375);
	}

		.cta-module > .card {
			--row-gap: var(--space-block-300);
			align-items: center;
			margin-inline: auto;
			text-align: center;
		}

		.cta-module .card-links {
			padding-block: var(--space-block);
			padding-inline: var(--space-inline-200);
			border: 2px solid currentColor;
		}

			.cta-module .card-links ul {
				justify-content: center;
			}
	/*#endregion cta-module */

	/*#region divider */
	.divider {
		--div-bg: url(/assets/background/divider-plain.png);
		--div-pos: left;
		--div-size: contain;
		background-color: transparent;
		background-image: var(--div-bg);
		background-repeat: no-repeat;
		background-position: var(--div-pos);
		background-size: var(--div-size);
		border: none;
		inline-size: 77px;
		block-size: 35px;
	}

		.divider[data-variant] {
			--div-pos: center;
			--div-size: cover;
			inline-size: min(378px, 100%);
			margin-inline: auto;
		}

		.divider[data-variant="divider-logo-white"] {
			--div-bg: url(/assets/background/divider-logo-white.png);
		}

		.divider[data-variant="divider-logo-midnight"] {
			--div-bg: url(/assets/background/divider-logo-midnight.png);
		}
	/*#endregion divider */

	.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 {
		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 heading */
	.heading, .header-tag {
		line-height: 1.1;
		text-wrap: balance;
	}
	/*#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 */

	.linkedin-embed {
		inline-size: 100%;
		min-block-size: 500px;
	}

	/*#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-wrapper {
		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.active {
		--ft-color: var(--clr-gray-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 {
		display: grid;
		gap: var(--space-block-050);
	}

	@media (width >= 850px) {
		.insight-list.group-one {
			grid-template-columns: 2fr 3fr;
		}

		.insight-list.group-two {
			grid-template-columns: repeat(4, 1fr);
		}

		.insight-list.group-three {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	.insight-card {
		--_bg-color: var(--insight-card-bg, var(--clr-gray-light));
		--pad: var(--space-block);
		position: relative;
		display: grid;
		row-gap: 0;
		column-gap: 0;
		inline-size: 100%;
		background-color: var(--clr-gray-light);
	}

		.insight-card.block {
			grid-template-rows: 1fr 1fr;
		}

	@media (width >= 650px) {
		.insight-card.inline {
			grid-template-columns: 200px 1fr;
		}
	}

	.bondiq {
		--insight-card-bg: var(--clr-taupe);
	}

	.quarterly {
		--insight-card-bg: var(--clr-gold);
	}

	.white {
		--insight-card-bg: var(--clr-lagoon);
	}

	.update {
		--insight-card-bg: var(--clr-warning);
	}

	.chartiq {
		--insight-card-bg: var(--clr-blue-green);
	}

	.equityiq {
		--insight-card-bg: var(--clr-blue-steel);
	}

	.stratcom {
		--insight-card-bg: var(--clr-blue-midnight);
	}

	@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";
		background-color: var(--insight-card-bg);
	}

		.insight-card-thumbnail > * {
			grid-area: thumb;
		}

	.blog .insight-card-thumbnail img {
		block-size: 100%;
	}

	.insight-card-thumbnail .thumbnail-overlay {
		display: flex;
		flex-flow: column nowrap;
		justify-content: end;
		padding: var(--pad);
		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-instance {
		border-block-end: 1rem solid var(--insight-card-bg);
	}

	.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 */

	.logo {
		inline-size: clamp(200px, 40%, 300px);
		z-index: var(--z-modal);
	}

	/*#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));
	}

	@media (width >= 730px) {
		.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);
		}
	}

	.newsletter-signup.compact {
		--pd-top: var(--space-block-200);
		--pd-bottom: var(--space-block-200);
		--pd-sides: var(--space-inline-200);
	}
	/*#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-gray-dark);
		}
	/*#endregion pagination*/

	/*#region share-links */
	.share-links {
		--row-gap: var(--space-block-050);
		padding-block: var(--row-gap);
	}
	/*#endregion share-links */

	.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-variant="icon+text"] {
		flex-direction: row-reverse;
	}

	[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 navigation */
	.navigation {
		display: flex;
		flex-flow: row wrap;
		justify-content: space-evenly;
		column-gap: var(--space-inline);
		row-gap: var(--space-block);
	}

	.nav-link {
		display: flex;
		flex-flow: row nowrap;
		gap: calc(var(--space-inline)/4);
	}

	@media (width < 991px) {
		.nav-link {
			color: var(--ft-color);
			padding-block-end: var(--space-block-025);
			border-block-end: 1px solid var(--clr-stroke);
		}
	}

	@media (width < 991px) {
		.navigation[data-variant="main-menu"] {
			flex-flow: column nowrap;
		}
	}

	@media (width >= 991px) {
		.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] {
			display: grid;
			grid-template-columns: 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 */

	.speedbump {
		padding-block: var(--space-block-400);
		padding-inline: var(--space-inline-200);
	}
	/*#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: 3;
			--tile-width: 250px;
			grid-template-columns: var(--tile-width) repeat(var(--slots), auto);
			position: absolute;
			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-slot]:not([data-slot="0"]) {
				padding-inline-end: 1rem;
			}

			.submenu > :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);
	}

	.editor.toolbar {
		background-color: var(--clr-white);
	}
	/*#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: var(--space-block-500);
		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;
	}



	@media (width >= 850px) {
		.contact-us-form {
			grid-template-columns: 1fr 1fr;
		}
	}
	/*#endregion visitor forms */
}

@layer objects {
	body.loading :where(#site-header, .banner) {
		opacity: 0.3;
	}

	#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);
	}

	#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: column nowrap;
		justify-content: center;
		align-items: center;
		gap: calc(1 * var(--space-block));
		opacity: 1;
		padding-block: var(--site-header-padding-block-start) var(--space-block);
		padding-inline: var(--site-header-padding-inline);
		background-color: transparent;
		transition: all ease-in-out 0.02s;
		z-index: var(--z-modal);
	}

		#site-header[data-ft-c="white"] #site-header-logo img {
			filter: brightness(0) invert(1);
		}

	#main-menu-toggle {
		position: absolute;
		inset: 2.25rem 1rem auto auto;
		z-index: var(--z-modal);
	}

	#main-menu {
		position: absolute;
		display: block;
		inset: 0 0 auto 0;
		inline-size: 100%;
		padding-block-start: calc(var(--space-block) + var(--site-header-height));
		padding-inline: var(--space-inline);
		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;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-areas: "logo" "nav1" "nav2" "cpyrt";
		gap: var(--space-block-150);
		align-items: center;
		justify-items: center;
		padding-block: var(--space-block-200);
		padding-inline: var(--space-inline-400);
		z-index: var(--z-float);
	}

	#site-footer-logo {
		grid-area: logo;
	}

	#site-footer-primary-nav {
		grid-area: nav1;
	}

	#site-footer-secondary-nav {
		grid-area: nav2;
	}

	#site-footer-copyright {
		grid-area: cpyrt;
	}

	/* "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-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! */
			align-items: baseline;
			padding-block: var(--space-block) var(--space-block-050);
			background-color: transparent;
			border-block-end: 1px solid var(--top-menu-border-color, var(--clr-white));
			opacity: 1;
		}

			#main-menu.lp-menu {
				--top-menu-border-color: transparent;
				column-gap: var(--space-block-200);
				justify-content: center;
			}

		#site-footer {
			grid-template-areas: "logo nav1" "logo nav2" "cpyrt cpyrt";
			align-items: start;
		}

		#site-footer-logo {
			justify-self: start;
		}

		#site-footer-primary-nav {
			justify-self: end;
		}

		#site-footer-secondary-nav {
			justify-self: end;
		}
	}
}

@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);
		}
	}

	.vt-a-c {
		align-self: center;
		block-size: auto;
	}

	.vt-a-b {
		align-self: end;
	}
	/*#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;
		}
	}

	[data-variant^="col-2"] {
		display: grid;
		row-gap: var(--space-block-200);
		column-gap: calc(2 * var(--gutter-col-2));
	}

	@media (width >= 991px) {
		[data-variant="col-2-v1"], [data-variant="col-2-v2"] {
			grid-template-columns: 1fr 1fr;
		}

		[data-variant="col-2-v3"] {
			grid-template-columns: 2fr 3fr;
		}

		[data-variant="col-3"] {
			grid-template-columns: 1fr 1fr 1fr;
		}
	}
	/*#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: no-preference) {
		@view-transition {
			navigation: auto;
		}
	}

	@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-gray-light);
		cursor: pointer;
	}

	/*#region quill overrides from co-pilot to fix inline styles problem */
	/* === Overlay behind the modal === */
	.ql-html-overlayContainer {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
		background: rgba(0,0,0,0.5) !important;
		z-index: 9998 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	/* === Modal container === */
	.ql-html-popupContainer {
		background: #fff !important;
		width: 80% !important;
		max-width: 900px !important;
		max-height: 80vh !important;
		padding: 1rem !important;
		border: 1px solid #ccc !important;
		border-radius: 4px !important;
		box-shadow: 0 0 20px rgba(0,0,0,0.3) !important;
		z-index: 9999 !important;
		display: flex !important;
		flex-direction: column !important;
	}

	/* === Title === */
	.ql-html-popupTitle {
		font-weight: bold !important;
		margin-bottom: 1rem !important;
		display: block !important;
	}

	/* === Text area container === */
	.ql-html-textContainer {
		flex: 1 !important;
		margin-bottom: 1rem !important;
		overflow: auto !important;
	}

	.ql-code-block {
		text-wrap: auto;
	}
	/* === Code editor area === */
	.ql-html-textArea .ql-editor {
		min-height: 300px !important;
		font-family: monospace !important;
		white-space: pre !important;
		border: 1px solid black;
		height: clamp(100px, 80vh, 500px) !important;
	}

	/* === Button group === */
	.ql-html-buttonGroup {
		display: flex !important;
		justify-content: flex-end !important;
		gap: 0.5rem !important;
	}

		.ql-html-buttonGroup button {
			padding: 0.4rem 0.8rem !important;
			border: 1px solid #888 !important;
			background: #eee !important;
			cursor: pointer !important;
		}

			.ql-html-buttonGroup button:hover {
				background: #ddd !important;
			}

	/*#endregion quill overrides from co-pilot to fix inline styles problem */

	/*#endregion editor stuff */
}
