/* ==========================================================
   About Us page – Menterra
   Accessible + responsive. Fonts: IvyPresto Text Semi Bd (headings), Soleil Light (text).
   ========================================================== */
.about-page {
  --abt-green: #0b5a43;
  --abt-green-dark: #07402f;
  --abt-cream: #f8f5ef;
  --abt-ink: #1f2a26;
  --abt-muted: #000;
  --abt-line: #000;
  --abt-focus: #0a4fd6;
  --abt-font-head: "IvyPresto Text Semi Bd", "IvyPresto Text", Georgia, "Times New Roman", serif;
  --abt-font-body: "soleillight", "Soleil Light", "Soleil", "Helvetica Neue", Arial, sans-serif;
  color: var(--abt-ink);
  background: #fff;
  font-family: var(--abt-font-body);
  font-synthesis: none;
}
.about-page:focus { outline: none; }
.about-page h1, .about-page h2, .about-page h3 { font-family: var(--abt-font-head); font-weight: normal; margin: 0; line-height: 1.25; }
.about-page p, .about-page a, .about-page li { font-family: var(--abt-font-body); font-weight: normal; }
.about-page p { line-height: 1.6; letter-spacing: .02em; margin: 0 0 1rem; }
.about-page img { max-width: 100%; height: auto; display: block; }
.about-page ul[role="list"], .about-page ol[role="list"] { list-style: none; margin: 0; padding: 0; }

.about-page a:focus-visible {
  outline: 3px solid var(--abt-focus);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #fff;
}
.about-page .headingSec h2 { font-size: clamp(2rem, 1.2rem + 1.8vw, 2.25rem); text-align: center; margin-bottom: 1.25rem; }

/* ---------- Our Story ---------- */
.ourStoryinfosec { max-width: 1400px; margin: 0 auto; padding: 3rem .75rem; }
.storySection { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 3rem; align-items: start; }
.storycontent h1 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin-bottom: 1rem; }
.storycontent p { font-size: 18px; }

/* timeline card: big circles, thick round green dots inside a row,
   pale dotted connector 2015 -> right edge -> back across -> left edge -> 2019 */
.storyImage {
  --cs: 76px;                       /* circle size */
  --dot: 4px;                       /* dotted line thickness */
  --pad: 1rem;                      /* how far the connector goes outside the circles */
  --drop: 60px;                     /* connector -> top of the second row of circles */
  --pale: #d8d4c9;
  background: var(--abt-cream);
  padding: 3rem 1rem 2.5rem;
}
.ourstoryMain { display: flex; flex-direction: column; }

.storyRow { position: relative; padding: 0 var(--pad); }
.ourStory {
  position: relative; display: grid; margin: 0; padding: 0; list-style: none;
  grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr));
}
.ourStoryBx { position: relative; z-index: 1; text-align: center; padding: 0 .75rem; }
.innerRound {
  width: var(--cs); height: var(--cs); margin: 0 auto;
  border-radius: 50%; background: var(--abt-green); color: #fff;
  display: grid; place-items: center;
}
.innerRound span { font-family: var(--abt-font-head); font-size: 1.0625rem; }
.ourStoryBx p { max-width: 215px; margin: 1.25rem auto 0; font-size: 1rem; line-height: 1.35; letter-spacing: .04em; color: var(--abt-ink); }

/* green dotted line through the circle centres */
.ourStory::before {
  content: ""; position: absolute; z-index: 0;
  top: calc(var(--cs) / 2 - var(--dot) / 2);
  left: calc(50% / var(--cols, 3)); right: calc(50% / var(--cols, 3));
  border-top: var(--dot) dotted var(--abt-green);
}

/* row 1: pale line continues right of the last circle, down, and back across under the text */
.storyRow--top { padding-bottom: 2.25rem; }
.storyRow--top .ourStory::after {
  content: ""; position: absolute; z-index: 0;
  top: calc(var(--cs) / 2 - var(--dot) / 2);
  left: calc(100% - 50% / var(--cols, 3)); right: calc(-1 * var(--pad));
  border-top: var(--dot) dotted var(--pale);
}
.storyRow--top::before {
  content: ""; position: absolute; z-index: 0; left: 0; right: 0; bottom: 0;
  top: calc(var(--cs) / 2 - var(--dot) / 2);
  border-right: var(--dot) dotted var(--pale);
  border-bottom: var(--dot) dotted var(--pale);
  border-bottom-right-radius: 10px;
}

