/* =========================================================================
 *  GV Advisors — Global site header / navigation.
 *  Loaded on EVERY page. Self-contained (own tokens, fonts, box-sizing) so it
 *  works with or without gv-home.css. Renders one fixed premium header,
 *  transparent over hero pages and solid after scroll; hides the Houzez header.
 * ========================================================================= */

:root {
	--gv-bg: #F8F5EE;
	--gv-surface: #FFFFFF;
	--gv-forest: #1A4D3A;
	--gv-forest-dark: #15402F;
	--gv-brass: #B8956B;
	--gv-charcoal: #1F2A28;
	--gv-stone: #8B8680;
	--gv-ease: cubic-bezier(.22, .61, .36, 1);
	--gv-serif: "Cormorant Garamond", "Playfair Display", Georgia, serif;
	--gv-sans: "Inter", "Calibri", system-ui, -apple-system, sans-serif;
	--gv-header-h: 84px;
}

.gv-site-header, .gv-site-header *, .gv-mobile, .gv-mobile * { box-sizing: border-box; }

/* ---------- Shell ---------- */
.gv-site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 9993;
	height: var(--gv-header-h);
	font-family: var(--gv-sans);
	background: var(--gv-bg);
	box-shadow: 0 2px 22px rgba(26, 77, 58, .08);
	transition: background .45s var(--gv-ease), box-shadow .45s var(--gv-ease);
}
.gv-site-header__inner {
	height: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 clamp(22px, 5vw, 64px);
	display: flex;
	align-items: center;
	gap: 24px;
}

/* Offset content on pages WITHOUT a hero (header is fixed, Houzez header hidden). */
body:not(.gv-has-hero) { padding-top: var(--gv-header-h); }
/* Keep clear of the WP admin bar for logged-in users. */
body.admin-bar .gv-site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .gv-site-header { top: 46px; } }

/* ---------- Logo ---------- */
.gv-site-header__logo { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; margin-right: auto; }
.gv-site-header__mark {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 10px;
	background: var(--gv-forest); color: var(--gv-bg);
	border: 1px solid rgba(184, 149, 107, .55);
	font-family: var(--gv-serif); font-weight: 700; font-size: 22px; letter-spacing: .5px;
	flex: 0 0 auto;
}
.gv-site-header__wordmark {
	font-family: var(--gv-serif); font-weight: 600; font-size: 26px; letter-spacing: 1px;
	color: var(--gv-forest); line-height: 1; white-space: nowrap;
	transition: color .45s var(--gv-ease);
}

/* ---------- Desktop nav ---------- */
.gv-site-header__nav { display: flex; }
.gv-nav { display: flex; align-items: center; gap: clamp(20px, 2.4vw, 38px); list-style: none; margin: 0; padding: 0; }
.gv-nav__link {
	position: relative;
	font-size: 15px; font-weight: 500; letter-spacing: .2px;
	color: var(--gv-charcoal); text-decoration: none;
	padding: 6px 0;
	transition: color .3s var(--gv-ease);
}
.gv-nav__link::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
	height: 1.5px; background: var(--gv-brass);
	transform: scaleX(0); transform-origin: center;
	transition: transform .35s var(--gv-ease);
}
.gv-nav__link:hover { color: var(--gv-forest); }
.gv-nav__link:hover::after { transform: scaleX(1); }
.gv-nav__link.is-active { color: var(--gv-forest); }
.gv-nav__link.is-active::after { transform: scaleX(1); }

