/* ==========================================================================
   Clera One — theme stylesheet
   Converted from the Claude Design prototype (Clera.dc.html).
   Every value below is taken from the prototype; nothing is invented.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root {
  --c-kraft:        #A9825A;
  --c-ink:          #000000;
  --c-accent:       #36B84B;
  --c-paper:        #F6F6F6;

  /* ink at opacity — used on the kraft and paper grounds */
  --c-ink-82:  rgba(0, 0, 0, 0.82);
  --c-ink-78:  rgba(0, 0, 0, 0.78);
  --c-ink-68:  rgba(0, 0, 0, 0.68);
  --c-ink-66:  rgba(0, 0, 0, 0.66);
  --c-ink-60:  rgba(0, 0, 0, 0.60);
  --c-ink-40:  rgba(0, 0, 0, 0.40);
  --c-hair:    rgba(0, 0, 0, 0.18);
  --c-wash:    rgba(0, 0, 0, 0.10);
  --c-wash-06: rgba(0, 0, 0, 0.06);
  --c-veil:    rgba(255, 255, 255, 0.26);
  --c-veil-50: rgba(255, 255, 255, 0.50);

  /* dark ground */
  --c-dark:       #000000;
  --c-dark-card:  #111111;
  --c-dark-slot:  #1A1A1A;
  --c-dark-line:  #2A2A2A;
  --c-dark-line2: #333333;
  --c-dark-222:   #222222;
  --c-on-dark:      #F6F6F6;
  --c-on-dark-e0:   #E0E0E0;
  --c-on-dark-c9:   #C9C9C9;
  --c-on-dark-a8:   #A8A8A8;
  --c-on-dark-8a:   #8A8A8A;
  --c-on-dark-7a:   #7A7A7A;
  --c-on-dark-66:   #666666;

  --c-font:      "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --c-font-alt:  "Staatliches", var(--c-font);

  --c-pad-y:  96px;
  --c-pad-x:  40px;
  --c-pad-y-page: 88px;
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
html, body {
  margin: 0;
  padding: 0;
  background: var(--c-kraft) var(--c-kraft-img, none) center center / cover fixed no-repeat;
  -webkit-font-smoothing: antialiased;
}
html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }

body.clera {
  color: var(--c-ink);
  font-family: var(--c-font);
  overflow-x: hidden;
}

.clera a { color: var(--c-accent); text-decoration: none; }
.clera a:hover { color: var(--c-ink); }

.clera img { max-width: 100%; height: auto; display: block; }

.clera :focus-visible {
  outline: 3px solid var(--c-accent);
  outline-offset: 2px;
}

.c-skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--c-ink); color: var(--c-on-dark);
  padding: 12px 18px; font-size: 13px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
}
.c-skip:focus { left: 0; }

.c-sr {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------------------
   3. Shared primitives
   -------------------------------------------------------------------------- */

/* Section grounds ---------------------------------------------------------- */
.c-section { padding: var(--c-pad-y) var(--c-pad-x); }
.c-section--dark  { background: var(--c-dark); color: var(--c-on-dark); }
.c-section--paper { background: var(--c-paper); }
/* .c-section--kraft has no background: the body ground shows through. */

.c-section--dark a { color: var(--c-accent); }
.c-section--dark a:hover { color: var(--c-on-dark); }

/* Eyebrow labels ----------------------------------------------------------- */
.c-eyebrow {
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink); margin-bottom: 34px;
}
.c-section--dark .c-eyebrow { color: var(--c-accent); }

.c-eyebrow--sub {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60); margin-bottom: 14px;
}
.c-section--dark .c-eyebrow--sub { color: var(--c-on-dark-8a); }

.c-label {
  font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-78);
}
.c-label--accent { color: var(--c-accent); }

/* Grids -------------------------------------------------------------------- */
.c-autogrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--min, 280px), 1fr));
  gap: var(--gap, 32px);
}

/* Hairline grid: 1px gaps over a background make the rules between cells. */
.c-hairgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--min, 300px), 1fr));
  gap: 1px;
  background: var(--c-hair);
  border: 1px solid var(--c-hair);
}
.c-hairgrid--dark { background: var(--c-dark-line); border-color: var(--c-dark-line); }

.c-cell { background: var(--c-veil); }
.c-cell--dark { background: var(--c-dark-card); }

/* Buttons ------------------------------------------------------------------ */
/* 13 Aug 2026 fix: .c-btn--x color rules raised to .c-btn.c-btn--x (2 classes)
   because the global .clera a link-color rule (specificity 0,1,1) was silently
   beating the old single-class button rules (0,1,0), making button text the
   same green as its own accent background -- e.g. the nav CTA was fully
   invisible (green text on green fill). */
.c-btn {
  display: inline-block;
  font-family: var(--c-font);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.08em;
  border: 0;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.c-btn.c-btn--accent { background: var(--c-accent); color: var(--c-ink); }
.c-btn.c-btn--accent:hover { background: var(--c-accent); color: var(--c-ink); }
.c-btn.c-btn--ink { background: var(--c-ink); color: var(--c-on-dark); }
.c-btn.c-btn--ink:hover { background: var(--c-accent); color: var(--c-ink); }
.c-btn.c-btn--outline { border: 1.5px solid var(--c-ink); color: var(--c-ink); }
.c-btn.c-btn--outline:hover { background: var(--c-ink); color: var(--c-on-dark); }
.c-btn.c-btn--outline-light { border: 1.5px solid var(--c-on-dark); color: var(--c-on-dark); }
.c-btn.c-btn--outline-light:hover { background: var(--c-veil); color: var(--c-ink); }

.c-btn--nav  { padding: 15px 16px;  font-size: 11px; letter-spacing: 0.1em; } /* 16 Aug 2026: 8px->15px, was 30px tall, now 44px -- design-review touch-target finding */
.c-btn--nav.c-btn--accent:hover { background: var(--c-ink); color: #FFFFFF; }
.c-btn--lg   { padding: 20px 34px; font-size: 15px; }
.c-btn--md   { padding: 20px 32px; font-size: 14px; }
.c-btn--sm   { padding: 9px 15px;  font-size: 12px; }
.c-btn--sm.c-btn--accent:hover { background: var(--c-ink); color: #FFFFFF; }

.c-btn-row { display: flex; gap: 24px; flex-wrap: wrap; align-items: center; }

/* Body copy ---------------------------------------------------------------- */
.c-lead   { font-size: 21px; line-height: 1.55; margin: 0; }
.c-note   { font-size: 13px;  line-height: 1.6; margin: 0; }

.c-on-dark-copy { color: var(--c-on-dark-c9); }

/* Media placeholder slots -------------------------------------------------- */
.c-slot {
  background: var(--c-wash);
  display: flex;
  align-items: flex-end;
  padding: 16px;
}
.c-slot--dark { background: var(--c-dark-slot); }
.c-slot--center { align-items: center; justify-content: center; text-align: center; }
.c-slot__label {
  font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-78); line-height: 1.5;
}
.c-slot--dark .c-slot__label { color: var(--c-on-dark-66); }

/* Selectable chips / tiles (JS-driven) ------------------------------------- */
.c-pick {
  cursor: pointer;
  font-family: var(--c-font);
  border: 1.5px solid var(--c-ink);
  background: var(--c-paper);
  color: var(--c-ink);
  text-align: left;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.c-pick[aria-selected="true"] {
  background: var(--c-ink);
  color: var(--c-on-dark);
  border-color: var(--c-ink);
}

/* Pulse (live indicator) --------------------------------------------------- */
.c-pulse { animation: c-pulse 1.8s steps(1, end) infinite; }
@keyframes c-pulse { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) {
  .c-pulse { animation: none; opacity: 1; }
  html { scroll-behavior: auto; }
  .clera * { transition: none !important; }
}

/* --------------------------------------------------------------------------
   4. Navigation
   -------------------------------------------------------------------------- */
.c-nav {
  position: sticky; top: 0; z-index: 40;
  background: var(--c-kraft) var(--c-kraft-img, none) center center / cover fixed no-repeat;
  border-bottom: 1px solid var(--c-hair);
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 14px 40px;
}
.c-logo { display: flex; align-items: center; gap: 5px; color: var(--c-ink); line-height: 1; }
.c-logo:hover { color: var(--c-ink); }
.c-logo__a { font-size: 22px; font-weight: 900; letter-spacing: -0.03em; }
.c-logo__b { font-size: 22px; font-weight: 300; letter-spacing: -0.01em; }
.c-logo__mark {
  width: 13px; height: 13px; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0deg 90deg, var(--c-accent) 90deg 360deg);
  flex: none;
}
.c-nav__links {
  display: flex; gap: 18px; flex-wrap: wrap;
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 600; color: var(--c-ink-66);
}
.c-nav__links a { color: var(--c-ink-66); }
.c-nav__links a:hover,
.c-nav__links a[aria-current="page"],
.c-nav__links .is-current { color: var(--c-ink); }
.c-nav__toggle { display: none; }

/* --------------------------------------------------------------------------
   5. Home — hero
   -------------------------------------------------------------------------- */
.c-hero {
  position: relative; min-height: 90vh;
  display: flex; flex-direction: column; justify-content: center;
  padding: 80px 40px 70px; overflow: hidden;
}
.c-hero__leaves {
  position: absolute; right: 0; bottom: -40px; height: 96%;
  transform: scaleX(-1); opacity: 0.55; pointer-events: none;
  max-width: none; width: auto;
}
.c-hero__eyebrow {
  position: relative;
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink); margin-bottom: 40px;
}
.c-hero__title {
  font-size: clamp(58px, 9.6vw, 186px);
  font-weight: 900; line-height: 0.87; letter-spacing: -0.05em;
  margin: 0; max-width: 13em; text-wrap: balance;
}
.c-hero__title em { font-style: normal; color: var(--c-accent); }

.c-hero__commercial {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
  margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--c-hair);
  max-width: 40em;
}
.c-hero__commerciallabel {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent); flex: none;
}
.c-hero__commercialline { font-size: 20px; line-height: 1.4; font-weight: 700; color: var(--c-ink); margin: 0; }

