/*
Theme Name: Planet One
Theme URI: https://example.com/planet-one
Author: Planet One
Author URI: https://example.com
Description: Custom corporate energy WordPress theme for Planet One homepage.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Text Domain: planet-one
*/

:root {
	--color-black: #000000;
	--color-white: #ffffff;
	--color-blue: #00A0DF;
	  --brand: #00A0DF;
  --brand-dark: #0088be;
 --white: #ffffff;
	--site-header-height: 96px;
}

@media (max-width: 991px) {
	:root {
		--site-header-height: 84px;
	}
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: "Manrope", sans-serif;
	/*font-weight: 500;*/
	font-size: 16px;
	line-height: 1;
	letter-spacing: 0.01em; /* 1% */
	color: var(--color-black);
	background: var(--color-white);
}

.container {
	max-width: 1200px;
	padding-left: 20px;
	padding-right: 20px;
}

/* Hero */
.hero {
	position: sticky;
	min-height: calc(100vh - 96px);
	display: flex;
	align-items: center;
	background: var(--color-white);
	overflow: hidden;
}

.hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
    transform: scaleX(-1);
}

.hero__pattern {
	position: absolute;
	inset: 0;
	/* background-image: radial-gradient(circle at 20% 20%, rgba(0, 0, 0, 0.14) 1px, transparent 1px); */
	background-size: 18px 18px;
	background-color: rgba(255, 255, 255, 0.86);
}

.hero__container {
	position: relative;
	z-index: 1;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding-top: 80px;
	padding-bottom: 80px;
}

.hero__content {
	max-width: 900px;
}

.hero__title {
	margin: 0;
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	font-size: 55px;
	line-height: 1.18; /* 118% */
	letter-spacing: 0;
	color: #000000;
}

.hero__title span {
	color: var(--color-blue);
}

.hero__subtitle {
	margin: 18px 0 0;
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	font-size: 20px;
	line-height: 1.37; /* 137% */
	letter-spacing: 0;
	color: #000000;
	max-width: 680px;
}
.opp {
  position: relative;
  background: #00A0DF;
  color: #fff;
  font-family: 'Manrope', sans-serif;
  overflow: hidden;
  min-height: 100vh;
  display: flex;
  align-items: center;
}
 
/* ─────────────────────────────────────────────────────────────────
   LEFT TEXT
   Width = 38% of viewport; text sits left, map occupies right 62%
───────────────────────────────────────────────────────────────── */
.opp__text-col {
  position: relative;
  z-index: 5;
  width: 38%;
  flex-shrink: 0;
  padding: 10vh 0 10vh 8%;
}
 
.opp__heading {
  font-size: clamp(28px, 2.8vw, 54px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #fff;
}
 
/* ─────────────────────────────────────────────────────────────────
   MAP COLUMN
   Absolutely positioned so it fills from 38% to right edge.
   overflow:hidden clips the zoom animation.
   The dots layer sits INSIDE this column so left%/top% values
   are relative to the MAP WIDTH/HEIGHT — not the full page.
───────────────────────────────────────────────────────────────── */
.opp__map-col {
  position: absolute;
  top: 0;
  /* left: 38%;     starts where text column ends */
  right: 0;
  bottom: 0;
  z-index: 2;
  overflow: hidden;
}
 
/* ── Map images ─────────────────────────────────────────────── */
.opp__map-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  /* object-position: right;
  transform-origin: right center;
  will-change: transform, opacity; */
  transition: transform 1s cubic-bezier(0.4,0,0.2,1),
              opacity 0.5s ease;
}
 
.opp__map-img--default {
  opacity: 1;
  transform: scale(1);
  transition: opacity 0.4s ease, transform 0.9s cubic-bezier(0.4,0,0.2,1);
}
 
.opp__map-img--detail {
  opacity: 0;
  transform: scale(0.78);
  transition: opacity 0.5s ease 0.42s, transform 0.9s cubic-bezier(0.4,0,0.2,1) 0.08s;
}
 
/* ─────────────────────────────────────────────────────────────────
   DOTS LAYER — child of .opp__map-col
   left% and top% are percentages of the MAP COLUMN dimensions.
 
   HOW TO CALIBRATE:
   The default Africa SVG (map.svg) is rendered with object-fit:contain
   inside the map column. Ghana's coast appears at roughly:
     • 20–24% from the LEFT of the map column
     • 34–53% from the TOP of the map column
 
   The label is rendered to the RIGHT of the dot (flex-row).
   If your SVG positions Ghana differently, adjust the three
   [data-dot] left/top values below.
───────────────────────────────────────────────────────────────── */
.opp__dots-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
  left: 920px;
}
 
/* Base pin: row = dot on left, label on right */
.opp__pin {
  position: absolute;
  pointer-events: auto;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  color: #fff;
  font-family: 'Manrope', sans-serif;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 9px;
  /* anchor point = centre of dot bubble */
  transform: translate(-50%, -50%);
  transition: opacity 0.35s ease;
}
 
/* Ghana coast positions relative to MAP COLUMN
   Calibrated to match the Figma screenshot exactly:
     Onshore      ↑ top
     Shallow Water  middle
     Tano Basin   ↓ bottom (slightly south/offshore)              */
.opp__pin[data-dot="0"] { left: 22%;  top: 36%; }  /* Onshore      */
.opp__pin[data-dot="1"] { left: 18%;  top: 44%; }  /* Shallow Water */
.opp__pin[data-dot="2"] { left: 22%;  top: 52%; }  /* Tano Basin   */
 
/* Dot bubble */
.opp__dot-bubble {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  flex-shrink: 0;
  position: relative;
}
 
.opp__dot-bubble::before,
.opp__dot-bubble::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  animation: ripple 2s ease-out infinite;
}

.opp__dot-bubble::before {
  inset: -8px;
  border: 2px solid rgba(255,255,255,0.7);
}

.opp__dot-bubble::after {
  inset: -16px;
  border: 2px solid rgba(255,255,255,0.35);
}

@keyframes ripple {
  0%   { transform: scale(0.4); opacity: 1; }
  70%  { transform: scale(1.4); opacity: 0.4; }
  100% { transform: scale(1.8); opacity: 0; }
} 
/* Pin label — RIGHT of dot */
.opp__pin-label {
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  color: #fff;
}
 
/* ─────────────────────────────────────────────────────────────────
   AFRICA LABEL
───────────────────────────────────────────────────────────────── */
.opp__africa-label {
  position: absolute;
  right: 40%;
  top: 20%;
  transform: translateY(-50%);
  font-size: clamp(26px, 3vw, 46px);
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.01em;
  pointer-events: none;
  z-index: 5;
  transition: opacity 0.4s ease;
}
 
