/* ==========================================================================
   Сетка сертификатов — страница «Сертификаты».
   Карточка целиком кликабельна и открывает документ в модальном окне
   (общий .modal с модификатором --photo).

   Figma: 146:5969  — десктоп 1320 × 1084 (от y = 365), четыре колонки по 312
          146:6007  — состояние наведения: тень и кнопка увеличения
          280:12767 — мобильный 343 × 1380, две колонки по 168

   WP: template-parts/blocks/certificates.php
   ========================================================================== */

.certificates {
    /* 56px — отбивка от шапки страницы, 96px — до промо-полосы */
    padding: 56px 0 96px;
}

.certificates__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 40px;
}

/* --------------------------------------------------------------------------
   Карточка
   -------------------------------------------------------------------------- */

.cert-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-align: left;
}

.cert-card__media {
    position: relative;
    /* 312 × 440 в десктопном макете и 168 × 237 в мобильном — одна пропорция */
    aspect-ratio: 312 / 440;
    overflow: hidden;
    transition: box-shadow var(--transition);
}

/* только сам документ: значок увеличения лежит здесь же, но своего
   размера — отсюда дочерний селектор */
.cert-card__media > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Наведение показано в макете на второй карточке: снимок приподнимается
   тенью, в правом нижнем углу появляется кнопка увеличения */
.cert-card:hover .cert-card__media,
.cert-card:focus-visible .cert-card__media {
    box-shadow: 0 12px 40px rgba(25, 25, 25, 0.12);
}

.cert-card__zoom {
    position: absolute;
    right: 12px;
    bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    background-color: #ffffff;
    opacity: 0;
    transition: opacity var(--transition);
}

.cert-card:hover .cert-card__zoom,
.cert-card:focus-visible .cert-card__zoom {
    opacity: 1;
}

.cert-card__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cert-card__title {
    font-size: 20px;
    font-weight: 700;
    line-height: normal;
    overflow-wrap: break-word;
    color: var(--c-grey-800);
}

.cert-card__brand {
    font-size: 14px;
    font-weight: 400;
    line-height: normal;
    color: var(--c-grey-500);
}

/* --------------------------------------------------------------------------
   Планшет: в макете сетка нарисована только для 1440 и 375px,
   поэтому промежуточные ширины разложены по общим контрольным точкам
   -------------------------------------------------------------------------- */

@media (max-width: 1279px) {
    .certificates__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1023px) {
    /* в мобильном макете поля вокруг сетки одинаковые — по 56px */
    .certificates {
        padding-bottom: 56px;
    }
}

/* --------------------------------------------------------------------------
   Мобильная версия — 343 × 1380
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
    .certificates__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 7px;
        row-gap: 24px;
    }

    .cert-card {
        gap: 8px;
    }

    .cert-card__title {
        font-size: 14px;
    }

    .cert-card__brand {
        font-size: 12px;
    }
}
