/* Google AdSense — contenedores con espacio reservado (evita layout shift / CLS)
 *
 * `.adsense-clip` fija la altura real de cada zona (con overflow:hidden como
 * red de seguridad). js/adsense.js lee esa altura y se la asigna también al
 * <ins> antes de pedir el anuncio -- si el <ins> queda sin altura propia y
 * dependemos del auto-tamaño "responsive" de Google, su script detecta el
 * choque con el overflow:hidden del contenedor y sobreescribe el height de
 * todos los padres con !important para no recortar el anuncio (eso causaba
 * el hueco gigante en móvil). Con el <ins> ya del tamaño correcto, Google no
 * necesita tocar nada.
 */

.adsense-slot {
  max-width: var(--max);
  margin: 24px auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.adsense-slot .adsense-label {
  text-align: center;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--text-faint);
  margin-bottom: 6px;
}

.adsense-clip {
  overflow: hidden;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
}

.adsense-slot .adsense-frame {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.adsense-slot ins.adsbygoogle {
  display: block;
  width: 100%;
}

/* Header leaderboard */
.adsense-header { margin: 0 auto; padding: 10px 20px; }
.adsense-header .adsense-clip { height: 90px; max-width: 728px; margin: 0 auto; }

/* In-article (debajo del H1 / intro) — banner horizontal, no rectángulo */
.adsense-in-article .adsense-clip { height: 100px; max-width: 728px; margin: 0 auto; }

/* Mid-content — banner horizontal */
.adsense-mid-content .adsense-clip { height: 100px; max-width: 728px; margin: 0 auto; }

/* Before footer / native — banner horizontal */
.adsense-before-footer .adsense-clip { height: 100px; max-width: 728px; margin: 0 auto; }
.adsense-before-footer { max-width: var(--max); }

/* In-feed (home, dentro del grid de herramientas) — banner horizontal */
.adsense-in-feed {
  grid-column: 1 / -1;
  margin: 0;
  padding: 0;
  max-width: none;
}
.adsense-in-feed .adsense-clip { height: 100px; max-width: 728px; margin: 0 auto; }

/* Sidebar (desktop) */
.adsense-rail {
  display: none;
  position: fixed;
  top: 160px;
  width: var(--rail-w);
}
.adsense-rail .adsense-clip { height: 600px; }
.adsense-rail-left { left: calc(50% - var(--max) / 2 - var(--rail-gap) - var(--rail-w)); }
.adsense-rail-right { right: calc(50% - var(--max) / 2 - var(--rail-gap) - var(--rail-w)); }
@media (min-width: 1441px) {
  .adsense-rail { display: block; }
}

/* Shift the legacy custom ad rail below the new AdSense sidebar unit so they
   never overlap if both are active at the same time. */
.ad-rail { top: 800px; }

/* Density control: on mobile only 3 ads total site-wide (header, in-article,
   before-footer) — hide mid-content and in-feed to stay within AdSense's
   recommended mobile ad density and this site's own cap. */
@media (max-width: 900px) {
  .adsense-mid-content,
  .adsense-in-feed {
    display: none;
  }
}