/* ─────────────────────────────────────────────────────────────────
   ZOOMED STATE — hide dots + Africa label
───────────────────────────────────────────────────────────────── */
.opp.is-zoomed .opp__pin {
  opacity: 0;
  transition: opacity 0.3s ease 0.4s; /* delay hide */
}
.opp.is-zoomed .opp__africa-label  { opacity: 0; }
 
/* ─────────────────────────────────────────────────────────────────
   DETAIL PANEL (slides in from right when zoomed)
───────────────────────────────────────────────────────────────── */
.opp__panel {
  position: absolute;
  right: 6%;
  top: 50%;
  transform: translateY(-50%) translateX(40px);
  z-index: 20;

  background: rgba(0,18,50,0.92);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 14px;

  padding: 26px 26px;   /* ✅ increased spacing */
  width: 240px;         /* ✅ more breathing space */

  opacity: 0;
  pointer-events: none;

  transition: opacity 0.4s ease 0.5s, transform 0.4s ease 0.5s;
}
.opp.is-zoomed .opp__panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}
.opp__panel-eyebrow {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.48);
  margin-bottom: 8px;
}
.opp__panel-name {
  font-size: 16px;
  font-weight: 500;
  color: #fff;
  line-height: 1.25;
  margin-bottom: 14px;
}
.opp__panel-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 8px;
}
.opp__panel-row:last-child { margin-bottom: 0; }
.opp__panel-k { font-size: 11px; color: rgba(255,255,255,0.48); }
.opp__panel-v { font-size: 12px; font-weight: 600; color: #fff; text-align: right; }
 
/* ─────────────────────────────────────────────────────────────────
   BACK BUTTON
───────────────────────────────────────────────────────────────── */
.opp__back {
  position: absolute;
  bottom: 36px;
  right: 5%;
  z-index: 20;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.32);
  color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  padding: 9px 22px;
  border-radius: 100px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, background 0.2s ease;
}
.opp.is-zoomed .opp__back { opacity: 1; pointer-events: auto; }
.opp__back:hover { background: rgba(255,255,255,0.24); }
 
/* ─────────────────────────────────────────────────────────────────
   RESPONSIVE
───────────────────────────────────────────────────────────────── */
@media (max-width: 1280px) {
  .opp__text-col  { padding-left: 6%; }
}
 
@media (max-width: 1024px) {
  .opp__text-col { width: 40%; padding-left: 5%; }
  .opp__map-col  { left: 40%; }
}
 
/* Tablet & below: stack vertically */
@media (max-width: 768px) {
  .opp {
    flex-direction: column;
    align-items: flex-start;
    min-height: auto;
  }
  .opp__text-col {
    width: 100%;
    padding: 56px 28px 32px;
  }
  .opp__map-col {
    position: relative;
    left: 0; right: 0; top: 0; bottom: 0;
    width: 100%;
    height: 60vw;
    min-height: 280px;
  }
  /* Recalibrate: full-width map, Ghana at different % */
  .opp__pin[data-dot="0"] { left: 37%; top: 34%; }
  .opp__pin[data-dot="1"] { left: 32%; top: 43%; }
  .opp__pin[data-dot="2"] { left: 36%; top: 51%; }
  .opp__africa-label {
    right: 5%;
    font-size: clamp(20px, 5vw, 34px);
  }
  .opp__panel { right: 3%; width: 180px; padding: 16px 18px; }
  .opp__back  { bottom: 16px; right: 3%; }
}
 
@media (max-width: 480px) {
  .opp__text-col { padding: 44px 20px 28px; }
  .opp__map-col  { height: 72vw; }
  .opp__heading  { font-size: 28px; }
  .opp__pin[data-dot="0"] { left: 39%; top: 33%; }
  .opp__pin[data-dot="1"] { left: 33%; top: 43%; }
  .opp__pin[data-dot="2"] { left: 38%; top: 51%; }
  .opp__pin-label   { font-size: 11px; }
  .opp__dot-bubble  { width: 9px; height: 9px; }
  .opp__panel { width: 158px; }
}
.site-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background-color: transparent !important;
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
	box-shadow: none !important;
}

/* Default: no bar fill (desktop + mobile until scroll) */
.site-header:not(.is-scrolled),
.site-header:not(.is-scrolled) .site-header__container {
	background-color: transparent !important;
	box-shadow: none !important;
}

.site-header.is-scrolled {
	background-color: #ffffff !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}


/* Optional: change menu color on white bg */
.site-header.is-scrolled .site-header__menu a {
	color: #000;
}

/* Optional: logo swap if needed */
.site-header.is-scrolled .site-header__logo img {
	filter: none;
}

.site-header,
.site-header * {
	mix-blend-mode: normal;
}

.site-header__container {
	min-height: 96px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	position: relative;
	z-index: 1;
}

/* Home header sits inside hero background — pull hero under transparent bar so body white doesn’t show through */
.home .hero {
	margin-top: calc(-1 * var(--site-header-height));
	min-height: 100vh;
	background: transparent;
}

.home .hero__container {
/* 	padding-top: calc(80px + var(--site-header-height)); */
}

.home .site-header {
	position: sticky;
	top: 0;
}
.site-header__logo img {
	width: 191px;
	height: auto;
	display: block;
}

.site-header__nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.site-header__menu {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	padding: 0;
	margin: 0;
}

.site-header__menu a {
	font-family: "Manrope", sans-serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	letter-spacing: 0.01em; /* 1% */
	text-align: center;
	color: var(--color-black);
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.site-header__menu a:hover {
	opacity: 0.7;
    color: var(--color-blue);
}
/* Button base */
.btn-contact {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: auto;
	height: 62px;
	padding: 20px 49px;

	background: transparent;
	border: 1px solid #000000;
	border-radius: 0;

	font-family: "Manrope", sans-serif;
	font-weight: 500;
	font-size: 16px;
/* 	line-height: 1; */
	letter-spacing: 0.01em;
	text-align: center;

	color: #000000;
	text-decoration: none;

	position: relative;
	overflow: hidden;

	transition: color 0.35s ease;
}

/* Fill layer */
.btn-contact::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 0%;
	background: #00A0DF;
	transition: height 0.35s ease;
	z-index: 0;
}

/* Keep text above fill */
.btn-contact span {
	position: relative;
	z-index: 1;
	transition: color 0.35s ease;
}

/* Hover fill animation */
.btn-contact:hover::before {
	height: 100%;
}

/* Text color change */
.btn-contact:hover span {
	color: #ffffff;
}

/* Mobile menu toggle + drawer (desktop: toggle hidden) */
.site-header__menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 38px;
  padding: 0;
  margin: 0;
  border: 1px solid rgba(0, 0, 0, 0.2);
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.25s ease, background 0.25s ease;
  border-radius: 4px;
}
.site-header__menu-toggle:hover {
	border-color: var(--color-blue, #00a0df);
	background: rgba(0, 160, 223, 0.06);
}

.site-header__menu-toggle-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 22px;
}

