
.banca-hub-hero, .banca-detail-hero { padding: clamp(4.5rem,8vw,8rem) 0 clamp(4rem,7vw,7rem); background: radial-gradient(circle at 80% 20%,rgba(205,168,79,.11),transparent 28rem),#0d0c10; }
.banca-hub-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem,7vw,7rem); align-items: center; }
.banca-hub-copy h1 { max-width: 820px; margin: .7rem 0 1.15rem; font-family: var(--font-display); font-size: clamp(3rem,6.7vw,6.6rem); line-height: .91; font-weight: 400; letter-spacing: -.035em; }
.banca-hub-copy h1 em { color: var(--gold-text); font-style: italic; }
.banca-hub-copy > p { max-width: 650px; color: var(--fg-2); font-size: 1.06rem; }
.exam-visual { display: grid; place-items: center; min-height: 520px; }
.exam-paper { position: relative; width: min(100%,440px); min-height: 500px; padding: 1.8rem; border-radius: 4px; background: #e8e1d4; color: #201d18; box-shadow: 0 35px 80px rgba(0,0,0,.42); transform: rotate(2deg); }
.exam-paper::before { content: ''; position: absolute; inset: 14px; border: 1px solid rgba(38,31,20,.16); pointer-events: none; }
.exam-top { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(38,31,20,.24); font-size: .66rem; letter-spacing: .12em; }
.exam-top b { font-weight: 600; }
.exam-paper > p { margin: 3.2rem 0 1.6rem; font-family: var(--font-display); font-size: 1.55rem; line-height: 1.2; }
.exam-option { display: grid; grid-template-columns: 30px 1fr; gap: .8rem; align-items: center; margin-top: .7rem; padding: .72rem .8rem; border: 1px solid rgba(38,31,20,.18); font-size: .78rem; }
.exam-option i { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid rgba(38,31,20,.35); border-radius: 50%; font-style: normal; }
.exam-option.is-selected { background: rgba(162,121,35,.1); border-color: rgba(126,91,23,.45); }
.exam-option.is-selected i { background: #8f6c27; color: #fff; border-color: #8f6c27; }
.exam-stamp { position: absolute; right: 1.4rem; bottom: 1.6rem; padding: .45rem .65rem; border: 2px solid rgba(126,91,23,.62); color: #785819; font-size: .6rem; letter-spacing: .15em; transform: rotate(-7deg); }

.banca-hub-gridcards { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; }
.banca-hub-card { min-height: 390px; padding: 1.35rem; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.018); text-decoration: none; display: flex; flex-direction: column; transition: transform .22s var(--ease),border-color .22s ease,background .22s ease; }
.banca-hub-card:hover { transform: translateY(-4px); border-color: var(--line-gold); background: rgba(205,168,79,.035); }
.banca-card-top { display: flex; justify-content: space-between; color: var(--gold); }
.banca-card-top small { font-size: .59rem; letter-spacing: .13em; }
.banca-hub-card h3 { margin: 1.8rem 0 .35rem; font-family: var(--font-display); font-size: 2rem; line-height: 1; font-weight: 400; }
.banca-hub-card > strong { color: var(--fg-2); font-size: .78rem; font-weight: 600; }
.banca-hub-card > p { color: var(--fg-3); font-size: .8rem; }
.banca-card-strategy { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--fg-2); font-size: .74rem; line-height: 1.55; }
.banca-card-strategy span { display: block; margin-bottom: .35rem; color: var(--gold); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }

.banca-hub-content { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem,7vw,7rem); align-items: start; }
.banca-hub-aside { position: sticky; top: 110px; }
.banca-hub-aside h2 { margin: .7rem 0 1rem; font-family: var(--font-display); font-size: clamp(2.2rem,4.5vw,4rem); line-height: .96; font-weight: 400; }
.banca-hub-aside p { color: var(--fg-3); }
.banca-hub-article { max-width: 820px; }
.banca-hub-article h2 { margin: 3rem 0 .9rem; font-family: var(--font-display); font-size: clamp(1.8rem,3.3vw,2.7rem); line-height: 1.03; font-weight: 400; scroll-margin-top: 110px; }
.banca-hub-article h2:first-child { margin-top: 0; }
.banca-hub-article h3 { margin: 2rem 0 .7rem; font-size: 1rem; }
.banca-hub-article p { color: var(--fg-2); line-height: 1.82; }

