/* ============================================================
   SECTIONS
   ============================================================ */

/* section heading block */
.shead { max-width: 720px; }
.shead .eyebrow { margin-bottom: 20px; }
.shead .lead { margin-top: 20px; }
.center { text-align: center; margin-inline: auto; }
.center .eyebrow { justify-content: center; }
.center .lead { margin-inline: auto; }

/* ---------- 1. PROBLEM stat ---------- */
.problem { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.problem-stat .big {
  font-family: var(--serif); font-weight: 460;
  font-size: clamp(3.4rem, 9vw, 7rem); line-height: 0.92; letter-spacing: -0.04em;
  background: linear-gradient(180deg, var(--ink), #3a3a52);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.problem-stat .big em { font-style: italic; color: var(--teal); -webkit-text-fill-color: var(--teal); }
.problem-stat .sub {
  font-family: var(--serif); font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 440;
  line-height: 1.18; letter-spacing: -0.02em; margin-top: 8px; max-width: 16ch;
}
.problem-aside { }
.bar-viz { display: grid; gap: 18px; }
.bar-row { }
.bar-row .blab { display: flex; justify-content: space-between; font-size: 0.82rem; color: var(--ink-55); margin-bottom: 8px; }
.bar-row .blab b { color: var(--ink); font-weight: 600; }
.bar-track { height: 12px; border-radius: 100px; background: var(--bg-3); overflow: hidden; }
.bar-fill { height: 100%; border-radius: 100px; transform: scaleX(0); transform-origin: left; transition: transform 1.1s var(--ease); }
.in .bar-fill { transform: scaleX(1); }
.bar-fill.doc-time { background: linear-gradient(90deg, #c4452f, #d8694f); }
.bar-fill.citizen-time { background: linear-gradient(90deg, var(--teal-deep), var(--teal)); }
.bar-note { font-family: var(--mono); font-size: 0.7rem; color: var(--ink-40); margin-top: 18px; letter-spacing: 0.02em; }

/* ---------- 2. BEFORE / AFTER ---------- */
.ba { display: grid; grid-template-columns: 1fr auto 1fr; gap: clamp(16px, 3vw, 30px); align-items: stretch; margin-top: 52px; }
.ba-card {
  border-radius: 18px; padding: clamp(26px, 3.4vw, 42px);
  position: relative; display: flex; flex-direction: column;
  border: 1px solid var(--hair);
}
.ba-card.before { background: var(--bg-2); }
.ba-card.after { background: var(--navy); color: var(--d-fg); border-color: var(--navy); box-shadow: var(--shadow-2); }
.ba-tag {
  font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px;
}
.ba-card.before .ba-tag { color: var(--ink-40); }
.ba-card.after .ba-tag { color: var(--teal); }
.ba-time { font-family: var(--serif); line-height: 0.95; letter-spacing: -0.03em; }
.ba-time .num { font-size: clamp(3.2rem, 7vw, 5.4rem); font-weight: 460; display: block; }
.ba-card.after .ba-time .num { color: #fff; }
.ba-time .unit { font-size: clamp(1.1rem, 2vw, 1.5rem); color: var(--ink-55); font-weight: 440; }
.ba-card.after .ba-time .unit { color: var(--d-fg-60); }
.ba-desc { margin-top: 18px; font-size: 0.98rem; line-height: 1.5; color: var(--ink-70); }
.ba-card.after .ba-desc { color: var(--d-fg-60); }
.ba-card.after .ba-desc strong { color: #fff; font-weight: 600; }
.ba-steps { margin-top: 26px; display: grid; gap: 9px; }
.ba-steps li { list-style: none; display: flex; align-items: center; gap: 11px; font-size: 0.86rem; color: var(--ink-55); }
.ba-card.after .ba-steps li { color: var(--d-fg-60); }
.ba-steps .ic { width: 16px; height: 16px; flex: none; }
.ba-mid {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; color: var(--ink-40); padding-inline: 4px;
}
.ba-mid .arrow { width: 30px; height: 30px; color: var(--teal); }
.ba-mid .save { font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.08em; text-align: center; color: var(--teal-deep); writing-mode: horizontal-tb; }
@media (max-width: 760px) {
  .ba { grid-template-columns: 1fr; }
  .ba-mid { flex-direction: row; padding-block: 6px; }
  .ba-mid .arrow { transform: rotate(90deg); }
}
.ba-tagline {
  text-align: center; margin: 40px auto 0; max-width: 26ch;
  font-family: var(--serif); font-size: clamp(1.5rem, 2.8vw, 2.1rem); font-weight: 440;
  letter-spacing: -0.02em; line-height: 1.18; color: var(--ink); text-wrap: balance;
}
.ba-tagline em { font-style: italic; color: var(--teal-deep); }

/* ---------- 2b. THREE WAYS TO START ---------- */
.ways { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 52px; }
.way-card {
  background: #fff; border: 1px solid var(--hair); border-radius: var(--radius);
  padding: 30px 28px; display: flex; flex-direction: column;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
}
.way-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-2); border-color: rgba(14,138,107,0.4); }
.way-ic {
  width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: var(--bg-2); color: var(--ink-70); margin-bottom: 22px;
  transition: background 0.35s, color 0.35s;
}
.way-ic.teal { background: var(--teal-soft); color: var(--teal-deep); }
.way-card:hover .way-ic { background: var(--teal); color: #fff; }
.way-ic svg { width: 23px; height: 23px; }
.way-card h3 { font-family: var(--serif); font-size: 1.4rem; font-weight: 500; letter-spacing: -0.02em; }
.way-card p { font-size: 0.94rem; color: var(--ink-55); margin-top: 10px; line-height: 1.55; }
.ways-note {
  text-align: center; margin: 34px auto 0; max-width: 46ch;
  font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--ink-55); letter-spacing: -0.01em;
}
.ways-note em { color: var(--teal-deep); font-style: italic; }
@media (max-width: 820px) { .ways { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }

/* ---------- 3. THEMES grid ---------- */
.themes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 52px; }
.theme-card {
  background: #fff; border: 1px solid var(--hair); border-radius: var(--radius);
  padding: 28px 26px 26px; position: relative;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
  display: flex; flex-direction: column; min-height: 210px;
}
.theme-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-2); border-color: rgba(14,138,107,0.4); }
.theme-ic {
  width: 44px; height: 44px; border-radius: 11px; display: flex; align-items: center; justify-content: center;
  background: var(--teal-soft); color: var(--teal-deep); margin-bottom: 22px;
  transition: background 0.35s, color 0.35s;
}
.theme-card:hover .theme-ic { background: var(--teal); color: #fff; }
.theme-ic svg { width: 22px; height: 22px; }
.theme-name { font-family: var(--serif); font-size: 1.4rem; font-weight: 500; letter-spacing: -0.02em; }
.theme-desc { font-size: 0.92rem; color: var(--ink-55); margin-top: 8px; line-height: 1.5; flex: 1; }
.theme-foot { margin-top: 20px; display: flex; align-items: baseline; gap: 8px; padding-top: 16px; border-top: 1px solid var(--hair); }
.theme-foot .v { font-family: var(--serif); font-size: 1.5rem; font-weight: 500; color: var(--teal-deep); letter-spacing: -0.02em; }
.theme-foot .l { font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-40); }
.theme-roles {
  margin-top: 12px;
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.01em;
  color: var(--ink-40);
  line-height: 1.5;
}
.theme-roles span {
  color: var(--teal-deep);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-right: 7px;
  font-size: 0.6rem;
}

/* ---------- 3b. AGENT LIBRARY ---------- */
.lib { margin-top: 52px; }
.lib-foundation { text-align: center; }
.lib-cap {
  display: block; margin-bottom: 16px;
  font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--ink-40);
}
.lib-std { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.lib-std span {
  font-family: var(--sans); font-size: 0.9rem; font-weight: 600; color: var(--ink-70);
  background: #fff; border: 1px solid var(--hair); border-radius: 100px; padding: 9px 17px;
}
.lib-flow {
  display: flex; flex-direction: column; align-items: center; gap: 9px;
  color: var(--teal); padding: 24px 0 28px;
}
.lib-flow span {
  font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-40);
}
.lib-cloud {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
  max-width: 880px; margin: 0 auto;
}
.lib-chip {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 0.95rem; font-weight: 500; color: var(--ink);
  background: #fff; border: 1px solid var(--hair); border-radius: 100px;
  padding: 11px 18px; white-space: nowrap;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s;
}
.lib-chip:hover { transform: translateY(-3px); box-shadow: var(--shadow-1); border-color: rgba(14,138,107,0.4); }
.lib-chip .dot {
  width: 8px; height: 8px; border-radius: 50%;
  border: 1.5px solid var(--ink-40); background: transparent; flex: none;
}
.lib-chip.is-live .dot { background: var(--teal); border-color: var(--teal); box-shadow: 0 0 0 3px rgba(14,138,107,0.14); }
.lib-more {
  color: var(--ink-40); font-family: var(--serif); font-style: italic; font-size: 1rem;
  border-style: dashed; border-color: var(--hair-2);
}
.lib-more:hover { transform: none; box-shadow: none; border-color: var(--hair-2); }
.lib-legend {
  display: flex; justify-content: center; gap: 26px; margin-top: 28px;
  font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.04em; color: var(--ink-40);
}
.lib-legend .k { display: inline-flex; align-items: center; gap: 8px; }
.lib-legend .dot { width: 8px; height: 8px; border-radius: 50%; }
.lib-legend .dot.live { background: var(--teal); }
.lib-legend .dot.dev { border: 1.5px solid var(--ink-40); }
.lib-auto {
  text-align: center; margin: 26px auto 0; max-width: 52ch;
  font-family: var(--serif); font-style: italic; font-size: 1.08rem; color: var(--ink-55); letter-spacing: -0.01em;
}
.lib-auto em { color: var(--teal-deep); font-style: italic; }
@media (max-width: 900px) { .themes-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .themes-grid { grid-template-columns: 1fr; } }

/* ---------- 4. MARKETS ---------- */
.markets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 52px; border: 1px solid var(--hair); border-radius: var(--radius); overflow: hidden; background: #fff; }
.market { padding: clamp(28px, 3vw, 44px); position: relative; transition: background 0.3s; }
.market + .market { border-left: 1px solid var(--hair); }
.market:hover { background: var(--bg-2); }
.market-scale { font-family: var(--serif); font-size: clamp(2.6rem, 4.4vw, 3.6rem); font-weight: 460; letter-spacing: -0.03em; line-height: 1; }
.market-scale span { font-size: 0.9rem; font-family: var(--mono); letter-spacing: 0.06em; color: var(--ink-40); display: block; margin-top: 10px; text-transform: uppercase; }
.market-name { font-size: 1.05rem; font-weight: 600; margin-top: 18px; letter-spacing: -0.01em; }
.market-desc { font-size: 0.9rem; color: var(--ink-55); margin-top: 6px; line-height: 1.5; }
@media (max-width: 760px) {
  .markets { grid-template-columns: 1fr; }
  .market + .market { border-left: 0; border-top: 1px solid var(--hair); }
}

/* ---------- 5. SOVEREIGNTY (dark) ---------- */
.sov { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
.sov h2 em { color: #fff; font-style: italic; }
.sov-points { margin-top: 30px; display: grid; gap: 18px; }
.sov-point { display: flex; gap: 14px; align-items: flex-start; }
.sov-point .ic { width: 22px; height: 22px; flex: none; color: var(--teal); margin-top: 2px; }
.sov-point p { font-size: 0.98rem; color: var(--d-fg-60); line-height: 1.5; }
.sov-point p b { color: var(--d-fg); font-weight: 600; }

/* european stack viz */
.stack { display: grid; gap: 12px; position: relative; }
.stack-row {
  display: flex; align-items: center; gap: 16px;
  background: var(--navy-2); border: 1px solid var(--d-hair);
  border-radius: 12px; padding: 16px 20px;
  transition: border-color 0.3s, transform 0.3s var(--ease);
}
.stack-row:hover { border-color: rgba(14,138,107,0.5); transform: translateX(4px); }
.stack-flag {
  font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.08em;
  color: var(--teal); border: 1px solid rgba(14,138,107,0.4); border-radius: 6px;
  padding: 4px 8px; flex: none; min-width: 46px; text-align: center;
}
.stack-main { flex: 1; }
.stack-main .t { font-weight: 600; font-size: 0.98rem; color: #fff; letter-spacing: -0.01em; }
.stack-main .d { font-size: 0.82rem; color: var(--d-fg-60); margin-top: 2px; }
.stack-layer { font-family: var(--mono); font-size: 0.62rem; color: var(--d-fg-40); letter-spacing: 0.08em; text-transform: uppercase; }
.stack-foot {
  margin-top: 16px; display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--mono); font-size: 0.72rem; color: var(--teal);
  background: rgba(14,138,107,0.1); border: 1px solid rgba(14,138,107,0.28);
  padding: 9px 14px; border-radius: 100px;
}
@media (max-width: 820px) { .sov { grid-template-columns: 1fr; } }

/* ---------- 6. HOW IT WORKS ---------- */
.how-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 52px; position: relative; }
.how-step {
  background: #fff; border: 1px solid var(--hair); border-radius: var(--radius);
  padding: 30px 28px; position: relative;
}
.how-num {
  font-family: var(--serif); font-size: 1rem; font-weight: 500; color: var(--teal-deep);
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(14,138,107,0.35);
  display: flex; align-items: center; justify-content: center; margin-bottom: 22px;
  background: var(--teal-soft);
}
.how-step h3 { font-size: 1.3rem; font-weight: 500; letter-spacing: -0.02em; }
.how-step p { font-size: 0.94rem; color: var(--ink-55); margin-top: 10px; line-height: 1.55; }
.how-step .who { font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-40); margin-top: 16px; display: block; }
.how-step.is-human .how-num { background: var(--navy); color: #fff; border-color: var(--navy); }
@media (max-width: 820px) { .how-steps { grid-template-columns: 1fr; } }

/* audit trail strip */
.audit {
  margin-top: 22px; background: var(--navy); color: var(--d-fg); border-radius: var(--radius);
  padding: 22px clamp(22px, 3vw, 34px); display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
}
.audit .ic { width: 26px; height: 26px; color: var(--teal); flex: none; }
.audit .t { font-weight: 600; color: #fff; }
.audit .d { font-size: 0.88rem; color: var(--d-fg-60); }
.audit-log { margin-left: auto; font-family: var(--mono); font-size: 0.72rem; color: var(--d-fg-40); display: grid; gap: 4px; }
.audit-log span b { color: var(--teal); }
@media (max-width: 680px) { .audit-log { margin-left: 0; } }

/* ---------- 7. PRICING ---------- */
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 52px; align-items: stretch; }
.price-card {
  background: #fff; border: 1px solid var(--hair); border-radius: 16px;
  padding: 32px 30px; display: flex; flex-direction: column; position: relative;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.price-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
.price-card.featured { background: var(--navy); color: var(--d-fg); border-color: var(--navy); box-shadow: var(--shadow-2); transform: translateY(-10px); }
.price-card.featured:hover { transform: translateY(-14px); }
.price-badge {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.12em; text-transform: uppercase;
  background: var(--teal); color: #fff; padding: 6px 14px; border-radius: 100px; white-space: nowrap;
}
.price-name { font-family: var(--serif); font-size: 1.6rem; font-weight: 500; letter-spacing: -0.02em; }
.price-card.featured .price-name { color: #fff; }
.price-val { margin-top: 16px; display: flex; align-items: baseline; gap: 6px; }
.price-val .amt { font-family: var(--serif); font-size: 2.6rem; font-weight: 460; letter-spacing: -0.03em; }
.price-card.featured .price-val .amt { color: #fff; }
.price-val .per { font-size: 0.84rem; color: var(--ink-40); }
.price-card.featured .price-val .per { color: var(--d-fg-40); }
.price-tagline { font-size: 0.9rem; color: var(--ink-55); margin-top: 8px; min-height: 2.6em; }
.price-card.featured .price-tagline { color: var(--d-fg-60); }
.price-feat { list-style: none; margin-top: 24px; display: grid; gap: 13px; flex: 1; padding-top: 22px; border-top: 1px solid var(--hair); }
.price-card.featured .price-feat { border-top-color: var(--d-hair); }
.price-feat li { display: flex; gap: 11px; align-items: flex-start; font-size: 0.91rem; color: var(--ink-70); line-height: 1.4; }
.price-card.featured .price-feat li { color: var(--d-fg-60); }
.price-feat .ic { width: 16px; height: 16px; color: var(--teal); flex: none; margin-top: 2px; }
.price-card .btn { margin-top: 26px; width: 100%; justify-content: center; }
.price-foot-note {
  margin-top: 14px; text-align: center;
  font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.02em; line-height: 1.5;
  color: var(--ink-40);
}
.price-card.featured .price-foot-note { color: var(--d-fg-40); }
.price-card.featured .btn-ghost { color: #fff; border-color: rgba(255,255,255,0.25); }
.price-card.featured .btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,0.06); }
@media (max-width: 880px) {
  .pricing-grid { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; }
  .price-card.featured { transform: none; }
  .price-card.featured:hover { transform: translateY(-4px); }
}

/* ---------- 8. CLOSING CTA ---------- */
.closing { text-align: center; }
.closing h2 { max-width: 18ch; margin: 0 auto; }
.closing .lead { margin: 22px auto 0; }
.closing .hero-cta { margin-top: 32px; }
.closing-note { margin-top: 22px; font-family: var(--mono); font-size: 0.72rem; color: var(--d-fg-40); letter-spacing: 0.04em; }

/* ---------- 9. FOOTER ---------- */
.footer { background: var(--navy); color: var(--d-fg); padding-block: 60px 40px; }
.footer-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; flex-wrap: wrap; }
.footer .brand-name { color: #fff; }
.footer-tag { color: var(--d-fg-60); margin-top: 14px; max-width: 30ch; font-size: 0.92rem; line-height: 1.5; }
.footer-cols { display: flex; gap: clamp(40px, 7vw, 90px); flex-wrap: wrap; }
.footer-col h4 { font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--d-fg-40); font-weight: 500; margin-bottom: 14px; }
.footer-col a { display: block; font-size: 0.92rem; color: var(--d-fg-60); padding: 5px 0; transition: color 0.2s; }
.footer-col a:hover { color: #fff; }
.footer-bot {
  margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--d-hair);
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  font-family: var(--mono); font-size: 0.72rem; color: var(--d-fg-40); letter-spacing: 0.03em;
}
.footer-bot .eu { display: inline-flex; align-items: center; gap: 8px; }
.footer-bot .eu .star { color: var(--teal); }
