.promotion-admin, .promotion-home { width: min(100%, var(--content-width)); margin-inline: auto; padding-inline: var(--page-gutter); }
.promotion-admin { padding-block: 28px 60px; }
.promotion-admin-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:24px; }
.promotion-admin-grid article { padding:20px; border:1px solid var(--line); background:var(--surface); display:grid; gap:14px; }
.promotion-admin-grid article>span { color:var(--accent); font-weight:800; }
.promotion-admin-grid h2 { font-size:1.4rem; overflow-wrap:anywhere; }
.promotion-help { margin-block:16px; font-size:.8rem; line-height:1.65; color:var(--muted); }
.promotion-dialog { width:min(720px,calc(100% - 24px)); max-height:calc(100dvh - 24px); margin:auto; padding:0; border:1px solid var(--line); color:var(--text); background:var(--surface); overflow:auto; }
.promotion-dialog::backdrop { background:rgba(0,0,0,.8); }
.promotion-dialog header { display:flex; justify-content:space-between; align-items:center; padding:20px; border-bottom:1px solid var(--line); }
.promotion-dialog header button { width:44px; height:44px; background:transparent; color:var(--text); font-size:2rem; cursor:pointer; }
.promotion-dialog form { padding:20px; display:grid; gap:16px; }
.promotion-dialog label { display:grid; gap:8px; min-width:0; font-size:.8rem; }
.promotion-dialog input:not([type=checkbox]), .promotion-dialog textarea, .promotion-dialog select { min-width:0; width:100%; padding:12px; border:1px solid var(--line-strong); background:var(--bg); color:var(--text); }
.promotion-form-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.promotion-target-list { max-height:240px; overflow:auto; border:1px solid var(--line); margin-top:10px; }
.promotion-target-list label { display:flex; align-items:center; padding:10px; min-height:44px; border-bottom:1px solid var(--line); }
.promotion-target-list input { flex:0 0 auto; }
.promotion-target-list [hidden], [data-promotion-targets][hidden] { display:none; }
.promotion-home { padding-block:24px; display:grid; gap:12px; }
.promotion-home a { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding:20px; border:1px solid var(--line); border-left:3px solid var(--accent); background:var(--surface); }
.promotion-home strong { color:var(--accent); }.promotion-home span { flex:1; min-width:140px; }.promotion-home small { color:var(--muted); }
.promotion-price { display:inline-flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; }
.promotion-price del { color:var(--muted); font-size:.72em; font-weight:400; }
.promotion-price small { color:var(--accent); font-size:.65em; white-space:nowrap; }
@media(max-width:980px){.promotion-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.promotion-admin-grid{grid-template-columns:1fr;}.promotion-form-pair{grid-template-columns:1fr;}.promotion-dialog form,.promotion-dialog header{padding:16px;}}

/* Bottom right leaves room for freshness, favorites and sold-out labels. */
.promotion-badge { position:absolute; z-index:4; right:12px; bottom:12px; display:inline-flex; align-items:center; justify-content:center; padding:7px 10px; background:var(--accent); color:#111; font-family:var(--font-body, sans-serif); font-size:.8rem; font-weight:900; line-height:1.2; letter-spacing:0; pointer-events:none; box-shadow:0 2px 10px #0003; }
.home-featured-product__visual { position:relative; }
.promotion-price > span { color:var(--accent); font-weight:800; }
.promotion-price small { display:inline-flex; padding:3px 6px; border:1px solid currentColor; font-weight:800; line-height:1.2; }
.product-card .promotion-price small, .home-featured-product .promotion-price small { display:none; }
@media(max-width:560px){.promotion-badge{right:8px;bottom:8px;padding:6px 8px;font-size:.72rem;}}
[data-rotating-promotion] { display:contents; }
.product-card__visual:has(.product-sold-out) .promotion-badge { bottom:56px; }

.promotion-notice { position:fixed; z-index:990; top:calc(var(--header-height) + 14px); right:var(--page-gutter); width:min(360px,calc(100vw - 32px)); max-height:calc(100dvh - var(--header-height) - 32px); overflow:auto; padding:22px; border:1px solid var(--line-strong); border-left:3px solid var(--accent); background:var(--bg); color:var(--text); box-shadow:0 16px 48px #0005; }
.promotion-notice[hidden] { display:none; }
.promotion-notice__close { position:absolute; top:4px; right:4px; width:44px; height:44px; display:grid; place-items:center; border:0; background:transparent; color:var(--text); font-size:1.7rem; cursor:pointer; }
.promotion-notice__close:focus-visible { outline:2px solid var(--accent); outline-offset:-4px; }
.promotion-notice__eyebrow { display:block; padding-right:28px; color:var(--accent); font-size:.65rem; font-weight:800; letter-spacing:.14em; }
.promotion-notice h2 { margin:12px 20px 12px 0; font-size:1.1rem; line-height:1.3; overflow-wrap:anywhere; }
.promotion-notice p { margin:8px 0; font-size:.85rem; line-height:1.5; }
.promotion-notice p strong { color:var(--accent); font-size:1.4rem; }
.promotion-notice .promotion-notice__dates, .promotion-notice small { color:var(--muted); font-size:.75rem; line-height:1.6; }
html.menu-is-open .promotion-notice, html.quick-request-is-open .promotion-notice, body:has(dialog[open]) .promotion-notice { visibility:hidden; }
@media(max-width:560px){.promotion-notice{right:16px;padding:18px;}.promotion-notice h2{font-size:1rem;}}