.banca-detail-grid { display: grid; grid-template-columns: 1.18fr .82fr; gap: clamp(2.5rem,6vw,6rem); align-items: center; }
.banca-detail-copy h1 { max-width: 880px; margin: .75rem 0 1.1rem; font-family: var(--font-display); font-size: clamp(2.8rem,5.8vw,5.7rem); line-height: .93; font-weight: 400; letter-spacing: -.03em; }
.banca-detail-copy > p { max-width: 750px; color: var(--fg-2); font-size: 1rem; }
.banca-monogram { position: relative; min-height: 430px; border: 1px solid var(--line-gold); border-radius: 26px; background: linear-gradient(145deg,rgba(205,168,79,.09),rgba(255,255,255,.015)); display: flex; flex-direction: column; justify-content: center; padding: 1.8rem; overflow: hidden; }
.banca-monogram::after { content: 'A'; position: absolute; right: -1rem; bottom: -7rem; font-family: var(--font-display); font-size: 25rem; color: rgba(205,168,79,.04); line-height: 1; }
.banca-monogram span { position: relative; z-index: 1; max-width: 100%; color: var(--gold-text); font-family: var(--font-display); font-size: clamp(2.5rem,5vw,5rem); line-height: .9; word-break: break-word; }
.banca-monogram b { position: relative; z-index: 1; margin-top: 1.6rem; color: var(--fg-2); font-size: .7rem; letter-spacing: .18em; line-height: 1.5; }
.banca-monogram i { position: absolute; z-index: 1; right: 1.5rem; top: 1.4rem; color: var(--fg-3); font-style: normal; font-size: .65rem; letter-spacing: .1em; }

.banca-answer-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: var(--s-3); align-items: stretch; }
.banca-rule {
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: var(--s-6); border: 1px solid var(--line); border-radius: var(--r-xl);
  background: var(--surface);
}
.banca-rule span { color: var(--gold-text); font-size: var(--t-label); font-weight: 700; letter-spacing: var(--tr-label); text-transform: uppercase; }
.banca-rule p { margin: var(--s-4) 0 0; font-family: var(--font-display); font-weight: 400; font-size: var(--t-h4); line-height: 1.3; color: var(--fg); }

/* ================================================================
   Zona de leitura
   Antes: coluna de 820px com ~105 caracteres por linha e 83
   paragrafos identicos em 14.000px de pagina. O confortavel e 60-75.
   Agora a coluna respira: o texto corrido fica na medida, titulos e
   destaques atravessam a coluna inteira e criam o ritmo.
   ================================================================ */
.banca-reading-grid {
  display: grid;
  grid-template-columns: 268px minmax(0, 720px);
  gap: clamp(32px, 6vw, 88px);
  justify-content: center; align-items: start;
}

