/* Фотогалерея (photo_gallery) — tshop_3, все варианты и страница альбома.
 *   default     (.t3-gallery--albums) альбомы карточками со «стопкой» фото
 *   simple_list (.t3-gallery--grid)   сетка фото каждого альбома, «Показать ещё»
 *   slider      (.t3-gallery--slider) лента фото каждого альбома
 *   detail      (.t3-gallery--page)   все фото альбома
 * Ручки на корне блока: --card-min / --card-ratio / --card-radius (альбомы), --photo-min / --photo-ratio (фото),
 * --car-per (фото на экране в ленте), --items-gap, шапка блока. */
@layer modules {
  .t3-gallery { --card-min: 280px; --card-ratio: 4 / 3; --card-radius: var(--radius-l); --photo-min: 220px; --photo-ratio: 4 / 3; --items-gap: var(--s-4); }
  [data-style="editorial"] .t3-gallery { --card-radius: 0px; }

  /* ── альбомы ── */
  .t3-gallery__albums {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--card-min), 100%), 1fr));
    gap: calc(var(--items-gap) * 2) var(--items-gap); margin: 0; padding: 0; list-style: none;
  }
  .t3-album__link { display: grid; gap: 4px; }
  .t3-album__stack { position: relative; display: block; aspect-ratio: var(--card-ratio); margin-bottom: var(--s-3); }
  .t3-album__stack.has-more { margin-top: 26px; }
  .t3-album__sheet {
    position: absolute; inset: 0; overflow: hidden; border-radius: var(--card-radius); background: var(--surface-2);
    box-shadow: 0 0 0 3px var(--bg); transition: transform .35s var(--ease-out);
  }
  .t3-album__sheet img { width: 100%; height: 100%; object-fit: cover; }
  .t3-album__sheet--0 { z-index: 3; }
  .t3-album__sheet--1 { z-index: 2; transform: translateY(-14px) scale(.93); opacity: .8; }
  .t3-album__sheet--2 { z-index: 1; transform: translateY(-26px) scale(.86); opacity: .55; }
  .t3-album__link:hover .t3-album__sheet--1 { transform: translate(12px, -14px) rotate(2.5deg) scale(.93); }
  .t3-album__link:hover .t3-album__sheet--2 { transform: translate(22px, -22px) rotate(5deg) scale(.86); }
  .t3-album__sheet--empty { display: grid; place-items: center; color: var(--text-3); }
  @media (prefers-reduced-motion: reduce) { .t3-album__link:hover .t3-album__sheet { transform: none; } }
  .t3-album__name { font-family: var(--font-display); font-weight: var(--display-weight); font-size: var(--fs-l); line-height: 1.25; transition: color var(--dur) var(--ease); }
  .t3-album__link:hover .t3-album__name { color: var(--brand-text); }
  .t3-album__count { font-size: var(--fs-s); color: var(--text-3); }

  /* ── сетка фото ── */
  .t3-gallery__album + .t3-gallery__album { margin-top: var(--s-7); }
  .t3-gallery__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-3); margin-bottom: var(--s-4); font-size: var(--fs-xl); }
  .t3-gallery__count { font-family: var(--font-body, inherit); font-size: var(--fs-s); font-weight: 500; letter-spacing: 0; color: var(--text-3); margin: 0; }
  .t3-photos {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--photo-min), 100%), 1fr));
    gap: var(--s-2); margin: 0; padding: 0; list-style: none;
  }
  .t3-photos__item[hidden] { display: none; }
  .t3-photos__link { display: block; aspect-ratio: var(--photo-ratio); overflow: hidden; border-radius: var(--radius-m); background: var(--surface-2); }
  [data-style="editorial"] .t3-photos__link { border-radius: 0; }
  .t3-photos__link img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out), opacity var(--dur) var(--ease); }
  .t3-photos__link:hover img { transform: scale(1.04); }
  @media (prefers-reduced-motion: reduce) { .t3-photos__link:hover img { transform: none; } }
  .t3-gallery__more { margin-top: var(--s-4); }

  /* ── лента ── */
  .t3-gallery--slider { --car-per: 3; } /* на корне — ручку дизайнера не перекрывает */
  .t3-gallery__car { --car-gap: var(--s-2); }

  /* ── страница альбома ── */
  .t3-gallery__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); margin-bottom: var(--s-4); }
  .t3-gallery__text { margin-bottom: var(--s-5); }
  .t3-gallery--page .t3-photos { --photo-min: 260px; }
}
