/* Codeator — manufacturing solution page. Page-specific styles only; shared components live in site.css.
   Logical properties throughout, so the English twin can reuse this file. */
.sol-mfg-caps { margin-top: 0; }
.sol-mfg-iraq { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px clamp(32px, 5vw, 80px); margin-top: 0; }
.sol-mfg-iraq b { display: block; margin-bottom: 2px; }
@media (max-width: 920px) { .sol-mfg-iraq { grid-template-columns: minmax(0, 1fr); gap: 22px; } }

/* shared look of this page's two illustrations */
.sol-mfg-art { display: block; width: 100%; height: auto; overflow: visible; }
.sol-mfg-art polygon { stroke: rgba(14,27,82,.2); stroke-width: 1; stroke-linejoin: round; }
.sol-mfg-art .f-top { fill: #fbfcff; }
.sol-mfg-art .f-left { fill: #d3dbf0; }
.sol-mfg-art .f-right { fill: #a9b7df; }
.sol-mfg-art text { font-family: var(--f-ui); text-anchor: middle; }
.sol-mfg-explain { max-width: 560px; margin-inline: auto; }

/* ---------- hero: blocks ride the line through two work centres (glazed-brick gates) ---------- */
.sol-mfg-hero polygon { stroke: rgba(9,18,58,.4); }
.sol-mfg-art .sol-mfg-belt .f-top { fill: #2b41a3; } .sol-mfg-art .sol-mfg-belt .f-left { fill: #1b2c78; } .sol-mfg-art .sol-mfg-belt .f-right { fill: #142262; }
.sol-mfg-run { fill: none; stroke: rgba(201,211,242,.55); stroke-width: 1.6; stroke-dasharray: 4 9; animation: sol-mfg-run 1.3s linear infinite; }
.sol-mfg-art .sol-mfg-gate .f-top { fill: #7d94ee; } .sol-mfg-art .sol-mfg-gate .f-left { fill: #3d5bdb; } .sol-mfg-art .sol-mfg-gate .f-right { fill: #2238a3; }
.sol-mfg-art .sol-mfg-gate .band { fill: var(--gold); stroke: none; }
.sol-mfg-art .sol-mfg-raw .f-top, .sol-mfg-art .sol-mfg-blk.raw .f-top { fill: var(--clay-light); }
.sol-mfg-art .sol-mfg-raw .f-left, .sol-mfg-art .sol-mfg-blk.raw .f-left { fill: var(--clay); }
.sol-mfg-art .sol-mfg-raw .f-right, .sol-mfg-art .sol-mfg-blk.raw .f-right { fill: var(--clay-deep); }
.sol-mfg-art .sol-mfg-blk.semi .f-top { fill: #e9dfd2; } .sol-mfg-art .sol-mfg-blk.semi .f-left { fill: #cbbfb4; } .sol-mfg-art .sol-mfg-blk.semi .f-right { fill: #a99d97; }
.sol-mfg-cur { font-size: 16px; font-weight: 700; letter-spacing: .06em; fill: #dfe5f8; }
.sol-mfg-cur.gold { fill: var(--gold-soft); }
.sol-mfg-done { animation: bob-s 4s ease-in-out infinite alternate; }
.sol-mfg-blk { transform: translate(var(--x), var(--y)); }
@media (prefers-reduced-motion: no-preference) {
  .sol-mfg-blk { animation: sol-mfg-ride 10s linear infinite; animation-delay: var(--dl); }
  .sol-mfg-art .sol-mfg-blk .f-top { animation: sol-mfg-ft 10s linear infinite; animation-delay: var(--dl); }
  .sol-mfg-art .sol-mfg-blk .f-left { animation: sol-mfg-fl 10s linear infinite; animation-delay: var(--dl); }
  .sol-mfg-art .sol-mfg-blk .f-right { animation: sol-mfg-fr 10s linear infinite; animation-delay: var(--dl); }
}
@keyframes sol-mfg-run { from { stroke-dashoffset: 26; } to { stroke-dashoffset: 0; } }
@keyframes sol-mfg-ride { 0% { transform: translate(-134.23px, -77.5px); opacity: 0; } 4%, 95% { opacity: 1; } 100% { transform: translate(134.23px, 77.5px); opacity: 0; } }
@keyframes sol-mfg-ft { 0%, 32% { fill: #e3b88f; } 36%, 74% { fill: #e9dfd2; } 78%, 100% { fill: #fbfcff; } }
@keyframes sol-mfg-fl { 0%, 32% { fill: #c4895a; } 36%, 74% { fill: #cbbfb4; } 78%, 100% { fill: #d3dbf0; } }
@keyframes sol-mfg-fr { 0%, 32% { fill: #93582f; } 36%, 74% { fill: #a99d97; } 78%, 100% { fill: #a9b7df; } }

/* ---------- explainer: cost tributaries → manufacturing order → product cost → inter-company sale ---------- */
.sol-mfg-flow path { stroke: rgba(255,255,255,.92); stroke-width: 2.2; stroke-dasharray: 3 16; animation: flow 2.4s linear infinite; }
.sol-mfg-src .t, .sol-mfg-lab { font-size: 17px; font-weight: 700; fill: var(--lapis-900); }
.sol-mfg-src .s, .sol-mfg-lab.s { font-size: 14.5px; font-weight: 400; fill: var(--ink-2); }
.sol-mfg-src .ring { fill: none; stroke-width: 5; }
.sol-mfg-src .ring.g { stroke: var(--gold); }
.sol-mfg-src .ring.b { stroke: var(--lapis-500); }
.sol-mfg-src .crenel { fill: var(--lapis-500); stroke: var(--lapis-800); stroke-width: 1.5; stroke-linejoin: round; }
.sol-mfg-stn circle { fill: var(--paper); stroke: var(--lapis-700); stroke-width: 3; }
.sol-mfg-stn .core { fill: var(--gold); stroke: none; }
.sol-mfg-mouth circle { fill: var(--gold); stroke: var(--lapis-900); stroke-width: 3; }
.sol-mfg-mouth .halo { fill: none; stroke: var(--gold); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: halo 2.8s ease-out infinite; }
.sol-mfg-ic { fill: none; stroke: var(--lapis-500); stroke-width: 2; stroke-dasharray: 5 6; animation: sol-mfg-run 1.3s linear infinite; }
.sol-mfg-ic.po { stroke: var(--gold-deep); }
.sol-mfg-doc rect { fill: #fff; stroke: var(--lapis-700); stroke-width: 1.8; }
.sol-mfg-doc path { fill: none; stroke: var(--lapis-300); stroke-width: 1.6; stroke-linecap: round; }
.sol-mfg-doc.po rect { stroke: var(--gold-deep); }
.sol-mfg-co { transition: transform .45s var(--ease); }
.sol-mfg-co:hover { transform: translateY(-5px); }

/* the drawing shrinks with the phone: keep its lettering readable */
@media (max-width: 600px) {
  .sol-mfg-src .t, .sol-mfg-lab { font-size: 20px; }
  .sol-mfg-src .s, .sol-mfg-lab.s { font-size: 17px; }
  .sol-mfg-cur { font-size: 19px; }
}
