/**
 * Global chrome (header + footer) — pixel-matched to live globalebafund.org.
 * Measured from live computed styles / screenshots (desktop 1440, tablet 768, mobile 390).
 * @package astra-child
 */

/* =========================================================
   HEADER — translucent white bar overlaying the hero
   live: bar h≈82 desktop / 80 tablet+mobile, bg rgba(255,255,255,.8),
   logo 120x72, menu right-aligned Poppins 600 16px #3f444b,
   order: [logo] .... [menu] [EN] [search] / mobile: [logo] .. [EN] [search] [☰]
   ========================================================= */
#masthead {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 999;
	background: rgba(255, 255, 255, 0.8);
}
#masthead .ast-primary-header-bar,
#masthead .ast-mobile-header-wrap .ast-primary-header-bar {
	background: transparent;
	border: none;
}
/* bar heights + full-bleed row (live: logo x=30, search ends at x=1410) */
#masthead .ast-primary-header-bar { min-height: 82px; }
#masthead .ast-primary-header-bar .site-primary-header-wrap { min-height: 82px; }
#masthead .ast-container {
	max-width: 100% !important;
	padding-left: 30px !important;
	padding-right: 30px !important;
}
/* Astra centres the header bar inside a ~93% max-width shell, which indents the
   logo on wide screens (logo x=164 @1920). Live pins it at x=30 at every width. */
#masthead .ast-primary-header-bar {
	width: auto !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
@media (max-width: 1024.9px) {
	#masthead .ast-primary-header-bar,
	#masthead .ast-primary-header-bar .site-primary-header-wrap { min-height: 80px; }
}
/* logo: live 120x72 at every viewport */
#masthead .custom-logo-link img,
#masthead .custom-logo {
	width: 120px !important;
	max-width: 120px !important;
	height: auto !important;
}
#masthead .site-branding { padding: 0; }

/* menu typography (live: Poppins 600 16px #3f444b, padding 13/20, no transform) */
#masthead .main-header-menu a,
#masthead .ast-nav-menu a,
#masthead .menu-item a {
	text-transform: none !important;
	font-family: "Poppins", system-ui, sans-serif !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	color: #3f444b !important;
	line-height: 20px;
}
#masthead .main-header-menu > .menu-item > .menu-link {
	padding: 13px 20px !important;
	white-space: nowrap;
	position: relative;
}
/* Desktop only. The mobile menu re-uses .main-header-menu, and Astra stacks it by
   letting it wrap — an unscoped nowrap here forced all six items onto one row and
   overflowed the viewport. Keyed off Astra's own break-point class rather than a
   hardcoded width, so it follows the tablet breakpoint if that ever changes. */
body:not(.ast-header-break-point) #masthead .main-header-menu { flex-wrap: nowrap !important; }
#masthead .menu-item > .menu-link:hover { color: #0a97d9 !important; }
/* active page: 3px blue underline under the label (live Elementor pointer) */
#masthead .main-header-menu > .current-menu-item > .menu-link::after,
#masthead .main-header-menu > .current-menu-ancestor > .menu-link::after {
	content: "";
	position: absolute;
	left: 20px; right: 20px; bottom: 5px;
	height: 3px;
	background: #0a97d9;
}
/* dropdown submenu: solid white, shrink-to-fit (Astra forces a 380px column)
   live links: Nunito 13px/500, #33373d, padding 13px 15px, no transform */
#masthead .main-header-menu .sub-menu {
	background: #ffffff;
	width: auto !important;
	min-width: 0 !important;
	box-shadow: rgba(0, 0, 0, 0.09) 1px 1px 8px 2px;
	border: none;
}
#masthead .main-header-menu .sub-menu .menu-item,
#masthead .main-header-menu .sub-menu .menu-item > .menu-link {
	width: auto !important;
	white-space: nowrap;
}
#masthead .main-header-menu .sub-menu a,
#masthead .main-header-menu .sub-menu .menu-link {
	font-family: "Nunito", system-ui, sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 20px !important;
	color: #33373d !important;
	padding: 13px 15px !important;
	display: flex;
	align-items: center;
}
#masthead .main-header-menu .sub-menu a:hover { color: #0a97d9 !important; }

/* right-section element spacing (menu | EN | search ≈ 20px gaps) */
#masthead .site-header-primary-section-right > .ast-builder-layout-element { margin-left: 20px; }
#masthead .site-header-primary-section-right > .ast-builder-menu { margin-left: 0; }

