/* ============================================================
   OwnAI — Individual blog post page styles
   Extends assets/styles.css tokens. No framework. No new tokens.
   v2026-05-20 — unified 9-zone template (callouts ×5, key-takeaways,
   stat-cluster, pull-quote, share-row, prev-next, post-cta-strip,
   read-progress, print block).
   ============================================================ */

/* ===== Zone 0 — Reading-progress bar ===== */
.read-progress {
  position: fixed; top: 0; left: 0;
  height: 2px; width: 0%;
  background: var(--c-accent-pharma);
  opacity: .85;
  z-index: 60;
  transition: width 80ms linear;
  will-change: width;
}
@media (prefers-reduced-motion: reduce) {
  .read-progress { transition: none; }
}

/* ===== Zone 1 — Post hero ===== */
.post-hero {
  background: var(--c-bg-default);
  border-bottom: 1px solid var(--c-border-default);
}
.post-hero-inner {
  padding-block: 56px;
  max-width: 860px;
}
@media (min-width: 1024px) { .post-hero-inner { padding-block: 80px; } }

.post-hero .breadcrumb {
  display: inline-flex; gap: 8px; align-items: center;
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xs);
  color: var(--c-fg-muted);
  letter-spacing: 0.06em;
  margin-bottom: 20px;
}
.post-hero .breadcrumb a { text-decoration: none; color: var(--c-fg-muted); }
.post-hero .breadcrumb a:hover { color: var(--c-fg-default); }
.post-hero .breadcrumb .sep { color: var(--c-border-strong); }

.post-meta-top {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  margin-bottom: 20px;
}
.post-meta-row {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  margin-bottom: 20px;
}
.post-hero h1 {
  font-size: var(--t-4xl); line-height: 1.15;
  letter-spacing: -0.02em;
  text-wrap: balance;
  max-width: 22ch;
}
@media (min-width: 768px) { .post-hero h1 { font-size: var(--t-5xl); line-height: 1.1; } }

.post-hero .lede {
  color: var(--c-fg-muted);
  margin-top: 20px;
  max-width: 64ch;
  font-size: var(--t-lg); line-height: 1.6;
}
@media (min-width: 768px) { .post-hero .lede { font-size: var(--t-xl); } }

/* Byline (shared with blog.css) */
.byline {
  display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center;
  margin-top: 24px;
  font-size: var(--t-sm);
  color: var(--c-fg-muted);
}
.byline a { color: var(--c-fg-default); text-decoration: none; font-weight: 600; }
.byline a:hover { text-decoration: underline; text-underline-offset: 3px; }
.byline .author-init {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--c-fg-default);
  color: var(--c-fg-inverse);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.byline .dot { color: var(--c-border-strong); }
.byline .role-sub { color: var(--c-fg-subtle); font-size: var(--t-xs); }
.byline time { font-variant-numeric: tabular-nums; }

/* E-E-A-T audit aliases (WU-15) — additive selectors that mirror .byline
   so squirrelscan eeat/author-byline + eeat/content-dates rules detect
   the byline + visible publish date. No visual change; the existing
   .byline styles still apply. */
.post-byline { /* alias of .byline; shares all existing rules */ }
.post-author { font-weight: 600; }
.post-author a { color: var(--c-fg-default); text-decoration: none; }
.post-author a:hover { text-decoration: underline; text-underline-offset: 3px; }
.post-sep { color: var(--c-border-strong); }
.post-date { font-variant-numeric: tabular-nums; }

