/* Root Styles */

:root {
	--base-size: 16;
	--site-size-adjuster: 1;
	/* Used if the entire site's size needs adjusting */
	scroll-behavior: smooth;
	overflow-x: hidden;
	--rotate-angle: 21deg;
}

html,
body {
	overflow-x: hidden;
}

/* Manual Breaks - Remove manual breaks on smaller screens */
@media (max-width: 991px) {
	.is-style-manual-breaks br {
		display: none;
	}
}

/* .has-global-padding>.wp-block-create-block-page-section-js.alignfull {
	padding-right: var(--wp--style--root--padding-right);
	padding-left: var(--wp--style--root--padding-left);
} */

.wp-block-create-block-page-section-js {
	position: relative;
}

@media (max-width: 768px) {
	.wp-block-create-block-page-section-js.has-square.mobile-bottom::before {
		top: auto;
		bottom: 0;
	}
}

/* Gravity Forms */

.gform-theme--foundation {
	--gf-form-gap-y: var(--wp--preset--spacing--20) !important;
}

.gform_validation_errors {
	border: 1px solid red;
	padding: 1em;
	color: red;
	margin: 1em 0;
}

.gfield_validation_message {
	font-size: var(--wp--preset--font-size--normal);
	color: red;
	margin: 0.2em 0em 0em 2em;
}

.gform-theme--framework.gform-theme--orbital .gform-field-label>.gfield_required {
	color: inherit;
}

.gform-theme--framework.gform-theme--orbital .gform_validation_errors {
	color: inherit;
	border: 2px solid red;
}

.gform-theme--framework.gform-theme--orbital .gfield_validation_message {
	color: inherit;
}


.gform-theme--framework.gform-theme--orbital button {
	--gform-theme-control-button-border-radius: var(--wp--preset--spacing--40);
	--gform-theme-control-button-padding-inline: var(--wp--preset--spacing--40);
	--gform-theme-control-button-size: var(--wp--preset--spacing--60);
	--gform-theme-local-font-size: var(--wp--preset--font-size--normal) !important;
}

.gform-theme--foundation.gform-theme--orbital .gform_footer {
	margin-top: var(--wp--preset--spacing--30);
}

/* Sticky Header */

.site-brand figure {
	height: var(--wp--preset--spacing--60);
	width: auto;
}

.site-brand a {
	display: block;
	height: 100%;
}

.site-brand a img {
	width: 100%;
	height: 100%;
}

.site-header {
	position: fixed;
	background-color: inherit;
	width: 100%;
	top: 0;
	z-index: 10;
	transition: background-color .4s, box-shadow .4s;
	margin: 0 auto;
	left: 0;
	right: 0;
	width: 100vw;
}

body.scrolled-down .site-header {
	box-shadow: 0 0 var(--wp--preset--spacing--10) rgba(0, 0, 0, 0.46);
}

html:not(.has-modal-open) body:not(.editor-styles-wrapper):not(.scrolled-down) .site-header {
	background-color: transparent !important;
}

body.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 768px) {
	body.admin-bar .site-header {
		top: 46px;
	}
}

@media (min-width: 960px) {
	.main-nav .wp-block-navigation .wp-block-navigation-item {
		background-color: transparent !important;
	}

	.main-nav .wp-block-navigation__container>.wp-block-navigation-item>a {
		position: relative;
	}

	.main-nav .wp-block-navigation__container>.wp-block-navigation-item>a::before {
		content: "";
		height: var(--wp--preset--spacing--5);
		width: 0%;
		background-color: transparent;
		position: absolute;
		bottom: var(--wp--preset--spacing--5);
		left: 0;
		transition: all 1s;
	}

	.main-nav .wp-block-navigation__container>.wp-block-navigation-item.active>a::before,
	.main-nav .wp-block-navigation__container>.wp-block-navigation-item:hover>a::before {
		width: 100%;
		background-color: var(--wp--preset--color--primary);
	}
}

