/* ============================================================
   UNIVERSE GEEK — Tema Nebulosa
   ============================================================
   
   COMO CUSTOMIZAR:
   Todas as cores e fontes principais estão nas variáveis abaixo
   em :root { }. Mude aqui e reflete em TODO o site.
   
   Paleta atual inspirada na logo do UG:
   - Fundo: preto profundo
   - Destaque: rosa/magenta galáxia
   - Secundário: roxo nebulosa
   - Texto: branco suave
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;900&family=Raleway:wght@300;400;500;600&display=swap');

/* ── VARIÁVEIS GLOBAIS ── */
/* Mude aqui para alterar a identidade visual do site inteiro */
:root {
  /* Cores principais */
  --cor-fundo: #08080f;           /* Preto espacial */
  --cor-fundo-card: #12121e;      /* Preto levemente mais claro para cards */
  --cor-destaque: #d4267a;        /* Rosa magenta — cor principal */
  --cor-destaque-hover: #f03d95;  /* Rosa mais brilhante para hover */
  --cor-secundaria: #7b2ff7;      /* Roxo nebulosa */
  --cor-gradiente: linear-gradient(135deg, #d4267a, #7b2ff7); /* Gradiente galáxia */
  --cor-texto: #e8e8f0;           /* Branco suave */
  --cor-texto-fraco: #8888aa;     /* Cinza para textos secundários */
  --cor-borda: #2a2a40;           /* Borda sutil */

  /* Tipografia */
  --fonte-titulo: 'Cinzel', serif;       /* Fonte display — títulos principais */
  --fonte-corpo: 'Raleway', sans-serif;  /* Fonte de leitura — textos gerais */

  /* Espaçamentos */
  --raio-borda: 8px;        /* Arredondamento dos cards */
  --largura-max: 1100px;    /* Largura máxima do conteúdo */
  --altura-nav: 70px;       /* Altura da barra de navegação */
}

/* ── RESET E BASE ── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth; /* Rolagem suave ao clicar em âncoras */
}

body {
  background-color: var(--cor-fundo);
  color: var(--cor-texto);
  font-family: var(--fonte-corpo);
  font-size: 16px;
  line-height: 1.7;
  
  /* Textura de ruído sutil — dá a sensação de "grão espacial" */
  background-image: 
    radial-gradient(ellipse at 20% 50%, rgba(123, 47, 247, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(212, 38, 122, 0.08) 0%, transparent 50%);
  min-height: 100vh;
}

/* ── TIPOGRAFIA GERAL ── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--fonte-titulo);
  font-weight: 600;
  line-height: 1.2;
  color: var(--cor-texto);
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }  /* clamp = responsivo automático */
h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.6rem); }

p { margin-bottom: 1rem; }

a {
  color: var(--cor-destaque);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--cor-destaque-hover);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ── UTILITÁRIOS ── */
.container {
  max-width: var(--largura-max);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.destaque {
  /* Aplica o gradiente galáxia no texto */
  background: var(--cor-gradiente);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.secao {
  padding: 5rem 0;
}

.secao-titulo {
  text-align: center;
  margin-bottom: 3rem;
}

.secao-titulo h2 {
  margin-bottom: 0.5rem;
}

.secao-titulo p {
  color: var(--cor-texto-fraco);
  font-size: 1.1rem;
}

/* ── BARRA DE NAVEGAÇÃO ── */
.nav {
  position: fixed;      /* Fica fixo no topo ao rolar a página */
  top: 0;
  left: 0;
  right: 0;
  height: var(--altura-nav);
  z-index: 1000;        /* Fica na frente de tudo */
  
  /* Vidro fosco — efeito moderno de blur */
  background: rgba(8, 8, 15, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--cor-borda);
}

.nav-inner {
  max-width: var(--largura-max);
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-logo {
  font-family: var(--fonte-titulo);
  font-size: 1.3rem;
  font-weight: 900;
  background: var(--cor-gradiente);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 0.05em;
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 2rem;
  list-style: none;
}

.nav-menu a {
  color: var(--cor-texto-fraco);
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color 0.2s ease;
}

.nav-menu a:hover,
.nav-menu a.ativo {
  color: var(--cor-destaque);
}

/* Botão hamburguer para mobile */
.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 4px;
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--cor-texto);
  transition: all 0.3s ease;
}

/* ── HERO (seção principal da home) ── */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2rem 1.5rem;
  position: relative;
  overflow: hidden;
}

