/* ==========================================================================
   SHWC Header & Footer — Fusion / Avada element names
   ========================================================================== */

:root {
	--shwc-green: #6e8477;
	--shwc-green-soft: #a4b4ab;
	--shwc-text: #333333;
	--shwc-body-text: #555555;
	--shwc-heading: #333333;
	--shwc-footer-bg: #2a2a2a;
	--shwc-footer-text: #d0d0d0;
	--shwc-footer-line: #3d3d3d;
	--shwc-header-height: 99px;
	--shwc-font: "PT Sans", "PT Sans Fallback", Arial, Helvetica, sans-serif;
	--shwc-font-heading: "Roboto Slab", "Roboto Slab Fallback", Georgia, "Times New Roman", serif;
	--shwc-font-nav: "Roboto Slab", "Roboto Slab Fallback", Georgia, "Times New Roman", serif;
}

/* Sticky footer: keep footer at bottom on short pages */
html {
	height: 100%;
}

body.fusion-body {
	min-height: 100vh;
	margin: 0;
	display: flex;
	flex-direction: column;
	font-family: var(--shwc-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.69;
	letter-spacing: 0;
	color: var(--shwc-body-text);
	background: #fff;
}

#wrapper.fusion-wrapper {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 100vh;
}

#wrapper > #primary,
#wrapper > main,
#wrapper > .shwc-site-main {
	flex: 1 0 auto;
}

.fusion-footer {
	margin-top: auto;
	flex-shrink: 0;
}

body.fusion-body h1,
body.fusion-body h2,
body.fusion-body h3,
body.fusion-body h4,
body.fusion-body h5,
body.fusion-body h6,
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6,
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
	font-family: var(--shwc-font-heading);
	font-weight: 300;
	color: var(--shwc-heading);
	letter-spacing: 0;
}

body.fusion-body,
.entry-content,
.post-content {
	font-family: var(--shwc-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.69;
	letter-spacing: 0;
	color: var(--shwc-body-text);
}

/* Content links only — #333, no underline (exclude buttons / CTAs) */
.entry-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton),
.post-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton),
.shwc-entry-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton),
.shwc-post-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton) {
	color: var(--shwc-green, #6e8477);
	text-decoration: none;
}

.entry-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton):hover,
.post-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton):hover,
.shwc-entry-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton):hover,
.shwc-post-content a:not(.btn):not(.shwc-book-btn):not(.wp-block-button__link):not(.fusion-button):not(.maxbutton):hover {
	color: #5a7164;
	text-decoration: none;
}

body.fusion-body h1,
.entry-content h1,
.post-content h1,
.shwc-entry-title { font-size: 60px; line-height: 1.2; }
body.fusion-body h2,
.entry-content h2,
.post-content h2 { font-size: 48px; line-height: 1.2; }
body.fusion-body h3,
.entry-content h3,
.post-content h3 { font-size: 28px; line-height: 1.6; }
body.fusion-body h4,
.entry-content h4,
.post-content h4 { font-size: 18px; line-height: 1.87; }
body.fusion-body h5,
.entry-content h5,
.post-content h5 { font-size: 16px; line-height: 1.85; }
body.fusion-body h6,
.entry-content h6,
.post-content h6 { font-size: 14px; line-height: 1.5; }

/* No gap / divider between sticky header and page content */
#primary,
#main,
.fusion-page-title-bar,
.shwc-site-main,
.post-content,
.entry-content {
	border-top: 0 !important;
	box-shadow: none;
}

body.home #primary,
body.home .shwc-site-main,
body.page-template-100-width #primary,
.shwc-site-main--page-banner {
	padding-top: 0;
	margin-top: 0;
}