@media (min-width: 960px) {
	.mobile-menu {
		display: none !important;
	}
}

/* Dropdown Menus */

.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,
.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,
.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,
.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container {
	right: auto;
	left: 50%;
	transform: translateX(-50%);
}

.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,
.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,
.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,
.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
	transform: none;
}

.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	padding: var(--wp--preset--spacing--5) 0;
}

.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content {
	font-weight: 300;
	position: relative;
	display: flex;
	align-items: center;
}

.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content::after {
	content: "";
	height: 1em;
	width: 1em;
	background-image: url(../images/arrow-right.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	transform: translateX(.5em);
	transition: background-image .2s linear;
	display: inline-block;
}

.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content:hover {
	color: inherit !important;
	font-weight: 500;
}

.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content:hover::after {
	background-image: url(../images/arrow-right-long.svg);
}

/* Mobile Navigation */

@media (min-width: 960px) {
	.mobile-menu-only {
		display: none !important;
	}
}

@media (max-width: 959px) {
	.desktop-menu-only {
		display: none !important;
	}

	.has-modal-open .wpfox-mobile-menu-overlay {
		opacity: 0.15;
		pointer-events: auto;
	}

	.wp-block-navigation__responsive-container {
		z-index: 100000 !important;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content,
	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-page-list {
		justify-content: flex-start;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation-item,
	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-page-list {
		display: flex;
		flex-direction: column;
		color: inherit !important;
	}

	.wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		position: fixed;
	}

	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container {
		background-color: transparent !important;
		transform: translateX(calc(100% + 10px));
		transition: transform 1s;
		display: block;
		padding: 0;
		width: 100%;
		left: auto;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
	}

	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container::after {
		background-color: var(--wp--preset--color--blue-3) !important;
		width: 100%;
		height: 100%;
		position: absolute;
		content: '';
		top: 0;
		z-index: -1;
		opacity: .95;
	}

	body.admin-bar .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container {
		top: 46px;
	}

	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
		transform: translateX(0);
		overflow: visible;
		margin-top: var(--wp--preset--spacing--100);
	}

	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open>.wp-block-navigation__responsive-close {
		transform: translateX(0);
		transition: transform 1s;
	}

	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container>.wp-block-navigation__responsive-close {
		height: 100%;
	}

	.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open.submenu-open>.wp-block-navigation__responsive-close {
		/* transform: translateX(-100%); */
	}

	.wp-block-navigation__responsive-container-close {
		margin: 0;
		padding: var(--wp--preset--spacing--20) var(--wp--style--root--padding-right);
		transform: translateY(calc(var(--wp--preset--spacing--100) * -1));

	}

	.wp-block-navigation__responsive-container-close svg {
		scale: 1.3;
		transform-origin: top;
	}

	.has-modal-open .wp-block-navigation__responsive-container-open {
		opacity: 0;
		pointer-events: none;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		overflow: visible;
		padding-top: calc(2rem + 24px);
	}

	.site-header .main-nav .wp-block-navigation__responsive-container-content {
		padding: 0 var(--wp--style--root--padding-right);
	}

	.site-header .main-nav .wp-block-navigation__container {
		width: 100%;
	}

	.site-header .main-nav .wp-block-navigation__container li {
		display: grid !important;
		grid-template-columns: auto 1fr;
		width: 100%;
		position: relative;
	}

	.site-header .main-nav .wp-block-navigation__container li a,
	.site-header .main-nav .wp-block-navigation__container li a:hover,
	.site-header .main-nav .wp-block-navigation__container li a span {
		font-size: inherit;
		display: inline-block !important;
		position: static !important;
		color: inherit;
		transition: color 0.4s;
	}

	.site-header .main-nav .wp-block-navigation__container li a {
		padding-left: var(--wp--preset--spacing--20) !important;
	}

	.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content::before {
		position: absolute;
		content: '';
		width: 100%;
		height: 100%;
		background-color: #113049;
		z-index: -1;
		top: 0;
		opacity: .43;
		filter: blur(30px) brightness(15);
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon {
		display: inline-block;
		font-size: 1.4em;
	}

	#site-navigation .wp-block-navigation__responsive-dialog {
		position: static;
	}

	#site-navigation .wp-block-navigation .wp-block-navigation__container {
		margin-top: var(--wp--preset--spacing--20);
	}

	#site-navigation .wp-block-navigation .wp-block-navigation-item {
		padding: var(--wp--preset--spacing--30) 0;
		border-bottom: 1px solid var(--wp--preset--color--white);
		overflow: hidden;
	}

	#site-navigation .wp-block-navigation__submenu-container {
		transform: translateX(0);
		display: none !important;
		padding: 0;
		grid-column: 1/3;
		margin-top: var(--wp--preset--spacing--20);
		margin-bottom: calc(-1 * var(--wp--preset--spacing--20));
	}

	#site-navigation .submenu-open .wp-block-navigation__submenu-container {
		display: block !important;
	}

	#site-navigation .wp-block-navigation__submenu-container.submenu-open {
		/* transform: translateX(-100%); */
	}

	.wp-block-navigation__submenu-container .icon-back-arrow {
		--font-size: 15;
		cursor: pointer;
		position: absolute;
		top: 0;
		left: 0;
		padding: 30px 27px;
	}
}

