/* ═══ Company family ══════════════════════════════════════════════════
   Linked after sub.css on About, Leadership, For SAP Partners & SIs,
   Careers, Application and Contact. The editorial look: a cool-tinted
   hero with statement typography and a page-specific right column (a
   photograph, the team roster, a facts list, the office card), a
   manifesto list for principles, a stat strip for the track record,
   profile rows for the leadership, and three-column rows for the ways
   to partner. Written by tools/blueprint_design.py.
   ------------------------------------------------------------------ */

/* ── hero ── */
.co-hero { padding: 10vh 0 9vh; background:
  radial-gradient(60% 80% at 8% 0%, rgba(46,171,198,.12), transparent 60%),
  radial-gradient(40% 60% at 95% 100%, rgba(179,210,48,.06), transparent 60%),
  linear-gradient(180deg, #0a1012 0%, var(--bg) 100%); }
.co-hero::before { opacity: .3; }
.co-hero-in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); gap: 6vw; align-items: end; }
.co-hero-in.solo { grid-template-columns: 1fr; }
.co-hero h1 { font-size: clamp(36px, 5.8vw, 74px); max-width: 15ch; letter-spacing: -.02em; }
.co-hero .lead { max-width: 56ch; }
.co-rule { display: block; width: 56px; height: 2px; background: var(--lime); margin-bottom: 22px; animation: heroIn .9s var(--ease) both; }

/* a photograph, masked like the homepage tiles */
.co-photo { animation: heroIn 1s var(--ease) .3s both; }
.co-photo img { width: 100%; height: auto; display: block; border-radius: 6px;
  -webkit-mask-image: radial-gradient(ellipse 86% 86% at 50% 50%, black 58%, transparent 100%);
  mask-image: radial-gradient(ellipse 86% 86% at 50% 50%, black 58%, transparent 100%); }

/* a vertical facts list */
.co-facts { list-style: none; margin: 0; padding: 0; animation: heroIn .9s var(--ease) .4s both; }
.co-facts li { padding: 12px 0; border-top: 1px solid var(--line); font-size: 15px; color: rgba(239,243,233,.82); position: relative; padding-left: 22px; }
.co-facts li:last-child { border-bottom: 1px solid var(--line); }
.co-facts li::before { content: ""; position: absolute; left: 0; top: 21px; width: 10px; height: 1px; background: var(--lime); }
.co-facts .co-facts-k::before { content: none; }   /* list heading ("At a glance"): the dash struck through its first letter */
.co-facts-k { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 10px; }

/* the team roster */
.co-roster { list-style: none; margin: 0; padding: 0; animation: heroIn .9s var(--ease) .4s both; }
.co-roster a { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); color: inherit; text-decoration: none; transition: color .25s; }
.co-roster li:last-child a { border-bottom: 1px solid var(--line); }
.co-roster .av { width: 40px; height: 40px; font-size: 11px; }
.co-roster b { display: block; font-size: 15px; font-weight: 600; }
.co-roster small { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-dim); margin-top: 3px; }
.co-roster a:hover b { color: var(--lime); }

/* the office card */
.co-office { border: 1px solid var(--line); border-radius: 14px; background: rgba(7,10,6,.6); padding: 22px 24px 8px; animation: heroIn .9s var(--ease) .4s both; }
.co-office dl { margin: 0; }
.co-office div { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.co-office div:last-child { border-bottom: 0; }
.co-office dt { font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--lime); padding-top: 3px; }
.co-office dd { margin: 0; font-size: 14.5px; line-height: 1.55; color: rgba(239,243,233,.84); }
.co-office dd a { color: var(--text); text-decoration: none; border-bottom: 1px solid rgba(239,243,233,.25); transition: border-color .25s, color .25s; }
.co-office dd a:hover { color: var(--lime); border-color: var(--lime); }