.c-hero__rule { width: 147px; height: 8px; background: var(--c-accent); margin-top: 44px; }
.c-hero__foot {
  display: flex; gap: 64px; align-items: flex-end;
  margin-top: 44px; flex-wrap: wrap;
}
.c-hero__sub {
  font-size: 26px; line-height: 1.38; margin: 0;
  max-width: 19em; color: var(--c-ink-66);
}
.c-hero__scroll {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
}
/* --------------------------------------------------------------------------
   Home --- proof strip (added 13 Aug 2026, dual-value: environmental + operational)
   -------------------------------------------------------------------------- */
.c-proofstrip { padding: 0 40px 64px; }
.c-proofstrip__scope { margin: 0 0 12px; }
.c-proofstrip__inner {
  display: flex; align-items: flex-end; gap: 40px; flex-wrap: wrap;
  border-top: 1px solid var(--c-hair); padding-top: 32px;
}
.c-proofcard { min-width: 200px; }
.c-proofcard__top {
  display: flex; align-items: center; gap: 10px; margin-bottom: 10px;
}
.c-proofcard__kind {
  font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent);
}
.c-proofcard__status {
  font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink); border: 1px solid var(--c-ink);
  border-radius: 3px; padding: 2px 7px;
}
.c-proofcard__value {
  font-size: clamp(30px, 3.6vw, 44px); font-weight: 900; line-height: 1;
  letter-spacing: -0.02em; margin-bottom: 6px;
}
.c-proofcard__place { font-size: 13px; color: var(--c-ink-66); }
.c-proofstrip__link {
  margin-left: auto; font-size: 13px; font-weight: 700; color: var(--c-ink);
  text-decoration: none; border-bottom: 1.5px solid var(--c-accent);
  padding-bottom: 2px; white-space: nowrap;
  /* 16 Aug 2026: invisible hitbox expansion to 44px, negative margin keeps
     visual layout identical -- design-review touch-target finding */
  display: inline-block;
  padding-top: 12px; padding-bottom: 14px;
  margin-top: -12px; margin-bottom: -14px;
}
.c-proofstrip__link:hover { color: var(--c-accent); }
@media (max-width: 860px) {
  .c-proofstrip { padding: 0 22px 40px; }
  .c-proofstrip__inner { gap: 24px; padding-top: 22px; }
  .c-proofcard { min-width: 45%; }
  .c-proofstrip__link { margin-left: 0; width: 100%; }
}


/* --------------------------------------------------------------------------
   6. Home — one unit, two results
   -------------------------------------------------------------------------- */
.c-results__title {
  font-size: clamp(32px, 4.6vw, 68px);
  font-weight: 400; line-height: 1.08; letter-spacing: -0.035em;
  margin: 0; max-width: 22em; text-wrap: pretty;
}
.c-results__grid { --min: 280px; --gap: 40px; margin-top: 52px; max-width: 1400px; }

/* --------------------------------------------------------------------------
   7. Home — habits
   -------------------------------------------------------------------------- */
.c-habits__title {
  font-size: clamp(32px, 5.2vw, 78px);
  font-weight: 700; line-height: 1.02; letter-spacing: -0.042em;
  margin: 0; max-width: 18em; text-wrap: pretty;
}
.c-habits__grid {
  --min: 260px; --gap: 32px;
  margin-top: 52px; border-top: 2px solid var(--c-ink); padding-top: 28px;
}
.c-habit { display: flex; flex-direction: column; gap: 20px; }
.c-habit__slot { aspect-ratio: 4 / 3; border: 1px solid var(--c-hair); }
.c-habit__text {
  font-size: clamp(24px, 2.4vw, 34px);
  line-height: 1.15; letter-spacing: -0.015em;
}
.c-habits__foot {
  font-size: 18px; line-height: 1.6; margin: 44px 0 0;
  max-width: 42em; color: var(--c-ink-66);
}

/* --------------------------------------------------------------------------
   8. Home — three problems
   -------------------------------------------------------------------------- */
.c-problems__title {
  font-size: clamp(28px, 3.8vw, 56px);
  font-weight: 400; line-height: 1.1; letter-spacing: -0.032em;
  margin: 0 0 16px; max-width: 24em; text-wrap: pretty;
}
.c-problems__sub {
  font-size: 20px; line-height: 1.55; margin: 0;
  max-width: 36em; color: var(--c-on-dark-a8);
}
.c-problems__grid { --min: 340px; margin-top: 60px; }
.c-problem { padding: 34px 30px 30px; display: flex; flex-direction: column; gap: 18px; }
.c-problem__title {
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.02em;
}
.c-problem__body {
  font-size: 16.5px; line-height: 1.55; margin: 0;
  color: var(--c-on-dark-c9); flex: 1;
}
.c-problem__foot { border-top: 1px solid var(--c-dark-line); padding-top: 16px; }
.c-problem__foot .c-label { margin-bottom: 8px; }
.c-problem__consequence { font-size: 14.5px; line-height: 1.5; color: var(--c-on-dark-a8); }
.c-problems__kicker {
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.02em;
  margin: 44px 0 0; color: var(--c-accent);
}

/* --------------------------------------------------------------------------
   9. Home — the three lines
   -------------------------------------------------------------------------- */
.c-lines__title {
  font-size: clamp(32px, 4.8vw, 72px);
  font-weight: 900; line-height: 1.0; letter-spacing: -0.042em;
  margin: 0 0 24px; max-width: 17em; text-wrap: pretty;
}
.c-lines__intro { margin-top: 44px; }
.c-lines__intro .c-eyebrow--sub { color: var(--c-ink-68); margin-bottom: 22px; }
.c-lines__grid { --min: 300px; }

.c-linecard {
  padding: 30px 26px 28px;
  display: flex; flex-direction: column; gap: 14px;
  color: var(--c-ink);
}
.c-linecard:hover { background: var(--c-veil-50); color: var(--c-ink); }
.c-linecard__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.c-linecard__letter {
  font-size: clamp(34px, 3.6vw, 52px);
  font-weight: 900; letter-spacing: -0.05em; line-height: 0.85; color: var(--c-accent);
}
.c-linecard__status {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-68); text-align: right;
}
.c-linecard__title {
  font-size: clamp(19px, 1.9vw, 25px);
  font-weight: 700; letter-spacing: -0.022em; line-height: 1.14;
}
.c-linecard__framing {
  font-size: 12.5px; line-height: 1.5; font-style: italic; color: var(--c-ink-60);
  margin: 8px 0 0;
}
.c-linecard__rows {
  display: flex; flex-direction: column; gap: 14px; flex: 1;
  border-top: 1px solid var(--c-hair); padding-top: 16px;
}
.c-linecard__row { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: baseline; }
.c-linecard__k {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
}
.c-linecard__v { font-size: 14.5px; line-height: 1.5; color: var(--c-ink-78); }
.c-linecard__more {
  font-size: 12.5px; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink);
.c-linecard__status { display: inline-flex; align-items: center; gap: 6px; }
.c-linecard__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--c-ink-40, rgba(0,0,0,.35)); flex: none; }
.c-linecard--installed .c-linecard__dot { background: var(--c-accent); }
.c-linecard--development .c-linecard__dot { background: transparent; border: 1.5px solid var(--c-ink-60); }
.c-linecard--advocacy .c-linecard__dot { background: transparent; border: 1.5px solid var(--c-ink-40); }
.c-linecard--advocacy { opacity: 0.92; }
.c-linecard__row--impact .c-linecard__k { color: var(--c-accent); }
.c-linecard__row--impact .c-linecard__v { color: var(--c-ink); font-weight: 600; }
}

/* Stats strip */
.c-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  border-top: 2px solid var(--c-ink);
  border-bottom: 1px solid var(--c-hair);
  margin-top: 56px;
}
.c-stat { padding: 30px 26px 32px; border-right: 1px solid var(--c-hair); }
.c-stat__tag {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-ink-68); font-weight: 700; margin-bottom: 16px;
}
.c-stat__value {
  font-size: clamp(38px, 4vw, 60px);
  font-weight: 900; line-height: 0.95; letter-spacing: -0.04em; margin-bottom: 12px;
}
.c-stat__label { font-size: 13px; line-height: 1.45; color: var(--c-ink-66); }

