/* Carrossel de Banners Responsivo e Sem Cortes */
.carrossel-container { 
    position: relative; 
    width: 100%; 
    background: var(--bg-main); 
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.carrossel-slide { 
    display: flex; 
    width: 100%; 
    transition: transform 0.5s ease-in-out; 
}

.carrossel-link { 
    width: 100%; 
    flex-shrink: 0; 
    display: flex;
    justify-content: center;
    align-items: center;
}

.carrossel-img { 
    width: 100%; 
    height: auto; 
    max-height: 70vh; 
    object-fit: contain; /* Garante que a imagem inteira apareça sem cortes */
    display: block; 
}

.carrossel-btn { 
    position: absolute; 
    top: 50%; 
    transform: translateY(-50%); 
    background: rgba(0,0,0,0.6); 
    color: white; 
    border: none; 
    padding: 15px 20px; 
    cursor: pointer; 
    font-size: 24px; 
    z-index: 10; 
    transition: 0.3s; 
}

.carrossel-btn:hover { background: var(--accent); }
.carrossel-btn.prev { left: 20px; }
.carrossel-btn.next { right: 20px; }

/* Título da Seção */
.section-title { text-align: center; margin: 70px 0 40px; }
.section-title p { font-size: 12px; color: var(--accent); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 8px; font-weight: 800; }
.section-title h2 { font-size: 32px; font-weight: 800; text-transform: uppercase; letter-spacing: -0.5px; }

/* Grade de Produtos */
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; padding: 0 50px 100px; max-width: 1600px; margin: 0 auto; flex: 1; }
.product-card { background: var(--card-bg); border: 1px solid rgba(136, 136, 136, 0.2); border-radius: 8px; padding: 15px; text-align: center; cursor: pointer; transition: transform 0.3s ease, border-color 0.3s ease; }
.product-card:hover { transform: translateY(-8px); border-color: var(--accent); }
.product-img { width: 100%; aspect-ratio: 1/1; object-fit: contain; background: #111; margin-bottom: 15px; border-radius: 4px; }
.product-name { font-size: 14px; font-weight: 600; margin-bottom: 8px; color: var(--text-main); }
.product-price { font-size: 15px; color: var(--accent); font-weight: 800; }

@media (max-width: 1024px) { .product-grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 900px) {
    /* Ajusta o espaçamento geral do container principal da home */
    main {
        padding: 20px 10px !important;
    }

    /* Se houver títulos grandes na home, redimensiona para não estourar a tela */
    main h1 {
        font-size: 24px !important;
    }

    .products-grid, .home-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
}

@media (max-width: 600px) {
    /* Em telemóveis muito estreitos, exibe os produtos em coluna única */
    .products-grid, .home-grid {
        grid-template-columns: 1fr !important;
    }

    /* Ajusta banners ou carrossel principal para ocuparem 100% da largura sem margens excessivas */
    .hero-carousel, .banner-container {
        width: 100% !important;
        border-radius: 0 !important;
    }
}

a, 
a:visited, 
a:hover, 
a:active {
    text-decoration: none !important;
}

/* Força a remoção de sublinhado em todos os elementos dentro dos cards */
.product-card,
.product-card *,
#featured-grid a,
#products-grid a {
    text-decoration: none !important;
}

/* Mantém o nome do produto branco puro */
.product-card h3,
.product-card .product-name,
.product-card-title {
    color: #ffffff !important;
    text-decoration: none !important;
}

/* Mantém o preço em vermelho destaque sem linha por baixo */
.product-card .product-price,
.product-card .product-card-price,
.product-card .price-container span:not([style*="line-through"]) {
    color: var(--accent) !important;
    text-decoration: none !important;
}