/* Efeito de brilho nebulosa atrás do hero */
.hero::before {
  content: '';
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(123, 47, 247, 0.15) 0%, transparent 70%);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; /* Não bloqueia cliques */
}

.hero-conteudo {
  position: relative;
  z-index: 1;
  max-width: 700px;
}

.hero-logo {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  margin: 0 auto 2rem;
  border: 2px solid var(--cor-destaque);
  box-shadow: 0 0 30px rgba(212, 38, 122, 0.3); /* Brilho rosa */
  animation: pulso 3s ease-in-out infinite; /* Animação suave */
}

/* Animação de pulso na logo */
@keyframes pulso {
  0%, 100% { box-shadow: 0 0 30px rgba(212, 38, 122, 0.3); }
  50%       { box-shadow: 0 0 50px rgba(212, 38, 122, 0.6); }
}

.hero h1 {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 900;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
}

.hero-sub {
  font-size: 1.1rem;
  color: var(--cor-texto-fraco);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 2.5rem;
}

/* ── BOTÕES ── */
.btn {
  display: inline-block;
  padding: 0.8rem 2rem;
  border-radius: var(--raio-borda);
  font-family: var(--fonte-corpo);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.3s ease;
  border: none;
}

.btn-primario {
  background: var(--cor-gradiente);
  color: white;
}

.btn-primario:hover {
  transform: translateY(-2px); /* Sobe levemente no hover */
  box-shadow: 0 8px 25px rgba(212, 38, 122, 0.4);
  color: white;
}

.btn-secundario {
  background: transparent;
  color: var(--cor-destaque);
  border: 1px solid var(--cor-destaque);
}

.btn-secundario:hover {
  background: rgba(212, 38, 122, 0.1);
  color: var(--cor-destaque-hover);
}

/* ── CARDS ── */
/* Usado em blog, ações sociais, membros, etc. */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
}

.card {
  background: var(--cor-fundo-card);
  border: 1px solid var(--cor-borda);
  border-radius: var(--raio-borda);
  overflow: hidden;
  transition: transform 0.3s ease, border-color 0.3s ease;
}

.card:hover {
  transform: translateY(-4px);
  border-color: var(--cor-destaque);
}

.card-img {
  width: 100%;
  aspect-ratio: 16/9; /* Proporção fixa para as imagens */
  object-fit: cover;
  background: var(--cor-borda); /* Placeholder enquanto carrega */
}

.card-corpo {
  padding: 1.5rem;
}

.card-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cor-destaque);
  margin-bottom: 0.5rem;
}

.card-titulo {
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
  font-family: var(--fonte-titulo);
}

.card-resumo {
  font-size: 0.9rem;
  color: var(--cor-texto-fraco);
  line-height: 1.6;
}

.card-rodape {
  padding: 0 1.5rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.card-data {
  font-size: 0.8rem;
  color: var(--cor-texto-fraco);
}

/* ── DIVISOR DECORATIVO ── */
.divisor {
  width: 60px;
  height: 3px;
  background: var(--cor-gradiente);
  margin: 1rem auto;
  border-radius: 2px;
}

/* ── SEÇÃO SOBRE (home) ── */
.sobre-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.sobre-img {
  border-radius: var(--raio-borda);
  border: 1px solid var(--cor-borda);
  box-shadow: 0 0 40px rgba(123, 47, 247, 0.2);
}

/* ── FORMULÁRIO DE CONTATO ── */
.form-grupo {
  margin-bottom: 1.5rem;
}

.form-grupo label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cor-texto-fraco);
  margin-bottom: 0.5rem;
}