/* Line heading */
.c-linehead { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.c-linehead--a { margin-top: 80px; }
.c-linehead--b { margin-top: 96px; }
.c-linehead__letter {
  font-size: clamp(40px, 5.4vw, 88px);
  font-weight: 900; letter-spacing: -0.05em; line-height: 0.9; color: var(--c-accent);
}
.c-linehead__meta {
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
}
.c-section--dark .c-linehead__meta,
.c-linec .c-linehead__meta { color: var(--c-on-dark-8a); }

.c-line__claim {
  font-size: clamp(26px, 3.2vw, 46px);
  font-weight: 400; line-height: 1.12; letter-spacing: -0.03em;
  margin: 26px 0 20px; max-width: 24em; text-wrap: pretty;
}
.c-line__body { font-size: 19px; line-height: 1.55; margin: 0; max-width: 40em; color: var(--c-ink-66); }
.c-line__framing {
  font-size: 14px; line-height: 1.55; font-style: italic; color: var(--c-ink-60);
  max-width: 40em; margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--c-hair);
}
.c-sdgrow { display: flex; align-items: center; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.c-sdgrow__label {
  font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
}
.c-sdgtag {
  border: 1px solid var(--c-ink); padding: 5px 11px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
}
.c-linec .c-sdgtag { border-color: var(--c-on-dark); }
.c-linec .c-sdgrow__label { color: var(--c-on-dark-8a); }

/* Block with a top rule */
.c-block { margin-top: 56px; border-top: 2px solid var(--c-ink); padding-top: 24px; }
.c-block--wide { margin-top: 72px; }
.c-block__head {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: 12px; margin-bottom: 28px;
}
.c-block__title {
  font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700;
}
.c-block__meta {
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
  display: flex; align-items: center; gap: 8px;
}
.c-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c-accent); flex: none; }

/* Two switches */
.c-switches__claim {
  font-size: clamp(22px, 2.5vw, 34px);
  font-weight: 700; line-height: 1.14; letter-spacing: -0.026em;
  margin: 0 0 32px; max-width: 22em; text-wrap: pretty;
}
.c-switches__grid { --min: 340px; }
.c-switch { padding: 32px 28px 30px; display: flex; flex-direction: column; gap: 18px; }
.c-switch__head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.c-switch__n {
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
}
.c-switch__title {
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 900; letter-spacing: -0.03em; line-height: 1.05;
}
.c-switch__row { border-top: 1px solid var(--c-hair); padding-top: 14px; }
.c-switch__k {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60); margin-bottom: 8px;
}
.c-switch__v { font-size: 15.5px; line-height: 1.55; color: var(--c-ink-78); }
.c-switch__note {
  margin-top: auto; padding: 16px 18px;
  font-size: 14.5px; line-height: 1.5; font-weight: 600;
  background: var(--c-wash-06); color: var(--c-ink-78);
}
.c-switch__note--ink { background: var(--c-ink); color: #FFFFFF; }

/* Cycle picker (Line A) */
.c-cycle { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.c-cycle__node {
  padding: 22px 20px 24px;
  display: flex; flex-direction: column; gap: 10px; min-height: 150px;
}
.c-cycle__node:hover { border-color: var(--c-accent); }
.c-cycle__step {
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; opacity: 0.6;
}
.c-cycle__title {
  font-size: clamp(20px, 1.9vw, 27px);
  font-weight: 700; line-height: 1.08; letter-spacing: -0.02em;
}
.c-cycle__sub { font-size: 13px; line-height: 1.45; opacity: 0.75; }
.c-cycle__detail {
  margin-top: 20px; background: var(--c-dark); color: var(--c-on-dark);
  padding: 30px 32px;
}
.c-cycle__detail .c-label { color: var(--c-accent); letter-spacing: 0.18em; margin-bottom: 14px; }
.c-cycle__detail p {
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.35; margin: 0; max-width: 32em;
}

/* Fact strips */
.c-facts { --min: 240px; margin-top: 44px; }
.c-facts--b { --min: 250px; }
.c-fact { padding: 26px 24px; }
.c-fact__k {
  font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink); margin-bottom: 10px;
}
.c-facts--b .c-fact__k {
  font-size: 15.5px; font-weight: 700; letter-spacing: normal; text-transform: none;
}
.c-fact__v { font-size: 15px; line-height: 1.5; color: var(--c-ink-66); }
.c-facts--b .c-fact__v { font-size: 14.5px; }

/* Line B pass */
.c-sources { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.c-source { padding: 11px 18px; font-size: 13px; font-weight: 600; letter-spacing: 0.01em; }
.c-pass { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.c-pass__node {
  padding: 24px 22px 26px; border: 1.5px solid var(--c-ink);
  background: var(--c-paper); color: var(--c-ink);
  min-height: 170px; display: flex; flex-direction: column; gap: 10px;
}
.c-pass__node--lead { background: var(--c-ink); color: var(--c-on-dark); }
.c-pass__step {
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; opacity: 0.6;
}
.c-pass__big {
  font-size: clamp(24px, 2.4vw, 34px);
  font-weight: 900; line-height: 1.0; letter-spacing: -0.03em;
}
.c-pass__sub { font-size: 14px; line-height: 1.45; opacity: 0.8; }

/* Line C inset */
.c-linec {
  margin-top: 96px; background: var(--c-dark); color: var(--c-on-dark);
  padding: 64px 40px; margin-left: -40px; margin-right: -40px;
}
.c-linec__claim {
  font-size: clamp(28px, 3.6vw, 54px);
  font-weight: 400; line-height: 1.1; letter-spacing: -0.032em;
  margin: 26px 0 22px; max-width: 22em; text-wrap: pretty;
}
.c-linec__body { font-size: 20px; line-height: 1.55; margin: 0; max-width: 40em; color: var(--c-on-dark-c9); }
.c-linec__foot {
  display: flex; align-items: center; gap: 32px; margin-top: 48px;
  flex-wrap: wrap; border-top: 1px solid var(--c-dark-line); padding-top: 40px;
}
.c-linec__reg {
  font-size: clamp(44px, 6vw, 96px);
  font-weight: 900; line-height: 0.9; letter-spacing: -0.05em;
}
.c-linec__regnote {
  font-size: 14px; line-height: 1.5; color: var(--c-on-dark-a8);
  max-width: 26em; margin-top: 12px;
}

/* --------------------------------------------------------------------------
   10. Home — why now / rules
   -------------------------------------------------------------------------- */
.c-whynow__title {
  font-size: clamp(28px, 3.9vw, 58px);
  font-weight: 400; line-height: 1.1; letter-spacing: -0.032em;
  margin: 0 0 28px; max-width: 22em; text-wrap: pretty;
}
.c-whynow__grid { --min: 300px; max-width: 1500px; }
.c-whynow__grid p { font-size: 18px; line-height: 1.6; margin: 0; color: var(--c-on-dark-c9); }

.c-rules { margin-top: 72px; }
.c-rules__title {
  font-size: clamp(24px, 2.8vw, 40px);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.028em;
  margin: 0 0 36px; max-width: 20em;
}
.c-rules__head,
.c-rule { display: grid; grid-template-columns: 200px 1.2fr 1fr; gap: 0; }
.c-rules__head {
  font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--c-on-dark-8a);
  border-bottom: 1px solid var(--c-dark-line); padding-bottom: 12px;
}
.c-rule { border-bottom: 1px solid var(--c-dark-line); padding: 26px 0; }
.c-rule__code { font-size: 24px; font-weight: 900; letter-spacing: -0.02em; line-height: 1; }
.c-rule__name { font-size: 12.5px; line-height: 1.4; color: var(--c-on-dark-8a); margin-top: 8px; }
.c-rule__col1 { padding-right: 24px; }
.c-rule__requires { font-size: 15.5px; line-height: 1.5; padding-right: 32px; color: var(--c-on-dark-e0); }
.c-rule__risk { font-size: 15.5px; line-height: 1.5; color: var(--c-accent); }
.c-rules__note {
  font-size: 13.5px; line-height: 1.6; margin: 22px 0 0;
  max-width: 46em; color: var(--c-on-dark-7a);
}

.c-rule__code a,
.c-linec__reg a {
  color: inherit; text-decoration: none; border-bottom: 1px dotted currentColor;
}
.c-rule__code a:hover,
.c-linec__reg a:hover { color: var(--c-accent); border-bottom-color: var(--c-accent); }
.c-rules__kicker {
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.02em;
  margin: 34px 0 0; max-width: 24em;
}

/* --------------------------------------------------------------------------
   11. Home — what we sell
   -------------------------------------------------------------------------- */
.c-product__title {
  font-size: clamp(34px, 5.4vw, 84px);
  font-weight: 900; line-height: 0.98; letter-spacing: -0.045em;
  margin: 0 0 24px; max-width: 17em; text-wrap: pretty;
}
.c-product__sub { font-size: 20px; line-height: 1.55; margin: 0; max-width: 38em; color: var(--c-ink-66); }

.c-log { margin-top: 60px; background: var(--c-dark); color: var(--c-on-dark); padding: 38px 36px; }
.c-log__head {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: 12px; margin-bottom: 26px;
}
.c-log__label {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  font-weight: 700; color: var(--c-on-dark-8a);
}
.c-log__rec {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent);
}
.c-log__row {
  display: flex; align-items: baseline; gap: 24px;
  padding: 14px 0; border-bottom: 1px solid var(--c-dark-222);
}
.c-log__t { font-size: 15px; color: var(--c-on-dark-7a); width: 64px; font-weight: 600; flex: none; }
.c-log__pct {
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 900; letter-spacing: -0.02em; color: var(--c-accent);
  width: 130px; flex: none;
}
.c-log__line { font-size: 15px; color: var(--c-on-dark-c9); flex: 1; }
.c-log__note { font-size: 14px; line-height: 1.55; color: var(--c-on-dark-7a); margin-top: 22px; max-width: 40em; }

.c-offer { --min: 320px; margin-top: 44px; }
.c-offer__cell { padding: 34px 30px; }
.c-offer__label {
  font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink); margin-bottom: 14px;
}
.c-offer__title {
  font-size: clamp(26px, 2.6vw, 38px);
  font-weight: 900; letter-spacing: -0.03em; line-height: 1.05; margin-bottom: 16px;
}
.c-offer__body { font-size: 17px; line-height: 1.55; margin: 0 0 18px; color: var(--c-ink-66); }
.c-offer__foot { font-size: 13.5px; letter-spacing: 0.04em; font-weight: 600; color: var(--c-ink-66); }