/* TranslatePress switcher: live = plain "EN ⌄" text, no box */
#masthead .header-widget-area { padding: 0; }
#masthead .header-widget-area .widget { margin: 0; }
#masthead .header-widget-area p { margin: 0; }
#masthead .trp-language-switcher {
	background: transparent !important;
	border: none !important;
}
#masthead .trp-language-switcher > div {
	background-color: transparent !important;
	background-image: none !important;
	border: none !important;
	padding: 0 !important;
}
#masthead .trp-language-switcher a {
	font-family: "Poppins", system-ui, sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: #334155 !important;
	background: transparent;
	padding: 2px 4px !important;
}
#masthead .trp-language-switcher .trp-ls-shortcode-current-language a::after {
	content: "";
	display: inline-block;
	margin-left: 6px;
	width: 7px; height: 7px;
	border-right: 1.5px solid #64748b;
	border-bottom: 1.5px solid #64748b;
	transform: rotate(45deg) translateY(-3px);
}
#masthead .trp-language-switcher .trp-ls-shortcode-language {
	background: #fff !important;
	box-shadow: 0 2px 8px rgba(0,0,0,.12);
}

/* search icon (live: 15px dark grey) */
#masthead .astra-search-icon { color: #54595f; font-size: 16px; }
#masthead .ast-header-search { position: relative; }
#masthead .ast-search-menu-icon .search-form { top: 48px; right: 0; }

/* mobile trigger (live: plain grey ☰, no border) */
#masthead .ast-header-break-point .main-header-menu-toggle,
#masthead .menu-toggle,
#masthead .ast-mobile-menu-trigger-minimal,
#masthead .ast-mobile-menu-trigger-outline,
#masthead .ast-mobile-menu-trigger-fill {
	background: transparent !important;
	border: none !important;
	color: #54595f !important;
	font-size: 22px;
	padding: 0 !important;
}
/* mobile header right cluster: EN . search . burger, ~20px gaps */
#ast-mobile-header .ast-container { padding-left: 10px !important; padding-right: 20px !important; }
#ast-mobile-header .site-header-primary-section-right > * { margin-left: 18px; }
#ast-mobile-header .site-header-primary-section-right .header-widget-area,
#ast-mobile-header .header-widget-area .textwidget { padding: 0; margin: 0; }

/* =========================================================
   FOOTER — native reproduction of live Elementor footer #7406
   ========================================================= */
/* hide the old Astra widget footer entirely */
#colophon { display: none !important; }

.geba-footer { font-family: "League Spartan", system-ui, sans-serif; }

/* --- white partner-logos band: h190, imgs vertically centered --- */
.geba-footer__logos {
	background: #fff;
	max-width: 1140px;
	margin: 0 auto;
	min-height: 190px;
	padding: 10px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
}
.geba-flogo { height: auto; }
.geba-flogo--iucn  { width: 102px; }
.geba-flogo--unep  { width: 120px; }
.geba-flogo--bmukn { width: 356px; }
.geba-flogo--iki   { width: 160px; }
@media (max-width: 1200px) {
	.geba-footer__logos { padding: 10px 20px; }
}
@media (max-width: 1024.9px) {
	.geba-flogo--bmukn { width: 179px; }
	.geba-flogo--iki   { width: 145px; }
}
@media (max-width: 767.9px) {
	.geba-footer__logos { flex-wrap: wrap; justify-content: space-around; min-height: 340px; padding: 0 10px; }
	.geba-flogo { flex: 0 0 45%; display: block; }
	.geba-flogo--iucn  { width: auto; max-width: 102px; margin: 0 auto; }
	.geba-flogo--unep  { width: auto; max-width: 120px; margin: 0 auto; }
	.geba-flogo--bmukn { width: auto; max-width: 158px; margin: 0 auto; }
	.geba-flogo--iki   { width: auto; max-width: 158px; margin: 0 auto; }
}

/* --- blue band --- */
.geba-footer__blue {
	background: #0a97d9;
	border-bottom: 10px solid #dda63a; /* gold strip */
}
.geba-footer__cols {
	display: flex;
	align-items: center;
	padding: 30px;
	min-height: 210px;
	box-sizing: border-box;
}
.geba-footer__col { flex: 1 1 33.33%; }
.geba-footer__col--logo img { width: 250px; height: auto; display: block; }
.geba-footer__col--links { text-align: center; }
.geba-footer__col--links a {
	display: block;
	font-family: "League Spartan", system-ui, sans-serif;
	font-size: 17.6px;
	font-weight: 600;
	line-height: 20px;
	color: #ffffff;
	padding: 4px 20px;
	text-decoration: none;
}
.geba-footer__col--links a:hover { color: #eef7fc; }
.geba-footer__col--cta { text-align: right; }
.geba-footer__signup {
	display: inline-block;
	background: #ffffff;
	color: #3f444b !important;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 15px;
	padding: 12px 24px;
	border-radius: 30px;
	text-decoration: none;
}
.geba-footer__signup:hover { background: #f2f9fd; }

/* divider + meta row */
.geba-footer__rule {
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.85);
	margin: 25px 0 0;
}
/* Right padding is wider than the left so the copyright line clears the fixed
   scroll-to-top button (which sits at right:30px, 32px wide) — at 30px both sides
   the button landed on top of the text. Matches where live's copyright ends. */
.geba-footer__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 26px 80px 36px 30px;
}
.geba-footer__social { display: flex; align-items: center; }
.geba-footer__followlabel {
	font-family: "League Spartan", system-ui, sans-serif;
	font-size: 19.2px;
	font-weight: 500;
	color: #ededed;
	margin: 0 30px 0 0;
}
.geba-footer__social a { color: #ffffff; display: inline-flex; margin-right: 28px; }
.geba-footer__social a:last-child { margin-right: 0; }
.geba-footer__social svg { display: block; }
.geba-footer__privacy,
.geba-footer__privacy a {
	font-family: "League Spartan", system-ui, sans-serif;
	font-size: 14.4px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.81);
	text-decoration: none;
}

