
/**
Theme Name: Astra Child
Theme URI: https://gfoutdoorfitness.com/
Author: greenfields
Author URI: https://gfoutdoorfitness.com/
Template: astra
Version: 1.3.7
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra child
AMP: true
*/

/* ========================================================= */

/* ================================ */

/* Mega Menu Hover Styles - Fixed   */

/* ================================ */

/* ========================================================= */
.mm-section a:hover, .mm-section .mm-links a:hover, .mm-links a:hover, .mm-links a.mm-active {
	background-color: rgba(1, 130, 76, .06) !important;
	border-radius: 8px !important;
	color: #000 !important;
}

.mm-section2 a:hover, .mm-section2 .mm-links a:hover {
	background-color: rgba(185, 31, 41, .06) !important;
	border-radius: 8px !important;
	color: #000 !important;
}

/* ========================================================= */

/* ================================ */

/* General Body Styles              */

/* ================================ */

/* ========================================================= */
html, body {
	width: 100%;
	overflow-x: hidden;
}

.text-shadow {
	text-shadow: -3px 3px rgba(0, 0, 0, .6);
}

/* ========================================================= */

/* ================================ */

/* WPForms Button Styles            */

/* ================================ */

/* ========================================================= */

/* Main button styling with proper vertical centering */
.wpforms-form input[type=submit], .wpforms-form button[type=submit] {
	/* Colors and basic styling */
	background-color: #004e2e !important;
	border-radius: 8px !important;
	color: #fff !important;
	font-size: 18px !important;
	font-weight: 500 !important;
	/* Spacing - using flexbox for perfect centering */
	padding: 0 50px !important;
	height: 60px !important;
	line-height: normal !important;
	/* Flexbox centering - this fixes the vertical alignment issue */
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	/* Positioning */
	margin: 20px auto 0 auto !important;
	/* Reset any inherited styles */
	border: 0 !important;
	cursor: pointer !important;
	transition: all .15s ease-in-out !important;
	text-align: center !important;
}

/* Hover and active states */
.wpforms-form input[type=submit]:hover, .wpforms-form input[type=submit]:active, .wpforms-form button[type=submit]:hover, .wpforms-form button[type=submit]:active, .wpforms-form .wpforms-page-button:hover, .wpforms-form .wpforms-page-button:active {
	background-color: #ffba00 !important;
	color: #000 !important;
}

/* Container-specific override */
div.wpforms-container-full .wpforms-form button[type=submit], div.wpforms-container-full .wpforms-form input[type=submit] {
	margin: 20px auto 0 auto !important;
	display: flex !important;
}

/* ========================================================= */

/* ================================ */

/* Modernized Unit Card Styles      */

/* ================================ */

/* ========================================================= */
.unit-card-link {
	display: flex;
	margin: 10px;
	box-sizing: border-box;
	text-decoration: none !important;
	color: inherit;
}

.unit-card {
	border: 1px solid #ccc;
	border-radius: 5px;
	padding: 15px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	width: 100%;
	transition: box-shadow .2s ease-in-out;
}

.unit-card:hover {
	box-shadow: 0 4px 15px rgba(0, 0, 0, .1);
}

.unit-card-header {
	width: 100%;
	text-align: center;
	margin-bottom: 15px;
	font-weight: bold;
	background-color: #2b5748;
	color: #fff;
	padding: 8px 15px;
	border-radius: 4px;
	font-size: 1.1em;
	box-sizing: border-box;
	text-decoration: none !important;
}

.unit-card-images {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin-top: auto;
}

.unit-card-image-box {
	box-sizing: border-box;
	padding: 0 5px;
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}

.unit-card-image-box img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* Responsive Image Display */
@media (min-width: 769px) {
	.unit-card-image-box {
		flex-basis: 33.33%;
	}
}

@media (max-width: 768px) {
	.unit-card-image-box {
		flex-basis: 50%;
	}
	
	.unit-card-image-box:last-of-type {
		display: none;
	}
}

/* Misc */
.pkg-descrip {
	margin: 10px 0;
	padding: 10px;
	float: right;
}

