/* =========================================================
   CGE – CUSTOM CSS (Cleaned + De-duplicated)
   Safe refactor: same behavior, fewer repeats
   ========================================================= */


/* =========================
   1) Projects Map (MapSVG)
   ========================= */

/* Map section wrapper */
.projects-map{
  position: relative;
  z-index: 2;
  overflow: hidden;
  margin-bottom: 16px;

  /* reserve space even if the plugin uses absolute children */
  aspect-ratio: 16 / 9;
  min-height: 360px;     /* ensures visibility */
  max-height: 1220px;    /* optional cap */
}

/* Common MapSVG wrappers – keep them in normal flow and full width */
.projects-map .mapsvg,
.projects-map .mapsvg-container,
.projects-map .mapsvg-wrap{
  position: static !important;
  width: 100% !important;
  max-width: 100%;
}

/* The actual graphic – DON'T force height:100% */
.projects-map svg,
.projects-map iframe{
  display: block;
  width: 100% !important;
  height: auto !important;
}

/* Section after the map */
.projects-after{
  position: relative;
  z-index: 1;
  margin-top: 24px;
}

/* Safety on small screens if the plugin absolutely positions children */
@media (max-width: 768px){
  .projects-map [style*="position:absolute"]{ position: static !important; }
}


/* =========================
   2) Navigation hover grow
   ========================= */

@media (min-width: 1025px){
  .cge-nav .elementor-nav-menu > li > a,
  .cge-nav .elementor-nav-menu .sub-menu a{
    display: inline-block;
    transform-origin: left center;
    transition: transform .16s ease;
    will-change: transform;
  }

  .cge-nav .elementor-nav-menu > li:hover > a,
  .cge-nav .elementor-nav-menu > li > a:focus-visible{
    transform: scale(1.12);
    font-weight: 600;
  }

  .cge-nav .elementor-nav-menu .sub-menu a{
    transition-duration: .14s;
  }

  .cge-nav .elementor-nav-menu .sub-menu a:hover{
    transform: scale(1.06);
  }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce){
  .cge-nav .elementor-nav-menu a{ transition: none !important; }
}


/* =========================
   3) Jetpack cleanup
   ========================= */

#jp-relatedposts{
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* ===========================================
   4) Elementskit Team – Equal images & cards
   + Typography normalization
   + Align text baselines across cards
   =========================================== */

.elementor-element[data-widget_type="elementskit-team.default"]{
  height: 100% !important;
}

/* Ensure the parent grid stretches items */
.team-grid,
.e-grid{
  align-items: stretch !important;
}

/* Make Elementor → Elementskit wrapper chain stretch */
.elementor-element[data-widget_type="elementskit-team.default"] .elementor-widget-container,
.elementor-element[data-widget_type="elementskit-team.default"] .ekit-wid-con,
.elementor-element[data-widget_type="elementskit-team.default"] .profile-square-v,
.elementor-element[data-widget_type="elementskit-team.default"] .profile-card{
  height: 100% !important;
}

/* Card layout */
.elementor-element[data-widget_type="elementskit-team.default"] .profile-card{
  display: flex !important;
  flex-direction: column !important;
}

/* Fixed image box */
.elementor-element[data-widget_type="elementskit-team.default"] .profile-header.ekit-team-img{
  height: 260px !important;
  min-height: 260px !important;
  max-height: 260px !important;
  overflow: hidden !important;
  border-radius: 12px !important;
}

.elementor-element[data-widget_type="elementskit-team.default"] .profile-header.ekit-team-img > img{
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: cover !important;
  display: block !important;
}


.elementor-element[data-widget_type="elementskit-team.default"] .profile-body{
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-top: 18px !important; /* consistent gap under image */
  text-align: center !important;
}


.elementor-element[data-widget_type="elementskit-team.default"] .profile-body .profile-title{
  min-height: 28px !important;          /* same name line baseline */
  margin: 0 0 10px 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.3 !important;
}

.elementor-element[data-widget_type="elementskit-team.default"] .profile-body .profile-title,
.elementor-element[data-widget_type="elementskit-team.default"] .profile-body .profile-title a{
  font-family: inherit !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: inherit !important;
  text-decoration: none !important;
}


.elementor-element[data-widget_type="elementskit-team.default"] .profile-body .profile-designation{
  min-height: 48px !important;          /* enough for 2 lines */
  margin: 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;

  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: inherit !important;
  text-align: center !important;
}


.elementor-element[data-widget_type="elementskit-team.default"] .profile-body h1,
.elementor-element[data-widget_type="elementskit-team.default"] .profile-body h2,
.elementor-element[data-widget_type="elementskit-team.default"] .profile-body h3,
.elementor-element[data-widget_type="elementskit-team.default"] .profile-body h4{
  font-size: inherit !important;
  font-weight: inherit !important;
  margin: 0 !important;
}

/* FORCE NAME + ROLE to align on the same baseline across all cards */
.elementor-element[data-widget_type="elementskit-team.default"] .profile-body{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}


