/* Blog Yamamura — MVP Redesign
   - Minimal modern layout
   - Bryant typography (provide font files in /fontes/)
*/

/* 1) Font: Bryant (Yamamura)
   Arquivos incluídos em /fontes (OTF):
   - bryant-regular.otf
   - bryant-medium.otf
   - bryant-bold.otf
   - bryant-light.otf
   - bryant-italic.otf
   - bryant-bolditalic.otf

   Observação: OTF funciona, mas recomenda-se converter para WOFF2/WOFF para melhor performance.
*/
@font-face{
  font-family:"Bryant";
  src:
    url("../fontes/bryant-regular.woff2") format("woff2"),
    url("../fontes/bryant-regular.woff") format("woff"),
    url("../fontes/bryant-regular.otf") format("opentype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Bryant";
  src:
    url("../fontes/bryant-italic.woff2") format("woff2"),
    url("../fontes/bryant-italic.woff") format("woff"),
    url("../fontes/bryant-italic.otf") format("opentype");
  font-weight:400;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:"Bryant";
  src:
    url("../fontes/bryant-light.woff2") format("woff2"),
    url("../fontes/bryant-light.woff") format("woff"),
    url("../fontes/bryant-light.otf") format("opentype");
  font-weight:300;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Bryant";
  src:
    url("../fontes/bryant-medium.woff2") format("woff2"),
    url("../fontes/bryant-medium.woff") format("woff"),
    url("../fontes/bryant-medium.otf") format("opentype");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Bryant";
  src:
    url("../fontes/bryant-bold.woff2") format("woff2"),
    url("../fontes/bryant-bold.woff") format("woff"),
    url("../fontes/bryant-bold.otf") format("opentype");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Bryant";
  src:
    url("../fontes/bryant-bolditalic.woff2") format("woff2"),
    url("../fontes/bryant-bolditalic.woff") format("woff"),
    url("../fontes/bryant-bolditalic.otf") format("opentype");
  font-weight:700;
  font-style:italic;
  font-display:swap;
}

:root{
  --mvp-bg: #fff;
  --mvp-text: #111;
  --mvp-muted: #5c6470;
  --mvp-border: rgba(17,17,17,.10);
  --mvp-card: #fff;
  --mvp-accent: #111; /* override with brand accent if desired */
  --mvp-accent-contrast: #fff;
  --mvp-radius: 16px;
  --mvp-shadow: 0 10px 30px rgba(0,0,0,.06);
  --mvp-shadow-sm: 0 6px 18px rgba(0,0,0,.06);
  --mvp-maxw: 1160px;
}

html{ scroll-behavior:smooth; }
body{
  font-family: "Bryant", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--mvp-text);
  background: var(--mvp-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 2) Container */
.center{
  width: min(var(--mvp-maxw), calc(100% - 40px));
  margin-inline: auto;
}

/* 3) Header + top bar (light refresh) */
.top-header{
  background: #fff !important;
  border-bottom: 1px solid var(--mvp-border);
}
.top-header .center{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
  padding: 14px 0;
}
.header-logo img{ height: 38px; width:auto; }
.redesociais{
  display:flex;
  align-items:center;
  gap: 10px;
}
.redesociais .icone a{
  display:inline-flex;
  width: 34px;
  height: 34px;
  align-items:center;
  justify-content:center;
  border: 1px solid var(--mvp-border);
  border-radius: 999px;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.redesociais .icone a:hover{
  transform: translateY(-1px);
  box-shadow: var(--mvp-shadow-sm);
  background: rgba(0,0,0,.03);
}
.redesociais svg, .redesociais img{
  width: 16px;
  height: 16px;
}

/* 4) Search */
.busca{
  display:flex;
  align-items:center;
  gap: 10px;
}
.busca input{
  width: min(420px, 55vw);
  height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--mvp-border);
  outline:none;
  font-size: 14px;
}
.busca input:focus{
  box-shadow: 0 0 0 3px rgba(17,17,17,.10);
}
.busca a{
  display:inline-flex;
  width: 44px;
  height: 44px;
  align-items:center;
  justify-content:center;
  border: 1px solid var(--mvp-border);
  border-radius: 999px;
}

/* 5) Blog listing cards */
#contentInner.ct-blog{
  display:grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 18px 0 8px;
}

#contentInner article.servico{
  background: var(--mvp-card);
  border: 1px solid var(--mvp-border);
  border-radius: var(--mvp-radius);
  overflow:hidden;
  box-shadow: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