.site-header__menu-toggle-bar {
	display: block;
	width: 22px;
	height: 2px;
	background: #000000;
	border-radius: 1px;
	transition: transform 0.3s ease, opacity 0.25s ease, background 0.25s ease;
	transform-origin: center;
}

.site-header.is-drawer-open {
	z-index: 10060;
}

body.site-header--nav-open {
	overflow: hidden;
}

@media (min-width: 992px) {
	.site-header__drawer {
		display: none !important;
	}
}

@media (max-width: 991px) {
	/* Full-screen white menu (viewport) */
	.site-header__drawer {
		position: fixed;
		inset: 0;
		z-index: 10050;
		width: 100%;
		max-width: 100%;
		height: 100%;
		min-height: 100vh;
		min-height: 100dvh;
		margin: 0;
		padding: 0;
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		background: #ffffff;
		border: none;
		box-shadow: none;
		box-sizing: border-box;
	}

	.site-header__drawer-inner {
		position: relative;
		width: 100%;
		max-width: 100%;
		min-height: 100%;
		min-height: 100dvh;
		box-sizing: border-box;
		padding-top: max(20px, env(safe-area-inset-top, 0px));
		padding-right: max(20px, env(safe-area-inset-right, 0px));
		padding-bottom: max(28px, env(safe-area-inset-bottom, 0px));
		padding-left: max(20px, env(safe-area-inset-left, 0px));
	}

	/* Single close control */
	.site-header__drawer-close {
		position: absolute;
		top: max(12px, env(safe-area-inset-top, 0px));
		right: max(12px, env(safe-area-inset-right, 0px));
		width: 48px;
		height: 48px;
		padding: 0;
		border: 1px solid rgba(0, 0, 0, 0.2);
		background: #ffffff;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 4px;
		transition: background 0.2s ease, border-color 0.2s ease;
	}

	.site-header__drawer-close:hover,
	.site-header__drawer-close:focus-visible {
		background: rgba(0, 0, 0, 0.04);
		border-color: rgba(0, 0, 0, 0.35);
	}

	.site-header__drawer-close-icon {
		position: relative;
		width: 20px;
		height: 20px;
	}

	.site-header__drawer-close-icon::before,
	.site-header__drawer-close-icon::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 20px;
		height: 2px;
		background: #000000;
		border-radius: 1px;
	}

	.site-header__drawer-close-icon::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.site-header__drawer-close-icon::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.site-header__drawer-menu {
		list-style: none;
		margin: 0;
		padding: 72px 0 32px;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.site-header__drawer-menu li {
		margin: 0;
		padding: 0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	}

	.site-header__drawer-menu li:last-child {
		border-bottom: none;
	}

	.site-header__drawer-menu a {
		display: block;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 18px 12px;
		font-family: "Manrope", sans-serif;
		font-weight: 600;
		font-size: 17px;
		line-height: 1.2;
		letter-spacing: 0.02em;
		color: #000000;
		text-decoration: none;
		transition: color 0.2s ease, background 0.2s ease;
	}

	.site-header__drawer-menu a:hover,
	.site-header__drawer-menu a:focus-visible {
		color: var(--color-blue, #00a0df);
		background: rgba(0, 160, 223, 0.06);
	}

	.site-header__nav {
		display: none;
	}

	.site-header__cta {
		display: none !important;
	}

	.site-header__menu-toggle {
		display: inline-flex;
	}

	.site-header__container {
		min-height: 84px;
	}

	.hero {
		min-height: calc(100vh - 84px);
	}

	.home .hero {
		min-height: 100vh;
	}
	.about-page .hero {
		min-height: 100vh;
	}

	.hero__title {
		font-size: 48px;
	}

	.opportunity {
		padding: 80px 0 70px;
	}

	.opportunity__row--map-spacer {
		min-height: 260px;
	}

	.opportunity__row--info {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.opportunity__title {
		font-size: 52px;
	}

	.opportunity__eyebrow {
		font-size: 24px;
	}

	.opportunity__lead,
	.opportunity__text {
		font-size: 18px;
	}

	.opportunity__focus h4 {
		font-size: 36px;
	}

	.opportunity__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 560px;
	}

	.opportunity__africa-label {
		right: 6%;
		top: 26%;
		font-size: 36px;
	}

	.opportunity__dot {
		left: 2%;
		top: 58%;
		font-size: 28px;
	}
}

/* Footer */
.site-footer {
	background: var(--color-white);
	border-top: 1px solid #adadad;
	padding:0 20px;
}

.site-footer__container {
	padding: 70px 0 0;
}

.site-footer__top {
	display: grid;
    grid-template-columns: 220px 1fr 380px;
	gap: 48px;
	align-items: start;
	padding-bottom: 65px;
}

.site-footer__logo {
	width: 191px;
	height: auto;
	display: block;
}

.site-footer__social {
	margin-top: 18px;
	display: flex;
	gap: 18px;
	align-items: center;
}

.site-footer__social a {
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.site-footer__social img {
    width: 25px;
    height: auto;
	display: block;
}

.site-footer__nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px;
	justify-items: center;
}

.site-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 38px;
}

.site-footer__links a {
	font-family: "Manrope", sans-serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	letter-spacing: 0.01em; /* 1% */
	color: var(--color-black);
	text-decoration: none;
	transition: opacity 0.3s ease;
}

/* .site-footer__links a:hover {
	opacity: 0.7;
}
 */
.site-footer__subscribe-title {
	font-family: "Manrope", sans-serif;
	font-weight: 700;
	font-size: 20px;
	line-height: 1;
	letter-spacing: 0.01em; /* 1% */
	margin: 0 0 8px;
	color: var(--color-black);
}


.site-footer__bottom {
	border-top: 1px solid #adadad;
	padding: 18px 0 70px;
	width: 100%;
	box-sizing: border-box;
}

.site-footer__bottom-inner {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 12px;
	align-items: center;
}

.site-footer__bottom,
.site-footer__bottom a {
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0.01em; /* 1% */
	color: #838383;
	text-decoration: none;
}

.site-footer__bottom-left {
	display: inline-flex;
	gap: 10px;
	align-items: center;
}

.site-footer__bottom-center {
	text-align: center;
}

.site-footer__bottom-right {
	text-align: right;
}

.site-footer__brand-link {
	color: #838383;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.site-footer__brand-link:hover {
	opacity: 0.85;
}

