/* ============================================================
   ABOUT PAGE — section styles
   ============================================================ */

/* ---------- Hero ---------- */
.about-hero{
  background:var(--teal-deep);
  color:var(--cream);
  padding:96px 0 88px;
  border-bottom:1px solid rgba(217,183,138,.18);
  position:relative; overflow:hidden;
  min-height:640px;
  display:flex; flex-direction:column; justify-content:center;
}
.about-hero .hero-photo{ position:absolute; inset:0; z-index:0; }
.about-hero .hero-photo img{
  width:100%; height:100%; object-fit:cover; object-position:50% 42%; display:block;
}
.about-hero .hero-photo::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(12,29,28,.94) 0%, rgba(12,29,28,.80) 42%, rgba(12,29,28,.42) 100%),
    linear-gradient(0deg, rgba(12,29,28,.88) 0%, rgba(12,29,28,0) 52%);
}
.about-hero .wrap.lockup{ position:relative; z-index:1; }
.about-hero .lockup{
  display:flex; flex-direction:column; gap:32px;
  max-width:980px;
}
.about-hero h1{
  font-size:clamp(46px, 6.6vw, 100px);
}
.about-hero .lede{
  font-style:italic; font-family:var(--display); font-weight:500;
  font-size:27px; line-height:1.5;
  color:rgba(244,238,221,.78);
  max-width:680px;
}
.about-hero .facts{
  display:grid; grid-template-columns:repeat(4, 1fr);
  margin-top:64px;
  border-top:1px solid rgba(217,183,138,.22);
}
.about-hero .fact{
  padding:28px 24px 0;
  border-right:1px solid rgba(217,183,138,.18);
  text-align:center;
}
.about-hero .fact:first-child{ padding-left:0; }
.about-hero .fact:last-child{ padding-right:0; border-right:none; }
.about-hero .fact .l{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--sand);
}
.about-hero .fact .v{
  font-family:var(--display); font-weight:400;
  font-size:22px; line-height:1.25;
  color:var(--cream); margin-top:10px;
}
.about-hero .fact .v em{ font-style:italic; color:var(--accent); }
@media (max-width:880px){
  .about-hero{ padding:64px 0; }
  .about-hero .lede{ font-size:20px; line-height:1.5; }
  .about-hero .facts{ grid-template-columns:repeat(2, 1fr); gap:0; }
  .about-hero .fact{ padding:20px 0; border-right:none; border-bottom:1px solid rgba(217,183,138,.18); }
  .about-hero .fact:nth-child(odd){ border-right:1px solid rgba(217,183,138,.18); padding-right:16px; }
  .about-hero .fact:nth-child(even){ padding-left:16px; }
  .about-hero .fact:nth-last-child(-n+2){ border-bottom:none; }
}

/* ---------- Story (editorial) ---------- */
.story{ background:var(--cream); color:var(--ink); padding:120px 0; }
.story .grid{
  display:grid; grid-template-columns:200px 1fr; gap:64px;
  max-width:1040px; margin:0 auto;
}
.story .sidehead{
  font-family:var(--mono); font-size:11px; letter-spacing:.28em;
  text-transform:uppercase; color:var(--sage);
  position:sticky; top:96px; align-self:start;
}
.story .sidehead .num{ color:var(--accent); margin-right:8px; }
.story .body p{
  font-family:var(--display); font-weight:400;
  font-size:22px; line-height:1.5; color:var(--ink);
  margin:0 0 24px;
  text-wrap:pretty;
}
.story .body p em{ color:var(--sage); }
.story .body .pull{
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:30px; line-height:1.25;
  color:var(--accent);
  margin:24px 0 32px;
  text-wrap:balance;
}
@media (max-width:880px){
  .story{ padding:80px 0; }
  .story .grid{ grid-template-columns:1fr; gap:28px; }
  .story .sidehead{ position:static; }
  .story .body p{ font-size:18px; }
  .story .body .pull{ font-size:24px; }
}

