.homepage-featured-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 300px; gap: 1.5rem; align-items: start; }
.homepage-featured-grid > .carousel-item { width: auto; min-width: 0; max-width: none; }
.homepage-ad { min-width: 0; width: 100%; max-width: var(--ad-max-width, 300px); margin: 0 auto; }
.homepage-ad-label { display: block; text-align: center; color: var(--text-secondary); font-size: .75rem; line-height: 1.5; margin-bottom: .35rem; }
.homepage-ad-stage { width: 100%; aspect-ratio: var(--ad-ratio, 1); position: relative; overflow: hidden; background: #000; }
.homepage-ad-art { position: absolute; top: 50%; left: 50%; transform-origin: center; }
.homepage-ad-art img, .homepage-ad-art iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; }
.homepage-ad-art a { display: block; width: 100%; height: 100%; }
.homepage-ad-banner { --ad-max-width: 728px; --ad-ratio: 728 / 90; margin-top: 2rem; }
.homepage-ad-mobile-only { display: none; }
@media (max-width: 1023px) {
    .homepage-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .homepage-featured-grid > .homepage-ad { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
    .homepage-featured-grid { grid-template-columns: minmax(0, 1fr); }
    .homepage-ad-banner { --ad-max-width: 320px; --ad-ratio: 320 / 100; }
    .homepage-ad-mobile-only { display: block; }
    .homepage-ad-desktop-only { display: none; }
}
