/* ============================================================
   EDITORIAL.CSS
   Tipografia das matérias e Biblioteca de legislação.
   Importa do site original (style.css/v3/v4) com refinamentos:
     - Hero das matérias reduzido (380px ao invés de 580px)
     - Variáveis de compatibilidade com o novo design system
   ============================================================ */

/* ---------- COMPATIBILIDADE DE VARIÁVEIS ----------
   O site original usa --sans, --serif, --marfim, --musgo (sem sufixo)
   e variáveis bronze-alpha. Mapeamos para o novo colors_and_type.css. */
:root {
  --sans:           var(--font-sans);
  --serif:          var(--font-serif);
  --marfim:         var(--marfim-base);
  --marfim-pale:    var(--marfim-soft);
  --musgo:          var(--musgo-deep);
  --article-max:    760px;
  --bronze-alpha-10: rgba(184, 153, 104, 0.10);
  --bronze-alpha-20: rgba(184, 153, 104, 0.20);
  --bronze-alpha-30: rgba(184, 153, 104, 0.30);
  --bronze-alpha-50: rgba(184, 153, 104, 0.50);
  --bronze-glow:    linear-gradient(135deg, rgba(184, 153, 104, 0.15), rgba(212, 185, 138, 0.05));
}

/* ============================================================
   EDITORIAL — regras importadas do site original (style.css/v3/v4)
   Restaura tipografia das matérias e biblioteca completa.
   ============================================================ */

/* --- de style.css --- */
.article {
  padding: var(--space-12) 0 var(--space-20);
  position: relative;
}

.article-wrap {
  max-width: var(--article-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.article-header {
  margin-bottom: var(--space-10);
  padding-bottom: var(--space-8);
  border-bottom: 1px solid var(--bronze-alpha-30);
  position: relative;
}

.article-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 120px;
  height: 2px;
  background: var(--bronze);
}

.article-tag {
  font-family: var(--sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: var(--bronze);
  margin-bottom: var(--space-5);
  font-weight: 600;
  display: inline-block;
  padding: var(--space-1) var(--space-3);
  background: var(--bronze-alpha-10);
  border: 1px solid var(--bronze-alpha-30);
}

.article-title {
  font-family: var(--serif);
  font-weight: 500;
  font-size: var(--fs-3xl);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--musgo-deep);
  margin: 0 0 var(--space-4) 0;
}

.article-dek {
  font-family: var(--serif);
  font-style: italic;
  font-size: var(--fs-lg);
  color: var(--musgo-soft);
  line-height: 1.4;
  margin-bottom: var(--space-6);
}

.article-byline {
  font-family: var(--sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--musgo-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  font-weight: 500;
}

.article-byline strong {
  color: var(--musgo-deep);
  font-weight: 600;
}

.article-body {
  font-family: var(--serif);
  font-size: 1.25rem;
  line-height: 1.7;
  color: var(--musgo-deep);
}

.article-body > p:first-of-type::first-letter {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 5rem;
  float: left;
  line-height: 0.85;
  padding: 0.35rem 0.6rem 0 0;
  color: var(--bronze);
}

.article-body p { margin: 0 0 var(--space-6) 0; }

.article-body h2 {
  font-family: var(--serif);
  font-weight: 500;
  font-size: var(--fs-2xl);
  margin: var(--space-16) 0 var(--space-6);
  color: var(--musgo-deep);
  line-height: 1.15;
  position: relative;
  padding-left: var(--space-6);
}

.article-body h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4em;
  bottom: 0.3em;
  width: 3px;
  background: var(--bronze);
}

.article-body h3 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: var(--fs-xl);
  margin: var(--space-10) 0 var(--space-3);
  color: var(--musgo-deep);
}

.article-body blockquote {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.5rem;
  line-height: 1.35;
  color: var(--musgo-soft);
  border-left: 3px solid var(--bronze);
  padding: var(--space-2) 0 var(--space-2) var(--space-8);
  margin: var(--space-10) 0;
  position: relative;
}

.article-body blockquote::before {
  content: "\201C";
  position: absolute;
  left: var(--space-4);
  top: -0.4em;
  font-size: 3rem;
  color: var(--bronze);
  opacity: 0.25;
  font-family: var(--serif);
  line-height: 1;
}

.article-body ul, .article-body ol {
  margin: 0 0 var(--space-6) 0;
  padding-left: var(--space-8);
}

.article-body li { margin-bottom: var(--space-3); }

.article-body strong { font-weight: 600; color: var(--musgo-deep); }

.article-body em { font-style: italic; }

.article-body a {
  color: var(--musgo-deep);
  text-decoration: underline;
  text-decoration-color: var(--bronze);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
  transition: color var(--t-fast), text-decoration-thickness var(--t-fast);
}

.article-body a:hover {
  color: var(--bronze);
  text-decoration-thickness: 2px;
}

.article-body hr {
  border: 0;
  text-align: center;
  margin: var(--space-16) 0;
  height: 1px;
  position: relative;
}

.article-body hr::before {
  content: "◆ ◆ ◆";
  color: var(--bronze);
  font-size: var(--fs-sm);
  letter-spacing: 0.6em;
  background: var(--marfim);
  padding: 0 var(--space-6);
}

.article-byline.byline-with-avatar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-4);
}

.article-byline.byline-with-avatar .byline-text {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  align-items: center;
}

.library-wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.library-intro {
  font-family: var(--serif);
  font-size: 1.12rem;
  line-height: 1.65;
  color: var(--musgo-deep);
  max-width: 780px;
  margin: 0 auto var(--space-12);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--bronze-alpha-20);
  border-bottom: 1px solid var(--bronze-alpha-20);
}

.library-intro p {
  margin: 0 0 var(--space-4) 0;
}

.library-intro p:last-child {
  margin-bottom: 0;
}

.library-intro strong {
  color: var(--musgo-deep);
  font-weight: 600;
}

.library-intro em {
  font-style: italic;
  color: var(--musgo);
}

.library-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-6);
  margin-bottom: var(--space-16);
  padding-bottom: var(--space-6);
  border-bottom: 1px solid var(--bronze-alpha-20);
}

.library-search {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1 1 360px;
  max-width: 560px;
}

.library-search-label {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--musgo-soft);
}

.library-search input {
  font-family: var(--sans);
  font-size: 1rem;
  padding: 0.85rem 1.1rem;
  background: var(--marfim-pale);
  color: var(--musgo-deep);
  border: 1px solid var(--bronze-alpha-30);
  border-radius: 2px;
  outline: none;
  transition: border-color var(--t-base), background var(--t-base), box-shadow var(--t-base);
}

.library-search input::placeholder {
  color: var(--musgo-soft);
  font-style: italic;
  opacity: 0.7;
}

.library-search input:focus {
  border-color: var(--bronze);
  background: var(--marfim);
  box-shadow: 0 0 0 3px var(--bronze-alpha-10);
}

.library-count {
  font-family: var(--sans);
  font-size: 0.88rem;
  color: var(--musgo-soft);
  margin: 0;
  padding-bottom: 0.95rem;
  white-space: nowrap;
}