/* row 2: pale line comes down on the left and turns right into the first circle */
.storyRow--bottom { padding-top: var(--drop); }
.storyRow--bottom::before {
  content: ""; position: absolute; z-index: 0; left: 0;
  top: calc(-1 * var(--dot));
  height: calc(var(--drop) + var(--cs) / 2 + var(--dot) * 1.5);
  border-left: var(--dot) dotted var(--pale);
}
.storyRow--bottom .ourStory::after {
  content: ""; position: absolute; z-index: 0;
  top: calc(var(--cs) / 2 - var(--dot) / 2);
  left: calc(-1 * var(--pad)); right: calc(100% - 50% / var(--cols, 3));
  border-top: var(--dot) dotted var(--pale);
}
/* only one row filled in -> no connector */
.storyRow--bottom:first-child { padding-top: 0; }
.storyRow--bottom:first-child::before, .storyRow--bottom:first-child .ourStory::after { content: none; }
.storyRow--top:last-child { padding-bottom: 0; }
.storyRow--top:last-child::before, .storyRow--top:last-child .ourStory::after { content: none; }

/* ---------- Our Vision ---------- */
.ourVisionSec { max-width: 1334px; margin: 0 auto; padding: 3rem .75rem; }
.ourVisionSec .headingSec { max-width: 1024px; margin: 0 auto 2rem; text-align: center; }
.ourVisionSec .headingSec p { font-size:18px; }

/* gallery – like the live site: top + bottom rule, thin vertical dividers, rule between the two rows
   of the side columns, smaller images with 56px gaps */
.about-page ul.imageBoxes[role="list"] {
  --gap: 56px; --rule: #b4b1a9;
  width: min(100%, 1024px); margin: 0 auto; box-sizing: border-box;
  display: grid; align-items: start;
  grid-template-columns: 1.29fr var(--gap) 1fr var(--gap) 1.28fr;
  padding: 28px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.imageBoxes::before, .imageBoxes::after {          /* vertical dividers, centred in the gaps */
  content: ""; align-self: stretch; justify-self: center; width: 1px; background: var(--rule);
  grid-row: 1 / 3;
}
.imageBoxes::before { grid-column: 2; }
.imageBoxes::after  { grid-column: 4; }
.imageMini { overflow: hidden; min-width: 0; }
.imageMini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.imageMini--1, .imageMini--4 {                      /* row 1: image, 28px, thin rule, 28px */
  grid-row: 1; overflow: visible; padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--rule);
}
.imageMini--2, .imageMini--5 { grid-row: 2; }
.imageMini--1, .imageMini--2 { grid-column: 1; }
.imageMini--3 { grid-column: 3; grid-row: 1 / 3; }
.imageMini--4, .imageMini--5 { grid-column: 5; }
.imageMini--1 img, .imageMini--2 img, .imageMini--4 img, .imageMini--5 img { aspect-ratio: 2.09 / 1; }
.imageMini--3 img { aspect-ratio: 324 / 435; }