/* Page banner + content fill to footer (no H1 peek gap) */
.shwc-site-main--page-banner {
	display: flex;
	flex-direction: column;
	flex: 1 0 auto;
}
.shwc-site-main--page-banner > .shwc-container {
	position: relative;
	z-index: 3;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	width: 100%;
	background: #fff;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0 !important;
}
.shwc-site-main--page-banner .shwc-content-area,
.shwc-site-main--page-banner article {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	background: #fff;
	width: 100%;
}
.shwc-site-main--page-banner .shwc-entry-content {
	position: relative;
	z-index: 3;
	flex: 1 1 auto;
	background: #fff;
	width: 100%;
	padding-top: 0;
	margin-top: 0;
}
.shwc-site-main--page-banner .shwc-entry-content > #hc,
.shwc-site-main--page-banner .shwc-entry-content > *:first-child {
	margin-top: 0;
}

/* Single-page title banner — fixed while spacer visible; hidden once past */
.shwc-page-banner {
	--shwc-banner-h: 480px;
	position: relative;
	width: 100%;
	height: var(--shwc-banner-h);
	min-height: 260px;
	margin: 0;
	padding: 0;
	z-index: 0;
	background: transparent;
	flex: 0 0 auto;
}
.shwc-page-banner__fixed {
	position: fixed;
	top: var(--shwc-header-height, 99px);
	left: 0;
	right: 0;
	width: 100%;
	height: var(--shwc-banner-h);
	z-index: 1;
	overflow: hidden;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	pointer-events: none;
	transition: opacity .2s ease, visibility .2s ease;
}
.shwc-page-banner.is-past .shwc-page-banner__fixed {
	opacity: 0;
	visibility: hidden;
}
.shwc-page-banner__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	z-index: 0;
	pointer-events: none;
}
.shwc-page-banner__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding: 40px 30px;
}
/* Beat body.fusion-body h1 { color: #444; font-weight: 300 } */
/* OG: title rises from below, faded → full sage green on page land */
@keyframes shwc-banner-title-in {
	0% { opacity: 0; transform: translateY(28px); }
	100% { opacity: 1; transform: translateY(0); }
}
body.fusion-body h1.shwc-page-banner__title,
.shwc-page-banner h1.shwc-page-banner__title {
	margin: 0;
	font-family: "Roboto Slab", "Roboto Slab Fallback", Georgia, "Times New Roman", serif;
	font-weight: 400;
	font-size: 60px;
	line-height: 1.33;
	color: rgb(110, 132, 119);
	letter-spacing: 0;
	opacity: 0;
	animation: shwc-banner-title-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}
@media (prefers-reduced-motion: reduce) {
	body.fusion-body h1.shwc-page-banner__title,
	.shwc-page-banner h1.shwc-page-banner__title {
		opacity: 1;
		animation: none;
		transform: none;
	}
}

@media (max-width: 1024px) {
	body.fusion-body h1,
	.entry-content h1,
	.post-content h1 { font-size: 48px; }
	body.fusion-body h2,
	.entry-content h2,
	.post-content h2 { font-size: 40px; }
	.shwc-page-banner { --shwc-banner-h: 360px; }
	body.fusion-body h1.shwc-page-banner__title,
	.shwc-page-banner h1.shwc-page-banner__title { font-size: 48px; }
	:root { --shwc-header-height: 80px; }
}

@media (max-width: 640px) {
	body.fusion-body h1,
	.entry-content h1,
	.post-content h1 { font-size: 36px; }
	body.fusion-body h2,
	.entry-content h2,
	.post-content h2 { font-size: 32px; }
	body.fusion-body h3,
	.entry-content h3,
	.post-content h3 { font-size: 24px; }
	.shwc-page-banner { --shwc-banner-h: 260px; }
	body.fusion-body h1.shwc-page-banner__title,
	.shwc-page-banner h1.shwc-page-banner__title { font-size: 36px; }
	:root { --shwc-header-height: 70px; }
}

@font-face {
	font-family: icomoon;
	font-weight: normal;
	font-style: normal;
	font-display: swap;
	src: url("../fonts/icomoon/icomoon.woff") format("woff"),
		url("../fonts/icomoon/icomoon.ttf") format("truetype");
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	left: 8px;
	top: 8px;
	width: auto;
	z-index: 100000;
	background: #fff;
	padding: 8px 12px;
}

.fusion-clearfix {
	clear: both;
}

