/* ===================== SHOWCASE GRID ===================== */

.showcase-section {
    padding: 100px 80px;
    font-family: Montserrat, sans-serif;

    .showcase-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 35px;

        .showcase-card {
            border-radius: 12px;
            overflow: hidden;
            background: white;
            box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            cursor: pointer;

            &:hover {
                transform: translateY(-6px);
                box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
            }

            .showcase-card-img {
                position: relative;
                height: 320px;
                overflow: hidden;

                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    transition: transform 0.4s ease;
                }

                .showcase-tag {
                    position: absolute;
                    top: 16px;
                    left: 16px;
                    background: rgba(0, 0, 0, 0.75);
                    color: white;
                    padding: 6px 14px;
                    border-radius: 6px;
                    font-size: 0.8rem;
                    font-weight: 400;
                    letter-spacing: 0.5px;
                }
            }

            &:hover .showcase-card-img img {
                transform: scale(1.05);
            }

            .showcase-card-info {
                padding: 25px;

                h3 {
                    font-weight: 500;
                    font-size: 1.1rem;
                    margin-bottom: 8px;
                    letter-spacing: 0.3px;
                }

                p {
                    font-family: Inter, sans-serif;
                    font-weight: 300;
                    font-size: 0.9rem;
                    line-height: 1.6;
                    color: rgba(0, 0, 0, 0.6);
                }
            }
        }
    }
}

/* ===================== MODAL ===================== */

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 20000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    padding: 40px;

    &.active {
        opacity: 1;
        visibility: visible;

        .modal-card {
            transform: translateY(0);
            opacity: 1;
        }
    }

    .modal-card {
        background: white;
        border-radius: 16px;
        overflow: hidden;
        max-width: 750px;
        width: 100%;
        max-height: 90vh;
        overflow-y: auto;
        position: relative;
        transform: translateY(30px);
        opacity: 0;
        transition: transform 0.35s ease, opacity 0.35s ease;

        .modal-close {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            border: none;
            background: rgba(0, 0, 0, 0.55);
            color: white;
            font-size: 1.1rem;
            cursor: pointer;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 1;
            transition: background 0.3s ease;

            &:hover {
                background: rgba(0, 0, 0, 0.8);
            }
        }

        .modal-img {
            width: 100%;
            height: 450px;

            img {
                width: 100%;
                height: 100%;
                object-fit: cover;
            }
        }

        .modal-info {
            padding: 35px 40px 40px;
            font-family: Montserrat, sans-serif;

            .modal-tag {
                font-size: 0.75rem;
                font-weight: 400;
                letter-spacing: 1.5px;
                text-transform: uppercase;
                color: rgba(0, 0, 0, 0.4);
                margin-bottom: 10px;
                display: block;
            }

            h2 {
                font-weight: 500;
                font-size: 1.6rem;
                margin-bottom: 14px;
                letter-spacing: 0.3px;
            }

            p {
                font-family: Inter, sans-serif;
                font-weight: 300;
                font-size: 0.95rem;
                line-height: 1.8;
                color: rgba(0, 0, 0, 0.6);
            }
        }
    }
}

/* ===================== RESPONSIVE ===================== */

@media (max-width: 1024px) {
    .showcase-section {
        padding: 80px 40px;

        .showcase-grid {
            gap: 25px;

            .showcase-card .showcase-card-img {
                height: 240px;
            }
        }
    }
}

@media (max-width: 768px) {
    .modal-overlay {
        padding: 20px;

        .modal-card {
            .modal-img {
                height: 300px;
            }

            .modal-info {
                padding: 25px;

                h2 {
                    font-size: 1.3rem;
                }
            }
        }
    }

    .showcase-section {
        padding: 60px 20px;

        .showcase-grid {
            grid-template-columns: repeat(2, 1fr);
            gap: 20px;

            .showcase-card .showcase-card-img {
                height: 220px;
            }

            .showcase-card .showcase-card-info {
                padding: 20px;

                h3 {
                    font-size: 1rem;
                }

                p {
                    font-size: 0.85rem;
                }
            }
        }
    }
}

@media (max-width: 480px) {
    .modal-overlay {
        padding: 10px;

        .modal-card .modal-img {
            height: 220px;
        }
    }

    .showcase-section {
        padding: 40px 15px;

        .showcase-grid {
            grid-template-columns: 1fr;
            gap: 20px;

            .showcase-card .showcase-card-img {
                height: 250px;
            }
        }
    }
}