/* cat-tag (self-contained for post pages) */
.cat-tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--r-pill);
  border: 1px solid;
}
.cat-tag.tech    { color: var(--c-fg-default); background: var(--c-bg-elevated); border-color: var(--c-border-default); }
.cat-tag.reg     { color: var(--c-warning);    background: #FFFBEB; border-color: rgba(217,119,6,0.25); }
.cat-tag.nbfc    { color: #7C3AED;             background: rgba(124,58,237,0.08); border-color: rgba(124,58,237,0.22); }
.cat-tag.pharma  { color: #2563EB;             background: rgba(37,99,235,0.08); border-color: rgba(37,99,235,0.22); }
.cat-tag.privacy { color: #2563EB;             background: rgba(37,99,235,0.08); border-color: rgba(37,99,235,0.22); }
.cat-tag.cost    { color: var(--c-positive);   background: var(--c-positive-bg); border-color: rgba(22,163,74,0.25); }
.cat-tag.case    { color: #7C3AED;             background: rgba(124,58,237,0.08); border-color: rgba(124,58,237,0.22); }

/* Hero illustration figure */
.post-hero-art {
  margin-top: 32px;
  border-radius: var(--r-card);
  overflow: hidden;
  border: 1px solid var(--c-border-default);
  background: var(--c-bg-elevated);
}
.hero-fig { margin: 0; }
.hero-fig svg { width: 100%; height: auto; display: block; }

.post-excerpt {
  color: var(--c-fg-muted);
  margin-top: 20px;
  max-width: 64ch;
  font-size: var(--t-lg); line-height: 1.6;
}
@media (min-width: 768px) { .post-excerpt { font-size: var(--t-xl); } }

/* ===== Layout (2-col with sidebar) ===== */
.post-body-section { padding-block: 64px; }

.post-layout {
  display: grid;
  /* minmax(0, 1fr) at mobile too — without this, grid items grow to
     their min-content width (wide tables, hero SVGs, <pre> blocks),
     pushing the article column past the viewport on phones. */
  grid-template-columns: minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}
/* Belt + braces: article columns must be able to shrink below their
   intrinsic content width so .table-wrap's overflow-x kicks in. */
.post-body, .post-article {
  min-width: 0;
}
@media (min-width: 1024px) {
  .post-layout {
    grid-template-columns: minmax(0, 1fr) 296px;
    gap: 64px;
  }
}

/* Mobile <details> "Contents" disclosure (replaces sidebar TOC <1024px) */
.toc-disclosure {
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  background: var(--c-bg-default);
  margin-block: 0 32px;
}
.toc-disclosure > summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 18px;
  display: flex; align-items: center; gap: 10px;
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-fg-muted);
  min-height: 44px;
}
.toc-disclosure > summary::-webkit-details-marker { display: none; }
.toc-disclosure > summary .chev { margin-left: auto; transition: transform var(--tx); }
.toc-disclosure[open] > summary .chev { transform: rotate(180deg); }
.toc-disclosure .toc-body { padding: 0 18px 16px; }
@media (min-width: 1024px) { .toc-disclosure { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .toc-disclosure > summary .chev { transition: none; }
}

/* ===== Zone 2 — Key Takeaways ===== */
.key-takeaways {
  background: var(--c-bg-elevated);
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  padding: 28px 32px;
  margin-block: 8px 56px;
}
@media (max-width: 767px) { .key-takeaways { padding: 22px 24px; } }
.key-takeaways h2 {
  font-size: var(--t-base) !important;
  font-family: "JetBrains Mono", monospace;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-fg-muted);
  margin-block: 0 16px !important;
  scroll-margin-top: 0;
}
.key-takeaways ol {
  counter-reset: kt;
  list-style: none;
  padding: 0;
  margin: 0;
}
.key-takeaways li {
  counter-increment: kt;
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  padding: 12px 0;
  font-size: var(--t-base);
  line-height: 1.6;
  color: var(--c-fg-default);
  border-bottom: 1px solid var(--c-border-default);
}
.key-takeaways li:last-child { border-bottom: none; }
.key-takeaways li::before {
  content: counter(kt, decimal-leading-zero);
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-sm);
  font-weight: 700;
  color: var(--c-accent-pharma);
  line-height: 1.6;
}

/* ===== Zone 3 — Article prose ===== */
.post-article,
.post-body {
  max-width: 72ch;
}
.post-article p,
.post-body p {
  font-size: var(--t-base);
  line-height: 1.75;
  color: var(--c-fg-muted);
  margin-block: 0 20px;
}
.post-article p.lede,
.post-body p.lede {
  font-size: var(--t-lg);
  line-height: 1.65;
  color: var(--c-fg-default);
  margin-bottom: 28px;
}
@media (min-width: 768px) {
  .post-article p.lede, .post-body p.lede { font-size: var(--t-xl); }
}
.post-article p strong,
.post-body p strong { color: var(--c-fg-default); font-weight: 600; }

.post-article h2,
.post-body h2 {
  position: relative;
  font-size: var(--t-2xl);
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--c-fg-default);
  margin-block: 48px 16px;
  scroll-margin-top: 80px;
}
@media (min-width: 768px) {
  .post-article h2, .post-body h2 { font-size: var(--t-3xl); }
}

.post-article h3,
.post-body h3 {
  position: relative;
  font-size: var(--t-xl);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--c-fg-default);
  margin-block: 32px 12px;
}

