/*
Theme Name: Polymer Classic
Theme URI: https://polymer.local/
Author: Studio
Description: A minimal foundation theme for the Polymer Classic ACF page-building framework.
Version: 0.21.18
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: polymer-classic-theme
*/

:root {
	--polymer-classic-text: #212529;
	--polymer-classic-background: #fff;
	--polymer-classic-paragraph-font-size: 1.0625rem;
	--polymer-container-edge-gutter: clamp(3rem, 6.5vw, 6.5rem);
}

html {
	background-color: var(--polymer-header-overscroll-color, var(--polymer-classic-background));
}

body {
	background: var(--polymer-classic-background);
	color: var(--polymer-classic-text);
	line-height: 1.5;
}

p {
	font-size: var(--polymer-classic-paragraph-font-size);
	line-height: 1.7;
}

.site-header.headroom {
	position: sticky;
	top: 0;
	transition: transform 250ms ease-in-out;
	z-index: 1030;
}

.site-header.headroom--pinned,
.site-header.headroom--top {
	transform: none;
}

.site-header.headroom--unpinned {
	transform: translateY(-100%);
}

.site-header.polymer-header--transparent {
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 1030;
}

.site-header.polymer-header--transparent.headroom {
	position: fixed;
}

.site-header.polymer-header--transparent .navbar {
	background-color: transparent;
	transition: background-color 180ms ease, box-shadow 180ms ease;
}

.site-header.polymer-header--transparent.headroom--not-top .navbar {
	background-color: var(--polymer-classic-background);
	box-shadow: 0 0.25rem 1rem rgba(14, 8, 36, 0.08);
}

.site-header.polymer-header--transparent:not(.headroom--not-top) .site-title,
.site-header.polymer-header--transparent:not(.headroom--not-top) .polymer-menu-toggle {
	color: #fff;
}

.admin-bar .site-header.polymer-header--transparent {
	top: 32px;
}

/*
 * A transformed ancestor becomes the containing block for Bootstrap's fixed
 * offcanvas. Remove the transform immediately while navigation is open so the
 * mobile panel continues to use the full viewport.
 */
.site-header.polymer-header--navigation-open {
	transform: none;
	transition: none;
	will-change: auto;
}

