/* ==========================================
   BLOCO 1: SISTEMA DE VARIÁVEIS CSS
   Responsabilidade: Variáveis para cores e configurações
   ========================================== */

/* Variáveis CSS personalizadas para o footer */
:root {
    --primary-dark: #1a365d;   /* Azul escuro primário */
    --secondary-color: #00B4D8; /* Azul claro secundário */
    --text-light: #666;         /* Texto cinza claro */
    --primary-color: #0077be;   /* Azul primário alternativo */
}

/* ==========================================
   BLOCO 2: ESTILOS PRINCIPAIS DO FOOTER
   Responsabilidade: Layout e estrutura do rodapé
   ========================================== */

/* Footer principal */
.main-footer {
    background-color: var(--primary-dark); /* Fundo azul escuro */
    color: white; /* Texto branco */
    padding: clamp(40px, 6vw, 60px) 0 20px; /* Padding responsivo */
    position: relative; /* Para posicionamento absoluto de elementos */
    overflow: hidden; /* Ocultar overflow */
}

/* ==========================================
   BLOCO 3: GRID DE COLUNAS DO FOOTER
   Responsabilidade: Layout em grid para seções
   ========================================== */

/* Container das colunas do footer */
.footer-columns {
    display: grid; /* Layout em grid */
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Colunas responsivas */
    gap: clamp(20px, 3vw, 30px); /* Gap responsivo entre colunas */
    margin-bottom: 40px; /* Espaçamento abaixo */
}

/* ==========================================
   BLOCO 4: TÍTULOS DAS COLUNAS
   Responsabilidade: Cabeçalhos das seções do footer
   ========================================== */

/* Títulos das colunas */
.footer-column h4 {
    font-size: 18px; /* Tamanho da fonte */
    margin-bottom: 20px; /* Espaçamento abaixo */
    position: relative; /* Para posicionamento de pseudo-elementos */
    padding-bottom: 10px; /* Espaço para linha decorativa */
}

/* ==========================================
   BLOCO 5: LINHA DECORATIVA DOS TÍTULOS
   Responsabilidade: Elemento visual dos títulos
   ========================================== */

/* Linha decorativa abaixo dos títulos */
.footer-column h4::after {
    content: ''; /* Conteúdo vazio necessário */
    position: absolute; /* Posicionamento absoluto */
    bottom: 0; /* Posição no bottom */
    left: 0; /* Posição à esquerda */
    width: 40px; /* Largura da linha */
    height: 2px; /* Altura da linha */
    background-color: var(--secondary-color); /* Cor da linha */
}

/* ==========================================
   BLOCO 6: LISTAS DO FOOTER
   Responsabilidade: Estrutura das listas de links
   ========================================== */

/* Listas das colunas */
.footer-column ul {
    list-style: none; /* Sem marcadores */
    padding: 0; /* Sem padding */
}

/* ==========================================
   BLOCO 7: ITENS DAS LISTAS
   Responsabilidade: Itens individuais das listas
   ========================================== */

/* Itens das listas */
.footer-column ul li {
    margin-bottom: 10px; /* Espaçamento entre itens */
}

/* ==========================================
   BLOCO 8: LINKS DO FOOTER
   Responsabilidade: Links de navegação e informações
   ========================================== */

/* Links das listas */
.footer-column ul li a {
    color: rgba(255, 255, 255, 0.8); /* Texto branco transparente */
    text-decoration: none; /* Sem sublinhado */
    transition: color 0.3s, padding 0.3s; /* Transições suaves */
    display: inline-block; /* Comportamento de bloco em linha */
}

/* ==========================================
   BLOCO 9: HOVER DOS LINKS
   Responsabilidade: Efeito visual no hover
   ========================================== */

/* Hover nos links */
.footer-column ul li a:hover {
    color: var(--secondary-color); /* Cor secundária */
    padding-left: 5px; /* Deslocamento à esquerda */
}

/* ==========================================
   BLOCO 10: LINKS SOCIAIS
   Responsabilidade: Container para redes sociais
   ========================================== */

