/* ============================================================================
   FUD EDITORIAL — FITCO Design System v4 (.fud-v1 class API)
   Version 4.1.0 | 2026-07-07 | Split from pravaha.css (v70 -> v71 breakaway)
   The complete design layer for Knowledge Centre content:
   - .fud-v1 editorial layer (ISO/ASTM standard pages, guides)
   - .fitco-testing-home / .fitco-standards-home index scopes
   Requires css/pravaha-tokens.css (loaded globally by the theme).
   Enqueued on Knowledge Centre and Testing Solutions routes, and on any
   singular page whose content carries the fud-v1 marker.
   ============================================================================ */

/* Knowledge Centre content (WP-stored markup) uses these classes.
   The API is honored; the design is Pravaha. */

.fud-v1 *,
.fud-v1 *::before,
.fud-v1 *::after { box-sizing: border-box; margin: 0; padding: 0; }

.fud-v1 {
  font-family: var(--p-font-text);
  font-size: var(--p-text-base);
  line-height: 1.65;
  color: var(--p-text);
  background: linear-gradient(180deg, var(--p-white) 0%, var(--p-paper) 100%);
  -webkit-font-smoothing: antialiased;
}

.fud-v1 :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--p-font-display);
  font-weight: var(--p-bold);
  line-height: 1.18;
  letter-spacing: -0.015em;
  color: var(--p-ink);
}
.fud-v1 h1 { font-size: var(--p-text-5xl); font-weight: var(--p-extrabold); }
.fud-v1 h2 { font-size: var(--p-text-3xl); }
.fud-v1 h3 { font-size: var(--p-text-xl); }
.fud-v1 h4 { font-size: var(--p-text-lg); }
.fud-v1 p { color: var(--p-text); }
.fud-v1 a { color: var(--p-text); text-decoration: underline; text-underline-offset: 2px; }
.fud-v1 a:hover { color: var(--p-ink-2); }
.fud-v1 img { max-width: 100%; display: block; }
.fud-v1 .muted { color: var(--p-text-muted); }
/* flat brand blue — gold text and gradient-clipped text retired 2026-07-09 */
.fud-v1 .text-accent { color: var(--p-blue-700); }
.fud-v1 .text-gradient {
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  color: var(--p-blue-700);
}

.fud-v1 .container { width: min(var(--p-container), 100% - 3rem); margin-inline: auto; }
.fud-v1 section, .fud-v1 .fud-section, .fud-v1 .section { padding-block: var(--p-space-16); }

/* — Standard page header (hero) — */
.fud-v1 .standard-header {
  padding: var(--p-space-16) 0 var(--p-space-12);
  background: linear-gradient(135deg, var(--p-blue-50) 0%, var(--p-paper) 62%, var(--p-paper) 100%);
  border-bottom: 1px solid var(--p-line);
}
.fud-v1 .standard-tag,
.fud-v1 .tag, .fud-v1 .pill, .fud-v1 .badge, .fud-v1 .hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.75rem;
  border-radius: var(--p-radius-full);
  font-size: var(--p-text-sm);
  font-weight: var(--p-semibold);
  background: var(--p-blue-50);
  color: var(--p-blue-700);
  border: 1px solid var(--p-blue-200);
  margin-bottom: var(--p-space-4);
}
.fud-v1 .standard-title { margin: var(--p-space-2) 0 var(--p-space-4); }
.fud-v1 .standard-lead {
  font-size: var(--p-text-lg);
  color: var(--p-text-muted);
  max-width: 68ch;
}
.fud-v1 .standard-meta,
.fud-v1 .meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--p-space-3) var(--p-space-6);
  margin-top: var(--p-space-6);
}
.fud-v1 .meta-item {
  display: inline-flex;
  align-items: center;
  gap: var(--p-space-2);
  font-size: var(--p-text-sm);
  font-weight: var(--p-semibold);
  color: var(--p-ink-2);
  background: var(--p-white);
  border: 1px solid var(--p-line);
  border-radius: var(--p-radius-full);
  padding: 0.375rem 0.875rem;
  box-shadow: var(--p-shadow-sm);
}
.fud-v1 .meta-icon { color: var(--p-blue-600); display: inline-flex; }
.fud-v1 .standard-image-wrapper {
  margin-top: var(--p-space-10);
  border-radius: var(--p-radius-lg);
  overflow: hidden;
  border: 1px solid var(--p-line);
  box-shadow: var(--p-shadow);
  background: var(--p-white);
}