.pkg-pdf-dl-text {
	text-align: center;
	margin-top: 0;
	font-size: 16pt;
	font-weight: 900;
	color: #f37321;
}

.unit-count-1 {
	background: #f90;
	color: #fff;
	border-radius: 3px;
	padding: 2px;
	float: left;
}

.unit-count-2 {
	background: #fff;
	color: #f90;
	float: left;
	margin: 2px;
	padding: 3px;
}

.post-meta {
	display: none;
}

/* ========================================================= */

/* ================================ */

/* Scoped Mega Menu Hover Preview   */

/* ================================ */

/* ========================================================= */
.package-preview-container {
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 2rem;
	width: 100%;
}

.preview-menu {
	flex: 0 0 250px;
}

.preview-display {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.preview-item {
	display: none;
	width: 100%;
}

.preview-item.active {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 1rem;
	width: 100%;
}

.preview-item img {
	max-width: 300px;
	height: auto;
	object-fit: contain;
	flex-shrink: 0;
}

.preview-item p {
	margin: 0;
	flex: 1;
	max-width: 100%;
	line-height: 1.5;
}

/* ========================================================= */

/* ================================ */

/* Gutenberg Table Styling          */

/* ================================ */

/* ========================================================= */
.package-table {
	border-radius: 8px !important;
	overflow: hidden;
}

.package-table table {
	width: 100%;
	border-collapse: collapse;
}

.package-table td, .package-table th {
	padding: 14px 20px;
}

.package-table a, .package-table td a, .package-table th a {
	text-decoration: none !important;
}

.package-table td:first-child, .package-table th:first-child {
	padding-left: 20px;
}

/* ========================================================= */

/* ========================================================= */

/* Global TEXT link styling (content only) — safe (REVISED)   */

/* - Modern blue + slightly heavier                            */

/* - No underline                                              */

/* - Excludes header/nav/footer + icons/SVG/buttons            */

/* ========================================================= */

/* ========================================================= */

/* Only apply inside the main content container(s), NOT footer */
:where(
  .site-content,
  .content-area,
  .primary,
  .ast-container,
  .entry-content,
  .wp-block-post-content,
  .ast-single-entry-content
) a :not(.unit-card-link) :not(.unit-card-link *) :not(.mm-links a) :not(.mm2-links a) :not(.wp-block-button__link) :not(.wpforms-submit) :not(.ast-button) :not(.menu-link) :not(.uagb-tabs-list) :not(.uagb-tabs-list *) :not(.stretched-link) :not([class*="icon"]) :not(:has(svg)) {
	color: #1a73e8;
	font-weight: 500;
	text-decoration: none !important;
}

/* Hover/focus */
:where(
  .site-content,
  .content-area,
  .primary,
  .ast-container,
  .entry-content,
  .wp-block-post-content,
  .ast-single-entry-content
) a :not(.unit-card-link) :not(.unit-card-link *) :not(.mm-links a) :not(.mm2-links a) :not(.wp-block-button__link) :not(.wpforms-submit) :not(.ast-button) :not(.menu-link) :not(.uagb-tabs-list) :not(.uagb-tabs-list *) :not(.stretched-link) :not([class*="icon"]) :not(:has(svg)):hover, :where(
  .site-content,
  .content-area,
  .primary,
  .ast-container,
  .entry-content,
  .wp-block-post-content,
  .ast-single-entry-content
) a :not(.unit-card-link) :not(.unit-card-link *) :not(.mm-links a) :not(.mm2-links a) :not(.wp-block-button__link) :not(.wpforms-submit) :not(.ast-button) :not(.menu-link) :not(.uagb-tabs-list) :not(.uagb-tabs-list *) :not(.stretched-link) :not([class*="icon"]) :not(:has(svg)):focus {
	color: #174ea6;
	text-decoration: none !important;
}

/* Hard-exclude footer no matter what */
:where(
  .site-footer,
  .ast-builder-footer,
  .footer-widget-area,
  .ast-small-footer,
  .ast-footer-copyright,
  .ast-footer-html
) a {
	color: inherit !important;
	font-weight: inherit !important;
	text-decoration: inherit !important;
}

/* ========================================================= */

/* ================================ */

/* Equal-height grids (scoped)      */

/* ================================ */

/* ========================================================= */
.cards-white :where(.rt-holder) {
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .06);
}

