.promo-card.promo-bonus[aria-haspopup="dialog"] { border:0; text-align:left; cursor:pointer; }
.promo-bonus[aria-haspopup="dialog"]:focus-visible { outline:3px solid var(--red); outline-offset:-4px; }
.loyalty-program-dialog { width:min(690px,calc(100% - 28px)); max-width:none; max-height:calc(100dvh - 36px); margin:auto; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.loyalty-program-dialog[open] { display:flex; flex-direction:column; }
.loyalty-program-dialog::backdrop { background:rgba(0,0,0,.55); backdrop-filter:blur(4px); }
.loyalty-program-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; flex-shrink:0; padding:28px 28px 22px; background:var(--loyalty-bg); }
.loyalty-program-kicker { color:var(--red); font-size:.7rem; font-weight:850; letter-spacing:.13em; }
.loyalty-program-head h2 { margin:10px 0; font:500 clamp(1.65rem,5vw,2.65rem)/1.06 Georgia,serif; overflow-wrap:anywhere; }
.loyalty-program-head p { margin:0; color:var(--muted); font-size:.88rem; }
.loyalty-program-head button { flex:0 0 42px; width:42px; height:42px; border:0; border-radius:50%; background:var(--paper); color:var(--ink); font-size:1.8rem; cursor:pointer; }
.loyalty-program-body { min-height:0; overflow:auto; overscroll-behavior:contain; padding:24px 28px; }
.loyalty-program-stats { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.loyalty-program-stats > div { display:grid; gap:6px; padding:18px; border-radius:18px; background:var(--cream); }
.loyalty-program-stats strong { color:var(--red); font:600 2.5rem/1.1 Georgia,serif; }
.loyalty-program-stats small { font:600 .85rem/1.2 Inter,system-ui,sans-serif; }
.loyalty-program-stats span { font-size:.8rem; }
.loyalty-program-description { white-space:pre-line; overflow-wrap:anywhere; }
.loyalty-program-body h3 { font-size:1rem; margin:24px 0 14px; }
.loyalty-program-steps { display:grid; gap:16px; margin:0; padding:0; counter-reset:loyalty-step; list-style:none; }
.loyalty-program-steps li { position:relative; padding-left:46px; counter-increment:loyalty-step; }
.loyalty-program-steps li::before { content:counter(loyalty-step); position:absolute; left:0; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--cream); color:var(--red); font-weight:800; }
.loyalty-program-steps p { margin:4px 0 0; color:var(--muted); font-size:.84rem; }
.loyalty-levels { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:10px; }
.loyalty-levels article { padding:14px; border:1px solid var(--line); border-radius:14px; }
.loyalty-levels h4,.loyalty-levels p { margin:0 0 8px; overflow-wrap:anywhere; }
.loyalty-levels p,.loyalty-levels dl { font-size:.8rem; }
.loyalty-levels dl { margin:0; }
.loyalty-levels dl > div { display:flex; justify-content:space-between; gap:10px; }
.loyalty-levels dd { margin:0; font-weight:700; }
.loyalty-program-period p { margin:0; font-size:.84rem; }
.loyalty-program-note { padding:14px; margin:22px 0 0; border-radius:12px; background:var(--cream); color:var(--muted); font-size:.78rem; }
.loyalty-program-footer { display:flex; grid-template-columns:none; flex-shrink:0; min-height:0; justify-content:center; margin:0; padding:16px 28px calc(16px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:var(--paper); color:var(--ink); }
.loyalty-program-footer a { display:block; width:100%; padding:13px 18px; border-radius:999px; background:var(--red); color:white; font-weight:800; text-align:center; text-decoration:none; }
@media(max-width:440px) { .loyalty-program-dialog { width:calc(100% - 16px); max-height:calc(100dvh - 16px); border-radius:20px; }.loyalty-program-head { padding:18px 16px; gap:10px; }.loyalty-program-body { padding:18px 16px; }.loyalty-program-stats > div { padding:14px 10px; }.loyalty-program-stats strong { font-size:2rem; }.loyalty-program-footer { padding:12px 16px; } }
@media(max-width:280px) { .loyalty-program-head p { display:none; }.loyalty-program-head h2 { font-size:1.35rem; }.loyalty-program-stats { grid-template-columns:1fr; }.loyalty-program-stats > div { padding:10px; }.loyalty-program-steps li { padding-left:38px; } }
