/* CODEX / 2026-09-22. Pure white type and surfaces against the approved card-green background.
   Loaded last; layout, page copy, architectural images and motion stay in their existing sources. */
:root {
  --bg: #082c34;
  --bg-2: #103b43;
  --paper: #ffffff;
  --paper-2: #f3f3f3;
  --ink: #202426;
  --muted: #c5c5c5;
  --muted-dark: #585858;
  --readable-muted: #d0d0d0;
  --line: rgba(255,255,255, .22);
  --line-dark: rgba(0,0,0, .18);
  --accent: #ffffff;
  --accent-soft: #ededed;
  --brass: #ffffff;
  --digital: #ffffff;
  --white: #ffffff;
  --card-texture: url("../images/card-green-20260922.webp");
}

body { background-color: var(--bg); }
/* The same image is cached once across all nine pages. Gradients leave quiet areas behind copy. */
.section:not(.section-paper), .page-hero, .footer {
  background-color: var(--bg);
  background-image: linear-gradient(110deg, rgba(8,44,52,.72), rgba(8,44,52,.48)), var(--card-texture);
  background-position: center;
  background-size: cover;
}
.page-hero {
  background-image: linear-gradient(100deg, rgba(8,44,52,.48), rgba(8,44,52,.12)), var(--card-texture);
  background-position: center, center 36%;
}
.section.approach-section {
  background-image: linear-gradient(110deg, rgba(8,44,52,.68), rgba(8,44,52,.38)), var(--card-texture);
}
.section.contact-band {
  background-image: linear-gradient(100deg, rgba(8,44,52,.40), rgba(8,44,52,.10)), var(--card-texture);
  background-position: center, center 65%;
}
.footer {
  background-image: linear-gradient(rgba(8,44,52,.82), rgba(8,44,52,.9)), var(--card-texture);
}