/* Heading anchor link (hover-only) */
.post-body h2 .anchor-link,
.post-body h3 .anchor-link {
  position: absolute; right: -28px; top: 50%;
  transform: translateY(-50%);
  font-family: "JetBrains Mono", monospace;
  color: var(--c-border-strong);
  text-decoration: none;
  opacity: 0;
  transition: opacity 150ms ease-out;
  font-weight: 500;
  font-size: 0.6em;
  padding: 4px 6px;
  min-width: 44px; min-height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
}
.post-body h2:hover .anchor-link,
.post-body h2:focus-within .anchor-link,
.post-body h3:hover .anchor-link,
.post-body h3:focus-within .anchor-link {
  opacity: 1;
}
.post-body h2 .anchor-link:focus-visible,
.post-body h3 .anchor-link:focus-visible {
  opacity: 1; outline: 2px solid var(--c-focus); outline-offset: 2px;
}
@media (max-width: 1023px) {
  .post-body h2 .anchor-link,
  .post-body h3 .anchor-link { right: auto; left: -28px; }
}
@media (prefers-reduced-motion: reduce) {
  .post-body h2 .anchor-link, .post-body h3 .anchor-link { transition: none; }
}

.post-article a,
.post-body a {
  color: var(--c-accent-pharma);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.post-article a:hover,
.post-body a:hover { text-decoration-thickness: 2px; }

.post-article ol, .post-article ul,
.post-body ol,    .post-body ul {
  padding-left: 24px;
  margin-block: 0 20px;
}
.post-article li,
.post-body li {
  font-size: var(--t-base);
  line-height: 1.7;
  color: var(--c-fg-muted);
  margin-bottom: 8px;
}
.post-article li strong,
.post-body li strong { color: var(--c-fg-default); }

.post-article ol.decision-tree,
.post-body ol.decision-tree {
  list-style: none;
  padding-left: 0;
  counter-reset: dt;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.post-article ol.decision-tree li,
.post-body ol.decision-tree li {
  counter-increment: dt;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  padding: 16px 20px;
  background: var(--c-bg-elevated);
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  margin-bottom: 0;
}
.post-article ol.decision-tree li::before,
.post-body ol.decision-tree li::before {
  content: counter(dt);
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px;
  min-width: 24px;
  border-radius: 50%;
  background: var(--c-fg-default);
  color: var(--c-fg-inverse);
  font-size: var(--t-xs);
  font-weight: 700;
  font-family: "JetBrains Mono", monospace;
  margin-top: 2px;
}

.post-article pre,
.post-body pre {
  background: var(--c-bg-inverse);
  border-radius: var(--r-card);
  padding: 20px 24px;
  overflow-x: auto;
  margin-block: 0 20px;
}
.post-article pre code,
.post-body pre code {
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-sm);
  line-height: 1.6;
  color: var(--c-fg-inverse-muted);
  background: none;
  padding: 0;
  border: none;
}
.post-article code,
.post-body code {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.875em;
  background: var(--c-bg-elevated);
  border: 1px solid var(--c-border-default);
  border-radius: 4px;
  padding: 2px 6px;
}

/* ===== Inline tables ===== */
.table-wrap {
  overflow-x: auto;
  margin-block: 0 8px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
}
.table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--t-sm);
  line-height: 1.5;
}
.table-wrap table caption {
  caption-side: top;
  text-align: left;
  padding: 12px 16px;
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-fg-muted);
  background: var(--c-bg-elevated);
  border-bottom: 1px solid var(--c-border-default);
  font-weight: 700;
}
.table-wrap table thead tr { background: var(--c-bg-inverse); }
.table-wrap table thead th {
  padding: 12px 16px;
  text-align: left;
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-fg-inverse-muted);
  white-space: nowrap;
}
.table-wrap table thead th:first-child { color: var(--c-fg-inverse); }
.table-wrap table tbody tr {
  border-top: 1px solid var(--c-border-default);
  transition: background var(--tx);
}
.table-wrap table tbody tr:nth-child(even) { background: rgba(248,250,252,0.4); }
.table-wrap table tbody tr:hover { background: var(--c-bg-elevated); }
.table-wrap table tbody td {
  padding: 12px 16px;
  color: var(--c-fg-muted);
  vertical-align: top;
}
.table-wrap table tbody td:first-child {
  color: var(--c-fg-default);
  font-weight: 500;
  white-space: nowrap;
}
.td-note {
  display: block;
  font-size: var(--t-xs);
  color: var(--c-fg-subtle);
  margin-top: 2px;
  font-weight: 400;
}
.table-source {
  font-size: var(--t-xs) !important;
  color: var(--c-fg-subtle) !important;
  border-left: 3px solid var(--c-border-default);
  padding-left: 12px;
  margin-top: 0 !important;
  margin-bottom: 40px !important;
  line-height: 1.6 !important;
}

