/* ============================================================================
   Xerostate Blog — premium editorial design system (Phase 1)
   Shared by every static article + the blog listing. Replaces the per-file
   inline CSS. Headings: Newsreader · Body/UI: Inter · Code: JetBrains Mono.
   Brand accent preserved (#4F7DFF / #8B5CF6). Light, editorial, restrained.
   ========================================================================== */

/* ---- Fonts (self-hosted, swap to avoid layout shift) ---- */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('/fonts/dm-sans-var.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:100 1000;font-display:swap;src:url('/fonts/dm-sans-var-italic.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/newsreader-400.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/newsreader-500.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/newsreader-600.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/newsreader-400-italic.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jetbrains-mono-400.woff2') format('woff2')}

:root{
  --ink:#101828;        /* primary text */
  --ink-2:#1e293b;      /* body text */
  --sub:#5b6472;        /* metadata */
  --sub2:#8a93a3;       /* faint */
  --p1:#4F7DFF;         /* brand accent */
  --p2:#8B5CF6;
  --grad:linear-gradient(135deg,#4F7DFF,#8B5CF6);
  --bg:#fbfcfe;         /* page ground */
  --card:#ffffff;
  --border:rgba(16,24,40,.09);
  --border-2:rgba(16,24,40,.06);
  --soft:rgba(79,125,255,.08);
  --serif:'Newsreader','Iowan Old Style',Georgia,'Times New Roman',serif;
  --sans:'DM Sans',-apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --measure:720px;      /* optimal reading width for article text */
  --nav-h:60px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink-2);
  line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%}
a{color:var(--p1);text-decoration:none}
a:hover{text-decoration:underline}
::selection{background:rgba(79,125,255,.16)}
:focus-visible{outline:2px solid var(--p1);outline-offset:2px;border-radius:4px}

/* ---- Reading progress (injected by _blog.js) ---- */
.blog-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;background:var(--grad);transition:width .1s linear}
@media (prefers-reduced-motion:reduce){.blog-progress{transition:none}}

