/*
 * Responsive layer for the Framer export.
 * Framer only shipped a desktop layout (1200px+). These rules adapt it for:
 *   tablet  810px – 1199px
 *   mobile  ≤ 809px
 * Selectors are prefixed with `body` so they outrank Framer's own class rules.
 * Page scopes: home .framer-jFaUX · whoweare .framer-pchKT · whatwedo .framer-KFNn4
 *              program .framer-vkNGp · membership .framer-2WF0b
 */

/* ───────────────────────── Global ───────────────────────── */

@media (max-width: 1199.98px) {
  /* Framer pins the home root to 390px below 1200px. */
  body [data-framer-root] {
    width: 100% !important;
  }

  /* Section title rows ("WHAT WE DO ────") */
  body [data-framer-name="LinerContainer"] {
    width: calc(100% - 48px) !important;
  }

  /* Header: logo stays, links move into the menu button (custom.js). */
  body [data-framer-name="HeaderContainer"] > [class$="-container"],
  body [data-framer-name="HeaderContainer"] > div > [class$="-container"] {
    width: calc(100% - 48px) !important;
    max-width: 1050px;
  }
  body .framer-wCI2H.framer-1gh0mg6 {
    width: 100% !important;
    padding: 0;
  }
  body .framer-wCI2H .framer-17o79gs,
  body .framer-wCI2H .framer-150nmuw,
  body .framer-wCI2H .framer-1lje70z-container {
    display: none !important;
  }
}

@media (max-width: 809.98px) {
  body [data-framer-name="LinerContainer"] {
    width: calc(100% - 40px) !important;
  }
  body [data-framer-name="HeaderContainer"] > [class$="-container"],
  body [data-framer-name="HeaderContainer"] > div > [class$="-container"] {
    width: calc(100% - 40px) !important;
  }

  /* Type scale: Framer sets sizes inline, so match on the inline value. */
  body [style*="--framer-font-size:64px"], body [style*="--framer-font-size: 64px"],
  body [style*="--framer-font-size:60px"], body [style*="--framer-font-size: 60px"],
  body [style*="--framer-font-size:56px"], body [style*="--framer-font-size: 56px"],
  body [style*="--framer-font-size:52px"], body [style*="--framer-font-size: 52px"],
  body [style*="--framer-font-size:48px"], body [style*="--framer-font-size: 48px"] {
    --framer-font-size: 30px !important;
  }
  body [style*="--framer-font-size:44px"], body [style*="--framer-font-size: 44px"],
  body [style*="--framer-font-size:40px"], body [style*="--framer-font-size: 40px"],
  body [style*="--framer-font-size:36px"], body [style*="--framer-font-size: 36px"] {
    --framer-font-size: 27px !important;
  }
  body [style*="--framer-font-size:32px"], body [style*="--framer-font-size: 32px"] {
    --framer-font-size: 25px !important;
  }
  body [style*="--framer-font-size:28px"], body [style*="--framer-font-size: 28px"] {
    --framer-font-size: 22px !important;
  }
  body [style*="--framer-font-size:24px"], body [style*="--framer-font-size: 24px"] {
    --framer-font-size: 19px !important;
  }
}

/* Header/footer links get their URLs from custom.js; keep Framer's look. */
a.framer-MZyTs,
a.framer-y6tsK,
a.framer-MZyTs:hover,
a.framer-y6tsK:hover {
  color: inherit;
  text-decoration: none;
}

/* "Program" link added next to Framer's nav pills; mirrors their look. */
.phrc-nav-link {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 32px;
  padding: 4px 12px;
  border-radius: 999px;
  font-family: "GIP Light", "GIP Light Placeholder", sans-serif;
  font-size: 18px;
  font-weight: 300;
  letter-spacing: -0.04em;
  line-height: 1.2;
  white-space: nowrap;
  color: #000;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.phrc-nav-link:hover {
  background-color: rgba(0, 200, 179, 0.1);
}
.framer-luzdb4 .phrc-nav-link {
  color: #fff;
}

/* ───────────────────────── Mobile menu (markup from custom.js) ───────────────────────── */

