/*
    ============================================================
    RESET BÁSICO
    ============================================================
    Cada navegador tem valores padrão diferentes para margens,
    paddings, etc. O reset zera tudo para começarmos do zero
    e termos um resultado consistente em todos os navegadores.
*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    /*
        box-sizing: border-box — fundamental.
        Por padrão, width: 100px + padding: 10px = elemento de 120px.
        Com border-box, padding entra DENTRO dos 100px. Mais previsível.
    */
}

/*
    ============================================================
    VARIÁVEIS CSS (custom properties)
    ============================================================
    Definimos cores, espaçamentos e fontes uma única vez no :root
    (que é o elemento <html>). Para usar em qualquer lugar:
        color: var(--cor-texto);

    Vantagem: para trocar a paleta inteira, mudo só aqui.
*/
:root {
    /* Paleta — preto e branco com tons translúcidos (mesma do harmo) */
    --cor-fundo: #000000;
    --cor-texto: #ffffff;
    --cor-texto-suave: rgba(255, 255, 255, 0.55);
    --cor-borda: rgba(255, 255, 255, 0.18);
    --cor-borda-hover: rgba(255, 255, 255, 0.5);

    /* Escala consistente de espaçamentos para todo o site */
    --espaco-xs: 0.5rem;
    --espaco-sm: 1rem;
    --espaco-md: 2rem;
    --espaco-lg: 4rem;
    --espaco-xl: 6rem;

    /* Tipografia */
    --fonte-base: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fonte-titulo: "henderson-sans-basic", 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Transição padrão para hover/animações */
    --transicao: 0.25s ease;
}

/*
    ============================================================
    BASE
    ============================================================
*/
html, body {
    height: 100%;
}

body {
    background: var(--cor-fundo);
    color: var(--cor-texto);
    font-family: var(--fonte-base);
    font-weight: 400;
    line-height: 1.6;

    /*
        Flexbox em coluna no body: faz o footer ficar grudado embaixo
        e o main ocupar o espaço do meio. Layout clássico de "sticky footer".
    */
    display: flex;
    flex-direction: column;
    min-height: 100vh;

    padding: var(--espaco-md);

    /*
        Suaviza renderização de fontes no macOS/iOS.
        Sem isso, em monitores Retina o texto pode parecer mais "encorpado".
    */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/*
    ============================================================
    HEADER — nome (esquerda) + toggle de idioma (direita)
    ============================================================
    justify-content: space-between empurra os dois para os extremos.
*/
.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: var(--espaco-lg);
}

/*
    .brand: o nome no canto superior esquerdo.
    Usa a fonte Henderson para ter "personalidade de marca" — diferencia do
    resto do texto, que usa Montserrat.
*/
.brand {
    color: var(--cor-texto);
    text-decoration: none;
    font-family: var(--fonte-titulo);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: -0.01em;
    transition: opacity var(--transicao);
}

.brand:hover {
    /*
        Hover sutil: reduz opacidade para dar feedback de "é clicável"
        sem virar uma cor totalmente diferente. Mais elegante que mudar de cor.
    */
    opacity: 0.7;
}

.lang-toggle {
    display: flex;
    gap: var(--espaco-xs);
    align-items: center;
    font-size: 0.8125rem;
    color: var(--cor-texto-suave);
    letter-spacing: 0.05em;
}

.lang-toggle button {
    /* Resetando o estilo padrão de <button>: sem fundo, sem borda. */
    background: none;
    border: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    transition: color var(--transicao);
}

.lang-toggle button:hover {
    color: var(--cor-texto);
}

/* .active é a classe que o JS coloca no botão do idioma atual */
.lang-toggle button.active {
    color: var(--cor-texto);
    font-weight: 500;
}

/*
    ============================================================
    MAIN — conteúdo principal centralizado
    ============================================================
*/
.main {
    /*
        flex: 1 — o main ocupa todo o espaço sobrando entre header e footer.
        Combinado com justify-content: center, centraliza verticalmente.
    */
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;

    /* Largura máxima para boa leitura — não passa disso em telas grandes */
    max-width: 720px;
    margin: 0 auto;
    padding: var(--espaco-md) 0;
    gap: var(--espaco-md);
}

/*
    AVATAR — foto circular
    Largura/altura iguais + border-radius: 50% = círculo.
    object-fit: cover faz a imagem preencher sem distorcer (corta o que sobrar).
    Fonte tem 280x280, exibimos em 140 — densidade 2x, ótimo para telas Retina.
*/
.avatar {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    /*
        Microdetalhe: leve sombra ao redor para destacar a foto do fundo preto.
        Como a foto tem fundo escuro também, sem isso ela "se funde" com a página.
    */
    box-shadow: 0 0 0 1px var(--cor-borda);
}

.tagline {
    font-size: 0.8125rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cor-texto-suave);
}

