/* AI integration: shared site tokens, reflowing text and static SVG artwork. */
body.cs-page-ai { animation:none !important; opacity:1 !important; transform:none !important; }
.cs-page-ai .cs-main, .cs-page-index .home-ai { overflow-wrap:anywhere; }
.cs-page-ai .ai-hero { padding-block:64px; }
.cs-page-ai .ai-hero-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:56px; align-items:center; }
.cs-page-ai .ai-hero .cs-lead { margin-top:32px; }
.cs-page-ai .ai-benefits { padding-block:32px; background:var(--cs-raised); border-block:1px solid var(--cs-line); }
.cs-page-ai .ai-benefits-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr 1fr; gap:32px; }
.cs-page-ai .ai-benefits h2 { font-size:24px; line-height:1.3; margin-bottom:12px; }
.cs-page-ai .ai-benefits h3 { font-size:18px; font-weight:500; line-height:1.4; margin-bottom:12px; letter-spacing:-.02em; }
.cs-page-ai .ai-benefits p { font-size:16px; }
.cs-page-ai .ai-case-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; border-top:1px solid var(--cs-paper-line, #d9dde3); padding-block:56px; }
.cs-page-ai .ai-case-row:last-child { padding-bottom:0; }
.cs-page-ai .ai-case-copy h3, .cs-page-ai .ai-product h3 { font-size:30px; line-height:1.25; }
.cs-page-ai .ai-case-copy .ai-meta { font-size:15px; font-weight:500; margin-bottom:24px; }
.cs-page-ai .ai-case-copy .ai-proof { font-size:16px; border-top:1px solid var(--cs-paper-line, #d9dde3); padding-top:24px; margin-top:32px; }
.cs-page-ai .ai-case-reverse .ai-case-copy { grid-column:2; grid-row:1; }
.cs-page-ai .ai-case-reverse .ai-diagram { grid-column:1; grid-row:1; }
.cs-page-ai .ai-split-heading { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; margin-bottom:48px; }
.cs-page-ai .ai-split-heading h2 { margin-bottom:0; }
.cs-page-ai .ai-optimisation { margin-top:64px; border-color:var(--cs-line); }
.cs-page-ai .ai-editorial-list { list-style:none; margin:0; padding:0; }
.cs-page-ai .ai-editorial-list li { display:grid; grid-template-columns:32px minmax(0,1fr); gap:20px; padding:24px 0; margin:0; border-bottom:1px solid var(--cs-line); }
.cs-page-ai .ai-editorial-list li:first-child { padding-top:0; }
.cs-page-ai .ai-editorial-list li:last-child { border:0; padding-bottom:0; }
.cs-page-ai .ai-editorial-list li>span { color:var(--cs-muted); font-size:14px; padding-top:2px; }
.cs-page-ai .ai-editorial-list h3 { font-size:20px; line-height:1.35; font-weight:500; letter-spacing:-.015em; margin-bottom:12px; }
.cs-page-ai .ai-editorial-list p { font-size:16px; }
.cs-page-ai .ai-delivery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; padding:0; margin:0; list-style:none; }
.cs-page-ai .ai-delivery-grid li { padding:24px 0 0; border-top:1px solid #d9dde3; margin:0; }
.cs-page-ai .ai-step-number { display:block; font-size:14px; color:var(--cs-slate); margin-bottom:20px; }
.cs-page-ai .ai-delivery-grid h3 { font-size:22px; margin-bottom:16px; }
.cs-page-ai .ai-delivery-grid p { font-size:16px; }
.cs-page-ai .ai-product { margin-top:64px; }
.cs-page-ai .ai-product+.ai-product { margin-top:0; }
.cs-page-ai .ai-product h2 { margin-bottom:20px; }
.cs-page-ai .ai-development-label { display:inline-flex; padding-block:8px; border-block:1px solid #b9b9b7; font-size:14px; line-height:1.5; color:var(--cs-slate); margin-top:8px; }
.cs-page-ai .ai-engineering { border-top:1px solid var(--cs-line); margin-top:32px; }
.cs-page-ai .ai-engineering summary { position:relative; min-height:52px; padding:20px 32px 20px 0; cursor:pointer; list-style:none; font-size:16px; color:var(--cs-text); }
.cs-page-ai .ai-engineering summary::-webkit-details-marker { display:none; }
.cs-page-ai .ai-engineering summary::after { content:'+'; position:absolute; right:4px; top:18px; font-size:24px; line-height:1; }
.cs-page-ai .ai-engineering[open] summary::after { content:'−'; }
.cs-page-ai .ai-engineering summary:focus-visible { outline:2px solid var(--cs-text); outline-offset:3px; border-radius:2px; }
.cs-page-ai .ai-engineering-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; padding:12px 0 8px; }
.cs-page-ai .ai-engineering-grid strong { display:block; font-size:15px; line-height:1.5; font-weight:500; margin-bottom:12px; color:var(--cs-text); }
.cs-page-ai .ai-engineering-grid p { color:var(--cs-muted); font-size:14px; line-height:1.6; }

/* Only the seven new diagrams use these primitives, including the Home introduction. */
:is(.cs-page-ai,.home-ai) .ai-diagram { --ai-line:#7d8594; --ai-node-line:#687184; --ai-text:#f7f8fa; --ai-muted:#bbc2cc; margin:0; padding:32px; border:1px solid var(--cs-line); border-radius:10px; background:var(--cs-navy); color:var(--ai-text); min-width:0; }
:is(.cs-page-ai,.home-ai) .ai-diagram figcaption { text-align:left; font-size:15px; font-weight:500; line-height:1.5; margin:0 0 28px; color:var(--ai-muted); }
:is(.cs-page-ai,.home-ai) .ai-diagram-note { border-top:1px solid var(--cs-line); padding-top:20px; margin-top:24px; color:var(--ai-muted); font-size:13px; line-height:1.6; }
:is(.cs-page-ai,.home-ai) .ai-sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
:is(.cs-page-ai,.home-ai) .ai-artwork { min-width:0; }
:is(.cs-page-ai,.home-ai) :where(.ai-artwork ul,.ai-artwork ol) { padding:0; margin:0; list-style:none; }
:is(.cs-page-ai,.home-ai) :where(.ai-artwork li) { padding:0; margin:0; min-width:0; }
:is(.cs-page-ai,.home-ai) .ai-artwork .ai-icon { width:32px; height:32px; flex:none; fill:none; stroke:var(--ai-line); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
:is(.cs-page-ai,.home-ai) .ai-artwork svg * { vector-effect:non-scaling-stroke; }
:is(.cs-page-ai,.home-ai) .ai-node { display:flex; align-items:center; justify-content:center; gap:16px; padding:18px 16px; border:1.5px solid var(--ai-node-line); border-radius:6px; color:var(--ai-text); background:#ffffff04; min-width:0; }
:is(.cs-page-ai,.home-ai) .ai-node>div { min-width:0; }
:is(.cs-page-ai,.home-ai) .ai-artwork :is(strong,span) { min-width:0; overflow-wrap:anywhere; }
:is(.cs-page-ai,.home-ai) .ai-node strong { display:block; font-size:15px; line-height:1.5; font-weight:500; color:var(--ai-text); }
:is(.cs-page-ai,.home-ai) .ai-node span { display:block; font-size:14px; line-height:1.5; color:var(--ai-muted); margin-top:4px; }
:is(.cs-page-ai,.home-ai) .ai-emphasis { border-color:#ae4b44; background:#b8322909; }
:is(.cs-page-ai,.home-ai) .ai-chain { display:grid; gap:32px; }
:is(.cs-page-ai,.home-ai) .ai-chain>li { position:relative; }
:is(.cs-page-ai,.home-ai) .ai-route-arrow, :is(.cs-page-ai,.home-ai) .ai-stem { width:28px; height:16px; display:block; fill:none; stroke:var(--ai-line); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
:is(.cs-page-ai,.home-ai) .ai-route-arrow { position:absolute; top:-24px; left:calc(50% - 14px); transform:rotate(90deg); }
:is(.cs-page-ai,.home-ai) .ai-stem { margin:8px auto; transform:rotate(90deg); }
:is(.cs-page-ai,.home-ai) .ai-inputs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; position:relative; padding-bottom:24px; }
:is(.cs-page-ai,.home-ai) .ai-inputs:where(:has(>li:nth-child(2):last-child)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
:is(.cs-page-ai,.home-ai) .ai-inputs>li { display:flex; flex-direction:column; align-items:center; gap:12px; position:relative; text-align:center; font-size:14px; color:var(--ai-text); line-height:1.5; }
:is(.cs-page-ai,.home-ai) .ai-inputs>li::after { content:''; position:absolute; left:calc(50% - .75px); top:100%; width:1.5px; height:24px; background:var(--ai-line); }
:is(.cs-page-ai,.home-ai) .ai-inputs::before { content:''; position:absolute; bottom:0; left:calc((100% - 24px) / 6); right:calc((100% - 24px) / 6); height:1.5px; background:var(--ai-line); }
:is(.cs-page-ai,.home-ai) .ai-inputs:where(:has(>li:nth-child(2):last-child))::before { left:calc((100% - 12px) / 4); right:calc((100% - 12px) / 4); }
:is(.cs-page-ai,.home-ai) .ai-outcomes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:16px 4px; border:1.5px solid var(--ai-node-line); border-radius:6px; }
:is(.cs-page-ai,.home-ai) .ai-outcomes li { text-align:center; color:var(--ai-text); font-size:14px; line-height:1.5; padding:0 4px; }
:is(.cs-page-ai,.home-ai) .ai-outcomes li+li { border-left:1px solid var(--ai-node-line); }
.cs-page-ai .ai-comans-mark { width:28px; height:28px; flex:none; }
.cs-page-ai .ai-hero-core { padding-block:24px; }
.cs-page-ai .ai-architecture-diagram .ai-caption-note { color:var(--ai-muted); font-size:14px; line-height:1.5; margin-top:-16px; margin-bottom:32px; }
.cs-page-ai .ai-entry { max-width:340px; margin-inline:auto; }
.cs-page-ai .ai-boundary { padding:24px; border:1px solid var(--ai-node-line); border-radius:8px; }
.cs-page-ai .ai-boundary-label { font-size:14px; line-height:1.5; color:var(--ai-muted); margin-bottom:24px; }
.cs-page-ai .ai-boundary .ai-inputs { max-width:400px; margin-inline:auto; }
.cs-page-ai .ai-local-chain { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cs-page-ai .ai-local-chain .ai-node { height:100%; flex-direction:column; text-align:center; }
.cs-page-ai .ai-local-chain .ai-route-arrow { left:-30px; top:calc(50% - 8px); transform:none; }
.cs-page-ai .ai-external { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:24px !important; }
.cs-page-ai .ai-external li { border:1px dashed var(--ai-node-line); border-radius:6px; padding:14px 16px; font-size:14px; line-height:1.5; color:var(--ai-muted); text-align:center; }
.cs-page-ai .ai-diagram-pale { --ai-text:#0b0d12; --ai-muted:#545b66; --ai-line:#747c87; --ai-node-line:#747c87; background:#eeece7; border-color:#d9dde3; }
.cs-page-ai .ai-diagram-pale .ai-diagram-note { border-color:#d9dde3; }
.cs-page-ai .ai-aveme-chain { grid-template-columns:1fr 1fr; }
.cs-page-ai .ai-aveme-chain .ai-node { flex-direction:column; text-align:center; height:100%; }
.cs-page-ai .ai-aveme-chain li:nth-child(3) { grid-column:2; grid-row:2; }
.cs-page-ai .ai-aveme-chain li:nth-child(4) { grid-column:1; grid-row:2; }
.cs-page-ai .ai-aveme-chain li:nth-child(2) .ai-route-arrow { left:-30px; top:calc(50% - 8px); transform:none; }
.cs-page-ai .ai-aveme-chain li:nth-child(4) .ai-route-arrow { left:auto; right:-30px; top:calc(50% - 8px); transform:rotate(180deg); }
@media (min-width:761px) {
  .cs-page-ai .ai-boundary .ai-inputs { width:calc((100% - 64px) / 3); margin-left:0; }
  .cs-page-ai .ai-boundary>.ai-stem { margin-left:calc((100% - 64px) / 6 - 14px); }
}
@media (max-width:1200px) {
  .cs-page-ai .cs-wrap { padding-inline:40px; }
  .cs-page-ai .ai-hero-grid, .cs-page-ai .ai-case-row, .cs-page-ai .ai-split-heading { gap:40px; }
  .cs-page-ai .ai-hero h1 { font-size:48px; }
}
@media (max-width:1000px) {
  .cs-page-ai .ai-benefits-grid, .cs-page-ai .ai-delivery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .cs-page-ai .ai-hero-grid { grid-template-columns:1fr; gap:40px; }
  .cs-page-ai .ai-hero-grid>.ai-diagram { width:100%; max-width:620px; justify-self:center; }
  .cs-page-ai .ai-engineering-grid { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:760px) {
  .cs-page-ai .ai-case-row, .cs-page-ai .ai-split-heading { grid-template-columns:1fr; gap:32px; }
  .cs-page-ai .ai-case-reverse .ai-case-copy, .cs-page-ai .ai-case-reverse .ai-diagram { grid-column:auto; grid-row:auto; }
  .cs-page-ai .ai-local-chain { grid-template-columns:1fr; }
  .cs-page-ai .ai-local-chain .ai-node { flex-direction:row; text-align:left; justify-content:flex-start; }
  .cs-page-ai .ai-local-chain .ai-route-arrow { top:-24px; left:calc(50% - 14px); transform:rotate(90deg); }
  .cs-page-ai .ai-external { gap:16px; }
}
@media (max-width:600px) {
  .cs-page-ai .cs-wrap { padding-inline:24px; }
  .cs-page-ai .ai-hero { padding-block:48px; }
  .cs-page-ai .ai-hero h1 { font-size:36px; }
  .cs-page-ai .ai-case-row { padding-block:40px; }
  .cs-page-ai .ai-case-copy h3, .cs-page-ai .ai-product h3 { font-size:26px; }
  .cs-page-ai .ai-product, .cs-page-ai .ai-optimisation { margin-top:48px; }
  .cs-page-ai .ai-benefits-grid, .cs-page-ai .ai-delivery-grid { grid-template-columns:1fr; }
  :is(.cs-page-ai,.home-ai) .ai-diagram { padding:24px; }
  :is(.cs-page-ai,.home-ai) .ai-node { padding:16px 12px; gap:12px; }
  .cs-page-ai .ai-boundary { padding:20px 16px; }
  .cs-page-ai .ai-external { grid-template-columns:1fr; }
  .cs-page-ai .ai-split-heading { margin-bottom:32px; }
}
@media (max-width:480px) {
  .cs-page-ai .ai-aveme-chain { grid-template-columns:1fr; }
  .cs-page-ai .ai-aveme-chain li:nth-child(n) { grid-column:auto; grid-row:auto; }
  .cs-page-ai .ai-aveme-chain .ai-node { flex-direction:row; text-align:left; justify-content:flex-start; }
  .cs-page-ai .ai-aveme-chain li:nth-child(n) .ai-route-arrow { left:calc(50% - 14px); right:auto; top:-24px; transform:rotate(90deg); }
}
@media (max-width:360px) {
  .cs-page-ai .cs-wrap { padding-inline:20px; }
  .cs-page-ai .ai-hero h1 { font-size:32px; }
  :is(.cs-page-ai,.home-ai) .ai-diagram { padding:20px; }
  .cs-page-ai .ai-artwork .ai-inputs { grid-template-columns:1fr; padding-left:24px; padding-bottom:24px; }
  .cs-page-ai .ai-artwork .ai-inputs>li { flex-direction:row; text-align:left; }
  .cs-page-ai .ai-artwork .ai-inputs>li::after { width:24px; height:1.5px; left:-24px; top:calc(50% - .75px); }
  .cs-page-ai .ai-artwork .ai-inputs::before { left:0; right:auto; top:16px; bottom:0; width:1.5px; height:auto; }
  .cs-page-ai .ai-artwork .ai-inputs::after { content:''; position:absolute; bottom:0; left:0; width:50%; height:1.5px; background:var(--ai-line); }
  .cs-page-ai .ai-hero-core { flex-direction:column; text-align:center; }
  .cs-page-ai .ai-boundary { padding:16px 12px; }
}
/* Keep the final hand-off compact only when the panel has room for both labels.
   The shared controller traces these same responsive SVG arrows. */
.cs-page-ai [data-diagram-motion="ai-timesheet"] { container:ai-timesheet / inline-size; }
@media (min-width:601px) {
  @container ai-timesheet (min-width:360px) {
    .cs-page-ai .ai-timesheet-chain { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cs-page-ai .ai-timesheet-chain>li:nth-child(-n+2) { grid-column:1 / -1; }
    .cs-page-ai .ai-timesheet-chain>li:nth-child(n+3) .ai-node { height:100%; }
    .cs-page-ai .ai-timesheet-chain>li:nth-child(4) .ai-route-arrow { left:-30px; top:calc(50% - 8px); transform:none; }
  }
  @container ai-timesheet (min-width:360px) and (max-width:420px) {
    .cs-page-ai .ai-timesheet-chain>li:nth-child(n+3) .ai-node { flex-direction:column; text-align:center; }
  }
}
@media print {
  .cs-page-ai .ai-hero-grid, .cs-page-ai .ai-case-row, .cs-page-ai .ai-split-heading { display:block; }
  .cs-page-ai .ai-diagram { margin-top:24px; break-inside:avoid; }
  .cs-page-ai .ai-diagram, .cs-page-ai .ai-node { background:#fff; --ai-text:#111; --ai-muted:#444; --ai-line:#666; --ai-node-line:#666; color:#111; }
  .cs-page-ai :is(h1,h2,h3,figcaption) { break-after:avoid; }
}
