.contact {
    width: min(900px, 90%);
    margin: 0 auto;
    padding: 80px 0;
}

.contact h2 {
    margin: 0 0 40px;

    text-align: center;
    font-size: 2.2rem;
    color: #fff;
}

.contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.contact-item {
    min-height: 100px;

    display: flex;
    align-items: center;
    gap: 18px;

    padding: 20px;

    color: inherit;
    text-decoration: none;

    border-radius: 20px;

    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.12);

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    box-shadow:
            0 10px 30px rgba(0, 0, 0, 0.15),
            inset 0 1px 0 rgba(255, 255, 255, 0.08);

    transition:
            transform 0.25s ease,
            background 0.25s ease,
            border-color 0.25s ease,
            box-shadow 0.25s ease;
}

.contact-item img {
    width: 42px;
    height: 42px;

    object-fit: contain;

    filter: invert(1);
    opacity: 0.85;

    transition:
            transform 0.25s ease,
            opacity 0.25s ease;
}

.contact-item div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contact-title {
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
}

.contact-description {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.85rem;
}

.contact-item:hover {
    transform: translateY(-5px);

    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(255, 255, 255, 0.22);

    box-shadow:
            0 18px 40px rgba(0, 0, 0, 0.25),
            0 0 25px rgba(255, 255, 255, 0.04);
}

.contact-item:hover img {
    transform: scale(1.1);
    opacity: 1;
}

@media (max-width: 700px) {
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .contact {
        padding: 60px 0;
    }
}