/* =========================
   UOB2 — TOPO (CLARO) + NAV ÚNICO (DESKTOP/MOBILE)
   ========================= */

:root{
  --uob-container: 1200px;
  --uob-pad: 16px;
  --uob-gap: 14px;

  --bg: #f2f4f7;
  --text: #1f2937;
  --muted: #6b7280;
  --line: rgba(17,24,39,.12);

  --hover-light: rgba(17,24,39,.06);
  --focus: 0 0 0 3px rgba(225,29,72,.22);
}

*{ box-sizing: border-box; }
html{ font-size: 16px; }
body{
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
}
html.uob2-lock{ overflow: hidden; }

.uob2-container{
  width: min(var(--uob-container), calc(100% - (2 * var(--uob-pad))));
  margin-inline: auto;
}

:focus-visible{
  outline: none;
  box-shadow: var(--focus);
  border-radius: 10px;
}

/* =========================
   HEADER
   ========================= */
.uob2-wrap{
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* TOPBAR */
.uob2-topbar{
  background: #1e1f20;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.uob2-topbar-inner{
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--uob-gap);
}
.uob2-topbar-title{
  font-weight: 700;
  letter-spacing: .2px;
  font-size: .95rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.uob2-topbar-actions{
  display: flex;
  align-items: center;
  gap: 10px;
}
.uob2-link{
  color: rgba(255,255,255,.95);
  text-decoration: none;
  font-weight: 600;
  padding: 8px 6px;
  border-radius: 8px;
}
.uob2-link:hover{ background: rgba(255,255,255,.12); }

.uob2-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.40);
  background: transparent;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.uob2-btn:hover{ background: rgba(255,255,255,.14); }

/* Profile */
.uob2-profile{ position: relative; }

.uob2-profile-trigger{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  background: #1e1f20;
  color: #fff;
  border: 0;
  cursor: pointer;
  border-radius: 999px;
}
.uob2-profile-trigger:hover{ background: rgba(255,255,255,.14); }

.uob2-member-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.uob2-name{
  max-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 700;
  font-size: .92rem;
}

.uob2-caret{
  width: 9px; height: 9px;
  border-right: 2px solid rgba(255,255,255,.9);
  border-bottom: 2px solid rgba(255,255,255,.9);
  transform: rotate(45deg);
  opacity: .9;
}

.uob2-menu{
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: 220px;
  background: #fff;
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
  padding: 8px;
  display: none;
  z-index: 2000;
}
.uob2-profile.is-open .uob2-menu{ display: block; }

.uob2-menu a{
  display: block;
  padding: 10px 10px;
  border-radius: 10px;
  text-decoration: none;
  color: var(--text);
  font-weight: 600;
}
.uob2-menu a:hover{ background: var(--hover-light); }

.uob2-sep{
  height: 1px;
  background: var(--line);
  margin: 6px 6px;
}

/* MAINBAR */
.uob2-mainbar{
  background: #252627;
  border-bottom: 1px solid rgba(0,0,0,.12);
  color: #fff;
}
.uob2-mainbar-inner{
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: var(--uob-gap);
  padding-block: 12px;
}

.uob2-brand{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #fff;
  padding: 6px 8px;
  border-radius: 10px;
}
.uob2-brand:hover{ background: rgba(255,255,255,.10); }

.uob2-logo{
  width: 50px;
  height: 50px;
  overflow: hidden;
}
.uob2-logo img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 2px;
}

.uob2-brand-title{
  font-weight: 900;
  letter-spacing: .2px;
  font-size: 1.02rem;
}

/* Burger */
.uob2-burger{
  display: none; /* aparece no mobile */
  width: 44px;
  height: 44px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.10);
  cursor: pointer;
}
.uob2-burger:hover{ background: rgba(255,255,255,.14); }
.uob2-burger i{
  display: block;
  width: 18px;
  height: 2px;
  background: rgba(255,255,255,.92);
  margin: 0 auto;
  position: relative;
  border-radius: 999px;
}
.uob2-burger i::before,
.uob2-burger i::after{
  content:"";
  position: absolute;
  left: 0;
  width: 18px;
  height: 2px;
  background: rgba(255,255,255,.92);
  border-radius: 999px;
}
.uob2-burger i::before{ top: -6px; }
.uob2-burger i::after{ top: 6px; }

/* Search (desktop) */
.uob2-search{ width: min(360px, 40vw); }
.uob2-search input{
  width: 100%;
  padding: 11px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.12);
  color: #fff;
}
.uob2-search input::placeholder{ color: rgba(255,255,255,.75); }
.uob2-search input:focus{
  outline: none;
  border-color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.16);
}

