/* =========================================================================
   Maciel Neto Advocacia - folha unica do tema.

   Organizacao:
   1. Fichas (variaveis)      7. (vago - ver 11)
   2. Base e tipografia       8. Paginas do tema (prosa, artigos, 404)
   3. Regua e seccoes         9. Flutuantes
   4. Botoes e ligacoes      10. Impressao e movimento reduzido
   5. Cabecalho e navegacao  11. Elementor
   6. Rodape               12. Navegacao das paginas internas
                           13. Blog (listagem e artigo)

   As seccoes 1 a 10 vestem o que e do tema: cabecalho, rodape, e as
   paginas que nao passam pelo construtor. A seccao 11 veste o corpo das
   paginas, que e todo Elementor. Editar o conteudo no Elementor nao
   estraga o desenho porque o desenho vive aqui, nao la.
   ========================================================================= */

/* 1. Fichas ------------------------------------------------------------- */

:root {
  /* As cores sao as do site anterior, medidas na pagina no ar. */
  --mn-espresso:      #291B14;
  --mn-espresso-alto: #1C120D;
  --mn-espresso-med:  #3A2820;
  --mn-vinho:         #762D2D;
  --mn-vinho-claro:   #8F3A3A;
  --mn-tijolo:        #A93B36;   /* o vermelho da logo */
  --mn-dourado:       #C78738;
  --mn-dourado-claro: #DCA55C;
  --mn-creme:         #F8F5F1;
  --mn-creme-fundo:   #EFE9E2;
  --mn-branco:        #FFFFFF;
  --mn-tinta:         #291B14;
  --mn-tinta-media:   #5A463C;
  --mn-tinta-suave:   #756157;
  --mn-linha:         #E0D6D1;
  --mn-linha-escura:  rgba(248, 245, 241, .14);

  --mn-serifada:  'Playfair Display', 'Times New Roman', Georgia, serif;
  --mn-sem-serifa: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;

  /* Escala medida em linhas, nao em tamanhos soltos. */
  --mn-t-micro: .75rem;
  --mn-t-mini:  .8125rem;
  --mn-t-peq:   .9375rem;
  --mn-t-base:  1.0625rem;
  --mn-t-med:   1.1875rem;
  --mn-t-gr:    1.5rem;
  --mn-t-h3:    clamp(1.25rem, 1.05rem + .85vw, 1.625rem);
  --mn-t-h2:    clamp(1.75rem, 1.35rem + 1.85vw, 2.75rem);
  --mn-t-h1:    clamp(2.125rem, 1.55rem + 2.7vw, 3.75rem);

  --mn-regua:   1200px;
  --mn-gutter:  20px;
  --mn-raio:    3px;
  --mn-raio-gr: 6px;

  --mn-sombra:    0 1px 2px rgba(41, 27, 20, .05), 0 8px 24px rgba(41, 27, 20, .07);
  --mn-sombra-gr: 0 2px 4px rgba(41, 27, 20, .06), 0 18px 48px rgba(41, 27, 20, .13);

  --mn-altura-cabecalho: 76px;
  --mn-transicao: 220ms cubic-bezier(.22, .61, .36, 1);
}

/* 2. Base e tipografia -------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--mn-altura-cabecalho) + 16px);
}

body {
  margin: 0;
  background: var(--mn-branco);
  color: var(--mn-tinta);
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-base);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.mn-travado { overflow: hidden; }

h1, h2, h3, h4 {
  font-family: var(--mn-serifada);
  font-weight: 600;
  line-height: 1.16;
  letter-spacing: -.012em;
  color: var(--mn-tinta);
  margin: 0 0 .5em;
  text-wrap: balance;
}

h1 { font-size: var(--mn-t-h1); }
h2 { font-size: var(--mn-t-h2); }
h3 { font-size: var(--mn-t-h3); }
h4 { font-size: var(--mn-t-med); }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

a { color: var(--mn-vinho); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--mn-tijolo); }

img, svg, video { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 1.15em; padding-left: 1.25em; }
li { margin-bottom: .35em; }

strong { font-weight: 600; }
em { font-style: italic; }

hr { border: 0; border-top: 1px solid var(--mn-linha); margin: 2.5rem 0; }

:focus-visible {
  outline: 2px solid var(--mn-dourado);
  outline-offset: 3px;
  border-radius: 2px;
}

::selection { background: var(--mn-dourado); color: var(--mn-espresso); }

.mn-saltar {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
  background: var(--mn-espresso);
  color: var(--mn-creme);
  padding: 12px 20px;
  font-size: var(--mn-t-peq);
}
.mn-saltar:focus { left: 8px; top: 8px; }

/* 3. Regua e seccoes ---------------------------------------------------- */

.mn-regua {
  width: 100%;
  max-width: var(--mn-regua);
  margin-inline: auto;
  padding-inline: var(--mn-gutter);
}

.mn-regua--estreita { max-width: 760px; }
.mn-regua--media    { max-width: 960px; }

.mn-sec { padding-block: clamp(3.5rem, 2.4rem + 4.6vw, 6.5rem); }
.mn-sec--curta { padding-block: clamp(2.5rem, 1.9rem + 2.6vw, 4rem); }

.mn-sec--creme   { background: var(--mn-creme); }
.mn-sec--areia   { background: var(--mn-creme-fundo); }
.mn-sec--escuro  { background: var(--mn-espresso); color: rgba(248, 245, 241, .82); }
.mn-sec--vinho   { background: var(--mn-vinho); color: rgba(255, 255, 255, .86); }

.mn-sec--escuro h1, .mn-sec--escuro h2, .mn-sec--escuro h3, .mn-sec--escuro h4,
.mn-sec--vinho h1, .mn-sec--vinho h2, .mn-sec--vinho h3, .mn-sec--vinho h4 {
  color: var(--mn-creme);
}

/* 4. Botoes e ligacoes -------------------------------------------------- */

.mn-botao:not(.elementor-element) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-peq);
  font-weight: 600;
  letter-spacing: .015em;
  line-height: 1.2;
  padding: 14px 26px;
  min-height: 46px;
  border: 1px solid transparent;
  border-radius: var(--mn-raio);
  text-decoration: none;
  cursor: pointer;
  transition: background var(--mn-transicao), color var(--mn-transicao),
              border-color var(--mn-transicao), transform var(--mn-transicao);
}

.mn-botao--cheio:not(.elementor-element) {
  background: var(--mn-vinho);
  color: var(--mn-branco);
  border-color: var(--mn-vinho);
}
.mn-botao--cheio:not(.elementor-element):hover {
  background: var(--mn-vinho-claro);
  border-color: var(--mn-vinho-claro);
  color: var(--mn-branco);
  transform: translateY(-1px);
}

.mn-botao--ouro:not(.elementor-element) {
  background: var(--mn-dourado);
  color: var(--mn-espresso);
  border-color: var(--mn-dourado);
}
.mn-botao--ouro:not(.elementor-element):hover {
  background: var(--mn-dourado-claro);
  border-color: var(--mn-dourado-claro);
  color: var(--mn-espresso);
  transform: translateY(-1px);
}

.mn-botao--contorno:not(.elementor-element) {
  background: transparent;
  color: var(--mn-vinho);
  border-color: var(--mn-linha);
}
.mn-botao--contorno:not(.elementor-element):hover {
  border-color: var(--mn-vinho);
  color: var(--mn-vinho);
  background: rgba(118, 45, 45, .04);
}

.mn-sec--escuro .mn-botao--contorno:not(.elementor-element),
.mn-sec--vinho .mn-botao--contorno:not(.elementor-element) {
  color: var(--mn-creme);
  border-color: rgba(248, 245, 241, .35);
}
.mn-sec--escuro .mn-botao--contorno:not(.elementor-element):hover,
.mn-sec--vinho .mn-botao--contorno:not(.elementor-element):hover {
  border-color: var(--mn-creme);
  background: rgba(248, 245, 241, .08);
  color: var(--mn-creme);
}

.mn-ligacao-seta {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  font-size: var(--mn-t-peq);
  font-weight: 600;
  color: var(--mn-vinho);
  text-decoration: none;
}
.mn-ligacao-seta span { transition: transform var(--mn-transicao); }
.mn-ligacao-seta:hover span { transform: translateX(4px); }

/* 5. Cabecalho e navegacao ---------------------------------------------- */

.mn-barra-topo {
  background: var(--mn-espresso);
  color: rgba(248, 245, 241, .74);
  font-size: var(--mn-t-mini);
}

.mn-barra-topo__interior {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 38px;
  flex-wrap: wrap;
}

.mn-barra-topo__selo {
  margin: 0;
  letter-spacing: .09em;
  text-transform: uppercase;
  font-size: var(--mn-t-micro);
}
.mn-barra-topo__oab {
  color: var(--mn-dourado);
  margin-left: .6em;
  padding-left: .6em;
  border-left: 1px solid var(--mn-linha-escura);
  /* A faixa esta em caixa alta, mas o registo da OAB nao pode ir junto:
     o indicador ordinal de "n.º" fica do tamanho de uma maiuscula e le-se
     "N.O 1479". Aqui o texto mantem a caixa que tem escrita. */
  text-transform: none;
  letter-spacing: .02em;
}

