/* Estilos extras da Loja Vitrine (orçamento, whatsapp flutuante, formulários) */

.whatsapp-float {
    position: fixed;
    right: 20px;
    bottom: 20px;
    background: #25D366;
    color: #fff;
    border-radius: 50%;
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    box-shadow: 0 4px 14px rgba(0,0,0,.3);
    z-index: 9999;
    animation: wa-pulse 1.8s infinite;
}
.whatsapp-float:hover { color: #fff; opacity: .9; }
@keyframes wa-pulse {
    0% { box-shadow: 0 0 0 0 rgba(37,211,102,.55); }
    70% { box-shadow: 0 0 0 12px rgba(37,211,102,0); }
    100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}

.quote-table th, .quote-table td { vertical-align: middle; }
.quote-qty-input { width: 70px; display: inline-block; }

.product-card { border: 1px solid #eee; border-radius: 8px; overflow: hidden; transition: box-shadow .2s; height: 100%; }
.product-card:hover { box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.product-card img { width: 100%; height: 220px; object-fit: cover; }
.product-card .product-card-body { padding: 15px; }

/* Galeria de fotos do produto: miniaturas ao lado da foto principal (em
   telas grandes) e clicar numa miniatura troca a foto principal (ver
   vitrine.js). Em telas pequenas as miniaturas ficam numa fileira horizontal
   acima da foto principal, porque uma coluna lateral estreita demais não
   cabe bem no celular. */
.product-gallery { display: flex; flex-direction: column-reverse; gap: 10px; }
.product-gallery-thumbs { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; }
.product-gallery-main { width: 100%; }
.product-gallery-main img { width: 100%; border-radius: 6px; }

.gallery-thumb { width: 70px; height: 70px; object-fit: cover; border-radius: 6px; border: 2px solid transparent; cursor: pointer; flex-shrink: 0; }
.gallery-thumb:hover { border-color: var(--highlight, #E81C2E); }
.gallery-thumb.active { border-color: var(--highlight, #E81C2E); }

@media (min-width: 768px) {
    .product-gallery { flex-direction: row; align-items: flex-start; }
    .product-gallery-thumbs { flex-direction: column; flex-wrap: nowrap; max-height: 520px; overflow-y: auto; }
    .product-gallery-main { flex: 1; }
}

.badge-status-pending   { background:#f0ad4e; color:#fff; }
.badge-status-contacted { background:#5bc0de; color:#fff; }
.badge-status-quoted    { background:#0275d8; color:#fff; }
.badge-status-closed    { background:#5cb85c; color:#fff; }
.badge-status-cancelled { background:#d9534f; color:#fff; }

.step-indicator { display:flex; gap:8px; margin-bottom:20px; flex-wrap:wrap; }
.step-indicator span { padding:6px 14px; border-radius:20px; background:#eee; font-size:13px; }
.step-indicator span.active { background: var(--highlight, #E81C2E); color:#fff; }

.form-required::after { content: " *"; color: #E81C2E; }

/* Conteúdo cadastrado pelo editor de texto rico do admin (blog, páginas,
   descrição de produto/segmento/máquina) */
.rich-content img { max-width: 100%; height: auto; border-radius: 6px; margin: 10px 0; }
.rich-content p { margin-bottom: 1rem; }
.rich-content ul, .rich-content ol { padding-left: 1.4rem; margin-bottom: 1rem; }
.rich-content blockquote { border-left: 3px solid var(--highlight, #E81C2E); padding-left: 12px; color: #666; margin: 0 0 1rem; }
