/* Blog post v1 — scoped from mockup blog.css */
/* ============================================================
   LASSO BLOG — redesign stylesheet
   Modernized Lasso brand: purple #5E36CA, green #22BAA0
   ============================================================ */
body.single-post-v1 {

  /* brand */
  --purple: #5E36CA;
  --dark-purple: #40258A;
  --light-purple: #B09AE5;
  --green: #22BAA0;
  --light-green: #00ffd3;
  --blue: #228BC9;
  --orange: #F6BD60;
  --red: #E06470;

  /* ink + surfaces (cool-toned neutrals) */
  --ink: #23232b;
  --ink-soft: #46464f;
  --ink-muted: #6b6b78;
  --line: #e7e7f0;
  --line-strong: #d9d9e6;
  --surface: #ffffff;
  --surface-1: #f8f8fc;
  --surface-2: #f0f0f8;
  --surface-3: #e9e9f7;

  /* tint fills for callouts (derived) */
  --purple-tint: #f1edfb;
  --green-tint: #e6f7f3;
  --orange-tint: #fdf5e4;
  --blue-tint: #e8f3fa;
  --red-tint: #fbedef;

  /* accent — toggled by tweak (default green CTAs) */
  --accent: var(--green);
  --accent-ink: #14796a;

  /* spacing ramp */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px;
  --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px; --s10: 128px;

  /* radii */
  --r-sm: 10px; --r-md: 14px; --r-lg: 20px; --r-xl: 28px; --r-pill: 999px;

  /* shadows */
  --sh-xs: 0 1px 2px rgba(20,20,50,.06);
  --sh-sm: 0 2px 8px rgba(40,40,93,.07), 0 1px 3px rgba(0,0,0,.05);
  --sh-md: 0 8px 24px rgba(50,50,93,.09), 0 3px 8px rgba(0,0,0,.05);
  --sh-lg: 0 18px 48px rgba(50,50,93,.13), 0 6px 16px rgba(0,0,0,.06);
  --sh-purple: 0 14px 34px rgba(94,54,202,.28);
  --sh-green: 0 12px 28px rgba(34,186,160,.30);

  /* reading measure — tunable by tweak */
  --measure: 68ch;
  --content-max: 1240px;

  --header-h: 64px;

}
body.single-post-v1 * {
 box-sizing: border-box; 
}
body.single-post-v1 {
 scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 24px); 
}
@media (prefers-reduced-motion: reduce) {
body.single-post-v1 {
 scroll-behavior: auto; 
}
}
body.single-post-v1 {

  margin: 0;
  font-family: "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--ink);
  background: var(--surface);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  line-height: 1.6;

}
body.single-post-v1 img {
 max-width: 100%; display: block; 
}
body.single-post-v1 .hero a,
body.single-post-v1 .layout a,
body.single-post-v1 .zone a {
 color: var(--purple); text-decoration: none; 
}
body.single-post-v1 strong, body.single-post-v1 b {
 font-weight: 700; 
}
/* ===== utility / layout ===== */
body.single-post-v1 .wrap {
 max-width: var(--content-max); margin: 0 auto; padding: 0 24px; 
}
body.single-post-v1 .eyebrow {

  font-weight: 700; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--purple);

}
/* ============================================================
   SCROLL PROGRESS
   ============================================================ */
body.single-post-v1 .progress {

  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--purple), var(--green));
  z-index: 1200; transition: width .08s linear;

}
/* ============================================================
   HEADER
   ============================================================ */
body.single-post-v1 .site-header {

  position: sticky; top: 0; z-index: 1100;
  height: var(--header-h);
  background: rgba(255,255,255,.82);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--line);

}
body.single-post-v1 .site-header .wrap {
 height: 100%; display: flex; align-items: center; gap: 28px; 
}
body.single-post-v1 .brand {
 display: flex; align-items: center; gap: 9px; flex-shrink: 0; 
}
body.single-post-v1 .brand .mark {
 width: 30px; height: 30px; 
}
body.single-post-v1 .brand .word {
 font-weight: 700; font-size: 21px; color: var(--purple); letter-spacing: -.01em; 
}
body.single-post-v1 .nav-main {
 display: flex; gap: 26px; margin-left: 8px; 
}
body.single-post-v1 .nav-main a {
 color: var(--ink-soft); font-weight: 500; font-size: 15px; 
}
body.single-post-v1 .nav-main a:hover {
 color: var(--purple); 
}
body.single-post-v1 .header-cta {
 margin-left: auto; display: flex; align-items: center; gap: 14px; 
}
body.single-post-v1 .header-cta .login {
 color: var(--ink-soft); font-weight: 500; font-size: 15px; 
}
body.single-post-v1 .header-cta .login:hover {
 color: var(--purple); 
}
/* buttons — mockup styles for legacy btn--* only; site .green-bg/.white-bg/.purple-bg use style.css */
body.single-post-v1 .btn:not(.green-bg):not(.white-bg):not(.purple-bg) {

  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: inherit; font-weight: 700; font-size: 16px; line-height: 1;
  padding: 13px 22px; border-radius: var(--r-pill); border: 0; cursor: pointer;
  text-decoration: none; transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
  white-space: nowrap;

}
body.single-post-v1 .btn svg {
 width: 17px; height: 17px; 
}
body.single-post-v1 .btn--accent {
 background: var(--accent); color: #fff; box-shadow: var(--sh-green); 
}
body.single-post-v1 .btn--accent:hover {
 transform: translateY(-2px); box-shadow: 0 16px 34px rgba(34,186,160,.4); 
}
body.single-post-v1 .btn--purple {
 background: var(--purple); color: #fff; box-shadow: var(--sh-purple); 
}
body.single-post-v1 .btn--purple:hover {
 transform: translateY(-2px); box-shadow: 0 18px 40px rgba(94,54,202,.4); 
}
body.single-post-v1 .btn--ghost {
 background: #fff; color: var(--purple); box-shadow: inset 0 0 0 1.5px var(--line-strong); 
}
body.single-post-v1 .btn--ghost:hover {
 box-shadow: inset 0 0 0 1.5px var(--purple); transform: translateY(-2px); 
}
body.single-post-v1 .btn--sm {
 padding: 10px 17px; font-size: 14.5px; 
}
body.single-post-v1 .btn--lg {
 padding: 16px 30px; font-size: 18px; 
}
body.single-post-v1 .btn--block {
 width: 100%; 
}
/* ============================================================
   HERO
   ============================================================ */