.form-grupo input,
.form-grupo textarea,
.form-grupo select {
  width: 100%;
  padding: 0.8rem 1rem;
  background: var(--cor-fundo-card);
  border: 1px solid var(--cor-borda);
  border-radius: var(--raio-borda);
  color: var(--cor-texto);
  font-family: var(--fonte-corpo);
  font-size: 1rem;
  transition: border-color 0.2s ease;
  outline: none;
}

.form-grupo input:focus,
.form-grupo textarea:focus,
.form-grupo select:focus {
  border-color: var(--cor-destaque);
}

.form-grupo textarea {
  min-height: 140px;
  resize: vertical; /* Permite redimensionar só verticalmente */
}

/* ── PÁGINA DE CONTEÚDO (posts do blog, etc.) ── */
.conteudo-pagina {
  padding-top: calc(var(--altura-nav) + 3rem);
  padding-bottom: 5rem;
}

.conteudo-pagina-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.conteudo-pagina h1 {
  margin-bottom: 1rem;
}

.meta-post {
  display: flex;
  gap: 1rem;
  align-items: center;
  color: var(--cor-texto-fraco);
  font-size: 0.85rem;
  margin-bottom: 2.5rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--cor-borda);
}

/* Conteúdo renderizado do Markdown */
.conteudo-md h2 { margin: 2rem 0 1rem; }
.conteudo-md h3 { margin: 1.5rem 0 0.75rem; }
.conteudo-md ul, .conteudo-md ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.conteudo-md li { margin-bottom: 0.4rem; }
.conteudo-md blockquote {
  border-left: 3px solid var(--cor-destaque);
  padding: 0.5rem 1.5rem;
  color: var(--cor-texto-fraco);
  margin: 1.5rem 0;
  font-style: italic;
}
.conteudo-md img {
  border-radius: var(--raio-borda);
  margin: 1.5rem 0;
}

/* ── RODAPÉ ── */
.rodape {
  background: var(--cor-fundo-card);
  border-top: 1px solid var(--cor-borda);
  padding: 3rem 0 2rem;
  margin-top: 5rem;
}

.rodape-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 2rem;
}

.rodape-marca h3 {
  font-family: var(--fonte-titulo);
  font-size: 1.4rem;
  margin-bottom: 0.75rem;
}

.rodape-marca p {
  color: var(--cor-texto-fraco);
  font-size: 0.9rem;
}

.rodape h4 {
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cor-texto-fraco);
  margin-bottom: 1rem;
}

.rodape ul {
  list-style: none;
}

.rodape ul li {
  margin-bottom: 0.5rem;
}

.rodape ul a {
  color: var(--cor-texto-fraco);
  font-size: 0.9rem;
  transition: color 0.2s ease;
}

.rodape ul a:hover {
  color: var(--cor-destaque);
}

.rodape-base {
  padding-top: 2rem;
  border-top: 1px solid var(--cor-borda);
  text-align: center;
  color: var(--cor-texto-fraco);
  font-size: 0.8rem;
}

/* ── RESPONSIVIDADE ── */
/* Telas menores que 768px (celulares) */
@media (max-width: 768px) {
  .nav-menu {
    display: none;
    position: absolute;
    top: var(--altura-nav);
    left: 0;
    right: 0;
    background: rgba(8, 8, 15, 0.98);
    flex-direction: column;
    padding: 1.5rem;
    gap: 1rem;
    border-bottom: 1px solid var(--cor-borda);
  }

  .nav-menu.aberto {
    display: flex;
  }

  .nav-toggle {
    display: flex;
  }

  .sobre-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .rodape-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .cards-grid {
    grid-template-columns: 1fr;
  }
}
