.promo-dialog{--promo-w:min(460px,calc(100vw - 32px),calc((100dvh - 150px) * .7106));width:var(--promo-w);max-width:none;max-height:none;padding:10px;border:1px solid #fff;border-radius:22px;background:#fbfcfc;box-shadow:0 30px 70px -30px #0b1a24b0;overflow:visible}
.promo-dialog::backdrop{background:#17242bc9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.promo-dialog img{width:100%;height:auto;border-radius:14px}
.promo-actions{display:flex;gap:10px;margin-top:10px}.promo-actions .btn{flex:1;padding:12px 16px;min-height:46px}
.promo-close{position:absolute;top:-14px;right:-14px;width:44px;height:44px;display:grid;place-items:center;border:1px solid #fff;border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 8px 20px -8px #0b1a2480;z-index:1}
.promo-close:hover{color:var(--accent)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
@media (max-width:520px){.promo-close{top:6px;right:6px;width:40px;height:40px;background:#ffffffe8}}
@media (prefers-reduced-motion:no-preference){.promo-dialog[open]{animation:promo-in .38s cubic-bezier(.2,.8,.2,1)}.promo-dialog[open]::backdrop{animation:promo-fade .38s ease}}
@keyframes promo-in{from{opacity:0;transform:translateY(18px) scale(.97)}}@keyframes promo-fade{from{opacity:0}}
