/* Magic Promotions – frontend */
:root{--mp-accent:#fd9d3e;--mp-accent-text:#fff}
.mp-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75em;font-weight:700;line-height:1.6;vertical-align:middle;background:var(--mp-accent);color:var(--mp-accent-text)}
.mp-gift-row .mp-gift-original{opacity:.55;margin-right:4px}
.mp-gift-row .mp-gift-free{text-decoration:none;font-weight:700}
.mp-gift-qty{display:inline-block;min-width:2em;text-align:center}
.mp-cart-messages{margin:0 0 1.25em}
.mp-notice{padding:.9em 1.1em;border-radius:10px;margin:0 0 .75em;background:#f7f7f7;border:1px solid #e6e6e6;font-size:.95em}
.mp-notice--success{background:#f1faf1;border-color:#cfe9cf}
.mp-notice--progress{background:#fff8ef;border-color:#f7dfc0}
.mp-progress-bar{height:8px;border-radius:999px;background:rgba(0,0,0,.08);margin-top:.6em;overflow:hidden}
.mp-progress-bar span{display:block;height:100%;background:var(--mp-accent);border-radius:999px;transition:width .4s ease}
.mp-gift-chooser{padding:1em 1.1em;border:2px dashed var(--mp-accent);border-radius:12px;margin:0 0 1em;background:#fffdf9}
.mp-gift-chooser__title{font-weight:700;margin-bottom:.75em}
.mp-gift-chooser__title small{font-weight:400;opacity:.7;margin-left:.5em}
.mp-gift-chooser__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75em}
.mp-gift-option{display:flex;flex-direction:column;align-items:center;gap:.35em;padding:.75em;border:1px solid #e3e3e3;border-radius:10px;background:#fff;cursor:pointer;text-align:center;font:inherit;color:inherit;transition:border-color .2s,transform .2s}
.mp-gift-option:hover{border-color:var(--mp-accent);transform:translateY(-2px)}
.mp-gift-option img{width:90px;height:90px;object-fit:cover;border-radius:8px}
.mp-gift-option__name{font-weight:600;font-size:.9em}
.mp-gift-option__price{font-size:.85em;opacity:.8}
.mp-gift-option__cta{margin-top:.25em;padding:.35em .9em;border-radius:999px;background:var(--mp-accent);color:var(--mp-accent-text);font-size:.8em;font-weight:700}
.mp-gift-option.is-loading{opacity:.5;pointer-events:none}
.mp-product-box{display:flex;gap:.75em;align-items:flex-start;padding:.9em 1em;margin:0 0 1.25em;border-radius:12px;background:#fff8ef;border:1px solid #f7dfc0;line-height:1.4}
.mp-product-box__icon{font-size:1.5em;line-height:1}
.mp-product-box__text{font-size:.92em;opacity:.9;margin-top:.15em}
.mp-loop-badge{position:absolute;z-index:5;padding:.3em .7em;border-radius:999px;background:var(--mp-accent);color:var(--mp-accent-text);font-size:.72em;font-weight:700;letter-spacing:.02em;pointer-events:none}
.mp-loop-badge--top-left{top:10px;left:10px}
.mp-loop-badge--top-right{top:10px;right:10px}
.mp-loop-badge--bottom-left{bottom:10px;left:10px}
.mp-loop-badge--bottom-right{bottom:10px;right:10px}
li.product{position:relative}

/* --- announcement bar --- */
.mp-announce{position:relative;z-index:1000!important;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 44px 10px 16px;background:var(--mp-accent);color:var(--mp-accent-text);font-weight:600;font-size:.95em;line-height:1.4;text-align:center}
.mp-announce__link{margin-left:8px;padding:4px 12px;border-radius:999px;background:rgba(0,0,0,.18);color:inherit;text-decoration:none;white-space:nowrap}
.mp-announce__link:hover{background:rgba(0,0,0,.3);color:inherit}
.mp-announce__close{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer;opacity:.8;padding:4px 8px}
.mp-announce.is-hidden{display:none}
/* --- modal --- */
.mp-modal{position:fixed!important;inset:0;z-index:100000!important;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.55)}
.mp-modal.is-open{display:flex}
.mp-modal__box{width:100%;max-width:640px;max-height:90vh;overflow:auto;background:#fff;border-radius:14px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.mp-modal__box .mp-gift-chooser{margin:0 0 12px}
.mp-modal__later{display:block;width:100%;padding:10px;border:0;background:transparent;color:#666;cursor:pointer;font:inherit;text-decoration:underline}
/* --- mini cart & add-to-cart hint --- */
.mp-mini-progress{font-size:.85em;padding:8px 10px;margin:0 0 10px;border-radius:8px;background:#fff8ef;border:1px solid #f7dfc0;line-height:1.35}
.mp-atc-hint{display:block;margin-top:6px;font-size:.92em;opacity:.9}
/* --- JS-decorated cards (any theme grid) --- */
.mp-promo .mp-loop-badge--js{position:absolute}
.mp-badge-host{position:relative}
