/* gothink.ai — industry-page additions.
   The 2.0 identity styles .ix-* alongside the shared vocabulary in styles.css,
   so this file intentionally holds only what is specific to the nine
   GoForge-*.html pages. Kept as a real file because every page <link>s it. */
.ix-page{background:var(--bg);color:var(--ink)}
.ix-page .hero{padding:48px 0 36px}
.ix-page h1{font-size:clamp(29px,3.6vw,42px)}
.ix-page .lede{max-width:600px}
.ix-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:0 26px;margin-top:18px}
.ix-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;margin-top:20px}
.ix-results>div{background:var(--panel);padding:18px 16px}
.ix-results b{display:block;font:700 26px var(--mono);letter-spacing:-.02em;color:var(--ac)}
.ix-results span{display:block;font:600 9.5px var(--mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--dim);margin-top:5px}

/* ============================================================
   GAP-FILL — the .ix-* component set
   ------------------------------------------------------------
   The nine GoForge-*/GoCore-* industry pages are built from a
   component vocabulary that this file only ever covered three
   members of (.ix-page, .ix-docs, .ix-results). Everything from
   the KPI strip down was rendering as unstyled text. Sections
   below follow the page order: hero → problem → documents →
   pipeline → results → proof → close.
   ============================================================ */

/* ---------- section scaffolding ---------- */
.ix-sec{padding:52px 0}
.ix-band{background:var(--panel);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)}
.ix-head{max-width:820px;margin:0 auto 28px;text-align:center}
.ix-head h2{margin:12px 0 0}
.ix-head p{margin:12px auto 0;font-size:15px;color:var(--ink-2);max-width:66ch}
.ix-head .ix-eyebrow{justify-content:center}
.ix-dim{color:var(--dim)}
.ix-rv{opacity:1;transform:none}

/* the shipping-pack banner that sits under the sub-nav.
   NB: div.ix-sub is this banner; a.ix-sub is a nav-menu row (styled in
   styles.css). They are deliberately scoped apart. */
div.ix-sub{background:var(--panel2);border-bottom:1px solid var(--line);
  padding:11px 0;font-size:13px;line-height:1.6;color:var(--ink-2)}
.ix-sub-in{display:block}
.ix-sub-in b{color:var(--ink)}
.ix-sub-cta{color:var(--ink-2)}

/* ---------- hero KPI strip ---------- */
.ix-hero{padding:48px 0 36px}
.ix-kpis{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  flex:1 1 380px;min-width:0;align-self:flex-start}
.ix-kpi{background:var(--panel);padding:17px 16px;min-width:0;flex:1 1 150px}
.ix-kpi b{display:block;font:700 21px var(--disp);letter-spacing:-.022em;
  color:var(--ink);line-height:1.15}
.ix-kpi span{display:block;font-size:12px;line-height:1.5;color:var(--ink-2);margin-top:6px}
.ix-k-cy b{color:var(--cy)}
.ix-k-wm b{color:var(--sg)}

/* ---------- 01 the problem — numbered cards ---------- */
.ix-bn{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:16px}
.ix-bn-card{display:flex;gap:14px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:20px}
.ix-band .ix-bn-card{background:var(--bg)}
.ix-bn-n{flex:0 0 auto;font:700 11px var(--mono);letter-spacing:.12em;color:var(--ac);
  padding-top:3px}
.ix-bn-card h4{margin:0;font-size:15px}
.ix-bn-card p{margin:8px 0 0;font-size:13.5px;line-height:1.62;color:var(--ink-2)}
.ix-bn-imp{display:inline-block;margin-top:12px;font:600 11.5px var(--mono);
  letter-spacing:.04em;color:var(--warn);border-top:1px solid var(--line);
  padding-top:9px;width:100%}

/* ---------- 02 the documents we read ---------- */
.ix-estate{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.ix-doc{background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:19px}
.ix-band .ix-doc{background:var(--bg)}
.ix-doc-ico{display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;border:1px solid var(--line);
  background:var(--panel2);color:var(--ac);margin-bottom:13px}
.ix-doc-ico svg{width:16px;height:16px;display:block}
.ix-doc h4{margin:0;font-size:14.5px}
.ix-doc p{margin:7px 0 0;font-size:13px;line-height:1.6;color:var(--ink-2)}

/* ---------- 03 the pipeline figure ---------- */
.ix-fig{background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden}
.ix-band .ix-fig{background:var(--bg)}
.ix-fig-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:11px 16px;border-bottom:1px solid var(--line);
  font:500 11.5px var(--mono);color:var(--dim)}
.ix-fig-bar b{color:var(--ink);font:700 12px var(--ff)}
.ix-r{margin-left:auto;text-align:right;font:400 11px var(--mono);color:var(--dim);
  max-width:46ch}
.ix-fig-body{padding:20px 16px}
.ix-fig-foot{padding:15px 18px;border-top:1px solid var(--line);
  font-size:13.5px;line-height:1.66;color:var(--ink-2)}
.ix-fig-foot b{color:var(--ink)}

