/* ===========================================================
   CONTATO — última dobra
   Esquerda: chamada + redes. Direita: formulário.
   Adaptado pro tema escuro (a referência é clara).
   =========================================================== */
.contact{
  position:relative;
  background:var(--bg);
  padding:120px 20px 140px;
}

.contact__inner{
  max-width:1240px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(48px,7vw,80px);
}

/* ---------- lado esquerdo ---------- */
.contact__title{
  font-size:clamp(52px,10vw,110px);
  font-weight:800;
  letter-spacing:-0.03em;
  line-height:.95;
  color:var(--cream);
}

.contact__lead{
  margin-top:20px;
  font-size:clamp(16px,1.5vw,19px);
  font-weight:300;
  letter-spacing:-0.02em;
  line-height:1.5;
  color:var(--cream-50);
  max-width:42ch;
}

.contact__socials{
  display:flex;
  gap:12px;
  margin-top:clamp(40px,6vh,72px);
}

.contact__social{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:12px;
  background:var(--surface-1);
  border:1px solid var(--cream-10);
  color:var(--cream-50);
  transition:color .2s ease, border-color .2s ease, transform .2s ease;
}
.contact__social:hover{color:var(--cream);border-color:var(--red-edge);transform:translateY(-2px);}
.contact__social:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
.contact__social svg{width:19px;height:19px;fill:currentColor;}

/* ---------- formulário ---------- */
.contact__form{
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:clamp(24px,2.6vw,36px);
  border-radius:20px;
  background:linear-gradient(155deg, var(--surface-1), var(--black-deep));
  border:1px solid var(--cream-10);
  box-shadow:0 24px 60px rgba(0,0,0,.5);
}

.field{display:flex;flex-direction:column;gap:8px;}

.field label{
  font-size:13px;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--cream-90);
}

.field label .field__req{color:var(--red-edge);}

.field input,
.field textarea,
.field select{
  width:100%;
  font-family:var(--font);
  font-size:15px;
  font-weight:300;
  letter-spacing:-0.01em;
  color:var(--cream);
  background:var(--surface-2);
  border:1px solid var(--cream-10);
  border-radius:12px;
  padding:13px 15px;
  transition:border-color .2s ease, background .2s ease;
}

.field textarea{resize:vertical;min-height:120px;line-height:1.5;}

.field input::placeholder,
.field textarea::placeholder{color:var(--cream-30);}

/* select: tira a aparência nativa e desenha a setinha via background */
.field select{
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23FAF7F3' stroke-width='1.6'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 15px center;
}
/* a 1ª opção (placeholder, value vazio) fica esmaecida */
.field select:has(option[value=""]:checked){color:var(--cream-30);}
.field select option{color:var(--cream);background:var(--surface-2);}

.field input:focus,
.field textarea:focus,
.field select:focus{
  outline:none;
  border-color:var(--red);
  background:var(--black-deep);
}

/* notinha que abre o bloco de briefing opcional */
.contact__briefing{
  margin-top:4px;
  font-size:13px;
  font-weight:300;
  font-style:italic;
  line-height:1.5;
  color:var(--cream-50);
  padding-top:16px;
  border-top:1px solid var(--cream-10);
}

.contact__submit{
  margin-top:4px;
  font-family:var(--font);
  font-size:15px;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--black);
  background:var(--cream);
  border:none;
  border-radius:12px;
  padding:15px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.contact__submit:hover{background:var(--red-edge);color:var(--cream);}
.contact__submit:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

/* mensagem de status pós-envio */
.contact__status{
  font-size:14px;
  font-weight:400;
  line-height:1.5;
  color:var(--cream-50);
  min-height:1.2em;
}
.contact__status[data-state="ok"]{color:var(--cream-90);}

@media (min-width:860px){
  .contact{padding:160px 5vw 180px;}
  .contact__inner{
    grid-template-columns:1fr 1fr;
    align-items:start;
    gap:64px;
  }
  /* a coluna esquerda gruda no topo enquanto o form (mais alto) define a altura */
  .contact__left{position:sticky;top:120px;}
}