/* =========================
   NAV + SUBMENUS (DESKTOP)
   ========================= */
.uob2-nav{
  display: flex;
  align-items: center;
  gap: 14px;
}

/* remove marker do summary */
.uob2-item > summary{ list-style: none; }
.uob2-item > summary::-webkit-details-marker{ display: none; }

/* topo link */
.uob2-toplink{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,.92);
  font-weight: 800;
  letter-spacing: .15px;
  padding: 10px 6px;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  user-select: none;
  text-decoration: none;
  background: transparent;
}
.uob2-toplink:hover{
  color: #fff;
  border-bottom-color: rgba(255,255,255,.65);
}

/* seta */
.uob2-item > .uob2-toplink::after{
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid rgba(255,255,255,.85);
  border-bottom: 2px solid rgba(255,255,255,.85);
  transform: rotate(45deg);
  margin-left: 2px;
  opacity: .9;
}
.uob2-item[open] > .uob2-toplink::after{
  transform: rotate(-135deg);
}

/* submenu: apenas quando details [open] */
.uob2-submenu{ display: none; }
details.uob2-item[open] .uob2-submenu{ display: block; }

@media (min-width: 981px){
  .uob2-item{ position: relative; }

  .uob2-submenu{
    position: absolute;
    top: calc(100% + 10px);
    left: -10px;
    min-width: 220px;
    padding: 8px;
    border-radius: 12px;

    background: #ffffff;
    border: 1px solid rgba(17,24,39,.14);
    box-shadow: 0 18px 40px rgba(0,0,0,.18);
    z-index: 1500;
  }

  .uob2-submenu a{
    display: block;
    padding: 10px 10px;
    border-radius: 10px;
    color: #111827;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
  }
  .uob2-submenu a:hover{ background: rgba(17,24,39,.06); }
}

/* =========================
   NAV ÚNICO: MOBILE OVERLAY
   ========================= */
.uob2-backdrop{ display: none; }

@media (max-width: 980px){
  .uob2-burger{
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .uob2-search{ display: none !important; }
  .uob2-brand-title{ display: none; }
  .uob2-name{ display: none; }

  /* backdrop */
  .uob2-backdrop{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 9998;
    display: none;
  }
  .uob2-backdrop.is-open{ display: block; }

  /* nav vira drawer */
  .uob2-nav{
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: min(340px, 88vw);
    background: #ffffff;
    color: #111827;
    border-right: 1px solid rgba(17,24,39,.14);
    box-shadow: 12px 0 28px rgba(0,0,0,.18);

    display: none;              /* fechado */
    flex-direction: column;

    align-items: stretch;
    gap: 6px;
    padding: 14px;
    overflow: auto;

    z-index: 9999;
  }
  .uob2-nav.is-open{ display: flex; }

  /* links no mobile */
  .uob2-toplink{
    width: 100%;
    justify-content: space-between;
    padding: 12px 10px;
    border-radius: 10px;
    border-bottom: none;
    background: rgba(17,24,39,.04);
    color: #111827;
  }
  .uob2-toplink:hover{
    background: rgba(17,24,39,.06);
    color: #111827;
    border-bottom-color: transparent;
  }

  .uob2-submenu{
    position: static;
    padding: 6px 0 10px 10px;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  .uob2-submenu a{
    color: #111827;
    font-weight: 750;
  }
}

@media (max-width: 520px){
  .uob2-topbar-title{ display: none; }
}
/* TOPBAR */
.uob2-topbar{
  background:#1f2226; /* cinza escuro */
  border-bottom:1px solid rgba(255,255,255,.06);
}
.uob2-topbar-inner{
  min-height:44px;
  display:grid;
  grid-template-columns: 1fr minmax(260px, 560px) 1fr;
  gap:14px;
  align-items:center;
  padding:8px 0;
}
.uob2-topbar-side{
  display:flex;
  align-items:center;
  gap:10px;
}
.uob2-topbar-side--left{justify-content:flex-start}
.uob2-topbar-side--right{justify-content:flex-end}

/* ícones */
.uob2-ico{
  width:34px;height:34px;
  display:grid;place-items:center;
  border-radius:12px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.uob2-ico svg{width:18px;height:18px;fill:#b8ff3a;} /* verde-limão */
.uob2-ico:hover{
  transform:translateY(-1px);
  background:rgba(184,255,58,.10);
  border-color:rgba(184,255,58,.25);
}

/* busca */
.uob2-topbar-search{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  border-radius:14px;
  padding:6px 8px 6px 36px;
}
.uob2-search-ico{
  position:absolute;
  left:12px;
  display:grid;
  place-items:center;
}
.uob2-search-ico svg{width:16px;height:16px;fill:rgba(178,88,243,.9);}

.uob2-topbar-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#e8eaed;
  font-size:14px;
}
.uob2-topbar-search input::placeholder{color:rgba(232,234,237,.55);}

.uob2-search-btn{
  border:0;
  cursor:pointer;
  padding:8px 12px;
  border-radius:12px;
  background:rgba(178,88,243,.16);
  color:#e8eaed;
  font-weight:700;
  letter-spacing:.2px;
  transition:background .15s ease, transform .15s ease;
}
.uob2-search-btn:hover{
  background:rgba(178,88,243,.24);
  transform:translateY(-1px);
}

/* responsivo */
@media (max-width: 980px){
  .uob2-topbar-inner{
    grid-template-columns: 1fr;
    gap:10px;
  }
  .uob2-topbar-side--left,
  .uob2-topbar-side--right{
    justify-content:center;
  }
  .uob2-topbar-search{
    order:2;
  }
}
/* esconder a TOPBAR no celular */
@media (max-width: 980px){
  .uob2-topbar{ display:none !important; }
}
/* ===== FIX SLIDER: título escondido (z-index + layout do overlay) ===== */
#banner-slider-3 .post-preview-img-wrap{
  position: relative;
  overflow: hidden;
}

/* overlay escuro (fica no meio) */
#banner-slider-3 .post-preview-img-overlay{
  position: absolute;
  inset: 0;
  z-index: 2;
  /* se o tema já tem background, tudo bem; se não, aplique um gradiente: */
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,.08) 100%);
}