/* — Standard layout: sticky TOC + content — */
.fud-v1 .standard-layout {
  display: grid;
  gap: var(--p-space-10);
  padding: var(--p-space-14) 0 var(--p-space-24);
  align-items: start;
}
@media (min-width: 992px) {
  .fud-v1 .standard-layout { grid-template-columns: 264px minmax(0, 1fr); }
}
.fud-v1 .standard-toc, .fud-v1 .toc {
  position: sticky;
  top: var(--p-header-offset);
  background: var(--p-white);
  border: 1px solid var(--p-line);
  border-radius: var(--p-radius-lg);
  padding: var(--p-space-6);
  box-shadow: var(--p-shadow-sm);
}
.fud-v1 .standard-toc a {
  display: block;
  padding: var(--p-space-2) var(--p-space-3);
  border-radius: var(--p-radius-sm);
  font-size: var(--p-text-sm);
  color: var(--p-text-muted);
  border-left: 2px solid transparent;
}
.fud-v1 .standard-toc a:hover {
  color: var(--p-primary-strong);
  background: var(--p-blue-50);
  border-left-color: var(--p-blue-400);
}
.fud-v1 .standard-content { display: grid; gap: var(--p-space-12); min-width: 0; }
.fud-v1 .standard-item { scroll-margin-top: var(--p-header-offset); }
.fud-v1 .standard-content > * + h2 { margin-top: var(--p-space-6); }

/* — Bento grid — */
.fud-v1 .bento-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: minmax(280px, auto);
  gap: var(--p-space-6);
}
.fud-v1 .col-span-3  { grid-column: span 3; }
.fud-v1 .col-span-4  { grid-column: span 4; }
.fud-v1 .col-span-6  { grid-column: span 6; }
.fud-v1 .col-span-8  { grid-column: span 8; }
.fud-v1 .col-span-12 { grid-column: span 12; }
.fud-v1 .row-span-2  { grid-row: span 2; }
@media (max-width: 991px) {
  .fud-v1 .bento-grid { grid-template-columns: repeat(6, 1fr); grid-auto-rows: auto; }
  .fud-v1 :where(.col-span-3, .col-span-4) { grid-column: span 3; }
  .fud-v1 :where(.col-span-6, .col-span-8, .col-span-12) { grid-column: span 6; }
}
@media (max-width: 600px) {
  .fud-v1 .bento-grid { grid-template-columns: 1fr; }
  .fud-v1 :where(.col-span-3, .col-span-4, .col-span-6, .col-span-8, .col-span-12) { grid-column: auto; }
}

.fud-v1 .bento-card, .fud-v1 .card, .fud-v1 .card-elevated, .fud-v1 .stat-card, .fud-v1 .span-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--p-white);
  border: 1px solid var(--p-line);
  border-radius: var(--p-radius-lg);
  padding: var(--p-space-8);
  box-shadow: var(--p-shadow-sm);
  overflow: hidden;
  transition: box-shadow var(--p-normal) var(--p-ease),
              border-color var(--p-normal) var(--p-ease),
              transform var(--p-normal) var(--p-ease);
}
.fud-v1 :where(.bento-card, .card, .card-elevated):hover {
  border-color: var(--p-blue-200);
  box-shadow: var(--p-shadow);
  transform: translateY(-2px);
}
.fud-v1 .card-label {
  font-size: var(--p-text-xs);
  font-weight: var(--p-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--p-blue-700);
  margin-bottom: var(--p-space-2);
}
.fud-v1 .card-title { font-size: var(--p-text-xl); margin-bottom: var(--p-space-3); }
.fud-v1 :where(.card-desc, .card-description) { color: var(--p-text-muted); font-size: var(--p-text-sm); }
.fud-v1 .card-content { display: grid; gap: var(--p-space-3); }
.fud-v1 .card-arrow {
  margin-top: auto;
  padding-top: var(--p-space-4);
  color: var(--p-primary);
  font-weight: var(--p-semibold);
  display: inline-flex;
  align-items: center;
  gap: var(--p-space-2);
}

