/* ═══════════════════════════════════════════════════════
   Goverion · style.css
   Design system: Red / Black / White
   Font: Plus Jakarta Sans
═══════════════════════════════════════════════════════ */

/* ── Variables ───────────────────────────────────────── */
:root {
  --red:         #E11C2A;
  --red-dark:    #B8141F;
  --red-dim:     rgba(225,28,42,0.1);
  --red-border:  rgba(225,28,42,0.22);
  --black:       #080808;
  --char:        #111111;
  --char-mid:    #1A1A1A;
  --char-light:  #252525;
  --char-border: #2D2D2D;
  --white:       #FFFFFF;
  --offwhite:    #F7F6F4;
  --gray-100:    #F0EFED;
  --gray-200:    #E2E1DF;
  --gray-400:    #9A9896;
  --gray-600:    #5C5A58;
  --gray-800:    #2E2D2B;
  --font:        'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --r:           5px;
  --ease:        cubic-bezier(0.4,0,0.2,1);
  --t:           0.2s;
  --nav-h:       68px;
  --section-v:   7rem;
  --wrap-max:    1200px;
}

/* ── Reset ───────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { font-family:var(--font); font-size:16px; line-height:1.65; background:var(--white); color:var(--black); overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
ul { list-style:none; }
button { font-family:var(--font); }
input, textarea, select { font-family:var(--font); }

/* ── Skip link ───────────────────────────────────────── */
.skip-link {
  position:absolute; top:-40px; left:1rem; z-index:9999;
  background:var(--red); color:var(--white);
  padding:0.5rem 1rem; border-radius:var(--r);
  transition:top var(--t);
}
.skip-link:focus { top:1rem; }

/* ── Typography ──────────────────────────────────────── */
h1,h2,h3,h4,h5 { font-weight:700; line-height:1.08; letter-spacing:-0.03em; }
h1 { font-size:clamp(2.6rem, 5.5vw, 5rem); }
h2 { font-size:clamp(1.9rem, 3.8vw, 3.4rem); }
h3 { font-size:clamp(1.3rem, 2.2vw, 1.9rem); letter-spacing:-0.02em; }
h4 { font-size:1.05rem; letter-spacing:-0.01em; }
h5 { font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; font-weight:700; }
p  { line-height:1.78; }

.label {
  display:inline-block; font-size:0.68rem; font-weight:700;
  letter-spacing:0.18em; text-transform:uppercase; color:var(--red);
  margin-bottom:0.9rem;
}

/* ── Layout ──────────────────────────────────────────── */
.wrap      { max-width:var(--wrap-max); margin:0 auto; padding:0 2rem; }
.wrap--wide{ max-width:1400px; margin:0 auto; padding:0 2rem; }

section, .section { padding:var(--section-v) 0; }

/* Section colour modes */
.s-dark    { background:var(--black); color:var(--white); }
.s-char    { background:var(--char); color:var(--white); }
.s-light   { background:var(--white); color:var(--black); }
.s-offwhite{ background:var(--offwhite); color:var(--black); }
.s-red     { background:var(--red); color:var(--white); }

.s-dark p, .s-char p    { color:rgba(255,255,255,0.55); }
.s-light p, .s-offwhite p { color:var(--gray-600); }
.s-red p { color:rgba(255,255,255,0.75); }

.divider { width:100%; height:1px; background:var(--char-border); }
.divider--light { background:var(--gray-200); }

/* Grid helpers */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:start; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }

/* Section heading */
.sh { margin-bottom:3.5rem; }
.sh h2 { margin-bottom:0.8rem; }
.sh p  { max-width:580px; }

/* ── Nav ─────────────────────────────────────────────── */
.site-nav {
  position:fixed; top:0; left:0; right:0; z-index:900;
  transition:background var(--t) var(--ease), border-color var(--t) var(--ease);
  border-bottom:1px solid transparent;
}
.site-nav.scrolled {
  background:rgba(8,8,8,0.96);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-color:var(--char-border);
}
.nav-wrap {
  display:flex; align-items:center; justify-content:space-between;
  height:var(--nav-h); padding:0 2.5rem;
  max-width:1400px; margin:0 auto;
}
.nav-brand { display:flex; flex-direction:column; cursor:pointer; }
.nav-logo  { font-size:1.4rem; font-weight:800; letter-spacing:-0.03em; color:var(--white); line-height:1; }
.nav-logo em { font-style:normal; color:var(--white); }
.nav-logo::after { content:''; display:block; height:2px; width:100%; background:var(--red); margin-top:3px; }
.nav-sub   { font-size:0.55rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.3); margin-top:3px; font-weight:500; }

.nav-right { display:flex; align-items:center; gap:2rem; }
.nav-links { display:flex; align-items:center; gap:1.75rem; }
.nav-link  {
  font-size:0.76rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:rgba(255,255,255,0.5); transition:color var(--t); white-space:nowrap;
}
.nav-link:hover, .nav-link.active { color:var(--white); }

.btn-nav {
  display:inline-flex; align-items:center;
  padding:0.5rem 1.2rem;
  background:var(--red); color:var(--white);
  font-size:0.75rem; font-weight:700; letter-spacing:0.04em;
  border-radius:var(--r); transition:background var(--t), transform var(--t);
  white-space:nowrap;
}
.btn-nav:hover { background:var(--red-dark); transform:translateY(-1px); }

/* Hamburger */
.nav-ham {
  display:none; flex-direction:column; gap:5px;
  padding:4px; cursor:pointer; background:none; border:none;
  -webkit-tap-highlight-color:transparent;
}
.nav-ham span { display:block; width:22px; height:1.5px; background:var(--white); transition:all var(--t); }
.nav-ham[aria-expanded="true"] span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.nav-ham[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-ham[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Mobile menu */
.nav-mobile {
  display:none; flex-direction:column;
  background:rgba(8,8,8,0.98);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  padding:1rem 2.5rem 2rem;
  border-top:1px solid var(--char-border);
}
.nav-mobile.open { display:flex; }
.mob-link {
  display:block; padding:0.75rem 0;
  font-size:0.88rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase;
  color:rgba(255,255,255,0.5); border-bottom:1px solid var(--char-border);
  transition:color var(--t);
}
.mob-link:hover, .mob-link.active { color:var(--white); }
.mob-link:last-child { border-bottom:none; }
.mob-cta { color:var(--red) !important; margin-top:0.5rem; }

/* ── Buttons ─────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:0.45rem;
  padding:0.82rem 1.9rem;
  font-size:0.875rem; font-weight:700; letter-spacing:0.03em;
  border-radius:var(--r); cursor:pointer;
  transition:all var(--t) var(--ease);
  border:1.5px solid transparent; white-space:nowrap;
  text-align:center;
}
.btn-red   { background:var(--red); color:var(--white); border-color:var(--red); }
.btn-red:hover { background:var(--red-dark); border-color:var(--red-dark); transform:translateY(-2px); box-shadow:0 8px 26px rgba(225,28,42,0.35); }

.btn-outline-w { background:transparent; color:var(--white); border-color:rgba(255,255,255,0.28); }
.btn-outline-w:hover { border-color:var(--white); transform:translateY(-2px); }

.btn-outline-b { background:transparent; color:var(--black); border-color:rgba(0,0,0,0.2); }
.btn-outline-b:hover { border-color:var(--black); transform:translateY(-2px); }

.btn-white { background:var(--white); color:var(--black); border-color:var(--white); }
.btn-white:hover { background:var(--offwhite); transform:translateY(-2px); box-shadow:0 8px 26px rgba(0,0,0,0.15); }

.btn-group { display:flex; gap:0.85rem; flex-wrap:wrap; }

/* ── Cards ───────────────────────────────────────────── */
.card {
  background:var(--char-mid); border:1px solid var(--char-border);
  border-radius:var(--r); padding:2rem;
  transition:border-color var(--t), transform var(--t), box-shadow var(--t);
}
.card:hover {
  border-color:var(--red-border); transform:translateY(-4px);
  box-shadow:0 20px 48px rgba(0,0,0,0.4);
}
.card--light {
  background:var(--white); border-color:var(--gray-200);
  color:var(--black);
}
.card--light:hover {
  border-color:rgba(225,28,42,0.25);
  box-shadow:0 20px 48px rgba(0,0,0,0.08);
}
.card--light p { color:var(--gray-600); }

.card-num {
  font-size:2.4rem; font-weight:800; letter-spacing:-0.05em;
  color:rgba(225,28,42,0.1); line-height:1; margin-bottom:0.8rem;
}
.card h3 { margin-bottom:0.65rem; }
.card h4 { margin-bottom:0.45rem; }

.card-feat { list-style:none; margin-top:1.2rem; }
.card-feat li {
  display:flex; align-items:flex-start; gap:0.6rem;
  padding:0.5rem 0; border-bottom:1px solid var(--char-border);
  font-size:0.88rem; color:rgba(255,255,255,0.55); line-height:1.5;
}
.card-feat li::before { content:'→'; color:var(--red); flex-shrink:0; margin-top:1px; }
.card-feat--light li { border-color:var(--gray-200); color:var(--gray-600); }

/* ── Page hero (inner pages) ─────────────────────────── */
.page-hero {
  padding:5.5rem 0 4rem;
  background:var(--black);
  position:relative; overflow:hidden;
  border-bottom:1px solid var(--char-border);
}
.page-hero::after {
  content:'';
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 55% 80% at 80% 50%, rgba(225,28,42,0.06) 0%, transparent 70%);
}
.page-hero .wrap { position:relative; z-index:2; }
.page-hero h1    { color:var(--white); margin-bottom:1rem; max-width:820px; }
.page-hero .hero-sub {
  font-size:1.1rem; color:rgba(255,255,255,0.5);
  max-width:580px; font-weight:400; line-height:1.65;
}

/* ── HOME — Hero ─────────────────────────────────────── */
.hero {
  min-height:calc(100vh - var(--nav-h));
  display:flex; align-items:center;
  background:var(--black); padding:5rem 0;
  position:relative; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 60% at 68% 42%, rgba(225,28,42,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 30% 50% at 15% 80%, rgba(225,28,42,0.04) 0%, transparent 60%);
}
.hero-grid-lines {
  position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse 80% 80% at 50% 50%, black 25%, transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%, black 25%, transparent 100%);
}
.hero-inner {
  position:relative; z-index:2; width:100%;
  display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center;
}
.hero-eyebrow {
  display:inline-flex; align-items:center; gap:0.6rem; margin-bottom:1.5rem;
}
.hero-eyebrow::before { content:''; display:block; width:22px; height:2px; background:var(--red); }
.hero-eyebrow span { font-size:0.67rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--red); font-weight:700; }
.hero h1 { color:var(--white); margin-bottom:1.3rem; }
.hero h1 em { font-style:normal; color:var(--red); }
.hero-sub  { font-size:1.1rem; color:rgba(255,255,255,0.5); max-width:480px; margin-bottom:1.1rem; line-height:1.65; }
.hero-body { font-size:0.9rem; color:rgba(255,255,255,0.35); max-width:460px; margin-bottom:2.4rem; line-height:1.85; }

