/* -----------------------------------------------------------------------------
/* CSS variables
----------------------------------------------------------------------------- */

:root {

	--font-sans: 'Outfit', sans-serif;
	--font-serif: 'Source Serif 4', serif;

	--color-gray-dark: #212224;
	--color-gray-md: #747576;
	--color-gray-md2: #969798;
	--color-gray-lite: #ebebeb;
	--color-green: #55632b;
	--color-green-alt: #657A29;
	--color-green-lite: #CEE0B8;
	--color-green-xlite: #f5f9f0;
	--color-green-dark: #3a431d;
	--color-green-xdark: #252b12;
	--color-orange: #e15333;
	--color-orange-dark: #c24124;
	--color-tan-dark: #241e19;
	--color-tan-md: #59544f;
	--color-tan-md2: #c1bebb;
	--color-tan-md3: #e3e0de;
	--color-tan-lite: #f5f3f1;

	--br: 6px;

}

/* -----------------------------------------------------------------------------
/* Base elements
----------------------------------------------------------------------------- */

*,
*:before,
*:after {
	box-sizing: inherit;
}

#h {
	box-sizing: border-box;
	font-size: 10px;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	overscroll-behavior-y: none;
}

#b {
	display: flex;
	flex-direction: column;
	min-block-size: 100vh;
	margin: 0;
	font-weight: 350;
	font-size: 1.6rem;
	line-height: 1.75;
	font-family: var(--font-serif);
	color: var(--color-gray-dark);
	overscroll-behavior-y: none;
}

/* -----------------------------------------------------------------------------
/* Typography
----------------------------------------------------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-block: 0;
	font-weight: 700;
	font-family: var(--font-sans);
	text-wrap: pretty;
}

.h2,
h2 {
	margin-block: 0 2.4rem;
	font-size: 3.2rem;
	line-height: 1.333;

	&:last-child {
		margin-block: 0;
	}

}

.h3,
h3 {
	margin-block: 2.4rem 0;
	font-size: 2rem;
	line-height: 1.6;

	&:first-child {
		margin-block: 0;
	}

}

blockquote,
dd,
dl,
ol,
p,
ul {
	margin-block: 0 2.4rem;

	&:last-child {
		margin-block: 0;
	}

}

dt {
	margin-block: 0;
	font-weight: 700;
	font-size: 1.7rem;
	line-height: 1.4;
	font-family: var(--font-sans);
}

dd {
	margin-inline: 0;
}

blockquote,
dt,
p {
	text-wrap: pretty;
}

blockquote {
	font-style: italic;
	
	em {
		font-style: normal;
	}
	
}

hr {
	display: table;
	inline-size: 7.2rem;
	block-size: .6rem;
	margin-block: 2.4rem;
	margin-inline: auto;
	border: 0;
	clear: both;
	background: radial-gradient(circle, var(--color-gray-dark) 10%, transparent 10%) center / 3rem 1rem;
}

b,
dt,
strong {
	font-weight: 600;
}

#pgTitle {
	margin-block: 0 0;
	font-size: 3rem;
	line-height: 1.2;
	text-align: center;

	&:has(+ #pgSummary) {
		margin-block: 0 1rem;
	}

	&:has(+ p) {
		margin-block: 0 2.4rem;
	}

}

#pgSummary {
	font: 350 italic 1em/1.75 var(--font-serif);
	text-align: center;

	em,
	i {
		font-style: normal;
	}

}

/* -----------------------------------------------------------------------------
/* Links
----------------------------------------------------------------------------- */

a {
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	transition: color .2s, text-decoration-color .2s;

	&:link,
	&:visited {
		color: var(--color-green-alt);
	}

	&:hover,
	&:active,
	&:focus {
		color: var(--color-orange);
	}

}

/* -----------------------------------------------------------------------------
/* Media
----------------------------------------------------------------------------- */

figure {
	margin: 0 0 2.4rem;

	&:last-child {
		margin-block: 0;
	}

}

img {
	display: block;
	inline-size: 100%;
	block-size: auto;
	border-radius: var(--br);
}

