/* ============================================================
   CORES
============================================================ */

:root {
  --yellow: #fcbd15;

  --orange: #f5a11c;

  --purple: #81589f;

  --green: #009869;

  --input-gray: #d9d9d9;

  --card: #fdfdfd;

  --black: #000000;
}

/* ============================================================
   RESET
============================================================ */

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;

  padding: 0;
}

html {
  background: #ececec;
}

body {
  min-height: 100vh;

  font-family: "Carlito", Arial, sans-serif;

  color: var(--black);

  background: #ececec;
}

/* ============================================================
   PÁGINA

   Layout original:
   938px x 2048px

   1cqw = 1% da largura da LP.

   Em 938px:
   1cqw = 9,38px
============================================================ */

.page {
  width: min(100%, 938px);

  margin: 0 auto;

  position: relative;

  overflow: hidden;

  background: var(--yellow);

  container-type: inline-size;
}

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

   Referência:
   938px x 469px
============================================================ */

.hero {
  position: relative;

  width: 100%;

  height: 50cqw;

  overflow: hidden;

  background: var(--yellow);
}

/* ============================================================
   FORMAS DECORATIVAS
============================================================ */

.hero-shape {
  position: absolute;

  pointer-events: none;

  z-index: 0;
}

.hero-shape-one {
  width: 37cqw;

  height: 40cqw;

  right: -20cqw;

  top: -13cqw;

  border-radius: 50%;

  background: rgba(255, 166, 0, 0.13);
}

.hero-shape-two {
  width: 32cqw;

  height: 32cqw;

  right: -20cqw;

  bottom: -26cqw;

  transform: rotate(27deg);

  background: rgba(245, 145, 28, 0.13);
}

/* ============================================================
   FOTO MAYRA

   Posição calculada a partir da referência original.

   Arquivo:
   dra2 1.png → mayra.png
============================================================ */

.candidate-photo {
  position: absolute;

  z-index: 2;

  left: 32.94cqw;

  top: 0;

  width: 65.88cqw;

  height: auto;

  display: block;

  pointer-events: none;
}

/* ============================================================
   TEXTO HERO
============================================================ */

.hero-copy {
  position: absolute;

  z-index: 3;

  left: 7.57cqw;

  top: 8.74cqw;
}

/* ============================================================
   TÍTULO

   Fonte correta:
   ANTON

   Na referência as quatro linhas ocupam:

   MATERIAL
   DE CAMPANHA
   DRA. MAYRA
   PINHEIRO
============================================================ */

.headline {
  margin: 0;

  padding: 0;

  font-family: "Anton", Impact, sans-serif;

  font-size: 8.45cqw;

  font-weight: 400;

  line-height: 0.885;

  letter-spacing: 0;

  text-transform: uppercase;

  color: var(--purple);
}

.headline span {
  display: block;

  white-space: nowrap;
}

/* ============================================================
   SUBTÍTULO

   Fonte:
   CARLITO
============================================================ */

.subtitle {
  position: absolute;

  left: -0.21cqw;

  top: 30.35cqw;

  width: 42cqw;

  margin: 0;

  padding: 0;

  font-family: "Carlito", Arial, sans-serif;

  font-size: 3.18cqw;

  font-weight: 400;

  line-height: 0.88;

  letter-spacing: 0;

  color: #000;
}

/* ============================================================
   LOGO MAYRA

   Posição aproximada da arte original:
   X = 512px
   Y = 264px
============================================================ */

.campaign-logo {
  position: absolute;

  z-index: 4;

  left: 54.58cqw;

  top: 28.15cqw;

  width: 32.62cqw;

  height: auto;

  display: block;

  pointer-events: none;
}

/* ============================================================
   LOGO PL

   Referência:
   aproximadamente 79px
============================================================ */

.pl-logo {
  position: absolute;

  z-index: 5;

  left: 88.27cqw;

  top: 3.2cqw;

  width: 8.42cqw;

  height: auto;

  display: block;

  border: none;

  border-radius: 0;

  box-shadow: none;

  pointer-events: none;
}

/* ============================================================
   ÁREA DO FORMULÁRIO
============================================================ */

.form-area {
  position: relative;

  z-index: 10;

  width: 100%;

  padding: 0 2.77cqw 2.35cqw;

  background: transparent;
}

/* ============================================================
   CARD

   Referência:
   começa exatamente ao terminar a hero.
============================================================ */

.form-card {
  width: 100%;

  min-height: 148.7cqw;

  margin: 0;

  padding: 3.41cqw 4.37cqw 2.3cqw 4.16cqw;

  background: var(--card);

  border-radius: 2.75cqw;

  box-shadow: none;
}

/* ============================================================
   CAMPOS
============================================================ */

.field {
  width: 100%;

  margin: 0 0 2.35cqw;
}

.field-complemento {
  margin-bottom: 2.3cqw;
}

.field-last {
  margin-bottom: 3.5cqw;
}

/* ============================================================
   LABELS

   Fonte:
   Carlito
============================================================ */

.field label {
  display: block;

  margin: 0 0 0.4cqw 0.1cqw;

  padding: 0;

  font-family: "Carlito", Arial, sans-serif;

  font-size: 3.05cqw;

  font-weight: 400;

  line-height: 1;

  color: #000;

  text-transform: uppercase;
}

/* ============================================================
   INPUTS
============================================================ */