body.single-post-v1 .hero {
 padding: 40px 0 24px; position: relative; 
}
body.single-post-v1 .breadcrumbs {
 display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--ink-muted); margin-bottom: 22px; flex-wrap: wrap; 
}
body.single-post-v1 .breadcrumbs a {
 color: var(--ink-muted); font-weight: 500; 
}
body.single-post-v1 .breadcrumbs a:hover {
 color: var(--purple); 
}
body.single-post-v1 .breadcrumbs .sep {
 opacity: .5; 
}
body.single-post-v1 .breadcrumbs .current {
 color: var(--purple); font-weight: 600; 
}
body.single-post-v1 .hero-grid {
 display: grid; grid-template-columns: minmax(0,1fr) 380px; gap: 56px; align-items: start; 
}
body.single-post-v1 .cat-pill {

  display: inline-flex; align-items: center; gap: 7px;
  background: var(--purple-tint); color: var(--dark-purple);
  font-weight: 700; font-size: 13px; letter-spacing: .02em;
  padding: 7px 14px; border-radius: var(--r-pill); margin-bottom: 20px;

}
body.single-post-v1 .cat-pill .dot {
 width: 7px; height: 7px; border-radius: 50%; background: var(--purple); 
}
body.single-post-v1 .hero h1 {

  font-weight: 700; line-height: 1.06; letter-spacing: -.022em;
  font-size: clamp(38px, 5vw, 56px); margin: 0 0 20px;
  color: var(--ink); text-wrap: balance;

}
body.single-post-v1 .hero .dek {

  font-size: clamp(18px, 2vw, 21px); line-height: 1.55; color: var(--ink-soft);
  max-width: 40ch; margin: 0 0 28px; font-weight: 300;

}
body.single-post-v1 .author-row {
 display: flex; align-items: center; gap: 16px; flex-wrap: wrap; 
}
body.single-post-v1 .author-id {
 display: flex; align-items: center; gap: 12px; 
}
body.single-post-v1 .avatar {

  width: 46px; height: 46px; border-radius: 50%; object-fit: cover;
  background: var(--surface-3); flex-shrink: 0;

}
body.single-post-v1 .author-id .by {
 font-weight: 700; font-size: 15px; color: var(--ink); 
}
body.single-post-v1 .author-id .role {
 font-size: 13px; color: var(--ink-muted); 
}
body.single-post-v1 .meta-dots {
 display: flex; align-items: center; gap: 14px; color: var(--ink-muted); font-size: 13.5px; flex-wrap: wrap; 
}
body.single-post-v1 .meta-dots .m {
 display: inline-flex; align-items: center; gap: 6px; 
}
body.single-post-v1 .meta-dots svg {
 width: 15px; height: 15px; opacity: .8; 
}
body.single-post-v1 .meta-divider {
 width: 1px; height: 28px; background: var(--line); 
}
/* hero TOC preview card */
body.single-post-v1 .hero-card {

  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: 24px; box-shadow: var(--sh-md);
  position: relative; overflow: hidden;

}
body.single-post-v1 .hero-card::before {

  content:""; position:absolute; inset:0 0 auto 0; height:5px;
  background: linear-gradient(90deg, var(--purple), var(--green));

}
body.single-post-v1 .hero-card h4 {

  margin: 6px 0 16px; font-size: 13px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink-muted);

}
body.single-post-v1 .hero-card ol {
 margin: 0; padding: 0; list-style: none; counter-reset: hc; 
}
body.single-post-v1 .hero-card ol li {
 counter-increment: hc; margin-bottom: 12px; padding-left: 34px; position: relative; 
}
body.single-post-v1 .hero-card ol li::before {

  content: counter(hc, decimal-leading-zero); position: absolute; left: 0; top: -1px;
  font-size: 12px; font-weight: 700; color: var(--purple);
  background: var(--purple-tint); width: 24px; height: 24px; border-radius: 7px;
  display: flex; align-items: center; justify-content: center;

}
body.single-post-v1 .hero-card ol li a {
 color: var(--ink-soft); font-weight: 500; font-size: 15px; 
}
body.single-post-v1 .hero-card ol li a:hover {
 color: var(--purple); 
}
body.single-post-v1 .hero-card .reading-est {
 margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-muted); display:flex; align-items:center; gap:8px; 
}
/* hero image strip */
body.single-post-v1 .hero-figure {

  margin-top: 44px; border-radius: var(--r-xl); overflow: hidden;
  border: 1px solid var(--line); box-shadow: var(--sh-lg);
  background: var(--surface-2);

}
body.single-post-v1 .hero-figure img {
 width: 100%; display: block; 
}
/* ============================================================
   ARTICLE LAYOUT (3-col)
   ============================================================ */
body.single-post-v1 .layout {
 padding: 48px 0 64px; 
}
body.single-post-v1 .layout-grid {

  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 312px;
  gap: 56px; align-items: start;

}
/* sticky TOC (left) */
body.single-post-v1 .toc {
 position: sticky; top: calc(var(--header-h) + 28px); 
}
body.single-post-v1 .toc h5 {

  font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ink-muted); margin: 0 0 14px;

}
body.single-post-v1 .toc ul {
 list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); 
}
body.single-post-v1 .toc li a {

  display: block; padding: 7px 0 7px 16px; margin-left: -2px;
  border-left: 2px solid transparent; color: var(--ink-muted);
  font-size: 14px; font-weight: 500; line-height: 1.35; transition: color .15s, border-color .15s;

}
body.single-post-v1 .toc li a:hover {
 color: var(--purple); 
}
body.single-post-v1 .toc li a.active {
 color: var(--purple); border-left-color: var(--purple); font-weight: 700; 
}
body.single-post-v1 .toc .toc-cta {
 margin-top: 22px; 
}
/* content column */
body.single-post-v1 .content {
 max-width: var(--measure); min-width: 0; 
}
body.single-post-v1 .content > * {
 margin-left: auto; margin-right: auto; 
}
/* CTA rail (right) */
body.single-post-v1 .rail {
 position: sticky; top: calc(var(--header-h) + 28px); display: flex; flex-direction: column; gap: 20px; 
}
/* ============================================================
   PROSE TYPOGRAPHY
   ============================================================ */
