/*
 * Site comercial.
 *
 * Herda as variaveis do app.css (--marca, --tinta, --superficie...) de
 * proposito: quem sai da pagina de vendas e entra no painel precisa
 * sentir que e o mesmo produto. Mudar a cor da marca em um lugar so
 * continua valendo aqui.
 *
 * O que NAO herda: a densidade. O painel e uma ferramenta de trabalho e
 * economiza cada pixel; esta pagina tem que respirar.
 */

.site {
  background: var(--superficie);
  color: var(--tinta);
}

/* ---------------------------------------------------------------- topo */
.site-topo {
  padding: 1rem 0;
  border-bottom: 1px solid var(--borda, #E5E5E5);
  position: sticky;
  top: 0;
  background: color-mix(in srgb, var(--superficie) 92%, transparent);
  backdrop-filter: blur(8px);
  z-index: 20;
}
.site-marca {
  font-weight: 800;
  font-size: 1.35rem;
  letter-spacing: -.02em;
  color: var(--marca);
  text-decoration: none;
}
.site-link {
  color: var(--tinta-media);
  text-decoration: none;
}
.site-link:hover { color: var(--tinta); }

.btn-marca {
  background: var(--marca);
  border-color: var(--marca);
  color: #fff;
  font-weight: 600;
}
.btn-marca:hover, .btn-marca:focus {
  background: var(--marca-escuro);
  border-color: var(--marca-escuro);
  color: #fff;
}

/* ---------------------------------------------------------------- hero */
.site-hero {
  padding: 4.5rem 0 3.5rem;
  background:
    radial-gradient(1200px 400px at 15% -10%, var(--marca-suave), transparent 70%);
}
.site-olho {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .75rem;
  font-weight: 700;
  color: var(--marca);
  margin-bottom: .75rem;
}
.site-titulo {
  font-size: clamp(2.2rem, 6vw, 3.6rem);
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.05;
  margin-bottom: 1rem;
}
.site-sub {
  font-size: clamp(1.05rem, 2.2vw, 1.25rem);
  color: var(--tinta-media);
  max-width: 44ch;
  line-height: 1.6;
  margin: 0;
}

/* ------------------------------------------------------------- secoes */
.site-secao { padding: 3.5rem 0; }
.site-h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.1rem);
  font-weight: 800;
  letter-spacing: -.02em;
  margin-bottom: .5rem;
}
.site-lead {
  color: var(--tinta-media);
  max-width: 56ch;
  margin-bottom: 0;
}

.site-card {
  background: var(--superficie);
  border: 1px solid var(--borda, #E5E5E5);
  border-radius: 14px;
  padding: 1.5rem;
}
.site-icone {
  font-size: 1.6rem;
  color: var(--marca);
  display: block;
  margin-bottom: .75rem;
}
.site-passo {
  width: 1.9rem; height: 1.9rem;
  border-radius: 50%;
  background: var(--marca);
  color: #fff;
  display: grid; place-items: center;
  font-weight: 700; font-size: .9rem;
  margin-bottom: .75rem;
}

/* ------------------------------------------------------------ vitrine */
.site-vitrine { background: var(--fundo, #FAFAFA); }
.site-credencial {
  background: var(--fundo, #FAFAFA);
  border-radius: 10px;
  padding: .75rem 1rem;
  font-size: .9rem;
}
.site-credencial > div {
  display: flex; gap: .75rem; align-items: baseline;
  padding: .15rem 0;
}
.site-credencial span {
  color: var(--tinta-media);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  min-width: 3.6rem;
}
.site-credencial code { color: var(--tinta); }

/* ------------------------------------------------------------- precos */
.site-precos { background: var(--fundo, #FAFAFA); }
.site-plano {
  background: var(--superficie);
  border: 1px solid var(--borda, #E5E5E5);
  border-radius: 14px;
  padding: 1.75rem 1.5rem;
  position: relative;
  display: flex;
  flex-direction: column;
}
.site-plano-destaque {
  border-color: var(--marca);
  box-shadow: 0 8px 30px color-mix(in srgb, var(--marca) 12%, transparent);
}
.site-selo {
  position: absolute; top: -.7rem; left: 1.5rem;
  background: var(--marca); color: #fff;
  font-size: .68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  padding: .2rem .6rem; border-radius: 99px;
}
.site-preco {
  font-size: 2.6rem; font-weight: 800;
  letter-spacing: -.03em; line-height: 1;
  margin: .25rem 0 .75rem;
}
.site-moeda { font-size: 1.1rem; font-weight: 600; vertical-align: super; margin-right: .15rem; }
.site-mes   { font-size: .95rem; font-weight: 500; color: var(--tinta-media); }

.site-lista { list-style: none; padding: 0; margin: 1rem 0 0; flex-grow: 1; }
.site-lista li {
  display: flex; gap: .6rem; align-items: flex-start;
  padding: .35rem 0; font-size: .92rem;
}
.site-lista .bi { color: var(--ok-txt, #187D43); flex-shrink: 0; }
/* Recurso ausente fica CINZA, nao vermelho: nao e erro nem alerta, e
   so um limite do plano. Vermelho aqui faria o plano barato parecer
   quebrado. */
.site-lista .site-nao { color: var(--tinta-media); }
.site-lista .site-nao .bi { color: var(--tinta-media); }

/* -------------------------------------------------------------- fecho */
.site-fecho {
  background:
    radial-gradient(900px 320px at 50% 120%, var(--marca-suave), transparent 70%);
}

/* ------------------------------------------------------------- formulario */
.site-form { padding-top: 2.5rem; }
.site-ok {
  width: 3.5rem; height: 3.5rem; border-radius: 50%;
  background: var(--ok-bg, #E8F5EC); color: var(--ok-txt, #187D43);
  display: grid; place-items: center; font-size: 1.8rem;
  margin: 0 auto;
}

/*
 * A ISCA precisa sumir de verdade.
 *
 * `display:none` seria mais simples e e justamente o que parte dos
 * robos procura para pular o campo. Tirar da tela pela posicao engana
 * mais e continua invisivel para quem enxerga.
 */
.site-isca {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}

/* ------------------------------------------------------------- rodape */
.site-rodape {
  padding: 2rem 0;
  border-top: 1px solid var(--borda, #E5E5E5);
  font-size: .9rem;
}
