.cs-page { background: var(--paper); color: var(--ink); }

  /* ---------- HERO ---------- */
  .cs-hero { padding: 40px 0 64px; }
  .cs-hero-inner { max-width: 1120px; margin: 0 auto; padding: 0 32px; }

  .cs-breadcrumb {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-mono); font-size: 12px; color: var(--ink-3);
    margin-bottom: 32px;
  }
  .cs-breadcrumb a { color: inherit; text-decoration: none; }
  .cs-breadcrumb a:hover { color: var(--color-cobalt-400); }
  .cs-breadcrumb .cs-crumb-sep { color: var(--ink-3); }
  .cs-breadcrumb .cs-crumb-current { color: var(--ink-2); }

  .cs-hero-grid {
    display: grid; grid-template-columns: 1.05fr 0.95fr;
    gap: 56px; align-items: center;
  }

  /* industry eyebrow pill */
  .cs-eyebrow {
    display: inline-flex; align-items: center; padding: 5px 12px;
    background: var(--paper-2); border: 1px solid var(--paper-line);
    border-radius: var(--radius-pill); font-family: var(--font-mono); font-size: 11px;
    font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
    color: var(--color-cobalt-500); margin-bottom: 18px;
  }

  .cs-title {
    font-family: var(--font-display); font-weight: 800; font-size: 52px;
    line-height: 1.05; letter-spacing: -0.03em; margin: 0; color: var(--ink);
    text-wrap: balance;
  }
  .cs-lede {
    max-width: 520px; margin: 20px 0 0; font-size: 18px; line-height: 1.58;
    color: var(--ink-2);
  }

  /* meta strip below title */
  .cs-meta {
    display: flex; flex-wrap: wrap; gap: 24px 40px; margin-top: 28px;
    padding-top: 24px; border-top: 1px solid var(--paper-line);
  }
  .cs-meta-label {
    font-family: var(--font-mono); font-size: 10.5px; font-weight: 600;
    letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3);
    margin-bottom: 5px;
  }
  .cs-meta-value { font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.4; }
  .cs-meta-value a {
    color: inherit; text-decoration: none;
    border-bottom: 1px solid var(--paper-line);
  }
  .cs-meta-value a:hover { color: var(--color-accent); border-bottom-color: currentColor; }

  /* hero image / logo panel */
  .cs-hero-media {
    display: block; width: 100%; aspect-ratio: 4/3; border-radius: var(--radius-lg);
    overflow: hidden; border: 1px solid var(--paper-line); background: var(--paper-2);
  }
  .cs-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

  /* logo fallback when no storefront photo */
  .cs-hero-media--logo {
    display: flex; align-items: center; justify-content: center; padding: 48px;
  }
  .cs-hero-media--logo img {
    width: auto; max-width: 70%; height: auto; max-height: 60%; object-fit: contain;
  }

  /* ---------- STORY / BODY ---------- */
  .cs-story { padding: 84px 0; }
  .cs-story-inner {
    max-width: 1120px; margin: 0 auto; padding: 0 32px;
    display: grid; grid-template-columns: minmax(0, 1fr) 244px;
    gap: 72px; align-items: start;
  }
  .cs-story-main { min-width: 0; }
  .cs-story-main .cs-body { max-width: 720px; }

  /* sticky story rail — share + back nav */
  .cs-rail { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 26px; }
  .cs-rail-group { display: flex; flex-direction: column; gap: 12px; }
  .cs-rail-label {
    font-family: var(--font-mono); font-size: 11px; font-weight: 600;
    letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); margin: 0;
  }
  .cs-share { display: flex; gap: 8px; }
  .cs-share a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: var(--radius-md);
    border: 1px solid var(--paper-line); background: #fff; color: var(--ink-2);
    box-shadow: var(--shadow-control);
    transition: color .15s ease, border-color .15s ease, transform .15s ease;
  }
  .cs-share a:hover { color: var(--color-cobalt-400); border-color: var(--color-cobalt-200); transform: translateY(-2px); }
  .cs-rail-back { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--color-cobalt-400); text-decoration: none; }
  .cs-rail-back:hover { color: var(--color-cobalt-500); }

  /* ---------- PODCAST: Supply Stories feature ---------- */
  .cs-podcast { max-width: 720px; margin: 56px 0 0; padding-top: 44px; border-top: 1px solid var(--paper-line); }
  .cs-podcast-title { font-family: var(--font-display); font-weight: 800; font-size: 28px; line-height: 1.12; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 12px; }
  .cs-podcast-intro { font-size: 17px; line-height: 1.6; color: var(--ink-2); margin: 0 0 22px; max-width: 640px; }
  .cs-podcast-player { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; background: var(--ink); cursor: pointer; box-shadow: var(--shadow-elevated); }
  .cs-podcast-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease, filter .2s ease; }
  .cs-podcast-player:hover .cs-podcast-poster { transform: scale(1.02); filter: brightness(0.92); }
  .cs-podcast-play {
    position: absolute; inset: 0; margin: auto; width: 72px; height: 72px; border: 0;
    border-radius: var(--radius-pill); background: var(--color-cobalt-400); color: #fff;
    display: flex; align-items: center; justify-content: center; cursor: pointer;
    box-shadow: var(--shadow-elevated); transition: transform .15s ease, background .15s ease;
  }
  .cs-podcast-play svg { width: 32px; height: 32px; fill: currentColor; margin-left: 3px; }
  .cs-podcast-player:hover .cs-podcast-play { transform: scale(1.07); background: var(--color-cobalt-500); }
  .cs-podcast-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
  .cs-podcast-links { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 0; }
  .cs-podcast-link {
    display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px;
    border-radius: var(--radius-pill); border: 1px solid var(--paper-line); background: #fff;
    color: var(--ink-2); font-size: 14.5px; font-weight: 600; text-decoration: none;
    box-shadow: var(--shadow-control); transition: color .15s ease, border-color .15s ease, transform .15s ease;
  }
  .cs-podcast-link:hover { color: var(--color-cobalt-400); border-color: var(--color-cobalt-200); transform: translateY(-2px); }
  .cs-podcast-more { display: inline-block; margin: 20px 0 0; font-family: var(--font-mono); font-size: 13px; font-weight: 600; color: var(--color-cobalt-400); text-decoration: none; }
  .cs-podcast-more:hover { color: var(--color-cobalt-500); }

  /* Owner byline — sits at the foot of the hero copy. Same component as the insights byline
     (.article-meta in article.html) and the industry-page byline
     (.pillar-byline in pillar.html): hairline rule, 48px circular avatar, name
     at 15px/600, role in mono 12px underneath. */
  .cs-owner {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid var(--paper-line);
  }
  .cs-owner-avatar {
    display: block;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-pill);
    overflow: hidden;
    object-fit: cover;
    flex: none;
    border: 1.5px solid var(--paper-line);
  }
  .cs-owner-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
  }
  .cs-owner-name {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
  }
  /* Second line reads as metadata, like the date under an insights byline. */
  .cs-owner-role {
    display: block;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink-3);
  }
  /* Avatars step to 40px on a phone, per DESIGN_SYSTEM.md's inline-avatar rule. */
  @media (max-width: 767px) {
    .cs-owner-avatar { width: 40px; height: 40px; }
  }

  /* prose body */
  .cs-body { font-size: 17px; line-height: 1.7; color: var(--ink-2); }
  .cs-body h2 {
    font-family: var(--font-display); font-weight: 700; font-size: 26px;
    letter-spacing: -0.02em; margin: 48px 0 14px; color: var(--ink);
  }
  .cs-body h2:first-child { margin-top: 0; }
  .cs-body h3 {
    font-family: var(--font-display); font-weight: 700; font-size: 20px;
    letter-spacing: -0.015em; margin: 32px 0 12px; color: var(--ink);
  }
  .cs-body p { margin: 0 0 20px; }
  .cs-body a { color: var(--color-accent); text-decoration: none; border-bottom: 1px solid currentColor; }
  .cs-body a:hover { color: var(--color-cobalt-500, #201e9e); }
  .cs-body ul, .cs-body ol { margin: 0 0 24px; padding-left: 22px; }
  .cs-body li { margin: 0 0 10px; }
  .cs-body img {
    display: block; width: 100%; height: auto; border-radius: var(--radius-lg);
    overflow: hidden; border: 1px solid var(--paper-line); margin: 32px 0;
  }

  /* pull quote — cobalt left border, warm rose bg */
  .cs-body blockquote {
    margin: 32px 0; padding: 28px 32px;
    background: var(--paper-2); border: 1px solid var(--paper-line);
    border-radius: var(--radius-md);
    font-family: var(--font-display); font-weight: 600; font-size: 22px;
    line-height: 1.42; letter-spacing: -0.015em; color: var(--ink); text-wrap: pretty;
  }
  .cs-body blockquote p { margin: 0; }
  /* attribution span inside blockquote */
  .cs-body blockquote cite,
  .cs-body blockquote .cs-quote-attr {
    display: block; margin-top: 14px;
    font-family: var(--font-body); font-style: normal;
    font-weight: 500; font-size: 14px; color: var(--ink-3);
  }

  /* video embed */
  .cs-body .video-embed {
    position: relative; width: 100%; aspect-ratio: 16/9; margin: 32px 0;
    border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--paper-line);
  }
  .cs-body .video-embed iframe {
    position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
  }
  .cs-body .video-caption {
    margin: -18px 0 32px; font-size: 14px; line-height: 1.55; color: var(--ink-3);
    font-style: italic;
  }

  /* paired images inside prose */
  .cs-body .prose-image-pair {
    display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 32px 0;
  }
  .cs-body .prose-image-pair img { margin: 0; }

  /* ---------- SUPPLIERS / PARTNERS BAND ---------- */
  .cs-band {
    background: var(--paper-2);
    border-top: 1px solid var(--paper-line); border-bottom: 1px solid var(--paper-line);
    padding: 64px 0;
  }
  .cs-band-inner { max-width: 1120px; margin: 0 auto; padding: 0 32px; }
  .cs-band-eyebrow {
    font-family: var(--font-mono); font-size: 12px; font-weight: 600;
    letter-spacing: 0.07em; text-transform: uppercase; color: var(--color-cobalt-400);
    margin: 0 0 22px;
  }
  .cs-chips { display: flex; flex-wrap: wrap; gap: 10px; }
  .cs-chip {
    display: inline-flex; align-items: center; height: 40px; padding: 0 18px;
    background: #fff; border: 1px solid var(--paper-line); border-radius: var(--radius-pill);
    font-size: 14.5px; font-weight: 500; color: var(--ink); text-decoration: none;
  }
  a.cs-chip:hover { border-color: var(--color-accent); color: var(--color-accent); }

  /* ---------- RELATED CARDS ---------- */
  .cs-related { padding: 64px 0 84px; }
  .cs-related + .cs-related { padding-top: 0; }
  .cs-related-inner { max-width: 1120px; margin: 0 auto; padding: 0 32px; }
  .cs-related h2 {
    font-family: var(--font-display); font-weight: 700; font-size: 26px;
    letter-spacing: -0.02em; margin: 0 0 24px; color: var(--ink);
  }
  .cs-card-grid { display: grid; gap: 18px; }
  .cs-card-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .cs-card-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .cs-card {
    display: flex; flex-direction: column; background: #fff;
    border: 1px solid var(--paper-line); border-radius: var(--radius-lg); overflow: hidden;
    text-decoration: none; color: inherit; box-shadow: var(--shadow-control);
    transition: transform .15s ease, box-shadow .15s ease;
  }
  .cs-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-card-hover); }
  .cs-card-image { width: 100%; aspect-ratio: 16/10; overflow: hidden; background: var(--paper-2); }
  .cs-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .cs-card-body { padding: 18px 20px 22px; flex: 1; }
  .cs-card-title {
    font-family: var(--font-display); font-weight: 700; font-size: 17px;
    letter-spacing: -0.015em; color: var(--ink); margin: 0;
  }
  .cs-card-meta,
  .cs-card-excerpt { font-size: 14px; line-height: 1.5; color: var(--ink-3); margin: 8px 0 0; }

  /* Final CTA: shared .cta component (templates/_cta.html) */

  /* ---------- LIGHTBOX ---------- */
  .lightbox {
    position: fixed; inset: 0; z-index: 200; display: flex; align-items: center;
    justify-content: center; background: rgba(23,20,18,0.82); padding: 32px;
    opacity: 0; pointer-events: none; transition: opacity .2s ease;
  }
  .lightbox.active { opacity: 1; pointer-events: auto; }
  .lightbox-img { max-width: 92vw; max-height: 88vh; border-radius: var(--radius-md); }
  .lightbox-close {
    position: absolute; top: 20px; right: 24px; width: 44px; height: 44px;
    border: none; background: #fff; color: var(--ink); border-radius: var(--radius-pill);
    font-size: 26px; line-height: 1; cursor: pointer;
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 1199px) {
    .cs-title { font-size: 44px; }
  }
  @media (max-width: 767px) {
    .cs-hero { padding: 28px 0 48px; }
    .cs-hero-inner { padding-left: 20px; padding-right: 20px; }
    .cs-hero-grid { grid-template-columns: 1fr; gap: 28px; }
    /* media comes second on mobile — move it after text */
    .cs-hero-grid .cs-hero-copy { order: 1; }
    .cs-hero-grid .cs-hero-media { order: 2; }
    .cs-title { font-size: 34px; }
    .cs-story { padding: 56px 0; }
    .cs-story-inner { grid-template-columns: 1fr; gap: 0; padding-left: 20px; padding-right: 20px; }
    .cs-story-main .cs-body { max-width: none; }
    .cs-rail { display: none; }
    .cs-band { padding: 48px 0; }
    .cs-band-inner { padding-left: 20px; padding-right: 20px; }
    .cs-related { padding: 48px 0 56px; }
    .cs-related-inner { padding-left: 20px; padding-right: 20px; }
    .cs-card-grid--2, .cs-card-grid--3 { grid-template-columns: 1fr; }
    .cs-body .prose-image-pair { grid-template-columns: 1fr; }
    .cs-body blockquote { font-size: 18px; padding: 22px 24px; }
  }
