/* ==========================================================================
   Qlean Blog - shared styling. Matches the main site (navy/ember/gold,
   Cinzel/Cormorant/Inter). Used by blog/index.html and every post.
   ========================================================================== */
:root{
  --navy-abyss:#0B0E13;
  --navy-deep:#10151F;
  --navy-card:#161D2B;
  --steel:#3E7082;
  --teal:#5F9298;
  --ice:#C8E5F2;
  --gold:#FFEFB8;
  --gold-deep:#C9A84C;
  --ember:#F1713C;
  --mint:#B9FFB7;
  --text-soft:#A9BBC8;
  --text-dim:#5E7180;
  --danger:#FF585C;
  --line:rgba(200,229,242,0.10);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--navy-abyss);
  color:var(--text-high);
  font-family:'Inter',sans-serif;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---- nav (identical to main site) ---- */
header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(14px);
  background:var(--header-bg);
  border-bottom:1px solid var(--line);
}
nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:38px;height:38px}
.brand span{font-family:'Cinzel',serif;font-weight:600;font-size:1.3rem;letter-spacing:.04em;color:var(--text-max)}
.nav-links{display:flex;gap:34px;align-items:center}
.nav-links a{font-size:.92rem;color:var(--text-soft);transition:color .2s}
.nav-links a:hover{color:var(--ice)}
.nav-cta{
  font-family:'Inter';font-weight:600;font-size:.9rem;
  padding:10px 22px;border-radius:6px;
  background:linear-gradient(135deg,var(--btn-a),var(--btn-b));
  color:var(--on-gold) !important;transition:transform .2s, box-shadow .2s;
}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(201,168,76,.25)}
.menu-btn{display:none;background:none;border:none;color:var(--ice);font-size:1.6rem;cursor:pointer}

/* ---- blog hub ---- */
.blog-hero{padding:140px 0 40px;text-align:center;position:relative}
.blog-hero .eyebrow{
  font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:20px;
}
.blog-hero h1{
  font-family:'Cinzel',serif;font-weight:700;
  font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.12;margin-bottom:20px;
}
.blog-hero p{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(1.15rem,2.2vw,1.45rem);color:var(--text-soft);
  max-width:600px;margin:0 auto;
}
.post-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:26px;
  padding:50px 0 90px;
}
.post-card{
  display:block;
  background:linear-gradient(160deg,var(--navy-card),var(--navy-deep));
  border:1px solid var(--line);border-radius:14px;padding:30px 28px;
  transition:transform .2s,border-color .2s;
}
.post-card:hover{transform:translateY(-3px);border-color:rgba(241,113,60,.35)}
.post-card .cat{
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ember);margin-bottom:14px;
}
.post-card h2{
  font-family:'Cinzel',serif;font-weight:600;font-size:1.35rem;
  line-height:1.25;margin-bottom:12px;color:var(--text-max);
}
.post-card p{color:var(--text-soft);font-size:.95rem;margin-bottom:16px}
.post-card .more{color:var(--gold);font-size:.86rem;font-weight:600}

/* ---- article ---- */
.article-wrap{max-width:760px;margin:0 auto;padding:0 24px}
.breadcrumb{
  padding-top:120px;font-size:.82rem;color:var(--text-dim);
}
.breadcrumb a{color:var(--text-soft)}
.breadcrumb a:hover{color:var(--ice)}
.article-head{padding:26px 0 8px;border-bottom:1px solid var(--line);margin-bottom:38px}
.article-cat{
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ember);margin-bottom:18px;
}
.article-head h1{
  font-family:'Cinzel',serif;font-weight:700;
  font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.14;
  letter-spacing:.01em;margin-bottom:22px;
}
.article-lede{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(1.2rem,2.4vw,1.5rem);color:var(--text-soft);
  line-height:1.5;margin-bottom:28px;
}
.byline{display:flex;align-items:center;gap:14px;margin-bottom:30px}
.byline .avatar{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--btn-a),var(--btn-b));
  display:flex;align-items:center;justify-content:center;
  font-family:'Cinzel',serif;font-weight:700;color:var(--on-gold);font-size:1.1rem;
}
.byline .meta{font-size:.86rem;color:var(--text-dim);line-height:1.5}
.byline .meta strong{color:var(--text-high);font-weight:600;display:block;font-size:.92rem}