.c-modes { display: flex; gap: 10px; margin-bottom: 28px; flex-wrap: wrap; }
.c-mode { padding: 14px 26px; font-size: 15px; font-weight: 700; letter-spacing: 0.01em; }
.c-compare__row {
  display: grid; grid-template-columns: 280px 1fr; gap: 32px;
  border-bottom: 1px solid var(--c-hair); padding: 24px 0; align-items: baseline;
}
.c-compare__k {
  font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
}
.c-compare__v {
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 400; line-height: 1.25; letter-spacing: -0.02em;
}

.c-stages { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.c-stage { padding: 26px 24px 28px; }
.c-stage__label {
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 900; letter-spacing: -0.025em; line-height: 1.05; margin-bottom: 10px;
}
.c-stage__sub { font-size: 14px; line-height: 1.45; opacity: 0.78; }
.c-stagedetail { margin-top: 26px; --min: 280px; --gap: 40px; align-items: start; }
.c-stagedetail__title {
  font-size: clamp(24px, 2.8vw, 40px);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.028em;
  margin: 0 0 18px; max-width: 20em; text-wrap: pretty;
}
.c-stagedetail__body { font-size: 18px; line-height: 1.55; margin: 0; color: var(--c-ink-66); }
.c-bignum { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--c-hair); border: 1px solid var(--c-hair); }
.c-bignum__cell { background: var(--c-veil); padding: 26px 22px; }
.c-bignum__v {
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 900; letter-spacing: -0.04em; line-height: 0.95;
}
.c-bignum__v--sm { font-size: clamp(28px, 3vw, 44px); letter-spacing: -0.03em; }
.c-bignum__k { font-size: 13.5px; color: var(--c-ink-66); margin-top: 10px; }

/* --------------------------------------------------------------------------
   12. Home — why we solve it
   -------------------------------------------------------------------------- */
.c-why__title {
  font-size: clamp(30px, 4.2vw, 64px);
  font-weight: 400; line-height: 1.08; letter-spacing: -0.035em;
  margin: 0 0 28px; max-width: 20em; text-wrap: pretty;
}
.c-why__grid { --min: 320px; --gap: 36px; max-width: 1400px; }
.c-why__grid p { font-size: 19px; line-height: 1.6; margin: 0; color: var(--c-on-dark-c9); }

.c-commitments { margin-top: 64px; }
.c-commitments .c-eyebrow--sub { margin-bottom: 22px; }
.c-commitment {
  display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: baseline;
  border-bottom: 1px solid var(--c-dark-line); padding: 20px 0;
}
.c-commitment__k {
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 700; letter-spacing: -0.025em; line-height: 1.1;
}
.c-commitment__v {
  font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 700; color: var(--c-on-dark-8a); text-align: right;
}
.c-commitment__v--live { color: var(--c-accent); }

.c-framework { margin-top: 72px; }
.c-framework__title {
  font-size: clamp(24px, 2.8vw, 40px);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.028em;
  margin: 0 0 36px; max-width: 20em;
}
.c-framework__grid { --min: 260px; }
.c-framework__cell { padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; min-height: 230px; }
.c-framework__n { font-size: 12px; font-weight: 900; letter-spacing: 0.1em; color: var(--c-accent); }
.c-framework__t { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; }
.c-framework__b { font-size: 16px; line-height: 1.5; margin: 0; color: var(--c-on-dark-c9); flex: 1; }
.c-framework__tag {
  font-size: 12.5px; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 700; color: var(--c-on-dark-7a);
}

.c-sdgs { margin-top: 80px; border-top: 1px solid var(--c-dark-line); padding-top: 40px; }
.c-sdgs__title {
  font-size: clamp(26px, 3.2vw, 46px);
  font-weight: 900; line-height: 1.05; letter-spacing: -0.035em; margin: 0 0 32px;
}
.c-sdgs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.c-sdg { border: 1px solid var(--c-dark-line); }
.c-sdg__icon {
  aspect-ratio: 1; background: var(--c-dark-slot);
  display: flex; align-items: center; justify-content: center;
  padding: 20px; text-align: center;
}
.c-sdg__icon img { width: 100%; height: 100%; object-fit: contain; }
.c-sdg__num { font-size: 38px; font-weight: 900; letter-spacing: -0.03em; color: var(--c-on-dark-7a); }
.c-sdg__hint {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-on-dark-66); margin-top: 10px; line-height: 1.4;
}
.c-sdg__label { padding: 18px; font-size: 14.5px; font-weight: 600; line-height: 1.35; }
.c-sdgs__body { font-size: 18px; line-height: 1.6; margin: 32px 0 0; max-width: 46em; color: var(--c-on-dark-c9); }
.c-sdgs__note { font-size: 13px; line-height: 1.6; margin: 20px 0 0; max-width: 52em; color: var(--c-on-dark-7a); }
.c-sdgs__note + .c-sdgs__note { margin-top: 12px; }

/* --------------------------------------------------------------------------
   13. Home — proof
   -------------------------------------------------------------------------- */
.c-proof__title {
  font-size: clamp(34px, 5vw, 78px);
  font-weight: 900; line-height: 0.98; letter-spacing: -0.045em;
  margin: 0 0 20px; max-width: 16em;
}
.c-proof__sub { font-size: 19px; line-height: 1.55; margin: 0; max-width: 34em; color: var(--c-ink-82); }
.c-video { margin-top: 52px; border: 1px solid var(--c-hair); }
.c-video__frame { aspect-ratio: 16 / 7; }
.c-video__frame iframe, .c-video__frame video { width: 100%; height: 100%; border: 0; display: block; }
.c-video__caption { padding: 30px 28px; }
.c-video__title {
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 700; letter-spacing: -0.025em; margin-bottom: 14px;
}
.c-video__body { font-size: 17.5px; line-height: 1.55; margin: 0; max-width: 44em; color: var(--c-ink-82); }

.c-sites { --min: 300px; --gap: 20px; margin-top: 32px; }
.c-site { border: 1px solid var(--c-hair); }
.c-site__slot { aspect-ratio: 4 / 3; padding: 18px; }
.c-site__body { padding: 24px 22px 26px; }
.c-site__place {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-78); margin-bottom: 12px;
}
.c-site__big {
  font-size: clamp(26px, 2.6vw, 38px);
  font-weight: 900; letter-spacing: -0.035em; line-height: 1; margin-bottom: 14px;
}
.c-site__text { font-size: 15px; line-height: 1.5; margin: 0; color: var(--c-ink-82); }
.c-site__tag {
  display: inline-block; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent-ink, #27500A); border: 1px solid var(--c-accent);
  border-radius: 3px; padding: 2px 7px; margin-bottom: 10px;
}
.c-site__proves {
  font-size: 13px; line-height: 1.5; font-style: italic; color: var(--c-ink-60);
  margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--c-hair);
}

.c-proofc { margin-top: 64px; border-top: 2px solid var(--c-ink); padding-top: 32px; --min: 300px; --gap: 36px; }
.c-proofc__claim {
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 700; line-height: 1.12; letter-spacing: -0.025em; margin: 0;
}
.c-proofc__note { font-size: 19px; line-height: 1.6; margin: 0; color: var(--c-ink-82); align-self: end; }
.c-proof__cta { margin-top: 64px; }

/* --------------------------------------------------------------------------
   14. Home — market / news / contact
   -------------------------------------------------------------------------- */
.c-market__title {
  font-size: clamp(30px, 4.4vw, 66px);
  font-weight: 400; line-height: 1.08; letter-spacing: -0.035em;
  margin: 0 0 26px; max-width: 20em; text-wrap: pretty;
}
.c-market__body { font-size: 20px; line-height: 1.55; margin: 0; color: var(--c-on-dark-c9); }
.c-market__body a { border-bottom: 1px solid var(--c-accent); }

.c-news__grid { --min: 300px; --gap: 20px; }
.c-newscard { border: 1px solid var(--c-hair); }
.c-newscard__slot { aspect-ratio: 16 / 9; }
.c-newscard__slot .c-slot__label { color: var(--c-ink-60); }
.c-newscard__body { padding: 22px 20px 26px; }
.c-newscard__tag {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60); margin-bottom: 12px;
}
.c-newscard__title {
  font-size: clamp(20px, 2vw, 27px);
  font-weight: 700; letter-spacing: -0.022em; line-height: 1.12; margin-bottom: 12px;
}
.c-newscard__text { font-size: 15px; line-height: 1.5; margin: 0; color: var(--c-ink-66); }

