/**
 * Native (Elementor-free) styles for the Global EbA Fund rebuild.
 * Tokens measured from live computed styles (see _reference/shots/measure-hero.mjs).
 *
 * @package astra-child
 */

:root {
	--geba-maxw:  1140px;
	--geba-blue:  #0a97d9;   /* brand blue — page titles, accents */
	--geba-dark:  #4a4a4a;   /* section headings */
	--geba-text:  #000000;   /* body copy */
	--geba-muted: #6b7280;
	--geba-line:  #e7e7e7;
	--geba-head:  "League Spartan", system-ui, sans-serif;
	--geba-body:  "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* Full-bleed main, centered content lane (matches Elementor full-width pages). */
body.geba-native #content > .ast-container,
body.geba-native .ast-container { max-width: 100%; padding-left: 0; padding-right: 0; }
.geba-main { width: 100%; max-width: 100%; }
.geba-main, .geba-main p, .geba-main li { font-family: var(--geba-body); color: var(--geba-text); }
.geba-container { max-width: var(--geba-maxw); margin: 0 auto; padding: 0 20px; }
.geba-section { padding: 56px 0; }
.geba-main h1, .geba-main h2, .geba-main h3, .geba-main h4 { font-family: var(--geba-head) !important; }

/* ---- Page-title hero (reused site-wide) ---- */
.geba-hero {
	position: relative;
	min-height: 650px;
	display: flex; align-items: center; justify-content: center;
	background: #1a3a4a center/cover no-repeat;
}
.geba-hero::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.18); }
.geba-hero__inner { position: relative; z-index: 1; width: 100%; max-width: var(--geba-maxw); margin: 0 auto; padding: 40px 20px; text-align: left; }
.geba-hero__title {
	font-family: var(--geba-head) !important;
	font-size: 47px; line-height: 1.1; font-weight: 600;
	color: var(--geba-blue);
	text-transform: capitalize;
	margin: 0;
	text-shadow: 0 2px 14px rgba(0,0,0,.45);
}
@media (max-width: 768px){ .geba-hero { min-height: 420px; } .geba-hero__title { font-size: 34px; } }

/* ---- Homepage centered hero ---- */
.geba-hero--center { text-align: center; }
.geba-hero--center .geba-hero__inner { text-align: center; margin: 0 auto; }
.geba-hero--center::before { background: linear-gradient(rgba(10,116,150,.72), rgba(13,80,110,.78)); }
.geba-hero__eyebrow { font-family: var(--geba-head); color: #ededed; font-size: 32px; font-weight: 600; margin: 0 0 18px; text-shadow: 0 2px 14px rgba(0,0,0,.5); }
.geba-hero__lead { color: #fff; font-size: 18px; line-height: 1.6; margin: 0 0 26px; text-shadow: 0 1px 10px rgba(0,0,0,.5); }

/* ---- Homepage pillars ---- */
.geba-pillars__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; text-align: center; }
.geba-pillar__icon { width: 80px; height: 80px; object-fit: contain; margin: 0 auto 14px; display: block; }
.geba-pillar__label { font-family: var(--geba-head); font-size: 20px; font-weight: 600; color: var(--geba-dark); margin: 0; text-transform: capitalize; }
@media (max-width: 768px){ .geba-pillars__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } }

