/* ============================================================
   Invariance | Arc — Site Revamp v0.1
   Structural hierarchy, typography, responsive rhythm, and
   homepage composition. Loaded after the legacy design files.
   ============================================================ */

:root {
  --ink-mute: #746f65;
  --rule: #d5d0c5;
  --rule-soft: #e8e3d9;
  --rule-strong: #bdb6a8;
  --container-wide: 1200px;
  --page-gutter: clamp(20px, 4vw, 48px);
  --band-pad-y: clamp(68px, 7vw, 92px);
  --band-pad-y-sm: clamp(48px, 5vw, 64px);
  --radius-md: 9px;
  --radius-lg: 12px;
  --shadow-xs: 0 1px 1px rgba(43,42,39,.03);
  --shadow-sm: 0 2px 12px rgba(43,42,39,.04);
  --shadow-md: 0 12px 32px rgba(43,42,39,.07);
}

html { scroll-padding-top: 76px; }
body {
  font-size: 16px;
  line-height: 1.66;
  overflow-x: hidden;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  left: 18px;
  top: 12px;
  transform: translateY(-150%);
  background: var(--ink);
  color: var(--limestone);
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
}
.skip-link:focus { transform: none; color: var(--limestone); }

.wrap { max-width: var(--container-wide); padding-inline: var(--page-gutter); }

/* ---------- Header ---------- */
header.site {
  background: color-mix(in srgb, var(--limestone) 90%, transparent);
  border-bottom-color: var(--rule-soft);
}
.navrow { min-height: 70px; gap: 26px; }
.wordmark { font-size: 20px; letter-spacing: .035em; }
.wordmark .arc { font-size: 18px; }
.navlinks { gap: 25px; }
.navlinks a {
  position: relative;
  font-size: 13.5px;
  color: #5f5b53;
  padding-block: 24px;
}
.navlinks a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 17px;
  height: 1.5px;
  background: transparent;
}
.navlinks a:hover,
.navlinks a[aria-current="page"] { color: var(--ink); }
.navlinks a[aria-current="page"]::after { background: var(--teal); }
.navlinks .arcnav { color: var(--steel); }
.navlinks .arcnav + .arcnav { color: var(--amber); }
.navcta { padding: 10px 18px; }
.menu-panel { width: min(84vw, 300px); padding: 10px; }
.menu-panel a { padding: 12px 13px; }