/* glow-blob: retired as glow; now a quiet dawn wash */
.fud-v1 .glow-blob {
  position: absolute;
  inset: auto -20% -40% auto;
  width: 60%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(closest-side, var(--p-blue-50), transparent 70%);
  opacity: 0.6;
  pointer-events: none;
}

/* — Stats — */
.fud-v1 .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--p-space-6); }
@media (max-width: 600px) { .fud-v1 .stats-grid { grid-template-columns: 1fr; } }
.fud-v1 .stat-value {
  font-family: var(--p-font-display);
  font-size: var(--p-text-4xl);
  font-weight: var(--p-extrabold);
  color: var(--p-blue-700);
  line-height: 1;
}
.fud-v1 .stat-label { margin-top: var(--p-space-2); font-size: var(--p-text-sm); color: var(--p-text-muted); }

/* — Tables — */
.fud-v1 :where(.standard-table, .specs-table, .specs table) {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--p-white);
  border: 1px solid var(--p-line);
  border-radius: var(--p-radius-lg);
  overflow: hidden;
  font-size: var(--p-text-sm);
}
.fud-v1 :where(.standard-table, .specs-table) th {
  background: var(--p-blue-800);
  color: var(--p-white);
  font-family: var(--p-font-display);
  font-weight: var(--p-bold);
  text-align: left;
  padding: var(--p-space-3) var(--p-space-4);
}
.fud-v1 :where(.standard-table, .specs-table) td {
  padding: var(--p-space-3) var(--p-space-4);
  border-top: 1px solid var(--p-line);
  color: var(--p-ink-2);
}
.fud-v1 :where(.standard-table, .specs-table) tbody tr:nth-child(even) { background: var(--p-blue-50); }
.fud-v1 :where(.standard-table, .specs-table) tbody tr:hover { background: var(--p-blue-50); }
.fud-v1 .standard-table-wrapper { overflow-x: auto; border-radius: var(--p-radius-lg); }

/* — Callouts & tips — */
.fud-v1 :where(.callout, .standard-callout, .tip) {
  display: grid;
  gap: var(--p-space-2);
  padding: var(--p-space-5) var(--p-space-6);
  border-radius: var(--p-radius);
  border: 1px solid var(--p-line);
  border-left: 3px solid var(--p-blue-500);
  background: var(--p-blue-50);
}
.fud-v1 .callout-title { font-weight: var(--p-bold); color: var(--p-ink); }
.fud-v1 .callout-info    { border-left-color: var(--p-blue-500);  background: var(--p-blue-50); }
.fud-v1 .callout-success { border-left-color: var(--p-blue-500); background: var(--p-blue-50); }
.fud-v1 .callout-warning { border-left-color: var(--p-gold-600); background: var(--p-gold-50); }
.fud-v1 .tip { border-left-color: var(--p-gold-400); background: var(--p-gold-50); }