@media (min-width: 960px) {

	.wpfox-mobile-menu-header,
	.wpfox-mobile-menu-footer {
		display: none !important;
	}
}

@media (max-width: 959px) {
	.is-style-has-mobile .wp-block-navigation__responsive-dialog {
		display: flex;
		flex-direction: column;
		height: 100%;
		justify-content: flex-start;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation-item,
	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-page-list,
	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
		align-items: center !important;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
		gap: 0 !important;
		margin: 0;
	}

	.wpfox-mobile-menu-footer {
		order: 3;
		flex-grow: 1;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
	}

	.wpfox-mobile-menu-footer .wp-block-social-links.is-style-circle-icons {
		--font-size: 24;
		gap: 0.5em;
		margin: 0;
	}
}

/* Mobile Menu Submenus */

@media (max-width: 959px) {
	.wp-block-navigation-item.has-child>.wp-block-navigation-item__content::after {
		transform: rotate(-90deg);
	}

	.wp-block-navigation-item.has-child>.wp-block-navigation-item__content.open::after {
		transform: rotate(0deg);
	}

	.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) {
		display: none;
	}

	.site-header .main-nav .wp-block-navigation__submenu-container li {
		--font-size: 20;
		font-weight: 500;
		color: var(--wp--preset--color--default-text);
		border-bottom: none !important;
		text-align: left;
		text-transform: none;
		padding: var(--wp--preset--spacing--30) 0 !important;
	}

}


/* Site Mobile Header */

