/* Studio Alpha Suite: Kortingen (promo bar, marquee item, badges, product lines, banner). Theme tokens with fallbacks. */
.sa-promo-tag { display: inline-flex; align-items: center; gap: .3rem; background: var(--wp--preset--color--accent, #2F5D45); color: #fff; border-radius: 999px; padding: .15rem .55rem; font-size: 11px; font-weight: 700; line-height: 1.4; letter-spacing: .01em; white-space: nowrap; }
.sa-promo-tag svg { color: currentColor !important; }

/* Announcement marquee item */
.sa-ticker-item.sa-promo-tick { font-weight: 700; color: var(--wp--preset--color--ink, #1F2328); }

/* Slim promo bar above the header */
.sa-promo-bar { background: var(--wp--preset--color--accent, #2F5D45); color: #fff; font-size: var(--wp--preset--font-size--xs, .8125rem); font-weight: 600; }
.sa-promo-bar[hidden] { display: none; }
.sa-promo-bar-link { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .25rem .6rem; min-height: 44px; padding: .4rem 16px; color: #fff !important; text-decoration: none; text-align: center; line-height: 1.35; }
.sa-promo-bar-link:hover .sa-promo-bar-text { text-decoration: underline; text-underline-offset: 3px; }
.sa-promo-bar-link > svg { flex: 0 0 auto; }
.sa-promo-bar .sa-promo-count { background: rgba(255, 255, 255, .16); border-radius: 999px; padding: .1rem .55rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sa-promo-bar-cta { white-space: nowrap; opacity: .9; }
@media (max-width: 781px) { .sa-promo-bar-cta { display: none; } }

/* Badges on product cards (top left of the image) */
.wc-block-components-product-image:has(.sa-promo-badges), .wc-block-components-product-image:has(.sa-promo-badges) > a { position: relative; display: block; }
.sa-promo-badges { position: absolute; top: .6rem; left: .6rem; z-index: 2; display: flex; flex-wrap: wrap; gap: .3rem; max-width: calc(100% - 1.2rem); pointer-events: none; }
.sa-promo-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: .3rem .6rem; font-size: 12px; font-weight: 700; line-height: 1.2; color: #fff; background: var(--wp--preset--color--accent, #2F5D45); box-shadow: 0 1px 2px rgba(31, 35, 40, .12); white-space: nowrap; }
.sa-promo-badge.is-sale { background: var(--wp--preset--color--clay, #A84B32); }

/* Product page: Omnibus line and campaign lines under the price */
.sa-omnibus { margin: .35rem 0 0 !important; font-size: var(--wp--preset--font-size--xs, .8125rem); color: var(--wp--preset--color--muted, #5B616B); font-weight: 500; }
.sa-omnibus .woocommerce-Price-amount { font-weight: 600; }
.woocommerce-variation-price .sa-omnibus { display: block; }
.sa-promo-lines { list-style: none; margin: .6rem 0 0 !important; padding: 0 !important; display: grid; gap: .4rem; }
.sa-promo-lines li { display: flex; align-items: flex-start; flex-wrap: wrap; gap: .35rem .5rem; margin: 0; padding: .55rem .8rem; border-radius: 12px; background: var(--wp--preset--color--sage-soft, #E4EDE5); color: var(--wp--preset--color--accent, #2F5D45); font-size: var(--wp--preset--font-size--sm, .9rem); font-weight: 600; line-height: 1.4; }
.sa-promo-lines li > svg { flex: 0 0 auto; margin-top: .15rem; }
.sa-promo-lines li > span:first-of-type { flex: 1 1 12rem; }
.sa-promo-lines li.is-sale { background: var(--wp--preset--color--clay-soft, #F6E3DC); color: #7E3522; }
.sa-promo-lines .sa-promo-count { font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }

/* Banner block */
.sa-promo-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; background: var(--wp--preset--color--accent, #2F5D45); color: #fff; border-radius: 28px; padding: clamp(1.25rem, 4vw, 2.5rem); margin-block: 1.5rem; box-sizing: border-box; }
.sa-promo-banner .sa-promo-tag { background: rgba(255, 255, 255, .16); }
.sa-promo-banner-body { flex: 1 1 20rem; min-width: 0; }
.sa-promo-banner-title { color: #fff !important; margin: .6rem 0 .3rem !important; font-size: clamp(1.4rem, 3.6vw, 2.25rem) !important; line-height: 1.15; letter-spacing: -.02em; font-weight: 800; }
.sa-promo-banner-text { margin: 0 !important; opacity: .92; font-size: var(--wp--preset--font-size--md, 1rem); }
.sa-promo-banner-count { margin: .6rem 0 0 !important; font-size: var(--wp--preset--font-size--sm, .9rem); opacity: .92; }
.sa-promo-banner-count strong { font-variant-numeric: tabular-nums; }
.sa-promo-banner-btn.wp-element-button, .sa-promo-banner-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.4rem; border-radius: 999px; background: #fff !important; color: var(--wp--preset--color--ink, #1F2328) !important; font-weight: 700; text-decoration: none; white-space: nowrap; }
.sa-promo-banner-btn:hover { background: var(--wp--preset--color--sand, #EDE8DF) !important; }
.sa-promo-banner.is-slim { border-radius: 20px; padding: .9rem 1.2rem; }
.sa-promo-banner.is-slim .sa-promo-banner-title { font-size: 1.15rem !important; margin: .35rem 0 .15rem !important; }
.sa-promo-banner.is-slim .sa-promo-banner-btn { min-height: 44px; }
.sa-promo-banner.is-empty { background: var(--wp--preset--color--sand, #EDE8DF); color: var(--wp--preset--color--muted, #5B616B); }
@media (max-width: 600px) { .sa-promo-banner-btn { width: 100%; } }


/* All promotions in the shop green (sale and offer alike). */
.sa-promo-lines li, .sa-promo-lines li.is-sale, .sa-promo-lines li.is-offer { background: var(--wp--preset--color--sage-soft, #E4EDE6) !important; color: #234A36 !important; border: 0 !important; }
.sa-promo-lines li svg { color: var(--wp--preset--color--accent, #2F5D45) !important; }
.sa-promo-badge, .sa-promo-badge.is-sale, .sa-promo-badge.is-offer { background: var(--wp--preset--color--accent, #2F5D45) !important; color: #fff !important; }
/* Free cart line */
.sa-free-tag { display: inline-block; margin-left: .4rem; padding: .1rem .55rem; border-radius: 999px; background: var(--wp--preset--color--accent, #2F5D45); color: #fff; font-size: 12px; font-weight: 700; vertical-align: middle; }
.sa-free-qty { display: inline-block; min-width: 2rem; text-align: center; font-weight: 700; }