/* ---- News card grid (homepage + archive) ---- */
.geba-news__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.geba-news__card { display: flex; flex-direction: column; background: #fff; border-radius: 4px; overflow: hidden; text-decoration: none; color: var(--geba-text); box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.geba-news__media { height: 160px; background: #cdd4db center/cover no-repeat; }
.geba-news__body { padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.geba-news__date { font-family: var(--geba-head); font-size: 12px; font-weight: 600; color: var(--geba-blue); text-transform: uppercase; letter-spacing: .04em; }
.geba-news__title { font-family: var(--geba-head); font-size: 16px; line-height: 1.35; color: var(--geba-dark); margin: 0; }
@media (max-width: 1024px){ .geba-news__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .geba-news__grid { grid-template-columns: 1fr; } }

/* ---- Two-column split (text + image), e.g. Grantees intro ---- */
.geba-split { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; max-width: var(--geba-maxw); margin: 0 auto; }
.geba-split__text { padding: 8px 48px 8px 20px; }
.geba-split__text .geba-h2 { margin-bottom: 18px; }
.geba-split__media { min-height: 360px; background: #ccc center/cover no-repeat; border-radius: 2px; }
@media (max-width: 768px){ .geba-split { grid-template-columns: 1fr; } .geba-split__text { padding: 0 20px 24px; } .geba-split__media { min-height: 240px; } }

/* ---- Section headings + intro copy ---- */
.geba-h2 {
	font-family: var(--geba-head) !important;
	font-size: 32px; line-height: 1.3; font-weight: 600;
	color: var(--geba-dark); margin: 0 0 22px;
}
.geba-lead { font-size: 16px; line-height: 1.65; color: var(--geba-text); max-width: 920px; margin: 0 auto 8px; }
.geba-prose { font-size: 16px; line-height: 1.65; }
.geba-prose p { margin: 0 0 18px; }

/* ---- Contact Form 7 (Formidable replacement) ---- */
.geba-contact-form { margin: 26px auto 0; max-width: 640px; text-align: left; }
.geba-contact-form .wpcf7-form-control-wrap { display: block; }
.geba-contact-form input[type="text"],
.geba-contact-form input[type="email"],
.geba-contact-form textarea {
	width: 100%; box-sizing: border-box; padding: 13px 15px; margin-bottom: 16px;
	border: 1px solid #d6dbe0; border-radius: 3px; font-family: var(--geba-body); font-size: 15px; background: #fff;
}
.geba-contact-form textarea { min-height: 150px; resize: vertical; }
.geba-contact-form input:focus, .geba-contact-form textarea:focus { outline: none; border-color: var(--geba-blue); }
.geba-contact-form .wpcf7-submit {
	background: var(--geba-blue); color: #fff; border: 0; border-radius: 3px;
	font-family: "Nunito", var(--geba-body); font-size: 15px; font-weight: 600; padding: 12px 34px; cursor: pointer;
}
.geba-contact-form .wpcf7-submit:hover { background: #0982bd; }
.geba-contact-form .wpcf7-spinner { margin: 0 0 0 12px; }

/* ---- Buttons (Elementor button parity) ---- */
.geba-button {
	display: inline-block;
	background: var(--geba-blue); color: #fff;
	font-family: "Nunito", var(--geba-body); font-size: 15px; font-weight: 500;
	padding: 12px 24px; border-radius: 3px; text-decoration: none;
	transition: background .2s ease; margin-top: 8px;
}
.geba-button:hover { background: #0982bd; color: #fff; }

/* ---- Generic content page (auto-extracted prose) ---- */
.geba-content-page .geba-prose img { display: block; max-width: 100%; height: auto; margin: 22px auto; }
/* keep diagram/graphic readable but bounded; logos render small */
.geba-content-page .geba-prose p > img { max-width: 760px; }
.geba-content-page .geba-prose h2.geba-h2 { margin-top: 36px; }
.geba-content-page .geba-prose h4.geba-h2 { font-size: 22px; margin-top: 28px; }
.geba-content-page .geba-prose { font-size: 16px; line-height: 1.7; }

/* ---- Native search (SearchWP replacement) ---- */
.geba-search-form { display: flex; gap: 10px; margin-bottom: 22px; }
.geba-search__summary { color: var(--geba-muted); font-size: 14px; margin-bottom: 18px; }
.geba-search__list { display: flex; flex-direction: column; gap: 14px; }
.geba-search__item { display: block; padding: 18px 20px; background: #fff; border: 1px solid var(--geba-line); border-radius: 4px; text-decoration: none; color: var(--geba-text); transition: box-shadow .15s; }
.geba-search__item:hover { box-shadow: 0 3px 12px rgba(0,0,0,.08); }
.geba-search__type { font-family: var(--geba-head); font-size: 11px; font-weight: 600; color: var(--geba-blue); text-transform: uppercase; letter-spacing: .05em; }
.geba-search__title { font-family: var(--geba-head); font-size: 19px; color: var(--geba-dark); margin: 4px 0 6px; }
.geba-search__excerpt { font-size: 14px; line-height: 1.55; color: #555; margin: 0; }
.geba-search__pager { display: flex; gap: 6px; justify-content: center; margin-top: 28px; flex-wrap: wrap; }
.geba-search__pager .page-numbers { padding: 8px 13px; border: 1px solid var(--geba-line); border-radius: 3px; text-decoration: none; color: var(--geba-text); }
.geba-search__pager .page-numbers.current { background: var(--geba-blue); color: #fff; border-color: var(--geba-blue); }

/* ---- Resources native filter (FacetWP replacement) ---- */
.geba-res-filter__bar { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 22px 0 8px; }
.geba-res-filter__search, .geba-res-filter__select {
	padding: 10px 14px; border: 1px solid #d6dbe0; border-radius: 3px; font-family: var(--geba-body);
	font-size: 14px; background: #fff; min-width: 180px;
}
.geba-res-filter__reset { padding: 10px 18px; border: 1px solid var(--geba-blue); background: #fff; color: var(--geba-blue); border-radius: 3px; cursor: pointer; font-family: "Nunito", var(--geba-body); font-weight: 600; }
.geba-res-filter__reset:hover { background: var(--geba-blue); color: #fff; }
.geba-res-filter__count { text-align: center; font-size: 13px; color: var(--geba-muted); margin-bottom: 22px; }
.geba-res__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.geba-res__card { display: flex; flex-direction: column; background: #fff; border-radius: 4px; overflow: hidden; text-decoration: none; color: var(--geba-text); box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.geba-res__media { height: 200px; background: #cdd4db center/cover no-repeat; }
.geba-res__body { padding: 16px 18px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.geba-res__type { font-family: var(--geba-head); font-size: 11px; font-weight: 600; color: var(--geba-blue); text-transform: uppercase; letter-spacing: .05em; }
.geba-res__title { font-family: var(--geba-head); font-size: 16px; line-height: 1.35; color: var(--geba-dark); margin: 0; }
.geba-res__date { font-size: 12px; color: var(--geba-muted); }
.geba-res__desc { font-size: 13px; line-height: 1.5; color: #555; margin: 4px 0 0; }
.geba-res__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 8px; }
.geba-res__tags span { font-size: 11px; background: #eef1f3; color: #586; padding: 3px 8px; border-radius: 10px; }
.geba-res__empty { text-align: center; color: var(--geba-muted); padding: 40px; grid-column: 1/-1; }
.geba-res__spinner { height: 3px; background: linear-gradient(90deg, transparent, var(--geba-blue), transparent); background-size: 40% 100%; animation: geba-res-load 1s infinite; margin-top: 16px; }
@keyframes geba-res-load { 0%{background-position: -40% 0;} 100%{background-position: 140% 0;} }
@media (max-width: 1024px){ .geba-res__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .geba-res__grid { grid-template-columns: 1fr; } .geba-res-filter__search, .geba-res-filter__select { min-width: 0; flex: 1; } }

/* ---- Project Information WYSIWYG ---- */
.geba-project-info .geba-prose h4 { font-family: var(--geba-head); color: var(--geba-dark); font-size: 20px; margin: 26px 0 10px; }
.geba-project-info .geba-prose img { max-width: 100%; height: auto; }

/* ---- Related projects grid ---- */
.geba-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 28px; }
.geba-related__card { display: flex; flex-direction: column; background: #fff; border-radius: 4px; overflow: hidden; text-decoration: none; box-shadow: 0 2px 10px rgba(0,0,0,.06); color: var(--geba-text); }
.geba-related__media { height: 180px; background: #cdd4db center/cover no-repeat; }
.geba-related__body { padding: 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.geba-related__loc { font-family: var(--geba-head); font-size: 13px; font-weight: 600; color: var(--geba-blue); text-transform: uppercase; letter-spacing: .04em; }
.geba-related__title { font-family: var(--geba-head); font-size: 18px; line-height: 1.3; color: var(--geba-dark); margin: 0 0 auto; }
.geba-related__card .geba-button { align-self: flex-start; }
@media (max-width: 768px){ .geba-related__grid { grid-template-columns: 1fr; } }

/* ---- Portfolio-in-numbers counters ---- */
.geba-counters { text-align: center; }
.geba-counters__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 900px; margin: 28px auto 0; }
.geba-counter__num { font-family: var(--geba-head); font-size: 70px; line-height: 1; font-weight: 600; color: var(--geba-blue); }
.geba-counter__label { font-family: var(--geba-head); font-size: 18px; font-weight: 600; color: var(--geba-dark); margin-top: 8px; text-transform: capitalize; }
@media (max-width: 768px){ .geba-counters__grid { grid-template-columns: 1fr; } .geba-counter__num { font-size: 54px; } }