/* Container dos links sociais */
.social-links {
    display: flex; /* Layout flexbox */
    flex-wrap: wrap; /* Permitir quebra de linha */
    gap: 15px; /* Espaçamento entre elementos */
    margin-bottom: 20px; /* Espaçamento abaixo */
}

/* ==========================================
   BLOCO 11: ÍCONES SOCIAIS INDIVIDUAIS
   Responsabilidade: Cada link social
   ========================================== */

/* Links sociais individuais */
.social-links a {
    width: 36px; /* Largura fixa */
    height: 36px; /* Altura fixa */
    background-color: rgba(255, 255, 255, 0.1); /* Fundo transparente */
    border-radius: 50%; /* Formato circular */
    display: flex; /* Layout flexbox */
    align-items: center; /* Centralização vertical */
    justify-content: center; /* Centralização horizontal */
    transition: background-color 0.3s, transform 0.3s; /* Transições suaves */
    color: white; /* Texto branco */
    text-decoration: none; /* Sem sublinhado */
}

/* ==========================================
   BLOCO 12: HOVER DOS ÍCONES SOCIAIS
   Responsabilidade: Efeito visual dos ícones sociais
   ========================================== */

/* Hover nos ícones sociais */
.social-links a:hover {
    background-color: var(--secondary-color); /* Fundo com cor secundária */
    transform: translateY(-3px); /* Elevação sutil */
}

/* ==========================================
   BLOCO 13: MÉTODOS DE PAGAMENTO
   Responsabilidade: Seção de ícones de pagamento
   ========================================== */

/* Container dos métodos de pagamento */
.payment-methods {
    margin-top: 20px; /* Espaçamento acima */
}

/* ==========================================
   BLOCO 14: TÍTULO DOS MÉTODOS DE PAGAMENTO
   Responsabilidade: Texto explicativo dos ícones
   ========================================== */

/* Parágrafo dos métodos de pagamento */
.payment-methods p {
    margin-bottom: 10px; /* Espaçamento abaixo */
    font-size: 14px; /* Tamanho pequeno */
    color: rgba(255, 255, 255, 0.8); /* Texto branco transparente */
}

/* ==========================================
   BLOCO 15: CONTAINER DOS ÍCONES DE PAGAMENTO
   Responsabilidade: Layout dos ícones de pagamento
   ========================================== */

/* Container dos ícones de pagamento */
.payment-icons {
    display: flex; /* Layout flexbox */
    flex-wrap: wrap; /* Permitir quebra de linha */
    gap: 10px; /* Espaçamento entre ícones */
    font-size: 24px; /* Tamanho dos ícones */
}

/* ==========================================
   BLOCO 16: ÍCONES DE PAGAMENTO INDIVIDUAIS
   Responsabilidade: Cada ícone de método de pagamento
   ========================================== */

/* Ícones de pagamento */
.payment-icons i {
    color: rgba(255, 255, 255, 0.8); /* Cor transparente */
    transition: color 0.3s; /* Transição de cor */
}

/* ==========================================
   BLOCO 17: HOVER DOS ÍCONES DE PAGAMENTO
   Responsabilidade: Efeito visual dos ícones de pagamento
   ========================================== */

/* Hover nos ícones de pagamento */
.payment-icons i:hover {
    color: var(--secondary-color); /* Cor secundária */
}

/* ==========================================
   BLOCO 18: FOOTER INFERIOR
   Responsabilidade: Seção inferior com copyright
   ========================================== */

/* Container inferior do footer */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1); /* Borda superior sutil */
    padding-top: 20px; /* Espaçamento interno superior */
    text-align: center; /* Centralização do texto */
}

/* ==========================================
   BLOCO 19: COPYRIGHT
   Responsabilidade: Texto de direitos autorais
   ========================================== */

/* Texto de copyright */
.copyright {
    font-size: 14px; /* Tamanho pequeno */
    color: rgba(255, 255, 255, 0.6); /* Texto transparente */
    margin: 0; /* Sem margem */
}

/* ==========================================
   BLOCO 20: CONTAINER GERAL
   Responsabilidade: Container centralizado do footer
   ========================================== */

/* Container padrão */
.container {
    max-width: 1200px; /* Largura máxima */
    margin: 0 auto; /* Centralização horizontal */
    padding: 0 20px; /* Espaçamento lateral */
}

