/* Generic pages (industries, capabilities, products, content-page layouts).
 * Values from design_src/V2_INVENTORY.md §2.10, §3.3, §4.2 and the v4 product bench frame.
 * Section colours come from bw.css custom properties (--sfg, --sfg2, --srule, --slink). */

/* stats strip under an industry hero */
.bw-sec--stats .bw-sec__inner{padding:0 0 clamp(48px,6vw,80px)}

/* related content */
.bw-g-cases{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.bw-sec a.bw-casecard,.bw-sec a.bw-casecard:hover{color:var(--ink)}
.bw-sec a.bw-casecard .bw-casecard__metric{color:var(--blue)}
.bw-g-indcards{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:16px}
.bw-g-label{font:500 11px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--sfg2)}
.bw-chips > li.bw-g-chiplink{padding:0;border:0}
.bw-g-chiplink a{display:inline-flex;font:400 13px/1 var(--font);color:var(--sfg)!important;border:1px solid var(--srule);border-radius:999px;padding:9px 12px;transition:border-color 160ms,color 160ms}
.bw-g-chiplink a:hover{border-color:var(--blue);color:var(--blue)!important}
.bw-g-clients{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;list-style:none;margin:0;padding:0}
.bw-g-clients li{display:flex;align-items:center;justify-content:center;min-height:84px;padding:16px 20px;background:#fff;border:1px solid var(--rule);border-radius:10px;font:600 15px/1.3 var(--font);letter-spacing:-.01em;color:var(--ink);text-align:center}
.bw-g-clients img{max-height:40px;max-width:100%;width:auto;object-fit:contain}
.bw-g-contact{color:var(--sfg2)}
.bw-g-pointer{font-size:17px;max-width:60ch;color:var(--sfg2)}
.bw-g-pointer--wide{max-width:64ch}
.bw-g-links{list-style:none;margin:0;padding:0;border-top:1px solid var(--srule);max-width:640px}
.bw-g-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--srule);font:500 17px/1.3 var(--font);transition:padding-left 200ms}
.bw-g-links a:hover{padding-left:8px}
.bw-g-status--live{color:var(--green)!important;background:#E8F3EC!important}
.bw-g-status--planned{color:var(--muted)!important;background:var(--surface)!important}

/* product interface frame (v4 home product bench) */
.bw-g-demo{margin:0;border:1px solid #C5CBD2;background:#fff;box-shadow:0 40px 70px -46px rgba(9,17,33,.4);min-width:0;max-width:960px;color:var(--ink)}
.bw-g-demo__bar{height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-bottom:1px solid #DBE0E6;background:#F9FAFC;font:400 11px/1 var(--mono);color:#636974}
.bw-g-demo__bar .url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bw-g-demo__bar .ill{flex:none;color:#875814}
.bw-g-demo__body{padding:18px 20px 22px;font-family:Inter,var(--font)}
.bw-g-demo__head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.bw-g-demo__head .t{font:600 15px/1.2 Inter,var(--font)}
.bw-g-demo__head .badge{font:500 12px/1 Inter,var(--font);color:#875814;background:#FFF6E8;padding:6px 8px}
.bw-g-demo__rows{display:flex;flex-direction:column;gap:6px}
.bw-g-demo__row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:11px 12px;border:1px solid #E7EAEE;background:#fff;font:400 13px/1.3 Inter,var(--font)}
.bw-g-demo__row .a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bw-g-demo__row .b{color:#636974;font-variant-numeric:tabular-nums;text-align:right}
.bw-g-demo__row .s{color:var(--blue);font-weight:500;text-align:right;white-space:nowrap}
@media (max-width:560px){.bw-g-demo__row{grid-template-columns:minmax(0,1fr) auto}.bw-g-demo__row .a{grid-column:1 / -1}.bw-g-demo__row .b{text-align:left}}
.bw-g-gallery{--af:380px;gap:16px}
.bw-g-gallery figure{margin:0}
.bw-g-gallery img{display:block;width:100%;height:auto}
.bw-g-gallery figcaption{font:400 13px/1.5 var(--font);color:var(--muted);padding:10px 14px;border-top:1px solid var(--rule-2)}

/* team grid */
.bw-g-people{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:32px 24px;list-style:none;margin:0;padding:0}
.bw-g-person{display:flex;flex-direction:column;gap:16px}
.bw-g-person__photo{position:relative;aspect-ratio:4/5;border-radius:8px;overflow:hidden;background:var(--surface);border:1px solid var(--rule);display:flex;align-items:center;justify-content:center}
.bw-g-person__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bw-g-person__photo span{font:600 clamp(40px,4vw,56px)/1 var(--font);letter-spacing:-.04em;color:var(--blue)}
.bw-g-person__txt{display:flex;flex-direction:column;gap:8px}
.bw-g-person h3{font:600 20px/1.2 var(--font);letter-spacing:-.02em;margin:0}
.bw-g-person .role{font:400 12px/1.5 var(--mono);color:var(--sfg2)}
.bw-g-person p{font:400 15px/1.6 var(--font);color:var(--sfg2);margin:0;max-width:44ch}

/* how we work: tiles2 */
.bw-g-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));grid-auto-flow:dense;gap:12px}
.bw-g-tile{all:unset;cursor:pointer;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:150px;padding:22px;border:1px solid var(--srule);border-radius:14px;background:#fff;color:var(--ink);--tfg2:var(--muted);transition:background calc(var(--dur-base) * var(--motion-speed)) var(--ease-out),color calc(var(--dur-base) * var(--motion-speed)),border-color calc(var(--dur-base) * var(--motion-speed)),transform calc(var(--dur-quick) * var(--motion-speed))}
.bw-g-tile:hover{transform:translateY(-2px)}
.bw-g-tile:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.bw-g-tile__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.bw-g-tile__top .n{display:flex;align-items:center;gap:10px;font:500 12px/1 var(--mono);color:var(--tfg2)}
.bw-g-tile__top .sign{width:26px;height:26px;border-radius:50%;border:1px solid var(--tfg2);display:flex;align-items:center;justify-content:center;font:400 16px/1 var(--font);color:inherit}
.bw-g-tile__top .sign::before{content:"+"}
.bw-g-tile__txt{display:flex;flex-direction:column;gap:12px}
.bw-g-tile__txt .h{font:600 clamp(20px,1.7vw,24px)/1.15 var(--font);letter-spacing:-.025em;text-wrap:balance}
.bw-g-tile__txt .b{font:400 15px/1.6 var(--font);color:var(--tfg2);max-width:60ch}
.bw-g-tiles.is-enhanced .bw-g-tile[aria-expanded="false"] .b{display:none}
.bw-g-tiles:not(.is-enhanced) .bw-g-tile__top .sign{display:none}
.bw-g-tile[aria-expanded="true"]{grid-column:span 2;background:var(--ink);color:#fff;border-color:var(--ink);--tfg2:#C9CFDA}
.bw-g-tile[aria-expanded="true"] .sign::before{content:"−"}
@media (max-width:620px){.bw-g-tile[aria-expanded="true"]{grid-column:span 1}}

/* how we work: ledger */
.bw-g-ledger{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:0 56px;border-top:1px solid var(--sfg)}
.bw-g-ledger--one{grid-template-columns:1fr}
.bw-g-ledger > div{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:24px 0;border-bottom:1px solid var(--srule)}
.bw-g-ledger .n{display:flex;flex-direction:column;gap:10px;font:500 12px/1 var(--mono);color:var(--blue)}
.bw-sec--blue .bw-g-ledger .n{color:#fff}
.bw-g-ledger .pole{display:flex}.bw-g-ledger .pole span:first-child{width:1.5px;height:18px;background:var(--sfg)}
.bw-g-ledger .txt{display:flex;flex-direction:column;gap:8px;min-width:0}
.bw-g-ledger .h{font:600 clamp(18px,1.5vw,21px)/1.3 var(--font);letter-spacing:-.015em;max-width:52ch}
.bw-g-ledger .b{font:400 15px/1.6 var(--font);color:var(--sfg2);max-width:64ch}

/* how we work: clock */
.bw-g-clock{display:flex;flex-direction:column;gap:14px;max-width:960px}
.bw-g-clock .row{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center}
.bw-g-clock .lbl{font:500 12px/1.3 var(--mono);color:var(--sfg)}
.bw-g-clock .bar{position:relative;height:28px;background:var(--surface);border-radius:6px}
.bw-sec--alt .bw-g-clock .bar{background:#fff}
.bw-g-clock .span{position:absolute;top:0;bottom:0}
.bw-g-clock .span--ist{left:41.67%;width:37.5%;background:var(--blue);border-radius:6px}
.bw-g-clock .span--et{background:var(--ink)}
.bw-g-clock .overlap{position:absolute;left:77.08%;width:2.08%;top:-4px;bottom:-4px;background:var(--amber);border-radius:3px}
.bw-g-clock .tag{position:absolute;top:50%;font:500 11px/1 var(--mono);color:#fff;white-space:nowrap}
.bw-g-clock .hrs{position:relative;height:14px}
.bw-g-clock .hrs span{position:absolute;transform:translateX(-50%);font:400 11px/1 var(--mono);color:var(--sfg2)}
.bw-g-clock .legend{display:flex;align-items:center;gap:8px;font:400 13px/1.4 var(--font);color:var(--sfg2)}
.bw-g-clock .sw{width:12px;height:12px;border-radius:3px;background:var(--amber);flex:none}
@media (max-width:560px){.bw-g-clock .row{grid-template-columns:72px 1fr;gap:10px}.bw-g-clock .lbl{font-size:10px}.bw-g-clock .tag{font-size:10px}}

/* how we implement */
.bw-g-wps{--af:340px;gap:14px}
.bw-g-wp{background:#fff;border:1px solid var(--srule);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.bw-g-wp--note{grid-column:1 / -1;background:transparent}
.bw-g-wp__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bw-g-wp__head .nm{display:flex;align-items:center;gap:12px}
.bw-g-wp__head .disc{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font:600 12px/1 var(--mono);flex:none}
.bw-g-wp h3{font:600 20px/1.2 var(--font);letter-spacing:-.02em;margin:0}
.bw-g-wp__head .len{font:500 12px/1 var(--mono);color:var(--muted);white-space:nowrap}
.bw-g-wp p{font:400 15px/1.55 var(--font);color:var(--text-2);margin:0}
.bw-g-wp dl{display:grid;grid-template-columns:96px 1fr;gap:8px 14px;padding-top:12px;border-top:1px solid var(--rule-2);font:400 14px/1.5 var(--font);margin:0}
.bw-g-wp dt{color:var(--muted)}.bw-g-wp dd{margin:0}
.bw-g-wp dd.exit{display:flex;gap:8px;align-items:flex-start}.bw-g-wp dd.exit .bw-flag{margin-top:5px}
.bw-g-threads{--af:260px;gap:32px}
.bw-g-threads > div{display:flex;flex-direction:column;gap:14px}
.bw-g-threads .bar{height:5px;border-radius:3px;background:var(--blue);opacity:.4}
.bw-g-threads .k{font:600 12px/1 var(--mono);letter-spacing:.08em;color:var(--blue)}
.bw-g-threads p{font:400 15px/1.6 var(--font);margin:0}
.bw-g-ticks{--af:340px;gap:0 48px;border-top:1px solid var(--srule);max-width:1000px}
.bw-g-ticks > div{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--srule);font:400 15px/1.5 var(--font)}
.bw-g-ticks .pole{display:flex;flex:none;margin-top:4px}.bw-g-ticks .stick{width:1.5px;height:14px;background:var(--sfg)}
.bw-g-ticks .dot{width:6px;height:6px;border-radius:50%;background:var(--sfg2);flex:none;margin-top:8px}
.bw-g-artefacts{--af:200px;gap:12px}
.bw-g-artefacts > div{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:170px;background:var(--ink);color:#fff;border-radius:12px;padding:20px}
.bw-g-artefacts .top{display:flex;justify-content:space-between;gap:8px;font:500 11px/1 var(--mono);letter-spacing:.06em;color:var(--muted-dark)}
.bw-g-artefacts .t{font:500 14px/1.45 var(--font)}
.bw-g-metrics{--af:220px;gap:12px}
.bw-g-metrics > div{border:1px solid var(--srule);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:10px;background:#fff;color:var(--ink)}
.bw-g-metrics .num{font:600 clamp(36px,3.4vw,48px)/1 var(--font);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.bw-g-metrics .what{font:400 14px/1.5 var(--font);color:var(--text-2)}
.bw-g-metrics .src{font:400 12px/1.4 var(--mono);color:var(--muted)}

/* simple system page (privacy, terms) — V2 §2.10 */
.bw-g-simple{background:#fff}
.bw-g-simple__inner{width:var(--cw);margin:0 auto;padding:clamp(40px,5vw,72px) 0 clamp(56px,7vw,112px);display:flex;flex-direction:column;gap:24px;--sfg:var(--ink);--sfg2:var(--muted);--srule:var(--rule);--slink:var(--blue)}
.bw-g-simple__head{display:flex;flex-direction:column;gap:24px}
.bw-g-simple__kicker{font:400 13px/1.5 var(--font);color:var(--muted)}
.bw-g-simple__h1{max-width:20ch}
.bw-g-simple__lead{font:400 clamp(17px,1.4vw,20px)/1.55 var(--font);color:var(--muted);max-width:52ch;margin:0}
.bw-g-simple__group{display:flex;flex-direction:column;gap:16px;max-width:80ch;margin-top:16px}
.bw-g-simple__h2{font:600 clamp(20px,1.8vw,24px)/1.25 var(--font);margin:0;padding:12px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}

/* accessibility: focus ring on dark tiles */
.bw-g-artefacts > div{--focus:#fff;--focus-halo:var(--ink)}

/* ===== products (stream 4): /products hub groups with status pills ===== */
.bw-prodlist__head{display:flex;flex-direction:column;gap:12px}
.bw-prodlist__intro{font:400 15px/1.55 var(--font);color:var(--sfg2);margin:0;max-width:40ch}
.bw-prodlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--srule)}
.bw-sec a.bw-prodlist__row{display:flex;flex-direction:column;gap:6px;padding:20px 0;border-bottom:1px solid var(--srule);color:var(--sfg);transition:color 200ms,padding-left 200ms}
.bw-sec a.bw-prodlist__row:hover{color:var(--blue);padding-left:12px}
.bw-prodlist__top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;min-width:0}
.bw-prodlist__row .t{font:600 clamp(20px,1.8vw,26px)/1.2 var(--font);letter-spacing:-.015em;min-width:0;overflow-wrap:anywhere;color:var(--sfg);transition:color 200ms}
.bw-prodlist__row:hover .t{color:var(--blue)}
.bw-prodlist__row .l{font:400 15px/1.55 var(--font);color:var(--sfg2);max-width:64ch}
.bw-prodlist__pill{flex:none;white-space:nowrap;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:6px 9px;color:var(--muted);background:var(--surface);border:1px solid var(--rule)}
.bw-prodlist__pill--live{color:var(--green);background:#E8F3EC;border-color:#C9E2D2}
.bw-prodlist__pill--pilot{color:var(--blue);background:var(--blue-pale);border-color:#D3DBF3}
@media (prefers-reduced-motion:reduce){.bw-sec a.bw-prodlist__row{transition:none}.bw-sec a.bw-prodlist__row:hover{padding-left:0}}
/* ===== end products ===== */

/* ---- FIX-A (Phase 4): native collapsible sections, fallbacks, add-on waypoint, more link ---- */
.bw-sec__details>summary{list-style:none}
.bw-sec__details>summary::-webkit-details-marker{display:none}
.bw-sec__details>summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:4px}
.bw-sec__th{font:inherit;letter-spacing:inherit;color:inherit;margin:0}
.bw-sec__state{flex:none;display:inline-flex;align-items:center;gap:8px;font:400 13px/1 var(--font);color:var(--muted)}
.bw-sec__state::after{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform 200ms}
.bw-sec__details[open] .bw-sec__state::after{transform:translateY(2px) rotate(225deg)}
.bw-sec__state .hide,.bw-sec__details[open] .bw-sec__state .show{display:none}
.bw-sec__details[open] .bw-sec__state .hide{display:inline}
.bw-g-fallback{margin:0;padding:0 0 0 1.2em;display:flex;flex-direction:column;gap:8px;font:400 15px/1.5 var(--font);color:var(--text-2,#3A4150)}
.bw-g-fallback strong{font-weight:600;color:var(--ink)}
.bw-g-wp__addon{display:block;font:500 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.bw-g-more{margin:20px 0 0;font:500 15px/1.4 var(--font)}
.bw-numbers .src a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* ==================================================================== content icons
 * Icons chosen from the content's own words (website/icons.py topic/topics, tech_logo). All decorative
 * (aria-hidden): the text beside each carries the meaning. Monoline 24×24, stroke 1.6–1.8, blue on
 * white, white on blue/navy bands; challenge icons orange; technology marks monochrome ink. */
.bw-ico,.bw-featico,.bw-specico,.bw-numico,.bw-factico,.bw-chipico,.bw-linkico,.bw-cityico,.bw-prodico,
.bwc-chcard__ico,.bwc-needs__ico,.bwc-ba__ico{display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--blue)}
.bw-ico svg,.bw-featico svg,.bw-specico svg,.bw-numico svg,.bw-factico svg,.bw-chipico svg,.bw-linkico svg,
.bw-cityico svg,.bw-prodico svg,.bwc-chcard__ico svg,.bwc-needs__ico svg,.bwc-ba__ico svg{display:block}

/* feature cards: a 34px tile in place of the tick */
.bw-featico{width:34px;height:34px;border-radius:9px;background:var(--blue-pale);margin-top:-4px}
.bw-sec--blue .bw-featico,.bw-sec--navy .bw-featico{background:rgba(255,255,255,.14);color:#fff}

/* label | explanation rows */
.bw-spec dt.bw-spec__ict{display:flex;align-items:flex-start;gap:12px}
.bw-specico{width:30px;height:30px;border-radius:8px;background:var(--blue-pale);margin-top:-3px}
.bw-specico:empty{background:transparent}
.bw-sec--blue .bw-specico,.bw-sec--navy .bw-specico{background:rgba(255,255,255,.14);color:#fff}
.bw-sec--blue .bw-specico:empty,.bw-sec--navy .bw-specico:empty{background:transparent}

/* numbers: a small icon above each figure */
.bw-numico{width:36px;height:36px;border-radius:10px;background:var(--blue-pale);margin-bottom:16px}
.bw-numico:empty{visibility:hidden}
.bw-sec--blue .bw-numico,.bw-sec--navy .bw-numico{background:rgba(255,255,255,.14);color:#fff}

/* hero facts (product Status / For / Runs on / Licence; case hero strip; client facts table) */
.bw-factico{margin-right:6px;vertical-align:-2px}
.bw-hero__facts dt,.bw-hero__dl dt,.bwc-ftable dt{display:flex;align-items:center}
.bw-hero__dl dt{align-items:flex-start}
.bw-hero__dl dt .bw-factico{margin-top:2px}
.bw-hero--dark .bw-factico{color:var(--blue-on-dark)}
.bwc-facts dt{display:flex;align-items:center}
.bwc-facts .bw-factico{color:var(--blue-on-dark)}
.bwc-ftable dt{align-items:flex-start}
.bwc-ftable .bw-factico{margin-top:3px}

/* chips with a technology mark or a page icon */
.bw-chip--logo{display:inline-flex!important;align-items:center;gap:7px}
.bw-g-chiplink a.bw-chip--logo{gap:7px}
.bw-techlogo{width:14px;height:14px;flex:none;display:block;opacity:.85}
.bw-sec--blue .bw-techlogo,.bw-sec--navy .bw-techlogo{filter:invert(1);opacity:.9}
.bw-chipico{color:var(--blue)}
.bw-sec--blue .bw-chipico,.bw-sec--navy .bw-chipico{color:#fff}

/* case study: glance, challenge cards, what they needed, before/after rows, related links */
.bwc-glance__n--ico svg{display:block}
.bwc-chcard__ico{width:30px;height:30px;border-radius:8px;background:var(--orange-pale);color:var(--orange);margin-top:-5px}
.bwc-needs__list--icons li{align-items:flex-start}
.bwc-needs__ico{color:#9DB0F0;margin-top:3px}
.bwc-ba__m{display:inline-flex;align-items:flex-start;gap:10px}
.bwc-ba__ico{margin-top:2px}
.bwc-linklist--icons a{display:inline-flex;align-items:flex-start;gap:8px}
.bw-linkico{margin-top:3px}

/* blog meta pills, insights categories, offices, product rows, contact sidebar */
.bw-pill--ico{display:inline-flex;align-items:center;gap:6px}
.bw-pill--ico svg{flex:none}
.bwc-ins__cats:has(.bw-pill--ico){gap:6px 18px}
.bwc-ins__cats:has(.bw-pill--ico) li+li::before{content:none}
.bwc-side dt.bw-dt--ico{display:flex;align-items:center}
.bw-cityico{margin-right:6px;vertical-align:-1px}
.bwp-office__city{display:flex;align-items:center}
.bw-prodico{margin-right:10px;vertical-align:-3px}
.bw-prodlist__top .t{display:inline-flex;align-items:center}
/* ================================================================ end content icons */
