/* =========================
   RESET BÁSICO
   ========================= */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body {
  height: 100%;
}

body {
  font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont,
    sans-serif;
  background-color: #fe5d03;
  overflow-x: hidden;
  color: #262118;
}

/* =========================
   CONTAINER PRINCIPAL
   ========================= */

.page-wrapper {
    min-height: 100vh;
  width: 100%;          /* ocupa 100% da largura da tela */
  margin: 0 auto;
  position: relative;
}

/* =========================
   BANNER SUPERIOR
   ========================= */

.banner {
  position: relative;
  width: 100%;
  height: 293px;

  /* REMOVIDO o banner fixo */
  /* background: url(img/banner-pt.png) ... */

  background-color: #ffffff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  border-radius: 0 0 20px 20px;
  z-index: 1;
}


/* =========================
   HEADER SOBRE O BANNER
   ========================= */

.header {
  position: absolute;
  top: 41px;
  left: 225px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.logo-mark {
  width: 96px;
  height: 96px;
  border-radius: 999px;
  background: #262118;
  color: #fff9f2;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Fira Sans", sans-serif;
  font-weight: 900;
  font-size: 1.4rem;
}

.brand h1 {
  font-family: "Fira Sans", sans-serif;
  font-weight: 900;
  font-size: 28px;
  color: #fff9f2;
}

.brand p {
  font-size: 16px;
  color: #fff9f2;
  opacity: 0.9;
}

/* =========================
   HERO SECTION
   ========================= */

.hero {
  position: relative;
  width: 100%;
  height: 1000px;        /* altura ajustada para encaixar o card */
  margin-top: -180px;   /* puxa o conteúdo para dentro da área do banner */
}

/* Título principal: "Algo grande está chegando" */
.hero-title {
  position: absolute;
  width: 334px;
  height: 120px;
  left: 225px;
  top: 321px;

  font-family: "Fira Sans", sans-serif;
  font-style: black;
  font-weight: 900;
  font-size: 50px;
  line-height: 100%;
  color: #fff9f2;
}

/* Subtítulo à direita: "Descubra o próximo nível..." */
.hero-subtitle {
  position: absolute;
  width: 350px;
  height: 132px;
  left: 225px;
  top: 457px;

  font-family: "Dans Sans", sans-serif;
  font-weight: 400;
  font-size: 20px;
  font-style: regular;
  line-height: 100%;
  text-align: left;
  letter-spacing: 0;
  color: #fff9f2;
}

/* Descrição abaixo do título */
.hero-description {
  position: absolute;
  width: 420px;
  left: 225px;
  top: 430px;

  font-family: "DM Sans", sans-serif;
  font-size: 20px;
  line-height: 28px;
  color: #fff9f2;
}

/* =========================
   CARD DO FORMULÁRIO
   ========================= */

.card {
  position: absolute;
  width: 540px;
  left: 673px;
  top: 260px;   /* card mais para cima, alinhado com o texto */

  background: #fff9f2;
  border-radius: 20px;
  padding: 32px 35px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
  color: #262118;
}

.card-title {
  font-family: "Fira Sans", sans-serif;
  font-weight: 700;
  font-size: 30px;
  margin-bottom: 8px;
}

.card-subtitle {
  font-family: "DM Sans", sans-serif;
  font-size: 16px;
  margin-bottom: 16px;
  color: #262118;
}

/* =========================
   SWITCH DE PERFIL
   ========================= */

.user-type-group {
  display: flex;
  border-radius: 100px;
  border: 1px solid #92908b;
  padding: 2px;
  gap: 4px;
  margin-bottom: 18px;
}

.user-type-option {
  flex: 1;
  position: relative;
  cursor: pointer;
}

.user-type-option input {
  position: absolute;
  opacity: 0;

}

.user-type-option span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 8px 10px;
  border-radius: 100px;
  font-family: "DM Sans", sans-serif;
  font-size: 16px;
  border: 1px solid transparent;
  color: #92908b;
  background: transparent;
  transition: all 0.15s ease-out;
}

.user-type-option input:checked + span {
  background: #fe5d03;
  color: #ffdfcd;
  border-color: #fe5d03;
}

/* =========================
   CAMPOS DO FORMULÁRIO
   ========================= */

form {
  display: flex;
  flex-direction: column;
}

.form-group {
  margin-bottom: 14px;
}

.form-group label {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 16px;
  color: #262118;
  margin-bottom: 6px;
  width: 100% ;
  display: block;

}

.form-group input,
.form-group select {
  width: 100%;
  box-sizing: border-box;
  border-radius: 10px;
  border: 1px solid #262118;
  background: #fff9f2;
  padding: 10px 14px;
  height: 48px;
  font-family: "DM Sans", sans-serif;
  font-size: 16px;
  color: #262118;
  outline: none;
  appearance: none;
  background-position: right 14px center;
}

