/* Blog técnico: componentes e leitura, sem depender de novas classes Tailwind. */
.blog-main { padding-top: 4rem; }
.blog-container { width: min(72rem, calc(100% - 3rem)); margin-inline: auto; }
.blog-intro { padding: 4.5rem 0 3rem; background: linear-gradient(145deg, #f0f8fd, #fff); border-bottom: 1px solid var(--line); }
.blog-kicker { color: var(--brand-dark); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .85rem; }
.blog-intro h1,
.blog-article-header h1 { color: var(--ink); font-weight: 700; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.14; letter-spacing: -.025em; max-width: 58rem; text-wrap: balance; }
.blog-lead { color: var(--muted); font-size: 1.125rem; line-height: 1.75; max-width: 48rem; margin-top: 1.5rem; }
.blog-topics { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: 1.75rem; }
.blog-topics a { background: #fff; border: 1px solid var(--line); border-radius: 2rem; color: var(--brand-dark); font-size: .875rem; padding: .5rem 1rem; }
.blog-topics a:hover { background: var(--surface); }
.blog-feature { display: grid; grid-template-columns: 1.35fr 1fr; margin-block: 3rem; background: #f0f8fd; border: 1px solid #bfe0f3; border-radius: 1.5rem; overflow: hidden; }
.blog-card { display: flex; flex-direction: column; padding: 1.75rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); min-width: 0; }
.blog-card h2 { color: var(--ink); font-size: 1.25rem; line-height: 1.4; font-weight: 700; margin-bottom: 1rem; }
.blog-card h2 a:hover { color: var(--brand-dark); text-decoration: underline; text-underline-offset: .2em; }
.blog-card > p:not(.blog-kicker) { color: var(--muted); font-size: .9375rem; line-height: 1.7; margin-bottom: 1.5rem; }
.blog-read { color: var(--brand-dark); font-weight: 700; font-size: .875rem; margin-top: auto; align-self: flex-start; }
.blog-read:hover { text-decoration: underline; }
.blog-card--featured { background: transparent; border: 0; padding: 2.5rem; }
.blog-card--featured h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.blog-receipt { display: flex; align-items: center; justify-content: center; padding: 2rem; background: #dcebf5; }
.blog-receipt-paper { width: 15rem; padding: 1.5rem; border-radius: .4rem; background: #fffdf5; box-shadow: 0 15px 35px rgb(23 33 47 / 12%); transform: rotate(-5deg); }
.blog-receipt-paper > span { display: block; color: var(--ink); font-family: 'DM Mono', monospace; font-size: .9rem; margin-bottom: 1.5rem; }
.receipt-rule { height: .5rem; background: #718276; border-radius: .15rem; margin-bottom: .9rem; opacity: .55; }
.receipt-rule--short { width: 65%; }
.receipt-rule--faded { opacity: .12; }
.blog-receipt-paper strong { display: block; color: var(--brand-dark); font-size: .875rem; line-height: 1.5; margin-top: 2rem; }
.blog-section-title { font-size: 1.5rem; color: var(--ink); font-weight: 700; margin-bottom: 1.5rem; }
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.blog-library { margin-bottom: 3rem; }
.blog-cta { margin-block: 2.5rem; padding: 2rem; border-radius: var(--radius); background: var(--ink); color: #fff; }
.blog-cta h2 { color: #fff; font-size: 1.5rem; font-weight: 700; margin: 0 0 1rem; }
.blog-cta p { color: #dce6eb; line-height: 1.7; margin: 0 0 1.25rem; max-width: 45rem; }
.blog-button { display: inline-block; padding: .8rem 1.2rem; border-radius: .65rem; background: #fff; color: var(--brand-dark); font-size: .875rem; font-weight: 700; text-decoration: none; }
.blog-button:hover { background: #e0f0fa; }
.blog-cta a:focus-visible { outline-color: #fff; }
.blog-breadcrumb { display: flex; flex-wrap: wrap; gap: .6rem; padding-block: 1.5rem; color: var(--muted); font-size: .875rem; }
.blog-breadcrumb a:hover { text-decoration: underline; }
.blog-article-header { padding-block: 1.5rem 2.5rem; }
.blog-meta { font-size: .8125rem; color: var(--muted); margin-top: 1.5rem; line-height: 1.7; }
.blog-article-layout { display: grid; grid-template-columns: 15rem minmax(0, 45rem); gap: 3rem; align-items: start; margin-bottom: 3rem; }
.blog-toc { position: sticky; top: 6rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: #f8fafb; font-size: .875rem; }
.blog-toc > p { font-weight: 700; color: var(--ink); margin-bottom: .75rem; }
.blog-toc ol { list-style: none; padding: 0; margin: 0; }
.blog-toc li + li { margin-top: .75rem; }
.blog-toc a { color: var(--muted); line-height: 1.5; display: block; }
.blog-toc a:hover { color: var(--brand-dark); text-decoration: underline; }
.blog-prose { min-width: 0; color: #334658; font-size: 1.0625rem; line-height: 1.85; overflow-wrap: anywhere; }
.blog-prose h2 { color: var(--ink); font-size: 1.5rem; line-height: 1.35; font-weight: 700; margin: 2.5rem 0 1rem; scroll-margin-top: 6rem; }
.blog-prose > h2:first-child { margin-top: 0; }
.blog-prose p { margin-bottom: 1.25rem; }
.blog-prose > ol { list-style: decimal; padding-left: 1.5rem; margin: 1.25rem 0; }
.blog-prose > ol li { padding-left: .35rem; margin-bottom: .75rem; }
.blog-prose a:not(.blog-button) { color: var(--brand-dark); text-decoration: underline; text-underline-offset: .2em; }
.blog-prose pre { overflow-x: auto; background: #f1f5f8; padding: 1rem; border-radius: .75rem; margin-block: 1.25rem; font-size: .875rem; }
.blog-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: .75rem; margin-block: 1.5rem; }
.blog-prose table { width: 100%; border-collapse: collapse; font-size: .875rem; line-height: 1.6; }
.blog-prose caption { text-align: left; padding: 1rem; color: var(--muted); font-size: .8125rem; }
.blog-prose th,
.blog-prose td { padding: .85rem 1rem; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
.blog-prose th { background: #f0f8fd; color: var(--ink); font-weight: 700; }
.blog-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-block: 1.5rem; }
.blog-process > div { background: var(--surface); border: 1px solid #bfe0f3; padding: 1rem; border-radius: .75rem; }
.blog-process strong { display: block; color: var(--brand-dark); font-size: .9rem; }
.blog-process span { display: block; font-size: .8125rem; margin-top: .5rem; line-height: 1.5; }
.blog-related { padding-bottom: 3rem; }
.blog-back { display: inline-block; color: var(--brand-dark); font-weight: 700; margin-top: 1.5rem; font-size: .875rem; }
.blog-budget-feature { display: flex; flex-direction: column; justify-content: center; gap: 1rem; padding: 2.5rem; background: #dcebf5; color: var(--ink); }
.blog-budget-feature > p:first-child { font-size: .75rem; font-weight: 700; letter-spacing: .08em; }
.blog-budget-feature > strong { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.25; font-variant-numeric: tabular-nums; }
.blog-budget-feature > strong span { display: block; font-size: 1rem; font-weight: 400; margin-top: .5rem; }
.blog-budget-track { height: .75rem; background: #fff; border-radius: 1rem; overflow: hidden; }
.blog-budget-track > span { display: block; width: 86.6667%; height: 100%; background: var(--brand-dark); }
.blog-budget-feature .budget-question { font-weight: 700; font-size: 1.125rem; line-height: 1.5; }
.blog-budget-feature small { color: var(--muted); }
.blog-budget-snapshot { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-block: 1.5rem; font-variant-numeric: tabular-nums; }
.blog-budget-snapshot > div { padding: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.blog-budget-snapshot span { display: block; color: var(--muted); font-size: .8125rem; }
.blog-budget-snapshot strong { display: block; color: var(--ink); font-size: 1.5rem; margin-top: .5rem; }
.blog-prose > ul { list-style: disc; margin: 1.25rem 0; padding-left: 1.5rem; }
.blog-prose > ul li { margin-bottom: .5rem; }
.blog-prose blockquote { padding: 1.25rem 1.5rem; border-left: 4px solid var(--brand); background: var(--surface); margin-block: 2rem; color: var(--ink); font-size: 1.2rem; font-weight: 700; }
.blog-prose blockquote p { margin: 0; }
.blog-methodology { padding: 1.25rem 1.5rem; background: #f8fafb; border: 1px solid var(--line); border-radius: .75rem; margin-bottom: 2rem; }
.blog-methodology h2 { font-size: 1.125rem; margin: 0 0 .75rem; }
.blog-methodology p { font-size: .9375rem; margin: 0; }
@media (max-width: 1023px) {
  .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blog-article-layout { grid-template-columns: 12rem minmax(0, 1fr); gap: 1.5rem; }
  .blog-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .blog-container { width: calc(100% - 2rem); }
  .blog-intro { padding-block: 3rem 2rem; }
  .blog-feature,
  .blog-grid,
  .blog-article-layout { grid-template-columns: minmax(0, 1fr); }
  .blog-card--featured { padding: 1.5rem; }
  .blog-receipt { padding: 2rem 1rem; }
  .blog-toc { position: static; }
  .blog-article-header { padding-top: .5rem; }
  .blog-prose { font-size: 1rem; }
  .blog-cta { padding: 1.5rem; }
  .blog-budget-feature { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .blog-receipt-paper { transform: none; }
}