.mn-barra-topo__contactos {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.mn-barra-topo__contactos li { margin: 0; }
.mn-barra-topo__contactos a {
  color: inherit;
  text-decoration: none;
}
.mn-barra-topo__contactos a:hover { color: var(--mn-dourado); }

.mn-cabecalho {
  position: sticky;
  top: 0;
  z-index: 90;
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--mn-linha);
  transition: box-shadow var(--mn-transicao);
}
.mn-cabecalho.mn-colado { box-shadow: 0 2px 20px rgba(41, 27, 20, .09); }

.mn-cabecalho__interior {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: var(--mn-altura-cabecalho);
}

.mn-marca { flex: 0 0 auto; }
.mn-marca a,
.mn-marca .custom-logo-link { display: block; line-height: 0; }
.mn-marca img,
.mn-marca .custom-logo {
  width: auto;
  height: 46px;
  max-height: 46px;
}

.mn-navegacao { margin-left: auto; }

.mn-menu {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.mn-menu .mn-item { position: relative; margin: 0; }

.mn-menu .mn-item > a {
  display: block;
  padding: 10px 13px;
  font-size: var(--mn-t-peq);
  font-weight: 500;
  color: var(--mn-tinta-media);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--mn-transicao);
}
.mn-menu .mn-item > a:hover,
.mn-menu .mn-activo > a { color: var(--mn-vinho); }

.mn-menu .mn-activo > a::after {
  content: '';
  display: block;
  height: 2px;
  margin-top: 4px;
  background: var(--mn-dourado);
}

.mn-abre-submenu {
  position: absolute;
  right: -2px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  display: none;
}
.mn-seta {
  display: block;
  width: 6px;
  height: 6px;
  margin: 0 auto;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  color: var(--mn-tinta-suave);
}

.mn-submenu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 264px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: var(--mn-branco);
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio-gr);
  box-shadow: var(--mn-sombra-gr);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity var(--mn-transicao), transform var(--mn-transicao), visibility var(--mn-transicao);
}
.mn-tem-filho:hover > .mn-submenu,
.mn-tem-filho:focus-within > .mn-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.mn-submenu .mn-item > a {
  padding: 9px 12px;
  border-radius: var(--mn-raio);
  white-space: normal;
}
.mn-submenu .mn-item > a:hover { background: var(--mn-creme); }

.mn-cabecalho__accoes {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.mn-hamburguer {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio);
  background: transparent;
  cursor: pointer;
  position: relative;
}
.mn-hamburguer span {
  display: block;
  width: 20px;
  height: 1.5px;
  margin: 4px auto;
  background: var(--mn-tinta);
  transition: transform var(--mn-transicao), opacity var(--mn-transicao);
}
.mn-hamburguer[aria-expanded='true'] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.mn-hamburguer[aria-expanded='true'] span:nth-child(2) { opacity: 0; }
.mn-hamburguer[aria-expanded='true'] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

.mn-veu {
  position: fixed;
  inset: 0;
  z-index: 95;
  background: rgba(28, 18, 13, .5);
  opacity: 0;
  transition: opacity var(--mn-transicao);
}
.mn-veu.mn-visivel { opacity: 1; }

.mn-gaveta-rodape { display: none; }

/* Gaveta lateral no telemovel. */
@media (max-width: 1023px) {
  .mn-hamburguer { display: block; }

  .mn-navegacao {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 96;
    width: min(340px, 86vw);
    margin: 0;
    padding: 88px 24px 32px;
    background: var(--mn-branco);
    border-left: 1px solid var(--mn-linha);
    box-shadow: -8px 0 40px rgba(41, 27, 20, .16);
    overflow-y: auto;
    overscroll-behavior: contain;
    transform: translateX(100%);
    transition: transform var(--mn-transicao);
    visibility: hidden;
  }
  .mn-navegacao.mn-aberta { transform: translateX(0); visibility: visible; }

  .mn-menu { display: block; }
  .mn-menu .mn-item { border-bottom: 1px solid var(--mn-linha); }
  .mn-menu .mn-item > a {
    padding: 14px 40px 14px 0;
    font-size: var(--mn-t-med);
    font-family: var(--mn-serifada);
    color: var(--mn-tinta);
  }
  .mn-menu .mn-activo > a::after { display: none; }

  .mn-abre-submenu { display: block; right: 0; width: 40px; height: 44px; top: 22px; }
  .mn-abre-submenu[aria-expanded='true'] .mn-seta { transform: rotate(-135deg) translate(-2px, -2px); }

  .mn-submenu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    border: 0;
    box-shadow: none;
    padding: 0 0 10px 12px;
    min-width: 0;
    display: none;
    background: none;
  }
  .mn-submenu.mn-aberto { display: block; }
  .mn-submenu .mn-item { border: 0; }
  .mn-submenu .mn-item > a {
    font-family: var(--mn-sem-serifa);
    font-size: var(--mn-t-peq);
    padding: 8px 0;
    color: var(--mn-tinta-suave);
  }

  .mn-gaveta-rodape {
    display: block;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--mn-linha);
  }
  .mn-gaveta-contacto {
    display: block;
    font-size: var(--mn-t-peq);
    font-weight: 600;
    color: var(--mn-vinho);
    text-decoration: none;
    margin-bottom: 6px;
  }
  .mn-gaveta-morada {
    font-size: var(--mn-t-mini);
    color: var(--mn-tinta-suave);
    margin: 10px 0 0;
  }
}

@media (max-width: 640px) {
  .mn-esconde-telemovel { display: none; }
  .mn-barra-topo__selo { display: none; }
  .mn-barra-topo__interior { justify-content: center; min-height: 34px; }
  .mn-cabecalho__accoes .mn-botao { padding: 11px 16px; font-size: var(--mn-t-mini); min-height: 42px; }
  .mn-marca img, .mn-marca .custom-logo { height: 38px; max-height: 38px; }
  :root { --mn-altura-cabecalho: 64px; --mn-gutter: 18px; }
}

@media (max-width: 900px) {
  .mn-esconde-tablet { display: none; }
}

/* 6. Rodape ------------------------------------------------------------- */

.mn-rodape {
  background: var(--mn-espresso);
  color: rgba(248, 245, 241, .68);
  font-size: var(--mn-t-peq);
  padding-block: clamp(3rem, 2.2rem + 3vw, 4.5rem) 2rem;
}

.mn-rodape__grelha {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 40px 32px;
}

.mn-rodape__logo { height: 54px; width: auto; margin-bottom: 18px; }

.mn-rodape__texto { margin: 0; max-width: 40ch; line-height: 1.65; }

.mn-rodape__redes {
  display: flex;
  gap: 16px;
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}
.mn-rodape__redes li { margin: 0; }
.mn-rodape__redes a { color: var(--mn-dourado); text-decoration: none; font-size: var(--mn-t-mini); }
.mn-rodape__redes a:hover { color: var(--mn-dourado-claro); text-decoration: underline; }

.mn-rodape__titulo {
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--mn-dourado);
  margin: 0 0 16px;
}