/* ── section heads ── */
.eyebrow b { font-weight: 400; color: rgba(239,243,233,.48); margin-right: 4px; }
.co-head { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 24px 6vw; align-items: end; margin-bottom: 58px; }
.co-head h2 { font-size: clamp(28px, 3.8vw, 50px); font-weight: 600; margin: 18px 0 0; max-width: 20ch; }
.co-head > p { color: var(--text-dim); font-size: clamp(14px, 1.2vw, 16.5px); line-height: 1.75; max-width: 52ch; padding-bottom: 6px; }
.co-head.solo { grid-template-columns: 1fr; }

/* ── statement: one big idea, explanation beside it, facts under ── */
.co-statement { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 24px 6vw; align-items: end; }
.co-statement .eyebrow { grid-column: 1 / -1; }
.co-statement h2 { font-size: clamp(30px, 4.2vw, 56px); font-weight: 600; line-height: 1.08; margin: 0; max-width: 18ch; }
.co-statement p { color: var(--text-dim); font-size: clamp(15px, 1.3vw, 18px); line-height: 1.75; margin: 0; padding-bottom: 8px; }
.co-statement .co-line { grid-column: 1 / -1; margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line);
  font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: rgba(239,243,233,.6); }
.co-statement .co-line i { font-style: normal; color: var(--lime); padding: 0 12px; }

/* ── principles: a two-column manifesto ── */
.co-principles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 6vw; border-top: 1px solid var(--line); }
.co-principles li { position: relative; padding: 26px 0 26px 34px; border-bottom: 1px solid var(--line); font-size: clamp(17px, 1.5vw, 21px); font-weight: 500; line-height: 1.45; }
.co-principles li::before { content: ""; position: absolute; left: 0; top: 40px; width: 18px; height: 2px; background: var(--lime); }

/* ── stats: the track record as numbers ── */
.co-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 3vw; border-top: 1px solid var(--line); }
.co-stat { padding: 30px 0 10px; border-bottom: 1px solid var(--line); }
.co-stat b { display: block; font-family: 'IBM Plex Mono', monospace; font-size: clamp(40px, 5vw, 72px); font-weight: 400; line-height: 1; color: var(--lime); letter-spacing: -.03em; }
.co-stat span { display: block; margin-top: 14px; font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--text-dim); }