#contentInner article.servico:hover{
  transform: translateY(-2px);
  box-shadow: var(--mvp-shadow);
}

#contentInner .entry-info{
  display:flex;
  flex-direction:column;
  height:100%;
}
#contentInner .entry-thumb a, 
#contentInner .entry-thumb img{
  display:block;
  width:100%;
  height:auto;
}
#contentInner .entry-thumb img{
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #f3f4f6;
}
#contentInner .informacoes{
  padding: 14px 14px 16px;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
#contentInner .datacat{
  font-size: 12px;
  color: var(--mvp-muted);
  margin:0;
  line-height: 1.3;
}
#contentInner h3{
  margin:0;
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: -0.01em;
}
#contentInner h3 a{ color: inherit; text-decoration:none; }
#contentInner h3 a:hover{ text-decoration:underline; }

#contentInner .descricao{
  color: var(--mvp-muted);
  font-size: 14px;
  line-height: 1.55;
}
#contentInner .descricao a{ color: inherit; text-decoration:none; }

#contentInner .botao{
  margin-top: auto;
}
#contentInner .botao a.text{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--mvp-border);
  background: #fff;
  color: var(--mvp-text);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .06em;
  font-weight: 600;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
#contentInner .botao a.text:hover{
  transform: translateY(-1px);
  background: rgba(0,0,0,.03);
  box-shadow: var(--mvp-shadow-sm);
}

/* 6) Infinite scroll UI */
.mvp-infinite{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 10px;
  padding: 18px 0 28px;
}
.mvp-loader{
  display:none;
  color: var(--mvp-muted);
  font-size: 13px;
}
.mvp-loader.is-visible{ display:block; }
.mvp-loadmore{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--mvp-border);
  background:#fff;
  cursor:pointer;
  font-weight:600;
}
.mvp-loadmore:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* 7) Single post typography */
.page-blog-geral .titulodesc{
  background:#fff;
  border-radius: var(--mvp-radius);
}
.page-blog-geral h1.title{
  font-size: clamp(26px, 2.8vw, 40px);
  line-height: 1.12;
  letter-spacing: -0.02em;
}
.page-blog-geral .descricao{
  font-size: 16px;
  line-height: 1.75;
}
.page-blog-geral .descricao p{ margin: 0 0 14px; }
.page-blog-geral .descricao a{ color: inherit; text-decoration: underline; text-decoration-color: rgba(17,17,17,.25); }
.page-blog-geral .descricao img{ max-width:100%; height:auto; border-radius: 12px; }

/* Gutenberg-ish defaults */
.page-blog-geral .descricao h2{
  font-size: 22px;
  margin: 26px 0 12px;
  letter-spacing: -0.01em;
}
.page-blog-geral .descricao h3{
  font-size: 18px;
  margin: 22px 0 10px;
}
.page-blog-geral .descricao blockquote{
  margin: 18px 0;
  padding: 14px 16px;
  border-left: 3px solid var(--mvp-border);
  background: rgba(0,0,0,.03);
  border-radius: 12px;
}
.page-blog-geral .descricao ul, .page-blog-geral .descricao ol{
  padding-left: 20px;
}

/* 8) Footer refresh */
footer.elastic{
  border-top: 1px solid var(--mvp-border);
}
footer .copy p{
  color: var(--mvp-muted);
}

/* 9) Responsive */
@media (max-width: 1024px){
  #contentInner.ct-blog{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .top-header .center{ flex-wrap: wrap; }
  .busca input{ width: 100%; }
  #contentInner.ct-blog{ grid-template-columns: 1fr; }
}
/* --- MVP Hotfix 1.0.1: alinhamento do botão + evitar texto cortado --- */

/* Garante altura consistente do card e empurra o botão para o rodapé */
#contentInner article.servico{ display:flex; flex-direction:column; }
#contentInner .entry-info{ flex:1; }

/* Evita qualquer regra antiga de height/overflow cortando excerpt */
#contentInner .descricao,
#contentInner .descricao a{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  display:block;
}

/* Opcional: limita o resumo a 3 linhas sem "cortar" de forma estranha */
#contentInner .descricao a{
  display:-webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow:hidden !important;
}

/* Alinha o botão (mesma linha/base) */
#contentInner .botao{ display:flex; }
#contentInner .botao a.text{ width: fit-content; }