/* ---------- Two-entity model ---------- */
.entities{
  background:var(--teal-deep);
  color:var(--cream);
  padding:120px 0;
}
.entities .head{ max-width:880px; margin-bottom:56px; }
.entities .head h2{ margin-top:14px; }
.entities .head .lede{
  font-style:normal; font-family:var(--sans);
  font-size:18px; color:rgba(244,238,221,.78);
  margin-top:18px;
  max-width:680px; line-height:1.55;
}
.entity-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
}
.entity{
  border:1px solid rgba(217,183,138,.28);
  padding:40px 36px;
  background:rgba(244,238,221,.04);
  display:flex; flex-direction:column; gap:18px;
  min-height:380px;
}
.entity .tag{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.28em;
  text-transform:uppercase; color:var(--sand);
}
.entity .tag .dot{ width:6px; height:6px; transform:rotate(45deg); background:var(--accent); }
.entity h3{
  font-family:var(--display); font-weight:300;
  font-size:40px; line-height:1.05; color:var(--cream);
  margin:0; letter-spacing:-.015em;
}
.entity h3 em{ font-style:italic; color:var(--accent); }
.entity .what{
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:20px; line-height:1.35; color:var(--sand);
  margin:0;
}
.entity p{
  font-family:var(--sans); font-size:15px; line-height:1.55;
  color:rgba(244,238,221,.82); margin:0;
}
.entity .legal{
  margin-top:auto; padding-top:18px;
  border-top:1px solid rgba(217,183,138,.18);
  font-family:var(--mono); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:rgba(217,183,138,.7);
}
.entity .legal .v{ color:var(--cream); }
.firewall-callout{
  margin-top:36px;
  padding:24px 32px;
  border:1px solid var(--accent);
  background:rgba(179,92,58,.08);
  display:flex; gap:18px; align-items:center;
}
.firewall-callout .diamond{
  width:14px; height:14px; transform:rotate(45deg); background:var(--accent); flex:none;
}
.firewall-callout p{
  margin:0;
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:20px; line-height:1.4; color:var(--cream);
}
.firewall-callout p b{ font-style:normal; font-weight:500; color:var(--accent); }
@media (max-width:880px){
  .entity-grid{ grid-template-columns:1fr; }
  .entity{ min-height:auto; padding:32px 28px; }
  .firewall-callout{ flex-direction:column; align-items:flex-start; padding:22px 24px; }
}

/* ---------- Timeline ---------- */
.timeline{ background:var(--paper); color:var(--ink); padding:120px 0; }
.timeline .head{ max-width:760px; margin-bottom:64px; }
.timeline .head h2{ margin-top:14px; }
.timeline .head .lede{
  color:var(--sage); font-size:18px; margin-top:14px;
}
.tl-grid{
  display:grid; grid-template-columns:120px 1fr;
  border-top:1px solid var(--rule);
}
.tl-grid .row{
  display:contents;
}
.tl-grid .when{
  padding:32px 24px 32px 0;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  font-family:var(--mono);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--sage);
  white-space:nowrap;
}
.tl-grid .what{
  padding:32px 0 32px 32px;
  border-bottom:1px solid var(--rule);
  display:flex; flex-direction:column; gap:10px;
}
.tl-grid .row:last-child .when,
.tl-grid .row:last-child .what{ border-bottom:none; }
.tl-grid .what .h{
  font-family:var(--display); font-weight:400;
  font-size:24px; line-height:1.15; color:var(--ink);
}
.tl-grid .what .h em{ font-style:italic; color:var(--accent); }
.tl-grid .what p{
  margin:0;
  font-family:var(--sans); font-size:15px; line-height:1.55; color:var(--ink); opacity:.85;
  max-width:640px;
}
.tl-grid .status{
  font-family:var(--mono); font-size:10px; letter-spacing:.24em;
  text-transform:uppercase;
  display:inline-flex; align-items:center; gap:8px;
  color:var(--sage);
}
.tl-grid .status.done{ color:var(--accent); }
.tl-grid .status.next{ color:var(--sage); }
.tl-grid .status .dot{ width:6px; height:6px; transform:rotate(45deg); }
.tl-grid .status.done .dot{ background:var(--accent); }
.tl-grid .status.next .dot{ background:var(--sage); }
@media (max-width:760px){
  .tl-grid{ grid-template-columns:1fr; }
  .tl-grid .when{
    padding:24px 0 6px; border-right:none; border-bottom:none;
  }
  .tl-grid .what{ padding:0 0 24px; }
  .tl-grid .row:not(:last-child) .what{ border-bottom:1px solid var(--rule); margin-bottom:8px; }
}