.form-group input::placeholder {
  color: #92908b;
}

.form-group input:focus,
.form-group select:focus {
  border-color: #002ed6;
  box-shadow: 0 0 0 1px rgba(0, 46, 214, 0.3);
}

/* =========================
   BOTÃO PRINCIPAL
   ========================= */

.btn-primary {
  appearance: none;
  border: none;
  border-radius: 100px;
  padding: 10px 12px;
  width: 100%;
  margin-top: 12px;

  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 16px;
  background: #002ed6;
  color: #fff9f2;
  cursor: pointer;
  transition: 0.2s;
}

.btn-primary:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.btn-primary:active {
  transform: translateY(0);
}

/* =========================
   TEXTO DE CONSENTIMENTO
   ========================= */

.privacy-note {
  margin-top: 16px;
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  line-height: 18px;
  color: #262118;
}

/* =========================
   RODAPÉ
   ========================= */

.footer {
  margin-top: 32px;         /* aproxima o footer do fim */
  padding: 32px 24px;
  background: #262118;
  color: #fff9f2;
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  text-align: center;
  border-radius: 20px 20px 0 0;
  
}
/* =========================
   BOTÃO DE ADMIN
   ========================= */
/* botão de admin começa escondido */
.btn-admin {
  display: none;
}

/* quando o modo admin estiver ativo */
.btn-admin.visible {
  display: block;

}

/* =========================
   RESPONSIVO - TELAS PEQUENAS
   ========================= */
@media (max-width: 768px) {
  body {
    overflow-x: hidden;
  }

  .page-wrapper {
    min-height: 100vh;
    width: 100%;
  }

  /* Banner mais baixo no mobile */
  .banner {
    height: 200px;
    border-radius: 0 0 16px 16px;
  }

  /* HEADER: centralizado, sem left fixo */
  .header {
    position: absolute;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
    gap: 0.75rem;
  }

  .logo-mark {
    width: 64px;
    height: 64px;
    font-size: 1rem;
  }

  .brand h1 {
    font-size: 20px;
  }

  .brand p {
    font-size: 13px;
  }

  /* HERO vira layout em coluna, sem posições absolutas */
  .hero {
    position: relative;
    width: 100%;
    height: auto;        /* deixa a altura crescer naturalmente */
    margin-top: 15px;   /* só pra encaixar um pouco no banner */
    padding: 16px 16px 32px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  /* TÍTULO E DESCRIÇÃO: ocupam a largura toda, um embaixo do outro */
  .hero-title,
  .hero-description {
    position: static;      /* remove o absolute */
    height: auto;
    width: 100%;
    max-width: 100%;
    left: auto;
    top: auto;
  }

  .hero-title {
    font-size: 28px;
    line-height: 1.1;
    margin-bottom: 8px;
    text-align: left;
  }

  .hero-description {
    font-size: 16px;
    line-height: 22px;
    margin-bottom: 20px;
    text-align: left;
  }

  /* Caso você venha a usar .hero-subtitle */
  .hero-subtitle {
    position: static;
    width: 100%;
    font-size: 16px;
    line-height: 22px;
    margin-bottom: 16px;
    text-align: left;
  }

  /* CARD: ocupa 100%, vem depois do texto, sem absolute */
  .card {
    position: static;
    width: 100%;
    max-width: 100%;
    margin-top: 12px;
    margin-left: 0;
    padding: 20px 18px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
  }

  .card-title {
    font-size: 22px;
  }

  .card-subtitle {
    font-size: 14px;
  }

  .user-type-group {
    font-size: 14px;
  }

  .form-group label {
    font-size: 14px;
  }

  .form-group input,
  .form-group select {
    font-size: 14px;
    height: 44px;
  }

  .btn-primary {
    font-size: 15px;
  }

  .privacy-note {
    font-size: 12px;
    line-height: 16px;
  }

  /* Footer colado mais perto, ocupando largura toda */
  .footer {
    margin-top: 16px;
    border-radius: 16px 16px 0 0;
    padding: 20px 16px;
    font-size: 12px;
  }
}


/* ======================================
   BANNERS RESPONSIVOS - AJUSTE POR TELA
   ====================================== */

/* Telas grandes (padrão desktop) */


/* Tablets (até 992px) */
@media (max-width: 992px) {
  .banner {
    height: 240px;
  }
}

/* Celulares médios e grandes (até 768px) */
@media (max-width: 768px) {
  .banner {
    height: 200px;
    border-radius: 0 0 16px 16px;
  }
}

/* Celulares pequenos (até 480px) */
@media (max-width: 480px) {
  .banner {
    height: 150px;
  }
}

/* Celulares muito pequenos (até 360px) */
@media (max-width: 360px) {
  .banner {
    height: 120px;
  }
}