@media (max-width: 991px) {
	.site-footer__top {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.site-footer__nav {
		justify-items: start;
	}

	.site-footer__bottom-inner {
		grid-template-columns: 1fr;
	}

	.site-footer__bottom-center,
	.site-footer__bottom-right {
		text-align: left;
	}
}

/* WRAPPER */
.footer-subscribe-form {
    width: 100%;
}

/* ROW */
.footer-subscribe-row {
	display: grid;
	grid-template-columns: 1fr minmax(120px, auto);
	gap: 10px;
	align-items: start;
}

.footer-subscribe-row > p {
	display: block;
	margin: 0;
}

/* Submit column (usually last <p> in row): keep CF7 spinner beside the button */
.footer-subscribe-row > p:last-child {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 8px;
}

.footer-subscribe-row .footer-subscribe-btn,
.footer-subscribe-row .wpcf7-submit.footer-subscribe-btn,
.footer-subscribe-row input[type="submit"].footer-subscribe-btn {
	flex-shrink: 0;
}

.footer-subscribe-row > *:first-child {
	min-width: 0;
}

/* INPUT */
.footer-subscribe-input {
    height: 56px;
    border: 1px solid #000;
    padding: 0 14px;
    font-family: "Manrope", sans-serif;
    font-size: 14px;
    background: #fff;
    width: 100%;
}

/* BUTTON */
.footer-subscribe-btn {
    height: 56px;
    border: 1px solid #000;
    background: transparent;
    font-family: "Manrope", sans-serif;
    font-size: 14px;
    cursor: pointer;
	padding: 0 20px;
    display: flex;              /* 🔥 center fix */
    align-items: center;
    justify-content: center;    /* 🔥 center text */
	color:#000000;
    position: relative;
    overflow: hidden;
    transition: color 0.35s ease, border-color 0.35s ease;
}


/* HOVER BACKGROUND */
.footer-subscribe-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #00A0DF;
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 0.35s ease;
    z-index: 0;
}

.footer-subscribe-btn span {
    position: relative;
    z-index: 1;
	color:#000000;
}

/* HOVER EFFECT */
.footer-subscribe-btn:hover::before {
    transform: scaleY(1);
}

.footer-subscribe-btn:hover {
    color: #fff;
    border-color: #00A0DF;
}

/* REMOVE CF7 DEFAULT SPACING */
.footer-subscribe-form p {
    margin: 0;
}

