

.media-grid--item.has-link--true .media-grid--bg img,
.media-grid--item.has-link--true .media-grid--bg video {
  transition: all 1s cubic-bezier(0.104, 0.204, 0.492, 1); }

.media-grid--item {
  isolation: isolate;
  border-radius: var(--block-border-radius, 16px); }

.media-grid--item {
  box-shadow: var(--block-shadows); }



.media-grid--inner {
  padding: 0 15px;
  max-width: var(--grid-width-row, 1380px);
  margin-left: auto;
  margin-right: auto; }
  @media only screen and (min-width: 768px) {
    .media-grid--inner {
      padding: 0 50px; } }

.media-grid--inner {
  display: grid;
  grid-auto-flow: dense;
  width: 100%;
  align-items: start;
  grid: auto-flow dense var(--mobile-height)/repeat(2, minmax(0, 1fr)); }
  @media only screen and (min-width: 768px) {
    .media-grid--inner {
      grid: auto-flow dense var(--desktop-height)/repeat(4, minmax(0, 1fr)); } }
  @media only screen and (max-width: 767px) {
    .media-grid--inner.swipe-on-mobile {
      grid-auto-flow: column;
      grid-auto-columns: minmax(var(--mobile-swipe-width), 1fr);
      overflow-x: auto;
      grid-template-columns: repeat(auto-fill, minmax(var(--mobile-swipe-width), 1fr));
      scroll-snap-type: x mandatory;
      grid-template-rows: var(--desktop-height);
      padding-bottom: 10px; }
      .media-grid--inner.swipe-on-mobile .media-grid--item {
        scroll-snap-align: center;
        grid-area: auto; } }

.media-grid--item {
  background: var(--color-bg-gradient, var(--color-bg, #fff));
  color: var(--color-text, var(--color-body, #2c2d2e));
  overflow: hidden;
  padding: 25px;
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  grid-area: span var(--row-span)/span var(--column-span--mobile); }
  @media only screen and (min-width: 768px) {
    .media-grid--item {
      padding: 35px;
      grid-area: span var(--row-span)/span var(--column-span); } }
  .media-grid--item h4 {
    color: var(--color-text, var(--color-body, #2c2d2e)); }
    .media-grid--item h4.media-grid--heading-no-margin {
      margin-bottom: 0; }
  .media-grid--item.content-top-left {
    justify-content: flex-start;
    align-items: flex-start; }
  .media-grid--item.content-top-center {
    justify-content: center;
    align-items: flex-start; }
  .media-grid--item.content-top-right {
    justify-content: flex-end;
    align-items: flex-start; }
  .media-grid--item.content-middle-left {
    justify-content: flex-start;
    align-items: center; }
  .media-grid--item.content-middle-center {
    justify-content: center;
    align-items: center; }
  .media-grid--item.content-middle-right {
    justify-content: flex-end;
    align-items: center; }
  .media-grid--item.content-bottom-left {
    justify-content: flex-start;
    align-items: flex-end; }
  .media-grid--item.content-bottom-center {
    justify-content: center;
    align-items: flex-end; }
  .media-grid--item.content-bottom-right {
    justify-content: flex-end;
    align-items: flex-end; }
  .media-grid--item.has-link--true:hover .media-grid--bg img,
  .media-grid--item.has-link--true:hover .media-grid--bg video {
    transform: scale(1.07); }
  .media-grid--item.has-link--true .text-button {
    position: relative;
    z-index: 22; }

.media-grid--link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 21; }

.media-grid--bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  background: var(--color-bg-gradient, var(--color-bg, #fff)); }
  .media-grid--bg img,
  .media-grid--bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none; }
  .media-grid--bg:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
    background: rgba(var(--overlay-color-rgb), var(--overlay-opacity)); }

.media-grid--content {
  z-index: 2; }
  .media-grid--content > *:last-child {
    margin-bottom: 0; }


/* ── PD 20.08.2026: оживление плиток media-grid ────────────────────
   То же движение, что у multicolumn и плиток категорий. */
.media-grid--item {
  transition: transform 220ms cubic-bezier(.32, .72, 0, 1); }
@media (hover: hover) {
  .media-grid--item:hover {
    transform: translateY(-6px);
    box-shadow: 0 2px 6px rgba(26, 28, 29, .10), 0 20px 42px -20px rgba(26, 28, 29, .45); } }
.media-grid--item:active {
  transform: translateY(-2px);
  transition-duration: 120ms; }
@media (prefers-reduced-motion: reduce) {
  .media-grid--item { transition: none; }
  .media-grid--item:hover,
  .media-grid--item:active { transform: none; } }


/* ── PD 20.08.2026: затемнение градиентом ──────────────────
   Плоская заливка глушила светлые кадры целиком, а на них белый текст пропадал.
   Тень кладём слева, под текстом (content_position = middle-left); справа фото чистое. */
.media-grid--item .media-grid--bg:after {
  background: linear-gradient(
    to right,
    rgba(var(--overlay-color-rgb), calc(var(--overlay-opacity) * 1.5)) 0%,
    rgba(var(--overlay-color-rgb), calc(var(--overlay-opacity) * 1.1)) 38%,
    rgba(var(--overlay-color-rgb), calc(var(--overlay-opacity) * 0.28)) 78%,
    rgba(var(--overlay-color-rgb), calc(var(--overlay-opacity) * 0.14)) 100%); }
.media-grid--item .media-grid--content h4,
.media-grid--item .media-grid--content .subheading {
  text-shadow: 0 1px 12px rgba(0, 0, 0, .38); }


/* ── PD 20.08.2026: заголовок секции ──────────────────────────────────
   Повторяем отступы .media-grid--inner, чтобы заголовок встал по одной линии с плитками. */
.media-grid--header {
  padding: 0 15px;
  max-width: var(--grid-width-row, 1380px);
  margin: 0 auto 4px; }
@media only screen and (min-width: 768px) {
  .media-grid--header {
    padding: 0 50px; } }


/* ── PD 20.08.2026: текст плитки как в multicolumn ─────────────────────
   Штатный .subheading — 12px КАПС с разрядкой, это eyebrow и он выбивался из остального сайта.
   Приводим к виду описаний в multicolumn: обычный регистр, 14px, под названием. */
.media-grid--item .media-grid--content .subheading {
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 400;
  margin: 7px 0 13px;
  max-width: 36ch;
  opacity: .93; }