.phrc-menu-button,
.phrc-menu {
  display: none;
}
@media (max-width: 1199.98px) {
  .phrc-menu-button {
    position: absolute;
    top: 28px;
    right: 24px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
    cursor: pointer;
  }
  .phrc-menu-button span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: #4e3566;
    transition: transform 0.3s ease, opacity 0.2s ease;
  }
  .phrc-menu-open .phrc-menu-button {
    position: fixed;
  }
  .phrc-menu-open .phrc-menu-button span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .phrc-menu-open .phrc-menu-button span:nth-child(2) { opacity: 0; }
  .phrc-menu-open .phrc-menu-button span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .phrc-menu {
    position: fixed;
    inset: 0;
    z-index: 999;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 96px 32px 48px;
    background: #4e3566;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0s linear 0.3s;
  }
  .phrc-menu-open .phrc-menu {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease;
  }
  .phrc-menu a {
    font-family: "GIP Medium", sans-serif;
    font-size: 32px;
    line-height: 1.3;
    color: #fff;
    text-decoration: none;
    transform: translateY(12px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
  }
  .phrc-menu-open .phrc-menu a {
    transform: none;
    opacity: 1;
  }
  .phrc-menu-open .phrc-menu a:nth-child(2) { transition-delay: 0.05s; }
  .phrc-menu-open .phrc-menu a:nth-child(3) { transition-delay: 0.1s; }
  .phrc-menu-open .phrc-menu a:nth-child(4) { transition-delay: 0.15s; }
  .phrc-menu-open .phrc-menu a:nth-child(5) { transition-delay: 0.2s; }
  .phrc-menu a[aria-current="page"] {
    color: #55d9cc;
  }
  .phrc-menu a.phrc-menu-cta {
    align-self: flex-start;
    margin-top: 24px;
    padding: 12px 28px;
    border-radius: 8px;
    background: #00c8b3;
    font-size: 18px;
  }
  .phrc-menu-open {
    overflow: hidden;
  }
}
@media (max-width: 809.98px) {
  .phrc-menu-button { top: 26px; right: 20px; }
}

/* ───────────────────────── Footer (shared component .framer-Nofkf) ───────────────────────── */

@media (max-width: 1199.98px) {
  body [data-framer-name="FooterContainer"] > [class$="-container"],
  body [data-framer-name="FooterContainer"] > div > [class$="-container"] {
    width: calc(100% - 48px) !important;
    max-width: 1000px;
  }
  body .framer-Nofkf.framer-o9r33x {
    width: 100% !important;
  }
}
@media (max-width: 809.98px) {
  body [data-framer-name="FooterContainer"] {
    padding: 64px 0 72px !important;
  }
  body [data-framer-name="FooterContainer"] > [class$="-container"],
  body [data-framer-name="FooterContainer"] > div > [class$="-container"] {
    width: calc(100% - 40px) !important;
  }
  body .framer-Nofkf.framer-o9r33x {
    align-items: flex-start;
    gap: 36px;
    padding: 0;
  }
  body .framer-Nofkf .framer-cxfo4b,
  body .framer-Nofkf .framer-nsou2y {
    flex-direction: column;
    flex: none;
    gap: 32px;
    width: 100%;
  }
  body .framer-Nofkf .framer-uvl1sx {
    flex-direction: column;
    gap: 20px;
    width: 100%;
  }
  body .framer-Nofkf .framer-vxmlul {
    zoom: 0.7;
  }
  body .framer-Nofkf .framer-1wkyduq,
  body .framer-Nofkf .framer-74168m {
    width: 100%;
    align-items: flex-start;
  }
  body .framer-Nofkf .framer-74168m .framer-text {
    --framer-text-alignment: left !important;
  }
  body .framer-Nofkf .framer-16irzqm {
    justify-content: flex-start;
  }
  body .framer-Nofkf .framer-1ihokr9 {
    align-items: flex-start;
  }
}

/* Who we are hero title: Framer left-aligns the 714px title inside a 604px frame, pushing it
   55px right of centre at every width. Centre it in its frame instead. */
body .framer-pchKT .framer-ts0s3h {
  align-items: center;
}

/* ───────────────────────── Page heroes (who we are / what we do / program) ─────────────────────────
   Framer positions the title at top:30–39% and the button at bottom:100px of a vh-tall box, so on
   short screens they collide and on tall ones they drift apart. Below 1200px (or on short screens)
   the hero flows with its content instead; the button still sits on the curved edge, which is
   drawn 125px above the hero's bottom. */

@media (max-width: 1199.98px), (max-height: 620px) {
  body .framer-pchKT .framer-164af5r,
  body .framer-KFNn4 .framer-1onx72f,
  body .framer-vkNGp .framer-o5sa52 {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: auto;
    padding: 120px 24px 100px;
  }
  body .framer-pchKT .framer-1uy5t68,
  body .framer-KFNn4 .framer-1e1ul77,
  body .framer-vkNGp .framer-1rftrke {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    transform: none;
  }
  body .framer-pchKT .framer-1uy5t68 {
    gap: 32px;
  }
  body .framer-pchKT .framer-7qasd5-container,
  body .framer-KFNn4 .framer-w4qh8q-container,
  body .framer-vkNGp .framer-1e5wfkz-container {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    margin-top: 96px;
    transform: none !important;
  }
}

