.banner-container {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;

    background-image: url('../assets/images/banner-produtos.png');
    background-size: cover;
    background-position: center;

    height: 23.75rem;
    width: 100%;

    &::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        /* Cor de sobreposição (preto com opacidade) */
        z-index: 1;
        /* Garante que a sobreposição fique atrás do conteúdo */
    }

    & .banner-badge {
        text-transform: uppercase;
        font-size: .875rem;
        font-family: sans-serif;
        color: var(--orange-400);

        letter-spacing: 4px;
        z-index: 2;
    }

    & .banner-title {
        font-size: 3.5rem;
        font-weight: 500;
        color: var(--gray-100);
        z-index: 2;
        /* Garante que o título fique acima da sobreposição */
    }
}

.main-container {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 3rem;

    & .search-section {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        gap: 1rem;
        padding: 1rem;

        background-color: var(--white);
        border: 1px solid var(--gray-200);
        border-radius: 1rem;

        & .filters-container {
            display: flex;
            align-items: center;
            gap: .5rem;
            flex: 1;

            & .filters-icon {
                margin-right: .5rem;
                width: 1.25rem;
            }

            & .filter-button {
                padding: .5rem 1rem;

                background-color: var(--gray-100);
                border-radius: 4rem;
                border: none;

                font-size: .875rem;
                color: var(--gray-800);

                transition: background-color 0.3s ease;

                &:hover {
                    background-color: var(--gray-200);
                }

                &.active {
                    background-color: var(--orange-600);
                    color: var(--white);
                }
            }
        }

        & .search-input-container {
            display: flex;
            align-items: center;
            gap: .5rem;
            padding: .75rem 1rem;

            background-color: var(--gray-100);
            border: 1px solid var(--gray-300);
            border-radius: .875rem;
            color: var(--gray-800);

            & .search-input {
                border: none;
                background-color: transparent;

                font-size: .875rem;

                &::placeholder {
                    color: var(--gray-500);
                }

                &:focus {
                    outline: none;
                }

            }
        }

        & .add-vinho-btn {
            padding: .85rem 2rem;

            border-radius: .875rem;
            font-size: .875rem;

            background-color: var(--orange-600);
            border: 1px solid var(--orange-600);
            color: var(--white);

            transition: background-color .2s ease;

            &:hover {
                background-color: var(--orange-800);
                border-color: var(--orange-800);
            }

        }
    }

    & .result-section .result-content {
        color: var(--gray-600);
        font-size: 1rem;
        font-weight: 300;
        font-family: sans-serif;

        & strong {
            color: var(--gray-900);
        }
    }

    & .produtos-section {
        display: flex;
        flex-wrap: wrap;
        gap: 2rem;

        & .produto-card {
            background-color: var(--white);
            border: 1px solid var(--gray-100);
            border-radius: 1rem;

            max-width: 23.75rem;

            & .produto-header {
                background-color: var(--gray-100);
                border-radius: 1rem 1rem 0 0;

                & .produto-tag-container {
                    position: relative;
                    width: 100%;

                    & .tag {
                        position: absolute;
                        top: 1rem;

                        width: fit-content;

                        display: flex;
                        align-items: center;
                        gap: .25rem;

                        padding: .375rem .75rem;

                        color: var(--white);
                        border-radius: 4rem;

                        font-size: .75rem;
                        font-weight: 600;
                        font-family: sans-serif;

                        &.primary {
                            left: 1rem;

                            background-color: var(--orange-400);
                        }

                        &.secondary {
                            right: 1rem;
                            letter-spacing: 1.2px;

                            background-color: var(--gray-900);
                        }
                    }
                }

                & .produto-image {
                    width: 100%;
                    height: 20rem;
                    object-fit: cover;
                }
            }

            & .produto-body {
                display: grid;
                gap: .75rem;
                padding: 2rem;

                & .produto-badge-container {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    gap: .5rem;

                    font-family: sans-serif;

                    & .wine-type {
                        padding: .25rem .5rem;

                        color: var(--orange-800);
                        text-transform: uppercase;

                        font-size: .75rem;

                        background-color: var(--orange-100);
                        border: 1px solid var(--orange-200);
                        border-radius: .25rem;
                    }

                    & .grape-type {
                        font-size: .875rem;
                        color: var(--gray-600);
                    }
                }

                & .produto-name {
                    font-size: 1.5rem;
                    font-weight: 500;
                    color: var(--gray-900);
                }

                & .produto-description {
                    font-size: .875rem;
                    font-family: sans-serif;
                    font-weight: 300;
                    color: var(--gray-800);

                    line-height: 140%;

                    /* Limita a descrição a 3 linhas e adiciona reticências se ultrapassar */
                    overflow: hidden;
                    display: -webkit-box;
                    -webkit-box-orient: vertical;
                    -webkit-line-clamp: 3;
                    line-clamp: 3;
                }

                & .produto-price {
                    margin-top: .75rem;
                    display: flex;
                    flex-direction: column;
                    gap: .25rem;

                    & .price-label {
                        font-size: .75rem;
                        font-family: sans-serif;
                        color: var(--gray-800);
                        text-transform: uppercase;
                    }

                    & .price-value {
                        font-size: 1.5rem;
                        font-weight: 600;
                        font-family: sans-serif;
                        color: var(--gray-900);
                    }
                }
            }

            & .produto-action {
                margin-inline: 2rem;
                padding-block: 2rem;

                display: flex;
                gap: .75rem;

                border-top: 1px solid var(--gray-100);

                & a {
                    text-decoration: none;
                    width: 100%;

                    & .action-button {
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        gap: .5rem;

                        padding: .75rem 2rem;
                        width: 100%;

                        border-radius: .875rem;
                        font-size: .875rem;

                        transition: background-color .2s ease;

                        &.primary {
                            background-color: var(--gray-100);
                            border: 1px solid var(--gray-200);
                            color: var(--gray-900);

                            &:hover {
                                background-color: var(--gray-200);
                            }
                        }

                        &.secondary {
                            background-color: var(--orange-600);
                            border: 1px solid var(--orange-600);
                            color: var(--white);

                            &:hover {
                                background-color: var(--orange-800);
                                border-color: var(--orange-800);
                            }
                        }
                    }
                }
            }
        }
    }
}