.cards-white :where(.rt-img-holder img) {
	display: block;
	width: 100%;
	height: auto;
}

.cards-white :where(.rt-detail) {
	padding: 14px 16px;
	flex: 1 1 auto;
	display: flex;
	align-items: flex-start;
}

.cards-white :where(.entry-title) {
	font-size: 1.05rem;
	line-height: 1.3;
	margin: 0;
}

.cards-white :where(.entry-title a) {
	text-decoration: none;
	color: inherit;
}

.cards-white {
	align-items: stretch;
}

.cards-white > * {
	align-self: stretch;
}

.equal-cards .rt-row, .equal-cards .rt-grid-default, .equal-cards .rt-grid, .equal-cards .rt-masonry {
	align-items: stretch;
}

.equal-cards .rt-col, .equal-cards .rt-grid-item, .equal-cards .rt-post-item {
	display: flex;
	align-items: stretch;
}

.equal-cards .rt-holder {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 100%;
	min-height: 100%;
}

.equal-cards .uagb-post-grid, .equal-cards .uagb-post__items, .equal-cards .uagb-post__items-wrap {
	align-items: stretch;
}

.equal-cards .uagb-post__inner-wrap {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.equal-cards .uagb-post__image img, .equal-cards .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: auto;
}

.equal-cards .wp-block-post-template {
	display: grid;
	align-items: stretch;
}

