/* ============================================================
   style-blog.css — Seção Guias | Rua CEP
   Versão consolidada com tabelas, headings e Mais Sugestões
============================================================ */

.gn-container {
  width: 100%;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
}
@media (min-width: 576px) { .gn-container { padding-left: 20px; padding-right: 20px; } }
@media (min-width: 992px) { .gn-container { padding-left: 28px; padding-right: 28px; } }

:root {
  --gn-azul: #0F71B5;
  --gn-hr:   #e4e4e4;
  --gn-hrk:  #1a1a2e;
  --gn-txt:  #1a1a2e;
  --gn-sub:  #5a6a7a;
  --cat-postais:     #0F71B5;
  --cat-envios:      #DDB237;
  --cat-ecommerce:   #2e7d32;
  --cat-localidades: #6a1b9a;
}

/* Texto colorido por categoria */
.gn-cat-color-postais     { color: var(--cat-postais)     !important; }
.gn-cat-color-envios      { color: var(--cat-envios)      !important; }
.gn-cat-color-ecommerce   { color: var(--cat-ecommerce)   !important; }
.gn-cat-color-localidades { color: var(--cat-localidades) !important; }

/* gn-secao-head border-bottom por categoria */
.gn-secao-head-postais     { border-bottom-color: var(--cat-postais)     !important; }
.gn-secao-head-envios      { border-bottom-color: var(--cat-envios)      !important; }
.gn-secao-head-ecommerce   { border-bottom-color: var(--cat-ecommerce)   !important; }
.gn-secao-head-localidades { border-bottom-color: var(--cat-localidades) !important; }

/* Badge DESTAQUE por categoria */
.gn-badge-cat-postais     { background: var(--cat-postais); }
.gn-badge-cat-envios      { background: var(--cat-envios); }
.gn-badge-cat-ecommerce   { background: var(--cat-ecommerce); }
.gn-badge-cat-localidades { background: var(--cat-localidades); }

/* Subnav item ativo por categoria */
.gn-snav--cat-postais     { color: var(--cat-postais)     !important; border-bottom-color: var(--cat-postais)     !important; }
.gn-snav--cat-envios      { color: var(--cat-envios)      !important; border-bottom-color: var(--cat-envios)      !important; }
.gn-snav--cat-ecommerce   { color: var(--cat-ecommerce)   !important; border-bottom-color: var(--cat-ecommerce)   !important; }
.gn-snav--cat-localidades { color: var(--cat-localidades) !important; border-bottom-color: var(--cat-localidades) !important; }

/* gn-sugs-label e gn-leia-lbl por categoria */
.gn-sugs-label--azul            { color: var(--gn-azul)         !important; border-bottom-color: var(--gn-azul)         !important; }
.gn-sugs-label--cat-postais     { color: var(--cat-postais)     !important; border-bottom-color: var(--cat-postais)     !important; }
.gn-sugs-label--cat-envios      { color: var(--cat-envios)      !important; border-bottom-color: var(--cat-envios)      !important; }
.gn-sugs-label--cat-ecommerce   { color: var(--cat-ecommerce)   !important; border-bottom-color: var(--cat-ecommerce)   !important; }
.gn-sugs-label--cat-localidades { color: var(--cat-localidades) !important; border-bottom-color: var(--cat-localidades) !important; }
.gn-leia-lbl { color: var(--gn-txt) !important; }

