/* ZEROS — For Facility Administrators page-specific styles.
   Pairs with ../../colors_and_type.css and styles.css.
   The literary tone: more whitespace, vertical labels, paper feel, fewer hard borders. */

.fa-page { background: var(--zeros-sand-050); }

/* ─── Header overrides — quieter, just brand + LINE ─────────────── */
.fa-page .zr-header { border-bottom: 0; background: transparent; }

.fa-eyebrow {
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-3);
  display: flex;
  align-items: center;
  gap: 12px;
}
.fa-eyebrow::before {
  content: '✦';
  color: var(--zeros-clay-500);
  font-size: 13px;
}

/* ─── Hero ──────────────────────────────────────────────────────── */
.fa-hero {
  padding-block: clamp(72px, 10vw, 140px) clamp(48px, 7vw, 96px);
  position: relative;
}
.fa-hero__sup {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(14px, 1.3vw, 16px);
  color: var(--zeros-forest-700);
  letter-spacing: 0.02em;
  margin: 0 0 32px;
}
.fa-hero__title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(36px, 5.2vw, 68px);
  line-height: 1.35;
  letter-spacing: -0.005em;
  margin: 0 0 36px;
  color: var(--fg-1);
  max-width: 22ch;
}
.fa-hero__title em {
  font-style: italic;
  font-weight: 600;
  color: var(--accent);
}
.fa-hero__sub {
  font-size: 16px;
  line-height: 2.1;
  color: var(--fg-2);
  max-width: 52ch;
  margin: 0 0 40px;
}
.fa-hero__cta {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}
.fa-hero__cta .btn { padding: 14px 24px; }
.fa-hero__cta .quiet {
  font-size: 13px;
  color: var(--fg-3);
  letter-spacing: 0.04em;
}

/* ─── Quote / pull-quote sections ───────────────────────────────── */
.fa-quote {
  padding-block: clamp(56px, 8vw, 112px);
  background: var(--zeros-sand-100);
  position: relative;
}
.fa-quote::before {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--zeros-clay-500);
  margin-bottom: 32px;
}
.fa-quote__lead {
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: 24px;
}
.fa-quote__body {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(24px, 3.2vw, 38px);
  line-height: 1.55;
  letter-spacing: -0.005em;
  color: var(--fg-1);
  margin: 0 0 32px;
  max-width: 26ch;
}
.fa-quote__body em {
  font-style: italic;
  color: var(--accent);
  font-weight: 600;
}
.fa-quote__attr {
  font-size: 14px;
  line-height: 1.85;
  color: var(--fg-3);
  max-width: 48ch;
}

/* ─── Section frame ─────────────────────────────────────────────── */
.fa-sec {
  padding-block: clamp(72px, 10vw, 128px);
  scroll-margin-top: 96px;
}
.fa-sec--alt { background: var(--zeros-sand-100); }
.fa-sec__chap {
  font-family: var(--font-numeric);
  font-style: italic;
  font-size: 56px;
  font-weight: 500;
  color: var(--zeros-clay-500);
  line-height: 1;
  margin-bottom: 16px;
}
.fa-sec__lbl {
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: 20px;
}
.fa-sec__h {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.4;
  letter-spacing: -0.005em;
  margin: 0 0 64px;
  color: var(--fg-1);
  max-width: 22ch;
}
.fa-sec__h em {
  font-style: italic;
  color: var(--accent);
  font-weight: 600;
}

/* ─── 3-stage flow (入り口 / 中継点 / 行き着く先) ─────────────── */
.fa-flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.fa-stage {
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
}
.fa-stage__vlbl {
  display: flex;
  align-items: center;
  gap: 14px;
}
.fa-stage__vchar {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.4em;
  color: var(--zeros-forest-700);
}
.fa-stage__en {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-3);
  border-top: 1px solid var(--zeros-clay-500);
  padding-top: 6px;
  flex: 1;
}
.fa-stage__h {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 22px;
  line-height: 1.55;
  margin: 0;
  color: var(--fg-1);
}
.fa-stage__p {
  font-size: 14.5px;
  line-height: 2;
  color: var(--fg-2);
  margin: 0;
}