@media (max-width: 809.98px) {
  body .framer-pchKT .framer-164af5r,
  body .framer-KFNn4 .framer-1onx72f,
  body .framer-vkNGp .framer-o5sa52 {
    padding: 56px 20px 100px;
  }
  body .framer-pchKT .framer-1uy5t68 {
    gap: 20px;
  }
  body .framer-pchKT .framer-7qasd5-container,
  body .framer-KFNn4 .framer-w4qh8q-container,
  body .framer-vkNGp .framer-1e5wfkz-container {
    margin-top: 72px;
  }
}

@media (max-height: 620px) and (min-width: 810px) {
  body .framer-pchKT .framer-164af5r,
  body .framer-KFNn4 .framer-1onx72f,
  body .framer-vkNGp .framer-o5sa52 {
    padding-top: 40px;
  }
  body .framer-pchKT .framer-7qasd5-container,
  body .framer-KFNn4 .framer-w4qh8q-container,
  body .framer-vkNGp .framer-1e5wfkz-container {
    margin-top: 56px;
  }
  /* Landscape phones: smaller hero type so the button stays on screen */
  body .framer-pchKT .framer-164af5r .framer-text,
  body .framer-KFNn4 .framer-1onx72f .framer-text,
  body .framer-vkNGp .framer-o5sa52 .framer-text {
    font-size: calc(var(--framer-font-size, 16px) * 0.72) !important;
  }
  body .framer-pchKT .framer-1uy5t68 {
    gap: 16px;
  }
  body .framer-KFNn4 .framer-1e1ul77,
  body .framer-vkNGp .framer-1rftrke {
    gap: 12px;
  }
}

/* ───────────────────────── Home ───────────────────────── */

