.promotions-page { padding-top: 36px; padding-bottom: 60px; }
.promotions-page h1 { margin: 20px 0 30px; }
.promotion-panel { border-top: 1px solid #ded9d6; padding: 32px 0; }
.promotion-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.promotion-heading h2 { font-size: 1.6rem; margin: 0; overflow-wrap: anywhere; }
.promotion-heading a { color: inherit; text-decoration: none; }
.promotion-heading a:hover { text-decoration: underline; }
.promotion-discount { color: #397c78; font-weight: 700; font-size: 1.6rem; white-space: nowrap; }
.promotion-period { color: #655b58; margin: 10px 0 20px; }
.promotion-description { white-space: pre-line; overflow-wrap: anywhere; line-height: 1.65; margin-bottom: 28px; }
.promotion-products { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.product-card .promotion-badge, .promotion-badge { display: block; padding: 9px 12px; background: #397c78; color: #fff; font-size: 13px; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
.promotion-badge:hover { background: #2e6562; color: #fff; text-decoration: underline; }
.promotion-badge[hidden], .promotion-participation[hidden] { display: none !important; }
.promotion-old-price { color: #807774; font-size: .75em; font-weight: 400; margin-right: 10px; }
.product-card .product-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.product-card .product-price > span { white-space: nowrap; }
.product-card .promotion-old-price { flex-basis: 100%; }
.promotion-participation { display: block; margin: 8px 0 20px; color: #397c78; line-height: 1.5; font-size: 14px; }
.promotion-status { padding: 16px 20px; background: #ece7e2; }
.cart-promotion { display: block; font-size: 12px; color: #397c78; margin: 6px 0; }
@media (max-width: 600px) { .promotion-heading { flex-direction: column; gap: 8px; } .promotion-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .promotion-products .product-info { padding: 12px; } }
