/* App promo pop-up (APP20). Config: data/promo.json. Markup: promoModal() in src/build.mjs. Logic: /js/promo.js */
.promo-root[hidden]{display:none}
.promo-root{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.promo-backdrop{position:absolute;inset:0;background:rgba(20,20,24,.62);backdrop-filter:blur(2px);opacity:0;transition:opacity .25s}
.promo-dialog{position:relative;width:100%;max-width:440px;max-height:calc(100vh - 40px);overflow:auto;background:var(--char);color:#fff;border-radius:22px;padding:34px 30px 24px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.08);opacity:0;transform:translateY(14px) scale(.98);transition:opacity .25s,transform .25s}
.promo-dialog::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--sunset);border-radius:22px 22px 0 0}
.promo-root.is-open .promo-backdrop{opacity:1}.promo-root.is-open .promo-dialog{opacity:1;transform:none}
.promo-x{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:999px;border:0;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.promo-x:hover{background:rgba(255,255,255,.16)}
.promo-eyebrow{display:inline-block;font-family:var(--display);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);margin-bottom:10px}
.promo-dialog h2{font-family:var(--display);font-weight:800;font-size:1.55rem;line-height:1.2;margin:0 0 10px}
.promo-dialog h2 em{font-style:normal;background:var(--sunset);-webkit-background-clip:text;background-clip:text;color:transparent}
.promo-line{color:#C9C9D1;margin:0 0 20px;font-size:.98rem}
.promo-code{display:flex;align-items:center;justify-content:space-between;gap:12px;border:2px dashed var(--accent-2);border-radius:16px;padding:10px 10px 10px 22px;background:rgba(255,106,61,.08);margin:0 0 20px}
.promo-code-val{font-family:var(--display);font-weight:800;font-size:2rem;letter-spacing:.12em;color:#fff}
.promo-copy{flex:none}
.promo-copy.is-copied{background:#fff;color:var(--char)}
.promo-stores{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 0 14px}
.promo-stores .store{min-width:168px;justify-content:center}.promo-stores .store:hover{border-color:#888}
.promo-fine{font-size:.78rem;color:#9A9AA6;margin:0 0 6px}
.promo-no{background:none;border:0;color:#C9C9D1;font:inherit;font-size:.9rem;text-decoration:underline;cursor:pointer;padding:8px}
.promo-no:hover{color:#fff}
.promo-dialog:focus{outline:none}
.promo-dialog :focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}
.promo-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.promo-lock{overflow:hidden}
@media (max-width:600px){
  .promo-root{align-items:flex-end;padding:0}
  .promo-dialog{max-width:none;border-radius:22px 22px 0 0;padding:28px 20px calc(18px + env(safe-area-inset-bottom));transform:translateY(100%);max-height:92vh}
  .promo-dialog h2{font-size:1.3rem;padding:0 28px}
  .promo-code-val{font-size:1.65rem}
  .promo-stores .store{min-width:0;flex:1 1 0;padding:9px 10px}
}
@media (prefers-reduced-motion:reduce){.promo-backdrop,.promo-dialog{transition:none}}
/* Home "Get the SOLD app" section + /app/ page */
.app-promo .ap-hl{color:#fff}
.app-promo .ap-code{font-family:var(--display);font-weight:800;letter-spacing:.08em;color:var(--char);background:var(--sunset);padding:.1em .5em;border-radius:8px;white-space:nowrap}
.app-promo .ap-fine{font-size:.82rem;margin:0}
.app-promo .ap-qr{justify-self:center;text-align:center}
.app-promo .ap-qr p{font-size:.85rem;margin-top:12px}
.app-promo .qr{margin:0 auto;box-shadow:0 0 0 4px rgba(244,163,59,.35)}
@media (max-width:800px){.app-promo .ap-qr{display:none}}
.app-links{justify-content:center}
