:root {
  --vis-navy-900: #0b1220;
  --vis-navy-800: #0f1a2e;
  --vis-cyan-deep: #0a7d94;
  --vis-cyan-bright: #34d6ee;
  --vis-cyan-light: #5fe0f2;
  --vis-cyan-hover: #056e82;
  --vis-coral: #ff7a59;
  --vis-coral-deep: #d94f36;
  --vis-coral-soft: #fff0ea;
  --vis-ink: #0d1626;
  --vis-text-2: #2b3a4d;
  --vis-slate-600: #5a6a80;
  --vis-slate-500: #64768a;
  --vis-paper: #eef2f6;
  --vis-paper-2: #e9eef3;
  --vis-white: #ffffff;
  --vis-border: #e4e9f0;
  --vis-border-soft: #eef2f6;
  --vis-border-hover: #bfe9f2;
  --vis-success: #12a150;
  --vis-success-bg: #e6f6ee;
  --vis-warning: #d68a00;
  --vis-warning-bg: #fbf1dd;
  --vis-danger: #c23a3a;
  --vis-danger-bg: #fbe9e9;
  --vis-info-bg: #e6f7fb;
  --vis-on-dark-1: #c7d4e1;
  --vis-on-dark-2: #a9bacd;
  --vis-on-dark-3: #9fb2c6;
  --vis-on-dark-4: #7d8ea3;
  --vis-on-dark-6: #5f7089;
  --vis-font-sans: 'Hanken Grotesk', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --vis-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --vis-radius: 11px;
  --vis-radius-md: 14px;
  --vis-radius-lg: 16px;
  --vis-radius-xl: 20px;
  --vis-radius-pill: 100px;
  --vis-shadow-soft: 0 20px 50px rgba(13, 22, 38, 0.06);
  --vis-shadow-hero: 0 24px 60px rgba(11, 18, 32, 0.2);
  --vis-shadow-cyan: 0 8px 24px rgba(52, 214, 238, 0.28);
  --vis-shadow-coral: 0 12px 30px rgba(255, 122, 89, 0.24);
  --vis-max: 1240px;
  --vis-texture-ai: url("../images/ai-visibility-texture.png");
  --vis-hero-place: url("../images/hero-place-photo.png");
  --vis-place-map: url("../images/place-resolution-map.png");
  --vis-pattern-dots: radial-gradient(circle at 1px 1px, rgba(10, 125, 148, 0.14) 1px, transparent 0);
  --vis-pattern-cross:
    linear-gradient(90deg, rgba(10, 125, 148, 0.07) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255, 122, 89, 0.08) 1px, transparent 1px);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--vis-paper-2);
  color: var(--vis-ink);
  font-family: var(--vis-font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font-family: inherit; }