/* — Buttons — */
.fud-v1 :where(.btn, .btn-primary, .btn-secondary, .btn-outline) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--p-space-2);
  padding: 0.75rem 1.5rem;
  border: 1px solid transparent;
  border-radius: var(--p-radius);
  font-weight: var(--p-semibold);
  font-size: var(--p-text-base);
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
  transition: background-color var(--p-fast) var(--p-ease),
              border-color var(--p-fast) var(--p-ease),
              transform var(--p-fast) var(--p-ease);
}
.fud-v1 :where(.btn, .btn-primary) { background: var(--p-primary); color: var(--p-white); }
.fud-v1 :where(.btn, .btn-primary):hover { background: var(--p-primary-strong); transform: translateY(-1px); color: var(--p-white); }
.fud-v1 .btn-secondary { background: var(--p-white); color: var(--p-primary-strong); border-color: var(--p-line-strong); }
.fud-v1 .btn-secondary:hover { border-color: var(--p-blue-400); background: var(--p-blue-50); }
.fud-v1 .btn-outline { background: transparent; color: var(--p-primary-strong); border-color: var(--p-blue-300); }
.fud-v1 .btn-outline:hover { background: var(--p-blue-50); }

/* — Section headers, breadcrumb, hero family, CTA — */
.fud-v1 .section-header { max-width: 760px; margin: 0 auto var(--p-space-10); text-align: center; }
.fud-v1 .section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--p-space-2);
  font-size: var(--p-text-sm);
  font-weight: var(--p-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--p-primary);
  margin-bottom: var(--p-space-3);
}
.fud-v1 .section-title { font-size: var(--p-text-3xl); margin-bottom: var(--p-space-3); }
.fud-v1 .section-description { color: var(--p-text-muted); }

.fud-v1 .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--p-space-2);
  font-size: var(--p-text-sm);
  color: var(--p-text-muted);
  margin-bottom: var(--p-space-6);
}
.fud-v1 .breadcrumb-separator { color: var(--p-line-strong); }

.fud-v1 .hero { padding: var(--p-space-20) 0 var(--p-space-14); }
.fud-v1 .hero-grid {
  display: grid;
  gap: var(--p-space-10);
  align-items: center;
}
@media (min-width: 900px) { .fud-v1 .hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); } }
.fud-v1 .hero-title { font-size: var(--p-text-5xl); }
.fud-v1 :where(.hero-subtitle, .hero-desc) { font-size: var(--p-text-lg); color: var(--p-text-muted); margin-top: var(--p-space-4); max-width: 62ch; }
.fud-v1 .hero-actions, .fud-v1 .cta-actions, .fud-v1 .cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--p-space-4);
  margin-top: var(--p-space-8);
}
.fud-v1 :where(.hero-media, .header-media) {
  border-radius: var(--p-radius-lg);
  overflow: hidden;
  border: 1px solid var(--p-line);
  box-shadow: var(--p-shadow);
  background: var(--p-white);
}
.fud-v1 .hero-bg { position: absolute; inset: 0; pointer-events: none; opacity: 0.5; }

.fud-v1 :where(.cta-section, .cta-gradient) {
  background: linear-gradient(135deg, var(--p-blue-900) 0%, var(--p-blue-800) 100%);
  color: var(--p-white);
  border-radius: 0;
}
.fud-v1 .cta-box {
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
  padding: var(--p-space-8) 0;
}
/* :is() (not :where()) on the subjects — the base rules `.fud-v1 p` and
   `.fud-v1 .btn-outline` carry real specificity and were painting ink-on-navy
   inside this dark band (invisible text on ISO/ASTM pages). */
.fud-v1 :where(.cta-section, .cta-gradient) :is(.cta-title, h2, h3) { color: var(--p-white); }
.fud-v1 :where(.cta-section, .cta-gradient) :is(.cta-description, p) { color: var(--p-blue-200); }
.fud-v1 :where(.cta-section, .cta-gradient) .cta-actions { justify-content: center; }
.fud-v1 :where(.cta-section, .cta-gradient) :is(.btn, .btn-primary):not(.btn-outline, .btn-secondary) { background: var(--p-white); color: var(--p-blue-800); }
.fud-v1 :where(.cta-section, .cta-gradient) :is(.btn-secondary, .btn-outline) {
  background: transparent;
  color: var(--p-white);
  border-color: rgba(255, 255, 255, 0.45);
}
.fud-v1 :where(.cta-section, .cta-gradient) :is(.btn-secondary, .btn-outline):hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--p-white);
  border-color: var(--p-white);
}

