/* VA20Four7 v11.13 — Visual Composition Normalization
   Keeps visual concepts/content intact. Corrects internal composition, overflow,
   spacing and responsive behavior after the cinematic visual-system pass. */

:root{
  --vc13-gap-xs:8px;
  --vc13-gap-sm:12px;
  --vc13-gap-md:16px;
  --vc13-gap-lg:22px;
}

/* --------------------------------------------------------------------------
   1. Shared composition guard for product/diagram surfaces
   -------------------------------------------------------------------------- */
html body :is(
  .editorial-visual-frame,.chapter-visual-frame,.service-card-art,.workflow-visual-canvas,
  .home940-pressure-board,.home970-flow,.home990-shell,.home1010-stack-visual,
  .va102-service-console,.va102-audience-hero-visual,.va102-orchestration-board,.va102-intelligence-board,
  .va103-audit-console,.va103-output-board,.va103-diagnostic-shell,
  .va104-mini-dashboard,.va104-resource-feature-shell,.va104-career-console,.va104-resource-console,
  .va107-signature,.va107-layer-rail,.va107-design-board,
  .va110-platform-ui,.va110-loop-visual,.va110-pricing-visual,.va110-support-demo,
  .hero-visual-system,.contact-mini-flow
){
  box-sizing:border-box!important;
  overflow:hidden!important;
}

html body :is(
  .workflow-visual-canvas,.home940-pressure-board,.home970-flow,.home990-shell,.home1010-stack-visual,
  .va102-service-console,.va102-audience-hero-visual,.va102-orchestration-board,.va102-intelligence-board,
  .va103-audit-console,.va103-output-board,.va103-diagnostic-shell,
  .va104-mini-dashboard,.va104-resource-feature-shell,.va104-career-console,.va104-resource-console,
  .va107-signature,.va107-layer-rail,.va107-design-board,
  .va110-platform-ui,.va110-loop-visual,.va110-pricing-visual,.va110-support-demo
) :is(article,div,span,p,strong,b,small,em){
  min-width:0;
  box-sizing:border-box;
}

/* Header/meta rows are allowed to wrap instead of colliding with neighboring UI. */
html body :is(
  .workflow-visual-head,.home970-flow-meta,.va102-console-top,.va102-console-bottom,
  .va102-audience-board-top,.va102-audience-board-bottom,.va102-intelligence-top,
  .va110-platform-bar
){
  max-width:100%;
  flex-wrap:wrap;
}

/* Product chips stay legible but cannot grow beyond their canvas. */
html body :is(
  .workflow-visual-head>span,.home970-flow-meta>span,.home970-flow-status,
  .va110-price-path>span,.va110-loop-visual>span
){
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
}

/* Equal-height card rows should stretch rather than float at inconsistent heights. */
html body :is(
  .va102-console-flow,.va102-audience-board-flow,.va102-intelligence-cards,
  .va102-orchestration-board,.va104-model-flow,.va107-layer-rail,.va110-price-factors
){
  align-items:stretch!important;
}

/* --------------------------------------------------------------------------
   2. Homepage ownership workflow — full composition rebuild, same content
   -------------------------------------------------------------------------- */
html body .home970-flow{
  position:relative!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
  padding:22px!important;
  border-radius:24px!important;
}