/* System panel (hero right) */
.hero-panel {
  background:var(--char); border:1px solid var(--char-border); border-radius:8px;
  overflow:hidden; position:relative;
  box-shadow:0 40px 80px rgba(0,0,0,0.5);
}
.hero-panel::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--red), transparent);
}
.panel-bar {
  display:flex; align-items:center; justify-content:space-between;
  padding:0.9rem 1.3rem; border-bottom:1px solid var(--char-border);
}
.panel-bar-title { font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.35); font-weight:600; }
.panel-live { display:flex; align-items:center; gap:0.45rem; font-size:0.65rem; color:rgba(255,255,255,0.3); }
.live-dot { width:6px; height:6px; border-radius:50%; background:#22c55e; animation:livePulse 2s ease infinite; }
@keyframes livePulse {
  0%,100% { opacity:1; box-shadow:0 0 0 0 rgba(34,197,94,0.4); }
  50%      { opacity:0.8; box-shadow:0 0 0 5px rgba(34,197,94,0); }
}
.panel-layers { padding:1.2rem; display:flex; flex-direction:column; gap:0; }
.panel-layer {
  display:flex; align-items:center; gap:0.9rem;
  padding:0.85rem 1rem; background:var(--char-mid); border:1px solid var(--char-border);
  border-radius:4px;
}
.layer-num  { font-size:0.58rem; font-weight:800; letter-spacing:0.12em; color:var(--red); min-width:20px; }
.layer-info { flex:1; }
.layer-name { font-size:0.8rem; font-weight:700; color:var(--white); line-height:1; }
.layer-tags { display:flex; gap:0.35rem; margin-top:0.3rem; flex-wrap:wrap; }
.l-tag { font-size:0.58rem; padding:0.1rem 0.45rem; border-radius:3px; background:var(--char-light); color:rgba(255,255,255,0.38); font-weight:500; }
.layer-state { width:7px; height:7px; border-radius:50%; background:var(--red); box-shadow:0 0 7px rgba(225,28,42,0.5); flex-shrink:0; }

.panel-conn { height:22px; margin:0 1.2rem; position:relative; }
.panel-conn::before { content:''; position:absolute; left:10px; top:0; bottom:0; width:1px; background:var(--char-border); }
.conn-dot {
  width:5px; height:5px; border-radius:50%; background:var(--red);
  position:absolute; left:8px;
  animation:connFlow 1.8s ease-in-out infinite; opacity:0;
}
.conn-dot:nth-child(2) { animation-delay:0.6s; }
@keyframes connFlow { 0%{top:0;opacity:0} 15%{opacity:1} 85%{opacity:1} 100%{top:100%;opacity:0} }

.panel-foot {
  display:grid; grid-template-columns:1fr 1fr;
  border-top:1px solid var(--char-border); padding:1rem 1.3rem; gap:1rem;
}
.pf-val   { font-size:1.05rem; font-weight:800; color:var(--white); line-height:1; }
.pf-label { font-size:0.6rem; color:rgba(255,255,255,0.3); margin-top:0.25rem; text-transform:uppercase; letter-spacing:0.08em; }

/* ── Stat strip ──────────────────────────────────────── */
.stat-strip { background:var(--char); padding:2.5rem 0; border-top:1px solid var(--char-border); border-bottom:1px solid var(--char-border); }
.stat-row   { display:grid; grid-template-columns:repeat(4,1fr); }
.stat-item  { padding:0 2.5rem; border-right:1px solid var(--char-border); }
.stat-item:first-child { padding-left:0; }
.stat-item:last-child  { border-right:none; }
.stat-val  { font-size:clamp(1.7rem,3vw,2.5rem); font-weight:800; letter-spacing:-0.04em; color:var(--white); line-height:1; }
.stat-val em { font-style:normal; color:var(--red); }
.stat-desc { font-size:0.76rem; color:rgba(255,255,255,0.38); margin-top:0.4rem; line-height:1.4; }

/* ── What is Goverion ────────────────────────────────── */
.what-grid { display:grid; grid-template-columns:1fr 2fr; gap:6rem; align-items:start; }
.what-left h2 { margin-bottom:0; }
.what-right p + p { margin-top:1rem; }

/* ── Why columns ─────────────────────────────────────── */
.why-intro {
  font-size:clamp(1.1rem,1.9vw,1.38rem); font-weight:600;
  color:var(--white); max-width:820px; line-height:1.55;
  letter-spacing:-0.02em; margin-bottom:1.8rem;
}
.why-cols  { display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; margin-top:3.5rem; }
.why-col h4 { color:var(--white); margin-bottom:0.55rem; }

/* ── Architecture diagram ────────────────────────────── */
.arch-grid { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.arch-text h2 { margin-bottom:1.1rem; }
.arch-text p + p { margin-top:0.9rem; }

.arch-layer {
  display:flex; align-items:stretch; border:1px solid var(--gray-200);
  border-radius:var(--r); overflow:hidden; background:var(--white);
  transition:border-color var(--t), box-shadow var(--t);
}
.arch-layer:hover { border-color:rgba(225,28,42,0.3); box-shadow:0 6px 20px rgba(0,0,0,0.07); }
.arch-bar { width:4px; flex-shrink:0; }
.arch-bar.l1 { background:var(--red); }
.arch-bar.l2 { background:rgba(225,28,42,0.65); }
.arch-bar.l3 { background:rgba(225,28,42,0.4); }
.arch-bar.l4 { background:rgba(225,28,42,0.2); }
.arch-body  { padding:1rem 1.2rem; flex:1; }
.arch-label { font-size:0.58rem; font-weight:800; letter-spacing:0.14em; color:var(--red); margin-bottom:0.25rem; }
.arch-name  { font-size:0.88rem; font-weight:700; color:var(--black); letter-spacing:-0.01em; }
.arch-desc  { font-size:0.76rem; color:var(--gray-600); margin-top:0.18rem; line-height:1.5; }
.arch-right { padding:0 1rem; display:flex; align-items:center; }
.arch-dot   { width:8px; height:8px; border-radius:50%; background:var(--red); box-shadow:0 0 6px rgba(225,28,42,0.5); }

.arch-conn  { height:18px; margin-left:1.5rem; position:relative; }
.arch-conn::before { content:''; position:absolute; left:8px; top:0; bottom:0; width:1px; background:var(--gray-200); }
.arch-conn-dot {
  width:5px; height:5px; border-radius:50%; background:var(--red);
  position:absolute; left:5.5px;
  animation:archFlow 1.5s ease-in-out infinite; opacity:0;
}
.arch-conn-dot:nth-child(2) { animation-delay:0.75s; }
@keyframes archFlow { 0%{top:0;opacity:0} 15%{opacity:1} 85%{opacity:1} 100%{top:100%;opacity:0} }

.arch-settled {
  display:flex; align-items:center; gap:0.6rem;
  padding:0.6rem 0.9rem; margin-top:0.8rem;
  border:1px solid rgba(34,197,94,0.22); border-radius:var(--r);
  background:rgba(34,197,94,0.05);
}
.settled-dot { width:7px; height:7px; border-radius:50%; background:#22c55e; flex-shrink:0; }
.settled-txt { font-size:0.74rem; font-weight:600; color:#22c55e; letter-spacing:0.04em; }

/* ── Who tiles ───────────────────────────────────────── */
.who-tiles {
  display:grid; grid-template-columns:repeat(5,1fr);
  gap:1px; background:var(--char-border);
  border:1px solid var(--char-border); border-radius:var(--r); overflow:hidden;
  margin-top:3rem;
}
/* Dark who-tiles (old 5-column dark layout) — scoped to avoid bleeding into light who-grid */
.who-tiles .who-tile { background:var(--char); padding:2rem 1.4rem; transition:background var(--t); }
.who-tiles .who-tile:hover { background:var(--char-mid); }
.who-tiles .who-tile:last-child { background:var(--char-mid); border-left:1px solid var(--red-border); }
.who-tiles .who-tile:last-child:hover { background:#1e1010; }
.who-icon { font-size:1.4rem; margin-bottom:0.9rem; }
.who-tiles .who-tile h4 { font-size:0.85rem; color:var(--white); margin-bottom:0.4rem; }
.who-tiles .who-tile:last-child h4 { color:var(--red); }
.who-tiles .who-tile p  { font-size:0.76rem; color:rgba(255,255,255,0.65); line-height:1.6; }

/* ── Comparison table ────────────────────────────────── */
.compare-wrap { overflow-x:auto; }
.compare-table { width:100%; border-collapse:separate; border-spacing:0; }
.compare-table th {
  padding:0.85rem 1.1rem; text-align:left; font-size:0.63rem; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--gray-400);
  background:var(--offwhite); border-bottom:2px solid var(--gray-200);
}
.compare-table th:first-child { border-radius:var(--r) 0 0 0; width:22%; }
.compare-table th.gov-th { background:var(--red); color:var(--white); border-bottom-color:var(--red-dark); }
.compare-table td {
  padding:0.85rem 1.1rem; font-size:0.84rem;
  border-bottom:1px solid var(--gray-200); vertical-align:middle; color:var(--gray-600);
}
.compare-table tr:last-child td { border-bottom:none; }
.compare-table tr:hover td { background:var(--gray-100); }
.compare-table .gov-td { background:rgba(225,28,42,0.04); border-left:2px solid var(--red); color:var(--black); font-weight:600; }
.c-yes  { color:var(--red); font-weight:800; }
.c-no   { color:var(--gray-200); font-weight:700; }
.c-part { color:var(--gray-400); }
.compare-note { margin-top:0.9rem; font-size:0.7rem; color:var(--gray-400); }

/* ── CTA sections ────────────────────────────────────── */
.cta-section { text-align:center; padding:6rem 0; }
.cta-section h2 { margin-bottom:0.9rem; }
.cta-section p  { max-width:500px; margin:0 auto 2.3rem; }

/* ── Product panels ──────────────────────────────────── */
.prod-panel { padding:6rem 0; }
.prod-panel:nth-child(odd)  { background:var(--white); }
.prod-panel:nth-child(even) { background:var(--offwhite); }
.prod-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.prod-panel:nth-child(even) .prod-inner { direction:rtl; }
.prod-panel:nth-child(even) .prod-inner > * { direction:ltr; }
.prod-text h2 { color:var(--black); margin-bottom:1rem; }
.prod-text p  { color:var(--gray-600); }
.prod-text p + p { margin-top:0.9rem; }

.prod-vis {
  background:var(--black); border:1px solid var(--char-border); border-radius:7px;
  padding:2.5rem 2rem; min-height:300px;
  display:flex; flex-direction:column; justify-content:space-between;
  position:relative; overflow:hidden;
}
.prod-vis::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--red), transparent);
}
.prod-vis-name { font-size:1.9rem; font-weight:800; letter-spacing:-0.04em; color:var(--white); line-height:1; }
.prod-vis-sub  { font-size:0.72rem; color:rgba(255,255,255,0.3); margin-top:0.3rem; text-transform:uppercase; letter-spacing:0.1em; }
.prod-metrics  { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; }
.prod-metric { background:var(--char-mid); border:1px solid var(--char-border); border-radius:4px; padding:0.9rem 1rem; }
.pm-val  { font-size:1.25rem; font-weight:800; color:var(--red); letter-spacing:-0.03em; line-height:1; }
.pm-desc { font-size:0.64rem; color:rgba(255,255,255,0.3); margin-top:0.28rem; text-transform:uppercase; letter-spacing:0.08em; }

/* ── Platform cards ──────────────────────────────────── */
.plat-grid   { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.plat-bottom { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:1.5rem; }
.plat-card {
  background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r);
  padding:2.2rem; transition:border-color var(--t), transform var(--t), box-shadow var(--t);
}
.plat-card:hover { border-color:var(--red-border); transform:translateY(-4px); box-shadow:0 20px 48px rgba(0,0,0,0.4); }
.plat-num { font-size:2.8rem; font-weight:800; letter-spacing:-0.05em; color:rgba(225,28,42,0.1); line-height:1; margin-bottom:0.8rem; }
.plat-card h3 { font-size:1.2rem; margin-bottom:0.75rem; color:var(--white); }
.plat-card p  { font-size:0.87rem; color:rgba(255,255,255,0.48); line-height:1.75; }
.plat-card p + p { margin-top:0.8rem; }

/* ── Industries ──────────────────────────────────────── */
.ind-row {
  display:grid; grid-template-columns:240px 1fr 160px;
  gap:3rem; align-items:start;
  padding:3.5rem 0; border-bottom:1px solid var(--char-border);
  transition:padding-left var(--t), padding-right var(--t);
}
.ind-row:last-child { border-bottom:none; }
.ind-row:hover { padding-left:0.5rem; }
.ind-h { font-size:clamp(1.4rem,2.2vw,2rem); color:var(--white); margin-bottom:0.7rem; }
.ind-p { font-size:0.88rem; color:rgba(255,255,255,0.48); line-height:1.78; }
.ind-p + .ind-p { margin-top:0.8rem; }
.ind-stat { text-align:right; padding-top:0.25rem; }
.ind-stat-val   { font-size:1.9rem; font-weight:800; color:var(--red); letter-spacing:-0.04em; line-height:1; }
.ind-stat-label { font-size:0.62rem; color:rgba(255,255,255,0.3); margin-top:0.35rem; letter-spacing:0.08em; text-transform:uppercase; line-height:1.5; }

/* ── Company ─────────────────────────────────────────── */
.mission-pull {
  border-left:3px solid var(--red); padding:2rem 2.5rem;
  background:var(--char-mid); border-radius:0 var(--r) var(--r) 0;
  margin:2.5rem 0;
}
.mission-pull p { font-size:1.18rem; font-weight:500; color:var(--white); line-height:1.65; font-style:italic; }

.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:2.5rem; }
.person {
  background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r);
  padding:1.8rem; transition:border-color var(--t);
}
.person:hover { border-color:var(--red-border); }
.avatar {
  width:50px; height:50px; border-radius:50%;
  background:var(--red-dim); border:1px solid var(--red-border);
  display:flex; align-items:center; justify-content:center;
  font-size:0.85rem; font-weight:800; color:var(--red);
  margin-bottom:1rem; letter-spacing:-0.01em;
}
.person-name { font-size:0.95rem; font-weight:700; color:var(--white); margin-bottom:0.18rem; }
.person-role { font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--red); margin-bottom:0.75rem; font-weight:700; }
.person-cred { font-size:0.8rem; color:rgba(255,255,255,0.42); line-height:1.6; }