/* article prose */
.prose{font-size:1.06rem;line-height:1.8;color:var(--prose-ink)}
.prose h2{
  font-family:'Cinzel',serif;font-weight:600;font-size:1.7rem;color:var(--text-max);
  margin:52px 0 18px;line-height:1.25;letter-spacing:.01em;
}
.prose h3{
  font-family:'Inter',sans-serif;font-weight:600;font-size:1.22rem;color:var(--ice);
  margin:34px 0 12px;
}
.prose p{margin-bottom:22px}
.prose a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.prose a:hover{color:var(--gold-deep)}
.prose ul,.prose ol{margin:0 0 22px 22px}
.prose li{margin-bottom:10px}
.prose strong{color:var(--text-max);font-weight:600}
.prose blockquote{
  border-left:3px solid var(--ember);
  background:rgba(241,113,60,.06);
  padding:20px 24px;border-radius:0 10px 10px 0;margin:0 0 26px;
}
.prose blockquote p{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:1.28rem;color:var(--lede-ink);margin-bottom:8px;line-height:1.5;
}
.prose blockquote cite{
  font-style:normal;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-deep);
}
.prose .callout{
  background:linear-gradient(160deg,var(--navy-card),var(--navy-deep));
  border:1px solid var(--line);border-radius:12px;padding:22px 24px;margin:0 0 26px;
}
.prose .callout p:last-child{margin-bottom:0}

/* table of contents */
.toc{
  background:var(--navy-deep);border:1px solid var(--line);
  border-radius:12px;padding:22px 26px;margin-bottom:40px;
}
.toc h4{
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:14px;
}
.toc ol{margin-left:18px}
.toc li{margin-bottom:8px}
.toc a{color:var(--text-soft);font-size:.95rem}
.toc a:hover{color:var(--gold)}

/* faq */
.faq-section{margin-top:56px}
.faq-section h2{
  font-family:'Cinzel',serif;font-weight:600;font-size:1.7rem;color:var(--text-max);margin-bottom:24px;
}
.faq-item{border-bottom:1px solid var(--line);padding:20px 0;cursor:pointer}
.faq-q{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:1.02rem;color:var(--text-max);gap:16px}
.faq-q span.plus{color:var(--ember);font-size:1.4rem;transition:transform .25s;flex-shrink:0}
.faq-item.open .plus{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;color:var(--text-soft);font-size:.98rem;line-height:1.7}
.faq-item.open .faq-a{max-height:600px;margin-top:14px}

/* cta box */
.cta-box{
  background:linear-gradient(135deg,rgba(241,113,60,.14),rgba(201,168,76,.08));
  border:1px solid rgba(241,113,60,.28);border-radius:16px;
  padding:38px 34px;margin:56px 0;text-align:center;
}
.cta-box h3{
  font-family:'Cinzel',serif;font-weight:600;font-size:1.5rem;color:var(--text-max);margin-bottom:12px;
}
.cta-box p{color:var(--text-soft);margin-bottom:24px;max-width:480px;margin-left:auto;margin-right:auto}
/* selector is specific enough to beat `.prose a` (the CTA sits inside .prose) */
.cta-btn,
.prose a.cta-btn{
  display:inline-block;font-weight:700;font-size:1rem;padding:15px 40px;border-radius:8px;
  background:linear-gradient(135deg,var(--btn-a),var(--btn-b));
  color:var(--on-gold);text-decoration:none;transition:transform .2s,box-shadow .2s;
}
.cta-btn:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(201,168,76,.3)}