.equal-cards .wp-block-post {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.cards-white .rt-holder, .cards-white .uagb-post__inner-wrap, .cards-white .wp-block-post {
	background: #fff;
}

/* ========================================================= */

/* ================================ */

/* UAGB/Spectra Tab Styling         */

/* ================================ */

/* ========================================================= */
.uagb-tabs__wrap .uagb-tabs__panel {
	display: flex !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	justify-content: flex-start !important;
}

.uagb-tabs__wrap .uagb-tabs__panel > li.uagb-tab {
	margin: 0 !important;
}

.uagb-tabs__wrap .uagb-tabs__nav, .uagb-tabs__wrap .uagb-tabs-list {
	display: flex;
	gap: 10px !important;
	margin: 0 !important;
}

.uagb-tabs__wrap .uagb-tabs__wrap .uagb-tabs-list > li {
	margin: 0 !important;
}

.uagb-tabs__wrap .uagb-tab {
	border: none !important;
	background: none !important;
	padding: 0 !important;
}

.uagb-tabs__wrap [role="tab"], .uagb-tabs__wrap .uagb-tabs-list {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 22px !important;
	font-weight: 600;
	line-height: 1.2;
	border: none !important;
	border-radius: 6px !important;
	background: #d1d1d1 !important;
	color: var(--ast-global-color-3, #303030) !important;
	text-decoration: none !important;
	transition: none !important;
}

.uagb-tabs__wrap [role="tab"][aria-selected="true"] {
	padding: 12px 22px !important;
	border: none !important;
	background: var(--ast-global-color-0, #004e2e) !important;
	color: #fff !important;
}

.uagb-tabs__wrap [role="tab"][aria-selected="true"] * {
	color: #fff !important;
}

.uagb-tabs__wrap [role="tab"]:not([aria-selected="true"]):hover {
	background: #d1d1d1 !important;
	border: none !important;
	color: inherit !important;
	outline: none !important;
	box-shadow: none !important;
}

.uagb-tabs__wrap [role="tab"]:focus-visible {
	outline: 2px solid var(--ast-global-color-0, #004e2e) !important;
	outline-offset: 2px !important;
}

/* ========================================================= */

/* ================================ */

/* NINJA TABS — RED VARIANT         */

/* ================================ */

/* ========================================================= */
.ninja-tabs.uagb-tabs__wrap > .uagb-tabs__panel[role="tablist"] {
	margin-top: 20px !important;
}

body .ninja-tabs.uagb-tabs__wrap [role="tab"]:not([aria-selected="true"]), body .ninja-tabs.uagb-tabs__wrap .uagb-tabs-list:not([aria-selected="true"]) {
	background: transparent !important;
	color: #bf0808 !important;
	border: none !important;
	box-shadow: none !important;
}

body .ninja-tabs.uagb-tabs__wrap [role="tab"][aria-selected="true"], body .ninja-tabs.uagb-tabs__wrap .uagb-tabs-list[aria-selected="true"] {
	background: #bf0808 !important;
	color: #fff !important;
	border: none !important;
	box-shadow: none !important;
}

body .ninja-tabs.uagb-tabs__wrap [role="tab"][aria-selected="true"] *, body .ninja-tabs.uagb-tabs__wrap .uagb-tabs-list[aria-selected="true"] * {
	color: #fff !important;
}

body .ninja-tabs.uagb-tabs__wrap [role="tab"]:not([aria-selected="true"]):hover {
	background: transparent !important;
	color: #bf0808 !important;
	border: none !important;
	box-shadow: none !important;
}

body .ninja-tabs.uagb-tabs__wrap .uagb-tab, body .ninja-tabs.uagb-tabs__wrap li {
	background: transparent !important;
}

/* ========================================================= */

/* ================================ */

/* UAGB Hanging Indent Helper       */

/* ================================ */

/* ========================================================= */
.wp-block-uagb-advanced-heading .uagb-heading-text.has-leading-bullet {
	text-indent: -.6em;
	padding-left: 1.2em;
	display: block;
	line-height: 1.5;
	white-space: normal;
}

/* ========================================================= */

/* ================================ */

/* ACF-driven Headings              */

/* ================================ */

/* ========================================================= */
.acf-heading-box, .wp-block-uagb-advanced-heading.acf-heading-box .uagb-heading-text {
	background-color: var(--ast-global-color-5);
	padding: 10px;
	border-radius: 8px;
	display: block;
	margin: 15px 0 12px 0;
	font-weight: 600;
	color: var(--ast-global-color-2);
	box-sizing: border-box;
	text-align: center;
}

/* ========================================================= */

/* ================================ */

/* Mega Menu 2 Layout               */

/* ================================ */

/* ========================================================= */
.mm2-container {
	display: flex;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	background-color: #fff;
	border-radius: 8px;
	overflow: hidden;
	border: none;
	min-height: 400px;
}

.mm2-sidebar {
	width: 35%;
	background-color: transparent;
	padding: 20px;
	box-sizing: border-box;
}

.mm2-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mm2-links a {
	display: block;
	padding: 10px 13px;
	text-decoration: none;
	color: #334155 !important;
	font-weight: 500;
	border-radius: 6px;
	margin-bottom: 3px;
	transition: background-color .2s ease, color .2s ease;
}

.mm2-links a:hover, .mm2-links a.mm2-active {
	background-color: rgba(1, 130, 76, .06);
	color: #000 !important;
}

.mm2-preview-area {
	width: 65%;
	position: relative;
}

.mm2-preview-pane {
	width: 100%;
	padding: 30px;
	box-sizing: border-box;
	display: none;
	animation: mm2-fade-in .3s ease;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
}

.mm2-preview-pane.mm2-active {
	display: block;
	opacity: 1;
	visibility: visible;
}

@keyframes mm2-fade-in {
	from {
		opacity: 0;
	}
	
	to {
		opacity: 1;
	}
}

.mm2-preview-content {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: center;
}

.mm2-preview-content img {
	width: 70%;
	max-width: 100%;
	height: auto;
	border-radius: 6px;
	border: 1px solid #e0e0e0;
	margin: 0 auto;
}

.mm2-preview-text {
	text-align: center;
	width: 100%;
}

.mm2-preview-text h3 {
	margin: 0 0 10px 0;
	font-size: 20px;
	color: #1e293b;
}

.mm2-preview-text p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: #475569;
}

/* ========================================================= */

/* ================================ */

/* Adaptive Post Cards — Desktop    */

/* ================================ */

/* ========================================================= */
.desktop-post-grid {
	display: grid;
	grid-template-columns: repeat(var(--apg-cols, 3), minmax(0, 1fr));
	gap: 18px;
}

.desktop-post-grid .apg-card {
	display: block;
	text-decoration: none;
	color: inherit;
	border: 1px solid #e9ecef;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.desktop-post-grid .apg-thumb .apg-img {
	width: 100%;
	height: auto;
	display: block;
}

.desktop-post-grid .apg-title {
	display: block;
	padding: 12px;
	font-weight: 600;
}

/* ========================================================= */

/* ================================ */

/* Show/Hide desktop vs mobile      */

/* ================================ */

/* ========================================================= */
@media (min-width: 768px) {
	.apc-desktop {
		display: grid;
	}
	
	.apc-mobile {
		display: none;
	}
}

@media (max-width: 767px) {
	.apc-desktop {
		display: none !important;
	}
	
	.apc-mobile {
		display: block;
	}
}

/* ========================================================= */

/* ========================================================= */

/* PHONES (≤767px) — Horizontal list cards (40/60)            */

/* ========================================================= */

/* ========================================================= */
@media (max-width: 767px) {
	.apc-mobile .mpc-card {
		display: flex !important;
		flex-direction: row !important;
		align-items: flex-start !important;
		gap: 12px !important;
		padding: 10px 0 !important;
		margin: 0 !important;
		border-bottom: 1px solid #e9ecef !important;
		background: #fff !important;
		border-radius: 8px !important;
		text-decoration: none !important;
		color: inherit !important;
	}
	
	.apc-mobile .mpc-card:last-child {
		border-bottom: 0 !important;
	}
	
	.apc-mobile .mpc-thumb {
		flex: 0 0 40% !important;
		max-width: 40% !important;
		width: 40% !important;
		min-width: 40% !important;
		border-radius: 8px !important;
		overflow: hidden !important;
	}
	
	.apc-mobile .mpc-img {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		object-fit: cover !important;
	}
	
	.apc-mobile .mpc-text {
		flex: 1 1 60% !important;
		min-width: 0 !important;
	}
	
	.apc-mobile .mpc-title {
		margin: 0 !important;
		font-size: 16px !important;
		line-height: 1.3 !important;
		font-weight: 600 !important;
		display: -webkit-box !important;
		-webkit-line-clamp: 2 !important;
		line-clamp: 2 !important;
		-webkit-box-orient: vertical !important;
		overflow: hidden !important;
	}
}

/* ========================================================= */

/* ================================ */

/* Bring your own rig page code     */

/* ================================ */

/* ========================================================= */
.byor-boxes {
	width: 210px;
	height: 280px;
	text-align: center;
	float: left;
	padding: 1% 2% 1% 1%;
}

.byor-img {
	border: none;
	width: 200px;
	height: 200px;
	margin: 5px;
	transition: .25s ease-in-out;
	-moz-transition: .25s ease-in-out;
	-webkit-transition: .25s ease-in-out;
}

.byor-img:hover {
	transform: scale(1.07);
}

/* ========================================================= */

/* ================================ */

/* White link helpers               */

/* ================================ */

/* ========================================================= */
.link-white, .link-white a, .link-white a:visited {
	color: #fff !important;
}

.link-white a:hover, .link-white a:focus {
	color: #fff !important;
	text-decoration: underline;
}

/* ========================================================= */

/* ================================ */

/* Header search placeholder color  */

/* ================================ */

/* ========================================================= */
.ast-search-wrapper .search-form .search-field::placeholder {
	color: var(--ast-global-color-0) !important;
	opacity: 1;
}

.ast-search-wrapper .search-form .search-field::-webkit-input-placeholder {
	color: var(--ast-global-color-0) !important;
}

.ast-search-wrapper .search-form .search-field::-moz-placeholder {
	color: var(--ast-global-color-0) !important;
	opacity: 1;
}

.ast-search-wrapper .search-form .search-field:-ms-input-placeholder {
	color: var(--ast-global-color-0) !important;
}

.ast-search-wrapper .search-form .search-field::-ms-input-placeholder {
	color: var(--ast-global-color-0) !important;
}

/* ========================================================= */

/* ================================ */

/* Existing focus outline rule      */

/* ================================ */

/* ================================ */
a:focus, a:active {
	outline: none;
}

/* ========================================================= */

/* ========================================================= */

/* Hide bottom Spectra shape divider only for home hero (mobile) */

/* ========================================================= */

/* ========================================================= */
@media (max-width: 768px) {
	.home .home-hero-spectra .uagb-section__shape-bottom, .home .home-hero-spectra .uagb-section__shape.uagb-section__shape-bottom, .home .home-hero-spectra .uagb-section__shape-bottom svg {
		display: none !important;
		height: 0 !important;
	}
}

@media (max-width: 768px) {
	.home .home-hero-spectra [class*="shape-divider"], .home .home-hero-spectra [class*="shape-bottom"] {
		display: none !important;
		height: 0 !important;
		overflow: hidden !important;
	}
}

/* ========================================================= */

/* ================================ */

/* Glossary basic spacing           */

/* ================================ */

/* ========================================================= */
.gf-glossary dt {
	font-weight: 600;
	margin-top: 24px;
	margin-bottom: 6px;
}

.gf-glossary dd {
	margin-left: 0;
	margin-bottom: 16px;
	line-height: 1.5;
}

/* ========================================================= */

/* ================================ */

/* Blog meta wrapper                */

/* ================================ */

/* ========================================================= */
.gf-blog-meta {
	font-size: 14px;
	line-height: 1.5;
	color: #555;
	margin: 0 0 1.25rem;
}

.gf-blog-meta-author, .gf-blog-meta-date {
	display: inline-block;
	white-space: nowrap;
}

.gf-blog-meta-sep {
	margin: 0 .35em;
	color: #999;
}

.gf-blog-meta-author::before {
	content: "By ";
	text-transform: none;
}

.gf-blog-meta a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px dotted rgba(0, 0, 0, .25);
}

.gf-blog-meta a:hover {
	border-bottom-style: solid;
}

@media (max-width: 480px) {
	.gf-blog-meta {
		font-size: 13px;
	}
}

/* ========================================================= */

/* ================================ */

/* Stretched link helper            */

/* ================================ */

/* ========================================================= */
.stretched-link::after {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	content: "";
}

@media (max-width: 768px) {
	body .uagb-container__shape.uagb-container__shape-bottom.uagb-container__invert {
		display: none !important;
	}
}

/* ======================================================
   Package Layout Modal – Edge/Chrome safe
   ====================================================== */
html.layout-modal-lock, body.layout-modal-lock {
	overflow: hidden !important;
}

/* Modal root */
#layout-modal {
	position: fixed !important;
	inset: 0 !important;
	z-index: 999999 !important;
	/* Force it out of document flow in case theme sets something weird */
	float: none !important;
	clear: both !important;
}

/* Closed/open */
#layout-modal.is-closed {
	display: none !important;
}