@media (max-width: 1199.98px) {
  body .framer-jFaUX .framer-frsfq7,
  body .framer-jFaUX .framer-1ldx1vq {
    width: calc(100% - 48px);
  }
  body .framer-jFaUX .framer-ewfdwz,
  body .framer-jFaUX .framer-eu59n8,
  body .framer-jFaUX .framer-sow7o5,
  body .framer-jFaUX .framer-1croknf {
    width: 100%;
    height: auto;
    padding: 96px 0;
  }
  body .framer-jFaUX .framer-1ft8m9d {
    width: calc(100% - 48px);
    gap: 32px;
  }
  body .framer-jFaUX .framer-8ysceg {
    flex: 1 1 0;
    width: auto;
  }
  body .framer-jFaUX .framer-8ysceg [data-framer-component-type="RichTextContainer"],
  body .framer-jFaUX .framer-1aqkd1y {
    width: 100%;
  }
  body .framer-jFaUX .framer-2rbq2d {
    flex: 1 1 0;
    width: auto;
  }
  body .framer-jFaUX .framer-9okbln {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  body .framer-jFaUX .framer-5vsc2p,
  body .framer-jFaUX .framer-qrhani,
  body .framer-jFaUX .framer-1dctwmd {
    width: calc(100% - 48px);
  }
  body .framer-jFaUX .framer-qrhani {
    flex-wrap: wrap;
    row-gap: 48px;
  }
  body .framer-jFaUX .framer-qrhani > div > div {
    flex: 0 0 calc(50% - 8px) !important;
    width: auto !important;
  }
  body .framer-jFaUX .framer-yewb4z {
    width: min(780px, calc(100vw - 48px));
  }
  body .framer-jFaUX .framer-1aek2qr {
    width: min(780px, calc(100vw - 48px));
  }
  body .framer-jFaUX .framer-ysaaro,
  body .framer-jFaUX .framer-19homm8 {
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    row-gap: 28px;
  }
}

@media (max-width: 809.98px) {
  /* Hero: title → button → photo → cards, stacked */
  body .framer-jFaUX .framer-hnpyg3 {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: auto;
    padding-top: 116px;
  }
  body .framer-jFaUX .framer-1owt08f {
    display: none;
  }
  body .framer-jFaUX .framer-frsfq7 {
    position: relative;
    top: auto;
    left: auto;
    order: 1;
    width: calc(100% - 40px);
    align-items: center;
    gap: 16px;
    transform: none;
  }
  body .framer-jFaUX .framer-frsfq7 [data-framer-component-type="RichTextContainer"] {
    width: 100%;
  }
  body .framer-jFaUX .framer-frsfq7 .framer-text {
    --framer-text-alignment: center !important;
  }
  body .framer-jFaUX .framer-1m2gpgt-container {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    order: 2;
    margin: 28px 0 36px;
    transform: none !important;
  }
  body .framer-jFaUX .framer-1amrjf4 {
    position: relative;
    order: 3;
    width: 100%;
    height: 300px;
  }
  body .framer-jFaUX .framer-1h5wnhc {
    width: 100%;
    height: 100%;
  }
  body .framer-jFaUX .framer-1ldx1vq {
    position: relative;
    bottom: auto;
    left: auto;
    order: 4;
    flex-direction: column;
    gap: 28px;
    width: calc(100% - 32px);
    margin-top: -72px;
    padding: 32px 20px;
    border-radius: 32px 32px 0 0;
    transform: none;
  }
  body .framer-jFaUX .framer-1lhmp6b,
  body .framer-jFaUX .framer-1coh44g,
  body .framer-jFaUX .framer-q2rikv {
    flex: none;
    width: 100%;
  }
  body .framer-jFaUX .framer-1ldx1vq [data-framer-component-type="RichTextContainer"] {
    width: 100%;
    max-width: 320px;
  }

  body .framer-jFaUX .framer-ewfdwz,
  body .framer-jFaUX .framer-eu59n8,
  body .framer-jFaUX .framer-1xflyau,
  body .framer-jFaUX .framer-sow7o5,
  body .framer-jFaUX .framer-1croknf {
    gap: 40px;
    padding: 72px 0;
  }

  /* What we do: text, then photo */
  body .framer-jFaUX .framer-1ft8m9d {
    flex-direction: column;
    width: calc(100% - 40px);
  }
  body .framer-jFaUX .framer-8ysceg {
    flex: none;
    width: 100%;
  }
  body .framer-jFaUX .framer-tm4k0z,
  body .framer-jFaUX .framer-1psv1xs,
  body .framer-jFaUX .framer-1jblbyz,
  body .framer-jFaUX .framer-1coeq82,
  body .framer-jFaUX .framer-nz95fh {
    justify-content: flex-start;
    gap: 6px;
    width: auto;
  }
  body .framer-jFaUX .framer-2rbq2d {
    flex: none;
    width: 100%;
    height: 300px;
  }

  /* Quick facts: two-column grid */
  body .framer-jFaUX .framer-5vsc2p {
    width: calc(100% - 40px);
  }
  body .framer-jFaUX .framer-1kaku8o {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
  }
  body .framer-jFaUX .framer-15lz7dw,
  body .framer-jFaUX .framer-elbv8c {
    display: contents;
  }
  body .framer-jFaUX .framer-41ltt9,
  body .framer-jFaUX .framer-r0873d {
    display: none;
  }
  body .framer-jFaUX .framer-k2b4ui,
  body .framer-jFaUX .framer-lbhxgl,
  body .framer-jFaUX .framer-123h1sw,
  body .framer-jFaUX .framer-f908c8,
  body .framer-jFaUX .framer-6kz7w4 {
    width: auto;
    height: auto;
    min-height: 116px;
  }
  body .framer-jFaUX .framer-6kz7w4 {
    grid-column: 1 / -1;
  }
  body .framer-jFaUX .framer-1kaku8o [data-framer-component-type="RichTextContainer"] {
    white-space: pre-wrap;
  }
  body .framer-jFaUX .framer-1kaku8o [data-framer-name="FactContainer"],
  body .framer-jFaUX .framer-1kaku8o [data-framer-name="FactContainer"] > div {
    width: 100%;
    flex-wrap: wrap;
  }
  body .framer-jFaUX .framer-1kaku8o [data-framer-component-type="RichTextContainer"] {
    width: auto;
    max-width: 100%;
  }

  /* Research projects: two per row, one on narrow phones */
  body .framer-jFaUX .framer-qrhani {
    width: calc(100% - 40px);
    row-gap: 40px;
  }

  /* Charity */
  body .framer-jFaUX .framer-4i28l7 {
    width: 100%;
    white-space: pre-wrap;
  }
  body .framer-jFaUX .framer-1aek2qr,
  body .framer-jFaUX .framer-yewb4z,
  body .framer-jFaUX .framer-17biebt [data-framer-component-type="RichTextContainer"] {
    width: calc(100vw - 40px);
  }

  /* Partners */
  body .framer-jFaUX .framer-1dctwmd {
    width: calc(100% - 40px);
    gap: 28px;
  }
  body .framer-jFaUX .framer-ysaaro,
  body .framer-jFaUX .framer-19homm8 {
    gap: 20px 24px;
  }
  body .framer-jFaUX .framer-ysaaro > *,
  body .framer-jFaUX .framer-19homm8 > * {
    zoom: 0.62;
  }
}

@media (max-width: 599.98px) {
  body .framer-jFaUX .framer-qrhani > div > div {
    flex: 0 0 100% !important;
  }
}

/* ───────────────────────── Who we are ───────────────────────── */

@media (max-width: 1199.98px) {
  body .framer-pchKT .framer-1kmrtcj,
  body .framer-pchKT .framer-1gn7ijl,
  body .framer-pchKT .framer-1o3b0uj {
    width: calc(100% - 48px);
  }
  body .framer-pchKT .framer-856iv4 {
    width: calc(100vw - 48px);
    max-width: 1032px;
  }
  body .framer-pchKT .framer-dsek6o,
  body .framer-pchKT .framer-i0y3b8,
  body .framer-pchKT .framer-1xxf25 {
    flex: 1 1 0;
    width: auto;
  }
  body .framer-pchKT .framer-856iv4 [data-framer-component-type="RichTextContainer"] {
    width: 100%;
  }
  body .framer-pchKT .framer-ge1r5z {
    flex-wrap: wrap;
  }
  body .framer-pchKT .framer-1cbdmx3,
  body .framer-pchKT .framer-rqh55h {
    width: calc(100% - 48px);
  }
  body .framer-pchKT .framer-e3b5d1 {
    height: auto;
    padding: 96px 0;
  }
  body .framer-pchKT .framer-1xijcdu,
  body .framer-pchKT .framer-1eic2rp,
  body .framer-pchKT .framer-1dlpx7k {
    width: 100%;
  }
  body .framer-pchKT .framer-xzfzja {
    width: calc(100% - 48px);
  }
}

/* Our impact: the shield graphic needs ~1000px next to the list */
@media (max-width: 999.98px) {
  body .framer-pchKT .framer-1sjk5yc {
    height: auto;
    padding: 96px 0;
  }
  body .framer-pchKT .framer-xzfzja {
    flex-direction: column;
  }
  body .framer-pchKT .framer-i9e7sa {
    display: none;
  }
  body .framer-pchKT .framer-1fpo3cj {
    flex: none;
    width: 100%;
    max-width: 640px;
    height: auto;
    gap: 28px;
  }
  body .framer-pchKT .framer-1fpo3cj > div {
    padding-left: 18px;
    border-left: 2px solid #4e3566;
  }
}

@media (max-width: 809.98px) {
  body .framer-pchKT .framer-1kmrtcj,
  body .framer-pchKT .framer-h57ll0,
  body .framer-pchKT .framer-cqqsvg,
  body .framer-pchKT .framer-1gn7ijl,
  body .framer-pchKT .framer-1o3b0uj {
    width: calc(100% - 40px);
  }

  /* Hero */
  body .framer-pchKT .framer-1uy5t68 {
    gap: 24px;
    width: calc(100% - 40px);
  }
  body .framer-pchKT .framer-ts0s3h,
  body .framer-pchKT .framer-1azucw0,
  body .framer-pchKT .framer-ujv3ty {
    width: 100%;
    white-space: pre-wrap;
  }
  body .framer-pchKT .framer-1azucw0 .framer-text {
    --framer-text-alignment: center !important;
  }

  /* Vision / mission / value */
  body .framer-pchKT .framer-kfnoi1 {
    height: auto;
    gap: 40px;
    padding: 72px 0;
  }
  body .framer-pchKT .framer-jj7owo {
    width: calc(100% - 40px);
  }
  body .framer-pchKT .framer-856iv4 {
    flex-direction: column;
    gap: 32px;
    width: 100%;
  }
  body .framer-pchKT .framer-dsek6o,
  body .framer-pchKT .framer-i0y3b8,
  body .framer-pchKT .framer-1xxf25 {
    flex: none;
    width: 100%;
  }

  /* Organization structure */
  body .framer-pchKT .framer-1ow5hnc {
    height: auto;
    gap: 40px;
    padding: 72px 0;
  }
  body .framer-pchKT .framer-msa94w {
    display: none;
  }
  body .framer-pchKT .framer-n5jdzs {
    gap: 24px;
    width: calc(100% - 40px);
  }
  body .framer-pchKT .framer-n5jdzs > div:not([data-framer-name^="Ellipse"]) {
    width: 100%;
  }
  body .framer-pchKT .framer-n5jdzs [data-framer-component-type="RichTextContainer"] {
    width: 100%;
    white-space: pre-wrap;
  }
  body .framer-pchKT .framer-n5jdzs .framer-text {
    --framer-text-alignment: center !important;
  }

  /* Founder */
  body .framer-pchKT .framer-e3b5d1 {
    gap: 40px;
    padding: 72px 0;
  }
  body .framer-pchKT .framer-1cbdmx3 {
    flex-direction: column;
    align-items: center;
    gap: 32px;
    width: calc(100% - 40px);
  }
  body .framer-pchKT .framer-1p85qmi {
    width: min(320px, 100%);
    height: auto;
  }
  body .framer-pchKT .framer-1f0jbxs {
    flex: none;
    width: 100%;
  }
  body .framer-pchKT .framer-ge1r5z {
    flex-wrap: wrap;
    gap: 4px 18px;
  }
  body .framer-pchKT .framer-ge1r5z > [data-framer-name^="Ellipse"] {
    display: none;
  }

  /* Our impact */
  body .framer-pchKT .framer-1sjk5yc {
    gap: 40px;
    padding: 72px 0;
  }
  body .framer-pchKT .framer-xzfzja {
    width: calc(100% - 40px);
  }

  /* Consultant team */
  body .framer-pchKT .framer-1tid7ek {
    padding: 72px 0;
  }
  body .framer-pchKT .framer-rqh55h {
    gap: 64px;
    width: calc(100% - 40px);
  }
  body .framer-pchKT .framer-1chabd2 {
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }
  body .framer-pchKT .framer-1chabd2 > [class$="-container"] {
    flex: none;
    width: min(320px, 100%);
  }
  body .framer-pchKT .framer-1dlpx7k {
    height: auto;
  }
  body .framer-pchKT .framer-1dlpx7k .framer-text {
    --framer-font-size: 18px !important;
  }
}

/* ───────────────────────── What we do ───────────────────────── */

@media (max-width: 1199.98px) {
  body .framer-KFNn4 .framer-pewyk0,
  body .framer-KFNn4 .framer-152zinz,
  body .framer-KFNn4 .framer-f036pf,
  body .framer-KFNn4 .framer-171ybg7,
  body .framer-KFNn4 .framer-736ay1,
  body .framer-KFNn4 .framer-6qtmnx {
    padding-left: 24px;
    padding-right: 24px;
  }
  body .framer-KFNn4 [data-framer-name="LinerContainer"] {
    width: 100% !important;
  }
  body .framer-KFNn4 .framer-1vnkgwm {
    width: min(604px, calc(100% - 48px));
  }
  body .framer-KFNn4 .framer-1qj1j4 {
    flex-wrap: wrap;
    row-gap: 48px;
  }
  body .framer-KFNn4 .framer-1qj1j4 > [class$="-container"] {
    flex: 0 0 calc(50% - 8px);
    width: auto;
    height: auto;
  }
  /* Program tabs (Health Education / Advocacy) */
  body .framer-KFNn4 .framer-1qxv5z8-container,
  body .framer-KFNn4 .framer-s8sy3h-container,
  body .framer-kIH14.framer-2joml4 {
    width: 100% !important;
  }
  body .framer-kIH14 .framer-14islod {
    flex-wrap: wrap;
  }
  body .framer-kIH14 .framer-1ikqob1 > [class$="-container"] {
    width: 100% !important;
    max-width: 600px;
    height: auto !important;
    aspect-ratio: 16 / 9;
  }
  body .framer-kIH14 .framer-1ikqob1 > [class$="-container"] > * {
    width: 100%;
    height: 100%;
  }
}

@media (max-width: 809.98px) {
  body .framer-KFNn4 .framer-pewyk0,
  body .framer-KFNn4 .framer-152zinz,
  body .framer-KFNn4 .framer-f036pf,
  body .framer-KFNn4 .framer-171ybg7,
  body .framer-KFNn4 .framer-736ay1 {
    gap: 40px;
    padding: 64px 20px;
  }
  body .framer-KFNn4 .framer-6qtmnx {
    padding: 0 20px 64px;
  }
  body .framer-KFNn4 .framer-1vnkgwm {
    width: calc(100% - 40px);
    align-items: center;
  }
  body .framer-KFNn4 .framer-1d95q1w,
  body .framer-KFNn4 .framer-14arsdd {
    width: 100%;
    white-space: pre-wrap;
  }
  body .framer-KFNn4 .framer-1d95q1w .framer-text,
  body .framer-KFNn4 .framer-14arsdd .framer-text {
    --framer-text-alignment: center !important;
  }
  /* Long section titles wrap next to their rule line */
  body .framer-KFNn4 [data-framer-name="LinerContainer"] > [data-framer-component-type="RichTextContainer"] {
    flex: 0 1 auto;
    white-space: pre-wrap;
  }
  body .framer-KFNn4 [data-framer-name="LinerContainer"] > [data-framer-name="Line"] {
    flex: 1 0 24px;
  }
  body .framer-kIH14 .framer-14islod {
    gap: 8px;
  }
  /* Journal: cover above the text */
  body .framer-KFNn4 .framer-w5dao3 {
    flex-direction: column;
    gap: 24px;
  }
  body .framer-KFNn4 .framer-1ly0qy0 {
    flex: none;
    width: 100%;
  }
}

@media (max-width: 599.98px) {
  body .framer-KFNn4 .framer-1qj1j4 > [class$="-container"] {
    flex: 0 0 100%;
  }
}

/* ───────────────────────── Program ───────────────────────── */

@media (max-width: 1199.98px) {
  body .framer-vkNGp .framer-1yh1rtj {
    padding-left: 24px;
    padding-right: 24px;
  }
  body .framer-vkNGp .framer-i53b99 {
    width: min(604px, calc(100% - 48px));
  }
}
@media (max-width: 809.98px) {
  body .framer-vkNGp .framer-1yh1rtj {
    padding: 64px 20px 96px;
  }
  body .framer-vkNGp .framer-i53b99 {
    width: calc(100% - 40px);
    align-items: center;
  }
  body .framer-vkNGp .framer-1lq8f7u,
  body .framer-vkNGp .framer-th9u0z {
    width: 100%;
    white-space: pre-wrap;
  }
  body .framer-vkNGp .framer-1lq8f7u .framer-text,
  body .framer-vkNGp .framer-th9u0z .framer-text {
    --framer-text-alignment: center !important;
  }
}

/* ───────────────────────── Membership ───────────────────────── */

@media (max-width: 1199.98px) {
  body .framer-2WF0b .framer-1hao4to {
    padding-left: 24px;
    padding-right: 24px;
  }
  body .framer-2WF0b [data-framer-name="LinerContainer"] {
    width: 100% !important;
  }
  /* Flyer image: size the box to the picture instead of a fixed 1090px */
  body .framer-2WF0b .framer-1jgtq46 {
    height: auto;
    aspect-ratio: 2700 / 1532;
  }
}
@media (max-width: 809.98px) {
  body .framer-2WF0b .framer-1hao4to {
    padding: 64px 20px 40px;
  }
}

/* ───────────────────────── Language switch (custom.js) ───────────────────────── */

/* Hide the page until Mongolian text is in place, so English doesn't flash first. */
.phrc-i18n-pending body {
  opacity: 0;
}
body {
  transition: opacity 0.15s ease;
}
/* Framer's "Mng" pill in the header toggles the language */
.framer-1nm2jvv {
  cursor: pointer;
}
/* In Mongolian the pill reads "Eng", so show the UK flag */
.phrc-lang-mn .framer-1oj7uo4 img {
  opacity: 0;
}
.phrc-lang-mn .framer-1oj7uo4 {
  border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3CclipPath id='c'%3E%3Ccircle cx='30' cy='30' r='30'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23c)'%3E%3Cpath d='M-15 0h90v60h-90z' fill='%23012169'/%3E%3Cpath d='M-15 0l90 60M75 0l-90 60' stroke='%23fff' stroke-width='12'/%3E%3Cpath d='M-15 0l90 60M75 0l-90 60' stroke='%23C8102E' stroke-width='5'/%3E%3Cpath d='M30 0v60M-15 30h90' stroke='%23fff' stroke-width='18'/%3E%3Cpath d='M30 0v60M-15 30h90' stroke='%23C8102E' stroke-width='10'/%3E%3C/g%3E%3C/svg%3E")
    center / cover no-repeat;
}
.phrc-menu-lang {
  display: none;
}
@media (max-width: 1199.98px) {
  .phrc-menu-lang {
    display: block;
    align-self: flex-start;
    margin-top: 32px;
    padding: 8px 0;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    background: none;
    font-family: "GIP Medium", sans-serif;
    font-size: 18px;
    color: #fff;
    cursor: pointer;
  }
}