.elementor-element[data-widget_type="elementskit-team.default"] .profile-body .profile-title{
  height: 32px !important;          /* fixed slot */
  min-height: 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 0 10px 0 !important;
}


.elementor-element[data-widget_type="elementskit-team.default"] .profile-body .profile-designation{
  height: 60px !important;          /* fixed slot for 1–2 lines */
  min-height: 56px !important;
  display: flex !important;
  align-items: center !important;   /* 🔥 this aligns short roles with long roles */
  justify-content: center !important;
  margin: 0 !important;
  text-align: center !important;
}

/* =========================================================
   Elementskit Team – uniform gap between image and name
   ========================================================= */

/* Add consistent spacing under the image */
.elementor-element[data-widget_type="elementskit-team.default"]
.profile-header.ekit-team-img{
  margin-bottom: 20px !important;  /* adjust 16–24px if needed */
}

.elementor-element[data-widget_type="elementskit-team.default"]
.profile-body .profile-title,
.elementor-element[data-widget_type="elementskit-team.default"]
.profile-body .profile-title a{
  color: #296879 !important;
}

/* Team ROLE / POSITION (e.g. Trustee, CEO, etc.) */
.elementor-element[data-widget_type="elementskit-team.default"]
.profile-body .profile-designation{
  color: #296879 !important;
}
.cge-finance-links p{
  margin: 0 0 8px 0 !important;  
}