/* ---------- Our Focus Sectors ---------- */
.focusAboutsec { background: var(--abt-cream); padding: 3rem .75rem; }
.focusAboutsec .innerContainer { max-width: 1320px; margin: 0 auto; }
.focusAboutsec .headingSec { margin-bottom: 2rem; }
.ourfocusContent { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ourfocusBox { padding: 0 1rem; text-align: center; }
.ourfocusBox + .ourfocusBox { border-left: 1px solid var(--abt-line); }
.ourfocusBox p { font-size: .875rem; line-height: 1.5; color: var(--abt-muted); }

.ourfocusCir {
  position: relative; width: min(100%, 290px); aspect-ratio: 1;
  margin: 0 auto 1.5rem; border-radius: 50%; overflow: hidden; background: #222;
}
.ourfocusImgBox, .ourfocusImgBox img { width: 100%; height: 100%; object-fit: cover; }
.ourfocusCir::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .35); }   /* keeps white text readable */
.ourfocusInfoBox {
  position: absolute; inset: 0; z-index: 1;
  display: flex; align-items: center; justify-content: center; padding: 1.5rem;
}
.ourfocusInfoBox h3 { color: #fff; font-size: clamp(1.25rem, 1rem + 1vw, 1.625rem); text-shadow: 0 1px 6px rgba(0, 0, 0, .5); }

/* ---------- What Makes Us Invest ---------- */
.investSection { max-width: 1240px; margin: 0 auto; padding: 3rem .75rem 4rem; }
.investSection .headingSec { max-width: 760px; margin: 0 auto 2rem; text-align: center; }
.investSection .headingSec p { font-size: 1.18rem; }

.investBoxesmain { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.investBoxes { padding: 2rem 1.25rem; text-align: center; display: flex; flex-direction: column; align-items: center; }
.investBoxes:nth-child(odd) { border-right: 1px solid var(--abt-line); }
.investBoxes:nth-child(-n+2) { border-bottom: 1px solid var(--abt-line); }
.investBoxes img { width: 140px; height: 140px; object-fit: contain; margin-bottom: 1rem; }
.investBoxes h3 { font-size: 20px; margin-bottom: .5rem; }
.investBoxes p { font-size: 16px; color: var(--abt-muted); max-width: 500px; margin: 0; }

.investCta { text-align: center; margin-top: 2rem; }
.ctaThree {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: .75rem 3rem;
  background: var(--abt-green); color: #fff; border: 2px solid var(--abt-green);
  border-radius: 4px; text-decoration: underline; text-underline-offset: 3px;
  transition: background-color .2s;
}
.ctaThree:hover { background: var(--abt-green-dark); border-color: var(--abt-green-dark); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .storySection { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 768px) {
  .ourfocusContent { grid-template-columns: 1fr; row-gap: 2.5rem; }
  .ourfocusBox + .ourfocusBox { border-left: 0; border-top: 1px solid var(--abt-line); padding-top: 2.5rem; }
  .investBoxesmain { grid-template-columns: 1fr; }
  .investBoxes:nth-child(odd) { border-right: 0; }
.investBoxes:not(:last-child) {
    border-bottom: 1px solid rgb(40 40 40 / 40%);
}
  .about-page ul.imageBoxes[role="list"] { grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px 0; }
  .imageBoxes::before, .imageBoxes::after { display: none; }
  .imageMini--1, .imageMini--2, .imageMini--3, .imageMini--4, .imageMini--5 { grid-column: auto; grid-row: auto; padding: 0; margin: 0; border: 0; }
  .imageMini--3 { grid-column: 1 / -1; }
  .imageMini img, .imageMini--1 img, .imageMini--2 img, .imageMini--4 img, .imageMini--5 img { aspect-ratio: 16 / 10; }
  .imageMini--3 img { aspect-ratio:auto; }
  /* timeline: vertical – circles left, text right, dotted green line between circles */
  .storyImage { --cs: 64px; padding: 2rem .875rem 2rem; }
  .storyRow, .storyRow--top, .storyRow--bottom { padding: 0; }
  .storyRow::before, .storyRow .ourStory::before, .storyRow .ourStory::after { content: none !important; }
  .ourStory { display: block; }
  .ourStoryBx {
    display: flex; align-items: flex-start; gap: 1rem; text-align: left;
    padding: 0 0 2rem;
  }
  .storyRow:last-child .ourStoryBx:last-child { padding-bottom: 0; }
  .innerRound { flex: 0 0 var(--cs); margin: 0; position: relative; z-index: 1; }
  .innerRound span { font-size: 1.125rem; font-weight: bold; }
  .ourStoryBx p {
    max-width: 277px;
    margin: 0;
    min-width: 215px;
    min-height: var(--cs);
    display: flex;
    align-items: center;
    font-size: 12px;
    line-height: 1.4;
}
.investSection .headingSec p {
    font-size: 14px!important;
}
.ourVisionSec .headingSec p {
    font-size: 14px;
}
.investBoxes p {
    font-size: 12px;
    color: var(--abt-muted);
    max-width: 500px;
    margin: 0;
}
.investCta .ctaThree {
    display: inline-block;
    min-width: 230px;
    padding: 10px 56px;
    text-align: center;
    font-size: 16px;
}
  /* line from this circle's centre down to the next circle's centre (also across the two rows) */
  .ourStoryBx::before {
    content: ""; position: absolute; z-index: 0;
    left: calc(var(--cs) / 2 - var(--dot) / 2); top: calc(var(--cs) / 2); height: 100%;
    border-left: var(--dot) dotted var(--abt-green);
  }
  .ourStoryBx:last-child::before { content: none; }
  .storyRow--top:not(:last-child) .ourStoryBx:last-child::before { content: ""; }
  .storyRow:last-child .ourStoryBx:last-child::before { content: none; }
  .ourStoryinfosec, .ourVisionSec, .investSection { padding-left: .625rem; padding-right: .625rem; }
  .focusAboutsec { padding-left: .625rem; padding-right: .625rem; }
.investBoxes {
    padding: 28px 10px;
}

@media (prefers-reduced-motion: reduce) { .ctaThree { transition: none; } }
@media (forced-colors: active) {
  .about-page a:focus-visible { outline: 3px solid CanvasText; }
  .ctaThree { border: 2px solid ButtonText; }
  .ourStoryBx .innerRound { border: 2px solid CanvasText; }
}
@media print { .ourfocusCir::after { display: none; } }