.fusion-icon,
.fusion-icon:before,
.fusion-social-network-icon:before,
.fusion-main-menu-icon:before {
	font-family: icomoon !important;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	speak: never;
}

.fusion-icon-bars:before { content: "\f0c9"; }
.fusion-icon-shopping-cart:before { content: "\f07a"; }
.fusion-main-menu-cart .fusion-main-menu-icon:before { content: "\f07a"; }
.fusion-icon-facebook:before,
.fusion-facebook:before { content: "\e604"; }
.fusion-icon-twitter:before,
.fusion-twitter:before { content: "\e605"; }
.fusion-icon-pinterest:before,
.fusion-pinterest:before { content: "\e602"; }
.fusion-icon-linkedin:before,
.fusion-linkedin:before { content: "\e60f"; }
.fusion-icon-youtube:before,
.fusion-youtube:before { content: "\e622"; }
.fusion-icon-instagram:before,
.fusion-instagram:before { content: "\ea92"; }

/* ---------- Header ---------- */
/* Sticky: same size/logo/nav as at rest; only a divider appears once scrolled (OG fusion-is-sticky) */
.fusion-header-wrapper {
	position: sticky;
	top: 0;
	z-index: 10010;
	background: #fff;
	border-bottom: 0;
	box-shadow: none;
	transition: box-shadow .2s ease, background-color .2s ease;
	/* Reserve header space so font swap / sticky state cannot shift layout (CLS). */
	min-height: var(--shwc-header-height);
}

.fusion-header-v1 {
	position: relative;
	z-index: 10011;
	background: transparent;
}

.fusion-header.fusion-sticky-shadow {
	border-bottom: 0;
	box-shadow: none;
	background: transparent;
}

/* Scrolled: OG sticky shadow divider — header format otherwise unchanged */
.fusion-header-wrapper.fusion-is-sticky {
	background: rgba(255, 255, 255, 0.97);
}

.fusion-header-wrapper.fusion-is-sticky .fusion-header.fusion-sticky-shadow {
	box-shadow: rgba(0, 0, 0, 0.117647) 0 1px 3px;
}

.fusion-header .fusion-row {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
	min-height: var(--shwc-header-height);
	height: var(--shwc-header-height);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	position: relative;
}

.fusion-logo {
	flex: 0 0 auto;
	margin: 29px 0;
	line-height: 0;
}

.fusion-logo-link {
	display: inline-flex;
	align-items: center;
}

.fusion-standard-logo,
.fusion-mobile-logo,
.fusion-sticky-logo {
	display: block;
	max-height: 45px;
	width: auto;
	height: auto;
}

.fusion-mobile-logo,
.fusion-sticky-logo {
	display: none;
}

.fusion-main-menu {
	display: flex;
	align-items: center;
	flex: 1;
	justify-content: flex-end;
	overflow: visible;
}

.fusion-main-menu > ul.fusion-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--shwc-font-nav);
}

.fusion-main-menu > ul > li {
	position: relative;
	margin: 0;
}

.fusion-main-menu > ul > li > a {
	display: flex;
	align-items: center;
	padding: 28px 16px;
	color: var(--shwc-text);
	text-decoration: none;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.2;
	position: relative;
}

.fusion-main-menu > ul > li > a .menu-text {
	position: relative;
}

.fusion-main-menu > ul > li > a .menu-text::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -28px;
	bottom: auto;
	height: 3px;
	background: var(--shwc-green);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.2s ease;
}

.fusion-main-menu > ul > li:hover > a,
.fusion-main-menu > ul > li.current-menu-item > a,
.fusion-main-menu > ul > li.current-menu-ancestor > a {
	color: var(--shwc-green);
}

.fusion-main-menu > ul > li:hover > a .menu-text::after,
.fusion-main-menu > ul > li.current-menu-item > a .menu-text::after,
.fusion-main-menu > ul > li.current-menu-ancestor > a .menu-text::after {
	transform: scaleX(1);
}

.fusion-main-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 8px 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: #fff;
	border: 1px solid #e8e8e8;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
	z-index: 10020;
}