@media (max-width: 959px) {
	.site-header .site-navigation {
		align-self: auto;
	}

	.wp-block-site-logo a {
		width: 140px;
		margin: 20px 0;
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.wp-block-navigation__responsive-container-close svg,
	.wp-block-navigation__responsive-container-open svg {
		width: var(--wp--preset--spacing--40);
		height: var(--wp--preset--spacing--40);
	}

}


/* Callouts Block */

.callout-block {
	--font-size: 20;
	margin: 0;
	padding: var(--wp--preset--spacing--60);
	font-weight: 300;
}

.callout-block .wp-block-image,
.callout-block .wp-block-image>.components-resizable-box__container {
	position: relative;
	padding-bottom: 35%;
	margin: 0;
}

.callout-block .wp-block-image.block-editor-block-list__block {
	padding: 0;
}

.callout-block .wp-block-image>.components-resizable-box__container {
	width: 100% !important;
}

.callout-block .wp-block-image img {
	position: absolute;
	object-fit: contain;
	object-position: center center;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.callout-block h5 {
	margin: 1em 0 0;
}

.callout-block p:not(:first-child) {
	margin-top: 0.5em;
}

/* List Block */
ul.is-style-orange,
.is-style-orange ul,
ul.is-style-green {
	list-style: square;
	padding-left: .8em;
}

ul.is-style-orange ::marker,
.is-style-orange ul ::marker {
	color: var(--wp--preset--color--orange);
}

ul.is-style-green ::marker {
	color: var(--wp--preset--color--green);
}

.is-style-orange.no-link ul li a {
	pointer-events: none;
	color: inherit;
	text-decoration: none;
}

/* Single Project Custom Fields */
.single-project-meta {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: 1fr 1fr;
}

.single-project-meta .prefix {
	font-size: var(--wp--preset--font-size--h-4);
	font-weight: 600;
	letter-spacing: 0;
	line-height: calc(22/18);
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--5);
}

.single-project-meta .full {
	grid-column: 1/3;
}

.single-project-meta .full ul {
	margin-top: 0;
}

.single-project-meta .full.h3 .prefix {
	font-size: var(--wp--preset--font-size--h-3);
	font-weight: 400;
	line-height: calc(36/24);
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--20);
}

@media (max-width: 767px) {
	.single-project-meta {
		grid-template-columns: 1fr;
	}

	.single-project-meta .full {
		grid-column: 1;
	}
}

/* Footer */
.site-footer-container {
	margin-top: 0;
	z-index: 2;
	position: relative;
}

.site-footer-container li.wp-block-navigation-item:not(:last-of-type).wp-block-navigation-link::after {
	position: absolute;
	content: "|";
	left: calc(100% + var(--wp--preset--spacing--10));
}

/* WP Video Lightbox Plugin - Mobile Cleanup CSS */

div.pp_default .pp_close {
	margin: 0;
}

@media (max-width: 767px) {
	.pp_pic_holder.pp_default {}

	a.pp_expand,
	a.pp_contract,
	.pp_hoverContainer,
	.pp_gallery,
	.pp_top,
	.pp_bottom {
		display: block !important;
	}

	div.pp_default .pp_content_container .pp_left {
		padding-left: 13px !important;
	}

	div.pp_default .pp_content_container .pp_right {
		padding-right: 13px !important;
	}

	.pp_content {
		width: 100% !important;
	}

	.pp_fade {
		width: calc(100% - 8px) !important;
	}

	.pp_details {
		margin: -33px 3px !important;
		width: auto !important;
		background: none;
	}

	a.pp_close {
		right: 0 !important;
		top: 0 !important;
	}

	#pp_full_res {
		height: 66vw;
	}

	#pp_full_res iframe {
		width: 100%;
		height: 66vw;
	}
}


/* WP Query Block Offset Items */
.offset-query-loop-container figure {
	box-shadow: 0px 0px 30px #0000004B;
}

.offset-query-loop-container .wp-block-post-template>li {
	transition: transform 0.4s ease-in-out;
}

.offset-query-loop-container .wp-block-post-template.scrolled-into-view>li:nth-child(2) {
	transform: translateY(var(--wp--preset--spacing--40));
}

.offset-query-loop-container .wp-block-post-template.scrolled-into-view>li:nth-child(3) {
	transform: translateY(var(--wp--preset--spacing--80));
}

.offset-query-loop-container a {
	text-decoration: none !important;
}

.offset-query-loop-container .taxonomy-project_category {
	pointer-events: none;
	cursor: default;
}

.fox-fallback-image.hide-if-fallback {
	display: none !important;
}

.gform-theme--api,
.gform-theme--framework {
	--gf-ctrl-btn-radius: 22px !important;
	--gf-ctrl-btn-padding-y: 18px !important;
	--gf-ctrl-btn-padding-x: 32px !important;
}