/* ── HERO CONTACTO ── */
.contacto-hero {
  min-height: 50vh;
  display: flex; align-items: center; justify-content: center;
  padding: 10rem 4rem 5rem;
  background: linear-gradient(155deg, var(--lilas-soft) 0%, var(--branco) 65%);
  text-align: center; position: relative; overflow: hidden;
}
.contacto-hero::after {
  content: '';
  position: absolute; bottom: -60px; left: -60px;
  width: 300px; height: 300px;
  background: radial-gradient(circle, var(--pessego-soft) 0%, transparent 70%);
  border-radius: 50%;
}
.contacto-hero-inner { max-width: 680px; position: relative; z-index: var(--z-base); }
.contacto-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  line-height: 1.2; margin: 1rem 0 1.5rem;
}
.contacto-title em { font-style: italic; color: var(--lilas-deep); }
.contacto-sub {
  font-size: 1.05rem; line-height: 1.7;
  color: var(--texto-suave);
}

/* ── MAIN ── */
.contacto-main { padding: 6rem 4rem; }
.contacto-inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr;
  gap: 5rem; align-items: start;
}

/* ── OPÇÕES ── */
.contacto-opcoes { display: flex; flex-direction: column; gap: 1.2rem; }
.contacto-opcoes .section-title { margin-bottom: 0.5rem; }
.opcao-card {
  background: var(--lilas-soft);
  border-radius: 20px; padding: 1.5rem;
  display: flex; gap: 1.2rem; align-items: flex-start;
  transition: transform 0.2s;
}
.opcao-card:hover { transform: translateX(4px); }
.opcao-icon { font-size: 1.8rem; flex-shrink: 0; }
.opcao-texto h3 {
  font-size: 0.95rem; font-weight: 700;
  margin-bottom: 0.3rem;
}
.opcao-texto p {
  font-size: 0.85rem; color: var(--texto-suave);
  line-height: 1.5; margin-bottom: 0.5rem;
}
.opcao-texto a {
  color: var(--lilas-deep); font-weight: 700;
  font-size: 0.88rem; text-decoration: none;
}
.opcao-texto a:hover { text-decoration: underline; }
.social-links { display: flex; gap: 1rem; }
.social-link {
  background: white;
  border-radius: 50px;
  padding: 0.35rem 1rem;
  font-size: 0.8rem; font-weight: 700;
  color: var(--lilas-deep) !important;
  transition: background 0.2s, color 0.2s !important;
}
.social-link:hover {
  background: var(--lilas-deep) !important;
  color: white !important;
}
.social-link.em-breve {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}
.tempo-resposta {
  display: flex; gap: 1rem; align-items: flex-start;
  background: var(--pessego-soft);
  border-radius: 20px; padding: 1.2rem 1.5rem;
  margin-top: 0.5rem;
}
.tempo-icon { font-size: 1.5rem; flex-shrink: 0; }
.tempo-resposta strong { font-size: 0.9rem; display: block; margin-bottom: 0.2rem; }
.tempo-resposta p { font-size: 0.82rem; color: var(--texto-suave); }

/* ── FORMULÁRIO ── */
.contacto-form-wrap .section-title { margin-bottom: 1.5rem; }
.contacto-form {
  display: flex; flex-direction: column; gap: 1.2rem;
}
.form-grupo {
  display: flex; flex-direction: column; gap: 0.4rem;
}
.form-grupo label {
  font-size: 0.85rem; font-weight: 700;
  color: var(--texto);
}
.form-grupo input,
.form-grupo textarea,
.form-grupo select {
  font-family: 'Nunito', sans-serif;
  font-size: 0.95rem; color: var(--texto);
  background: white;
  border: 2px solid var(--lilas);
  border-radius: 14px; padding: 0.85rem 1.2rem;
  outline: none; width: 100%;
  transition: border-color 0.2s;
}
.form-grupo input:focus,
.form-grupo textarea:focus,
.form-grupo select:focus {
  border-color: var(--lilas-deep);
}
.form-grupo input::placeholder,
.form-grupo textarea::placeholder { color: var(--texto-suave); }
.form-grupo textarea { resize: vertical; min-height: 140px; }
.select-wrap { position: relative; }
.select-wrap select { appearance: none; cursor: pointer; }
.select-wrap::after {
  content: '▾';
  position: absolute; right: 1.2rem; top: 50%;
  transform: translateY(-50%);
  color: var(--lilas-deep); pointer-events: none;
  font-size: 1rem;
}
.btn-form { width: 100%; justify-content: center; cursor: pointer; border: none; }
.form-nota {
  font-size: 0.78rem; color: var(--texto-suave);
  text-align: center;
}

/* ── FAQ ── */
.faq { background: var(--pessego-soft); padding: 6rem 4rem; }
.faq-inner { max-width: 1000px; margin: 0 auto; }
.faq-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1.5rem; margin-top: 3rem;
}
.faq-item {
  background: white; border-radius: 20px; padding: 2rem;
  transition: transform 0.2s;
}
.faq-item:hover { transform: translateY(-2px); }
.faq-pergunta {
  font-weight: 700; font-size: 0.95rem;
  margin-bottom: 0.8rem; color: var(--texto);
}
.faq-resposta {
  font-size: 0.88rem; color: var(--texto-suave); line-height: 1.7;
}

/* ── RESPONSIVO ── */
@media (max-width: 900px) {
  .contacto-hero { padding: 8rem 1.5rem 4rem; }
  .contacto-main { padding: 4rem 1.5rem; }
  .contacto-inner { grid-template-columns: 1fr; gap: 3rem; }
  .faq { padding: 4rem 1.5rem; }
  .faq-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .faq-grid { grid-template-columns: 1fr; }
}