/* Mongolian text runs longer than the English it replaces. */
body .framer-KFNn4 .framer-1vnkgwm,
body .framer-vkNGp .framer-i53b99 {
  align-items: center;
}
body .framer-KFNn4 .framer-1d95q1w .framer-text,
body .framer-vkNGp .framer-1lq8f7u .framer-text {
  --framer-text-alignment: center !important;
}
.phrc-lang-mn body .framer-Nofkf .framer-yyl0x8,
.phrc-lang-mn body .framer-Nofkf .framer-2y9jme {
  width: auto;
  white-space: nowrap;
}
.phrc-lang-mn body .framer-pchKT .framer-ge1r5z,
.phrc-lang-mn body .framer-kIH14 .framer-14islod {
  flex-wrap: wrap;
}
@media (max-width: 1199.98px) {
  .phrc-lang-mn body .framer-jFaUX .framer-4i28l7 {
    width: 100%;
    white-space: pre-wrap;
  }
}
/* Home hero: title, text and the absolutely placed button must not collide */
.phrc-lang-mn body .framer-jFaUX .framer-frsfq7 {
  gap: 22px;
  width: min(1000px, calc(100% - 48px));
}
.phrc-lang-mn body .framer-jFaUX .framer-kr587x .framer-text {
  --framer-font-size: 40px !important;
}
@media (min-width: 1200px) {
  .phrc-lang-mn body .framer-jFaUX .framer-1m2gpgt-container {
    top: 340px;
  }
}
@media (min-width: 810px) and (max-width: 1199.98px) {
  body .framer-jFaUX .framer-1m2gpgt-container {
    top: 340px !important;
  }
}
@media (min-width: 810px) and (max-width: 1199.98px) {
  .phrc-lang-mn body .framer-jFaUX .framer-kr587x .framer-text {
    --framer-font-size: 32px !important;
  }
}

