/* ============================================================
   GAMERLAB — TIPOGRAFIA GLOBAL v1
   Normaliza títulos em todo o site para evitar a aparência
   excessivamente larga da Syne e reforçar a hierarquia H1/H2/H3.
   Carregado depois do CSS de cada página para funcionar como override.
   ============================================================ */

:root{
  --font-display:'DM Sans',sans-serif;
  --ff-d:'DM Sans',sans-serif;
}

/* Renderização consistente dos títulos */
h1,h2,h3,h4,h5,h6,
.art-title,.hero-title,.cat-hero-title,
.stitle,.hm-title,.hs-title,.news-title,.ctitle,.ptitle,
.feat-title,.deal-title,.cat-card-title,.blog-title,
.veja-title,.veja-card-title,.swh-title,.sw-news-title,.sw-promo-title,
.page-title,.card-title,.modal-title,.fct{
  font-family:'DM Sans',sans-serif;
  font-stretch:normal;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}

/* ============================================================
   ARTIGOS E PÁGINAS INSTITUCIONAIS
   ============================================================ */
.art-header-simple{
  margin-bottom:30px;
  padding-bottom:22px;
  border-bottom:1px solid var(--border2);
}

.art-title{
  font-family:'DM Sans',sans-serif !important;
  font-size:clamp(2rem,4vw,3.15rem);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.03em;
  max-width:920px;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:auto;
}

.art-header-simple .art-title{
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.1;
}

.art-body{
  font-size:15.5px;
  line-height:1.82;
}

.art-body h2{
  font-family:'DM Sans',sans-serif !important;
  font-size:clamp(1.45rem,2.1vw,1.78rem);
  font-weight:700;
  line-height:1.24;
  letter-spacing:-.022em;
  margin:2.35em 0 .72em;
  padding:0 0 10px;
  border-left:0;
  border-bottom:1px solid var(--border2);
  position:relative;
  text-transform:none;
}

.art-body h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:48px;
  height:3px;
  border-radius:99px;
  background:var(--cyan);
}

.art-body h3{
  font-family:'DM Sans',sans-serif !important;
  font-size:clamp(1.12rem,1.55vw,1.3rem);
  font-weight:700;
  line-height:1.32;
  letter-spacing:-.012em;
  margin:1.75em 0 .52em;
  text-transform:none;
}

/* ============================================================
   HOME E CATEGORIAS
   ============================================================ */
.hero-title{
  font-family:'DM Sans',sans-serif !important;
  font-weight:700;
  line-height:.98;
  letter-spacing:-.035em;
  font-stretch:normal;
}

.cat-hero-title{
  font-family:'DM Sans',sans-serif !important;
  font-weight:700;
  line-height:1.06;
  letter-spacing:-.028em;
  font-stretch:normal;
}

.section-hd h2,
.stitle{
  font-family:'DM Sans',sans-serif !important;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.015em;
  font-stretch:normal;
}

/* Títulos de destaques/cards: continuam compactos, mas sem aspecto largo */
.hm-title,.feat-title,.deal-title,.cat-card-title,.blog-title,
.hs-title,.news-title,.ctitle,.ptitle,.veja-card-title,
.rmi-title,.sw-news-title,.sw-promo-title{
  font-family:'DM Sans',sans-serif !important;
  font-stretch:normal;
  letter-spacing:-.012em;
}

.hm-title,.feat-title,.deal-title,.cat-card-title,.blog-title{
  font-weight:700;
}

/* Títulos auxiliares e rodapé */
.veja-title,.swh-title,.fct{
  font-family:'DM Sans',sans-serif !important;
  font-weight:700;
  letter-spacing:-.01em;
}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media(max-width:768px){
  .art-title,
  .art-header-simple .art-title{
    font-size:clamp(1.72rem,8vw,2.25rem);
    line-height:1.12;
    letter-spacing:-.025em;
  }

  .art-body h2{
    font-size:clamp(1.3rem,6vw,1.5rem);
    line-height:1.28;
    margin-top:2em;
  }

  .art-body h3{
    font-size:clamp(1.08rem,5vw,1.22rem);
  }

  .hero-title{
    letter-spacing:-.022em;
    line-height:1;
  }

  .cat-hero-title{
    letter-spacing:-.02em;
    line-height:1.08;
  }
}