/* overlay do conteúdo (TEM que ficar acima do escuro) */
#banner-slider-3 .post-preview-overlay{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 3;

  padding: 26px 26px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;

  /* evita que o título fique “fora” da área visível */
  max-width: 100%;
}

/* garante legibilidade */
#banner-slider-3 .post-preview-title,
#banner-slider-3 .post-preview-text,
#banner-slider-3 .tag-ornament{
  position: relative;
  z-index: 4;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
}

/* título: não deixa “sumir” */
#banner-slider-3 .post-preview-title{
  margin: 0;
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.15;

  /* clamp opcional (não quebra nada se o navegador não suportar) */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* texto: mais curto pra não empurrar o título */
#banner-slider-3 .post-preview-text{
  margin: 0;
  opacity: .92;

  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* mobile: menos padding pra caber */
@media (max-width: 720px){
  #banner-slider-3 .post-preview-overlay{ padding: 18px 16px 18px; }
  #banner-slider-3 .post-preview-title{ -webkit-line-clamp: 2; }
  #banner-slider-3 .post-preview-text{ display: none; } /* opcional */
}
/* =========================
   NEWS — SIDEBAR sticky + NÃO sumir no mobile
   Cole NO FINAL do CSS
   ========================= */

/* garante que nada “corte” o sticky por overflow */
.layout-body,
.layout-body.layout-item,
.layout-content-1,
.layout-item{
  overflow: visible !important;
}

/* DESKTOP: sticky */
@media (min-width: 981px){
  .uob-aside{
    position: sticky;
    top: 92px;               /* ajuste conforme seu header */
    align-self: start;
    z-index: 2;
  }
}