/* ── Investors ───────────────────────────────────────── */
.inv-split { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.big-stat  { border-top:2px solid var(--red); padding-top:1.2rem; margin-bottom:1.5rem; }
.big-stat:last-child { margin-bottom:0; }
.big-stat-val  { font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:800; letter-spacing:-0.04em; color:var(--white); line-height:1; }
.big-stat-desc { font-size:0.8rem; color:rgba(255,255,255,0.42); margin-top:0.45rem; line-height:1.5; }

.mkt-bars { display:flex; flex-direction:column; gap:1rem; margin-top:2.5rem; }
.mkt-row  { display:grid; grid-template-columns:180px 1fr auto; gap:1.2rem; align-items:center; }
.mkt-label { font-size:0.7rem; font-weight:700; letter-spacing:0.09em; text-transform:uppercase; color:rgba(255,255,255,0.45); }
.mkt-track { height:6px; background:var(--char-light); border-radius:3px; overflow:hidden; }
.mkt-fill  { height:100%; background:var(--red); border-radius:3px; transition:width 1s var(--ease); }
.mkt-val   { font-size:0.8rem; font-weight:700; color:var(--white); white-space:nowrap; }

.rev-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; }
.rev-card { background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r); padding:1.7rem; transition:border-color var(--t), transform var(--t); }
.rev-card:hover { border-color:var(--red-border); transform:translateY(-3px); }
.rev-card h5 { color:var(--red); margin-bottom:0.65rem; }
.rev-card p  { font-size:0.84rem; color:rgba(255,255,255,0.48); }

.raise-block {
  background:var(--char-mid); border:1px solid var(--red-border);
  border-radius:7px; padding:3rem; margin-top:2.5rem;
  display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start;
}
.raise-headline { font-size:clamp(1.5rem,2.8vw,2.2rem); font-weight:800; letter-spacing:-0.04em; color:var(--white); line-height:1.05; margin:0.4rem 0 1rem; }
.raise-note { font-size:0.86rem; color:rgba(255,255,255,0.48); line-height:1.72; margin-bottom:1.5rem; }
.raise-list li { display:flex; justify-content:space-between; padding:0.7rem 0; border-bottom:1px solid var(--char-border); font-size:0.87rem; }
.raise-list li:last-child { border-bottom:none; }
.raise-list .rk { color:rgba(255,255,255,0.48); }
.raise-list .rv { color:var(--white); font-weight:700; }

.proj-chart { display:flex; align-items:flex-end; gap:1.5rem; height:200px; padding-bottom:1px; margin-top:2.5rem; }
.proj-bar-w { flex:1; display:flex; flex-direction:column; align-items:center; gap:0.6rem; }
.proj-val-l { font-size:0.8rem; font-weight:800; color:var(--white); letter-spacing:-0.02em; }
.proj-outer { width:100%; flex:1; display:flex; align-items:flex-end; }
.proj-inner {
  width:100%; border-radius:4px 4px 0 0; min-height:5px;
  position:relative; transition:height 1s var(--ease);
  background:var(--char-light);
}
.proj-inner::before {
  content:''; position:absolute; inset:0; border-radius:4px 4px 0 0;
  background:linear-gradient(180deg, rgba(225,28,42,0.65), rgba(225,28,42,0.25));
}
.proj-bar-w:last-child .proj-inner { background:var(--red); }
.proj-bar-w:last-child .proj-inner::before { background:linear-gradient(180deg, rgba(255,255,255,0.12), transparent); }
.proj-year { font-size:0.62rem; color:rgba(255,255,255,0.32); letter-spacing:0.1em; text-transform:uppercase; }

.funds-rows { display:flex; flex-direction:column; gap:0.75rem; margin-top:1.8rem; }
.fund-row  { display:grid; grid-template-columns:190px 1fr 44px; gap:1rem; align-items:center; }
.fund-lbl  { font-size:0.8rem; color:rgba(255,255,255,0.5); }
.fund-track{ height:5px; background:var(--char-light); border-radius:3px; overflow:hidden; }
.fund-fill { height:100%; background:var(--red); border-radius:3px; }
.fund-pct  { font-size:0.8rem; font-weight:700; color:var(--white); text-align:right; }

