.specialists{
    padding: 72px 0 0;
}

/* Единый грид-контейнер: заголовок, кнопка и сетка карточек —
   это три элемента одного grid, поэтому кнопка не дублируется,
   а просто переставляется через grid-area (аналог order) */
.specialists__layout{
    display:grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "heading button"
      "grid    grid";
    column-gap: 24px;
    row-gap: 36px;
    align-items:end;
}

.specialists__heading{ grid-area: heading; }

.specialists__title{
    margin:0 0 14px;
    color: var(--text);
    font-family:'Inter', sans-serif;
    font-size: 40px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.specialists__desc{
    margin:0;
    max-width: 560px;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.5;
    font-weight: 400;
}

.specialists__all{
    grid-area: button;
    justify-self:end;
    display:inline-flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
    white-space:nowrap;
    padding: 0.75rem 1.5rem;
    border-radius: 12px;
    border: 1px solid var(--green);
    background:#fff;
    color: var(--green);
    text-decoration:none;
    font-weight:600;
    font-size: 15px;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
    background: var(--green-light);
}
.specialists__all:hover{
    background: white;
    border-color: var(--green);
    color: var(--green);
    transform: translateX(2px);
}
.specialists__all i{ font-size: .8rem; }

.specialists__grid{
    grid-area: grid;
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.specialists__card{
    position:relative;
    display:block;
    aspect-ratio: 3 / 3.4;
    border-radius: 16px;
    overflow:hidden;
    background: var(--green-light);
    text-decoration:none;
}

.specialists__card img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition: transform .5s cubic-bezier(.2,.7,.2,1);
}

.specialists__card::after{
    content:"";
    position:absolute;
    inset:0;
    background: linear-gradient(180deg, rgba(17,17,34,0) 42%, rgba(17,17,34,.72) 100%);
}

.specialists__card:hover img{ transform: scale(1.06); }
.specialists__card:hover{ color:inherit; }

.specialists__card-body{
    position:absolute;
    left:0; right:0; bottom:0;
    z-index:1;
    padding: 18px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap: 10px;
}

.specialists__card-name{
    color:#fff;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.specialists__arrow{
    flex-shrink:0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display:flex;
    align-items:center;
    justify-content:center;
    border: 1px solid rgba(255,255,255,.35);
    backdrop-filter: blur(6px);
    transition: background-color .2s ease, transform .2s ease;
}
.specialists__arrow i{ color:#fff; font-size:.85rem; transition: color .2s ease; }
.specialists__card:hover .specialists__arrow{ background:#fff; transform: translate(2px,-2px); }
.specialists__card:hover .specialists__arrow i{ color: var(--green-logo); }

/* ---------- Tablet ---------- */
@media (max-width: 1199.98px){
    .specialists{ padding: 56px 0 64px; }
    .specialists__title{ font-size: 32px; }
    .specialists__grid{ grid-template-columns: repeat(2, 1fr); gap: 16px; }
}

/* ---------- Mobile ---------- */
@media (max-width: 767.98px){
    .specialists{ padding: 40px 0 48px; }

    /* та же кнопка переезжает под сетку — просто меняем area-раскладку */
    .specialists__layout{
        grid-template-columns: 1fr;
        grid-template-areas:
        "heading"
        "grid"
        "button";
        row-gap: 24px;
    }
    .specialists__all{
        justify-self:stretch;
        justify-content:center;
    }

    .specialists__title{ font-size: 26px; }
    .specialists__desc{ font-size: 15px; max-width:100%; }
    .specialists__grid{ gap: 12px; }
    .specialists__card{ aspect-ratio: 1 / 1.05; border-radius: 14px; }
    .specialists__card-body{ padding: 12px; }
    .specialists__card-name{ font-size: 14px; }
    .specialists__arrow{ width:28px; height:28px; }
    .specialists__arrow i{ font-size:.7rem; }
}