/* ---------- Global type and rhythm ---------- */
.band { padding: var(--band-pad-y) 0; }
.band--tight { padding: var(--band-pad-y-sm) 0; }
.band--raised { border-top: 0; background: #faf8f3; }
.band--warm { background: #f5f0e6; }
.band--cool { background: #f1f5f4; }
.eyebrow { color: var(--teal-deep); }
.eyebrow::before { width: 22px; }
h2.sec {
  font-size: clamp(34px, 4vw, 46px);
  line-height: 1.1;
  max-width: 27ch;
  margin-top: 18px;
}
.seclede,
.lede {
  font-size: clamp(16.5px, 1.5vw, 18px);
  line-height: 1.7;
  max-width: 68ch;
}
.secclose {
  font-size: clamp(21px, 2vw, 25px);
  line-height: 1.4;
  max-width: 48ch;
}
.prose { max-width: 72ch; }
.prose p { font-size: 16.5px; line-height: 1.78; }
.prose h2 { font-size: clamp(28px, 3vw, 34px); }
.prose h3 { font-size: 24px; }
.crumb { color: #777268; }
.crumb a { color: #777268; }

/* ---------- Page heroes ---------- */
.page-hero {
  position: relative;
  padding: clamp(84px, 9vw, 118px) 0 clamp(60px, 7vw, 84px);
  background:
    radial-gradient(circle at 86% 14%, rgba(61,107,107,.07), transparent 34%),
    linear-gradient(180deg, #fcfbf8 0%, #f8f5ee 100%);
  overflow: hidden;
}
.page-hero::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(28vw, 350px);
  height: 2px;
  background: var(--teal);
}
.page-hero h1 {
  font-size: clamp(46px, 5.6vw, 66px);
  line-height: 1.02;
  max-width: 17ch;
  margin-top: 24px;
}
.page-hero .lede { max-width: 70ch; margin-top: 26px; }
body.page--security .page-hero {
  background:
    radial-gradient(circle at 88% 15%, rgba(61,91,107,.15), transparent 36%),
    linear-gradient(180deg, #fbfbf9 0%, #eef2f4 100%);
}
body.page--security .page-hero::after { background: var(--steel); }
body.page--security .page-hero .eyebrow,
body.page--security .page-hero .eyebrow::before { color: var(--steel); background-color: var(--steel); }
body.page--governance .page-hero {
  background:
    radial-gradient(circle at 88% 15%, rgba(154,125,74,.16), transparent 36%),
    linear-gradient(180deg, #fcfbf8 0%, #f5f0e6 100%);
}
body.page--governance .page-hero::after { background: var(--amber); }
body.page--governance .page-hero .eyebrow,
body.page--governance .page-hero .eyebrow::before { color: var(--amber); background-color: var(--amber); }

/* ---------- Component hierarchy ---------- */
.card,
.figure,
.casebox,
.ptile,
.story-card,
.railwrap,
.ucard,
.rcard,
.qcallout,
.mechcard,
.ecard,
.caserow,
.bdiagram,
.twocol > * {
  border-color: var(--rule);
  border-radius: var(--radius-md);
  box-shadow: none;
}
.card:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); border-color: var(--rule-strong); }
.card { padding: 30px 30px 26px; }
.card > p { font-size: 15.5px; line-height: 1.65; }
.card .q { font-size: 23px; }
.figure { padding: clamp(22px, 3vw, 36px); }
.figure figcaption {
  font-family: var(--font-sans);
  font-size: 12.5px;
  line-height: 1.55;
  letter-spacing: 0;
}
.rcard .rq { font-size: 19px; }
.casebox { padding: clamp(28px, 4vw, 48px); }
.contact { align-items: center; }
.contact p { font-size: 16.5px; }
.btn { padding: 13px 24px; }

/* ---------- Footer ---------- */
footer.site { padding: 54px 0 48px; }
.footer-grid {
  display: grid;
  grid-template-columns: minmax(220px,.9fr) minmax(320px,1.1fr);
  gap: 32px 64px;
  align-items: start;
}
.footer-brand p { margin-top: 14px; max-width: 48ch; color: #a9a59a; font-size: 12.5px; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 24px; }
.footer-links a { color: #c5c1b7; font-size: 12.5px; }
.footer-links a:hover { color: #fff; }
.footer-note { grid-column: 1 / -1; border-top: 1px solid #44443c; padding-top: 18px; color: #8f8b80; font-size: 11.5px; }

/* ============================================================
   Homepage
   ============================================================ */
.home-hero {
  padding: clamp(78px, 8vw, 118px) 0 clamp(72px, 8vw, 106px);
  background:
    radial-gradient(circle at 75% 22%, rgba(61,107,107,.08), transparent 32%),
    linear-gradient(180deg,#fcfbf8 0%,#f6f3ec 100%);
  border-bottom: 1px solid var(--rule-soft);
}
.home-hero-grid {
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(390px,.92fr);
  gap: clamp(48px, 7vw, 96px);
  align-items: center;
}
.home-hero h1 {
  font-size: clamp(52px, 6.3vw, 76px);
  line-height: .98;
  max-width: 12.2ch;
  margin-top: 22px;
  text-wrap: balance;
}
.home-hero .support {
  margin-top: 28px;
  max-width: 54ch;
  font-size: clamp(18px, 1.8vw, 21px);
  line-height: 1.58;
  color: var(--ink-soft);
}
.home-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.home-why {
  margin-top: 34px;
  padding: 18px 0 0 20px;
  border-left: 2px solid var(--teal);
  max-width: 58ch;
}
.home-why strong {
  display: block;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--teal-deep);
  margin-bottom: 8px;
}
.home-why p { font-size: 15px; line-height: 1.68; color: var(--ink-soft); }
.home-mark {
  background: rgba(255,255,255,.78);
  border: 1px solid var(--rule);
  border-radius: 14px;
  padding: clamp(26px, 4vw, 42px) clamp(24px, 4vw, 40px) 24px;
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(4px);
}
.home-mark .gate { width: 100%; }
.home-mark .caption { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--rule-soft); justify-content: center; }
.home-mark .markline { font-size: 17px; text-align: center; }

.home-intro { padding: clamp(72px, 8vw, 102px) 0; }
.home-section-head { display: grid; grid-template-columns: .8fr 1.2fr; gap: 44px; align-items: end; }
.home-section-head h2 {
  font-size: clamp(38px, 4.6vw, 56px);
  line-height: 1.04;
  max-width: 15ch;
}
.home-section-head p { font-size: 18px; color: var(--ink-soft); max-width: 62ch; }
.control-compare {
  display: grid;
  grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);
  gap: 0;
  margin-top: 48px;
  border: 1px solid var(--rule);
  background: var(--panel);
}
.control-panel { padding: clamp(26px, 4vw, 42px); }
.control-panel + .control-panel { border-left: 1px solid var(--rule); }
.control-panel .label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.control-panel ul { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 15px; }
.control-panel li { display: grid; grid-template-columns: 122px 1fr; gap: 16px; font-size: 15px; color: var(--ink-soft); }
.control-panel li b { color: var(--ink); font-weight: 600; }
.control-panel--ac { background: var(--teal-tint); }
.control-panel--ac .label { color: var(--teal-deep); }
.control-panel--ac .big-question {
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.18;
  color: var(--ink);
  max-width: 19ch;
  margin-top: 22px;
}
.control-panel--ac p { margin-top: 20px; color: var(--ink-soft); font-size: 15px; }
.question-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 0;
  margin-top: 28px;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.question-grid p {
  padding: 22px 20px;
  font-family: var(--font-serif);
  font-size: 19px;
  line-height: 1.35;
  color: var(--ink);
}
.question-grid p + p { border-left: 1px solid var(--rule); }

/* Signature authority band */
.authority-band {
  position: relative;
  background: #1f2928;
  color: #f7f5ee;
  padding: clamp(78px, 9vw, 116px) 0;
  overflow: hidden;
}
.authority-band::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(89,142,139,.2), transparent 33%),
    linear-gradient(120deg, transparent 0 55%, rgba(255,255,255,.025) 55% 56%, transparent 56% 100%);
  pointer-events: none;
}
.authority-band .wrap { position: relative; }
.authority-band .eyebrow { color: #a7c7c5; }
.authority-band .eyebrow::before { background: #a7c7c5; }
.authority-band h2 {
  font-size: clamp(42px, 5vw, 64px);
  line-height: 1.02;
  color: #fff;
  max-width: 14ch;
  margin-top: 20px;
}
.authority-band .band-lede { color: #c9cfca; font-size: 18px; max-width: 60ch; margin-top: 22px; }
.authority-flow {
  margin-top: 54px;
  display: grid;
  grid-template-columns: minmax(0,1fr) 72px minmax(300px,.8fr) 72px minmax(0,1fr);
  align-items: center;
  gap: 18px;
}
.flow-surfaces { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.flow-chip {
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.05);
  color: #e0e3df;
  padding: 13px 14px;
  font-size: 13px;
  text-align: center;
  border-radius: 7px;
}
.flow-arrow { height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.22), #72aaa7); position: relative; }
.flow-arrow::after {
  content: "";
  position: absolute;
  right: -1px;
  top: -4px;
  border-left: 7px solid #72aaa7;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}
.flow-gate {
  border: 1px solid #79aaa8;
  background: #315e5c;
  padding: 28px 24px;
  text-align: center;
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(0,0,0,.2);
}
.flow-gate .gate-title { font-family: var(--font-serif); font-size: 29px; line-height: 1.08; color: #fff; }
.flow-gate p { margin-top: 10px; color: #d8e5e4; font-size: 13.5px; }
.flow-output { display: grid; gap: 12px; }
.flow-decisions { display: flex; gap: 7px; flex-wrap: wrap; }
.flow-record {
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  border-radius: 8px;
  padding: 18px;
}
.flow-record b { display: block; color: #fff; font-size: 14px; }
.flow-record span { display: block; margin-top: 5px; color: #bcc5c0; font-size: 12.5px; }
.authority-note {
  margin-top: 38px;
  border-top: 1px solid rgba(255,255,255,.13);
  padding-top: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  color: #bdc5c0;
  font-size: 14px;
}
.authority-note a { color: #b9d7d5; font-weight: 600; white-space: nowrap; }

/* Why now */
.now-grid {
  display: grid;
  grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
  gap: 24px;
  margin-top: 46px;
}
.now-panel {
  border: 1px solid var(--rule);
  background: var(--panel);
  padding: clamp(26px, 4vw, 40px);
}
.now-panel--signal { border-top: 3px solid var(--amber); }
.now-panel--agent { border-top: 3px solid var(--teal); background: #f8faf9; }
.now-panel .meta-line {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--ink-mute);
}
.now-panel h3 { font-size: clamp(25px, 2.8vw, 34px); line-height: 1.14; margin-top: 16px; }
.now-panel p { color: var(--ink-soft); font-size: 15.5px; line-height: 1.7; margin-top: 15px; }
.now-panel .ask { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--rule); color: var(--ink); }
.now-panel .ask b { color: var(--teal-deep); }
.now-panel .source-link { display: inline-block; margin-top: 20px; font-size: 13px; font-weight: 600; }

/* Cases */
.case-editorial {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  margin-top: 46px;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.case-editorial article { padding: 30px 30px 32px 0; }
.case-editorial article + article { border-left: 1px solid var(--rule); padding-left: 30px; }
.case-kind {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--teal-deep);
}
.case-editorial h3 { font-size: 27px; margin-top: 12px; }
.case-editorial .case-context { font-size: 15px; color: var(--ink-soft); line-height: 1.65; margin-top: 14px; }
.case-editorial .case-ask { font-size: 13.5px; color: var(--ink); line-height: 1.58; margin-top: 18px; }
.case-editorial .case-ask b { display: block; color: var(--teal-deep); margin-bottom: 4px; }
.case-editorial .case-meta { margin-top: 18px; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-mute); }
.section-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 28px; font-size: 14px; font-weight: 600; }

/* Arcs */
.arc-section { background: #f7f5ef; }
.arc-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 42px;
  border: 1px solid var(--rule);
  background: var(--panel);
}
.arc-pane { padding: clamp(30px, 4vw, 46px); min-height: 260px; }
.arc-pane + .arc-pane { border-left: 1px solid var(--rule); }
.arc-pane--security { border-top: 4px solid var(--steel); }
.arc-pane--governance { border-top: 4px solid var(--amber); }
.arc-pane .arc-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.arc-pane--security .arc-label { color: var(--steel); }
.arc-pane--governance .arc-label { color: var(--amber); }
.arc-pane h3 { font-size: clamp(29px, 3vw, 38px); line-height: 1.12; margin-top: 17px; max-width: 17ch; }
.arc-pane p { font-size: 15.5px; line-height: 1.68; color: var(--ink-soft); margin-top: 16px; max-width: 49ch; }
.arc-pane a { display: inline-block; margin-top: 24px; font-size: 13.5px; font-weight: 600; }
.arc-shared {
  text-align: center;
  max-width: 70ch;
  margin: 26px auto 0;
  color: var(--ink-soft);
  font-size: 14.5px;
}

/* Engagement */
.engagement-layout {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(340px,.95fr);
  gap: 24px;
  margin-top: 44px;
}
.start-card {
  background: #21403f;
  color: #fff;
  padding: clamp(32px, 5vw, 52px);
  border-radius: 10px;
}
.start-card .start-label { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #aed0cd; font-weight: 700; }
.start-card h3 { color: #fff; font-size: clamp(34px, 4vw, 48px); line-height: 1.05; margin-top: 17px; max-width: 13ch; }
.start-card p { color: #d3dfdc; font-size: 16px; line-height: 1.72; margin-top: 20px; max-width: 52ch; }
.start-card .start-outcome { margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.17); color: #fff; font-weight: 600; }
.engage-path {
  border: 1px solid var(--rule);
  background: rgba(255,255,255,.55);
  padding: 28px;
  display: grid;
  align-content: center;
  gap: 0;
}
.path-step { display: grid; grid-template-columns: 38px 1fr; gap: 15px; padding: 17px 0; }
.path-step + .path-step { border-top: 1px solid var(--rule); }
.path-step .n { width: 30px; height: 30px; border-radius: 50%; background: var(--teal-tint); color: var(--teal-deep); display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.path-step b { display: block; font-size: 14px; color: var(--ink); }
.path-step span { display: block; color: var(--ink-soft); font-size: 13px; margin-top: 3px; }
.application-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 18px; }
.application-card { border: 1px solid var(--rule); background: var(--panel); padding: 24px; }
.application-card .outcome { font-weight: 700; font-size: 14px; color: var(--ink); }
.application-card h4 { font-family: var(--font-serif); font-weight: 500; font-size: 25px; line-height: 1.18; margin-top: 10px; }
.application-card p { font-size: 14px; line-height: 1.62; color: var(--ink-soft); margin-top: 12px; }
.engage-meta { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 26px; color: var(--ink-soft); font-size: 13px; }
.engage-meta a { font-weight: 600; }
.engage-cta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 32px; }
.engage-cta .email { font-size: 13px; color: var(--ink-mute); }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .home-hero-grid { grid-template-columns: 1fr; }
  .home-mark { max-width: 650px; }
  .home-section-head { grid-template-columns: 1fr; gap: 18px; }
  .authority-flow { grid-template-columns: 1fr; gap: 14px; }
  .flow-arrow { width: 1px; height: 36px; margin: 0 auto; background: linear-gradient(#72aaa7, rgba(255,255,255,.22)); }
  .flow-arrow::after { right: -3px; top: auto; bottom: -1px; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 7px solid #72aaa7; border-bottom: 0; }
  .flow-surfaces { max-width: 660px; width: 100%; margin: 0 auto; }
  .flow-gate { max-width: 440px; width: 100%; margin: 0 auto; }
  .flow-output { max-width: 560px; width: 100%; margin: 0 auto; }
  .now-grid, .engagement-layout { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .navrow { min-height: 62px; }
  .question-grid { grid-template-columns: 1fr 1fr; }
  .question-grid p:nth-child(3) { border-left: 0; border-top: 1px solid var(--rule); }
  .question-grid p:nth-child(4) { border-top: 1px solid var(--rule); }
  .case-editorial, .application-grid { grid-template-columns: 1fr; }
  .case-editorial article { padding: 26px 0; }
  .case-editorial article + article { border-left: 0; border-top: 1px solid var(--rule); padding-left: 0; }
  .arc-split { grid-template-columns: 1fr; }
  .arc-pane + .arc-pane { border-left: 0; border-top: 1px solid var(--rule); }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-links { justify-content: flex-start; }
  .footer-note { grid-column: auto; }
}

@media (max-width: 680px) {
  :root { --page-gutter: 20px; }
  .home-hero { padding-top: 62px; }
  .home-hero h1 { font-size: clamp(44px, 13vw, 58px); }
  .home-mark { padding: 22px 18px 18px; }
  .home-section-head h2, .authority-band h2 { font-size: 40px; }
  .control-compare { grid-template-columns: 1fr; }
  .control-panel + .control-panel { border-left: 0; border-top: 1px solid var(--rule); }
  .control-panel li { grid-template-columns: 1fr; gap: 2px; }
  .question-grid { grid-template-columns: 1fr; }
  .question-grid p + p { border-left: 0; border-top: 1px solid var(--rule); }
  .flow-surfaces { grid-template-columns: 1fr; }
  .authority-note { align-items: flex-start; flex-direction: column; }
  .page-hero h1 { font-size: 43px; }
  .application-card h4 { font-size: 23px; }
  .navcta { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
.home-mark .caption .sep { width: auto; height: auto; background: none; color: var(--rule-strong); font-size: 13px; }

/* Compatibility with the shared page shell. */
.navlinks .arc-sec { color: var(--steel); }
.navlinks .arc-gov { color: var(--amber); }
.menu-panel .arc-sec { color: var(--steel); }
.menu-panel .arc-gov { color: var(--amber); }
body.page-security .page-hero {
  background:
    radial-gradient(circle at 88% 15%, rgba(61,91,107,.15), transparent 36%),
    linear-gradient(180deg, #fbfbf9 0%, #eef2f4 100%);
}
body.page-security .page-hero::after { background: var(--steel); }
body.page-security .page-hero .eyebrow { color: var(--steel); }
body.page-security .page-hero .eyebrow::before { background: var(--steel); }
body.page-governance .page-hero {
  background:
    radial-gradient(circle at 88% 15%, rgba(154,125,74,.16), transparent 36%),
    linear-gradient(180deg, #fcfbf8 0%, #f5f0e6 100%);
}
body.page-governance .page-hero::after { background: var(--amber); }
body.page-governance .page-hero .eyebrow { color: var(--amber); }
body.page-governance .page-hero .eyebrow::before { background: var(--amber); }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 24px; }
.footer-nav a { color: #c5c1b7; font-size: 12.5px; }
.footer-nav a:hover { color: #fff; }
.footer-base {
  display: flex;
  justify-content: space-between;
  gap: 12px 24px;
  flex-wrap: wrap;
  border-top: 1px solid #44443c;
  padding-top: 18px;
  margin-top: 28px;
  color: #8f8b80;
  font-size: 11.5px;
}
@media (max-width: 900px) {
  .footer-nav { justify-content: flex-start; }
}

/* Hero grid placement and mark caption. */
.home-hero-copy { grid-column: 1; grid-row: 1; }
.home-mark { grid-column: 2; grid-row: 1 / span 2; }
.home-why { grid-column: 1; grid-row: 2; margin-top: 4px; }
.home-mark .caption {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 7px 10px;
  font-size: 10.5px;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.home-mark .caption .lit { color: var(--teal-deep); font-weight: 700; }
.home-mark .caption .sep { display: inline-block; width: auto; height: auto; border-radius: 0; background: none; color: var(--rule-strong); font-size: 13px; line-height: 1; }
@media (max-width: 1080px) {
  .home-hero-copy, .home-mark, .home-why { grid-column: 1; grid-row: auto; }
  .home-mark { order: 2; }
  .home-why { order: 3; margin-top: 0; }
}


/* ============================================================
   Identity, Data, and AI commercial lenses v0.2
   ============================================================ */
.authority-context {
  padding: clamp(76px, 8vw, 108px) 0;
  background: linear-gradient(180deg, #f4f1ea 0%, #faf8f3 100%);
  border-top: 1px solid var(--rule-soft);
  border-bottom: 1px solid var(--rule-soft);
}
.context-head {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
}
.context-head h2 {
  font-size: clamp(40px, 5vw, 62px);
  line-height: 1.02;
  max-width: 13ch;
  margin-top: 18px;
}
.context-head > p { font-size: 18px; line-height: 1.72; color: var(--ink-soft); max-width: 62ch; }
.lens-grid {
  display: grid;
  grid-template-columns: .95fr 1.1fr .95fr;
  gap: 16px;
  margin-top: 48px;
  align-items: stretch;
}
.lens-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 390px;
  padding: clamp(26px, 3vw, 38px);
  border: 1px solid var(--rule);
  background: rgba(255,255,255,.72);
  color: var(--ink);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.lens-card:hover { transform: translateY(-3px); border-color: var(--rule-strong); box-shadow: var(--shadow-md); color: var(--ink); }
.lens-card--identity { border-top: 4px solid var(--steel); }
.lens-card--data { border-top: 4px solid var(--teal); }
.lens-card--ai { border-top: 4px solid var(--amber); }
.lens-card--featured { background: #fff; box-shadow: 0 14px 34px rgba(43,42,39,.07); }
.lens-number { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em; color: var(--ink-mute); }
.lens-name { margin-top: 18px; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--teal-deep); }
.lens-card--identity .lens-name { color: var(--steel); }
.lens-card--ai .lens-name { color: var(--amber); }
.lens-card h3 { font-size: clamp(28px, 3vw, 37px); line-height: 1.08; margin-top: 15px; max-width: 14ch; }
.lens-card p { font-size: 15px; line-height: 1.68; color: var(--ink-soft); margin-top: 18px; }
.lens-link { margin-top: auto; padding-top: 26px; font-size: 13px; font-weight: 700; color: var(--teal-deep); }
.data-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 22px; }
.data-actions span { padding: 6px 9px; border: 1px solid var(--rule); background: var(--teal-tint); border-radius: 999px; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--teal-deep); }
.context-question { display: grid; grid-template-columns: 190px 1fr; gap: 28px; margin-top: 26px; padding: 26px 30px; border-left: 3px solid var(--teal); background: #fff; }
.context-question span { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; color: var(--teal-deep); padding-top: 6px; }
.context-question p { font-family: var(--font-serif); font-size: clamp(23px, 2.5vw, 32px); line-height: 1.25; max-width: 38ch; }
.flow-chip { display: block; }
a.flow-chip:hover { border-color: #79aaa8; background: rgba(114,170,167,.14); color: #fff; }
.application-grid { grid-template-columns: repeat(4,1fr); }
.application-card { display: flex; flex-direction: column; }
.application-card .card-link { margin-top: auto; padding-top: 18px; font-size: 12.5px; font-weight: 700; color: var(--teal-deep); }
.brief-lenses { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin-top: 38px; border: 1px solid var(--rule); background: var(--panel); }
.brief-lenses a { padding: 28px; color: var(--ink); }
.brief-lenses a + a { border-left: 1px solid var(--rule); }
.brief-lenses b { display: block; font-family: var(--font-serif); font-size: 28px; font-weight: 500; }
.brief-lenses span { display: block; margin-top: 9px; font-size: 14px; line-height: 1.6; color: var(--ink-soft); }
.lens-nav { display: flex; gap: 8px; margin-top: 34px; }
.lens-nav a { padding: 8px 13px; border: 1px solid var(--rule); background: rgba(255,255,255,.72); border-radius: 999px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.lens-nav a.active { background: var(--teal); border-color: var(--teal); color: #fff; }
.agent-boundary-grid, .identity-chain, .identity-complement { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; margin-top: 38px; }
.agent-boundary-grid > div, .identity-complement > div { padding: 30px; border: 1px solid var(--rule); background: var(--panel); }
.agent-boundary-grid > div.ac, .identity-complement > div.ac { background: var(--teal-tint); border-color: color-mix(in srgb,var(--teal) 34%,var(--rule)); }
.agent-boundary-grid span { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--ink-mute); }
.agent-boundary-grid b, .identity-complement b { display: block; font-family: var(--font-serif); font-size: 27px; font-weight: 500; line-height: 1.15; margin-top: 12px; }
.agent-boundary-grid p, .identity-complement p { margin-top: 13px; font-size: 14.5px; line-height: 1.65; color: var(--ink-soft); }
.identity-hero { background: radial-gradient(circle at 88% 15%, rgba(61,91,107,.14), transparent 36%), linear-gradient(180deg,#fbfbf9 0%,#eef2f4 100%); }
.identity-hero::after { background: var(--steel); }
.identity-chain { grid-template-columns: repeat(3,1fr); }
.identity-chain > div { padding: 30px; border: 1px solid var(--rule); background: var(--panel); }
.identity-chain > div + div { border-left: 0; }
.identity-chain > div.ac { background: #edf4f3; border-color: color-mix(in srgb,var(--teal) 34%,var(--rule)); }
.identity-chain span, .scope-visual span { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--ink-mute); }
.identity-chain b, .scope-visual b { display: block; font-family: var(--font-serif); font-size: 27px; font-weight: 500; line-height: 1.15; margin-top: 12px; }
.identity-chain p { margin-top: 12px; color: var(--ink-soft); font-size: 14px; line-height: 1.62; }
.identity-narrow-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(360px,1.1fr); gap: clamp(36px, 7vw, 90px); align-items: center; }
.scope-visual { display: grid; gap: 12px; }
.scope-visual > div { padding: 24px 26px; border: 1px solid var(--rule); background: var(--panel); }
.scope-visual .scope-id { border-left: 4px solid var(--steel); }
.scope-visual .scope-before { border-left: 4px solid var(--teal); }
.scope-visual .scope-after { border-left: 4px solid var(--amber); background: #f7f2e8; }
.actor-grid, .identity-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-top: 38px; }
.actor-grid > div, .identity-steps > div { padding: 24px; border: 1px solid var(--rule); background: var(--panel); }
.actor-grid b, .identity-steps b { display: block; font-family: var(--font-serif); font-size: 23px; font-weight: 500; line-height: 1.2; }
.actor-grid p, .identity-steps p { margin-top: 10px; font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); }
.identity-steps span { display: block; font-family: var(--font-mono); font-size: 10.5px; color: var(--teal-deep); margin-bottom: 14px; }

@media (max-width: 1080px) {
  .lens-grid { grid-template-columns: 1fr 1fr; }
  .lens-card--ai { grid-column: 1 / -1; min-height: 300px; }
  .application-grid { grid-template-columns: 1fr 1fr; }
  .identity-narrow-grid { grid-template-columns: 1fr; }
  .actor-grid, .identity-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .context-head { grid-template-columns: 1fr; align-items: start; }
  .lens-grid, .brief-lenses, .agent-boundary-grid, .identity-chain, .identity-complement { grid-template-columns: 1fr; }
  .lens-card, .lens-card--ai { grid-column: auto; min-height: 0; }
  .brief-lenses a + a { border-left: 0; border-top: 1px solid var(--rule); }
  .context-question { grid-template-columns: 1fr; gap: 9px; padding: 23px; }
  .application-grid, .actor-grid, .identity-steps { grid-template-columns: 1fr; }
}


/* Compact homepage evidence signal */
.proof-strip { padding-top: clamp(52px, 7vw, 78px); padding-bottom: clamp(52px, 7vw, 78px); }
.proof-strip__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: clamp(36px, 6vw, 80px);
  align-items: center;
}
.proof-strip__copy .sec { max-width: 24ch; margin-top: 14px; }
.proof-strip__copy > p { max-width: 70ch; margin-top: 18px; color: var(--ink-soft); font-size: 15.5px; line-height: 1.7; }
.proof-strip__action { border-left: 1px solid var(--rule); padding-left: clamp(28px, 4vw, 48px); }
.proof-cases { display: grid; gap: 0; margin-bottom: 24px; border-top: 1px solid var(--rule); }
.proof-case { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid var(--rule); color: var(--ink); }
.proof-case:hover { color: var(--teal-deep); }
.proof-case b { font-family: var(--font-sans); font-size: 12.5px; font-weight: 700; letter-spacing: .015em; }
.proof-case span { color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }
.agency-signal { margin-top: 36px; }

@media (max-width: 780px) {
  .proof-strip__inner { grid-template-columns: 1fr; gap: 28px; }
  .proof-strip__action { border-left: 0; border-top: 1px solid var(--rule); padding-left: 0; padding-top: 24px; }
}


/* ============================================================
   Homepage readability and Zero Trust transition v0.6
   ============================================================ */
.home-why p + p { margin-top: 12px; }
.home-why .home-why-close { color: var(--ink); font-weight: 600; }
.home-section-head h2 { max-width: 20ch; }
.flow-decisions--separated { align-items: center; gap: 10px; }
.flow-decisions--separated .decision-separator {
  color: rgba(255,255,255,.38);
  font-size: 15px;
  line-height: 1;
}

.zt-transition-head { max-width: 900px; }
.zt-transition-head .sec { max-width: 20ch; }
.zt-transition-head .seclede { margin-top: 18px; }
.zt-transition-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 42px;
  align-items: stretch;
}
.zt-step {
  display: flex;
  flex-direction: column;
  min-height: 330px;
  padding: clamp(28px, 4vw, 42px);
  border: 1px solid var(--rule);
  background: var(--panel);
}
.zt-step--access { border-top: 4px solid var(--steel); }
.zt-step--authority {
  border-top: 4px solid var(--teal);
  background: linear-gradient(145deg, #f5faf9 0%, var(--teal-tint) 100%);
}
.zt-step-top { display: flex; align-items: center; gap: 14px; }
.zt-step-number {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: .12em;
  color: var(--ink-mute);
}
.zt-step-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--steel);
}
.zt-step--authority .zt-step-label { color: var(--teal-deep); }
.zt-step > p {
  margin-top: 24px;
  color: var(--ink-soft);
  font-size: 16px;
  line-height: 1.72;
  max-width: 50ch;
}
.zt-question {
  margin-top: auto;
  padding-top: 24px;
  border-top: 1px solid var(--rule);
}
.zt-question span {
  display: block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.zt-question strong {
  display: block;
  margin-top: 10px;
  font-family: var(--font-serif);
  font-size: clamp(25px, 2.7vw, 34px);
  font-weight: 500;
  line-height: 1.18;
  color: var(--ink);
  max-width: 24ch;
}
.zt-step .zt-operates {
  margin-top: 20px;
  color: var(--teal-deep);
  font-weight: 700;
  font-size: 14px;
}
.zt-learning-panel {
  margin-top: 18px;
  padding: clamp(30px, 5vw, 52px);
  border: 1px solid var(--rule);
  background: #fff;
}
.zt-learning-head {
  display: grid;
  grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr);
  column-gap: clamp(30px, 6vw, 78px);
  align-items: end;
}
.zt-learning-head .eyebrow { grid-column: 1; }
.zt-learning-head h3 {
  grid-column: 1;
  margin-top: 16px;
  font-size: clamp(31px, 3.8vw, 45px);
  line-height: 1.08;
  max-width: 13ch;
}
.zt-learning-head p {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--ink-soft);
  font-size: 15.5px;
  line-height: 1.72;
  max-width: 58ch;
  align-self: end;
}
.zt-cycle {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  margin-top: 38px;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.zt-cycle-step { position: relative; padding: 28px 30px 30px 0; }
.zt-cycle-step + .zt-cycle-step { padding-left: 30px; border-left: 1px solid var(--rule); }
.zt-cycle-step span {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: .12em;
  color: var(--teal-deep);
}
.zt-cycle-step b {
  display: block;
  margin-top: 10px;
  font-family: var(--font-serif);
  font-size: 25px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--ink);
}
.zt-cycle-step p {
  margin-top: 11px;
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.62;
}
.zt-learning-close {
  margin-top: 26px;
  font-family: var(--font-serif);
  font-size: clamp(21px, 2.3vw, 29px);
  line-height: 1.35;
  max-width: 47ch;
  color: var(--ink);
}

@media (max-width: 760px) {
  .zt-transition-grid, .zt-learning-head, .zt-cycle { grid-template-columns: 1fr; }
  .zt-step { min-height: 0; }
  .zt-question { margin-top: 28px; }
  .zt-learning-head .eyebrow, .zt-learning-head h3, .zt-learning-head p { grid-column: 1; grid-row: auto; }
  .zt-learning-head p { margin-top: 18px; }
  .zt-cycle-step { padding: 24px 0; }
  .zt-cycle-step + .zt-cycle-step { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
}