body.single-post-v1 .content p {
 font-size: 19px; line-height: 1.75; color: var(--ink-soft); margin: 0 0 26px; 
}
body.single-post-v1 .content p > a {
 color: var(--purple); text-decoration: underline; text-decoration-color: rgba(94,54,202,.3); text-underline-offset: 3px; transition: text-decoration-color .2s; 
}
body.single-post-v1 .content p > a:hover {
 text-decoration-color: var(--purple); 
}
body.single-post-v1 .content .lead {
 font-size: 22px; line-height: 1.6; color: var(--ink); font-weight: 300; 
}
body.single-post-v1 .content h2 {

  font-size: clamp(27px, 3vw, 34px); font-weight: 700; line-height: 1.18;
  letter-spacing: -.018em; color: var(--ink); margin: 64px 0 18px; scroll-margin-top: 90px;
  text-wrap: balance;

}
body.single-post-v1 .content h2 .h2-num {

  display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; color: var(--purple); background: var(--purple-tint);
  width: 34px; height: 34px; border-radius: 9px; margin-right: 14px; vertical-align: 4px;

}
body.single-post-v1 .content h3 {

  font-size: 22px; font-weight: 700; line-height: 1.3; color: var(--ink);
  margin: 40px 0 14px; scroll-margin-top: 90px; letter-spacing: -.01em;

}
body.single-post-v1 .content h2 + p, body.single-post-v1 .content h3 + p {
 margin-top: 0; 
}
body.single-post-v1 .content ul, body.single-post-v1 .content ol {
 font-size: 19px; line-height: 1.7; color: var(--ink-soft); margin: 0 0 26px; padding-left: 0; 
}
body.single-post-v1 .content ul {
 list-style: none; 
}
body.single-post-v1 .content ul > li {
 position: relative; padding-left: 32px; margin-bottom: 14px; 
}
body.single-post-v1 .content ul > li::before {

  content: ""; position: absolute; left: 4px; top: 11px; width: 7px; height: 7px;
  border-radius: 2px; background: var(--green); transform: rotate(45deg);

}
body.single-post-v1 .content ol {
 list-style: none; counter-reset: li; 
}
body.single-post-v1 .content ol > li {
 position: relative; padding-left: 42px; margin-bottom: 16px; counter-increment: li; 
}
body.single-post-v1 .content ol > li::before {

  content: counter(li); position: absolute; left: 0; top: -1px;
  width: 28px; height: 28px; border-radius: 8px; background: var(--purple-tint); color: var(--purple);
  font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center;

}
body.single-post-v1 .content li strong {
 color: var(--ink); 
}
body.single-post-v1 .section-rule {
 border: 0; height: 1px; background: var(--line); margin: 56px auto; 
}
/* ============================================================
   BLOCKQUOTE / PULLQUOTE
   ============================================================ */
body.single-post-v1 .pullquote {

  margin: 44px auto; padding: 8px 0 8px 32px; border-left: 4px solid var(--green);
  font-size: 25px; line-height: 1.45; font-weight: 300; color: var(--ink); font-style: normal;
  letter-spacing: -.01em;

}
body.single-post-v1 .pullquote cite {
 display: block; font-size: 15px; color: var(--ink-muted); font-style: normal; font-weight: 500; margin-top: 14px; 
}
/* ============================================================
   CALLOUTS (tip / warning / note)
   ============================================================ */
body.single-post-v1 .callout {

  display: grid; grid-template-columns: 44px 1fr; gap: 16px;
  padding: 22px 24px; border-radius: var(--r-md); margin: 32px auto;
  border: 1px solid var(--line);

}
body.single-post-v1 .callout .ico {
 width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; 
}
body.single-post-v1 .callout .ico svg {
 width: 22px; height: 22px; 
}
body.single-post-v1 .callout .ct {
 min-width: 0; 
}
body.single-post-v1 .callout .ck {
 font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; margin: 2px 0 6px; 
}
body.single-post-v1 .callout p {
 font-size: 16.5px; line-height: 1.62; margin: 0; color: var(--ink-soft); 
}
body.single-post-v1 .callout p + p {
 margin-top: 10px; 
}
body.single-post-v1 .callout--tip {
 background: var(--green-tint); border-color: #c9ece4; 
}
body.single-post-v1 .callout--tip .ico {
 background: var(--green); color: #fff; 
}
body.single-post-v1 .callout--tip .ck {
 color: var(--accent-ink); 
}
body.single-post-v1 .callout--warning {
 background: var(--orange-tint); border-color: #f2e2bd; 
}
body.single-post-v1 .callout--warning .ico {
 background: var(--orange); color: #6a4b07; 
}
body.single-post-v1 .callout--warning .ck {
 color: #9a6e0a; 
}
body.single-post-v1 .callout--note {
 background: var(--purple-tint); border-color: #e0d6f6; 
}
body.single-post-v1 .callout--note .ico {
 background: var(--purple); color: #fff; 
}
body.single-post-v1 .callout--note .ck {
 color: var(--dark-purple); 
}
/* ============================================================
   GEO BLOCKS — consistent system
   shared chrome: label tab + bordered card
   ============================================================ */