.library-count strong {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--bronze);
  margin-right: 0.35rem;
  font-variant-numeric: oldstyle-nums;
}

.library {
  display: flex;
  flex-direction: column;
  gap: var(--space-20);
}

.library-category {
  scroll-margin-top: 120px;
}

.library-category[hidden] {
  display: none;
}

.library-category-header {
  margin-bottom: var(--space-8);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--bronze-alpha-30);
  position: relative;
}

.library-category-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 60px;
  height: 2px;
  background: linear-gradient(90deg, var(--bronze) 0%, var(--bronze-glow) 100%);
}

.library-category-eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--bronze);
  margin: 0 0 var(--space-2) 0;
}

.library-category-header h2 {
  font-family: var(--serif);
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  font-weight: 600;
  font-style: italic;
  color: var(--musgo-deep);
  margin: 0;
  line-height: 1.2;
  letter-spacing: -0.005em;
}

.library-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-6);
}

.library-card {
  display: flex;
  flex-direction: column;
  padding: var(--space-6);
  background: var(--marfim-pale);
  border: 1px solid var(--bronze-alpha-20);
  border-radius: 3px;
  position: relative;
  transition: border-color var(--t-base), background var(--t-base), transform var(--t-base), box-shadow var(--t-base);
}

.library-card[hidden] {
  display: none;
}

.library-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--bronze);
  opacity: 0;
  transition: opacity var(--t-base);
}

.library-card:hover {
  background: var(--marfim);
  border-color: var(--bronze-alpha-50);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -12px rgba(18, 42, 30, 0.22);
}

.library-card:hover::before {
  opacity: 1;
}

.library-card-number {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bronze);
  margin: 0 0 var(--space-3) 0;
}

.library-card-name {
  font-family: var(--serif);
  font-size: 1.28rem;
  font-weight: 600;
  color: var(--musgo-deep);
  line-height: 1.28;
  margin: 0 0 var(--space-3) 0;
  letter-spacing: -0.005em;
}

.library-card-desc {
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--musgo);
  margin: 0 0 var(--space-5) 0;
  flex: 1;
}

.library-card-link {
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--musgo-deep);
  text-decoration: none;
  border-bottom: 1px solid var(--bronze-alpha-30);
  padding-bottom: 0.2rem;
  align-self: flex-start;
  transition: color var(--t-base), border-color var(--t-base);
}

.library-card-link span {
  display: inline-block;
  margin-left: 0.35rem;
  transition: transform var(--t-base);
}

.library-card-link:hover {
  color: var(--bronze);
  border-color: var(--bronze);
}

.library-card-link:hover span {
  transform: translate(2px, -2px);
}

.library-empty {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-style: italic;
  color: var(--musgo-soft);
  text-align: center;
  padding: var(--space-16) var(--space-6);
  border: 1px dashed var(--bronze-alpha-30);
  border-radius: 2px;
  margin: var(--space-8) 0;
}

.library-empty[hidden] {
  display: none;
}

.library-disclaimer {
  margin-top: var(--space-24);
  padding: var(--space-8);
  background: var(--marfim-deep);
  border-left: 3px solid var(--bronze);
  font-family: var(--serif);
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--musgo);
  font-style: italic;
}

.library-disclaimer p {
  margin: 0 0 var(--space-3) 0;
}

.library-disclaimer p:last-child {
  margin-bottom: 0;
}

.library-disclaimer strong {
  font-style: normal;
  font-weight: 600;
  color: var(--musgo-deep);
}

.reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--bronze) 0%, var(--bronze-glow) 100%);
  z-index: 101;
  transition: width 60ms linear;
  box-shadow: 0 0 8px var(--bronze-alpha-50);
}


/* --- de style-v3.css --- */
.v3-glass {
  position: relative;
  padding: 2rem 2.25rem;
  background: rgba(10, 27, 18, 0.06);
  border: 1px solid rgba(184, 153, 104, 0.35);
  border-radius: 18px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  margin: 2.5rem 0;
}

.v3-glass::before {
  content: '';
  position: absolute;
  top: -1px; left: 32px; right: 32px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--v3-bronze-glow), transparent);
}

.v3-glass-label {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--sans);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--bronze);
  margin-bottom: 0.75rem;
}

.v3-glass-label::before {
  content: '';
  width: 24px; height: 2px;
  background: var(--bronze);
}

.v3-glass-text {
  font-family: var(--serif);
  font-weight: 500;
  font-style: italic;
  font-size: 1.6rem;
  line-height: 1.3;
  color: var(--musgo-deep);
  letter-spacing: -0.3px;
  margin: 0;
}

.v3-glass-text strong {
  color: var(--bronze);
  font-weight: 700;
  font-style: italic;
}

.v3-glass--dark {
  background: rgba(10, 27, 18, 0.55);
  border-color: rgba(184, 153, 104, 0.35);
}

.v3-glass--dark .v3-glass-label { color: var(--bronze-light); }

.v3-glass--dark .v3-glass-text { color: var(--marfim); }

.v3-glass--dark .v3-glass-text strong { color: var(--bronze-light); }


/* --- de style-v4.css --- */
.v3-glass {
  background: rgba(30, 30, 30, 0.05);
}

.v3-glass--dark {
  background: rgba(25, 25, 25, 0.76);
}

.article-body {
  font-size: 1.375rem;       /* 22px — antes 1.25rem (20px) */
  line-height: 1.78;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
  text-rendering: optimizeLegibility;
}

.article-body p {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.article-body h3 {
  font-size: 1.875rem;       /* 30px — antes 1.75rem (28px) */
}

.article-body .standfirst {
  font-size: 1.45rem;
  line-height: 1.72;
}

.ref-link {
  color: var(--bronze);
  text-decoration: underline;
  text-decoration-style: dashed;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(184, 153, 104, 0.45);
  transition: color 0.18s ease, text-decoration-color 0.18s ease, text-decoration-style 0.18s ease;
}

.ref-link:hover,
.ref-link:focus-visible {
  color: var(--musgo-deep);
  text-decoration-color: var(--bronze);
  text-decoration-style: solid;
}

.v3-glass--dark .ref-link,
.article-footer .ref-link {
  color: var(--bronze-light);
}

.v3-glass--dark .ref-link:hover {
  color: var(--marfim);
  text-decoration-color: var(--bronze-light);
}

.article-hero {
  position: relative;
  width: 100%;
  margin: 0 auto;
  max-height: 580px;
  overflow: hidden;
  background: #0A0A0A;
}

.article-hero-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 580px;
  object-fit: cover;
  object-position: center 35%;
  filter: saturate(0.82) contrast(1.05);
}

.article-hero-fade {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 120px;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgba(246, 242, 232, 0) 0%,
    rgba(246, 242, 232, 0.5) 55%,
    rgba(246, 242, 232, 1) 100%);
}

.article-hero-credit {
  position: absolute;
  right: 28px; bottom: 28px;
  padding: 8px 14px;
  background: rgba(10, 10, 10, 0.55);
  backdrop-filter: blur(8px);
  border-radius: 4px;
  color: var(--marfim);
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 500;
  z-index: 2;
}

.article-hero-credit strong {
  color: var(--bronze-light);
  font-weight: 700;
}

