/* =========================================================
   TEMA RODEADOR — paleta e tipografia da família visual
   (ouro / vinho / fundo quente; Playfair Display + Source Sans 3)
   Carregado DEPOIS de style.css; só redefine variáveis e ajustes.
   Para voltar ao visual anterior: remover o <link> deste arquivo.
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Source+Sans+3:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Archivo:ital,wdth,wght@0,95,400;0,95,500;0,95,600;0,95,700;0,100,800;1,95,400;1,95,600&display=swap');

:root {
  --paper:      #faf5ec;
  --paper-2:    #f2e9d8;
  --paper-3:    #e6d9c0;
  --ink:        #241d14;
  --ink-soft:   #3d3328;
  --ink-mute:   #5c5347;
  --gold:       #c8912f;
  --gold-deep:  #a6741f;
  --gold-vivo:  #e07f24;
  --terracotta: #8c2325;   /* vinho */
  --vinho:      #8c2325;
  --vinho-fundo:#4a1112;
  --moss:       #3d6b4f;
  --line:       #dccbb0;
  --card:       #fffdf8;

  --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:  'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
}

/* ---------- tipografia ---------- */
body { font-size: 16.5px; line-height: 1.62; }
h1,h2,h3,h4,.serif { font-weight: 500; letter-spacing: -.015em; line-height: 1.08; }
h1 em,h2 em,h3 em,h4 em { font-weight: 400; }
.eyebrow { font-weight: 600; letter-spacing: .2em; font-size: .68rem; }
.lead { font-size: 1.2rem; line-height: 1.6; }

/* Playfair é mais larga e pesada que a Cormorant: reduzir corpos grandes */
.hero__title { font-size: clamp(2.5rem, 6.8vw, 5.8rem); line-height: 1; letter-spacing: -.02em; max-width: 15ch;
  text-shadow: 0 2px 34px rgba(0,0,0,.45); }