body.single-post-v1 .geo {

  border: 1px solid var(--line-strong); border-radius: var(--r-lg);
  background: var(--surface); margin: 36px auto; overflow: hidden; box-shadow: var(--sh-sm);

}
body.single-post-v1 .geo-head {

  display: flex; align-items: center; gap: 10px; padding: 14px 22px;
  border-bottom: 1px solid var(--line); background: var(--surface-1);

}
body.single-post-v1 .geo-head .tag {

  display: inline-flex; align-items: center; gap: 7px; font-weight: 700; font-size: 12.5px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--purple);

}
body.single-post-v1 .geo-head .tag svg {
 width: 16px; height: 16px; 
}
body.single-post-v1 .geo-head .hint {
 margin-left: auto; font-size: 12px; color: var(--ink-muted); font-weight: 500; 
}
body.single-post-v1 .geo-body {
 padding: 22px 24px; 
}
body.single-post-v1 .geo-body p {
 font-size: 17.5px; line-height: 1.66; margin: 0 0 12px; color: var(--ink-soft); 
}
body.single-post-v1 .geo-body p:last-child {
 margin-bottom: 0; 
}
/* quick answer — emphasized */
body.single-post-v1 .geo--answer {
 border-color: #c9ece4; box-shadow: 0 10px 30px rgba(34,186,160,.12); 
}
body.single-post-v1 .geo--answer .geo-head {
 background: var(--green-tint); border-bottom-color: #cdeee6; 
}
body.single-post-v1 .geo--answer .geo-head .tag {
 color: var(--accent-ink); 
}
body.single-post-v1 .geo--answer .geo-body p:first-child {
 font-size: 19px; color: var(--ink); font-weight: 500; 
}
/* key takeaways */
body.single-post-v1 .geo--takeaways .tk {
 list-style: none; margin: 0; padding: 0; 
}
body.single-post-v1 .geo--takeaways .tk li {
 position: relative; padding-left: 34px; margin-bottom: 14px; font-size: 17px; line-height: 1.55; color: var(--ink-soft); 
}
body.single-post-v1 .geo--takeaways .tk li:last-child {
 margin-bottom: 0; 
}
body.single-post-v1 .geo--takeaways .tk li svg {
 position: absolute; left: 0; top: 1px; width: 22px; height: 22px; color: var(--green); 
}
/* definition */
body.single-post-v1 .geo--def .term {
 font-weight: 700; color: var(--ink); 
}
body.single-post-v1 .geo--def .geo-body p:first-child {
 font-size: 18.5px; 
}
/* summary */
body.single-post-v1 .geo--summary {
 background: var(--surface-1); 
}
/* ============================================================
   STAT CARDS
   ============================================================ */
body.single-post-v1 .stat-grid {
 display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 36px auto; 
}
body.single-post-v1 .stat-card {

  border: 1px solid var(--line); border-radius: var(--r-md); padding: 22px 20px;
  background: var(--surface); box-shadow: var(--sh-xs);

}
body.single-post-v1 .stat-card .num {
 font-size: 38px; font-weight: 700; letter-spacing: -.02em; line-height: 1; color: var(--purple); 
}
body.single-post-v1 .stat-card .num span {
 font-size: 22px; 
}
body.single-post-v1 .stat-card .lab {
 font-size: 14.5px; color: var(--ink-muted); margin-top: 10px; line-height: 1.4; 
}
body.single-post-v1 .stat-card .src {
 font-size: 11.5px; color: var(--ink-muted); opacity: .7; margin-top: 8px; 
}
/* ============================================================
   COMPARISON TABLE
   ============================================================ */
body.single-post-v1 .compare {
 margin: 36px auto; border: 1px solid var(--line-strong); border-radius: var(--r-md); overflow: hidden; box-shadow: var(--sh-sm); 
}
body.single-post-v1 .compare table {
 width: 100%; border-collapse: collapse; font-size: 16px; 
}
body.single-post-v1 .compare th, body.single-post-v1 .compare td {
 padding: 15px 18px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; 
}
body.single-post-v1 .compare thead th {
 background: var(--surface-2); font-weight: 700; color: var(--ink); font-size: 14px; 
}
body.single-post-v1 .compare thead th.hl {
 background: var(--purple); color: #fff; 
}
body.single-post-v1 .compare tbody tr:last-child td {
 border-bottom: 0; 
}
body.single-post-v1 .compare td.hl {
 background: var(--purple-tint); font-weight: 600; color: var(--dark-purple); 
}
body.single-post-v1 .compare td:first-child {
 font-weight: 600; color: var(--ink); 
}
body.single-post-v1 .compare .yes {
 color: var(--green); font-weight: 700; 
}
body.single-post-v1 .compare .no {
 color: var(--ink-muted); 
}
body.single-post-v1 .compare-foot {
 background: var(--surface-1); padding: 14px 18px; font-size: 13px; color: var(--ink-muted); border-top: 1px solid var(--line); 
}
/* ============================================================
   FEATURE / TOOL CARDS
   ============================================================ */
body.single-post-v1 .feature-cards {
 display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 36px auto; 
}
body.single-post-v1 .feature-card {
 border: 1px solid var(--line); border-radius: var(--r-md); padding: 24px; background: var(--surface); transition: box-shadow .2s, transform .2s, border-color .2s; 
}
body.single-post-v1 .feature-card:hover {
 box-shadow: var(--sh-md); transform: translateY(-3px); border-color: var(--line-strong); 
}
body.single-post-v1 .feature-card .fi {
 width: 44px; height: 44px; border-radius: 12px; background: var(--purple-tint); color: var(--purple); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; 
}
body.single-post-v1 .feature-card .fi svg {
 width: 22px; height: 22px; 
}
body.single-post-v1 .feature-card h4 {
 margin: 0 0 8px; font-size: 18px; font-weight: 700; color: var(--ink); 
}
body.single-post-v1 .feature-card p {
 margin: 0; font-size: 15.5px; line-height: 1.55; color: var(--ink-muted); 
}
/* ============================================================
   PROCESS STEPS (timeline)
   ============================================================ */
body.single-post-v1 .steps {
 margin: 36px auto; position: relative; counter-reset: step; 
}
body.single-post-v1 .steps::before {
 content: ""; position: absolute; left: 21px; top: 12px; bottom: 12px; width: 2px; background: var(--line); 
}
body.single-post-v1 .step {
 display: grid; grid-template-columns: 44px 1fr; gap: 20px; position: relative; padding-bottom: 28px; counter-increment: step; 
}
body.single-post-v1 .step:last-child {
 padding-bottom: 0; 
}
body.single-post-v1 .step .sn {

  width: 44px; height: 44px; border-radius: 50%; background: var(--purple); color: #fff;
  font-weight: 700; font-size: 18px; display: flex; align-items: center; justify-content: center;
  z-index: 1; box-shadow: 0 0 0 5px var(--surface);

}
body.single-post-v1 .step .sn::before {
 content: counter(step); 
}
body.single-post-v1 .step .sb h4 {
 margin: 9px 0 7px; font-size: 19px; font-weight: 700; color: var(--ink); 
}
body.single-post-v1 .step .sb p {
 margin: 0; font-size: 16.5px; line-height: 1.6; color: var(--ink-soft); 
}
/* ============================================================
   FAQ ACCORDION
   ============================================================ */
