/* Case-specific diagrams and layouts use the site's shared typography and colours. */
.aiqa section[id]{scroll-margin-top:90px}.aq-map{position:relative;margin:40px 0;background:#151a35;color:#fff;border-radius:18px;overflow:hidden;padding:30px 36px}.aq-map-top,.aq-map-bottom{display:flex;justify-content:space-between;gap:24px;font-size:12px;line-height:1.5;color:#c2c7e2}.aq-map-top{letter-spacing:.08em}.aq-map-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:26px;align-items:center;padding:36px 0}.aq-map-flow strong{display:block;font-size:23px;margin:10px 0}.aq-map-flow p{font-size:15px;line-height:1.6;color:#c2c7e2;margin:0}.aq-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--deep)}.aq-map .aq-label{color:#a6e7e3}.aq-arrow{font-size:24px;color:#a6e7e3}.aq-map-bottom{border-top:1px solid #383e59;padding-top:22px}.aq-map figcaption{font-size:12px;color:#c2c7e2;margin-top:20px}.aq-overview{display:grid;grid-template-columns:1fr 1.2fr;gap:64px;margin-top:26px;align-items:start}.aq-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:40px 0 0;padding:28px 0;border-block:1px solid var(--line)}.aq-facts dt{font-size:12px;color:var(--sub);margin-bottom:10px}.aq-facts dd{margin:0;font-weight:650;font-size:16px}.aq-jump{display:flex;gap:14px 28px;flex-wrap:wrap;margin-top:28px}.aq-jump a{font-size:14px;font-weight:650;color:var(--deep);text-decoration:underline;text-underline-offset:5px}.aq-principle{padding:30px;border-left:3px solid var(--deep);background:#fff;border-radius:0 16px 16px 0}.aq-principle h3,.aq-loop h3,.aq-knowledge h3{font-size:23px;line-height:1.35;margin:14px 0}.aq-principle p,.aq-loop p,.aq-knowledge p{font-size:16px;line-height:1.7;color:var(--sub);margin:0}.aq-changes{margin-top:24px;display:grid;grid-template-columns:1fr;gap:0}.aq-changes article{display:grid;grid-template-columns:1fr 1.65fr 1fr;gap:30px;align-items:start;padding:26px 0;border-top:1px solid var(--line)}.aq-changes h3{font-size:19px;margin:0}.aq-changes p{margin:0;font-size:16px;line-height:1.65;color:var(--sub)}.aq-changes article>span{font-size:13px;color:var(--deep);line-height:1.7}.aq-note{margin:24px 0 0;font-size:14px;line-height:1.65;color:var(--sub);max-width:780px}.aq-quality{display:grid;grid-template-columns:1.65fr 1fr;gap:60px;margin-top:40px;align-items:start}.aq-stages{list-style:none;margin:0;padding:0}.aq-stages>li{display:grid;grid-template-columns:132px 1fr;gap:24px;padding:0 0 30px 24px;border-left:2px solid var(--line);position:relative}.aq-stages>li:before{content:'';position:absolute;left:-6px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--deep)}.aq-stages>li:last-child{padding-bottom:0}.aq-stage-tag{font-size:11px;font-weight:750;letter-spacing:.07em;color:var(--deep);padding-top:5px}.aq-stages h3{font-size:20px;line-height:1.4;margin:0 0 10px}.aq-stages p{font-size:16px;line-height:1.7;color:var(--sub);margin:0}.aq-loop{background:var(--tint);padding:30px;border-radius:16px}.aq-loop ol{padding-left:22px;font-size:16px;line-height:1.7;margin:24px 0}.aq-loop li{margin:10px 0}.aq-boundary{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.aq-boundary strong{display:block;margin-bottom:8px;font-size:15px}.aq-boundary p{font-size:14px}.aq-knowledge{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px}.aq-rag{margin-top:26px;padding-top:26px;border-top:1px dashed var(--line)}.aq-status{display:inline-block;font-size:12px;color:#6e4d12;background:#fff2d7;padding:5px 10px;border-radius:6px;font-weight:650}.aq-stack{margin:32px 0 0;max-width:940px}.aq-stack>div{display:grid;grid-template-columns:200px 1fr;gap:30px;padding:22px 0;border-bottom:1px solid var(--line)}.aq-stack dt{font-weight:700;font-size:16px}.aq-stack dd{margin:0;color:var(--sub);line-height:1.7;font-size:16px}
@media(max-width:900px){.aq-overview,.aq-quality{grid-template-columns:1fr;gap:30px}.aq-changes article{grid-template-columns:1fr 2fr}.aq-changes article>span{grid-column:2}.aq-map-flow{gap:16px}.aq-map-flow strong{font-size:19px}.aq-facts{gap:22px}}
@media(max-width:600px){.aq-map{padding:24px;margin-bottom:40px}.aq-map-top,.aq-map-bottom{flex-direction:column;gap:10px}.aq-map-flow{grid-template-columns:1fr;padding:24px 0;gap:14px}.aq-arrow{transform:rotate(90deg);width:24px}.aq-map-flow strong{font-size:21px}.aq-facts{grid-template-columns:1fr;gap:24px}.aq-changes article{grid-template-columns:1fr;gap:12px}.aq-changes article>span{grid-column:auto}.aq-stages>li{grid-template-columns:1fr;gap:10px;padding-left:20px}.aq-stack>div{grid-template-columns:1fr;gap:8px}.aq-loop,.aq-principle,.aq-knowledge{padding:24px}.aq-jump{gap:16px 22px}}
.aq-arrow{white-space:nowrap;line-height:1;min-width:32px}

/* Sequential quality gates with explicit repair routes. */
.aq-gates{margin:32px 0;padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--tint)}
.aq-gates-title{font-size:16px;font-weight:700;margin-bottom:24px}
.aq-gates-flow{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr) 32px minmax(0,1fr) 32px minmax(0,1fr);gap:10px;align-items:center}
.aq-gates-step{min-width:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 12px;display:flex;flex-direction:column;gap:12px;align-self:stretch;justify-content:center}
.aq-gates-number{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--deep)}
.aq-gates-step strong{font-size:18px;line-height:1.35}
.aq-gates-next{display:flex;flex-direction:column;align-items:center;gap:8px;color:#286a60;font-size:11px;font-weight:700}
.aq-gates-next svg{width:32px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.aq-gates-return,.aq-gates-note{font-size:12px;line-height:1.5;color:var(--sub)}
.aq-gates-return{display:flex;gap:5px;color:#964525;align-items:center}
.aq-gates-return svg{width:16px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5}
.aq-gates figcaption{margin-top:22px;font-size:13px;line-height:1.65;color:var(--sub)}
@media(max-width:1000px){.aq-gates-flow{grid-template-columns:1fr;gap:12px}.aq-gates-step{padding:16px 20px;display:grid;grid-template-columns:24px 1fr;gap:6px 12px;align-items:center}.aq-gates-step strong{font-size:18px}.aq-gates-return,.aq-gates-note{grid-column:2}.aq-gates-next{flex-direction:row;justify-content:center;gap:12px}.aq-gates-next svg{transform:rotate(90deg);width:24px;height:24px}.aq-gates{padding:22px}}

.aq-gates-description{margin:0;font-size:13px;line-height:1.6;color:var(--sub)}
.aq-gates-step{justify-content:flex-start}
.aq-gates-step>.aq-gates-return,.aq-gates-step>.aq-gates-note{margin-top:auto}
@media(max-width:1000px){.aq-gates-description{grid-column:2}.aq-gates-step>.aq-gates-return,.aq-gates-step>.aq-gates-note{margin-top:4px}}

.aq-gates-description{padding-left:17px}.aq-gates-description li+li{margin-top:8px}.aq-stages ul{margin:0;padding-left:20px;color:var(--sub);font-size:16px;line-height:1.7}.aq-stages ul li+li{margin-top:8px}

.aq-stages h3+p{margin-bottom:16px}

/* Matching stage colours connect the overview cards and detailed checklists. */
.aiqa [data-stage="module"]{--stage-ink:#59369b;--stage-edge:#c8b6eb;--stage-light:#f7f2ff;--stage-end:#dfd0f5;--stage-rgb:109,70,173}
.aiqa [data-stage="testing"]{--stage-ink:#116759;--stage-edge:#97d3bf;--stage-light:#effbf5;--stage-end:#bce6d6;--stage-rgb:30,133,106}
.aiqa [data-stage="integration"]{--stage-ink:#235a99;--stage-edge:#a5c7e9;--stage-light:#f0f7ff;--stage-end:#c4ddf5;--stage-rgb:49,112,181}
.aiqa [data-stage="qa"]{--stage-ink:#82500e;--stage-edge:#dfc18a;--stage-light:#fff9ec;--stage-end:#f4dda8;--stage-rgb:163,109,31}
.aq-gates-step[data-stage]{position:relative;isolation:isolate;overflow:hidden;border-color:var(--stage-edge);background:linear-gradient(145deg,var(--stage-light) 8%,var(--stage-end) 100%);box-shadow:inset 0 1px 0 #fff,inset 0 0 0 1px #ffffff66,0 9px 20px -12px rgba(var(--stage-rgb),.42)}
.aq-gates-step[data-stage]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(125deg,transparent 10%,#ffffff14 28%,#ffffffb3 29%,#ffffff52 42%,transparent 43%),radial-gradient(ellipse at 100% 0%,#ffffffbd,transparent 64%)}
.aq-gates-step[data-stage]::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;box-shadow:inset 0 -1px 0 rgba(var(--stage-rgb),.12)}
.aq-gates-step[data-stage] .aq-gates-number,.aq-gates-step[data-stage]>strong{color:var(--stage-ink)}
.aq-gates-step[data-stage] .aq-gates-description{color:#29384c}
.aq-gates-step[data-stage] .aq-gates-description li::marker{color:var(--stage-ink)}
.aq-gates-step[data-stage] .aq-gates-return{color:#78331f}
.aq-stages>li[data-stage]{border-left-color:var(--stage-edge);background:linear-gradient(110deg,var(--stage-light),#fff 85%);border-radius:0 12px 12px 0;margin-bottom:18px;padding:20px 18px 28px 24px}
.aq-stages>li[data-stage]:last-child{margin-bottom:0;padding-bottom:24px}
.aq-stages>li[data-stage]::before{top:26px;background:var(--stage-ink);box-shadow:0 0 0 4px var(--stage-light)}
.aq-stages>li[data-stage] .aq-stage-tag,.aq-stages>li[data-stage] h3,.aq-stages>li[data-stage] ul li::marker{color:var(--stage-ink)}
@media(max-width:600px){.aq-stages>li[data-stage]{padding:18px 14px 24px 20px}.aq-stages>li[data-stage]::before{top:24px}}

/* A shared verification boundary, with code entering and a human gate after QA. */
.aq-gates{padding:0;border:0;background:none;overflow:visible}
.aq-gates-shell{padding:28px;background:var(--tint);border:1px solid var(--line);border-radius:18px}
.aq-gates-entry,.aq-gates-exit{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--ink,#151a35);font-size:16px;font-weight:650}
.aq-gates-entry{padding-bottom:10px}.aq-gates-exit{padding-top:10px}
.aq-gates-entry svg,.aq-gates-exit svg{width:20px;height:40px;fill:none;stroke:#66648b;stroke-width:1.5}
.aq-gates-flow{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);grid-template-rows:auto 52px auto;gap:12px}
.aq-gates-step[data-stage="module"]{grid-area:1 / 1}
.aq-gates-step[data-stage="testing"]{grid-area:1 / 3}
.aq-gates-step[data-stage="integration"]{grid-area:3 / 3}
.aq-gates-step[data-stage="qa"]{grid-area:3 / 1}
.aq-gates-next:nth-child(2){grid-area:1 / 2}
.aq-gates-next:nth-child(4){grid-area:2 / 3;flex-direction:row;justify-content:center;gap:14px}
.aq-gates-next:nth-child(4) svg{transform:rotate(90deg)}
.aq-gates-next:nth-child(6){grid-area:3 / 2}
.aq-gates-next:nth-child(6) svg{transform:rotate(180deg)}
.aq-gates-step[data-stage]{display:flex;align-items:stretch;padding:22px;gap:14px}
.aq-gates-next{flex-direction:column}.aq-gates-next svg{transform:none;width:32px;height:16px}
.aq-gates-step[data-stage]>.aq-gates-return{margin-top:auto}
@media(max-width:600px){
 .aq-gates-shell{padding:20px}
 .aq-gates-flow{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:14px}
 .aq-gates-flow>.aq-gates-step[data-stage],.aq-gates-flow>.aq-gates-next{grid-area:auto}
 .aq-gates-step[data-stage]{padding:18px;gap:12px}
 .aq-gates-flow>.aq-gates-next{flex-direction:row;justify-content:center;gap:14px}
 .aq-gates-flow>.aq-gates-next svg{transform:rotate(90deg);width:24px;height:24px}
}

/* Full-width photographic break in the lower-page technical section. */
.aiqa .aq-technology-scene{position:relative;isolation:isolate;overflow:hidden;background:#111c2d;color:#fff}
.aq-technology-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:-2}
.aq-technology-scene::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,22,39,.94),rgba(12,22,39,.82) 56%,rgba(12,22,39,.62))}
.aq-technology-scene .kicker{color:#c6c0ff}.aq-technology-scene .h2{color:#fff}
.aq-technology-scene .aq-stack>div{border-color:#ffffff38}.aq-technology-scene .aq-stack dt{color:#fff}.aq-technology-scene .aq-stack dd{color:#edf1f8}
.aq-technology-caption{margin:24px 0 0;color:#d1d8e5;font-size:12px;line-height:1.6}
@media(max-width:600px){.aq-technology-background{object-position:62% center}.aq-technology-scene::before{background:rgba(12,22,39,.86)}}

/* Four delivery steps, with the verification sequence visible at a glance. */
.aq-map-flow{grid-template-columns:minmax(0,1fr) auto minmax(0,.8fr) auto minmax(0,1.7fr) auto minmax(0,1fr);gap:16px}
.aq-map-checks{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;list-style:none;padding:0;margin:14px 0 0}
.aq-map-checks li{position:relative;padding:6px 7px;border:1px solid #65778d;border-radius:5px;background:#a6e7e30d;color:#d5f5f2;font-size:11px;line-height:1.4;white-space:nowrap}
.aq-map-checks li+li::before{content:"";position:absolute;left:-12px;top:calc(50% - 3px);width:5px;height:5px;border-top:1px solid #a6e7e3;border-right:1px solid #a6e7e3;transform:rotate(45deg)}
@media(max-width:900px){.aq-map-flow{grid-template-columns:1fr;gap:14px;padding:28px 0}.aq-map-flow>.aq-arrow{transform:rotate(90deg);width:32px}.aq-map-checks{flex-wrap:nowrap;gap:8px 16px}.aq-map-flow strong{font-size:21px}}
@media(max-width:360px){.aq-map-checks{gap:8px 12px}.aq-map-checks li{font-size:10px;padding:6px 5px}.aq-map-checks li+li::before{left:-10px}}

.aq-map-flow>div{align-self:start}

/* Consistent line icons and framed entry/approval nodes. */
.aq-gates-terminal{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;box-sizing:border-box;padding:18px 24px;border:1px solid #cacde1;border-radius:12px;background:linear-gradient(120deg,#fff,#f1f2fa);color:#272b4d;box-shadow:inset 0 1px 0 #fff}
.aq-gates .aq-stage-icon{display:block;width:24px;height:24px;flex:0 0 24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.aq-gates-step[data-stage]>strong{display:flex;align-items:center;gap:12px}
.aq-gates-step[data-stage]>strong .aq-stage-icon{padding:8px;box-sizing:content-box;border:1px solid var(--stage-edge);border-radius:10px;background:#ffffff73}
@media(max-width:600px){.aq-gates-terminal{padding:16px}.aq-gates-step[data-stage]>strong{gap:10px}.aq-gates-step[data-stage]>strong .aq-stage-icon{padding:6px}}

/* Give verification more room and equally sized icon tiles. */
.aq-map-flow{grid-template-columns:minmax(0,.9fr) auto minmax(0,.65fr) auto minmax(0,2fr) auto minmax(0,1.1fr);gap:14px}
.aq-map-verification>strong{font-size:28px}
.aq-map-checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.aq-map-checks li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:0;min-height:84px;box-sizing:border-box;padding:12px 4px;font-size:12px;text-align:center;background:#a6e7e310}
.aq-map-checks li+li::before{left:-9px}
.aq-map-checks .aq-stage-icon{display:block;width:24px;height:24px;fill:none;stroke:#a6e7e3;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
@media(max-width:1100px){.aq-map-flow{grid-template-columns:1fr;gap:14px;padding:28px 0}.aq-map-flow>.aq-arrow{transform:rotate(90deg);width:32px}.aq-map-checks{max-width:480px}.aq-map-verification>strong{font-size:26px}}
@media(max-width:600px){.aq-map-checks{gap:10px}.aq-map-checks li{font-size:11px;min-height:80px;padding:10px 3px}.aq-map-checks li+li::before{left:-8px}}
@media(max-width:360px){.aq-map-checks{gap:8px}.aq-map-checks li{font-size:10px;padding:10px 2px}.aq-map-checks li+li::before{left:-7px;width:4px;height:4px}}

/* The AI source sits outside the verification boundary and feeds all four gates. */
.aq-ai-network{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:48px;align-items:center}
.aq-ai-network .aq-gates-shell{grid-column:1;grid-row:1;padding-top:28px}
.aq-ai-network .aq-gates-title{margin-bottom:40px}
@media(max-width:999px){
 .aq-ai-network{grid-template-columns:minmax(0,1fr);gap:36px}
 .aq-ai-source{grid-column:1;grid-row:1;padding:8px 0 0}
 .aq-ai-network .aq-gates-shell{grid-column:1;grid-row:2}
 .aq-ai-label{margin-top:12px}
 .aq-ai-subtitle{max-width:none}
}
@media(max-width:600px){
 .aq-ai-network .aq-gates-shell{padding:24px 18px 24px 30px}
 .aq-ai-network .aq-gates-title{margin-bottom:24px}
 .aq-ai-network .aq-gates-step[data-stage]{padding:16px}
 .aq-ai-network .aq-gates-step[data-stage]>strong{flex-wrap:wrap}
}