/* --- Sumario --- */
.banca-toc {
  position: sticky; top: calc(var(--header-h) + var(--s-5));
  max-height: calc(100vh - var(--header-h) - var(--s-8));
  overflow: auto; padding-right: var(--s-2);
  scrollbar-width: thin;
}
.toc-label {
  display: block; padding-bottom: var(--s-3); margin-bottom: var(--s-2);
  border-bottom: 1px solid currentColor;
  color: var(--gold-ink);
  font-size: var(--t-label); font-weight: 700;
  letter-spacing: var(--tr-label); text-transform: uppercase;
}
.banca-toc nav { display: flex; flex-direction: column; counter-reset: toc; }
.banca-toc nav a {
  position: relative;
  display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: var(--s-2);
  padding: var(--s-3) 0 var(--s-3) var(--s-3);
  border-bottom: 1px solid var(--line-ink);
  color: var(--ink-3); font-size: var(--t-small); line-height: 1.35;
  transition: color var(--dur-1) ease;
}
.banca-toc nav a::before {
  counter-increment: toc; content: counter(toc, decimal-leading-zero);
  color: var(--gold-ink); font-size: var(--t-label); font-weight: 700; padding-top: 2px;
}
/* Marcador do trecho em leitura. */
.banca-toc nav a::after {
  content: ''; position: absolute; left: 0; top: 6px; bottom: 6px; width: 2px;
  background: var(--gold-ink); transform: scaleY(0); transform-origin: top;
  transition: transform var(--dur-2) var(--ease);
}
.banca-toc nav a:hover { color: var(--ink); }
.banca-toc nav a.is-current { color: var(--ink); font-weight: 600; }
.banca-toc nav a.is-current::after { transform: scaleY(1); }
.toc-note { margin-top: var(--s-5); padding: var(--s-4); border: 1px solid var(--line-ink); border-radius: var(--r); background: rgba(255,255,255,.4); }
.toc-note strong { font-size: var(--t-small); color: var(--ink); }
.toc-note p { margin: var(--s-1) 0 0; color: var(--ink-3); font-size: var(--t-xs); line-height: 1.55; }

/* --- Artigo --- */
.banca-article { min-width: 0; }

/* Divisor de capitulo: e a maior quebra da pagina e precisa parecer. */
.article-chapter {
  display: flex; align-items: baseline; gap: var(--s-4); flex-wrap: wrap;
  margin: var(--s-10) 0 var(--s-7); padding-top: var(--s-5);
  border-top: 2px solid var(--gold-ink);
  scroll-margin-top: calc(var(--header-h) + var(--s-5));
}
.article-chapter:first-child { margin-top: 0; }
.article-chapter span { flex: 0 0 auto; color: var(--gold-ink); font-size: var(--t-label); font-weight: 700; letter-spacing: var(--tr-label); }
.article-chapter strong { font-family: var(--font-display); font-weight: 400; font-size: var(--t-h4); color: var(--ink); letter-spacing: .01em; }

.banca-article h2 {
  margin: var(--s-9) 0 var(--s-4);
  font-family: var(--font-display); font-weight: 400;
  font-size: var(--t-h2); line-height: var(--lh-display); letter-spacing: var(--tr-display);
  color: var(--ink); max-width: 22ch;
  scroll-margin-top: calc(var(--header-h) + var(--s-5));
}
.article-chapter + h2 { margin-top: 0; }

/* H3 muda de familia, nao so de corpo: no meio de 40 titulos, dois
   tamanhos da mesma serifada nao se distinguem em leitura rapida. */
.banca-article h3 {
  margin: var(--s-8) 0 var(--s-3);
  font-family: var(--font-body); font-weight: 600;
  font-size: var(--t-h3); line-height: var(--lh-title); letter-spacing: -.02em;
  color: var(--ink); max-width: 30ch;
  scroll-margin-top: calc(var(--header-h) + var(--s-5));
}
.banca-article h3::before {
  content: ''; display: block; width: 32px; height: 2px;
  margin-bottom: var(--s-3); background: var(--gold);
}
.banca-article h4 {
  margin: var(--s-6) 0 var(--s-2);
  font-size: var(--t-h4); font-weight: 600; color: var(--ink);
  scroll-margin-top: calc(var(--header-h) + var(--s-5));
}

.banca-article p {
  margin: 0 0 var(--s-5);
  max-width: var(--measure);
  color: var(--ink-2);
  font-size: var(--t-body); line-height: var(--lh-read);
}
/* Entrada de capitulo: o primeiro paragrafo depois do H2 de abertura
   carrega o resumo. Ganha corpo maior e cor cheia. */
.article-chapter + h2 + p {
  font-size: var(--t-lead); line-height: 1.62; color: var(--ink); max-width: 60ch;
}
.banca-article ul { margin: 0 0 var(--s-5); padding-left: var(--s-5); max-width: var(--measure); color: var(--ink-2); }
.banca-article li { margin: var(--s-2) 0; padding-left: var(--s-1); line-height: var(--lh-body); }
.banca-article li::marker { color: var(--gold-ink); }

