/* ==========================================================================
   CAP Moutier — public site extension (October 2026 b)
   Promo cards with logo + description, star markers for merchants with a
   current "bon plan", richer promo block in the member modal.
   ========================================================================== */

/* --- Promo cards --------------------------------------------------------- */
.promo-card { display: flex; flex-direction: column; }
.promo-card__header { align-items: flex-start; }
.promo-card__header--link { cursor: pointer; }
.promo-card__header--link:hover .promo-card__shop-name { color: var(--cap-red); }
.promo-card__header .promo-card__badge { margin-left: auto; flex-shrink: 0; white-space: nowrap; }
.promo-card__logo { width: 48px; height: 48px; border-radius: var(--radius-sm); object-fit: contain; background: #fff; border: 1px solid rgba(0,0,0,.06); padding: 3px; flex-shrink: 0; }
.promo-card__shop-name { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; line-height: 1.3; }
.promo-card__open { font-size: .6rem; font-weight: 700; padding: .1rem .45rem; border-radius: 100px; text-transform: uppercase; letter-spacing: .04em; }
.promo-card__open--open { background: var(--green-light); color: var(--green); }
.promo-card__open--closed { background: #fee2e2; color: #991b1b; }
.promo-card__body { display: flex; flex-direction: column; flex: 1; }
.promo-card__title { margin-bottom: .5rem; line-height: 1.3; }
.promo-card__text { font-size: .9rem; color: var(--ink-light); line-height: 1.55; white-space: pre-line; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.promo-card__text.is-expanded { display: block; -webkit-line-clamp: unset; overflow: visible; }
.promo-card__readmore { background: none; border: none; color: var(--cap-red); font-size: .8rem; font-weight: 600; padding: .3rem 0 0; cursor: pointer; align-self: flex-start; font-family: inherit; }
.promo-card__title { margin-bottom: .5rem; }
.promo-card__text { margin-bottom: .9rem; }
.promo-card__readmore { margin: -.6rem 0 .9rem; }
.promo-card__body > .promo-card__footer { margin-top: auto; padding-top: .75rem; }
.promo-card__validity { font-size: .74rem; }
.promo-card__more { font-size: .78rem; font-weight: 600; color: var(--cap-red); white-space: nowrap; }
.promo-card__more:hover { text-decoration: underline; }

/* --- Map: star marker for merchants with a bon plan ------------------------ */
.cap-marker--promo svg { filter: drop-shadow(0 2px 4px rgba(0,0,0,.35)); display: block; }

/* --- Member modal: promo list ------------------------------------------------ */
.member-modal__promo-item { font-size: .85rem; color: var(--ink); line-height: 1.5; }
.member-modal__promo-item strong { display: inline; }
.member-modal__promo-item .promo-card__badge { font-size: .62rem; padding: .15rem .5rem; vertical-align: 1px; }
.member-modal__promo-item + .member-modal__promo-item { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid rgba(196,59,46,.2); }