/* MOBILE/TABLET: NÃO some + vira bloco normal */
@media (max-width: 980px){
  /* se o tema escondia a sidebar, isso sobrescreve */
  .uob-aside,
  .layout-sidebar{
    display: block !important;
    position: static !important;
    width: 100% !important;
    margin-top: 18px;
  }

  /* em layouts grid, garante que a sidebar venha depois */
  .layout-body{
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 980px){
  .uob-m-accordion{
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(17,24,39,.10);
    overflow: hidden;
    margin-bottom: 12px;
  }
  .uob-m-acc-title{
    list-style: none;
    cursor: pointer;
    padding: 12px 14px;
    font-weight: 900;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background: rgba(17,24,39,.04);
  }
  .uob-m-acc-title::-webkit-details-marker{ display:none; }
  .uob-m-acc-caret{
    width: 10px; height: 10px;
    border-right: 2px solid rgba(17,24,39,.7);
    border-bottom: 2px solid rgba(17,24,39,.7);
    transform: rotate(45deg);
  }
  details[open] .uob-m-acc-caret{ transform: rotate(-135deg); }
  .uob-m-accordion > .widget-sidebar{ padding: 12px; }
}
/* sticky no desktop */
@media (min-width: 981px){
  .uob-aside{
    position: sticky;
    top: 96px;              /* ajuste conforme altura do seu header */
    align-self: start;
  }
}

/* NÃO sumir no mobile: força aparecer e ficar abaixo do conteúdo */
@media (max-width: 980px){
  .uob-aside{
    display: block !important;
    position: static !important; /* sticky em mobile costuma atrapalhar */
    width: 100%;
    margin-top: 18px;
  }

  /* se seu layout usa grid/flex, isso ajuda a sidebar vir abaixo */
  .layout-body{
    display: block; /* se quebrar, troque por flex-direction:column */
  }
}
/* =========================================================
   OB ADS — CSS PROFISSIONAL (RESPONSIVO)
   Depende do HTML gerado por renderCampanha()
========================================================= */

:root{
  --ad-bg: rgba(255,255,255,.92);
  --ad-border: rgba(15,23,42,.12);
  --ad-shadow: 0 10px 28px rgba(15,23,42,.08);

  --ad-text: rgba(15,23,42,.92);
  --ad-muted: rgba(15,23,42,.70);

  --ad-accent: #b6ff00;      /* lime do portal */
  --ad-accent2: #9be600;

  --ad-radius: 16px;
}

/* wrapper */
.ob-ad{
  width: 100%;
  margin: 12px 0;
  border-radius: var(--ad-radius);
  border: 1px solid var(--ad-border);
  background: var(--ad-bg);
  box-shadow: var(--ad-shadow);
  overflow: hidden;
  position: relative;
}

/* “selo” discreto opcional (não polui) */
.ob-ad::before{
  content: "Publicidade";
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(15,23,42,.55);
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(15,23,42,.10);
  padding: 6px 9px;
  border-radius: 999px;
  backdrop-filter: blur(10px);
  z-index: 5;
  pointer-events: none;
}

/* link cobre tudo */
.ob-ad-link{
  display: block;
  color: inherit;
  text-decoration: none;
}

/* hover “clean” */
.ob-ad:hover{
  border-color: rgba(182,255,0,.40);
  box-shadow: 0 14px 34px rgba(15,23,42,.11);
  transform: translateY(-1px);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.ob-ad{ transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease; }

/* área da imagem */
.ob-ad-img{
  position: relative;
  background: rgba(15,23,42,.04);
  overflow: hidden;
}

/* imagem responsiva (sem distorcer) */
.ob-ad-img img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover; /* banner padrão */
}

/* texto */
.ob-ad-title{
  padding: 12px 14px 0;
  font-size: 14px;
  font-weight: 950;
  color: var(--ad-text);
  letter-spacing: -0.01em;
}
.ob-ad-desc{
  padding: 8px 14px 14px;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
  color: var(--ad-muted);
}

/* =========================================================
   TAMANHOS / ASPECT RATIO POR POSIÇÃO
   (Ajuste livre — são boas bases)
========================================================= */

/* header_global (banner largo) */
.ob-ad-header_global .ob-ad-img{
  aspect-ratio: 21 / 5; /* bem “topbar” */
}
@media (max-width: 980px){
  .ob-ad-header_global .ob-ad-img{ aspect-ratio: 16 / 6; }
}
@media (max-width: 560px){
  .ob-ad-header_global .ob-ad-img{ aspect-ratio: 16 / 8; }
}

/* ensaio_cosplay (entre seções, mais “retângulo”) */
.ob-ad-ensaio_cosplay .ob-ad-img{
  aspect-ratio: 16 / 6;
}
@media (max-width: 560px){
  .ob-ad-ensaio_cosplay .ob-ad-img{ aspect-ratio: 16 / 8; }
}

/* lateral_blog / lateral_home (cards mais altos, tipo sidebar) */
.ob-ad-lateral_blog .ob-ad-img,
.ob-ad-lateral_home .ob-ad-img{
  aspect-ratio: 4 / 5;
}
@media (max-width: 980px){
  /* em mobile sidebar vira “faixa” */
  .ob-ad-lateral_blog .ob-ad-img,
  .ob-ad-lateral_home .ob-ad-img{
    aspect-ratio: 16 / 7;
  }
}

/* rodape (banner médio) */
.ob-ad-rodape .ob-ad-img{
  aspect-ratio: 16 / 5;
}

/* topo_home (hero curto) */
.ob-ad-topo_home .ob-ad-img{
  aspect-ratio: 16 / 5;
}

/* dentro_materia (inline, equilibrado) */
.ob-ad-dentro_materia .ob-ad-img{
  aspect-ratio: 16 / 7;
}

/* =========================================================
   VIDEO (seu render é simples; deixa com cara “widget”)
========================================================= */

.ob-ad-video{
  padding: 14px;
  background: rgba(15,23,42,.03);
  border-top: 1px solid rgba(15,23,42,.08);
}
.ob-ad-video .ob-ad-title{
  padding: 0;
}
.ob-ad-video-url{
  margin-top: 10px;
  font-size: 12px;
  font-weight: 850;
  color: rgba(15,23,42,.70);
  overflow: auto;
}
.ob-ad-video-url code{
  display:block;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(15,23,42,.10);
}

/* =========================================================
   HTML ADS (quando tipo=html)
   - só garante que não “estoura” layout
========================================================= */
.ob-ad .ob-ad-html,
.ob-ad iframe,
.ob-ad img,
.ob-ad video{
  max-width: 100%;
}

/* =========================================================
   LINHA LIME (assinatura visual do portal)
========================================================= */
.ob-ad::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height: 3px;
  background: linear-gradient(90deg, var(--ad-accent), var(--ad-accent2));
  opacity: .95;
}

