.banner-ad-section { padding: 16px; }
.banner-ad-slot { width: 326px; max-width: 100%; margin: 0 auto; padding: 12px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; box-sizing: border-box; text-align: center; }
.banner-ad-label { display: block; margin-bottom: 8px; color: #64748b; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.banner-ad-slot iframe { display: block; max-width: 100%; margin: 0 auto; }
#mobileBannerAd { position: fixed; bottom: 0; left: 0; right: 0; z-index: 40; display: flex; justify-content: center; padding: 8px 0 calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #e2e8f0; background: #fff; box-shadow: 0 -4px 20px #0001; }
#mobileBannerAd iframe { display: block; max-width: 100%; }
#mobileBannerAd button { position: absolute; top: -30px; right: 8px; width: 30px; height: 30px; border: 1px solid #e2e8f0; border-radius: 8px 8px 0 0; background: #fff; color: #334155; font-size: 22px; cursor: pointer; }
body.has-mobile-banner { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
body.locker-open .banner-ad-section, body.locker-open #mobileBannerAd { display: none; }
body.locker-open { padding-bottom: 0; }