.mn-lista-rodape,
.mn-rodape__contactos {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mn-lista-rodape li { margin-bottom: 9px; }
.mn-lista-rodape a {
  color: rgba(248, 245, 241, .72);
  text-decoration: none;
  transition: color var(--mn-transicao);
}
.mn-lista-rodape a:hover { color: var(--mn-creme); }

.mn-rodape__contactos li { margin-bottom: 15px; line-height: 1.55; }
.mn-rodape__contactos a { color: rgba(248, 245, 241, .82); text-decoration: none; }
.mn-rodape__contactos a:hover { color: var(--mn-dourado); }
.mn-rodape__rotulo {
  display: block;
  font-size: var(--mn-t-micro);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(248, 245, 241, .42);
  margin-bottom: 3px;
}

.mn-selos {
  margin-top: 44px;
  padding-top: 28px;
  border-top: 1px solid var(--mn-linha-escura);
}
.mn-selos__rotulo {
  font-size: var(--mn-t-micro);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(248, 245, 241, .42);
  margin: 0 0 16px;
}
.mn-selos__lista {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* Os quatro selos sao marcas de terceiros, com tintas escuras, e o rodape
   e escuro. Tentou-se pinta-los de branco com brightness(0) invert(1):
   resultou nos dois que sao mesmo transparentes e falhou nos outros dois -
   o IBGC vinha com fundo opaco e virou um rectangulo branco, e o IBEF, que
   e um circulo cheio, virou uma bolha. Alem disso, repintar marca alheia
   contraria as regras de uso de quase todas elas.

   A solucao e assenta-los numa plaqueta clara: leem-se sempre, ficam todos
   iguais e cada marca aparece na sua propria cor. */
.mn-selos__lista li {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 10px 18px;
  background: rgba(248, 245, 241, .94);
  border-radius: var(--mn-raio);
  transition: background var(--mn-transicao);
}
.mn-selos__lista li:hover { background: var(--mn-creme); }
/* Tres dos selos sao marcas deitadas e o IBEF e quase quadrado. Limitar
   so a altura deixava o quadrado com 30px de lado, ilegivel ao pe dos
   outros. Limitando os dois lados, cada um cresce ate onde pode. */
.mn-selos__lista img {
  width: auto;
  height: auto;
  max-height: 40px;
  max-width: 140px;
}

.mn-rodape__base {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-top: 32px;
  padding-top: 22px;
  border-top: 1px solid var(--mn-linha-escura);
  font-size: var(--mn-t-mini);
}
.mn-rodape__direitos { margin: 0; color: rgba(248, 245, 241, .5); }
.mn-rodape__base .mn-lista-rodape { display: flex; gap: 20px; }
.mn-rodape__base .mn-lista-rodape li { margin: 0; }

.mn-aviso-oab {
  margin: 20px 0 0;
  font-size: var(--mn-t-micro);
  line-height: 1.6;
  color: rgba(248, 245, 241, .38);
  max-width: 92ch;
}

@media (max-width: 900px) {
  .mn-rodape__grelha { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .mn-rodape__grelha { grid-template-columns: 1fr; gap: 32px; }
  .mn-rodape__base { flex-direction: column; align-items: flex-start; }
}

/* 7. Pecas usadas dentro do Elementor ------------------------------------ */

/* 7.1 Sobretitulo (a linha pequena acima do titulo) */
.mn-sobretitulo,
.mn-sobretitulo p {
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--mn-dourado);
  margin: 0 0 14px;
}
.mn-sobretitulo--vinho, .mn-sobretitulo--vinho p { color: var(--mn-vinho); }

/* 7.2 a 7.11 - as pecas do Elementor mudaram-se para a seccao 11.

   Estavam aqui a vestir o elemento que leva a classe. Acontece que, nos
   widgets e nas colunas do Elementor, a classe cai no involucro e o que
   tem de ser pintado e um elemento interior. O resultado era cada cartao
   com duas molduras: uma no involucro, vinda daqui, e outra no interior,
   vinda da seccao 11. O mesmo com a inicial redonda da equipe, que saia
   em dois circulos.

   Ficou so o sobretitulo, que as paginas do proprio tema (a 404) tambem
   usam em HTML simples. Tudo o resto vive agora na seccao 11.           */

/* 8. Paginas do tema ----------------------------------------------------- */

.mn-migalhas { margin-bottom: 20px; }
.mn-migalhas ol {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--mn-t-mini);
  color: var(--mn-tinta-suave);
}
.mn-migalhas li { margin: 0; display: flex; align-items: center; gap: 10px; }
.mn-migalhas li + li::before {
  content: '';
  width: 4px;
  height: 4px;
  border-right: 1px solid currentColor;
  border-top: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: .6;
}
.mn-migalhas a { color: inherit; text-decoration: none; }
.mn-migalhas a:hover { color: var(--mn-vinho); text-decoration: underline; }
.mn-migalhas [aria-current='page'] { color: var(--mn-tinta); font-weight: 500; }

.mn-cabeca-pagina {
  background: var(--mn-creme);
  border-bottom: 1px solid var(--mn-linha);
  padding-block: clamp(2.5rem, 1.9rem + 2.6vw, 4rem);
  margin-bottom: clamp(2.5rem, 2rem + 2vw, 3.5rem);
}
.mn-cabeca-pagina__titulo { margin-bottom: .3em; }
.mn-cabeca-pagina__resumo {
  font-size: var(--mn-t-med);
  color: var(--mn-tinta-media);
  max-width: 62ch;
  margin: 0;
}
.mn-cabeca-pagina__meta {
  font-size: var(--mn-t-mini);
  color: var(--mn-tinta-suave);
  display: flex;
  gap: 10px;
  margin: 0;
}

.mn-prosa { padding-bottom: clamp(3rem, 2.4rem + 2.4vw, 5rem); }
.mn-prosa h2 { margin-top: 1.9em; }
.mn-prosa h3 { margin-top: 1.5em; }
.mn-prosa ul, .mn-prosa ol { padding-left: 1.4em; }
.mn-prosa li { margin-bottom: .5em; }
.mn-prosa img { border-radius: var(--mn-raio-gr); margin-block: 1.6em; }
.mn-prosa table { width: 100%; border-collapse: collapse; margin-block: 1.6em; font-size: var(--mn-t-peq); }
.mn-prosa th, .mn-prosa td { border: 1px solid var(--mn-linha); padding: 10px 14px; text-align: left; }
.mn-prosa th { background: var(--mn-creme); font-weight: 600; }

.mn-lista-artigos {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 32px;
  padding-bottom: 3rem;
}
.mn-cartao-artigo {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio-gr);
  overflow: hidden;
  background: var(--mn-branco);
  transition: box-shadow var(--mn-transicao);
}
.mn-cartao-artigo:hover { box-shadow: var(--mn-sombra); }
.mn-cartao-artigo__capa img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.mn-cartao-artigo__corpo { padding: 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.mn-cartao-artigo__data { font-size: var(--mn-t-micro); letter-spacing: .08em; text-transform: uppercase; color: var(--mn-tinta-suave); }
.mn-cartao-artigo__titulo { font-size: var(--mn-t-gr); margin: 0; }
.mn-cartao-artigo__titulo a { color: inherit; text-decoration: none; }
.mn-cartao-artigo__titulo a:hover { color: var(--mn-vinho); }
.mn-cartao-artigo__resumo { font-size: var(--mn-t-peq); color: var(--mn-tinta-media); margin: 0; flex: 1; }

.mn-artigo__capa { margin-bottom: 2.5rem; }
.mn-artigo__capa img { border-radius: var(--mn-raio-gr); width: 100%; }

.mn-chamada-artigo {
  background: var(--mn-creme);
  border-left: 3px solid var(--mn-dourado);
  border-radius: var(--mn-raio-gr);
  padding: 28px 30px;
  margin-bottom: 2.5rem;
}
.mn-chamada-artigo h2 { font-size: var(--mn-t-gr); margin-bottom: .4em; }
.mn-chamada-artigo p { font-size: var(--mn-t-peq); color: var(--mn-tinta-media); margin-bottom: 1.2em; }

.mn-vizinhos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding-bottom: 3rem;
}
.mn-vizinhos__link {
  display: block;
  padding: 20px 22px;
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio-gr);
  text-decoration: none;
}
.mn-vizinhos__link:hover { border-color: var(--mn-dourado); }
.mn-vizinhos__link span {
  display: block;
  font-size: var(--mn-t-micro);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--mn-tinta-suave);
  margin-bottom: 5px;
}
.mn-vizinhos__link strong { font-family: var(--mn-serifada); font-size: var(--mn-t-base); color: var(--mn-tinta); }
.mn-vizinhos__link--direita { text-align: right; }
@media (max-width: 560px) {
  .mn-vizinhos { grid-template-columns: 1fr; }
  .mn-vizinhos__link--direita { text-align: left; }
}

.mn-paginacao { padding-bottom: 3rem; }
.mn-paginacao .nav-links { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.mn-paginacao .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio);
  text-decoration: none;
  color: var(--mn-tinta-media);
  font-size: var(--mn-t-peq);
}
.mn-paginacao .page-numbers.current,
.mn-paginacao .page-numbers:hover { background: var(--mn-vinho); border-color: var(--mn-vinho); color: var(--mn-branco); }

.mn-404 { padding-block: clamp(3rem, 2.4rem + 3vw, 5.5rem); }
.mn-404__atalhos {
  list-style: none;
  padding: 0;
  margin: 28px 0 36px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.mn-404__atalhos li { margin: 0; }
.mn-404__atalhos a {
  display: block;
  padding: 14px 18px;
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio);
  text-decoration: none;
  color: var(--mn-tinta);
  font-size: var(--mn-t-peq);
  font-weight: 500;
}
.mn-404__atalhos a:hover { border-color: var(--mn-dourado); background: var(--mn-creme); }

.mn-busca { margin-block: 24px; }
.mn-busca__rotulo {
  display: block;
  font-size: var(--mn-t-mini);
  font-weight: 600;
  margin-bottom: 8px;
}
.mn-busca__linha { display: flex; gap: 8px; flex-wrap: wrap; }
.mn-busca__campo {
  flex: 1 1 220px;
  min-width: 0;
  padding: 12px 16px;
  font-family: inherit;
  font-size: var(--mn-t-peq);
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio);
  background: var(--mn-branco);
  color: var(--mn-tinta);
}
.mn-busca__campo:focus { border-color: var(--mn-dourado); outline-offset: 1px; }

/* 9. Flutuantes ---------------------------------------------------------- */

.mn-zap {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 80;
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #25D366;
  color: #FFF;
  border-radius: 50%;
  box-shadow: 0 6px 20px rgba(37, 211, 102, .38);
  transition: transform var(--mn-transicao);
}
.mn-zap:hover { transform: scale(1.06); color: #FFF; }

.mn-subir {
  position: fixed;
  right: 20px;
  bottom: 84px;
  z-index: 79;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--mn-linha);
  border-radius: 50%;
  background: rgba(255, 255, 255, .96);
  cursor: pointer;
  box-shadow: var(--mn-sombra);
  transition: opacity var(--mn-transicao), transform var(--mn-transicao);
}
.mn-subir span {
  display: block;
  width: 9px;
  height: 9px;
  margin: 2px auto -2px;
  border-left: 1.5px solid var(--mn-tinta);
  border-top: 1.5px solid var(--mn-tinta);
  transform: rotate(45deg);
}
.mn-subir:hover { transform: translateY(-2px); }

@media (max-width: 640px) {
  .mn-zap { width: 50px; height: 50px; right: 16px; bottom: 16px; }
  .mn-subir { right: 16px; bottom: 76px; }
}