/* =========================================================
   ACESSIBILIDADE / FOCUS
========================================================= */
.ob-ad-link:focus{
  outline: none;
}
.ob-ad-link:focus .ob-ad-img{
  box-shadow: 0 0 0 4px rgba(182,255,0,.18) inset;
}

/* =========================================================
   MODO ESCURO (se o portal estiver escuro em algumas páginas)
   Ative colocando body.dark ou html.dark se você usa isso.
========================================================= */
body.dark .ob-ad,
html.dark .ob-ad{
  --ad-bg: rgba(11,16,32,.72);
  --ad-border: rgba(255,255,255,.10);
  --ad-shadow: 0 14px 40px rgba(0,0,0,.32);

  --ad-text: rgba(255,255,255,.92);
  --ad-muted: rgba(255,255,255,.72);
}
body.dark .ob-ad::before,
html.dark .ob-ad::before{
  color: rgba(255,255,255,.62);
  background: rgba(11,16,32,.55);
  border-color: rgba(255,255,255,.12);
}
body.dark .ob-ad-img,
html.dark .ob-ad-img{
  background: rgba(255,255,255,.06);
}/* =========================
   ADS (ob_sponsor_campanha)
   Pro + Responsivo + Hover
========================= */

.ob-ad{
  --ad-radius: 16px;
  --ad-border: rgba(15,23,42,.14);
  --ad-shadow: 0 12px 28px rgba(10,12,16,.10);

  --ad-lime: #b6ff00;
  --ad-lime2:#9be600;

  width: 100%;
  display: block;
  margin: 12px 0;
}

.ob-ad a.ob-ad-link{
  display:block;
  color:inherit;
  text-decoration:none;
}

/* container */
.ob-ad .ob-ad-inner{
  position: relative;
  border-radius: var(--ad-radius);
  overflow: hidden;
  border: 1px solid var(--ad-border);
  background: rgba(255,255,255,.84);
  box-shadow: var(--ad-shadow);

  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

/* FIX universal: “faixa branca”/gap no mobile (baseline do img) */
.ob-ad .ob-ad-img{
  display:block;
  line-height:0;
  font-size:0;
}
.ob-ad .ob-ad-img img{
  display:block;
  width:100%;
  height:auto;
  margin:0;
  padding:0;
  border:0;
  vertical-align:middle;
  transform: translateZ(0);
  transition: transform .22s ease, filter .22s ease;
}

/* overlay leve p/ leitura */
.ob-ad .ob-ad-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0) 55%,
    rgba(0,0,0,.18) 80%,
    rgba(0,0,0,.34) 100%
  );
  opacity: .95;
}

/* badge “PUBLICIDADE” (mais destacada) */
.ob-ad .ob-ad-badge{
  position:absolute;
  top: 10px;
  left: 10px;
  z-index: 3;

  display:inline-flex;
  align-items:center;
  gap:8px;

  padding: 8px 12px;
  border-radius: 999px;

  background: rgba(11,16,32,.86);
  border: 1px solid rgba(182,255,0,.55);
  color: rgba(255,255,255,.98);

  font-size: 12px;
  font-weight: 1000;
  letter-spacing: .10em;
  text-transform: uppercase;

  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  backdrop-filter: blur(10px);
}