.fusion-main-menu > ul > li:hover > .sub-menu,
.fusion-main-menu > ul > li:focus-within > .sub-menu,
.fusion-main-menu .fusion-dropdown-menu:hover > .sub-menu,
.fusion-main-menu .fusion-dropdown-menu:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.fusion-main-menu .sub-menu a {
	display: block;
	padding: 10px 18px;
	color: var(--shwc-text);
	text-decoration: none;
	font-size: 13px;
	white-space: nowrap;
}

.fusion-main-menu .sub-menu a:hover {
	background: #f6f7f6;
	color: var(--shwc-green);
}

.fusion-main-menu-cart > a {
	padding-left: 12px !important;
	padding-right: 12px !important;
	font-size: 16px;
}

.fusion-main-menu-cart .menu-text {
	display: none;
}

.fusion-mobile-menu-icons {
	display: none;
	align-items: center;
	gap: 16px;
}

.fusion-mobile-menu-icons .fusion-icon {
	color: var(--shwc-text);
	font-size: 20px;
	text-decoration: none;
	line-height: 1;
}

.fusion-mobile-nav-holder {
	display: none;
	width: 100%;
}

.fusion-mobile-nav-holder > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	background: #fff;
	border-top: 1px solid #dadada;
}

.fusion-mobile-nav-holder > ul > li {
	position: relative;
	border-bottom: 1px solid #dadada;
}

.fusion-mobile-nav-holder a {
	display: block;
	padding: 14px 50px 14px 24px;
	color: var(--shwc-text);
	text-decoration: none;
	font-family: var(--shwc-font-nav);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
}

.fusion-mobile-nav-holder .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: none;
	background: #fff;
}

.fusion-mobile-nav-holder .sub-menu li {
	position: relative;
	border-top: 1px solid #ebeaea;
}

.fusion-mobile-nav-holder .sub-menu a {
	padding: 12px 24px 12px 36px;
	font-size: 14px;
}

.fusion-mobile-nav-holder .sub-menu a span::before {
	content: "- ";
}

.fusion-mobile-nav-holder li.is-open > .sub-menu {
	display: block;
}

/* OG Avada mobile child-page chevron */
.fusion-mobile-nav-holder .fusion-open-submenu {
	display: block;
	z-index: 2;
	position: absolute;
	top: 0;
	right: 0;
	width: 50px;
	height: 50px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #333;
	font-size: 15px;
	line-height: 50px;
	text-align: center;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	outline: 0;
}

.fusion-mobile-nav-holder .fusion-open-submenu::before {
	content: "\25BE";
	display: block;
	font-size: 14px;
	line-height: 50px;
}

.fusion-mobile-nav-holder li.is-open > .fusion-open-submenu::before {
	content: "\25B4";
}