.c-contact__title {
  font-size: clamp(28px, 3.9vw, 58px);
  font-weight: 400; line-height: 1.1; letter-spacing: -0.032em;
  margin: 0 0 26px; max-width: 22em; text-wrap: pretty;
}
.c-contact__grid { --min: 320px; --gap: 56px; margin-top: 44px; }
.c-contact__body { font-size: 19px; line-height: 1.6; margin: 0 0 32px; color: var(--c-on-dark-c9); max-width: 30em; }
.c-contact__org { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 10px; }
.c-contact__addr { font-size: 15.5px; line-height: 1.6; color: var(--c-on-dark-c9); }
.c-contact__mail { font-size: 15.5px; border-bottom: 1px solid var(--c-accent); }
.c-contact__altnote {
  font-size: 13.5px; line-height: 1.5; color: var(--c-on-dark-8a);
  margin: 22px 0 0; max-width: 26em; border-top: 1px solid var(--c-dark-line); padding-top: 18px;
}

.c-form { display: flex; flex-direction: column; gap: 14px; }
.c-input, .c-textarea {
  background: var(--c-dark-card); border: 1px solid var(--c-dark-line);
  color: var(--c-on-dark); padding: 15px 16px;
  font-family: var(--c-font); font-size: 15px; width: 100%;
}
.c-textarea { resize: vertical; }
.c-input::placeholder, .c-textarea::placeholder { color: var(--c-on-dark-7a); }
.c-form .c-btn { padding: 17px 22px; font-size: 14px; letter-spacing: 0.1em; align-self: stretch; }

.c-signup { margin-top: 72px; border-top: 1px solid var(--c-dark-line); padding-top: 44px; --min: 320px; --gap: 48px; }
.c-signup__title {
  font-size: clamp(22px, 2.6vw, 36px);
  font-weight: 700; line-height: 1.14; letter-spacing: -0.025em; margin: 0 0 18px; max-width: 20em;
}
.c-signup__body { font-size: 17.5px; line-height: 1.6; margin: 0; color: var(--c-on-dark-c9); max-width: 32em; }
.c-signup__embed { border: 1px dashed var(--c-dark-line2); padding: 26px; }
.c-signup__embed .c-label { color: var(--c-on-dark-7a); letter-spacing: 0.16em; margin-bottom: 18px; display: block; }
.c-signup__row { display: flex; gap: 10px; flex-wrap: wrap; }
.c-signup__row .c-input { flex: 1; min-width: 160px; width: auto; }
.c-signup__row .c-btn { background: var(--c-veil); color: var(--c-ink); padding: 14px 20px; font-size: 13px; }
.c-signup__note { font-size: 12.5px; line-height: 1.5; color: var(--c-on-dark-7a); margin-top: 16px; }

/* --------------------------------------------------------------------------
   15. Footer
   -------------------------------------------------------------------------- */
.c-footer { background: var(--c-veil); color: var(--c-ink); padding: 72px 40px 56px; }
.c-footer__top {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 40px;
  padding-bottom: 44px; border-bottom: 1px solid var(--c-hair);
}
.c-footer__logo { display: flex; align-items: center; gap: 9px; line-height: 1; }
.c-footer__logo .c-logo__a,
.c-footer__logo .c-logo__b { font-size: clamp(30px, 3.4vw, 46px); }
.c-footer__logo .c-logo__a { letter-spacing: -0.04em; }
.c-footer__logo .c-logo__b { letter-spacing: -0.02em; }
.c-footer__logo .c-logo__mark { width: 26px; height: 26px; }
.c-footer__tag {
  font-family: var(--c-font-alt); font-size: 17px; letter-spacing: 0.7em;
  text-transform: uppercase; color: var(--c-ink-40); margin-top: 14px;
}
.c-footer__org { font-size: 14.5px; line-height: 1.6; color: var(--c-ink-82); }
.c-footer__org strong { font-weight: 700; color: var(--c-ink); display: block; }
.c-footer__links { display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 600; }
.c-footer__links a { color: var(--c-ink-82); }
.c-footer__links a:hover { color: var(--c-ink); }
.c-footer__links .c-btn { align-self: flex-start; }

.c-funding {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px;
  padding: 40px 0; border-bottom: 1px solid var(--c-hair); align-items: center;
}
.c-funding__item { display: flex; align-items: center; gap: 18px; }
.c-funding__emblem {
  width: 96px; height: 64px; background: var(--c-wash);
  display: flex; align-items: center; justify-content: center;
  font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--c-ink-78); text-align: center; font-weight: 700; padding: 6px; flex: none;
}
.c-funding__emblem--wide { width: 132px; height: 52px; }
.c-funding__emblem img { max-height: 100%; width: auto; }
.c-funding__text { font-size: 14px; line-height: 1.4; font-weight: 700; }
.c-funding__note { font-size: 12px; line-height: 1.5; color: var(--c-ink-82); max-width: 24em; }

.c-legal { padding-top: 32px; display: flex; flex-direction: column; gap: 14px; max-width: 96em; }
.c-legal p { font-size: 12.5px; line-height: 1.65; margin: 0; color: var(--c-ink-82); }
.c-legal strong { font-weight: 700; color: var(--c-ink); }
.c-section--dark .c-legal p,
.c-funding--dark .c-funding__note { color: var(--c-on-dark-7a); }
.c-funding--dark { border-bottom-color: var(--c-dark-line); }
.c-funding--dark .c-funding__emblem { background: var(--c-dark-slot); color: var(--c-on-dark-66); font-size: 9px; }
.c-section--dark .c-legal strong { color: var(--c-on-dark); }

/* --------------------------------------------------------------------------
   16. Sub-pages
   -------------------------------------------------------------------------- */
.c-pagehead { padding: 88px 40px 76px; }
.c-pagehead--tight { padding: 88px 40px 70px; }
.c-pagehead__title {
  font-size: clamp(44px, 7.4vw, 140px);
  font-weight: 900; line-height: 0.9; letter-spacing: -0.05em;
  margin: 0 0 30px; max-width: 14em; text-wrap: balance;
}
.c-pagehead--tight .c-pagehead__title {
  font-size: clamp(52px, 9vw, 168px); line-height: 0.88; margin: 0;
}
.c-pagehead__sub { font-size: 22px; line-height: 1.5; margin: 0; max-width: 32em; color: var(--c-ink-66); }

.c-distinction {
  display: flex; gap: 20px; flex-wrap: wrap; margin-top: 36px; max-width: 52em;
}
.c-distinction__item {
  flex: 1 1 260px; padding: 18px 20px; background: var(--c-wash-06); border-left: 3px solid var(--c-hair);
}
.c-distinction__item--business { border-left-color: var(--c-accent); }
.c-distinction__item--advocacy { border-left-color: var(--c-ink-40); }
.c-distinction__tag {
  display: block; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 700; margin-bottom: 8px;
}
.c-distinction__item--business .c-distinction__tag { color: var(--c-accent-ink, #27500A); }
.c-distinction__item--advocacy .c-distinction__tag { color: var(--c-ink-60); }
.c-distinction__item p { font-size: 14px; line-height: 1.55; margin: 0; color: var(--c-ink-78); }

/* Projects */
.c-projects__callout {
  font-size: 15.5px; line-height: 1.6; color: var(--c-on-dark-c9);
  max-width: 46em; margin: 18px 0 40px; padding: 18px 22px;
  border-left: 3px solid var(--c-accent); background: var(--c-dark-card);
}
.c-project__proves {
  font-size: 12.5px; line-height: 1.5; color: var(--c-accent);
  margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--c-dark-line2);
}
.c-projects { display: flex; flex-direction: column; gap: 1px; background: var(--c-dark-line); border: 1px solid var(--c-dark-line); }
.c-project {
  background: var(--c-dark-card); padding: 40px 34px;
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 44px;
}
.c-project__name {
  font-size: clamp(30px, 3.6vw, 54px);
  font-weight: 900; letter-spacing: -0.04em; line-height: 0.95; margin-bottom: 14px;
}
.c-project__meta {
  font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent); line-height: 1.5;
}
.c-project__links { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 24px; }
.c-project__links span, .c-project__links a {
  font-size: 13px; color: var(--c-on-dark-8a); border-bottom: 1px solid var(--c-dark-line2);
}
.c-project__slot { aspect-ratio: 16 / 9; margin-bottom: 22px; }
.c-project__body { font-size: 18px; line-height: 1.6; margin: 0; color: var(--c-on-dark-c9); }
.c-project__note { font-size: 12.5px; line-height: 1.6; color: var(--c-on-dark-7a); margin-top: 18px; }

.c-municipal__title {
  font-size: clamp(28px, 3.8vw, 56px);
  font-weight: 700; line-height: 1.06; letter-spacing: -0.038em;
  margin: 0 0 40px; max-width: 20em; text-wrap: pretty;
}
.c-municipal__grid { --min: 320px; }
.c-municipal__cell { padding: 34px 30px; }
.c-municipal__name {
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 900; letter-spacing: -0.03em; line-height: 1.02; margin-bottom: 12px;
}
.c-municipal__tag {
  font-size: 12.5px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink); margin-bottom: 20px;
}
.c-municipal__body { font-size: 18px; line-height: 1.6; margin: 0; color: var(--c-ink-66); }