body.single-post-v1 .faq-list {
 margin: 24px auto 0; border-top: 1px solid var(--line); 
}
body.single-post-v1 .faq-item {
 border-bottom: 1px solid var(--line); 
}
body.single-post-v1 .faq-q {

  width: 100%; background: none; border: 0; cursor: pointer; text-align: left;
  display: flex; align-items: center; gap: 16px; padding: 22px 4px; font-family: inherit;
  font-size: 18.5px; font-weight: 700; color: var(--ink); line-height: 1.4;

}
body.single-post-v1 .faq-q .chev {
 margin-left: auto; flex-shrink: 0; width: 26px; height: 26px; color: var(--purple); transition: transform .25s ease; 
}
body.single-post-v1 .faq-item[open] .faq-q .chev, body.single-post-v1 .faq-item.open .faq-q .chev {
 transform: rotate(45deg); 
}
body.single-post-v1 .faq-a {
 overflow: hidden; max-height: 0; transition: max-height .3s ease; 
}
body.single-post-v1 .faq-a-inner {
 padding: 0 4px 24px 0; 
}
body.single-post-v1 .faq-a-inner p {
 font-size: 16.5px; line-height: 1.66; color: var(--ink-soft); margin: 0 0 12px; 
}
body.single-post-v1 .faq-a-inner p:last-child {
 margin-bottom: 0; 
}
/* ============================================================
   TOOL RECOMMENDATION (product) block
   ============================================================ */
body.single-post-v1 .tool-rec {

  margin: 40px auto; border: 1px solid var(--line-strong); border-radius: var(--r-lg);
  overflow: hidden; background: var(--surface); box-shadow: var(--sh-md);

}
body.single-post-v1 .tool-rec-top {
 display: grid; grid-template-columns: 1fr 1fr; gap: 0; 
}
body.single-post-v1 .tool-rec-copy {
 padding: 28px; 
}
body.single-post-v1 .tool-rec .badge {
 display: inline-flex; align-items: center; gap: 7px; background: var(--purple-tint); color: var(--purple); font-weight: 700; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; padding: 6px 12px; border-radius: var(--r-pill); margin-bottom: 14px; 
}
body.single-post-v1 .tool-rec h4 {
 margin: 0 0 10px; font-size: 23px; font-weight: 700; color: var(--ink); letter-spacing: -.01em; 
}
body.single-post-v1 .tool-rec p {
 margin: 0 0 16px; font-size: 16px; line-height: 1.6; color: var(--ink-soft); 
}
body.single-post-v1 .tool-rec .rec-feats {
 list-style: none; margin: 0 0 20px; padding: 0; 
}
body.single-post-v1 .tool-rec .rec-feats li {
 position: relative; padding-left: 26px; margin-bottom: 9px; font-size: 15px; color: var(--ink-soft); 
}
body.single-post-v1 .tool-rec .rec-feats li svg {
 position: absolute; left: 0; top: 1px; width: 18px; height: 18px; color: var(--green); 
}
body.single-post-v1 .tool-rec-media {
 background: linear-gradient(160deg, var(--purple), var(--dark-purple)); display: flex; align-items: center; justify-content: center; padding: 28px; 
}
body.single-post-v1 .tool-rec-media img {
 border-radius: 10px; box-shadow: 0 16px 40px rgba(0,0,0,.3); border: 1px solid rgba(255,255,255,.15); 
}
/* ============================================================
   CONVERSION MODULES (rail + inline)
   ============================================================ */
body.single-post-v1 .cv {

  border-radius: var(--r-lg); padding: 24px; border: 1px solid var(--line);
  background: var(--surface); box-shadow: var(--sh-sm);

}
body.single-post-v1 .cv .cv-eye {
 font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 10px; 
}
body.single-post-v1 .cv h4 {
 margin: 0 0 8px; font-size: 19px; font-weight: 700; line-height: 1.25; color: var(--ink); letter-spacing: -.01em; 
}
body.single-post-v1 .cv p {
 margin: 0 0 16px; font-size: 14.5px; line-height: 1.5; color: var(--ink-muted); 
}
/* free account — purple gradient card */
body.single-post-v1 .cv--account {
 background: linear-gradient(165deg, var(--purple), var(--dark-purple)); border: 0; color: #fff; box-shadow: var(--sh-purple); position: relative; overflow: hidden; 
}
body.single-post-v1 .cv--account::after {
 content:""; position:absolute; right:-40px; top:-40px; width:130px; height:130px; border-radius:50%; background: rgba(255,255,255,.08); 
}
body.single-post-v1 .cv--account .cv-eye {
 color: var(--light-purple); 
}
body.single-post-v1 .cv--account h4 {
 color: #fff; 
}
body.single-post-v1 .cv--account p {
 color: rgba(255,255,255,.82); 
}
body.single-post-v1 .cv--account ul {
 list-style: none; margin: 0 0 18px; padding: 0; 
}
body.single-post-v1 .cv--account ul li {
 position: relative; padding-left: 24px; font-size: 13.5px; color: rgba(255,255,255,.92); margin-bottom: 8px; 
}
body.single-post-v1 .cv--account ul li svg {
 position: absolute; left: 0; top: 1px; width: 16px; height: 16px; color: var(--light-green); 
}
body.single-post-v1 .cv--account .micro {
 font-size: 12px; color: rgba(255,255,255,.6); margin: 12px 0 0; text-align: center; 
}
/* newsletter */
body.single-post-v1 .cv--news {
 background: var(--surface-1); 
}
body.single-post-v1 .cv--news .nl-form {
 display: flex; flex-direction: column; gap: 10px; 
}
body.single-post-v1 .cv .field {
 width: 100%; font-family: inherit; font-size: 14.5px; padding: 12px 14px; border-radius: var(--r-sm); border: 1px solid var(--line-strong); background: #fff; color: var(--ink); 
}
body.single-post-v1 .cv .field:focus {
 outline: none; border-color: var(--purple); box-shadow: 0 0 0 3px rgba(94,54,202,.12); 
}
body.single-post-v1 .cv .nl-meta {
 display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--ink-muted); margin-top: 4px; 
}
body.single-post-v1 .cv .nl-meta svg {
 width: 13px; height: 13px; 
}
body.single-post-v1 .cv .nl-ok {
 display: none; align-items: center; gap: 10px; color: var(--accent-ink); font-weight: 600; font-size: 14.5px; 
}
body.single-post-v1 .cv.sent .nl-form {
 display: none; 
}
body.single-post-v1 .cv.sent .nl-ok {
 display: flex; 
}
body.single-post-v1 .cv .ppl {
 display: flex; align-items: center; margin-bottom: 14px; 
}
body.single-post-v1 .cv .ppl .pa {
 width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--surface-1); margin-right: -8px; object-fit: cover; display: inline-block; flex-shrink: 0;
}
body.single-post-v1 .cv .ppl .pn {
 margin-left: 16px; font-size: 12.5px; color: var(--ink-muted); 
}
/* download */
body.single-post-v1 .cv--download {
 display: block; 
}
body.single-post-v1 .cv--download .dl-thumb {
 width: 100%; aspect-ratio: 16/10; border-radius: var(--r-sm); background: var(--purple-tint); margin-bottom: 16px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--line); overflow: hidden;
}
body.single-post-v1 .cv--download .dl-thumb img {
 width: 100%; height: 100%; object-fit: cover; display: block;
}
body.single-post-v1 .cv--download .dl-thumb svg {
 width: 40px; height: 40px; color: var(--purple); 
}
/* inline CTA banner (in content flow) */
body.single-post-v1 .inline-cta {

  margin: 44px auto; border-radius: var(--r-lg); padding: 32px 36px;
  background: linear-gradient(135deg, var(--purple), var(--dark-purple));
  color: #fff; display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center;
  box-shadow: var(--sh-purple); position: relative; overflow: hidden;

}
body.single-post-v1 .inline-cta::after {
 content:""; position:absolute; right:-30px; bottom:-50px; width:180px; height:180px; border-radius:50%; background: rgba(255,255,255,.07); 
}
body.single-post-v1 .inline-cta .ic-copy {
 position: relative; z-index: 1; 
}
body.single-post-v1 .inline-cta h3 {
 margin: 0 0 8px; font-size: 24px; font-weight: 700; color: #fff; letter-spacing: -.01em; 
}
body.single-post-v1 .inline-cta p {
 margin: 0; font-size: 16px; line-height: 1.5; color: rgba(255,255,255,.85); max-width: 46ch; 
}
body.single-post-v1 .inline-cta .ic-act {
 position: relative; z-index: 1; 
}
/* inline newsletter banner (full width content) */
body.single-post-v1 .inline-news {

  margin: 44px auto; border: 1px solid var(--line-strong); border-radius: var(--r-lg);
  padding: 30px 32px; background: var(--surface-1);
  display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center;

}
body.single-post-v1 .inline-news h3 {
 margin: 0 0 8px; font-size: 22px; font-weight: 700; color: var(--ink); letter-spacing: -.01em; 
}
body.single-post-v1 .inline-news p {
 margin: 0; font-size: 15.5px; line-height: 1.5; color: var(--ink-muted); 
}
body.single-post-v1 .inline-news .in-form {
 display: flex; gap: 10px; 
}
body.single-post-v1 .inline-news .in-form .field {
 flex: 1; 
}
body.single-post-v1 .inline-news .in-ok {
 display:none; align-items:center; gap:10px; color: var(--accent-ink); font-weight:600; 
}
body.single-post-v1 .inline-news.sent .in-form {
 display: none; 
}
body.single-post-v1 .inline-news.sent .in-ok {
 display:flex; 
}
/* ============================================================
   AUTHOR BIO
   ============================================================ */