.fusion-mobile-nav-holder .fusion-open-submenu:hover {
	color: var(--shwc-green, #6e8477);
}

.fusion-header-v1.mobile-menu-expanded .fusion-mobile-nav-holder {
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: #fff;
	border-bottom: 1px solid #dadada;
	max-height: calc(100vh - var(--shwc-header-height));
	overflow: auto;
	z-index: 10030;
}

/* Desktop: always hide mobile drawer even if left expanded after resize */
@media (min-width: 921px) {
	.fusion-mobile-nav-holder,
	.fusion-header-v1.mobile-menu-expanded .fusion-mobile-nav-holder {
		display: none !important;
	}

	.fusion-mobile-menu-icons {
		display: none !important;
	}
}

/* ---------- Footer ---------- */
.fusion-footer {
	position: relative;
	z-index: 3;
	background: var(--shwc-footer-bg);
	color: var(--shwc-footer-text);
	font-family: var(--shwc-font);
	margin-top: auto;
}

.fusion-footer a {
	color: #e8e8e8;
	text-decoration: none;
}

.fusion-footer a:hover {
	color: #fff;
}

.fusion-footer .shwc-footer-blurb {
	color: #d0d0d0;
	margin: 0;
}

.fusion-copyright-notice a {
	color: #e8e8e8;
	text-decoration: none;
}

.fusion-copyright-notice {
	color: #d0d0d0;
}

.fusion-footer-widget-area {
	padding: 56px 0 40px;
	border-bottom: 1px solid var(--shwc-footer-line);
}

.fusion-footer-widget-area > .fusion-row {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
}

.fusion-columns-4 {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 36px;
}

.fusion-footer-widget-column {
	margin: 0 0 24px;
}

.fusion-footer-widget-column .widget-title,
.fusion-footer-widget-column h4 {
	margin: 0 0 18px;
	color: #fff;
	font-family: var(--shwc-font);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
}

.fusion-footer-widget-column ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.fusion-footer-widget-column.widget_recent_entries li,
.fusion-footer-widget-column.widget_categories li,
.fusion-footer-widget-column.widget_nav_menu li,
.fusion-footer-widget-column.widget_pages li {
	border-bottom: 1px solid var(--shwc-footer-line);
	margin: 0;
	padding: 0;
}

.fusion-footer-widget-column.widget_recent_entries a,
.fusion-footer-widget-column.widget_categories a,
.fusion-footer-widget-column.widget_nav_menu a,
.fusion-footer-widget-column.widget_pages a {
	display: block;
	padding: 12px 0 12px 16px;
	position: relative;
	font-size: 14px;
	line-height: 1.4;
}

.fusion-footer-widget-column.widget_recent_entries a::before,
.fusion-footer-widget-column.widget_categories a::before,
.fusion-footer-widget-column.widget_nav_menu a::before,
.fusion-footer-widget-column.widget_pages a::before {
	content: ">";
	position: absolute;
	left: 0;
	top: 12px;
	color: var(--shwc-green-soft);
	font-weight: 700;
}

.fusion-footer-widget-column .children {
	list-style: none;
	margin: 0 0 0 20px;
	padding: 0;
}

.fusion-footer-widget-column img {
	max-width: 150px;
	height: auto;
}

.contact-info-container p {
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.5;
}

.fusion-social-networks-wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
}

.fusion-social-network-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	color: #bebdbd !important;
	font-size: 16px;
	text-decoration: none;
}

.fusion-social-network-icon:hover {
	color: #fff !important;
}

.fusion-footer-copyright-area {
	padding: 22px 30px 28px;
}

.fusion-footer-copyright-area > .fusion-row {
	max-width: 1200px;
	margin: 0 auto;
}

.fusion-copyright-content {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	text-align: left;
}

.fusion-copyright-notice {
	flex: 1 1 auto;
	min-width: 0;
	text-align: left;
	font-size: 13px;
	line-height: 1.6;
	color: #d0d0d0;
}

.fusion-social-links-footer {
	flex: 0 0 auto;
	margin-left: auto;
}

.fusion-social-links-footer .fusion-social-networks-wrapper {
	justify-content: flex-end;
}

@media (max-width: 640px) {
	.fusion-copyright-content {
		flex-direction: column;
		align-items: flex-start;
	}

	.fusion-social-links-footer {
		margin-left: 0;
	}

	.fusion-social-links-footer .fusion-social-networks-wrapper {
		justify-content: flex-start;
	}
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	.fusion-columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 920px) {
	/* OG: no-mobile-sticky-header */
	.fusion-header-wrapper {
		position: relative;
	}

	.fusion-header-wrapper.fusion-is-sticky {
		background: #fff;
	}

	.fusion-header-wrapper.fusion-is-sticky .fusion-header.fusion-sticky-shadow {
		box-shadow: none;
	}

	.fusion-main-menu {
		display: none;
	}

	.fusion-mobile-menu-icons {
		display: inline-flex;
	}

	.fusion-header-wrapper {
		min-height: 0;
	}

	.fusion-header .fusion-row {
		height: auto;
		min-height: 72px;
		flex-wrap: wrap;
	}

	.fusion-logo {
		margin: 16px 0;
	}
}

@media (max-width: 640px) {
	.fusion-columns-4 {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.fusion-copyright-notice {
		font-size: 12px;
	}
}
