/* Promo surfaces. Tokens follow Specs/bmad/DESIGN.md.
   No colour here is the theme's sale red (#c62828) - that belongs to
   WooCommerce sale badges and must never mean "promotion". */
.af-promo{--af-green:#2e7d32;--af-green-dark:#1b5e20;--af-green-soft:#e8f3e5;--af-green-tint:#f4f9f2;--af-ink:#222;--af-body:#555;--af-muted:#767676;--af-border:#e1e1e1;--af-focus:#0b65c2;--af-error:#b3261e}

/* ---------- modal ---------- */
.af-promo__overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:99999}
.af-promo__dialog{background:#fff;border-radius:10px;box-shadow:0 18px 48px rgba(0,0,0,.22);max-width:760px;width:100%;display:flex;overflow:hidden;opacity:0;transform:translateY(8px);animation:af-promo-in .18s ease-out forwards}
@keyframes af-promo-in{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.af-promo__dialog{animation:none;opacity:1;transform:none}}
.af-promo__offer{background:var(--af-green-soft);padding:32px;flex:0 0 40%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.af-promo__amount{color:var(--af-green);font-size:clamp(56px,12vw,88px);font-weight:800;line-height:.95;letter-spacing:-.02em}
.af-promo__label{color:var(--af-green-dark);font-size:18px;font-weight:600;letter-spacing:.06em;margin-top:4px}
.af-promo__content{padding:32px;flex:1;position:relative;min-width:0}
.af-promo__close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;background:none;color:var(--af-muted);font-size:22px;line-height:1;cursor:pointer;border-radius:6px}
.af-promo__heading{color:var(--af-ink);font-size:clamp(20px,3.2vw,26px);font-weight:700;line-height:1.25;margin:0 24px 8px 0}
.af-promo__body,.af-promo__condition{color:var(--af-body);font-size:15px;line-height:1.55;margin:0 0 8px}
.af-promo__condition,.af-promo__consent{font-size:13px;line-height:1.45}
.af-promo__consent{color:var(--af-muted);margin:12px 0 0}
.af-promo__field{margin-top:24px}
.af-promo__field label{display:block;font-size:13px;color:var(--af-body);margin-bottom:4px}
.af-promo__input{width:100%;min-height:48px;padding:0 12px;border:1px solid var(--af-border);border-radius:6px;color:var(--af-ink);font-size:16px;background:#fff}
.af-promo__input:focus{border-color:var(--af-green);outline:2px solid var(--af-focus);outline-offset:2px}
.af-promo__cta{display:block;width:100%;min-height:48px;margin-top:12px;border:0;border-radius:9999px;background:var(--af-green);color:#fff;font-size:16px;font-weight:700;cursor:pointer}
.af-promo__cta:hover,.af-promo__cta:focus{background:var(--af-green-dark)}
.af-promo__cta[disabled]{opacity:.6;cursor:default}
.af-promo__dismiss{display:block;width:100%;min-height:44px;margin-top:4px;border:0;background:none;color:var(--af-muted);font-size:13px;text-decoration:underline;cursor:pointer}
.af-promo__error{color:var(--af-error);font-size:13px;margin:8px 0 0;min-height:18px}
.af-promo__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.af-promo__code{display:inline-block;margin:8px 0;padding:8px 16px;border:1px dashed var(--af-green);border-radius:6px;color:var(--af-green-dark);font-size:22px;font-weight:800;letter-spacing:.08em}
@media (max-width:519px){.af-promo__dialog{flex-direction:column}.af-promo__offer{flex:0 0 auto;padding:20px}.af-promo__content{padding:20px}}

/* ---------- free-shipping threshold ---------- */
.af-promo-threshold{margin:0 0 16px;min-height:44px}
.af-promo-threshold[hidden]{display:none}
.af-promo-threshold__text{margin:0 0 8px;font-size:14px;color:#222}
.af-promo-threshold__track{height:6px;border-radius:9999px;background:#e1e1e1;overflow:hidden}
.af-promo-threshold__fill{display:block;height:100%;border-radius:9999px;background:#2e7d32;transition:width .24s ease}
@media (prefers-reduced-motion:reduce){.af-promo-threshold__fill{transition:none}}
.af-promo-threshold.is-complete .af-promo-threshold__fill{background:#1b5e20}

/* ---------- product strip ---------- */
.af-promo-strip{background:#f4f9f2;border:1px solid #e8f3e5;border-radius:6px;color:#222;font-size:13px;line-height:1.45;margin:12px 0;padding:8px 12px}