/* ===== Zone 4 — Callouts (5 variants) ===== */
.callout {
  border-radius: var(--r-card);
  padding: 24px 28px;
  margin-block: 40px;
  border-left: 4px solid var(--c-accent-pharma);
  background: var(--c-bg-inverse);
}
@media (max-width: 767px) { .callout { padding: 20px 22px; } }
.callout-label {
  display: flex; align-items: center; gap: 8px;
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
  color: var(--c-accent-pharma);
}
.callout-label svg, .callout-icon { flex-shrink: 0; }
.callout h3 {
  font-size: var(--t-lg) !important;
  font-family: "Inter", system-ui, sans-serif !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 600;
  color: var(--c-fg-default) !important;
  margin-block: 0 8px !important;
}
.callout p {
  font-size: var(--t-base) !important;
  line-height: 1.65 !important;
  color: var(--c-fg-default) !important;
  margin-bottom: 0 !important;
}
.callout p + p { margin-top: 12px !important; }
.callout em { font-style: italic; }

/* Variant: takeaway (dark, accent-pharma) */
.callout-takeaway {
  background: var(--c-bg-inverse);
  border-left-color: var(--c-accent-pharma);
}
.callout-takeaway .callout-label { color: var(--c-accent-pharma); }
.callout-takeaway h3 { color: var(--c-fg-inverse) !important; }
.callout-takeaway p { color: var(--c-fg-inverse) !important; }
.callout-takeaway p .muted { color: var(--c-fg-inverse-muted); }

/* Variant: warning (amber) */
.callout-warning {
  background: #FFFBEB;
  border-left-color: var(--c-warning);
}
.callout-warning .callout-label { color: var(--c-warning); }

/* Variant: regulation (slate) */
.callout-regulation {
  background: var(--c-bg-elevated);
  border-left-color: var(--c-fg-default);
}
.callout-regulation .callout-label { color: var(--c-fg-default); }

/* Variant: definition (teal) */
.callout-definition {
  background: #F0FDFA;
  border-left-color: #0D9488;
}
.callout-definition .callout-label { color: #0D9488; }

/* Variant: counter (red) */
.callout-counter {
  background: #FEF2F2;
  border-left-color: var(--c-risk);
}
.callout-counter .callout-label { color: var(--c-risk); }

/* Back-compat — old single-variant callout-blue (light accent box) */
.callout.callout-blue {
  background: rgba(37,99,235,0.04);
  border-left: 4px solid var(--c-accent-pharma);
  border-radius: var(--r-card);
}
.callout.callout-blue h3 { color: var(--c-accent-pharma) !important; }
.callout.callout-blue p { color: var(--c-fg-muted) !important; }

/* ===== Zone 5 — Inline figures ===== */
.post-figure {
  margin: 32px 0 40px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--c-bg-elevated);
}
.post-figure svg { width: 100%; height: auto; display: block; }
.post-figure figcaption {
  padding: 12px 16px;
  font-size: var(--t-xs);
  color: var(--c-fg-subtle);
  background: var(--c-bg-default);
  border-top: 1px solid var(--c-border-default);
  line-height: 1.5;
}

/* Stat-card cluster */
.stat-cluster {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-block: 32px 40px;
}
@media (min-width: 640px) {
  .stat-cluster { grid-template-columns: repeat(3, 1fr); gap: 20px; }
}
.stat-card {
  padding: 20px 24px;
  background: var(--c-bg-elevated);
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  margin: 0;
}
.stat-num {
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-4xl);
  font-weight: 700;
  color: var(--c-accent-pharma);
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.stat-label {
  margin-top: 6px;
  font-size: var(--t-sm);
  font-weight: 600;
  color: var(--c-fg-default);
}
.stat-card figcaption {
  margin-top: 8px;
  font-size: var(--t-xs);
  color: var(--c-fg-subtle);
  line-height: 1.5;
}