/* ==========================================
   BLOCO 21: RESPONSIVIDADE TABLET
   Responsabilidade: Adaptação para telas médias
   ========================================== */

/* Media query para tablets */
@media (max-width: 768px) {
    /* Grid de colunas com 2 colunas */
    .footer-columns {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================
   BLOCO 22: RESPONSIVIDADE MOBILE
   Responsabilidade: Adaptação para smartphones
   ========================================== */

/* Media query para mobile */
@media (max-width: 480px) {
    /* Grid de colunas com 1 coluna */
    .footer-columns {
        grid-template-columns: 1fr;
    }

    /* Centralizar links sociais */
    .social-links {
        justify-content: center;
    }

    /* Centralizar ícones de pagamento */
    .payment-icons {
        justify-content: center;
    }
}

/* ==========================================
   BLOCO 23: ANIMAÇÃO FADE IN
   Responsabilidade: Animação de entrada dos elementos
   ========================================== */

/* Animação de fade in */
@keyframes fadeIn {
    from { 
        opacity: 0; /* Transparente */
        transform: translateY(20px); /* Deslocamento para baixo */
    }
    to { 
        opacity: 1; /* Opacidade total */
        transform: translateY(0); /* Posição normal */
    }
}

/* ==========================================
   BLOCO 24: CLASSE DE ANIMAÇÃO
   Responsabilidade: Aplicação da animação fadeIn
   ========================================== */

/* Classe para animação de entrada */
.fade-in {
    animation: fadeIn 0.6s ease-out forwards;
}

/* ==========================================
   BLOCO 25: ANIMAÇÃO DE ONDAS
   Responsabilidade: Container das ondas decorativas
   ========================================== */

/* Container das ondas */
.waves-container {
    position: absolute; /* Posicionamento absoluto */
    bottom: 0; /* Posição no bottom */
    left: 0; /* Posição à esquerda */
    width: 100%; /* Largura total */
    overflow: hidden; /* Ocultar overflow */
    line-height: 0; /* Altura de linha zero */
    z-index: 1; /* Camada de fundo */
}

/* ==========================================
   BLOCO 26: GRUPOS DE ONDAS
   Responsabilidade: Container principal das ondas
   ========================================== */

/* Grupo de ondas */
.waves {
    position: relative; /* Posicionamento relativo */
    width: 100%; /* Largura total */
    height: 120px; /* Altura das ondas */
    margin-bottom: -60px; /* Compensar curvatura */
    transform: scale(1); /* Escala normal */
}

/* ==========================================
   BLOCO 27: ANIMAÇÃO DOS GRUPOS DE ONDAS
   Responsabilidade: Controle da animação das ondas
   ========================================== */

/* Grupo de ondas com animação */
.wave-group {
    animation: wave 30s ease-in-out infinite alternate;
}

/* ==========================================
   BLOCO 28: ONDAS INDIVIDUAIS
   Responsabilidade: Configuração de cada onda
   ========================================== */

/* Ondas individuais com animação */
.wave-group use:nth-child(1),
.wave-group use:nth-child(2) {
    animation: wave 30s ease-in-out infinite alternate;
}

.wave-group use:nth-child(3),
.wave-group use:nth-child(4) {
    animation: wave 45s ease-in-out infinite alternate-reverse;
}

.wave-group use:nth-child(5),
.wave-group use:nth-child(6) {
    animation: wave 60s ease-in-out infinite alternate;
}

.wave-group use:nth-child(7),
.wave-group use:nth-child(8) {
    animation: wave 75s ease-in-out infinite alternate-reverse;
}

.wave-group use:nth-child(9),
.wave-group use:nth-child(10) {
    animation: wave 90s ease-in-out infinite alternate;
}

/* ==========================================
   BLOCO 29: KEYFRAME DA ANIMAÇÃO DE ONDAS
   Responsabilidade: Definição da animação de movimento
   ========================================== */

/* Keyframe da animação de ondas */
@keyframes wave {
    0% {
        transform: translateX(0%); /* Posição inicial */
    }
    100% {
        transform: translateX(-50%); /* Movimentação para esquerda */
    }
}