/* Team */
.c-team {
  padding: 0 40px 40px;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1px;
  background: var(--c-hair); border-top: 2px solid var(--c-ink);
}
.c-person { background: var(--c-veil); padding: 34px 30px 38px; display: flex; flex-direction: column; gap: 16px; }
.c-person__avatar {
  width: 96px; height: 96px; background: var(--c-wash);
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; font-weight: 900; letter-spacing: -0.02em; color: var(--c-on-dark-8a);
  overflow: hidden;
}
.c-person__avatar img { width: 100%; height: 100%; object-fit: cover; }
.c-person__name {
  font-size: clamp(24px, 2.4vw, 34px);
  font-weight: 900; letter-spacing: -0.032em; line-height: 1.02;
}
.c-person__role {
  font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink); margin-top: 10px;
}
.c-person__body { font-size: 17.5px; line-height: 1.6; margin: 0; color: var(--c-ink-66); }

.c-advisors { padding: 80px 40px 88px; }
.c-advisors__grid { --min: 280px; }
.c-advisor { padding: 32px 28px; display: flex; flex-direction: column; gap: 14px; min-height: 210px; }
.c-advisor__tag {
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--c-on-dark-8a);
}
.c-advisor__title {
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 700; letter-spacing: -0.025em; line-height: 1.08;
}
.c-advisor__body { font-size: 17px; line-height: 1.6; margin: 0; color: var(--c-on-dark-c9); }
.c-advisors__cta { margin-top: 56px; display: flex; gap: 22px; flex-wrap: wrap; }

/* Petition / Line C page */
.c-petition__stance {
  font-size: clamp(26px, 3.4vw, 50px);
  font-weight: 700; line-height: 1.08; letter-spacing: -0.035em;
  margin: 0; max-width: 18em; text-wrap: pretty;
}
.c-barriers { display: flex; flex-direction: column; gap: 1px; background: var(--c-dark-line); border: 1px solid var(--c-dark-line); margin-top: 56px; }
.c-barrier {
  background: var(--c-dark-card); padding: 38px 34px;
  display: grid; grid-template-columns: 96px 1fr; gap: 32px;
}
.c-barrier__n {
  font-size: clamp(40px, 4.6vw, 72px);
  font-weight: 900; letter-spacing: -0.05em; line-height: 0.85; color: var(--c-accent);
}
.c-barrier__title {
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 700; letter-spacing: -0.025em; line-height: 1.1; margin-bottom: 16px;
}
.c-barrier__body { font-size: 18px; line-height: 1.6; margin: 0; color: var(--c-on-dark-c9); }
.c-petition__ask { margin-top: 64px; border-top: 2px solid var(--c-ink); padding-top: 32px; --min: 300px; --gap: 40px; }
.c-petition__asktitle {
  font-size: clamp(24px, 3vw, 44px);
  font-weight: 900; line-height: 1.04; letter-spacing: -0.04em; margin: 0; max-width: 16em;
}
.c-petition__embed { border: 1px dashed var(--c-hair); padding: 30px; }

/* --------------------------------------------------------------------------
   Home — commercial journey (added 13 Aug 2026)
   -------------------------------------------------------------------------- */
.c-journey { padding-top: 88px; padding-bottom: 88px; }
.c-journey__title {
  font-size: clamp(26px, 3.4vw, 42px);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.03em;
  margin: 18px 0 56px; max-width: 22em; text-wrap: pretty;
}

.c-journey__steps { display: flex; flex-direction: column; gap: 0; margin-bottom: 64px; }
.c-journey__step {
  display: grid; grid-template-columns: 56px 1fr; gap: 20px;
  padding: 26px 0; border-top: 1px solid var(--c-hair);
}
.c-journey__step:last-child { border-bottom: 1px solid var(--c-hair); }
.c-journey__num {
  font-size: 15px; font-weight: 900; color: var(--c-accent); letter-spacing: -0.02em;
}
.c-journey__stitle { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 6px; }
.c-journey__sbody { font-size: 15px; line-height: 1.55; color: var(--c-ink-78); margin: 0; max-width: 42em; }

.c-journey__converge { max-width: 720px; margin: 0 auto; }
.c-journey__evrow { display: flex; gap: 16px; flex-wrap: wrap; }
.c-journey__ev { flex: 1 1 260px; padding: 20px 22px; background: var(--c-wash-06); }
.c-journey__ev--env { border-left: 3px solid var(--c-accent); }
.c-journey__ev--ops { border-left: 3px solid var(--c-ink); }
.c-journey__evtag {
  font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-68); margin-bottom: 8px;
}
.c-journey__ev p { font-size: 14.5px; line-height: 1.5; margin: 0; color: var(--c-ink); }

.c-journey__downarrow {
  width: 2px; height: 34px; background: var(--c-hair); margin: 0 auto; position: relative;
}
.c-journey__downarrow::after {
  content: ''; position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%);
  width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent;
  border-top: 8px solid var(--c-hair);
}

.c-journey__caas { background: var(--c-dark-card); color: var(--c-on-dark); padding: 40px 36px; }
.c-journey__caastitle { font-size: clamp(22px, 2.6vw, 30px); font-weight: 900; letter-spacing: -0.03em; color: #FFFFFF; }
.c-journey__caasbody { font-size: 15px; line-height: 1.55; color: var(--c-on-dark-c9); margin: 12px 0 0; max-width: 38em; }
.c-journey__earn { font-size: 14px; line-height: 1.5; color: var(--c-on-dark-8a); margin: 10px 0 32px; max-width: 38em; }

.c-journey__how { border-top: 1px solid var(--c-dark-line); padding-top: 28px; margin-bottom: 32px; }
.c-journey__howlabel {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent); margin-bottom: 14px;
}
.c-journey__hownote { font-size: 14.5px; line-height: 1.55; color: var(--c-on-dark-c9); margin: 0; }
.c-journey__hownote a { color: var(--c-accent); }

.c-journey__caas .c-btn--outline { border-color: var(--c-dark-line2); color: #FFFFFF; }
.c-journey__caas .c-btn--outline:hover { background: var(--c-dark-line2); }

@media (max-width: 860px) {
  .c-journey { padding-top: 56px; padding-bottom: 56px; }
  .c-journey__title { margin-bottom: 36px; }
  .c-journey__step { grid-template-columns: 36px 1fr; gap: 12px; padding: 20px 0; }
  .c-journey__caas { padding: 30px 24px; }
}

/* --------------------------------------------------------------------------
   Home — technology architecture (added 14 Aug 2026)
   -------------------------------------------------------------------------- */
.c-tech { padding-top: 88px; padding-bottom: 88px; }
.c-tech__title {
  font-size: clamp(26px, 3.4vw, 42px);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.03em;
  margin: 18px 0 56px; max-width: 24em; text-wrap: pretty;
}

.c-tech__tracks { max-width: 760px; margin: 0 auto; }
.c-tech__track { padding: 8px 0; }
.c-tech__tracklabel {
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-68); margin-bottom: 16px;
}
.c-tech__nodes { display: flex; gap: 14px; flex-wrap: wrap; }
.c-tech__node { flex: 1 1 200px; padding: 18px 20px; background: var(--c-wash-06); }
.c-tech__track--physical .c-tech__node { border-left: 3px solid var(--c-accent); }
.c-tech__track--digital .c-tech__node { border-left: 3px solid var(--c-ink); }
.c-tech__nodek { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; margin-bottom: 6px; }
.c-tech__nodev { font-size: 13.5px; line-height: 1.5; color: var(--c-ink-78); margin: 0; }

.c-tech__linkrow {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 14px 0;
}
.c-tech__linkline { width: 2px; height: 22px; background: var(--c-hair); }
.c-tech__linkarrow { font-size: 14px; color: var(--c-ink-68); line-height: 1; }

.c-tech__note {
  font-size: 14px; line-height: 1.55; color: var(--c-ink-68); font-style: italic;
  margin: 40px auto 0; max-width: 42em; text-align: center;
}

@media (max-width: 860px) {
  .c-tech { padding-top: 56px; padding-bottom: 56px; }
  .c-tech__title { margin-bottom: 36px; }
  .c-tech__nodes { flex-direction: column; }
}

/* --------------------------------------------------------------------------
   Home — circularity story (added 14 Aug 2026)
   -------------------------------------------------------------------------- */
.c-circ { padding-top: 88px; padding-bottom: 88px; }
.c-circ__title {
  font-size: clamp(26px, 3.4vw, 42px);
  font-weight: 700; line-height: 1.1; letter-spacing: -0.03em;
  margin: 18px 0 56px; max-width: 26em; text-wrap: pretty;
}

.c-circ__line { margin-bottom: 48px; }
.c-circ__line:last-of-type { margin-bottom: 40px; }
.c-circ__linehead {
  display: flex; align-items: center; gap: 14px; margin-bottom: 8px;
}
.c-circ__code { font-size: 15px; font-weight: 900; letter-spacing: -0.02em; }
.c-circ__status {
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
}
.c-circ__svg { display: block; width: 100%; max-width: 680px; height: auto; }