/* Callout vira citacao de destaque: sai da medida e quebra a
   monotonia do paragrafo corrido. */
.banca-article blockquote {
  margin: var(--s-8) 0;
  padding: 0 0 0 var(--s-6);
  border-left: 3px solid var(--gold);
  color: var(--ink);
  font-family: var(--font-display); font-weight: 400;
  font-size: var(--t-h3); line-height: 1.24; letter-spacing: -.01em;
  max-width: 26ch;
}

.banca-article .s5-table-shell { margin: var(--s-7) 0; }
.banca-article .trust-note { margin: var(--s-7) 0; max-width: var(--measure); }

.article-source-note {
  margin-top: var(--s-9); padding: var(--s-5) var(--s-6);
  border: 1px solid var(--line-ink-2); border-left: 3px solid var(--gold-ink);
  border-radius: var(--r);
  background: rgba(255,255,255,.45);
}
.article-source-note strong { font-size: var(--t-body-sm); color: var(--ink); }
.article-source-note p { margin: var(--s-2) 0 0; max-width: var(--measure); color: var(--ink-2); font-size: var(--t-small); line-height: 1.65; }
.official-source-link { color: var(--gold-ink); }

.related-banks { display: grid; grid-template-columns: repeat(5,1fr); gap: .6rem; }
.related-banks a { min-height: 170px; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.018); text-decoration: none; display: flex; flex-direction: column; transition: border-color .2s ease,transform .2s var(--ease); }
.related-banks a:hover { border-color: var(--line-gold); transform: translateY(-2px); }
.related-banks small { color: var(--gold); font-size: .55rem; letter-spacing: .12em; }
.related-banks strong { margin-top: .65rem; font-family: var(--font-display); font-size: 1.2rem; font-weight: 400; line-height: 1; }
.related-banks span { margin-top: .45rem; color: var(--fg-3); font-size: .67rem; }
.related-banks b { margin-top: auto; color: var(--gold-text); font-weight: 400; }

@media (max-width: 1050px) {
  .banca-hub-gridcards { grid-template-columns: repeat(2,1fr); }
  .related-banks { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 900px) {
  .banca-hub-grid,.banca-detail-grid,.banca-hub-content,.banca-answer-grid,.banca-reading-grid { grid-template-columns: 1fr; }
  .exam-visual { min-height: 440px; }
  .banca-hub-aside,.banca-toc { position: static; max-height: none; }
  .banca-toc { max-height: none; padding-right: 0; }
  .banca-toc nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 var(--s-5); }
  .banca-toc nav a::after { display: none; }
  .banca-article h2, .banca-article h3, .banca-article blockquote { max-width: none; }
  .banca-monogram { min-height: 320px; }
}
@media (max-width: 620px) {
  .banca-hub-gridcards,.related-banks { grid-template-columns: 1fr; }
  .banca-hub-card { min-height: 320px; }
  .exam-paper { min-height: 450px; padding: 1.25rem; }
  .banca-toc nav { grid-template-columns: 1fr; }
  .banca-article p { font-size: .93rem; }
}

/* 404 */
.not-found-page .site-footer { margin-top: 0; }
.not-found { min-height: 72vh; display: grid; align-items: center; padding-top: 9rem; padding-bottom: 6rem; }
.not-found-inner { max-width: 760px; text-align: center; }
.not-found-code { margin: .5rem 0 -1.5rem; font: 400 clamp(6rem, 18vw, 13rem)/.8 "DM Serif Display", serif; color: rgba(201,163,77,.11); letter-spacing: -.055em; }
.not-found h1 { margin: 0; font-size: clamp(2.7rem, 6vw, 5.4rem); }
.not-found p:not(.not-found-code) { max-width: 620px; margin: 1.25rem auto 0; color: var(--fg-3); font-size: 1.05rem; }
.not-found .hero-actions { justify-content: center; margin-top: 2rem; }
.official-source-link { display: inline-flex; align-items: center; gap: .4rem; margin-top: .9rem; color: var(--gold-text); font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(223,196,113,.35); padding-bottom: .15rem; }
.official-source-link:hover { border-color: var(--gold-text); }