.video {
	position: relative;
	inline-size: 100%;
	block-size: 0;
	padding-block: 0 56.25%;

	& > * {
		position: absolute;
		inset: 0;
		inline-size: 100%;
		block-size: 100%;
	}

}

/* -----------------------------------------------------------------------------
/* Page header
----------------------------------------------------------------------------- */

#hdr {
	position: relative;
	z-index: 1;
	flex: 0 1 auto;
	padding: 1.2rem 2rem;
	background: #fff;
	box-shadow: 0 0 5px 0 rgba(0,0,0,.75);

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

}

#hdrLogo {
	flex: 1 0 18rem;
	max-inline-size: 18rem;
	margin: 0;
}

#hdrNav {
	display: none;
	font: 500 1.6rem/1 var(--font-sans);
	letter-spacing: .1px;

	& > ul {
		display: flex;
		gap: 0;
	}

	li {
		display: flex;
		align-items: center;
		gap: .5rem;
		position: relative;
	
		&.level-1 {
			padding: 0 1.5rem;

			& > a {
				padding: 1.5rem 0;
				color: var(--color-gray-md);
	
				&.c-btn {
					block-size: auto;
					padding-inline: 2rem;
	
					&:hover,
					&:active,
					&:focus {
						color: #fff;
					}
	
				}
	
				&:hover,
				&:active,
				&:focus {
					color: var(--color-gray-dark);
				}
	
			}
		
			&.has-submenu {
		
				& > a {
					transition: none;
				}
		
			}
	
		}

		&.here {
	
			& > a {
				color: var(--color-gray-dark);
			}
	
		}

		&.give {
			padding-inline-end: 0;
		}

		&[data-expanded="true"] {
			background-color: var(--color-gray-dark);
			border-radius: var(--br) var(--br) 0 0;
		
			& > a,
			.here a {
				color: #fff;
	
				&:hover,
				&:active,
				&:focus {
					color: #fff;
				}
			
			}

			> button {
				transform: scaleY(-1);
				color: #fff;
			}
	
		}

	}

	a {
		display: flex;
		line-height: 1;
		text-decoration: none;
	}

	button {
		display: flex;
		align-items: center;
		inline-size: 1.2rem;
		block-size: 1.2rem;
		position: relative;
		border: 0;
		background: none;
		padding: 0;
		color: var(--color-gray-md);

		.c-icon {
			inline-size: 1.2rem;
			block-size: 1.2rem;
		}

	}

}

.hdrNavSubmenu {
	background-color: #fff;
	position: absolute;
	padding: 0;
	top: 100%;
	left: 0;
	border-radius: var(--br);
	border-top-left-radius: 0;
	background-color: var(--color-gray-dark);
	padding: 1rem 0;
	inline-size: 24rem;

	&[aria-hidden="true"] {
		display: none;
	}

	li {
		padding: 0;
	}

	a {
		inline-size: 100%;
		padding: .8rem 1.5rem;
		color: var(--color-gray-md2);
		
		&:hover,
		&:active,
		&:focus {
			color: #fff;
		}
			
	}

}


#hdrNavMobile {

	button {
		display: flex;
		align-items: center;
		gap: .5rem;
		inline-size: 3rem;
		block-size: 3rem;
		border: 0;
		background: none;
		padding: 0;
		cursor: pointer;
		color: var(--color-gray-md);
		transition: color .2s;
	
		&:hover,
		&:active,
		&:focus {
			color: var(--color-gray-dark);
		}
	
		.c-icon {
			inline-size: 3rem;
			block-size: 3rem;
		}
	
	}

}

/* Skip link */

#skip {
	display: block;
	position: absolute;
	inset: 0 auto auto 0;
	z-index: 2;
	border-radius: 0 0 var(--br) 0;
	background-color: var(--color-gray-dark);
	padding: .8rem 1rem;
	color: #fff;
	font: 500 1.4rem/1 var(--font-sans);
	text-decoration: none;
	transform: translateY(-100%);
	transition: transform 0.2s;

	&:focus {
		transform: translateY(0%);
	}

}

/* -----------------------------------------------------------------------------
/* Page message
----------------------------------------------------------------------------- */