.hook {
    /*
        Henderson Sans Basic: fonte de destaque (Adobe Fonts).
        Os fallbacks (Montserrat, system fonts) entram se a Henderson falhar
        ou enquanto ainda não chegou pela rede. Sem fallback, o texto poderia
        sumir por uns instantes (FOIT — Flash of Invisible Text).
    */
    font-family: var(--fonte-titulo);

    /*
        clamp(min, ideal, max): tipografia fluida.
        - mínimo 1.75rem (telas pequenas)
        - ideal 5vw (5% da largura da tela — escala com viewport)
        - máximo 3rem (telas grandes não passam disso)
        Resultado: o título cresce suavemente conforme a tela aumenta, sem media queries.
    */
    font-size: clamp(1.75rem, 5vw, 3rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;

    /*
        text-wrap: balance distribui as linhas de forma equilibrada.
        Evita aquela última linha solta com uma palavrinha só.
        Suporte moderno (Chrome 114+, Safari 17.5+) — em navegadores antigos
        simplesmente é ignorado, sem quebrar nada.
    */
    text-wrap: balance;
}

.bio {
    font-size: 1rem;
    color: var(--cor-texto-suave);
    max-width: 580px;
    line-height: 1.7;
    /*
        text-wrap: pretty melhora a quebra de linhas em parágrafos longos
        (evita "viúvas" — última linha com uma palavra solta).
        É a versão "de parágrafo" do balance.
    */
    text-wrap: pretty;
}

/*
    ============================================================
    ÁREAS DE ATUAÇÃO — lista <ul> exibida inline
    ============================================================
    Tecnicamente é uma lista (boa para acessibilidade), mas visualmente
    queremos um único parágrafo com separadores entre os itens.
*/
.areas {
    list-style: none; /* tira os bullets padrão da <ul> */
    display: flex;
    flex-wrap: wrap; /* se a tela for pequena, quebra para a próxima linha */
    justify-content: center;
    align-items: center;
    gap: var(--espaco-sm);

    font-size: 0.8125rem;
    letter-spacing: 0.05em;
    color: var(--cor-texto-suave);
}

/*
    Separador "·" entre os itens, usando pseudo-elemento ::after.
    Vantagem: é puramente visual, leitores de tela ignoram (boa acessibilidade).
*/
.areas li {
    display: flex;
    align-items: center;
    gap: var(--espaco-sm);
}

.areas li:not(:last-child)::after {
    content: '·';
    color: var(--cor-borda);
    /*
        Um ponto-do-meio (·) é diferente de ponto-final (.).
        Aqui um ajuste fino de tamanho para casar com o texto.
    */
    font-size: 1rem;
    line-height: 1;
}

/*
    ============================================================
    CTAs — botões de contato
    ============================================================
    Layout: flex que quebra para múltiplas linhas em telas pequenas.
*/
.ctas {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--espaco-sm);
    margin-top: var(--espaco-sm);
}

.cta {
    display: inline-block;
    color: var(--cor-texto);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9375rem;
    padding: 0.875rem 1.75rem;
    border: 1px solid var(--cor-borda);
    border-radius: 999px; /* valor alto = pílula perfeita, qualquer que seja o tamanho */
    transition: background var(--transicao), color var(--transicao), border-color var(--transicao);
}

.cta:hover {
    background: var(--cor-texto);
    color: var(--cor-fundo);
    border-color: var(--cor-texto);
}

/*
    .cta-primary: variação de destaque para a ação principal (WhatsApp).
    Já vem preenchida em branco para "puxar o olho" na hierarquia visual.
*/
.cta-primary {
    background: var(--cor-texto);
    color: var(--cor-fundo);
    border-color: var(--cor-texto);
}

.cta-primary:hover {
    /*
        Como o estado normal já é preenchido, o hover precisa de uma mudança
        diferente. Aqui suaviza um pouco (88% de opacidade) para indicar interação
        sem "regressão visual" (sem virar igual aos outros).
    */
    background: rgba(255, 255, 255, 0.88);
    border-color: rgba(255, 255, 255, 0.88);
    color: var(--cor-fundo);
}

/*
    ============================================================
    FOOTER
    ============================================================
*/
.footer {
    text-align: center;
    padding-top: var(--espaco-md);
    font-size: 0.8125rem;
    letter-spacing: 0.05em;
}

.footer a {
    color: var(--cor-texto-suave);
    text-decoration: none;
    transition: color var(--transicao);
}

.footer a:hover {
    color: var(--cor-texto);
}

/*
    ============================================================
    RESPONSIVIDADE — ajustes para celulares
    ============================================================
    Em telas menores que 600px, reduzimos espaçamentos e tamanhos
    para o conteúdo respirar melhor.
*/
@media (max-width: 600px) {
    body {
        padding: var(--espaco-sm);
    }

    .header {
        padding-bottom: var(--espaco-md);
    }

    .main {
        padding: var(--espaco-md) 0;
        gap: var(--espaco-sm);
    }

    .avatar {
        width: 110px;
        height: 110px;
    }

    .bio {
        font-size: 0.9375rem;
    }

    /*
        CTAs em coluna no celular: cada botão ocupa a largura toda da tela
        (mais fácil de tocar com o dedo).
    */
    .ctas {
        flex-direction: column;
        width: 100%;
        max-width: 280px;
    }

    .cta {
        text-align: center;
    }
}