body.single-post-v1 .author-bio {
 display: grid; grid-template-columns: 72px 1fr; gap: 20px; margin: 56px auto; padding: 28px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface-1); 
}
body.single-post-v1 .author-bio .avatar {
 width: 72px; height: 72px; 
}
body.single-post-v1 .author-bio h4 {
 margin: 0 0 2px; font-size: 18px; font-weight: 700; color: var(--ink); 
}
body.single-post-v1 .author-bio .ar {
 font-size: 13.5px; color: var(--purple); font-weight: 600; margin-bottom: 10px; 
}
body.single-post-v1 .author-bio p {
 margin: 0 0 12px; font-size: 15px; line-height: 1.6; color: var(--ink-soft); 
}
body.single-post-v1 .author-bio .socials {
 display: flex; gap: 10px; 
}
body.single-post-v1 .author-bio .socials a {
 width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line-strong); display: flex; align-items: center; justify-content: center; color: var(--ink-muted); 
}
body.single-post-v1 .author-bio .socials a:hover {
 color: var(--purple); border-color: var(--purple); 
}
body.single-post-v1 .author-bio .socials svg {
 width: 16px; height: 16px; 
}
body.single-post-v1 .disclosure {
 margin: 0 auto 8px; padding: 16px 20px; background: var(--surface-1); border: 1px solid var(--line); border-radius: var(--r-md); font-size: 13.5px; color: var(--ink-muted); line-height: 1.5; 
}
body.single-post-v1 .disclosure a {
 color: var(--purple); text-decoration: underline; 
}
/* ============================================================
   END-OF-ARTICLE FOOTER ZONES
   ============================================================ */
