/* --- ESTRUTURA PRINCIPAL DO SLIDER --- */
.main-carousel {
    width: 100%;
    height: 100vh;
    min-height: 500px;
}

.carousel-cell {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    color: white;
}

.carousel-cell-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit:cover;
    object-position: top;
    z-index: -1;
}

.slide-content {
    display:flex;
    flex-direction: column;
    text-align: left;
    max-width: 1600px;
    width: 100%;
    box-sizing: border-box;
    z-index: 2;
    justify-content: center;
    align-items: center;
}

.slide-title {
    font-family: 'stretch pro';
    font-weight: 700;
    font-size: 3.5rem;
    text-align: center;
    margin: 0 auto 0 auto;
    transform: scaleX(1.07);

}

.slide-title-secondary {
    font-family: 'Staatliches';
    font-weight: 700;
    text-align: center;
    margin: 0 auto 0.5rem auto;
}

.slide-description {
    text-align: center;
    font-size: 1rem;
    margin: 0 auto 5vh auto;
    font-weight: 600;
    font-family: 'Roboto flex';
}

.slide-cta {
    background-color: #ffffff;
    color: #000;
    padding: 0.6rem 1.5rem;
    text-decoration: none;
    font-weight: 800;
    font-size: 0.9em;
    font-family: 'roboto flex';
    border-radius: 35px;
    text-transform: capitalize;
    margin-bottom: 20vh;
}

/* Estilização opcional para as setas e bolinhas do Flickity */
.flickity-button {
    position: absolute;
    background: none !important;
    border: none;
    color: #ffffff !important;
}
/* big previous & next buttons */
.flickity-prev-next-button {
    width: 100px;
    height: 100px;
}
/* icon color */
    .flickity-button-icon {
    fill: white;
}
/* hide disabled button */
.flickity-button:disabled {
    display: none;
}
.flickity-prev-next-button:hover {
    background: transparent;
}

/* Container principal que alinha os dois cards lado a lado */
.section-main-product {
    display: flex;
    width: 100%;
    height: 100vh; /* Ocupa a altura total da tela */
}

/* Estilo base para cada card */
.full-page-product {
    width: 50%; /* Cada card ocupa metade da largura */
    position: relative; /* Contexto para posicionar o conteúdo */
    overflow: hidden; /* Garante que a imagem não vaze */
    
    /* Propriedades do background para um preenchimento perfeito */
    background-size: cover;
    background-position: top; /* Centraliza a imagem */
    background-repeat: no-repeat;
    
    /* Usa flexbox para alinhar o conteúdo interno */
    display: flex;
    align-items: flex-end; /* Alinha o conteúdo na base do card */
    padding: 40px;
    box-sizing: border-box;

    font-family: 'Staatliches';
}

.full-page-product::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  
  /* Aqui está a mágica: um fundo preto com 40% de opacidade */
  background-image: linear-gradient(
    to bottom, 
    rgba(0, 0, 0, 0) 30%, 
    rgba(0, 0, 0, 0.8) 100%
  );
  
  /* Garante que o overlay fique sobre a imagem e abaixo do texto */
  z-index: 1; 
}

/* Container do conteúdo (texto e botões) */
.full-page-product-content {
    color: white; /* Cor do texto, assumindo que as imagens são escuras */
    width: 100%;
    z-index: 2;
}

.full-page-product-subtitle {
    font-size: 1.1em;
    font-weight: 600;
    font-family: 'roboto flex';
    display: block;
    margin-bottom: 8px;
}

.full-page-product-title {
    text-transform: capitalize;
    font-size: 2.5em;
    font-weight: bold;
    margin: 0 0 25px 0;
    line-height: 1.2;
}

/* Alinhamento dos botões */
.full-page-product-button {
    display: flex;
    gap: 15px; /* Espaço entre os botões */
}

/* Estilo dos botões (reutilizável) */
.main-button, .secondary-button {
    padding: 8px 24px;
    border-radius: 30px;
    text-decoration: none;
    font-size: 0.9em;
    font-family: 'roboto flex';
    font-weight: 800;
    transition: all 0.2s ease;
}

.main-button {
    background-color: #ffffff;
    color: #000000;
}
.main-button:hover {
    background-color: #f0f0f0;
}

.secondary-button {
    background-color: #ffffff;
    color: #000000
}
.secondary-button:hover {
    background-color: #ffffff;
    color: #000000;
}

.full-page-product-content-black .main-button {
    background-color: #000000;
    color: #ffffff;
}

.full-page-product-content-black .main-button:hover {
    background-color: #252525;
}

.full-page-product-content-black .secondary-button {
    background-color: #000000;
    color: #ffffff
}

.full-page-product-content-black .secondary-button:hover {
    background-color: #252525;
    color: #ffffff;
}