/* ── Sub-nav ───────────────────────────────────────────────── */
.gn-subnav {
  background: #fff;
  border-top: 1px solid var(--gn-hr);
  border-bottom: 1px solid var(--gn-hr);
}
.gn-subnav-inner { overflow: hidden; position: relative; }
.gn-subnav-scroll {
  display: flex;
  align-items: stretch;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.gn-subnav-scroll::-webkit-scrollbar { display: none; }
@media (min-width: 992px) {
  .gn-subnav-scroll { justify-content: center; }
  .gn-subnav .gn-subnav-fade { display: none; }
}
.gn-snav {
  flex-shrink: 0;
  padding: 11px 16px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #555;
  text-decoration: none;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  transition: color .15s;
}
.gn-snav:hover { color: var(--gn-azul); }
.gn-snav--on   { color: var(--gn-azul); border-bottom-color: var(--gn-azul); }
.gn-subnav-fade {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 40px;
  background: linear-gradient(to right, transparent, #fff 65%);
  pointer-events: none;
  transition: opacity .3s;
}
.gn-subnav-fade::after {
  content: '›';
  position: absolute;
  right: 8px; top: 50%;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: #bbb;
}

/* ── Divisores ─────────────────────────────────────────────── */
.gn-hr       { border: none; border-top: 1px solid var(--gn-hr); }
.gn-hr-thick { border: none; border-top: 2px solid var(--gn-hrk); }
.gn-hr-sec   { border: none; border-top: 1px solid #c8c8c8; }

/* ── Colunas topo ──────────────────────────────────────────── */
.gn-col-d { border-top: 1px solid var(--gn-hr); padding-top: 1.5rem; }
@media (min-width: 992px) {
  .gn-col-e { border-right: 1px solid var(--gn-hr); padding-right: 2rem !important; }
  .gn-col-d { border-top: none; padding-top: 0; padding-left: 2rem !important; }
}

/* ── Separadores grid 3 colunas ────────────────────────────── */
.gn-col-border { border-top: 1px solid var(--gn-hr); padding-top: 1.5rem; margin-top: .5rem; }
@media (min-width: 768px) {
  .gn-col-border { border-top: none; padding-top: 0; margin-top: 0; border-left: 1px solid var(--gn-hr); }
}

.gn-border-top    { border-top: 1px solid var(--gn-hr); }
.gn-sec-item-next { margin-top: 20px; padding-top: 4px; }

/* ── Imagens ───────────────────────────────────────────────── */
.gn-img {
  overflow: hidden;
  position: relative;
  background: #f0f0f0;
  display: block;
}
.gn-img::before { content: ''; display: block; padding-bottom: 75%; }
.gn-img img {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .4s ease;
}
.gn-img:hover img { transform: scale(1.04); }

/* Post 1 hero: 3:2 */
.gn-img-hero--32::before { padding-bottom: 66.67%; }

.gn-img-horiz { width: 130px; flex-shrink: 0; }
.gn-img-horiz::before { padding-bottom: 75%; }

.gn-img-sec { width: 105px; flex-shrink: 0; }
.gn-img-sec::before { padding-bottom: 75%; }

.gn-p-borda {
  border-left: 3px solid var(--gn-azul);
  padding-left: 10px;
}

/* ── Slideshow ─────────────────────────────────────────────── */
.gn-slide { position: relative; overflow: hidden; }
.gn-slide-track { display: flex; transition: transform .5s ease; will-change: transform; }
.gn-slide-item  { min-width: 100%; flex-shrink: 0; }
.gn-sbtn {
  position: absolute;
  top: 37.5%;
  transform: translateY(-50%);
  width: 30px; height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,.88);
  border: none;
  font-size: 1.25rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #333;
  padding: 0;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
  transition: background .15s;
  z-index: 2;
}
.gn-sbtn:hover { background: #fff; }
.gn-sbtn-prev  { left: 8px; }
.gn-sbtn-next  { right: 8px; }
.gn-dots { display: flex; justify-content: center; gap: 5px; margin-top: 10px; margin-bottom: 4px; }
.gn-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  border: none;
  background: #ccc;
  cursor: pointer;
  padding: 0;
  transition: background .2s, transform .2s;
}
.gn-dot-on { background: var(--gn-azul); transform: scale(1.3); }

/* ── Títulos ───────────────────────────────────────────────── */
.gn-title-hero a, .gn-title-sm a, .gn-title-slide a,
.gn-title-c3 a, .gn-title-sug a {
  color: var(--gn-txt);
  text-decoration: none;
  transition: color .15s;
}
.gn-title-hero a:hover, .gn-title-sm a:hover, .gn-title-slide a:hover,
.gn-title-c3 a:hover, .gn-title-sug a:hover { color: var(--gn-azul); }

.gn-title-hero {
  font-size: clamp(2.2rem, 3.5vw, 2.3rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -.025em;
  margin-bottom: .5rem;
}
.gn-title-sm { font-size: 1rem; font-weight: 700; line-height: 1.28; margin: 0; }
.gn-title-slide {
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.35;
  margin: 0;
  padding-top: 4px;
  height: calc(1.05rem * 1.35 * 2);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.gn-title-c3  { font-size: 1.2rem; font-weight: 900; line-height: 1.22; letter-spacing: -.02em; }
.gn-title-sug { font-size: .95rem; font-weight: 700; line-height: 1.28; margin: 0; }

.gn-resumo    { font-size: .9rem;  color: var(--gn-sub); line-height: 1.6; }
.gn-resumo-sm {
  font-size: .82rem;
  color: var(--gn-sub);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Meta categoria + tempo ────────────────────────────────── */
.gn-card-meta { display: flex; align-items: center; gap: 8px; margin-top: 5px; flex-wrap: wrap; }
.gn-cat-pill {
  display: inline-block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.gn-read-time {
  font-size: .72rem;
  color: #999;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
}
.gn-read-time .bi { font-size: .68rem; }
.gn-cat-link {
  text-decoration: none;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: text-decoration .15s;
}
.gn-cat-link:hover { text-decoration: underline; }
.gn-meta   { font-size: .72rem; color: #aaa; }
.gn-meta i { margin-right: 2px; }

/* ── Cabeçalhos de seção ───────────────────────────────────── */
.gn-secao-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid;
  padding-bottom: 7px;
}
.gn-secao-lbl { font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gn-ver-mais  { font-size: .72rem; color: #aaa; text-decoration: none; font-weight: 500; transition: color .15s; }
.gn-ver-mais:hover { color: var(--gn-azul); }

.gn-sugs-label  { display: inline-block; padding-bottom: 7px; border-bottom: 2px solid; }
.gn-leia-header { padding-bottom: 7px; border-bottom: 2px solid var(--gn-hrk); }
.gn-sug-n { font-size: 2rem; font-weight: 900; color: #e0e0e0; line-height: 1; min-width: 26px; flex-shrink: 0; }

/* ── Paginação ─────────────────────────────────────────────── */
.gn-pag { display: flex; justify-content: center; gap: 4px; }
.gn-pgn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border: 1px solid #ddd;
  border-radius: 3px;
  font-size: .82rem;
  color: #555;
  text-decoration: none;
  transition: background .15s, color .15s, border-color .15s;
}
.gn-pgn:hover { background: #e8f4fd; color: var(--gn-azul); border-color: var(--gn-azul); }
.gn-pgn-on    { background: var(--gn-azul); border-color: var(--gn-azul); color: #fff; }

/* ── Badge destaque ────────────────────────────────────────── */
.gn-destaque-img { position: relative; }
.gn-destaque-badge {
  position: absolute;
  bottom: 8px; right: 8px;
  z-index: 2;
  display: inline-block;
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
  padding: 3px 7px;
  border-radius: 3px;
  line-height: 1.5;
  pointer-events: none;
}

/* ── Seções de categoria ───────────────────────────────────── */
.gn-secoes-par-row { margin-top: 0; }
.gn-secao-col { padding-top: 28px; padding-bottom: 28px; padding-left: 0; padding-right: 0; }
.gn-secao-col--left  { padding-right: 32px; }
.gn-secao-col--right { padding-left: 32px; border-left: 1px solid var(--gn-hr); }
@media (max-width: 767px) {
  .gn-secao-col--left  { padding-right: 0; padding-bottom: 0; }
  .gn-secao-col--right {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid var(--gn-hr);
    padding-top: 24px;
    margin-top: 24px;
  }
  .gn-secoes-par-row + .gn-hr-sec { margin-top: 0 !important; }
}

/* ── Cabeçalho de categoria ────────────────────────────────── */
.gn-cat-header { margin-bottom: .5rem; }
.gn-cat-header-title {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin: 0;
  line-height: 1.3;
}
@media (min-width: 992px) {
  .gn-cat-header-postais     { color: var(--cat-postais); }
  .gn-cat-header-envios      { color: var(--cat-envios); }
  .gn-cat-header-ecommerce   { color: var(--cat-ecommerce); }
  .gn-cat-header-localidades { color: var(--cat-localidades); }
}

/* Narrow navbar */
body.guias-hub .navbar .container,
body.guias-hub .navbar .container-xl,
body.guias-hub .navbar .container-xxl { max-width: 1080px; }

@media (min-width: 992px) {
  body.guias-hub main.py-4 { padding-top: 2.5rem !important; }
}

/* ── Breadcrumb ────────────────────────────────────────────── */
.gn-breadcrumb { margin: 0 0 1rem; }
.gn-breadcrumb-list {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  list-style: none;
  padding: 0; margin: 0;
  font-size: .72rem;
  white-space: nowrap;
  overflow: hidden;
}
.gn-breadcrumb-list li { display: flex; align-items: center; min-width: 0; }
.gn-breadcrumb-list li + li::before { content: '/'; padding: 0 6px; color: #ddd; flex-shrink: 0; }
.gn-breadcrumb-list a { color: #999; text-decoration: none; font-weight: 500; transition: color .15s; }
.gn-breadcrumb-list a:hover { color: var(--gn-azul); }

/* ── Página do post ────────────────────────────────────────── */
.gn-post-img-destaque::before { padding-bottom: 56.25%; }

.gn-post-titulo {
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  font-weight: 900;
  line-height: 1.18;
  letter-spacing: -.025em;
  color: var(--gn-txt);
}
.gn-post-resumo {
  font-size: 1rem;
  color: var(--gn-sub);
  line-height: 1.65;
  border-left: 3px solid var(--gn-hr);
  padding-left: 14px;
  margin-bottom: 1.25rem;
}
.gn-post-data { color: #aaa; }

/* ── Corpo do post ─────────────────────────────────────────── */
.gn-post-body { font-size: .95rem; color: #2a3240; line-height: 1.80; }
.gn-post-body p  { margin-bottom: 1.1rem; }
.gn-post-body a  { color: var(--gn-azul); }
.gn-post-body strong { font-weight: 700; color: var(--gn-txt); }

/* ── H2 / H3 — hierarquia visual clara ────────────────────────
   Princípio: mais espaço ACIMA que abaixo (heading pertence
   ao bloco que vem depois, não ao que veio antes).
   Referência: Medium, HubSpot, G1, Estadão.
   ─────────────────────────────────────────────────────────── */
.gn-post-body h2 {
  font-size: clamp(1.2rem, 2.5vw, 1.35rem);
  font-weight: 800;
  color: var(--gn-txt);
  line-height: 1.25;
  letter-spacing: -.015em;
  margin-top: 2.75rem;
  margin-bottom: 1.5rem;      /* espaço generoso entre heading e conteúdo */
  padding-top: 1.25rem;
  border-top: 1px solid #dde3ea; /* mais fina e discreta que var(--gn-hr) */
}
/* Primeiro h2 sem borda/margem excessiva */
.gn-post-body h2:first-child { border-top: none; margin-top: 0; padding-top: 0; }

.gn-post-body h3 {
  font-size: clamp(1rem, 2vw, 1.1rem);
  font-weight: 700;
  color: var(--gn-txt);
  line-height: 1.3;
  letter-spacing: -.01em;
  margin-top: 1.85rem;
  margin-bottom: .4rem;
  padding-left: .75rem;
  border-left: 3px solid var(--gn-azul);
}
/* h3 logo após h2: menos espaço, já separados pelo h2 */
.gn-post-body h2 + h3 { margin-top: 1rem; }

/* ── Mais Sugestões — lista horizontal (imagem + texto) ────────
   Layout: imagem à esquerda (tamanho fixo), texto à direita.
   Funciona igual em desktop e mobile — sem quebra de grid.
   Referência: G1 lista de notícias, UOL, Estadão móbile.
   ─────────────────────────────────────────────────────────── */
.gn-sugs-list { list-style: none; padding: 0; margin: 0; }

.gn-sugs-item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px solid var(--gn-hr);
}
.gn-sugs-item:first-child { padding-top: 0; }
.gn-sugs-item:last-child  { border-bottom: none; padding-bottom: 0; }

/* Imagem */
.gn-sugs-thumb {
  flex-shrink: 0;
  width: 110px;
  height: 73px;   /* proporção 3:2 */
  overflow: hidden;
  border-radius: 6px;
  background: #f0f0f0;
  position: relative;
}
.gn-sugs-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .35s ease;
  display: block;
}
.gn-sugs-item:hover .gn-sugs-thumb img { transform: scale(1.05); }

@media (min-width: 576px) {
  .gn-sugs-thumb { width: 140px; height: 93px; }
}

/* Texto */
.gn-sugs-info { flex: 1; min-width: 0; }

.gn-sugs-title {
  font-size: 1rem;       /* igual às seções acima */
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 4px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gn-sugs-title a { color: var(--gn-txt); text-decoration: none; transition: color .15s; }
.gn-sugs-title a:hover { color: var(--gn-azul); }

.gn-sugs-resumo {
  font-size: .82rem;     /* igual às seções acima */
  color: var(--gn-sub);
  line-height: 1.55;
  margin: 0 0 5px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Tabelas dentro do post ────────────────────────────────────
   Estratégia: scroll horizontal para tabelas de dados (3+ col).
   Empilhamento em cards apenas para tabelas simples (2 col).
   Referência: G1, Estadão, HubSpot Blog.
   ─────────────────────────────────────────────────────────── */

/* Wrapper responsivo com sombra de scroll */
.gn-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1.5rem 0;
  border-radius: 10px;
  border: 1px solid var(--gn-hr);
  background:
    linear-gradient(to right,  #fff 20%, rgba(255,255,255,0)),
    linear-gradient(to left,   #fff 20%, rgba(255,255,255,0)) 100% 0,
    linear-gradient(to right,  rgba(0,0,0,.06), transparent),
    linear-gradient(to left,   rgba(0,0,0,.06), transparent) 100% 0;
  background-repeat: no-repeat;
  background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
  background-attachment: local, local, scroll, scroll;
}
.gn-table-wrap table { margin: 0 !important; border-radius: 0; min-width: 420px; }

/* Tabela base */
.gn-post-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
  line-height: 1.5;
  background: #fff;
  margin-bottom: 15px;
}

/* Cabeçalho */
.gn-post-body table thead { background: #f0f4f8; }
.gn-post-body table th {
  padding: .7rem 1rem;
  font-weight: 700;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--gn-sub);
  border-bottom: 2px solid #cce5f7;
  text-align: left;
  white-space: nowrap;
}

/* Células */
.gn-post-body table td {
  padding: .65rem 1rem;
  border-bottom: 1px solid #f0f1f3;
  color: #2d3748;
  vertical-align: top;
}

/* Listras alternadas e hover */
.gn-post-body table tbody tr:nth-child(even) td { background: #fafbfc; }
.gn-post-body table tbody tr:hover td { background: #e8f4fd; transition: background .12s; }
.gn-post-body table tbody tr:last-child td { border-bottom: none; }

/* Primeira coluna como label */
.gn-post-body table td:first-child { font-weight: 600; color: var(--gn-txt); }

/* Alinhamentos */
.gn-post-body table th.center,
.gn-post-body table td.center { text-align: center; }
.gn-post-body table th.right,
.gn-post-body table td.right  { text-align: right; }

/* Variante compacta */
.gn-post-body table.gn-table-sm th,
.gn-post-body table.gn-table-sm td { padding: .45rem .75rem; font-size: .82rem; }

/* Variante com bordas */
.gn-post-body table.gn-table-bordered th,
.gn-post-body table.gn-table-bordered td { border: 1px solid var(--gn-hr); }

/* Badges dentro de células */
.gn-tb-badge         { display: inline-block; padding: .15rem .5rem; border-radius: 20px; font-size: .72rem; font-weight: 700; }
.gn-tb-badge--green  { background: #d1e7dd; color: #0a3622; }
.gn-tb-badge--red    { background: #f8d7da; color: #842029; }
.gn-tb-badge--blue   { background: #cce5f7; color: #0F71B5; }
.gn-tb-badge--yellow { background: #fff3cd; color: #856404; }
.gn-tb-badge--gray   { background: #f1f3f5; color: #495057; }

/* ── Mobile — tabelas ──────────────────────────────────────── */
@media (max-width: 640px) {
  /* Tabelas dentro do wrapper: scroll horizontal com indicador */
  .gn-table-wrap::after {
    content: '← role para ver mais →';
    display: block;
    text-align: center;
    font-size: .68rem;
    color: #aaa;
    padding: .3rem;
    background: #fafbfc;
    border-top: 1px solid var(--gn-hr);
  }

  /* Tabelas SEM wrapper: empilha em cards limpos */
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table) thead           { display: none; }
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table),
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table) tbody,
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table) tr,
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table) td              { display: block; width: 100%; }
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table) tr              { border: 1px solid var(--gn-hr); border-radius: 8px; margin-bottom: .75rem; overflow: hidden; }
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table) td              { border-bottom: 1px solid #f0f1f3; padding: .55rem .85rem; }
  .gn-post-body table:not(.gn-table-nowrap):not(.gn-table-wrap table) td:last-child   { border-bottom: none; }

  /* gn-table-nowrap: força display:table para scroll funcionar */
  .gn-post-body table.gn-table-nowrap { display: table; min-width: 440px; }
}

/* ── Sidebar do post ───────────────────────────────────────── */
.gn-post-sidebar { border-top: 2px solid var(--gn-hrk); padding-top: 1.5rem; margin-top: 1rem; }
@media (min-width: 992px) {
  .gn-post-sidebar {
    border-top: none;
    border-left: 1px solid var(--gn-hr);
    padding-left: 2rem !important;
    padding-top: 0;
    margin-top: 0;
  }
}
.gn-sidebar-section    { margin-bottom: 2.5rem; }
.gn-sidebar-item-sep   { border-top: 1px solid var(--gn-hr); padding-top: 14px; margin-top: 14px; }
.gn-sidebar-resumo {
  font-size: .75rem;
  color: var(--gn-sub);
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gn-sidebar-ad {
  background: #f8f9fa;
  border: 1px dashed #dee2e6;
  border-radius: 6px;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gn-img-sidebar { width: 72px; flex-shrink: 0; }
.gn-img-sidebar::before { padding-bottom: 75%; }

.gn-title-sidebar { font-size: .8rem; font-weight: 600; line-height: 1.3; color: var(--gn-txt); transition: color .15s; }
a:hover .gn-title-sidebar { color: var(--gn-azul); }

/* ── Post relacionado ──────────────────────────────────────── */
.gn-post-rel-titulo { font-size: .92rem; font-weight: 700; line-height: 1.3; margin: 0 0 3px; }
.gn-post-rel-titulo a { color: var(--gn-txt); text-decoration: none; }
.gn-post-rel-titulo a:hover { color: var(--gn-azul); }

/* ── Tags ──────────────────────────────────────────────────── */
.gn-post-tags  { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gn-tags-label { font-size: .72rem; font-weight: 700; color: #aaa; text-transform: uppercase; letter-spacing: .06em; }
.gn-tag {
  display: inline-block;
  font-size: .72rem;
  font-weight: 600;
  color: var(--gn-azul);
  background: #e8f4fd;
  border: 1px solid rgba(15,113,181,.15);
  padding: 3px 10px;
  border-radius: 20px;
  text-decoration: none;
  transition: background .15s;
}
.gn-tag:hover { background: #d0e9f9; }

/* ============================================================
   FIM style-blog.css
============================================================ */