/* ---- Top navigation ---- */
header.site-nav{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px)}
.site-nav-inner{max-width:1120px;margin:0 auto;padding:13px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-family:var(--sans);font-weight:800;font-size:1.12rem;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:6px}
.brand:hover{text-decoration:none}
.brand span{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.nav-links{display:flex;gap:2px;flex-wrap:wrap;align-items:center}
.nav-links a{color:var(--sub);font-weight:550;font-size:.9rem;padding:7px 13px;border-radius:9px;transition:color .15s,background .15s}
.nav-links a:hover{color:var(--p1);background:var(--soft);text-decoration:none}
.nav-links a.cta{color:#fff;background:var(--ink);padding:8px 16px;font-weight:600}
.nav-links a.cta:hover{background:var(--p1);opacity:1}

/* ---- Layout ---- */
.wrap{max-width:var(--measure);margin:0 auto;padding:0 24px}
main{padding:44px 0 72px}

/* ---- Article header ---- */
.crumb{font-family:var(--sans);font-size:.82rem;color:var(--sub2);margin-bottom:18px;letter-spacing:.005em}
.crumb a{color:var(--sub2)}
.crumb a:hover{color:var(--sub)}
.back-btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-weight:600;font-size:.84rem;color:var(--sub);margin-bottom:26px;transition:color .15s}
.back-btn:hover{color:var(--p1);text-decoration:none}
.category-pill{display:inline-block;font-family:var(--sans);color:var(--p1);font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
h1{
  font-family:var(--serif);font-weight:600;color:var(--ink);
  font-size:clamp(2rem,1.35rem + 2.8vw,3.15rem);
  line-height:1.12;letter-spacing:-.015em;margin:0 0 18px;
}
.article-excerpt,.excerpt{font-family:var(--sans);font-size:clamp(1.05rem,1rem + .35vw,1.22rem);line-height:1.6;color:var(--sub);font-weight:400;margin:0 0 26px;max-width:38em}
.meta-row{display:flex;flex-wrap:wrap;gap:10px 14px;font-family:var(--sans);color:var(--sub);font-size:.88rem;font-weight:500;margin-bottom:8px;align-items:center}
.meta-row span{display:inline-flex;align-items:center;gap:7px}
.meta-row span:not(:first-child)::before{content:"";width:3px;height:3px;border-radius:50%;background:var(--sub2);margin-right:8px}
.meta-row span:first-child::before{display:none}

/* ---- Share row (injected by _blog.js) ---- */
.blog-share{display:flex;align-items:center;gap:8px;margin:20px 0 4px;flex-wrap:wrap}
.blog-share-lbl{font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sub2);margin-right:2px}
.blog-share button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:36px;height:36px;padding:0;border:1px solid var(--border);background:var(--card);color:var(--sub);border-radius:10px;cursor:pointer;font-family:var(--sans);font-size:.8rem;transition:border-color .15s,color .15s,transform .15s}
.blog-share button:hover{border-color:rgba(79,125,255,.4);color:var(--p1);transform:translateY(-1px)}
.blog-share button svg{width:16px;height:16px}
.blog-share .copied{color:#16a34a;border-color:rgba(22,163,74,.4)}

/* ---- Hero image ---- */
.blog-figure{margin:34px 0}
.blog-figure img{width:100%;height:auto;border-radius:16px;border:1px solid var(--border);display:block;background:linear-gradient(135deg,#f2f6ff,#f3f0ff)}
.blog-figure.hero{margin:8px 0 40px}
.blog-figure.hero img{aspect-ratio:16/9;object-fit:cover;border-radius:18px}
.blog-figcaption,figcaption{font-family:var(--sans);font-size:.82rem;line-height:1.5;color:var(--sub2);margin-top:11px;text-align:center}
.blog-ph{width:100%;aspect-ratio:16/9;border-radius:18px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#eef4ff 0%,#f3f0ff 52%,#e9fbff 100%);text-align:center;padding:22px}
.blog-ph-emoji{font-size:2.4rem;line-height:1}
.blog-ph-label{font-family:var(--sans);font-weight:700;font-size:.92rem;color:var(--p1)}
.blog-ph-sub{font-family:var(--sans);font-size:.74rem;color:var(--sub2)}

/* ---- Table of contents ---- */
.toc-box{display:none;background:linear-gradient(180deg,#fff,#fcfdff);border:1px solid var(--border);border-radius:14px;padding:18px 22px;margin:30px 0 36px}
.toc-box.show{display:block}
.toc-lbl{font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sub2);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.toc-toggle{display:none;background:none;border:none;color:var(--sub2);font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.06em;cursor:pointer}
.toc-box ol{margin:0;padding:0;list-style:none;counter-reset:toc}
.toc-box li{margin:0;font-size:.92rem;line-height:1.5}
.toc-box li + li{margin-top:2px}
.toc-box a{display:block;color:var(--sub);font-family:var(--sans);font-weight:500;padding:5px 10px;border-left:2px solid transparent;border-radius:0 6px 6px 0;transition:color .15s,background .15s,border-color .15s}
.toc-box a:hover{color:var(--p1);background:var(--soft);text-decoration:none}
.toc-box a.toc-sub{padding-left:24px;font-size:.88rem;color:var(--sub2)}
.toc-box a.active{color:var(--p1);border-left-color:var(--p1);background:var(--soft);font-weight:600}

/* ---- Article body typography ---- */
article{font-family:var(--sans);font-size:1.09rem;line-height:1.8;color:var(--ink-2)}
article > p:first-of-type{font-size:1.16rem;color:var(--ink)}
article h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(1.5rem,1.3rem + .9vw,1.9rem);line-height:1.25;letter-spacing:-.01em;margin:48px 0 16px;scroll-margin-top:calc(var(--nav-h) + 20px)}
article h3{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(1.22rem,1.14rem + .5vw,1.42rem);line-height:1.3;margin:34px 0 12px;scroll-margin-top:calc(var(--nav-h) + 20px)}
article h2 + p,article h3 + p{margin-top:0}
article p{margin:0 0 20px}
article a{color:var(--p1);text-decoration:underline;text-decoration-color:rgba(79,125,255,.35);text-underline-offset:2px;transition:text-decoration-color .15s}
article a:hover{text-decoration-color:var(--p1)}
article strong{font-weight:650;color:var(--ink)}
article em{font-style:italic}
article ul,article ol{margin:0 0 20px;padding-left:26px}
article li{margin-bottom:9px;padding-left:4px}
article li::marker{color:var(--p1)}
article hr{border:none;height:1px;background:var(--border);margin:44px 0}
article img{border-radius:14px;border:1px solid var(--border)}

/* Blockquote / pull quote */
article blockquote{margin:32px 0;padding:6px 0 6px 26px;border-left:3px solid var(--p1);font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.5;color:var(--ink)}
article blockquote p{margin:0 0 10px}
article blockquote p:last-child{margin:0}

/* Inline code + code blocks */
article code{font-family:var(--mono);font-size:.88em;background:rgba(16,24,40,.05);border:1px solid var(--border-2);border-radius:5px;padding:.12em .4em}
article pre{font-family:var(--mono);font-size:.86rem;line-height:1.6;background:#0f1729;color:#e6ebf5;border-radius:14px;padding:18px 20px;overflow-x:auto;margin:26px 0}
article pre code{background:none;border:none;padding:0;color:inherit;font-size:inherit}

/* Tables */
.article-table-wrap,article .table-wrap{overflow-x:auto;margin:26px 0;border:1px solid var(--border);border-radius:12px}
article table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:.94rem}
article th,article td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border)}
article thead th{background:#f7f9fd;font-weight:600;color:var(--ink);font-size:.82rem;letter-spacing:.02em;text-transform:uppercase}
article tbody tr:last-child td{border-bottom:none}
article tbody tr:hover{background:rgba(79,125,255,.03)}

/* ============================================================================
   EDITORIAL COMPONENTS — reusable callouts. Author markup:
   <aside class="blog-callout key-idea"><h4>Key Idea</h4><p>…</p></aside>
   Variants: key-idea · quick-take · did-you-know · xero-explains ·
             tldr · numbers · exam-tip · think
   ========================================================================== */
.blog-callout{--c:var(--p1);--c-bg:rgba(79,125,255,.05);position:relative;margin:30px 0;padding:20px 22px 20px 24px;background:var(--c-bg);border:1px solid var(--border);border-left:3px solid var(--c);border-radius:0 14px 14px 0}
.blog-callout > *:first-child{margin-top:0}
.blog-callout > *:last-child{margin-bottom:0}
.blog-callout h4{font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.blog-callout h4::before{font-size:1rem;line-height:1}
.blog-callout p{font-size:1rem;line-height:1.65;margin:0 0 10px}
.blog-callout p:last-child{margin:0}
.blog-callout.key-idea{--c:#4F7DFF;--c-bg:rgba(79,125,255,.05)}
.blog-callout.key-idea h4::before{content:"💡"}
.blog-callout.quick-take{--c:#8B5CF6;--c-bg:rgba(139,92,246,.05)}
.blog-callout.quick-take h4::before{content:"⚡"}
.blog-callout.did-you-know{--c:#0891b2;--c-bg:rgba(8,145,178,.05)}
.blog-callout.did-you-know h4::before{content:"🔍"}
.blog-callout.xero-explains{--c:#4F7DFF;--c-bg:linear-gradient(135deg,rgba(79,125,255,.06),rgba(139,92,246,.06))}
.blog-callout.xero-explains h4::before{content:"🦦"}
.blog-callout.tldr{--c:#475569;--c-bg:rgba(71,85,105,.05)}
.blog-callout.tldr h4::before{content:"📌"}
.blog-callout.numbers{--c:#0d9488;--c-bg:rgba(13,148,136,.05)}
.blog-callout.numbers h4::before{content:"📊"}
.blog-callout.exam-tip{--c:#d97706;--c-bg:rgba(217,119,6,.06)}
.blog-callout.exam-tip h4::before{content:"✏️"}
.blog-callout.think{--c:#7c3aed;--c-bg:rgba(124,58,237,.05)}
.blog-callout.think h4::before{content:"🤔"}

/* Highlighted statistic */
.blog-stat{margin:30px 0;padding:24px;text-align:center;background:linear-gradient(135deg,rgba(79,125,255,.06),rgba(139,92,246,.06));border:1px solid var(--border);border-radius:16px}
.blog-stat .num{font-family:var(--serif);font-weight:600;font-size:clamp(2.4rem,2rem + 2vw,3.4rem);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.blog-stat .label{font-family:var(--sans);font-size:.95rem;color:var(--sub);margin-top:8px}

/* Key takeaways */
.blog-takeaways{margin:36px 0;padding:24px 26px;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.blog-takeaways h3{font-family:var(--sans)!important;font-size:.78rem!important;font-weight:700!important;letter-spacing:.08em;text-transform:uppercase;color:var(--sub2);margin:0 0 14px!important}
.blog-takeaways ul{margin:0;padding:0;list-style:none}
.blog-takeaways li{position:relative;padding-left:30px;margin-bottom:12px;font-size:1rem;line-height:1.6}
.blog-takeaways li:last-child{margin-bottom:0}
.blog-takeaways li::before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;background:var(--soft);color:var(--p1);border-radius:6px;font-size:.72rem;font-weight:800}

/* FAQ */
.blog-faq{margin:32px 0}
.blog-faq details{border:1px solid var(--border);border-radius:12px;padding:0 18px;margin-bottom:10px;background:var(--card)}
.blog-faq summary{font-family:var(--sans);font-weight:600;font-size:1rem;color:var(--ink);cursor:pointer;padding:16px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.blog-faq summary::-webkit-details-marker{display:none}
.blog-faq summary::after{content:"+";color:var(--sub2);font-size:1.3rem;font-weight:400;transition:transform .2s}
.blog-faq details[open] summary::after{transform:rotate(45deg)}
.blog-faq details[open] summary{border-bottom:1px solid var(--border-2)}
.blog-faq p{margin:0;padding:4px 0 18px;color:var(--ink-2)}

/* ---- Bottom back link ---- */
.back-btn-bottom{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-weight:600;font-size:.88rem;color:var(--sub);margin-top:44px}
.back-btn-bottom:hover{color:var(--p1);text-decoration:none}

/* ---- Related articles ---- */
.related-section{margin-top:56px;padding-top:38px;border-top:1px solid var(--border)}
.related-section h2{font-family:var(--serif);font-weight:600;font-size:1.5rem;color:var(--ink);margin:0 0 20px}
.related-grid{display:grid;grid-template-columns:1fr;gap:14px}
.related-card{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--card);transition:border-color .18s,transform .18s,box-shadow .18s}
.related-card:hover{border-color:rgba(79,125,255,.35);transform:translateY(-2px);box-shadow:0 16px 34px -20px rgba(79,125,255,.35);text-decoration:none}
.related-thumb{font-size:1.4rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--soft);border-radius:12px;flex-shrink:0}
.related-title{font-family:var(--sans);font-weight:600;color:var(--ink);font-size:.98rem;line-height:1.35}
.related-meta{font-family:var(--sans);color:var(--sub2);font-size:.8rem;margin-top:5px}

/* ---- Xerostate CTA ---- */
.cta-section{margin-top:52px;text-align:center;background:linear-gradient(135deg,rgba(79,125,255,.06),rgba(139,92,246,.06));border:1px solid rgba(79,125,255,.16);border-radius:20px;padding:44px 28px}
.cta-section h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,1.3rem + 1vw,1.95rem);color:var(--ink);margin:0 0 12px}
.cta-section p{font-family:var(--sans);color:var(--sub);margin:0 auto 24px;font-size:1rem;max-width:34em}
.cta-btn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;font-family:var(--sans);font-weight:600;font-size:.98rem;padding:14px 30px;border-radius:100px;transition:background .18s,transform .18s,box-shadow .18s}
.cta-btn:hover{background:var(--p1);transform:translateY(-1px);box-shadow:0 14px 30px -12px rgba(79,125,255,.5);text-decoration:none}

/* ---- Footer ---- */
footer.site-footer{border-top:1px solid var(--border);padding:36px 0;text-align:center;font-family:var(--sans);color:var(--sub2);font-size:.85rem}
footer.site-footer a{color:var(--sub);margin:0 9px}
footer.site-footer a:hover{color:var(--p1)}

/* ---- Sponsor / Ad slot placeholders (Phase 2 fills behavior; reserved styles) ---- */
.blog-slot{margin:36px 0}
.blog-slot:empty{display:none}

/* ============================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:600px){
  .wrap{padding:0 18px}
  main{padding:30px 0 56px}
  .nav-links a:not(.cta){display:none}
  article{font-size:1.05rem}
  article > p:first-of-type{font-size:1.1rem}
  .toc-toggle{display:inline}
  .toc-box.collapsed ol{display:none}
  .blog-figure.hero{margin:6px 0 28px}
}

/* Sticky TOC rail on wide screens — sits left of the reading column */
@media (min-width:1280px){
  .toc-box.show{position:fixed;left:max(20px,calc(50vw - 600px));top:calc(var(--nav-h) + 44px);width:200px;max-height:calc(100vh - var(--nav-h) - 90px);overflow-y:auto;margin:0;background:none;border:none;border-left:1px solid var(--border);border-radius:0;padding:2px 0 2px 18px;z-index:10}
  .toc-box::-webkit-scrollbar{width:5px}
  .toc-box::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
}

/* ---- Motion ---- */
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .related-card,.cta-btn,.blog-share button{transition:none}
}
html{scroll-behavior:smooth}

/* ============================================================================
   BLOG LISTING (blog/index.html) — scoped under body.blog-listing
   ========================================================================== */
.blog-listing .wrap{max-width:1080px}
.blog-listing main{padding:0 0 76px}
.blog-hero{text-align:center;padding:60px 0 40px}
.hero-kicker{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:.76rem;font-weight:700;letter-spacing:.04em;color:var(--p1);background:var(--soft);padding:6px 16px;border-radius:100px;margin-bottom:20px}
.blog-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.1rem,1.6rem + 2.4vw,3.2rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 16px}
.blog-hero h1 span{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.blog-hero p{font-family:var(--sans);color:var(--sub);font-size:1.05rem;line-height:1.6;max-width:560px;margin:0 auto 30px}
.search-wrap{max-width:480px;margin:0 auto;position:relative}
.search-inp{width:100%;padding:13px 18px 13px 44px;border-radius:13px;border:1px solid var(--border);background:var(--card);font-family:var(--sans);font-size:.95rem;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s;box-shadow:0 4px 16px rgba(16,24,40,.03)}
.search-inp:focus{border-color:var(--p1);box-shadow:0 0 0 3px rgba(79,125,255,.12)}
.search-ic{position:absolute;left:16px;top:50%;transform:translateY(-50%);opacity:.45;font-size:1.05rem}
.write-cta{display:inline-flex;align-items:center;gap:7px;margin-top:18px;background:var(--ink);color:#fff;font-family:var(--sans);font-weight:600;font-size:.9rem;padding:11px 22px;border-radius:100px;transition:transform .15s,background .15s}
.write-cta:hover{transform:translateY(-1px);background:var(--p1);color:#fff;text-decoration:none}
.cat-row{display:flex;gap:8px;overflow-x:auto;padding:0 20px 4px;margin:0 0 40px;scrollbar-width:none;justify-content:center;flex-wrap:wrap}
.cat-row::-webkit-scrollbar{display:none}
.cat-chip{flex-shrink:0;border:1px solid var(--border);background:var(--card);color:var(--sub);font-family:var(--sans);font-weight:600;font-size:.84rem;padding:8px 17px;border-radius:100px;cursor:pointer;transition:.15s}
.cat-chip:hover{border-color:var(--ink);color:var(--ink)}
.cat-chip.active{background:var(--ink);border-color:var(--ink);color:#fff}
.section-lbl{font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--sub2);margin:0 auto 4px;max-width:728px}
.blog-grid{display:block;max-width:728px;margin:0 auto}
.card{display:block;padding:34px 0;border-bottom:1px solid var(--border);color:inherit}
.card:hover{text-decoration:none}
.card::after{content:"";display:block;clear:both}
.card:hover h2{color:var(--p1)}
.card-cover{float:right;width:120px;height:120px;margin:4px 0 0 26px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:42px;border:1px solid var(--border)}
.tag{display:block;font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--p1);margin-bottom:10px}
.card h2{font-family:var(--serif);font-size:clamp(1.4rem,1.2rem + .7vw,1.68rem);line-height:1.22;margin:0 0 9px;font-weight:600;color:var(--ink);letter-spacing:-.01em;transition:color .15s}
.card .excerpt{margin:0 0 14px;color:var(--sub);font-family:var(--sans);font-size:1rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-meta{display:flex;align-items:center;gap:9px;font-family:var(--sans);font-size:.85rem;color:var(--sub2)}
.card-meta .rm{margin-left:auto;font-weight:600}
.featured-wrap{max-width:728px;margin:0 auto 6px}
.featured{display:block;color:inherit;border-bottom:1px solid var(--border);padding-bottom:38px}
.featured:hover{text-decoration:none}
.featured-cover{width:100%;height:300px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:80px;margin-bottom:26px;border:1px solid var(--border)}
.featured-body h2{font-family:var(--serif);font-size:clamp(1.9rem,1.5rem + 1.8vw,2.5rem);font-weight:600;line-height:1.1;margin:0 0 14px;letter-spacing:-.02em;transition:color .15s}
.featured:hover .featured-body h2{color:var(--p1)}
.featured-body p{font-family:var(--sans);color:var(--sub);font-size:1.1rem;line-height:1.6;margin:0 0 16px}
.empty-state{display:none;text-align:center;padding:60px 20px;color:var(--sub);max-width:728px;margin:0 auto}
.empty-state.show{display:block}
.empty-state .ic{font-size:2.2rem;margin-bottom:12px}
@media(max-width:600px){
  .blog-hero{padding:38px 0 28px}
  .card{padding:26px 0}
  .card-cover{width:86px;height:86px;margin-left:18px;font-size:32px}
  .featured-cover{height:200px;font-size:64px}
}

/* ============================================================================
   SPONSORSHIPS & ADS (Phase 2) — clearly-labeled, never deceptive.
   .blog-slot is injected by _sponsors.js; empty/failed slots collapse.
   ========================================================================== */
.blog-slot{margin:38px 0}
.blog-slot:empty{display:none;margin:0}

/* Direct sponsor banner */
.sponsor-card{display:block;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--card);transition:border-color .18s,box-shadow .18s,transform .18s}
.sponsor-card:hover{border-color:rgba(79,125,255,.3);box-shadow:0 16px 34px -22px rgba(16,24,40,.3);transform:translateY(-1px);text-decoration:none}
.sponsor-flag{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border-2);background:#fafbfe}
.sponsor-flag .lbl{font-family:var(--sans);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sub2);display:inline-flex;align-items:center;gap:7px}
.sponsor-flag .lbl::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--sub2)}
.sponsor-flag .by{font-family:var(--sans);font-size:.78rem;color:var(--sub);font-weight:500}
.sponsor-creative{display:block;width:100%;height:auto;background:linear-gradient(135deg,#f2f6ff,#f3f0ff)}
.sponsor-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px}
.sponsor-foot .name{font-family:var(--sans);font-weight:600;font-size:.94rem;color:var(--ink)}
.sponsor-cta{font-family:var(--sans);font-weight:600;font-size:.88rem;color:var(--p1);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.sponsor-card:hover .sponsor-cta{gap:8px}

/* House (internal Xerostate) promo — the graceful "no sponsor" fallback */
.sponsor-house{display:flex;align-items:center;gap:16px;border:1px dashed var(--border);border-radius:16px;padding:18px 20px;background:linear-gradient(135deg,rgba(79,125,255,.05),rgba(139,92,246,.05))}
.sponsor-house .ic{font-size:1.7rem;flex-shrink:0}
.sponsor-house .txt{flex:1;min-width:0}
.sponsor-house .txt b{font-family:var(--sans);font-weight:650;color:var(--ink);font-size:.98rem}
.sponsor-house .txt span{display:block;font-family:var(--sans);color:var(--sub);font-size:.86rem;margin-top:2px}
.sponsor-house a.hbtn{flex-shrink:0;font-family:var(--sans);font-weight:600;font-size:.85rem;color:#fff;background:var(--ink);padding:9px 16px;border-radius:100px;white-space:nowrap;transition:background .15s}
.sponsor-house a.hbtn:hover{background:var(--p1);text-decoration:none}

/* Google ad slot — visually distinct from editorial, labeled "Advertisement" */
.blog-ad-slot{margin:38px 0;text-align:center}
.blog-ad-slot .ad-lbl{font-family:var(--sans);font-size:.64rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sub2);margin-bottom:6px}
.blog-ad-slot ins{display:block}

@media (max-width:600px){
  .sponsor-house{flex-wrap:wrap}
  .sponsor-house a.hbtn{width:100%;text-align:center}
}
@media (prefers-reduced-motion:reduce){.sponsor-card{transition:none}}

/* ============================================================================
   CMS block extras (comparison, full-bleed image, video) — Phase A
   ========================================================================== */
.blog-figure.full{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw}
.blog-figure.full img{border-radius:0}
@media (min-width:1100px){.blog-figure.full{margin-left:calc(360px - 50vw);margin-right:calc(360px - 50vw)}}
.blog-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:30px 0}
.blog-compare .cmp-col{border:1px solid var(--border);border-radius:14px;padding:18px 20px;background:var(--card)}
.blog-compare .cmp-col h4{font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--p1);margin:0 0 10px}
.blog-compare .cmp-col ul{margin:0;padding-left:20px}
.blog-compare .cmp-col li{margin-bottom:7px}
@media (max-width:560px){.blog-compare{grid-template-columns:1fr}.blog-figure.full{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}}