/* ── Contact form ────────────────────────────────────── */
.contact-grid { display:grid; grid-template-columns:2fr 1fr; gap:5rem; align-items:start; }
.form-wrap { background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r); padding:2.5rem; }
.form-group { margin-bottom:1.4rem; }
.form-group label { display:block; font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.5); margin-bottom:0.5rem; }
.form-group label .req { color:var(--red); }
.form-input, .form-select, .form-textarea {
  width:100%; padding:0.75rem 1rem;
  background:var(--char); border:1px solid var(--char-border);
  border-radius:var(--r); color:var(--white); font-size:0.9rem;
  transition:border-color var(--t), box-shadow var(--t);
  outline:none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color:var(--red); box-shadow:0 0 0 3px var(--red-dim);
}
.form-input::placeholder, .form-textarea::placeholder { color:rgba(255,255,255,0.2); }
.form-select { cursor:pointer; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239A9896' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
.form-select option { background:var(--char); }
.form-textarea { resize:vertical; min-height:130px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-error { color:#f87171; font-size:0.78rem; margin-top:0.35rem; display:none; }
.form-error.show { display:block; }
.honeypot { display:none !important; }

.form-notice {
  padding:1rem 1.2rem; border-radius:var(--r); margin-bottom:1.5rem; font-size:0.88rem;
}
.notice-success { background:rgba(34,197,94,0.1); border:1px solid rgba(34,197,94,0.25); color:#4ade80; }
.notice-error   { background:rgba(225,28,42,0.1); border:1px solid var(--red-border); color:#f87171; }

.contact-info { padding-top:1rem; }
.contact-info h3 { color:var(--white); margin-bottom:1.5rem; }
.cinfo-item { margin-bottom:1.5rem; }
.cinfo-item h5 { color:var(--red); margin-bottom:0.3rem; }
.cinfo-item p  { font-size:0.88rem; color:rgba(255,255,255,0.5); }

/* ── Thank you page ──────────────────────────────────── */
.thankyou-wrap { text-align:center; max-width:560px; margin:0 auto; padding:6rem 0; }
.thankyou-icon { font-size:3rem; margin-bottom:1.5rem; }
.thankyou-wrap h1 { color:var(--white); margin-bottom:1rem; font-size:2.5rem; }
.thankyou-wrap p  { margin-bottom:2rem; }

/* ── Fade-in animation ───────────────────────────────── */
.fi {
  opacity:0; transform:translateY(20px);
  transition:opacity 0.65s var(--ease), transform 0.65s var(--ease);
}
.fi.in  { opacity:1; transform:none; }
.fi-d1  { transition-delay:0.08s; }
.fi-d2  { transition-delay:0.16s; }
.fi-d3  { transition-delay:0.24s; }
.fi-d4  { transition-delay:0.32s; }

/* ── Footer ──────────────────────────────────────────── */
.site-footer {
  background:var(--black); border-top:1px solid var(--char-border);
  padding:4rem 0 2.5rem;
}
.foot-grid {
  display:grid; grid-template-columns:1.2fr repeat(3,1fr); gap:3rem;
  margin-bottom:3rem;
}
.foot-logo { font-size:1.3rem; display:inline-block; }
.foot-sub  { font-size:0.54rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.28); margin-top:3px; display:block; margin-bottom:1rem; }
.foot-desc { font-size:0.82rem; color:rgba(255,255,255,0.28); max-width:260px; line-height:1.7; }
.foot-heading { color:rgba(255,255,255,0.28); margin-bottom:1rem; }
.foot-col ul li + li { margin-top:0.55rem; }
.foot-col a { font-size:0.82rem; color:rgba(255,255,255,0.38); transition:color var(--t); }
.foot-col a:hover { color:var(--white); }
.foot-bottom {
  display:flex; justify-content:space-between; align-items:center;
  padding-top:2rem; border-top:1px solid rgba(255,255,255,0.05);
  flex-wrap:wrap; gap:1rem;
}
.foot-bottom p   { font-size:0.72rem; color:rgba(255,255,255,0.2); }
.foot-tagline    { font-size:0.8rem; color:rgba(255,255,255,0.22); font-style:italic; }

/* ═══════════════════════════════════════════════════════
   PHP PAGE COMPONENTS
═══════════════════════════════════════════════════════ */

/* ── Home hero ───────────────────────────────────────── */
.home-hero {
  min-height:100vh; display:flex; align-items:center;
  padding:calc(var(--nav-h) + 4rem) 0 5rem;
  background:var(--black); position:relative; overflow:hidden;
}
.home-hero::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 60% at 68% 42%, rgba(225,28,42,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 30% 50% at 15% 80%, rgba(225,28,42,0.04) 0%, transparent 60%),
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px) 0 0 / 60px 60px,
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px) 0 0 / 60px 60px;
}
.home-hero .wrap { position:relative; z-index:2; width:100%; }
.hero-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.hero-copy h1 { color:var(--white); margin-bottom:1.3rem; }
.hero-copy p  { color:rgba(255,255,255,0.5); max-width:480px; font-size:1.05rem; margin-bottom:2rem; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }

/* Hero panel */
.hero-panel {
  background:var(--char); border:1px solid var(--char-border); border-radius:8px;
  overflow:hidden; position:relative; box-shadow:0 40px 80px rgba(0,0,0,0.5);
  padding:1.2rem;
}
.hero-panel::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--red), transparent);
}
.panel-header {
  display:flex; align-items:center; gap:0.6rem; margin-bottom:1.2rem;
  padding-bottom:0.9rem; border-bottom:1px solid var(--char-border);
}
.panel-dot { width:7px; height:7px; border-radius:50%; }
.dot-green { background:#22c55e; box-shadow:0 0 6px rgba(34,197,94,0.5); animation:livePulse 2s ease infinite; }
@keyframes livePulse {
  0%,100% { box-shadow:0 0 0 0 rgba(34,197,94,0.4); }
  50%      { box-shadow:0 0 0 5px rgba(34,197,94,0); }
}
.panel-label { font-size:0.65rem; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.3); font-weight:600; flex:1; }
.panel-value { font-size:0.78rem; font-weight:800; color:var(--white); }

/* Flow monitor */
.flow-monitor { display:flex; flex-direction:column; gap:0.6rem; margin-bottom:1.2rem; }
.flow-route   { display:flex; align-items:center; gap:0.7rem; padding:0.65rem 0.9rem; background:var(--char-mid); border:1px solid var(--char-border); border-radius:4px; }
.flow-node    { font-size:0.7rem; font-weight:800; color:var(--white); letter-spacing:0.06em; min-width:32px; }
.flow-line    { flex:1; height:2px; background:var(--char-border); border-radius:2px; position:relative; overflow:hidden; }
.flow-dot {
  position:absolute; left:-8px; top:50%; transform:translateY(-50%);
  width:8px; height:8px; border-radius:50%; background:var(--red);
  animation:flowMove 1.6s linear infinite;
}
@keyframes flowMove { from { left:-8px; } to { left:100%; } }
.flow-status {
  font-size:0.6rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  padding:0.15rem 0.55rem; border-radius:3px;
}
.flow-status.settled  { background:rgba(34,197,94,0.12); color:#22c55e; }
.flow-status.settling { background:rgba(225,28,42,0.12); color:var(--red); }
.flow-status.pending  { background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.35); }

/* Panel metrics */
.panel-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:0.6rem; border-top:1px solid var(--char-border); padding-top:1rem; }
.panel-metric  { text-align:center; }
.pm-val   { font-size:1.1rem; font-weight:800; color:var(--white); line-height:1; letter-spacing:-0.02em; }
.pm-label { font-size:0.58rem; color:rgba(255,255,255,0.3); margin-top:0.2rem; text-transform:uppercase; letter-spacing:0.07em; }

/* ── Stat strip (homepage version) ───────────────────── */
.stat-strip  { display:flex; justify-content:space-between; flex-wrap:wrap; gap:2rem; }
.stat-item   { flex:1; min-width:140px; }
.stat-value  { font-size:clamp(1.8rem,3vw,2.5rem); font-weight:800; letter-spacing:-0.04em; color:var(--white); line-height:1; display:block; }
.stat-label  { font-size:0.72rem; color:rgba(255,255,255,0.35); margin-top:0.4rem; line-height:1.4; display:block; }

/* ── Why cards ───────────────────────────────────────── */
.why-card {
  background:var(--white); border:1px solid var(--gray-200); border-radius:var(--r);
  padding:2rem; transition:border-color var(--t), transform var(--t), box-shadow var(--t);
}
.why-card:hover { border-color:rgba(225,28,42,0.25); transform:translateY(-4px); box-shadow:0 20px 48px rgba(0,0,0,0.06); }
.s-char .why-card, .s-dark .why-card {
  background:var(--char-mid); border-color:var(--char-border);
}
.s-char .why-card:hover, .s-dark .why-card:hover { border-color:var(--red-border); box-shadow:0 20px 48px rgba(0,0,0,0.4); }
.why-icon {
  width:44px; height:44px; border-radius:var(--r); background:var(--red-dim); border:1px solid var(--red-border);
  display:flex; align-items:center; justify-content:center; color:var(--red);
  margin-bottom:1.1rem; flex-shrink:0;
}
.why-card h4 { margin-bottom:0.5rem; font-size:1rem; }
.why-card p  { font-size:0.88rem; line-height:1.72; color:var(--gray-600); }
.s-char .why-card h4, .s-dark .why-card h4 { color:var(--white); }
.s-char .why-card p, .s-dark .why-card p   { color:rgba(255,255,255,0.45); }

/* ── Who grid ────────────────────────────────────────── */
.who-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.who-tile {
  background:var(--white); border:1px solid var(--gray-200); border-radius:var(--r);
  padding:2rem 1.8rem; transition:border-color var(--t), transform var(--t), box-shadow var(--t);
}
.who-tile:hover { border-color:rgba(225,28,42,0.25); transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,0.07); }
.who-tile .who-icon { color:var(--red); margin-bottom:1rem; }
.who-tile h4 { font-size:1rem; margin-bottom:0.5rem; }
.who-tile p  { font-size:0.86rem; color:var(--gray-600); line-height:1.72; }

