/* siqueira_compressores_vs/assets/css/style.css */

body { 
    font-family: 'Inter', sans-serif;
}

/* Classes para Cores Dinâmicas */
.header-bg {
     background-color: var(--color-header-bg);
}
.footer-bg {
     background-color: var(--color-footer-bg);
}
.button-bg {
    background-color: var(--color-button-bg);
}
.text-highlight {
    color: var(--color-text-highlight);
}

/* NOVAS CLASSES DE MARCA PARA CONSISTÊNCIA */
.brand-bg {
    background-color: var(--color-button-bg, #2563eb); /* Cor de fallback azul */
}
.brand-bg:hover {
    opacity: 0.9;
}
.brand-text {
    color: var(--color-button-bg, #2563eb);
}
.brand-link {
    color: var(--color-button-bg, #2563eb);
    font-weight: 600;
}
.brand-link:hover {
    text-decoration: underline;
}
.brand-border {
    border-color: var(--color-button-bg, #2563eb);
}
.brand-bg-soft {
    background-color: var(--color-button-bg-soft, #eff6ff); /* Fallback azul claro */
}
.brand-text-dark {
     color: var(--color-text-highlight, #1e3a8a); /* Fallback azul escuro */
}

/* Aplica a cor do botão a elementos que antes usavam 'brand-yellow' */
.brand-button {
    background-color: var(--color-button-bg);
}
.brand-button:hover {
    opacity: 0.9;
}

/* Estilo do Link de Navegação Ativo */
.nav-link-active {
    border-bottom: 3px solid var(--color-button-bg); /* Usa a cor de botão para consistência */
    color: #1a202c; /* Cor de texto mais escura para destaque */
    font-weight: 700;
}

/* Padrão de Fundo para a Página "Sobre" */
.custom-bg-pattern {
    background-image: url('https://www.transparenttextures.com/patterns/clean-gray-paper.png');
    background-color: #f7fafc;
}

/* Estilos para o loader de quantidade no carrinho (sem alterações) */
.quantity-loader { display: none; align-items: center; justify-content: center; }
.quantity-selector-wrapper.loading .quantity-loader { display: flex; }
.quantity-selector-wrapper.loading .quantity-change,
.quantity-selector-wrapper.loading .quantity-input { visibility: hidden; }
.quantity-loader-spinner { border: 3px solid rgba(0, 0, 0, 0.1); border-left-color: var(--color-button-bg, #3b82f6); border-radius: 50%; width: 28px; height: 28px; animation: spin 0.8s linear infinite; }
.quantity-input:focus { outline: none; box-shadow: none; border-color: transparent; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Animação para o ponto de status ativo (versão aprimorada) */
@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(55, 65, 81, 0.7);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(55, 65, 81, 0);
  }
}
.pulsing-dot {
  animation: pulse-glow 2s infinite;
}

/* NOVOS ESTILOS PARA OS CARDS DE PRODUTOS */
.product-card {
    display: flex;
    flex-direction: column;
    background-color: white;
    border-radius: 0.375rem;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    height: 100%;
    text-align: left;
}

.product-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    transform: translateY(-4px);
}

.product-card-image-container {
    padding: 0.5rem;
    border-bottom: 1px solid #f3f4f6;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product-card-image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.product-card-info {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.product-card-name {
    font-size: 0.875rem; /* 14px */
    color: #4b5563; /* text-gray-600 */
    margin-bottom: 0.75rem;
    line-height: 1.4;
    flex-grow: 1; 
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2; 
    -webkit-box-orient: vertical;
    min-height: 2.45rem; 
}

.product-card-regular-price {
    font-size: 0.8rem; /* 13px */
    color: #6b7280; /* text-gray-500 */
    text-decoration: line-through;
}

.product-card-price {
    font-size: 1.5rem; /* 24px */
    font-weight: 700; /* bold */
    color: var(--color-text-highlight, #111827);
    line-height: 1.2;
    white-space: nowrap; /* Impede que o "R$" quebre a linha do valor */
}

.product-card-discount {
    font-size: 0.875rem; /* 14px */
    font-weight: 700;
    color: #111827;
}

.product-card-installments {
    font-size: 0.875rem;
    color: #111827;
    margin-top: 0.1rem;
}

/* --- NOVOS ESTILOS PARA O MENU GAVETA MOBILE --- */
#mobile-menu-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0,0,0,0.5);
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    z-index: 49;
}
#mobile-menu-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

/* --- NOVOS ESTILOS PARA O CARD DE PRODUTO GRANDE --- */
.product-card-large {
    display: flex;
    flex-direction: column;
    background-color: white;
    border-radius: 0.375rem;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    height: 100%;
    text-align: left;
}
.product-card-large:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    transform: translateY(-4px);
}
.product-card-large-image-container {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.product-card-large-image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.product-card-large-info {
    padding: 1rem;
    border-top: 1px solid #f3f4f6;
}



/* Adicionar ao final de assets/css/style.css */

/* --- NOVOS ESTILOS PARA A PÁGINA DE DETALHES DO PRODUTO (v2) --- */

/* Galeria de Imagens Desktop */
.detail-gallery-thumbnail {
    width: 64px;
    height: 64px;
    cursor: pointer;
    border: 2px solid #e5e7eb;
    border-radius: 0.375rem;
    transition: border-color 0.3s ease;
    flex-shrink: 0;
}
.detail-gallery-thumbnail:hover {
    border-color: #9ca3af;
}
.detail-gallery-thumbnail.active {
    border-color: var(--color-button-bg, #2563eb);
}

/* Galeria de Imagens Mobile (Swiper) */
.product-gallery-mobile {
    width: 100%;
    height: 320px; /* 80rem */
}

/* CORREÇÃO: Garante que o slide da galeria mobile centralize a imagem */
.product-gallery-mobile .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
}

.swiper-pagination-bullet-active {
    background-color: var(--color-button-bg, #2563eb) !important;
}

/* Input de quantidade */
#quantity-input {
    -moz-appearance: textfield; /* Firefox */
}
#quantity-input::-webkit-outer-spin-button,
#quantity-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* CORREÇÃO: Esconde ícone padrão de limpar em campos de busca */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}
input[type="search"]::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}

/* --- INÍCIO DA CORREÇÃO v2 --- */
/* Media Query para ajustar os cards em ecrãs pequenos (mobile) */
@media (max-width: 640px) {
    .product-card-info {
        padding: 0.75rem; /* Reduz o padding interno para dar mais espaço */
    }
    .product-card-name {
        font-size: 0.8rem; /* Reduz ligeiramente o nome do produto */
        min-height: 2.24rem; /* Recalcula a altura mínima: 1.4 * 0.8rem * 2 */
    }
    .product-card-price {
        font-size: 1.25rem; /* Reduz o preço de 24px para 20px */
    }
    .product-card-discount {
        font-size: 0.75rem; /* Reduz o texto do desconto para 12px */
    }
    .product-card-regular-price {
        font-size: 0.75rem;
    }
    .product-card-installments {
        font-size: 0.8rem;
    }
}

/* --- INÍCIO DA MODIFICAÇÃO (Estilo Botão Desativado) --- */
.brand-bg:disabled,
button:disabled {
    background-color: #9ca3af; /* Tailwind gray-400 */
    color: #e5e7eb; /* Tailwind gray-200 */
    opacity: 0.7;
    cursor: not-allowed;
}
/* Previne que o :hover mude a cor quando desativado */
.brand-bg:disabled:hover,
button:disabled:hover {
    background-color: #9ca3af;
    opacity: 0.7;
}

/* --- INÍCIO DA MODIFICAÇÃO: Banner Parallax (v3.7 - Restaurado) --- */
.parallax-banner {
    min-height: 300px; /* Altura do banner */
    background-attachment: fixed; /* Parallax no Desktop */
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover; /* <- Garante que preenche, mesmo que corte */
    position: relative;
    width: 100%;
}
/* Overlay para tornar o banner clicável */
.parallax-banner-link-overlay {
    position: absolute;
    inset: 0; /* Cobre o banner inteiro */
    display: block;
}

/* Correção Parallax no Mobile: Desativa o 'fixed' e usa 'cover' */
@media (max-width: 767px) {
    .parallax-banner {
        background-attachment: scroll; 
    }
}
/* --- FIM DA MODIFICAÇÃO --- */