/* Promotions — photo tiles from A3. */
.promo-gate { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.promo-gate > div:nth-child(2) { flex: 1 1 260px; }
.promo-gate h2 { font-size: 20px; font-weight: 800; }
.promos { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.promo { overflow: hidden; display: grid; grid-template-rows: auto 1fr; transition: transform var(--t2) var(--ease), box-shadow var(--t2); }
.promo:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); }
.promo.is-ended { opacity: .75; }
.promo__ph { height: 150px; }
.promo__ph--lg { height: 200px; border-radius: var(--r-m); }
.promo__tag { position: absolute; left: 14px; bottom: 12px; z-index: 1; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.promo__body { display: grid; gap: 8px; padding: 16px; align-content: start; justify-items: start; }
.promo__body h2 { font-size: 18px; line-height: 22px; font-weight: 800; }
.promo__body p { font-size: 14px; color: var(--ink-2); }
.promo__dates { display: flex; align-items: center; gap: 6px; font-size: 13px !important; }
.promo__dates .icon { width: 16px; height: 16px; }
.promo__state { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.terms { list-style: decimal; padding-left: 20px; display: grid; gap: 6px; font-size: 14px; color: var(--ink); }
.ticks { display: grid; gap: 8px; font-size: 14px; }
.ticks li { display: flex; gap: 8px; }
.ticks .icon { color: var(--success); width: 18px; height: 18px; flex: none; margin-top: 1px; }
.step__h { font-size: 14px; font-weight: 800; margin-top: 4px; }