/* --- MVP Polish 1.0.2: tipografia e padronização --- */
:root{
  --mvp-font: "Bryant", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --mvp-h1: clamp(28px, 3.2vw, 44px);
  --mvp-h2: clamp(22px, 2.2vw, 30px);
  --mvp-h3: 18px;
}
body{ font-family: var(--mvp-font); line-height: 1.55; }
a{ text-underline-offset: 3px; }

h1,h2,h3{ font-family: var(--mvp-font); letter-spacing: -0.01em; }
h1{ font-size: var(--mvp-h1); line-height: 1.12; }
h2{ font-size: var(--mvp-h2); line-height: 1.2; }
h3{ font-size: var(--mvp-h3); line-height: 1.25; }

/* Botões */
#contentInner .botao a.text,
.mvp-loadmore{
  font-family: var(--mvp-font);
  font-weight: 700;
}

/* Meta (categorias e data) */
#contentInner .datacat{ text-transform: uppercase; letter-spacing: .06em; }

/* Cards mais consistentes */
#contentInner .informacoes{ min-height: 230px; }

/* --- MVP Responsive 1.0.3: tablets + mobile (força layout responsivo) --- */

/* Força a grade mesmo se o CSS antigo usar floats */
#contentInner.ct-blog{
  display:grid !important;
}
#contentInner article.servico,
#contentInner article.servico *{
  box-sizing:border-box;
}
#contentInner article.servico{
  width:100% !important;
  float:none !important;
}

/* Imagens sempre responsivas */
img, video, iframe{
  max-width:100%;
  height:auto;
}

/* Header em telas menores */
@media (max-width: 900px){
  .top-header .center{
    flex-wrap: wrap;
    justify-content: center;
  }
  .top-header .header-logo{ order: 1; width: 100%; display:flex; justify-content:center; }
  .top-header .loja-btn{ order: 2; }
  .top-header .redesociais{ order: 3; }
  .busca{
    order: 4;
    width: 100%;
    justify-content: center;
  }
  .busca input{
    width: 100% !important;
    max-width: none !important;
  }
}

/* Tablets: 2 colunas mais “folgadas” */
@media (max-width: 1024px){
  #contentInner.ct-blog{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
}

/* Celulares: 1 coluna, padding confortável */
@media (max-width: 640px){
  .center{
    width: calc(100% - 24px) !important;
  }
  #contentInner.ct-blog{
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  #contentInner .informacoes{
    padding: 14px !important;
  }
  #contentInner h3{
    font-size: 17px !important;
  }
  #contentInner .descricao{
    font-size: 14px !important;
  }
  .mvp-loadmore{
    width: 100%;
    max-width: 360px;
  }
}

/* Single post: garante leitura e evita “aperto” em mobile */
@media (max-width: 900px){
  .page-blog-geral .titulodesc,
  .page-blog-geral .descricao{
    width: 100% !important;
  }
  .page-blog-geral .descricao{
    font-size: 16px !important;
    line-height: 1.8 !important;
  }
}

/* Se existir sidebar/submenu lateral do tema, evita quebrar layout em mobile */
@media (max-width: 900px){
  .submenu{
    width: 100% !important;
    max-width: none !important;
  }
  .submenu ul{
    max-height: 60vh;
    overflow:auto;
  }
}

/* --- MVP Listing 1.0.4: 1 artigo por linha (layout de blog) --- */

/* Listing: sempre 1 coluna */
#contentInner.ct-blog{
  grid-template-columns: 1fr !important;
  gap: 18px !important;
  padding-top: 18px !important;
}

/* Card em largura total, com conteúdo mais "editorial" */
#contentInner article.servico{
  border-radius: 20px;
}
#contentInner .entry-thumb img{
  aspect-ratio: 21 / 9; /* mais "banner" para blog */
}

/* Tipografia do card: título mais destacado, resumo mais confortável */
#contentInner h3{
  font-size: 22px !important;
  line-height: 1.2 !important;
}
#contentInner .descricao{
  font-size: 15px !important;
  line-height: 1.65 !important;
}

/* Botão alinhado à esquerda (mais editorial) */
#contentInner .botao{
  justify-content: flex-start;
}
#contentInner .botao a.text{
  height: 42px;
}

/* Em telas grandes, limita largura do conteúdo do listing para leitura (sem ficar "estourado") */
@media (min-width: 1100px){
  #contentInner.ct-blog{
    max-width: 980px;
    margin-inline: auto;
  }
}

