* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; overflow-x: hidden; }
main { display: block; }

@font-face {
  font-family: 'Neulis Neue';
  src: url('1x/neulis-neue.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

.full-image {
  width: 100%;
  display: block;
  background: white;
  position: relative;
}

/* Hero com background ancorado à direita */
.hero {
  background-image: url('1x/banner.png');
  background-repeat: no-repeat;
  background-size: auto 100%; /* não corta verticalmente; ajusta à altura do conteúdo */
  background-position: right center; /* ancora à direita; se cortar, corta à esquerda */
}

/* Apenas a imagem de fundo da seção comum */
.full-image > img {
  width: 100%;
  height: auto;
  display: block;
}

img { vertical-align: middle; }

/* Visibilidade padrão para elementos específicos de breakpoint */
.mobile-only { display: none !important; }
.desktop-only { display: block !important; }
.lateral-center .mobile-only { display: none !important; }
.lateral-center .desktop-only { display: block !important; }

/* Bloco de conteúdo do hero alinhado à esquerda, sem absoluto, para altura natural */
.overlay-left {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  z-index: 1;
  padding: 5rem 5rem 5rem 5rem;
}

.overlay-left img {
  width: auto;
  height: auto;
  max-width: min(90vw, 560px);
  display: block;
}

.buttons-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.buttons-row img {
  max-width: calc((min(90vw, 560px) - 12px) / 2);
  height: auto;
  display: block;
}

/* ===== Seção de Formulário (Seção 2) ===== */
.section-forms {
  background-image: url('1x/segundasecao.png');
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: right center;
}

.forms-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center;
  padding: 24px 6% 24px 6%;
}

.forms-left img {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
}

.forms-right { display: flex; justify-content: flex-end; }

.form-card {
  background: #fff;
  border-radius: 24px;
  padding: 16px;
  width: min(560px, 100%);
  min-height: 360px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.form-title {
  margin: 0 0 12px 0;
  font-family: 'Neulis Neue', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: #FB9F29;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.2;
  text-align: center;
  font-weight: 700;
}

.form-card iframe { border: none; width: 100%; height: 60vh; display: block; }

/* ===== Seção de Contato ===== */
.contact {
  background-image: url('1x/fundocontato.png');
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: right center;
}

.contact-layout {
  display: block;
  padding: 10% 6% 10% 6%;
}

.contact-left img { width: auto; height: auto; max-width: min(90vw, 520px); display: block; }

/* botão de contato menor e com mais espaçamento do texto acima */
.contact-left img:last-child {
  max-width: clamp(140px, 28vw, 260px);
  margin-top: 20px;
}

/* ===== Seção Lateral (final) ===== */
.lateral {
  background-image: url('1x/fundolateral.png');
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: center center;
}

.lateral-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 24px 6%;
}

.lateral-center img { width: auto; height: auto; max-width: min(90vw, 560px); display: block; }

/* até 600px */
@media (max-width: 600px) {
  .overlay-left img { max-width: 78vw !important; }
  .overlay-left .mobile-only { display: block !important; max-width: 50vw !important; }
  .overlay-left { padding: 3rem 3rem 3rem 3rem !important; }
  .buttons-row { gap: 10px; flex-direction: column; }
  .buttons-row img { max-width: 38vw !important; }
  .hero { background-image: url('1x/fundomobile1.png') !important; background-repeat: no-repeat; background-size: contain; background-position: left center; min-height: 120svh; }

  .forms-layout { grid-template-columns: 1fr; gap: 16px; padding: 3rem !important; max-width: 100%; box-sizing: border-box; }
  .forms-left img { width: 100% !important; max-width: 100% !important; }
  .forms-right { justify-content: center !important; }
  .form-card { width: 100%; max-width: 520px; margin: 0 auto; box-sizing: border-box; }
  .form-card iframe { height: 50vh; }

  /* Contact: fundo mobile e conteúdo contido no padding */
  .contact { 
    background: transparent !important;
    background-image: url('1x/contactmobile.png') !important; 
    background-repeat: no-repeat !important; 
    background-size: cover !important; 
    background-position: center top !important;
    min-height: 120svh;
  }
  .contact::before { content: none !important; }
  .contact-layout { 
    display: block !important; 
    padding: 3.5rem 3.5rem 3.5rem 3.5rem; 
    width: 100%;
    max-width: 100%;
    box-sizing: border-box; 
    margin: 0 auto;
    overflow: hidden;
  }
  .contact-left img { width: 100% !important; max-width: 100% !important; height: auto; display: block; }
  .contact-left img:last-child { max-width: clamp(120px, 50vw, 200px) !important; }

  /* Full-image genérica (ex.: Seção 3) usa background mobile */
  .full-image:not(.hero):not(.section-forms):not(.contact):not(.lateral) {
    background-image: url('1x/fullimagemobile.png') !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center center !important;
    min-height: 100svh;
  }
  .full-image:not(.hero):not(.section-forms):not(.contact):not(.lateral) > img { display: none !important; }

  /* Última seção (lateral) - evitar estouro e manter imagem completa */
  .lateral {
    background-image: url('1x/fundoultimasecao.png') !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    background-position: center center !important;
    --lateral-mobile-aspect: 0.5625;
    min-height: calc(100vw / var(--lateral-mobile-aspect));
    height: auto;
    display: flex; align-items: center; justify-content: center;
    padding: 3.5rem;
    box-sizing: border-box;
  }
  .lateral-center { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; width: 100%; max-width: 100%; box-sizing: border-box; }
  .lateral-center .desktop-only { display: none !important; }
  .lateral-center .mobile-only { display: block !important; width: 100%; max-width: 100%; height: auto; }
  .lateral-center a img { max-width: clamp(140px, 50vw, 240px); height: auto; }
}

/* até 1000px */
@media (max-width: 1000px) {
  .hero { background-image: url('1x/fundomobile.png'); background-size: auto 100%; background-position: right center; }
  .overlay-left { padding: 2rem 2rem 2rem 2rem; }
  .overlay-left img { max-width: min(92vw, 520px); }
  .buttons-row img { max-width: calc((min(92vw, 520px) - 12px) / 2); }

  .forms-layout { padding: 20px 6% 20px 6%; }

  .contact { background: #fff; }
}

/* grandes telas: preencher totalmente com zoom (cover) */
@media (min-width: 1001px) {
  .hero {
    background-size: cover;
    background-position: right center;
    min-height: 100vh;
  }
  
  .section-forms,
  .contact,
  .lateral {
    background-size: cover;
    background-position: right center;
  }
}