/* ─── Showcase / Roster demo ─────────────────────────────────────── */
.fa-showcase__lead {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: 24px;
}
.fa-showcase__lead::before {
  content: '◈';
  color: var(--zeros-clay-500);
  font-size: 14px;
  letter-spacing: 0;
}
.fa-showcase {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: center;
}
.fa-roster {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 24px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  box-shadow: 0 24px 60px -24px rgba(26,23,20,0.16);
}
.fa-roster__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.fa-roster__title {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.fa-roster__title strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--fg-1);
  margin-top: 4px;
}
.fa-roster__preview-tag {
  align-self: flex-start;
  display: inline-block;
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.24em;
  color: var(--zeros-forest-50, #f5f3ed);
  background: var(--zeros-forest-700);
  padding: 6px 14px 6px 16px;
  border-radius: 0;
  margin-bottom: 4px;
}
.fa-roster__count {
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-end;
  font-family: var(--font-numeric);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: var(--zeros-forest-700);
}
.fa-roster__count em {
  font-style: normal;
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--fg-3);
  margin-left: 6px;
}
.fa-roster__as-of {
  font-family: var(--font-label);
  font-style: normal;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--fg-3);
  margin-bottom: 2px;
}
.fa-roster__count-num {
  font-size: 28px;
  line-height: 1;
}
.fa-roster__count-sub {
  font-family: var(--font-body);
  font-style: normal;
  font-size: 11px;
  color: var(--fg-3);
  letter-spacing: 0.04em;
  margin-top: 2px;
}
.fa-roster__filters {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.fa-roster__filters-lbl {
  font-family: var(--font-label);
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
  display: flex;
  gap: 8px;
  align-items: center;
}
.fa-roster__filters-lbl em {
  font-family: var(--font-numeric);
  font-style: italic;
  color: var(--zeros-forest-700);
  letter-spacing: 0;
}
.fa-roster__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.fa-roster__chip {
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  color: var(--fg-2);
}
.fa-roster__chip.is-on {
  border-color: var(--zeros-forest-700);
  color: var(--zeros-forest-700);
  background: var(--zeros-forest-100);
}
.fa-roster__table {
  border-collapse: collapse;
  width: 100%;
  font-size: 12.5px;
}
.fa-roster__table th {
  text-align: left;
  font-family: var(--font-label);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
  font-weight: 500;
  padding: 10px 8px;
  border-bottom: 1px solid var(--border);
}
.fa-roster__table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--border);
  color: var(--fg-1);
}
.fa-roster__table tr:last-child td { border-bottom: 0; }
.fa-roster__table .badge {
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--zeros-forest-100);
  color: var(--zeros-forest-700);
  font-family: var(--font-label);
  letter-spacing: 0.06em;
}
.fa-roster__table .badge--off {
  background: var(--zeros-sand-100);
  color: var(--fg-3);
}
.fa-roster__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.fa-roster__foot strong {
  font-family: var(--font-numeric);
  font-style: italic;
  color: var(--zeros-forest-700);
  letter-spacing: 0;
  margin-right: 4px;
}
.fa-roster__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--zeros-clay-700);
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: none;
}

.fa-showcase__body em {
  font-style: italic;
  color: var(--accent);
  font-weight: 600;
}
.fa-showcase__h {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 26px;
  line-height: 1.5;
  margin: 0 0 20px;
}
.fa-showcase__lbl {
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: 8px;
}
.fa-showcase__p {
  font-size: 14.5px;
  line-height: 2;
  color: var(--fg-2);
  margin: 0 0 24px;
  max-width: 40ch;
}
.fa-showcase__list {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-size: 14px;
  line-height: 1.85;
  color: var(--fg-2);
}
.fa-showcase__list li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 10px;
}
.fa-showcase__list li::before {
  content: counter(fa-roman, lower-roman) '.';
  counter-increment: fa-roman;
  font-family: var(--font-numeric);
  font-style: italic;
  color: var(--zeros-clay-700);
  font-weight: 500;
  text-align: right;
}
.fa-showcase__list { counter-reset: fa-roman; }
.fa-showcase__list strong { color: var(--fg-1); font-weight: 600; }

