/* SOP Writer — article / knowledge-hub layout.
   Inherits brand tokens from sopwriter.css (Obsidian / Platinum / Champagne Gold / Emerald). */

/* reading progress */
.read-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--accent-dark),var(--accent),var(--accent-light));
  box-shadow:0 0 12px var(--accent-glow);transition:width .1s linear}

/* breadcrumb */
.crumbs{max-width:1180px;margin:0 auto;padding:6.5rem 2rem 0;font-family:var(--mono);
  font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ivory-50)}
.crumbs a{color:var(--ivory-50);text-decoration:none;transition:color .3s}
.crumbs a:hover{color:var(--accent)}
.crumbs span{color:var(--accent);margin:0 .5rem}

/* article hero */
.art-hero{max-width:880px;margin:0 auto;padding:2rem 2rem 1rem;text-align:center}
.art-cat{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-dim);
  background:var(--accent-dim);padding:.4rem .9rem;border-radius:100px;margin-bottom:1.5rem}
.art-hero h1{font-family:var(--display);font-weight:700;font-size:clamp(2rem,4.6vw,3.2rem);
  line-height:1.1;letter-spacing:-.015em;margin-bottom:1.3rem;color:var(--ivory)}
.art-hero h1 em{font-style:italic;color:var(--accent)}
.art-dek{font-family:var(--serif);font-size:clamp(1.12rem,2.2vw,1.4rem);color:var(--ivory-90);
  max-width:680px;margin:0 auto 1.6rem;line-height:1.55}
.art-meta{display:flex;align-items:center;justify-content:center;gap:1.4rem;flex-wrap:wrap;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--ivory-50)}
.art-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--accent)}

/* layout grid: TOC + body */
.art-shell{max-width:1180px;margin:2.5rem auto 0;padding:0 2rem;
  display:grid;grid-template-columns:240px 1fr;gap:3.5rem;align-items:start}
.toc{position:sticky;top:90px;border-left:1px solid var(--ivory-08);padding-left:1.3rem}
.toc-title{font-family:var(--mono);font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ivory-50);margin-bottom:1rem}
.toc a{display:block;color:var(--ivory-50);text-decoration:none;font-size:.84rem;line-height:1.4;
  padding:.42rem 0;border-left:2px solid transparent;margin-left:-1.3rem;padding-left:1.3rem;
  transition:color .3s,border-color .3s}
.toc a:hover{color:var(--ivory-90)}
.toc a.active{color:var(--accent);border-left-color:var(--accent);font-weight:600}

/* article body typography */
.art-body{max-width:720px;font-size:1.06rem}
.art-body h2{font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,3vw,2rem);
  color:var(--ivory);margin:2.8rem 0 1rem;letter-spacing:-.01em;scroll-margin-top:90px;line-height:1.2}
.art-body h3{font-family:var(--body);font-weight:700;font-size:1.16rem;color:var(--accent-light);
  margin:1.8rem 0 .7rem;letter-spacing:.01em}
.art-body p{color:var(--ivory-70);line-height:1.85;margin-bottom:1.2rem}
.art-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--accent-dim);transition:text-decoration-color .3s}
.art-body a:hover{text-decoration-color:var(--accent)}
.art-body strong{color:var(--ivory-90);font-weight:600}
.art-body ul,.art-body ol{margin:0 0 1.3rem 1.2rem;color:var(--ivory-70);line-height:1.8}
.art-body li{margin-bottom:.55rem;padding-left:.3rem}
.art-body li::marker{color:var(--accent)}
.art-body blockquote{border-left:3px solid var(--accent);background:var(--accent-dim);
  padding:1.1rem 1.4rem;margin:1.6rem 0;border-radius:0 8px 8px 0;
  font-family:var(--serif);font-size:1.18rem;font-style:italic;color:var(--ivory-90)}

/* lead paragraph */
.art-body .lead{font-family:var(--serif);font-size:1.28rem;line-height:1.6;color:var(--ivory-90);
  font-style:normal;margin-bottom:1.6rem}

/* key takeaways card */
.takeaways{background:linear-gradient(155deg,var(--surface),var(--deep));
  border:1px solid var(--accent-dim);border-radius:14px;padding:1.6rem 1.8rem;margin:2.4rem 0;
  position:relative;overflow:hidden}