/* — Misc API — */
.fud-v1 .grid { display: grid; gap: var(--p-space-6); }
.fud-v1 .grid-2 { display: grid; gap: var(--p-space-6); grid-template-columns: repeat(2, 1fr); }
.fud-v1 .grid-3 { display: grid; gap: var(--p-space-6); grid-template-columns: repeat(3, 1fr); }
.fud-v1 .grid-4 { display: grid; gap: var(--p-space-6); grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .fud-v1 :where(.grid-3, .grid-4) { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .fud-v1 :where(.grid-2, .grid-3, .grid-4) { grid-template-columns: 1fr; } }
.fud-v1 .span-grid { display: grid; gap: var(--p-space-6); grid-template-columns: repeat(2, 1fr); }
@media (max-width: 700px) { .fud-v1 .span-grid { grid-template-columns: 1fr; } }
.fud-v1 :where(.list-container, .list-section) ul { padding-left: 1.2rem; display: grid; gap: var(--p-space-2); color: var(--p-text-muted); }
.fud-v1 .header-content { max-width: 760px; }
.fud-v1 .reading-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0;
  background: var(--p-blue-500);
  z-index: 999;
}


/* — Responsive column aliases (legacy md: prefix) — */
.fud-v1 .md\:col-span-4 { grid-column: span 4; }
.fud-v1 .md\:col-span-8 { grid-column: span 8; }
@media (max-width: 991px) {
  .fud-v1 :where(.md\:col-span-4) { grid-column: span 3; }
  .fud-v1 :where(.md\:col-span-8) { grid-column: span 6; }
}
@media (max-width: 600px) {
  .fud-v1 :where(.md\:col-span-4, .md\:col-span-8) { grid-column: auto; }
}

/* — Hero copy block — */
.fud-v1 .hero-copy { max-width: 640px; }
.fud-v1 .hero-copy .lead { font-size: var(--p-text-lg); color: var(--p-text-muted); margin: var(--p-space-4) 0 var(--p-space-8); }
.fud-v1 .hero-copy .actions { display: flex; gap: var(--p-space-4); flex-wrap: wrap; }

/* — Related-standards bento section (3-up, natural heights) — */
.fud-v1 .bento-section { padding: var(--p-space-16) 0; }
.fud-v1 .bento-section .section-header { margin-bottom: var(--p-space-10); }
.fud-v1 .bento-section .bento-grid {
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: auto;
  gap: var(--p-space-5);
}
.fud-v1 .bento-section .bento-grid .col-span-4 { grid-column: span 1; }
@media (max-width: 991px) { .fud-v1 .bento-section .bento-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fud-v1 .bento-section .bento-grid { grid-template-columns: 1fr; } }

/* — Ordered lists: plain + stepped procedures — */
.fud-v1 .standard-content ol:not(.stepped) {
  list-style: none;
  counter-reset: p-ol;
  padding: 0;
  display: grid;
  gap: var(--p-space-2);
}
.fud-v1 .standard-content ol:not(.stepped) li {
  counter-increment: p-ol;
  position: relative;
  padding-left: var(--p-space-8);
  line-height: 1.7;
  color: var(--p-text-muted);
}
.fud-v1 .standard-content ol:not(.stepped) li::before {
  content: counter(p-ol) ".";
  position: absolute;
  left: 0;
  color: var(--p-blue-700);
  font-weight: var(--p-semibold);
}
.fud-v1 .standard-content ol.stepped {
  list-style: none;
  counter-reset: p-step;
  padding: 0;
  display: grid;
  gap: var(--p-space-3);
}
.fud-v1 .standard-content ol.stepped li {
  counter-increment: p-step;
  display: flex;
  gap: var(--p-space-4);
  align-items: flex-start;
  padding: var(--p-space-4) var(--p-space-5);
  border: 1px solid var(--p-line);
  border-radius: var(--p-radius);
  background: var(--p-white);
  line-height: 1.7;
  color: var(--p-text-muted);
}
.fud-v1 .standard-content ol.stepped li::before {
  content: counter(p-step);
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--p-blue-700);
  color: var(--p-white);
  font-size: var(--p-text-xs);
  font-weight: var(--p-bold);
  display: flex;
  align-items: center;
  justify-content: center;
}
.fud-v1 .standard-content ol.stepped li:hover { border-color: var(--p-blue-200); }