/* ─── Conditions / 3 conditions list ─────────────────────────────── */
.fa-cond {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.fa-cond__item {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.fa-cond__num {
  font-family: var(--font-numeric);
  font-style: italic;
  font-weight: 500;
  font-size: 32px;
  color: var(--zeros-clay-500);
  line-height: 1;
}
.fa-cond__en {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-3);
  border-top: 1px solid var(--border-strong);
  padding-top: 8px;
}
.fa-cond__h {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.55;
  margin: 0;
  color: var(--fg-1);
}
.fa-cond__h strong {
  font-family: var(--font-display);
  font-weight: 700;
  border-bottom: 2px solid var(--zeros-clay-500);
  padding: 0 2px;
}
.fa-cond__p {
  font-size: 14px;
  line-height: 2;
  color: var(--fg-2);
  margin: 0;
}

/* ─── Journey (4 steps) ──────────────────────────────────────────── */
.fa-journey {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  position: relative;
}
.fa-journey::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 36px;
  height: 1px;
  background: var(--border);
}
.fa-step {
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  padding-top: 48px;
}
.fa-step::before {
  content: '';
  position: absolute;
  top: 32px; left: 0;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--zeros-clay-500);
  box-shadow: 0 0 0 4px var(--bg);
}
.fa-step__no {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-3);
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.fa-step__no em {
  font-family: var(--font-numeric);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: var(--zeros-forest-700);
  letter-spacing: 0;
}
.fa-step__h-jp {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 26px;
  letter-spacing: 0.05em;
  margin: 0;
  color: var(--fg-1);
}
.fa-step__h-en {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--zeros-clay-700);
  margin: -6px 0 0;
}
.fa-step__p {
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--fg-2);
  margin: 0;
  flex: 1;
}
.fa-step__after {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.fa-step__after strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
  color: var(--zeros-forest-700);
  margin-top: 4px;
}

/* ─── 3 promises (paper-card feel) ────────────────────────────────── */
.fa-promises {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.fa-promise {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}
.fa-promise__rom {
  font-family: var(--font-numeric);
  font-style: italic;
  font-size: 18px;
  color: var(--zeros-clay-700);
  letter-spacing: 0.05em;
  font-weight: 500;
  border-bottom: 1px solid var(--border);
  padding-bottom: 14px;
}
.fa-promise__h {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 21px;
  line-height: 1.7;
  margin: 0;
  color: var(--fg-2);
}
.fa-promise__h strong {
  font-weight: 700;
  color: var(--fg-1);
  border-bottom: 2px solid var(--zeros-clay-500);
  padding: 0 2px;
}
.fa-promise__body {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 16px;
  line-height: 2.05;
  color: var(--fg-2);
  margin: 0;
}
.fa-promise__body em {
  font-style: italic;
  font-weight: 600;
  color: var(--accent);
}

/* ─── Translator section (bilingual title block) ─────────────────── */
.fa-translator {
  background: var(--zeros-forest-700);
  color: var(--zeros-sand-050);
  padding-block: clamp(96px, 14vw, 160px);
  position: relative;
}
.fa-translator__plate {
  display: grid;
  grid-template-columns: repeat(3, 1fr) auto;
  gap: 0;
  border-top: 1px solid var(--zeros-forest-500);
  border-bottom: 1px solid var(--zeros-forest-500);
  margin-bottom: 64px;
}
.fa-translator__cell {
  padding: 28px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-right: 1px solid var(--zeros-forest-600);
  padding-left: 28px;
}
.fa-translator__cell:first-child { padding-left: 0; }
.fa-translator__cell:last-child { border-right: 0; padding-right: 0; }
.fa-translator__jp {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 24px;
  letter-spacing: 0.32em;
  color: var(--zeros-sand-050);
}
.fa-translator__en {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--zeros-clay-300);
}
.fa-translator__cell--accent .fa-translator__jp {
  color: var(--zeros-clay-300);
  font-style: italic;
}
.fa-translator__sub {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--zeros-forest-200);
  display: flex;
  gap: 18px;
  margin-top: 6px;
}

