/* RBlock Laboratories — About us. Builds on site.css tokens; fallbacks keep it readable on its own. */

.ab-kicker { font-stretch: 88%; font-size: 0.8125rem; font-weight: 660; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 14px; display: inline-flex; align-items: center; gap: 10px; }
.ab-kicker::before { content: ""; width: 10px; height: 10px; background: currentColor; }
.ab-kicker--blue { color: var(--blue, #2E2BFF); }
.ab-nowrap { white-space: nowrap; }

/* hero */
.ab-hero h1 { font-size: clamp(2rem, 6.4vw, 4.5rem); max-width: 16ch; }
.ab-hero .lead { max-width: 62ch; }
.ab-pillars-wrap { margin-top: var(--space-5, 64px); }
.ab-pillars-lead { font-stretch: 88%; font-size: 0.8125rem; font-weight: 660; letter-spacing: .12em; text-transform: uppercase; color: #dcdcff; margin: 0 0 14px; }
.ab-pillars { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid rgba(255,255,255,.45); }
.ab-pillars li { padding: 22px 28px 0 0; max-width: none; }
.ab-pillars li + li { padding-left: 28px; border-left: 2px solid rgba(255,255,255,.25); }
.ab-pillars h2 { font-stretch: 125%; font-weight: 760; font-size: clamp(1.375rem, 2.4vw, 1.875rem); line-height: 1.1; margin: 0 0 10px; display: flex; gap: 12px; align-items: baseline; }
.ab-pillars h2::before { content: ""; flex: none; width: 12px; height: 12px; background: var(--white, #fff); }
.ab-pillars p { color: #ececff; font-size: 1.0625rem; line-height: 1.5; }

/* sections */
.ab-section { padding: var(--space-6, 96px) 0; }
.ab-section h2 { font-size: clamp(1.875rem, 3.6vw, 3rem); font-stretch: 125%; font-weight: 760; line-height: 1.06; margin-bottom: var(--space-2, 20px); max-width: 22ch; }
.ab-section-lead { font-size: 1.1875rem; line-height: 1.55; max-width: 64ch; color: var(--steel, #50566F); margin-bottom: var(--space-4, 48px); }
.ab-prose p { font-size: 1.125rem; line-height: 1.6; max-width: 62ch; }
.ab-prose p + p { margin-top: 16px; }
.ab-two { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 5vw, 80px); align-items: start; }

/* the problem: insights */
.ab-insights { list-style: none; margin: 0; padding: 0; border-top: 3px solid var(--night, #0A0C3D); }
.ab-ins { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 0 24px; padding: 26px 0; border-bottom: 2px solid var(--mist, #DFE2EE); max-width: none; }
.ab-ins-n { font-stretch: 125%; font-weight: 760; font-size: 1.75rem; line-height: 1; color: var(--blue, #2E2BFF); font-variant-numeric: tabular-nums; }
.ab-ins h3 { font-stretch: 112%; font-weight: 720; font-size: 1.375rem; line-height: 1.2; margin-bottom: 8px; }
.ab-ins p { font-size: 1.0625rem; line-height: 1.55; max-width: 70ch; }
.ab-src { margin-top: 8px; font-stretch: 88%; font-size: var(--fs-note, .9375rem); color: var(--steel, #50566F); }
.ab-src a { color: var(--steel, #50566F); }
.ab-src a:hover { color: var(--blue, #2E2BFF); }

/* the problem: cases table */
.ab-cases-title { margin-top: var(--space-5, 64px); margin-bottom: 14px; font-stretch: 100%; font-size: 0.8125rem; font-weight: 660; letter-spacing: .12em; text-transform: uppercase; color: var(--steel, #50566F); }
.ab-cases-wrap { overflow-x: auto; background: var(--white, #fff); border: 2px solid var(--mist, #DFE2EE); }
.ab-cases { width: 100%; border-collapse: collapse; font-size: 1rem; line-height: 1.45; }
.ab-cases th, .ab-cases td { text-align: left; vertical-align: top; padding: 14px 16px; border-top: 2px solid var(--mist, #DFE2EE); }
.ab-cases thead th { border-top: 0; border-bottom: 3px solid var(--night, #0A0C3D); font-stretch: 88%; font-size: 0.8125rem; font-weight: 660; letter-spacing: .08em; text-transform: uppercase; color: var(--steel, #50566F); }
.ab-cases tbody th { font-weight: 680; white-space: nowrap; }
.ab-c-date { font-stretch: 88%; font-variant-numeric: tabular-nums; color: var(--steel, #50566F); white-space: nowrap; }
.ab-c-status { font-stretch: 88%; color: var(--steel, #50566F); min-width: 180px; }
.ab-c-src { font-stretch: 88%; font-size: 0.875rem; color: var(--steel, #50566F); margin-left: 4px; white-space: nowrap; }
.ab-cases-note { margin-top: 14px; font-stretch: 88%; font-size: var(--fs-note, .9375rem); color: var(--steel, #50566F); }

/* why private inference (Night) */
.ab-answer { background: var(--night, #0A0C3D); color: var(--white, #fff); }
.ab-answer-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.ab-answer h2 { max-width: 14ch; }
.ab-answer p { font-size: 1.25rem; line-height: 1.55; color: var(--haze, #B9BDF7); max-width: 58ch; }
.ab-actions { margin-top: var(--space-3, 28px); display: flex; flex-wrap: wrap; gap: 12px; }
.ab-answer .btn--solid { background: #8F8DFF; border-color: #8F8DFF; color: var(--night, #0A0C3D); }
.ab-answer .btn--line { color: var(--white, #fff); border-color: rgba(255,255,255,.7); }

/* who we are / where we are going */
.ab-who { background: var(--white, #fff); }
.ab-ahead { background: var(--white, #fff); border-top: 2px solid var(--mist, #DFE2EE); }

/* how we operate: square markers, numbered by the list */
.ab-steps { list-style: none; margin: var(--space-4, 40px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; background: var(--mist, #DFE2EE); border: 2px solid var(--mist, #DFE2EE); counter-reset: ab-step; }
.ab-steps li { background: var(--white, #fff); padding: clamp(22px, 2.6vw, 32px); counter-increment: ab-step; max-width: none; }
.ab-steps li::before { content: counter(ab-step); display: grid; place-items: center; width: 34px; height: 34px; background: var(--blue, #2E2BFF); color: var(--white, #fff); font-stretch: 125%; font-weight: 760; font-size: 1rem; margin-bottom: 18px; }
.ab-steps h3 { font-stretch: 108%; font-weight: 700; font-size: 1.1875rem; line-height: 1.25; margin-bottom: 10px; }
.ab-steps p { font-size: 1rem; line-height: 1.55; color: var(--steel, #50566F); }

/* founding team */
.ab-team h2 { margin-bottom: var(--space-3, 32px); }
.ab-member { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 4vw, 64px); align-items: center; border-top: 3px solid var(--night, #0A0C3D); padding-top: var(--space-3, 32px); }
.ab-member-pic img { display: block; width: 100%; height: auto; }
.ab-member-text h3 { font-stretch: 125%; font-weight: 760; font-size: clamp(1.5rem, 2.6vw, 2.125rem); line-height: 1.1; }
.ab-role { font-stretch: 88%; font-size: 0.8125rem; font-weight: 660; letter-spacing: .12em; text-transform: uppercase; color: var(--blue, #2E2BFF); margin: 8px 0 16px; }
.ab-member-text p:not(.ab-role) { font-size: 1.0625rem; line-height: 1.6; max-width: 58ch; }
.ab-member-links { margin-top: 16px; font-weight: 620; }
.ab-member-links a { color: var(--blue, #2E2BFF); }

/* "who we are" band on the home page */
.ab-band { background: var(--white, #fff); border-top: 2px solid var(--mist, #DFE2EE); padding: var(--space-5, 64px) 0; }
.ab-band h2 { font-size: clamp(1.5rem, 2.8vw, 2.25rem); font-stretch: 125%; font-weight: 760; line-height: 1.12; max-width: 30ch; }
.ab-band .ab-kicker { color: var(--blue, #2E2BFF); }
.ab-band p:not(.ab-kicker) { margin: 14px 0 22px; font-size: 1.0625rem; color: var(--steel, #50566F); max-width: 64ch; }

@media (max-width: 1020px) {
  .ab-two, .ab-answer-in, .ab-member { grid-template-columns: minmax(0, 1fr); }
  .ab-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .ab-pillars { grid-template-columns: minmax(0, 1fr); }
  .ab-pillars li, .ab-pillars li + li { padding: 18px 0; border-left: 0; border-bottom: 2px solid rgba(255,255,255,.25); }
  .ab-pillars li:last-child { border-bottom: 0; }
  .ab-steps { grid-template-columns: minmax(0, 1fr); }
  /* cases: stack each row as a card instead of a wide table */
  .ab-cases-wrap { border: 0; background: transparent; overflow: visible; }
  .ab-cases thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ab-cases, .ab-cases tbody, .ab-cases tr, .ab-cases th, .ab-cases td { display: block; width: auto; }
  .ab-cases tr { background: var(--white, #fff); border: 2px solid var(--mist, #DFE2EE); margin-bottom: 10px; padding: 14px 16px; }
  .ab-cases th, .ab-cases td { border: 0; padding: 0; }
  .ab-cases tbody th { display: block; margin-top: 2px; }
  .ab-c-date { display: inline; }
  .ab-cases td:nth-child(3) { margin-top: 6px; }
  .ab-c-status { margin-top: 6px; min-width: 0; }
}
@media (max-width: 640px) {
  .ab-section { padding: var(--space-5, 64px) 0; }
  .ab-ins { grid-template-columns: 44px minmax(0, 1fr); gap: 0 12px; }
  .ab-ins-n { font-size: 1.375rem; }
}