/* tablet: same 3 cols, narrower */
@media (max-width: 1024.9px) {
	.geba-footer__col--logo img { width: 223px; }
	.geba-footer__col--links a { font-size: 16px; }
	.geba-footer__cols { min-height: 194px; padding: 30px; }
	.geba-footer__privacy, .geba-footer__privacy a { font-size: 13.1px; }
}
/* mobile: stacked + centered; privacy left; follow row centered */
@media (max-width: 767.9px) {
	.geba-footer__cols { flex-direction: column; min-height: 0; padding: 50px 20px 10px; }
	.geba-footer__col { flex: 0 0 auto; width: 100%; text-align: center; }
	.geba-footer__col--logo img { width: 250px; margin: 0 auto; }
	.geba-footer__col--links { margin-top: 20px; }
	.geba-footer__col--cta { text-align: center; margin-top: 20px; }
	.geba-footer__rule { margin-top: 10px; }
	.geba-footer__meta { flex-direction: column; align-items: stretch; padding: 20px 30px 60px; }
	.geba-footer__social { justify-content: center; }
	.geba-footer__privacy { margin-top: 20px; text-align: left; }
}

/* --- newsletter modal — matched to live's Elementor popup ---
   live: overlay rgba(0,0,0,.8), panel 640px, shadow 2px 8px 23px 3px rgba(0,0,0,.2),
   heading League Spartan 32/600 #003478, labels 14/500 #111827 above each field,
   inputs h40 1px #d1d5db r4, submit "Subscribe" #046bd2 16/500 pad 15/30 r4 */