#pgMessage {
	background-color: var(--color-green);
	background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.25) 100%);
	background-blend-mode: soft-light;
	padding: 1rem 2rem;
	color: #fff;
	font: 500 1.5rem/1.5 var(--font-sans);
	letter-spacing: .1px;
	text-align: center;

	a {
		color: #fff;
		text-decoration-color: rgba(255, 255, 255, .5);
		text-underline-offset: 2px;
	
		&:hover,
		&:active,
		&:focus {
			text-decoration-color: #fff;
		}
	
	}

}

#pgMessageIcon {
	display: inline-flex;
	position: relative;
	inset: 4px auto auto;
	margin-inline-end: .2rem;

	.c-icon {
		display: inline-flex;
		inline-size: 2rem;
		block-size: 2rem;
	}

}

/* -----------------------------------------------------------------------------
/* Page main
----------------------------------------------------------------------------- */

#main {
	flex: 1;
	background-color: var(--color-tan-lite);
}

.pgSection {
	inline-size: 100%;
	margin: 0;
	background-color: var(--color-tan-lite);

	&.padded {
		padding: 3rem 2rem;
	
		&:has(+ hr) {
			padding-block-end: 0;
		}
	
		& + hr {
	
			& + .padded {
				padding-block-start: 0;
			}
	
		}
	
	}

	&.pgSection--fade {
		background-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 100%);
		background-blend-mode: overlay;
		color: #fff;
	}

	&.padded--flush {

		& + .padded {
			padding-block-start: 0;
		}

	}

	a:not(.c-btn) {

		&:link,
		&:visited {
			color: var(--color-green-alt);
		}

		&:hover,
		&:active,
		&:focus {
			color: var(--color-orange);
		}

	}

}

.pgSection--bg-white {
	background-color: #fff;
}

.pgSection--bg-gray {
	background-color: var(--color-gray-dark);
	color: #fff;

	&.pgSection--fade {
		background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.25) 100%);
		background-blend-mode: soft-light;
	}

	a:not(.c-btn) {

		&:link,
		&:visited {
			color: #fff;
			text-decoration-color: rgba(255, 255, 255, .5);
		}

		&:hover,
		&:active,
		&:focus {
			text-decoration-color: #fff;
		}

	}

}

.pgSection--bg-gray-lite {
	background-color: var(--color-gray-lite);
}

.pgSection--bg-green-dark {
	background-color: var(--color-green-dark);
	color: #fff;

	&.pgSection--fade {
		background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.25) 100%);
		background-blend-mode: soft-light;
	}

	a:not(.c-btn) {

		&:link,
		&:visited {
			color: var(--color-green-lite);
			text-decoration-color: var(--color-green-lite);
		}

		&:hover,
		&:active,
		&:focus {
			color: #fff;
			text-decoration-color: #fff;
		}

	}

}

.pgSection--bg-green-xlite {
	background-color: var(--color-green-xlite);
	color: var(--color-green-dark);

	a:not(.c-btn) {

		&:link,
		&:visited {
			color: var(--color-orange);
		}

		&:hover,
		&:active,
		&:focus {
			color: var(--color-green-dark);
		}

	}

}

.pgSection--bg-tan-dark {
	background-color: var(--color-tan-dark);
	color: #fff;

	&.pgSection--fade {
		background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.5) 100%);
		background-blend-mode: soft-light;
	}

	a:not(.c-btn) {

		&:link,
		&:visited {
			color: #fff;
			text-decoration-color: rgba(255, 255, 255, .5);
		}

		&:hover,
		&:active,
		&:focus {
			text-decoration-color: #fff;
		}

	}

}

/* -----------------------------------------------------------------------------
/* Page signup
----------------------------------------------------------------------------- */

#pgSignUp {
	background-color: var(--color-green);
	background-image: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.25) 100%);
	background-blend-mode: soft-light;
	padding: 3rem;
	color: #fff;
	font: 500 1.5rem/1.5 var(--font-sans);
	text-align: center;
	letter-spacing: .1px;

	& > * + * {
		margin-block-start: 2rem;
	}

}