/* ── Comparison table (new classes) ─────────────────── */
.cmp-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--r); border:1px solid var(--gray-200); }
.cmp-table { width:100%; border-collapse:collapse; min-width:580px; }
.cmp-table th {
  padding:1rem 1.4rem; text-align:left; font-size:0.63rem; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--gray-400);
  background:var(--offwhite); border-bottom:2px solid var(--gray-200);
}
.cmp-table th.cmp-us { background:var(--red); color:var(--white); border-bottom-color:var(--red-dark); }
.cmp-table td {
  padding:1rem 1.4rem; font-size:0.85rem;
  border-bottom:1px solid var(--gray-200); color:var(--gray-600); vertical-align:middle;
}
.cmp-table tr:last-child td { border-bottom:none; }
.cmp-table tr:hover td { background:var(--gray-100); }
.cmp-table td.cmp-us { background:rgba(225,28,42,0.04); color:var(--black); font-weight:600; border-left:2px solid var(--red); }

/* ── Architecture diagram (homepage) ─────────────────── */
.arch-diagram {
  display:flex; align-items:stretch; gap:0; margin-top:1rem;
}
.arch-diagram .arch-layer {
  flex:1; background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r);
  padding:1.8rem 1.5rem; transition:border-color var(--t);
  display:flex; flex-direction:column;
}
.arch-diagram .arch-layer:hover { border-color:var(--red-border); }
/* Number + heading grouped as a header block */
.arch-num { font-size:0.62rem; font-weight:800; letter-spacing:0.15em; color:var(--red); display:block; margin-bottom:0.55rem; }
.arch-diagram .arch-layer h4 {
  color:var(--white); font-size:0.92rem; line-height:1.25; font-weight:700;
  padding-bottom:1rem; margin-bottom:1rem;
  border-bottom:1px solid var(--char-border);
}
.arch-diagram .arch-layer p  { font-size:0.8rem; color:rgba(255,255,255,0.65); line-height:1.8; }
.arch-arrow { flex-shrink:0; color:rgba(255,255,255,0.2); padding:0 0.4rem; }

/* ── Product panels (product.php) ────────────────────── */
.product-panel {
  display:flex; align-items:center; gap:5rem;
}
.product-panel--alt { flex-direction:row-reverse; }
.product-copy { flex:1; }
.product-copy h2 { margin-bottom:1rem; }
.product-copy p  { color:var(--gray-600); }
.product-copy p + p { margin-top:0.9rem; }
.product-visual {
  flex:0 0 420px; max-width:420px;
  background:var(--black); border:1px solid var(--char-border); border-radius:8px;
  overflow:hidden; position:relative; min-height:280px;
  display:flex; flex-direction:column;
}
.product-visual::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--red), transparent);
}

/* Product feature grid */
.prod-feat-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.prod-feat {}
.prod-feat-head { display:block; font-size:0.82rem; font-weight:700; color:var(--black); margin-bottom:0.3rem; letter-spacing:-0.01em; }
.prod-feat p { font-size:0.8rem; color:var(--gray-600); line-height:1.65; }

/* Execute visual */
.pv-screen { padding:1.2rem; flex:1; display:flex; flex-direction:column; gap:0.5rem; }
.pv-row { display:flex; align-items:center; gap:0.8rem; padding:0.55rem 0.8rem; background:var(--char-mid); border:1px solid var(--char-border); border-radius:4px; }
.pv-tag { font-size:0.58rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; padding:0.15rem 0.5rem; border-radius:3px; flex-shrink:0; }
.pv-tag.settled  { background:rgba(34,197,94,0.12); color:#22c55e; }
.pv-tag.settling { background:rgba(225,28,42,0.12); color:var(--red); }
.pv-text { flex:1; font-size:0.75rem; color:rgba(255,255,255,0.6); }
.pv-time { font-size:0.68rem; font-weight:700; color:rgba(255,255,255,0.3); }
.pv-metrics { display:flex; justify-content:space-between; margin-top:0.5rem; padding:0.7rem 0.8rem; background:var(--char); border:1px solid var(--char-border); border-radius:4px; font-size:0.7rem; color:rgba(255,255,255,0.3); }
.pv-metrics strong { color:var(--white); }

/* Globe visual */
.pv-globe-wrap { display:flex; flex-direction:column; align-items:center; justify-content:center; flex:1; padding:2rem; gap:1rem; }
.pv-globe { position:relative; width:180px; height:180px; }
.globe-ring {
  position:absolute; border:2px solid rgba(225,28,42,0.45); border-radius:50%;
  animation:globeSpin 8s linear infinite;
}
.r1 { width:60%; height:60%; top:20%; left:20%; animation-duration:6s; }
.r2 { width:80%; height:80%; top:10%; left:10%; animation-duration:9s; animation-direction:reverse; }
.r3 { width:100%; height:100%; top:0; left:0; animation-duration:12s; }
@keyframes globeSpin { from { transform:rotate(0deg) rotateX(60deg); } to { transform:rotate(360deg) rotateX(60deg); } }
.globe-dot {
  position:absolute; width:8px; height:8px; border-radius:50%; background:var(--red);
  box-shadow:0 0 6px rgba(225,28,42,0.6);
}
.gd1 { top:15%; left:40%; }
.gd2 { top:50%; left:10%; }
.gd3 { top:70%; left:60%; }
.gd4 { top:25%; left:75%; }
.globe-stats { text-align:center; }
.gs-val   { display:block; font-size:2rem; font-weight:800; color:var(--white); letter-spacing:-0.04em; line-height:1; }
.gs-label { display:block; font-size:0.68rem; color:rgba(255,255,255,0.35); margin-top:0.3rem; text-transform:uppercase; letter-spacing:0.1em; }

/* Code visual (Plug-In Pay) */
.pip-code { background:var(--black); border:1px solid var(--char-border); border-radius:var(--r); overflow:hidden; }
.code-header { display:flex; align-items:center; gap:0.5rem; padding:0.7rem 1rem; border-bottom:1px solid var(--char-border); background:var(--char-mid); }
.code-dot { width:9px; height:9px; border-radius:50%; background:var(--char-border); }
.code-dot:first-child { background:#ff5f57; }
.code-dot:nth-child(2){ background:#febc2e; }
.code-dot:nth-child(3){ background:#28c840; }
.code-label { flex:1; text-align:center; font-size:0.65rem; color:rgba(255,255,255,0.25); letter-spacing:0.06em; }
.code-body { padding:1.2rem; margin:0; font-size:0.76rem; line-height:1.8; color:rgba(255,255,255,0.6); font-family:monospace; overflow-x:auto; }
.cm { color:rgba(255,255,255,0.22); font-style:italic; }
.ck { color:rgba(225,28,42,0.85); }
.cv { color:#a8ff78; }

/* Open Finance stack visual */
.pv-openfinance { padding:2rem; justify-content:center; }
.of-stack { display:flex; flex-direction:column; align-items:stretch; gap:0; width:100%; }
.of-layer {
  padding:1rem 1.4rem; text-align:center; font-size:0.78rem; font-weight:700;
  border:1px solid var(--char-border); border-radius:var(--r);
  transition:border-color var(--t), background var(--t);
}
.of-layer:hover { border-color:var(--red-border); }
.of-l1 { background:rgba(225,28,42,0.12); color:var(--white); border-color:var(--red-border); }
.of-l2 { background:var(--char-mid); color:rgba(255,255,255,0.7); margin:0 0.5rem; }
.of-l3 { background:var(--char-mid); color:rgba(255,255,255,0.55); margin:0 1rem; }
.of-l4 { background:var(--char); color:rgba(255,255,255,0.35); margin:0 1.5rem; }
.of-connector { height:16px; width:1px; background:var(--char-border); margin:0 auto; position:relative; }
.of-connector::after { content:''; position:absolute; top:0; left:-2px; width:5px; height:5px; border-radius:50%; background:var(--red); animation:connFlow 1.5s linear infinite; opacity:0; }
@keyframes connFlow { 0%{top:0;opacity:0} 15%{opacity:1} 85%{opacity:1} 100%{top:100%;opacity:0} }

/* Blockchain nodes visual */
.pv-blockchain { position:relative; }
.bc-nodes { position:relative; width:100%; height:100%; min-height:260px; display:flex; align-items:center; justify-content:center; }
.bc-node {
  position:absolute; width:70px; height:70px; border-radius:50%;
  background:var(--char-mid); border:1.5px solid var(--red-border);
  display:flex; align-items:center; justify-content:center;
  font-size:0.62rem; font-weight:700; color:rgba(255,255,255,0.5); text-align:center;
}
.bc-node.nc { background:var(--red); border-color:var(--red); color:var(--white); width:80px; height:80px; font-size:0.6rem; }
.nc-label { line-height:1.3; }
.n1 { top:10%; left:10%; }
.n2 { top:10%; right:10%; }
.n3 { bottom:10%; left:10%; }
.n4 { bottom:10%; right:10%; }
.nc { top:50%; left:50%; transform:translate(-50%,-50%); }

/* Wallet visual */
.pv-wallet { padding:1.5rem; justify-content:center; }
.wallet-ui { background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r); overflow:hidden; width:100%; }
.wallet-header { display:flex; justify-content:space-between; align-items:center; padding:0.9rem 1.2rem; border-bottom:1px solid var(--char-border); }
.wallet-label  { font-size:0.68rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.4); }
.wallet-status { font-size:0.62rem; font-weight:700; color:#22c55e; background:rgba(34,197,94,0.12); padding:0.15rem 0.55rem; border-radius:3px; text-transform:uppercase; letter-spacing:0.08em; }
.wallet-balances { padding:1rem 1.2rem; display:flex; flex-direction:column; gap:0.5rem; }
.wallet-bal { display:flex; justify-content:space-between; align-items:center; padding:0.5rem 0; border-bottom:1px solid var(--char-border); }
.wallet-bal:last-child { border-bottom:none; }
.wb-ccy { font-size:0.7rem; font-weight:700; color:rgba(255,255,255,0.4); }
.wb-amt { font-size:0.88rem; font-weight:700; color:var(--white); }
.wallet-footer { padding:0.8rem 1.2rem; border-top:1px solid var(--char-border); font-size:0.72rem; color:rgba(255,255,255,0.35); }
.wallet-footer strong { color:var(--white); }

/* ── Platform cards ──────────────────────────────────── */
.platform-card {
  background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r);
  padding:2.2rem; transition:border-color var(--t), transform var(--t), box-shadow var(--t);
}
.platform-card:hover { border-color:var(--red-border); transform:translateY(-4px); box-shadow:0 20px 48px rgba(0,0,0,0.4); }
.platform-card h4 { color:var(--white); margin-bottom:0.75rem; font-size:1.05rem; }
.platform-card p  { font-size:0.87rem; color:rgba(255,255,255,0.45); line-height:1.72; }

/* ── Security/compliance cards ───────────────────────── */
.comp-card {
  background:var(--char-light); border:1px solid var(--char-border); border-radius:var(--r);
  padding:2rem; transition:border-color var(--t), transform var(--t);
}
.comp-card:hover { border-color:var(--red-border); transform:translateY(-3px); }
.comp-card h4 { color:var(--white); margin-bottom:0.65rem; font-size:1rem; }
.comp-card p  { font-size:0.86rem; color:rgba(255,255,255,0.42); line-height:1.7; }

/* ── Industries (PHP layout) ─────────────────────────── */
.ind-row     { display:flex; gap:5rem; align-items:center; padding:5rem 0; border-bottom:1px solid var(--gray-200); }
.ind-row:last-child { border-bottom:none; }
.ind-row--alt { flex-direction:row-reverse; }
.s-dark .ind-row, .s-char .ind-row { border-color:var(--char-border); }
.ind-copy    { flex:1; }
.ind-copy h2 { margin-bottom:1rem; }
.ind-copy p  { color:var(--gray-600); }
.ind-copy p + p { margin-top:0.9rem; }
.s-dark .ind-copy h2, .s-char .ind-copy h2 { color:var(--white); }
.ind-stat-col { flex:0 0 220px; display:flex; flex-direction:column; gap:2.5rem; }
.ind-stat     {}
.ind-stat-num { display:block; font-size:clamp(2.5rem,4vw,3.5rem); font-weight:800; letter-spacing:-0.04em; color:var(--red); line-height:1; }
.ind-stat-unit { font-size:1.2rem; }
.ind-stat-label { display:block; font-size:0.7rem; color:var(--gray-600); margin-top:0.4rem; line-height:1.5; text-transform:uppercase; letter-spacing:0.07em; }
.ind-list { margin-top:1.5rem; display:flex; flex-direction:column; gap:0.55rem; }
.ind-list li { font-size:0.87rem; color:var(--gray-600); padding-left:1.2rem; position:relative; line-height:1.6; }
.ind-list li::before { content:'→'; position:absolute; left:0; color:var(--red); font-size:0.8rem; }

/* ── Company team cards ──────────────────────────────── */
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.team-card {
  background:var(--white); border:1px solid var(--gray-200); border-radius:var(--r);
  padding:2rem; transition:border-color var(--t), transform var(--t), box-shadow var(--t);
}
.team-card:hover { border-color:rgba(225,28,42,0.22); transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,0.07); }
.team-avatar {
  width:52px; height:52px; border-radius:50%;
  background:var(--red-dim); border:1.5px solid var(--red-border);
  display:flex; align-items:center; justify-content:center;
  font-size:0.88rem; font-weight:800; color:var(--red);
  margin-bottom:1rem;
}
.team-card h4  { font-size:0.95rem; margin-bottom:0.2rem; }
.team-role     { display:block; font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--red); font-weight:700; margin-bottom:0.75rem; }
.team-card p   { font-size:0.82rem; color:var(--gray-600); line-height:1.65; }

/* ── Advisory board ──────────────────────────────────── */
.advisor-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.advisor-card {
  background:var(--char-light); border:1px solid var(--char-border); border-radius:var(--r);
  padding:1.8rem; transition:border-color var(--t);
}
.advisor-card:hover { border-color:var(--red-border); }
.advisor-card h4 { color:var(--white); margin-bottom:0.6rem; font-size:0.95rem; }
.advisor-card p  { font-size:0.84rem; color:rgba(255,255,255,0.42); line-height:1.7; }

/* ── Investor: big stats ─────────────────────────────── */
.big-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.big-stat  { border-top:2px solid var(--red); padding-top:1.2rem; }
.big-stat-val   { display:block; font-size:clamp(1.8rem,3.2vw,2.8rem); font-weight:800; letter-spacing:-0.04em; color:var(--white); line-height:1; }
.big-stat-label { display:block; font-size:0.74rem; color:rgba(255,255,255,0.38); margin-top:0.5rem; line-height:1.5; }

/* Market TAM/SAM/SOM */
.market-row  { display:flex; gap:5rem; align-items:flex-start; }
.market-text { flex:1; }
.market-text p + p { margin-top:1rem; }
.market-bars { flex:0 0 340px; display:flex; flex-direction:column; gap:1.5rem; padding-top:0.5rem; }
.market-bar-row { display:flex; align-items:center; gap:1rem; }
.mb-label { width:38px; font-size:0.7rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-400); }
.mb-track { flex:1; height:8px; background:var(--gray-200); border-radius:4px; overflow:hidden; }
.bar-fill { height:100%; background:var(--black); border-radius:4px; width:0; transition:width 1.2s var(--ease); }
.bar-fill--red { background:var(--red); }
.mb-val   { font-size:0.8rem; font-weight:700; color:var(--black); white-space:nowrap; min-width:55px; text-align:right; }