/* Pull-quote */
.pull-quote {
  margin: 48px 0;
  padding-left: 24px;
  border-left: 4px solid var(--c-accent-pharma);
}
.pull-quote p {
  font-size: var(--t-2xl) !important;
  line-height: 1.4 !important;
  font-style: italic;
  color: var(--c-fg-default) !important;
  margin: 0 !important;
  text-wrap: balance;
}
.pull-quote cite {
  display: block;
  margin-top: 12px;
  font-style: normal;
  font-size: var(--t-sm);
  font-family: "JetBrains Mono", monospace;
  color: var(--c-fg-muted);
  letter-spacing: 0.04em;
}
@media (min-width: 768px) {
  .pull-quote p { font-size: var(--t-3xl) !important; }
}

/* ===== Zone 7 — Sidebar ===== */
.post-sidebar {
  display: none;
  gap: 20px;
  align-self: start;
}
@media (min-width: 1024px) {
  .post-sidebar {
    display: grid;
    position: sticky;
    top: 88px;
  }
}

/* ===== Zone 7 — Mobile fallback for share / author / CTA =====
   At <1024px the sidebar is hidden; this block carries the same
   actions inline at the bottom of the article column.
   At >=1024px it's hidden — the sidebar takes over. */
.post-mobile-actions {
  display: grid;
  gap: 24px;
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid var(--c-border-default);
}
.post-mobile-actions .mobile-label {
  display: block;
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-fg-subtle);
  margin-bottom: 12px;
  font-weight: 700;
}
/* Static CTA card — same look as .cta-card but no sticky / no pulse */
.cta-card-static {
  padding: 24px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  background: var(--c-bg-elevated);
}
.cta-card-static h4,
.cta-card-static h3 {
  font-size: var(--t-lg);
  font-weight: 600;
  margin-block: 0 8px;
  color: var(--c-fg-default);
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  text-transform: none;
}
.cta-card-static p {
  font-size: var(--t-sm) !important;
  line-height: 1.55 !important;
  color: var(--c-fg-muted) !important;
  margin-block: 0 16px !important;
}
.cta-card-static .btn {
  width: 100%;
  justify-content: center;
}
@media (min-width: 1024px) {
  .post-mobile-actions { display: none; }
}

.side-card {
  padding: 20px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  background: var(--c-bg-default);
}
.side-card h4,
.side-card h3 {
  font-size: var(--t-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-family: "JetBrains Mono", monospace;
  font-weight: 700;
  color: var(--c-fg-subtle);
  margin-block: 0 14px;
}
.toc { list-style: none; padding: 0; margin: 0; counter-reset: tc; }
.toc li { counter-increment: tc; }
.toc a {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 8px 0;
  font-size: var(--t-sm);
  color: var(--c-fg-muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--tx);
  min-height: 32px;
}
.toc a::before {
  content: counter(tc, decimal-leading-zero);
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xs);
  color: var(--c-fg-subtle);
  min-width: 20px;
}
.toc a:hover { color: var(--c-fg-default); }
.toc a:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; border-radius: 2px; }
.toc a.is-active {
  color: var(--c-fg-default);
  font-weight: 600;
}
.toc a.is-active::before { color: var(--c-accent-pharma); }
@media (prefers-reduced-motion: reduce) { .toc a { transition: none; } }

/* Share row */
.share-row {
  display: flex; gap: 8px;
  align-items: center;
  position: relative;
}
.share-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  border-radius: var(--r-btn);
  border: 1px solid var(--c-border-default);
  background: var(--c-bg-default);
  color: var(--c-fg-muted);
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-decoration: none;
  transition: border-color var(--tx), color var(--tx), background var(--tx);
}
.share-btn:hover {
  border-color: var(--c-fg-default);
  color: var(--c-fg-default);
  background: var(--c-bg-elevated);
}
.share-btn:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
.share-toast {
  display: inline-block;
  padding: 4px 10px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--c-positive);
  background: var(--c-positive-bg);
  border: 1px solid rgba(22,163,74,0.25);
  border-radius: var(--r-pill);
  opacity: 0;
  margin-left: 4px;
  transition: opacity 150ms ease-out;
  pointer-events: none;
}
.share-toast.is-on { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .share-toast { transition: none; } }

