/*
    ============================================================
    RESET BÁSICO
    ============================================================
    Cada navegador (Chrome, Safari, Firefox) tem valores padrão diferentes
    para margem, padding, 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, se você define width: 100px e padding: 10px, o elemento
        fica com 120px (100 + 10 de cada lado). Com border-box, o padding
        entra DENTRO dos 100px. Muito mais previsível.
    */
}

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

    Vantagem: para trocar a paleta inteira da página, mudo só aqui.
*/
:root {
    /* Paleta — preto e branco com tons de cinza translúcidos */
    --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);

    /* Espaçamentos — escala consistente para o site inteiro */
    --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;

    /* 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 a 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
    ============================================================
    Logo à 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);
}

.logo {
    /*
        line-height: 0 elimina o espaço vertical extra que o navegador
        adiciona em volta de elementos inline. Sem isso, o SVG fica com
        uns pixels invisíveis acima/abaixo que desalinham com o toggle.
    */
    color: var(--cor-texto);
    line-height: 0;
}

.logo svg {
    /*
        height fixa + width: auto preserva a proporção original do SVG (302x201).
        display: block reforça a remoção do espaço extra de elemento inline.
    */
    height: 26px;
    width: auto;
    display: block;
}

.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, herda a cor e fonte do pai.
    */
    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 adiciona ao botão do idioma atual.
    Mostra qual está selecionado (texto branco em vez de cinza).
*/
.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;

    /* max-width controla a largura máxima do bloco de texto para boa leitura */
    max-width: 720px;
    margin: 0 auto;
    padding: var(--espaco-lg) 0;
    gap: var(--espaco-md);
}

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

.hook {
    /*
        Henderson Sans Basic: a fonte da marca, vinda do Adobe Fonts (Typekit).
        Os fallbacks (Montserrat, system fonts) entram se a Henderson falhar em carregar
        ou enquanto ela ainda não chegou da rede. Sem fallback, o texto poderia
        sumir por uns instantes (FOIT, Flash of Invisible Text).
    */
    font-family: "henderson-sans-basic", "Montserrat", -apple-system, BlinkMacSystemFont, sans-serif;

    /*
        clamp(min, ideal, max): tipografia fluida.
        - mínimo: 1.75rem (em telas pequenas)
        - ideal: 5vw (5% da largura da tela, escala com o viewport)
        - máximo: 3rem (em telas grandes não passa disso)
        Resultado: o título aumenta suavemente conforme a tela cresce, 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+).
    */
    text-wrap: balance;
}

.philosophy {
    font-size: 1rem;
    color: var(--cor-texto-suave);
    max-width: 540px;
    line-height: 1.7;
}

/*
    ============================================================
    CTA — botão do WhatsApp
    ============================================================
*/
.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, independentemente do tamanho */
    transition: background var(--transicao), color var(--transicao), border-color var(--transicao);
    margin-top: var(--espaco-sm);
}

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

/*
    ============================================================
    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
    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);
    }

    .philosophy {
        font-size: 0.9375rem;
    }
}
