.portfolio-intro { max-width:780px; padding:80px 0 72px; border-bottom:1px solid var(--ip-rule); }
.portfolio-intro-title { font-family:var(--font-display); font-size:clamp(30px,4vw,52px); font-weight:300; line-height:1.1; color:var(--ip-black); margin-bottom:22px; }
.portfolio-intro-title em { font-style:italic; }
.portfolio-intro-body { font-size:15.5px; color:var(--ip-mid); line-height:1.85; }

/* Company cards — full-width alternating */
.co-card { display:grid; grid-template-columns:1fr 1fr; min-height:480px; border-bottom:1px solid var(--ip-rule); }
.co-card:last-child { border-bottom:none; }
.co-card.alt { }
.co-identity { padding:64px 60px; display:flex; flex-direction:column; justify-content:center; }
.co-card.alt .co-identity { order:2; background:var(--ip-light); }
.co-card:not(.alt) .co-identity { background:var(--ip-black); }
.co-card:not(.alt) .co-body-col { background:var(--ip-white); }
.co-card.alt .co-body-col { background:var(--ip-white); order:1; }

.co-num { font-family:var(--font-display); font-size:72px; font-weight:300; line-height:1; margin-bottom:12px; }
.co-card:not(.alt) .co-num { color:rgba(255,255,255,.06); }
.co-card.alt .co-num { color:rgba(0,0,0,.05); }
.co-eyebrow { font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ip-red); margin-bottom:12px; font-weight:400; }
.co-name { font-family:var(--font-display); font-size:clamp(32px,4vw,52px); font-weight:300; line-height:1.05; margin-bottom:6px; }
.co-card:not(.alt) .co-name { color:white; }
.co-card.alt .co-name { color:var(--ip-black); }
.co-tagline { font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid; }
.co-card:not(.alt) .co-tagline { color:rgba(255,255,255,.3); border-bottom-color:rgba(255,255,255,.1); }
.co-card.alt .co-tagline { color:var(--ip-muted); border-bottom-color:var(--ip-rule); }
.co-desc { font-size:14px; line-height:1.8; margin-bottom:28px; }
.co-card:not(.alt) .co-desc { color:rgba(255,255,255,.6); }
.co-card.alt .co-desc { color:var(--ip-mid); }
.co-link { display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; transition:gap var(--tr); }
.co-card:not(.alt) .co-link { color:var(--ip-red); }
.co-card.alt .co-link { color:var(--ip-red); }
.co-link:hover { gap:16px; }
.co-link svg { width:14px; height:14px; }

.co-body-col { padding:64px 60px; display:flex; flex-direction:column; justify-content:center; }
.co-pills { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.co-pill { font-size:11px; letter-spacing:.06em; color:var(--ip-mid); background:var(--ip-light); border:1px solid var(--ip-rule); padding:6px 14px; border-radius:2px; }
.co-capabilities { list-style:none; }
.co-cap { padding:11px 0; border-bottom:1px solid var(--ip-rule); font-size:13.5px; color:var(--ip-charcoal); display:flex; gap:12px; align-items:baseline; }
.co-cap:last-child { border-bottom:none; }
.co-cap::before { content:'→'; color:var(--ip-red); flex-shrink:0; font-size:11px; }
.co-external-link { display:inline-flex; align-items:center; gap:8px; font-size:11.5px; color:var(--ip-muted); text-decoration:none; margin-top:24px; padding:10px 16px; border:1px solid var(--ip-rule); border-radius:2px; transition:all var(--tr); }
.co-external-link:hover { border-color:var(--ip-red); color:var(--ip-red); }
.co-external-link svg { width:12px; height:12px; }

/* Holdings diagram */
.holdings-diagram { padding:80px 0; background:var(--ip-black); }
.hd-title { font-family:var(--font-display); font-size:clamp(26px,3vw,40px); font-weight:300; color:white; margin-bottom:52px; }
.hd-title em { font-style:italic; color:rgba(255,255,255,.45); }
.hd-grid { display:grid; grid-template-columns:1fr 3px 1fr 3px 1fr; gap:0; align-items:start; }
.hd-line { background:rgba(192,57,43,.4); height:100%; }
.hd-co { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); padding:32px 28px; }
.hd-co-name { font-family:var(--font-display); font-size:22px; font-weight:300; color:white; margin-bottom:6px; }
.hd-co-tag { font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ip-red); margin-bottom:14px; }
.hd-co-desc { font-size:12.5px; color:rgba(255,255,255,.45); line-height:1.65; margin-bottom:16px; }
.hd-co-link { font-size:11px; color:rgba(255,255,255,.3); text-decoration:none; letter-spacing:.06em; text-transform:uppercase; transition:color var(--tr); }
.hd-co-link:hover { color:var(--ip-red); }
.hd-parent { background:rgba(192,57,43,.12); border:1px solid rgba(192,57,43,.3); padding:40px; text-align:center; margin-bottom:40px; }
.hd-parent-name { font-family:var(--font-display); font-size:30px; font-weight:300; color:white; margin-bottom:6px; }
.hd-parent-tag { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.4); }
.hd-connector { display:flex; justify-content:center; margin-bottom:20px; }
.hd-connector-line { width:1px; height:40px; background:rgba(192,57,43,.4); }

@media(max-width:900px){
  .co-card,.co-card.alt { grid-template-columns:1fr; min-height:auto; }
  .co-card.alt .co-identity { order:0; }
  .co-card.alt .co-body-col { order:0; }
  .co-identity,.co-body-col { padding:40px 28px; }
  .hd-grid { grid-template-columns:1fr; }
  .hd-line { display:none; }
}