.geba-newsletter-overlay {
	position: fixed; inset: 0; z-index: 100000;
	background: rgba(0, 0, 0, 0.8);
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
	overflow-y: auto;
}
.geba-newsletter-overlay[hidden] { display: none; }
.geba-newsletter-modal {
	position: relative;
	background: #fff;
	max-width: 640px; width: 100%;
	padding: 40px;
	box-shadow: 2px 8px 23px 3px rgba(0, 0, 0, 0.2);
	box-sizing: border-box;
}
.geba-newsletter-modal h3 {
	margin: 0 0 24px;
	font-family: "League Spartan", sans-serif !important;
	font-size: 32px; line-height: 1.2; font-weight: 600;
	color: #003478;
}
.geba-newsletter-close {
	position: absolute; top: 8px; right: 12px;
	background: none; border: none; font-size: 28px; line-height: 1;
	color: #666; cursor: pointer; padding: 4px;
}
/* mc4wp wraps each field in <p class="geba-nl__row"> with the label above */
.geba-newsletter-modal .geba-nl__row { margin: 0 0 16px; }
.geba-newsletter-modal label {
	display: block;
	margin: 0 0 6px;
	font-family: var(--geba-body, Helvetica, Arial, sans-serif);
	font-size: 14px; font-weight: 500; line-height: 1.4;
	color: #111827;
}
.geba-newsletter-modal input[type=email],
.geba-newsletter-modal input[type=text] {
	width: 100%; height: 40px; padding: 8px 12px;
	border: 1px solid #d1d5db; border-radius: 4px;
	background: #fff; font-size: 16px;
	box-sizing: border-box;
}
.geba-newsletter-modal .geba-nl__actions { margin: 24px 0 0; }
.geba-newsletter-modal input[type=submit], .geba-newsletter-modal button[type=submit] {
	background: #046bd2; color: #fff; border: none; border-radius: 4px;
	padding: 15px 30px; cursor: pointer;
	font-size: 16px; font-weight: 500; line-height: 1;
}
.geba-newsletter-modal input[type=submit]:hover, .geba-newsletter-modal button[type=submit]:hover { background: #0357a8; }
@media (max-width: 767.9px) {
	.geba-newsletter-modal { padding: 28px 24px; }
	.geba-newsletter-modal h3 { font-size: 26px; }
}

/* --- image lightbox (stand-in for Elementor's, which native templates don't load) --- */
.geba-lightbox {
	position: fixed; inset: 0; z-index: 100001;
	background: rgba(0, 0, 0, 0.8);
	display: flex; align-items: center; justify-content: center;
	padding: 40px;
	cursor: zoom-out;
}
.geba-lightbox[hidden] { display: none; }
.geba-lightbox__img {
	max-width: 100%; max-height: 100%;
	width: auto; height: auto;
	display: block;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
	cursor: default;
}
.geba-lightbox__close {
	position: absolute; top: 18px; right: 26px;
	background: none; border: none;
	font-size: 42px; line-height: 1;
	color: #fff; cursor: pointer; padding: 4px 10px;
}
.geba-lightbox__close:hover { color: #cfd4db; }
@media (max-width: 767.9px) {
	.geba-lightbox { padding: 16px; }
	.geba-lightbox__close { top: 6px; right: 10px; font-size: 34px; }
}

/* --- search popup — matched to live's Elementor popup + SearchWP form ---
   live: overlay rgba(0,0,0,.8), panel 640px, shadow 2px 8px 23px 3px rgba(0,0,0,.2),
   input h40 r5 1px rgba(14,33,33,.8) 16px, submit "Search" #0a97d9 r5 92x40 */
.geba-search-overlay {
	position: fixed; inset: 0; z-index: 100001;
	background: rgba(0, 0, 0, 0.8);
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.geba-search-overlay[hidden] { display: none; }
.geba-search-modal {
	position: relative;
	background: #fff;
	max-width: 640px; width: 100%;
	padding: 40px;
	box-shadow: 2px 8px 23px 3px rgba(0, 0, 0, 0.2);
	box-sizing: border-box;
}
.geba-search-close {
	position: absolute; top: 8px; right: 12px;
	background: none; border: none; font-size: 28px; line-height: 1;
	color: #666; cursor: pointer; padding: 4px;
}
.geba-search-form { display: flex; gap: 8px; align-items: stretch; margin: 0; }
.geba-search-input {
	flex: 1 1 auto; min-width: 0;
	height: 40px; padding: 12px 11.2px;
	font-family: var(--geba-body, Helvetica, Arial, sans-serif); font-size: 16px;
	color: rgba(14, 33, 33, 0.8);
	border: 1px solid rgba(14, 33, 33, 0.8);
	border-radius: 5px !important; /* Astra forces 4px on inputs */
	background: #fff; box-sizing: border-box;
}
.geba-search-submit {
	flex: 0 0 auto;
	min-width: 92px; height: 40px; padding: 0 18px;
	background: #0a97d9; color: #fff;
	border: none; border-radius: 5px; cursor: pointer;
	font-family: var(--geba-body, Helvetica, Arial, sans-serif); font-size: 16px; line-height: 1;
}
.geba-search-submit:hover { background: #0982bd; }
@media (max-width: 767.9px) {
	.geba-search-modal { padding: 28px 20px; }
}

/* ---- 404 / "coming soon" (see 404.php) — kept in chrome.css because native.css
   is only enqueued for native templates and is absent on the 404 page ----
   live @1440: main starts at 82 (under the header), H1 at 190 League Spartan 41.6/800
   #1e293b, lead 17.6/400 #334155 centred in a 592px column, pill button 200x54 #046bd2 r32 */
/* .ast-container is display:flex, so <main> shrink-wraps its content unless told to
   fill — without this the centred column sits hard against the left edge. */
.geba-404 { background: #fff; flex: 1 1 100%; width: 100%; }
.geba-404__inner {
	max-width: 632px; /* 592px of text + the 20px gutters, as on live */
	margin: 0 auto;
	/* 82px clears the overlaying header (there's no hero on this page to sit under it),
	   then 108px to put the H1 at y=190 as on live */
	padding: 190px 20px 80px;
	text-align: center;
	box-sizing: border-box;
}
.geba-404__title {
	font-family: "League Spartan", system-ui, sans-serif !important;
	font-size: 41.6px; line-height: 52px; font-weight: 800;
	color: #1e293b;
	margin: 0 0 24.96px;
}
.geba-404__lead {
	font-family: Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 17.6px; line-height: 28.16px; font-weight: 400;
	color: #334155;
	margin: 0;
}
.geba-404__actions { margin: 35px 0 0; } /* live: button top at y=358 */
.geba-404__btn {
	display: inline-block;
	background: #046bd2; color: #fff;
	font-family: Helvetica, "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-weight: 500; line-height: 1.5;
	padding: 14px 32px;
	border-radius: 32px;
	text-decoration: none;
	min-width: 200px; box-sizing: border-box;
}
.geba-404__btn:hover { background: #0357a8; color: #fff; }
@media (max-width: 767.9px) {
	.geba-404__inner { padding: 70px 20px 60px; }
	.geba-404__title { font-size: 32px; line-height: 40px; }
}