.ob-ad .ob-ad-badge i{
  font-style: normal;
  font-weight: 1000;
  letter-spacing: .02em;

  padding: 2px 8px;
  border-radius: 999px;

  background: rgba(182,255,0,.20);
  border: 1px solid rgba(182,255,0,.55);
  color: rgba(182,255,0,.98);

  font-size: 11px;
}

/* TÍTULO overlay (canto direito, base) */
.ob-ad .ob-ad-title-overlay{
  position:absolute;
  right: 12px;
  bottom: 12px;
  z-index: 3;

  max-width: min(70%, 560px);
  padding: 10px 12px;

  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.16);

  background: rgba(11,16,32,.62);
  color: rgba(255,255,255,.98);

  font-size: 14px;
  font-weight: 950;
  letter-spacing: -0.01em;
  line-height: 1.15;

  text-shadow: 0 10px 22px rgba(0,0,0,.35);
  backdrop-filter: blur(10px);
}

/* Hover: lift + borda lime + zoom leve */
.ob-ad:hover .ob-ad-inner{
  transform: translateY(-2px);
  border-color: rgba(182,255,0,.50);
  box-shadow: 0 16px 38px rgba(10,12,16,.14);
}
.ob-ad:hover .ob-ad-img img{
  transform: scale(1.012);
  filter: saturate(1.06) contrast(1.02);
}

/* =========================
   HEADER GLOBAL (1180x275)
   width 100% + tamanho “correto”
========================= */

/* se sua renderização adiciona classe ob-ad-header_global (como você já está fazendo) */
.ob-ad.ob-ad-header_global{
  margin: 2px 0 2px;
}

/* trava a proporção do banner (evita “crescer” estranho no mobile) */
.ob-ad.ob-ad-header_global .ob-ad-img{
  aspect-ratio: 1180 / 275;
  width: 100%;
}

/* aqui usamos height:100% pra ocupar o aspect-ratio certinho */
.ob-ad.ob-ad-header_global .ob-ad-img img{
  width: 100%;
  height: 100%;
  object-fit: cover; /* como sua imagem é EXATA 1180x275, NÃO VAI cortar */
}

/* badge maior no header */
.ob-ad.ob-ad-header_global .ob-ad-badge{
  top: 12px;
  left: 12px;
}

/* título no header com um pouco mais de “presença” */
.ob-ad.ob-ad-header_global .ob-ad-title-overlay{
  right: 14px;
  bottom: 14px;
  font-size: 15px;
  padding: 10px 14px;
}

/* MOBILE refinado */
@media (max-width: 640px){
  .ob-ad{ margin: 2px 0; }

  .ob-ad .ob-ad-inner{
    border-radius: 14px;
  }

  .ob-ad .ob-ad-badge{
    top: 8px;
    left: 8px;
    padding: 7px 10px;
    font-size: 11px;
  }
  .ob-ad .ob-ad-badge i{
    font-size: 10px;
    padding: 2px 6px;
  }

  .ob-ad .ob-ad-title-overlay{
    right: 8px;
    bottom: 8px;
    max-width: 88%;
    font-size: 13px;
    padding: 9px 10px;
    border-radius: 12px;
  }
}

/* Acessibilidade: reduz animação se usuário pedir */
@media (prefers-reduced-motion: reduce){
  .ob-ad .ob-ad-inner,
  .ob-ad .ob-ad-img img{
    transition:none !important;
  }
  .ob-ad:hover .ob-ad-inner{ transform:none !important; }
  .ob-ad:hover .ob-ad-img img{ transform:none !important; filter:none !important; }
}
/* =========================================================
   TÍTULO DO ANÚNCIO: só desktop (some no celular)
   ========================================================= */

/* por padrão (desktop/tablet) o título aparece sobre a imagem */
.ob-ad .ob-ad-title{
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 4;

  max-width: calc(100% - 24px);
  padding: 8px 12px;

  border-radius: 999px;
  background: rgba(11,16,32,.78);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.96);

  font-size: 13px;
  font-weight: 950;
  letter-spacing: .02em;

  backdrop-filter: blur(10px);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* no mobile some (pra não poluir) */
@media (max-width: 640px){
  .ob-ad .ob-ad-title{
    display: none !important;
  }
}