/* ---------- CTA ---------- */
.gv-site-header__cta {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 12px 26px; border-radius: 12px;
	font-size: 14px; font-weight: 500; letter-spacing: .3px;
	background: var(--gv-forest); color: var(--gv-bg);
	border: 1.5px solid var(--gv-forest); text-decoration: none;
	transition: background .35s var(--gv-ease), color .35s var(--gv-ease),
		border-color .35s var(--gv-ease), transform .35s var(--gv-ease);
}
.gv-site-header__cta:hover { background: var(--gv-forest-dark); border-color: var(--gv-forest-dark); color: #fff; transform: translateY(-2px); }

/* =========================================================================
 *  TRANSPARENT OVER HERO  (home, about — body.gv-has-hero, before scroll)
 * ========================================================================= */
body.gv-has-hero .gv-site-header:not(.is-scrolled) {
	background: transparent;
	box-shadow: none;
}
body.gv-has-hero .gv-site-header:not(.is-scrolled) .gv-site-header__wordmark { color: var(--gv-bg); }
body.gv-has-hero .gv-site-header:not(.is-scrolled) .gv-nav__link { color: rgba(248, 245, 238, .9); }
body.gv-has-hero .gv-site-header:not(.is-scrolled) .gv-nav__link:hover,
body.gv-has-hero .gv-site-header:not(.is-scrolled) .gv-nav__link.is-active { color: #fff; }
body.gv-has-hero .gv-site-header:not(.is-scrolled) .gv-site-header__cta {
	background: var(--gv-bg); color: var(--gv-forest); border-color: var(--gv-bg);
}
body.gv-has-hero .gv-site-header:not(.is-scrolled) .gv-site-header__cta:hover { background: #fff; }
body.gv-has-hero .gv-site-header:not(.is-scrolled) .gv-burger span { background: var(--gv-bg); }

/* Menu open: force a solid, legible bar even over a hero. */
.gv-site-header.is-nav-open { background: var(--gv-bg) !important; box-shadow: 0 2px 22px rgba(26, 77, 58, .08) !important; }
.gv-site-header.is-nav-open .gv-site-header__wordmark { color: var(--gv-forest) !important; }
.gv-site-header.is-nav-open .gv-burger span { background: var(--gv-forest) !important; }

/* =========================================================================
 *  MOBILE
 * ========================================================================= */
.gv-burger {
	display: none;
	position: relative;
	width: 44px; height: 44px;
	background: none; border: none; cursor: pointer;
	flex: 0 0 auto;
}
.gv-burger span {
	position: absolute; left: 10px; right: 10px; height: 2px;
	background: var(--gv-forest); border-radius: 2px;
	transition: transform .35s var(--gv-ease), opacity .25s var(--gv-ease), background .35s var(--gv-ease);
}
.gv-burger span:nth-child(1) { top: 15px; }
.gv-burger span:nth-child(2) { top: 21px; }
.gv-burger span:nth-child(3) { top: 27px; }
.gv-site-header.is-nav-open .gv-burger span { background: var(--gv-forest); }
.gv-site-header.is-nav-open .gv-burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.gv-site-header.is-nav-open .gv-burger span:nth-child(2) { opacity: 0; }
.gv-site-header.is-nav-open .gv-burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.gv-mobile {
	position: fixed; top: 0; right: 0; bottom: 0;
	width: min(360px, 84vw);
	background: var(--gv-bg);
	z-index: 9992;
	padding: calc(var(--gv-header-h) + 24px) 32px 40px;
	display: flex; flex-direction: column;
	transform: translateX(100%);
	visibility: hidden;
	transition: transform .45s var(--gv-ease), visibility .45s var(--gv-ease);
	box-shadow: -20px 0 60px rgba(26, 77, 58, .18);
	overflow-y: auto;
}
.gv-mobile.is-open { transform: translateX(0); visibility: visible; }
.gv-mobile__list { list-style: none; margin: 0 0 auto; padding: 0; }
.gv-mobile__list li { border-bottom: 1px solid var(--gv-border, #E6E2D8); }
.gv-mobile__link {
	display: block; padding: 20px 4px;
	font-family: var(--gv-serif); font-size: 26px; font-weight: 600;
	color: var(--gv-forest); text-decoration: none;
	transition: color .3s var(--gv-ease), padding-left .3s var(--gv-ease);
}
.gv-mobile__link:hover, .gv-mobile__link.is-active { color: var(--gv-brass); padding-left: 10px; }
.gv-mobile__cta {
	margin-top: 28px; text-align: center;
	padding: 15px 26px; border-radius: 12px;
	background: var(--gv-forest); color: var(--gv-bg);
	font-size: 15px; font-weight: 500; text-decoration: none;
	transition: background .35s var(--gv-ease);
}
.gv-mobile__cta:hover { background: var(--gv-forest-dark); }

.gv-header-overlay {
	position: fixed; inset: 0; z-index: 9991;
	background: rgba(21, 42, 40, .5);
	opacity: 0; visibility: hidden;
	transition: opacity .4s var(--gv-ease), visibility .4s var(--gv-ease);
}
.gv-header-overlay.is-open { opacity: 1; visibility: visible; }

body.gv-nav-open { overflow: hidden; }

@media (max-width: 900px) {
	:root { --gv-header-h: 70px; }
	.gv-site-header__nav, .gv-site-header__cta { display: none; }
	.gv-burger { display: block; }
	.gv-site-header__wordmark { font-size: 22px; }
	.gv-site-header__mark { width: 40px; height: 40px; font-size: 20px; }
}

/* =========================================================================
 *  Disable the Houzez visual header GLOBALLY (only the GV header shows).
 *  Common Houzez header wrappers. The GV header (.gv-site-header) is never
 *  matched here. If your version uses a different id/class, add it below.
 * ========================================================================= */
#header-container,
.header-map,
header#header,
.main-header-wrapper,
.sticky-menu-wrapper,
#main-header-wrap,
.header-2 { display: none !important; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	.gv-site-header, .gv-nav__link::after, .gv-site-header__cta,
	.gv-mobile, .gv-header-overlay, .gv-burger span { transition: none !important; }
	.gv-site-header__cta:hover { transform: none; }
}

/* Hide Houzez Header */
.main-header,
.header-main-wrap,
.header-nav,
.header-desktop,
.header-mobile,
#header-section,
header.header,
.header-v1,
.header-v2 {
    display: none !important;
}