/* Move the three semantic labels into document flow: no more overlap. */
html body .home970-flow-meta{
  position:static!important;
  grid-column:1/-1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  margin:0 0 4px!important;
  padding:0!important;
  width:100%!important;
  z-index:3!important;
  border:0!important;
}
html body .home970-flow-meta span{
  min-height:34px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:7px 11px!important;
  border-radius:999px!important;
  font-size:11.5px!important;
  line-height:1.25!important;
  font-weight:650!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
html body .home970-flow-meta i{
  width:8px!important;
  height:8px!important;
  flex:0 0 8px!important;
}

/* Keep connector behind the cards and below the label row. */
html body .home970-flow-line{
  left:7%!important;
  right:7%!important;
  top:112px!important;
  height:2px!important;
  z-index:0!important;
  pointer-events:none!important;
}

html body .home970-step{
  position:relative!important;
  z-index:1!important;
  min-height:228px!important;
  padding:17px 16px 18px!important;
  border-radius:18px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  overflow:hidden!important;
}
html body .home970-step-top{
  display:flex!important;
  align-items:flex-start!important;
  gap:8px!important;
  min-height:42px!important;
  width:100%!important;
}
html body .home970-step-top span{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  flex:0 0 34px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border-radius:11px!important;
  font-size:12px!important;
  line-height:1!important;
  letter-spacing:.02em!important;
}
html body .home970-step-top em{
  min-height:34px!important;
  display:inline-flex!important;
  align-items:center!important;
  max-width:calc(100% - 42px)!important;
  padding:7px 10px!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1.18!important;
  font-weight:700!important;
  letter-spacing:.035em!important;
  white-space:normal!important;
  text-transform:uppercase!important;
}
html body .home970-step>strong{
  margin-top:26px!important;
  font-size:15.5px!important;
  line-height:1.28!important;
  letter-spacing:-.015em!important;
}
html body .home970-step>p{
  margin:12px 0 0!important;
  font-size:12.5px!important;
  line-height:1.6!important;
}

/* Status becomes a real footer row; it can never collide with Outcome. */
html body .home970-flow-status{
  position:static!important;
  grid-column:1/-1!important;
  justify-self:end!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0!important;
  padding:8px 11px!important;
  border-radius:999px!important;
  font-size:11.5px!important;
  line-height:1.25!important;
  white-space:nowrap!important;
  z-index:2!important;
}

/* --------------------------------------------------------------------------
   3. Generic service workflow composition
   -------------------------------------------------------------------------- */
html body .workflow-visual-canvas{
  padding:20px!important;
  gap:16px!important;
}
html body .workflow-visual-head{
  align-items:flex-start!important;
  gap:10px!important;
}
html body .workflow-visual-head>span{
  white-space:normal!important;
  text-align:left!important;
}
html body .workflow-visual-route{
  gap:7px!important;
  align-items:stretch!important;
}
html body .workflow-visual-step{
  min-height:112px!important;
  padding:14px 12px!important;
  gap:14px!important;
}
html body .workflow-visual-owner{
  align-items:stretch!important;
}

/* --------------------------------------------------------------------------
   4. Service / audience / intelligence boards
   -------------------------------------------------------------------------- */
html body :is(.va102-service-console,.va102-audience-hero-visual,.va102-intelligence-board,.va102-orchestration-board){
  overflow:hidden!important;
}
html body :is(.va102-console-top,.va102-audience-board-top,.va102-intelligence-top){
  gap:10px!important;
  align-items:center!important;
}
html body :is(.va102-console-flow,.va102-audience-board-flow,.va102-intelligence-cards){
  gap:10px!important;
}
html body :is(.va102-console-flow article,.va102-audience-board-flow article,.va102-intelligence-cards article,.va102-orchestration-board article){
  overflow:hidden!important;
  min-width:0!important;
}

/* --------------------------------------------------------------------------
   5. Platform / pricing / company visuals
   -------------------------------------------------------------------------- */
html body :is(.va104-model-flow,.va107-layer-rail,.va110-price-path,.va110-loop-visual,.va110-price-factors){
  gap:10px!important;
}
html body :is(.va104-model-flow article,.va107-layer-rail article,.va110-price-factors article){
  min-width:0!important;
  overflow:hidden!important;
}
html body .va110-platform-ui{
  overflow:hidden!important;
}
html body :is(.va110-platform-main,.va110-platform-panels article){
  min-width:0!important;
  overflow:hidden!important;
}

/* --------------------------------------------------------------------------
   6. Responsive composition
   -------------------------------------------------------------------------- */
@media(max-width:1180px){
  html body .home970-flow{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  html body .home970-flow-line{display:none!important}
  html body .home970-step{min-height:196px!important}
}

@media(max-width:760px){
  html body .home970-flow{
    grid-template-columns:1fr!important;
    padding:15px!important;
    gap:12px!important;
  }
  html body .home970-flow-meta{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    margin-bottom:2px!important;
  }
  html body .home970-flow-meta span{
    width:100%!important;
    justify-content:flex-start!important;
    white-space:normal!important;
  }
  html body .home970-step{min-height:0!important;padding:15px!important}
  html body .home970-step>strong{margin-top:20px!important}
  html body .home970-flow-status{
    justify-self:stretch!important;
    width:100%!important;
    justify-content:flex-start!important;
    white-space:normal!important;
  }
  html body .workflow-visual-route{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  html body .workflow-visual-arrow{display:none!important}
  html body .workflow-visual-owner{grid-template-columns:1fr!important}
}

@media(prefers-reduced-motion:reduce){
  html body .home970-flow-line i,
  html body .home970-flow-status i{animation:none!important}
}