.ix-railcap{display:flex;justify-content:space-between;
  font:600 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);margin-bottom:11px;padding:0 2px}
.ix-rail{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding-bottom:4px}
.ix-stage{flex:1 1 0;min-width:140px;display:flex;position:relative;padding-right:22px}
.ix-stage:last-child{padding-right:0}
/* the connector between stages */
.ix-stage:not(:last-child)::after{content:"";position:absolute;right:6px;top:50%;
  width:10px;height:1px;background:var(--line2)}
.ix-stage:not(:last-child)::before{content:"";position:absolute;right:4px;top:50%;
  width:5px;height:5px;border-right:1px solid var(--line2);
  border-top:1px solid var(--line2);transform:translateY(-50%) rotate(45deg);z-index:1}
.ix-stage-box{flex:1 1 auto;background:var(--panel2);border:1px solid var(--line);
  border-radius:var(--r);padding:15px 14px;min-width:0}
.ix-band .ix-stage-box{background:var(--panel)}
.ix-stage-ico{display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;background:var(--panel);
  border:1px solid var(--line);color:var(--ac);margin-bottom:11px}
.ix-band .ix-stage-ico{background:var(--panel2)}
.ix-stage-ico svg{width:18px;height:18px;display:block}
.ix-stage-n{font:600 9px var(--mono);letter-spacing:.15em;text-transform:uppercase;
  color:var(--dim);margin-bottom:5px}
.ix-stage-box h4{margin:0;font-size:14px}
.ix-stage-box p{margin:5px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-2)}

/* input → output step list */
.ix-io-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ix-io{display:grid;grid-template-columns:110px minmax(0,1fr) 22px minmax(0,1fr);
  gap:14px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--panel3)}
.ix-io-s{font:600 9.5px var(--mono);letter-spacing:.13em;text-transform:uppercase;
  color:var(--dim)}
.ix-io-a{font-size:13px;line-height:1.55;color:var(--ink-2);min-width:0}
.ix-io-arw{text-align:center;color:var(--ac);font-size:14px}
.ix-io-b{font:600 13px var(--ff);line-height:1.5;color:var(--ink);min-width:0}
@media (max-width:720px){
  .ix-io{grid-template-columns:1fr;gap:5px}
  .ix-io-arw{display:none}
}

/* ---------- automation bars ---------- */
.ix-bars{display:flex;flex-direction:column;gap:14px}
.ix-bar-row{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) 108px;
  gap:16px;align-items:center}
.ix-bar-lb{font-size:13px;line-height:1.4;color:var(--ink)}
.ix-bar-track{height:9px;border-radius:5px;background:var(--panel3);overflow:hidden}
.ix-bar-fill{height:100%;width:var(--w,0%);border-radius:5px;
  background:linear-gradient(90deg,var(--cy),var(--ac))}
.ix-bar-v{font:700 14px var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);
  text-align:right}
.ix-bar-v span{display:block;font:400 10.5px var(--mono);color:var(--dim);margin-top:3px}
@media (prefers-reduced-motion:no-preference){
  .ix-bar-fill{animation:ixBar .9s cubic-bezier(.2,.9,.28,1) both}
}
@keyframes ixBar{from{width:0}to{width:var(--w,0%)}}
@media (max-width:640px){
  .ix-bar-row{grid-template-columns:minmax(0,1fr) 92px;gap:8px 12px}
  .ix-bar-track{grid-column:1/-1;order:3}
}

