/**
 * Página de produto — apresentação do resumo comercial, disponibilidade,
 * variações, composição e avaliações. Valores calculados continuam em
 * atributos `data-*` e são aplicados pelo ProdutoPageServices, mantendo a
 * view PHP livre de CSS inline.
 */
.produto-galeria {
    opacity: 0;
    transition: opacity 0.25s ease-in-out;
}

.produto-galeria.is-ready {
    opacity: 1;
}

.produto-resumo-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 12px;
}

.produto-resumo-avaliacao {
    float: none;
    margin: 0;
}

.produto-resumo-dado {
    color: #888;
    font-size: 0.9em;
}

.produto-resumo-separador {
    color: #ddd;
}

.produto-resumo-link,
.produto-meta-valor {
    font-weight: 500;
}

.produto-preco,
.product-variacoes,
.product-composicao {
    margin-bottom: 15px;
}

.produto-preco-anterior {
    color: #999;
    font-size: 0.9em;
}

.produto-desconto {
    background: #e74c3c;
    border-radius: 3px;
    color: #fff;
    display: inline-block;
    font-size: 0.75em;
    font-weight: 700;
    margin-left: 8px;
    padding: 2px 8px;
    vertical-align: middle;
}

.produto-preco-promocional,
.produto-preco-regular {
    text-decoration: none;
}

.produto-preco-promocional {
    display: block;
}

.produto-preco-promocional__valor {
    margin: 4px 0 0;
}

.produto-preco-regular__valor {
    margin: 0;
}

.produto-estoque {
    font-size: 0.9em;
    margin-bottom: 12px;
}

.produto-estoque__disponivel,
.produto-estoque__encomenda,
.produto-estoque__indisponivel {
    font-weight: 500;
}

.produto-estoque__disponivel {
    color: #237a43;
}

.produto-estoque__encomenda {
    color: #246b99;
}

.produto-estoque__indisponivel {
    color: #c0392b;
}

.produto-estoque__icone {
    margin-right: 4px;
}

.produto-estoque__baixo {
    color: #a6530a;
    font-size: 0.85em;
    margin-left: 8px;
}

.variacao-grupo {
    margin-bottom: 10px;
}

.variacao-grupo label {
    display: block;
    font-weight: 700;
    margin-bottom: 4px;
}

.variacao-select {
    max-width: 250px;
}

#estoque-variacao {
    margin-top: 8px;
}

.product-composicao__item {
    gap: 10px;
    margin-bottom: 10px;
}

.product-composicao__imagem {
    border-radius: 4px;
    height: 50px;
    object-fit: cover;
    width: 50px;
}

.product-composicao__quantidade {
    margin-left: 5px;
}

.produto-meta-linha {
    display: block;
    margin-bottom: 4px;
}

.produto-meta-linha--final {
    margin-bottom: 0;
}

.tab-description-content {
    color: #444;
    font-size: 0.95em;
    line-height: 1.8;
}

.reviews-score__stars {
    font-size: 1em;
    margin: 8px auto 4px;
}

.review-rating {
    margin-left: auto;
}

.review-rating__stars {
    font-size: 0.75em;
}

.reviews-empty {
    color: #777;
    padding: 30px 0;
    text-align: center;
}

.reviews-empty__icon {
    display: block;
    font-size: 2.5em;
    margin-bottom: 10px;
}

.reviews-empty__title {
    font-size: 1em;
    margin: 0;
}

.reviews-empty__text {
    font-size: 0.9em;
    margin: 5px 0 0;
}

#review_form_wrapper {
    border-top: 1px solid #eee;
    margin-top: 30px;
    padding-top: 25px;
}

.review-form__title {
    font-size: 1.1em;
    font-weight: 600;
    margin: 0 0 5px;
}

.review-form__notice {
    color: #777;
    font-size: 0.85em;
    margin: 0 0 20px;
}

.review-login {
    background: #f7f7f7;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    padding: 20px;
    text-align: center;
}

.review-login__text {
    color: #555;
    margin: 0 0 12px;
}

@media (max-width: 767px) {
    .produto-resumo-separador {
        display: none;
    }

    .produto-resumo-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .produto-galeria {
        transition: none;
    }
}