/* -----------------------------------------------------------------------------
/* Page footer
----------------------------------------------------------------------------- */

#ftr {
	flex: 0 1 auto;
	padding: 3rem;
	background-color: var(--color-tan-dark);
	color: #fff;
	font-size: 1.35rem;
	font-family: var(--font-sans);
	text-align: center;

	a {
		color: #fff;
		text-decoration-color: rgba(255, 255, 255, .5);
		text-underline-offset: 2px;
	
		&:hover,
		&:active,
		&:focus {
			text-decoration-color: #fff;
		}
	
	}

}

#ftrContact {

	.logo {
		inline-size: 6rem;
		margin-inline: auto;
		margin-block: 0 1rem;
	}

}

#ftrNav {
	margin-block: 2rem;

	ul {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		column-gap: 1.4rem;
	}

}

#ftrSocial {
	display: flex;
	justify-content: center;
	gap: 1rem;

	a {
		display: flex;
		justify-content: center;
		align-items: center;
		inline-size: 3rem;
		block-size: 3rem;
		border-radius: 100%;
		background-color: #fff;
		color: var(--color-gray-dark);
		transition: background-color .2s;
	
		&:hover,
		&:focus {
			background-color: var(--color-gray-lite);
		}

		&:active {
			background-color: #fff;
		}

		.c-icon {
			inline-size: 1.6rem;
			block-size: 1.6rem;
		}
	
	}


}

/* -----------------------------------------------------------------------------
/* Page overlay
----------------------------------------------------------------------------- */

#h:has(#pgOverlay[open]) {
	overflow: hidden;
}

#pgOverlay {
	flex-direction: column;
	position: fixed;
	inset: 0;
	inline-size: 100%;
	block-size: 100svh;
	max-inline-size: none;
	max-block-size: none;
	border: 0;
	background: none;
	padding: 2rem;
	background-color: var(--color-green);
	text-align: center;

	&::backdrop {
		display: none;
	}

}

#pgOverlay[open] {
	display: flex;
}

#pgOverlayLogo {
	inline-size: 18rem;
	margin-inline: auto;
	margin-block: 0 2rem;
}

#pgOverlayNav {
	font: 500 2rem/1 var(--font-sans);
	letter-spacing: .1px;

	a {
		display: block;
		padding: 1.4rem 2rem;
		color: #fff;
		text-decoration: none;
	}

}

#pgOverlayClose {
	position: absolute;
	inset: 1rem 1rem auto auto;
	inline-size: 3rem;
	block-size: 3rem;
	border: 0;
	background: none;
	padding: 0;
	color: #fff;
	font-size: 3rem;
	cursor: pointer;

	.c-icon {
		inline-size: 100%;
		block-size: 100%;
	}

}

/* -----------------------------------------------------------------------------
/* Wrapper
----------------------------------------------------------------------------- */

.wrap {
	inline-size: 100%;
	max-inline-size: 120rem;
	margin-inline: auto;
}

/* -----------------------------------------------------------------------------
/* Columns
----------------------------------------------------------------------------- */

.column {

	& + .column {
		margin-block-start: 2.4rem;
	}

}

/* -----------------------------------------------------------------------------
/* Component: Buttons
----------------------------------------------------------------------------- */

.c-btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	border-radius: 100px;
	block-size: 5rem;
	padding-inline: 2.4rem;
	font-style: normal;
	font-weight: 600;
	font-size: 1.6rem;
	font-family: var(--font-sans);
	transition: background-color .2s, box-shadow .2s, color .2s;
}

.c-btn--green,
.c-btn--green:link,
.c-btn--green:visited {
	background-color: var(--color-green);
	color: #fff !important;
	text-decoration: none;
}

.c-btn--green:hover,
.c-btn--green:focus {
	background-color: var(--color-green-dark);
}

.c-btn--green:active {
	background-color: var(--color-green-xdark);
}

.c-btn--green-lite,
.c-btn--green-lite:link,
.c-btn--green-lite:visited {
	background-color: var(--color-green-lite);
	color: var(--color-green) !important;
}