/* 10. Impressao e movimento reduzido -------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media print {
  .mn-barra-topo, .mn-cabecalho, .mn-rodape, .mn-zap, .mn-subir, .mn-veu { display: none !important; }
  body { color: #000; font-size: 11pt; }
  a[href^='http']::after { content: ' (' attr(href) ')'; font-size: 9pt; }
}

/* =========================================================================
   11. Elementor

   O corpo das paginas e todo Elementor. Este bloco liga as classes do
   desenho (mn-botao, mn-cartao, mn-sobretitulo...) a marcacao que o
   Elementor gera de facto.

   A armadilha principal: quando se poe uma classe num widget, ela cai no
   INVOLUCRO (.elementor-element), nao no elemento interior. Um .mn-botao
   num widget de botao nao pinta nada, porque quem tem de ser pintado e o
   <a class="elementor-button"> la dentro. Dai quase toda a regra daqui ser
   ".minha-classe .elemento-do-elementor".
   ========================================================================= */

/* 11.1 Calha lateral -----------------------------------------------------
   O Elementor nao poe margem lateral nenhuma: numa seccao "boxed" o
   conteudo encosta ao vidro num telemovel de 400px. So as seccoes de topo
   levam a calha, senao as seccoes internas somavam a sua por cima. */
.elementor-top-section.elementor-section-boxed > .elementor-container {
  padding-inline: var(--mn-gutter);
}

/* Nenhuma pagina pode rolar de lado. */
.elementor-section { max-width: 100vw; }

/* 11.2 Tipografia dentro do Elementor ----------------------------------- */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--mn-serifada);
  font-weight: 600;
  line-height: 1.16;
  letter-spacing: -.012em;
  color: var(--mn-tinta);
}
.elementor-widget-text-editor {
  font-size: var(--mn-t-base);
  line-height: 1.7;
  color: var(--mn-tinta-media);
}
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.mn-sec--escuro .elementor-widget-heading .elementor-heading-title,
.mn-sec--vinho .elementor-widget-heading .elementor-heading-title,
.mn-heroi .elementor-widget-heading .elementor-heading-title { color: var(--mn-creme); }

.mn-sec--escuro .elementor-widget-text-editor,
.mn-sec--vinho .elementor-widget-text-editor { color: rgba(248, 245, 241, .76); }

.mn-heroi .elementor-widget-text-editor { color: rgba(255, 255, 255, .82); }

/* 11.3 Botoes ------------------------------------------------------------ */
.mn-botao .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-peq);
  font-weight: 600;
  letter-spacing: .015em;
  line-height: 1.2;
  padding: 14px 26px;
  min-height: 46px;
  border: 1px solid transparent;
  border-radius: var(--mn-raio);
  text-decoration: none;
  transition: background var(--mn-transicao), color var(--mn-transicao),
              border-color var(--mn-transicao), transform var(--mn-transicao);
}
.mn-botao--cheio .elementor-button {
  background: var(--mn-vinho);
  color: var(--mn-branco);
  border-color: var(--mn-vinho);
}
.mn-botao--cheio .elementor-button:hover {
  background: var(--mn-vinho-claro);
  border-color: var(--mn-vinho-claro);
  color: var(--mn-branco);
  transform: translateY(-1px);
}
.mn-botao--ouro .elementor-button {
  background: var(--mn-dourado);
  color: var(--mn-espresso);
  border-color: var(--mn-dourado);
}
.mn-botao--ouro .elementor-button:hover {
  background: var(--mn-dourado-claro);
  border-color: var(--mn-dourado-claro);
  color: var(--mn-espresso);
  transform: translateY(-1px);
}
.mn-botao--contorno .elementor-button {
  background: transparent;
  color: var(--mn-vinho);
  border-color: var(--mn-linha);
}
.mn-botao--contorno .elementor-button:hover {
  border-color: var(--mn-vinho);
  color: var(--mn-vinho);
  background: rgba(118, 45, 45, .04);
}
.mn-sec--escuro .mn-botao--contorno .elementor-button,
.mn-sec--vinho .mn-botao--contorno .elementor-button,
.mn-heroi .mn-botao--contorno .elementor-button {
  color: var(--mn-creme);
  border-color: rgba(248, 245, 241, .38);
}
.mn-sec--escuro .mn-botao--contorno .elementor-button:hover,
.mn-sec--vinho .mn-botao--contorno .elementor-button:hover,
.mn-heroi .mn-botao--contorno .elementor-button:hover {
  border-color: var(--mn-creme);
  background: rgba(248, 245, 241, .1);
  color: var(--mn-creme);
}

/* Ligacao com seta: um widget de botao vestido de link. */
.mn-ligacao-seta .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  padding: 0;
  min-height: 0;
  background: none;
  border: 0;
  border-radius: 0;
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-peq);
  font-weight: 600;
  color: var(--mn-vinho);
  text-decoration: none;
}
.mn-ligacao-seta .elementor-button::after {
  content: "\2192";
  transition: transform var(--mn-transicao);
}
.mn-ligacao-seta .elementor-button:hover { background: none; color: var(--mn-tijolo); }
.mn-ligacao-seta .elementor-button:hover::after { transform: translateX(4px); }
.mn-sec--escuro .mn-ligacao-seta .elementor-button { color: var(--mn-dourado); }
.mn-sec--escuro .mn-ligacao-seta .elementor-button:hover { color: var(--mn-dourado-claro); }

/* 11.4 Cartoes -----------------------------------------------------------
   A classe vai na coluna, mas quem se pinta e o interior
   (.elementor-element-populated) - e no interior que o Elementor tambem poe
   o preenchimento. A margem e o que cria a calha entre cartoes. */
.mn-cartao > .elementor-element-populated {
  background: var(--mn-branco);
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio-gr);
  margin: 8px;
  transition: border-color var(--mn-transicao), box-shadow var(--mn-transicao), transform var(--mn-transicao);
}
.mn-cartao:hover > .elementor-element-populated {
  border-color: rgba(199, 135, 56, .5);
  box-shadow: var(--mn-sombra);
  transform: translateY(-2px);
}
.mn-sec--escuro .mn-cartao > .elementor-element-populated,
.mn-sec--vinho .mn-cartao > .elementor-element-populated {
  background: rgba(248, 245, 241, .05);
  border-color: var(--mn-linha-escura);
}

/* Risca dourada que cresce ao passar o rato. */
.mn-cartao--area > .elementor-element-populated { position: relative; overflow: hidden; }
.mn-cartao--area > .elementor-element-populated::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--mn-dourado);
  transform: scaleX(.18);
  transform-origin: left;
  transition: transform var(--mn-transicao);
}
.mn-cartao--area:hover > .elementor-element-populated::before { transform: scaleX(1); }

/* Coluna de enchimento: existe para a linha nao esticar o ultimo cartao. */
.mn-vazia > .elementor-element-populated { background: none; border: 0; }

/* 11.5 Sobretitulo e titulos de peca ------------------------------------- */
.mn-sobretitulo .elementor-heading-title {
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--mn-dourado);
  line-height: 1.4;
}

.mn-numero__valor .elementor-heading-title {
  font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
  line-height: 1;
  color: var(--mn-vinho);
}
.mn-numero__rotulo { font-size: var(--mn-t-mini); letter-spacing: .04em; color: var(--mn-tinta-suave); }
.mn-sec--escuro .mn-numero__valor .elementor-heading-title { color: var(--mn-dourado); }

.mn-inicial .elementor-heading-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--mn-vinho);
  color: var(--mn-creme);
  font-size: 1.625rem;
}

.mn-pessoa__nome .elementor-heading-title { font-size: var(--mn-t-gr); }
.mn-pessoa__papel .elementor-heading-title {
  font-family: var(--mn-sem-serifa);
  font-size: var(--mn-t-mini);
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--mn-dourado);
  line-height: 1.5;
}

.mn-livro__titulo .elementor-heading-title { font-size: var(--mn-t-med); }
.mn-livro__autor { font-size: var(--mn-t-mini); color: var(--mn-tinta-suave); }
.mn-livro__autor .mn-livro__nota { margin-top: .5em; font-style: italic; }
.mn-livro__capa img {
  box-shadow: var(--mn-sombra-gr);
  border-radius: 2px;
  max-height: 380px;
  width: auto;
}

/* 11.6 Textos de entrada e realces --------------------------------------- */
.mn-entrada { font-size: var(--mn-t-med); color: var(--mn-tinta-media); }
.mn-sec--escuro .mn-entrada, .mn-sec--vinho .mn-entrada { color: rgba(248, 245, 241, .8); }

.mn-entrada-grande p {
  font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
  line-height: 1.65;
  color: var(--mn-tinta-media);
}

.mn-realce { color: var(--mn-dourado-claro); }

.mn-papel, .mn-papel-grande {
  font-family: var(--mn-serifada);
  font-style: italic;
  color: var(--mn-dourado);
}
.mn-papel-grande { font-size: var(--mn-t-gr); margin-bottom: 1em; }

/* 11.7 Listas ------------------------------------------------------------ */
.elementor-widget-text-editor ul.mn-lista-marcada { list-style: none; padding-left: 0; margin: 0; }
.elementor-widget-text-editor ul.mn-lista-marcada li {
  position: relative;
  padding-left: 26px;
  margin-bottom: .75em;
  font-size: var(--mn-t-peq);
  line-height: 1.6;
}
.elementor-widget-text-editor ul.mn-lista-marcada li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .5em;
  width: 9px;
  height: 9px;
  border: 1.5px solid var(--mn-dourado);
  transform: rotate(45deg);
}
.elementor-widget-text-editor ul.mn-lista-dupla { columns: 2; column-gap: 36px; }
.elementor-widget-text-editor ul.mn-lista-dupla li { break-inside: avoid; }
.elementor-widget-text-editor ul.mn-lista-anos li strong { color: var(--mn-dourado); }

