/* =========================================================================
   contato.css — página Contato (form de lead, morador, localização).
   Depende de base.css.
   ========================================================================= */

.contato-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(20px, 3vw, 32px); align-items: start; }

/* ----- Formulário ----- */
.form-card { background: var(--fundo); border: 1px solid var(--linha); border-radius: 24px; padding: clamp(24px, 3vw, 34px); }
.form-card__titulo { margin: 0 0 18px; font-size: 21px; font-weight: 700; color: var(--azul); }

/* honeypot anti-spam: fora da tela, não focável */
.hp { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; }

.campo { margin-bottom: 13px; }
.campo > label { display: block; font-size: 13px; font-weight: 600; color: var(--tinta-2); margin-bottom: 6px; }
.campo .opcional { color: var(--cinza-3); font-weight: 500; }
.campo input,
.campo textarea {
    width: 100%; border: 1.5px solid var(--campo); border-radius: 12px;
    padding: 0 14px; font-family: inherit; font-size: 16px; color: var(--tinta);
    background: #fff; outline: none; transition: border-color var(--transicao), box-shadow var(--transicao);
}
.campo input { height: 52px; }
.campo textarea { padding: 12px 14px; resize: vertical; min-height: 92px; }
.campo input:focus,
.campo textarea:focus { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(2, 31, 75, .12); }
.campo--erro input,
.campo--erro textarea { border-color: #E0A38A; }
.campo__erro { display: flex; align-items: center; gap: 6px; margin-top: 7px; color: #C2410C; font-size: 13px; font-weight: 600; }

.consent { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 14px; cursor: pointer; }
.consent input { width: 20px; height: 20px; flex: none; margin-top: 1px; accent-color: var(--laranja); cursor: pointer; }
.consent span { font-size: 13px; line-height: 1.45; color: var(--tinta-2); }
.consent a { color: var(--laranja); font-weight: 600; text-decoration: none; }
.consent a:hover { text-decoration: underline; }

.form-nota { margin: 12px 0 0; font-size: 12.5px; color: var(--cinza-3); text-align: center; }

.enviado { text-align: center; padding: 24px 8px; }
.enviado__ic { width: 64px; height: 64px; border-radius: 50%; background: var(--ok); display: flex; align-items: center; justify-content: center; margin: 0 auto 18px; color: #fff; }
.enviado h3 { margin: 0 0 8px; font-size: 22px; font-weight: 800; color: var(--azul); }
.enviado p { margin: 0; font-size: 16px; line-height: 1.5; color: var(--cinza); }

/* ----- Canais (coluna ao lado do form) ----- */
.canais-titulo { font-size: 15px; font-weight: 700; color: var(--azul); margin-bottom: 14px; }
.horario { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding: 13px 15px; background: #fff; border: 1px dashed var(--campo); border-radius: 13px; color: var(--cinza); }
.horario span:last-child { font-size: 14px; font-weight: 500; }

/* ----- Seção morador ----- */
.morador-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(20px, 3vw, 28px); align-items: stretch; }
.card-portal { position: relative; overflow: hidden; background: linear-gradient(120deg, var(--azul), var(--azul-2)); border-radius: 24px; padding: clamp(28px, 3.5vw, 40px); color: #fff; display: flex; flex-direction: column; }
.card-portal__glow { position: absolute; right: -40px; top: -40px; width: 200px; height: 200px; border-radius: 50%; background: rgba(255, 94, 16, .14); pointer-events: none; }
.card-portal__inner { position: relative; display: flex; flex-direction: column; height: 100%; }
.card-portal__ic { display: inline-flex; width: 48px; height: 48px; border-radius: 13px; background: rgba(255, 255, 255, .12); align-items: center; justify-content: center; margin-bottom: 16px; }
.card-portal h3 { margin: 0 0 10px; font-size: clamp(22px, 2.8vw, 28px); font-weight: 800; color: #fff; }
.card-portal p { margin: 0 0 24px; font-size: 16px; line-height: 1.55; color: rgba(255, 255, 255, .82); flex: 1; }

.card-assist { background: #fff; border: 1px solid var(--linha); border-radius: 24px; padding: clamp(28px, 3.5vw, 40px); display: flex; flex-direction: column; }
.card-assist__ic { display: inline-flex; width: 48px; height: 48px; border-radius: 13px; background: rgba(2, 31, 75, .07); align-items: center; justify-content: center; color: var(--azul); margin-bottom: 16px; }
.card-assist h3 { margin: 0 0 10px; font-size: clamp(22px, 2.8vw, 28px); font-weight: 800; color: var(--azul); }
.card-assist > p { margin: 0 0 22px; font-size: 16px; line-height: 1.55; color: var(--cinza); flex: 1; }
.assist-linha { display: flex; align-items: center; gap: 13px; padding: 14px 15px; border-radius: 14px; background: var(--fundo); border: 1px solid var(--linha); color: var(--azul); text-decoration: none; margin-bottom: 12px; }
.assist-linha:last-child { margin-bottom: 0; }
.assist-linha__ic { width: 40px; height: 40px; border-radius: 11px; background: #fff; border: 1px solid var(--linha); display: flex; align-items: center; justify-content: center; flex: none; }
.assist-linha__rotulo { display: block; font-size: 12.5px; color: var(--cinza-2); font-weight: 600; }
.assist-linha__valor { display: block; font-size: 15.5px; font-weight: 700; word-break: break-word; }

/* ----- Localização ----- */
.local2-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 22px; align-items: stretch; }
.local2-map { border-radius: 22px; overflow: hidden; border: 1px solid var(--linha); min-height: 340px; }
.local2-map iframe { width: 100%; height: 100%; min-height: 340px; border: 0; display: block; }
.local2-card { background: var(--fundo); border: 1px solid var(--linha); border-radius: 22px; padding: clamp(24px, 3vw, 34px); display: flex; flex-direction: column; justify-content: center; }
.local2-card__ic { display: inline-flex; width: 46px; height: 46px; border-radius: 13px; background: rgba(255, 94, 16, .1); align-items: center; justify-content: center; color: var(--laranja); margin-bottom: 16px; }
.local2-card h3 { margin: 0 0 6px; font-size: 20px; font-weight: 700; color: var(--azul); }
.local2-card > p { margin: 0 0 20px; font-size: 16px; line-height: 1.5; color: var(--cinza); }
.local2-lista { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.local2-item { display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--tinta-2); font-weight: 500; }
.local2-item__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--laranja); flex: none; }
.btn-chegar { display: inline-flex; align-items: center; gap: 8px; height: 50px; padding: 0 20px; border-radius: 13px; background: var(--azul); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; align-self: flex-start; transition: background var(--transicao); }
.btn-chegar:hover { background: var(--azul-2); }

/* ----- Atendimento / Assistência técnica ----- */
.assist-subtitulo { margin: 0 0 14px; font-size: 14px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--azul); }
.assist-subtitulo--tight { margin-top: 34px; }
.assist-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(258px, 1fr)); gap: 14px; }
.assist-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--linha); border-radius: 16px; padding: 18px; transition: border-color var(--transicao), box-shadow var(--transicao), transform var(--transicao); }
.assist-card:hover { border-color: var(--laranja); box-shadow: 0 12px 28px rgba(2, 31, 75, .08); transform: translateY(-2px); }
.assist-card__ic { display: inline-flex; width: 42px; height: 42px; border-radius: 11px; background: rgba(255, 94, 16, .1); align-items: center; justify-content: center; color: var(--laranja); margin-bottom: 12px; }
.assist-card__nome { font-size: 16px; font-weight: 800; color: var(--azul); margin-bottom: 8px; }
.assist-card__linha { display: block; font-size: 14.5px; font-weight: 600; color: var(--tinta-2); text-decoration: none; word-break: break-word; line-height: 1.55; }
.assist-card__linha:hover { color: var(--laranja); }
