/* ==========================================================================
   About Page
   ========================================================================== */

/* ----------------------------- Page hero --------------------------------- */
.page-hero {
  position: relative;
  padding: calc(var(--header-h) + 4rem) 0 3.5rem;
  color: #fff;
  background: var(--navy-900);
  overflow: hidden;
}
.page-hero-bg { position: absolute; inset: 0; }
.page-hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,20,40,.72), rgba(8,20,40,.9)); z-index: 2; }
.page-hero .container { position: relative; z-index: 3; }
.page-hero h1 { color: #fff; margin: 0.6rem 0 1rem; max-width: 18ch; }
.page-hero p { color: rgba(255,255,255,.8); max-width: 60ch; font-size: 1.08rem; }

.hero-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  margin-top: 1rem;
  padding: 0.5rem 1.1rem;
  border-radius: var(--r-pill);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.92);
  font-family: var(--font-head); font-weight: 600;
  font-size: 0.78rem; letter-spacing: 0.03em;
}

.crumbs { font-size: 0.85rem; color: rgba(255,255,255,.6); display: flex; gap: 0.5rem; }
.crumbs a { color: #9dc4f0; }
.crumbs a:hover { text-decoration: underline; }

/* ----------------------------- Split rows -------------------------------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.split.reverse .split-media { order: 2; }
.split-media .media { aspect-ratio: 4 / 3; border-radius: var(--r-xl); box-shadow: var(--shadow-xl); }
@media (max-width: 820px) { .split, .split.reverse { grid-template-columns: 1fr; } .split.reverse .split-media { order: -1; } }

.check-list { display: grid; gap: 0.7rem; }
.check-list li { position: relative; padding-left: 1.9rem; color: var(--text-soft); }
.check-list li::before { content: '✓'; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: rgba(30,90,166,.12); color: var(--navy-500); display: grid; place-items: center; font-size: 0.75rem; font-weight: 700; }

/* ------------------------------- Journey --------------------------------- */
.journey { position: relative; max-width: 840px; margin: 0 auto; display: grid; gap: 1.4rem; }
.journey::before {
  content: '';
  position: absolute;
  left: 27px; top: 8px; bottom: 8px;
  width: 2px;
  background: linear-gradient(var(--navy-500), var(--line));
}
.journey-item { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 1.3rem; align-items: start; }
.journey-year {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--grad-navy); color: #fff;
  display: grid; place-items: center;
  font-family: var(--font-head); font-weight: 700; font-size: 0.8rem;
  box-shadow: 0 10px 22px rgba(17,48,88,.22);
  z-index: 1;
}
.journey-body {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 1.2rem 1.5rem; box-shadow: var(--shadow-sm);
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.journey-item:hover .journey-body { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.journey-body h3 { font-size: 1.08rem; margin-bottom: 0.3rem; }
.journey-body p { font-size: 0.92rem; }
@media (max-width: 560px) {
  .journey-year { width: 46px; height: 46px; font-size: 0.7rem; }
  .journey::before { left: 22px; }
  .journey-item { grid-template-columns: 46px 1fr; gap: 1rem; }
  .journey-body { padding: 1rem 1.2rem; }
}

/* ------------------------------- Stats ----------------------------------- */
.stats-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; text-align: center; }
.stat { position: relative; padding: 0.5rem; }
.stat .num { font-family: var(--font-head); font-weight: 800; font-size: clamp(2rem, 4vw, 3rem); color: #fff; line-height: 1; }
.stat .lbl { margin-top: 0.5rem; color: rgba(255,255,255,.72); font-size: 0.9rem; }
.stat:not(:last-child)::after { content: ''; position: absolute; right: 0; top: 20%; height: 60%; width: 1px; background: rgba(255,255,255,.14); }
@media (max-width: 820px) { .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem 1rem; } .stat::after { display: none; } }

/* --------------------------- Mission / Vision ---------------------------- */
.mv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.mv-card { padding: 2rem 1.8rem; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-sm); transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.mv-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.mv-icon { width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center; background: var(--grad-navy); color: #fff; margin-bottom: 1.2rem; box-shadow: 0 10px 22px rgba(17,48,88,.22); }
.mv-icon svg { width: 28px; height: 28px; }
.mv-card h3 { font-size: 1.25rem; margin-bottom: 0.5rem; }
@media (max-width: 820px) { .mv-grid { grid-template-columns: 1fr; } }

/* ----------------------------- Core values ------------------------------- */
.values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.value { padding: 1.8rem 1.5rem; border-radius: var(--r-lg); background: var(--bg-alt); border: 1px solid var(--line); border-top: 3px solid var(--navy-500); }
.value h3 { font-size: 1.1rem; margin-bottom: 0.4rem; }
.value p { font-size: 0.9rem; }
@media (max-width: 900px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .values-grid { grid-template-columns: 1fr; } }

/* ----------------------------- Cert pills -------------------------------- */
.cert-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.cert-pill { padding: 0.55rem 1.1rem; border-radius: var(--r-pill); background: #fff; border: 1px solid var(--line); font-family: var(--font-head); font-weight: 600; font-size: 0.85rem; color: var(--navy-700); box-shadow: var(--shadow-sm); }

/* --------------------------- Masonry gallery ----------------------------- */
.masonry { columns: 4; column-gap: 1rem; }
.masonry .tile { break-inside: avoid; margin-bottom: 1rem; border-radius: var(--r-md); overflow: hidden; cursor: pointer; box-shadow: var(--shadow-sm); }
.masonry .tile .media { width: 100%; }
.masonry .tile:nth-child(3n) .media { aspect-ratio: 3 / 4; }
.masonry .tile:nth-child(3n+1) .media { aspect-ratio: 4 / 3; }
.masonry .tile:nth-child(3n+2) .media { aspect-ratio: 1 / 1; }
@media (max-width: 900px) { .masonry { columns: 2; } }
@media (max-width: 520px) { .masonry { columns: 1; } }

/* ------------------------------ Lightbox --------------------------------- */
.lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(6,14,28,.92); display: none; align-items: center; justify-content: center; padding: 2rem; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 92vw; max-height: 88vh; border-radius: var(--r-md); box-shadow: var(--shadow-xl); }
.lb-close { position: absolute; top: 20px; right: 26px; font-size: 2.4rem; color: #fff; line-height: 1; }

/* ------------------------------- CTA band -------------------------------- */
.cta-band { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding: clamp(2rem, 5vw, 3.5rem); border-radius: var(--r-xl); background: var(--grad-navy); color: #fff; }
.cta-band h2 { color: #fff; }
.cta-band p { color: rgba(255,255,255,.78); margin-top: 0.4rem; }
