@import url('https://fonts.googleapis.com/css2?family=Inter:wght@500;700&display=swap');

.lab-features {
    --columns: 3;
    --gap: clamp(28px, 5vw, 56px);
    --item-gap: clamp(16px, 3.2vw, 24px);
    --heading-gap: clamp(12px, 2.6vw, 18px);
    --icon-size: clamp(36px, 4.5vw, 48px);
    --title-size: var(--text-heading-5, 1.25rem);
    --body-size: clamp(0.95rem, 0.9rem + 0.35vw, 1.1rem);
    --edge-padding: clamp(64px, 11vw, 196px);
    display: block;
    width: 100%;
    font-family: 'Inter', sans-serif;
    padding-inline: var(--edge-padding);
}

.lab-features__block-title {
    margin: 0 auto clamp(24px, 4vw, 40px);
    max-width: 720px;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: clamp(1.625rem, 1.3rem + 1.2vw, 1.875rem);
    line-height: 1.25;
    letter-spacing: -0.01em;
    text-align: center;
    color: #111827;
}

.lab-features__grid {
    display: grid;
    gap: var(--gap);
    margin: 0;
    width: 100%;
    padding-block: clamp(12px, 3vw, 32px);
    grid-template-columns: repeat(1, minmax(0, 1fr));
    align-items: stretch;
}

.lab-features__item {
    display: flex;
    flex-direction: column;
    gap: var(--item-gap);
    min-width: 0;
    width: 100%;
    height: 100%;
}

.lab-features__grid--columns-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.lab-features__grid--columns-2,
.lab-features__grid--columns-3,
.lab-features__grid--columns-4 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 641px) {
    .lab-features__grid--columns-2,
    .lab-features__grid--columns-3,
    .lab-features__grid--columns-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1025px) {
    .lab-features__grid--columns-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .lab-features__grid--columns-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lab-features__grid--columns-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lab-features__grid--columns-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.lab-features__heading {
    display: flex;
    align-items: center;
    gap: var(--heading-gap);
    min-width: 0;
}

.lab-features__icon {
    width: var(--icon-size);
    height: var(--icon-size);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.lab-features__icon img {
    display: block;
    max-width: 70%;
    max-height: 70%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.lab-features__icon-placeholder {
    width: clamp(18px, 2.6vw, 24px);
    height: clamp(18px, 2.6vw, 24px);
    background: rgba(17, 24, 39, 0.15);
    border-radius: 999px;
    display: block;
}

.lab-features__title {
    margin: 0;
    font-family: 'Inter', sans-serif;
    font-size: var(--title-size);
    font-weight: 700;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: -0.01em;
    color: #111827;
    min-width: 0;
    word-break: break-word;
}

.lab-features__description {
    font-size: var(--body-size);
    line-height: 1.5;
    font-weight: 500;
    color: #111827;
    text-align: left;
    white-space: pre-line;
}

@media (max-width: 1024px) {
    .lab-features {
        --edge-padding: clamp(48px, 9vw, 136px);
        --gap: clamp(24px, 6vw, 48px);
        --item-gap: clamp(14px, 3vw, 22px);
        --heading-gap: clamp(10px, 2.4vw, 16px);
        --icon-size: clamp(34px, 6vw, 44px);
        --body-size: clamp(0.92rem, 0.88rem + 0.3vw, 1.02rem);
    }

}

@media (max-width: 640px) {
    .lab-features__grid {
        padding: clamp(4px, 1.5vw, 12px);
    }

    .lab-features__heading {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 540px) {
    .lab-features {
        --edge-padding: clamp(40px, 10vw, 88px);
        --gap: clamp(20px, 7vw, 36px);
        --item-gap: clamp(12px, 5vw, 18px);
        --heading-gap: clamp(10px, 4vw, 14px);
        --icon-size: clamp(30px, 12vw, 40px);
        --body-size: clamp(0.85rem, 0.8rem + 0.35vw, 0.95rem);
    }
}
