.promo-icon { flex:none; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.promo-popup-dialog { padding:0; border:0; border-radius:8px; width:fit-content; max-width:min(560px,calc(100vw - 32px)); max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); margin:auto; color:#171717; background:#fff; box-shadow:0 18px 70px #0005; overflow:auto; }
.promo-popup-dialog::backdrop { background:rgba(0,0,0,.55); backdrop-filter:blur(3px); }
.promo-popup-dialog[open] { animation:promo-enter .24s ease-out both; }
.promo-popup-content { position:relative; }
.promo-popup-toolbar { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:6px 10px 6px 16px; background:#fff; }
.promo-popup-brand { font:600 18px/1.2 'Playfair Display',serif; letter-spacing:0; }
.promo-popup-dialog .promo-popup-close { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-radius:4px; background:#fff; color:#111; cursor:pointer; }
.promo-popup-close:hover { background:#f0f0f0; }
.promo-popup-media { display:flex; align-items:center; justify-content:center; background:#fff; text-decoration:none; }
.promo-popup-media img { display:block; width:auto; height:auto; max-width:min(560px,calc(100vw - 32px)); max-height:calc(100vh - 216px); max-height:calc(100dvh - 216px); object-fit:contain; }
.promo-popup-footer { display:flex; align-items:center; gap:16px; justify-content:space-between; padding:16px; min-width:min(300px,calc(100vw - 32px)); box-sizing:border-box; }
.promo-popup-footer h2 { margin:0; font:600 16px/1.45 'Montserrat',sans-serif; letter-spacing:0; overflow-wrap:anywhere; }
.promo-popup-cta { flex:none; display:inline-flex; align-items:center; justify-content:center; gap:4px; min-height:44px; padding:0 12px; border:1px solid #111; border-radius:4px; color:#fff; background:#111; font:600 14px/1.3 'Montserrat',sans-serif; letter-spacing:0; text-decoration:none; white-space:nowrap; }
.promo-popup-cta:hover { background:#343434; color:#fff; }
.promo-popup-dialog :focus-visible { outline:2px solid #222; outline-offset:3px; }
@keyframes promo-enter { from { opacity:0; transform:translateY(12px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width:640px) { .promo-popup-footer { padding:12px; flex-direction:column; gap:8px; text-align:center; } .promo-popup-cta { width:100%; box-sizing:border-box; font-size:15px; } .promo-popup-media img { max-height:calc(100vh - 228px); max-height:calc(100dvh - 228px); } }
@media (prefers-reduced-motion:reduce) { .promo-popup-dialog[open] { animation:none; } }