.elementor-widget-text-editor ul.mn-lista-atalhos {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}
.elementor-widget-text-editor ul.mn-lista-atalhos li { margin: 0; }
.elementor-widget-text-editor ul.mn-lista-atalhos a {
  display: block;
  padding: 13px 18px;
  background: var(--mn-branco);
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio);
  color: var(--mn-tinta);
  font-size: var(--mn-t-peq);
  font-weight: 500;
  text-decoration: none;
}
.elementor-widget-text-editor ul.mn-lista-atalhos a:hover {
  border-color: var(--mn-dourado);
  color: var(--mn-vinho);
}

.elementor-widget-text-editor ul.mn-dados-contacto { list-style: none; padding: 0; margin: 0; }
.elementor-widget-text-editor ul.mn-dados-contacto li {
  padding: 14px 0;
  border-bottom: 1px solid var(--mn-linha);
  font-size: var(--mn-t-peq);
  line-height: 1.55;
}
.elementor-widget-text-editor ul.mn-dados-contacto li:last-child { border-bottom: 0; }
.elementor-widget-text-editor ul.mn-dados-contacto strong {
  display: block;
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--mn-dourado);
  margin-bottom: 3px;
}

.mn-nota-coleccao p { font-size: var(--mn-t-peq); color: var(--mn-tinta-suave); }

/* 11.8 Heroi -------------------------------------------------------------
   A foto ocupa a coluna inteira, do topo ao fundo da faixa, cortada e
   nunca esticada.

   Na 1.1.0 ela ficava so em cima: o `.elementor img { height: auto }` do
   Elementor tem a mesma especificidade que a regra do tema e carrega
   depois, por isso ganhava - a foto ficava na altura natural (729 px)
   numa faixa de 856 px. Agora a foto vai em posicao absoluta dentro da
   coluna, e a altura vem do texto ao lado: nao depende de quem ganha a
   disputa do height. */
.mn-heroi .mn-heroi__foto > .elementor-element-populated { padding: 0; position: relative; }
.mn-heroi .mn-heroi__foto img {
  width: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 15%;
}
.mn-retrato img { border-radius: var(--mn-raio-gr); width: 100%; }
.mn-foto-equipe img { border-radius: var(--mn-raio-gr); width: 100%; }

@media (min-width: 768px) {
  .mn-heroi > .elementor-container { align-items: stretch; }
  .mn-heroi .mn-heroi__foto .mn-heroi__imagem {
    position: absolute;
    inset: 0;
    margin: 0;
  }
  .mn-heroi .mn-heroi__foto .mn-heroi__imagem > *,
  .mn-heroi .mn-heroi__foto .mn-heroi__imagem img {
    position: absolute;
    inset: 0;
    height: 100%;
  }
}
@media (max-width: 767px) {
  .mn-heroi .mn-heroi__foto img { height: clamp(320px, 100vw, 440px); }
}

/* Os dois botoes do heroi: do tamanho do rotulo, lado a lado, com um
   respiro entre eles. Antes cada um enchia metade da coluna (294 px) com
   52 px de altura, e o de contorno ainda levava uma segunda moldura -
   a regra solta .mn-botao do cabecalho casava tambem com o involucro do
   widget (ver a seccao 4). */
.mn-heroi .elementor-inner-section > .elementor-container {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 12px;
}
.mn-heroi .elementor-inner-section > .elementor-container > .elementor-column {
  width: auto !important;
  flex: 0 0 auto;
}
.mn-heroi .elementor-inner-section > .elementor-container > .elementor-column > .elementor-element-populated { padding: 0; }
.mn-heroi .mn-botao .elementor-button {
  width: auto;
  min-height: 44px;
  padding: 11px 22px;
  font-size: .875rem;
}
@media (max-width: 767px) {
  .mn-heroi .elementor-inner-section > .elementor-container { gap: 10px; }
  .mn-heroi .elementor-inner-section > .elementor-container > .elementor-column { width: 100% !important; }
  .mn-heroi .mn-botao .elementor-button { width: 100%; min-height: 46px; }
}

/* 11.9 Perguntas frequentes (acordeao nativo do Elementor) ---------------- */
.mn-acordeao .elementor-accordion { border-top: 1px solid var(--mn-linha); }
.mn-acordeao .elementor-accordion-item {
  border: 0;
  border-bottom: 1px solid var(--mn-linha);
}
.mn-acordeao .elementor-tab-title {
  padding: 22px 40px 22px 0;
  background: none;
  position: relative;
}
.mn-acordeao .elementor-tab-title a,
.mn-acordeao .elementor-accordion-title {
  font-family: var(--mn-serifada);
  font-size: var(--mn-t-med);
  font-weight: 600;
  line-height: 1.35;
  color: var(--mn-tinta);
  text-decoration: none;
}
.mn-acordeao .elementor-tab-title:hover .elementor-accordion-title,
.mn-acordeao .elementor-active .elementor-accordion-title { color: var(--mn-vinho); }
.mn-acordeao .elementor-accordion-icon { color: var(--mn-dourado); }
.mn-acordeao .elementor-tab-content {
  padding: 0 40px 24px 0;
  border: 0;
  font-size: var(--mn-t-peq);
  line-height: 1.7;
  color: var(--mn-tinta-media);
}
.mn-acordeao .elementor-tab-content p { margin: 0; max-width: 72ch; }

/* 11.10 Mapa e formulario ------------------------------------------------- */
.mn-mapa iframe { border-radius: var(--mn-raio-gr); filter: saturate(.85); }
.mn-caixa-formulario > .elementor-element-populated { padding-left: 0; }

/* 11.11 Topo das paginas internas ----------------------------------------- */
.mn-topo-pagina { border-bottom: 1px solid var(--mn-linha); }

/* 11.12 Acertos de telemovel ---------------------------------------------- */
@media (max-width: 767px) {
  /* O botao ocupa a largura toda: alvo de toque decente e nada solto. */
  .mn-botao .elementor-button { width: 100%; }
  .mn-ligacao-seta .elementor-button { width: auto; }

  .elementor-widget-text-editor ul.mn-lista-dupla { columns: 1; }

  .mn-caixa-formulario > .elementor-element-populated { padding-inline: 0; }
}

/* =========================================================================
   12. Navegacao das paginas internas

   Tres pecas que existem para o visitante saber onde esta e chegar depressa
   ao que quer, numa pagina de area que tem perto de 4.700 px:

     - a barra de migalhas, logo abaixo do cabecalho;
     - a barra das seis areas, para saltar de lado;
     - o indice "Nesta pagina", para saltar para baixo.
   ========================================================================= */

/* 12.1 Migalhas de pao ---------------------------------------------------
   Vem sobre fundo creme, o mesmo do topo das paginas internas, para as duas
   faixas se lerem como uma so. */
.mn-barra-migalhas {
  background: var(--mn-creme);
  padding-block: 14px;
}
.mn-barra-migalhas .mn-migalhas { margin: 0; }
.mn-barra-migalhas .mn-migalhas ol { font-size: var(--mn-t-mini); }

/* A pagina interna que vem a seguir nao repete o espaco de cima. */
.mn-barra-migalhas + .mn-conteudo .mn-topo-pagina,
.mn-barra-migalhas ~ * .mn-topo-pagina { border-top: 0; }

@media (max-width: 640px) {
  .mn-barra-migalhas { padding-block: 11px; }
  /* No telemovel so interessa o passo anterior, nao o caminho todo. */
  .mn-barra-migalhas .mn-migalhas li:not(:nth-last-child(2)):not(:last-child) { display: none; }
  /* O separador e um ::before do item; escondendo o primeiro item, o dele
     ficava orfao a abrir a linha com uma seta sem nada antes. */
  .mn-barra-migalhas .mn-migalhas li:nth-last-child(2)::before { display: none; }
}

/* 12.2 Barra das seis areas ---------------------------------------------- */
.mn-areas-nav__rotulo {
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--mn-tinta-suave);
  margin: 0 0 10px;
}

