/* Cardul și containerul de listă sunt comune tuturor viewporturilor. Desktopul
   adaugă numai rail-ul din dreapta, fără un al doilea renderer pentru feed. */
@media (min-width:0px) {
  body:not(.homepage-view) main.container:has(.promotions-list-mobile) {
    padding-bottom:28px !important;
  }

  .promotions-list-mobile {
    --promo-ink:#18162a;
    --promo-muted:#716d82;
    --promo-border:#e7e4ee;
    box-sizing:border-box;
    width:100%;
    max-width:640px;
    margin-right:auto;
    margin-left:auto;
    padding-right:12px;
    padding-left:12px;
    color:var(--promo-ink);
  }

  .promotions-list-mobile.is-searching {
    cursor:progress;
  }

  .promotions-list-mobile.is-searching #promotions-list-content {
    opacity:.58;
    transition:opacity .16s ease;
  }

  .promotions-list-toolbar {
    margin-bottom:16px;
  }

  .promotions-list-toolbar-heading {
    display:flex;
    flex-direction:column;
    gap:2px;
    margin:0 2px 10px;
  }

  .promotions-list-toolbar-heading h2 {
    margin:0;
    color:var(--promo-ink);
    font-size:.98rem;
    font-weight:820;
    letter-spacing:-.02em;
  }

  .promotions-list-filters {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
    margin:0;
    padding:0;
  }

  .promotions-list-filter {
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:9px;
    min-height:58px;
    padding:8px 9px;
    border:1px solid #dedbe8;
    border-radius:15px;
    background:#fff;
    color:#625e70;
    text-decoration:none;
  }

  .promotions-list-filter[hidden] {
    display:none !important;
  }

  .promotions-list-filter-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border-radius:10px;
    background:#f2efff;
    color:#6558e8;
  }

  .promotions-list-filter-icon svg {
    width:14px;
    height:14px;
  }

  .promotions-list-filter-copy {
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:2px;
    line-height:1.2;
  }

  .promotions-list-filter-copy strong {
    color:inherit;
    font-size:.72rem;
    font-weight:800;
  }

  .promotions-list-filter-copy small {
    overflow:hidden;
    color:#8a8597;
    font-size:.61rem;
    font-weight:600;
    line-height:1.25;
    text-overflow:ellipsis;
  }

  .promotions-list-filter.active {
    border-color:#6558e8;
    background:#f1efff;
    color:#4f43cf;
    box-shadow:0 5px 13px rgba(101,88,232,.2);
  }

  .promotions-list-filter.active .promotions-list-filter-icon {
    background:#6558e8;
    color:#fff;
  }

  .promotions-list-filter.active .promotions-list-filter-copy small {
    color:#6f67a5;
  }

  /* Al cincilea filtru este personal și primește un rând complet pe mobil;
     în railul desktop grila are deja o singură coloană. */
  .promotions-list-toolbar--responsive .promotions-list-filter--saved {
    grid-column:1 / -1;
  }

  .promotions-list-summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 2px 12px;
  }

  .promotions-list-summary div {
    display:flex;
    flex-direction:column;
    gap:1px;
  }

  .promotions-list-summary span {
    color:#8a8597;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.065em;
    text-transform:uppercase;
  }

  .promotions-list-summary strong {
    font-size:1rem;
    font-weight:800;
    letter-spacing:-.02em;
  }

  .promotions-list-summary > svg {
    width:20px;
    height:20px;
    color:#e94f8f;
  }

  .promotions-list-results {
    display:grid;
    gap:var(--mobile-standard-gap, 12px);
  }

  .promotions-list-loadmore-wrap {
    padding:18px 0 0;
  }

  .promotions-list-loadmore {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-height:50px;
    border:1.5px dashed rgba(99,102,241,.4);
    border-radius:15px;
    background:rgba(99,102,241,.05);
    color:#5b50db;
    font-size:.85rem;
    font-weight:800;
    text-decoration:none;
  }

  .promotions-list-loadmore svg {
    width:18px;
    height:18px;
  }

  .promotions-list-loadmore.is-loading {
    opacity:.68;
    pointer-events:none;
  }

  .promotions-list-card {
    position:relative;
    overflow:hidden;
    padding:15px;
    border:1px solid rgba(104,91,138,.1);
    border-radius:var(--mobile-card-radius, 22px);
    --promotion-tint:#fdeaf1;
    background:linear-gradient(135deg, #fff 0%, var(--promotion-tint) 100%);
    box-shadow:0 5px 18px rgba(47,39,72,.05);
  }

  .promotions-list-card.is-promoted {
    border-color:rgba(101,88,232,.3);
    box-shadow:0 9px 27px rgba(86,70,173,.12);
  }

  .promotions-list-card-tint-1 { --promotion-tint:#ece9fd; }
  .promotions-list-card-tint-2 { --promotion-tint:#fdf1e3; }
  .promotions-list-card-tint-3 { --promotion-tint:#e6f7ee; }

  .promotions-list-card-top {
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    min-height:32px;
  }

  .promotions-list-code {
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-width:0;
    min-height:32px;
    padding:6px 9px;
    border:1px dashed rgba(90,68,164,.38);
    border-radius:10px;
    background:rgba(255,255,255,.7);
    color:#51408e;
    line-height:1;
  }

  .promotions-list-code span {
    font-size:.64rem;
    font-weight:700;
    text-transform:uppercase;
  }

  .promotions-list-code strong {
    overflow:hidden;
    max-width:112px;
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.04em;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .promotions-list-code svg {
    flex:0 0 auto;
    width:13px;
    height:13px;
  }

  .promotions-list-code.is-copied {
    border-style:solid;
    border-color:#20a36a;
    color:#087a4a;
  }

  .promotions-list-direct {
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:32px;
    padding:7px 9px;
    border-radius:10px;
    background:rgba(255,255,255,.62);
    color:#4d4760;
    font-size:.7rem;
    font-weight:800;
  }

  .promotions-list-direct svg {
    width:14px;
    height:14px;
  }

  .promotions-list-expiry {
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:5px;
    padding-top:7px;
    color:#776f84;
    font-size:.66rem;
    font-weight:700;
    line-height:1.2;
    text-align:right;
  }

  .promotions-list-card-status {
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:2px;
  }

  .promotions-list-promoted {
    display:inline-flex;
    align-items:center;
    gap:4px;
    color:#766d84;
    font-size:.58rem;
    font-weight:750;
    line-height:1;
    white-space:nowrap;
  }

  .promotions-list-promoted svg {
    width:11px;
    height:11px;
  }

  .promotions-list-expiry svg {
    flex:0 0 auto;
    width:13px;
    height:13px;
  }

  .promotions-list-expiry.is-soon {
    color:#b36309;
  }

  .promotions-list-expiry.is-urgent {
    color:#c9344d;
  }

  .promotions-list-card-main {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    gap:12px;
    padding:13px 1px 12px;
  }

  .promotions-list-card-copy {
    min-width:0;
    flex:1 1 auto;
  }

  .promotions-list-card-copy h2 {
    max-width:94%;
    margin:0 0 10px;
    color:#29223b;
    font-size:1.1rem;
    font-weight:800;
    letter-spacing:-.025em;
    line-height:1.3;
  }

  .promotions-list-place {
    display:inline-flex;
    align-items:center;
    gap:7px;
    max-width:100%;
    color:#534d65;
    font-size:.8rem;
    font-weight:750;
    text-decoration:none;
  }

  .promotions-list-place-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 25px;
    width:25px;
    height:25px;
    border-radius:8px;
    background:rgba(255,255,255,.72);
    color:#6c5de8;
  }

  .promotions-list-place-icon svg {
    width:14px;
    height:14px;
  }

  .promotions-list-card-copy p {
    display:-webkit-box;
    overflow:hidden;
    margin:9px 0 0;
    color:#6f687a;
    font-family:var(--content-snippet-font-family);
    font-size:var(--content-snippet-font-size);
    font-weight:var(--content-snippet-font-weight);
    letter-spacing:var(--content-snippet-letter-spacing);
    line-height:var(--content-snippet-line-height);
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  .promotions-list-card-thumb {
    position:relative;
    overflow:hidden;
    flex:0 0 clamp(112px,32%,180px);
    width:clamp(112px,32%,180px);
    height:auto;
    aspect-ratio:4 / 5;
    padding:0;
    border:2px solid rgba(255,255,255,.74);
    border-radius:16px;
    background:#fff;
    box-shadow:0 7px 18px rgba(37,30,60,.13);
  }

  .promotions-list-card-thumb img {
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
  }

  .promotions-list-card-actions {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:8px;
  }

  .promotions-list-save,
  .promotions-list-card-action {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:44px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:13px;
    background:rgba(255,255,255,.62);
    color:#3e374e;
    font-size:.75rem;
    font-weight:800;
    line-height:1.2;
    text-decoration:none;
  }

  .promotions-list-save {
    padding:9px 11px;
  }

  .promotions-list-save svg {
    width:16px;
    height:16px;
  }

  .promotions-list-save.is-saved {
    border-color:rgba(99,102,241,.25);
    background:#fff;
    color:#5547db;
  }

  .promotions-list-save.is-saved svg {
    fill:currentColor;
  }

  .promotions-list-card-action {
    justify-content:space-between;
    padding:9px 11px 9px 13px;
    cursor:pointer;
  }

  /* Stretched link nativ HTML (0ms latență) pe întregul card de promoție */
  .promotions-list-card .promotions-list-card-action::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
  }

  .promotions-list-card .promotions-list-save,
  .promotions-list-card .promotions-list-place,
  .promotions-list-card .promotions-list-card-thumb {
    position: relative;
    z-index: 3;
  }

  .promotions-list-card-action svg {
    flex:0 0 auto;
    width:16px;
    height:16px;
    color:#6558e8;
  }

  .promotions-list-empty {
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:34px 20px;
    border:1px solid var(--promo-border);
    border-radius:22px;
    background:#fff;
    text-align:center;
    box-shadow:0 7px 22px rgba(47,39,72,.05);
  }

  .promotions-list-empty-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:54px;
    height:54px;
    margin-bottom:13px;
    border-radius:17px;
    background:#f2efff;
    color:#6558e8;
  }

  .promotions-list-empty-icon svg {
    width:25px;
    height:25px;
  }

  .promotions-list-empty h2 {
    margin:0 0 6px;
    font-size:1.05rem;
    font-weight:800;
  }

  .promotions-list-empty p {
    max-width:290px;
    margin:0;
    color:var(--promo-muted);
    font-size:.8rem;
    line-height:1.5;
  }

  .promotions-list-empty a {
    margin-top:14px;
    color:#5c50dc;
    font-size:.78rem;
    font-weight:800;
    text-decoration:none;
  }

  body:not(.homepage-view) main.container:has(.promotions-list-mobile) > .newsletter-banner {
    box-sizing:border-box;
    width:100%;
    max-width:640px;
    margin-right:auto !important;
    margin-left:auto !important;
    padding-right:12px;
    padding-left:12px;
  }

  .promotion-details-sheet .modal-dialog {
    display:flex;
    align-items:flex-end;
    width:var(--promotion-details-dialog-width, min(calc(100% - 24px), 680px));
    max-width:min(calc(100% - 24px), 680px);
    min-height:100%;
    margin:0 auto;
    margin-left:var(--promotion-details-dialog-left, auto);
  }

  .promotion-details-sheet .modal-content {
    max-height:min(86vh,760px);
    overflow:hidden;
    border:0;
    border-radius:26px 26px 0 0;
    background:#fff;
    box-shadow:0 -18px 50px rgba(28,22,47,.2);
  }

  .promotion-details-handle {
    width:42px;
    height:4px;
    margin:9px auto 0;
    border-radius:999px;
    background:#d9d5e2;
  }

  .promotion-details-sheet .modal-header {
    align-items:flex-start;
    gap:16px;
    padding:15px 18px 12px;
    border:0;
  }

  .promotion-details-eyebrow {
    display:block;
    margin-bottom:4px;
    color:#6657e7;
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.075em;
    text-transform:uppercase;
  }

  .promotion-details-sheet .modal-title {
    color:#211c31;
    font-size:1.18rem;
    font-weight:850;
    letter-spacing:-.025em;
    line-height:1.2;
  }

  .promotion-details-sheet .btn-close {
    flex:0 0 auto;
    margin:0;
    padding:10px;
    border-radius:50%;
    background-color:#f2f0f7;
    opacity:1;
  }

  .promotion-details-sheet .modal-body {
    overflow-y:auto;
    padding:0 18px 18px;
  }

  .promotion-details-image {
    position:relative;
    display:grid;
    place-items:center;
    overflow:hidden;
    width:100%;
    margin-bottom:14px;
    padding:0;
    border:0;
    border-radius:18px;
    background:#efedf4;
    cursor:zoom-in;
  }

  .promotion-details-image[hidden] {
    display:none;
  }

  .promotion-details-image:focus-visible {
    outline:3px solid rgba(101,88,232,.72);
    outline-offset:3px;
  }

  .promotion-details-image img {
    display:block;
    width:100%;
    height:auto;
    max-height:min(54vh,540px);
    object-fit:contain;
  }

  .promotion-details-image-expand {
    position:absolute;
    right:10px;
    bottom:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    border:1px solid rgba(255,255,255,.42);
    border-radius:50%;
    background:rgba(20,17,31,.68);
    color:#fff;
    box-shadow:0 5px 16px rgba(20,17,31,.24);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    pointer-events:none;
  }

  .promotion-details-image-expand svg {
    width:17px;
    height:17px;
  }

  .promotion-image-lightbox .zoom-modal-close {
    position:absolute;
    top:max(16px,env(safe-area-inset-top));
    right:16px;
    z-index:10004;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid rgba(255,255,255,.26);
    border-radius:50%;
    background:rgba(15,23,42,.62);
    color:#fff;
    box-shadow:0 5px 18px rgba(0,0,0,.32);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    cursor:pointer;
  }

  .promotion-image-lightbox .zoom-modal-close:hover,
  .promotion-image-lightbox .zoom-modal-close:focus-visible {
    border-color:rgba(255,255,255,.58);
    background:rgba(15,23,42,.82);
    outline:none;
  }

  .promotion-image-lightbox .zoom-modal-close:focus-visible {
    box-shadow:0 0 0 3px rgba(255,255,255,.8);
  }

  .promotion-image-lightbox .zoom-modal-close svg {
    width:22px;
    height:22px;
  }

  .promotion-details-place {
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:12px;
    color:#4f485e;
    font-size:.83rem;
  }

  .promotion-details-place > span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:31px;
    height:31px;
    border-radius:10px;
    background:#f0edff;
    color:#6558e8;
  }

  .promotion-details-place svg {
    width:16px;
    height:16px;
  }

  .promotion-details-description {
    margin:0 0 14px;
    color:#625c6d;
    font-size:.84rem;
    font-weight:500;
    line-height:1.58;
  }

  .promotion-details-code {
    display:grid;
    grid-template-columns:1fr auto auto;
    align-items:center;
    gap:10px;
    width:100%;
    min-height:54px;
    margin-bottom:12px;
    padding:10px 13px;
    border:1px dashed rgba(91,73,167,.38);
    border-radius:14px;
    background:#f8f6ff;
    color:#4f3f91;
    text-align:left;
  }

  .promotion-details-code[hidden] {
    display:none;
  }

  .promotion-details-code span {
    font-size:.69rem;
    font-weight:700;
  }

  .promotion-details-code strong {
    font-size:.86rem;
    letter-spacing:.05em;
  }

  .promotion-details-code svg {
    width:17px;
    height:17px;
  }

  .promotion-details-code.is-copied {
    border-color:#20a36a;
    color:#087a4a;
  }

  .promotion-details-expiry {
    display:flex;
    align-items:center;
    gap:7px;
    color:#7a7485;
    font-size:.76rem;
    font-weight:700;
  }

  .promotion-details-expiry svg {
    width:15px;
    height:15px;
  }

  .promotion-details-sheet .modal-footer {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    padding:12px 18px max(14px,env(safe-area-inset-bottom));
    border-top:1px solid #eeeaf3;
    background:#fff;
  }

  .promotion-details-share,
  .promotion-details-save,
  .promotion-details-location {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:48px;
    border-radius:15px;
    font-size:.78rem;
    font-weight:800;
    text-decoration:none;
  }

  .promotion-details-save {
    padding:10px 13px;
    border:1px solid #e5e1ec;
    background:#fff;
    color:#494255;
  }

  .promotion-details-save.is-saved {
    border-color:#d9d4ff;
    background:#f4f2ff;
    color:#5749db;
  }

  .promotion-details-save.is-saved svg {
    fill:currentColor;
  }

  .promotion-details-location {
    justify-content:space-between;
    padding:10px 14px;
    background:#6558e8;
    color:#fff;
    box-shadow:0 7px 18px rgba(101,88,232,.22);
  }

  .promotion-details-share svg,
  .promotion-details-save svg,
  .promotion-details-location svg {
    width:17px;
    height:17px;
  }

}

@media (max-width:359.98px) {
  .promotions-list-card {
    padding:13px;
  }

  .promotions-list-card-top {
    align-items:flex-start;
  }

  .promotions-list-expiry {
    max-width:112px;
  }

  .promotions-list-card-thumb {
    flex-basis:100px;
    width:100px;
  }

  .promotions-list-promoted {
    max-width:105px;
    white-space:normal;
    text-align:right;
  }
}

@media (min-width:992px) {
  .public-desktop-surface.public-surface--promotions main.container {
    max-width:1100px !important;
  }

  .public-desktop-surface.public-surface--promotions .promotions-desktop-layout {
    display:grid;
    /* Feed controlat + rail flexibil, identic mecanic cu pagina Locații. */
    grid-template-columns:minmax(0,600px) minmax(332px,1fr);
    align-items:start;
    gap:20px;
    width:100%;
  }

  .public-desktop-surface.public-surface--promotions .promotions-list-mobile {
    max-width:none;
    margin:0;
    padding:12px 0 24px;
  }

  .public-desktop-surface.public-surface--promotions .promotions-list-results {
    gap:var(--mobile-standard-gap,12px);
  }

  .public-desktop-surface.public-surface--promotions .promotions-desktop-rail {
    position:sticky;
    top:70px;
    align-self:start;
    flex-direction:column;
    gap:16px;
    height:var(--promotions-rail-available-height,calc(100dvh - 70px));
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(98,88,170,.22) transparent;
  }

  /* Păstrăm rail-ul Promoții identic cu cel de Evenimente: fără umbre
     exterioare pe cardurile din coloana scrollabilă. */
  .public-desktop-surface.public-surface--promotions .promotions-desktop-rail > *,
  .public-desktop-surface.public-surface--promotions .promotions-desktop-rail .newsletter-promo-card {
    box-shadow:none !important;
  }

  .public-desktop-surface.public-surface--promotions .promotions-list-toolbar--desktop {
    width:100%;
    margin:0;
  }

  .public-desktop-surface.public-surface--promotions .promotions-list-toolbar--desktop .promotions-list-toolbar-heading {
    margin:0 2px 9px;
  }

  .public-desktop-surface.public-surface--promotions .promotions-list-toolbar--desktop .promotions-list-toolbar-heading h2 {
    font-size:.88rem;
  }

  .public-desktop-surface.public-surface--promotions .promotions-list-toolbar--desktop .promotions-list-filters {
    grid-template-columns:minmax(0,1fr);
    gap:7px;
  }

  .public-desktop-surface.public-surface--promotions .promotions-list-toolbar--desktop .promotions-list-filter {
    min-height:52px;
    padding:7px 9px;
  }

}

/* Shared actions in promotion details, including the mobile bottom sheet. */
.promotion-details-sheet .modal-footer > * { margin:0; min-width:0; }
.promotion-details-share { padding:10px 13px; border:1px solid #cfe8e3; background:#fff; color:#475569; }
.promotion-details-location { grid-column:1 / -1; }
.promotion-details-share-panel { padding:14px 18px; border-top:1px solid #eeeaf3; background:#faf9ff; }
.promotion-details-share-panel[hidden] { display:none; }
.promotion-details-share-panel label { display:block; font-size:.75rem; margin:12px 0 5px; }
.promotion-details-share-options { display:flex; gap:10px; margin-top:10px; }
.promotion-details-share-options a, .promotion-details-share-copy button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 14px; border:1px solid #ded9f4; border-radius:12px; color:#5749db; background:#fff; font-weight:700; text-decoration:none; }
.promotion-details-share-copy { display:flex; gap:8px; }
.promotion-details-share-copy input { min-width:0; width:100%; padding:8px; border:1px solid #ded9f4; border-radius:10px; background:#fff; font-size:.8rem; }
#promotionShareStatus { display:block; font-size:.8rem; color:#475569; }
#promotionShareStatus:not(:empty) { margin-top:8px; }
@media (min-width:576px) {
  .promotion-details-sheet .modal-footer { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .promotion-details-location { grid-column:auto; }
}

/* Compact promotion layout, shared by listings, home feed and venues. */
.promotions-list-card.promotion-card-compact {
  container:promotion-card / inline-size;
  display:block;
  padding:14px;
  background:linear-gradient(135deg, rgba(255,255,255,.55), rgba(255,255,255,.08)), var(--promotion-tint, #fdeaf1);
  border:1px solid rgba(104,91,138,.16);
  border-radius:22px;
}
.promotion-card-compact .promotions-list-card-top { align-items:center; flex-wrap:nowrap; gap:12px; }
.promotion-card-compact .promotions-list-place { font-size:.88rem; color:#475569; line-height:1.4; }
.promotion-card-compact .promotions-list-place-icon { width:34px; height:34px; flex-basis:34px; border-radius:11px; background:#f1efff; }
.promotion-card-compact .promotions-list-place-icon svg { width:18px; height:18px; }
.promotion-card-compact .promotions-list-save,
.promotion-card-compact .promotions-list-share {
  display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 46px; width:46px; height:46px; min-height:46px; padding:0;
  border-radius:50%; border:1px solid #dce1eb; background:#fff; color:#475569;
}
.promotion-card-compact .promotions-list-save svg,
.promotion-card-compact .promotions-list-share svg { width:22px; height:22px; stroke-width:2; }
/* Match the event-card favorite; colors/states come from public-event-actions.css. */
.promotion-card-compact .promotions-list-save { flex-basis:44px; width:44px; height:44px; min-height:44px; }
.promotion-card-compact .promotions-list-save svg { width:20px; height:20px; }
.promotion-card-compact .promotions-list-share:hover { background:#f1efff; border-color:#b6a9e3; }
.promotion-card-compact .promotions-list-card-status { flex-direction:row; align-items:center; justify-content:flex-start; flex-wrap:wrap; gap:8px; }
.promotion-card-compact .promotions-list-card-status:empty { display:none; }
.promotion-card-compact .promotions-list-expiry { padding-top:8px; text-align:left; max-width:none; font-size:.72rem; }
.promotion-card-compact .promotions-list-card-main { display:flex; align-items:center; gap:14px; padding:10px 0; }
.promotion-card-compact .promotions-list-card-copy h2 { max-width:100%; margin:0; font-size:1.08rem; line-height:1.35; text-wrap:pretty; color:#202437; }
.promotion-card-compact .promotions-list-benefit { margin-top:4px; font-size:1.4rem; font-weight:850; line-height:1.2; letter-spacing:-.04em; color:#6554d7; text-wrap:balance; }
.promotion-card-compact .promotions-list-schedule { display:flex; gap:7px; align-items:flex-start; margin-top:8px; font-size:.78rem; line-height:1.5; color:#475569; font-weight:700; white-space:pre-line; }
.promotion-card-compact .promotions-list-schedule svg { flex:0 0 16px; width:16px; height:16px; margin-top:3px; }
.promotion-card-compact .promotions-list-card-copy p { margin:6px 0 0; font-size:.8rem; line-height:1.45; color:#64748b; -webkit-line-clamp:2; }
.promotion-card-compact .promotions-list-card-thumb { flex:0 0 27%; width:27%; aspect-ratio:auto; height:auto; border:0; border-radius:12px; box-shadow:none; background:transparent; }
.promotion-card-compact .promotions-list-card-thumb img { width:100%; height:auto; max-height:140px; object-fit:contain; }
.promotion-card-compact .promotions-list-card-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:8px; border-top:1px solid #eceef4; }
.promotion-card-compact .promotions-list-direct { padding:0; min-height:32px; background:transparent; color:#64748b; font-size:.74rem; font-weight:600; }
.promotion-card-compact .promotions-list-card-action { flex:1 1 auto; gap:16px; min-height:44px; padding:10px 16px; border:1px solid #6554d7; background:#6554d7; color:#fff; border-radius:12px; font-size:.8rem; }
.promotion-card-compact .promotions-list-card-action svg { color:currentColor; }
.promotion-card-compact .promotions-list-card-action::after { content:none; }
.promotion-card-compact .promotion-action-label { display:none !important; }
/* Use the card's available width, including narrower desktop feed columns. */
@container promotion-card (min-width:420px) {
  .promotion-card-compact .promotions-list-card-actions { gap:10px; }
  .promotion-card-compact .promotions-list-save,
  .promotion-card-compact .promotions-list-share {
    flex:1 1 0;
    width:auto;
    min-width:0;
    height:44px;
    min-height:44px;
    padding:10px 12px;
    gap:7px;
    border-radius:12px;
    font-size:.8rem;
    font-weight:800;
    white-space:nowrap;
  }
  .promotion-card-compact .promotions-list-card-action { flex:1.6 1 0; min-width:0; }
  .promotion-card-compact .promotion-action-label { display:inline !important; }
  .promotion-card-compact .promotions-list-card-actions svg { flex-shrink:0; }
}
.promotion-card-compact :is(a,button):focus-visible { outline:3px solid #9a8af0; outline-offset:3px; }
@media(max-width:420px) {
  .promotions-list-card.promotion-card-compact { padding:12px; }
  .promotion-card-compact .promotions-list-card-main { gap:12px; }
  .promotion-card-compact .promotions-list-card-copy h2 { font-size:1.08rem; }
  .promotion-card-compact .promotions-list-benefit { font-size:1.22rem; }
  .promotion-card-compact .promotions-list-schedule { font-size:.75rem; }
  .promotion-card-compact .promotions-list-card-thumb { flex-basis:27%; width:27%; }
}

.promotion-details-benefit { margin:0 0 8px; color:var(--theme-accent,#6554d7); font-size:1.25rem; font-weight:800; }
.promotion-details-schedule { margin-bottom:8px; font-size:.85rem; font-weight:700; white-space:pre-line; }
#promotionDetailsSummary { font-size:.85rem; }
.promotion-card-compact .promotions-list-card-copy h2,
.promotion-card-compact .promotions-list-benefit {
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere;
}