/* ---------- Differentiation table ---------- */
.diff{ background:var(--cream); color:var(--ink); padding:120px 0; }
.diff .head{ max-width:760px; margin-bottom:48px; }
.diff .head h2{ margin-top:14px; }
.diff .head .lede{ color:var(--sage); font-size:18px; margin-top:14px; }

.diff-table{
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.diff-table .cell{
  padding:22px 20px;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  font-family:var(--sans); font-size:14px; line-height:1.4;
}
.diff-table .cell:nth-child(4n){ border-right:none; }
.diff-table .row:last-child .cell{ border-bottom:none; }

.diff-table .head-row .cell{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sage);
  background:var(--paper);
}
.diff-table .head-row .cell.us{ color:var(--accent); }
.diff-table .label-cell{
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:18px; color:var(--ink);
}
.diff-table .value-cell{ color:var(--ink); }
.diff-table .value-cell.us{
  background:rgba(179,92,58,.06);
  font-weight:500;
  color:var(--ink);
}
.diff-table .row{ display:contents; }
@media (max-width:880px){
  .diff-table{ grid-template-columns:1fr; }
  .diff-table .cell{ border-right:none; padding:14px 0; }
  .diff-table .row{ display:block; border-bottom:1px solid var(--rule); padding:12px 0; }
  .diff-table .head-row{ display:none; }
  .diff-table .label-cell{ font-size:16px; padding-top:8px; }
  .diff-table .value-cell::before{
    content:attr(data-label) " · ";
    font-family:var(--mono); font-size:10.5px; letter-spacing:.2em;
    text-transform:uppercase; color:var(--sage); margin-right:6px;
  }
  .diff-table .value-cell.us::before{ color:var(--accent); }
}

/* ---------- Graduate vision (kicker close) ---------- */
.graduate{
  background:var(--teal-deep);
  color:var(--cream);
  padding:120px 0;
  text-align:center;
}
.graduate .eyebrow{ justify-content:center; display:inline-flex; }
.graduate h2{
  margin:24px auto 0;
  max-width:920px;
}
.graduate .promise{
  margin:36px auto 0;
  max-width:760px;
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:24px; line-height:1.4;
  color:var(--sand);
}
.graduate .marks{
  margin-top:56px;
  display:grid; grid-template-columns:repeat(5, 1fr);
  gap:0;
  border-top:1px solid rgba(217,183,138,.18);
  border-bottom:1px solid rgba(217,183,138,.18);
}
.graduate .mark{
  padding:28px 18px;
  border-right:1px solid rgba(217,183,138,.18);
  text-align:center;
}
.graduate .mark:last-child{ border-right:none; }
.graduate .mark .n{
  font-family:var(--display); font-weight:400;
  font-size:38px; line-height:1; color:var(--cream);
}
.graduate .mark .n em{ font-style:italic; color:var(--accent); }
.graduate .mark .l{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:rgba(217,183,138,.75);
  margin-top:10px;
}
@media (max-width:880px){
  .graduate .marks{ grid-template-columns:repeat(2, 1fr); }
  .graduate .mark{ border-right:1px solid rgba(217,183,138,.18); border-bottom:1px solid rgba(217,183,138,.18); }
  .graduate .mark:nth-child(2n){ border-right:none; }
  .graduate .mark:nth-last-child(-n+1){ border-bottom:none; }
}