#layout-modal.is-open {
	display: block !important;
}

/* Overlay */
#layout-modal .layout-modal-overlay {
	position: fixed !important;
	inset: 0 !important;
	background: rgba(0, 0, 0, .72) !important;
	opacity: 0 !important;
	transition: opacity 180ms ease !important;
}

/* Dialog */
#layout-modal .layout-modal-dialog {
	position: fixed !important;
	left: 50% !important;
	top: 50% !important;
	transform: translate(-50%, -50%) scale(.98) !important;
	width: min(1100px, 92vw) !important;
	max-height: 90vh !important;
	overflow: auto !important;
	background: #fff !important;
	border-radius: 14px !important;
	padding: 18px 18px 20px !important;
	box-shadow: 0 25px 80px rgba(0, 0, 0, .45) !important;
	opacity: 0 !important;
	transition: opacity 180ms ease, transform 180ms ease !important;
}

/* Animate in */
#layout-modal.is-open .layout-modal-overlay {
	opacity: 1 !important;
}

#layout-modal.is-open .layout-modal-dialog {
	opacity: 1 !important;
	transform: translate(-50%, -50%) scale(1) !important;
}

/* Title + specs */
#layout-modal .layout-modal-title {
	margin: 6px 56px 6px 0 !important;
	font-size: 22px !important;
	line-height: 1.25 !important;
}

