/* Специфика страниц: главная, каталог, товар, магазины, контент, корзина/оформление. */

/* --- Главная --- */
.home-hero {
  position: relative; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center;
  gap: var(--gap-lg); min-height: 440px; margin-top: 24px; padding: 56px; overflow: hidden;
  border-radius: var(--r-lg); background: linear-gradient(135deg, var(--c-primary-soft), var(--c-surface));
}
.home-hero__content { position: relative; z-index: 1; max-width: 620px; }
.home-hero__title { margin-bottom: 12px; font-size: var(--fs-h1); line-height: var(--lh-h1); }
.home-hero__text { max-width: 480px; color: var(--c-text-2); }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.home-hero__media { position: relative; z-index: 1; }
.home-hero__media img { width: 100%; border-radius: var(--r-md); }
.home-section { margin-top: var(--section-gap); }
.home-strip { margin-top: 24px; }

/* --- Каталог --- */
.catalog-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--gap-lg); align-items: start; }
.catalog-layout__aside { position: sticky; top: calc(var(--header-h) + 16px); }
.catalog-layout__main { min-width: 0; }
.catalog-filters-btn { display: none; }
.catalog-panel__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.catalog-panel__foot { position: sticky; bottom: 0; display: flex; flex-direction: column; gap: 8px; padding-top: 16px; background: var(--c-surface); }
.catalog-panel__close { width: 36px; height: 36px; padding: 0; cursor: pointer; border: 1px solid var(--c-border); border-radius: var(--r-sm); background: transparent; font-size: 20px; line-height: 1; }
.catalog-backdrop { position: fixed; inset: 0; z-index: 90; background: rgba(32, 40, 32, .45); opacity: 0; visibility: hidden; transition: opacity var(--transition), visibility var(--transition); }
.catalog-backdrop.is-open { opacity: 1; visibility: visible; }

/* --- Карточка товара --- */
.product-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--gap-lg); align-items: start; }
.product-layout__info { min-width: 0; }
.product-layout__buy { position: sticky; top: calc(var(--header-h) + 16px); }
.product-info__price-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; margin: 12px 0; }
.product-info__price { font-size: 28px; font-weight: 700; }
.product-info__old-price { font-size: 18px; color: var(--c-text-2); text-decoration: line-through; }
.product-info__meta { display: flex; flex-wrap: wrap; gap: 16px; font-size: var(--fs-sm); color: var(--c-text-2); }
.product-info__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0; }
.product-info__actions .btn--buy { flex: 1 1 220px; }
.product-info__buy { padding: 20px; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--r-md); }
.product-info__buy-total { display: flex; justify-content: space-between; margin: 12px 0; font-weight: 700; }
.product-layout__tabs { margin-top: var(--section-gap); }
.product-related { margin-top: var(--section-gap); }

/* --- Магазины --- */
.stores-layout { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: var(--gap-lg); align-items: start; }
.stores-layout__list { max-height: 640px; padding-right: 4px; overflow-y: auto; }
.stores-layout__map { position: sticky; top: calc(var(--header-h) + 16px); }

/* --- Страницы контента --- */
.prose { max-width: 780px; color: var(--c-text); }
.prose--wide { max-width: none; }
.prose h2 { margin-top: 32px; }
.prose h3 { margin-top: 24px; }
.prose ul, .prose ol { padding-left: 22px; }
.prose li { margin-bottom: 6px; }
.prose img { margin: 16px 0; border-radius: var(--r-md); }
.prose blockquote { margin: 16px 0; padding: 12px 16px; background: var(--c-primary-soft); border-left: 3px solid var(--c-primary); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.prose th, .prose td { padding: 10px 12px; text-align: left; border: 1px solid var(--c-border); }
.prose th { background: var(--c-bg); }

/* --- Корзина и оформление --- */
.checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--gap-lg); align-items: start; }
.checkout-layout__aside { position: sticky; top: calc(var(--header-h) + 16px); }
.order-summary { padding: 20px; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--r-md); }
.order-summary__title { margin-bottom: 12px; font-size: var(--fs-h3); }
.order-summary__items { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.order-summary__item { display: flex; justify-content: space-between; gap: 8px; font-size: var(--fs-sm); }
.order-summary__row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--c-border); font-size: var(--fs-sm); }
.order-summary__total { display: flex; justify-content: space-between; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--c-border); font-size: 18px; font-weight: 700; }
.order-summary__hint { margin-top: 8px; font-size: var(--fs-xs); color: var(--c-text-2); }
.order-summary .btn { margin-top: 12px; }

@media (max-width: 1024px) {
  .home-hero { grid-template-columns: 1fr; min-height: 380px; padding: 32px; }
  .home-hero__media { order: -1; }
  .catalog-layout { grid-template-columns: 1fr; }
  .catalog-layout__aside {
    position: fixed; top: auto; right: 0; bottom: 0; left: 0; z-index: 95;
    max-height: 86vh; overflow-y: auto; padding: 20px;
    background: var(--c-surface); border-radius: var(--r-lg) var(--r-lg) 0 0;
    transform: translateY(105%); transition: transform .22s ease;
  }
  .catalog-layout__aside.is-open { transform: none; }
  .catalog-filters-btn { display: inline-flex; }
  .product-layout, .checkout-layout { grid-template-columns: 1fr; }
  .product-layout__buy, .checkout-layout__aside { position: static; }
  .stores-layout { grid-template-columns: 1fr; }
  .stores-layout__map { position: static; order: -1; }
}
@media (max-width: 640px) {
  .home-hero { padding: 24px; }
  .checkout-layout__aside { order: -1; }
  .product-info__price { font-size: 24px; }
}