.article-figure {
  margin: 3.5rem 0;
  padding: 0;
}

.article-figure-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 14px 40px rgba(18, 42, 30, 0.15);
  filter: saturate(0.85) contrast(1.04);
}

.article-figure-caption {
  font-family: var(--sans);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--musgo-soft);
  margin-top: 1rem;
  padding: 0 0.5rem;
  text-align: left;
  font-style: italic;
}

.article-figure-label {
  display: inline-block;
  font-family: var(--sans);
  font-style: normal;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--bronze);
  margin-right: 0.75rem;
}

.article-figure-credit {
  display: block;
  font-family: var(--sans);
  font-style: normal;
  font-size: 0.72rem;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--musgo-soft);
  margin-top: 0.4rem;
  font-weight: 500;
}

.article-figure-credit::before {
  content: '· ';
  color: var(--bronze);
  font-weight: 700;
}

.article-figure.is-dimmed .article-figure-img {
  filter: saturate(0.78) contrast(1.02) brightness(0.92);
}

.article-body,
.article-body p,
.article-body .standfirst,
.article-dek {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
  text-justify: inter-word;
}

.v3-glass-text,
.v3-cell-desc,
.v3-step-desc,
.v3-stat-sub {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.article-footer-text p {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.article-body h3 {
  margin-top: var(--space-12);
  margin-bottom: var(--space-6);
}


/* ============================================================
   ARTICLE-HERO REDUZIDO — proporcional ao conteúdo
   ============================================================
   O hero original tinha 580px, dominante demais para um site
   editorial onde o conteúdo é o que importa. Reduzido a 380px,
   mantendo o efeito visual sem competir com o texto.
*/
.article-hero {
  max-height: 380px;
}
.article-hero-img {
  max-height: 380px;
}

/* Container de texto da matéria — confortável para leitura longa */
.article {
  padding: var(--space-10) 0 var(--space-16);
}
.article-wrap {
  max-width: 720px;
}

/* Eyebrow padronizado da matéria — sutil e tipográfico, sem
   competir com o título. */
.article-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--bronze-deep);
  font-weight: 500;
  margin-bottom: var(--space-5);
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}
.article-eyebrow .dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--bronze-deep);
  display: inline-block;
}

/* ============================================================
   BIO PORTRAIT — substitui o placeholder "CN" por foto editorial
   ============================================================ */
.bio {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: var(--space-12);
  align-items: start;
}
@media (max-width: 768px) {
  .bio {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
}
.bio-portrait-figure {
  margin: 0;
  position: relative;
}
.bio-portrait-img {
  width: 100%;
  height: auto;
  aspect-ratio: 2/3;
  object-fit: cover;
  display: block;
  /* Vinheta sutil + leve sombra para soltar do fundo */
  box-shadow:
    0 1px 2px rgba(31, 45, 36, 0.08),
    0 8px 24px rgba(31, 45, 36, 0.12);
}
.bio-content {
  padding-top: var(--space-2);
}

/* ============================================================
   BYLINE COM RETRATO — minatura do autor ao lado do nome
   nas matérias do Observatório
   ============================================================ */
.article-byline {
  align-items: center;
}
.article-byline-portrait {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  margin-right: var(--space-2);
  flex-shrink: 0;
}

/* ============================================================
   SOBRE MAGAZINE — header com foto vertical (esquerda) + título (direita)
   ============================================================ */
.sobre-magazine {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: var(--space-12);
  align-items: center;
  padding: var(--space-8) 0;
}
@media (max-width: 900px) {
  .sobre-magazine {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
}
.sobre-magazine-figure {
  margin: 0;
}
.sobre-magazine-img {
  width: 100%;
  height: auto;
  display: block;
  box-shadow:
    0 1px 2px rgba(31, 45, 36, 0.10),
    0 12px 32px rgba(31, 45, 36, 0.16);
}
.sobre-magazine-header {
  padding: 0;
}
.sobre-magazine-header .page-title {
  margin-top: var(--space-4);
}
.sobre-magazine-header .page-lede {
  margin-top: var(--space-6);
  font-style: italic;
}

/* ============================================================
   EDITOR MASTHEAD — bloco "editor responsável" no topo do Observatório
   Marca a autoria editorial autoral da seção, no estilo de masthead
   de revista séria. Discreto mas presente.
   ============================================================ */
.editor-masthead {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  margin: var(--space-8) 0 0 0;
  padding: var(--space-5) var(--space-6);
  background: var(--marfim-soft);
  border-left: 3px solid var(--bronze-deep);
  max-width: 640px;
}
.editor-masthead-portrait {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid var(--musgo-line);
}
.editor-masthead-text {
  flex: 1;
  min-width: 0;
}
.editor-masthead-label {
  font-family: var(--font-sans);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin: 0 0 var(--space-1) 0;
}
.editor-masthead-name {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--musgo-deep);
  line-height: 1.2;
  margin: 0;
}
.editor-masthead-name em {
  font-style: italic;
  color: var(--bronze-deep);
}
.editor-masthead-role {
  font-family: var(--font-sans);
  font-size: 11px;
  color: var(--musgo-soft);
  line-height: 1.5;
  margin: var(--space-2) 0 0 0;
}
@media (max-width: 600px) {
  .editor-masthead {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }
}

/* ============================================================
   PRAXIS BADGE — selo "Tese exercida pelo escritório em casos concretos"
   Aparece no topo da matéria, ao lado do byline
   ============================================================ */
.article-praxis-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-5) 0 0 0;
  padding: var(--space-2) var(--space-4);
  background: rgba(184, 153, 104, 0.08);
  border: 1px solid var(--bronze-alpha-30);
  border-left-width: 3px;
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--bronze-deep);
  font-weight: 600;
}
.article-praxis-mark {
  font-size: 10px;
  color: var(--bronze-deep);
}

/* ============================================================
   PRAXIS NOTE — nota editorial no rodapé da matéria
   Reforça a procedência empírica da análise
   ============================================================ */
.article-praxis-note {
  margin: var(--space-12) 0 var(--space-8);
  padding: var(--space-6) var(--space-8);
  background: var(--marfim-soft);
  border-left: 3px solid var(--bronze-deep);
}
.article-praxis-note-label {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--bronze-deep);
  margin: 0 0 var(--space-3) 0;
}
.article-praxis-note-text {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--musgo-soft);
  margin: 0;
}
.article-praxis-note-text strong {
  color: var(--musgo-deep);
  font-weight: 600;
}

/* ============================================================
   RADAR JURÍDICO — listagem, edição e itens
   ============================================================ */

/* Container de prosa do radar */
.radar-prose-container {
  max-width: 820px;
}