/* Revenue cards */
.rev-card { background:var(--white); border:1px solid var(--gray-200); border-radius:var(--r); padding:2rem; transition:border-color var(--t), transform var(--t); }
.rev-card:hover { border-color:rgba(225,28,42,0.22); transform:translateY(-3px); }
.rev-num  { font-size:2rem; font-weight:800; color:var(--red-dim); color:rgba(225,28,42,0.12); letter-spacing:-0.04em; line-height:1; margin-bottom:0.8rem; }
.rev-card h4 { margin-bottom:0.6rem; }
.rev-card p  { font-size:0.85rem; color:var(--gray-600); line-height:1.7; }
.rev-pct { display:block; margin-top:1rem; font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--red); }

/* Differentiation cards */
.diff-card {
  background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r);
  padding:2rem; transition:border-color var(--t);
}
.diff-card:hover { border-color:var(--red-border); }
.diff-card h4 { color:var(--white); margin-bottom:0.75rem; }
.diff-card p  { font-size:0.87rem; color:rgba(255,255,255,0.42); line-height:1.72; }

/* Raise section */
.raise-inner { display:flex; gap:5rem; align-items:flex-start; }
.raise-left  { flex:1; }
.raise-right { flex:0 0 320px; }
.raise-left h2 { margin-bottom:1rem; }
.raise-left p  { color:var(--gray-600); }
.raise-list { list-style:none; margin:1.5rem 0; display:flex; flex-direction:column; gap:0; }
.raise-list li { font-size:0.87rem; color:var(--gray-600); padding:0.6rem 0 0.6rem 1.2rem; border-bottom:1px solid var(--gray-200); position:relative; line-height:1.6; }
.raise-list li:last-child { border-bottom:none; }
.raise-list li::before { content:'✓'; position:absolute; left:0; color:var(--red); font-weight:800; }
.raise-meta { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--gray-200); }
.raise-meta-item {}
.rm-label { display:block; font-size:0.62rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--gray-400); margin-bottom:0.3rem; }
.rm-val   { font-size:0.92rem; font-weight:700; color:var(--black); }

/* Fund allocation bars */
.raise-allocation { padding:2rem; background:var(--offwhite); border:1px solid var(--gray-200); border-radius:var(--r); }
.alloc-item { margin-bottom:1.5rem; }
.alloc-item:last-child { margin-bottom:0; }
.alloc-bar-wrap { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:0.4rem; }
.alloc-label { font-size:0.78rem; font-weight:600; color:var(--black); }
.alloc-pct   { font-size:0.72rem; font-weight:700; color:var(--red); }
.alloc-track { height:6px; background:var(--gray-200); border-radius:3px; overflow:hidden; }
.alloc-fill  { height:100%; background:var(--red); border-radius:3px; }

/* Revenue projection bars */
.proj-bars    { display:flex; flex-direction:column; gap:1.2rem; }
.proj-bar-row { display:flex; align-items:center; gap:1.5rem; }
.proj-bar-year { font-size:0.72rem; font-weight:700; letter-spacing:0.08em; color:var(--gray-400); min-width:36px; }
.proj-bar-track { flex:1; height:10px; background:var(--gray-200); border-radius:5px; overflow:hidden; }
.proj-bar-val { font-size:0.8rem; font-weight:700; color:var(--black); min-width:80px; text-align:right; }
.proj-note { font-size:0.72rem; color:var(--gray-400); margin-top:2rem; line-height:1.65; padding-top:1.5rem; border-top:1px solid var(--gray-200); }

/* Funds grid */
.funds-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.fund-card  {
  background:var(--char-mid); border:1px solid var(--char-border); border-radius:var(--r);
  padding:1.8rem; display:flex; gap:1.2rem; align-items:flex-start;
  transition:border-color var(--t);
}
.fund-card:hover { border-color:var(--red-border); }
.fund-logo {
  width:44px; height:44px; flex-shrink:0; border-radius:var(--r);
  background:var(--red-dim); border:1px solid var(--red-border);
  display:flex; align-items:center; justify-content:center;
  font-size:0.72rem; font-weight:800; color:var(--red); letter-spacing:-0.01em;
}
.fund-info h4 { color:var(--white); font-size:0.9rem; margin-bottom:0.5rem; }
.fund-info p  { font-size:0.8rem; color:rgba(255,255,255,0.38); line-height:1.65; }