.hero__title em { color: #ecc272; opacity: 1; }
.section__title { font-size: clamp(2rem, 4.6vw, 3.7rem); line-height: 1.06; }
.section__sub { font-size: 1.12rem; }
.card__title { font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.15; }
.card--featured .card__title { font-size: clamp(1.6rem, 2.7vw, 2.3rem); }
.citycard__name { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.stat__num { font-size: 2.7rem; }
.quote-band p { font-size: clamp(1.5rem, 3.2vw, 2.4rem); line-height: 1.35; }
.modal__title { font-size: clamp(1.4rem, 2.6vw, 2.1rem); }
.vinfo__title { font-size: 1.7rem; }
.brand__text { font-weight: 600; }
.brand__mark { font-weight: 700; }
.nav__menu { font-size: .88rem; letter-spacing: .04em; font-weight: 500; }
.btn { font-weight: 600; letter-spacing: .14em; }

/* ---------- cor: superfícies escuras e realces ---------- */
.nav { background: rgba(250,245,236,.88); }
.hero__overlay { background: linear-gradient(180deg, rgba(36,29,20,.38) 0%, rgba(36,29,20,.12) 38%, rgba(36,29,20,.84) 100%); }
.hero__media--gradient {
  background:
    radial-gradient(ellipse 60% 70% at 70% 30%, rgba(200,145,47,.35), transparent 70%),
    radial-gradient(ellipse 80% 60% at 20% 80%, rgba(140,35,37,.55), transparent 60%),
    linear-gradient(160deg, #2a1410 0%, #4a1112 40%, #6e2a1c 70%, #8c4b2a 100%);
}
.quote-band { background: var(--vinho-fundo); }
.quote-band cite { color: var(--gold); }
.footer { background: #1f140f; }
.citycard::after { background: linear-gradient(180deg, transparent 30%, rgba(36,20,14,.88)); }
.card__badge--soon, .citycard--soon .citycard__body::before { background: rgba(140,35,37,.9); }

/* botões: primário vinho, hover ouro vivo */
.btn--primary { background: var(--vinho); border-color: var(--vinho); color: #fffdf8;
  box-shadow: 0 6px 20px rgba(140,35,37,.22); }
.btn--primary:hover { background: var(--gold-vivo); border-color: var(--gold-vivo); box-shadow: 0 10px 28px rgba(224,127,36,.35); }
.hero .btn--primary { background: var(--gold-vivo); border-color: var(--gold-vivo); }
.hero .btn--primary:hover { background: #fffdf8; color: var(--vinho); border-color: #fffdf8; }
::selection { background: var(--gold-vivo); color: #fffdf8; }

/* cartões sobre fundo quente */
.card__media { filter: none; background-color: var(--paper-3); }
.citycard__media { filter: none; }
.card a:hover .card__title { color: var(--vinho); }
.card__cta { border-bottom-color: var(--vinho); }

/* viewer: marcadores com a nova paleta */
.ohs--scene .ohs__pin { background: rgba(200,145,47,.96); }
.ohs--video .ohs__pin { background: rgba(140,35,37,.94); color: #f6d7c9; }
.ohs--scene .ohs__pin { box-shadow: 0 3px 18px rgba(200,145,47,.6), 0 0 0 4px rgba(13,12,11,.25); }
.vhint { border-color: rgba(200,145,47,.45); }
.navcue { border-color: rgba(200,145,47,.6); }
.navcue__arrow { color: #241d14; }
.modal__close:hover, .vinfo__close:hover { background: var(--vinho); color: #fffdf8; }
.modal__box--info { border-top-color: var(--gold); }

/* mapa: mantém ouro nos pinos; cluster com texto escuro */
.mapcluster { color: #241d14; }
.mapitem__cat em { color: var(--vinho); }

/* ---------- vídeo de fundo no hero (usado onde houver data-hero-video) ---------- */
.hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
  opacity: 0; transition: opacity 1.2s ease; }
.hero--video-ready .hero__video { opacity: 1; }
.hero--video-ready .hero__media--fallback { opacity: 0; }

/* ---------- vídeo do patrimônio vivo (home) ---------- */
.vivo-video { grid-column: 1; margin: 0 0 var(--c-5); position: relative; overflow: hidden;
  border: 1px solid var(--line); background: #1f140f; }
.vivo-video video { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; background: #1f140f; }
.vivo-video__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.1rem 1.3rem;
  background: linear-gradient(transparent, rgba(31,20,15,.88)); color: var(--paper); font-size: .9rem; margin: 0; }
.vivo-video__cap .eyebrow { display: block; color: var(--gold); margin-bottom: .25rem; }
@media (max-width: 700px) {
  .vivo-video video { aspect-ratio: 9/16; max-height: 72vh; }
}

/* ---------- faixa "patrimônio vivo" (home) ---------- */
.vivo-band { background: var(--vinho-fundo); color: var(--paper); }
.vivo-band .section__num, .vivo-band .card__cat { color: var(--gold); }
.vivo-band .section__sub, .vivo-band .card__desc { color: rgba(250,245,236,.72); }
.vivo-band .card__cta { border-bottom-color: var(--gold); color: var(--paper); }

@media (max-width: 600px) {
  .hero__title { font-size: 2.5rem; }
  body { font-size: 16px; }
}

/* ---------- v2: cartões menores, mais colunas, largura útil maior (só desktop) ---------- */
@media (min-width: 961px) {
  :root { --max-w: 1440px; }
  .section:not(.section--full) { grid-template-columns: 56px 1fr; }
  .grid { grid-template-columns: repeat(8, 1fr); gap: var(--c-5) var(--c-3); }
  .card { grid-column: span 2; }
  .card--featured { grid-column: span 4; }
  .card__media { aspect-ratio: 4/3; }
  .card--featured .card__media { aspect-ratio: 16/9; }
  .card__body { padding-top: 1rem; }
  .card__cat { font-size: .64rem; margin-bottom: .55rem; }
  .card__title { font-size: clamp(1.1rem, 1.45vw, 1.4rem); margin-bottom: .5rem; }
  .card--featured .card__title { font-size: clamp(1.4rem, 2vw, 1.9rem); }
  .card__desc { font-size: .9rem; line-height: 1.5; margin-bottom: .9rem;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .card--featured .card__desc { -webkit-line-clamp: 4; }
  .card__cta { font-size: .68rem; }
  .cities { grid-template-columns: repeat(3, 1fr); gap: var(--c-3); }
  .citycard { min-height: 300px; }
  .citycard__body { padding: var(--c-3); }
  .citycard__name { font-size: clamp(1.4rem, 1.9vw, 1.9rem); margin: .3rem 0 .4rem; }
  .citycard__meta { font-size: .8rem; }
  .citycard__cta { margin-top: var(--c-2); font-size: .66rem; }
  .stats { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 961px) and (max-width: 1240px) {
  .grid { grid-template-columns: repeat(6, 1fr); }
  .cities { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- v3: faixas de cor, prosa em duas colunas, bloco Ouro Preto ---------- */
.band { width: 100%; }
.band--vinho { background: var(--vinho-fundo); color: var(--paper); }
.band--vinho .section__title, .band--vinho h3, .band--vinho .card__title { color: var(--paper); }
.band--vinho .section__sub { color: rgba(250,245,236,.78); }
.band--vinho .section__num { color: var(--gold); border-top-color: rgba(250,245,236,.25); }
.band--vinho .card__cat { color: var(--gold); }
.band--vinho .card__desc { color: rgba(250,245,236,.72); }
.band--vinho .card__cta { color: var(--paper); border-bottom-color: var(--gold); }
.band--vinho .card a:hover .card__title { color: #ecc272; }
.band--vinho .btn--ghost { border-color: rgba(250,245,236,.55); color: var(--paper); }
.band--vinho .btn--ghost:hover { background: var(--paper); color: var(--vinho); border-color: var(--paper); }
.band--vinho .btn--primary { background: var(--gold-vivo); border-color: var(--gold-vivo); }
.band--laranja { background: var(--gold-vivo); color: #2a1410; }
.band--laranja .section__title, .band--laranja h3 { color: #2a1410; }
.band--laranja .section__sub { color: rgba(42,20,16,.8); }
.band--laranja .section__num { color: #2a1410; border-top-color: rgba(42,20,16,.3); }
.band--laranja .btn--primary { background: var(--vinho-fundo); border-color: var(--vinho-fundo); }
.band .section { opacity: 1; transform: none; }
.op-sub { grid-column: 1; font-family: var(--serif); font-weight: 500; font-size: clamp(1.4rem, 2vw, 1.9rem); margin: var(--c-4) 0 var(--c-3); padding-top: var(--c-3); border-top: 1px solid rgba(250,245,236,.18); display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.op-sub a { font-family: var(--sans); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); border-bottom: 1px solid var(--gold); padding-bottom: .15rem; }
.op-roteiros { grid-column: 1; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.op-roteiros a { font-size: .8rem; padding: .5rem .9rem; border: 1px solid rgba(250,245,236,.3); color: var(--paper); transition: all .2s; }
.op-roteiros a:hover { background: var(--gold); border-color: var(--gold); color: #2a1410; }
.op-cta { grid-column: 1; display: flex; gap: 1rem; flex-wrap: wrap; margin-top: var(--c-5); }
.op-lead { grid-column: 1; max-width: 80ch; font-size: 1.05rem; line-height: 1.6; color: rgba(250,245,236,.85); margin-bottom: var(--c-2); }
@media (min-width: 961px) {
  .section:not(.section--full) .section__body,
  .section__body.edu-p, .section__body.leg-intro { max-width: none; columns: 2; column-gap: var(--c-5); }
  .section__body p { break-inside: avoid; }
  .section__body p + p { margin-top: 0; }
  .section__body p { margin-bottom: 1.1rem; }
  .section__body > .leg-toc, .section__body > nav { column-span: all; }
  .op-grid { grid-template-columns: repeat(10, 1fr); }
  .op-grid .card { grid-column: span 2; }
}
.citycard__meta { flex-wrap: wrap; gap: .3rem .9rem; }
.citycard__meta > * { white-space: nowrap; }


/* =========================================================
   v5 — IDENTIDADE VIVA: menos creme, mais cor, título em grotesca
   (o serif Playfair passa a ser acento, não a voz principal)
   Para voltar: copiar tema.css.v4 sobre tema.css.
   ========================================================= */
:root {
  /* superfícies mais limpas; o creme vira acento, não fundo geral */
  --paper:      #f7f6f3;
  --paper-2:    #ece8e1;
  --paper-3:    #ddd7cc;
  --creme:      #faf5ec;
  --card:       #ffffff;
  --line:       #e3ded4;
  --ink:        #1d1a16;
  --ink-soft:   #3a342c;
  --ink-mute:   #5f594e;
  /* acentos mais vivos */
  --gold-vivo:  #e8761a;
  --gold:       #c8912f;
  --vinho:      #9a2226;
  --vinho-fundo:#3f0f12;
  --moss:       #2f6b4d;
  --azul:       #2f5d7c;
  --display: 'Archivo', 'Source Sans 3', system-ui, sans-serif;
  --r: 14px;
  --r-sm: 10px;
}
body { background: var(--paper); font-size: 16.5px; }

/* ---------- tipografia: grotesca nos títulos, serif como acento ---------- */
h1, h2, h3, h4,
.hero__title, .section__title, .card__title, .citycard__name,
.modal__title, .vinfo__title, .stat__num, .brand__text, .op-sub, .tema__t {
  font-family: var(--display);
  font-weight: 700;
  letter-spacing: -.028em;
  line-height: 1.04;
  font-stretch: 95%;
}
.hero__title { font-weight: 800; font-stretch: 100%; letter-spacing: -.035em;
  font-size: clamp(2.6rem, 7vw, 6rem); max-width: 16ch; }
/* o serif sobrevive como itálico de destaque dentro dos títulos */
.hero__title em, .section__title em, .card__title em, h2 em, h3 em {
  font-family: var(--serif); font-style: italic; font-weight: 500; letter-spacing: -.01em; }
.section__title { font-size: clamp(1.9rem, 4.2vw, 3.3rem); }
.section__sub { font-size: 1.1rem; color: var(--ink-mute); font-style: normal; }
.quote-band p { font-family: var(--serif); font-style: italic; }
.eyebrow, .card__cat, .btn, .nav__menu, .citycard__cta, .card__cta {
  font-family: var(--display); font-weight: 600; }
.eyebrow { letter-spacing: .18em; }
.nav__menu { font-size: .86rem; letter-spacing: .01em; font-weight: 600; }

/* numeração das seções: pastilha colorida em vez de numeral serifado */
.section__num {
  font-family: var(--display); font-style: normal; font-weight: 700; font-size: .72rem;
  letter-spacing: .1em; color: #fff; background: var(--vinho);
  width: 2.1rem; height: 2.1rem; border-radius: 999px;
  display: inline-grid; place-items: center; border-top: 0 !important; padding: 0;
}
.band--vinho .section__num { background: var(--gold-vivo); color: #2a1410; }
.band--laranja .section__num { background: var(--vinho-fundo); color: #fff; }

/* ---------- formas: cantos suaves, sombras leves, movimento ---------- */
.card, .citycard, .tema, .stat, .modal__box, .vinfo, .dl__item, .mm__node, .acc, details.acc {
  border-radius: var(--r); }
.card { background: var(--card); overflow: hidden; box-shadow: 0 1px 2px rgba(29,26,22,.06);
  transition: transform .22s ease, box-shadow .22s ease; }
.card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(29,26,22,.14); }
.card__media, .citycard__media { border-radius: 0; }
.card__cat { color: var(--gold-vivo); letter-spacing: .12em; }
.band--vinho .card { background: rgba(255,255,255,.06); box-shadow: none; }
.btn { border-radius: 999px; padding-inline: 1.5rem; letter-spacing: .1em; }
.btn--primary { box-shadow: 0 8px 22px rgba(154,34,38,.25); }
.op-roteiros a, .chip, .filtro, .rot__bncc span { border-radius: 999px; }
.op-roteiros a { font-family: var(--display); font-weight: 600; font-size: .78rem; }
.op-sub { font-family: var(--display); font-weight: 700; letter-spacing: -.02em; }
.tema { border-radius: var(--r); border-top-width: 6px; }
.tema__t { font-weight: 700; letter-spacing: -.02em; }
.tema__n { font-family: var(--display); font-style: normal; font-weight: 700; letter-spacing: .08em; font-size: .72rem; }

/* ---------- superfícies: alternar branco e cor, menos creme corrido ---------- */
.nav { background: rgba(247,246,243,.9); border-bottom: 1px solid var(--line); }
.band--creme { background: var(--creme); }
.section--full + .section--full { background: transparent; }
.dl__item { background: var(--card); border-top: 0; border-left: 4px solid var(--gold-vivo);
  padding: 1.1rem 1.2rem; margin-bottom: .6rem; box-shadow: 0 1px 2px rgba(29,26,22,.05); }
.leg { border-radius: var(--r); background: var(--card); padding: 1.1rem 1.2rem;
  border-left: 4px solid var(--azul); box-shadow: 0 1px 2px rgba(29,26,22,.05); }
.leg__title { font-family: var(--display); font-weight: 700; letter-spacing: -.02em; }
.leg__meta { color: var(--gold-vivo); font-family: var(--display); font-weight: 600; }
details.acc { background: var(--card); box-shadow: 0 1px 2px rgba(29,26,22,.05); }
details.acc > summary .n { font-family: var(--display); font-style: normal; font-weight: 800;
  color: #fff; background: var(--vinho); border-radius: 999px; width: 2rem; height: 2rem;
  display: grid; place-items: center; font-size: .9rem; }
details.acc > summary .ico { border-radius: 999px; }
.mm__node { border-radius: var(--r-sm); font-family: var(--display); font-weight: 700; letter-spacing: -.015em; }
.etapas .etapa, .fld { border-radius: var(--r-sm); }

/* ---------- hero: mais contraste de cor, menos névoa ---------- */
.hero__media--gradient {
  background:
    radial-gradient(ellipse 55% 65% at 75% 25%, rgba(232,118,26,.5), transparent 68%),
    radial-gradient(ellipse 75% 60% at 18% 82%, rgba(154,34,38,.62), transparent 62%),
    linear-gradient(155deg, #23100d 0%, #3f0f12 42%, #8c3a1e 78%, #e8761a 100%);
}
.hero__title em { color: #ffc46b; }

/* ---------- prosa: duas colunas continuam, mas com respiro ---------- */
.section__body p { color: var(--ink-soft); }

@media (max-width: 600px) {
  .hero__title { font-size: 2.4rem; letter-spacing: -.03em; }
}

/* v5.1 — ajustes de leitura e ocupação lateral */
.section__sub, .op-lead, .hero__lead, .lead { font-family: var(--sans); font-style: normal; }
.section__sub { font-size: 1.06rem; line-height: 1.55; max-width: 62ch; }
.leg__meta, .card__cat, .eyebrow { text-transform: uppercase; }
.section__title { font-size: clamp(1.8rem, 3.2vw, 2.7rem); }
.section__title::after { content: ''; display: block; width: 64px; height: 6px; border-radius: 99px;
  background: var(--gold-vivo); margin-top: .9rem; }
.band--laranja .section__title::after { background: var(--vinho-fundo); }
.band--vinho .section__title::after { background: var(--gold-vivo); }
@media (min-width: 961px) {
  .section__head { display: grid; grid-template-columns: 1.15fr 1fr; gap: var(--c-5); align-items: end; }
  .section__head .section__title { margin-bottom: 0; }
  .section__head .section__sub { max-width: 46ch; padding-bottom: .35rem; }
}

/* v5.2 — vence o CSS embutido das páginas (educação, legislação): grotesca nos títulos internos */
body .tema .tema__t, body .tema .tema__n,
body .mm .mm__node, body .mm__panel .mm__panel-in h3,
body .dl .dl__item h3, body .leg .leg__title,
body details.acc > summary .t, body details.acc > summary .n,
body .rot .rot__nome, body .etapas .etapa h3, body .acc__body h4 {
  font-family: var(--display) !important;
  font-style: normal;
  font-weight: 700;
  letter-spacing: -.022em;
}
body .tema .tema__n, body details.acc > summary .n { font-weight: 800; letter-spacing: .06em; }
body details.acc > summary .t { font-weight: 700; }
body details.acc > summary .t small { font-family: var(--sans) !important; font-weight: 400; letter-spacing: 0; }
body .mm .mm__node { letter-spacing: -.01em; }

/* v5.3 — celular: contraste no hero, listas mais curtas, menos vazio */
@media (max-width: 760px) {
  .hero__overlay { background: linear-gradient(180deg, rgba(25,17,12,.62) 0%, rgba(25,17,12,.42) 32%, rgba(25,17,12,.9) 100%); }
  .hero__scroll { display: none; }
  .hero__title { font-size: clamp(2.1rem, 9vw, 2.9rem); max-width: 100%; }
  .hero__lead { font-size: 1rem; }
  .hero__actions { gap: .6rem; }
  .hero__actions .btn { width: 100%; justify-content: center; text-align: center; }
  .brand__text { font-size: 1rem; }
  /* nas listas longas do bloco Ouro Preto, mostrar as primeiras e remeter ao "todas as fichas" */
  .op-grid .card:nth-child(n+5) { display: none; }
  .op-sub { margin: var(--c-3) 0 var(--c-2); padding-top: var(--c-2); }
  .op-sub a { font-size: .64rem; }
  .section__head { margin-bottom: var(--c-2); }
  .section__title::after { width: 48px; height: 5px; margin-top: .7rem; }
  .section__num { width: 1.9rem; height: 1.9rem; font-size: .66rem; }
  .temas { gap: .7rem; }
  .tema { padding: .85rem .9rem 1rem; min-height: 0; }
  .tema__p { font-size: .76rem; }
  .mm { gap: .5rem; }
  .mm__panel { min-height: 0; }
}
/* mapa mental no celular: já vem com a primeira resposta aberta */
.mm__panel:not(:has(.is-on)) .mm__panel-in[data-for="bem"] { display: block; }
@media (max-width: 760px) { .tema__p { margin-top: .35rem; } }

/* v5.5 — respiro interno dos cartões (o fundo branco exige margem que antes não existia) */
.card__body { padding: 1.05rem 1.15rem 1.3rem; }
.card--featured .card__body { padding: 1.3rem 1.5rem 1.6rem; }
@media (min-width: 961px) { .card__body { padding: 1rem 1.1rem 1.2rem; } }
.band--vinho .card__body { padding: 1.05rem 1.15rem 1.3rem; }
.mm__panel-in { padding: 1.2rem 1.4rem 1.3rem; }
.acc__body { padding: 1.2rem 1.4rem 1.5rem; }
.dl__item { padding: 1.15rem 1.3rem 1.25rem; }
.leg { padding: 1.15rem 1.3rem 1.25rem; }
.tema { padding: 1rem 1.15rem 1.15rem; }
@media (max-width: 760px) {
  .card__body { padding: .95rem 1.05rem 1.15rem; }
  .tema { padding: .9rem 1rem 1rem; }
  .dl__item, .leg { padding: 1rem 1.1rem 1.1rem; }
}

/* v5.5 — atalho flutuante para o índice de temas, só no celular */
.toindex { display: none; }
@media (max-width: 760px) {
  .toindex { display: inline-flex; align-items: center; gap: .4rem; position: fixed;
    right: 14px; bottom: 16px; z-index: 900; background: var(--vinho); color: #fff;
    font-family: var(--display); font-weight: 700; font-size: .72rem; letter-spacing: .1em;
    text-transform: uppercase; padding: .7rem 1.05rem; border-radius: 999px;
    box-shadow: 0 8px 22px rgba(0,0,0,.3); text-decoration: none; }
  .toindex:active { background: var(--gold-vivo); color: #2a1410; }
}

/* v5.6 — vence o CSS embutido: respiro interno das listas de fichas e de documentos */
body .dl .dl__item {
  background: var(--card); border-top: 0; border-left: 4px solid var(--gold-vivo);
  border-radius: var(--r); padding: 1.15rem 1.3rem 1.25rem; margin-bottom: .6rem;
  box-shadow: 0 1px 2px rgba(29,26,22,.05);
}
body .leg-list .leg {
  background: var(--card); border-top: 0; border-left: 4px solid var(--azul);
  border-radius: var(--r); padding: 1.15rem 1.3rem 1.25rem; margin-bottom: .6rem;
  box-shadow: 0 1px 2px rgba(29,26,22,.05);
}
body .leg-list { border-top: 0; }
body details.acc .acc__body { padding: .4rem 1.4rem 1.5rem; }
@media (max-width: 760px) {
  body .dl .dl__item, body .leg-list .leg { padding: 1rem 1.1rem 1.1rem; }
  body details.acc .acc__body { padding: .3rem 1.1rem 1.2rem; }
}

/* v5.7 — medida de leitura nos percursos e etiquetas em pastilha */
@media (min-width: 1100px) {
  body .acc__body > p { max-width: 96ch; }
  body .acc__body ol, body .acc__body .fld > ul { columns: 2; column-gap: var(--c-5); }
  body .acc__body ol > li, body .acc__body .fld > ul > li { break-inside: avoid; margin-bottom: .9rem; }
  body .acc__body .fld > p { max-width: 96ch; }
}
body .acc__body .tags span, body .tags span, body .rot__bncc span {
  border-radius: 999px; padding: .28rem .7rem; background: var(--paper-2);
  border: 1px solid var(--line); font-family: var(--display); font-weight: 600;
  font-size: .68rem; letter-spacing: .04em;
}
body .acc__body .lbl, body .fld .lbl { font-family: var(--display); font-weight: 700; letter-spacing: .14em; }
@media (max-width: 760px) { .footer { padding-bottom: 5.5rem; } }

/* v5.8 — etiqueta das fichas de patrimônio vivo (sem tour 360°) */
.card__badge--ficha { background: var(--gold-vivo); color: #2a1410; font-family: var(--display); font-weight: 700; letter-spacing: .1em; border-radius: 999px; }

/* v5.9 — blocos dentro da prosa em duas colunas ocupam a largura inteira */
@media (min-width: 961px) {
  .section__body .etapas, .section__body .grid, .section__body .temas, .section__body .mm,
  .section__body .dl, .section__body .leg-list, .section__body .nota, .section__body .note,
  .section__body figure, .section__body .two, .section__body .fontes { column-span: all; }
  .etapas { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--c-3); align-items: stretch; }
  .etapas > * { min-width: 0; }
}

/* v5.9 — prosa justificada com hifenizacao (pt-BR) */
.section__body p, .acc__body p, .acc__body li, .mm__panel-in p, .dl__item p,
.leg p, .leg__desc, .etapas p, .op-lead, .rot p, .fld p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.mm__panel-in p.mm__q, .section__body p.mm__q { text-align: left; }

/* v5.10 — corrige: secoes que contem blocos (etapas, grades, mapa) nao entram em duas colunas */
@media (min-width: 961px) {
  .section__body .etapas, .section__body .grid, .section__body .temas, .section__body .mm,
  .section__body .dl, .section__body .leg-list, .section__body .nota, .section__body .note,
  .section__body figure, .section__body .two, .section__body .fontes { column-span: none; }
  .section__body:has(.etapas), .section__body:has(.grid), .section__body:has(.temas),
  .section__body:has(.mm), .section__body:has(.dl), .section__body:has(.leg-list) {
    columns: auto !important;
  }
  .section__body:has(.etapas) > p, .section__body:has(.grid) > p,
  .section__body:has(.mm) > p, .section__body:has(.dl) > p { max-width: 92ch; }
  .etapas { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: var(--c-3); }
}

/* v5.11 — em secoes com coluna de numeracao, todo bloco filho vai para a coluna de conteudo */
@media (min-width: 961px) {
  .section:not(.section--full) > * { grid-column: 2; }
  .section:not(.section--full) > .section__num { grid-column: 1; }
}
/* v5.11b — colunas estreitas nao justificam (evita rios de espaco) */
.etapas p, .etapas .etapa p, .card__desc, .tema__p, .mm__node, .op-roteiros a { text-align: left; hyphens: manual; }
/* v5.12 — mapa do patrimonio agora tem seis colunas */
@media (min-width: 961px) { body .mm { grid-template-columns: repeat(6, 1fr) !important; } }
/* v5.13 — paineis do mapa ocupam a largura do bloco */
@media (min-width: 961px) { body .mm__panel-in p { max-width: none !important; } }
/* v5.14 — no celular a coluna e estreita demais para justificar */
@media (max-width: 760px) {
  .section__body p, .acc__body p, .acc__body li, .mm__panel-in p, .dl__item p,
  .leg p, .leg__desc, .op-lead, .rot p, .fld p { text-align: left; }
}