/* HERO da edição */
.radar-hero {
  background: var(--musgo-deep);
  color: var(--marfim-soft);
  padding: var(--space-16) 0 var(--space-12);
  position: relative;
}
.radar-hero-container {
  text-align: center;
}
.radar-hero-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--bronze-light);
  font-weight: 600;
  margin: 0 0 var(--space-3) 0;
}
.radar-hero-titulo {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(48px, 7vw, 84px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--marfim-soft);
  margin: 0 0 var(--space-3) 0;
}
.radar-hero-data {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  color: var(--fg-on-dark-mute);
  margin: 0 0 var(--space-10) 0;
  letter-spacing: 0.02em;
}
.radar-hero-contagem {
  display: flex;
  justify-content: center;
  gap: var(--space-10);
  flex-wrap: wrap;
  border-top: 1px solid rgba(184, 153, 104, 0.35);
  padding-top: var(--space-8);
  margin-top: var(--space-8);
}
.radar-contagem-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 80px;
}
.radar-contagem-num {
  font-family: var(--font-serif);
  font-size: 2.5rem;
  font-weight: 500;
  color: var(--bronze-light);
  line-height: 1;
}
.radar-contagem-item--total .radar-contagem-num {
  color: var(--marfim-soft);
}
.radar-contagem-label {
  font-family: var(--font-sans);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--fg-on-dark-mute);
  margin-top: var(--space-2);
  font-weight: 500;
}

/* Seção interna */
.radar-section-header {
  border-bottom: 1px solid var(--musgo-line);
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-8);
}
.radar-section-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin: 0;
}
.radar-section-meta {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--musgo-soft);
  margin: var(--space-2) 0 0 0;
}

/* Resumo executivo (prosa) */
.radar-resumo {
  font-family: var(--font-serif);
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--musgo-deep);
}
.radar-resumo p {
  margin: 0 0 var(--space-5) 0;
}
.radar-resumo p:last-child {
  margin-bottom: 0;
}

/* Item do radar */
.radar-item {
  padding: var(--space-8) 0;
  border-bottom: 1px solid var(--musgo-line);
}
.radar-item:last-child {
  border-bottom: 0;
}
.radar-item-meta {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}
.radar-item-codigo {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: var(--space-1) var(--space-2);
  background: var(--musgo-deep);
  color: var(--marfim-soft);
  border-radius: 2px;
}
.radar-item--tp .radar-item-codigo {
  background: var(--bronze-deep);
}
.radar-item--pub .radar-item-codigo {
  background: var(--musgo-soft);
}
.radar-item--mon .radar-item-codigo {
  background: var(--musgo-mute);
}
.radar-item-orgao {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--musgo-soft);
  font-weight: 500;
}
.radar-item-titulo {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.25;
  color: var(--musgo-deep);
  margin: 0 0 var(--space-4) 0;
  letter-spacing: -0.01em;
}
.radar-item-titulo em {
  font-style: italic;
  color: var(--bronze-deep);
}
.radar-item-conteudo {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--musgo-deep);
}
.radar-item-conteudo p {
  margin: 0 0 var(--space-4) 0;
}
.radar-item-conteudo p:last-child {
  margin-bottom: 0;
}
.radar-item-conteudo strong {
  color: var(--musgo-deep);
  font-weight: 600;
}
.radar-item-conteudo em {
  font-style: italic;
}

/* Link para matéria completa */
.radar-item-link {
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--bronze-alpha-30);
}
.radar-link-completo {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 600;
  color: var(--bronze-deep);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-bottom-color 200ms;
}
.radar-link-completo:hover {
  border-bottom-color: var(--bronze-deep);
}

