/* =========================================
   CONTATO — PANORAMA ESTRATÉGICO
   FUNDO CLARO
   ========================================= */

:root{
  --contact-bg:#f7f9fc;
  --contact-surface:#ffffff;
  --contact-surface-soft:#f2f6fb;
  --contact-border:#e4ebf3;
  --contact-title:#0c1728;
  --contact-text:#5f6f86;
  --contact-muted:#7e8ca3;
  --contact-primary:#0d6efd;
  --contact-primary-dark:#0a58ca;
  --contact-shadow:0 18px 45px rgba(15, 23, 42, 0.08);
  --contact-radius:24px;
}

/* BASE */
.hero-contato,
.contato-main,
.faq-contato{
  background:var(--contact-bg);
}

.hero-contato *,
.contato-main *,
.faq-contato *{
  box-sizing:border-box;
}

/* HERO */
.hero-contato{
  padding:110px 0 40px;
}

.hero-contato__inner{
  text-align:center;
  max-width:860px;
}

.hero-contato__eyebrow{
  display:inline-block;
  font-size:13px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--contact-primary);
  margin-bottom:14px;
}

.hero-contato__title{
  margin:0 0 18px;
  font-size:clamp(2.1rem, 4vw, 3.8rem);
  line-height:1.08;
  letter-spacing:-0.03em;
  color:var(--contact-title);
}

.hero-contato__subtitle{
  margin:0 auto;
  max-width:760px;
  font-size:1.05rem;
  line-height:1.8;
  color:var(--contact-text);
}

/* MAIN */
.contato-main{
  padding:20px 0 56px;
}

.contato-main__grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:28px;
  align-items:start;
}

/* CARDS */
.contato-card{
  background:var(--contact-surface);
  border:1px solid var(--contact-border);
  border-radius:var(--contact-radius);
  padding:32px;
  box-shadow:var(--contact-shadow);
}

.contato-card__eyebrow{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--contact-primary);
  margin-bottom:10px;
}

.contato-card__title{
  margin:0 0 10px;
  font-size:1.9rem;
  line-height:1.2;
  color:var(--contact-title);
}

.contato-card__text{
  margin:0 0 24px;
  font-size:1rem;
  line-height:1.75;
  color:var(--contact-text);
}

/* FORM */
.contato-form{
  display:grid;
  gap:16px;
  position:relative;
}

.contato-form__group{
  display:grid;
  gap:8px;
}

.contato-form label{
  font-size:14px;
  font-weight:600;
  color:var(--contact-title);
}

.contato-form input,
.contato-form textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--contact-border);
  border-radius:14px;
  background:#fff;
  font:inherit;
  color:var(--contact-title);
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.contato-form input::placeholder,
.contato-form textarea::placeholder{
  color:#95a2b5;
}

.contato-form input:focus,
.contato-form textarea:focus{
  border-color:rgba(13,110,253,.45);
  box-shadow:0 0 0 4px rgba(13,110,253,.10);
}

.contato-form textarea{
  min-height:140px;
  resize:vertical;
}

.contato-form__submit{
  width:100%;
  min-height:54px;
  border:none;
  border-radius:14px;
  background:linear-gradient(135deg, var(--contact-primary) 0%, #3291ff 100%);
  color:#fff;
  font-size:16px;
  font-weight:700;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  box-shadow:0 14px 28px rgba(13,110,253,.18);
}

.contato-form__submit:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 34px rgba(13,110,253,.22);
}

.contato-form__privacy{
  margin:2px 0 0;
  font-size:13px;
  line-height:1.6;
  color:var(--contact-muted);
}

.asterisk{
  color:var(--contact-primary);
}

/* RESPOSTAS */
#mce-responses{
  display:grid;
  gap:10px;
}

#mce-error-response,
#mce-success-response{
  font-size:14px;
  line-height:1.5;
  border-radius:12px;
  padding:12px 14px;
}

#mce-error-response{
  background:#fff1f1;
  color:#b42318;
}

#mce-success-response{
  background:#ecfdf3;
  color:#067647;
}

/* INFO */
.contato-info-list{
  display:grid;
  gap:14px;
}

.contato-info-item{
  padding:18px;
  border:1px solid var(--contact-border);
  border-radius:18px;
  background:var(--contact-surface-soft);
}

.contato-info-item strong{
  display:block;
  margin-bottom:6px;
  font-size:15px;
  color:var(--contact-title);
}

.contato-info-item span,
.contato-info-item a{
  font-size:15px;
  line-height:1.65;
  color:var(--contact-text);
  text-decoration:none;
}

.contato-info-item a:hover{
  color:var(--contact-primary);
}

.contato-actions{
  margin-top:22px;
}

.contato-actions .btn-primary{
  width:100%;
  justify-content:center;
}

/* FAQ */
.faq-contato{
  padding:0 0 90px;
}

.faq-contato__inner{
  max-width:980px;
}

.faq-contato__header{
  text-align:center;
  margin-bottom:26px;
}

.faq-contato__eyebrow{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--contact-primary);
  margin-bottom:10px;
}

.faq-contato__title{
  margin:0;
  font-size:2rem;
  line-height:1.2;
  color:var(--contact-title);
}

.faq-contato__list{
  display:grid;
  gap:14px;
}

.faq-item{
  background:var(--contact-surface);
  border:1px solid var(--contact-border);
  border-radius:20px;
  padding:0 22px;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
}

.faq-item summary{
  list-style:none;
  cursor:pointer;
  position:relative;
  padding:20px 34px 20px 0;
  font-size:16px;
  font-weight:600;
  color:var(--contact-title);
}

.faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item summary::after{
  content:"+";
  position:absolute;
  right:0;
  top:17px;
  font-size:24px;
  font-weight:400;
  color:var(--contact-primary);
}

.faq-item[open] summary::after{
  content:"–";
}

.faq-item__answer{
  padding:0 0 20px;
}

.faq-item__answer p{
  margin:0;
  color:var(--contact-text);
  line-height:1.75;
}

/* RESPONSIVO */
@media (max-width: 991px){
  .hero-contato{
    padding:96px 0 30px;
  }

  .contato-main__grid{
    grid-template-columns:1fr;
  }

  .contato-card__title{
    font-size:1.65rem;
  }

  .faq-contato__title{
    font-size:1.7rem;
  }
}

@media (max-width: 640px){
  .hero-contato{
    padding:88px 0 26px;
  }

  .contato-main{
    padding:14px 0 44px;
  }

  .contato-card{
    padding:22px;
    border-radius:20px;
  }

  .contato-card__title{
    font-size:1.45rem;
  }

  .hero-contato__subtitle{
    font-size:.98rem;
    line-height:1.7;
  }

  .faq-item{
    padding:0 18px;
    border-radius:18px;
  }

  .faq-item summary{
    font-size:15px;
    padding:18px 28px 18px 0;
  }
}