/* — Span-card key/value rows — */
.fud-v1 .span-card .th {
  font-family: var(--p-font-display);
  font-weight: var(--p-bold);
  color: var(--p-ink);
  margin-bottom: var(--p-space-2);
}
.fud-v1 .span-card .rows { display: flex; align-items: center; gap: var(--p-space-2); flex-wrap: wrap; }
.fud-v1 .span-card .val { font-size: var(--p-text-sm); font-weight: var(--p-semibold); color: var(--p-ink-2); }
.fud-v1 .note { font-size: var(--p-text-sm); color: var(--p-text-muted); }

/* — Standard-item directory rows (used on standards index pages) — */
.fud-v1 .standard-item { display: flex; gap: var(--p-space-5); align-items: flex-start; }
.fud-v1 .standard-item .item-content { flex: 1; min-width: 0; }
.fud-v1 .standard-item .item-code {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.3rem 0.65rem;
  border-radius: var(--p-radius-full);
  background: var(--p-blue-50);
  color: var(--p-blue-700);
  border: 1px solid var(--p-blue-200);
  font-size: var(--p-text-xs);
  font-weight: var(--p-bold);
  letter-spacing: 0.04em;
}
.fud-v1 .standard-item .item-title { font-size: var(--p-text-xl); margin: var(--p-space-3) 0 var(--p-space-2); }
.fud-v1 .item-note { font-size: var(--p-text-sm); color: var(--p-text-muted); max-width: 60ch; }
.fud-v1 .standard-item .item-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--p-space-2);
  padding: 0.7rem 1.1rem;
  border-radius: var(--p-radius-full);
  border: 1px solid var(--p-line-strong);
  background: var(--p-white);
  color: var(--p-primary-strong);
  font-size: var(--p-text-sm);
  font-weight: var(--p-bold);
  transition: background-color var(--p-fast) var(--p-ease), border-color var(--p-fast) var(--p-ease);
}
.fud-v1 .standard-item:hover .item-action { background: var(--p-blue-50); border-color: var(--p-blue-400); }

/* ════════ 06b · KNOWLEDGE HOME SCOPES (.fitco-testing-home / .fitco-standards-home) ════════ */
/* Index/landing pages for Testing Solutions and ASTM/ISO standards keep their
   class API; visual language is Pravaha. */

:where(.fitco-testing-home, .fitco-standards-home) .standard-header {
  padding: var(--p-space-16) 0 var(--p-space-14);
  background: linear-gradient(135deg, var(--p-blue-50) 0%, var(--p-paper) 62%, var(--p-paper) 100%);
  border-bottom: 1px solid var(--p-line);
}
.fitco-standards-home .standard-header .container,
.fitco-testing-home .hero-layout {
  display: grid;
  gap: clamp(28px, 4vw, 48px);
  align-items: end;
}
@media (min-width: 900px) {
  .fitco-standards-home .standard-header .container,
  .fitco-testing-home .hero-layout { grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr); }
}
:where(.fitco-testing-home, .fitco-standards-home) .header-content,
.fitco-testing-home .hero-copy { max-width: 760px; }
.fitco-standards-home .standard-title { max-width: 14ch; }
.fitco-standards-home .standard-lead { max-width: 54ch; }