/* ---------- 04 results ---------- */
.ix-feeds{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.ix-feed{background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:19px}
.ix-band .ix-feed{background:var(--bg)}
.ix-feed-ico{display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;border:1px solid var(--line);
  background:var(--panel2);color:var(--ac);margin-bottom:13px}
.ix-feed-ico svg{width:16px;height:16px;display:block}
.ix-feed h4{margin:0;font-size:14.5px}
.ix-feed p{margin:7px 0 0;font-size:13px;line-height:1.6;color:var(--ink-2)}

/* ---------- 05 proof ---------- */
.ix-proof{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.ix-pf{background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:21px}
.ix-band .ix-pf{background:var(--bg)}
.ix-pf-ico{display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:8px;border:1px solid var(--line);
  background:var(--panel2);color:var(--ac);margin-bottom:13px}
.ix-pf-ico svg{width:17px;height:17px;display:block}
.ix-pf>b{display:block;font:700 15px var(--disp);letter-spacing:-.014em;color:var(--ink)}
.ix-pf>p{margin:8px 0 0;font-size:13.5px;line-height:1.62;color:var(--ink-2)}
.ix-pf-list{list-style:none;margin:14px 0 0;padding:0;display:flex;
  flex-direction:column;gap:8px}
.ix-pf-list li{display:flex;gap:9px;align-items:flex-start;
  font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.ix-pf-list li svg{flex:0 0 auto;margin-top:3px;color:var(--ok)}

/* capability ladder */
.ix-lvlbar{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.ix-lb{display:flex;flex-direction:column;gap:2px;flex:1 1 84px;min-width:0;
  padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  background:var(--panel2);color:var(--dim);font:600 12px var(--ff)}
.ix-band .ix-lb{background:var(--panel)}
.ix-lb i{font-style:normal;font:400 9.5px var(--mono);letter-spacing:.08em;
  text-transform:uppercase;opacity:.85}
.ix-lb.ix-on{border-color:var(--ac);color:var(--ac);
  background:color-mix(in srgb,var(--ac) 7%,transparent)}
.ix-more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;
  font:600 13px var(--ff);color:var(--ac)}

/* phase strip */
.ix-phases{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:18px}
.ix-ph{background:var(--panel);padding:14px 15px;flex:1 1 118px;min-width:0}
.ix-band .ix-ph{background:var(--bg)}
.ix-ph-d{display:block;font:600 9.5px var(--mono);letter-spacing:.13em;
  text-transform:uppercase;color:var(--dim)}
.ix-ph-n{display:block;font:700 14px var(--disp);letter-spacing:-.014em;
  color:var(--ink);margin-top:5px}

/* ---------- 06 close ---------- */
.ix-close{background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:34px;margin-top:34px}
.ix-band .ix-close{background:var(--bg)}
.ix-close h2{margin:12px 0 0}
.ix-close>p{margin:13px 0 0;font-size:15.5px;line-height:1.64;color:var(--ink-2);max-width:68ch}
.ix-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:18px;margin-top:26px}
.ix-step{padding-top:16px;border-top:2px solid var(--line)}
.ix-step:first-child{border-top-color:var(--ac)}
.ix-step-n{display:inline-flex;align-items:center;justify-content:center;
  width:23px;height:23px;border-radius:50%;background:var(--ac);color:var(--panel);
  font:700 11px var(--mono)}
.ix-step h4{margin:10px 0 0;font-size:14.5px}
.ix-step p{margin:7px 0 0;font-size:13.5px;line-height:1.62;color:var(--ink-2)}
.ix-close .ix-cta-row{margin:26px 0 0}

.ix-peers{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin-top:26px;padding-top:18px;border-top:1px solid var(--line);
  font-size:12.5px}
.ix-peers>span{font:600 9.5px var(--mono);letter-spacing:.13em;
  text-transform:uppercase;color:var(--dim)}
.ix-peers a{color:var(--ink-2)}
.ix-peers a:hover{color:var(--ac)}

@media (max-width:900px){
  .ix-sec{padding:38px 0}
  .ix-close,.ix-fig-body{padding-left:18px;padding-right:18px}
  .ix-close{padding-top:26px;padding-bottom:26px}
}

/* ============================================================
   Fixes for the two pages that carry their own inline stylesheet
   (GoForge/GoCore insurance and banking-payments). Scoped as
   `main.ix-page` so these win over the page's own `.ix-page x`
   rules, which are one point lower in specificity.
   ============================================================ */

/* .fig-foot is designed as a two-item caption bar with
   justify-content:space-between, but it is also used to wrap a prose
   sentence containing links. Flex turns each text run and each <a> into a
   separate item, so space-between shattered the sentence into columns — on
   desktop as well as mobile. Prose versions are the ones containing a link. */
main.ix-page .fig-foot:has(a){display:block;text-align:left;
  font-family:var(--ff);font-size:13px;line-height:1.7;letter-spacing:0;
  text-transform:none;color:var(--ink-2)}
main.ix-page .fig-foot:has(a) a{color:var(--ac)}
/* …and the caption bar itself still needs to be able to wrap */
main.ix-page .fig-foot{flex-wrap:wrap;gap:6px 16px}

/* `1fr` carries an auto minimum, so a card whose min-content is wider than
   its column stretches the track past the viewport instead of shrinking. The
   page's own breakpoints switch these grids to plain `1fr`, which is why the
   overflow showed up at tablet width as well as on phones. */
@media (max-width:960px){
  main.ix-page .trust,main.ix-page .kpis,main.ix-page .grid3{
    grid-template-columns:repeat(2,minmax(0,1fr))}
  main.ix-page .card,main.ix-page .relay,main.ix-page .exhibit{min-width:0}
  /* the capability ladder is a 5-item flex row inside those cards and is what
     drives their min-content width */
  main.ix-page .ladder{flex-wrap:wrap}
  main.ix-page .ladder .rung{flex:1 1 80px;min-width:0}
}
@media (max-width:600px){
  main.ix-page .trust,main.ix-page .kpis,
  main.ix-page .grid3,main.ix-page .xk{grid-template-columns:minmax(0,1fr)}
  /* the five-phase strip had no mobile rule and kept five rigid columns */
  main.ix-page .phases{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  main.ix-page .steps{grid-template-columns:minmax(0,1fr)}
}
/* long-form chips must be allowed to wrap on narrow screens; nowrap pushed
   one 450px-wide chip well past the viewport */
@media (max-width:720px){
  .chip,.ix-chip,main.ix-page .chip{white-space:normal}
}