/* ───────────────────────── Home → What we do accordion (custom.js) ─────────────────────────
   First item open by default, the rest closed; data-phrc-acc takes over once clicked.
   Only applies when JS runs (.phrc-js), so without it everything stays expanded. */

.phrc-js body .framer-jFaUX :is(.framer-tm4k0z, .framer-1psv1xs, .framer-1jblbyz, .framer-1coeq82, .framer-nz95fh) {
  cursor: pointer;
  user-select: none;
}
.phrc-js body .framer-jFaUX :is(.framer-tm4k0z, .framer-1psv1xs, .framer-1jblbyz, .framer-1coeq82, .framer-nz95fh):focus-visible {
  outline: 2px solid #00c8b3;
  outline-offset: 4px;
  border-radius: 4px;
}
.phrc-js body .framer-jFaUX :is(.framer-19vc5jv, .framer-5c8o9m, .framer-1mynzu7, .framer-1pvawli, .framer-k4pzr3) {
  overflow: hidden;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease, margin-top 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.phrc-js body .framer-jFaUX :is(.framer-5c8o9m, .framer-1mynzu7, .framer-1pvawli, .framer-k4pzr3):not([data-phrc-acc="open"]),
.phrc-js body .framer-jFaUX .framer-19vc5jv[data-phrc-acc="closed"] {
  max-height: 0;
  opacity: 0;
}
/* keeps the gap between closed titles even (16px) */
.phrc-js body .framer-jFaUX .framer-19vc5jv[data-phrc-acc="closed"] {
  margin-top: -8px;
}

/* Title weight: open = bold, closed = regular (Framer's original look for the first two states) */
.phrc-js body .framer-jFaUX :is(.framer-1psv1xs, .framer-1jblbyz, .framer-1coeq82, .framer-nz95fh)[data-phrc-acc="open"] .framer-text {
  --framer-font-family: "GIP Bold", "GIP Bold Placeholder", sans-serif !important;
  --framer-font-weight: 700 !important;
}
.phrc-js body .framer-jFaUX .framer-tm4k0z[data-phrc-acc="closed"] .framer-text {
  --framer-font-family: "GIP Regular", "GIP Regular Placeholder", sans-serif !important;
  --framer-font-weight: 400 !important;
}

/* Chevrons: the first icon points down, the others right */
.phrc-js body .framer-jFaUX :is(.framer-zylmet, .framer-1a1jyoa, .framer-11knml4, .framer-yr84dv, .framer-oszjib) {
  transition: transform 0.35s ease;
}
.phrc-js body .framer-jFaUX .framer-tm4k0z[data-phrc-acc="closed"] .framer-zylmet {
  transform: rotate(-90deg);
}
.phrc-js body .framer-jFaUX [data-phrc-acc="open"] :is(.framer-1a1jyoa, .framer-11knml4, .framer-yr84dv, .framer-oszjib) {
  transform: rotate(90deg);
}
@media (prefers-reduced-motion: reduce) {
  .phrc-js body .framer-jFaUX :is(.framer-19vc5jv, .framer-5c8o9m, .framer-1mynzu7, .framer-1pvawli, .framer-k4pzr3, .framer-zylmet, .framer-1a1jyoa, .framer-11knml4, .framer-yr84dv, .framer-oszjib) {
    transition: none;
  }
}

/* Footer: email icon next to Facebook / YouTube (added to the footer component) */
.phrc-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  color: #fff;
  transition: background-color 0.2s ease;
}
.phrc-social-link:hover {
  background-color: rgba(0, 0, 0, 0.06);
}
.phrc-social-link:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.phrc-social-link svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.phrc-mail-pop {
  position: fixed;
  z-index: 1001;
  display: flex;
  flex-direction: column;
  min-width: 200px;
  padding: 6px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
}
.phrc-mail-pop.is-open {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.phrc-mail-pop__head {
  padding: 8px 12px 6px;
  font-family: "GIP Medium", sans-serif;
  font-size: 13px;
  color: rgba(0, 0, 0, 0.5);
}
.phrc-mail-pop__item {
  display: block;
  padding: 10px 12px;
  border: 0;
  border-radius: 8px;
  background: none;
  font-family: "GIP Regular", sans-serif;
  font-size: 16px;
  text-align: left;
  color: #00655b;
  text-decoration: none;
  cursor: pointer;
}
.phrc-mail-pop__item:hover,
.phrc-mail-pop__item:focus-visible {
  background: rgba(0, 200, 179, 0.12);
  outline: none;
}

/* Footer bottom line: copyright + credit (added to the footer component) */
.phrc-footer-bottom {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px 24px;
  width: 100%;
  max-width: 1050px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  font-family: "GIP Regular", "GIP Regular Placeholder", sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.6);
}
.phrc-footer-copy {
  margin: 0;
}
.phrc-footer-credit {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.phrc-footer-credit:hover,
.phrc-footer-credit:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 809.98px) {
  .phrc-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    font-size: 13px;
  }
}