/* --- MVP Autofit 1.0.5: corrigir widths fixos do tema antigo (tablet/mobile) --- */

/* Evita scroll horizontal causado por widths fixos */
html, body{ max-width: 100%; overflow-x: hidden; }

/* Reset de containers comuns do tema legado */
.elastic,
.internas,
.archive,
.content-page,
.bloconoticias,
.bloco1,
.title-page,
.submenu,
.ct-blog,
#blog{
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

/* Garante que qualquer coluna/box legado não estoure */
.elastic *{
  max-width: 100%;
}

/* Layout: sidebar/submenu em cima no mobile/tablet */
@media (max-width: 1024px){
  main.internas,
  main#blog{
    display: block !important;
  }

  .submenu{
    position: relative !important;
    margin: 12px 0 16px !important;
    padding: 0 !important;
  }

  .submenu .vejacategorias{
    width: 100% !important;
  }

  /* menu lateral/categorias: ocupa a largura e vira lista rolável */
  .submenu ul,
  .submenu .menu-lateral{
    width: 100% !important;
    max-width: 100% !important;
  }

  /* botão loja e afins: quebra linha e não sobrepõe */
  .submenu .bt-loja{
    width: 100% !important;
    margin-top: 10px !important;
  }
  .submenu .bt-loja a{
    width: 100% !important;
    justify-content: center !important;
  }

  /* Área principal */
  .content-page,
  .bloconoticias,
  #contentInner{
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Mobile mais estrito */
@media (max-width: 640px){
  /* Padding geral */
  .center{ width: calc(100% - 20px) !important; }

  /* Banner/hero não estoura */
  header,
  .bannerinternas,
  .title-page,
  .title-page *{
    max-width: 100% !important;
  }

  /* Ajuste do bloco "Categorias / Loja Online" (evita ficar flutuando em cima de cards) */
  .submenu{
    z-index: 2;
  }
}

/* --- MVP One-Column Force 1.0.6: garante 1 artigo por linha mesmo com CSS legado --- */

/* Em vez de depender de grid/flex, força fluxo normal (um abaixo do outro) */
#contentInner,
#contentInner.ct-blog{
  display: block !important;
}

#contentInner > article,
#contentInner.ct-blog > article,
#contentInner article.servico{
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: both !important;
  margin: 0 0 18px 0 !important;
}

/* Remove qualquer coluna interna herdada */
#contentInner .entry-info{
  width: 100% !important;
}

/* --- MVP Editorial Feed 1.0.7: lista de artigos sequenciais (blog) --- */

/* Remove styling de "card" legado do feed */
#contentInner article.servico,
#contentInner article.servico:hover{
  transform: none !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
}

/* Novo item editorial */
#contentInner .mvp-post{
  position: relative;
  padding: 18px 0;
  border-bottom: 1px solid var(--mvp-border);
}
#contentInner .mvp-post:first-child{
  border-top: 1px solid var(--mvp-border);
}
#contentInner .mvp-post__link{
  position:absolute;
  inset:0;
  z-index:1;
}
#contentInner .mvp-post__body,
#contentInner .mvp-post__media{
  position:relative;
  z-index:2;
}
#contentInner .mvp-post__media img{
  width: 100%;
  height: auto;
  border-radius: 16px;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  background: #f3f4f6;
}

/* Meta */
#contentInner .mvp-post__meta{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
  align-items:center;
  margin-top: 14px;
  color: var(--mvp-muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
#contentInner .mvp-post__dot{ opacity:.6; }

/* Title */
#contentInner .mvp-post__title{
  margin: 10px 0 8px;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.18;
  letter-spacing: -0.015em;
}
#contentInner .mvp-post__title a{
  position:relative;
  z-index:3;
  color: inherit;
  text-decoration:none;
}
#contentInner .mvp-post__title a:hover{
  text-decoration: underline;
}

/* Excerpt */
#contentInner .mvp-post__excerpt{
  margin: 0;
  color: var(--mvp-muted);
  font-size: 15px;
  line-height: 1.7;
  max-width: 78ch;
}
#contentInner .mvp-post__excerpt a{
  position:relative;
  z-index:3;
  color: inherit;
  text-decoration:none;
}

/* Container de leitura */
#contentInner,
#contentInner.ct-blog{
  max-width: 980px;
  margin-inline: auto;
}