.mn-areas-nav__lista {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.mn-areas-nav__lista li { margin: 0; }

.mn-areas-nav__item {
  display: block;
  padding: 9px 16px;
  background: var(--mn-branco);
  border: 1px solid var(--mn-linha);
  border-radius: 999px;
  color: var(--mn-tinta-media);
  font-size: var(--mn-t-mini);
  font-weight: 500;
  line-height: 1.3;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color var(--mn-transicao), color var(--mn-transicao), background var(--mn-transicao);
}
.mn-areas-nav__item:hover {
  border-color: var(--mn-dourado);
  color: var(--mn-vinho);
}

/* A area em que se esta fica preenchida e sem link visivel de saida. */
.mn-areas-nav__item--aqui,
.mn-areas-nav__item--aqui:hover {
  background: var(--mn-vinho);
  border-color: var(--mn-vinho);
  color: var(--mn-branco);
  cursor: default;
}

.mn-areas-nav-caixa--centro .mn-areas-nav__lista { justify-content: center; }

@media (max-width: 640px) {
  /* Em vez de embrulhar em tres linhas, desliza na horizontal - ocupa uma
     linha so e continua a mostrar que ha mais a direita. */
  .mn-areas-nav__lista {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    margin-inline: calc(var(--mn-gutter) * -1);
    padding-inline: var(--mn-gutter);
  }
  .mn-areas-nav__lista li { scroll-snap-align: start; }
  .mn-areas-nav-caixa--centro .mn-areas-nav__lista { justify-content: flex-start; }
}

/* 12.3 Indice "Nesta pagina" ---------------------------------------------- */
.mn-indice {
  background: var(--mn-creme);
  border: 1px solid var(--mn-linha);
  border-left: 3px solid var(--mn-dourado);
  border-radius: var(--mn-raio-gr);
  padding: 24px 26px;
}
.mn-indice__titulo {
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--mn-tinta-suave);
  margin: 0 0 14px;
}
.mn-indice__lista {
  list-style: none;
  counter-reset: mn-indice;
  margin: 0;
  padding: 0;
}
.mn-indice__lista li {
  counter-increment: mn-indice;
  margin: 0;
  border-bottom: 1px solid var(--mn-linha);
}
.mn-indice__lista li:last-child { border-bottom: 0; }
.mn-indice__lista a {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 11px 0;
  color: var(--mn-tinta);
  font-size: var(--mn-t-peq);
  font-weight: 500;
  text-decoration: none;
  transition: color var(--mn-transicao);
}
.mn-indice__lista a::before {
  content: counter(mn-indice, decimal-leading-zero);
  flex: 0 0 auto;
  font-family: var(--mn-serifada);
  font-size: var(--mn-t-mini);
  color: var(--mn-dourado);
}
.mn-indice__lista a:hover { color: var(--mn-vinho); }

/* 12.4 Numero do cartao ---------------------------------------------------- */
.mn-cartao__numero .elementor-heading-title {
  font-family: var(--mn-serifada);
  font-size: var(--mn-t-mini);
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--mn-dourado);
  line-height: 1;
}

/* 12.5 A faixa das areas encosta ao topo da pagina ------------------------- */
.mn-faixa-areas { border-bottom: 1px solid var(--mn-linha); }

/* =========================================================================
   13. Blog

   A listagem, as categorias e o artigo. Tudo do tema, nada do Elementor:
   um artigo novo sai desenhado sem ninguem montar nada.
   ========================================================================= */

/* 13.1 Etiqueta de area --------------------------------------------------- */
.mn-etiqueta {
  display: inline-flex;
  align-items: center;
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--mn-vinho);
  text-decoration: none;
  line-height: 1.3;
}
.mn-etiqueta:hover { color: var(--mn-tijolo); text-decoration: underline; }
.mn-etiqueta--clara {
  color: var(--mn-dourado-claro);
  border: 1px solid rgba(220, 165, 92, .45);
  border-radius: 99px;
  padding: 6px 12px;
  margin-bottom: 22px;
}
.mn-etiqueta--clara:hover { color: var(--mn-creme); border-color: var(--mn-creme); text-decoration: none; }

/* 13.2 Topo da listagem --------------------------------------------------- */
.mn-cabeca-blog {
  background: var(--mn-creme);
  border-bottom: 1px solid var(--mn-linha);
  padding-block: clamp(2.25rem, 1.6rem + 2.8vw, 4.25rem) 0;
}
.mn-cabeca-blog__titulo { max-width: 18ch; margin-bottom: .35em; }
.mn-cabeca-blog__resumo {
  font-size: var(--mn-t-med);
  color: var(--mn-tinta-media);
  max-width: 60ch;
  margin: 0;
}
.mn-cabeca-blog__ferramentas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 32px;
  margin-top: clamp(1.75rem, 1.4rem + 1.4vw, 2.75rem);
  padding-bottom: 18px;
}

.mn-filtros-blog { min-width: 0; flex: 1 1 auto; }
.mn-filtros-blog ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.mn-filtros-blog li { margin: 0; }
.mn-filtros-blog a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 15px;
  border: 1px solid var(--mn-linha);
  border-radius: 99px;
  background: var(--mn-branco);
  font-size: var(--mn-t-mini);
  font-weight: 500;
  color: var(--mn-tinta-media);
  text-decoration: none;
  white-space: nowrap;
  transition: border-color var(--mn-transicao), background var(--mn-transicao), color var(--mn-transicao);
}
.mn-filtros-blog a:hover { border-color: var(--mn-vinho); color: var(--mn-vinho); }
.mn-filtros-blog a[aria-current] { background: var(--mn-vinho); border-color: var(--mn-vinho); color: var(--mn-branco); }

.mn-busca-blog {
  position: relative;
  flex: 0 1 300px;
  min-width: 220px;
  margin: 0;
}
.mn-busca-blog svg {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--mn-tinta-suave);
  pointer-events: none;
}
.mn-busca-blog input[type="search"] {
  width: 100%;
  min-height: 44px;
  padding: 10px 14px 10px 42px;
  font: inherit;
  font-size: 16px; /* abaixo de 16 px o iPhone faz zoom ao tocar */
  color: var(--mn-tinta);
  background: var(--mn-branco);
  border: 1px solid var(--mn-linha);
  border-radius: 99px;
  -webkit-appearance: none;
  appearance: none;
}
.mn-busca-blog input[type="search"]:focus { border-color: var(--mn-dourado); outline: 2px solid rgba(199, 135, 56, .25); outline-offset: 0; }

@media (max-width: 860px) {
  .mn-cabeca-blog__ferramentas { flex-direction: column-reverse; align-items: stretch; }
  .mn-busca-blog { flex-basis: auto; min-width: 0; }
  /* No telemovel as areas deslizam numa linha, em vez de ocuparem meio ecra. */
  .mn-filtros-blog { margin-inline: calc(var(--mn-gutter) * -1); }
  .mn-filtros-blog ul {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-inline: var(--mn-gutter);
    scroll-padding-inline: var(--mn-gutter);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .mn-filtros-blog ul::-webkit-scrollbar { display: none; }
}

/* 13.3 Cartoes ----------------------------------------------------------- */
.mn-blog { padding-block: clamp(2.25rem, 1.8rem + 2vw, 3.5rem) clamp(3rem, 2.4rem + 2.4vw, 5rem); }
.mn-blog__subtitulo {
  font-size: var(--mn-t-gr);
  margin: clamp(2.75rem, 2.2rem + 2vw, 4rem) 0 24px;
  padding-top: 24px;
  border-top: 1px solid var(--mn-linha);
}

.mn-grelha-posts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 1rem + 1.2vw, 32px);
}
@media (max-width: 1023px) { .mn-grelha-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .mn-grelha-posts { grid-template-columns: minmax(0, 1fr); } }

.mn-cartao-post {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--mn-branco);
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio-gr);
  overflow: hidden;
  transition: box-shadow var(--mn-transicao), transform var(--mn-transicao), border-color var(--mn-transicao);
}
.mn-cartao-post:hover { box-shadow: var(--mn-sombra); border-color: #D4C6BE; transform: translateY(-2px); }

.mn-cartao-post__capa { display: block; overflow: hidden; background: var(--mn-vinho); text-decoration: none; }
.mn-cartao-post__capa img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(.22, .61, .36, 1);
}
.mn-cartao-post:hover .mn-cartao-post__capa img { transform: scale(1.03); }

/* Sem foto, a capa e tipografica - nada de imagem de banco a fingir. */
.mn-cartao-post__tipografica {
  position: relative;
  display: flex;
  align-items: flex-end;
  aspect-ratio: 16 / 10;
  padding: 22px 24px;
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(199, 135, 56, .28) 0%, rgba(199, 135, 56, 0) 55%),
    linear-gradient(160deg, var(--mn-vinho) 0%, #5A2222 55%, var(--mn-espresso) 100%);
}
.mn-cartao-post__area {
  position: relative;
  z-index: 1;
  font-family: var(--mn-serifada);
  font-size: clamp(1.25rem, 1.05rem + .7vw, 1.6rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--mn-creme);
  max-width: 14ch;
}
.mn-cartao-post__monograma {
  position: absolute;
  right: -.06em;
  top: -.28em;
  font-family: var(--mn-serifada);
  font-size: 11rem;
  line-height: 1;
  color: rgba(248, 245, 241, .09);
  transition: transform 600ms cubic-bezier(.22, .61, .36, 1);
}
.mn-cartao-post:hover .mn-cartao-post__monograma { transform: translateY(6px) rotate(-4deg); }

.mn-cartao-post__corpo {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  padding: 22px 24px 20px;
}
.mn-cartao-post__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  margin: 0;
  font-size: var(--mn-t-mini);
  color: var(--mn-tinta-suave);
}
.mn-cartao-post__meta .mn-etiqueta { position: relative; z-index: 2; }
.mn-cartao-post__titulo {
  font-size: clamp(1.2rem, 1.1rem + .35vw, 1.375rem);
  line-height: 1.25;
  margin: 0;
}
.mn-cartao-post__titulo a { color: var(--mn-tinta); text-decoration: none; }
/* O cartao inteiro e clicavel, sem aninhar ligacoes. */
.mn-cartao-post__titulo a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.mn-cartao-post:hover .mn-cartao-post__titulo a { color: var(--mn-vinho); }
.mn-cartao-post__titulo a:focus-visible { outline: none; }
.mn-cartao-post:focus-within { outline: 2px solid var(--mn-dourado); outline-offset: 2px; }
.mn-cartao-post__resumo {
  flex: 1;
  margin: 0;
  font-size: var(--mn-t-peq);
  line-height: 1.6;
  color: var(--mn-tinta-media);
}
.mn-cartao-post__rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--mn-linha);
  font-size: var(--mn-t-mini);
  color: var(--mn-tinta-suave);
}
.mn-cartao-post__rodape .mn-ligacao-seta { font-size: var(--mn-t-mini); }
.mn-cartao-post--pagina .mn-cartao-post__corpo { padding-top: 24px; }