.c-btn--green-lite:hover,
.c-btn--green-lite:focus {
	background-color: var(--color-green);
	color: #fff !important;
}

.c-btn--green-lite:active {
	background-color: var(--color-green-dark);
	color: #fff !important;
}

.c-btn--green-xlite,
.c-btn--green-xlite:link,
.c-btn--green-xlite:visited {
	box-shadow: inset 0 0 0 .5px var(--color-green-lite);
	background-color: var(--color-green-xlite);
	color: #fff !important;
}

.c-btn--green-xlite:hover,
.c-btn--green-xlite:active,
.c-btn--green-xlite:focus {
	box-shadow: inset 0 0 0 .5px var(--color-green);
	background-color: var(--color-green);
}

.c-btn--orange,
.c-btn--orange:link,
.c-btn--orange:visited {
	background-color: var(--color-orange);
	color: #fff !important;
	text-decoration: none;
}

.c-btn--orange:hover,
.c-btn--orange:active,
.c-btn--orange:focus {
	background-color: var(--color-orange-dark);
}

.c-btn--white,
.c-btn--white:link,
.c-btn--white:visited {
	background-color: #fff;
	color: var(--color-gray-dark) !important;
	text-decoration: none;
}

.c-btn--white:hover,
.c-btn--white:focus {
	background-color: var(--color-gray-lite);
}

.c-btn--white:active {
	background-color: #fff;
}

.c-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 1.6rem;
}

.c-btns--centered {
	justify-content: center;
}

/* -----------------------------------------------------------------------------
/* Component: Gallery
----------------------------------------------------------------------------- */

.c-gallery {
	--gallery-gap: 2rem;

	li {
		
		& + li {
			margin-block: var(--gallery-gap);
		}
		
	}

	figcaption {
		display: block;
		margin-block: .8rem 0;
		text-align: center;
		font-size: 1.4rem;
		line-height: 1.4;
		font-family: var(--font-sans);
	
		h2,
		h3 {
			margin: 0;
			font-size: 1.8rem;
		
			& + p {
				margin-block-start: .5rem;
			}
		
		}
	
		p {
			font: 350 1.6rem/1.6 var(--font-serif);
		}
	
	}

}

.c-gallery--cards {

	li {
		border-radius: var(--br);
		background-color: #fff;
		box-shadow: 0px 0.2px 0.4px rgba(0, 0, 0, 0.014),
			0px 0.5px 1.1px rgba(0, 0, 0, 0.02),
			0px 1px 2px rgba(0, 0, 0, 0.025),
			0px 1.8px 3.6px rgba(0, 0, 0, 0.03),
			0px 3.3px 6.7px rgba(0, 0, 0, 0.036),
			0px 8px 16px rgba(0, 0, 0, 0.05);
		color: var(--color-gray-dark);
	
		&:has(a:hover, a:active, a:focus) {
		
			figure {
		
				img {
					transform: scale(1.05);
				}
			
			}
		
		}

		a:not(.c-btn) {

			&:link,
			&:visited {
				color: var(--color-green-alt);
			}

			&:hover,
			&:active,
			&:focus {
				color: var(--color-orange);
			}

		}
	
	}

	figure {
		position: relative;
		inline-size: 100%;
	
		& > a {
			display: flex;
			position: relative;
			overflow: hidden;
			border-radius: var(--br) var(--br) 0 0;
		
			&:after {
				display: block;
				padding-block: 100% 0;
				content: '';
			}
		
			& > img {
				position: absolute;
				object-fit: cover;
				inline-size: 100%;
				block-size: 100%;
				transition: transform .2s;
			}
		
		}
	
	}
	
	figcaption {
		margin: 0;
		padding: 1.2rem 1.4rem;
	}

	img {
		border-radius: 0;
	}

}

.c-gallery--flush {
	gap: 0;

	li {
		flex: 1 0 100%;
		position: relative;
		max-inline-size: 100%;
	
		figure {
			position: absolute;
			inset: 0;
		}
	
	}

	img {
		border-radius: 0;
	}

}

