/* CAELIST V21 visual typography + browser identity polish */

/* Robust wrapping inside compact AI/control-plane nodes */
.ai-panel .node {
  box-sizing: border-box;
  width: clamp(134px, 13.5vw, 176px);
  min-width: 0;
  max-width: 176px;
  overflow: hidden;
  text-wrap: balance;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
}
.ai-panel .node b,
.ai-panel .node small {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
.ai-panel .node b {
  line-height: 1.18;
  letter-spacing: -.01em;
}
.ai-panel .node small {
  line-height: 1.32;
  margin-top: 4px;
}

/* Keep control-plane typography balanced on narrower desktops/tablets */
@media (max-width: 1050px) {
  .ai-panel .node { width: 148px; max-width: 148px; }
  .ai-panel .node b { font-size: 11px; }
  .ai-panel .node small { font-size: 10px; }
}

/* Mobile: compact, readable nodes without clipping */
@media (max-width: 680px) {
  .ai-panel .node {
    width: 124px;
    max-width: 124px;
    padding: 8px 9px;
    border-radius: 12px;
  }
  .ai-panel .node b { font-size: 10px; line-height: 1.16; }
  .ai-panel .node small { font-size: 8px; line-height: 1.22; }
  .ai-panel .n1 { left: 5%; }
  .ai-panel .n2 { right: 4%; }
  .ai-panel .n3 { left: 4%; }
  .ai-panel .n4 { right: 4%; }
}

/* Consistent in-page heading rhythm */
.page-main h2,
.page-main h3,
.section h2,
.section h3,
.journeys h3,
.trust-section h3 {
  text-wrap: balance;
}

/* Browser identity is intentionally handled in markup with favicon assets. */