/* Listagem /radar */
.radar-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.radar-list-item {
  border-bottom: 1px solid var(--musgo-line);
}
.radar-list-link {
  display: block;
  padding: var(--space-8) 0;
  text-decoration: none;
  color: inherit;
  transition: padding-left 200ms;
}
.radar-list-link:hover {
  padding-left: var(--space-3);
}
.radar-list-meta {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-3);
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.22em;
}
.radar-list-edicao {
  color: var(--bronze-deep);
  font-weight: 600;
}
.radar-list-data {
  color: var(--musgo-mute);
}
.radar-list-titulo {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 1.8rem;
  color: var(--musgo-deep);
  margin: 0 0 var(--space-2) 0;
  line-height: 1.2;
}
.radar-list-intervalo {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1rem;
  color: var(--musgo-soft);
  margin: 0 0 var(--space-4) 0;
}
.radar-list-contagem {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.radar-tag {
  display: inline-flex;
  align-items: center;
  padding: var(--space-1) var(--space-3);
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 600;
  border-radius: 2px;
}
.radar-tag--tp {
  background: rgba(184, 153, 104, 0.15);
  color: var(--bronze-deep);
}
.radar-tag--pub {
  background: rgba(63, 81, 71, 0.10);
  color: var(--musgo-soft);
}
.radar-tag--mon {
  background: rgba(111, 126, 115, 0.10);
  color: var(--musgo-mute);
}

/* ============================================================
   JUSTIFICAÇÃO DE TEXTO — corpo editorial em coluna larga
   Aplica text-align: justify + hyphens nos blocos de prosa.
   Preserva títulos, eyebrow, byline e UI alinhados naturalmente.
   ============================================================ */

/* Corpo da matéria — parágrafos e listas */
.article-body p,
.article-body li {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
  text-justify: inter-word;
}

/* Resumo executivo do Radar */
.radar-resumo p {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Conteúdo dos itens do Radar */
.radar-item-conteudo p {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Lede das páginas (page-lede) */
.page-lede {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Bio da página Sobre */
.bio-prose p {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Em telas estreitas, a justificação cria gaps grandes — desabilita */
@media (max-width: 600px) {
  .article-body p,
  .article-body li,
  .radar-resumo p,
  .radar-item-conteudo p,
  .page-lede,
  .bio-prose p {
    text-align: left;
    hyphens: manual;
  }
}

/* ============================================================
   RADAR — RECLASSIFICAÇÃO VISUAL
   Substitui as classes radar-item--tp/pub/mon pelas editoriais
   ============================================================ */

/* Destaque editorial — paleta bronze (acento principal) */
.radar-item--destaque {
  border-left: 3px solid var(--bronze-deep);
  padding-left: var(--space-6);
  background: var(--marfim-soft);
  padding-top: var(--space-6);
  padding-right: var(--space-6);
  padding-bottom: var(--space-6);
  margin-bottom: var(--space-6);
  border-radius: 0;
}

/* Decisões e legislação — sóbrio, sem destaque visual lateral */
.radar-item--decisao {
  /* herda os estilos de .radar-item — sem realce especial */
}

/* Em acompanhamento — leve recuo cromático para sinalizar status provisório */
.radar-item--observacao .radar-item-titulo {
  color: var(--musgo-soft);
}
.radar-item--observacao .radar-item-conteudo {
  color: var(--musgo-soft);
}

/* Cobertura no hero — substitui o dashboard de contagem */
.radar-hero-cobertura {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.15rem;
  color: var(--marfim-soft);
  margin: var(--space-6) 0 0 0;
  opacity: 0.92;
}
.radar-hero-cobertura strong {
  color: var(--bronze-light);
  font-style: normal;
  font-weight: 500;
}

/* Volume na listagem — substitui as tags TP/PUB/MON */
.radar-list-volume {
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.20em;
  color: var(--musgo-mute);
  font-weight: 500;
  margin: 0;
}

/* Órgão em formato de eyebrow — antes era um span; agora é p próprio */
.radar-item .radar-item-orgao {
  display: block;
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin: 0 0 var(--space-3) 0;
}
.radar-item--observacao .radar-item-orgao {
  color: var(--musgo-mute);
}

/* ============================================================
   JUSTIFICAÇÃO DE TEXTO — passada extra para textos que escaparam
   Cobre: biblioteca, rodapé, atuação, hero-lede, manifesto,
   células de áreas, descrições de matéria em destaque, contato.
   ============================================================ */

/* Biblioteca */
.library-intro p,
.library-card-desc,
.library-disclaimer p,
.lib-desc {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Rodapé — colunas descritivas e compliance */
.footer-col p,
.footer-compliance {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Atuação — descrição dos passos */
.step-desc {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Home — hero-lede e featured */
.hero-lede,
.featured-dek {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Áreas de atuação — descrição de cada eixo */
.cell-desc {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Contato — blocos */
.contact-block-body,
.contact-block-lead {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Manifesto — converte centro para justificado em ambiente que não seja mobile */
.manifesto-quote {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Mobile — força left-align em todos os blocos justificados (gaps ficam feios em coluna estreita) */
@media (max-width: 600px) {
  .library-intro p,
  .library-card-desc,
  .library-disclaimer p,
  .lib-desc,
  .footer-col p,
  .footer-compliance,
  .step-desc,
  .hero-lede,
  .featured-dek,
  .cell-desc,
  .contact-block-body,
  .contact-block-lead,
  .manifesto-quote {
    text-align: left;
    hyphens: manual;
  }
  .manifesto-quote {
    text-align: center;  /* manifesto volta a centrar em mobile, melhor visualmente */
  }
}

/* ============================================================
   JUSTIFICAÇÃO COM PRIORIDADE ALTA
   Garante aplicação mesmo sobre regras antigas mais específicas
   ============================================================ */

/* Hero-lede da home */
.hero .hero-lede,
section.hero .hero-lede,
.hero-inner .hero-lede {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Cards de publicação no Observatório */
.pub-card-dek,
.pub-card .pub-card-dek,
article.pub-card .pub-card-body .pub-card-dek {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Featured (destaque do Observatório na home) */
.featured-dek,
.featured-main .featured-dek,
.featured-aside .featured-dek {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Cards das áreas (home e atuação) */
.cell .cell-desc,
.v3-cell .v3-cell-desc {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Atuação — descrição dos passos */
.steps .step-desc,
.step .step-desc {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Rodapé */
.site-footer .footer-col p,
.site-footer .footer-compliance,
.footer-grid .footer-col p {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Biblioteca */
.library-intro p,
.library-card-desc,
.library-disclaimer p,
.lib-desc,
section.section .library-intro p {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Contato */
.contact-block .contact-block-body,
.contact-block .contact-block-lead {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Page lede em geral */
.page-header .page-lede,
.sobre-magazine-header .page-lede {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Bio prose */
.bio-prose p,
.bio .bio-prose p {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Article body */
.article .article-body p,
.article-wrap .article-body p,
.article-body > p {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Radar */
.radar-resumo p,
.radar-prose-container .radar-resumo p,
.radar-item-conteudo p,
.radar-item .radar-item-conteudo p {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Mobile — desliga (gaps em coluna estreita ficam feios) */
@media (max-width: 600px) {
  .hero-lede,
  .pub-card-dek,
  .featured-dek,
  .cell-desc,
  .v3-cell-desc,
  .step-desc,
  .footer-col p,
  .footer-compliance,
  .library-intro p,
  .library-card-desc,
  .library-disclaimer p,
  .lib-desc,
  .contact-block-body,
  .contact-block-lead,
  .page-lede,
  .bio-prose p,
  .article-body p,
  .radar-resumo p,
  .radar-item-conteudo p {
    text-align: left !important;
    hyphens: manual !important;
  }
}

/* ============================================================
   RADAR DEMO A — Magazine layout
   ============================================================ */
.demo-a-resumo {
  column-count: 2;
  column-gap: var(--space-12);
  column-rule: 1px solid var(--musgo-line);
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--musgo-deep);
}
.demo-a-resumo p {
  margin: 0 0 var(--space-4);
  text-align: justify;
  hyphens: auto;
}
.demo-a-resumo p:first-child::first-letter {
  font-family: var(--font-serif);
  font-size: 4rem;
  font-weight: 500;
  float: left;
  line-height: 0.9;
  margin: 0.05em 0.1em 0 0;
  color: var(--bronze-deep);
}
@media (max-width: 720px) {
  .demo-a-resumo { column-count: 1; }
}

.demo-a-destaque {
  background: var(--marfim-soft);
  border-left: 3px solid var(--bronze-deep);
  padding: var(--space-10);
}
.demo-a-orgao {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin: 0 0 var(--space-4);
}
.demo-a-titulo-grande {
  font-family: var(--font-serif);
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 500;
  line-height: 1.15;
  color: var(--musgo-deep);
  margin: 0 0 var(--space-6);
  letter-spacing: -0.015em;
}
.demo-a-titulo-grande em {
  color: var(--bronze-deep);
  font-style: italic;
}
.demo-a-conteudo {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  line-height: 1.65;
  color: var(--musgo-deep);
}
.demo-a-conteudo p {
  margin: 0 0 var(--space-4);
  text-align: justify;
  hyphens: auto;
}

.demo-a-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-8);
}
@media (max-width: 720px) {
  .demo-a-grid { grid-template-columns: 1fr; }
}

.demo-a-card {
  background: var(--marfim-soft);
  padding: var(--space-8);
  border-top: 2px solid var(--bronze-deep);
}
.demo-a-card-orgao {
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin: 0 0 var(--space-3);
}
.demo-a-card-titulo {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--musgo-deep);
  margin: 0 0 var(--space-4);
}
.demo-a-card-conteudo {
  font-family: var(--font-serif);
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--musgo-deep);
}
.demo-a-card-conteudo p {
  margin: 0 0 var(--space-3);
  text-align: justify;
  hyphens: auto;
}

.demo-a-lista {
  list-style: none;
  padding: 0;
  margin: 0;
}
.demo-a-lista-item {
  border-bottom: 1px solid var(--musgo-line);
  padding: var(--space-5) 0;
}
.demo-a-lista-item:last-child { border-bottom: 0; }
.demo-a-lista-orgao {
  font-family: var(--font-sans);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--musgo-mute);
  font-weight: 600;
  margin: 0 0 var(--space-1);
}
.demo-a-lista-titulo {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--musgo-soft);
  margin: 0 0 var(--space-2);
}
.demo-a-lista-conteudo {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--musgo-mute);
}
.demo-a-lista-conteudo p {
  margin: 0;
  text-align: justify;
  hyphens: auto;
}
.demo-a-lista-conteudo p:not(:first-child) { display: none; }

/* ============================================================
   RADAR DEMO B — Sidebar layout
   ============================================================ */
.demo-b-layout {
  max-width: 1280px;
  margin: 0 auto;
  padding: var(--space-12) var(--space-6);
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--space-12);
  align-items: start;
}
@media (max-width: 900px) {
  .demo-b-layout {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  .demo-b-sidebar {
    position: static;
    max-height: none;
  }
}

.demo-b-sidebar {
  position: sticky;
  top: 100px;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  border-right: 1px solid var(--musgo-line);
  padding-right: var(--space-6);
}

.demo-b-toc-label {
  font-family: var(--font-sans);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--bronze-deep);
  font-weight: 700;
  margin: 0 0 var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--bronze-alpha-30);
}

.demo-b-toc-section {
  display: block;
  font-family: var(--font-serif);
  font-size: 1rem;
  color: var(--musgo-deep);
  text-decoration: none;
  padding: var(--space-2) 0;
  margin-bottom: var(--space-3);
  border-left: 2px solid var(--bronze-deep);
  padding-left: var(--space-3);
  transition: color 200ms;
}
.demo-b-toc-section:hover { color: var(--bronze-deep); }

.demo-b-toc-group {
  font-family: var(--font-sans);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--musgo-mute);
  font-weight: 600;
  margin: var(--space-5) 0 var(--space-2);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.demo-b-toc-count {
  background: var(--bronze-alpha-20);
  color: var(--bronze-deep);
  padding: 1px 6px;
  border-radius: 10px;
  font-size: 9px;
}

.demo-b-toc-item {
  display: block;
  font-family: var(--font-serif);
  font-size: 0.85rem;
  line-height: 1.35;
  color: var(--musgo-soft);
  text-decoration: none;
  padding: var(--space-2) 0 var(--space-2) var(--space-3);
  border-left: 1px solid var(--musgo-line);
  transition: all 180ms;
  margin-bottom: 2px;
}
.demo-b-toc-item:hover {
  color: var(--bronze-deep);
  border-left-color: var(--bronze-deep);
}
.demo-b-toc-item--mute {
  color: var(--musgo-mute);
  font-style: italic;
}
.demo-b-toc-orgao {
  display: block;
  font-family: var(--font-sans);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin-bottom: 2px;
}

.demo-b-content {
  min-width: 0;
}
.demo-b-section {
  margin-bottom: var(--space-12);
  scroll-margin-top: 100px;
}
.demo-b-section .radar-item {
  scroll-margin-top: 100px;
}

/* ============================================================
   RADAR — JUSTIFICAÇÃO FORÇADA EM TODO TEXTO
   ============================================================ */

/* Resumo executivo (todas as variações) */
.radar-resumo p,
.radar-resumo,
.demo-a-resumo p,
.demo-a-resumo {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Item content (todas as variações) */
.radar-item-conteudo p,
.radar-item-conteudo,
.radar-item .radar-item-conteudo p,
.radar-item--destaque .radar-item-conteudo p,
.radar-item--decisao .radar-item-conteudo p,
.radar-item--observacao .radar-item-conteudo p {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Demo A — destaque, cards, lista */
.demo-a-conteudo p,
.demo-a-conteudo,
.demo-a-card-conteudo p,
.demo-a-card-conteudo,
.demo-a-lista-conteudo p,
.demo-a-lista-conteudo {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* Mobile — desliga em telas estreitas */
@media (max-width: 600px) {
  .radar-resumo p,
  .radar-item-conteudo p,
  .demo-a-resumo p,
  .demo-a-conteudo p,
  .demo-a-card-conteudo p,
  .demo-a-lista-conteudo p {
    text-align: left !important;
    hyphens: manual !important;
  }
}

/* ============================================================
   RADAR EDIÇÃO — layout oficial com sidebar (TOC sticky)
   Fontes maiores que as demos para melhor legibilidade
   ============================================================ */

.radar-edicao-layout {
  max-width: 1320px;
  margin: 0 auto;
  padding: var(--space-12) var(--space-6);
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: var(--space-12);
  align-items: start;
}
@media (max-width: 960px) {
  .radar-edicao-layout {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  .radar-edicao-sidebar {
    position: static !important;
    max-height: none !important;
  }
}

.radar-edicao-sidebar {
  position: sticky;
  top: 100px;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  border-right: 1px solid var(--musgo-line);
  padding-right: var(--space-8);
}

.radar-toc-label {
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--bronze-deep);
  font-weight: 700;
  margin: 0 0 var(--space-5);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--bronze-alpha-30);
}

.radar-toc-section {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--musgo-deep);
  text-decoration: none;
  padding: var(--space-3) 0 var(--space-3) var(--space-4);
  margin-bottom: var(--space-4);
  border-left: 2px solid var(--bronze-deep);
  transition: color 200ms;
}
.radar-toc-section:hover { color: var(--bronze-deep); }

.radar-toc-group {
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--musgo-mute);
  font-weight: 600;
  margin: var(--space-6) 0 var(--space-3);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.radar-toc-count {
  background: var(--bronze-alpha-20);
  color: var(--bronze-deep);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
}

.radar-toc-item {
  display: block;
  font-family: var(--font-serif);
  font-size: 1rem;
  line-height: 1.4;
  color: var(--musgo-soft);
  text-decoration: none;
  padding: var(--space-3) 0 var(--space-3) var(--space-4);
  border-left: 1px solid var(--musgo-line);
  transition: all 200ms;
  margin-bottom: 4px;
}
.radar-toc-item:hover {
  color: var(--bronze-deep);
  border-left-color: var(--bronze-deep);
  background: var(--marfim-soft);
}
.radar-toc-item--mute {
  color: var(--musgo-mute);
  font-style: italic;
}
.radar-toc-orgao {
  display: block;
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.20em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin-bottom: 4px;
  font-style: normal;
}

.radar-edicao-content {
  min-width: 0;
}
.radar-edicao-section {
  margin-bottom: var(--space-12);
  scroll-margin-top: 100px;
}
.radar-edicao-section .radar-item {
  scroll-margin-top: 100px;
}

/* ============================================================
   MATÉRIA — layout oficial com sidebar (TOC dos H2s)
   ============================================================ */

.materia-layout {
  max-width: 1320px;
  margin: 0 auto;
  padding: var(--space-10) var(--space-6) var(--space-16);
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: var(--space-12);
  align-items: start;
}
@media (max-width: 960px) {
  .materia-layout {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  .materia-sidebar {
    position: static !important;
    max-height: none !important;
    border-right: 0 !important;
    padding-right: 0 !important;
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--musgo-line);
  }
}

.materia-sidebar {
  position: sticky;
  top: 100px;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  border-right: 1px solid var(--musgo-line);
  padding-right: var(--space-8);
}

.materia-toc-label {
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--bronze-deep);
  font-weight: 700;
  margin: 0 0 var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--bronze-alpha-30);
}

.materia-toc-titulo {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  line-height: 1.25;
  font-weight: 500;
  color: var(--musgo-deep);
  text-decoration: none;
  padding: var(--space-3) 0 var(--space-4) var(--space-4);
  border-left: 2px solid var(--bronze-deep);
  margin-bottom: var(--space-4);
  letter-spacing: -0.01em;
  transition: color 200ms;
}
.materia-toc-titulo em {
  font-style: italic;
  color: var(--bronze-deep);
}
.materia-toc-titulo:hover { color: var(--bronze-deep); }

.materia-toc-group {
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--musgo-mute);
  font-weight: 600;
  margin: var(--space-6) 0 var(--space-3);
}

.materia-toc-item {
  display: block;
  font-family: var(--font-serif);
  font-size: 1rem;
  line-height: 1.4;
  color: var(--musgo-soft);
  text-decoration: none;
  padding: var(--space-3) 0 var(--space-3) var(--space-4);
  border-left: 1px solid var(--musgo-line);
  transition: all 200ms;
  margin-bottom: 4px;
}
.materia-toc-item:hover {
  color: var(--bronze-deep);
  border-left-color: var(--bronze-deep);
  background: var(--marfim-soft);
}

.materia-toc-back {
  display: block;
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 600;
  color: var(--bronze-deep);
  text-decoration: none;
  padding: var(--space-2) 0;
  transition: color 200ms;
}
.materia-toc-back:hover { color: var(--musgo-deep); }

.materia-content {
  min-width: 0;
  scroll-margin-top: 100px;
}

/* Ajusta artigo para caber dentro do main coluna */
.materia-content .article-header,
.materia-content .article-body,
.materia-content .article-praxis-note {
  max-width: 100%;
}
.materia-content .article-body h2 {
  scroll-margin-top: 100px;
}

/* ============================================================
   SITE HEADER — estabilização da transição ao rolar
   Suaviza animação, evita repaint excessivo e GPU-acelera
   ============================================================ */
.site-header {
  /* Indica ao navegador que esses props vão mudar — otimização preventiva */
  will-change: transform;
  /* Isolamento de layout — mudanças no header não recalculam o resto */
  contain: layout style;
}

.site-header .masthead {
  /* Transição mais curta (240ms) e curva mais natural */
  transition: padding 240ms cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
  will-change: padding;
}

.site-header .masthead-wordmark {
  transition: font-size 240ms cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
  will-change: font-size;
  /* Backface visibility hidden previne sub-pixel jittering */
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.site-header .masthead-subtitle,
.site-header .masthead-rule {
  transition: opacity 240ms ease, transform 240ms ease !important;
  will-change: opacity;
}

/* ============================================================
   LISTAGEM RAIZ — Observatório e Radar com sidebar
   ============================================================ */

.listagem-hero {
  padding: var(--space-12) 0 var(--space-10);
  border-bottom: 1px solid var(--musgo-line);
  background: var(--marfim-soft);
}
.listagem-hero-container {
  max-width: 980px;
  text-align: center;
}
.listagem-hero-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin: 0 0 var(--space-4);
}
.listagem-hero-titulo {
  font-family: var(--font-serif);
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--musgo-deep);
  margin: 0 0 var(--space-6);
}
.listagem-hero-titulo em {
  font-style: italic;
  color: var(--bronze-deep);
}
.listagem-hero-lede {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.55;
  color: var(--musgo-soft);
  max-width: 720px;
  margin: 0 auto;
  text-align: justify;
  hyphens: auto;
}

.listagem-layout {
  max-width: 1320px;
  margin: 0 auto;
  padding: var(--space-12) var(--space-6) var(--space-16);
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: var(--space-12);
  align-items: start;
}
@media (max-width: 960px) {
  .listagem-layout {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  .listagem-sidebar {
    position: static !important;
    max-height: none !important;
    border-right: 0 !important;
    padding-right: 0 !important;
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--musgo-line);
  }
}

.listagem-sidebar {
  position: sticky;
  top: 100px;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  border-right: 1px solid var(--musgo-line);
  padding-right: var(--space-8);
}

.listagem-toc-label {
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--bronze-deep);
  font-weight: 700;
  margin: 0 0 var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--bronze-alpha-30);
}
.listagem-toc-meta {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--musgo-soft);
  margin: 0 0 var(--space-5);
}
.listagem-toc-meta strong {
  color: var(--bronze-deep);
  font-style: normal;
  font-weight: 600;
}

.listagem-toc-group {
  font-family: var(--font-sans);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--musgo-mute);
  font-weight: 600;
  margin: var(--space-6) 0 var(--space-3);
}

.listagem-toc-pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}
.listagem-toc-pill {
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--musgo-line);
  background: transparent;
  color: var(--musgo-soft);
  cursor: pointer;
  border-radius: 2px;
  transition: all 200ms;
}
.listagem-toc-pill:hover {
  border-color: var(--bronze-deep);
  color: var(--bronze-deep);
}
.listagem-toc-pill.is-active {
  background: var(--musgo-deep);
  color: var(--marfim-soft);
  border-color: var(--musgo-deep);
}

.listagem-toc-item {
  display: block;
  text-decoration: none;
  padding: var(--space-3) 0 var(--space-3) var(--space-4);
  border-left: 1px solid var(--musgo-line);
  transition: all 200ms;
  margin-bottom: 4px;
}
.listagem-toc-item:hover {
  border-left-color: var(--bronze-deep);
  background: var(--marfim-soft);
}
.listagem-toc-orgao {
  display: block;
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.20em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin-bottom: 4px;
}
.listagem-toc-titulo {
  display: block;
  font-family: var(--font-serif);
  font-size: 0.98rem;
  line-height: 1.35;
  color: var(--musgo-deep);
  font-weight: 500;
}
.listagem-toc-titulo em {
  font-style: italic;
  color: var(--bronze-deep);
}
.listagem-toc-item:hover .listagem-toc-titulo {
  color: var(--bronze-deep);
}

.listagem-toc-editor {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-8);
  padding-top: var(--space-5);
  border-top: 1px solid var(--musgo-line);
}
.listagem-toc-editor-portrait {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid var(--musgo-line);
}
.listagem-toc-editor-label {
  font-family: var(--font-sans);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--bronze-deep);
  font-weight: 600;
  margin: 0 0 2px;
}
.listagem-toc-editor-name {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  line-height: 1.2;
  color: var(--musgo-deep);
  margin: 0;
}

.listagem-content {
  min-width: 0;
}
.listagem-empty {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--musgo-mute);
  text-align: center;
  padding: var(--space-12) 0;
}

/* ============================================================
   AJUSTE praxis-note — espaçamento mais respirado
   (também já corrigido o bug do --space-7 não definido)
   ============================================================ */
.article-praxis-note {
  margin: var(--space-10) 0 var(--space-6);
  padding: var(--space-6) var(--space-8);
}

/* ============================================================
   ARTICLE BODY HR — separador editorial centralizado
   Substitui o <hr> default do navegador por um ornamento sutil
   ============================================================ */
.article-body hr {
  border: 0;
  height: auto;
  margin: var(--space-8) auto;
  text-align: center;
  width: 60px;
  position: relative;
  display: block;
}
.article-body hr::before {
  content: "◆";
  display: block;
  color: var(--bronze-deep);
  font-size: 0.85rem;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  font-weight: 400;
}

/* ============================================================
   TÍTULOS — sempre left-align, nunca justificados
   Regra de ouro editorial: justificação só em prosa contínua.
   Em títulos curtos, justify cria gaps obscenos entre palavras.
   ============================================================ */

/* Headings em qualquer contexto do site */
h1, h2, h3, h4, h5, h6,
.article-title,
.article-body h1,
.article-body h2,
.article-body h3,
.article-body h4,
.article-body h5,
.article-body h6,
.article-dek,
.section-title,
.page-title,
.radar-item-titulo,
.radar-list-titulo,
.pub-card-title,
.featured-title,
.featured-aside-title,
.bio-name,
.lib-name,
.library-card-name,
.demo-a-titulo-grande,
.demo-a-card-titulo,
.editor-masthead-name,
.materia-toc-titulo,
.listagem-toc-titulo,
.listagem-hero-titulo,
.radar-hero-titulo {
  text-align: left !important;
  hyphens: manual !important;
  -webkit-hyphens: manual !important;
}

/* Exceções — manifesto e algumas seções centralizadas mantêm seu alinhamento original */
.manifesto-quote,
.radar-hero-titulo,
.listagem-hero-titulo {
  /* Estes têm regras próprias mais específicas que devem sobrescrever */
}

/* Ajuste explícito: o radar-hero-titulo é centralizado dramaticamente */
.radar-hero-titulo {
  text-align: center !important;
}
.listagem-hero-titulo {
  text-align: center !important;
}
.radar-hero-eyebrow,
.listagem-hero-eyebrow {
  text-align: center !important;
}
.radar-hero-data,
.radar-hero-cobertura {
  text-align: center !important;
}

/* Manifesto fica centralizado (a redação propriamente dita pode ficar justificada
   pois é um parágrafo de várias linhas) */
.manifesto-quote {
  text-align: center !important;
}
@media (min-width: 720px) {
  /* Em desktop, manifesto pode ser justificado — texto é longo o suficiente */
  .manifesto-quote {
    text-align: justify !important;
    text-align-last: center !important;  /* última linha centralizada */
  }
}

/* ============================================================
   LINHA EDITORIAL — discurso de fundação na página Sobre
   Bloco com peso institucional: tipografia serifa, recuo lateral
   bronze, espaçamento generoso. Leitura única do site.
   ============================================================ */
.linha-editorial {
  max-width: 820px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8);
  border-left: 3px solid var(--bronze-deep);
  background: var(--marfim-soft);
}
@media (max-width: 768px) {
  .linha-editorial {
    padding: var(--space-6);
  }
}
.linha-editorial-header {
  margin-bottom: var(--space-6);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--bronze-alpha-30);
}
.linha-editorial-eyebrow {
  font-family: var(--font-sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--bronze-deep);
  font-weight: 700;
  margin: 0 0 var(--space-3);
}
.linha-editorial-titulo {
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.5vw, 36px);
  font-weight: 500;
  line-height: 1.2;
  color: var(--musgo-deep);
  margin: 0;
  letter-spacing: -0.012em;
  text-align: left !important;
}
.linha-editorial-prose {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  line-height: 1.65;
  color: var(--musgo-deep);
}
.linha-editorial-prose p {
  margin: 0 0 var(--space-5);
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}
.linha-editorial-prose p:last-child {
  margin-bottom: 0;
  font-style: italic;
  color: var(--musgo-soft);
}