.admin-bar .site-header.headroom {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header.headroom {
		top: 46px;
	}

	.admin-bar .site-header.polymer-header--transparent {
		top: 46px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header.headroom {
		transition: none;
	}
}

.site-header .navbar {
	--bs-navbar-active-color: var(--polymer-classic-text);
	--bs-navbar-color: rgba(33, 37, 41, 0.75);
	--bs-navbar-hover-color: var(--polymer-classic-text);
	--bs-navbar-padding-y: 0.75rem;
}

@media (min-width: 1400px) {
	.site-header .navbar > .container,
	.site-footer:not(.site-footer--builder) > .container {
		max-width: 1600px;
		width: calc(100% - var(--polymer-container-edge-gutter) - var(--polymer-container-edge-gutter));
	}
}

.site-header .navbar-brand {
	align-items: center;
	display: flex;
	font-weight: 600;
	margin: 0;
}

.site-header .site-title {
	color: inherit;
	text-decoration: none;
}

.site-header .custom-logo-link {
	display: block;
	line-height: 0;
}

.site-header .custom-logo {
	display: block;
	height: var(--polymer-logo-height, 64px);
	max-width: min(800px, 70vw);
	object-fit: contain;
	object-position: left center;
	transition: filter 180ms ease;
	width: auto;
}

.site-header .polymer-inline-logo-link svg {
	display: block;
	height: var(--polymer-logo-height, 64px);
	max-width: min(800px, 70vw);
	width: auto;
}

.site-header.polymer-header--transparent.polymer-header--white-logo:not(.headroom--not-top) .custom-logo {
	filter: brightness(0) invert(1);
}

.site-header.polymer-header--transparent.polymer-header--white-logo:not(.headroom--not-top) .polymer-inline-logo-link {
	color: #fff;
}

.site-header.polymer-header--transparent.polymer-header--white-logo:not(.headroom--not-top) .polymer-inline-logo-link :is(path, circle, ellipse, rect, polygon, polyline, use, text, tspan):not([fill="none"]) {
	fill: #fff !important;
}

.site-header.polymer-header--transparent.polymer-header--white-logo:not(.headroom--not-top) .polymer-inline-logo-link :is(line, polyline),
.site-header.polymer-header--transparent.polymer-header--white-logo:not(.headroom--not-top) .polymer-inline-logo-link [stroke]:not([stroke="none"]) {
	stroke: #fff !important;
}

.site-header .nav-link {
	font-weight: 500;
}

.site-header .offcanvas-body > .navbar-nav {
	gap: var(--polymer-navigation-item-gap, 0);
}

.site-header .offcanvas-body > .navbar-nav > .menu-item > .nav-link {
	font-size: var(--polymer-navigation-font-size, 1rem);
}

.site-header .nav-link.polymer-nav-button {
	--polymer-nav-button-background: var(--polymer-button-background, #495057);
	--polymer-nav-button-border: var(--polymer-nav-button-background);
	--polymer-nav-button-text: var(--polymer-button-text, #fff);
	background-color: var(--polymer-nav-button-background);
	border: 1px solid var(--polymer-nav-button-border);
	border-radius: var(--bs-border-radius, 0.375rem);
	color: var(--polymer-nav-button-text);
	padding: var(--polymer-button-padding-y, 0.625rem) var(--polymer-button-padding-x, 1.125rem);
	transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.site-header .nav-link.polymer-nav-button--style-2 {
	--polymer-nav-button-background: var(--polymer-button-alternate-background, #adb5bd);
	--polymer-nav-button-border: var(--polymer-button-alternate-text, #212529);
	--polymer-nav-button-text: var(--polymer-button-alternate-text, #212529);
}

.site-header .nav-link.polymer-nav-button--style-3 {
	--polymer-nav-button-background: transparent;
	--polymer-nav-button-border: var(--polymer-button-background, #495057);
	--polymer-nav-button-text: var(--polymer-button-background, #495057);
}

.site-header .nav-link.polymer-nav-button:hover,
.site-header .nav-link.polymer-nav-button:focus-visible,
.site-header .nav-link.polymer-nav-button.active,
.site-header .nav-link.polymer-nav-button.show {
	background-color: color-mix(in srgb, var(--polymer-nav-button-background) 85%, #000);
	border-color: color-mix(in srgb, var(--polymer-nav-button-border) 85%, #000);
	color: var(--polymer-nav-button-text);
}

.site-header .nav-link.polymer-nav-button--style-3:hover,
.site-header .nav-link.polymer-nav-button--style-3:focus-visible,
.site-header .nav-link.polymer-nav-button--style-3.active,
.site-header .nav-link.polymer-nav-button--style-3.show {
	background-color: var(--polymer-button-background, #495057);
	border-color: var(--polymer-button-background, #495057);
	color: var(--polymer-button-text, #fff);
}

.site-header .nav-link.polymer-nav-button--style-2:hover,
.site-header .nav-link.polymer-nav-button--style-2:focus-visible,
.site-header .nav-link.polymer-nav-button--style-2.active,
.site-header .nav-link.polymer-nav-button--style-2.show {
	background-color: color-mix(in srgb, var(--polymer-button-alternate-background, #adb5bd) 88%, var(--polymer-button-alternate-text, #212529));
	border-color: var(--polymer-button-alternate-text, #212529);
	color: var(--polymer-button-alternate-text, #212529);
}

.site-header.polymer-header--transparent:not(.headroom--not-top) .navbar-nav > .menu-item > .nav-link.polymer-nav-button {
	color: var(--polymer-nav-button-text);
}

.site-header .dropdown-menu {
	--bs-dropdown-border-color: rgba(33, 37, 41, 0.15);
	--bs-dropdown-border-radius: 0.25rem;
	--bs-dropdown-link-active-bg: #3858e9;
	--bs-dropdown-link-active-color: #fff;
	--bs-dropdown-link-hover-bg: #f1f3f5;
	box-shadow: 0 0.5rem 1rem rgba(33, 37, 41, 0.08);
}

.site-header .dropdown-menu.show {
	animation: polymer-dropdown-fade-in-down 180ms ease-out both;
}

@keyframes polymer-dropdown-fade-in-down {
	from {
		opacity: 0;
		translate: 0 -0.75rem;
	}

	to {
		opacity: 1;
		translate: 0 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header .dropdown-menu.show {
		animation: none;
	}
}

.site-header .navbar-toggler:focus {
	box-shadow: 0 0 0 0.2rem rgba(56, 88, 233, 0.25);
}

.polymer-menu-toggle {
	align-items: center;
	border: 0;
	border-radius: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	height: 48px;
	justify-content: center;
	padding: 0;
	width: 48px;
}

.polymer-menu-toggle__bar {
	background: currentColor;
	display: block;
	height: 2px;
	width: 32px;
}

.polymer-navigation-overlay {
	--bs-offcanvas-bg: #fff;
	--bs-offcanvas-border-width: 0;
	--bs-offcanvas-width: 100vw;
}

.polymer-menu-close {
	background: transparent;
	border: 0;
	height: 48px;
	padding: 0;
	position: relative;
	width: 48px;
}

.polymer-menu-close span {
	background: currentColor;
	display: block;
	height: 2px;
	left: 8px;
	position: absolute;
	top: 23px;
	width: 32px;
}

.polymer-menu-close span:first-child {
	transform: rotate(45deg);
}

.polymer-menu-close span:last-child {
	transform: rotate(-45deg);
}

.polymer-menu-close:focus-visible {
	box-shadow: 0 0 0 0.2rem rgba(56, 88, 233, 0.25);
	outline: 0;
}

@media (max-width: 991.98px) {
	.polymer-navigation-overlay .offcanvas-header {
		justify-content: flex-end;
		min-height: 112px;
		padding: 2rem;
	}

	.polymer-navigation-overlay .offcanvas-body {
		display: block;
		overflow: hidden;
		padding: 0;
		position: relative;
	}

	.polymer-navigation-overlay .offcanvas-body > .navbar-nav:not(.polymer-mobile-navigation) {
		display: none;
	}

	.polymer-mobile-navigation,
	.polymer-mobile-menu-panel {
		align-items: flex-end;
		background: var(--bs-offcanvas-bg, #fff);
		display: flex;
		flex-direction: column;
		height: 100%;
		list-style: none;
		margin: 0;
		overflow-y: auto;
		padding: 1rem 2rem 2rem;
		text-align: right;
		width: 100%;
	}

	.polymer-mobile-navigation {
		gap: max(var(--polymer-navigation-item-gap, 0px), 0.5rem);
		transition: opacity 220ms ease, transform 220ms ease;
	}

	.polymer-navigation-overlay .polymer-mobile-navigation > .menu-item > .polymer-nav-button--style-1 {
		margin-block: 0.375rem;
	}

	.polymer-mobile-navigation.is-behind,
	.polymer-mobile-menu-panel.is-behind {
		opacity: 0;
		pointer-events: none;
		transform: translate3d(-1rem, 0, 0);
	}

	.polymer-mobile-menu-panels {
		inset: 0;
		pointer-events: none;
		position: absolute;
	}

	.polymer-navigation-overlay .polymer-mobile-menu-panel {
		align-items: flex-end;
		background: var(--bs-offcanvas-bg, #fff);
		border: 0;
		box-shadow: none;
		display: flex !important;
		inset: 0;
		margin: 0;
		max-width: none;
		min-width: 0;
		opacity: 0;
		padding: 1rem 2rem 2rem;
		pointer-events: none;
		position: absolute !important;
		text-align: right;
		transform: translate3d(2rem, 0, 0);
		transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
		visibility: hidden;
	}

	.polymer-navigation-overlay .polymer-mobile-menu-panel.is-active {
		opacity: 1;
		pointer-events: auto;
		transform: translate3d(0, 0, 0);
		transition-delay: 0s;
		visibility: visible;
	}

	.polymer-navigation-overlay .polymer-mobile-menu-panel.is-active.is-behind {
		opacity: 0;
		pointer-events: none;
		transform: translate3d(-1rem, 0, 0);
	}

	.polymer-navigation-overlay .polymer-mobile-menu-panel--expanded-mega {
		align-items: stretch;
		text-align: right;
	}

	.polymer-navigation-overlay .polymer-mobile-menu-panel--expanded-mega > .polymer-mega-menu__column {
		width: 100%;
	}

	.polymer-mobile-menu-trigger {
		align-items: center;
		cursor: pointer;
		display: flex !important;
		gap: 0.6rem;
		justify-content: flex-end;
		width: 100%;
	}

	.polymer-mobile-menu-trigger::after {
		border: 0 !important;
		content: "›";
		font-size: 1.25em;
		line-height: 1;
		margin: 0 !important;
		vertical-align: 0;
	}

	.polymer-mobile-menu-back-item {
		margin-bottom: 1rem;
		width: 100%;
	}

	.polymer-mobile-menu-back {
		align-items: center;
		background: transparent;
		border: 0;
		color: inherit;
		display: flex;
		font: inherit;
		font-weight: 600;
		gap: 0.6rem;
		justify-content: flex-end;
		margin-left: auto;
		padding: 0.5rem 0;
	}

	.polymer-mobile-menu-back:focus-visible {
		box-shadow: 0 0 0 0.2rem rgba(56, 88, 233, 0.25);
		outline: 0;
	}

	.polymer-navigation-overlay .nav-link {
		font-size: 1.5rem;
		padding-block: 0.4rem;
	}

	.polymer-navigation-overlay .polymer-mobile-navigation > .menu-item > .nav-link {
		font-size: var(--polymer-navigation-font-size, 1.5rem);
	}

	.polymer-navigation-overlay .dropdown-menu {
		background: transparent;
		border: 0;
		box-shadow: none;
		padding-block: 0.25rem 0.75rem;
		text-align: right;
	}

	.polymer-navigation-overlay .dropdown-item {
		padding-inline: 0;
	}

	.polymer-mega-menu__panel,
	.polymer-mega-menu__links {
		list-style: none;
		margin: 0;
		padding-left: 0;
	}

	.polymer-mega-menu__column {
		margin-top: 1rem;
	}

	.polymer-mega-menu__reusable {
		align-self: stretch;
		list-style: none;
		text-align: left;
		width: 100%;
	}

	.polymer-mega-menu__heading {
		color: #6c757d;
		display: block;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		padding-block: 0.35rem;
		text-decoration: none;
		text-transform: uppercase;
	}

	.polymer-mega-menu__link {
		color: inherit;
		display: flex;
		gap: 0.75rem;
		justify-content: flex-end;
		padding-block: 0.45rem;
		text-decoration: none;
	}

	.polymer-mega-menu__icon {
		order: 2;
	}

	.polymer-mega-menu__icon-image {
		height: 2rem;
		object-fit: contain;
		width: 2rem;
	}

	.polymer-mega-menu__copy,
	.polymer-mega-menu__label,
	.polymer-mega-menu__description {
		display: block;
	}

	.polymer-mega-menu__label {
		font-weight: 600;
	}

	.polymer-mega-menu__description {
		color: #6c757d;
		font-size: 0.875rem;
		line-height: 1.4;
	}

	.polymer-mega-menu__column--featured {
		background: #f1f3f5;
		border-radius: 1rem;
		overflow: hidden;
	}

	.polymer-mega-menu__featured-link {
		color: #212529;
		display: flex;
		flex-direction: column;
		padding: 1rem;
		text-align: right;
		text-decoration: none;
	}

	.polymer-mega-menu__featured-eyebrow,
	.polymer-mega-menu__featured-title,
	.polymer-mega-menu__featured-description,
	.polymer-mega-menu__featured-cta {
		display: block;
	}

	.polymer-mega-menu__featured-eyebrow {
		color: #3858e9;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.polymer-mega-menu__featured-title {
		font-size: 1.125rem;
		font-weight: 700;
		margin-top: 0.5rem;
	}

	.polymer-mega-menu__featured-description {
		color: #6c757d;
		font-size: 0.875rem;
		line-height: 1.5;
		margin-top: 0.5rem;
	}

	.polymer-mega-menu__featured-cta {
		color: #3858e9;
		font-weight: 600;
		margin-top: 1rem;
	}
}

.polymer-mega-menu__featured-link {
	isolation: isolate;
	position: relative;
}

.polymer-mega-menu__featured-background {
	inset: 0;
	overflow: hidden;
	position: absolute;
	z-index: 0;
}

.polymer-mega-menu__featured-background::after {
	background: rgba(0, 0, 0, 0.5);
	content: "";
	inset: 0;
	position: absolute;
}

.polymer-mega-menu__featured-background-image {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 300ms ease;
	width: 100%;
}

.polymer-mega-menu__featured-link > :not(.polymer-mega-menu__featured-background) {
	position: relative;
	z-index: 1;
}

.polymer-mega-menu__column--featured .polymer-mega-menu__featured-link--has-background,
.polymer-mega-menu__column--featured .polymer-mega-menu__featured-link--has-background:hover,
.polymer-mega-menu__column--featured .polymer-mega-menu__featured-link--has-background:focus-visible,
.polymer-mega-menu__column--featured .polymer-mega-menu__featured-link--has-background .polymer-mega-menu__featured-eyebrow,
.polymer-mega-menu__column--featured .polymer-mega-menu__featured-link--has-background .polymer-mega-menu__featured-description,
.polymer-mega-menu__column--featured .polymer-mega-menu__featured-link--has-background .polymer-mega-menu__featured-cta {
	background-color: transparent;
	color: #fff;
}

.polymer-mega-menu__featured-link--has-background:hover .polymer-mega-menu__featured-background-image,
.polymer-mega-menu__featured-link--has-background:focus-visible .polymer-mega-menu__featured-background-image {
	transform: scale(1.025);
}

@media (min-width: 992px) {
	.site-header.polymer-header--transparent:not(.headroom--not-top) .navbar-nav > .menu-item > .nav-link {
		color: #fff;
	}

	.polymer-mobile-navigation,
	.polymer-mobile-menu-panels {
		display: none !important;
	}

	.polymer-navigation-overlay .offcanvas-body {
		display: flex;
		padding: 0;
	}

	.site-header .dropdown-menu {
		margin-top: 0.5rem;
	}

	.site-header .polymer-mega-menu {
		position: static;
	}

	.site-header .polymer-mega-menu__panel {
		border-radius: 1.5rem;
		gap: 2rem;
		grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
		left: 50%;
		list-style: none;
		margin-top: 0.5rem;
		max-height: calc(100vh - 8rem);
		overflow-y: auto;
		padding: 2.5rem;
		right: auto;
		transform: translateX(-50%);
		width: min(82rem, calc(100vw - 2rem));
	}

	.site-header .polymer-mega-menu__panel.show {
		display: grid;
	}

	.site-header .polymer-mega-menu__panel--reusable {
		padding: 0;
	}

	.site-header .polymer-mega-menu__panel--reusable.show {
		display: block;
	}

	.polymer-mega-menu__reusable {
		list-style: none;
		width: 100%;
	}

	.polymer-mega-menu__column {
		min-width: 0;
	}

	.polymer-mega-menu__heading {
		color: #6c757d;
		display: inline-block;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		margin-bottom: 1rem;
		text-decoration: none;
		text-transform: uppercase;
	}

	.polymer-mega-menu__heading:hover,
	.polymer-mega-menu__heading:focus-visible {
		color: #212529;
	}

	.polymer-mega-menu__links {
		display: grid;
		gap: 0.75rem;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.polymer-mega-menu__link {
		align-items: flex-start;
		border-radius: 0.75rem;
		color: #212529;
		display: flex;
		gap: 0.75rem;
		margin-inline-start: -0.625rem;
		padding: 0.625rem;
		text-decoration: none;
		transition: transform 180ms ease;
		width: calc(100% + 0.625rem);
	}

	.polymer-mega-menu__link:hover,
	.polymer-mega-menu__link:focus-visible {
		background: transparent;
		color: #212529;
		transform: translateX(0.25rem);
	}

	.polymer-mega-menu__link.active {
		background: #f8f9fa;
	}

	.polymer-mega-menu__icon {
		align-items: center;
		background: #f1f3f5;
		border-radius: 0.75rem;
		display: flex;
		flex: 0 0 3rem;
		height: 3rem;
		justify-content: center;
	}

	.polymer-mega-menu__icon-image {
		height: 1.75rem;
		object-fit: contain;
		width: 1.75rem;
	}

	.polymer-mega-menu__copy,
	.polymer-mega-menu__label,
	.polymer-mega-menu__description {
		display: block;
	}

	.polymer-mega-menu__label {
		font-weight: 600;
		line-height: 1.25;
	}

	.polymer-mega-menu__description {
		color: #6c757d;
		font-size: 0.875rem;
		line-height: 1.4;
		margin-top: 0.2rem;
	}

	.polymer-mega-menu__column--featured {
		background: #f1f3f5;
		border-radius: 1.25rem;
		overflow: hidden;
	}

	.polymer-mega-menu__featured-link {
		color: #212529;
		display: flex;
		flex-direction: column;
		height: 100%;
		padding: 1.5rem;
		text-decoration: none;
		transition: background-color 150ms ease;
	}

	.polymer-mega-menu__featured-link:hover,
	.polymer-mega-menu__featured-link:focus-visible {
		background: #e9ecef;
		color: #212529;
	}

	.polymer-mega-menu__featured-eyebrow,
	.polymer-mega-menu__featured-title,
	.polymer-mega-menu__featured-description,
	.polymer-mega-menu__featured-cta {
		display: block;
	}

	.polymer-mega-menu__featured-eyebrow {
		color: #3858e9;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.polymer-mega-menu__featured-title {
		font-size: 1.25rem;
		font-weight: 700;
		line-height: 1.25;
		margin-top: 0.75rem;
	}

	.polymer-mega-menu__featured-description {
		color: #6c757d;
		line-height: 1.5;
		margin-top: 0.75rem;
	}

	.polymer-mega-menu__featured-cta {
		color: #3858e9;
		font-weight: 600;
		margin-top: auto;
		padding-top: 1.25rem;
	}
}

.polymer-team-card {
	background: #fff;
	border: 1px solid rgba(33, 37, 41, 0.14);
	border-radius: 0.75rem;
	overflow: hidden;
}

.polymer-team-card__link {
	color: inherit;
	display: block;
	height: 100%;
	text-decoration: none;
}

.polymer-team-card__link:hover,
.polymer-team-card__link:focus-visible {
	color: inherit;
}

.polymer-team-card__image {
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.polymer-team-card__image img,
.polymer-team-profile__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.polymer-team-card__body {
	padding: 1.5rem;
}

.polymer-team-grid .polymer-team-card,
.polymer-team-directory .polymer-team-card {
	transition: transform 220ms ease;
}

.polymer-team-grid .polymer-team-card:hover,
.polymer-team-grid .polymer-team-card:focus-within,
.polymer-team-directory .polymer-team-card:hover,
.polymer-team-directory .polymer-team-card:focus-within {
	transform: translateY(-0.25rem);
}

.polymer-team-grid .polymer-team-card__image,
.polymer-team-directory .polymer-team-card__image {
	aspect-ratio: 4 / 5;
}

.polymer-team-grid .polymer-team-card__body :is(h2, h3),
.polymer-team-directory .polymer-team-card__body :is(h2, h3) {
	font-size: clamp(1.15rem, 1.5vw, 1.35rem);
}

.polymer-project-card {
	height: 100%;
}

.polymer-project-card__link {
	color: inherit;
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
}

.polymer-project-card__link:hover,
.polymer-project-card__link:focus-visible {
	color: inherit;
}

.polymer-project-card__image {
	aspect-ratio: 1 / 1;
	background: color-mix(in srgb, currentColor 8%, transparent);
	overflow: hidden;
	position: relative;
}

.polymer-project-card__photo {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: transform 300ms ease;
	width: 100%;
}

.polymer-project-card__video {
	pointer-events: none;
}

.polymer-project-card__body {
	padding-block: 1.25rem;
}

.polymer-project-card__title {
	color: inherit;
}

.polymer-project-card__link:hover .polymer-project-card__photo,
.polymer-project-card__link:focus-visible .polymer-project-card__photo {
	transform: scale(1.025);
}

.polymer-blog-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.polymer-blog-card__image-link {
	background: color-mix(in srgb, currentColor 8%, transparent);
	color: inherit;
	display: block;
	overflow: hidden;
	position: relative;
	text-decoration: none;
	width: 100%;
}

.polymer-blog-card__image {
	aspect-ratio: 1 / 1;
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: transform 300ms ease;
	width: 100%;
}

.polymer-blog-card__image-placeholder {
	aspect-ratio: 1 / 1;
	display: block;
}

.polymer-blog-card__image-link:hover .polymer-blog-card__image,
.polymer-blog-card__image-link:focus-visible .polymer-blog-card__image {
	transform: scale(1.025);
}

.polymer-blog-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding-block: 1.25rem;
}

.polymer-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.875rem;
	gap: 0.35rem 0.7rem;
	margin-bottom: 0.65rem;
}

.polymer-blog-card__categories {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.polymer-blog-card__categories a,
.polymer-blog-card__title a {
	color: inherit;
}

.polymer-blog-card__title {
	font-size: clamp(1.3rem, 2vw, 1.65rem);
	margin-bottom: 0.75rem;
}

.polymer-blog-card__excerpt {
	margin-bottom: 0;
}

.single-post .site-main {
	padding-block: 0;
}

.polymer-single-post__header {
	padding-block: clamp(3rem, 7vw, 7rem);
}

.polymer-single-post__title {
	font-size: clamp(2.75rem, 6vw, 6rem);
	line-height: 1.05;
	margin: 0;
	max-width: 18ch;
}

.polymer-single-post__meta {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.95rem;
	gap: 0.4rem 0.75rem;
	margin-top: 1.5rem;
}

.polymer-single-post__meta a {
	color: inherit;
}

.polymer-single-post__categories {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
}

.polymer-single-post__content {
	padding-bottom: clamp(3rem, 7vw, 7rem);
}

.polymer-blog-archive__pagination .nav-links {
	display: flex;
	gap: 0.75rem;
	justify-content: flex-end;
	width: 100%;
}

.polymer-blog-archive__pagination .page-numbers {
	align-items: center;
	border: 1px solid currentColor;
	display: inline-flex;
	gap: 0.5rem;
	justify-content: center;
	min-height: 2.875rem;
	padding: 0.65rem 1rem;
	text-decoration: none;
}

.polymer-projects-archive__pagination .nav-links {
	display: flex;
	gap: 0.75rem;
	justify-content: flex-end;
	width: 100%;
}

.polymer-projects-archive__pagination .page-numbers {
	align-items: center;
	border: 1px solid currentColor;
	display: inline-flex;
	gap: 0.5rem;
	justify-content: center;
	min-height: 2.875rem;
	padding: 0.65rem 1rem;
	text-decoration: none;
}

.polymer-related-projects {
	padding-block: clamp(4rem, 8vw, 8rem);
}

.polymer-related-projects__title {
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.polymer-slider.polymer-projects-slider {
	--swiper-navigation-color: currentColor;
	background: transparent;
	color: inherit;
	height: auto;
	padding-bottom: 4.5rem;
}

.polymer-projects-slider .swiper-wrapper {
	align-items: stretch;
	height: auto;
}

.polymer-projects-slider__slide {
	height: auto;
}

.polymer-projects-slider.polymer-slider--nav-bottom-right .swiper-button-prev,
.polymer-projects-slider.polymer-slider--nav-bottom-right .swiper-button-next {
	bottom: 0;
}

.polymer-project-hero {
	background: var(--polymer-style-3-background);
	color: var(--polymer-style-3-text);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	min-height: 100vh;
	min-height: 100svh;
}

.polymer-project-hero__media {
	background: color-mix(in srgb, var(--polymer-style-3-text) 8%, var(--polymer-style-3-background));
	min-height: 100%;
	overflow: hidden;
	position: relative;
}

.polymer-project-hero__image,
.polymer-project-hero__video {
	display: block;
	height: 100%;
	inset: 0;
	object-fit: cover;
	object-position: center center;
	position: absolute;
	width: 100%;
}

.polymer-project-hero__content {
	align-items: center;
	display: flex;
	padding: clamp(3rem, 6vw, 8rem);
}

.polymer-project-hero__content-inner {
	max-width: 54rem;
	width: 100%;
}

.polymer-project-hero__title {
	color: inherit;
	font-size: clamp(3rem, 6vw, 7.5rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 0.98;
	margin: 0;
}

.polymer-project-hero__details {
	display: grid;
	gap: clamp(1.5rem, 3vh, 2.75rem);
	margin: clamp(3rem, 8vh, 7rem) 0 0;
}

.polymer-project-hero__detail dt {
	color: var(--polymer-style-3-link);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin-bottom: 0.4rem;
	text-transform: uppercase;
}

.polymer-project-hero__detail dd {
	font-size: clamp(1.05rem, 1.5vw, 1.45rem);
	line-height: 1.5;
	margin: 0;
}

.polymer-project-hero__features a {
	color: inherit;
	text-decoration-color: var(--polymer-style-3-link);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.polymer-project-hero__features a:hover,
.polymer-project-hero__features a:focus-visible {
	color: var(--polymer-style-3-link);
}

.polymer-project-facts {
	background: color-mix(in srgb, var(--polymer-classic-text) 4%, var(--polymer-classic-background));
	padding-block: clamp(3rem, 6vw, 6rem);
}

.polymer-project-facts__title {
	font-size: clamp(1.5rem, 2.5vw, 2.25rem);
	margin: 0 0 clamp(2rem, 4vw, 3.5rem);
}

.polymer-project-facts__grid {
	display: grid;
	gap: clamp(2rem, 4vw, 4rem) clamp(1.5rem, 3vw, 3rem);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
}

.polymer-project-facts__item {
	border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
	padding-top: 1rem;
}

.polymer-project-facts__item--features {
	grid-column: span 2;
}

.polymer-project-facts__item dt {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin-bottom: 0.65rem;
	text-transform: uppercase;
}

.polymer-project-facts__item dd {
	font-size: clamp(1.05rem, 1.6vw, 1.35rem);
	line-height: 1.45;
	margin: 0;
}

.polymer-project-facts__terms {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
}

.polymer-project-facts__terms a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

@media (max-width: 991.98px) {
	.polymer-project-facts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575.98px) {
	.polymer-project-facts__grid {
		grid-template-columns: 1fr;
	}

	.polymer-project-facts__item--features {
		grid-column: auto;
	}
}

@media (max-width: 991.98px) {
	.polymer-project-hero {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.polymer-project-hero__media {
		min-height: min(65vh, 42rem);
		min-height: min(65svh, 42rem);
	}

	.polymer-project-hero__content {
		min-height: 75vh;
		min-height: 75svh;
		padding: clamp(3rem, 9vw, 6rem) clamp(1.5rem, 7vw, 4rem);
	}

	.polymer-project-hero__title {
		font-size: clamp(3rem, 11vw, 6rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.polymer-mega-menu__link {
		transition: none;
	}

	.polymer-mega-menu__link:hover,
	.polymer-mega-menu__link:focus-visible {
		transform: none;
	}

	.polymer-project-card__photo {
		transition: none;
	}

	.polymer-team-grid .polymer-team-card,
	.polymer-team-directory .polymer-team-card {
		transition: none;
	}

	.polymer-team-grid .polymer-team-card:hover,
	.polymer-team-grid .polymer-team-card:focus-within,
	.polymer-team-directory .polymer-team-card:hover,
	.polymer-team-directory .polymer-team-card:focus-within {
		transform: none;
	}
}

.polymer-team-profile__image {
	aspect-ratio: 4 / 5;
	border-radius: 0.75rem;
	overflow: hidden;
}

.polymer-team-profile__credentials {
	font-size: 0.65em;
	font-weight: 400;
}

.polymer-team-profile__contact {
	display: flex;
	flex-direction: column;
	font-style: normal;
	gap: 0.35rem;
	margin-top: 2rem;
}

@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
	.polymer-mobile-navigation,
	.polymer-navigation-overlay .polymer-mobile-menu-panel {
		transition: none;
	}
}

.site-main:not(:has(.polymer-classic-layout)) {
	padding-block: 3rem;
}

.single-polymer_project .site-main {
	padding-top: 0;
}