/* Esconde CTA legado do listing (se algum template antigo ainda renderizar) */
#contentInner .botao,
#contentInner .botaoeffect{ display:none !important; }

/* Mobile refinements */
@media (max-width: 640px){
  #contentInner,
  #contentInner.ct-blog{
    max-width: 100%;
  }
  #contentInner .mvp-post{ padding: 16px 0; }
  #contentInner .mvp-post__media img{ border-radius: 14px; }
  #contentInner .mvp-post__excerpt{ font-size: 14px; }
}

/* --- MVP Menu Fix 1.0.8: menu categorias/loja discreto e não fixo --- */

/* Remove qualquer fixo/sticky legado */
.submenu,
.menu-box,
.vejacategorias{
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
}

/* Oculta o submenu lateral (botões brancos arredondados)
   que apareciam sobre o feed de posts — fix v1.2.1 */
.submenu{
  display: none !important;
}

/* Texto e ícone mais "leve" */
.submenu .vejacategorias p,
.submenu .bt-loja a{
  font-size: 12px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
}
.submenu .bt-loja a{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 0 !important; /* evita virar barra cheia */
  background: transparent !important;
  border: 0 !important;
}

/* Lista de categorias fica abaixo, mas NÃO ocupa a tela */
.submenu ul,
.submenu .menu-lateral{
  width: 100% !important;
  max-width: 980px !important;
  margin: 8px auto 0 !important;
  padding: 10px 0 !important;
  border-top: 1px solid var(--mvp-border) !important;
  background: transparent !important;
}

/* Mobile: botões ficam 100% largura mas compactos e não fixos */
@media (max-width: 640px){
  .submenu .vejacategorias,
  .submenu .bt-loja{
    width: 100% !important;
    margin-right: 0 !important;
  }
}

/* --- MVP Submenu Compact 1.0.9: painel de categorias pequeno e não intrusivo --- */

/* garante que nada fique FIXO no meio da tela */
body .submenu,
body .submenu.elastic,
body .submenu *{
  position: static !important;
}

/* o container vira uma faixa discreta antes do conteúdo */
body .submenu{
  width: 100% !important;
  max-width: 980px !important;
  margin: 12px auto 18px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

/* botão "Categorias" compacto */
body .submenu .vejacategorias{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height: 38px !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  border: 1px solid var(--mvp-border) !important;
  background: #fff !important;
  gap: 10px !important;
  cursor: pointer;
  box-shadow: var(--mvp-shadow-sm) !important;
}
body .submenu .vejacategorias .open-nav{
  width: 16px; height: 16px;
  display:inline-block;
}
body .submenu .vejacategorias p{
  margin:0 !important;
  font-size: 12px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
}

/* botão "Loja online" compacto (não barra enorme) */
body .submenu .bt-loja{
  display:inline-flex !important;
  margin-left: 10px !important;
  margin-top: 0 !important;
  background: transparent !important;
}
body .submenu .bt-loja a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height: 38px !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  border: 1px solid var(--mvp-border) !important;
  background: #fff !important;
  box-shadow: var(--mvp-shadow-sm) !important;
  gap: 10px !important;
  width: auto !important;
}

/* lista de categorias: vira um "dropdown" curto abaixo dos botões */
body .submenu ul{
  display:none; /* abre via slideToggle do JS */
  width: 100% !important;
  max-width: 980px !important;
  margin: 10px auto 0 !important;
  padding: 10px !important;
  background: #fff !important;
  border: 1px solid var(--mvp-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--mvp-shadow) !important;
  max-height: 45vh !important;
  overflow: auto !important;
}