.c-circ__arc { fill: none; stroke: var(--c-ink-40); stroke-width: 1.5; }
.c-circ__node { fill: var(--c-wash-06); stroke: var(--c-hair); stroke-width: 1; }
.c-circ__num { font-size: 14px; font-weight: 700; fill: var(--c-ink-60); }
.c-circ__t { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; fill: var(--c-ink); }
.c-circ__ts { font-size: 13px; fill: var(--c-ink-68); }
.c-circ__t--closes { fill: var(--c-accent); }
.c-circ__t--blocked { fill: var(--c-ink-60); }

.c-circ__legend {
  display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
  border-top: 1px solid var(--c-hair); padding-top: 24px;
}
.c-circ__legenditem {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--c-ink-68);
}
.c-circ__dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.c-circ__dot--closes { background: var(--c-accent); }
.c-circ__dot--blocked { background: transparent; border: 1.5px solid var(--c-ink-40); }
.c-circ__cta {
  margin-left: auto; font-size: 13px; font-weight: 700; color: var(--c-ink);
  text-decoration: none; border-bottom: 1.5px solid var(--c-accent); padding-bottom: 2px;
}
.c-circ__cta:hover { color: var(--c-accent); }

@media (max-width: 860px) {
  .c-circ { padding-top: 56px; padding-bottom: 56px; }
  .c-circ__title { margin-bottom: 36px; }
  .c-circ__t { font-size: 19px; }
  .c-circ__ts { font-size: 15px; }
  .c-circ__num { font-size: 16px; }
  .c-circ__legend { gap: 16px; }
  .c-circ__cta { margin-left: 0; width: 100%; }
}

/* --------------------------------------------------------------------------
   17. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .c-project { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 900px) {
  .c-rules__head { display: none; }
  .c-rule { grid-template-columns: 1fr; gap: 14px; padding: 24px 0; }
  .c-rule__col1 { padding-right: 0; }
  .c-rule__requires { padding-right: 0; }
  .c-rule__requires::before,
  .c-rule__risk::before {
    display: block;
    font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
    font-weight: 700; color: var(--c-on-dark-8a); margin-bottom: 6px;
  }
  .c-rule__requires::before { content: "What it requires"; }
  .c-rule__risk::before { content: "If you do not act"; }

  .c-compare__row { grid-template-columns: 1fr; gap: 10px; }
  .c-commitment { grid-template-columns: 1fr; gap: 10px; }
  .c-commitment__v { text-align: left; }
  .c-barrier { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 860px) {
  :root { --c-pad-y: 64px; --c-pad-x: 22px; --c-pad-y-page: 60px; }
  .c-nav { padding: 12px 22px; flex-wrap: wrap; }
  .c-nav__toggle {
    display: inline-flex; align-items: center; gap: 8px;
    background: none; border: 1.5px solid var(--c-ink); color: var(--c-ink);
    padding: 7px 13px; font-family: var(--c-font); font-size: 11px;
    letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; cursor: pointer;
  }
  .c-nav__links {
    display: none; order: 3; width: 100%;
    flex-direction: column; gap: 0;
    border-top: 1px solid var(--c-hair); margin-top: 12px; padding-top: 4px;
  }
  .c-nav__links.is-open { display: flex; }
  .c-nav__links > * { padding: 11px 0; border-bottom: 1px solid var(--c-hair); font-size: 12px; }
  .c-nav__links > *:last-child { border-bottom: 0; }

  .c-hero { padding: 56px 22px 56px; min-height: 78vh; }
  .c-hero__leaves { height: 58%; opacity: 0.4; }
  .c-hero__foot { gap: 28px; }
  .c-linec { padding: 48px 22px; margin-left: -22px; margin-right: -22px; }
  .c-pagehead, .c-pagehead--tight { padding: 60px 22px 48px; }
  .c-team { padding: 0 22px 22px; }
  .c-advisors { padding: 56px 22px 64px; }
  .c-project { padding: 30px 24px; }
  .c-footer { padding: 56px 22px 44px; }
  .c-log { padding: 28px 22px; }
  .c-log__row { flex-wrap: wrap; gap: 8px 18px; }
  .c-log__pct { width: auto; }
  .c-log__line { flex-basis: 100%; }
  .c-stat { border-right: 0; border-bottom: 1px solid var(--c-hair); }
  .c-bignum { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .c-hero__leaves { display: none; }
  .c-nav__links { font-size: 12px; }
}

/* --------------------------------------------------------------------------
   18. Print
   -------------------------------------------------------------------------- */
@media print {
  .c-nav, .c-signup, .c-form { display: none; }
  .clera { background: #FFFFFF; }
  .c-section--dark { background: #FFFFFF; color: #000000; }
}

/* --------------------------------------------------------------------------
   19. Button-based controls — normalisation
   -------------------------------------------------------------------------- */
.c-pick[aria-pressed="true"] {
  background: var(--c-ink);
  color: var(--c-on-dark);
  border-color: var(--c-ink);
}
.c-stage { display: block; }
.c-stage__label, .c-stage__sub { display: block; }
.c-source, .c-mode { display: inline-block; }
.c-cycle__node { text-align: left; }

/* --------------------------------------------------------------------------
   20. Editor prose (default page/post template)
   -------------------------------------------------------------------------- */
.c-prose { max-width: 42em; font-size: 18px; line-height: 1.65; color: var(--c-ink-82); }
.c-prose h2 {
  font-size: clamp(26px, 3vw, 42px);
  font-weight: 900; letter-spacing: -0.035em; line-height: 1.05;
  margin: 48px 0 16px; color: var(--c-ink);
}
.c-prose h3 {
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 700; letter-spacing: -0.02em; margin: 36px 0 12px; color: var(--c-ink);
}
.c-prose p { margin: 0 0 20px; }
.c-prose ul, .c-prose ol { margin: 0 0 20px; padding-left: 1.2em; }
.c-prose li { margin-bottom: 8px; }
.c-prose a { border-bottom: 1px solid var(--c-accent); }
.c-prose blockquote {
  margin: 32px 0; padding-left: 22px;
  border-left: 3px solid var(--c-accent);
  font-size: 21px; line-height: 1.5;
}

/* Status line — the same discipline as the line cards, for a whole section. */
.c-status {
  display: inline-block;
  border: 1.5px solid var(--c-ink);
  padding: 8px 14px;
  margin-bottom: 26px;
  font-size: 11.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
}
.c-section--dark .c-status { border-color: var(--c-on-dark); }

/* Record shape — replaces the old fabricated log rows. */
.c-log__intro {
  font-size: 17px; line-height: 1.6; margin: 0 0 26px;
  max-width: 44em; color: var(--c-on-dark-c9);
}
.c-log__field {
  display: grid; grid-template-columns: 200px 1fr; gap: 24px;
  padding: 16px 0; border-bottom: 1px solid var(--c-dark-222);
  align-items: baseline;
}
.c-log__k {
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent);
}
.c-log__v { font-size: 16px; line-height: 1.5; color: var(--c-on-dark-c9); }
@media (max-width: 860px) {
  .c-log__field { grid-template-columns: 1fr; gap: 6px; }
}

.c-commitments__foot {
  font-size: 15px; line-height: 1.6; margin: 24px 0 0;
  max-width: 44em; color: var(--c-on-dark-7a);
}

.c-proofc__link {
  display: inline-block; margin-top: 16px;
  font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink);
  border-bottom: 2px solid var(--c-accent);
}
.c-proofc__link:hover { color: var(--c-accent); }

/* Hero attribution — the opening line is a named commitment, not a slogan. */
.c-hero__attr {
  margin-top: 18px;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--c-ink-60);
  padding-left: 16px; border-left: 3px solid var(--c-accent);
}

/* --------------------------------------------------------------------------
   Kraft texture v2, site-wide incl. Home + globe doodle (2026-08-12, from Figma
   'SM - ok'; Home was excluded at first per instruction, then included on request
   12 Aug 2026 to match the rest of the site)
   -------------------------------------------------------------------------- */
body {
  --c-kraft-img: url('../img/kraft-paper-v2.jpg');
}
.c-pagehead { position: relative; overflow: hidden; }
.c-pagehead__globe {
  position: absolute; right: -60px; top: -80px; width: 420px; max-width: 46vw;
  opacity: 0.5; pointer-events: none;
}
@media (max-width: 860px) {
  .c-pagehead__globe { display: none; }
}

/* --------------------------------------------------------------------------
   Animated cycle diagram — GDE reactor process, Line A (2026-08-12)
   -------------------------------------------------------------------------- */