:where(.fitco-testing-home, .fitco-standards-home) :where(.standards-home-actions) {
  display: flex;
  gap: var(--p-space-3);
  flex-wrap: wrap;
  margin-top: var(--p-space-8);
}
:where(.fitco-testing-home, .fitco-standards-home) .hero-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--p-space-2);
  padding: 0.75rem 1.1rem;
  border-radius: var(--p-radius-full);
  background: var(--p-white);
  border: 1px solid var(--p-line-strong);
  color: var(--p-primary-strong);
  font-size: var(--p-text-sm);
  font-weight: var(--p-semibold);
  transition: border-color var(--p-fast) var(--p-ease), background-color var(--p-fast) var(--p-ease);
}
:where(.fitco-testing-home, .fitco-standards-home) .hero-chip:hover {
  border-color: var(--p-blue-400);
  background: var(--p-blue-50);
}

:where(.fitco-testing-home, .fitco-standards-home) :where(.hero-panel, .standards-home-panel) {
  border-radius: var(--p-radius-lg);
  padding: var(--p-space-6);
  background: var(--p-white);
  border: 1px solid var(--p-line);
  box-shadow: var(--p-shadow);
}
:where(.fitco-testing-home, .fitco-standards-home) :where(.hero-panel-label, .standards-home-panel-label) {
  display: inline-block;
  margin-bottom: var(--p-space-4);
  font-size: var(--p-text-xs);
  font-weight: var(--p-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--p-blue-700);
}
:where(.fitco-testing-home, .fitco-standards-home) :where(.hero-panel-grid, .standards-home-panel-grid) {
  display: grid;
  gap: var(--p-space-4);
}
:where(.fitco-testing-home, .fitco-standards-home) :where(.hero-panel-item, .standards-home-panel-item) strong {
  display: block;
  margin-bottom: 0.375rem;
  font-family: var(--p-font-display);
  font-size: var(--p-text-base);
  line-height: 1.25;
  color: var(--p-ink);
}
:where(.fitco-testing-home, .fitco-standards-home) :where(.hero-panel-item, .standards-home-panel-item) span {
  display: block;
  font-size: var(--p-text-sm);
  line-height: 1.6;
  color: var(--p-text-muted);
}

:where(.fitco-testing-home, .fitco-standards-home) .section-heading { display: grid; gap: var(--p-space-2); max-width: 580px; margin-bottom: var(--p-space-8); }
:where(.fitco-testing-home, .fitco-standards-home) .section-kicker {
  font-size: var(--p-text-xs);
  font-weight: var(--p-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--p-primary);
}
:where(.fitco-testing-home, .fitco-standards-home) .section-note { font-size: var(--p-text-sm); line-height: 1.65; color: var(--p-text-muted); }

:where(.fitco-testing-home, .fitco-standards-home) .bento-card.is-featured {
  background: linear-gradient(135deg, var(--p-blue-900) 0%, var(--p-blue-800) 100%);
  border-color: var(--p-blue-800);
}
:where(.fitco-testing-home, .fitco-standards-home) .bento-card.is-featured :where(.card-title, h3) { color: var(--p-white); font-size: clamp(1.7rem, 2.3vw, 2.2rem); max-width: 14ch; }
:where(.fitco-testing-home, .fitco-standards-home) .bento-card.is-featured :where(.card-desc, .card-description, p) { color: var(--p-blue-200); }
:where(.fitco-testing-home, .fitco-standards-home) .bento-card.is-featured .card-label { color: var(--p-white); opacity: 0.85; }

:where(.fitco-testing-home, .fitco-standards-home) .card-meta { display: flex; flex-wrap: wrap; gap: var(--p-space-2); margin-top: var(--p-space-4); }
:where(.fitco-testing-home, .fitco-standards-home) .card-meta span {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.65rem;
  border-radius: var(--p-radius-full);
  background: var(--p-paper-2);
  border: 1px solid var(--p-line);
  color: var(--p-ink-2);
  font-size: var(--p-text-xs);
  font-weight: var(--p-semibold);
  letter-spacing: 0.02em;
}
:where(.fitco-testing-home, .fitco-standards-home) .bento-card.is-featured .card-meta span {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--p-blue-100);
}
:where(.fitco-testing-home, .fitco-standards-home) .card-footer {
  margin-top: auto;
  padding-top: var(--p-space-5);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--p-space-4);
}
:where(.fitco-testing-home, .fitco-standards-home) .card-link { font-size: var(--p-text-sm); font-weight: var(--p-bold); color: var(--p-primary); }
:where(.fitco-testing-home, .fitco-standards-home) .bento-card.is-featured .card-link { color: var(--p-white); }

