/* ree-source.com/industries (one-page PDFs). Uses site.css variables and .btn. */
.osp-narrow { max-width: 900px; }
.osp-hero { padding-bottom: 40px; }
.osp-hero h1 { font-size: clamp(2.1rem, 5.5vw, 3.4rem); max-width: 22ch; line-height: 1.12; }
.osp-lede { margin-top: 20px; font-size: 1.1rem; line-height: 1.55; color: var(--body); max-width: 60ch; }
.osp-note { margin-top: 14px; color: var(--mute); font-size: 0.92rem; }
.oc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.osp-section { padding: 48px 0; border-top: 1px solid var(--hairline); }
.osp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.osp-card { display: grid; grid-template-columns: 150px 1fr; gap: 20px; background: var(--card); border: 1px solid var(--hairline); border-top: 2px solid rgba(255, 99, 8, 0.7); border-radius: 14px; padding: 20px; }
.osp-thumb { display: block; align-self: start; border-radius: 8px; overflow: hidden; border: 1px solid var(--hairline); background: #fff; }
.osp-thumb img { display: block; width: 100%; height: auto; }
.osp-label { color: var(--pulse-soft); font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; }
.osp-card h2 { margin-top: 8px; font-size: 1.2rem; line-height: 1.3; letter-spacing: -0.02em; color: var(--ink); }
.osp-card p { margin-top: 8px; color: var(--body); font-size: 0.96rem; line-height: 1.55; }
.osp-actions { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.osp-actions .btn { padding: 11px 16px; font-size: 0.92rem; }
.osp-soon { color: var(--mute); font-size: 0.9rem; }

.osp-close h2 { font-size: clamp(1.6rem, 3.6vw, 2.2rem); max-width: 28ch; line-height: 1.18; }
.osp-ctas { margin-top: 26px; }
.osp-book-lg { padding: 20px 32px; font-size: 1.1rem; font-weight: 600; }
.osp-trigger { margin-top: 12px; font-size: 0.92rem; color: var(--body); }
.osp-by { margin-top: 26px; display: flex; align-items: center; gap: 12px; color: var(--mute); font-size: 0.9rem; }
.osp-by strong { color: var(--body); font-weight: 500; }

@media (max-width: 960px) { .osp-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .osp-card { grid-template-columns: 1fr; }
  .osp-thumb { max-width: 220px; }
  .osp-actions .btn, .osp-book-lg { display: block; width: 100%; text-align: center; }
}

/* ===== v2: individual industry pages (/industries/<slug>/) ===== */
.ix-crumb { margin-bottom: 18px; font-size: 0.9rem; }
.ix-crumb a, .ix-pdf, .ix-src-list a, .osp-card h2 a { color: var(--ink); text-decoration: underline; text-decoration-color: rgba(255, 99, 8, 0.5); text-underline-offset: 3px; }
.ix-crumb a:hover, .ix-pdf:hover { text-decoration-color: var(--pulse); }
.ix-crumb-end { margin-top: 28px; margin-bottom: 0; }
.ix-hero h1 em { font-style: normal; color: var(--pulse); }
.ix-hok { margin-top: 14px; color: var(--ink); font-weight: 500; }
.ix-hok::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 10px; border-radius: 50%; border: 2px solid var(--pulse); }
.ix-ctas { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.ix-pdf { font-size: 0.92rem; color: var(--body); }

.ix-vs { background: var(--card); border: 1px solid var(--hairline); border-radius: 14px; padding: 20px 22px; }
.ix-vs-t { font-weight: 600; color: var(--ink); }
.ix-vs ul { list-style: none; margin-top: 10px; display: grid; gap: 8px; color: var(--body); }
.ix-vs b { color: var(--ink); }

.ix-body { display: grid; gap: 36px; }
.ix-body svg { flex: none; }
.ix-h, .ix .sechead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font-size: 1.35rem; line-height: 1.25; letter-spacing: -0.02em; margin-bottom: 16px; color: var(--ink); }
.ix .sechead .tag { font-weight: 600; }
.ix .sechead .ex, .ix .tlnote { font-family: "IBM Plex Mono", monospace; font-size: 0.76rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--pulse-soft); font-weight: 400; }
.ix .ib { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; background: rgba(255, 99, 8, 0.16); flex: none; }
.ix .ib svg { stroke: var(--pulse); }

