/* About page. Shares the homepage's parent-first language:
   warm paper, evergreen ink, sage surfaces, 12px buttons, 24px panels. */
.ab-page {
  --ab-ink:#213e38; --ab-green:#176859; --ab-green-dark:#105447; --ab-copy:#5d6c65;
  --ab-paper:#fdfbf7; --ab-sage:#f0f4ec; --ab-sage-2:#e5eee1; --ab-line:#dde6df; --ab-clay:#c77d48;
  background:var(--ab-paper); color:var(--ab-ink);
}
html:has(.ab-page) body { background:#fdfbf7; }
html:has(.ab-page) header { background:rgba(253,251,247,.97)!important; border-color:#e6e9df!important; box-shadow:none; }
.ab-page main { overflow:clip; }
.ab-page section { padding-block:88px; }
.ab-wrap { max-width:1240px; margin-inline:auto; padding-inline:36px; }
.ab-page :is(button,a):focus-visible { outline:3px solid var(--ab-clay); outline-offset:4px; }

.ab-eyebrow { color:var(--ab-green); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:14px; }
.ab-h2 { font-size:clamp(28px,3.2vw,44px); line-height:1.15; letter-spacing:-.035em; font-weight:650; color:var(--ab-ink); }
.ab-head { max-width:640px; margin-bottom:44px; }
.ab-head-copy { color:var(--ab-copy); font-size:16px; line-height:1.75; margin-top:14px; }

.ab-btn { display:inline-flex; align-items:center; gap:10px; height:52px; padding-inline:22px; border-radius:12px; font-size:14px; font-weight:600; transition:transform .15s ease, background-color .15s ease; }
.ab-btn:hover { transform:translateY(-2px); }
.ab-btn:active { transform:translateY(1px); }
.ab-btn--primary { background:var(--ab-green); color:#fff; box-shadow:0 5px 0 var(--ab-green-dark),0 10px 22px #17685916; }
.ab-btn--ghost { background:transparent; color:var(--ab-ink); border:1px solid #d6ded5; }
.ab-btn--ghost:hover { background:#fff; }
.ab-actions { display:flex; flex-wrap:wrap; gap:12px; }

/* Hero */
.ab-hero { padding:112px 0 0!important; }
.ab-breadcrumb { margin-bottom:28px; }
.ab-hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; }
.ab-hero-title { font-size:clamp(38px,4.6vw,62px); line-height:1.08; letter-spacing:-.045em; font-weight:650; color:var(--ab-ink); margin-bottom:24px; }
.ab-hero-title span { color:var(--ab-green); }
.ab-lead { color:var(--ab-copy); font-size:17px; line-height:1.75; max-width:520px; margin-bottom:30px; }
.ab-hero-art img { width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
.ab-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:48px; border-top:1px solid var(--ab-line); }
.ab-fact { display:flex; flex-direction:column; padding:26px 0 30px; }
.ab-fact + .ab-fact { padding-left:28px; border-left:1px solid var(--ab-line); }
.ab-fact-value { font-size:clamp(26px,2.6vw,34px); font-weight:650; letter-spacing:-.03em; color:var(--ab-ink); line-height:1.1; }
.ab-fact-label { order:2; margin-top:6px; color:#617569; font-size:12px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }

/* Story */
.ab-story { background:var(--ab-sage); }
.ab-story-grid { display:grid; grid-template-columns:.85fr 1fr; gap:64px; align-items:center; }
.ab-story-art { background:var(--ab-paper); border-radius:24px; padding:28px; }
.ab-story-art img { width:100%; height:auto; object-fit:contain; }
.ab-story-copy .ab-h2 { margin-bottom:22px; }
.ab-story-copy > p:not(.ab-eyebrow) { color:var(--ab-copy); font-size:16px; line-height:1.8; margin-bottom:16px; max-width:560px; }
.ab-quote { margin-top:26px; padding-left:20px; border-left:3px solid var(--ab-clay); font-family:Georgia,serif; font-style:italic; font-size:20px; line-height:1.5; color:var(--ab-ink); max-width:480px; }

/* Promises */
.ab-promise-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.ab-promise-card { background:#fff; border:1px solid var(--ab-line); border-radius:24px; padding:28px 24px 30px; }
.ab-promise-num { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--ab-sage-2); color:#386443; font-size:12px; font-weight:700; margin-bottom:22px; }
.ab-promise-card h3 { font-size:19px; font-weight:600; letter-spacing:-.015em; color:var(--ab-ink); margin-bottom:10px; }
.ab-promise-card p { color:var(--ab-copy); font-size:14px; line-height:1.75; }

/* Journey: a horizontal rail on desktop, a vertical one on phones. */
.ab-journey { background:var(--ab-sage); }
.ab-timeline { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:22px; position:relative; }
.ab-timeline::before { content:""; position:absolute; left:0; right:0; top:7px; height:2px; background:#cfdccb; }
.ab-milestone { position:relative; padding-top:34px; }
.ab-milestone::before { content:""; position:absolute; top:0; left:0; width:16px; height:16px; border-radius:50%; background:var(--ab-paper); border:3px solid var(--ab-green); }
.ab-milestone:last-child::before { background:var(--ab-green); }
.ab-milestone-year { display:block; font-size:13px; font-weight:700; letter-spacing:.06em; color:var(--ab-green); margin-bottom:8px; }
.ab-milestone h3 { font-size:17px; font-weight:600; color:var(--ab-ink); margin-bottom:6px; line-height:1.3; }
.ab-milestone p { color:var(--ab-copy); font-size:13.5px; line-height:1.7; }

/* Founders */
.ab-team-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.ab-person { border-top:1px solid var(--ab-line); padding-top:24px; }
.ab-person-initials { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--ab-sage-2); color:var(--ab-green); font-weight:700; font-size:20px; margin-bottom:18px; }
.ab-person h3 { font-size:18px; font-weight:600; color:var(--ab-ink); }
.ab-person-role { color:var(--ab-green); font-size:13px; font-weight:600; margin:4px 0 10px; }
.ab-person-bio { color:var(--ab-copy); font-size:14px; line-height:1.7; }

/* Closing invitation */
.ab-close { padding-top:0!important; }
.ab-close-card { display:flex; align-items:center; justify-content:space-between; gap:40px; background:var(--ab-sage-2); border-radius:24px; padding:52px 56px; max-width:1168px; }
.ab-close-card .ab-h2 { font-size:clamp(26px,2.6vw,36px); margin-bottom:10px; }
.ab-close-card p { color:var(--ab-copy); font-size:16px; line-height:1.7; max-width:520px; }
.ab-close-card .ab-actions { flex-shrink:0; }

@media (max-width:1024px) {
  .ab-promise-grid,.ab-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ab-timeline { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:40px; }
  .ab-timeline::before { display:none; }
  .ab-close-card { flex-direction:column; align-items:flex-start; }
}
@media (max-width:767px) {
  .ab-page section { padding-block:64px; }
  .ab-wrap { padding-inline:16px; }
  .ab-hero { padding-top:96px!important; }
  .ab-hero-grid,.ab-story-grid { grid-template-columns:1fr; gap:28px; }
  .ab-hero-art { max-width:420px; }
  .ab-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ab-fact:nth-child(3) { padding-left:0; border-left:0; }
  .ab-fact:nth-child(n+3) { border-top:1px solid var(--ab-line); }
  .ab-story-art { order:2; padding:18px; }
  .ab-promise-grid,.ab-team-grid { grid-template-columns:1fr; }
  .ab-timeline { grid-template-columns:1fr; row-gap:0; padding-left:28px; }
  .ab-timeline::before { display:block; left:7px; right:auto; top:8px; bottom:8px; width:2px; height:auto; }
  .ab-milestone { padding:0 0 28px; }
  .ab-milestone::before { left:-28px; top:2px; }
  .ab-close-card { padding:34px 22px; }
  .ab-actions { width:100%; }
  .ab-actions .ab-btn { flex:1 1 auto; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) { .ab-btn { transition:none; } .ab-btn:hover,.ab-btn:active { transform:none; } }