/* --- Secção de Categorias com 3 Colunas --- */

.category-section {
    padding: 25px 20px; /* Adiciona margens verticais e horizontais */
    background-color: #f8f9fa; /* Um fundo ligeiramente diferente para destacar a secção */
}

.category-section-title {
    width: 100%;
    text-align: center;
    font-family: 'Staatliches';
    font-size: 2.5em;
    margin: 20px auto 20px auto;
    letter-spacing: 1px;
}

.category-grid {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; /* Melhora a experiência de scroll em iOS */
    scrollbar-width: thin; /* Mostra a barra de rolagem no Firefox */
    scrollbar-color: #ccc #f1f1f1;
    gap: 10px; /* O espaço entre os cards */
    max-width: 1250px;
    margin: 0 auto;
    padding-bottom: 10px; /* Espaço para a barra de rolagem não sobrepor o conteúdo */
    cursor: grab;
}

.category-grid.active {
    cursor: grabbing;
}

.category-grid::-webkit-scrollbar {
    height: 8px; /* Altura da barra de rolagem horizontal no Chrome, Safari, etc. */
}

.category-grid::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.category-grid::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}

.category-card {
    position: relative; /* Contexto para posicionar o conteúdo */
    flex: 0 0 calc(33.333% - 10px);
    display: block;
    overflow: hidden;
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    height: 85vh; /* Altura fixa para os cards, ajuste conforme necessário */
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    user-select: none; /* Prevent text selection while dragging */
    -webkit-user-drag: none; /* Prevent image dragging behavior */
}

.category-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px rgba(0,0,0,0.15);
}

.category-card img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Garante que a imagem preencha o card sem distorcer */
    transition: transform 0.3s ease;
    pointer-events: none; /* Evita que a imagem seja "agarrada" nativamente no navegador */
}

.category-card:hover img {
    transform: scale(1.05); /* Efeito de zoom na imagem ao passar o rato */
}

/* Overlay e conteúdo sobre a imagem */
.card-content {
    position: absolute;
    bottom: 5%;
    left: 5%;
    right: 0;
    padding: 30px;
    color: white;
    
}

.card-content-black {
    position: absolute;
    bottom: 5%;
    left: 5%;
    right: 0;
    padding: 30px;
    color: white;
    
}

.card-content-black {
    position: absolute;
    bottom: 5%;
    left: 5%;
    right: 0;
    padding: 30px;
    color: rgb(0, 0, 0);
    
}

.card-button {
    /* Reutiliza os estilos dos seus botões para manter a identidade visual */
    display: inline-block;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 0.9em;
    font-family: 'roboto flex';
    font-weight: 800;
    background-color: #ffffff;
    color: #000000;
    transition: background-color 0.2s ease;
}

.category-card:hover .card-button {
    background-color: #f0f0f0;
}

/* --- Secção do Carrossel de Logos --- */
.logo-carousel-section {
    padding: 20px 0 60px 0;
    background-color: #f8f9fa; /* Fundo suave para destacar a secção */
    text-align: center;
}

.section-title {
    font-size: 2.5em;
    margin-bottom: 40px;
    color: #333;
    font-family: 'Staatliches';
    letter-spacing: 1px;
}

/* O container do carrossel Flickity */
.logo-carousel {
    height: 180px; /* Altura da faixa do carrossel */
    width: 80vw;
    max-width: 1800px;
    margin: 0 auto;
}

/* Cada célula/slide do carrossel */
.logo-cell {
    width: 33%; /* Mostra 5 logos de cada vez em telas grandes */
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-cell img {
    height: 120px; /* Tamanho padrão dos logos menores */
    opacity: 0.5; /* Deixa os logos não selecionados mais apagados */
    filter: grayscale(80%); /* Opcional: efeito de escala de cinza */
    transform: scale(0.8); /* Começa um pouco menor */
    transition: all 0.4s ease; /* Animação suave para todas as propriedades */
}

/* --- A MÁGICA ACONTECE AQUI --- */
/* Estilo para o logo que está no centro (selecionado) */
.logo-cell.is-selected img {
    height: 170px; /* Tamanho maior para o logo principal */
    opacity: 1; /* Opacidade total */
    filter: grayscale(0%);
    transform: scale(1); /* Tamanho normal */
}

/* Esconde os controlos padrão do Flickity para um visual mais limpo */
.flickity-prev-next-button, .flickity-page-dots {
    display: none;
}

/* --- Secção do Carrossel de Produtos --- */
.product-carousel-section {
    max-width: 1400px;
    margin: 60px auto;
    padding: 0 20px;
}
.carousel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.carousel-header h2 {
    text-transform: capitalize;
    font-family: 'Staatliches';
    font-size: 2em;
    margin: 0;
}
.carousel-nav .nav-arrow {
    background-color: #eee;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    cursor: pointer;
    font-size: 1.5em;
    margin-left: 10px;
}

/* O container que permite o scroll */
.product-carousel-wrapper {
    overflow-x: auto;
    /* Estilo da barra de rolagem */
    scrollbar-width: thin;
    scrollbar-color: #ccc #f1f1f1;
}
.product-carousel-wrapper::-webkit-scrollbar {
    height: 8px;
}
.product-carousel-wrapper::-webkit-scrollbar-track {
    background: #f1f1f1;
}
.product-carousel-wrapper::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}