body.single-post-v1 .zone {
 padding: 64px 0; 
}
body.single-post-v1 .zone--tint {
 background: var(--surface-1); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); 
}
body.single-post-v1 .zone-head {
 text-align: center; margin-bottom: 36px; 
}
body.single-post-v1 .zone-head .eyebrow {
 margin-bottom: 10px; display: block; 
}
body.single-post-v1 .zone-head h2 {
 margin: 0; font-size: clamp(26px, 3vw, 34px); font-weight: 700; letter-spacing: -.02em; color: var(--ink); 
}
/* big finale CTA */
body.single-post-v1 .finale {

  background: linear-gradient(150deg, var(--purple), var(--dark-purple));
  border-radius: var(--r-xl); padding: 56px; text-align: center; color: #fff;
  position: relative; overflow: hidden; box-shadow: var(--sh-purple);

}
body.single-post-v1 .finale::before {
 content:""; position:absolute; left:-60px; top:-60px; width:240px; height:240px; border-radius:50%; background:rgba(255,255,255,.06); 
}
body.single-post-v1 .finale::after {
 content:""; position:absolute; right:-80px; bottom:-90px; width:300px; height:300px; border-radius:50%; background:rgba(255,255,255,.05); 
}
body.single-post-v1 .finale .in {
 position: relative; z-index: 1; 
}
body.single-post-v1 .finale h2 {
 margin: 0 0 14px; font-size: clamp(28px, 3.5vw, 40px); font-weight: 700; color: #fff; letter-spacing: -.02em; 
}
body.single-post-v1 .finale p {
 margin: 0 auto 28px; font-size: 18px; line-height: 1.5; color: rgba(255,255,255,.85); max-width: 52ch; 
}
body.single-post-v1 .finale .acts {
 display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; 
}
body.single-post-v1 .finale .btn--ghost {
 background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.4); 
}
body.single-post-v1 .finale .btn--ghost:hover {
 background: rgba(255,255,255,.2); box-shadow: inset 0 0 0 1.5px #fff; 
}
body.single-post-v1 .finale .trust {
 margin-top: 22px; font-size: 13.5px; color: rgba(255,255,255,.65); 
}
/* related articles */
body.single-post-v1 .rel-grid {
 display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; 
}
body.single-post-v1 .rel-card {
 background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow .2s, transform .2s; display: flex; flex-direction: column; 
}
body.single-post-v1 .rel-card:hover {
 box-shadow: var(--sh-md); transform: translateY(-4px); 
}
body.single-post-v1 .rel-card .thumb {
 aspect-ratio: 16/9; background: var(--surface-2); position: relative; overflow: hidden; 
}
body.single-post-v1 .rel-card .thumb .ph {
 position:absolute; inset:0; display:flex; align-items:center; justify-content:center; 
}
body.single-post-v1 .rel-card .rc-body {
 padding: 20px 20px 22px; display: flex; flex-direction: column; flex: 1; 
}
body.single-post-v1 .rel-card .rc-cat {
 font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--purple); margin-bottom: 9px; 
}
body.single-post-v1 .rel-card h4 {
 margin: 0 0 10px; font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--ink); letter-spacing: -.01em; 
}
body.single-post-v1 .rel-card p {
 margin: 0 0 16px; font-size: 14px; line-height: 1.5; color: var(--ink-muted); flex: 1; 
}
body.single-post-v1 .rel-card .rc-meta {
 font-size: 12.5px; color: var(--ink-muted); display: flex; align-items: center; gap: 8px; 
}
/* next article banner */
body.single-post-v1 .next-art {
 display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; border: 1px solid var(--line-strong); border-radius: var(--r-lg); padding: 26px 30px; background: var(--surface); box-shadow: var(--sh-sm); transition: box-shadow .2s, transform .2s; 
}
body.single-post-v1 .next-art:hover {
 box-shadow: var(--sh-md); transform: translateY(-2px); 
}
body.single-post-v1 .next-art .na-lab {
 font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 8px; 
}
body.single-post-v1 .next-art h3 {
 margin: 0; font-size: 23px; font-weight: 700; color: var(--ink); letter-spacing: -.01em; 
}
body.single-post-v1 .next-art .na-arrow {
 width: 54px; height: 54px; border-radius: 50%; background: var(--purple-tint); color: var(--purple); display: flex; align-items: center; justify-content: center; flex-shrink: 0; 
}
body.single-post-v1 .next-art .na-arrow svg {
 width: 24px; height: 24px; 
}
/* recommended tools row */
body.single-post-v1 .tool-row {
 display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; 
}
body.single-post-v1 .tool-tile {
 background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; text-align: center; transition: box-shadow .2s, transform .2s; 
}
body.single-post-v1 .tool-tile:hover {
 box-shadow: var(--sh-md); transform: translateY(-3px); 
}
body.single-post-v1 .tool-tile .tt-logo {
 width: 56px; height: 56px; border-radius: 14px; background: var(--purple-tint); color: var(--purple); display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; 
}
body.single-post-v1 .tool-tile .tt-logo svg {
 width: 28px; height: 28px; 
}
body.single-post-v1 .tool-tile h4 {
 margin: 0 0 6px; font-size: 17px; font-weight: 700; color: var(--ink); 
}
body.single-post-v1 .tool-tile p {
 margin: 0 0 14px; font-size: 13.5px; line-height: 1.5; color: var(--ink-muted); 
}
body.single-post-v1 .tool-tile .tt-rating {
 display: inline-flex; gap: 2px; color: var(--orange); margin-bottom: 12px; 
}
body.single-post-v1 .tool-tile .tt-rating svg {
 width: 15px; height: 15px; 
}
/* ============================================================
   SITE FOOTER
   ============================================================ */
body.single-post-v1 .site-footer {
 background: #1c1726; color: rgba(255,255,255,.6); padding: 56px 0 32px; 
}
body.single-post-v1 .site-footer .f-top {
 display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 40px; margin-bottom: 40px; 
}
body.single-post-v1 .site-footer .brand .word {
 color: #fff; 
}
body.single-post-v1 .site-footer .f-blurb {
 font-size: 14px; line-height: 1.6; margin: 16px 0 0; max-width: 32ch; 
}
body.single-post-v1 .site-footer h5 {
 color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin: 0 0 16px; 
}
body.single-post-v1 .site-footer ul {
 list-style: none; margin: 0; padding: 0; 
}
body.single-post-v1 .site-footer ul li {
 margin-bottom: 10px; 
}
body.single-post-v1 .site-footer ul li a {
 color: rgba(255,255,255,.6); font-size: 14px; 
}
body.single-post-v1 .site-footer ul li a:hover {
 color: #fff; 
}
body.single-post-v1 .site-footer .f-bot {
 border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: 13px; flex-wrap: wrap; 
}
/* ============================================================
   MOBILE TOC TOGGLE (hidden on desktop)
   ============================================================ */