/* -----------------------------------------------------------------------------
/* Component: Hero image
----------------------------------------------------------------------------- */

.c-heroImg {
	display: grid;
	place-items: center;
	position: relative;
	min-block-size: 30rem;
	background-color: var(--color-gray-dark);
	padding: 4rem;
	clip-path: inset(0);

	img {
		position: fixed;
		inset: 0;
		z-index: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.pgSection {
		z-index: 1;
	}

}

.c-heroImg--cover {
	padding: 8rem 4rem;
}

.c-heroImgTxt {
	position: relative;
	z-index: 1;
	inline-size: 100%;
	max-inline-size: 80rem;
	background-color: #f5f3f0d0;
	padding: 4rem 2rem;
	text-align: center;
	font: 450 italic 1em/1.75 var(--font-serif);
	outline: 1px solid #f5f3f0d0;
	outline-offset: 1rem;
	backdrop-filter: blur(10px);

	& > * + * {
		margin-block-start: 2rem;
	}
	
	#pgBreadcrumbs {
		margin-block: 0 .6rem;
	
		ul {
			background: var(--color-tan-md);
		}

		a {

			&:link,
			&:visited {
				color: var(--color-tan-md3);
			}

			&:hover,
			&:active,
			&:focus {
				color: var(--color-tan-lite);
			}
	
		}

	}

}

.c-heroImgTitle {
	margin: 0;
	font: 800 3rem/1.2 var(--font-sans);
}

/* -----------------------------------------------------------------------------
/* Component: Icons
----------------------------------------------------------------------------- */

.c-icon {
	display: flex;
	justify-content: center;
	align-items: center;

	svg {
		inline-size: 100%;
		block-size: 100%;
		fill: currentColor;
	}

}

/* -----------------------------------------------------------------------------
/* Breadcrumbs
----------------------------------------------------------------------------- */

#pgBreadcrumbs {
	display: flex;
	justify-content: center;
	margin-block: 0 .2rem;
	font-style: normal;
	font-family: var(--font-sans);
	font-size: 1.4rem;
	line-height: 1;

	ul {
		display: flex;
		justify-content: center;
		border-radius: 99px;
		background: var(--color-tan-md3);
		padding-inline: .6rem;
	}

	li {
		display: flex;
		align-items: center;
	
		&:not(:first-child):before {
			display: flex;
			content: '/';
			color: var(--color-tan-md2);
		}

	}

	a {
		display: flex;
		padding: .6rem;
		font-weight: 500;
		text-decoration: none;

		&:link,
		&:visited {
			color: var(--color-tan-md);
		}

		&:hover,
		&:active,
		&:focus {
			color: var(--color-tan-dark);
		}
	
	}

}

/* -----------------------------------------------------------------------------
/* Utilities
----------------------------------------------------------------------------- */

.u-fs-lg,
.u-fs-xl {
	font-size: 2rem;
}

.u-list0 {
	margin: 0;
	padding: 0;
	list-style: none;
}

.u-ma-0 {
	margin: 0;
}

.u-text-c {
	text-align: center;
}

.u-text-j {
	text-align: justify;
}

.u-text-l {
	text-align: left;
}

.u-text-r {
	text-align: right;
}

.u-vh:not(:focus):not(:active) {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
	white-space: nowrap;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
}

/* -----------------------------------------------------------------------------
/* Media queries
----------------------------------------------------------------------------- */

@media (min-width: 640px) {

	.c-gallery {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: var(--gallery-gap);

		li	{
			flex-basis: calc(100% / 2 - var(--gallery-gap) / 2 * (2 - 1));
		
			& + li {
				margin: 0;
			}
		
		}

	}

}