@media (max-width: 767px) {
/* 	.hero__container {
		padding-top: 56px;
		padding-bottom: 56px;
	} */

	.home .hero__container {
		padding-top: 0px;
	}
	.about-page .hero__container {
		padding-top: calc(56px + var(--site-header-height));
	}
	.hero__title {
		font-size: 34px;
	}

	.opportunity {
		padding: 60px 0;
	}

	.opportunity__title {
		font-size: 36px;
	}

	.opportunity__lead {
		font-size: 20px;
	}

	.opportunity__text {
		font-size: 16px;
	}

	.opportunity__focus {
		margin-top: 36px;
	}

	.opportunity__focus h4 {
		font-size: 30px;
	}

	.opportunity__focus p {
		font-size: 16px;
	}

	.opportunity__row--info {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.opportunity__stats {
		grid-template-columns: 1fr;
	}

	.opportunity__stats div,
	.opportunity__stats div:nth-child(2n) {
		border-right: 0;
		padding-left: 0;
	}

	.opportunity__stats div:nth-last-child(-n + 2) {
		border-bottom: 1px solid rgba(255, 255, 255, 0.55);
	}

	.opportunity__stats div:last-child {
		border-bottom: 0;
	}

	.opportunity__map-layer {
		width: min(90vw, 540px);
		right: -10%;
		opacity: 0.35;
	}

	.opportunity__africa-label {
		right: 8%;
		top: 20%;
		font-size: 28px;
	}

	.opportunity__dot {
		left: 2%;
		top: 70%;
		font-size: 22px;
	}
}

.ms { padding: 2rem 1rem; font-family: sans-serif; }
  .ms-eyebrow { font-size: 11px; color: #aaa; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 0.5rem; }
  .ms-title { font-size: 22px; font-weight: 400; color: #000; margin: 0 0 0.4rem; line-height: 1.3; }
  .ms-sub { font-size: 13px; color: #888; margin: 0 0 3rem; }

  .tl-item {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    min-height: 220px;
  }

  /* LEFT: L-shape graphic */
  .tl-left {
    position: relative;
    width: 180px;
    flex-shrink: 0;
  }

  /* Circle at top-left of the L */
  .circle {
    position: absolute;
    top: 0;
    left: 30px;
    width: 32px;
    height: 32px;
    border: 1px solid #555;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
  }
  .inner-dot { width: 7px; height: 7px; background: #000; border-radius: 50%; }

  /* Horizontal line from circle going right */
  .h-line-top {
    position: absolute;
    top: 15px;
    left: 62px; /* circle left (30) + circle width (32) */
    right: 0;
    height: 1px;
    background: #555;
  }

  /* Vertical line from circle center going down to bottom */
  .v-line {
    position: absolute;
    top: 16px;
    left: 46px; /* 30 + 16 (half circle) */
    width: 1px;
    bottom: 0;
    background: #555;
  }

  /* Dot at the bottom corner */
  .corner-dot {
    position: absolute;
    bottom: -3px;
    left: 43px;
    width: 6px;
    height: 6px;
    background: #000;
    border-radius: 50%;
    z-index: 3;
  }

  /* Short horizontal line from corner dot going right */
  .h-line-bot {
    position: absolute;
    bottom: 0;
    left: 49px;
    width: 100px;
    height: 1px;
    background: #555;
  }

  /* RIGHT: content */
  .tl-right { flex: 1; padding-left: 0; }

  .date { font-size: 12px; color: #aaa; margin: 0 0 5px; }
  .title {
    font-size: 14px; font-weight: 400; color: #555;
    margin: 0 0 6px; line-height: 1.4;
    transition: color 0.3s, font-size 0.3s;
  }
  .desc { font-size: 13px; color: #888; line-height: 1.6; margin: 0; transition: color 0.3s; }
  .tl-item:hover .title { color: #000; font-size: 16px; }
  .tl-item:hover .desc { color: #000; }

  .ms-cta { display: flex; justify-content: center; margin-top: 2.5rem; }
  .ms-cta button {
    font-size: 13px; padding: 11px 30px;
    border: 1px solid #000; background: transparent; color: #000;
    cursor: pointer; transition: background 0.2s, color 0.2s;
  }
  .ms-cta button:hover { background: #000; color: #fff; }




  /* SECTION */
.partners {
	position: relative;
	padding: 120px 0;
	/* background: linear-gradient(180deg, rgba(20,25,38,0.5) 0%, #0e1420 100%); */
	background: url('./assets/images/partners-bg.png') center/cover no-repeat;
	color: #fff;
	overflow: hidden;
}

/* HEADER */
.partners__header {
	max-width: 900px;
	margin-bottom: 60px;
}

.partners__title {
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	font-size: 72px;
	line-height: 1.14;
	margin-bottom: 40px;
}

.partners__desc {
	font-family: "Manrope", sans-serif;
	font-size: 20px;
	line-height: 1.37;
	/*opacity: 0.85;*/
	font-weight: 300 !important;
}

/* MARQUEE */
.partners__marquee {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.partners__track {
	display: flex;
	overflow: hidden;
}

.partners__marquee--full {
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	overflow: hidden;
}

.partners__track {
	display: flex;
}

.partners__track-inner {
	display: flex;
	gap: 0; /* ❗ NO GAP */
	will-change: transform;
}

/* LOGOS */
.partners__logo {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 30px; /* spacing inside instead of gap */
}

.partners__logo img {
	height: 60px;
	width: auto;
	max-width: 140px;
	object-fit: contain;
}

/* HOVER EFFECT */
.partners__logo:hover {
/* 	transform: scale(1.08); */
	opacity: 1;
}

/* SLOW DOWN ON HOVER (IMPORTANT) */
.partners__marquee:hover .partners__track {
	animation-duration: 60s;
}



/* CTA */
.partners__cta {
	text-align: left;
	margin-top: 60px;
}
.partners__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 200px;
	height: 50px;
	padding: 16px 30px;

	background: transparent;
	border: 1px solid #ffffff;
	border-radius: 0;

	font-family: "Manrope", sans-serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	letter-spacing: 0.01em;
	text-align: center;

	color: #ffffff;
	text-decoration: none;

	position: relative;
	overflow: hidden;

	transition: color 0.35s ease;
}

/* Fill animation layer */
.partners__btn::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 0%;
	background: #ffffff; /* white fill */
	transition: height 0.35s ease;
	z-index: 0;
}

/* Text wrapper (IMPORTANT) */
.partners__btn span {
	position: relative;
	z-index: 1;
	transition: color 0.35s ease;
}

/* Hover animation */
.partners__btn:hover::before {
	height: 100%;
}

/* Text color on hover */
.partners__btn:hover span {
	color: #000000;
}

/* RESPONSIVE */
@media (max-width: 992px) {
	.partners__title {
		font-size: 48px;
	}

	.partners__desc {
		font-size: 16px;
	}

	.partners__track {
		gap: 50px;
	}
}

@media (max-width: 768px) {
	.partners {
		padding: 80px 0;
	}
	.partners__cta{
		text-align:left;
	}
	.partners__title {
		font-size: 34px;
	}
	.partners__desc {
		font-size: 16px;
	}
	.partners__logo img {
		height: 40px;
	}
}

/* SECTION */
.cta-invite {
	background: #ffffff;
	padding: 120px 20px;
	text-align: center;
}

/* CONTAINER */
.cta-invite__container {
	max-width: 900px;
	margin: 0 auto;
}

/* TITLE */
.cta-invite__title {
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	font-size: 56px;
	line-height: 1.2;
	color: #111;
	margin-bottom: 20px;
}

/* DESCRIPTION */
.cta-invite__desc {
	font-family: "Manrope", sans-serif;
	font-size: 20px;
	line-height: 1.6;
	color: #000000;
	max-width: 900px;
	margin: 0 auto 40px;
}
/* ═══════════════════════════════════════════════════════════════════
   ABOUT PAGE STYLES
   All rules are scoped to .about-page or .about-* so they NEVER
   affect the homepage or any other template.
   Add this block AFTER your existing style.css content.
═══════════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────────
   1. HERO  — sphere image floats right, white bg behind text
   Override only what differs from the shared .hero rules.
───────────────────────────────────────────────────────────────── */

/* Remove the video-based dark overlay that exists on the home hero */
.about-page .hero {
	background: #ffffff;
	margin-top: calc(-1 * var(--site-header-height));
	min-height: 100vh;
	box-sizing: border-box;
}
.about-page .hero__container {
padding-top: 0;
}

/* The sphere SVG sits on the RIGHT side only */
.about-hero__sphere {
	/* Reset the shared inset:0 / width:100% rules */
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: auto !important;          /* <-- detach from left edge */
	height: 100% !important;
	object-fit: contain !important;
	object-position: right center !important;
	display: block !important;
	/* no scaleX(-1) flip needed for static image */
	transform: none !important;
}
.about-hero__mobile-bg {
	display: none;
}

/* Very light wash so the sphere doesn't overpower the text */
.about-hero__overlay {
	background-color: rgba(255, 255, 255, 0.08) !important; /* near-transparent */
}

/* Hero title line-height tweak for the about page */
.about-page .hero__title {
	font-size: 55px;
	line-height: 1.2;
}

@media (max-width: 991px) {
	.about-page .hero__title { font-size: 44px; }
	.about-hero__sphere {
		display: none !important;
	}

	.about-hero__mobile-bg {
		display: block !important;
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
		margin: 0;
		transform: none !important;
	}
}

@media (max-width: 767px) {
	.cta-invite__title{font-size:34px; text-align:left; }
	.cta-invite__desc,.cta-invite{
		text-align:left;
	}
	.cta-invite .btn-contact span,.btn-contact {
    text-align: left;
    padding: 5px;
  }
	.cta-invite__desc{
		font-size:16px;
	}
	.cta-invite{
		padding-top: 40px;
	}
	.about-page .hero__title { font-size: 34px; }
	.about-hero__sphere {
		display: none !important;
	}

	.about-hero__mobile-bg {
		display: block !important;
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
		margin: 0;
		transform: none !important;
	}
}


/* ─────────────────────────────────────────────────────────────────
   2. BLUE CONVICTION STRIP
───────────────────────────────────────────────────────────────── */
.about-conviction {
	background: #00A0DF;
	color: #ffffff;
	padding: 120px 0;
}

.about-conviction__container {
	display: flex;
	gap: 60px;
	align-items: start;
}

.about-conviction__heading {
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	font-size: clamp(32px, 3.6vw, 56px);
	line-height: 1.12;
	letter-spacing: -0.01em;
	color: #ffffff;
	/* margin: 0; */
	padding-bottom: 30px;
	max-width:900px;
}

.about-conviction__body {
	padding-top: 8px;
}

.about-conviction__body p {
	font-family: "Manrope", sans-serif;
	font-size: 20px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.88);
	margin: 0 0 16px;
/* 	padding-bottom: 30px; */
}

.about-conviction__body p:last-child { margin-bottom: 0; }

.about-conviction__body ul {
	line-height: 1.7;
		letter-spacing: -0.01em;
}
@media (max-width: 768px) {
	.about-conviction__container {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.about-conviction__body p {
	font-family: "Manrope", sans-serif;
	font-size: 16px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.88);
	margin: 0 0 16px;
/* 	padding-bottom: 30px; */
}
	.about-conviction {
		padding: 60px 0;
	}
}


/* ─────────────────────────────────────────────────────────────────
   3. FOUNDER SECTION
───────────────────────────────────────────────────────────────── */
/* ===============================
   DESKTOP STICKY (FULL PAGE SCROLL)
================================= */
@media (min-width: 992px) {

    .sticky-layout {
        display: grid;
        grid-template-columns: 380px 1fr; /* slightly bigger left */
        gap: 70px;
        align-items: start;
    }

    /* LEFT SIDE */
    .about-founder__photo-wrap {
        width: 100%;
        position: sticky;
        top: 100px; /* adjust based on header */
        text-align: left;
    }

    /* IMAGE BIGGER */
    .about-founder__photo {
        max-width: 420px;  /* 👈 increased size */
        width: 100%;
    }

    /* NAME SINGLE LINE */
    .about-founder__name {
        white-space: nowrap;   /* 👈 prevent line break */
        font-size: 42px;       /* same as your */
    }

    /* ALIGN LEFT CONTENT START */
    .about-founder__bio {
        padding-top: 0; /* remove extra gap */
    }
}
.about-founder{
	background:#fff;
	padding:90px 0 70px;
}

/* container width */

/* quote */
.about-founder__quote{
	max-width:760px;
	margin:0 auto ;
	text-align:center;

	font-family:"Manrope",sans-serif;
	font-size:32px;
	font-weight:400;
	line-height:1.4;
	color:#000000;

	border:none;
	padding:0;
}

.about-heading-bottom{
	max-width:760px;
	margin:0 auto 70px;
	/* text-align:center; */

	font-family:"Manrope",sans-serif;
	font-size:32px;
	font-weight:400;
	line-height:1.6;
	color:#000000;

	border:none;
	padding:0;
}

.about-heading-bottom span {
    color: var(--color-blue);
    	font-size:45px;
}
/* layout */
.about-founder__grid{
	/* display:grid;
	grid-template-columns:360px 1fr; */
	column-gap:70px;
	    padding: 40px 0;
	/* THIS MAKES CONTENT VERTICALLY CENTER */
/* 	align-items:center; */

	max-width:1200px;
	margin:0 auto;
}

/* image */
.about-founder__photo-wrap{
/* 	width:60%; */
	margin:0 auto;
	text-align:center;
}

.about-founder__photo{
	width:100%;
	display:block;
	object-fit:cover;
}

/* content */
.about-founder__bio{
	/* max-width:470px; */
	align-self:center;
		padding-top:20px;
}

.about-founder__name{
	margin:0 0 4px;

	font-family:"Manrope",sans-serif;
	font-size:42px;
	font-weight:400;
	line-height:1.1;
	color:#00A3E0;
	padding-top:20px;
}

.about-founder__role{
	margin-bottom:22px;

	font-family:"Manrope",sans-serif;
	font-size:22px;
	font-weight:400;
	line-height:1.4;
	color:#000000;
}

.about-founder__text{
	margin:0 0 16px;

	font-family:"Manrope",sans-serif;
	font-size:16px;
	font-weight:400;
	line-height:1.7;
	color:#000000;
}

.about-founder__text:last-child{
	margin-bottom:0;
}

/* responsive */
@media (max-width:768px){

	.about-founder{
		padding:60px 0 0;
	}

	.about-founder__quote{
		margin-bottom:40px;
		font-size:16px;
	}
	.about-founder__role{
		font-size:18px;
	}
	.about-founder__text{
		font-size:16px;
	}
	.about-founder__grid{
		grid-template-columns:1fr;
		row-gap:30px;
		max-width:100%;
	}

	.about-founder__photo-wrap{
		text-align:center;
		width:100%;
	}

	.about-founder__photo{
		max-width:480px;
		margin:0 auto;
	}

	.about-founder__bio{
		max-width:100%;
		padding-top:0;
		text-align:left;
	}

	.about-founder__name{
		font-size:26px;
	}
}

/* ─────────────────────────────────────────────────────────────────
   4. LEADERSHIP SECTIONS  (Board & Operational)
───────────────────────────────────────────────────────────────── */
.about-leadership {
	background: #fff;
    padding: 90px 0 70px;
}
.about-leader{
	display:grid;
	grid-template-columns:180px 1fr;
	column-gap:36px;

	align-items:center;

	padding:18px 0;
}
.about-leadership--operational {
	padding-top: 0;          /* no gap between board and operational */
	/* border-top: 1px solid #efefef; */
}

/* Section header */
.about-leadership__header {
	margin-bottom: 0px;
}




.about-leadership__eyebrow {
	display:block;
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	letter-spacing: 0.06em;
	color: #888888;
   text-align: center; color: #000000; font-size: 28px; padding: 10px 0;
}

/* ─── LEADERSHIP SECTIONS ─── */




.about-leadership__title {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: clamp(30px, 3vw, 56px);
  line-height: 1.15;
  color: #000000;
  margin: 0 0 10px;
}

.about-leadership__subtitle {
  font-family: "Manrope", sans-serif;
  font-size: 20px;
  line-height: 1.6;
  color: #000000;
  margin: 0 0 20px;
  /* max-width: 560px; */
}

/* .about-leadership__eyebrow {
  display: inline-block;
  font-family: "Manrope", sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #888888;
} */

/* ── Individual leader card ── */
.about-leader {
  display: grid;
  grid-template-columns: 300px 1fr; /* image column | content column */
  column-gap: 0;          /* ← NO gap: image and box touch each other */
  align-items: center;    /* ← content box centered vertically */
  padding: 26px 0;
}

.about-leader:first-of-type {
  border-top: none;
}

.about-leader.about-leader--no-photo {
  grid-template-columns: 1fr;
}

/* ── Photo ── */
.about-leader__photo-wrap {
  width: 100%;            /* fills the 300px grid track */
  overflow: hidden;
  height: 360px;          /* fixed image height */
}

.about-leader__photo {
  width: 100%;
  height: 100%;           /* fills photo-wrap height */
  object-fit: cover;
  object-position: top center;
  display: block;
}

/* ── Content box ── */
.about-leader__content {
  background: #F7F7F7;
  padding: 32px 34px;
  align-self: center;     /* center content vertically */
     min-height: 300px;     /* don't stretch */
}

.about-leader__name {
  font-family: "Manrope", sans-serif;
  font-size: 32px;
  font-weight: 400;
  line-height: 1.2;
  color: #00A0DF;
  margin: 0 0 6px;
}

.about-leader__role {
  display: block;
  font-family: "Manrope", sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.4;
  color: #000000;
  margin-bottom: 18px;
}

.about-leader__bio,
.about-leader__content p {
  font-family: "Manrope", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  color: #000000;
  margin: 0 0 18px;
}

.about-leader__bio:last-child,
.about-leader__content p:last-child {
  margin-bottom: 0;
}

/* ── Responsive ── */
@media (max-width: 768px) {
	.about-leadership{
	padding: 60px 0;
	}
	.about-leadership__subtitle{
		font-size:16px;
	}
	.about-leader__role {
		font-size:16px;
	}
	.about-leader__bio{
		font-size:15px;
	}
	.about-leadership__eyebrow{
		padding:0;
		text-align: left !important;
	}
  .about-leader {
    grid-template-columns: 1fr;
    row-gap: 0;             /* keep the flush look on mobile too */
  }
	.about-leader__name{
		font-size:22px;
	}
  .about-leader__photo-wrap {
    width: 100%;
/*     text-align: center; */
    height: auto;
    padding: 30px;
  }

  .about-leader__photo {
    width: 100%;
   max-width: 300px;
    height: 300px;
    min-height: unset;
    margin: 0 auto;
  }

  .about-leader__content {
    padding: 28px 24px;
  }
}
@media (max-width: 480px) {
	.about-leader__photo {
		max-width: 300px;
    height: 300px;
	}
}


/* PROCUREMENT BLOCK */
.procurement {
    margin-top: 80px;
    text-align: center;
}

.procurement__label {
    font-size: 18px;
    color: #000000;
    margin-bottom: 50px;
}

/* GRID */
.procurement__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 50px 30px;
}

/* ITEM */
.proc-item {
    text-align: center;
    max-width: 180px;
    margin: 0 auto;
}

.proc-item p {
    font-size: 15px;
    color: #000000;
    margin-top: 15px;
    line-height: 1.5;
}

/* ICON PLACEHOLDER (REPLACE LATER) */
.proc-icon img {
    width: 60px;
    height: 60px;
    margin: 0 auto;
    /* border: 2px solid #1e90ff; */
    /* border-radius: 10px; */
}

/* CTA */
.procurement-cta {
    margin-top: 100px;
    text-align: center;
}

.procurement-cta h2 {
    font-size: 48px;
    margin-bottom: 15px;
}

.procurement-cta p {
    max-width: 600px;
    margin: 0 auto 30px;
    font-size: 14px;
    color: #666;
}

/* BUTTON */
.btn-outline {
    display: inline-block;
    padding: 12px 30px;
    border: 1px solid #333;
    color: #333;
    text-decoration: none;
    font-size: 14px;
    transition: 0.3s ease;
}

.btn-outline:hover {
    background: #333;
    color: #fff;
}

/* =========================
   RESPONSIVE
========================= */

/* TABLET */
@media (max-width: 1024px) {
    .procurement__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* MOBILE */
@media (max-width: 768px) {

    .about-leadership__title {
        font-size: 32px;
    }

    .procurement__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 20px;
    }
	..procurement__label{
		font-size:15px;
	}
	.proc-item p{
		font-size:14px;
	}
    .procurement-cta h2 {
        font-size: 32px;
    }
}

/* SMALL MOBILE */
@media (max-width: 480px) {
    .procurement__grid {
   grid-template-columns: repeat(2, 1fr);
    }
}

/* DESKTOP ONLY FIX */
@media (min-width: 1025px) {

    .procurement__grid {
        grid-template-columns: repeat(5, 1fr);
    }

    /* SECOND ROW CENTER ALIGN (items 6,7,8) */
    .procurement__grid .proc-item:nth-child(6) {
        grid-column: 2;
    }

    .procurement__grid .proc-item:nth-child(7) {
        grid-column: 3;
    }

    .procurement__grid .proc-item:nth-child(8) {
        grid-column: 4;
    }
}
.esg-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
	padding-top: 30px;
}

/* CARD */
.esg-card {
    background: #008BC1;
    padding: 40px 30px;
    min-height: 420px;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
}

/* ICON PLACEHOLDER */
.esg-icon {
    position: relative;
    width: 50px;
    height: 50px;
}

.esg-icon img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: opacity 0.3s ease;
}

/* DEFAULT */
.icon-hover {
    opacity: 0;
}

/* HOVER */
.esg-card:hover .icon-default {
    opacity: 0;
}

.esg-card:hover .icon-hover {
    opacity: 1;
}
/* TITLE */
.esg-card h3 {  
	   color: #ffffff;
    font-size: 28px;
    margin-bottom: 15px;
}

/* TEXT */
.esg-card p {
	color: #ffffff;
    font-size: 15px;
    line-height: 1.7;
    opacity: 0.95;
}

.esg-card:hover {
    background: #fff;
    transform: translateY(-5px);
}

/* HEADING HOVER */
.esg-card:hover h3 {
    color: #00A0DF;
}

/* PARAGRAPH HOVER */
.esg-card:hover p {
    color: #000000;
}

/* =========================
   RESPONSIVE
========================= */

/* TABLET */
@media (max-width: 1024px) {
    .esg-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* MOBILE */
@media (max-width: 768px) {

    .about-conviction {
        padding: 70px 0;
    }

    .about-conviction__heading {
        font-size: 30px;
    }

    .esg-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .esg-card {
        padding: 25px;
    }
	.esg-card p{
		font-size:13px;
	}
}

/* =========================
   STATS ROW
========================= */

.ghana-stats {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    margin: 50px 0;
}

/* EACH ITEM */
.ghana-stat {
    padding: 0 30px;
    position: relative;
}

/* VERTICAL DIVIDER */
.ghana-stat:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 10px;
    height: 50px;
    width: 1px;
    background: rgba(255,255,255,0.4);
}

/* TITLE */
.ghana-stat h3 {
    font-size: 22px;
    font-weight: 500;
    margin-bottom: 5px;
}

/* SUBTEXT */
.ghana-stat p {
    font-size: 13px;
    opacity: 0.8;
}

/* =========================
   RESPONSIVE
========================= */

/* TABLET */
@media (max-width: 1024px) {
    .ghana-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .ghana-stat::after {
        display: none;
    }
}

/* MOBILE */
@media (max-width: 768px) {

    .ghana-stats {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .ghana-stat {
        padding: 0;
    }
}


/* SECTION */
.capacity-section {
    padding: 100px 0;
    background: #ffffff;
}

/* ROW */
.capacity-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
    padding: 80px 0;
}

/* ONLY ROW 2 REVERSED */
.capacity-row.reverse {
    flex-direction: row-reverse;
}

/* TEXT */
.capacity-text {
    flex: 1;
    max-width: 560px;
}

.capacity-text h3 {
    font-size: 50px;
    margin-bottom: 15px;
    color: #222;
}

.capacity-text p {
    font-size: 18px;
    color: #000000;
    line-height: 1.7;
    margin-bottom: 10px;
}

/* IMAGE */
.capacity-image {
    flex: 1;
    display: flex;
    /* justify-content: center; */
}

.capacity-image img {
    width: 100%;
    max-width: 520px;
    height: auto;
    object-fit: cover;
    border-radius: 4px;
}

/* =========================
   RESPONSIVE
========================= */

/* TABLET */
@media (max-width: 1024px) {
    .capacity-row {
        gap: 40px;
    }

    .capacity-text h3 {
        font-size: 26px;
    }

    .capacity-image img {
        max-width: 350px;
    }
}

/* MOBILE */
@media (max-width: 768px) {

    .capacity-section {
        padding: 30px 0;
    }
	..capacity-row{
		padding: 40px 0;
	}
     .capacity-row,
    .capacity-row.reverse {
        flex-direction: column;
    }
	.capacity-text p{
		font-size:14px;
	}
    /* FORCE TEXT FIRST ALWAYS */
    .capacity-text {
        order: 1;
    }

    .capacity-image {
        order: 2;
    }
    .capacity-image img {
        max-width: 100%;
    }

    .capacity-text h3 {
        font-size: 24px;
    }
}

/* SMALL MOBILE */
@media (max-width: 480px) {
    .capacity-row {
        gap: 25px;
        margin-bottom: 60px;
		padding:20px 0;
    }
}

/* SECTION */
.about-page .contact-hero-section {
	background: #ffffff;
	margin-top: calc(-1 * var(--site-header-height));
	padding-top: var(--site-header-height);
	box-sizing: border-box;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-left: 0;
	padding-right: 0;
	padding-bottom: 0;
}
/* CONTAINER */
.contact-container {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;

    display: flex;              /* 🔥 important */
    flex-direction: column;
    justify-content: center;    /* 🔥 vertical balance */
    
    padding: 0 20px;            /* ❌ remove top-bottom padding */
}
/* HEADER */
.contact-header {
    margin-bottom: 30px; /* reduce from 50 */
}

/* FORM WRAPPER */
.contact-form-wrapper {
    margin-top: 20px; /* reduce space */
}
/* TITLE */
.contact-title {
    font-size: 56px;
    font-weight: 400;
    color: #00A0DF;
    margin-bottom: 20px;
}

/* DESCRIPTION */
.contact-desc {
    font-size: 26px;
    color: #000000;
    line-height: 1.5;
    max-width: 600px;
    font-weight: 500;
}

/* FORM WRAPPER */

/* GRID */
.contact-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px 28px;
}

/* FORM GROUP */
.contact-form-grid .form-group {
    width: 100%;
}

/* INPUTS */
.contact-form-grid input,
.contact-form-grid select,
.contact-form-grid textarea {
    width: 100%;
    padding: 16px 18px;
    font-size: 15px;
    border: 1px solid #DADADA;
    background: #ffffff;
    outline: none;
    transition: 0.3s ease;
}

/* PLACEHOLDER */
.contact-form-grid input::placeholder,
.contact-form-grid textarea::placeholder {
    color: #000000;
}

/* SELECT FIX */
.contact-form-grid select {
    color: #666;
}
.contact-form-grid textarea {
    height: 52px;   /* same height as inputs */
    min-height: 52px;
    resize: none;
}
/* FOCUS */
.contact-form-grid input:focus,
.contact-form-grid select:focus,
.contact-form-grid textarea:focus {
    border-color: #00A0DF;
}

/* SUBMIT WRAPPER */
.form-submit {
    margin-top: 30px;
}

/* BUTTON */
.cf7-submit-btn {
    background: #ffffff;
    color: #000000;
    border: 1px solid #000000;
    padding: 14px 40px;
    font-size: 15px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color 0.35s ease, border-color 0.35s ease;
    z-index: 1;
}

/* BACKGROUND ANIMATION */
.cf7-submit-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #00A0DF;

    transform: scaleY(0);
    transform-origin: bottom; /* 🔥 bottom → top */

    transition: transform 0.4s ease;
    z-index: -1;
}

/* HOVER */
.cf7-submit-btn:hover::before {
    transform: scaleY(1);
}

.cf7-submit-btn:hover {
    color: #ffffff;
    border-color: #00A0DF;
}
/* REMOVE CF7 DEFAULT SPACING */
.wpcf7-form p {
    margin: 0;
}

/* =========================
   RESPONSIVE
========================= */

/* TABLET */
@media (max-width: 1024px) {
    .contact-title {
        font-size: 42px;
    }

    .contact-desc {
        font-size: 18px;
    }
}

/* MOBILE */
@media (max-width: 768px) {

   .about-page .contact-hero-section {
		padding-top: calc(60px + var(--site-header-height));
		padding-bottom: 60px;
	}


    .contact-title {
        font-size: 34px;
    }

    .contact-desc {
        font-size: 16px;
    }

    .contact-form-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .form-submit {
        margin-top: 25px;
    }
}

/* SECTION */
.contact-location-section {
    background: #00A0DF; /* 🔥 your brand color */
    padding: 90px 0;
}

/* CONTAINER */
.contact-location-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ITEM */
.contact-location-item {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 50px;
    align-items: center;
    margin-bottom: 60px;
}

/* REMOVE LAST SPACE */
.contact-location-item:last-child {
    margin-bottom: 0;
}

/* TEXT */
.contact-location-text {
    color: #ffffff;
}

.contact-location-text h3 {
    font-size: 22px;
    margin-bottom: 15px;
    font-weight: 600;
}

.contact-location-text p {
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 15px;
	font-weight: 400;
}
.contact-location-text p a {
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 15px;
    font-weight: 400;
    text-decoration: none !important;
    color: white;
}

.contact-location-text h4 {
    margin-top: 20px;
    font-size: 16px;
    font-weight: 600;
}

.contact-location-info {
    font-size: 14px;
}
.contact-location-info img{
/* 	height:24px;
	width: 24px; */
	padding: 8px;
}
/* MAP */
.contact-location-map iframe {
    width: 100%;
    height: 240px;
    border: 0;
    border-radius: 4px;
}

/* =====================
   RESPONSIVE
===================== */

@media (max-width: 992px) {
    .contact-location-item {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .contact-location-map iframe {
        height: 260px;
    }
}

@media (max-width: 576px) {
    .contact-location-section {
        padding: 60px 0;
    }

    .contact-location-map iframe {
        height: 220px;
    }
}