/* Página de contato: estilos isolados para não alterar a landing page ou os guias. */
.contact-page .contact-hero {
  padding: calc(var(--header-height) + clamp(48px, 6vw, 90px)) 0 clamp(48px, 6vw, 76px);
  background: linear-gradient(115deg, #ffffff 0%, #fffdf8 65%, #f7f2ea 100%);
  border-bottom: 1px solid var(--color-border);
}

.contact-page .contact-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.55fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: end;
}

.contact-page .contact-hero h1 {
  font-size: clamp(2.8rem, 5.6vw, 5.5rem);
  line-height: 1.05;
  letter-spacing: -0.065em;
  margin: 0 0 20px;
  overflow-wrap: break-word;
}

.contact-page .contact-hero p {
  max-width: 800px;
  color: var(--color-muted);
  font-size: clamp(1.05rem, 1.5vw, 1.22rem);
  line-height: 1.68;
  margin-bottom: 0;
}

.contact-page .contact-hero-note {
  padding: 22px 24px;
  border-left: 4px solid var(--color-gold);
  background: #f7f2ea;
  border-radius: 0 16px 16px 0;
  color: var(--color-dark);
  box-shadow: 0 8px 30px rgba(23, 23, 23, 0.04);
}

.contact-page .contact-hero-note strong,
.contact-page .contact-hero-note span {
  display: block;
}
.contact-page .contact-hero-note strong { font-weight: 820; }
.contact-page .contact-hero-note span { color: var(--color-muted); margin-top: 3px; }

.contact-page .contact-section {
  padding-top: clamp(56px, 7vw, 108px);
  padding-bottom: clamp(70px, 8vw, 118px);
  scroll-margin-top: calc(var(--header-height) + 16px);
}

.contact-page .contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.87fr) minmax(0, 1.13fr);
  align-items: start;
  gap: clamp(32px, 5vw, 76px);
}

.contact-page .contact-aside {
  min-width: 0;
}

.contact-page .contact-aside h2 {
  font-size: clamp(1.85rem, 3.15vw, 3.2rem);
  line-height: 1.13;
  letter-spacing: -0.055em;
  margin-bottom: 20px;
  overflow-wrap: anywhere;
}

.contact-page .contact-aside p,
.contact-page .contact-checklist {
  color: var(--color-muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

.contact-page .contact-checklist {
  padding-left: 1.3rem;
  margin: 24px 0 0;
}
.contact-page .contact-checklist li { padding-left: 4px; margin-bottom: 12px; }

.contact-page .contact-form {
  min-width: 0;
  padding: clamp(22px, 3.3vw, 40px);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow-card);
}

.contact-page .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.contact-page .form-field {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 8px;
  margin-bottom: 20px;
}

.contact-page .form-field > span {
  display: block;
  color: var(--color-dark);
  font-size: 0.9rem;
  font-weight: 750;
}

.contact-page .form-field em {
  color: var(--color-gold-dark);
  font-style: normal;
}

.contact-page .form-field input,
.contact-page .form-field textarea {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid #cfc7bb;
  border-radius: 12px;
  background: #fff;
  color: var(--color-text);
  line-height: 1.5;
  font-size: 1rem;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.contact-page .form-field input { min-height: 50px; }
.contact-page .form-field textarea {
  min-height: 174px;
  resize: vertical;
}
.contact-page .form-field input::placeholder,
.contact-page .form-field textarea::placeholder { color: #817d77; }

.contact-page .form-field input:focus,
.contact-page .form-field textarea:focus {
  outline: 0;
  border-color: var(--color-gold-dark);
  box-shadow: 0 0 0 3px rgba(178, 145, 89, 0.18);
}

.contact-page .form-field [aria-invalid="true"] {
  border-color: #b83b3b;
  box-shadow: 0 0 0 2px rgba(184, 59, 59, 0.09);
}

.contact-page .field-error {
  color: #a52525;
  font-size: 0.84rem;
  line-height: 1.45;
}
.contact-page .field-error:empty { display: none; }

/* Armadilha para robôs: oculta para pessoas e leitores de tela. */
.contact-page .form-trap {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.contact-page .form-status {
  padding: 15px 18px;
  margin: 0 0 24px;
  border-radius: 12px;
  border: 1px solid transparent;
  font-size: 0.95rem;
  line-height: 1.6;
  font-weight: 640;
}
.contact-page .form-status[hidden] { display: none !important; }
.contact-page .form-status.is-success {
  color: #155533;
  background: #edf8f0;
  border-color: #afdfbd;
}
.contact-page .form-status.is-error {
  color: #8b2525;
  background: #fff0ed;
  border-color: #e8bbb4;
}

.contact-page .recaptcha-wrap {
  max-width: 100%;
  overflow-x: auto;
  margin: 6px 0 24px;
  padding-bottom: 3px;
}

.contact-page .privacy-note {
  font-size: 0.85rem;
  line-height: 1.7;
  color: var(--color-muted);
  margin: 0;
}

.contact-page .privacy-note a {
  color: var(--color-gold-dark);
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-page .contact-actions {
  align-items: center;
  margin-top: 26px;
}

.contact-page [data-contact-submit]:disabled {
  opacity: .7;
  cursor: wait;
}

@media (max-width: 960px) {
  .contact-page .contact-hero-inner,
  .contact-page .contact-layout { grid-template-columns: 1fr; }
  .contact-page .contact-hero-note { max-width: 550px; }
}

@media (max-width: 620px) {
  .contact-page .contact-hero {
    padding-top: calc(var(--header-height) + 38px);
    padding-bottom: 46px;
  }
  .contact-page .contact-hero h1 {
    font-size: clamp(2.5rem, 12vw, 4rem);
  }
  .contact-page .contact-section { padding-top: 52px; }
  .contact-page .form-grid { grid-template-columns: 1fr; gap: 0; }
  .contact-page .contact-form { border-radius: 22px; padding: 22px 18px; }
  .contact-page .contact-aside h2 { font-size: clamp(2rem, 9vw, 2.7rem); }
  .contact-page .contact-actions { align-items: stretch; }
}