/* Author card */
.author-card .author-row {
  display: flex; gap: 12px; align-items: center;
  margin-bottom: 12px;
}
.author-init-lg {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  min-width: 40px;
  border-radius: 50%;
  background: var(--c-fg-default);
  color: var(--c-fg-inverse);
  font-size: var(--t-sm);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.author-name { font-weight: 600; font-size: var(--t-sm); margin: 0; }
.author-name a { color: var(--c-fg-default); text-decoration: none; }
.author-name a:hover { text-decoration: underline; text-underline-offset: 3px; }
.author-role { font-size: var(--t-xs); color: var(--c-fg-subtle); margin: 2px 0 0; }
.author-bio { font-size: var(--t-sm); line-height: 1.55; color: var(--c-fg-muted); margin-block: 0 12px; }
.author-li {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--t-xs);
  font-family: "JetBrains Mono", monospace;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--c-fg-muted);
  text-decoration: none;
  padding: 8px 12px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-pill);
  min-height: 32px;
}
.author-li:hover { border-color: var(--c-fg-default); color: var(--c-fg-default); }

/* Sticky CTA card */
.cta-card {
  background: var(--c-bg-inverse);
  color: var(--c-fg-inverse);
  border-color: var(--c-border-inverse);
  transition: box-shadow 200ms ease-out;
}
.cta-card h4, .cta-card h3 { color: var(--c-fg-inverse-muted) !important; }
.cta-card p {
  font-size: var(--t-sm); line-height: 1.55;
  color: var(--c-fg-inverse-muted);
  margin-block: 0 16px;
}
.cta-card .btn { width: 100%; text-align: center; min-height: 44px; }
@keyframes cta-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(37,99,235,0.45); }
  100% { box-shadow: 0 0 0 12px rgba(37,99,235,0); }
}
.cta-card.is-pulsed { animation: cta-pulse 600ms ease-out 1; }
@media (prefers-reduced-motion: reduce) {
  .cta-card { transition: none; }
  .cta-card.is-pulsed { animation: none; }
}

/* dl-pdf (sidebar card) */
.dl-pdf {
  padding: 20px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  background: var(--c-bg-default);
}
.dl-pdf .form-tag {
  display: inline-block;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: var(--r-pill);
  background: var(--c-positive-bg);
  color: var(--c-positive);
  border: 1px solid rgba(22,163,74,0.25);
  margin-bottom: 12px;
}
.dl-pdf .ic { display: block; color: var(--c-fg-muted); margin-bottom: 10px; }
.dl-pdf h4 { font-size: var(--t-sm); font-weight: 700; color: var(--c-fg-default); margin-block: 0 8px; text-transform: none; letter-spacing: 0; font-family: "Inter", system-ui, sans-serif; }
.dl-pdf .descr { font-size: var(--t-xs); line-height: 1.55; color: var(--c-fg-muted); margin-block: 0 14px; }
.dl-pdf .btn { width: 100%; min-height: 44px; }