@media (max-width: 600px) {
  :where(.fitco-testing-home, .fitco-standards-home) .hero-chip { width: 100%; }
  :where(.fitco-testing-home, .fitco-standards-home) .standards-home-actions { flex-direction: column; align-items: stretch; }
}

/* ═══════ YANTRA — instrument language (.fud-v1 parts) ═══════ */
/* Numbers: every measurement aligns like an instrument readout */
.fud-v1 :where(.standard-table, .specs-table, .stat-value, .meta-item, .val) {
  font-variant-numeric: tabular-nums;
}

/* Specimen labels — knowledge pages: standards sections gain a mono index */
.fud-v1 .standard-content { counter-reset: p-specimen; }
.fud-v1 .standard-content .standard-item h2::before {
  counter-increment: p-specimen;
  content: counter(p-specimen, decimal-leading-zero) " / ";
  font-family: var(--p-font-mono);
  font-size: 0.6em;
  font-weight: 400;
  color: var(--p-blue-500);
  vertical-align: 0.18em;
  letter-spacing: 0.04em;
}

/* ═══════ MOTION & A11Y ═══════ */
@media (prefers-reduced-motion: reduce) {
  .fud-v1 *, .fud-v1 *::before, .fud-v1 *::after {
    animation-duration: 0.01ms !important; /* a11y: motion safety requires the override */
    animation-iteration-count: 1 !important; /* a11y */
    transition-duration: 0.01ms !important; /* a11y */
  }
}

@media print {
  .fud-v1 .standard-toc, .fud-v1 .reading-progress { display: none; }
  .fud-v1 { background: #FFFFFF; }
}

/* ============================================================
   REVEAL-ANIMATION SAFETY — 2026-07-09
   Knowledge Centre page content ships inline IntersectionObserver
   scripts that hide .bento-card/.standard-item-row (inline opacity:0 +
   translateY(18px)) and reveal on scroll. When the observer is late or
   never fires, whole sections sit invisible — the "corrupted" voids on
   the case-studies index. Content must never hide behind a JS animation:
   force visibility. The fade-in is sacrificed; reliability wins.
   This file loads on every knowledge/testing route, so all hubs, guides,
   case studies and articles are covered.
   ============================================================ */
body.fitco-selfstyled :where(.bento-card, .standard-item-row) {
    opacity: 1 !important;
    transform: none !important;
}

/* ============================================================
   BENTO GRID NORMALIZER — 2026-07-09
   Knowledge/testing hub content uses a 12-col span vocabulary
   (col-span-12, md:col-span-8/4) but on some pages the .bento-grid
   itself computes to 8 narrow tracks — spans overflow into implicit
   auto-sized columns (239px card next to a 941px one). Force the grid
   every span rule assumes: 12 equal columns on desktop, one column on
   mobile with every card full-width.
   ============================================================ */
@media (max-width: 899px) {
    body.fitco-selfstyled .bento-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    body.fitco-selfstyled .bento-grid > .bento-card {
        grid-column: 1 / -1 !important;
    }
}
@media (min-width: 900px) {
    body.fitco-selfstyled .bento-grid {
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    }
}

/* Featured (dark) bento cards: links and labels must read on navy. */
body.fitco-selfstyled .bento-card.is-featured :where(a, .card-link) {
    color: var(--p-blue-200) !important;
}
body.fitco-selfstyled .bento-card.is-featured :where(a, .card-link):hover {
    color: var(--p-white) !important;
}