input, select, textarea { font-size: 16px; }
select:not([multiple]) {
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--vis-cyan-deep) 50%),
    linear-gradient(135deg, var(--vis-cyan-deep) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 2px),
    calc(100% - 12px) calc(50% - 2px);
  background-repeat: no-repeat;
  background-size: 6px 6px;
  cursor: pointer;
  padding-right: 42px !important;
}
select:disabled { cursor: not-allowed; opacity: .65; }
::selection { background: #bdeef6; }

.vis-wrap { max-width: var(--vis-max); margin: 0 auto; padding: 0 24px; }
.vis-mono { font-family: var(--vis-font-mono); }
.vis-eyebrow {
  color: var(--vis-cyan-deep);
  font-family: var(--vis-font-mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vis-logo { align-items: center; display: inline-flex; gap: 13px; }
.vis-logo__word { font-size: 18px; font-weight: 800; letter-spacing: -0.018em; }
.vis-logo--dark .vis-logo__word { color: #fff; }
.vis-logo__tab--cyan { fill: var(--vis-cyan-bright); }
.vis-logo__tab--coral { fill: var(--vis-coral); }

.site-header {
  background: rgba(11, 18, 32, .94);
  border-bottom: 1px solid rgba(255,255,255,.08);
  position: sticky;
  top: 0;
  z-index: 40;
}
.site-header__inner {
  align-items: center;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  min-height: 66px;
}
.site-nav { align-items: center; display: flex; flex: 1; gap: 4px; justify-content: center; }
.site-nav a {
  border-radius: 9px;
  color: var(--vis-on-dark-3);
  font-size: 14px;
  font-weight: 600;
  padding: 8px 12px;
  white-space: nowrap;
}
.site-nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav-logout { margin: 0; }
.nav-logout button {
  background: transparent;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 9px;
  color: var(--vis-on-dark-3);
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  padding: 8px 12px;
}
.nav-logout button:hover { background: rgba(255,255,255,.08); color: #fff; }
.locale-switcher { align-items: center; display: flex; gap: 5px; }
.locale-switcher a {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  color: var(--vis-on-dark-3);
  font-family: var(--vis-font-mono);
  font-size: 11px;
  font-weight: 700;
  padding: 6px 9px;
}
.locale-switcher a.is-active,
.locale-switcher a:hover {
  background: #fff;
  color: var(--vis-navy-900);
}

.hero {
  background: var(--vis-navy-900);
  min-height: 650px;
  overflow: hidden;
  position: relative;
}
.hero::before {
  background:
    linear-gradient(100deg, rgba(11,18,32,.98) 0%, rgba(11,18,32,.9) 44%, rgba(11,18,32,.52) 100%),
    var(--vis-hero-place) center / cover no-repeat;
  content: "";
  inset: 0;
  position: absolute;
}
.hero::after,
.sample-hero::after {
  background: var(--vis-pattern-cross), linear-gradient(180deg, rgba(11,18,32,0), rgba(11,18,32,.46));
  background-size: 36px 36px, 36px 36px, auto;
  content: "";
  inset: 0;
  opacity: .5;
  pointer-events: none;
  position: absolute;
}
.hero__inner {
  align-items: center;
  display: grid;
  gap: 56px;
  grid-template-columns: 1.05fr .95fr;
  min-height: 650px;
  padding: 88px 24px 96px;
  position: relative;
  z-index: 1;
}
.hero__copy { animation: vis-up .6s cubic-bezier(.22,1,.36,1) both; }
.hero__pill {
  align-items: center;
  backdrop-filter: blur(8px);
  background: rgba(11,18,32,.48);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--vis-radius-pill);
  color: var(--vis-on-dark-3);
  display: inline-flex;
  font-size: 13px;
  font-weight: 500;
  gap: 8px;
  margin-bottom: 26px;
  padding: 6px 12px;
}
.hero__pill span {
  background: var(--vis-coral);
  border-radius: 50%;
  display: block;
  height: 7px;
  width: 7px;
}
.hero__title {
  color: #fff;
  font-size: 56px;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.04;
  margin: 0 0 20px;
  text-wrap: balance;
}
.hero__lead {
  color: var(--vis-on-dark-2);
  font-size: 19px;
  line-height: 1.55;
  margin: 0 0 34px;
  max-width: 490px;
}
.hero__actions, .button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__actions { gap: 14px; }
.hero__stats { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 40px; }
.hero__stat strong { color: #fff; display: block; font-family: var(--vis-font-mono); font-size: 24px; font-weight: 600; }
.hero__stat span { color: var(--vis-slate-500); display: block; font-size: 13px; margin-top: 2px; }

.hero-place {
  animation: vis-up .7s cubic-bezier(.22,1,.36,1) .12s both;
  background: var(--vis-navy-900);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 20px;
  box-shadow: 0 34px 80px rgba(0,0,0,.48);
  min-height: 520px;
  overflow: hidden;
  position: relative;
}
.hero-place__photo {
  background: var(--vis-hero-place) center / cover no-repeat;
  inset: 0;
  position: absolute;
  transform: scale(1.02);
}
.hero-place__shade {
  background:
    linear-gradient(180deg, rgba(11,18,32,.12) 0%, rgba(11,18,32,.18) 38%, rgba(11,18,32,.88) 100%),
    radial-gradient(circle at 70% 26%, rgba(52,214,238,.28), transparent 20%),
    radial-gradient(circle at 28% 62%, rgba(255,122,89,.18), transparent 22%);
  inset: 0;
  position: absolute;
}
.hero-place__network {
  inset: 0;
  opacity: .9;
  position: absolute;
  z-index: 2;
}
.hero-place__pin {
  align-items: center;
  background: rgba(255,122,89,.18);
  border: 1px solid rgba(255,122,89,.4);
  border-radius: 50%;
  box-shadow: 0 0 0 10px rgba(255,122,89,.12), 0 18px 42px rgba(0,0,0,.34);
  display: grid;
  height: 44px;
  justify-items: center;
  position: absolute;
  right: 29%;
  top: 37%;
  width: 44px;
  z-index: 3;
}
.hero-place__pin::before {
  background: var(--vis-coral);
  border-radius: 50%;
  content: "";
  height: 14px;
  width: 14px;
}
.hero-place__note {
  backdrop-filter: blur(12px);
  background: rgba(11,18,32,.72);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  color: #dbe6f0;
  font-size: 13px;
  line-height: 1.45;
  max-width: 230px;
  padding: 12px 14px;
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 3;
}
.hero-place__note span {
  color: var(--vis-cyan-light);
  display: block;
  font-family: var(--vis-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.hero-place__note strong { color: #fff; display: block; font-weight: 800; }
.hero-place__note small { color: #dbe6f0; display: block; font-size: 13px; }
.hero-place__chip {
  align-items: center;
  backdrop-filter: blur(10px);
  background: rgba(11,18,32,.68);
  border: 1px solid rgba(52,214,238,.22);
  border-radius: 999px;
  color: #ecf7fb;
  display: inline-flex;
  font-size: 12px;
  font-weight: 600;
  gap: 8px;
  padding: 8px 11px;
  position: absolute;
  z-index: 3;
}
.hero-place__chip::before {
  background: var(--vis-cyan-bright);
  border-radius: 50%;
  content: "";
  height: 7px;
  width: 7px;
}
.hero-place__chip--one { left: 28px; top: 34%; }
.hero-place__chip--two { right: 28px; top: 55%; }

.hero-answer-card {
  animation: vis-up .7s cubic-bezier(.22,1,.36,1) .12s both;
  background: linear-gradient(180deg, #0f1a2e, #0c1526);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  bottom: 22px;
  box-shadow: 0 30px 70px rgba(0,0,0,.45);
  color: #d4dfe9;
  left: 22px;
  padding: 22px;
  position: absolute;
  right: 22px;
  z-index: 3;
}
.hero-answer-card__head {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.07);
  color: var(--vis-on-dark-1);
  display: flex;
  font-size: 13px;
  font-weight: 600;
  gap: 9px;
  margin-bottom: 16px;
  padding-bottom: 14px;
}
.hero-answer-card__dot {
  background: var(--vis-cyan-bright);
  border-radius: 50%;
  height: 11px;
  width: 11px;
}
.hero-answer-card__head small {
  color: var(--vis-on-dark-6);
  font-family: var(--vis-font-mono);
  font-size: 11px;
  font-weight: 400;
  margin-left: auto;
}
.hero-answer-card__q {
  background: rgba(255,255,255,.05);
  border-radius: 12px;
  color: var(--vis-on-dark-3);
  font-size: 14px;
  margin-bottom: 14px;
  padding: 13px 15px;
}
.hero-answer-card__a { color: #d4dfe9; font-size: 14px; line-height: 1.65; }
.hero-answer-card__metrics { display: flex; gap: 10px; margin-top: 18px; }
.hero-answer-card__metric {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 10px;
  flex: 1;
  padding: 11px 13px;
}
.hero-answer-card__metric--cyan {
  background: rgba(52,214,238,.08);
  border-color: rgba(52,214,238,.2);
}
.hero-answer-card__metric-label {
  color: var(--vis-slate-500);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.hero-answer-card__metric-value {
  color: #e6ecf2;
  font-family: var(--vis-font-mono);
  font-size: 20px;
  font-weight: 600;
  margin-top: 3px;
}
.hero-answer-card__metric--cyan .hero-answer-card__metric-value { color: var(--vis-cyan-light); }
.hero-answer-card__metric-value span { color: var(--vis-slate-500); font-size: 12px; }

.hero-trust {
  background: var(--vis-navy-900);
  border-top: 1px solid rgba(255,255,255,.06);
}
.hero-trust__inner {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 18px 34px;
  justify-content: center;
  padding-bottom: 20px;
  padding-top: 20px;
}
.hero-trust__lead { color: var(--vis-on-dark-6); font-size: 13px; font-weight: 500; }
.hero-trust__item { color: var(--vis-on-dark-4); font-weight: 600; }
.hero-trust__dot { color: #33455c; }

.btn {
  align-items: center;
  border: 0;
  border-radius: var(--vis-radius);
  cursor: pointer;
  display: inline-flex;
  font-size: 15px;
  font-weight: 800;
  justify-content: center;
  padding: 13px 22px;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .24s ease, background-color .18s ease, border-color .18s ease;
  white-space: nowrap;
}
.btn--lg { font-size: 16px; padding: 15px 26px; }
.btn:hover { transform: translateY(-2px); }
.btn--cyan { background: var(--vis-cyan-bright); box-shadow: var(--vis-shadow-cyan); color: #04222b; }
.btn--coral { background: var(--vis-coral); box-shadow: var(--vis-shadow-coral); color: #27120c; }
.btn--primary { background: var(--vis-cyan-deep); color: #fff; }
.btn--ghost { background: transparent; border: 1px solid rgba(255,255,255,.2); color: #dbe6f0; }
.btn--light { background: #fff; border: 1px solid var(--vis-border); color: var(--vis-cyan-deep); }

.ai-card {
  background: linear-gradient(180deg, #0f1a2e, #0c1526);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  box-shadow: 0 30px 70px rgba(0,0,0,.45);
  color: #d4dfe9;
  padding: 22px;
}
.ai-card__head {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.07);
  display: flex;
  gap: 9px;
  margin-bottom: 16px;
  padding-bottom: 14px;
}
.ai-card__q {
  background: rgba(255,255,255,.05);
  border-radius: 12px;
  color: var(--vis-on-dark-3);
  font-size: 14px;
  margin-bottom: 14px;
  padding: 13px 15px;
}
.ai-card__a { font-size: 14px; line-height: 1.65; }
.hl { background: rgba(52,214,238,.18); border-radius: 5px; color: var(--vis-cyan-light); font-weight: 700; padding: 1px 5px; }
.hl--strong { background: rgba(52,214,238,.28); color: #7fe8f6; }
.hl--warm { background: rgba(255,122,89,.18); color: #ffd1c5; }

.section { padding: 84px 0; }
.section--white { background: #fff; }
.section--pattern {
  background:
    var(--vis-pattern-dots) 0 0 / 22px 22px,
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,252,254,.96));
}
.section__head { margin: 0 auto 44px; max-width: 760px; text-align: center; }
.section__title { font-size: 38px; font-weight: 800; letter-spacing: -0.02em; margin: 12px 0 0; }
.section__lead { color: var(--vis-slate-600); font-size: 17px; line-height: 1.6; margin: 14px auto 0; max-width: 680px; }
.grid-2 { display: grid; gap: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { display: grid; gap: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-lg);
  padding: 24px;
}
.card:hover { border-color: var(--vis-border-hover); box-shadow: var(--vis-shadow-soft); }
.card h3 { font-size: 20px; margin: 0 0 8px; }
.card p { color: var(--vis-slate-600); line-height: 1.55; margin: 0; }
.step-number { color: var(--vis-cyan-deep); font-family: var(--vis-font-mono); font-size: 13px; font-weight: 700; margin-bottom: 14px; }

.place-resolution { background: #fff; border-bottom: 1px solid var(--vis-border); border-top: 1px solid var(--vis-border); }
.place-resolution__inner {
  align-items: center;
  display: grid;
  gap: 48px;
  grid-template-columns: 1.05fr .95fr;
  padding-bottom: 78px;
  padding-top: 78px;
}
.map-card {
  background: var(--vis-place-map) center / cover no-repeat;
  border: 1px solid var(--vis-border);
  border-radius: 20px;
  box-shadow: var(--vis-shadow-soft);
  min-height: 390px;
  overflow: hidden;
  position: relative;
}
.map-fact {
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(228,233,240,.9);
  border-radius: 14px;
  bottom: 22px;
  box-shadow: 0 16px 34px rgba(13,22,38,.12);
  left: 22px;
  max-width: 300px;
  padding: 16px 18px;
  position: absolute;
}
.map-fact__k { color: var(--vis-cyan-deep); font-family: var(--vis-font-mono); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.map-fact__v { color: var(--vis-ink); font-size: 16px; font-weight: 800; margin-top: 5px; }
.map-fact__d { color: var(--vis-slate-600); font-size: 13px; line-height: 1.45; margin-top: 5px; }
.check-list { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; }
.check-list li { color: var(--vis-text-2); display: flex; gap: 12px; line-height: 1.5; list-style: none; }
.check-list li::before { background: var(--vis-coral); border-radius: 50%; box-shadow: 0 0 0 5px var(--vis-coral-soft); content: ""; flex: 0 0 10px; height: 10px; margin-top: 7px; width: 10px; }

.price-card {
  background: var(--vis-navy-900);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(11,18,32,.25);
  color: #fff;
  overflow: hidden;
  padding: 34px 32px;
  position: relative;
}
.price-card::before {
  background: linear-gradient(110deg, rgba(11,18,32,.98), rgba(11,18,32,.82)), var(--vis-texture-ai) center / cover no-repeat;
  content: "";
  inset: 0;
  opacity: .48;
  position: absolute;
}
.price-card > * { position: relative; z-index: 1; }
.price { font-family: var(--vis-font-mono); font-size: 42px; font-weight: 700; margin: 12px 0; }
.audit-package-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  margin-top: 18px;
}
.audit-package-card {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  box-shadow: var(--vis-shadow-soft);
  display: grid;
  gap: 16px;
  padding: 24px;
}
.audit-package-card__top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: space-between;
}
.audit-package-card__top .badge { background: var(--vis-coral-soft); color: var(--vis-coral-deep); }
.audit-package-card__top .vis-mono { color: var(--vis-slate-500); font-size: 11px; }
.audit-package-card h3 { font-size: 22px; line-height: 1.2; margin: 0; }
.audit-package-card p { color: var(--vis-slate-600); line-height: 1.55; margin: 0; }
.audit-package-card__price {
  color: var(--vis-ink);
  font-family: var(--vis-font-mono);
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
}
.audit-package-card__price span {
  color: var(--vis-slate-500);
  display: block;
  font-family: var(--vis-font-sans);
  font-size: 12px;
  font-weight: 800;
  margin-top: 6px;
  text-transform: uppercase;
}
.audit-package-card__meta {
  border-top: 1px solid var(--vis-border-soft);
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding-top: 14px;
}
.audit-package-card__meta div { min-width: 0; }
.audit-package-card__meta dt { color: var(--vis-slate-500); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.audit-package-card__meta dd { color: var(--vis-ink); font-size: 15px; font-weight: 800; margin: 4px 0 0; }
.audit-package-card .btn { justify-self: start; }
.audit-package-empty {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  color: var(--vis-slate-600);
  margin-top: 18px;
  padding: 24px;
}
.audit-package-empty strong { color: var(--vis-ink); display: block; font-size: 18px; margin-bottom: 6px; }
.audit-package-empty p { line-height: 1.55; margin: 0; }
.badge {
  background: var(--vis-info-bg);
  border-radius: var(--vis-radius-pill);
  color: var(--vis-cyan-deep);
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  padding: 5px 11px;
}
.badge--warm { background: rgba(255,122,89,.16); color: #ffd1c5; }
.badge--light { background: var(--vis-info-bg); color: var(--vis-cyan-deep); }

.faq-list { display: grid; gap: 14px; }
.faq-item { background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius-lg); padding: 22px 24px; }
.faq-item h3 { font-size: 18px; margin: 0 0 8px; }
.faq-item p { color: var(--vis-slate-600); line-height: 1.6; margin: 0; }

.sample-hero {
  background: var(--vis-navy-900);
  overflow: hidden;
  position: relative;
}
.sample-hero::before {
  background: linear-gradient(100deg, rgba(11,18,32,.98), rgba(11,18,32,.76)), var(--vis-texture-ai) center / cover no-repeat;
  content: "";
  inset: 0;
  position: absolute;
}
.sample-hero .vis-wrap { position: relative; z-index: 1; }
.score-grid { display: grid; gap: 18px; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.score { border-top: 1px solid var(--vis-border-soft); padding-top: 14px; }
.score strong { display: block; font-family: var(--vis-font-mono); font-size: 28px; }
.bar { background: var(--vis-paper); border-radius: 999px; height: 8px; margin-top: 8px; overflow: hidden; }
.bar span { background: var(--vis-cyan-deep); border-radius: 999px; display: block; height: 100%; }

.wizard {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-xl);
  box-shadow: var(--vis-shadow-soft);
  display: grid;
  grid-template-columns: 280px 1fr;
  margin-top: 32px;
  overflow: hidden;
}
.wizard__rail { background: var(--vis-navy-900); padding: 32px 26px; }
.wizard__step { align-items: center; color: var(--vis-on-dark-3); display: flex; gap: 12px; padding: 9px 0; }
.wizard__dot { align-items: center; background: rgba(255,255,255,.06); border-radius: 50%; display: flex; font-family: var(--vis-font-mono); font-size: 12px; height: 26px; justify-content: center; width: 26px; }
.wizard__step:first-of-type .wizard__dot { background: var(--vis-cyan-bright); color: #04222b; }
.wizard__form { padding: 36px 38px; }
.wizard__body { display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr) 290px; }
.wizard__steps { min-width: 0; }
.form-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field { display: grid; gap: 8px; }
.field label { color: var(--vis-slate-600); font-size: 13px; font-weight: 700; }
.field input, .field select, .field textarea {
  background-color: #fff;
  border: 1.5px solid #d7dee7;
  border-radius: var(--vis-radius);
  color: var(--vis-ink);
  font-size: 16px;
  outline: none;
  padding: 14px 16px;
  width: 100%;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--vis-cyan-deep); box-shadow: 0 0 0 4px rgba(10,125,148,.12); }
.field-error { color: #b73535; font-size: 13px; font-weight: 700; }
.field-hint { color: var(--vis-slate-500); font-size: 13px; line-height: 1.45; }
.field-hint.is-ok { color: var(--vis-success); font-weight: 700; }
.field-hint.is-warn { color: var(--vis-warning); font-weight: 700; }
.field-hint.is-loading { color: var(--vis-cyan-deep); font-weight: 700; }
.place-search-field { position: relative; }
.place-suggestions {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  box-shadow: 0 18px 44px rgba(11,18,32,.14);
  display: grid;
  margin-top: 2px;
  max-height: 250px;
  overflow: auto;
  padding: 6px;
  z-index: 8;
}
.place-suggestion {
  background: transparent;
  border: 0;
  border-radius: 8px;
  color: var(--vis-ink);
  cursor: pointer;
  display: grid;
  gap: 3px;
  padding: 11px 12px;
  text-align: left;
  width: 100%;
}
.place-suggestion:hover, .place-suggestion:focus { background: var(--vis-info-bg); outline: none; }
.place-suggestion strong { font-size: 14px; line-height: 1.25; }
.place-suggestion span { color: var(--vis-slate-500); font-size: 12px; line-height: 1.35; }
.form-alert {
  background: #fff3cf;
  border: 1px solid #f4d47a;
  border-radius: var(--vis-radius);
  color: #6f5007;
  font-weight: 700;
  margin: 18px 0;
  padding: 12px 14px;
}
.checkbox-field {
  align-items: flex-start;
  color: var(--vis-slate-700);
  display: flex;
  gap: 10px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
  margin-top: 20px;
}
.checkbox-field input { margin-top: 3px; }

.no-website-option {
  align-items: center;
  background: #f7fafc;
  border: 1.5px solid #d7dee7;
  border-radius: var(--vis-radius);
  color: var(--vis-ink);
  cursor: pointer;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-top: 14px;
  padding: 14px 16px;
  transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.no-website-option:hover { border-color: var(--vis-cyan-deep); box-shadow: 0 10px 28px rgba(11,18,32,.06); }
.no-website-option span { display: grid; gap: 3px; }
.no-website-option strong { font-size: 15px; }
.no-website-option small { color: var(--vis-slate-600); font-size: 13px; line-height: 1.4; }
.no-website-option input { flex: 0 0 auto; height: 18px; width: 18px; }
.wizard-discovery-strip {
  align-items: center;
  background: #fff7e8;
  border: 1px solid #f2d49d;
  border-radius: var(--vis-radius);
  color: #6a4a12;
  display: grid;
  gap: 4px 10px;
  grid-template-columns: 10px minmax(0, 1fr);
  margin-top: 14px;
  padding: 13px 14px;
}
.wizard-discovery-strip span {
  background: var(--vis-coral);
  border-radius: 999px;
  box-shadow: 0 0 0 5px rgba(239,109,85,.13);
  height: 10px;
  width: 10px;
}
.wizard-discovery-strip strong { color: #442f0b; font-size: 14px; }
.wizard-discovery-strip em { color: #7d622d; font-size: 12px; font-style: normal; grid-column: 2; }
.wizard-discovery-strip.is-ok { background: var(--vis-success-bg); border-color: rgba(18,161,80,.24); color: var(--vis-success); }
.wizard-discovery-strip.is-ok span { background: var(--vis-success); box-shadow: 0 0 0 5px rgba(18,161,80,.14); }
.wizard-discovery-strip.is-ok strong { color: var(--vis-success); }
.wizard-discovery-strip.is-ok em { color: #47745c; }
.wizard-discovery-strip.is-warn { background: var(--vis-warning-bg); border-color: rgba(214,138,0,.28); }
.wizard-discovery-strip.is-loading span { animation: vis-pulse 1.1s ease-in-out infinite; background: var(--vis-cyan-deep); box-shadow: 0 0 0 5px rgba(10,125,148,.13); }

.form-note {
  color: var(--vis-slate-600);
  font-size: 13px;
  line-height: 1.5;
  margin: 18px 0 0;
}

.form-grid--single {
  grid-template-columns: 1fr;
}

.readiness-progress {
  background: var(--vis-paper);
  border-radius: 999px;
  height: 10px;
  margin-top: 24px;
  overflow: hidden;
}

.readiness-progress span {
  animation: readinessPulse 1.6s ease-in-out infinite;
  background: linear-gradient(90deg, var(--vis-cyan-deep), var(--vis-coral));
  border-radius: inherit;
  display: block;
  height: 100%;
  width: 42%;
}

@keyframes readinessPulse {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(250%); }
}

.preview-layout {
  align-items: start;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
}

.preview-score-card {
  background: var(--vis-navy-900);
  border-radius: var(--vis-radius-lg);
  color: #fff;
  padding: 26px;
}

.preview-score {
  color: var(--vis-cyan-bright);
  font-family: var(--vis-font-mono);
  font-size: 72px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  margin: 18px 0 10px;
}

.preview-score-card p {
  color: var(--vis-on-dark-2);
  line-height: 1.5;
  margin: 0;
}

.preview-breakdown {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.score-tile {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  min-height: 116px;
  padding: 18px;
}

.score-tile span {
  color: var(--vis-slate-600);
  display: block;
  font-size: 13px;
  line-height: 1.35;
}

.score-tile strong {
  color: var(--vis-cyan-deep);
  display: block;
  font-family: var(--vis-font-mono);
  font-size: 36px;
  font-weight: 700;
  margin-top: 12px;
}

.issue-list {
  display: grid;
  gap: 12px;
}

.issue-item {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  color: var(--vis-slate-600);
  line-height: 1.55;
  padding: 14px 16px;
}

.issue-item strong {
  color: var(--vis-ink);
}

.checkout-panel {
  background: var(--vis-navy-900);
  border-radius: var(--vis-radius-lg);
  color: #fff;
  padding: 24px;
}

.checkout-panel h2 {
  color: #fff;
  font-size: 26px;
  margin: 14px 0 8px;
}

.checkout-panel p {
  color: var(--vis-on-dark-2);
  line-height: 1.6;
  margin: 0 0 22px;
}

.checkout-package-section {
  border-bottom: 1px solid rgba(148, 163, 184, .18);
  border-top: 1px solid rgba(148, 163, 184, .18);
  display: grid;
  gap: 13px;
  margin: 18px 0 22px;
  padding: 18px 0;
}

.checkout-package-head h3 {
  color: #fff;
  font-size: 17px;
  line-height: 1.35;
  margin: 0 0 5px;
}

.checkout-panel .checkout-package-head p {
  color: var(--vis-on-dark-2);
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
}

.checkout-package-grid {
  display: grid;
  gap: 10px;
}

.checkout-package-option {
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: var(--vis-radius);
  cursor: pointer;
  display: block;
  min-width: 0;
  padding: 14px;
  position: relative;
}

.checkout-package-option input {
  cursor: pointer;
  height: 100%;
  inset: 0;
  margin: 0;
  opacity: 0;
  position: absolute;
  width: 100%;
  z-index: 2;
}

.checkout-package-option.is-selected,
.checkout-package-option:has(input:checked) {
  background: rgba(52,214,238,.12);
  border-color: rgba(52,214,238,.72);
  box-shadow: 0 0 0 1px rgba(52,214,238,.3);
}

.checkout-package-option:focus-within {
  outline: 2px solid rgba(52,214,238,.74);
  outline-offset: 3px;
}

.checkout-package-option__body {
  display: grid;
  gap: 10px;
  min-width: 0;
  position: relative;
  z-index: 1;
}

.checkout-package-option__top {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.checkout-package-radio {
  border: 2px solid rgba(226,232,240,.56);
  border-radius: 50%;
  flex: 0 0 18px;
  height: 18px;
  width: 18px;
}

.checkout-package-option.is-selected .checkout-package-radio,
.checkout-package-option:has(input:checked) .checkout-package-radio {
  background: var(--vis-cyan-bright);
  border-color: var(--vis-cyan-bright);
  box-shadow: inset 0 0 0 4px var(--vis-navy-900);
}

.checkout-package-option strong {
  color: #fff;
  font-size: 15px;
  line-height: 1.25;
}

.checkout-package-description {
  color: var(--vis-on-dark-2);
  font-size: 13px;
  line-height: 1.5;
}

.checkout-package-price {
  color: #fff;
  font-family: var(--vis-font-mono);
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
}

.checkout-package-price em {
  color: var(--vis-on-dark-3);
  display: block;
  font-family: var(--vis-font-sans);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  margin-top: 5px;
  text-transform: uppercase;
}

.checkout-package-meta {
  border-top: 1px solid rgba(148, 163, 184, .18);
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-top: 10px;
}

.checkout-package-meta span {
  color: var(--vis-on-dark-3);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  min-width: 0;
  text-transform: uppercase;
}

.checkout-package-meta b {
  color: #fff;
  display: block;
  font-size: 14px;
  margin-bottom: 2px;
  text-transform: none;
}

.checkout-package-empty-dark {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--vis-radius);
  color: var(--vis-on-dark-1);
  font-size: 14px;
  line-height: 1.5;
  margin: 16px 0 20px;
  padding: 14px;
}

/* --- Payment return --- */
.payment-return-hero { padding: 72px 0; }
.payment-return-hero__inner { align-items: center; display: flex; gap: 24px; }
.payment-return-icon {
  align-items: center;
  border-radius: 50%;
  display: inline-flex;
  flex: 0 0 70px;
  height: 70px;
  justify-content: center;
  position: relative;
  width: 70px;
}
.payment-return-icon::after { color: #fff; font-size: 32px; font-weight: 900; line-height: 1; }
.payment-return-icon--success { background: var(--vis-success); box-shadow: 0 0 0 10px rgba(18,161,80,.16); }
.payment-return-icon--success::after { content: "✓"; }
.payment-return-icon--pending { background: rgba(52,214,238,.12); border: 2px solid rgba(95,224,242,.28); }
.payment-return-icon--pending::after {
  animation: vis-spin 1s linear infinite;
  border: 3px solid rgba(255,255,255,.2);
  border-radius: 50%;
  border-top-color: var(--vis-cyan-light);
  content: "";
  height: 30px;
  width: 30px;
}
.payment-return-icon--danger { background: var(--vis-danger); box-shadow: 0 0 0 10px rgba(194,58,58,.14); }
.payment-return-icon--danger::after { content: "!"; }
.payment-return-icon--unknown { background: var(--vis-warning); box-shadow: 0 0 0 10px rgba(214,138,0,.14); }
.payment-return-icon--unknown::after { content: "?"; }
.payment-return-section { padding-top: 64px; }
.payment-return-layout {
  align-items: start;
  display: grid;
  gap: 30px;
  grid-template-columns: minmax(0, 1fr) 380px;
}
.payment-return-main { display: grid; gap: 22px; }
.payment-return-summary,
.payment-return-info-card,
.payment-return-timeline {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-lg);
  box-shadow: var(--vis-shadow-soft);
}
.payment-return-summary {
  overflow: hidden;
  padding: 28px;
  position: relative;
}
.payment-return-summary::before {
  content: "";
  height: 5px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.payment-return-summary--success::before { background: linear-gradient(90deg, var(--vis-success), var(--vis-cyan-bright)); }
.payment-return-summary--pending::before { background: linear-gradient(90deg, var(--vis-cyan-deep), var(--vis-cyan-bright)); }
.payment-return-summary--danger::before { background: linear-gradient(90deg, var(--vis-danger), var(--vis-coral)); }
.payment-return-summary--unknown::before { background: linear-gradient(90deg, var(--vis-warning), var(--vis-coral)); }
.payment-return-pill {
  border-radius: var(--vis-radius-pill);
  display: inline-flex;
  font-size: 12px;
  font-weight: 900;
  padding: 6px 11px;
}
.payment-return-pill--success { background: var(--vis-success-bg); color: var(--vis-success); }
.payment-return-pill--pending { background: var(--vis-info-bg); color: var(--vis-cyan-deep); }
.payment-return-pill--danger { background: var(--vis-danger-bg); color: var(--vis-danger); }
.payment-return-pill--unknown { background: var(--vis-warning-bg); color: var(--vis-warning); }
.payment-return-summary h2,
.payment-return-timeline h2,
.payment-return-status-panel h2 {
  font-size: 28px;
  letter-spacing: -0.01em;
  margin: 14px 0 10px;
}
.payment-return-summary p,
.payment-return-info-card p,
.payment-return-timeline p,
.payment-return-status-panel p,
.payment-return-portal-hint {
  color: var(--vis-slate-600);
  line-height: 1.6;
  margin: 0;
}
.payment-return-summary p + p { margin-top: 10px; }
.payment-return-facts {
  border-top: 1px solid var(--vis-border-soft);
  display: grid;
  gap: 0 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 24px;
  padding-top: 18px;
}
.payment-return-facts div { border-bottom: 1px solid var(--vis-border-soft); min-width: 0; padding: 13px 0; }
.payment-return-facts span,
.payment-return-status-panel dt {
  color: var(--vis-slate-500);
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.payment-return-facts strong,
.payment-return-status-panel dd {
  color: var(--vis-ink);
  display: block;
  font-size: 17px;
  font-weight: 800;
  margin-top: 4px;
  overflow-wrap: anywhere;
}
.payment-return-info-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.payment-return-info-card { padding: 20px; }
.payment-return-info-card h3 { font-size: 18px; margin: 0 0 8px; }
.payment-return-timeline { padding: 26px 28px; }
.payment-return-timeline h2 { margin-top: 0; }
.payment-return-timeline ol { display: grid; gap: 14px; list-style: none; margin: 18px 0 0; padding: 0; }
.payment-return-step {
  align-items: flex-start;
  display: grid;
  gap: 14px;
  grid-template-columns: 28px minmax(0, 1fr);
  position: relative;
}
.payment-return-step:not(:last-child)::before {
  background: var(--vis-border);
  content: "";
  height: calc(100% + 14px);
  left: 13px;
  position: absolute;
  top: 28px;
  width: 2px;
}
.payment-return-step__marker {
  align-items: center;
  background: #fff;
  border: 2px solid #c2ccd8;
  border-radius: 50%;
  display: inline-flex;
  height: 28px;
  justify-content: center;
  position: relative;
  width: 28px;
  z-index: 1;
}
.payment-return-step strong { display: block; font-size: 17px; margin-top: 3px; }
.payment-return-step.is-done .payment-return-step__marker {
  background: var(--vis-success);
  border-color: var(--vis-success);
  color: #fff;
}
.payment-return-step.is-done .payment-return-step__marker::before { content: "✓"; font-size: 14px; font-weight: 900; }
.payment-return-step.is-active .payment-return-step__marker {
  animation: vis-spin 1s linear infinite;
  border-color: var(--vis-border);
  border-top-color: var(--vis-cyan-deep);
}
.payment-return-step.is-attention .payment-return-step__marker {
  background: var(--vis-danger);
  border-color: var(--vis-danger);
  color: #fff;
}
.payment-return-step.is-attention .payment-return-step__marker::before { content: "!"; font-size: 14px; font-weight: 900; }
.payment-return-step.is-waiting { color: var(--vis-slate-500); }
.payment-return-side { display: grid; gap: 16px; position: sticky; top: 88px; }
.payment-return-status-panel {
  background: var(--vis-navy-900);
  border-radius: var(--vis-radius-lg);
  box-shadow: 0 24px 60px rgba(11,18,32,.22);
  color: #fff;
  overflow: hidden;
  padding: 28px;
  position: relative;
}
.payment-return-status-panel::before {
  background: linear-gradient(120deg, rgba(11,18,32,.98), rgba(11,18,32,.76)), var(--vis-texture-ai) center / cover no-repeat;
  content: "";
  inset: 0;
  opacity: .7;
  position: absolute;
}
.payment-return-status-panel > * { position: relative; z-index: 1; }
.payment-return-status-panel h2,
.payment-return-status-panel dd { color: #fff; }
.payment-return-status-panel p { color: var(--vis-on-dark-2); margin-top: 18px; }
.payment-return-status-panel dl { border-top: 1px solid rgba(255,255,255,.1); display: grid; gap: 14px; margin: 20px 0 0; padding-top: 18px; }
.payment-return-status-panel dt { color: var(--vis-on-dark-4); }
.payment-return-status-panel dd { font-size: 16px; margin: 0; }
.payment-return-portal-btn { width: 100%; }
.payment-return-portal-hint {
  background: var(--vis-info-bg);
  border: 1px solid var(--vis-border-hover);
  border-radius: var(--vis-radius);
  color: var(--vis-cyan-deep);
  font-size: 14px;
  padding: 14px 16px;
}

.portal-auth {
  margin: 0 auto;
  max-width: 640px;
}

.portal-auth__form {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-lg);
  box-shadow: var(--vis-shadow-soft);
}

.portal-hero {
  padding: 68px 0;
}

.portal-metrics,
.portal-summary {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 34px;
}

.portal-layout {
  align-items: start;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1fr) 360px;
}

.portal-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.portal-row {
  align-items: center;
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 18px;
}

.portal-row h3 {
  font-size: 20px;
  margin: 10px 0 4px;
}

.portal-row p {
  color: var(--vis-slate-600);
  line-height: 1.5;
  margin: 0;
}

.portal-row--wide {
  align-items: flex-start;
}

.portal-status-text {
  font-size: 18px !important;
  line-height: 1.25;
}

.portal-stage-list {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.portal-stage {
  align-items: center;
  border-bottom: 1px solid var(--vis-border-soft);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 12px 0;
}

.portal-stage strong,
.portal-stage span,
.portal-stage small {
  display: block;
}

.portal-stage span,
.portal-stage small {
  color: var(--vis-slate-600);
}

.implementation-hero { padding-bottom: 54px; }
.implementation-hero h1 { max-width: 760px; }
.implementation-back { color: #d9f8ff; display: inline-flex; font-weight: 700; margin-bottom: 28px; }
.implementation-layout { align-items: start; display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr) 330px; }
.implementation-main, .implementation-side, .implementation-task-list, .implementation-downloads { display: grid; gap: 20px; min-width: 0; }
.implementation-side { position: sticky; top: 24px; }
.implementation-section, .implementation-status {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-lg);
  box-shadow: var(--vis-shadow-soft);
  min-width: 0;
  padding: clamp(20px, 3vw, 32px);
}
.implementation-status { align-items: flex-start; border-left: 6px solid #168a62; display: flex; gap: 18px; }
.implementation-status--generating, .implementation-status--admin_attention { border-left-color: #d48b16; }
.implementation-status--not_publishable { border-left-color: #ba3d46; }
.implementation-status__icon { background: currentColor; border-radius: 999px; flex: 0 0 14px; height: 14px; margin-top: 8px; }
.implementation-status h2, .implementation-section h2 { margin: 6px 0 10px; }
.implementation-status p, .implementation-section p { line-height: 1.6; }
.implementation-section__head { align-items: center; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 20px; }
.implementation-section__head > div { align-items: center; display: flex; gap: 12px; }
.implementation-section__head h2 { margin: 0; }
.implementation-step { align-items: center; background: var(--vis-navy); border-radius: 999px; color: #fff; display: inline-flex; font-weight: 800; height: 32px; justify-content: center; width: 32px; }
.implementation-facts { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.implementation-fact { background: #f6fafb; border: 1px solid #dce9ed; border-radius: 12px; min-width: 0; padding: 16px; }
.implementation-fact span, .implementation-fact small { color: var(--vis-slate-600); display: block; font-size: 12px; overflow-wrap: anywhere; }
.implementation-fact strong { display: block; font-size: 16px; line-height: 1.45; margin: 8px 0; overflow-wrap: anywhere; }
.implementation-code { background: #0e2130; border-radius: 14px; color: #e8f8fc; margin-top: 20px; max-width: 100%; min-width: 0; overflow: hidden; }
.implementation-code__toolbar { align-items: center; border-bottom: 1px solid #294250; display: flex; justify-content: space-between; padding: 12px 16px; }
.implementation-code pre { margin: 0; max-height: 540px; overflow: auto; padding: 20px; white-space: pre; }
.implementation-diff { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.implementation-diff > div { border-radius: 12px; padding: 18px; }
.implementation-diff > div:first-child { background: #fff2f0; border: 1px solid #f1d0cb; }
.implementation-diff > div:last-child { background: #edf9f4; border: 1px solid #c6e9dc; }
.implementation-diff span { font-weight: 800; }
.implementation-diff small { color: var(--vis-slate-600); display: block; line-height: 1.5; margin-top: 12px; }
.implementation-diff__fields {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
}
.implementation-diff__fields li {
  background: rgb(255 255 255 / 78%);
  border: 1px solid rgb(20 55 70 / 12%);
  border-radius: 999px;
  color: var(--vis-slate-700);
  font-size: 12px;
  font-weight: 700;
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: 6px 10px;
}
.implementation-task-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 18px; }
.implementation-filter {
  background: #f3f8fa;
  border: 1px solid var(--vis-border);
  border-radius: 999px;
  color: var(--vis-slate-700);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  min-height: 40px;
  padding: 8px 14px;
}
.implementation-filter:hover, .implementation-filter:focus-visible { border-color: var(--vis-cyan-deep); }
.implementation-filter.is-active { background: var(--vis-navy); border-color: var(--vis-navy); color: #fff; }
.implementation-task { border: 1px solid var(--vis-border); border-radius: 14px; padding: 18px; }
.implementation-task h3 { margin: 12px 0 6px; }
.implementation-task__meta { display: flex; flex-wrap: wrap; gap: 8px; }
.implementation-task__form { align-items: end; display: grid; gap: 10px; grid-template-columns: 150px minmax(180px, 1fr) auto; margin-top: 16px; }
.implementation-task__form select, .implementation-task__form input { min-height: 44px; width: 100%; }
.implementation-metrics { display: grid; gap: 8px; grid-template-columns: repeat(3, 1fr); margin: 18px 0; }
.implementation-metrics div { background: #f3f8fa; border-radius: 10px; padding: 12px 8px; text-align: center; }
.implementation-metrics strong, .implementation-metrics span { display: block; }
.implementation-metrics strong { color: var(--vis-navy); font-size: 24px; }
.implementation-metrics span { color: var(--vis-slate-600); font-size: 11px; }

@media (max-width: 900px) {
  .implementation-layout { grid-template-columns: 1fr; }
  .implementation-side { position: static; }
}

@media (max-width: 560px) {
  .implementation-facts, .implementation-diff, .implementation-task__form { grid-template-columns: 1fr; }
  .implementation-section__head { align-items: flex-start; flex-direction: column; }
  .implementation-code pre { font-size: 12px; }
}

.portal-score-head {
  align-items: end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin: 4px 0 18px;
}

.portal-score-head strong {
  color: var(--vis-cyan-deep);
  font-family: var(--vis-font-mono);
  font-size: 54px;
  line-height: 1;
}

.portal-score-head span {
  color: var(--vis-slate-600);
  font-size: 14px;
  line-height: 1.4;
  text-align: right;
}

.portal-score-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.portal-score-card {
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  min-height: 138px;
  padding: 14px;
}

.portal-score-card span,
.portal-score-card small {
  color: var(--vis-slate-600);
  display: block;
  font-size: 12px;
  line-height: 1.35;
}

.portal-score-card strong {
  color: var(--vis-ink);
  display: block;
  font-family: var(--vis-font-mono);
  font-size: 25px;
  line-height: 1;
  margin: 12px 0;
}

.portal-provider-list {
  border-top: 1px solid var(--vis-border-soft);
  display: grid;
  gap: 8px;
  margin-top: 18px;
  padding-top: 14px;
}

.portal-provider-list div {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.portal-provider-list span {
  color: var(--vis-cyan-deep);
  font-family: var(--vis-font-mono);
  font-weight: 700;
}

.portal-evidence-list {
  display: grid;
  gap: 14px;
}

.portal-evidence-item {
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  padding: 16px;
}

.portal-evidence-item strong,
.portal-evidence-item span {
  display: block;
}

.portal-evidence-item span {
  color: var(--vis-slate-600);
  font-size: 13px;
  margin-top: 4px;
}

.portal-evidence-item p {
  margin-top: 12px;
}

.portal-source-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.portal-source-list a {
  background: var(--vis-info-bg);
  border: 1px solid var(--vis-border-hover);
  border-radius: var(--vis-radius-pill);
  color: var(--vis-cyan-deep);
  font-size: 12px;
  font-weight: 700;
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: 6px 9px;
}

.portal-report-hero .vis-wrap {
  align-items: end;
  display: flex;
  gap: 28px;
  justify-content: space-between;
}

.report-hero-score {
  background: #fff;
  border-radius: var(--vis-radius-lg);
  color: var(--vis-ink);
  min-width: 220px;
  padding: 22px;
}

.report-hero-score span,
.report-hero-score small {
  color: var(--vis-slate-600);
  display: block;
  font-size: 13px;
  font-weight: 800;
}

.report-hero-score strong {
  color: var(--vis-cyan-deep);
  display: block;
  font-family: var(--vis-font-mono);
  font-size: 58px;
  line-height: 1;
  margin: 8px 0;
}

.portal-report-layout {
  align-items: start;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1fr) 380px;
}
.portal-report-layout > * { min-width: 0; }

.report-kpi-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

.report-panel {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-lg);
  margin-top: 18px;
  padding: 24px;
}

.report-panel:first-of-type {
  margin-top: 0;
}

.report-panel h2 {
  font-size: 24px;
  margin: 8px 0 14px;
}

.report-panel__head {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.report-panel__head .btn {
  flex: 0 0 auto;
}

.portal-score-head--compact {
  margin: 0;
  max-width: 260px;
}

.portal-score-head--compact strong {
  font-size: 42px;
}

.report-delivery-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.report-delivery-grid article {
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  min-height: 116px;
  padding: 16px;
}

.report-delivery-grid span {
  color: var(--vis-slate-600);
  display: block;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.report-delivery-grid a,
.report-delivery-grid p {
  color: var(--vis-cyan-deep);
  display: block;
  font-weight: 800;
  line-height: 1.45;
  margin: 10px 0 0;
  overflow-wrap: anywhere;
}

.query-drilldown-list {
  display: grid;
  gap: 12px;
}

.query-drilldown {
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius);
  overflow: hidden;
}

.query-drilldown summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1fr) 150px;
  list-style: none;
  padding: 18px;
}

.query-drilldown summary::-webkit-details-marker {
  display: none;
}

.query-drilldown summary span {
  color: var(--vis-ink);
  font-weight: 800;
  line-height: 1.35;
}

.query-drilldown summary strong {
  background: var(--vis-info-bg);
  border-radius: var(--vis-radius-pill);
  color: var(--vis-cyan-deep);
  font-family: var(--vis-font-mono);
  font-size: 13px;
  justify-self: end;
  padding: 7px 10px;
  white-space: nowrap;
}

.query-drilldown__body {
  border-top: 1px solid var(--vis-border-soft);
  padding: 18px;
}

.query-drilldown__body p {
  color: var(--vis-slate-600);
  line-height: 1.6;
  margin: 12px 0 0;
}

.query-metrics {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.query-metrics article {
  background: var(--vis-paper);
  border-radius: var(--vis-radius);
  padding: 12px;
}

.query-metrics span,
.query-metrics strong {
  display: block;
}

.query-metrics span {
  color: var(--vis-slate-600);
  font-size: 12px;
  font-weight: 800;
}

.query-metrics strong {
  color: var(--vis-ink);
  font-family: var(--vis-font-mono);
  font-size: 20px;
  margin-top: 5px;
}

.pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.pill-row span {
  background: var(--vis-coral-soft);
  border-radius: var(--vis-radius-pill);
  color: var(--vis-coral-deep);
  font-size: 12px;
  font-weight: 800;
  padding: 6px 9px;
}

.report-download-panel {
  position: sticky;
  top: 86px;
}

.report-download-panel small {
  color: var(--vis-on-dark-2);
  display: block;
  font-size: 12px;
  margin-top: 8px;
  text-align: center;
}

.report-qr-card {
  background: #fff;
  border-radius: var(--vis-radius);
  margin: 18px 0 8px;
  padding: 14px;
}

.report-qr-card img {
  aspect-ratio: 1;
  height: auto;
  margin: 0 auto;
  max-width: 210px;
  width: 100%;
}

.report-qr-card span {
  color: var(--vis-navy-900);
  display: block;
  font-size: 13px;
  font-weight: 800;
  margin-top: 10px;
  text-align: center;
}

.report-secondary-downloads {
  border-top: 1px solid rgba(255,255,255,.12);
  padding-top: 16px;
}

.report-refresh-form {
  border-top: 1px solid rgba(255,255,255,.14);
  display: grid;
  gap: 10px;
  margin-top: 18px;
  padding-top: 18px;
}

.report-refresh-form h3 {
  color: #fff;
  font-size: 16px;
  margin: 0;
}

.report-refresh-form label {
  color: var(--vis-on-dark-2);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.report-refresh-form textarea {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--vis-radius);
  color: #fff;
  min-height: 110px;
  padding: 12px;
  resize: vertical;
  width: 100%;
}

.report-refresh-form textarea::placeholder {
  color: var(--vis-on-dark-3);
}

.checkout-panel .field label,
.checkout-panel .checkbox-field {
  color: var(--vis-on-dark-1);
}

.checkout-panel .btn {
  margin-top: 16px;
  width: 100%;
}

.standard-page { background: #fff; }
.standard-hero { background: var(--vis-navy-900); color: #fff; padding: 82px 0; position: relative; overflow: hidden; }
.standard-hero::before { background: linear-gradient(100deg, rgba(11,18,32,.98), rgba(11,18,32,.78)), var(--vis-texture-ai) center / cover no-repeat; content: ""; inset: 0; position: absolute; }
.standard-hero .vis-wrap { position: relative; z-index: 1; }
.standard-hero h1 { font-size: 46px; letter-spacing: -0.025em; margin: 12px 0 12px; max-width: 760px; }
.standard-hero p { color: var(--vis-on-dark-2); font-size: 18px; line-height: 1.55; max-width: 720px; }
.rich-section { border-bottom: 1px solid var(--vis-border-soft); padding: 42px 0; }
.rich-section h2 { font-size: 28px; margin: 0 0 12px; }
.rich-section p { color: var(--vis-slate-600); font-size: 17px; line-height: 1.7; margin: 0; max-width: 850px; }

.status-page { padding: 56px 24px 72px; }
.status-flash { border-radius: var(--vis-radius); font-weight: 700; margin-bottom: 18px; padding: 13px 15px; }
.status-flash--success { background: var(--vis-success-bg); color: #0c5f4d; }
.status-flash--error { background: var(--vis-danger-bg); color: var(--vis-danger); }
.status-head { align-items: center; border-bottom: 1px solid var(--vis-border-soft); display: flex; gap: 24px; justify-content: space-between; padding-bottom: 28px; }
.status-head h1 { font-size: 42px; margin: 8px 0 10px; }
.status-head p { color: var(--vis-slate-600); font-size: 18px; line-height: 1.6; margin: 0; max-width: 720px; }
.status-components { display: grid; gap: 12px; margin-top: 28px; }
.status-component { align-items: center; border: 1px solid var(--vis-border); border-radius: var(--vis-radius); display: flex; gap: 18px; justify-content: space-between; padding: 18px; }
.status-component h2 { font-size: 18px; margin: 0 0 6px; }
.status-component p { color: var(--vis-slate-600); line-height: 1.55; margin: 0; }
.status-subscribe { align-items: center; border: 1px solid var(--vis-border); border-radius: var(--vis-radius); display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr) minmax(320px, 520px); margin-top: 28px; padding: 22px; }
.status-subscribe h2,
.status-section-head h2 { font-size: 24px; margin: 6px 0 8px; }
.status-subscribe p { color: var(--vis-slate-600); line-height: 1.55; margin: 0; }
.status-subscribe__form { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) 170px auto; }
.status-subscribe__form input,
.status-subscribe__form select { background-color: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius); color: var(--vis-ink); min-height: 46px; padding: 0 12px; width: 100%; }
.status-incidents { margin-top: 34px; }
.status-section-head { margin-bottom: 14px; }
.status-incident { border: 1px solid var(--vis-border); border-radius: var(--vis-radius); margin-top: 12px; padding: 18px; }
.status-incident h3 { font-size: 18px; margin: 10px 0 8px; }
.status-incident p { color: var(--vis-slate-600); line-height: 1.65; margin: 0; }
.status-incident__meta { align-items: center; color: var(--vis-slate-500); display: flex; flex-wrap: wrap; font-family: var(--vis-font-mono); font-size: 12px; gap: 8px; }
.status-pill { border-radius: var(--vis-radius-pill); display: inline-flex; font-size: 13px; font-weight: 800; padding: 7px 10px; text-transform: uppercase; }
.status-pill.ok { background: #def3ec; color: #0c5f4d; }
.status-pill.warn { background: #fff3cf; color: #9a6a05; }
.status-pill.danger { background: #f7dddd; color: #b13b3b; }
.status-updated { color: var(--vis-slate-500); font-family: var(--vis-font-mono); font-size: 13px; margin-top: 22px; }

.site-footer { background: var(--vis-navy-900); color: var(--vis-on-dark-3); }
.site-footer__inner { align-items: center; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; padding: 40px 24px; }
.site-footer__links { display: flex; flex-wrap: wrap; gap: 22px; font-size: 14px; }

@media (max-width: 980px) {
  .site-header__inner { align-items: flex-start; flex-direction: column; padding: 14px 24px; }
  .site-nav { justify-content: flex-start; overflow-x: auto; width: 100%; }
  .hero__inner,
  .place-resolution__inner,
  .grid-2,
  .wizard,
  .wizard__body,
  .preview-layout { grid-template-columns: 1fr; }
  .grid-3, .grid-4, .score-grid, .preview-breakdown, .portal-score-grid { grid-template-columns: 1fr 1fr; }
  .portal-layout,
  .payment-return-layout,
  .portal-report-layout { grid-template-columns: 1fr; }
  .payment-return-side { position: static; }
  .payment-return-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-metrics, .portal-summary, .report-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-download-panel { position: static; }
  .status-head, .status-component { align-items: flex-start; flex-direction: column; }
  .status-subscribe { grid-template-columns: 1fr; }
  .status-subscribe__form { grid-template-columns: 1fr; }
  .hero__title { font-size: 44px; }
  .hero,
  .hero__inner { min-height: auto; }
  .hero-place { min-height: 500px; }
  .footprint-panel { min-height: auto; }
}

/* ============================================================
   Customer UX components: gauges, bars, badges, wizard, insights
   ============================================================ */

@keyframes vis-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes vis-arc-sweep { from { stroke-dashoffset: 477.5; } to { stroke-dashoffset: 0; } }
@keyframes vis-appear { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes vis-pulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes vis-radar-spin { to { transform: rotate(360deg); } }
@keyframes vis-spin { to { transform: rotate(360deg); } }

.muted { color: var(--vis-slate-600); line-height: 1.6; }

.mini-list { display: grid; gap: 8px 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.mini-list div { border-top: 1px solid var(--vis-border-soft); display: flex; justify-content: space-between; padding: 9px 2px 0; }
.mini-list dt { color: var(--vis-slate-600); font-size: 13px; }
.mini-list dd { font-family: var(--vis-font-mono); font-weight: 600; margin: 0; }

.vis-bar { background: var(--vis-paper); border-radius: 999px; display: block; height: 8px; overflow: hidden; }
.vis-bar--sm { height: 6px; }
.vis-bar__fill { border-radius: 999px; display: block; height: 100%; transform-origin: left; animation: vis-grow 1s cubic-bezier(.22,1,.36,1) both; }
.vis-fill-good { background: var(--vis-success); }
.vis-fill-mid { background: var(--vis-cyan-deep); }
.vis-fill-low { background: var(--vis-warning); }
.vis-fill-warm { background: var(--vis-coral); }

.vis-badge { border-radius: var(--vis-radius-pill); display: inline-flex; font-size: 12px; font-weight: 800; padding: 3px 9px; white-space: nowrap; }
.vis-badge--upper { text-transform: uppercase; letter-spacing: .03em; font-size: 11px; }
.vis-badge--high { background: var(--vis-danger-bg); color: var(--vis-danger); }
.vis-badge--medium { background: var(--vis-warning-bg); color: var(--vis-warning); }
.vis-badge--low { background: var(--vis-paper); color: var(--vis-slate-600); }
.vis-badge--success { background: var(--vis-success-bg); color: var(--vis-success); }
.vis-badge--info { background: var(--vis-info-bg); color: var(--vis-cyan-deep); }

.live-dot { animation: vis-pulse 1.4s ease infinite; background: var(--vis-coral); border-radius: 50%; display: inline-block; height: 8px; width: 8px; }

.vis-gauge__arc { animation: vis-arc-sweep 1.3s cubic-bezier(.22,1,.36,1) .15s both; }

/* --- Audit report hero --- */
.report-hero-id { align-items: center; display: flex; gap: 20px; }
.report-hero-avatar { align-items: center; background: rgba(52,214,238,.12); border: 1px solid rgba(52,214,238,.3); border-radius: 16px; color: var(--vis-cyan-light); display: flex; flex: 0 0 64px; font-family: var(--vis-font-mono); font-size: 22px; font-weight: 600; height: 64px; justify-content: center; width: 64px; }
.report-hero-verdict { color: var(--vis-cyan-light); font-size: 17px; font-weight: 700; margin-top: 10px; }
.report-hero-verdict--live { align-items: center; color: var(--vis-on-dark-1); display: flex; gap: 9px; }
.report-hero-gauge { text-align: center; }
.report-hero-gauge span { color: var(--vis-on-dark-3); display: block; font-size: 13px; margin-top: 2px; max-width: 220px; }

/* --- Why this score --- */
.insight-list { display: grid; gap: 10px; margin: 16px 0 22px; padding: 0; }
.insight-list li { color: var(--vis-text-2); display: flex; gap: 12px; line-height: 1.55; list-style: none; }
.insight-list li::before { background: var(--vis-cyan-bright); border-radius: 50%; box-shadow: 0 0 0 5px var(--vis-info-bg); content: ""; flex: 0 0 9px; height: 9px; margin-top: 7px; width: 9px; }

.score-profile { align-items: center; display: grid; gap: 26px; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); }
.vis-radar-value { animation: vis-appear .75s ease .3s both; }
.score-profile__dims { display: grid; gap: 12px; }
.dim-row { align-items: center; display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr) 130px 40px; }
.dim-row__text strong { display: block; font-size: 15px; }
.dim-row__text span { color: var(--vis-slate-500); font-size: 12px; }
.dim-row__value { font-size: 16px; text-align: right; }

.provider-chip-row { border-top: 1px solid var(--vis-border-soft); display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; padding-top: 16px; }
.provider-chip { align-items: center; background: var(--vis-paper); border-radius: var(--vis-radius-pill); display: inline-flex; font-family: var(--vis-font-mono); font-size: 13px; font-weight: 600; gap: 8px; padding: 6px 11px; }
.provider-chip em { color: var(--vis-slate-600); font-style: normal; font-family: var(--vis-font-sans); font-weight: 700; }
.provider-chip--sm { font-size: 12px; padding: 4px 9px; }
.portal-evidence-item .provider-chip { display: inline-flex; margin-top: 8px; }

/* --- Customer insight synthesis --- */
.report-panel--insight { border-color: rgba(10,125,148,.22); box-shadow: 0 18px 45px rgba(14,32,54,.06); }
.insight-signal-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; }
.insight-signal-card { background: var(--vis-paper); border: 1px solid var(--vis-border-soft); border-radius: var(--vis-radius); padding: 18px; }
.insight-signal-card--accent { background: linear-gradient(180deg, var(--vis-info-bg), #fff); border-color: rgba(10,125,148,.24); }
.insight-signal-card span { color: var(--vis-slate-600); display: block; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.insight-signal-card strong { color: var(--vis-ink); display: block; font-size: 34px; line-height: 1; margin-top: 10px; }
.insight-signal-card p { color: var(--vis-text-2); line-height: 1.5; margin: 10px 0 0; }
.insight-signal-card em { color: var(--vis-cyan-deep); display: block; font-size: 13px; font-style: normal; font-weight: 800; margin-top: 10px; }
.pattern-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.pattern-card { align-items: center; border: 1px solid var(--vis-border); border-radius: var(--vis-radius); display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) 130px; padding: 14px; }
.pattern-card--gap { border-color: rgba(196,82,48,.28); }
.pattern-card--partial { border-color: rgba(193,137,46,.28); }
.pattern-card--strong { border-color: rgba(20,133,96,.25); }
.pattern-card strong { display: block; font-size: 15px; overflow-wrap: anywhere; }
.pattern-card span { color: var(--vis-slate-600); display: block; font-size: 12px; margin-top: 3px; }
.pattern-card__score { align-items: center; display: grid; gap: 7px; grid-template-columns: minmax(0, 1fr) 42px; }
.pattern-card__score em { font-size: 13px; font-style: normal; text-align: right; }
.fact-grid { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 16px; }
.fact-grid article { border: 1px solid var(--vis-border-soft); border-radius: var(--vis-radius); padding: 14px; }
.fact-grid span { color: var(--vis-slate-600); display: block; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.fact-grid strong { display: block; font-size: 22px; margin-top: 6px; }
.fact-grid small { color: var(--vis-slate-600); display: block; margin-top: 5px; }
.source-influence-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.source-influence-grid article { border: 1px solid var(--vis-border-soft); border-radius: var(--vis-radius); padding: 14px; }
.source-influence-grid article > strong { display: block; margin-bottom: 8px; }
.source-influence-grid span { align-items: center; border-top: 1px solid var(--vis-border-soft); display: flex; gap: 10px; justify-content: space-between; padding: 8px 0; }
.source-influence-grid span:first-of-type { border-top: 0; }
.source-influence-grid em { color: var(--vis-slate-600); font-style: normal; overflow-wrap: anywhere; }
.source-influence-grid b { color: var(--vis-cyan-deep); font-weight: 700; }
.evidence-explorer { background: #fff; }
.evidence-explorer summary { color: var(--vis-cyan-deep); }
.evidence-explorer .report-panel__head { margin-bottom: 8px; }
.competitor-profile-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; }
.competitor-profile-grid article { border: 1px solid var(--vis-border); border-radius: var(--vis-radius); padding: 16px; }
.competitor-profile__head { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.competitor-profile__head strong { font-size: 16px; line-height: 1.35; }
.competitor-profile-grid p { color: var(--vis-text-2); font-size: 14px; line-height: 1.5; margin: 8px 0 0; }
.comparison-gap-list { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; }
.comparison-gap-list article { background: var(--vis-paper); border-radius: var(--vis-radius); padding: 14px; }
.comparison-gap-list span { color: var(--vis-slate-600); display: block; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.comparison-gap-list strong { display: block; font-size: 15px; margin-top: 6px; }
.comparison-gap-list p { color: var(--vis-slate-600); font-size: 13px; line-height: 1.5; margin: 6px 0 0; }
.section-mini-title { font-size: 17px; margin: 20px 0 10px; }
.best-practice-list { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.best-practice-list article { border: 1px solid var(--vis-border-soft); border-radius: var(--vis-radius); padding: 14px; }
.best-practice-list strong { display: block; font-size: 15px; }
.best-practice-list p { color: var(--vis-slate-600); font-size: 14px; line-height: 1.5; margin: 6px 0 0; }
.best-practice-list small { color: var(--vis-cyan-deep); display: block; font-size: 12px; font-weight: 800; margin-top: 8px; }

/* --- Recommended actions --- */
.action-list { display: grid; gap: 12px; }
.action-card { border: 1px solid var(--vis-border); border-radius: var(--vis-radius); display: flex; gap: 16px; padding: 16px 18px; transition: border-color .18s ease, box-shadow .2s ease; }
.action-card:hover { border-color: var(--vis-border-hover); box-shadow: var(--vis-shadow-soft); }
.action-card__num { align-items: center; background: var(--vis-info-bg); border-radius: 8px; color: var(--vis-cyan-deep); display: flex; flex: 0 0 28px; font-size: 13px; font-weight: 600; height: 28px; justify-content: center; }
.action-card__meta { align-items: center; display: flex; gap: 10px; margin-bottom: 6px; }
.action-card__owner { color: var(--vis-cyan-deep); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.action-card strong { display: block; font-size: 15px; }
.action-card p { color: var(--vis-slate-600); font-size: 14px; line-height: 1.5; margin: 4px 0 0; }

/* --- Alternatives table --- */
.alt-table { display: grid; }
.alt-table__row { align-items: center; border-bottom: 1px solid var(--vis-border-soft); display: grid; gap: 14px; grid-template-columns: minmax(0, 1.6fr) .9fr 1.3fr .6fr; padding: 13px 4px; }
.alt-table__row:last-child { border-bottom: 0; }
.alt-table__row--head { border-bottom: 1px solid var(--vis-border-soft); color: var(--vis-slate-500); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.alt-table__row strong { font-size: 15px; }
.alt-table__row > span { font-size: 14px; }
.alt-table__bar { align-items: center; display: flex; gap: 10px; }
.alt-table__bar .vis-bar { flex: 1; }
.alt-table__bar em { font-size: 13px; font-style: normal; width: 38px; text-align: right; }
.rank-pill { background: var(--vis-coral-soft); border-radius: 6px; color: var(--vis-coral-deep); font-size: 13px; font-weight: 600; padding: 3px 8px; }

/* --- Query drilldown extras --- */
.visibility-pill { border-radius: var(--vis-radius-pill); font-family: var(--vis-font-mono); font-size: 13px; justify-self: end; padding: 7px 12px; white-space: nowrap; }
.visibility-pill--visible { background: var(--vis-success-bg); color: var(--vis-success); }
.visibility-pill--partial { background: var(--vis-warning-bg); color: var(--vis-warning); }
.visibility-pill--gap { background: var(--vis-danger-bg); color: var(--vis-danger); }
.query-drilldown__lede { color: var(--vis-ink) !important; font-size: 15px; font-weight: 600; margin: 0 0 14px !important; }
.drilldown-label { color: var(--vis-slate-500); font-size: 12px; font-weight: 800; letter-spacing: .04em; margin-top: 16px; text-transform: uppercase; }

/* --- Pipeline / live progress --- */
.pipeline-track { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 20px; }
.pipeline-step { align-items: center; color: var(--vis-slate-500); display: flex; font-size: 13px; font-weight: 600; gap: 8px; }
.pipeline-step__dot { border: 2px solid #c2ccd8; border-radius: 50%; display: inline-block; height: 12px; width: 12px; }
.pipeline-step.is-done { color: var(--vis-ink); }
.pipeline-step.is-done .pipeline-step__dot { background: var(--vis-success); border-color: var(--vis-success); }
.pipeline-step.is-active { color: var(--vis-cyan-deep); }
.pipeline-step.is-active .pipeline-step__dot { animation: vis-pulse 1.4s ease infinite; background: var(--vis-cyan-bright); border-color: var(--vis-cyan-bright); }

.tech-details { border: 1px solid var(--vis-border); border-radius: var(--vis-radius-lg); background: #fff; margin-top: 18px; }
.tech-details summary { color: var(--vis-slate-600); cursor: pointer; font-size: 14px; font-weight: 700; padding: 16px 22px; }
.tech-details__body { border-top: 1px solid var(--vis-border-soft); padding: 20px 22px; }

/* --- Dashboard --- */
.portal-hero-row { align-items: center; display: flex; gap: 24px; justify-content: space-between; }
.kpi-card { background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius-md); padding: 18px 20px; transition: border-color .18s ease, box-shadow .2s ease, transform .18s ease; }
.kpi-card:hover { border-color: var(--vis-border-hover); box-shadow: var(--vis-shadow-soft); transform: translateY(-2px); }
.kpi-card > span { color: var(--vis-slate-500); font-size: 13px; font-weight: 600; }
.kpi-card__row { align-items: baseline; display: flex; gap: 8px; margin-top: 8px; }
.kpi-card__row strong { font-size: 32px; font-weight: 600; line-height: 1; }
.kpi-card__row em { color: var(--vis-slate-500); font-size: 13px; font-style: normal; }
.kpi-card__live { align-items: center; display: inline-flex; gap: 6px; }

.audit-row-list, .order-row-list { display: grid; }
.audit-row { align-items: center; border-top: 1px solid var(--vis-border-soft); display: flex; gap: 16px; padding: 14px 6px; transition: background-color .15s ease; }
.audit-row:first-of-type { border-top: 0; }
.audit-row:hover { background: #fbfeff; }
.audit-row__avatar { align-items: center; background: var(--vis-paper); border-radius: 11px; color: var(--vis-cyan-deep); display: flex; flex: 0 0 44px; font-size: 15px; font-weight: 600; height: 44px; justify-content: center; }
.audit-row__body { flex: 1; min-width: 0; }
.audit-row__body strong { display: block; font-size: 15px; }
.audit-row__body small { color: var(--vis-slate-500); display: block; font-size: 13px; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.audit-row__end { align-items: flex-end; display: flex; flex-direction: column; gap: 5px; }
.audit-row__end > strong { font-size: 18px; font-weight: 600; }

.order-row { align-items: center; border-top: 1px solid var(--vis-border-soft); display: flex; gap: 16px; justify-content: space-between; padding: 12px 6px; }
.order-row:first-of-type { border-top: 0; }
.order-row__body strong { display: block; font-size: 14px; }
.order-row__body small { color: var(--vis-slate-500); font-size: 13px; }

.empty-state { padding: 22px 0 8px; }
.empty-state strong { display: block; font-size: 17px; margin-bottom: 6px; }
.empty-state p { color: var(--vis-slate-600); line-height: 1.55; margin: 0 0 16px; }

.portal-side { display: grid; gap: 20px; }
.side-action-list { display: grid; gap: 10px; }
.side-action { border: 1px solid var(--vis-border-soft); border-radius: var(--vis-radius); display: block; padding: 13px 14px; transition: border-color .18s ease, background-color .15s ease, transform .18s ease; }
.side-action:hover { background: #fbfeff; border-color: var(--vis-border-hover); transform: translateY(-2px); }
.side-action__meta { align-items: center; display: flex; justify-content: space-between; margin-bottom: 6px; }
.side-action__meta em { color: var(--vis-cyan-deep); font-size: 11px; font-style: normal; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.side-action strong { display: block; font-size: 14px; line-height: 1.4; }

/* --- Onboarding wizard --- */
.wizard__step.is-active { color: #fff; font-weight: 700; }
.wizard__step.is-active .wizard__dot { background: rgba(52,214,238,.16); border: 1.5px solid var(--vis-cyan-bright); color: var(--vis-cyan-light); }
.wizard__step.is-done .wizard__dot { background: var(--vis-cyan-bright); color: #04222b; }
.wizard__rail-note { border-top: 1px solid rgba(255,255,255,.1); color: var(--vis-on-dark-4); font-size: 12px; margin-top: 22px; padding-top: 16px; }
.wiz-step__count { color: var(--vis-cyan-deep); font-size: 13px; margin-bottom: 6px; }
.wiz-step__title { font-size: 28px; letter-spacing: -0.015em; margin: 0 0 8px; }
.wiz-step__sub { color: var(--vis-slate-600); font-size: 15px; line-height: 1.55; margin: 0 0 22px; }
.wiz-step { margin-bottom: 26px; }
.wizard--js .wiz-step { display: none; margin-bottom: 0; }
.wizard--js .wiz-step.is-active { animation: vis-appear .35s ease both; display: block; }
.wiz-nav { display: flex; gap: 12px; justify-content: space-between; margin-top: 28px; }
.wiz-back, .wiz-next { display: none; }
.wizard--js .wiz-back, .wizard--js .wiz-next { display: inline-flex; }
.cat-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cat-card { background: #fff; border: 1.5px solid #d7dee7; border-radius: var(--vis-radius); color: var(--vis-ink); cursor: pointer; font-size: 15px; font-weight: 700; padding: 15px 16px; text-align: left; transition: border-color .15s ease, background-color .15s ease; }
.cat-card:hover { border-color: var(--vis-cyan-deep); }
.cat-card.is-selected { background: var(--vis-info-bg); border-color: var(--vis-cyan-deep); color: var(--vis-cyan-deep); }
.wizard--js .wiz-category-select { display: none; }
.footprint-panel {
  align-self: start;
  background: #0f1b2d;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--vis-radius-lg);
  color: #fff;
  display: grid;
  gap: 16px;
  min-height: 520px;
  overflow: hidden;
  padding: 20px;
  position: relative;
}
.footprint-panel::before {
  background: linear-gradient(135deg, rgba(52,214,238,.18), rgba(255,122,89,.10));
  content: "";
  height: 190px;
  position: absolute;
  right: -70px;
  top: -80px;
  transform: rotate(18deg);
  width: 190px;
}
.footprint-panel > * { position: relative; z-index: 1; }
.footprint-panel__top { align-items: center; display: flex; justify-content: space-between; }
.footprint-panel__top .badge { background: var(--vis-coral-soft); color: var(--vis-coral-deep); }
.footprint-orbit {
  aspect-ratio: 1;
  background:
    radial-gradient(circle at center, rgba(52,214,238,.28) 0 7%, transparent 8%),
    conic-gradient(from 0deg, rgba(52,214,238,.34), transparent 34%, rgba(255,122,89,.28), transparent 70%, rgba(52,214,238,.34));
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  box-shadow: inset 0 0 44px rgba(52,214,238,.10), 0 0 38px rgba(52,214,238,.08);
  display: grid;
  margin: 4px auto 0;
  max-width: 160px;
  place-items: center;
  position: relative;
  width: 62%;
}
.footprint-orbit::before {
  animation: vis-radar-spin 4.4s linear infinite;
  background: conic-gradient(from 0deg, rgba(52,214,238,.0), rgba(52,214,238,.50), rgba(52,214,238,.0) 38%);
  border-radius: inherit;
  content: "";
  inset: -1px;
  position: absolute;
}
.footprint-orbit::after {
  background: rgba(52,214,238,.18);
  content: "";
  height: 1px;
  left: 12%;
  position: absolute;
  right: 12%;
  top: 50%;
}
.footprint-orbit span { border-radius: 50%; display: block; grid-area: 1 / 1; position: relative; z-index: 1; }
.footprint-orbit span:nth-child(1) { border: 1px solid rgba(255,255,255,.24); height: 86%; width: 86%; }
.footprint-orbit span:nth-child(2) { border: 1px solid rgba(52,214,238,.30); height: 62%; width: 62%; }
.footprint-orbit span:nth-child(3) { background: rgba(255,122,89,.22); height: 42%; width: 42%; }
.footprint-orbit span:nth-child(4) { animation: vis-pulse 1.8s ease-in-out infinite; background: var(--vis-cyan-bright); box-shadow: 0 0 0 9px rgba(52,214,238,.13), 0 0 28px rgba(52,214,238,.45); height: 16px; width: 16px; }
.footprint-orbit i {
  background: var(--vis-coral);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(255,122,89,.13);
  display: block;
  height: 8px;
  position: absolute;
  width: 8px;
  z-index: 2;
}
.footprint-orbit i:nth-of-type(1) { right: 26%; top: 25%; }
.footprint-orbit i:nth-of-type(2) { background: var(--vis-success); bottom: 31%; left: 24%; }
.footprint-orbit i:nth-of-type(3) { background: var(--vis-warning); bottom: 22%; right: 22%; }
.footprint-stage {
  color: var(--vis-cyan-light);
  font-family: var(--vis-font-mono);
  font-size: 12px;
  line-height: 1.45;
  min-height: 36px;
}
.entity-snapshot {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--vis-radius);
  padding: 16px;
}
.source-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.source-chip {
  background: var(--vis-info-bg);
  border-radius: 999px;
  color: var(--vis-cyan-deep);
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  padding: 5px 8px;
  text-transform: uppercase;
}
.source-chip--quiet { background: rgba(255,255,255,.10); color: var(--vis-on-dark-3); }
.entity-snapshot strong { display: block; font-size: 20px; line-height: 1.2; margin-bottom: 8px; }
.entity-snapshot p { color: var(--vis-on-dark-3); font-size: 13px; line-height: 1.45; margin: 0; }
.footprint-signals { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.footprint-signals li {
  align-items: center;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--vis-radius);
  display: grid;
  gap: 8px;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  min-height: 42px;
  padding: 10px 12px;
}
.footprint-signals li span { background: rgba(255,255,255,.22); border-radius: 999px; height: 10px; width: 10px; }
.footprint-signals li strong { font-size: 13px; min-width: 0; }
.footprint-signals li em { color: var(--vis-on-dark-4); font-size: 11px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.footprint-signals li.is-ok span { background: var(--vis-success); box-shadow: 0 0 0 5px rgba(18,161,80,.14); }
.footprint-signals li.is-warn span { background: var(--vis-warning); box-shadow: 0 0 0 5px rgba(214,138,0,.14); }
.footprint-signals li.is-muted { opacity: .72; }
.footprint-note {
  border-top: 1px solid rgba(255,255,255,.1);
  color: var(--vis-on-dark-4);
  font-size: 12px;
  line-height: 1.45;
  padding-top: 14px;
}

/* --- Readiness processing --- */
.check-timeline { display: grid; gap: 12px; margin-top: 26px; }
.check-step { align-items: center; color: var(--vis-slate-500); display: flex; font-size: 15px; gap: 12px; }
.check-step__icon { border: 2px solid #c2ccd8; border-radius: 50%; box-sizing: border-box; display: inline-flex; flex: 0 0 20px; height: 20px; width: 20px; }
.check-step.is-active { color: var(--vis-ink); font-weight: 600; }
.check-step.is-active .check-step__icon { animation: vis-spin 1s linear infinite; border-color: var(--vis-border); border-top-color: var(--vis-cyan-deep); }
.check-step.is-done { color: var(--vis-ink); }
.check-step.is-done .check-step__icon { align-items: center; background: var(--vis-success); border-color: var(--vis-success); color: #fff; font-size: 12px; font-weight: 800; justify-content: center; }
.check-step.is-done .check-step__icon::before { content: "✓"; }

/* --- Readiness result --- */
.readiness-score-card { align-items: center; background: var(--vis-navy-900); border-radius: var(--vis-radius-xl); box-shadow: 0 24px 60px rgba(11,18,32,.25); color: #fff; display: grid; gap: 34px; grid-template-columns: 200px minmax(0, 1fr); overflow: hidden; padding: 36px 40px; position: relative; }
.readiness-score-card::before { background: linear-gradient(110deg, rgba(11,18,32,.98), rgba(11,18,32,.82)), var(--vis-texture-ai) center / cover no-repeat; content: ""; inset: 0; opacity: .48; position: absolute; }
.readiness-score-card > * { position: relative; z-index: 1; }
.readiness-score-card__eyebrow { color: var(--vis-cyan-light); font-size: 13px; font-weight: 700; letter-spacing: .06em; margin-bottom: 8px; text-transform: uppercase; }
.readiness-score-card h2 { font-size: 27px; letter-spacing: -0.01em; margin: 0 0 12px; }
.readiness-score-card p { color: var(--vis-on-dark-2); font-size: 16px; line-height: 1.6; margin: 0 0 18px; max-width: 520px; }
.readiness-score-card__resolution { color: var(--vis-on-dark-4) !important; font-family: var(--vis-font-mono); font-size: 13px !important; }
.readiness-overview-section { padding-bottom: 54px; }
.readiness-overview-grid { align-items: stretch; display: grid; gap: 18px; grid-template-columns: minmax(300px, .82fr) minmax(0, 1.5fr); margin-top: 34px; }
.signal-profile-card { align-items: center; background: radial-gradient(circle at 50% 45%, rgba(52, 214, 238, .13), rgba(255, 255, 255, 0) 42%), linear-gradient(180deg, #fff, #f8fbfd); border: 1px solid var(--vis-border); border-radius: var(--vis-radius-lg); display: grid; gap: 12px; justify-items: center; min-width: 0; overflow: hidden; padding: 22px; position: relative; text-align: center; }
.signal-profile-card::before { background: linear-gradient(90deg, rgba(52,214,238,.35), rgba(229,71,50,.18), rgba(19,160,86,.24)); content: ""; height: 4px; left: 0; position: absolute; right: 0; top: 0; }
.signal-profile-card h2 { font-size: 20px; margin: 0 0 4px; }
.signal-profile-card p { color: var(--vis-slate-600); font-size: 13px; line-height: 1.45; margin: 0 auto; max-width: 260px; }
.orbit-chart { display: block; height: auto; max-width: 286px; width: 100%; }
.orbit-chart__core { fill: #fff; filter: drop-shadow(0 10px 24px rgba(15, 23, 42, .14)); stroke: var(--vis-border); stroke-width: 1; }
.orbit-chart__core-score { fill: var(--vis-ink); font-family: var(--vis-font-mono); font-size: 20px; font-weight: 800; }
.orbit-chart__core-label { fill: var(--vis-slate-500); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.orbit-chart__track { fill: none; stroke: #eaf0f6; stroke-width: 12; }
.orbit-chart__progress { fill: none; filter: url(#orbit-glow); stroke-linecap: round; stroke-width: 12; }
.orbit-chart__progress--entity { stroke: var(--vis-success); }
.orbit-chart__progress--website { stroke: var(--vis-warning); }
.orbit-chart__progress--structured_data { stroke: var(--vis-cyan-deep); }
.orbit-chart__progress--media { stroke: var(--vis-coral); }
.orbit-chart__progress--source_linkage { stroke: #7c3aed; }
.orbit-legend { display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
.orbit-legend span { align-items: center; background: rgba(255,255,255,.78); border: 1px solid var(--vis-border-soft); border-radius: 999px; color: var(--vis-slate-700); display: flex; font-size: 12px; gap: 7px; justify-content: center; min-width: 0; padding: 7px 9px; }
.orbit-legend i { border-radius: 50%; flex: 0 0 8px; height: 8px; width: 8px; }
.orbit-legend__entity i { background: var(--vis-success); }
.orbit-legend__website i { background: var(--vis-warning); }
.orbit-legend__structured_data i { background: var(--vis-cyan-deep); }
.orbit-legend__media i { background: var(--vis-coral); }
.orbit-legend__source_linkage i { background: #7c3aed; }
.orbit-legend strong { color: var(--vis-ink); font-family: var(--vis-font-mono); font-size: 12px; }
.readiness-component-grid { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 20px; }
.readiness-overview-grid .readiness-component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
.readiness-component { background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius-lg); padding: 20px 22px; transition: border-color .18s ease, box-shadow .2s ease, transform .18s ease; }
.readiness-component:hover { border-color: var(--vis-border-hover); box-shadow: var(--vis-shadow-soft); transform: translateY(-2px); }
.readiness-component__head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 14px; }
.readiness-component__head span:first-child { font-size: 15px; font-weight: 700; }
.readiness-component p { color: var(--vis-slate-600); font-size: 13px; line-height: 1.5; margin: 14px 0 0; }
.grade { align-items: center; border-radius: 8px; display: flex; font-size: 15px; font-weight: 600; height: 28px; justify-content: center; width: 28px; }
.grade--good { background: var(--vis-success-bg); color: var(--vis-success); }
.grade--mid { background: var(--vis-warning-bg); color: var(--vis-warning); }
.grade--low { background: var(--vis-danger-bg); color: var(--vis-danger); }

.signal-list { display: grid; gap: 0; margin: 18px 0 0; padding: 0; }
.signal-item { align-items: center; border-top: 1px solid var(--vis-border-soft); display: flex; gap: 12px; list-style: none; padding: 11px 2px; }
.signal-item:first-child { border-top: 0; }
.signal-item__icon { align-items: center; border-radius: 50%; display: inline-flex; flex: 0 0 20px; font-size: 11px; font-weight: 800; height: 20px; justify-content: center; width: 20px; }
.signal-item.is-ok .signal-item__icon { background: var(--vis-success-bg); color: var(--vis-success); }
.signal-item.is-bad .signal-item__icon { background: var(--vis-danger-bg); color: var(--vis-danger); }
.signal-item em { color: var(--vis-slate-500); font-family: var(--vis-font-mono); font-size: 13px; font-style: normal; margin-left: auto; }
.signal-item.is-bad em { color: var(--vis-danger); }

.section-heading { margin: 0 0 26px; max-width: 860px; }
.section-heading .section__title { margin: 0 0 8px; }
.section-heading p,
.section-intro { color: var(--vis-slate-600); font-size: 16px; line-height: 1.65; margin: 0; max-width: 820px; }

.expert-findings-layout { align-items: start; display: grid; gap: 20px; grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr); }
.finding-chart-panel { align-items: start; background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius-lg); box-shadow: 0 14px 34px rgba(15, 23, 42, .05); display: grid; gap: 18px; grid-template-columns: 1fr; padding: 22px; }
.finding-chart-panel h3 { font-size: 20px; margin: 0 0 5px; }
.finding-chart-panel p { color: var(--vis-slate-600); font-size: 13px; line-height: 1.45; margin: 0; }
.finding-health-bars { display: grid; gap: 12px; }
.finding-health-row { align-items: start; display: grid; gap: 7px; grid-template-columns: 1fr; }
.finding-health-row > span { color: var(--vis-ink); font-size: 13px; font-weight: 800; min-width: 0; }
.finding-health-row em { color: var(--vis-slate-500); font-size: 12px; font-style: normal; min-width: 0; text-align: left; }
.split-bar { background: var(--vis-navy-50); border-radius: 999px; display: flex; height: 10px; overflow: hidden; width: 100%; }
.split-bar i { display: block; height: 100%; }
.split-bar__ok { background: var(--vis-success); }
.split-bar__gap { background: var(--vis-danger); }

.expert-findings-grid { align-items: start; display: grid; gap: 16px; grid-template-columns: 1fr; }
.expert-group { background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius-lg); box-shadow: 0 14px 34px rgba(15, 23, 42, .05); min-width: 0; padding: 22px; }
.expert-group h3 { font-size: 20px; margin: 0 0 10px; }
.expert-finding-list { display: grid; }
.expert-finding { border-top: 1px solid var(--vis-border-soft); display: block; padding: 0; }
.expert-finding:first-child { border-top: 0; }
.expert-finding__head { align-items: center; cursor: pointer; display: flex; flex-wrap: wrap; gap: 8px 10px; list-style: none; min-width: 0; padding: 13px 0; }
.expert-finding__head::-webkit-details-marker { display: none; }
.expert-finding__head::marker { content: ""; }
.expert-finding__head strong { color: var(--vis-ink); font-size: 16px; line-height: 1.3; min-width: 0; }
.expert-finding__head em { color: var(--vis-slate-500); font-family: var(--vis-font-mono); font-size: 12px; font-style: normal; line-height: 1.4; margin-left: auto; max-width: 100%; overflow-wrap: anywhere; }
.expert-finding__more { align-items: center; border: 1px solid var(--vis-border); border-radius: 50%; color: var(--vis-slate-500); display: inline-flex; flex: 0 0 24px; font-family: var(--vis-font-mono); font-size: 12px; font-weight: 800; height: 24px; justify-content: center; width: 24px; }
.expert-finding[open] .expert-finding__more { background: var(--vis-cyan-soft); border-color: var(--vis-cyan-deep); color: var(--vis-cyan-deep); }
.expert-finding__status { border-radius: 999px; flex: 0 0 auto; font-size: 11px; font-weight: 800; padding: 5px 8px; }
.expert-finding.is-ok .expert-finding__status { background: var(--vis-success-bg); color: var(--vis-success); }
.expert-finding.is-gap .expert-finding__status { background: var(--vis-danger-bg); color: var(--vis-danger); }
.finding-explainer { display: grid; gap: 12px; margin: 0 0 14px; padding: 0 0 2px; }
.finding-explainer div { border-left: 3px solid var(--vis-border); padding-left: 12px; }
.expert-finding.is-ok .finding-explainer div:last-child { border-left-color: var(--vis-success); }
.expert-finding.is-gap .finding-explainer div:last-child { border-left-color: var(--vis-warning); }
.finding-explainer dt { color: var(--vis-slate-500); font-size: 12px; font-weight: 800; margin: 0 0 3px; }
.finding-explainer dd { color: var(--vis-slate-700); font-size: 14px; line-height: 1.55; margin: 0; }
.source-profile-summary { border-top: 1px solid var(--vis-border-soft); margin-top: 6px; padding-top: 16px; }
.source-profile-summary h4 { font-size: 15px; margin: 0 0 5px; }
.source-profile-summary > p { color: var(--vis-slate-600); font-size: 13px; line-height: 1.5; margin: 0; }
.source-profile-list { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; }
.source-profile { align-items: center; background: var(--vis-navy-50); border: 1px solid var(--vis-border-soft); border-radius: 10px; display: grid; gap: 4px 10px; grid-template-columns: minmax(90px, .55fr) minmax(0, 1.45fr) auto; list-style: none; padding: 10px 12px; }
.source-profile span { color: var(--vis-ink); font-size: 13px; font-weight: 800; }
.source-profile span small { color: var(--vis-slate-500); display: block; font-size: 10px; font-weight: 700; margin-top: 2px; }
.source-profile a { color: var(--vis-cyan-deep); font-family: var(--vis-font-mono); font-size: 11px; min-width: 0; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 2px; }
.source-profile code { color: var(--vis-slate-500); font-size: 11px; overflow-wrap: anywhere; }
.source-profile a:focus-visible { border-radius: 4px; outline: 3px solid rgba(19, 160, 134, .28); outline-offset: 3px; }
.source-profile em { background: #fff; border: 1px solid var(--vis-border); border-radius: 999px; color: var(--vis-slate-600); font-size: 10px; font-style: normal; font-weight: 800; padding: 4px 7px; white-space: nowrap; }
.source-profile--matched em { background: var(--vis-success-bg); border-color: transparent; color: var(--vis-success); }
.source-profile--conflict em { background: var(--vis-danger-bg); border-color: transparent; color: var(--vis-danger); }
.source-profile-more { color: var(--vis-slate-500) !important; font-family: var(--vis-font-mono); margin-top: 9px !important; }

.issue-severity-list { display: grid; }
.issue-severity-item { align-items: flex-start; border-top: 1px solid var(--vis-border-soft); display: flex; gap: 14px; line-height: 1.5; padding: 13px 2px; }
.issue-severity-item:first-child { border-top: 0; }
.issue-severity-item .vis-badge { flex: 0 0 auto; margin-top: 1px; }

.todo-list { display: grid; gap: 12px; margin-top: 18px; }
.priority-chart-card { background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius); display: grid; gap: 14px; margin-top: 18px; padding: 16px 18px; }
.priority-chart-card h3 { font-size: 18px; margin: 0 0 4px; }
.priority-chart-card p { color: var(--vis-slate-600); font-size: 13px; line-height: 1.45; margin: 0; }
.priority-stacked-bar { background: var(--vis-navy-50); border-radius: 999px; display: flex; height: 16px; overflow: hidden; width: 100%; }
.priority-stacked-bar span { display: block; height: 100%; }
.priority-stacked-bar__high { background: var(--vis-danger); }
.priority-stacked-bar__med { background: var(--vis-warning); }
.priority-stacked-bar__low { background: var(--vis-cyan-deep); }
.priority-stacked-bar--empty { align-items: center; color: var(--vis-success); font-size: 12px; font-weight: 800; justify-content: center; }
.priority-stacked-bar--empty span { background: transparent; display: inline; height: auto; }
.priority-legend { display: flex; flex-wrap: wrap; gap: 9px; }
.priority-legend span { align-items: center; color: var(--vis-slate-700); display: inline-flex; font-size: 12px; gap: 6px; }
.priority-legend i { border-radius: 50%; flex: 0 0 9px; height: 9px; width: 9px; }
.priority-legend__high i { background: var(--vis-danger); }
.priority-legend__med i { background: var(--vis-warning); }
.priority-legend__low i { background: var(--vis-cyan-deep); }
.priority-legend strong { color: var(--vis-ink); font-family: var(--vis-font-mono); font-size: 12px; }
.todo-item { align-items: flex-start; background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius); display: grid; gap: 14px; grid-template-columns: 42px minmax(0, 1fr); padding: 16px 18px; }
.todo-item__index { align-items: center; background: var(--vis-navy-50); border-radius: 50%; color: var(--vis-cyan-deep); display: inline-flex; flex: 0 0 42px; font-family: var(--vis-font-mono); font-size: 16px; font-weight: 800; height: 42px; justify-content: center; width: 42px; }
.todo-item__head { align-items: center; display: flex; flex-wrap: wrap; gap: 9px; margin: 1px 0 7px; }
.todo-item__head strong { font-size: 16px; line-height: 1.35; }
.todo-item p { color: var(--vis-slate-700); font-size: 14px; line-height: 1.55; margin: 0; }
.todo-item--clear .todo-item__index { background: var(--vis-success-bg); color: var(--vis-success); }

.upgrade-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.upgrade-card { background: #fff; border: 1px solid var(--vis-border); border-radius: var(--vis-radius); padding: 16px 18px; }
.upgrade-card strong { display: block; font-size: 15px; margin-bottom: 5px; }
.upgrade-card p { color: var(--vis-slate-600); font-size: 13px; line-height: 1.5; margin: 0; }

.audit-rationale { border-bottom: 1px solid rgba(148, 163, 184, .18); border-top: 1px solid rgba(148, 163, 184, .18); margin: 18px 0; padding: 17px 0 3px; }
.audit-rationale h3 { color: #fff; font-size: 17px; line-height: 1.35; margin: 0 0 10px; }
.checkout-panel .audit-rationale p { color: var(--vis-on-dark-2); font-size: 13px; line-height: 1.6; margin: 0 0 12px; max-width: none; }

.checkout-feature-list { display: grid; gap: 9px; margin: 0 0 18px; padding: 0; }
.checkout-feature-list li { align-items: flex-start; color: var(--vis-on-dark-1); display: flex; font-size: 14px; gap: 9px; line-height: 1.45; list-style: none; }
.checkout-feature-list li::before { color: var(--vis-cyan-bright); content: "✓"; font-weight: 800; }

@media (max-width: 980px) {
  .score-profile, .readiness-score-card { grid-template-columns: 1fr; }
  .readiness-score-card__gauge { margin: 0 auto; }
  .readiness-overview-grid { grid-template-columns: 1fr; }
  .expert-findings-layout { grid-template-columns: 1fr; }
  .readiness-component-grid, .upgrade-grid { grid-template-columns: 1fr 1fr; }
  .readiness-overview-grid .readiness-component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .alt-table__row { grid-template-columns: minmax(0, 1.4fr) .9fr .6fr; }
  .alt-table__bar { display: none; }
  .insight-signal-grid { grid-template-columns: 1fr; }
  .pattern-grid, .source-influence-grid { grid-template-columns: 1fr; }
  .competitor-profile-grid, .comparison-gap-list, .best-practice-list { grid-template-columns: 1fr; }
  .fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mini-list { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .portal-hero-row { align-items: flex-start; flex-direction: column; }
  .report-hero-id { align-items: flex-start; }
  .readiness-component-grid, .upgrade-grid, .cat-grid { grid-template-columns: 1fr; }
  .readiness-overview-grid .readiness-component-grid { grid-template-columns: 1fr; }
  .orbit-legend { grid-template-columns: 1fr; }
  .finding-health-row { grid-template-columns: 1fr; }
  .finding-health-row em { text-align: left; }
  .expert-group { padding: 18px; }
  .expert-finding__head { align-items: center; flex-direction: row; }
  .expert-finding__head em { margin-left: 0; width: 100%; }
  .expert-finding__more { margin-left: auto; }
  .source-profile { align-items: start; grid-template-columns: 1fr; }
  .source-profile em { justify-self: start; }
  .todo-item { grid-template-columns: 34px minmax(0, 1fr); padding: 14px; }
  .todo-item__index { flex-basis: 34px; font-size: 14px; height: 34px; width: 34px; }
  .wizard__form { padding: 28px 22px; }
  .wizard__body { gap: 22px; }
  .footprint-panel { padding: 18px; }
  .footprint-orbit { max-width: 132px; width: 52%; }
  .dim-row { grid-template-columns: minmax(0, 1fr) 80px 34px; }
  .checkout-package-meta { grid-template-columns: 1fr; }
  .audit-row__end { align-items: flex-start; }
  .audit-row { align-items: flex-start; flex-direction: column; }
  .mini-list { grid-template-columns: 1fr; }
}

.visual-intelligence, .relation-graph { overflow: hidden; }
.visual-intelligence__head { align-items: flex-start; }
.visual-intelligence__score, .relation-graph__quality { display: grid; grid-template-columns: auto auto; align-items: baseline; color: var(--vis-teal-700, #087d8f); }
.visual-intelligence__score strong, .relation-graph__quality strong { font-size: clamp(44px, 7vw, 72px); line-height: .9; }
.visual-intelligence__score span { font-weight: 800; }
.visual-intelligence__score small, .relation-graph__quality small { grid-column: 1 / -1; margin-top: 8px; color: #64748b; text-align: right; }
.visual-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 20px 0; }
.visual-summary span { padding: 14px; border: 1px solid #dbe7eb; border-radius: 12px; background: #f8fbfc; }
.visual-summary b, .visual-summary small { display: block; }
.visual-summary b { font-size: 24px; }
.visual-summary small { color: #657685; }
.visual-component-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.visual-component-grid article, .visual-attribute-grid article { padding: 16px; border: 1px solid #dfe8ed; border-radius: 14px; background: #fff; }
.visual-component-grid span, .visual-attribute-grid > article > span { color: #657685; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.visual-component-grid strong { display: block; margin: 8px 0; font-size: 28px; }
.visual-progress, .confidence-band { height: 7px; overflow: hidden; border-radius: 99px; background: #e3edef; }
.visual-progress i, .confidence-band i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #12a5aa, #087d8f); }
.visual-attribute-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.visual-attribute-grid h3 { margin: 6px 0 12px; }
.visual-attribute-grid p { min-height: 44px; color: #526271; }
.visual-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.visual-gallery__item { overflow: hidden; border: 1px solid #dce6eb; border-radius: 14px; background: #f8fbfc; }
.visual-gallery__item summary { display: grid; cursor: pointer; list-style: none; }
.visual-gallery__item summary::-webkit-details-marker { display: none; }
.visual-gallery__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #edf3f5; }
.visual-gallery__item summary b, .visual-gallery__item > div { padding: 12px; }
.visual-gallery__placeholder { display: grid; place-items: center; min-height: 160px; padding: 20px; color: #657685; text-align: center; }
.visual-gallery__placeholder[hidden] { display: none !important; }
.visual-opportunities { margin-top: 22px; padding: 16px; border-radius: 14px; background: #fff8e8; border: 1px solid #f2d79a; }
.visual-opportunity-list { display: grid; gap: 12px; }
.visual-opportunity { padding: 14px; border: 1px solid #efd18b; border-radius: 12px; background: rgba(255, 255, 255, 0.64); }
.visual-opportunity h4 { margin: 0 0 8px; }
.visual-opportunity p { margin: 6px 0 0; }
.relation-graph__quality span { font-weight: 800; }
.relation-graph__meaning-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 20px 0 12px; }
.relation-graph__meaning-grid article { padding: 18px; border: 1px solid #dbe7eb; border-radius: 14px; background: #f7fbfc; }
.relation-graph__meaning-grid article > span { display: block; margin-bottom: 7px; color: #0a7182; font-size: 13px; font-weight: 900; letter-spacing: .03em; text-transform: uppercase; }
.relation-graph__meaning-grid p { margin: 0; color: #405465; }
.relation-graph__meaning-grid .relation-graph__next-step { border-color: #b9e6ec; background: #edfafd; }
.relation-graph__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dbe7eb; border-radius: 14px; background: #fff; }
.relation-graph__stats span { padding: 13px 16px; color: #5c6d7d; font-size: 13px; }
.relation-graph__stats span + span { border-left: 1px solid #e3ecef; }
.relation-graph__stats strong { display: block; color: #122333; font-family: var(--vis-font-mono, monospace); font-size: 24px; line-height: 1.1; }
.relation-graph__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 14px 0 22px; color: #516575; font-size: 13px; }
.relation-graph__legend > span { display: inline-flex; align-items: center; gap: 8px; }
.relation-graph__legend-line { display: inline-block; width: 28px; border-top: 3px solid #1590a0; }
.relation-graph__legend-line--inferred { border-color: #b77b10; border-top-style: dashed; }
.relation-graph__explorer-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-top: 4px; }
.relation-graph__explorer-head h3 { margin: 0 0 4px; }
.relation-graph__explorer-head p { margin: 0; color: #5b6c7c; }
.relation-graph__toolbar { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 7px; }
.relation-graph__toolbar button { min-height: 44px; padding: 0 13px; border: 1px solid #bfd1d9; border-radius: 9px; background: #fff; color: #183244; font-weight: 800; cursor: pointer; }
.relation-graph__toolbar button:hover { border-color: #0a7d94; color: #075f70; }
.relation-graph__toolbar button:focus-visible, .relation-graph__filters input:focus-visible { outline: 3px solid rgba(52, 214, 238, .42); outline-offset: 2px; }
.relation-graph__filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.relation-graph__filters label { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 0 12px; border: 1px solid #d6e2e7; border-radius: 999px; background: #f8fbfc; font-weight: 700; }
.relation-graph__mobile-hint { display: none; }
.relation-graph__canvas { display: grid; grid-template-columns: minmax(0, 1fr) 270px; min-height: 330px; overflow: hidden; border: 1px solid #cadde4; border-radius: 16px; background: #f4f9fa; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8); }
.relation-graph__map-scroll { min-width: 0; overflow: hidden; }
.relation-graph svg { display: block; width: 100%; min-height: 320px; touch-action: none; }
.relation-graph line { stroke: #0a7d94; stroke-width: 3; stroke-opacity: .62; cursor: pointer; }
.relation-graph line[data-state="inferred"] { stroke: #d29a27; stroke-dasharray: 7 5; }
.relation-graph line:focus, .relation-graph line.is-selected { stroke-width: 6; stroke-opacity: 1; outline: none; }
.relation-graph g[data-graph-node] { cursor: pointer; }
.relation-graph g[data-graph-node] circle { fill: #fff; stroke: #7897a8; stroke-width: 2; }
.relation-graph g[data-graph-node] rect { fill: #fff; stroke: #7897a8; stroke-width: 2; filter: drop-shadow(0 4px 7px rgba(32, 63, 78, .09)); }
.relation-graph g[data-graph-node].is-audited circle, .relation-graph g[data-graph-node].is-audited rect,
.relation-graph g[data-graph-node].is-selected circle, .relation-graph g[data-graph-node].is-selected rect { fill: #087d8f; stroke: #075c69; }
.relation-graph g[data-graph-node]:focus circle, .relation-graph g[data-graph-node]:focus rect { stroke-width: 5; }
.relation-graph text { font-size: 13px; font-weight: 850; fill: #152b39; pointer-events: none; }
.relation-graph g[data-graph-node].is-audited text, .relation-graph g[data-graph-node].is-selected text { fill: #fff; }
.relation-graph__type { font-size: 10px; font-weight: 700; fill: #647786; }
.relation-graph g[data-graph-node].is-audited .relation-graph__type, .relation-graph g[data-graph-node].is-selected .relation-graph__type { fill: #d9f5f8; }
#graph-arrow-observed path { fill: #0a7d94; }
#graph-arrow-inferred path { fill: #d29a27; }
.relation-graph__canvas aside { padding: 22px; border-left: 1px solid #cadde4; background: #fff; }
.relation-graph__canvas aside > span { display: block; margin-bottom: 10px; color: #0a7182; font-size: 11px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.relation-graph__canvas aside strong { display: block; font-size: 18px; line-height: 1.25; }
.relation-graph__canvas aside p { color: #526777; }
.relation-graph__canvas aside p:last-child { margin-bottom: 0; }
.relation-graph__detail-action { padding-top: 12px; border-top: 1px solid #e2eaee; }
.relation-graph__relationship-list { margin-top: 22px; }
.relation-graph__relationship-list > h3 { margin-bottom: 12px; }
.relation-graph__relationship-list article { padding: 16px 18px; border: 1px solid #dbe6eb; border-radius: 14px; background: #fff; }
.relation-graph__relationship-list article + article { margin-top: 10px; }
.relation-graph__relationship-list article > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.relation-graph__relationship-list article > div small { margin-left: auto; color: #607282; }
.relation-graph__relationship-list h4 { margin: 12px 0 8px; font-size: 18px; }
.relation-graph__relationship-list p { margin: 6px 0 0; color: #465b6b; }
.relation-graph__state { padding: 4px 8px; border-radius: 999px; background: #e4f5f7; color: #086c7d; font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.relation-graph__state--inferred { background: #fff1d6; color: #855700; }
.relation-graph__fallback { margin-top: 16px; }
.relation-graph__fallback summary { min-height: 44px; cursor: pointer; font-weight: 800; }
.relation-graph__fallback li { margin-bottom: 8px; }

@media (prefers-reduced-motion: reduce) {
  .relation-graph *, .visual-intelligence * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

@media (max-width: 960px) {
  .relation-graph__explorer-head { align-items: flex-start; flex-direction: column; }
  .relation-graph__toolbar { justify-content: flex-start; }
  .relation-graph__canvas { grid-template-columns: 1fr; }
  .relation-graph__canvas aside { border-left: 0; border-top: 1px solid #d7e3e9; }
}

@media (max-width: 768px) {
  .visual-summary, .visual-component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visual-attribute-grid, .visual-gallery { grid-template-columns: 1fr; }
  .relation-graph__meaning-grid { grid-template-columns: 1fr; }
  .relation-graph__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .relation-graph__stats span:nth-child(3) { border-left: 0; border-top: 1px solid #e3ecef; }
  .relation-graph__stats span:nth-child(4) { border-top: 1px solid #e3ecef; }
}

@media (max-width: 640px) {
  .relation-graph__mobile-hint { display: block; margin: 0 0 10px; color: #526777; font-size: 13px; }
  .relation-graph__map-scroll { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
  .relation-graph__map-scroll svg { width: 720px; min-width: 720px; max-width: none; }
}

@media (max-width: 390px) {
  .visual-summary, .visual-component-grid { grid-template-columns: 1fr; }
  .relation-graph__toolbar { flex-wrap: wrap; }
  .relation-graph__toolbar button { flex: 1 1 auto; }
  .relation-graph__filters label { width: 100%; }
  .relation-graph__relationship-list article > div small { margin-left: 0; width: 100%; }
}

@media print {
  .relation-graph__toolbar, .relation-graph__canvas { display: none !important; }
  .relation-graph__fallback { display: block !important; }
}

@media (max-width: 640px) {
  .hero { min-height: auto; }
  .hero__inner { min-height: auto; padding-top: 58px; }
  .payment-return-hero__inner { align-items: flex-start; flex-direction: column; }
  .payment-return-icon { flex-basis: 58px; height: 58px; width: 58px; }
  .payment-return-facts,
  .payment-return-info-grid { grid-template-columns: 1fr; }
  .payment-return-summary,
  .payment-return-timeline,
  .payment-return-status-panel { padding: 22px; }
  .hero__title, .standard-hero h1 { font-size: 36px; }
  .hero__lead { font-size: 17px; }
  .btn--lg { padding-left: 20px; padding-right: 20px; width: 100%; }
  .hero-place { min-height: 560px; }
  .hero-place__note {
    left: 14px;
    max-width: none;
    right: 14px;
  }
  .hero-place__chip--one { left: 16px; top: 41%; }
  .hero-place__chip--two { right: 16px; top: 53%; }
  .hero-answer-card {
    bottom: 14px;
    left: 14px;
    padding: 18px;
    right: 14px;
  }
  .hero-answer-card__metrics { flex-direction: column; }
  .hero-trust__inner { gap: 12px 18px; justify-content: flex-start; }
  .hero-trust__dot { display: none; }
  .section__title { font-size: 30px; }
  .grid-3, .grid-4, .score-grid, .form-grid, .preview-breakdown, .portal-score-grid { grid-template-columns: 1fr; }
  .portal-metrics, .portal-summary, .report-kpi-grid, .report-delivery-grid, .query-metrics { grid-template-columns: 1fr; }
  .fact-grid { grid-template-columns: 1fr; }
  .pattern-card { grid-template-columns: 1fr; }
  .pattern-card__score { grid-template-columns: minmax(0, 1fr) 42px; }
  .portal-report-hero .vis-wrap, .report-panel__head { align-items: flex-start; flex-direction: column; }
  .report-hero-score { width: 100%; }
  .query-drilldown summary { grid-template-columns: 1fr; }
  .query-drilldown summary strong { justify-self: start; }
  .portal-row { align-items: flex-start; flex-direction: column; }
  .map-card { min-height: 320px; }
  .map-fact {
    bottom: 14px;
    left: 14px;
    max-width: none;
    right: 14px;
  }
}

/* 2026 commercial surface: dynamic offers, buyer evidence and responsive navigation. */
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--vis-cyan-bright);
  outline-offset: 3px;
}
.site-menu { align-items: center; display: flex; flex: 1; gap: 16px; min-width: 0; }
.mobile-menu-toggle { display: none; }
.btn--wide { justify-content: center; width: 100%; }
.section__head--split {
  align-items: end;
  display: grid;
  gap: 36px;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .7fr);
  text-align: left;
}
.section__head--split .section__lead { margin: 0; }
.decision-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.decision-card {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-xl);
  box-shadow: var(--vis-shadow-soft);
  padding: 32px;
}
.decision-card--featured { background: var(--vis-navy-900); border-color: transparent; color: #fff; }
.decision-card h3 { font-size: 26px; margin: 18px 0 10px; }
.decision-card p { color: var(--vis-slate-600); font-size: 16px; line-height: 1.65; }
.decision-card--featured p,
.decision-card--featured .check-list li { color: var(--vis-on-dark-1); }
.search-shift { background: #f3f7f8; }
.search-shift__thesis {
  border-left: 3px solid var(--vis-coral);
  color: var(--vis-ink);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  margin: 20px 0 0;
  padding-left: 18px;
}
.search-shift__grid {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
}
.search-evidence {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-xl);
  box-shadow: var(--vis-shadow-soft);
  margin: 0;
  overflow: hidden;
  padding: 32px;
}
.search-evidence__caption {
  color: var(--vis-cyan-deep);
  font-family: var(--vis-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.search-evidence__hero {
  align-items: end;
  border-bottom: 1px solid var(--vis-border);
  display: grid;
  gap: 24px;
  grid-template-columns: auto 1fr;
  margin: 14px 0 12px;
  padding-bottom: 24px;
}
.search-evidence__hero strong {
  color: var(--vis-coral);
  font-family: var(--vis-font-mono);
  font-size: clamp(54px, 7vw, 84px);
  letter-spacing: -.07em;
  line-height: .9;
}
.search-evidence__hero span {
  color: var(--vis-ink);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.35;
}
.research-source {
  color: var(--vis-cyan-deep);
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-color: rgba(10,125,148,.3);
  text-underline-offset: 3px;
}
.click-study {
  background: var(--vis-paper);
  border-radius: var(--vis-radius-lg);
  margin-top: 28px;
  padding: 22px;
}
.click-study h3 {
  color: var(--vis-ink);
  font-size: 16px;
  margin: 0 0 18px;
}
.click-study__row {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(125px, 1fr) minmax(110px, 1.3fr) 38px;
  margin: 11px 0;
}
.click-study__row > span { color: var(--vis-slate-600); font-size: 13px; font-weight: 700; }
.click-study__row strong { color: var(--vis-ink); font-family: var(--vis-font-mono); font-size: 14px; }
.click-study meter {
  appearance: none;
  background: rgba(10,125,148,.12);
  border: 0;
  border-radius: 999px;
  height: 10px;
  overflow: hidden;
  width: 100%;
}
.click-study meter::-webkit-meter-bar { background: rgba(10,125,148,.12); border: 0; border-radius: 999px; }
.click-study meter::-webkit-meter-optimum-value { background: linear-gradient(90deg, var(--vis-cyan-bright), var(--vis-cyan-deep)); border-radius: 999px; }
.click-study meter::-moz-meter-bar { background: linear-gradient(90deg, var(--vis-cyan-bright), var(--vis-cyan-deep)); border-radius: 999px; }
.click-study .research-source { margin-top: 8px; }
.search-evidence__secondary {
  align-items: center;
  border-top: 1px solid var(--vis-border);
  display: grid;
  gap: 18px;
  grid-template-columns: auto 1fr;
  margin-top: 26px;
  padding-top: 24px;
}
.search-evidence__secondary > strong {
  color: var(--vis-ink);
  font-family: var(--vis-font-mono);
  font-size: 38px;
  letter-spacing: -.05em;
}
.search-evidence__secondary span { color: var(--vis-slate-700); display: block; font-size: 14px; font-weight: 800; line-height: 1.4; }
.geo-bridge {
  background: var(--vis-navy-900);
  border-radius: var(--vis-radius-xl);
  box-shadow: 0 24px 60px rgba(11,18,32,.2);
  color: #fff;
  padding: 38px;
}
.geo-bridge h3 {
  color: #fff;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.08;
  margin: 14px 0 18px;
}
.geo-bridge__lead { color: var(--vis-on-dark-2); font-size: 16px; line-height: 1.65; margin: 0; }
.geo-bridge__steps { display: grid; gap: 0; list-style: none; margin: 28px 0 0; padding: 0; }
.geo-bridge__steps li {
  align-items: start;
  border-top: 1px solid rgba(255,255,255,.12);
  display: grid;
  gap: 16px;
  grid-template-columns: 38px 1fr;
  padding: 18px 0;
}
.geo-bridge__steps li > span {
  color: var(--vis-cyan-bright);
  font-family: var(--vis-font-mono);
  font-size: 12px;
  padding-top: 3px;
}
.geo-bridge__steps small {
  color: var(--vis-coral);
  display: block;
  font-family: var(--vis-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  margin-bottom: 4px;
  text-transform: uppercase;
}
.geo-bridge__steps strong { display: block; font-size: 17px; }
.geo-bridge__steps p { color: var(--vis-on-dark-2); line-height: 1.5; margin: 5px 0 0; }
.geo-bridge__closing {
  background: rgba(52,214,238,.09);
  border: 1px solid rgba(52,214,238,.2);
  border-radius: var(--vis-radius);
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.5;
  margin: 8px 0 0;
  padding: 16px 18px;
}
.search-shift__note {
  color: var(--vis-slate-500);
  font-size: 12px;
  line-height: 1.55;
  margin: 20px 0 0;
  max-width: 900px;
}
.machine-proof { background: var(--vis-navy-900); color: #fff; }
.machine-proof .section__lead { color: var(--vis-on-dark-2); }
.machine-proof__card { box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.machine-proof__card h3 { color: var(--vis-ink); }
.machine-proof__footer {
  align-items: center;
  border-top: 1px solid rgba(255,255,255,.13);
  display: flex;
  gap: 28px;
  justify-content: space-between;
  margin-top: 28px;
  padding-top: 24px;
}
.machine-proof__footer p { color: var(--vis-on-dark-2); line-height: 1.55; margin: 0; max-width: 760px; }
.machine-proof__footer .btn { flex-shrink: 0; }
.report-story, .methodology-section, .evidence-section {
  background: var(--vis-navy-900);
  color: #fff;
}
.report-story__grid,
.methodology-section__grid,
.evidence-section__grid {
  align-items: center;
  display: grid;
  gap: 70px;
  grid-template-columns: minmax(0, .9fr) minmax(380px, .75fr);
}
.report-story .section__lead,
.methodology-section .section__lead,
.evidence-section .section__lead { color: var(--vis-on-dark-2); }
.story-steps { display: grid; gap: 18px; list-style: none; margin: 30px 0 0; padding: 0; }
.story-steps li { align-items: start; display: grid; gap: 16px; grid-template-columns: 42px 1fr; }
.story-steps > li > span {
  align-items: center;
  border: 1px solid rgba(52,214,238,.34);
  border-radius: 50%;
  color: var(--vis-cyan-bright);
  display: flex;
  font-family: var(--vis-font-mono);
  font-size: 12px;
  height: 42px;
  justify-content: center;
}
.story-steps strong { display: block; font-size: 17px; }
.story-steps p { color: var(--vis-on-dark-2); line-height: 1.55; margin: 4px 0 0; }
.report-preview, .answer-trace {
  background: #fff;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--vis-radius-xl);
  box-shadow: 0 30px 80px rgba(0,0,0,.3);
  color: var(--vis-ink);
  padding: 28px;
}
.report-preview__top, .answer-trace__head {
  align-items: center;
  border-bottom: 1px solid var(--vis-border);
  color: var(--vis-slate-500);
  display: flex;
  font-family: var(--vis-font-mono);
  font-size: 11px;
  justify-content: space-between;
  padding-bottom: 16px;
}
.report-preview__score { align-items: end; display: flex; gap: 10px; padding: 22px 0; }
.report-preview__score strong { color: var(--vis-cyan-deep); font-family: var(--vis-font-mono); font-size: 54px; line-height: .9; }
.report-preview__score span { color: var(--vis-slate-500); font-size: 13px; }
.report-preview__row { align-items: center; display: grid; gap: 12px; grid-template-columns: 120px 1fr 28px; margin: 12px 0; }
.report-preview__row span { color: var(--vis-text-2); font-size: 13px; }
.report-preview__row div { background: var(--vis-paper); border-radius: 999px; height: 8px; overflow: hidden; }
.report-preview__row i { background: linear-gradient(90deg, var(--vis-cyan-deep), var(--vis-cyan-bright)); display: block; height: 100%; }
.report-preview__row b { font-family: var(--vis-font-mono); font-size: 12px; text-align: right; }
.report-preview__finding { background: var(--vis-coral-soft); border-radius: var(--vis-radius); margin-top: 22px; padding: 16px; }
.report-preview__finding small { color: var(--vis-coral-deep); display: block; font-weight: 800; text-transform: uppercase; }
.report-preview__finding strong { display: block; line-height: 1.4; margin-top: 5px; }
.comparison-table-wrap { border: 1px solid var(--vis-border); border-radius: var(--vis-radius-xl); box-shadow: var(--vis-shadow-soft); overflow-x: auto; }
.comparison-table { background: #fff; border-collapse: collapse; min-width: 760px; width: 100%; }
.comparison-table th, .comparison-table td { border-bottom: 1px solid var(--vis-border); padding: 18px 20px; text-align: left; }
.comparison-table thead th { background: var(--vis-navy-900); color: #fff; font-size: 13px; }
.comparison-table tbody th { color: var(--vis-ink); font-size: 14px; width: 28%; }
.comparison-table td { color: var(--vis-slate-600); font-size: 14px; }
.comparison-table td.is-strong { background: rgba(52,214,238,.08); color: var(--vis-ink); font-weight: 800; }
.comparison-note { color: var(--vis-slate-600); font-size: 13px; line-height: 1.6; margin: 14px 0 0; }
.deliverable-grid { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.deliverable-card { border-top: 3px solid var(--vis-cyan-deep); padding: 22px 4px 0; }
.deliverable-card > span { color: var(--vis-coral-deep); font-family: var(--vis-font-mono); font-size: 12px; font-weight: 800; }
.deliverable-card h3 { font-size: 19px; margin: 10px 0 6px; }
.deliverable-card p { color: var(--vis-slate-600); line-height: 1.55; margin: 0; }
.price-card--truth { display: grid; gap: 16px; }
.price-card--truth p { color: var(--vis-on-dark-2); line-height: 1.55; margin: 0; }
.price-card__status { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.price-card__status > span:last-child { color: var(--vis-on-dark-3); font-size: 12px; }
.price-card--truth .price { margin: 0; }
.price-card--truth .price small { color: var(--vis-on-dark-3); font-family: var(--vis-font-sans); font-size: 12px; }
.price-card--truth h4 { margin: 4px 0 -10px; }
.price-card--truth .check-list { margin: 0; }
.price-card--truth .check-list li { color: var(--vis-on-dark-1); }
.proof-strip { border-bottom: 1px solid rgba(255,255,255,.12); border-top: 1px solid rgba(255,255,255,.12); display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); padding: 14px 0; }
.proof-strip span { color: var(--vis-on-dark-3); font-size: 10px; line-height: 1.25; padding-right: 8px; }
.proof-strip strong { color: #fff; display: block; font-family: var(--vis-font-mono); font-size: 17px; }
.offer-limits { border: 1px solid rgba(255,255,255,.14); border-radius: var(--vis-radius); color: var(--vis-on-dark-2); }
.offer-limits summary { cursor: pointer; font-weight: 800; min-height: 44px; padding: 13px 15px; }
.offer-limits ul { display: grid; gap: 8px; line-height: 1.5; margin: 0; padding: 0 34px 16px; }
.faq-item { overflow: hidden; padding: 0; }
.faq-item summary {
  color: var(--vis-ink);
  cursor: pointer;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.35;
  min-height: 60px;
  padding: 19px 54px 19px 24px;
  position: relative;
}
.faq-item summary::after { color: var(--vis-cyan-deep); content: "+"; font-family: var(--vis-font-mono); font-size: 25px; position: absolute; right: 22px; top: 15px; }
.faq-item[open] summary::after { content: "−"; }
.faq-item p { border-top: 1px solid var(--vis-border-soft); padding: 18px 24px 22px; }
.standard-hero .vis-eyebrow { color: var(--vis-cyan-light); }
.standard-hero .btn { margin-top: 18px; }
.scope-truth { align-items: flex-start; color: var(--vis-slate-600); display: flex; font-size: 13px; gap: 8px; line-height: 1.5; margin: 12px 0 0; }
.scope-truth span { color: var(--vis-success); }
.offer-stack { display: grid; gap: 26px; }
.offer-card {
  background: #fff;
  border: 1px solid var(--vis-border);
  border-radius: var(--vis-radius-xl);
  box-shadow: var(--vis-shadow-soft);
  display: grid;
  gap: 0;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1fr);
  overflow: hidden;
}
.offer-card__intro { background: var(--vis-navy-900); color: #fff; padding: 34px; }
.offer-card__status { align-items: center; display: flex; gap: 10px; }
.offer-card__status > span:last-child { color: var(--vis-on-dark-3); font-size: 12px; }
.offer-card__intro h2 { font-size: 32px; margin: 22px 0 10px; }
.offer-card__intro > p { color: var(--vis-on-dark-2); line-height: 1.55; }
.offer-card__tagline { color: #fff !important; font-size: 18px; font-weight: 700; }
.offer-card__price { align-items: baseline; display: flex; gap: 10px; margin-top: 28px; }
.offer-card__price strong { font-family: var(--vis-font-mono); font-size: 42px; }
.offer-card__price span { color: var(--vis-on-dark-3); font-size: 12px; }
.offer-card__price-note { font-size: 12px; margin-bottom: 20px; }
.offer-card__scope { padding: 34px; }
.offer-metrics { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.offer-metrics div { background: var(--vis-paper); border-radius: var(--vis-radius); padding: 16px 12px; }
.offer-metrics strong { color: var(--vis-cyan-deep); display: block; font-family: var(--vis-font-mono); font-size: 23px; }
.offer-metrics span { color: var(--vis-slate-500); font-size: 11px; line-height: 1.3; }
.offer-facts { display: grid; gap: 0; margin: 24px 0 0; }
.offer-facts div { align-items: start; border-top: 1px solid var(--vis-border); display: grid; gap: 12px; grid-template-columns: 140px 1fr; padding: 12px 0; }
.offer-facts dt { color: var(--vis-slate-500); font-size: 12px; font-weight: 800; }
.offer-facts dd { font-size: 14px; font-weight: 700; margin: 0; }
.offer-method { color: var(--vis-slate-600); line-height: 1.6; margin: 18px 0 0; }
.offer-card__lists { border-top: 1px solid var(--vis-border); display: grid; gap: 36px; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 34px; }
.offer-card__lists h3, .offer-card__faq h3 { margin-top: 0; }
.offer-card__lists .check-list { margin-top: 14px; }
.offer-limits--light { border-color: var(--vis-border); color: var(--vis-slate-600); grid-column: 1 / -1; margin: 0 34px 34px; }
.offer-card__faq { background: var(--vis-paper); display: grid; gap: 12px; grid-column: 1 / -1; padding: 34px; }
.card--accent { border-top: 3px solid var(--vis-coral); }
.geo-process { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.geo-process article { background: var(--vis-paper); border-radius: var(--vis-radius-lg); min-height: 230px; padding: 26px; }
.geo-process article > span { color: var(--vis-coral-deep); font-family: var(--vis-font-mono); font-weight: 800; }
.geo-process h3 { font-size: 20px; margin: 28px 0 10px; }
.geo-process p { color: var(--vis-slate-600); line-height: 1.6; }
.methodology-stack { display: grid; gap: 12px; }
.methodology-stack article { border: 1px solid rgba(255,255,255,.13); border-radius: var(--vis-radius); padding: 20px; }
.methodology-stack strong { color: var(--vis-cyan-bright); }
.methodology-stack p { color: var(--vis-on-dark-2); line-height: 1.55; margin: 5px 0 0; }
.cta-panel { align-items: center; background: var(--vis-navy-900); border-radius: var(--vis-radius-xl); color: #fff; display: flex; gap: 30px; justify-content: space-between; padding-bottom: 40px; padding-top: 40px; }
.cta-panel h2 { font-size: 34px; margin: 10px 0; }
.cta-panel p { color: var(--vis-on-dark-2); line-height: 1.6; margin: 0; max-width: 700px; }
.cta-panel--light { background: #fff; color: var(--vis-ink); }
.cta-panel--light p { color: var(--vis-slate-600); }
.evidence-list { display: grid; gap: 12px; margin-top: 26px; }
.evidence-list article { align-items: start; border-top: 1px solid rgba(255,255,255,.14); display: grid; gap: 16px; grid-template-columns: 80px 1fr; padding-top: 14px; }
.evidence-list article > span { color: var(--vis-cyan-bright); font-family: var(--vis-font-mono); font-size: 11px; text-transform: uppercase; }
.evidence-list strong { display: block; }
.evidence-list p { color: var(--vis-on-dark-2); line-height: 1.55; margin: 4px 0 0; }
.answer-trace blockquote { font-size: 18px; font-weight: 800; line-height: 1.45; margin: 24px 0 16px; }
.answer-trace > p { color: var(--vis-slate-600); line-height: 1.7; }
.answer-trace mark { background: var(--vis-coral-soft); color: var(--vis-coral-deep); padding: 2px 4px; }
.answer-trace dl { border-top: 1px solid var(--vis-border); margin: 22px 0 0; }
.answer-trace dl div { display: flex; gap: 12px; justify-content: space-between; padding: 12px 0 0; }
.answer-trace dt { color: var(--vis-slate-500); font-size: 12px; }
.answer-trace dd { font-size: 13px; font-weight: 800; margin: 0; text-align: right; }
.wizard__outcome { align-items: center; color: var(--vis-on-dark-2); display: flex; font-size: 13px; gap: 12px; margin-top: 18px; }
.wizard__outcome span { align-items: center; background: rgba(52,214,238,.13); border-radius: 50%; color: var(--vis-cyan-bright); display: flex; height: 26px; justify-content: center; width: 26px; }
.site-footer__inner { align-items: start; display: grid; gap: 40px; grid-template-columns: 1.4fr repeat(3, minmax(130px, .7fr)); padding-bottom: 26px; padding-top: 54px; }
.site-footer__brand p { line-height: 1.55; margin: 18px 0 0; max-width: 280px; }
.site-footer__column { display: grid; gap: 10px; }
.site-footer__column strong { color: #fff; font-size: 13px; margin-bottom: 4px; }
.site-footer__column a { font-size: 14px; min-height: 24px; }
.site-footer__column a:hover { color: var(--vis-cyan-bright); }
.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); font-size: 12px; grid-column: 1 / -1; padding-top: 22px; }
.offer-card { scroll-margin-top: 82px; }
.standard-hero__cta { margin-top: 24px; }

/* --- Interactive audit journey --- */
.audit-journey { overflow: hidden; }
.audit-journey__shell {
  background:
    radial-gradient(circle at 12% 0%, rgba(52,214,238,.14), transparent 30%),
    radial-gradient(circle at 90% 100%, rgba(255,122,89,.12), transparent 28%),
    var(--vis-navy-900);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--vis-radius-xl);
  box-shadow: var(--vis-shadow-hero);
  color: #fff;
  padding: 30px;
  position: relative;
}
.audit-journey__map { min-width: 0; }
.audit-journey__track { display: grid; gap: 14px; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.audit-journey__node-wrap { min-width: 0; position: relative; }
.audit-journey__node-wrap:not(:last-child)::after {
  animation: journeyFlow 2.4s linear infinite;
  background: linear-gradient(90deg, rgba(52,214,238,.16), rgba(52,214,238,.9), rgba(52,214,238,.16));
  background-size: 200% 100%;
  content: "";
  height: 2px;
  position: absolute;
  right: -14px;
  top: 50%;
  width: 14px;
  z-index: 2;
}
.audit-journey__node {
  appearance: none;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 15px;
  color: #fff;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  font: inherit;
  gap: 11px;
  height: 100%;
  min-height: 220px;
  padding: 17px;
  text-align: left;
  transition: border-color .22s ease, background .22s ease, box-shadow .22s ease, transform .22s ease;
  width: 100%;
}
.audit-journey__node:hover,
.audit-journey__node:focus-visible {
  background: rgba(255,255,255,.09);
  border-color: rgba(52,214,238,.72);
  outline: none;
  transform: translateY(-3px);
}
.audit-journey__node.is-active {
  background: linear-gradient(160deg, rgba(52,214,238,.18), rgba(255,255,255,.07));
  border-color: var(--vis-cyan-bright);
  box-shadow: 0 14px 34px rgba(0,0,0,.24), 0 0 0 1px rgba(52,214,238,.13) inset;
  transform: translateY(-4px);
}
.audit-journey__node--gate { border-color: rgba(255,122,89,.5); }
.audit-journey__node--measurement { border-color: rgba(52,214,238,.4); }
.audit-journey__node--result { border-color: rgba(18,161,80,.58); }
.audit-journey__node-meta { align-items: center; display: flex; gap: 8px; justify-content: space-between; width: 100%; }
.audit-journey__node-meta b {
  color: var(--vis-cyan-bright);
  font-family: var(--vis-font-mono);
  font-size: 13px;
}
.audit-journey__node-meta em {
  color: var(--vis-on-dark-3);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .045em;
  line-height: 1.25;
  text-align: right;
  text-transform: uppercase;
}
.audit-journey__node > strong { font-size: 16px; line-height: 1.25; }
.audit-journey__node > span:last-child { color: var(--vis-on-dark-2); font-size: 12px; line-height: 1.48; }
.audit-journey__branch {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: 150px minmax(260px, 440px) minmax(180px, 1fr);
  margin: 24px auto 0;
  max-width: 900px;
  position: relative;
}
.audit-journey__branch::before {
  background: linear-gradient(180deg, rgba(255,122,89,.85), rgba(255,122,89,.2));
  content: "";
  height: 24px;
  left: 225px;
  position: absolute;
  top: -24px;
  width: 2px;
}
.audit-journey__branch-label { color: var(--vis-coral); font-size: 12px; font-weight: 800; text-align: right; }
.audit-journey__branch small { color: var(--vis-on-dark-3); line-height: 1.45; }
.audit-journey__node--hold {
  background: rgba(255,122,89,.1);
  border-color: rgba(255,122,89,.55);
  min-height: 0;
  padding: 15px 17px;
}
.audit-journey__node--hold .audit-journey__node-meta b { color: var(--vis-coral); }
.audit-journey__detail {
  align-items: center;
  background: rgba(4,13,25,.62);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 15px;
  display: grid;
  gap: 10px 24px;
  grid-template-columns: minmax(160px, .72fr) minmax(240px, 1.25fr) minmax(230px, 1fr) auto;
  margin-top: 26px;
  padding: 22px 24px;
}
.audit-journey__detail > span { color: var(--vis-cyan-bright); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.audit-journey__detail > strong { font-size: 19px; line-height: 1.3; }
.audit-journey__detail > p { color: var(--vis-on-dark-2); font-size: 14px; line-height: 1.55; margin: 0; }
.audit-journey__outcome { border-left: 2px solid var(--vis-cyan-bright); display: grid; gap: 5px; padding-left: 14px; }
.audit-journey__outcome small { color: var(--vis-on-dark-3); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.audit-journey__outcome b { color: #fff; font-size: 13px; line-height: 1.4; }
.audit-journey__controls { display: flex; gap: 7px; justify-content: flex-end; }
.audit-journey__controls button {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  min-height: 38px;
  padding: 0 11px;
}
.audit-journey__controls button:hover,
.audit-journey__controls button:focus-visible { background: rgba(52,214,238,.15); border-color: var(--vis-cyan-bright); outline: none; }
.audit-journey__progress { background: rgba(255,255,255,.09); border-radius: 999px; grid-column: 1 / -1; height: 4px; overflow: hidden; }
.audit-journey__progress span { background: linear-gradient(90deg, var(--vis-cyan-bright), var(--vis-coral)); display: block; height: 100%; transition: width .35s ease; width: 12.5%; }
.checkout-gate-block { background: rgba(255,122,89,.12); border: 1px solid rgba(255,122,89,.42); border-radius: 12px; margin: 22px 0 18px; padding: 18px; }
.checkout-gate-block strong { color: var(--vis-coral); display: block; font-family: var(--vis-font-mono); font-size: 13px; }
.checkout-gate-block p { color: var(--vis-on-dark-2); margin: 10px 0 0; }

@keyframes journeyFlow { from { background-position: 100% 0; } to { background-position: -100% 0; } }

@media (min-width: 981px) {
  .hero__pill { margin-bottom: 18px; }
  .hero__title { font-size: 48px; line-height: 1.02; margin-bottom: 16px; max-width: 610px; }
  .hero__lead { font-size: 17px; line-height: 1.45; margin-bottom: 24px; }
  .hero__stats { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 26px; }
  .hero__stat span { font-size: 11px; line-height: 1.25; }
}

@media (max-width: 980px) {
  .site-header__inner { align-items: center; flex-direction: row; min-height: 66px; padding: 0 24px; }
  .mobile-menu-toggle {
    align-items: center;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 9px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    gap: 8px;
    min-height: 44px;
    padding: 0 12px;
  }
  .mobile-menu-toggle__icon { display: grid; gap: 4px; width: 16px; }
  .mobile-menu-toggle__icon i { background: currentColor; display: block; height: 2px; width: 100%; }
  .site-menu {
    align-items: stretch;
    background: var(--vis-navy-900);
    border-top: 1px solid rgba(255,255,255,.08);
    display: none;
    gap: 16px;
    left: 0;
    padding: 18px 24px 24px;
    position: absolute;
    right: 0;
    top: 66px;
  }
  .site-menu.is-open { display: grid; }
  .site-nav { align-items: stretch; display: grid; gap: 3px; overflow: visible; width: 100%; }
  .site-nav a, .nav-logout button { align-items: center; display: flex; min-height: 44px; width: 100%; }
  .locale-switcher { border-top: 1px solid rgba(255,255,255,.1); padding-top: 16px; }
  .locale-switcher a { align-items: center; display: inline-flex; min-height: 40px; padding: 8px 13px; }
  .section__head--split,
  .report-story__grid,
  .methodology-section__grid,
  .evidence-section__grid,
  .offer-card,
  .search-shift__grid { grid-template-columns: 1fr; }
  .audit-journey__track { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .audit-journey__node-wrap::after { display: none; }
  .audit-journey__node { min-height: 188px; }
  .audit-journey__detail { grid-template-columns: minmax(150px, .7fr) minmax(240px, 1.3fr); }
  .audit-journey__outcome, .audit-journey__controls { grid-row: 2; }
  .audit-journey__outcome { grid-column: 1; }
  .audit-journey__controls { grid-column: 2; }
  .deliverable-grid, .geo-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-card__intro { padding: 30px; }
  .offer-card__scope { padding: 30px; }
  .site-footer__inner { grid-template-columns: 1.4fr repeat(2, minmax(130px, .7fr)); }
  .site-footer__column:last-of-type { grid-column: 2; }
}

@media (max-width: 640px) {
  .site-header__inner { padding: 0 16px; }
  .vis-logo { gap: 8px; }
  .vis-logo__mark { width: 28px; }
  .vis-logo__word { font-size: 16px; }
  .section { padding-bottom: 64px; padding-top: 64px; }
  .standard-hero { padding: 58px 0; }
  .decision-grid, .deliverable-grid, .geo-process, .offer-card__lists { grid-template-columns: 1fr; }
  .search-shift__grid { grid-template-columns: 1fr; }
  .decision-card { padding: 24px; }
  .report-preview, .answer-trace { padding: 20px; }
  .report-preview__row { grid-template-columns: 96px 1fr 26px; }
  .proof-strip, .offer-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof-strip span { padding: 8px 5px; }
  .offer-card__intro, .offer-card__scope, .offer-card__lists, .offer-card__faq { padding: 24px; }
  .offer-card__price strong { font-size: 34px; }
  .offer-facts div { grid-template-columns: 1fr; gap: 5px; }
  .offer-limits--light { margin: 0 24px 24px; }
  .cta-panel { align-items: flex-start; flex-direction: column; margin-left: 16px; margin-right: 16px; padding: 26px; }
  .cta-panel .btn { width: 100%; }
  .machine-proof__footer { align-items: flex-start; flex-direction: column; }
  .machine-proof__footer .btn { width: 100%; }
  .site-footer__inner { grid-template-columns: 1fr 1fr; padding-left: 24px; padding-right: 24px; }
  .site-footer__brand, .site-footer__bottom { grid-column: 1 / -1; }
  .site-footer__column:last-of-type { grid-column: auto; }
  .search-evidence, .geo-bridge { padding: 24px; }
  .search-evidence__hero { align-items: start; grid-template-columns: 1fr; }
  .search-evidence__hero strong { font-size: 58px; }
  .click-study__row { grid-template-columns: 1fr 42px; }
  .click-study__row meter { grid-column: 1 / -1; grid-row: 2; }
  .search-evidence__secondary { align-items: start; grid-template-columns: 1fr; }
  .audit-journey__shell { padding: 20px; }
  .audit-journey__track { grid-template-columns: 1fr; }
  .audit-journey__node { min-height: 0; }
  .audit-journey__node-wrap:not(:last-child)::after {
    animation: journeyFlowVertical 2.4s linear infinite;
    background: linear-gradient(180deg, rgba(52,214,238,.16), rgba(52,214,238,.9), rgba(52,214,238,.16));
    background-size: 100% 200%;
    bottom: -14px;
    display: block;
    height: 14px;
    left: 50%;
    right: auto;
    top: auto;
    width: 2px;
  }
  .audit-journey__branch { grid-template-columns: 1fr; }
  .audit-journey__branch::before { left: 50%; }
  .audit-journey__branch-label { text-align: left; }
  .audit-journey__detail { align-items: start; grid-template-columns: 1fr; }
  .audit-journey__detail > *, .audit-journey__outcome, .audit-journey__controls { grid-column: 1; grid-row: auto; }
  .audit-journey__controls { justify-content: stretch; }
  .audit-journey__controls button { flex: 1; }
}

@keyframes journeyFlowVertical { from { background-position: 0 100%; } to { background-position: 0 -100%; } }

@media (prefers-reduced-motion: reduce) {
  .audit-journey__node-wrap::after { animation: none; }
  .audit-journey__node, .audit-journey__progress span { transition: none; }
}