body.single-post-v1 .m-toc {
 display: none; 
}
/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1180px) {
body.single-post-v1 .layout-grid {
 grid-template-columns: 200px minmax(0,1fr); 
}
body.single-post-v1 .rail {
 display: none; 
}
body.single-post-v1 .hero-grid {
 grid-template-columns: minmax(0,1fr) 340px; gap: 40px; 
}
}
@media (max-width: 940px) {
body.single-post-v1 .nav-main {
 display: none; 
}
body.single-post-v1 .hero-grid {
 grid-template-columns: 1fr; gap: 28px; 
}
body.single-post-v1 .hero-card {
 max-width: 520px; 
}
body.single-post-v1 .layout-grid {
 grid-template-columns: 1fr; gap: 0; 
}
body.single-post-v1 .toc {
 display: none; 
}
body.single-post-v1 .content {
 max-width: 100%; 
}
body.single-post-v1 .tool-rec-top {
 grid-template-columns: 1fr; 
}
body.single-post-v1 .tool-rec-media {
 order: -1; 
}
body.single-post-v1 .stat-grid {
 grid-template-columns: 1fr 1fr; 
}
body.single-post-v1 .feature-cards {
 grid-template-columns: 1fr; 
}
body.single-post-v1 .rel-grid {
 grid-template-columns: 1fr 1fr; 
}
body.single-post-v1 .tool-row {
 grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; 
}
body.single-post-v1 .site-footer .f-top {
 grid-template-columns: 1fr 1fr; gap: 32px; 
}
body.single-post-v1 .inline-cta {
 grid-template-columns: 1fr; gap: 20px; text-align: center; 
}
body.single-post-v1 .inline-cta p {
 margin: 0 auto; 
}
body.single-post-v1 .inline-news {
 grid-template-columns: 1fr; gap: 18px; 
}
/* mobile sticky TOC */
body.single-post-v1 .m-toc {
 display: block; position: sticky; top: var(--header-h); z-index: 900; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); 
}
body.single-post-v1 .m-toc summary {
 list-style: none; cursor: pointer; padding: 14px 24px; display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 15px; color: var(--ink); 
}
body.single-post-v1 .m-toc summary::-webkit-details-marker {
 display: none; 
}
body.single-post-v1 .m-toc summary .mc {
 margin-left: auto; transition: transform .2s; 
}
body.single-post-v1 .m-toc[open] summary .mc {
 transform: rotate(180deg); 
}
body.single-post-v1 .m-toc .m-toc-list {
 padding: 0 24px 16px; 
}
body.single-post-v1 .m-toc .m-toc-list a {
 display: block; padding: 9px 0; color: var(--ink-soft); font-size: 15px; border-top: 1px solid var(--line); 
}
}
@media (max-width: 600px) {
body.single-post-v1 .wrap {
 padding: 0 18px; 
}
body.single-post-v1 .hero {
 padding: 28px 0 16px; 
}
body.single-post-v1 .layout {
 padding: 28px 0 40px; 
}
body.single-post-v1 .content p, body.single-post-v1 .content ul, body.single-post-v1 .content ol {
 font-size: 17.5px; 
}
body.single-post-v1 .stat-grid {
 grid-template-columns: 1fr; 
}
body.single-post-v1 .rel-grid {
 grid-template-columns: 1fr; 
}
body.single-post-v1 .header-cta .login {
 display: none; 
}
body.single-post-v1 .brand .word {
 display: none; 
}
body.single-post-v1 .finale {
 padding: 36px 24px; 
}
body.single-post-v1 .inline-cta {
 padding: 26px 22px; 
}
body.single-post-v1 .tool-rec-copy {
 padding: 22px; 
}
body.single-post-v1 .author-bio {
 grid-template-columns: 1fr; text-align: center; 
}
body.single-post-v1 .author-bio .avatar {
 margin: 0 auto; 
}
body.single-post-v1 .author-bio .socials {
 justify-content: center; 
}
body.single-post-v1 .next-art {
 padding: 20px; 
}
body.single-post-v1 .next-art h3 {
 font-size: 19px; 
}
body.single-post-v1 .zone {
 padding: 44px 0; 
}
body.single-post-v1 .pullquote {
 font-size: 21px; 
}
}
/* tweak-driven hero variants applied via [data-hero] on body */
body.single-post-v1[data-hero="bold"] .hero {
 background: linear-gradient(165deg, var(--purple), var(--dark-purple)); color: #fff; padding-bottom: 48px; border-radius: 0 0 32px 32px; 
}
body.single-post-v1[data-hero="bold"] .hero h1 {
 color: #fff; 
}
body.single-post-v1[data-hero="bold"] .hero .dek {
 color: rgba(255,255,255,.85); 
}
body.single-post-v1[data-hero="bold"] .hero .breadcrumbs, body.single-post-v1[data-hero="bold"] .hero .breadcrumbs a {
 color: rgba(255,255,255,.7); 
}
body.single-post-v1[data-hero="bold"] .hero .breadcrumbs .current {
 color: #fff; 
}
body.single-post-v1[data-hero="bold"] .hero .cat-pill {
 background: rgba(255,255,255,.15); color: #fff; 
}
body.single-post-v1[data-hero="bold"] .hero .cat-pill .dot {
 background: var(--light-green); 
}
body.single-post-v1[data-hero="bold"] .hero .author-id .by {
 color: #fff; 
}
body.single-post-v1[data-hero="bold"] .hero .author-id .role, body.single-post-v1[data-hero="bold"] .hero .meta-dots {
 color: rgba(255,255,255,.7); 
}
body.single-post-v1[data-hero="bold"] .hero .meta-divider {
 background: rgba(255,255,255,.25); 
}
/* accent = purple variant (tweak) */
body.single-post-v1[data-accent="purple"] {
 --accent: var(--purple); --accent-ink: var(--dark-purple); 
}
body.single-post-v1[data-accent="purple"] .btn--accent {
 background: var(--purple); box-shadow: var(--sh-purple); 
}
body.single-post-v1[data-accent="purple"] .btn--accent:hover {
 box-shadow: 0 18px 40px rgba(94,54,202,.4); 
}
/* CTA density (tweak) — minimal hides rail extras + inline news */
body.single-post-v1[data-density="minimal"] .cv--download, body.single-post-v1[data-density="minimal"] .inline-news {
 display: none; 
}

body.single-post-v1 .section-nav,
body.single-post-v1 #toc_head,
body.single-post-v1 .table_of_contents_desktop {
  display: none !important;
}

body.single-post-v1 .layout-grid--no-toc {
  grid-template-columns: minmax(0, 1fr) 312px;
}

@media (max-width: 940px) {
  body.single-post-v1 .layout-grid--no-toc {
    grid-template-columns: 1fr;
  }
}

/* Legacy [block] shortcode inside v1 posts */
body.single-post-v1 .content .article_block {
  border-radius: var(--r-md, 14px);
  margin: 32px auto;
  padding: 22px 24px;
  border: 1px solid var(--line, #e7e7f0);
}

/* Reset legacy style.css layout rules that conflict with v1 */
body.single-post-v1 main {
  display: block;
  grid-template-columns: unset;
  width: auto;
  margin: 0;
}

body.single-post-v1 .article {
  max-width: none;
  margin: 0;
  overflow: visible;
}

body.single-post-v1 .content .fig img,
body.single-post-v1 .content .fig .lasso-display,
body.single-post-v1 .content .fig .lasso-container {
  border: none;
  border-radius: 0;
}

body.single-post-v1 .content .fig .lasso-display {
  margin: 0;
}
