/* Página Contato (Figma: frame "Contato" 78:725) */

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Topo azul */
.contact-top { background: var(--navy); color: var(--white); }
.contact-top__inner { min-height: 42.4rem; padding-top: 23.8rem; text-align: center; display: flex; flex-direction: column; align-items: center; }
.contact-top__title { font: 300 8rem/8rem var(--serif); white-space: nowrap; }
.contact-top__text { font-size: 1.4rem; line-height: 2rem; max-width: 57rem; margin-top: 3rem; }

/* Linha: título à esquerda, conteúdo à direita (formulário e canais) */
.contact-row { display: grid; grid-template-columns: 1fr 79rem; column-gap: 4rem; }
.contact-row__intro .section-title { max-width: 34.6rem; }
.contact-row__text { font-size: 1.6rem; line-height: 2rem; max-width: 26rem; margin-top: 1rem; }

/* Formulário */
.contact-form { padding-top: 8.3rem; }
.contact-form__form { position: relative; }
.contact-form .form-status { position: absolute; left: 1rem; top: 100%; margin-top: 1.2rem; }
.contact-form__fields { display: flex; flex-direction: column; gap: 1rem; }
.field-row { display: flex; gap: 1rem; }
.field { position: relative; display: block; }
.field--half { flex: 0 0 39rem; }
.field--city { flex: 0 0 28.3rem; }
.field--uf { flex: 0 0 9.9rem; margin-left: -0.2rem; }
.field input, .field select, .field textarea {
  display: block; width: 100%; height: 6rem; margin: 0; padding: 2rem;
  border: 1px solid #838383; border-radius: 1.2rem; background: var(--white);
  font: 400 1.4rem/2rem var(--sans); color: var(--ink);
  -webkit-appearance: none; appearance: none; outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.field input::placeholder, .field textarea::placeholder { color: #838383; opacity: 1; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--navy); box-shadow: 0 0 0 1px var(--navy); }
.field select { padding-right: 5rem; cursor: pointer; }
.field select:invalid { color: #838383; }
.field select option { color: var(--ink); }
.field textarea { height: 12rem; resize: vertical; }
.field__chevron { position: absolute; right: 2rem; top: 50%; width: 2rem; height: 2rem; margin-top: -1rem; transform: rotate(90deg); pointer-events: none; }

.contact-form__foot { display: flex; align-items: center; justify-content: space-between; margin-top: 3rem; }
.consent { display: flex; align-items: center; gap: 1rem; padding: 0 1rem; font-size: 1rem; line-height: 1rem; color: #838383; cursor: pointer; }
.consent input { -webkit-appearance: none; appearance: none; flex: none; width: 1.4rem; height: 1.4rem; margin: 0; border-radius: 50%; background: #d9d9d9; cursor: pointer; transition: background .2s, box-shadow .2s; }
.consent input:checked { background: var(--navy); box-shadow: inset 0 0 0 0.3rem #d9d9d9; }
.consent input:focus-visible { outline: 1px solid var(--navy); outline-offset: 2px; }
.contact-form .btn { padding: 2rem 3rem; height: 5.9rem; }

/* Canais de atendimento */
.contact-channels { padding-top: 7rem; }
.contact-channels__intro { padding-top: 1.7rem; }
.contact-channels__title { color: var(--ink); }
.contact-channels__text { max-width: 19.7rem; }
.channels { list-style: none; margin: 0; padding: 3.6rem 2.9rem 0; height: 14.6rem; border: 1px solid var(--line); border-radius: 2rem; background: var(--white); display: grid; grid-template-columns: 20rem 16.1rem 18.7rem 1fr; }
.channel { display: flex; flex-direction: column; font-size: 1.4rem; line-height: normal; }
.channel__icon { display: flex; align-items: flex-start; height: 2.2rem; }
.channel__icon img { height: auto; }
.channel .ic-email { width: 2rem; margin-top: 0.22rem; }
.channel .ic-phone { width: 1.7rem; margin-top: 0.1rem; }
.channel .ic-chat { width: 2.1rem; margin-top: 0.1rem; }
.channel .ic-lang { width: 1.958rem; margin: 0.121rem 0 0 0.121rem; }
.channel strong { font: 700 1.4rem/1.8rem var(--serif); margin-top: 0.4rem; }
.channel a, .channel span:not(.channel__icon) { margin-top: 0.6rem; line-height: 1.6rem; }
.channel a:hover { color: var(--navy); text-decoration: underline; }

/* Blocos lado a lado: setor regulado e pro bono */
.contact-panels { display: grid; grid-template-columns: 1fr 1fr; margin-top: 9.2rem; }
.contact-panel { position: relative; height: 69.3rem; color: var(--white); overflow: hidden; isolation: isolate; }
.contact-panel--regulated { background: var(--ink); }
.contact-panel--probono { background: var(--navy); }
.contact-panel__bg { position: absolute; inset: 0; z-index: -1; }
.contact-panel__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 100%; opacity: .15; }
.contact-panel__inner { height: 100%; display: grid; grid-template-rows: 24.8rem 27.2rem auto; justify-items: center; text-align: center; padding: 0 2rem; }
.contact-panel__title { align-self: center; font: 400 3rem/3.5rem var(--serif); text-transform: uppercase; max-width: 32.9rem; }
.contact-panel--probono .contact-panel__title { max-width: 27.5rem; }
.contact-panel__title, .contact-panel__text { position: relative; }
.contact-panel--regulated .contact-panel__title { top: 0.4rem; }
.contact-panel--probono .contact-panel__title { top: -0.3rem; }
.contact-panel__text { top: -0.7rem; }
.contact-panel__text { align-self: center; font-size: 1.6rem; line-height: 2rem; max-width: 32.9rem; }
.contact-panel .btn { align-self: start; margin-top: 2.2rem; }
.contact-panel__btn--dark { background: #fefefe; color: var(--ink); }

/* Chamada final */
.contact-cta { background: var(--navy); color: #fefefe; text-align: center; padding: 10.8rem 0 0.3rem; }
.contact-cta__title { font: 400 3rem/3.5rem var(--serif); text-transform: uppercase; max-width: 44.7rem; margin: 0 auto; }
.contact-cta__text { font-size: 1.6rem; line-height: 2rem; max-width: 46.3rem; margin: 1rem auto 0; }
.contact-cta__actions { display: flex; justify-content: center; gap: 1rem; margin-top: 4.9rem; }
.btn--line-white { border-color: var(--white); color: var(--white); height: 5.9rem; }
.btn--line-white:hover { background: var(--white); color: var(--navy); }
.btn--whatsapp { gap: 1rem; }
.btn--whatsapp img { width: 2.6rem; height: auto; transition: filter .2s; }
.btn--whatsapp:hover img { filter: brightness(0) saturate(100%) invert(15%) sepia(37%) saturate(2400%) hue-rotate(205deg) brightness(92%); }

/* ---------- Responsivo ---------- */
@media (max-width: 1199px) {
  .contact-top__inner { min-height: 0; padding-top: 18rem; padding-bottom: 7rem; }
  .contact-top__title { font-size: 6rem; line-height: 6.4rem; white-space: normal; }
  .contact-row { grid-template-columns: 1fr; row-gap: 3rem; padding: 0 var(--gutter); }
  .contact-row__text { max-width: 40rem; }
  .contact-channels__intro { padding-top: 0; }
  .field--half { flex: 1 1 0; min-width: 0; }
  .field--city { flex: 1 1 0; min-width: 0; }
  .field--uf { flex: 0 0 9.9rem; margin-left: 0; }
  .channels { height: auto; padding: 3rem; grid-template-columns: 1fr 1fr; row-gap: 3rem; column-gap: 2rem; }
  .contact-panel { height: auto; min-height: 60rem; }
  .contact-panel__inner { grid-template-rows: auto auto auto; row-gap: 3rem; align-content: center; padding: 8rem 3rem; }
  .contact-panel .btn { margin-top: 1rem; }
  .contact-panel__title, .contact-panel__text { top: 0 !important; }
  .contact-cta { padding-top: 9rem; }
}

@media (max-width: 720px) {
  .contact-top__inner { padding-top: 14rem; padding-bottom: 6rem; }
  .contact-top__title { font-size: 4.4rem; line-height: 4.8rem; }
  .contact-top__text { margin-top: 2rem; }
  .contact-form { padding-top: 6rem; }
  .field-row { flex-wrap: wrap; }
  .field--half { flex: 1 1 100%; }
  .field--city { flex: 1 1 0; }
  .contact-form .form-status { position: static; margin: 1.6rem 0 0; }
  .contact-form__foot { flex-direction: column; align-items: stretch; gap: 2.4rem; }
  .consent { padding: 0; line-height: 1.4rem; }
  .contact-form .btn { width: 100%; }
  .contact-channels { padding-top: 7rem; }
  .channels { grid-template-columns: 1fr; padding: 2.6rem 2.4rem; row-gap: 2.6rem; }
  .contact-panels { grid-template-columns: 1fr; margin-top: 7rem; }
  .contact-panel { min-height: 0; }
  .contact-panel__inner { padding: 7rem 2.4rem; row-gap: 2.4rem; }
  .contact-panel__title { font-size: 2.4rem; line-height: 3rem; }
  .contact-panel .btn { white-space: normal; }
  .contact-cta { padding-top: 7rem; }
  .contact-cta__title { font-size: 2.4rem; line-height: 3rem; }
  .contact-cta__actions { flex-direction: column; align-items: stretch; margin-top: 3.6rem; }
}