/* A grelha de produtos horizontal */
.product-grid {
    display: flex; /* Transforma em linha */
    gap: 20px;
    padding-bottom: 20px; /* Espaço para a barra de rolagem */
}

/* Garante que os cards tenham uma largura fixa */
.product-grid .product-card {
    flex: 0 0 300px; /* Não encolhe, não cresce, base de 300px */
}

/* As regras abaixo serão aplicadas em telas com largura de 768px ou menos (tablets e telemóveis) */
@media (max-width: 768px) {

    /* Diminui a altura do slider em telas menores para não ocupar tanto espaço vertical */
    .main-carousel {
        height: 85vh; /* Ocupa 90% da altura da tela */
        min-height: 400px;
    }

    /* Reduz o espaçamento interno do conteúdo para caber melhor na tela */
    .slide-content {
        padding: 2rem; /* Reduz o padding lateral */
    }

    /* Ajusta o tamanho da fonte do título principal para evitar que fique muito grande */
    .slide-title {
        font-size: 1.8rem; /* Tamanho menor para o título */
    }

    /* Ajusta o título secundário */
    .slide-title-secondary {
        font-size: 1.5rem;
    }
    
    /* Ajusta a descrição */
    .slide-description {
        font-size: 0.9rem;
    }

    /* Diminui o botão de chamada para ação (CTA) */
    .slide-cta {
        padding: 0.5rem 1.2rem;
        font-size: 0.8em;
        margin-bottom: 5vh;
    }

    /* Diminui o tamanho e o posicionamento das setas de navegação */
    .flickity-prev-next-button {
        width: 60px;
        height: 60px;
    }

    .section-main-product {
        flex-direction: column; /* Empilha os cards em mobile */
        height: auto; /* Altura automática */
    }
    .full-page-product {
        width: 100%;
        height: 80vh; /* Altura de 80% da tela para cada card */
        padding: 25px;
    }
    .full-page-product-title {
        font-size: 2em;
    }

    .category-grid {
        gap: 16px; /* Espaçamento entre os cards */
        padding: 0 20px; /* Adiciona padding para os cards não colarem nas bordas */
    }

    .category-grid img  {
        /* Muda para 1 coluna em telemóveis */
        object-position: top;
    }

    .category-card {
        flex: 0 0 90%; /* Ocupa 90% da largura para um card bem largo */
        height: 400px;
    }

    /* Ajusta o padding para centralizar o card de 90% */
    .category-grid {
        /* O padding é calculado como (100% - 90%) / 2 = 5% */
        padding: 0 5% 10px 5%;
    }

    .category-grid::-webkit-scrollbar {
        display: none; /* Esconde a barra de rolagem horizontal em mobile/touch (iOS/Android não precisam) */
    }
    .category-grid {
        scrollbar-width: none; /* Esconde no Firefox Mobile */
    }

    .logo-carousel {
        height: 160px; /* Aumenta a altura do container principal no mobile para suportar logos maiores */
    }

    .logo-cell {
        width: 50%; /* Mostra 2 logos de cada vez para dar espaço ao tamanho maior */
    }

    .logo-cell img {
        height: 90px; /* Tamanho consideravelmente maior para logos inativos no mobile */
    }

    .logo-cell.is-selected img {
        height: 130px; /* Tamanho máximo do logo principal selecionado no mobile */
    }

    .footer-links-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
        margin-left: 0;
    }
}

/* Product Hub Styles */
.product-hub-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 50px;
    min-height: 100vh;
    background-color: #f0f2f5;
}

.product-hub-container .product-card {
    margin: 0 -10px;
    border: 2px solid white;
}

.product-hub-container .product-card {
    position: relative;
    width: 350px;
    height: 500px;
    background-size: cover;
    background-position: center;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 20px;
}

.product-hub-container .product-card:hover {
    transform: scale(1.05);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}

.product-hub-container .card-content {
    color: white;
    text-align: center;
}

.product-hub-container .product-title {
    font-family: 'Staatliches', cursive;
    font-size: 2.5rem;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.7);
    margin: 0;
}

.product-hub-container .main-button {
    align-self: center;
    margin-bottom: 20px;
}

.product-hub-container .card-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease;
}

.product-hub-container .product-card:hover .card-image {
    transform: scale(1.1);
}