/* Магазин и страница оплаты заказа; дополняет .pay-page из app.css */

.shop__inner { max-width: 72rem; }
.shop__bar { display: flex; justify-content: flex-end; width: 100%; margin-bottom: 1.5rem; }
.shop__title { width: 100%; margin: 2rem 0 1rem; font-family: Montserrat, sans-serif; font-weight: 600; font-size: 1.5rem; }

.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1.5rem; width: 100%; }
.shop-card { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.5rem; background: #fff; border-radius: 1.5rem; }
.shop-card__image { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 1rem; }
.shop-card__name { margin: 0; font-family: Montserrat, sans-serif; font-weight: 600; font-size: 1.125rem; }
.shop-card__text { flex: 1 1 auto; margin: 0; color: #5b5b5b; font-size: 0.9375rem; }
.shop-card__price { font-family: Montserrat, sans-serif; font-weight: 700; font-size: 1.25rem; }
.shop-card__sizes { margin: 0; color: #6b6b6b; font-size: 0.875rem; }

/* Каталог мерча: 4 в ряд на широком экране, цена прижата к низу карточки */
.shop-grid_catalog { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); margin-top: 1rem; }
.shop-grid_catalog .shop-card { padding: 1rem 1rem 1.25rem; gap: 0.5rem; }
.shop-grid_catalog .shop-card__price { margin-top: auto; }
@media (max-width: 575px) {
    .shop-grid_catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
    .shop-grid_catalog .shop-card { padding: 0.625rem 0.625rem 0.875rem; border-radius: 1rem; }
    .shop-grid_catalog .shop-card__name { font-size: 0.9375rem; }
    .shop-grid_catalog .shop-card__price { font-size: 1.0625rem; }
}
.shop-card__form { display: flex; flex-direction: column; gap: 0.75rem; }
.shop-card__actions { display: flex; gap: 0.75rem; }
.shop-card__qty { width: 5rem; flex: 0 0 5rem; }

.shop-lines { display: flex; flex-direction: column; width: 100%; margin-bottom: 1rem; }
.shop-line { display: flex; align-items: center; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid #ececec; }
.shop-line__name { flex: 1 1 auto; min-width: 0; }
.shop-line__hint { color: #c0392b; font-size: 0.875rem; }
.shop-line__qty { flex: 0 0 5rem; }
.shop-line__sum { flex: 0 0 auto; font-weight: 600; white-space: nowrap; }
.shop-line__remove { flex: 0 0 auto; border: 0; background: none; font-size: 1.5rem; line-height: 1; color: #999; cursor: pointer; }
.shop-line_total { border-bottom: 0; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 1.125rem; }
.shop-line.is-unavailable .shop-line__name { color: #c0392b; }

.shop-form { width: 100%; }
.shop-message { width: 100%; padding: 0.75rem 1rem; margin-bottom: 1rem; border-radius: 0.75rem; background: #e8f5e9; color: #1e6b2f; }
.shop-hint { display: block; width: 100%; margin: 0.25rem 0 1rem; color: #6b6b6b; font-size: 0.875rem; }
.shop-docs { width: 100%; margin-bottom: 1.5rem; }
.shop-doc { padding: 0.75rem 0; border-bottom: 1px solid #ececec; }
.shop-doc__name { font-weight: 600; }
.shop-doc__name .shop-hint { margin: 0.125rem 0 0.375rem; font-weight: 400; }
.shop-doc__links a { margin-right: 0.5rem; }
.shop-error { width: 100%; padding: 0.75rem 1rem; margin-bottom: 1rem; border-radius: 0.75rem; background: #fdecea; color: #a4281b; }

@media (max-width: 575px) {
    .shop-line { flex-wrap: wrap; }
    .shop-line__name { flex-basis: 100%; }
}

/* Сертификаты на баллы */
.shop-card_certificate { border: 2px dashed #1AA7EC; }
.shop-card__points { color: #1AA7EC; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 1.5rem; }
.shop-bonus { width: 100%; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #ececec; }
.shop-bonus__balance { margin: 0 0 0.75rem; }
.shop-section { width: 100%; }
.shop-section .shop__title { margin-top: 0; }
.shop-card__actions .btn { flex: 1 1 auto; min-width: 0; padding-left: 1rem; padding-right: 1rem; white-space: nowrap; }
.shop-card__actions .shop-card__qty { width: 4.5rem; flex-basis: 4.5rem; }

/* Поля плательщика под карточкой профиля: те же отступы, что у формы */
.shop-profile-fields { display: flex; flex-direction: column; gap: 1.75rem; width: 100%; }
.shop-profile-fields[hidden] { display: none; }