/* itens menores e mais "blog" */
body .submenu ul li{
  list-style:none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body .submenu ul li a{
  display:block !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  color: var(--mvp-text) !important;
  text-decoration:none !important;
  font-size: 14px !important;
}
body .submenu ul li a:hover{
  background: rgba(0,0,0,.04) !important;
}

/* Mobile: botões empilham e continuam pequenos */
@media (max-width: 640px){
  body .submenu{
    max-width: 100% !important;
    margin: 10px 0 16px !important;
  }
  body .submenu .vejacategorias,
  body .submenu .bt-loja a{
    width: 100% !important;
    justify-content:center !important;
  }
  body .submenu .bt-loja{ margin-left: 0 !important; margin-top: 10px !important; }
}

/* --- MVP Submenu Nuclear Override 1.1.0: mata overlay gigante legado --- */

/* Base: nada fixo */
html, body{ overflow-x:hidden; }
body main .submenu,
body main .submenu.elastic{
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 1 !important;
}

/* Botões SEMPRE compactos */
body main .submenu .vejacategorias,
body main .submenu .bt-loja,
body main .submenu .bt-loja a{
  position: relative !important;
  width: auto !important;
  max-width: 100% !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 14px !important;
  margin: 0 10px 10px 0 !important;
  border-radius: 999px !important;
  border: 1px solid var(--mvp-border) !important;
  background: #fff !important;
  color: var(--mvp-text) !important;
  box-shadow: var(--mvp-shadow-sm) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Remove as “barras” verde/verde-escuro */
body main .submenu .vejacategorias{ background: #fff !important; }
body main .submenu .bt-loja{ background: transparent !important; }
body main .submenu .bt-loja a{ background: #fff !important; }

/* Conteúdo do botão */
body main .submenu .vejacategorias p,
body main .submenu .bt-loja a{
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  font-weight: 800 !important;
  margin: 0 !important;
}
body main .submenu .bt-loja a span,
body main .submenu .bt-loja a svg,
body main .submenu .vejacategorias span,
body main .submenu .vejacategorias svg{
  width: 16px !important;
  height: 16px !important;
}

/* A lista de categorias vira dropdown absoluto (não modal/overlay) */
body main .submenu ul{
  position: absolute !important;
  top: 48px !important;
  left: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: min(520px, calc(100vw - 24px)) !important;
  max-width: 520px !important;
  margin: 0 !important;
  padding: 10px !important;
  background: #fff !important;
  border: 1px solid var(--mvp-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--mvp-shadow) !important;
  max-height: 55vh !important;
  overflow: auto !important;
  z-index: 50 !important;
}

/* Se algum CSS legado tentar transformar UL em tela cheia, neutraliza */
body main .submenu ul,
body main .submenu ul *{
  position: relative;
}
body main .submenu ul{ height: auto !important; }

/* Itens do dropdown */
body main .submenu ul li{ border: 0 !important; }
body main .submenu ul li a{
  display:block !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  text-decoration:none !important;
  color: var(--mvp-text) !important;
}
body main .submenu ul li a:hover{ background: rgba(0,0,0,.04) !important; }

/* Mobile: dropdown full width */
@media (max-width: 640px){
  body main .submenu .vejacategorias,
  body main .submenu .bt-loja a{
    width: 100% !important;
    margin-right: 0 !important;
  }
  body main .submenu ul{
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
  }
}

/* --- MVP Responsive + Excerpt Fix 1.1.1 --- */

/* 1) Evita qualquer "corte" de texto vindo do CSS legado */
.mvp-post__excerpt,
.mvp-post__excerpt a,
.mvp-post__title,
.mvp-post__title a{
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Se algum CSS legado aplicar line-clamp no feed, neutraliza */
.mvp-post__excerpt a{
  display: inline !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
}

/* 2) Ajustes de layout em tablet/mobile para ficar fluído */
@media (max-width: 1024px){
  /* respiro lateral */
  #contentInner, #contentInner.ct-blog{
    padding: 0 12px;
    max-width: 100% !important;
  }
  /* imagem menos "panorâmica" para evitar recortes estranhos em telas menores */
  #contentInner .mvp-post__media img{
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 640px){
  /* tipografia mais confortável */
  #contentInner .mvp-post__title{
    font-size: 22px !important;
    line-height: 1.22 !important;
  }
  #contentInner .mvp-post__excerpt{
    font-size: 14px !important;
    line-height: 1.75 !important;
  }
  #contentInner .mvp-post__meta{
    font-size: 11px !important;
  }
  /* espaçamento entre posts */
  #contentInner .mvp-post{
    padding: 16px 0;
  }
}

/* 3) Corrige qualquer container legado com altura fixa no feed */
#contentInner,
#contentInner *{
  min-height: 0;
}

/* --- MVP Readability + Header Responsive 1.1.2 --- */