/* ── Contact form (light theme) ──────────────────────── */
.contact-grid { display:grid; grid-template-columns:2fr 1fr; gap:5rem; align-items:start; }
.contact-form-wrap {}
.contact-form {}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.form-group { margin-bottom:1.4rem; }
.form-label { display:block; font-size:0.7rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--gray-600); margin-bottom:0.5rem; }
.form-input, .form-select, .form-textarea {
  width:100%; padding:0.78rem 1rem;
  background:var(--white); border:1.5px solid var(--gray-200);
  border-radius:var(--r); color:var(--black); font-size:0.9rem;
  transition:border-color var(--t), box-shadow var(--t); outline:none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color:var(--red); box-shadow:0 0 0 3px rgba(225,28,42,0.08);
}
.form-input.is-invalid, .form-textarea.is-invalid { border-color:#f87171; }
.form-input.is-valid,   .form-textarea.is-valid   { border-color:#22c55e; }
.field-error { display:block; font-size:0.75rem; color:#dc2626; margin-top:0.3rem; }
.form-select { cursor:pointer; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235C5A58' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; background-size:12px; padding-right:2.5rem; }
.form-textarea { resize:vertical; min-height:130px; }
.form-honeypot { display:none !important; position:absolute; left:-9999px; }
.req { color:var(--red); margin-left:2px; }
.btn-submit { width:100%; justify-content:center; margin-top:0.5rem; }

.form-alert { padding:1rem 1.2rem; border-radius:var(--r); margin-bottom:1.5rem; font-size:0.86rem; }
.form-alert--error { background:rgba(225,28,42,0.06); border:1px solid rgba(225,28,42,0.22); color:#b91c1c; }
.form-alert--error ul { margin:0.5rem 0 0 1rem; }
.form-alert--error li { margin-bottom:0.25rem; }

/* Contact sidebar */
.contact-sidebar { padding:2rem; background:var(--offwhite); border:1px solid var(--gray-200); border-radius:var(--r); }
.cs-block { margin-bottom:1.8rem; padding-bottom:1.8rem; border-bottom:1px solid var(--gray-200); }
.cs-block:last-of-type { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.cs-link { font-size:0.88rem; color:var(--red); font-weight:600; transition:opacity var(--t); }
.cs-link:hover { opacity:0.75; }
.cs-address { font-size:0.88rem; color:var(--gray-600); }
.cs-note { margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--gray-200); }
.cs-note p { font-size:0.8rem; color:var(--gray-400); line-height:1.7; }

/* ── Thank you page ──────────────────────────────────── */
.ty-section { min-height:calc(100vh - var(--nav-h) - 200px); display:flex; align-items:center; }
.ty-box { max-width:600px; margin:0 auto; padding:4rem 2rem; }
.ty-icon { color:var(--red); }
.ty-icon svg { margin:0 auto; }

/* ── Page hero adjustments ───────────────────────────── */
.page-hero { padding:calc(var(--nav-h) + 4rem) 0 4rem; }
.page-hero p { color:rgba(255,255,255,0.5); }

/* ── Mission grid ────────────────────────────────────── */
.mission-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:6rem; align-items:start; }
.mission-grid h2 { margin-bottom:0; }

/* ── Sh (section heading) dark override ──────────────── */
.s-dark .sh p, .s-char .sh p { color:rgba(255,255,255,0.5); }

/* ── Legal pages (privacy, terms) ───────────────────── */
.legal-grid {
  display:grid; grid-template-columns:200px 1fr; gap:6rem; align-items:start;
}
.legal-toc {
  position:sticky; top:calc(var(--nav-h) + 2rem);
}
.toc-list {
  list-style:none; counter-reset:toc; display:flex; flex-direction:column; gap:0;
}
.toc-list li {
  counter-increment:toc;
  border-bottom:1px solid var(--gray-200);
}
.toc-list li:last-child { border-bottom:none; }
.toc-list a {
  display:block; padding:0.55rem 0; font-size:0.78rem; color:var(--gray-600);
  transition:color var(--t);
}
.toc-list a:hover { color:var(--red); }

.legal-body h2 {
  font-size:1.15rem; font-weight:700; color:var(--black);
  margin-bottom:0.9rem; letter-spacing:-0.02em;
}
.legal-section {
  padding:2rem 0; border-bottom:1px solid var(--gray-200);
}
.legal-section:last-child { border-bottom:none; }
.legal-section p { color:var(--gray-600); margin-bottom:0.9rem; line-height:1.8; }
.legal-section p:last-child { margin-bottom:0; }
.legal-section a { color:var(--red); text-decoration:underline; text-underline-offset:3px; }
.legal-section a:hover { color:var(--red-dark); }
.legal-section strong { color:var(--black); }

.legal-list {
  margin:0.75rem 0 0.9rem 0; display:flex; flex-direction:column; gap:0.5rem;
  padding-left:1.2rem;
}
.legal-list li {
  font-size:0.9rem; color:var(--gray-600); line-height:1.7;
  list-style:disc; padding-left:0.3rem;
}
.legal-list li strong { color:var(--black); }

/* ── Footer legal links ──────────────────────────────── */
.foot-legal-links {
  display:flex; gap:1.5rem; align-items:center;
}
.foot-legal-links a {
  font-size:0.72rem; color:rgba(255,255,255,0.55);
  transition:color var(--t);
}
.foot-legal-links a:hover { color:var(--white); }

/* ── Contact sidebar headings on light background ─────── */
.contact-sidebar h5.foot-heading { color:var(--gray-800); }

/* ── GDPR notice on contact form ─────────────────────── */
.gdpr-notice {
  font-size:0.76rem; color:var(--gray-400); line-height:1.65;
  margin-bottom:1.2rem;
}
.gdpr-notice a { color:var(--red); text-decoration:underline; text-underline-offset:3px; }

/* ── Form label visibility on light background ───────── */
/* .form-group label has higher specificity than .form-label — override it here */
.form-group label.form-label { color:var(--gray-600); }

/* ═══════════════════════════════════════════════════════
   WCAG AA CONTRAST SYSTEM
   Every override below brings text to ≥ 4.5:1 on its
   actual background. Values calculated via sRGB
   linearisation against each dark surface variant.
   Minimums per surface: #080808→0.48, #111111→0.52,
   #1A1A1A→0.55, #252525→0.55. Safe floor = 0.55.
═══════════════════════════════════════════════════════ */

/* ── Footer (background: var(--black) = #080808) ────── */
/* All were 0.20–0.38, giving 1.6:1–3.3:1 — catastrophic fails */
.foot-sub      { color:rgba(255,255,255,0.55); } /* was 0.28 → now 6.0:1  */
.foot-desc     { color:rgba(255,255,255,0.65); } /* was 0.28 → now 8.0:1  */
.foot-heading  { color:rgba(255,255,255,0.70); } /* was 0.28 → now 9.0:1  */
.foot-col a    { color:rgba(255,255,255,0.65); } /* was 0.38 → now 8.0:1  */
.foot-bottom p { color:rgba(255,255,255,0.55); } /* was 0.20 → now 6.0:1  */
.foot-tagline  { color:rgba(255,255,255,0.55); } /* was 0.22 → now 6.0:1  */

/* ── Navigation (on translucent/black nav bar) ───────── */
.nav-sub { color:rgba(255,255,255,0.55); } /* was 0.30 → now 6.0:1 */

/* ── Section heading paragraphs on dark ─────────────── */
/* 0.50 on #111111 (s-char) = 4.37:1 — fails */
.s-dark .sh p,
.s-char .sh p { color:rgba(255,255,255,0.65); } /* was 0.50 → now 8.0:1 */

/* ── Hero panel and system widget micro-text ─────────── */
/* All on #111111 (var(--char)) — 0.30–0.35 gives 2.4:1–2.9:1 */
.panel-bar-title { color:rgba(255,255,255,0.55); } /* was 0.35 → now 5.2:1 */
.panel-live      { color:rgba(255,255,255,0.55); } /* was 0.30 → now 5.2:1 */
.panel-label     { color:rgba(255,255,255,0.55); } /* was 0.30 → now 5.2:1 */
.pf-label        { color:rgba(255,255,255,0.55); } /* was 0.30 → now 5.2:1 */
.pm-label        { color:rgba(255,255,255,0.55); } /* was 0.30 → now 5.2:1 */
.l-tag           { color:rgba(255,255,255,0.55); } /* was 0.38 on #252525 → now 4.6:1 */

/* ── Stat strip (on var(--char) = #111111) ───────────── */
.stat-desc  { color:rgba(255,255,255,0.60); } /* was 0.38 → now 7.0:1 */
.stat-label { color:rgba(255,255,255,0.60); } /* was 0.35 → now 7.0:1 */

/* ── Dark-section card body text ─────────────────────── */
/* Various cards on char-mid (#1A1A1A) or char-light (#252525) */
/* 0.42–0.48 gives 3.3:1–4.1:1 on these surfaces — all fail */
.who-tiles .who-tile p                   { color:rgba(255,255,255,0.65); } /* was 0.42 — scoped to dark layout only */
.plat-card p                             { color:rgba(255,255,255,0.65); } /* was 0.48 */
.platform-card p                         { color:rgba(255,255,255,0.65); } /* was 0.45 */
.comp-card p                             { color:rgba(255,255,255,0.65); } /* was 0.42 */
.diff-card p                             { color:rgba(255,255,255,0.65); } /* was 0.42 */
.advisor-card p                          { color:rgba(255,255,255,0.65); } /* was 0.42 */
.person-cred                             { color:rgba(255,255,255,0.65); } /* was 0.42 */
.s-char .why-card p, .s-dark .why-card p { color:rgba(255,255,255,0.65); } /* was 0.45 */
.arch-diagram .arch-layer p              { color:rgba(255,255,255,0.65); } /* was 0.42 */
.raise-note                              { color:rgba(255,255,255,0.65); } /* was 0.48 */
.raise-list .rk                          { color:rgba(255,255,255,0.65); } /* was 0.48 */
.fund-info p                             { color:rgba(255,255,255,0.65); } /* was 0.38 */
.big-stat-label                          { color:rgba(255,255,255,0.65); } /* was 0.38 */
.big-stat-desc                           { color:rgba(255,255,255,0.65); } /* was 0.42 */
.mkt-label                               { color:rgba(255,255,255,0.65); } /* was 0.45 */

/* ── Flow status pending (on char-mid) ───────────────── */
.flow-status.pending { color:rgba(255,255,255,0.65); } /* was 0.35 → now 8.0:1 */

/* ── Product visual widget micro-labels ──────────────── */
/* On var(--black) or var(--char-mid) — 0.30–0.40 fail */
.pv-time        { color:rgba(255,255,255,0.55); } /* was 0.30 → 6.0:1 on black */
.pv-metrics     { color:rgba(255,255,255,0.55); } /* was 0.30 → 6.0:1 on black */
.gs-label       { color:rgba(255,255,255,0.55); } /* was 0.35 → 5.2:1 on #111 */
.wallet-label   { color:rgba(255,255,255,0.60); } /* was 0.40 → was 4.37:1 on #1A1A1A */
.wb-ccy         { color:rgba(255,255,255,0.60); } /* was 0.40 → now 7.0:1 */
.wallet-footer  { color:rgba(255,255,255,0.55); } /* was 0.35 → now 5.2:1 */
.of-l4          { color:rgba(255,255,255,0.60); } /* was 0.35 → now 7.0:1 */
.bc-node        { color:rgba(255,255,255,0.65); } /* was 0.50 → was 4.37:1 on #1A1A1A */
.code-label     { color:rgba(255,255,255,0.55); } /* was 0.25 → now 6.0:1 on #1A1A1A */
.cm             { color:rgba(255,255,255,0.55); } /* was 0.22 → now 6.0:1 on black */

/* ── Light-section: replace failing --gray-400 usage ─── */
/* --gray-400 (#9A9896) = 2.81:1 on white — fails AA      */
/* Replace with --gray-600 (#5C5A58) = 6.7:1 on white ✓  */
.compare-table th { color:var(--gray-600); }
.cmp-table th     { color:var(--gray-600); }
.compare-note     { color:var(--gray-600); }
.proj-note        { color:var(--gray-600); }
.rm-label         { color:var(--gray-600); }
.proj-bar-year    { color:var(--gray-600); }
.mb-label         { color:var(--gray-600); }
.c-part           { color:var(--gray-600); }
.cs-note p        { color:var(--gray-600); }

/* ── Labels on offwhite sections ─────────────────────── */
/* var(--red) #E11C2A on #F7F6F4 = 4.43:1 — borderline fail */
/* var(--red-dark) #B8141F on #F7F6F4 = 6.2:1 — pass ✓    */
.s-offwhite .label { color:var(--red-dark); }

/* ── Contact form: override dark-form label colour ───── */
/* .form-group label (0,1,1) was overriding .form-label (0,1,0) with   */
/* rgba(255,255,255,0.5) — invisible white text on the light form page. */
/* Adding .form-label to the selector raises specificity to (0,2,1).   */
.form-group label.form-label { color:var(--gray-600); }

/* ── Contact sidebar headings on light background ─────── */
/* .foot-heading is white — correct in the footer, wrong in sidebar.   */
.contact-sidebar h5 { color:var(--gray-800); }

/* ── Scope footer white headings to site-footer only ─── */
/* Reverts the broad .foot-heading WCAG fix to footer context only.    */
.foot-heading { color:var(--gray-800); } /* default to dark for light contexts */
.site-footer .foot-heading { color:rgba(255,255,255,0.70); } /* white in footer ✓ */

/* ════════════════════════════════════════════════════════
   BRAND PAGE
   ════════════════════════════════════════════════════════ */

/* ── Colour swatches ─────────────────────────────────── */
.brand-group-label {
  display:block;
  font-size:0.68rem; font-weight:700; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--gray-400);
  margin-bottom:1.2rem;
}
.brand-swatches {
  display:flex; flex-wrap:wrap; gap:1.2rem;
}
.brand-swatch {
  position:relative;
  width:160px; height:160px;
  border-radius:var(--r);
  border:none; cursor:pointer;
  display:flex; flex-direction:column;
  justify-content:flex-end; align-items:flex-start;
  padding:1rem 1rem 0.9rem;
  transition:transform var(--t), box-shadow var(--t);
  overflow:hidden;
}
.brand-swatch:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,0.15); }
.brand-swatch--bordered { border:1px solid var(--gray-200); }

.swatch-copy-icon {
  position:absolute; top:0.75rem; right:0.75rem;
  color:rgba(255,255,255,0.5);
  opacity:0; transition:opacity var(--t);
}
.brand-swatch:hover .swatch-copy-icon { opacity:1; }

.swatch-name {
  display:block;
  font-size:0.78rem; font-weight:700;
  color:rgba(255,255,255,0.9);
  margin-bottom:0.2rem;
}
.swatch-hex {
  display:block;
  font-size:0.72rem; font-weight:500; font-family:monospace;
  color:rgba(255,255,255,0.55);
}
.swatch-copied {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:0.8rem; font-weight:700; letter-spacing:0.1em;
  color:rgba(255,255,255,0.9);
  background:rgba(0,0,0,0.3);
  opacity:0; transition:opacity 0.15s;
  text-transform:uppercase;
}
.brand-swatch.swatch--copied .swatch-copied { opacity:1; }

/* ── Typography specimens ────────────────────────────── */
.brand-type-grid {
  border-top:1px solid var(--gray-200);
}
.brand-type-row {
  display:grid;
  grid-template-columns:200px 1fr;
  gap:2.5rem;
  align-items:center;
  padding:2.2rem 0;
  border-bottom:1px solid var(--gray-200);
}
.brand-type-meta {
  display:flex; flex-direction:column; gap:0.3rem;
}
.brand-type-role {
  font-size:0.72rem; font-weight:700; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--red-dark);
}
.brand-type-spec {
  font-size:0.72rem; color:var(--gray-400); line-height:1.5;
}
.brand-type-specimen {
  color:var(--black); font-family:var(--font); font-weight:700; line-height:1.1;
  letter-spacing:-0.03em;
}
.brand-type--h1 { font-size:clamp(2rem, 4vw, 3.8rem); }
.brand-type--h2 { font-size:clamp(1.6rem, 3vw, 2.8rem); }
.brand-type--h3 { font-size:clamp(1.2rem, 2vw, 1.8rem); letter-spacing:-0.02em; }
.brand-type--h4 { font-size:1.05rem; letter-spacing:-0.01em; }
.brand-type--body {
  font-weight:400; letter-spacing:0; line-height:1.78;
  font-size:1rem; color:var(--gray-600); max-width:560px;
}
.brand-type--label {
  font-size:0.68rem; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--red-dark);
}