.field input,
.field select {
  display: block;

  width: 100%;

  height: 7.14cqw;

  min-height: 0;

  margin: 0;

  padding: 0 1.5cqw;

  border: none;

  border-radius: 0.72cqw;

  outline: none;

  background: var(--input-gray);

  box-shadow: none;

  font-family: "Carlito", Arial, sans-serif;

  font-size: 2.7cqw;

  color: #111;

  appearance: none;

  -webkit-appearance: none;
}

/* UF fica visualmente igual aos demais campos */

.field select {
  cursor: pointer;

  background-image: none;
}

/* ============================================================
   FOCO
============================================================ */

.field input:focus,
.field select:focus {
  box-shadow: 0 0 0 0.28cqw rgba(129, 88, 159, 0.5);
}

/* ============================================================
   ERRO
============================================================ */

.field input.invalid,
.field select.invalid {
  background: #fdeaea;

  box-shadow: 0 0 0 0.28cqw #d94141;
}

/* ============================================================
   CONSENTIMENTO
============================================================ */

.consent {
  display: flex;

  align-items: flex-start;

  width: calc(100% + 0.8cqw);

  gap: 1.8cqw;

  margin: 0 0 2.45cqw -0.75cqw;

  padding: 0;

  font-family: "Carlito", Arial, sans-serif;

  font-size: 2.15cqw;

  font-weight: 400;

  line-height: 0.96;

  color: #000;

  cursor: pointer;
}

.consent-second {
  margin-top: 0.4cqw;

  margin-bottom: 2.8cqw;
}

/* ============================================================
   CHECKBOX CIRCULAR
============================================================ */

.consent input[type="checkbox"] {
  appearance: none;

  -webkit-appearance: none;

  flex: 0 0 auto;

  width: 2.77cqw;

  height: 2.77cqw;

  min-width: 0;

  min-height: 0;

  margin: 0.1cqw 0 0;

  padding: 0;

  border: none;

  border-radius: 50%;

  background: var(--input-gray);

  box-shadow: none;

  cursor: pointer;
}

/* MARCADO */

.consent input[type="checkbox"]:checked {
  background: var(--green);

  box-shadow: inset 0 0 0 0.65cqw #fff;
}

/* ERRO */

.consent.invalid {
  color: #b73030;
}

/* ============================================================
   WHATSAPP
============================================================ */

.whatsapp-link {
  color: inherit;

  font-weight: 400;

  text-decoration: none;
}

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

   Referência:
   358px x 71px
============================================================ */

.submit-btn {
  display: block;

  width: 38.17cqw;

  height: 7.57cqw;

  margin: 0 auto;

  padding: 0;

  border: none;

  border-radius: 0;

  background: var(--green);

  color: #fff;

  font-family: "Anton", Impact, sans-serif;

  font-size: 3.55cqw;

  font-weight: 400;

  line-height: 7.57cqw;

  letter-spacing: 0;

  text-align: center;

  text-transform: uppercase;

  white-space: nowrap;

  cursor: pointer;

  transition:
    filter 0.15s ease,
    transform 0.1s ease;
}

.submit-btn:hover {
  filter: brightness(0.96);
}

.submit-btn:active {
  transform: scale(0.99);
}

.submit-btn:disabled {
  opacity: 0.6;

  cursor: not-allowed;
}

/* ============================================================
   MENSAGENS
============================================================ */

.form-message {
  display: none;

  width: 80%;

  margin: 2cqw auto 0;

  padding: 1.3cqw;

  border-radius: 0.8cqw;

  font-family: "Carlito", Arial, sans-serif;

  font-size: 1.8cqw;

  font-weight: 700;

  line-height: 1.2;

  text-align: center;
}

.form-message.success {
  display: block;

  background: #e2f7ea;

  color: #1b5e3a;

  border: 1px solid #9bd8b3;
}

.form-message.error {
  display: block;

  background: #fdeaea;

  color: #b73030;

  border: 1px solid #f0b4b4;
}

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

   Referência:
   938px x 162px
============================================================ */

.footer {
  position: relative;

  z-index: 20;

  width: 100%;

  min-height: 17.27cqw;

  margin: 0;

  padding: 3.7cqw 3cqw;

  display: flex;

  align-items: center;

  justify-content: center;

  background: var(--green);

  color: #fff;

  font-family: "Carlito", Arial, sans-serif;

  font-size: 3.45cqw;

  font-weight: 700;

  line-height: 1.18;

  text-align: center;
}

/* ============================================================
   DESKTOP

   A LP não vira um banner gigante.
   Mantém os 938px originais e fica centralizada.
============================================================ */

@media (min-width: 939px) {
  body {
    padding: 28px 20px;
  }

  .page {
    box-shadow: 0 18px 55px rgba(0, 0, 0, 0.18);
  }
}

/* ============================================================
   CELULAR

   Não criamos outro layout.

   Apenas a composição original reduz proporcionalmente.
============================================================ */

@media (max-width: 938px) {
  body {
    padding: 0;

    background: var(--yellow);
  }

  .page {
    width: 100%;
  }
}

/* ============================================================
   AJUSTES DE USABILIDADE EM TELAS MUITO PEQUENAS

   Esses valores mínimos não mudam a composição.
   Só evitam inputs praticamente impossíveis de usar.
============================================================ */

@media (max-width: 430px) {
  .field input,
  .field select {
    min-height: 28px;
  }

  .consent input[type="checkbox"] {
    min-width: 11px;

    min-height: 11px;
  }
}