/* ============================================================
   PADRÃO DEFINITIVO — TÍTULO + LEDE EM HEADERS
   Regra editorial cardeal:
     · Título: centralizado (em page-header padrão e listagem-hero)
     · Lede:   block centralizado + TEXTO JUSTIFICADO
     · Em mobile: justify desligado (gaps em coluna estreita)
   ============================================================ */

/* PAGE HEADER (Atuação, Contato, Biblioteca etc) */
.page-header {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}
.page-header .page-eyebrow,
.page-header .page-title {
  text-align: center !important;
}
.page-header .page-lede {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* HERO da home */
.hero .hero-title,
section.hero .hero-title,
.hero-inner .hero-title {
  text-align: center !important;
}
.hero .hero-lede,
section.hero .hero-lede,
.hero-inner .hero-lede {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* LISTAGEM HERO (Observatório listing, Radar listing) */
.listagem-hero-eyebrow,
.listagem-hero-titulo {
  text-align: center !important;
}
.listagem-hero-lede {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* RADAR HERO (capa de cada edição) */
.radar-hero-eyebrow,
.radar-hero-titulo,
.radar-hero-data {
  text-align: center !important;
}
.radar-hero-cobertura {
  text-align: center !important;
}

/* Mobile: desliga justify (gaps em coluna estreita) */
@media (max-width: 600px) {
  .page-header .page-lede,
  .hero-lede,
  .listagem-hero-lede {
    text-align: left !important;
    hyphens: manual !important;
  }
}

/* ============================================================
   DEFESA EM CAMADAS — JUSTIFICAÇÃO POR DEFAULT
   Mecanismo permanente: toda prosa em áreas de conteúdo
   é justificada por default. Só fica non-justified com
   override explícito.
   ============================================================ */

/* CAMADA 1 — DEFAULT GLOBAL para prosa em áreas de conteúdo
   Todo <p> e <li> dentro de <main>, <article>, ou em containers
   editoriais conhecidos, é justificado automaticamente. */
main p,
main li,
article p,
article li,
.bio-prose p,
.radar-resumo p,
.radar-item-conteudo p,
.linha-editorial-prose p,
.article-body p,
.article-body li,
.library-intro p,
.library-disclaimer p {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* CAMADA 2 — EXCEÇÕES nominais (textos curtos não-prosa)
   Estes voltam ao alinhamento natural à esquerda. */
main figcaption,
main caption,
main .article-byline,
main .article-byline span,
main .pub-card-meta,
main .pub-card-meta span,
main .featured-meta,
main .footer-bottom,
main .article-figure-caption,
main .article-hero-credit {
  text-align: left;
  hyphens: manual;
}

/* CAMADA 3 — CABEÇALHOS sempre left-align (regra anterior preservada) */
main h1, main h2, main h3, main h4, main h5, main h6,
article h1, article h2, article h3, article h4, article h5, article h6 {
  text-align: left;
  hyphens: manual;
}

/* CAMADA 4 — DEK das matérias é PROSA (não título), forçar justify */
.article-dek,
.article-header .article-dek,
.materia-content .article-dek,
.article .article-dek,
.article-wrap .article-dek {
  text-align: justify !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

/* CAMADA 5 — OVERRIDES contextuais para centralizados (heroes)
   Estes sobrescrevem a regra global porque são casos especiais
   onde o design pede centralização. */
.hero-title,
.page-header .page-title,
.page-header .page-eyebrow,
.listagem-hero-titulo,
.listagem-hero-eyebrow,
.radar-hero-titulo,
.radar-hero-eyebrow,
.radar-hero-data,
.radar-hero-cobertura {
  text-align: center !important;
}

/* CAMADA 6 — MOBILE — desliga justify em colunas estreitas */
@media (max-width: 600px) {
  main p,
  main li,
  article p,
  article li,
  .article-dek,
  .bio-prose p,
  .radar-resumo p,
  .radar-item-conteudo p,
  .linha-editorial-prose p,
  .article-body p,
  .library-intro p,
  .library-disclaimer p,
  .page-lede,
  .hero-lede,
  .listagem-hero-lede {
    text-align: left !important;
    hyphens: manual !important;
  }
}