/* ── Logo cards ──────────────────────────────────────── */
.brand-logo-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:2rem;
}
.brand-logo-card {
  border-radius:var(--r); overflow:hidden;
}
.brand-logo-card--dark { background:var(--char); }
.brand-logo-card--light { background:var(--offwhite); border:1px solid var(--gray-200); }

.brand-logo-preview {
  display:flex; align-items:center; justify-content:center;
  padding:3.5rem 2.5rem;
  min-height:160px;
}
.brand-logo-info {
  padding:1.5rem 2rem 2rem;
}
.brand-logo-label {
  display:block;
  font-size:0.68rem; font-weight:700; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--red);
  margin-bottom:0.6rem;
}
.brand-logo-card--light .brand-logo-label { color:var(--red-dark); }

.brand-logo-info p {
  font-size:0.82rem; line-height:1.65;
  color:rgba(255,255,255,0.55);
  margin-bottom:1.4rem;
}
.brand-logo-card--light .brand-logo-info p { color:var(--gray-600); }

.brand-logo-dl {
  display:inline-flex; align-items:center; gap:0.5rem;
  font-size:0.78rem; padding:0.6rem 1.2rem;
}

/* ── Logo rules ──────────────────────────────────────── */
.brand-rules-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:2rem;
}
.brand-rule {
  border-radius:var(--r);
  padding:2rem 2rem 2rem;
}
.brand-rule--do   { background:var(--offwhite); border:1px solid var(--gray-200); }
.brand-rule--dont { background:#FFF5F5; border:1px solid rgba(225,28,42,0.15); }

.brand-rule-tag {
  display:inline-block;
  font-size:0.68rem; font-weight:700; letter-spacing:0.18em;
  text-transform:uppercase;
  margin-bottom:1.2rem;
}
.brand-rule--do   .brand-rule-tag { color:#1A7340; }
.brand-rule--dont .brand-rule-tag { color:var(--red); }

.brand-rule-list {
  list-style:none; padding:0;
  display:flex; flex-direction:column; gap:0.75rem;
}
.brand-rule-list li {
  font-size:0.84rem; line-height:1.6; color:var(--gray-600);
  padding-left:1.2rem; position:relative;
}
.brand-rule--do .brand-rule-list li::before {
  content:'✓'; position:absolute; left:0;
  color:#1A7340; font-weight:700; font-size:0.8rem;
}
.brand-rule--dont .brand-rule-list li::before {
  content:'✗'; position:absolute; left:0;
  color:var(--red); font-weight:700; font-size:0.8rem;
}

/* ── Brand responsive ────────────────────────────────── */
@media (max-width:760px) {
  .brand-type-row   { grid-template-columns:1fr; gap:0.8rem; }
  .brand-logo-grid  { grid-template-columns:1fr; }
  .brand-rules-grid { grid-template-columns:1fr; }
  .brand-swatch     { width:140px; height:140px; }
}