.header {
  background: linear-gradient(180deg, rgba(8,44,52,.94), rgba(8,44,52,.74));
  border-bottom-color: rgba(255,255,255,.12);
}
.header.is-scrolled, .header.is-solid { background: rgba(8,44,52,.96); }
.brand-text span { color: var(--readable-muted); }
.nav a, .lang-mark { color: #eeeeee; }
.nav a:hover, .nav a.is-current { color: var(--white); }
.header-cta, .btn-primary {
  color: var(--ink);
  background: var(--accent);
  border-color: var(--accent);
}
.header-cta:hover { background: #ededed; color: var(--ink); border-color: #ededed; }
.btn-primary:hover { background: #ededed; border-color: #ededed; opacity: 1; }
.btn-ghost { background: rgba(8,44,52,.42); border-color: rgba(255,255,255,.65); }
.btn-ghost:hover { background: rgba(255,255,255,.12); opacity: 1; }

/* Keep the existing architectural dissolve visible over the card's green ground. */
.home-refined .hero, .home-refined .hero-ambient {
  background-color: var(--bg);
  background-image: linear-gradient(95deg, rgba(8,44,52,.28), rgba(8,44,52,.03)), var(--card-texture);
  background-size: cover;
  background-position: center;
}
.hero-atmosphere {
  background: linear-gradient(90deg, rgba(8,44,52,.62), rgba(8,44,52,.28) 52%, rgba(8,44,52,.12)),
              linear-gradient(180deg, transparent 68%, rgba(8,44,52,.72));
}
.hero-media::after {
  background: linear-gradient(90deg, rgba(8,44,52,.86), rgba(8,44,52,.38)),
              linear-gradient(180deg, transparent, rgba(8,44,52,.7));
}
.gold-title {
  color: var(--white);
  background: none;
  -webkit-text-fill-color: currentColor;
  filter: none;
}
.home-refined .hero-ambient h1 { text-shadow: 0 2px 18px rgba(4,27,32,.55); }
.hero-lead { color: #eeeeee; }
.hero-lead[lang="en"], .brass-text, .section-dark .lede, .section .lede-en.dark { color: var(--accent-soft); }
.hero-ambient-note, .motion-toggle { color: #d0d0d0; }
.motion-toggle { border-bottom-color: rgba(255,255,255,.4); }

/* Pure white reading surfaces and neutral charcoal text. */
.section-paper {
  --accent: #303638;
  --accent-soft: #303638;
  --brass: #303638;
  --muted: #585858;
  --readable-muted: #585858;
  background: var(--paper);
}
.section-paper .en-line, .section-paper h2 .en-line, .section-paper .card .en-copy,
.section-paper .lede-en, .section-paper .issue-list .en-line { color: #303638; }
.section-paper .text-link { color: #303638; border-color: #303638; }
.section-paper .text-link:hover { color: var(--ink); border-color: var(--ink); }
.section-paper .btn-primary { color: var(--white); }
.section-paper .btn-primary:hover { background: #383e40; border-color: #383e40; }
.section-paper .partner-support { color: #585858; }
.section-paper .card { background: #ffffff; }

.source-model, .service-model-evidence { background: #0b3039; border-color: var(--line); }
.service-model-demo {
  border-color: rgba(255,255,255,.34);
  background: radial-gradient(ellipse at 50% 43%, rgba(255,255,255,.08), rgba(8,44,52,.42) 72%);
}
.model-panels {
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
}
.bim-flow-art { color: #ffffff; }
.bim-flow-art [stroke="#c9b48a"] { stroke: var(--digital); }
.bim-flow-art [fill="#c9b48a"] { fill: var(--digital); }
.model-controls button[aria-pressed="true"] { background: rgba(255,255,255,.1); }
.model-controls button:hover { background: rgba(255,255,255,.08); }
.service-page .vision-commitment, .service-page .service-permit-next { background: rgba(255,255,255,.06); }
.service-page .service-audience, .service-page .service-permit-stages > li,
.article-toc, .article-contact { background-color: rgba(8,44,52,.32); }
.knowledge-body p, .knowledge-body ul, .knowledge-body ol,
.service-faq details p, .knowledge-hero .article-summary { color: #dedede; }

@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  :is(.service-audience,.vision-benefits > article,.service-permit-stages > li,.knowledge-card):hover {
    border-color: rgba(255,255,255,.65);
    box-shadow: inset 0 2px 0 rgba(255,255,255,.35);
  }
}
@media (max-width:900px) {
  .nav.is-open { background: #082c34; }
  .hero-atmosphere {
    background: linear-gradient(90deg, rgba(8,44,52,.45), rgba(8,44,52,.12)),
                linear-gradient(180deg, rgba(8,44,52,.06), rgba(8,44,52,.14) 35%, rgba(8,44,52,.62) 76%);
  }
}

/* CODEX / 2026-09-22: explicit neutral rendering where older styles used tinted whites. */
.brand-text strong { color: #fff; }
.brand img { filter: grayscale(1); background: #fff; mix-blend-mode: normal; opacity: 1; }
.hero-lead[lang="en"], .hero h1 .en-line { color: #eee; }
.section-paper { --digital: #303638; }
.section-paper .bim-flow-art { color: #303638; }
.section-paper .btn-ghost { color: #202426; background: transparent; border-color: #585858; }
.section-paper .btn-ghost:hover { background: #f3f3f3; }
.footer p, .footer a, .bilingual p[lang="en"] { color: #dedede; }
.section-paper .bilingual p[lang="en"] { color: #585858; }
.section:not(.section-paper) .lede { color: #dedede; }
.line-qr { background: #fff; filter: none; mix-blend-mode: normal; }
.hero-atmosphere {
  background: linear-gradient(90deg, rgba(0,0,0,.50), rgba(0,0,0,.20) 52%, rgba(0,0,0,.08)),
              linear-gradient(180deg, transparent 68%, rgba(0,0,0,.28));
}
@media (max-width:900px) {
  .hero-atmosphere {
    background: linear-gradient(90deg, rgba(0,0,0,.35), rgba(0,0,0,.08)),
                linear-gradient(180deg, transparent, rgba(0,0,0,.10) 35%, rgba(0,0,0,.38) 76%);
  }
}