/* Destaque: o mais recente abre a listagem em duas colunas. */
.mn-cartao-post--destaque { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.mn-cartao-post--destaque .mn-cartao-post__capa img,
.mn-cartao-post--destaque .mn-cartao-post__tipografica { height: 100%; aspect-ratio: auto; min-height: 340px; }
.mn-cartao-post--destaque .mn-cartao-post__area { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.6rem); }
.mn-cartao-post--destaque .mn-cartao-post__monograma { font-size: 20rem; }
.mn-cartao-post--destaque .mn-cartao-post__corpo { padding: clamp(24px, 1rem + 2vw, 44px); justify-content: center; gap: 14px; }
.mn-cartao-post--destaque .mn-cartao-post__titulo { font-size: clamp(1.6rem, 1.25rem + 1.3vw, 2.35rem); line-height: 1.15; }
.mn-cartao-post--destaque .mn-cartao-post__resumo { flex: 0 0 auto; font-size: var(--mn-t-base); }
@media (max-width: 860px) {
  .mn-cartao-post--destaque { display: flex; }
  .mn-cartao-post--destaque .mn-cartao-post__capa img,
  .mn-cartao-post--destaque .mn-cartao-post__tipografica { min-height: 0; aspect-ratio: 16 / 10; }
  .mn-cartao-post--destaque .mn-cartao-post__monograma { font-size: 12rem; }
}

.mn-blog__vazio {
  max-width: 560px;
  margin: 0 auto;
  padding: clamp(2rem, 1.5rem + 2vw, 3.5rem) 0;
  text-align: center;
}
.mn-blog__vazio h2 { font-size: var(--mn-t-h3); }

/* 13.4 Faixas: chamada final e artigos antes do rodape --------------------- */
.mn-faixa-chamada { background: var(--mn-espresso); color: rgba(248, 245, 241, .8); }
.mn-faixa-chamada__interior {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px 48px;
  padding-block: clamp(2.5rem, 2rem + 2vw, 3.75rem);
}
.mn-faixa-chamada h2 { color: var(--mn-creme); font-size: var(--mn-t-h3); max-width: 30ch; margin: 0; }
.mn-faixa-chamada .mn-botao { flex: 0 0 auto; }
@media (max-width: 760px) {
  .mn-faixa-chamada__interior { flex-direction: column; align-items: flex-start; }
  .mn-faixa-chamada .mn-botao { width: 100%; }
}

.mn-faixa-artigos { padding-block: clamp(3rem, 2.4rem + 2.6vw, 5.5rem); }
.mn-faixa-artigos--creme { background: var(--mn-creme); border-top: 1px solid var(--mn-linha); }
.mn-faixa-artigos__cabeca {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 32px;
  flex-wrap: wrap;
  margin-bottom: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
}
.mn-faixa-artigos__titulo { font-size: var(--mn-t-h2); margin: 0; }

/* 13.5 Artigo: topo ------------------------------------------------------- */
.mn-progresso {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 120;
  height: 3px;
  pointer-events: none;
}
.admin-bar .mn-progresso { top: 32px; }
@media (max-width: 782px) { .admin-bar .mn-progresso { top: 46px; } }
.mn-progresso span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--mn-dourado), var(--mn-tijolo));
  transform: scaleX(0);
  transform-origin: 0 50%;
}

.mn-post__cabeca {
  background:
    radial-gradient(80% 120% at 100% 0%, rgba(118, 45, 45, .55) 0%, rgba(118, 45, 45, 0) 60%),
    var(--mn-espresso);
  color: rgba(248, 245, 241, .82);
  padding-block: clamp(2.5rem, 1.8rem + 3vw, 4.75rem);
}
.mn-post__cabeca--com-capa { padding-bottom: clamp(7rem, 5rem + 8vw, 11rem); }
.mn-post__titulo {
  color: var(--mn-creme);
  font-size: clamp(2rem, 1.45rem + 2.4vw, 3.4rem);
  line-height: 1.1;
  max-width: 22ch;
  margin-bottom: .45em;
}
.mn-post__linha-fina {
  font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
  line-height: 1.6;
  color: rgba(248, 245, 241, .78);
  max-width: 62ch;
  margin: 0 0 30px;
}
.mn-post__assinatura {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 22px;
  border-top: 1px solid var(--mn-linha-escura);
}
.mn-post__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 18%;
  border: 2px solid rgba(220, 165, 92, .6);
  flex: 0 0 auto;
}
.mn-post__autor { margin: 0; font-size: var(--mn-t-peq); color: rgba(248, 245, 241, .7); }
.mn-post__autor a { color: var(--mn-creme); font-weight: 600; text-decoration: none; }
.mn-post__autor a:hover { color: var(--mn-dourado-claro); text-decoration: underline; }
.mn-post__datas {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 14px;
  margin: 2px 0 0;
  font-size: var(--mn-t-mini);
  color: rgba(248, 245, 241, .66);
}

.mn-post__capa { margin-top: calc(clamp(7rem, 5rem + 8vw, 11rem) * -1 + 2rem); margin-bottom: 0; }
.mn-post__capa img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--mn-raio-gr);
  box-shadow: var(--mn-sombra-gr);
}
.mn-post__capa figcaption { font-size: var(--mn-t-mini); color: var(--mn-tinta-suave); margin-top: 10px; }

/* 13.6 Artigo: corpo ------------------------------------------------------ */
.mn-post__grelha {
  display: grid;
  grid-template-columns: 230px minmax(0, 720px);
  justify-content: center;
  gap: clamp(40px, 2rem + 3vw, 80px);
  padding-block: clamp(2.5rem, 2rem + 2.4vw, 4rem) clamp(3rem, 2.4rem + 2.4vw, 5rem);
}
.mn-post__grelha--sem-indice { grid-template-columns: minmax(0, 720px); }

.mn-post__lateral-fixa {
  position: sticky;
  top: calc(var(--mn-altura-cabecalho) + 28px);
  max-height: calc(100vh - var(--mn-altura-cabecalho) - 48px);
  overflow-y: auto;
  scrollbar-width: thin;
  padding: 2px 2px 2px 0;
}
.admin-bar .mn-post__lateral-fixa { top: calc(var(--mn-altura-cabecalho) + 60px); }
.mn-post__lateral-titulo {
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mn-tinta-suave);
  margin: 0 0 12px;
}

.mn-indice-artigo { list-style: none; margin: 0; padding: 0; }
.mn-indice-artigo li { margin: 0; }
.mn-indice-artigo a {
  display: block;
  padding: 7px 0 7px 14px;
  font-size: var(--mn-t-mini);
  line-height: 1.4;
  color: var(--mn-tinta-media);
  text-decoration: none;
  border-left: 2px solid var(--mn-linha);
  transition: color var(--mn-transicao), border-color var(--mn-transicao);
}
.mn-indice-artigo__n3 a { padding-left: 26px; font-size: .78rem; color: var(--mn-tinta-suave); }
.mn-indice-artigo a:hover { color: var(--mn-vinho); border-left-color: var(--mn-dourado); }
.mn-indice-artigo a[aria-current] { color: var(--mn-vinho); font-weight: 600; border-left-color: var(--mn-vinho); }

.mn-post__lateral .mn-partilha { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--mn-linha); }

.mn-indice-movel { display: none; }

@media (max-width: 1023px) {
  .mn-post__grelha { grid-template-columns: minmax(0, 720px); }
  .mn-post__lateral { display: none; }
  .mn-indice-movel {
    display: block;
    margin-bottom: 32px;
    border: 1px solid var(--mn-linha);
    border-radius: var(--mn-raio-gr);
    background: var(--mn-creme);
  }
  .mn-indice-movel summary {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 50px;
    padding: 12px 18px;
    font-size: var(--mn-t-peq);
    font-weight: 600;
    cursor: pointer;
    list-style: none;
  }
  .mn-indice-movel summary::-webkit-details-marker { display: none; }
  .mn-indice-movel summary span { font-weight: 400; color: var(--mn-tinta-suave); }
  .mn-indice-movel summary::after {
    content: "";
    width: 8px;
    height: 8px;
    margin-left: auto;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-3px);
    transition: transform var(--mn-transicao);
  }
  .mn-indice-movel[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
  .mn-indice-movel .mn-indice-artigo { padding: 0 18px 14px; }
  .mn-indice-movel .mn-indice-artigo a { padding-block: 9px; }
}

