/* Reset básico */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Corpo com fundo e centralização do conteúdo */
body {
  /* CORREÇÃO 1: Removida a cor de fundo daqui. A cor base é definida apenas em body.pattern-square. */
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center; /* CENTRALIZA O CONTEÚDO PRINCIPAL HORIZONTALMENTE */
  padding: 2rem 1rem;
}

/* ----------------------------------------------------- */
/* 1. PADRÃO DE FUNDO (pattern-square) - CORRIGIDO */
/* ----------------------------------------------------- */

body.pattern-square {
  /* Não precisamos de background-color separado, o shorthand background faz isso */

  --mx: 0;
  --my: 0;
  --a-x: calc(var(--mx) * 8px);
  --a-y: calc(var(--my) * 8px);
  --b-x: calc(var(--mx) * -6px);
  --b-y: calc(var(--my) * -6px);
  --c-x: calc(var(--mx) * 4px);
  --c-y: calc(var(--my) * 4px);

  /* CORREÇÃO CRÍTICA: Uso da propriedade 'background' (shorthand) para garantir que
     todos os gradientes e a cor final #1e1e1e funcionem juntos. */
  background: repeating-linear-gradient(
        45deg,
        #0000 calc(-650% / 13) calc(50% / 13),
        #100f0f 0 calc(100% / 13),
        #0000 0 calc(150% / 13),
        #100f0f 0 calc(200% / 13),
        #0000 0 calc(250% / 13),
        #100f0f 0 calc(300% / 13)
      )
      calc(0px + var(--c-x)) calc(0px + var(--c-y)),
    repeating-linear-gradient(
        45deg,
        #0000 calc(-650% / 13) calc(50% / 13),
        #100f0f 0 calc(100% / 13),
        #0000 0 calc(150% / 13),
        #100f0f 0 calc(200% / 13),
        #0000 0 calc(250% / 13),
        #100f0f 0 calc(300% / 13)
      )
      calc(32px + var(--a-x)) calc(32px + var(--a-y)),
    repeating-linear-gradient(
        -45deg,
        #0000 calc(-650% / 13) calc(50% / 13),
        #100f0f 0 calc(100% / 13),
        #0000 0 calc(150% / 13),
        #100f0f 0 calc(200% / 13),
        #0000 0 calc(250% / 13),
        #100f0f 0 calc(300% / 13)
      )
      calc(0px + var(--b-x)) calc(0px + var(--b-y)),
    repeating-linear-gradient(
        -45deg,
        #0000 calc(-650% / 13) calc(50% / 13),
        #100f0f 0 calc(100% / 13),
        #0000 0 calc(150% / 13),
        #100f0f 0 calc(200% / 13),
        #0000 0 calc(250% / 13),
        #100f0f 0 calc(300% / 13)
      )
      calc(32px + var(--a-x)) calc(32px + var(--a-y)) #1e1e1e; /* Cor base do background no final */

  background-size: 64px 64px;
  background-repeat: repeat;
  background-attachment: fixed;
  transition: background-position 160ms linear;
}

/* ----------------------------------------------------- */
/* 2. HEADER E TÍTULOS */
/* ----------------------------------------------------- */

header {
  text-align: center;
  margin-bottom: 2rem;
  width: 100%;
  max-width: 800px;
}

header h1 {
  font-size: 2rem;
  color: #9f3eff;
  margin-bottom: 1rem;
}

header p {
  font-size: 1rem;
  color: #ccc;
}

/* ----------------------------------------------------- */
/* 3. SEÇÃO DOS PLANOS (Empilhados Verticalmente) */
/* ----------------------------------------------------- */

section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  width: 100%;
  max-width: 1000px;
}

/* Cartões de plano */
.plan {
  background-color: #111;
  border: 1px solid #333;
  border-radius: 12px;
  padding: 2rem;
  width: 100%;
  max-width: 500px;
  text-align: center; /* Mantém títulos, preço e botão centralizados */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.plan:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(159, 62, 255, 0.3);
}

.plan h2 {
  color: #fff;
  font-size: 1.2rem;
  margin-bottom: 1rem;
}

.plan p {
  font-size: 0.95rem;
  color: #ccc;
  margin-bottom: 1rem;
  /* CORREÇÃO 2: Alinha o texto do parágrafo à esquerda para remover o espaçamento estranho (justificado) */
  text-align: left;
  margin-left: auto;
  margin-right: auto;
}

.price {
  font-size: 1.5rem;
  color: #9f3eff;
  margin-bottom: 1rem;
  text-align: center;
}

.button {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: #9f3eff;
  color: #000;
  font-weight: bold;
  text-decoration: none;
  border-radius: 6px;
  transition: background 0.3s;
}

.button:hover {
  background: #c28cff;
}

/* ----------------------------------------------------- */
/* 4. RODAPÉ E CONTATO */
/* ----------------------------------------------------- */

/* Subtítulo */
.subtitle {
  font-size: 1rem;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
  text-align: center;
}

/* E-mail (Centralização correta) */
.email {
  color: #fff;
  font-size: 1rem;
  text-decoration: none;
  border: 1px solid #9f3eff;
  padding: 8px 16px;
  transition: background 0.3s, color 0.3s;

  display: block;
  width: fit-content;
  margin: 0 auto;
}

.email:hover {
  background: #9f3eff;
  color: #000;
}

footer {
  text-align: center;
  margin-top: 2rem;
  width: 100%;
}

footer p {
  color: #555;
}
