/* ============================================================
   RAGuard — Inner-page alignment layer
   Loaded AFTER styles.css + raguard.css. Brings inner-page
   heroes and body sections onto the homepage design system.
   No content/text changes — layout, structure, colour only.
   ============================================================ */

/* ---------- Page hero: glow halos + dot texture ---------- */
.page-hero {
  position: relative;
  padding: clamp(6rem, 9vw, 8.5rem) 0 clamp(3.25rem, 5.5vw, 5rem);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(1100px 540px at 80% -12%, rgba(99, 102, 241, .16), transparent 60%),
    radial-gradient(960px 600px at 8% 4%, rgba(11, 0, 206, .09), transparent 62%),
    linear-gradient(180deg, var(--brand-soft) 0%, rgba(238, 242, 255, 0) 62%);
}

/* dot-grid texture, masked so it fades out toward the edges */
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(rgba(11, 0, 206, .07) 1px, transparent 1.5px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(72% 68% at 50% 28%, #000 0%, transparent 76%);
  mask-image: radial-gradient(72% 68% at 50% 28%, #000 0%, transparent 76%);
  opacity: .65;
  pointer-events: none;
}

/* soft hairline that grounds the hero against the next section */
.page-hero::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-2) 18%, var(--line-2) 82%, transparent);
}

.page-hero .container,
.page-hero .container-narrow {
  position: relative;
  z-index: 1;
}

/* Eyebrow — match the homepage exactly */
.page-hero .label {
  background: var(--brand-soft);
  border-color: var(--brand-line);
  color: var(--brand);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: .14em;
}

.page-hero h1 {
  letter-spacing: -0.032em;
}

.page-hero > .container > p,
.page-hero .hero-lead {
  font-size: clamp(1.05rem, 1.3vw, 1.18rem);
  color: var(--fg-3);
  line-height: 1.6;
}

/* ---------- Compare table polish ---------- */
.compare-table-wrap {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  overflow-x: auto;
  background: #fff;
  box-shadow: var(--shadow-1);
}

.compare-table th {
  background: var(--bg-2);
  border-bottom: 1px solid var(--line-2);
  color: var(--fg-3);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.compare-table th.us {
  color: var(--brand);
  background: var(--brand-soft);
}

.compare-table td {
  border-bottom: 1px solid var(--line);
}

.compare-table tbody tr:last-child td {
  border-bottom: 0;
}

.compare-table td.us {
  background: var(--brand-soft);
}

.compare-table tr:hover td {
  background: var(--bg-2);
}

.compare-table tr:hover td.us {
  background: var(--accent-a08, rgba(11, 0, 206, .08));
}

/* ---------- FAQ polish ---------- */
#faq {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-1);
  overflow: hidden;
}

#faq .faq-item {
  border-bottom: 1px solid var(--line) !important;
  padding: 1.35rem 1.5rem !important;
  margin: 0;
  transition: background .15s;
}

#faq .faq-item:last-child {
  border-bottom: 0 !important;
}

#faq .faq-item:hover {
  background: var(--bg-2);
}

#faq .faq-item.open {
  background: var(--brand-soft);
}

#faq .faq-q::after {
  color: var(--brand) !important;
}

/* ============================================================
   Body-section alignment — legacy components → design system
   ============================================================ */

/* Use-case / comparison cards → match homepage .card */
.usecase-grid {
  gap: 20px;
}

.usecase-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
  box-shadow: var(--shadow-1);
  transition: border-color .2s, transform .2s, box-shadow .2s;
}

.usecase-card:hover,
.usecase-card.visible:hover {
  border-color: var(--brand-line);
  transform: translateY(-3px);
  box-shadow: var(--shadow-2);
}

.usecase-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: var(--brand-soft);
  color: var(--brand);
  margin-bottom: 1.1rem;
}

.usecase-icon svg {
  width: 22px;
  height: 22px;
  color: var(--brand);
}

.usecase-card h3 {
  font-size: 1.1rem;
}

.usecase-link {
  color: var(--brand);
  font-weight: 600;
}

/* Highlight / callout boxes → tint + brand border, no shadow (sits inside content) */
.highlight-box {
  background: var(--brand-soft);
  border: 1px solid var(--brand-line);
  border-radius: var(--radius);
  box-shadow: none;
}

.highlight-box.blue {
  background: var(--brand-soft);
  border-color: var(--brand-line);
}

/* Legacy green highlight boxes → indigo brand tint, matching their siblings
   (design system uses a single brand tint for highlight boxes). */
.highlight-box.green {
  background: var(--brand-soft);
  border-color: var(--brand-line);
}

.highlight-box h4 {
  color: var(--fg-1);
}

/* Info cards in 2-column content grids → design-system card resting */
.info-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
}

/* Roadmap / status badge → warning token, pill shape */
.roadmap-badge {
  background: var(--warning-soft);
  color: var(--warning);
  border: 1px solid rgba(217, 119, 6, .25);
  border-radius: 999px;
  padding: .38rem .85rem;
}

/* Body eyebrow labels (section .label outside hero) → match design system */
.section .label,
.section-sm .label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: .14em;
  background: var(--brand-soft);
  border-color: var(--brand-line);
  color: var(--brand);
}

/* Neutralise legacy label colour-variants (cyan/green/purple) → indigo eyebrow */
.label-blue,
.label-green,
.label-purple {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: var(--brand-line);
}

/* ---------- vs/ compare hero side-visual → indigo palette ---------- */
.compare-hero-visual {
  border-color: var(--line);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(circle at top right, rgba(11, 0, 206, .14), transparent 40%),
    radial-gradient(circle at bottom left, rgba(99, 102, 241, .14), transparent 34%),
    linear-gradient(180deg, #fff, var(--brand-soft));
  box-shadow: var(--shadow-2);
}

.compare-hero-visual::before {
  background: radial-gradient(circle, rgba(11, 0, 206, .18), transparent 65%);
}

.compare-hero-visual::after {
  background: radial-gradient(circle, rgba(99, 102, 241, .18), transparent 68%);
}

.compare-layer-card {
  border-radius: var(--radius);
  border-color: var(--line);
  box-shadow: var(--shadow-1);
}

.compare-layer-card.us {
  border-color: var(--brand-line);
  background: linear-gradient(180deg, var(--brand-soft), #fff);
}

.compare-layer-card strong {
  color: var(--fg-1);
}

.compare-chip {
  background: #fff;
  border-color: var(--brand-line);
  color: var(--fg-2);
}

.compare-visual-pill {
  border-radius: 8px;
  border-color: var(--line);
  background: #fff;
  color: var(--fg-3);
}

.compare-vs-kicker {
  background: var(--brand-soft);
  border-color: var(--brand-line);
  color: var(--brand);
}

/* ---------- Uniform indigo icon tiles ---------- */
/* Override legacy multi-colour inline tints so icon tiles match the
   homepage's uniform indigo treatment. */
.cap-icon {
  background: var(--brand-soft) !important;
  color: var(--brand);
}

.cap-icon svg {
  color: var(--brand);
}

.lifecycle-num {
  background: var(--brand-soft) !important;
  color: var(--brand) !important;
}

/* Step / evidence icon glyphs → indigo */
.zkp-step .icon {
  color: var(--brand);
}