.cge-finance-links a{
  font-size: 16px !important;     /* link size */
  font-weight: 400 !important;
  line-height: 1.35 !important;
  color: ##296879 !important;      /* teal-ish link color */
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.wp-block-file {
  margin: 0 0 4px 0 !important;  
  padding: 0 !important;
}


.cge-files-list .wp-block-file{
  margin: 0 0 4px 0 !important;  /* try 4px if you want tighter */
  padding: 0 !important;
}

.cge-docs-list h1,
.cge-docs-list h2{
  font-size: 20px !important;
  line-height: 1.2 !important;
  margin: 0 0 14px !important;
  color: #296879 !important;
}


.cge-docs-list h3,
.cge-docs-list h4,
.cge-docs-list h5,
.cge-docs-list h6{
  font-size: 14px !important;
  line-height: 1 !important;
  margin: 0 0 4px !important;
  font-weight: 400 !important;
  color: #296879 !important;
}

/* Normal paragraphs / list items spacing */
.cge-docs-list p,
.cge-docs-list li{
  margin: 0 0 4px !important;
}

/* Link style (small, teal, underlined like screenshot #2) */
.cge-docs-list a{
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  color: #296879 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

cge-tile-img
.cge-home-hero{
  overflow-x: hidden;
  --cge-max: 1100px;
  --cge-gutter: max(18px, calc((100vw - var(--cge-max))/2));
}

.cge-home-hero .cge-hero,
.cge-home-hero .cge-intro{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* HERO */
.cge-home-hero .cge-hero{
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center 22% !important;
  min-height: 920px !important;
}

.cge-home-hero .cge-hero > .elementor-background-overlay{
  display: none !important;
  opacity: 0 !important;
  background: none !important;
}

.cge-home-hero .cge-hero{
  position: relative !important;
  isolation: isolate !important;
}

.cge-home-hero .cge-hero::before{
  content: "" !important;
  position: absolute !important;

  /* FORCE bottom placement */
  top: auto !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;

  /* ONLY the bottom area gets the fade */
  height: 45% !important;

  pointer-events: none !important;
  z-index: 1 !important;

  /* Fade (transparent -> teal) */
  background: linear-gradient(
    to bottom,
    rgba(41,104,121,0)    0%,
    rgba(41,104,121,0.12) 20%,
    rgba(41,104,121,0.40) 45%,
    rgba(41,104,121,0.78) 75%,
    rgba(41,104,121,0.92) 100%
  ) !important;
}


.cge-home-hero .cge-hero .cge-hero__content{
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 2px !important;
  z-index: 2 !important;
  padding-left: var(--cge-gutter) !important;
  padding-right: var(--cge-gutter) !important;
  text-align: left !important;
}

.cge-home-hero .cge-hero .cge-hero__content *{
  text-align: left !important;
}

.cge-home-hero .cge-hero__kicker .elementor-heading-title{
  margin: 0 0 4px 0 !important;
  color: #F8BD0C !important;
  font-weight: 700 !important;
  font-size: 24px !important;
  line-height: 1.15 !important;
}

.cge-home-hero .cge-hero__title .elementor-heading-title{
  margin: 0 !important;
  color: #fff !important;
  font-weight: 800 !important;
  font-size: 40px !important;
  line-height: 1.05 !important;
}

/* INTRO */
.cge-home-hero .cge-intro{
  background: #296879 !important;
  margin: 0;
  padding: 24px var(--cge-gutter) 40px;
  color: #fff !important;
  display: grid !important;
  grid-template-columns: 1.35fr .65fr !important;
  gap: 28px !important;
  align-items: center !important;
}

.cge-home-hero .cge-intro > :first-child{
  min-width: 0 !important;
}

.cge-home-hero .cge-intro > :last-child{
  justify-self: end !important;
}

.cge-home-hero .cge-intro .elementor-widget-text-editor{
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
}

.cge-home-hero .cge-intro .elementor-widget-text-editor p{
  margin: 0 0 14px;
}

.cge-home-hero .cge-intro > :last-child img{
  width: min(280px,100%) !important;
  height: auto !important;
  display: block !important;
}

/* FIX: remove left padding/indent inside intro text */
.cge-home-hero .cge-intro .elementor-widget-text-editor,
.cge-home-hero .cge-intro .elementor-widget-text-editor *{
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* RESPONSIVE */
@media (max-width: 1024px){
  .cge-home-hero .cge-hero{
    min-height: 420px !important;
  }

  .cge-home-hero .cge-hero__kicker .elementor-heading-title{
    font-size: 18px !important;
  }

  .cge-home-hero .cge-hero__title .elementor-heading-title{
    font-size: 32px !important;
  }

  .cge-home-hero .cge-intro{
    padding: 20px 22px 34px !important;
  }

  .cge-home-hero .cge-hero .cge-hero__content{
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
}

@media (max-width: 767px){
  .cge-home-hero .cge-hero{
    min-height: 360px !important;
    background-position: center 18% !important;
  }

  .cge-home-hero .cge-hero .cge-hero__content{
    padding-left: 18px;
    padding-right: 18px;
  }

  .cge-home-hero .cge-hero__kicker .elementor-heading-title{
    font-size: 16px !important;
  }

  .cge-home-hero .cge-hero__title .elementor-heading-title{
    font-size: 28px !important;
  }

  .cge-home-hero .cge-intro{
    grid-template-columns: 1fr 220px !important;
    padding: 18px 18px 30px !important;
  }

  .cge-home-hero .cge-intro > :last-child img{
    width: min(220px,100%) !important;
  }
}

@media (max-width: 520px){
  .cge-home-hero .cge-intro{
    grid-template-columns: 1fr !important;
  }

  .cge-home-hero .cge-intro > :last-child{
    justify-self: center !important;
  }

  .cge-home-hero .cge-intro > :last-child img{
    width: min(240px,100%) !important;
  }
}

@media (max-width: 1024px) and (min-width: 768px){
  .cge-home-hero .cge-intro__image img{
    width: min(320px, 100%) !important;
    max-width: 320px !important;
  }
}

/* Tablet: push hero text down */
@media (max-width: 1024px){
  .cge-home-hero .cge-hero .cge-hero__content{
    bottom: -2px !important;
  }
}

/* Mobile: push hero text down */
@media (max-width: 767px){
  .cge-home-hero .cge-hero .cge-hero__content{
    bottom: -2px !important;
  }
}
@media (max-width: 1024px){
  .cge-home-hero .cge-hero .cge-hero__content{
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}
/* =========================================================
   Home hero: add left breathing room to circled text block
   (kicker, title, and intro text)
   Put this at the END of your CSS.
   ========================================================= */

.cge-home-hero{
  --cge-hero-left-pad: 32px; /* desktop: adjust 24–48px if you want */
}

/* HERO headings (left side) */
.cge-hero__kicker .elementor-heading-title,
.cge-hero__title  .elementor-heading-title{
  padding-left: var(--cge-hero-left-pad, 32px) !important;
}

/* INTRO left column text (circled paragraphs) */
.cge-intro__text,
.cge-intro__text .elementor-widget-text-editor{
  padding-left: var(--cge-hero-left-pad, 32px) !important;
}

/* Responsive tweaks */
@media (max-width: 1024px){
  .cge-home-hero{ --cge-hero-left-pad: 22px; }
}
@media (max-width: 767px){
  .cge-home-hero{ --cge-hero-left-pad: 18px; }
}

/* =========================================================
   EXTRA LEFT SPACE for the circled intro paragraph text
   (put this at the END so it overrides earlier resets)
   ========================================================= */

.cge-home-hero{
  --cge-hero-left-pad: 32px; /* desktop */
}

/* Keep heading spacing (if you already added this, keep it) */
.cge-hero__kicker .elementor-heading-title,
.cge-hero__title  .elementor-heading-title{
  padding-left: var(--cge-hero-left-pad) !important;
}

/* ✅ Add spacing to the circled intro paragraphs */
.cge-home-hero .cge-intro .elementor-widget-text-editor{
  padding-left: var(--cge-hero-left-pad) !important;
}

/* Responsive */
@media (max-width: 1024px){
  .cge-home-hero{ --cge-hero-left-pad: 22px; }
}
@media (max-width: 767px){
  .cge-home-hero{ --cge-hero-left-pad: 18px; }
}