/* author bio + related */
.author-bio{
  display:flex;gap:20px;align-items:flex-start;
  background:var(--navy-deep);border:1px solid var(--line);
  border-radius:14px;padding:28px;margin:48px 0;
}
.author-bio .avatar{
  width:56px;height:56px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--btn-a),var(--btn-b));
  display:flex;align-items:center;justify-content:center;
  font-family:'Cinzel',serif;font-weight:700;color:var(--on-gold);font-size:1.3rem;
}
.author-bio h4{font-size:1rem;color:var(--text-max);margin-bottom:6px}
.author-bio p{color:var(--text-soft);font-size:.92rem;line-height:1.65}
.related{margin:56px 0}
.related h3{
  font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:22px;
}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.related-card{
  background:var(--navy-deep);border:1px solid var(--line);
  border-radius:12px;padding:20px;transition:border-color .2s,transform .2s;
}
.related-card:hover{border-color:rgba(241,113,60,.35);transform:translateY(-2px)}
.related-card .cat{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember);margin-bottom:10px}
.related-card h4{font-family:'Cinzel',serif;font-weight:600;font-size:1rem;color:var(--text-max);line-height:1.3}

/* ---- footer (identical to main site) ---- */
footer{border-top:1px solid var(--line);padding:54px 0 36px;margin-top:40px}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:34px;margin-bottom:40px}
.foot-brand{max-width:280px}
.foot-brand .brand{margin-bottom:14px}
.foot-brand p{color:var(--text-dim);font-size:.88rem}
.foot-col h5{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:16px}
.foot-col a{display:block;color:var(--text-soft);font-size:.9rem;margin-bottom:10px;transition:color .2s}
.foot-col a:hover{color:var(--ice)}
.foot-bottom{text-align:center;color:var(--text-dim);font-size:.82rem;border-top:1px solid var(--line);padding-top:26px}

/* ---- article images ---- */
.post-image{
  margin:8px 0 30px;border-radius:12px;overflow:hidden;
  border:1px solid var(--line);background:var(--navy-deep);
}
.post-image img{
  display:block;width:100%;height:auto;
  /* width/height attributes are set on every img so the box is reserved
     before the file loads - stops layout shift (CLS) on slow connections */
}
.post-image figcaption{
  padding:12px 18px;font-size:.84rem;color:var(--text-dim);
  line-height:1.5;border-top:1px solid var(--line);
}

/* ---- charts (inline SVG, embedded in .prose) ---- */
.chart-figure{
  margin:8px 0 30px;background:var(--navy-deep);border:1px solid var(--line);
  border-radius:12px;padding:22px 22px 16px;
}
.chart-figure svg{display:block;width:100%;height:auto}
.chart-caption{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
  font-size:.86rem;color:var(--text-soft);line-height:1.5;
}
.chart-caption strong{color:var(--text-max);font-weight:600}
.chart-source{display:block;margin-top:4px;font-size:.76rem;color:var(--text-dim)}

.stat-tile-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:14px;margin:0 0 30px;
}
.stat-tile{
  background:var(--navy-deep);border:1px solid var(--line);border-radius:12px;
  padding:20px 18px;text-align:center;
}
.stat-value{
  font-family:'Cinzel',serif;font-weight:600;font-size:1.7rem;color:var(--gold);
  line-height:1.1;margin-bottom:8px;
}
.stat-label{font-size:.82rem;color:var(--text-soft);line-height:1.4}

/* comparison tables */
.prose table{
  width:100%;border-collapse:collapse;margin:0 0 26px;
  background:var(--navy-deep);border:1px solid var(--line);border-radius:12px;
  overflow:hidden;font-size:.94rem;
}
.prose th,.prose td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
.prose th{
  font-family:'Inter',sans-serif;font-weight:600;font-size:.76rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold-deep);background:rgba(241,113,60,.06);
}
.prose td{color:var(--text-soft)}
.prose tr:last-child td{border-bottom:none}
.prose td strong{color:var(--text-max)}

/* ---- responsive ---- */
@media(max-width:820px){
  .nav-links{display:none}
  .menu-btn{display:block}
  .post-grid{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr}
  .prose table{display:block;overflow-x:auto}
}