/* Card grids */
.ix .cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ix .col { display: grid; gap: 14px; align-content: start; }
.ix .grid, .ix .grid3, .ix .grid6 { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.ix .card { background: var(--card); border: 1px solid var(--hairline); border-top: 2px solid rgba(255, 99, 8, 0.7); border-radius: 14px; padding: 18px 20px 20px; }
.ix .card.dark, .ix .card.hl, .ix .card.pilot { background: #1d1410; border-color: rgba(255, 99, 8, 0.45); }
.ix .card h3 { display: flex; align-items: center; gap: 10px; font-size: 1.08rem; line-height: 1.3; color: var(--ink); }
.ix ul { list-style: none; }
.ix .card ul, .ix .ix-org ul { margin-top: 10px; display: grid; gap: 6px; }
.ix .card li, .ix .gi, .ix .li, .ix .pi { position: relative; padding-left: 18px; color: var(--body); line-height: 1.5; }
.ix .card li::before, .ix .gi::before, .ix .li::before, .ix .pi::before { content: ""; position: absolute; left: 2px; top: 0.6em; width: 6px; height: 6px; border-radius: 50%; background: var(--pulse); }
.ix .gi svg, .ix .li svg, .ix .hi svg, .ix .fs svg { display: none; }
.ix .both { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.ix .bt { display: none; }
.ix .both::before { content: "Both sides"; grid-column: 1 / -1; font-family: "IBM Plex Mono", monospace; font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pulse-soft); }

/* Chief of Staff brief */
.ix .cos { display: grid; grid-template-columns: minmax(200px, 260px) 1fr; gap: 16px; align-items: center; background: var(--card); border: 1px solid rgba(255, 99, 8, 0.45); border-radius: 14px; padding: 18px 20px; margin-bottom: 14px; }
.ix .cos .l { display: flex; align-items: center; gap: 12px; }
.ix .cos .l b { display: block; color: var(--ink); }
.ix .cos .l span:not(.ib) { display: block; color: var(--mute); font-size: 0.9rem; }
.ix .cos .items { display: flex; flex-wrap: wrap; gap: 8px; }
.ix .cos .it, .ix .pill { background: var(--pill); border: 1px solid var(--hairline); border-radius: 999px; padding: 6px 12px; font-size: 0.88rem; color: var(--ink); }

/* Timeline and flows */
.ix .tl { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.ix .step { background: var(--card); border: 1px solid var(--hairline); border-radius: 12px; padding: 14px 16px; }
.ix .step .node { display: none; }
.ix .step .time { font-family: "IBM Plex Mono", monospace; color: var(--pulse); font-size: 0.86rem; }
.ix .step .what { margin-top: 4px; color: var(--body); }
.ix .flow { display: flex; flex-wrap: wrap; gap: 10px; counter-reset: fs; }
.ix .fs { counter-increment: fs; flex: 1 1 160px; background: var(--card); border: 1px solid var(--hairline); border-radius: 12px; padding: 14px 16px; color: var(--body); }
.ix .fs::before { content: counter(fs); display: block; font-family: "IBM Plex Mono", monospace; color: var(--pulse); font-size: 0.86rem; margin-bottom: 4px; }
.ix .fs.you { border-color: rgba(255, 99, 8, 0.6); color: var(--ink); }

/* Boxes: home, guard, legs, POS, big */
.ix .home, .ix .guard, .ix .legs, .ix .pos, .ix .big { background: var(--card); border: 1px solid var(--hairline); border-radius: 14px; padding: 20px 22px; }
.ix .home h3, .ix .guard h3, .ix .legs h3 { display: flex; align-items: center; gap: 10px; font-size: 1.1rem; color: var(--ink); margin-bottom: 12px; }
.ix .home { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 20px; }
.ix .home h3 { grid-column: 1 / -1; margin-bottom: 0; }
.ix .hi { color: var(--body); line-height: 1.5; }
.ix .hi.note { color: var(--mute); font-style: italic; }
.ix .gl, .ix .pl { display: grid; gap: 10px; }
.ix .guard { border-color: rgba(255, 99, 8, 0.45); }
.ix .gi b, .ix .li b, .ix .pi b { color: var(--ink); }
.ix .legs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 20px; }
.ix .legs h3 { grid-column: 1 / -1; margin-bottom: 0; }
.ix .ph b { display: block; font-size: 1.1rem; color: var(--ink); }
.ix .ph span { display: block; color: var(--mute); margin: 4px 0 12px; }
.ix .big { display: grid; gap: 14px; }
.ix .bh { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ix .bh b { font-size: 1.1rem; color: var(--ink); }
.ix .bx { color: var(--mute); font-size: 0.92rem; }
.ix .bf { display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--body); }

/* Broker org chart */
.ix-org-list { list-style: none; display: grid; gap: 10px; }
.ix-org-list > li { background: var(--card); border: 1px solid var(--hairline); border-radius: 12px; padding: 14px 18px; }
.ix-org-list b { color: var(--ink); display: block; }
.ix-org-list span { color: var(--mute); font-size: 0.92rem; }
.ix-org-cos { border-color: rgba(255, 99, 8, 0.6) !important; }
.ix-org-agents ul { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px !important; }
.ix-org-agents ul li { background: var(--void-soft); border: 1px solid var(--hairline); border-radius: 10px; padding: 10px 12px; }
.ix-org-note { font-family: "IBM Plex Mono", monospace; font-size: 0.76rem !important; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pulse-soft) !important; }

/* Documented examples table */
.ix-tablewrap { overflow-x: auto; border: 1px solid var(--hairline); border-radius: 14px; }
.ix-table { width: 100%; border-collapse: collapse; font-size: 0.96rem; }
.ix-table th, .ix-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--hairline); vertical-align: top; color: var(--body); }
.ix-table th { font-family: "IBM Plex Mono", monospace; font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--mute); font-weight: 400; background: var(--void-soft); }
.ix-table tr:last-child td { border-bottom: 0; }
.ix-table b { color: var(--ink); }
.ix-fn a { color: var(--pulse); text-decoration: none; padding: 0 2px; font-size: 0.8em; }
.ix-src-list { margin-top: 16px; padding-left: 22px; display: grid; gap: 10px; color: var(--body); font-size: 0.92rem; line-height: 1.55; overflow-wrap: anywhere; }
.ix-src-list b { color: var(--ink); font-weight: 500; display: block; }
.ix-back { text-decoration: none !important; }
:target { scroll-margin-top: 90px; }
.ix-cred { color: var(--body); font-size: 1.05rem; line-height: 1.6; border-left: 3px solid var(--pulse); padding-left: 16px; max-width: 70ch; }
.ix-cred b { color: var(--ink); }

@media (max-width: 760px) {
  .ix .cols, .ix .cos { grid-template-columns: 1fr; }
  .ix-table thead { display: none; }
  .ix-table, .ix-table tbody, .ix-table tr, .ix-table td { display: block; width: 100%; }
  .ix-table tr { border-bottom: 1px solid var(--hairline); padding: 8px 0; }
  .ix-table td { border: 0; padding: 4px 16px; }
  .ix-table td::before { content: attr(data-label); display: block; font-family: "IBM Plex Mono", monospace; font-size: 0.7rem; text-transform: uppercase; color: var(--mute); }
  .ix-ctas .btn { width: 100%; }
}
.osp-pdfline { margin-top: 6px !important; font-size: 0.88rem; }
.ix .sechead, .ix .ix-h, .ix-org h2 { max-width: none; display: block; }
.ix .sechead .tag, .ix .ix-h .tag { display: block; }
.ix .sechead .ex { display: block; margin-top: 6px; }
.ix .cos .it svg, .ix .bf svg { vertical-align: -2px; margin-right: 6px; }