#layout-modal .layout-modal-specs {
	margin: 0 56px 14px 0 !important;
	font-size: 14px !important;
	opacity: .75 !important;
}

/* Close button (hard reset so Astra can't turn it into a big blue button) */
#layout-modal .layout-modal-close {
	all: unset;
	/* <-- key reset */
	position: absolute !important;
	right: 14px !important;
	top: 14px !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 10px !important;
	display: grid !important;
	place-items: center !important;
	background: rgba(0, 0, 0, .1) !important;
	color: #111 !important;
	font-size: 26px !important;
	line-height: 1 !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

#layout-modal .layout-modal-close:hover {
	background: rgba(0, 0, 0, .16) !important;
}

/* Image */
#layout-modal .layout-modal-image {
	width: 100% !important;
	height: auto !important;
	display: block !important;
	border-radius: 10px !important;
}

.qr-video-embed, .qr-video-embed .wp-block-embed, .qr-video-embed .wp-block-embed__wrapper, .qr-video-embed figure {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	max-width: 100% !important;
}

.qr-video-embed iframe, .qr-video-embed iframe[src*="player.vimeo.com"], .qr-video-embed iframe[src*="vimeo.com"] {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	aspect-ratio: 16/9;
}

.qr-video-embed .wp-block-embed__wrapper::before, .qr-video-embed .wp-block-embed::before, .qr-video-embed figure::before {
	content: none !important;
	display: none !important;
	padding: 0 !important;
}