/* Leitura: textos dos ARTIGOS justificados (single post) */
.page-blog-geral .descricao,
.page-blog-geral .descricao p,
.page-blog-geral .descricao li{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

/* Evita "rios" exagerados em telas muito estreitas */
@media (max-width: 480px){
  .page-blog-geral .descricao,
  .page-blog-geral .descricao p{
    text-align: left;
  }
}

/* Header: remove sobreposição em tablet/mobile (estrutura do header.php) */
.top-header .center{
  display:flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}

/* Logo nunca estoura */
.top-header .header-logo{
  flex: 1 1 auto;
  display:flex;
  justify-content:center;
}
.top-header .header-logo img{
  max-width: 220px;
  height: auto;
}

/* Redes sociais quebram linha sem sobrepor */
.top-header .redesociais{
  flex: 1 1 auto;
  justify-content: flex-end;
  flex-wrap: wrap;
}

/* Tablet: busca e título mobile (desc-mob) ficam em linha própria */
@media (max-width: 1024px){
  .top-header .loja-btn{ order: 1; }
  .top-header .header-logo{ order: 2; width: 100%; justify-content: center; }
  .top-header .redesociais{ order: 3; width: 100%; justify-content: center; }
  .top-header .desc-mob{ order: 4; width: 100%; text-align: center; }
  .top-header .busca{ order: 5; width: 100%; justify-content: center; }
  .top-header .busca input{ width: 100% !important; max-width: 640px !important; }
}

/* Celular: reduz alturas/ícones e dá respiro */
@media (max-width: 640px){
  .top-header .center{ padding: 10px 0 !important; }
  .redesociais .icone a{ width: 32px; height: 32px; }
  .top-header .header-logo img{ max-width: 180px; }
  .top-header .desc-mob h1{
    font-size: 18px !important;
    line-height: 1.2 !important;
    margin: 4px 0 0 !important;
  }
  .top-header .busca input{
    height: 42px;
    font-size: 14px;
  }
}

/* Menu-box (desktop/tablet): evita colisão com busca quando a viewport é menor */
@media (max-width: 1100px){
  .menu-box .center{
    flex-wrap: wrap !important;
    gap: 12px !important;
  }
  .menu-box .menu{ width: 100% !important; }
  .menu-box .busca{ width: 100% !important; justify-content: center !important; }
  .menu-box .busca input{ width: 100% !important; max-width: 720px !important; }
}

/* --- CLEAN Patch 1.1.8: remove leak + submenu dropdown + banners + CMP --- */

/* Submenu compacto (dropdown) */
body main .submenu{
  position: relative !important;
  width: 100% !important;
  max-width: 980px !important;
  margin: 12px auto 18px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  z-index: 2 !important;
}
body main .submenu .vejacategorias,
body main .submenu .bt-loja a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height: 38px !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  border: 1px solid var(--mvp-border) !important;
  background: #fff !important;
  box-shadow: var(--mvp-shadow-sm) !important;
  gap: 10px !important;
  width: auto !important;
}
body main .submenu .bt-loja{ display:inline-flex !important; margin-left: 10px !important; background: transparent !important; }

body main .submenu ul{
  display:none;
  position: absolute !important;
  top: 48px !important;
  left: 0 !important;
  width: min(520px, calc(100vw - 24px)) !important;
  max-width: 520px !important;
  margin: 0 !important;
  padding: 10px !important;
  background: #fff !important;
  border: 1px solid var(--mvp-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--mvp-shadow) !important;
  max-height: 55vh !important;
  overflow: auto !important;
  z-index: 50 !important;
}
body main .submenu ul li a{
  display:block !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  text-decoration:none !important;
  color: var(--mvp-text) !important;
}
body main .submenu ul li a:hover{ background: rgba(0,0,0,.04) !important; }

.submenu, .menu-box{ height:auto !important; min-height:0 !important; }

/* Imagens/banners sempre dentro do quadro */
.page-blog-geral img,
#contentInner img,
.bannerinternas img,
.wp-block-image img,
figure img{
  max-width: 100% !important;
  height: auto !important;
  border-radius: 16px;
}

/* CMP: some enquanto rola */
body.mvp-scrolling #adopt-privacy,
body.mvp-scrolling .adopt-privacy,
body.mvp-scrolling .adopt-floating-button,
body.mvp-scrolling .adopt-widget,
body.mvp-scrolling #ot-sdk-btn-floating,
body.mvp-scrolling .ot-sdk-show-settings{
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(10px);
  transition: opacity .2s ease, transform .2s ease;
}

@media (max-width: 640px){
  body main .submenu .vejacategorias,
  body main .submenu .bt-loja a{ width: 100% !important; }
  body main .submenu .bt-loja{ margin-left: 0 !important; margin-top: 10px !important; }
  body main .submenu ul{ width: calc(100vw - 24px) !important; max-width: calc(100vw - 24px) !important; }
}
