
/* Portal modular - componente visual comum das áreas internas. */
body.legal-page { padding-top: 0; }
body.legal-page .legal-hero { padding-top: calc(var(--header-height) + 36px); }
.guide-hero .breadcrumb { display: block; margin-bottom: 24px; }
.main-nav a[aria-current="page"]:not(.nav-cta) {
  color: var(--color-gold-dark);
}
.main-nav a[aria-current="page"]:not(.nav-cta)::after {
  transform: scaleX(1);
}
.main-nav .nav-cta[aria-current="page"] {
  background: var(--color-cream);
  border-color: var(--color-gold-dark);
}
#conteudo { scroll-margin-top: var(--header-height); }
.interior-hero {
  padding: calc(var(--header-height) + clamp(44px, 7vw, 90px)) 0 clamp(50px, 6vw, 82px);
  background: linear-gradient(115deg, #fff 15%, var(--color-cream) 100%);
  border-bottom: 1px solid var(--color-border);
}
.interior-hero .container { max-width: var(--container); }
.interior-hero h1 {
  max-width: 1050px;
  font-size: clamp(2.8rem, 5.8vw, 5.4rem);
  letter-spacing: -.065em;
  line-height: 1.07;
  margin-bottom: 19px;
}
.interior-hero p {
  max-width: 780px;
  color: var(--color-muted);
  font-size: clamp(1.04rem, 1.7vw, 1.22rem);
  line-height: 1.7;
  margin: 0;
}
.trilha {
  margin-bottom: clamp(26px, 4vw, 44px);
  font-size: .82rem;
  color: var(--color-muted);
  line-height: 1.5;
}
.trilha ol {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 7px 10px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.trilha li { margin: 0; }
.trilha a { text-decoration: underline; text-underline-offset: 3px; }
.trilha a:hover { color: var(--color-gold-dark); }
.trilha [aria-current] { color: var(--color-dark); font-weight: 720; }
.trilha-separador { opacity: .55; }
.rotas-rapidas {
  padding: clamp(45px, 6vw, 75px) 0;
  background: var(--color-cream);
  border-bottom: 1px solid var(--color-border);
}
.rotas-cabecalho { margin-bottom: 27px; }
.rotas-cabecalho h2 {
  font-size: clamp(2rem, 4vw, 3.5rem);
  margin: 0 0 12px;
}
.rotas-cabecalho p { margin: 0; color: var(--color-muted); }
.rotas-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
}
.rotas-grid a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  padding: clamp(17px, 2.5vw, 26px);
  box-shadow: 0 10px 28px rgba(31,31,31,.04);
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.rotas-grid a:hover, .indice-card:hover {
  border-color: var(--color-gold);
  transform: translateY(-2px);
  box-shadow: 0 17px 35px rgba(31,31,31,.09);
}
.rotas-grid span {
  color: var(--color-gold-dark);
  font-size: .75rem;
  font-weight: 780;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.rotas-grid strong {
  color: var(--color-dark);
  font-size: clamp(1.08rem, 1.5vw, 1.3rem);
  line-height: 1.25;
}
.rotas-grid small {
  margin-top: auto;
  color: var(--color-muted);
  font-size: .87rem;
}
.chamada-integrada {
  max-width: 920px;
}
.chamada-integrada h2 {
  font-size: clamp(2rem, 4vw, 3.7rem);
  margin-bottom: 18px;
}
.chamada-integrada p {
  max-width: 760px;
  color: var(--color-muted);
  font-size: 1.08rem;
  line-height: 1.75;
}
.chamada-integrada .button-row { gap: 13px; }
.indice-cabecalho { max-width: 780px; margin-bottom: 28px; }
.indice-cabecalho h2 { margin-bottom: 14px; }
.indice-cabecalho p { font-size: 1.08rem; color: var(--color-muted); }
.indice-grade {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 18px;
}
.indice-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  border: 1px solid var(--color-border);
  border-radius: 22px;
  padding: clamp(24px,4vw,36px);
  background: #fff;
  box-shadow: var(--shadow-card);
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.indice-card span {
  color: var(--color-gold-dark);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.indice-card h3 { margin: 0; font-size: clamp(1.3rem,2.4vw,1.8rem); line-height: 1.25; }
.indice-card p { color: var(--color-muted); line-height: 1.65; margin: 0; }
.indice-card strong { margin-top: auto; padding-top: 12px; color: var(--color-gold-dark); }
.artigo-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  gap: clamp(34px, 6vw, 90px);
  align-items: start;
  padding-top: clamp(46px, 6vw, 85px);
  padding-bottom: clamp(60px, 8vw, 120px);
}
.artigo-corpo { max-width: 760px; }
.artigo-corpo p, .artigo-corpo li { color: var(--color-muted); font-size: 1.1rem; line-height: 1.85; }
.artigo-corpo h2 { margin: 40px 0 18px; font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.artigo-corpo a { color: var(--color-gold-dark); text-decoration: underline; }
.artigo-corpo blockquote { border-left: 3px solid var(--color-gold); margin: 30px 0; padding: 8px 0 8px 23px; }
.artigo-meta { font-size: .86rem; font-weight: 750; color: var(--color-gold-dark); margin-bottom: 26px; }
.artigo-acoes { position: sticky; top: calc(var(--header-height) + 28px); border: 1px solid var(--color-border); border-radius: 20px; padding: 26px; background: var(--color-cream); }
.artigo-acoes h2 { font-size: 1.4rem; margin-bottom: 12px; }
.artigo-acoes p { color: var(--color-muted); font-size: .94rem; }
.artigo-acoes .btn { margin: 10px 0; }
.link-texto { display: block; color: var(--color-gold-dark); font-weight: 750; margin-top: 16px; }
.site-footer .footer-grid > div { min-width: 0; }
.site-footer button { max-width: 100%; }

/* Acabamento editorial dos artigos: origem da adaptação e leituras relacionadas. */
.artigo-origem {
  margin-top: clamp(32px, 5vw, 54px);
  padding: clamp(22px, 3.5vw, 30px);
  background: var(--color-cream);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-gold-dark);
  border-radius: 0 18px 18px 0;
}
.artigo-origem .eyebrow { display: inline-block; margin-bottom: 11px; }
.artigo-origem p {
  color: var(--color-muted);
  font-size: .96rem;
  line-height: 1.72;
  margin: 0 0 17px;
}
.artigo-origem-links {
  display: flex;
  gap: 10px 25px;
  flex-wrap: wrap;
}
.artigo-origem-links a {
  color: var(--color-gold-dark);
  font-size: .9rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.artigos-relacionados {
  padding-top: 0;
  padding-bottom: clamp(60px, 7vw, 100px);
}
.artigos-relacionados .indice-cabecalho h2 {
  font-size: clamp(1.85rem, 3vw, 2.7rem);
}
.pagina-artigo .artigo-layout { padding-bottom: clamp(35px, 4vw, 55px); }
@media print {
  .artigos-relacionados, .artigo-origem-links { display: none !important; }
  .artigo-origem { padding: 10px 0; background: none !important; border: none; border-top: 1px solid #999; }
}

@media (max-width: 1130px) and (min-width: 861px) {
  .mobile-menu-button {
    display: inline-flex;
    position: relative;
    z-index: 1002;
  }
  .main-nav {
    position: fixed;
    inset: var(--header-height) 0 auto 0;
    display: grid;
    gap: 0;
    justify-content: stretch;
    padding: 14px 16px 22px;
    background: rgba(255,255,255,.99);
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 24px 60px rgba(23,23,23,.14);
    transform: translateY(-120%);
    opacity: 0;
    pointer-events: none;
    transition: transform .22s ease, opacity .22s ease;
  }
  .main-nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .main-nav a { padding: 14px 10px; border-bottom: 1px solid var(--color-border); }
  .nav-cta { margin-top: 10px; justify-content: center; text-align: center; }
}
@media (max-width: 860px) {
  .rotas-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .indice-grade, .artigo-layout { grid-template-columns: 1fr; }
  .artigo-acoes { position: static; }
  .main-nav { max-height: calc(100svh - var(--header-height)); overflow-y: auto; }
}
@media (max-width: 620px) {
  .interior-hero { padding-top: calc(var(--header-height) + 36px); padding-bottom: 48px; }
  .interior-hero h1 { font-size: clamp(2.4rem, 10vw, 3.8rem); }
  .rotas-grid { grid-template-columns: 1fr; }
  .rotas-grid a { padding: 21px; }
  .trilha { font-size: .78rem; }
  .rotas-cabecalho { margin-bottom: 20px; }
}

/* Artigos: menu editorial no desktop, após o conteúdo no mobile. */
.pagina-artigo .artigo-layout-com-menu {
  grid-template-columns: 260px minmax(0, 1fr);
}
.pagina-artigo .artigo-layout-sem-menu {
  grid-template-columns: minmax(0, 780px);
  justify-content: center;
}
.pagina-artigo .artigo-layout-com-menu > .artigo-corpo {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}
.artigos-nav {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  max-height: calc(100svh - var(--header-height) - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  align-self: start;
}
.artigos-nav nav {
  display: grid;
  gap: 3px;
}
.artigos-nav nav a {
  display: block;
  padding: 9px 10px;
  border-left: 3px solid transparent;
  border-radius: 0 9px 9px 0;
  color: var(--color-muted);
  font-size: .9rem;
  font-weight: 640;
  line-height: 1.4;
}
.artigos-nav nav a:hover,
.artigos-nav nav a:focus-visible {
  background: rgba(179, 146, 85, .12);
  color: var(--color-dark);
  border-left-color: var(--color-gold-dark);
}
.artigos-nav .artigos-nav-todos {
  display: block;
  margin-top: 12px;
  padding: 14px 10px 2px;
  border-top: 1px solid var(--color-border);
  color: #735832;
  font-size: .89rem;
  font-weight: 800;
}
.pagina-artigo .artigo-origem-links a {
  color: #735832;
}
@media (max-width: 900px) {
  .pagina-artigo .artigo-layout-com-menu {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .pagina-artigo .artigo-layout-com-menu > .artigo-corpo {
    width: 100%;
    max-width: 760px;
  }
  .pagina-artigo .artigos-nav {
    position: static;
    width: 100%;
    max-width: 760px;
    max-height: none;
    overflow: visible;
    align-self: center;
  }
}
@media print {
  .pagina-artigo .artigos-nav { display: none !important; }
  .pagina-artigo .artigo-layout-com-menu { display: block !important; }
  .pagina-artigo .artigo-layout-com-menu > .artigo-corpo {
    width: 100% !important;
    max-width: none !important;
  }
}

/* Leitura central, sem menu lateral: navegação editorial sempre ao final. */
.pagina-artigo .artigo-layout.artigo-layout-sem-menu {display:grid;grid-template-columns:minmax(0,760px);justify-content:center;gap:0}
.pagina-artigo .artigos-fim {max-width:820px;padding-bottom:clamp(50px,7vw,90px)}
.artigos-fim h2 {font-size:clamp(1.6rem,3vw,2.3rem);margin:8px 0 20px}
.artigos-fim-lista {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 26px}
.artigos-fim-lista a {display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--color-border);font-weight:680;line-height:1.45;color:var(--color-dark)}
.artigos-fim-lista a:hover {color:#735832}
.artigos-fim-lista a span {color:#735832}
@media(max-width:700px){.artigos-fim-lista{grid-template-columns:1fr}}
