/* ============================================================
   Dosage Peptide — Blog single-post template (loads after home.css,
   which provides the shared header/footer + cards).
   ============================================================ */

/* ---- article typography ---- */
.dp-article-body{font-size:16.5px;line-height:1.75;color:#2C333A}
.dp-article-body > *:first-child{margin-top:0}
/* Unified heading scale — !important so posts that shipped inline heading sizes
   (2rem / 2.75rem / 1.35rem …) all render on the same clean scale. */
.dp-article-body h1{font-family:'Schibsted Grotesk',sans-serif;font-weight:700;font-size:clamp(24px,2.6vw,28px)!important;color:#161C22;line-height:1.22!important;letter-spacing:-.014em;margin:38px 0 14px!important;scroll-margin-top:88px}
.dp-article-body h2{font-family:'Schibsted Grotesk',sans-serif;font-weight:600;font-size:clamp(21px,2.2vw,24px)!important;color:#1A2027;line-height:1.3!important;letter-spacing:-.01em;margin:38px 0 12px!important;scroll-margin-top:88px}
.dp-article-body h3{font-family:'Schibsted Grotesk',sans-serif;font-weight:600;font-size:18.5px!important;color:#1A2027;line-height:1.35!important;letter-spacing:-.003em;margin:26px 0 8px!important;scroll-margin-top:88px}
.dp-article-body h4{font-family:'Schibsted Grotesk',sans-serif;font-weight:600;font-size:16px!important;color:#3C6076;line-height:1.4!important;margin:22px 0 6px!important;scroll-margin-top:88px}
.dp-article-body h5,.dp-article-body h6{font-family:'Schibsted Grotesk',sans-serif;font-weight:600;font-size:13px!important;letter-spacing:.06em;text-transform:uppercase;color:#456277;margin:20px 0 6px!important}
.dp-article-body p{margin:0 0 18px}
.dp-article-body ul,.dp-article-body ol{margin:0 0 20px;padding-left:22px}
.dp-article-body li{margin:0 0 9px}
.dp-article-body li::marker{color:#3C6076}
.dp-article-body a{color:#3C6076;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.dp-article-body a:hover{color:#456277}
.dp-article-body strong{color:#1A2027}
/* Unified citation reference markers (2026-07) — every post normalized to <sup class="tse-ref"> */
.dp-article-body sup.tse-ref{font-size:.7em;line-height:0;vertical-align:super;margin:0 1px;white-space:nowrap}
.dp-article-body sup.tse-ref a{color:#3C6076!important;font-weight:600!important;text-decoration:none!important;border:none!important;background:none!important}
.dp-article-body sup.tse-ref a:hover{text-decoration:underline!important}
.dp-article-body img{max-width:100%;height:auto;border-radius:12px;margin:8px 0 22px}
.dp-article-body figure{margin:0 0 22px}
.dp-article-body figcaption{font-size:13px;color:#6A737B;margin-top:8px;text-align:center}
.dp-article-body blockquote{margin:0 0 22px;padding:14px 20px;border-left:3px solid #3C6076;background:#EEF1F4;border-radius:0 10px 10px 0;color:#39424A}
.dp-article-body blockquote p:last-child{margin:0}
.dp-article-body hr{border:0;border-top:1px solid #E2E6EA;margin:30px 0}
.dp-article-body table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:14.5px}
.dp-article-body th,.dp-article-body td{border:1px solid #DEE1E5;padding:10px 12px;text-align:left;vertical-align:top}
.dp-article-body th{background:#F4F6F8;font-weight:600;color:#1A2027}
.dp-article-body .wp-block-table{overflow-x:auto}
/* ---- premium tables (2026-07): .dp-table-wrap (scroll container) + .dp-kv (fact sheet) + .dp-compare ---- */
.dp-article-body .dp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #DCE1E5;border-radius:12px;margin:0 0 26px;background:#fff}
.dp-article-body .dp-table-wrap table{width:100%;margin:0;border:0;font-size:14px}
.dp-article-body .dp-compare{min-width:560px}
.dp-article-body .dp-table-wrap th,.dp-article-body .dp-table-wrap td{border:0;border-bottom:1px solid #EAEEF0;padding:11px 15px;text-align:left;vertical-align:top;line-height:1.55}
.dp-article-body .dp-table-wrap tr:last-child th,.dp-article-body .dp-table-wrap tr:last-child td{border-bottom:0}
.dp-article-body .dp-table-wrap thead th{background:#2B4859;color:#EAF1F4;font-weight:600;font-size:12.5px;letter-spacing:.02em;border-bottom:0}
.dp-article-body .dp-compare tbody tr:nth-child(even){background:#F7F9FA}
.dp-article-body .dp-compare th[scope=row]{background:#EEF2F4;color:#1A2027;font-weight:600;white-space:nowrap}
.dp-article-body .dp-compare td:nth-child(2){background:rgba(60,96,118,.05)}
.dp-article-body .dp-kv th[scope=row]{background:#EEF2F4;color:#2B4859;font-weight:600;white-space:nowrap;width:210px}
.dp-article-body .dp-kv td{color:#2C333A}
.dp-article-body .dp-kv .dp-seq{font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace!important;font-size:12px;word-break:break-word;color:#39424A;line-height:1.7}
@media(max-width:600px){
  .dp-article-body .dp-kv th[scope=row]{width:auto;min-width:118px}
  .dp-article-body .dp-table-wrap th,.dp-article-body .dp-table-wrap td{padding:9px 11px;font-size:13.5px}
}

/* ===== Typography normalization (2026-07) =====
   Some imported posts shipped inline fonts (Plus Jakarta Sans, -apple-system) and a
   scattered 12–16px size scale, so the 170 articles looked inconsistent. Force the site
   type system on the article body, overriding those inline styles. Headings keep Schibsted
   Grotesk, code keeps a monospace, and intentional label/card sizes (div/span) are left alone. */
.dp-article-body,
.dp-article-body p,.dp-article-body li,.dp-article-body span,.dp-article-body div,
.dp-article-body td,.dp-article-body th,.dp-article-body a,.dp-article-body strong,
.dp-article-body b,.dp-article-body em,.dp-article-body i,.dp-article-body blockquote,
.dp-article-body figcaption,.dp-article-body label,.dp-article-body small{
  font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif !important;
}
.dp-article-body code,.dp-article-body pre,.dp-article-body kbd,.dp-article-body samp,.dp-article-body tt{
  font-family:'IBM Plex Mono','JetBrains Mono',ui-monospace,SFMono-Regular,monospace !important;
}
.dp-article-body h1,.dp-article-body h1 *,.dp-article-body h2,.dp-article-body h2 *,
.dp-article-body h3,.dp-article-body h3 *,.dp-article-body h4,.dp-article-body h4 *,
.dp-article-body h5,.dp-article-body h5 *,.dp-article-body h6,.dp-article-body h6 *{
  font-family:'Schibsted Grotesk',sans-serif !important;
}
/* Normalize body prose size (imported posts used 12–16px). Headings & styled labels keep their own scale. */
.dp-article-body p,.dp-article-body li{font-size:16.5px !important;line-height:1.75 !important}

/* ---- table of contents (scroll-spy) ---- */
.dp-toc a{transition:color .15s ease,background-color .15s ease,border-color .15s ease}
.dp-toc a:hover{color:#3C6076}
.dp-toc a.is-active{color:#3C6076;border-left-color:#3C6076;background:#EEF1F4}

/* ---- responsive ---- */
@media (max-width:980px){
  .dp-art-wrap{grid-template-columns:1fr!important;gap:0!important}
  .dp-toc-col{display:none!important}
}
@media (max-width:680px){
  .dp-art-head{padding:30px 18px 26px!important}
  .dp-art-wrap{padding:28px 18px 10px!important}
  .dp-article-body{font-size:16px}
  .dp-article-body p,.dp-article-body li{font-size:16px !important}
}

/* --- Mobile overflow fix (2026-07-06) ---
   The article column is a grid item; a wide table's min-content was pinning
   its min-width, so the whole column (title, text, diagram) overflowed on
   mobile. min-width:0 lets the grid track shrink to the viewport; wide tables
   are wrapped in .dp-tw and scroll horizontally instead of widening the page. */
.dp-article{min-width:0}
.dp-article-body img{max-width:100%;height:auto}
.dp-tw{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 24px}
.dp-tw>table{margin:0}

/* ===== diagram tap-to-zoom lightbox (mobile legibility for dense schematics) ===== */
.dp-article-body figure img{cursor:zoom-in}
.dp-lb{position:fixed;inset:0;z-index:99999;background:rgba(12,17,22,.95);display:none;overflow:auto;-webkit-overflow-scrolling:touch}
.dp-lb.open{display:block}
.dp-lb-inner{box-sizing:border-box;width:max-content;min-width:100%;min-height:100%;display:grid;place-items:center;padding:20px}
.dp-lb img{display:block}
@media(max-width:900px){.dp-lb img{height:86vh;width:auto}}
@media(min-width:901px){.dp-lb img{max-width:94vw;max-height:92vh;height:auto;width:auto}}
.dp-lb-x{position:fixed;top:12px;right:14px;z-index:100001;width:44px;height:44px;border:none;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.dp-lb-x:hover{background:rgba(255,255,255,.28)}
.dp-lb-hint{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:100001;font:600 11.5px/1 'IBM Plex Mono',monospace;letter-spacing:.05em;color:#cbd3da;background:rgba(0,0,0,.5);padding:8px 15px;border-radius:22px;pointer-events:none;white-space:nowrap}

/* mobile: hide the redundant 16:9 hero diagram (Firmament posts only) so the inline <picture> shows the readable PORTRAIT version once; other posts' featured images are untouched */
@media(max-width:700px){.dp-article>img[src*="firmament-"]{display:none!important}}

/* ===== F2/F9: related-guides block appended to corpus posts ===== */
.dp-relguides{margin:38px 0 8px;padding:20px 22px;background:#f6f9f9;border:1px solid #dce7e7;border-left:4px solid #2E8C8C;border-radius:12px}
.dp-relguides-h{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#1c6b6b;margin:0 0 12px}
.dp-relguides-ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.dp-relguides-ul a{color:#2b5c70;text-decoration:none;font-weight:600;font-size:15px;line-height:1.4}
.dp-relguides-ul a:hover{text-decoration:underline;text-underline-offset:2px}