.fa-translator__h {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.5;
  letter-spacing: -0.005em;
  margin: 0 0 36px;
  color: var(--zeros-sand-050);
  max-width: 22ch;
}
.fa-translator__h em {
  font-style: italic;
  color: var(--zeros-clay-300);
  font-weight: 600;
}
.fa-translator__body {
  font-size: 15.5px;
  line-height: 2.1;
  color: var(--zeros-forest-200);
  max-width: 60ch;
}
.fa-translator__body strong {
  color: var(--zeros-clay-300);
  font-weight: 600;
}

.fa-translator__creds {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--zeros-forest-500);
}
.fa-translator__cred dt {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--zeros-clay-300);
  margin-bottom: 8px;
}
.fa-translator__cred dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  color: var(--zeros-sand-050);
}

/* ─── Quiet Letter section (PDF download) ──────────────────────────── */
.fa-letter {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}

.fa-letter__cover {
  position: relative;
  aspect-ratio: 0.707; /* B5 */
  background: var(--zeros-sand-050);
  border: 1px solid var(--border);
  box-shadow:
    0 1px 0 rgba(26,23,20,0.04),
    0 32px 80px -32px rgba(26,23,20,0.32),
    0 12px 32px -12px rgba(26,23,20,0.18);
  padding: 48px 40px 36px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-family: var(--font-display);
}
.fa-letter__cover::before {
  content: '';
  position: absolute;
  inset: 16px;
  border: 1px solid var(--zeros-sand-300);
  pointer-events: none;
}
.fa-letter__cover-mark {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.5em;
  color: var(--zeros-clay-500);
  text-align: center;
}
.fa-letter__cover-rule {
  width: 24px;
  height: 1px;
  background: var(--zeros-clay-500);
  margin: 0 auto;
}
.fa-letter__cover-eyebrow {
  font-family: var(--font-label);
  font-size: 9px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--fg-3);
  text-align: center;
  margin-top: 4px;
}
.fa-letter__cover-h {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.65;
  letter-spacing: 0.02em;
  color: var(--fg-1);
  text-align: center;
  margin: auto 0;
}
.fa-letter__cover-h em {
  font-style: italic;
  color: var(--zeros-clay-500);
  font-weight: 600;
}
.fa-letter__cover-foot {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 16px;
  border-top: 1px solid var(--zeros-sand-300);
  font-family: var(--font-label);
  font-size: 9px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.fa-letter__cover-foot strong {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--zeros-forest-700);
}

.fa-letter__body em {
  font-style: italic;
  color: var(--accent);
  font-weight: 600;
}
.fa-letter__lead {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: 24px;
}
.fa-letter__lead::before {
  content: '✉';
  color: var(--zeros-clay-500);
  font-size: 14px;
  letter-spacing: 0;
}
.fa-letter__h {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(24px, 3.2vw, 36px);
  line-height: 1.55;
  letter-spacing: -0.005em;
  color: var(--fg-1);
  margin: 0 0 28px;
  max-width: 22ch;
}
.fa-letter__h em {
  font-style: italic;
  color: var(--accent);
  font-weight: 600;
}
.fa-letter__p {
  font-size: 14.5px;
  line-height: 2.05;
  color: var(--fg-2);
  margin: 0 0 28px;
  max-width: 50ch;
}
.fa-letter__contents-lbl {
  font-family: var(--font-label);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-3);
  border-top: 1px solid var(--border);
  padding-top: 18px;
  margin-bottom: 18px;
}
.fa-letter__contents {
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  counter-reset: fa-letter-toc;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.fa-letter__contents li {
  counter-increment: fa-letter-toc;
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 14px;
  align-items: baseline;
  font-size: 14px;
  line-height: 1.65;
  color: var(--fg-2);
  border-bottom: 1px dotted var(--zeros-sand-300);
  padding-bottom: 12px;
}
.fa-letter__contents li::before {
  content: counter(fa-letter-toc, decimal-leading-zero);
  font-family: var(--font-numeric);
  font-style: italic;
  font-weight: 500;
  color: var(--zeros-clay-700);
  font-size: 13px;
}
.fa-letter__contents li span:last-child {
  font-family: var(--font-label);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
}

.fa-letter__cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
}
.fa-letter__cta .quiet {
  font-size: 12px;
  color: var(--fg-3);
  letter-spacing: 0.04em;
}