.c-cycle { position: relative; padding-top: 34px; }
.c-cycle::before {
  content: ''; position: absolute; top: 8px; left: 28px; right: 28px; height: 2px;
  background: var(--c-hair); z-index: 1;
}
.c-cycle::after {
  content: ''; position: absolute; top: 8px; left: 28px; height: 2px;
  background: var(--c-accent); width: 0%; max-width: calc(100% - 56px);
  transition: width 1.6s cubic-bezier(.4,0,.2,1); z-index: 1;
}
.c-cycle.is-inview::after { width: 100%; }
.c-cycle__node { position: relative; padding-top: 30px; }
.c-cycle__dot {
  position: absolute; top: -26px; left: 20px; width: 16px; height: 16px; border-radius: 50%;
  background: var(--c-paper); border: 2px solid var(--c-hair); z-index: 2;
  transition: border-color .5s ease, background-color .5s ease, transform .4s ease;
  transition-delay: calc(var(--i, 0) * 0.28s);
}
.c-cycle.is-inview .c-cycle__dot { border-color: var(--c-accent); background: var(--c-accent); }
.c-cycle__node[aria-selected=true] .c-cycle__dot {
  transform: scale(1.35);
  box-shadow: 0 0 0 5px rgba(54, 184, 75, 0.22);
}
@media (max-width: 860px) {
  .c-cycle { padding-top: 0; }
  .c-cycle::before, .c-cycle::after { display: none; }
  .c-cycle__node { padding-top: 0; }
  .c-cycle__dot { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .c-cycle::after,
  .c-cycle__dot { transition: none; }
  .c-cycle.is-inview::after { width: 100%; }
  .c-cycle.is-inview .c-cycle__dot { border-color: var(--c-accent); background: var(--c-accent); }
}

/* --------------------------------------------------------------------------
   Real logo SVGs, replacing the CSS-text lockup (2026-08-12)
   -------------------------------------------------------------------------- */
.c-logo .c-logo__img { height: 26px; width: auto; max-width: none; display: block; }
.c-footer__logo .c-footer__logo-img { height: clamp(30px, 3.4vw, 46px); width: auto; max-width: none; display: block; }

/* --------------------------------------------------------------------------
   About + What We Do pages (added 14 Aug 2026, migrated off Elementor)
   -------------------------------------------------------------------------- */
.c-pagehead--tight .c-pagehead__title--sm {
  font-size: clamp(30px, 4.2vw, 54px);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.025em;
  margin: 0 0 22px; max-width: 22em; text-wrap: pretty;
}
.c-pagehead__title--sm a { color: var(--c-accent); text-decoration: none; border-bottom: 1px solid var(--c-accent); }

.c-about__h2 {
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 700; letter-spacing: -0.02em; margin: 0 0 26px;
}
.c-about__body { font-size: 17px; line-height: 1.65; max-width: 42em; color: var(--c-ink-78); margin: 0 0 20px; }
.c-about__links { display: flex; gap: 14px; flex-wrap: wrap; margin: 8px 0 40px; }

.c-about__quote {
  border-left: 3px solid var(--c-accent); padding: 4px 0 4px 24px; margin: 40px 0 32px; max-width: 40em;
}
.c-about__quote p { font-size: 19px; line-height: 1.5; font-weight: 700; letter-spacing: -0.01em; margin: 0 0 10px; }
.c-about__quote cite { font-size: 13px; font-style: normal; color: var(--c-ink-66); }

.c-about__sdg { font-size: 13.5px; line-height: 1.6; color: var(--c-ink-60); max-width: 42em; border-top: 1px solid var(--c-hair); padding-top: 20px; }

.c-about__scale { padding-top: 64px; padding-bottom: 64px; }
.c-about__scalebody { font-size: 16px; line-height: 1.7; color: var(--c-on-dark-c9); max-width: 46em; margin: 18px 0 0; }

.c-about__identity { display: flex; gap: 48px; flex-wrap: wrap; padding-top: 48px; padding-bottom: 64px; }
.c-about__idlabel { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--c-ink-60); margin-bottom: 8px; }
.c-about__idvalue { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }

.c-dividertab { display: flex; align-items: center; padding: 0 40px; }
.c-dividertab span {
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700;
  color: var(--c-ink-60); background: var(--c-paper, #fff); padding: 0 14px 0 0;
}
.c-dividertab::after { content: ''; flex: 1; height: 1px; background: var(--c-hair); margin-left: -14px; }

.c-offer { padding-top: 56px; }
.c-offer__flagship {
  background: var(--c-ink); color: var(--c-on-dark); padding: 36px; margin-bottom: 24px;
}
.c-offer__flagship .c-offer__tag { color: var(--c-accent); }
.c-offer__flagship .c-offer__title { color: #FFFFFF; }
.c-offer__flagship .c-offer__p { color: var(--c-on-dark-c9); }
.c-offer__flagship .c-offer__fit { color: var(--c-on-dark-8a); }

.c-offer__tag {
  display: inline-block; font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-accent-ink, var(--c-ink)); margin-bottom: 12px;
}
.c-offer__title { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; margin: 0 0 14px; }
.c-offer__p { font-size: 15px; line-height: 1.6; margin: 0 0 14px; }
.c-offer__fit { font-size: 13px; line-height: 1.6; margin-top: 18px; border-top: 1px solid var(--c-dark-line); padding-top: 18px; }

.c-offer__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px;
  margin-bottom: 24px;
}
.c-offer__card { background: var(--c-wash-06); padding: 30px; }
.c-offer__card--wide { max-width: none; }

.c-principles { padding-top: 56px; }
.c-principles__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px;
}
.c-principle__num { font-size: 13px; font-weight: 900; color: var(--c-accent); letter-spacing: -0.02em; margin-bottom: 10px; }
.c-principle__title { font-size: 17px; font-weight: 700; letter-spacing: -0.015em; margin: 0 0 10px; }
.c-principle__body { font-size: 14.5px; line-height: 1.6; color: var(--c-ink-78); margin: 0; }

.c-whowork { padding-top: 64px; padding-bottom: 64px; }
.c-whowork__title { font-size: clamp(24px, 2.8vw, 36px); font-weight: 700; letter-spacing: -0.02em; margin: 0 0 22px; }
.c-whowork__body { font-size: 16px; line-height: 1.65; color: var(--c-on-dark-c9); max-width: 44em; margin: 0 0 22px; }
.c-whowork__ask { font-size: 17px; line-height: 1.6; font-weight: 700; color: #FFFFFF; max-width: 40em; margin: 0 0 28px; }

@media (max-width: 860px) {
  .c-about__scale, .c-offer, .c-principles, .c-whowork { padding-top: 44px; padding-bottom: 44px; }
  .c-about__identity { gap: 28px; padding-bottom: 44px; }
  .c-offer__flagship { padding: 26px; }
  .c-offer__card { padding: 24px; }
  .c-dividertab { padding: 0 22px; }
}

/* Elementor contrast-fix rule (page-id-7671/7666) removed 14 Aug 2026 -- both
   pages migrated off Elementor onto this theme's own templates and no longer
   carry the Kit's global-colour bug this rule existed to patch. Superseded
   by the .c-about* / .c-offer* / .c-principles* / .c-whowork* rules below. */

/* FAQ — added 16 Aug 2026, native <details>/<summary>, no JS needed */
.c-faq__title {
  font-size: clamp(22px, 2.5vw, 34px);
  font-weight: 700; line-height: 1.14; letter-spacing: -0.026em;
  margin: 0 0 28px; max-width: 22em; text-wrap: pretty;
}
.c-faq__list { border-top: 1px solid var(--c-hair); }
.c-faq__item { border-bottom: 1px solid var(--c-hair); padding: 18px 0; }
.c-faq__q {
  font-size: 17px; font-weight: 700; cursor: pointer;
  list-style: none; display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
}
.c-faq__q::-webkit-details-marker { display: none; }
.c-faq__q::after {
  content: "+"; flex: none; font-weight: 400; font-size: 20px; color: var(--c-accent);
  transition: transform 0.15s ease;
}
.c-faq__item[open] .c-faq__q::after { transform: rotate(45deg); }
.c-faq__a { margin: 12px 0 0; font-size: 15.5px; line-height: 1.55; color: var(--c-ink-78); max-width: 62ch; }

/* Visual proof diagrams — added 16 Aug 2026 */
.c-diagram { margin: 32px 0; padding: 0; }
.c-diagram svg { max-width: 100%; height: auto; display: block; }
.c-diagram__caption { font-size: 13.5px; color: var(--c-ink-60); margin-top: 12px; max-width: 56em; }

/* Application cards — added 17 Aug 2026, compression pass */
.c-appgroup { margin-top: 28px; }
.c-appgroup:first-of-type { margin-top: 20px; }
.c-appgroup__label {
  font-family: ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--c-ink-60); margin-bottom: 10px;
}
.c-appgroup--initial .c-appgroup__label { color: var(--c-accent); font-weight: 700; }
.c-applist { border: 1px solid var(--c-hair); border-radius: 10px; overflow: hidden; }
.c-appcard { border-bottom: 1px solid var(--c-hair); background: var(--c-veil); }
.c-appcard:last-child { border-bottom: none; }
.c-appgroup--initial .c-appcard { background: var(--c-wash-06); }
.c-appcard__summary {
  padding: 16px 20px; cursor: pointer; list-style: none;
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
}
.c-appcard__summary::-webkit-details-marker { display: none; }
.c-appcard__title { font-weight: 700; font-size: 15px; flex: none; white-space: nowrap; }
.c-appcard__preview {
  font-size: 14px; color: var(--c-ink-60); flex: 1 1 300px; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.c-appcard__toggle { flex: none; font-weight: 400; font-size: 18px; color: var(--c-accent); margin-left: auto; }
.c-appcard__toggle::after { content: "+"; }
.c-appcard[open] .c-appcard__toggle::after { content: "\2212"; }
.c-appcard__detail { padding: 0 20px 18px; }