/* ===== Zone 8 — Related + Prev/Next ===== */
.post-related-section {
  border-top: 1px solid var(--c-border-default);
  padding-block: 56px 16px;
}
.post-related h2 {
  font-size: var(--t-2xl);
  letter-spacing: -0.02em;
  margin-block: 0 24px;
}
.related-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .related-cards { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}
.related-card {
  display: flex; flex-direction: column; gap: 8px;
  padding: 20px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  background: var(--c-bg-default);
  text-decoration: none;
  color: inherit;
  transition: transform 150ms ease-out, border-color 150ms ease-out, box-shadow 150ms ease-out;
  min-height: 44px;
}
.related-card:hover {
  transform: translateY(-2px);
  border-color: var(--c-accent-pharma);
  box-shadow: var(--shadow-md);
}
.related-card:focus-visible {
  outline: 2px solid var(--c-focus); outline-offset: 2px;
}
.related-card h3 {
  font-size: var(--t-base);
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--c-fg-default);
  margin: 4px 0 0;
}
.related-card p {
  font-size: var(--t-sm);
  line-height: 1.55;
  color: var(--c-fg-muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.related-card .read-time {
  margin-top: auto;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  color: var(--c-fg-subtle);
  letter-spacing: 0.04em;
}
@media (prefers-reduced-motion: reduce) {
  .related-card, .related-card:hover { transition: none; transform: none; }
  .related-card:hover { border-color: var(--c-accent-pharma); }
}

/* Prev/Next strip */
.prev-next {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 40px;
}
@media (min-width: 768px) {
  .prev-next { grid-template-columns: 1fr 1fr; }
}
.pn-link {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  padding: 18px 22px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  background: var(--c-bg-default);
  text-decoration: none;
  color: inherit;
  transition: border-color 150ms ease-out, background 150ms ease-out;
  min-height: 44px;
}
.pn-next { grid-template-columns: 1fr auto; text-align: right; }
.pn-link:hover {
  border-color: var(--c-fg-default);
  background: var(--c-bg-elevated);
}
.pn-link:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
.pn-arrow {
  font-family: "JetBrains Mono", monospace;
  font-size: var(--t-xl);
  color: var(--c-fg-muted);
  line-height: 1;
}
.pn-link:hover .pn-arrow { color: var(--c-accent-pharma); }
.pn-label {
  display: block;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-fg-subtle);
  margin-bottom: 4px;
}
.pn-title {
  display: block;
  font-size: var(--t-sm);
  font-weight: 600;
  color: var(--c-fg-default);
  line-height: 1.4;
  letter-spacing: -0.01em;
}
.pn-link.is-only { grid-column: 1 / -1; }
@media (prefers-reduced-motion: reduce) {
  .pn-link { transition: none; }
}

/* ===== Zone 9 — Full-width CTA strip ===== */
.post-cta-strip {
  background: var(--c-bg-inverse);
  color: var(--c-fg-inverse);
  padding-block: 64px;
  text-align: center;
}
.post-cta-strip .container { max-width: 720px; }
.cta-headline {
  font-size: var(--t-2xl); line-height: 1.2;
  font-weight: 600;
  max-width: 32ch; margin: 0 auto 24px;
  text-wrap: balance;
  letter-spacing: -0.02em;
  color: var(--c-fg-inverse);
}
@media (min-width: 768px) {
  .cta-headline { font-size: var(--t-3xl); }
}
.post-cta-strip .btn { min-height: 44px; }
.cta-sub {
  font-size: var(--t-sm);
  color: var(--c-fg-inverse-muted);
  margin-top: 16px;
}

/* Legacy section names kept for back-compat */
.post-cta-section { background: var(--c-bg-inverse); padding-block: 64px; }
.post-cta-inner { max-width: 640px; }
.post-cta-section h2 { font-size: var(--t-3xl); line-height: 1.2; letter-spacing: -0.02em; color: var(--c-fg-inverse); margin-block: 0 12px; }
@media (min-width: 768px) { .post-cta-section h2 { font-size: var(--t-4xl); } }
.post-cta-section p { font-size: var(--t-lg); line-height: 1.6; color: var(--c-fg-inverse-muted); margin-block: 0 28px; }
.post-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: center; }

.post-nav-section { border-top: 1px solid var(--c-border-default); padding-block: 40px; }
.post-nav { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px) { .post-nav { grid-template-columns: 1fr 1fr; } }
.pn-prev, .pn-next {
  display: flex; flex-direction: column; gap: 6px;
  padding: 16px 20px;
  border: 1px solid var(--c-border-default);
  border-radius: var(--r-card);
  text-decoration: none; color: inherit;
}
.pn-prev:hover, .pn-next:hover { border-color: var(--c-fg-default); background: var(--c-bg-elevated); }