.mn-prosa--artigo {
  padding-bottom: 0;
  font-size: clamp(1.0625rem, 1rem + .25vw, 1.15rem);
  line-height: 1.8;
  color: #3D2C24;
  overflow-wrap: break-word;
}
.mn-prosa--artigo > :first-child { margin-top: 0; }
.mn-prosa--artigo p { margin-bottom: 1.3em; }
.mn-prosa--artigo h2 {
  font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);
  margin: 2.2em 0 .6em;
  scroll-margin-top: calc(var(--mn-altura-cabecalho) + 24px);
}
.mn-prosa--artigo h3 {
  font-size: clamp(1.2rem, 1.1rem + .4vw, 1.375rem);
  margin: 1.8em 0 .5em;
  scroll-margin-top: calc(var(--mn-altura-cabecalho) + 24px);
}
.mn-prosa--artigo strong { color: var(--mn-tinta); font-weight: 600; }
.mn-prosa--artigo a { color: var(--mn-vinho); text-decoration-color: rgba(118, 45, 45, .35); }
.mn-prosa--artigo a:hover { text-decoration-color: currentColor; }
.mn-prosa--artigo ul { list-style: none; padding-left: 0; }
.mn-prosa--artigo ul > li { position: relative; padding-left: 1.4em; }
.mn-prosa--artigo ul > li::before {
  content: "";
  position: absolute;
  left: .2em;
  top: .75em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--mn-dourado);
}
.mn-prosa--artigo ol { padding-left: 1.5em; }
.mn-prosa--artigo ol > li::marker { color: var(--mn-vinho); font-weight: 600; }
.mn-prosa--artigo blockquote {
  margin: 1.8em 0;
  padding: 4px 0 4px 24px;
  border-left: 3px solid var(--mn-dourado);
  font-family: var(--mn-serifada);
  font-size: 1.2em;
  line-height: 1.5;
  color: var(--mn-tinta);
}
.mn-tabela-rolante {
  overflow-x: auto;
  margin-block: 1.8em;
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio-gr);
  -webkit-overflow-scrolling: touch;
}
.mn-prosa--artigo .mn-tabela-rolante table { margin: 0; min-width: 520px; border: 0; font-size: var(--mn-t-peq); line-height: 1.5; }
.mn-prosa--artigo .mn-tabela-rolante th,
.mn-prosa--artigo .mn-tabela-rolante td { border: 0; border-bottom: 1px solid var(--mn-linha); padding: 12px 16px; vertical-align: top; }
.mn-prosa--artigo .mn-tabela-rolante tr:last-child td { border-bottom: 0; }
.mn-prosa--artigo .mn-tabela-rolante th { background: var(--mn-espresso); color: var(--mn-creme); font-weight: 600; }
.mn-prosa--artigo .mn-tabela-rolante tbody tr:nth-child(even) td { background: #FBF9F6; }

mark.mn-confirmar {
  background: #FFE58A;
  color: #3A2A00;
  font-family: ui-monospace, Consolas, monospace;
  font-size: .82em;
  padding: 1px 5px;
  border-radius: 3px;
}

.mn-aviso-informativo {
  margin: 2.5rem 0 0;
  padding: 14px 18px;
  font-size: var(--mn-t-mini);
  line-height: 1.55;
  color: var(--mn-tinta-suave);
  background: var(--mn-creme);
  border-radius: var(--mn-raio);
}

.mn-post__tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 24px 0 0; padding: 0; }
.mn-post__tags li { margin: 0; }
.mn-post__tags a { font-size: var(--mn-t-mini); color: var(--mn-tinta-media); text-decoration: none; }
.mn-post__tags a:hover { color: var(--mn-vinho); text-decoration: underline; }

/* 13.7 Partilha ----------------------------------------------------------- */
.mn-partilha { display: flex; flex-direction: column; gap: 10px; }
.mn-partilha__rotulo {
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mn-tinta-suave);
}
.mn-partilha__lista { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.mn-partilha__lista li { margin: 0; }
.mn-partilha__lista a,
.mn-partilha__lista button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--mn-linha);
  border-radius: 50%;
  background: var(--mn-branco);
  color: var(--mn-tinta-media);
  cursor: pointer;
  transition: color var(--mn-transicao), border-color var(--mn-transicao), background var(--mn-transicao);
}
.mn-partilha__lista a:hover,
.mn-partilha__lista button:hover { color: var(--mn-vinho); border-color: var(--mn-vinho); }
.mn-partilha__lista .mn-copiado { color: var(--mn-branco); background: var(--mn-vinho); border-color: var(--mn-vinho); }
.mn-partilha__aviso {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: var(--mn-t-micro);
  color: var(--mn-branco);
  background: var(--mn-espresso);
  border-radius: var(--mn-raio);
  padding: 0;
  pointer-events: none;
}
.mn-partilha__aviso:not(:empty) { padding: 4px 8px; }

.mn-post__partilha-fim { margin-top: 28px; }
.mn-post__partilha-fim .mn-partilha { flex-direction: row; align-items: center; gap: 14px; flex-wrap: wrap; }
@media (min-width: 1024px) {
  .mn-post__grelha:not(.mn-post__grelha--sem-indice) .mn-post__partilha-fim { display: none; }
}

/* 13.8 Autor e chamada ---------------------------------------------------- */
.mn-caixa-autor {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  margin-top: 40px;
  padding: clamp(22px, 1rem + 1.4vw, 32px);
  border: 1px solid var(--mn-linha);
  border-radius: var(--mn-raio-gr);
}
.mn-caixa-autor__foto {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 18%;
  flex: 0 0 auto;
}
.mn-caixa-autor p { margin: 0; }
.mn-caixa-autor__rotulo {
  font-size: var(--mn-t-micro);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mn-dourado);
}
.mn-caixa-autor .mn-caixa-autor__nome { font-family: var(--mn-serifada); font-size: var(--mn-t-gr); font-weight: 600; color: var(--mn-tinta); line-height: 1.25; margin-top: 4px; }
.mn-caixa-autor .mn-caixa-autor__cargo { font-size: var(--mn-t-mini); color: var(--mn-tinta-suave); margin-top: 2px; }
.mn-caixa-autor .mn-caixa-autor__bio { font-size: var(--mn-t-peq); line-height: 1.65; color: var(--mn-tinta-media); margin: 12px 0 14px; }
@media (max-width: 560px) {
  .mn-caixa-autor { flex-direction: column; gap: 16px; }
  .mn-caixa-autor__foto { width: 72px; height: 72px; }
}

.mn-post .mn-chamada-artigo { margin: 32px 0 0; border-left: 0; border-top: 3px solid var(--mn-dourado); padding: clamp(24px, 1rem + 1.6vw, 36px); }
.mn-chamada-artigo .mn-sobretitulo { margin-bottom: 8px; }
.mn-chamada-artigo__botoes { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 560px) {
  .mn-chamada-artigo__botoes .mn-botao { width: 100%; }
}

@media print {
  .mn-progresso, .mn-post__lateral, .mn-indice-movel, .mn-partilha, .mn-chamada-artigo, .mn-faixa-artigos { display: none !important; }
  .mn-post__cabeca { background: none; color: #000; }
  .mn-post__titulo { color: #000; }
}

/* =========================================================================
   14. Revisao de telemovel (16/09)

   Medido a 375 px em todas as paginas: nenhuma rola de lado. O que se
   corrigiu aqui e acabamento.
   ========================================================================= */
@media (max-width: 767px) {
  /* As colunas empilhadas somavam o recuo do Elementor (15 px) ao da regua
     (18 px): o titulo abria 33 px para dentro e o texto seguinte a 18. Os
     numeros da home e os cartoes ficam como estavam - esses sim estao lado
     a lado ou tem moldura propria. */
  .elementor-top-section > .elementor-container > .elementor-column:not(.mn-cartao):not(.mn-numero):not(.mn-heroi__foto) > .elementor-element-populated {
    padding-left: 0;
    padding-right: 0;
  }

  /* Cartoes empilhados: a seccao (20 px), a regua (18) e a margem do
     cartao (8) somavam 46 px de recuo contra 18 do texto. O Elementor
     escreve o recuo da seccao no CSS da pagina, que carrega depois -
     dai o !important. */
  .elementor-top-section.mn-linha-cartoes { padding-left: 0 !important; padding-right: 0 !important; }
  .mn-linha-cartoes .mn-cartao > .elementor-element-populated { margin-left: 0; margin-right: 0; }

  /* A foto do heroi vai de ponta a ponta e encosta ao fundo da faixa. */
  .mn-heroi .mn-heroi__foto {
    width: calc(100% + var(--mn-gutter) * 2) !important;
    max-width: none;
    margin-inline: calc(var(--mn-gutter) * -1);
  }
}

@media (max-width: 640px) {
  /* Barra das areas: desliza, mas sem a barra de rolagem cinzenta. */
  .mn-areas-nav__lista { scrollbar-width: none; }
  .mn-areas-nav__lista::-webkit-scrollbar { display: none; }

  /* No artigo o titulo esta logo abaixo, e com ele a migalha partia em
     duas linhas. Fica so o passo anterior, como um "voltar". */
  .single-post .mn-barra-migalhas .mn-migalhas li:last-child { display: none; }
  .single-post .mn-barra-migalhas .mn-migalhas li:nth-last-child(2)::before {
    display: block;
    transform: rotate(-135deg);
  }
}

/* A chamada no fim da listagem era da cor do rodape e as duas faixas
   fundiam-se numa so. */
.mn-faixa-chamada { background: var(--mn-vinho); color: rgba(255, 255, 255, .86); }

/* Com o WhatsApp preenchido, o cabecalho ganha um segundo botao; entre
   1024 e ~1200 px, com o item Blog, as accoes passavam da borda da tela
   (1157 px numa janela de 1021). O botao flutuante ja cobre o WhatsApp. */
@media (max-width: 1279px) {
  .mn-cabecalho__accoes a[href*="wa.me"] { display: none; }
}
