/* Fixed creative dimensions reserve space before download. Never stretch a banner. */
.ad-container { container-type: inline-size; min-width: 0; clear: both; }
.ad-slot { width: min(100%, var(--ad-width)); margin: 28px auto; text-align: center; }
.ad-label { display: block; height: 22px; color: var(--muted); font: 10px/22px var(--sans); letter-spacing: .06em; }
/* The link is exactly as wide as its banner: the empty sides of a wide place are not clickable. */
.ad-slot a { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; height: var(--ad-height); vertical-align: top; }
.ad-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: var(--ad-height); }
.ad-slot img { width: auto; height: auto; min-width: 0; max-width: 100%; max-height: var(--ad-height); object-fit: contain; background: var(--wash); }
.ad-placeholder { display: grid; place-content: center; border: 1px dashed var(--line); background: var(--wash); color: var(--muted); font: 13px var(--sans); }
.ad-mobile { display: none; }
.ad-continuation { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; }
.ad-continuation:not(:has(.ad-container-home_side)) { display: block; }
.ad-continuation > * { min-width: 0; }
@media(max-width: 767px) {
  .ad-desktop { display: none; }
  .ad-mobile { display: block; }
  .ad-continuation { display: block; }
  .ad-container { margin-inline: min(0px, calc((100% - 320px) / 2)); }
  .ad-slot { max-width: 100%; }
  .ad-container-home_side, .ad-container-home_lower, .ad-container-article_side { display: none; }
}
@media(min-width: 768px) {
  .article-layout:has(.ad-container-article_side) { grid-template-columns: minmax(0, 1fr) 300px; }
}
.ad-unavailable a { visibility: hidden; pointer-events: none; }