/* Old related (bottom of article) — kept for back-compat */
.post-related {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.post-related h3 {
  font-size: var(--t-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: var(--c-fg-muted);
  margin-bottom: 14px;
}
.related-list { list-style: none; padding: 0; margin: 0; }
.related-list li { border-bottom: 1px solid var(--c-border-default); }
.related-list li:last-child { border-bottom: none; }
.related-list a {
  display: block;
  padding: 8px 0;
  font-size: var(--t-sm);
  color: var(--c-fg-muted);
  text-decoration: none;
  line-height: 1.4;
  min-height: 32px;
}
.related-list a:hover { color: var(--c-accent-pharma); }

/* ============================================================
   §11 — Print stylesheet
   ============================================================ */
@media print {
  @page {
    margin: 18mm 14mm 22mm 14mm;
    @bottom-center {
      content: "OwnAI by Reyatech Systems Pvt Ltd";
      font-family: "JetBrains Mono", monospace;
      font-size: 8pt;
      color: #666;
    }
  }

  body { background: #fff !important; color: #000 !important; }

  /* Hide chrome */
  .nav, .drawer, .drawer-overlay, .nav-toggle, .skip-link,
  .read-progress, .post-sidebar, .toc-disclosure,
  .share-row, .share-toast, .cta-card,
  .post-cta-strip, .post-cta-section,
  .prev-next, .post-nav-section,
  .footer-inner, .footer-bottom { display: none !important; }

  /* Keep only company legal in footer */
  .footer { background: #fff !important; border-top: 0.5pt solid #ccc; padding: 8mm 0 !important; }
  .footer-compliance { display: none !important; }
  .footer-brand { color: #000 !important; padding: 0 !important; }

  .post-hero { background: #fff !important; border-bottom: 0.5pt solid #999; padding-block: 4mm !important; }
  .post-hero h1 { font-size: 18pt; line-height: 1.2; color: #000 !important; max-width: 100%; }
  .post-hero .lede { font-size: 11pt; color: #333 !important; }
  .post-hero-art { display: none; }

  .post-body-section { padding-block: 6mm !important; }
  .post-article, .post-body {
    max-width: none;
    font-size: 11pt;
    line-height: 1.5;
    color: #000 !important;
  }
  .post-article p, .post-body p { color: #000 !important; font-size: 11pt; line-height: 1.5; }
  .post-article h2, .post-body h2 { font-size: 14pt; color: #000 !important; page-break-after: avoid; margin-block: 16pt 6pt; }
  .post-article h3, .post-body h3 { font-size: 12pt; color: #000 !important; page-break-after: avoid; }

  .post-body a { color: #000 !important; text-decoration: underline; }
  .post-body a[href]::after {
    content: " (" attr(href) ")";
    font-family: "JetBrains Mono", monospace;
    font-size: 8.5pt;
    color: #555;
  }
  .post-body a[href^="#"]::after,
  .post-body a[href^="mailto:"]::after,
  .post-body a[href^="tel:"]::after { content: "" !important; }

  /* Callouts flatten */
  .callout { background: #fff !important; color: #000 !important; border: 0.5pt solid #999; border-left-width: 3pt; padding: 6pt 10pt; page-break-inside: avoid; }
  .callout h3, .callout p { color: #000 !important; }
  .callout-takeaway { border-left-color: #2563EB !important; }
  .callout-warning { border-left-color: #D97706 !important; background: #FFFBEB !important; }
  .callout-regulation { border-left-color: #0B1220 !important; background: #F4F4F4 !important; }
  .callout-definition { border-left-color: #0D9488 !important; background: #F0FDFA !important; }
  .callout-counter { border-left-color: #DC2626 !important; background: #FEF2F2 !important; }

  .key-takeaways { background: #F4F4F4 !important; border: 0.5pt solid #999; page-break-inside: avoid; }
  .key-takeaways h2, .key-takeaways li { color: #000 !important; }

  /* Tables */
  .table-wrap { border-color: #999; page-break-inside: avoid; }
  .table-wrap table { font-size: 9pt; }
  .table-wrap table thead tr { background: #f4f4f4 !important; }
  .table-wrap table thead th, .table-wrap table thead th:first-child { color: #000 !important; }
  .table-wrap table tbody td { color: #000 !important; }
  table { page-break-inside: avoid; }

  /* Figures + stat cluster + pull-quote */
  .post-figure, .stat-cluster, .stat-card { background: #fff !important; border-color: #999 !important; page-break-inside: avoid; }
  .stat-num { color: #000 !important; }
  .pull-quote { border-left-color: #0B1220 !important; }
  .pull-quote p, .pull-quote cite { color: #000 !important; }

  .post-related-section { page-break-before: auto; }
  .post-related h2 { font-size: 12pt; color: #000 !important; }
  .related-card { background: #fff !important; border-color: #ccc !important; }
}

/* Final printed page footer marker (additional, in body — only visible in print) */
.print-only { display: none; }
@media print { .print-only { display: block; } }