.gf-footer-v2 {
	width: 100%;
	margin: 0;
	padding: 0;
	background: #fff;
}

.gf-footer-main {
	width: min(1240px, calc(100% - 40px));
	margin: 0 auto;
	padding: 34px 0 18px;
	box-sizing: border-box;
}

.gf-footer-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 34px;
	align-items: start;
}

.gf-footer-col h3 {
	margin: 0 0 14px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	color: #111;
}

.gf-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gf-footer-col li {
	margin: 0 0 10px;
	line-height: 1.45;
}

.gf-footer-col a {
	color: #1f2937;
	text-decoration: none;
}

.gf-footer-col a:hover, .gf-footer-col a:focus {
	color: #005c2f;
	text-decoration: underline;
}

/* logo row */
.gf-footer-logos-wrap {
	width: 100%;
	padding: 24px 0 30px;
}

.gf-footer-logos-inner {
	width: min(1240px, calc(100% - 40px));
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
}

.gf-footer-logos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	align-items: center;
}

.gf-footer-logo-card {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	text-decoration: none;
	line-height: 0;
}

.gf-footer-logo-card img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 3px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}

/* green bar */
.gf-footer-v2 {
	width: 100%;
	margin: 0;
	padding: 0;
	background: #fff;
}

.gf-footer-main {
	width: min(1240px, calc(100% - 40px));
	margin: 0 auto;
	padding: 34px 0 18px;
	box-sizing: border-box;
}

.gf-footer-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 34px;
	align-items: start;
}

.gf-footer-col h3 {
	margin: 0 0 14px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	color: #111;
}

.gf-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gf-footer-col li {
	margin: 0 0 10px;
	line-height: 1.45;
}

.gf-footer-col a {
	color: #1f2937;
	text-decoration: none;
}

.gf-footer-col a:hover, .gf-footer-col a:focus {
	color: #005c2f;
	text-decoration: underline;
}

.gf-footer-logos-wrap {
	width: 100%;
	padding: 24px 0 30px;
}

.gf-footer-logos-inner {
	width: min(1240px, calc(100% - 40px));
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
}

.gf-footer-logos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	align-items: center;
}

.gf-footer-logo-card {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	text-decoration: none;
	line-height: 0;
}

.gf-footer-logo-card img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 3px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}

.gf-footer-bottom-bar {
	background: #004e2e;
	/* unified green */
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 0;
	color: #fff;
}

.gf-footer-bottom-bar, .gf-footer-bottom-bar * {
	color: #fff !important;
}