/* ── ways: numeral | title | description rows ── */
.co-ways { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.co-ways li > * { display: grid; grid-template-columns: 64px minmax(0, .8fr) minmax(0, 1.2fr); gap: 0 3vw; align-items: baseline; padding: 26px 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.co-ways-n { font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: .16em; color: var(--lime); }
.co-ways h4, .co-ways h3 { font-size: clamp(18px, 1.7vw, 24px); font-weight: 600; margin: 0; }
.co-ways p { font-size: 15px; color: var(--text-dim); line-height: 1.65; margin: 0; }
.co-ways a h4::after, .co-ways a h3::after { content: " \2192"; color: var(--lime); opacity: 0; transition: opacity .25s; }
.co-ways a:hover h4, .co-ways a:hover h3 { color: var(--lime); }
.co-ways a:hover h4::after, .co-ways a:hover h3::after { opacity: 1; }

/* ── team: profile rows ── */
.co-team { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.co-team li { display: grid; grid-template-columns: 96px minmax(0, .85fr) minmax(0, 1.15fr); gap: 0 4vw; align-items: start; padding: 34px 0; border-bottom: 1px solid var(--line); }
.co-team .av { width: 84px; height: 84px; font-size: 20px; letter-spacing: .04em; border: 1px solid rgba(179,210,48,.45); box-shadow: 0 0 0 6px rgba(179,210,48,.06); }
.co-team h3 { font-size: clamp(20px, 2vw, 26px); font-weight: 600; margin: 4px 0 8px; }
.co-team .bio-role { margin-bottom: 12px; }
.co-team .co-years { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--lime); border: 1px solid rgba(179,210,48,.4); border-radius: 100px; padding: 5px 12px; }
.co-team p.bio { font-size: 15px; color: rgba(239,243,233,.78); line-height: 1.75; margin: 0; padding-top: 6px; }

/* ── contact: the note beside the form ── */
.co-next { border-left: 2px solid var(--lime); padding: 4px 0 4px 22px; position: sticky; top: calc(var(--navh, 73px) + 76px); }   /* below the nav and the ~51px section strip */
.co-next .co-facts-k { margin-bottom: 12px; }
.co-next p { font-size: 15px; line-height: 1.7; color: rgba(239,243,233,.8); margin: 0; }
.co-next .co-office { margin-top: 26px; padding: 16px 18px 4px; }
.co-next .co-office div { grid-template-columns: 72px minmax(0, 1fr); padding: 11px 0; }

/* ── innovation hub: four terms as one segmented panel, the pipeline beside it ── */
.co-hub { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 34px 5vw; align-items: start; }
.co-hub-terms { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--line); }
.co-hub-terms div { padding: 26px 26px 28px; background: #0b0f0a; }
.co-hub-terms dt { font-size: 18px; font-weight: 600; margin-bottom: 8px; }
.co-hub-terms dd { margin: 0; font-size: 14px; color: var(--text-dim); line-height: 1.65; }
.co-hub-next { border-left: 2px solid var(--lime); padding: 4px 0 4px 22px; }
.co-hub-next ul { list-style: none; margin: 0; padding: 0; }
.co-hub-next li { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 15.5px; color: rgba(239,243,233,.86); }
.co-hub-next li:last-child { border-bottom: 0; }
.co-hub-link { display: inline-block; margin-top: 18px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
               color: var(--lime); text-decoration: none; border-bottom: 1px solid rgba(179,210,48,.4); padding-bottom: 3px; }
.co-hub-link:hover { border-color: var(--lime); }
@media (max-width: 900px) { .co-hub { grid-template-columns: 1fr; } .co-hub-terms { grid-template-columns: 1fr; } }

/* ── responsive ── */
@media (max-width: 1080px) {
  .co-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .co-team li { grid-template-columns: 96px minmax(0, 1fr); }
  .co-team p.bio { grid-column: 2; }
}
@media (max-width: 900px) {
  .co-hero-in { grid-template-columns: 1fr; gap: 34px; }
  .co-head, .co-statement { grid-template-columns: 1fr; }
  .co-head > p { padding-bottom: 0; }
  .co-principles { grid-template-columns: 1fr; }
  .co-ways li > * { grid-template-columns: 48px minmax(0, 1fr); }
  .co-ways p { grid-column: 2; margin-top: 8px; }
  .co-next { position: static; }
}
@media (max-width: 620px) {
  .co-stats { grid-template-columns: 1fr 1fr; gap: 0 20px; }
  .co-team li { grid-template-columns: 1fr; gap: 14px; }
  .co-team p.bio { grid-column: 1; }
  .co-office div { grid-template-columns: 1fr; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .co-rule, .co-photo, .co-facts, .co-roster, .co-office { animation: none; }
}

/* ── leadership photos, certifications, LinkedIn (tools/blueprint_leaders.py) ── */
.av.ph { padding: 0; overflow: hidden; background: none; }
.av.ph img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.co-roster .av.ph { border: 1px solid rgba(179,210,48,.55); }
.certs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.certs span { font: 500 10px/1 'IBM Plex Mono', monospace; letter-spacing: .12em; text-transform: uppercase;
              color: var(--text); border: 1px solid var(--line); border-radius: 100px; padding: 7px 10px; }
.li-link { display: flex; width: fit-content; align-items: center; gap: 8px; margin-top: 12px; min-height: 44px;
           color: var(--lime); text-decoration: none; font: 500 11px/1 'IBM Plex Mono', monospace;
           letter-spacing: .16em; text-transform: uppercase; }
.li-link svg { width: 16px; height: 16px; }
.li-link:hover > span:not(.sr-only) { text-decoration: underline; }

/* leaders: sr-only + anchor offset */
/* screen-reader-only text (the "opens in a new tab" note on LinkedIn links) */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
           clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* a name picked from the list at the top lands clear of the sticky bar + strip */
.co-team li { scroll-margin-top: calc(var(--navh, 73px) + 84px); }