/* ─── Final CTA ────────────────────────────────────────────────────── */
.fa-final {
  padding-block: clamp(72px, 10vw, 128px);
}
.fa-final__h {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.5;
  letter-spacing: -0.005em;
  margin: 0 0 36px;
  color: var(--fg-1);
  max-width: 22ch;
}
.fa-final__h em {
  font-style: italic;
  color: var(--accent);
  font-weight: 600;
}
.fa-final__p {
  font-size: 15px;
  line-height: 2.05;
  color: var(--fg-2);
  margin: 0 0 36px;
  max-width: 56ch;
}
.fa-final__cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.fa-final__contact {
  font-size: 13px;
  color: var(--fg-3);
  letter-spacing: 0.04em;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}
.fa-final__contact a { color: var(--fg-2); }
.fa-final__contact a:hover { color: var(--zeros-forest-700); }

/* ─── Page chapter divider ────────────────────────────────────────── */
.fa-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 0 0;
  font-size: 18px;
  color: var(--zeros-clay-500);
  letter-spacing: 0.5em;
}

/* ─── Footer ──────────────────────────────────────────────────────── */
.fa-footer {
  background: var(--zeros-forest-800);
  color: var(--zeros-forest-200);
  padding: 48px 0;
  font-size: 12px;
  letter-spacing: 0.06em;
}
.fa-footer__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
  padding-inline: clamp(20px, 5vw, 64px);
}
.fa-footer__brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 18px;
  color: var(--zeros-sand-050);
}
.fa-footer__brand::before {
  content: '✦';
  color: var(--zeros-clay-500);
}
.fa-footer__lead {
  font-family: var(--font-label);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--zeros-clay-300);
}
.fa-footer__links {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.fa-footer__links a {
  color: var(--zeros-forest-200);
  font-size: 12px;
  transition: color 200ms var(--ease);
}
.fa-footer__links a:hover { color: var(--zeros-sand-050); }
.fa-footer__rights {
  font-size: 11px;
  color: var(--zeros-forest-300);
  padding-top: 16px;
  border-top: 1px solid var(--zeros-forest-600);
}

/* ─── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 920px) {
  .fa-flow, .fa-cond, .fa-promises { grid-template-columns: 1fr; gap: 36px; }
  .fa-journey { grid-template-columns: 1fr 1fr; gap: 36px; }
  .fa-journey::before { display: none; }
  .fa-showcase { grid-template-columns: 1fr; }
  .fa-translator__plate { grid-template-columns: 1fr; }
  .fa-translator__cell { border-right: 0; border-bottom: 1px solid var(--zeros-forest-600); padding-left: 0; }
  .fa-translator__creds { grid-template-columns: 1fr; }
  .fa-letter { grid-template-columns: 1fr; }
  .fa-letter__cover { max-width: 360px; margin: 0 auto; }
}

/* ─── Mobile (≤ 640px) ───────────────────────────────────────────── */
@media (max-width: 640px) {
  .fa-hero { padding-block: 56px 40px; }
  .fa-hero__title { font-size: clamp(26px, 7vw, 34px); }
  .fa-hero__sub { font-size: 13.5px; line-height: 1.95; }
  .fa-hero__cta { flex-direction: column; align-items: stretch; gap: 10px; }
  .fa-hero__cta .btn { width: 100%; justify-content: center; }
  .fa-hero__cta .quiet { font-size: 11px; }

  .fa-quote { padding-block: 48px; }
  .fa-quote__body { font-size: 22px; line-height: 1.65; }
  .fa-quote__attr { font-size: 13px; }

  .fa-sec { padding-block: 56px; scroll-margin-top: 72px; }
  .fa-sec__chap { font-size: 40px; margin-bottom: 8px; }
  .fa-sec__h { font-size: clamp(22px, 6vw, 28px); margin-bottom: 36px; }

  /* 3-stage flow */
  .fa-stage { gap: 12px; }
  .fa-stage__h { font-size: 18px; }
  .fa-stage__p { font-size: 13.5px; line-height: 1.9; }
  .fa-stage__vchar { font-size: 18px; letter-spacing: 0.3em; }

  /* Roster preview */
  .fa-roster { padding: 16px; font-size: 12px; gap: 14px; }
  .fa-roster__head { padding-bottom: 10px; }
  .fa-roster__title strong { font-size: 14px; }
  .fa-roster__count { font-size: 18px; }
  .fa-roster__chip { font-size: 10px; padding: 3px 8px; }
  .fa-roster__table { font-size: 11px; }
  .fa-roster__table th, .fa-roster__table td { padding: 7px 6px; }
  .fa-roster__foot { font-size: 9px; }

  .fa-showcase__h { font-size: 20px; }
  .fa-showcase__p { font-size: 13.5px; line-height: 1.9; }

  /* Conditions / promises */
  .fa-cond__h { font-size: 17px; }
  .fa-cond__p { font-size: 13px; line-height: 1.9; }
  .fa-promise { padding: 28px 22px; }
  .fa-promise__h { font-size: 18px; }
  .fa-promise__body { font-size: 14px; line-height: 1.95; }

  /* Journey — single column, hide track */
  .fa-journey { grid-template-columns: 1fr; gap: 28px; }
  .fa-journey::before { display: none; }
  .fa-step { padding-top: 0; }
  .fa-step::before { display: none; }
  .fa-step__h-jp { font-size: 22px; }
  .fa-step__p { font-size: 13px; line-height: 1.9; }

  /* Letter section */
  .fa-letter__cover { max-width: 280px; padding: 32px 24px 24px; }
  .fa-letter__cover-h { font-size: clamp(17px, 5.5vw, 22px); }
  .fa-letter__h { font-size: 22px; line-height: 1.65; }
  .fa-letter__p { font-size: 13.5px; line-height: 1.95; }
  .fa-letter__contents li { font-size: 13px; grid-template-columns: 22px 1fr auto; gap: 10px; }

  /* Translator */
  .fa-translator { padding-block: 64px; }
  .fa-translator__plate { margin-bottom: 40px; }
  .fa-translator__cell { padding: 18px 0; }
  .fa-translator__jp { font-size: 19px; letter-spacing: 0.3em; }
  .fa-translator__h { font-size: 22px; line-height: 1.6; }
  .fa-translator__body { font-size: 13.5px; line-height: 1.95; }
  .fa-translator__cred dd { font-size: 13px; }

  /* Final CTA */
  .fa-final { padding-block: 56px; }
  .fa-final__h { font-size: clamp(22px, 6vw, 28px); }
  .fa-final__p { font-size: 13.5px; line-height: 1.95; }
  .fa-final__cta { flex-direction: column; align-items: stretch; gap: 10px; }
  .fa-final__cta .btn { width: 100%; justify-content: center; }
  .fa-final__contact { flex-direction: column; gap: 10px; font-size: 12px; }

  /* Footer */
  .fa-footer { padding: 36px 0; }
  .fa-footer__links { gap: 12px 18px; font-size: 11.5px; }

  /* Page-level — make taps comfortable */
  .btn { min-height: 44px; }
}