.takeaways::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;
  background:linear-gradient(180deg,var(--accent),var(--teal))}
.takeaways h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin-bottom:1rem}
.takeaways ul{list-style:none;margin:0}
.takeaways li{position:relative;padding-left:1.7rem;margin-bottom:.7rem;color:var(--ivory-90);
  line-height:1.65;font-size:.98rem}
.takeaways li::before{content:'';position:absolute;left:0;top:.55em;width:8px;height:8px;
  background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent-glow)}

/* inline CTA strip */
.inline-cta{background:linear-gradient(135deg,var(--surface-light),var(--surface));
  border:1px solid var(--accent-dim);border-radius:14px;padding:1.6rem 1.8rem;margin:2.6rem 0;
  display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap}
.inline-cta p{margin:0;color:var(--ivory-90);font-family:var(--serif);font-size:1.18rem;flex:1;min-width:240px}
.inline-cta .btn{white-space:nowrap}

/* FAQ */
.art-faq{margin-top:2.6rem}
.art-faq details{border:1px solid var(--ivory-08);border-radius:10px;margin-bottom:.8rem;
  background:var(--ivory-04);transition:border-color .3s}
.art-faq details[open]{border-color:var(--accent-dim)}
.art-faq summary{cursor:pointer;padding:1rem 1.3rem;font-weight:600;color:var(--ivory-90);
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:1rem}
.art-faq summary::-webkit-details-marker{display:none}
.art-faq summary::after{content:'+';color:var(--accent);font-size:1.4rem;font-weight:300;
  transition:transform .3s;line-height:1}
.art-faq details[open] summary::after{transform:rotate(45deg)}
.art-faq details p{padding:0 1.3rem 1.2rem;color:var(--ivory-70);line-height:1.8;margin:0}

/* share row */
.share-row{display:flex;align-items:center;gap:.7rem;margin:2.8rem 0 1rem;
  padding-top:1.6rem;border-top:1px solid var(--ivory-08)}
.share-row .lbl{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ivory-50);margin-right:.4rem}
.share-row a{width:38px;height:38px;border-radius:50%;border:1px solid var(--ivory-15);
  display:inline-flex;align-items:center;justify-content:center;color:var(--ivory-70);
  transition:all .3s;text-decoration:none}
.share-row a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}
.share-row svg{width:16px;height:16px;fill:currentColor}

/* author / trust strip */
.author-card{display:flex;align-items:center;gap:1rem;background:var(--ivory-04);
  border:1px solid var(--ivory-08);border-radius:14px;padding:1.2rem 1.4rem;margin-top:1.6rem}
.author-card img{width:52px;height:52px;border-radius:50%;object-fit:cover;
  border:2px solid var(--accent-dim)}
.author-card .who{font-weight:700;color:var(--ivory-90);font-size:.95rem}
.author-card .role{color:var(--ivory-50);font-size:.82rem;font-family:var(--mono);letter-spacing:.04em}

/* related */
.related{max-width:1180px;margin:4rem auto 0;padding:3rem 2rem;border-top:1px solid var(--ivory-08)}
.related h3{font-family:var(--display);font-size:1.6rem;color:var(--ivory);margin-bottom:1.6rem;font-weight:600}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.related-card{background:var(--ivory-04);border:1px solid var(--ivory-08);border-radius:14px;
  padding:1.4rem;text-decoration:none;display:block;transition:all .35s var(--ease-out,cubic-bezier(.22,1,.36,1))}
.related-card:hover{transform:translateY(-4px);border-color:var(--accent-dim);
  box-shadow:0 14px 34px rgba(0,0,0,.35)}
.related-card .rc-cat{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.7rem}
.related-card .rc-title{font-family:var(--display);font-size:1.12rem;color:var(--ivory);line-height:1.3;font-weight:600}
.related-card .rc-arrow{margin-top:.9rem;color:var(--accent);font-size:.8rem;font-family:var(--mono);letter-spacing:.06em}

@media(max-width:900px){
  .art-shell{grid-template-columns:1fr;gap:0}
  .toc{display:none}
  .related-grid{grid-template-columns:1fr}
}