.gf-footer-bottom-bar a, .gf-footer-bottom-bar a:visited {
	color: #fff !important;
	text-decoration: none;
}

.gf-footer-bottom-bar a:hover, .gf-footer-bottom-bar a:focus {
	color: #fff !important;
	text-decoration: underline;
}

.gf-footer-bottom-inner {
	width: min(1240px, calc(100% - 40px));
	margin: 0 auto;
	padding: 24px 0;
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	text-align: left;
}

.gf-footer-contact {
	font-size: 15px;
	line-height: 1.7;
	color: #fff;
}

.gf-footer-contact div {
	white-space: nowrap;
}

.gf-footer-contact a {
	color: #fff !important;
	text-decoration: none;
}

.gf-footer-contact a:hover, .gf-footer-contact a:focus {
	text-decoration: underline;
}

.gf-footer-social {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 26px;
}

.gf-footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff !important;
	text-decoration: none;
	line-height: 1;
	transition: opacity .2s ease;
}

.gf-footer-social svg {
	width: 30px;
	height: 30px;
	fill: currentColor;
	display: block;
}

.gf-footer-social a[aria-label="Twitter / X"] svg {
	width: 26px;
	height: 26px;
}

.gf-footer-social a:hover, .gf-footer-social a:focus {
	opacity: .75;
}

.gf-footer-copyright {
	text-align: right;
	font-size: 14px;
	line-height: 1.5;
	color: #fff;
}

.gf-footer-utility-links {
	margin-top: 6px;
	display: flex;
	gap: 14px;
	justify-content: flex-end;
	flex-wrap: wrap;
}

.gf-footer-utility-links a {
	color: #fff !important;
	text-decoration: none;
	font-size: 13px;
}

.gf-footer-utility-links a:hover, .gf-footer-utility-links a:focus {
	text-decoration: underline;
}

@media (max-width: 921px) {
	.gf-footer-desktop-only {
		display: none !important;
	}
}

@media (min-width: 922px) {
	.gf-footer-mobile-faq {
		display: none !important;
	}
}

@media (max-width: 1024px) and (min-width: 768px) {
	.gf-footer-main, .gf-footer-logos-inner, .gf-footer-bottom-inner {
		width: min(1240px, calc(100% - 36px));
	}
	
	.gf-footer-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 28px;
	}
	
	.gf-footer-logos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
	
	.gf-footer-bottom-inner {
		flex-direction: row;
		align-items: center;
		text-align: left;
		gap: 20px;
	}
	
	.gf-footer-contact, .gf-footer-copyright {
		text-align: left;
	}
	
	.gf-footer-utility-links {
		justify-content: flex-end;
	}
	
	.gf-footer-contact div {
		white-space: normal;
	}
}

@media (max-width: 767px) {
	.gf-footer-main {
		width: min(1240px, calc(100% - 36px));
		padding: 28px 0 14px;
	}
	
	.gf-footer-logos-inner, .gf-footer-bottom-inner {
		width: min(1240px, calc(100% - 36px));
	}
	
	.gf-footer-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}
	
	.gf-footer-col h3 {
		font-size: 16px;
		margin-bottom: 10px;
	}
	
	.gf-footer-col li {
		margin-bottom: 8px;
	}
	
	.gf-footer-logos {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	
	.gf-footer-logos-wrap {
		padding: 18px 0 22px;
	}
	
	.gf-footer-bottom-inner {
		padding: 18px 0;
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 12px;
	}
	
	.gf-footer-contact, .gf-footer-copyright {
		text-align: center;
		font-size: 14px;
	}
	
	.gf-footer-contact div {
		white-space: normal;
	}
	
	.gf-footer-utility-links {
		justify-content: center;
		gap: 12px;
	}
	
	.gf-footer-social {
		gap: 22px;
	}
	
	.gf-footer-social svg {
		width: 26px;
		height: 26px;
	}
	
	.gf-footer-social a[aria-label="Twitter / X"] svg {
		width: 23px;
		height: 23px;
	}
}

.gf-footer-v2 {
	border-top: 1px solid #e5e7eb;
}

.gf-footer-logos-wrap {
	padding-bottom: 40px;
}