@media (min-width: 1000px) {

	#b {
		font-size: 2rem;
	}

	hr {
		margin-block: 6rem;
	}
	
	dt {
		font-size: 2rem;
		line-height: 1.6;
	}

	#hdr {
		padding: 2rem;
	}

	#hdrLogo {
		flex: 1 0 24rem;
		max-inline-size: 24rem;
	}

	#hdrNav {
		display: flex;
		justify-content: center;
	}

	#hdrNavMobile {
		display: none;
	}

	#pgMessage {
		padding: 1.3rem 2rem 1.4rem;
		font-size: 1.6rem;
	}

	.c-heroImg {
		min-block-size: calc(72vh - 10rem);
	}

	.c-heroImg--cover {
		block-size: 100vh;
	
		&:first-child {
			block-size: calc(100vh - 14rem);
		}
	
	}

	.c-heroImgTxt {
		padding: 4rem;
		outline-offset: 1.6rem;
	}

	.c-heroImgTitle {
		font-size: 5.8rem;
		line-height: 1.1;
	}

	.wide {
		margin-inline: -6rem;
	}

	#pgTitle {
		font-size: 4.8rem;
	}

	.pgSection {

		&.padded {
			padding: 6rem 2rem;
		}

	}

	#pgSignUp {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 2rem;
		font-size: 1.8rem;

		& > * + * {
			margin-block: 0;
		}

	}

	#ftr {
		text-align: left;
		padding: 4rem 2rem;
	
		.wrap {
			display: flex;
		}
	
	}

	#ftrContact {
		display: flex;
		gap: 1.6rem;

		.logo {
			margin: 0;
		}

	}

	#ftrNav {
		margin: 0;
		margin-inline: 10rem auto;
	
		ul {
			display: block;
			columns: 3;
			column-gap: 4rem;
		}
	
	}

	.grid {
		display: grid;
		gap: 2rem;
	}

	.grid--x-gap {
		gap: 6rem;
	}

	.grid--cols-2 {
		grid-template-columns: repeat(2, 1fr);
	}

	.grid--cols-3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.grid--cols-4 {
		grid-template-columns: repeat(4, 1fr);
	}

	.grid--cols-2-3 {
		grid-template-columns: 2.6667fr 5.3333fr;
	}

	.grid--cols-3-2 {
		grid-template-columns: 5.3333fr 2.6667fr;
	}

	.grid--cols-1-2 {
		grid-template-columns: 1fr 2fr;
	}

	.grid--cols-2-1 {
		grid-template-columns: 2fr 1fr;
	}

	.grid--cols-1-3 {
		grid-template-columns: 1fr 3fr;
	}

	.grid--cols-3-1 {
		grid-template-columns: 3fr 1fr;
	}

	.grid--cols-3-5 {
		grid-template-columns: 3fr 5fr;
	}

	.grid--cols-5-3 {
		grid-template-columns: 5fr 3fr;
	}

	[class*="grid--col-"] {
		gap: 0;
	
		& > .column {
			grid-column: 2;
		}

	}

	.grid--col-1\/4 {
		grid-template-columns: 1fr 25% 1fr;
	}

	.grid--col-1\/3 {
		grid-template-columns: 1fr 33.333% 1fr;
	}

	.grid--col-1\/2 {
		grid-template-columns: 1fr 50% 1fr;
	}

	.grid--col-3\/5 {
		grid-template-columns: 1fr 60% 1fr;
	}

	.grid--col-3\/4 {
		grid-template-columns: 1fr 75% 1fr;
	}

	.grid--col-4\/5 {
		grid-template-columns: 1fr 80% 1fr;
	}

	.grid--col-7\/8 {
		grid-template-columns: 1fr 87.5% 1fr;
	}

	.column {

		& + .column {
			margin-block-start: 0;
		}

	}

	.c-gallery {
		--gallery-gap: 4rem;

		li	{
			flex-basis: calc(100% / var(--gallery-columns) - var(--gallery-gap) / var(--gallery-columns) * (var(--gallery-columns) - 1));

			figcaption {

				h2,
				h3 {
					margin: 0;
					font-size: 2.2rem;
				}
	
			}
		
		}

	}

	.u-fs-lg {
		font-size: 3.2rem;
	}

	.u-fs-xl {
		font-size: 4rem;
		line-height: 1.4;
	}

	.float-l {
		float: left;
		max-inline-size: 40rem;
		margin-inline: 0 3rem;
	}

	.float-r {
		float: right;
		max-inline-size: 40rem;
		margin-inline: 3rem 0;
	}

}