body {
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Garante que o body tenha pelo menos a altura da tela */
    margin: 0;
    padding: 0;
}

#content {
    flex-grow: 1; /* Permite que o #content ocupe todo o espaço disponível */
    padding-bottom: 50px; /* Adiciona um espaço extra na parte inferior */
}

/* Garante que o footer sempre fique no final do body */
footer {
    width: 100%;
    margin-top: auto; /* Empurra o rodapé para o final do contêiner flex */
}
    
    /* Estilos básicos para o formulário */
    #content {
        flex-grow: 1; /* Permite que o #content ocupe todo o espaço disponível */
        max-width: 700px;
        margin: 0 auto;
        padding: 20px 0 30px;
        font-family: Arial, sans-serif;
    }
    
    #formulario .form-group {
        /* Esconde todos os grupos de perguntas por padrão */
        display: none;
        flex-direction: column;
        gap: 0;
        border: 1px solid #ddd;
        padding: 25px;
        border-radius: 8px;
        margin-bottom: 20px;
        background-color: #f9f9f9;
    }
    
    /* Mostra apenas o grupo com a classe 'visible' */
    #formulario .form-group.visible {
        display: flex;
        animation: fadeIn 0.8s ease-in-out;
    }
    
    #formulario textarea {
        resize: vertical;
        min-height: 100px;
    }
    
    /* Estilo para o botão "Próximo" e "Enviar" */
    .next-button,
    #botaoSubmit button {
        background-color: #993399;
        color: white;
        padding: 12px 25px;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        font-size: 16px;
        margin-top: 10px;
        align-self: flex-start; /* Alinha o botão à esquerda dentro do flex container */
        transition: background-color 0.3s;
    }
    
    .next-button:hover,
    #botaoSubmit button:hover {
        background-color: #662266;
    }
    
    /* Adiciona borda vermelha em campos inválidos */
    .invalid {
        border-color: #ff0000 !important;
    }
    
    /* Animação para a transição do grupo */
    @keyframes fadeIn {
        from {
            opacity: 0;
            transform: translateY(20px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    footer {
        width: 100%;
        margin-top: auto; /* Empurra o rodapé para o final do contêiner flex */
    }

    input, textarea {
      margin: 0 0 25px 0;
      background: rgba(252,252,252,0.5);
      color: #993399;
      width: 100%;
      padding: 12px;
      font-size: 16px;
      border: none;
      border: 2px solid #f2f2f2;
      border-radius: 5px;
      transition: border-color 0.3s;
      box-sizing: border-box; 
    }

    input:focus, textarea:focus {
      background:transparent;
      outline: none;
      border: none;
      border: 2px solid #fff;
    }

    label {
      color: #993399;
      font-weight: 500;
      display: block;
      text-align: left;
      margin-bottom: 5px;
    }

    button {
      background-color: #e066ff;
      color: white;
      border: none;
      padding: 12px 24px;
      font-size: 16px;
      border-radius: 8px;
      cursor: pointer;
      transition: background 0.3s;
    }

    button:hover {
      background-color: #c850e0;
    }

    .checkbox-group {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
      margin-top: 15px;
    }

    .checkbox-group label {
      color: #8e44ad;
      margin-left: 1.5em;
      background-color: rgba(255,255,255,0.5);
      padding: 7px 14px;
      border-radius: 5px;
      border: 2px solid #db4dff;
      cursor: pointer;
      transition: background 0.3s, border-color 0.3s;
      display: block;
      width: 95%;
    }

    .checkbox-group input[type="checkbox"] {
      display: none;
    }

    .checkbox-group input[type="checkbox"]:checked + label,
    .checkbox-group label:hover {
      color: white;
      border-color: #e066ff;
      background-color: #e066ff;
    }

    .checkbox-group label {
        margin-bottom: 3px;
    }
    
    .erro {
      color: #e6005c;
      font-size: 14px;
      margin-left: 5px;
      text-align: left;
      font-style: italic;
      margin-top: -20px;
      margin-bottom: 15px;      
    }

    @media (min-width: 680px) {
    .justify-content-center {
        margin-top: 130px !important;
    }
    }
    @media (max-width: 680px) {
    #content {
      margin: 0;
      min-height: 60vh;
      padding: 0;
    }        
    form {
        padding: 15px;
        height: 400px;
        max-width: 98%;
    }
    #formulario {
        margin-top:30px;
        padding:0
    }
    #home {
        padding: 120px 20px 10px;
        min-height: 110vh;
    } 
    #formulario .form-group {
        /* Esconde todos os grupos de perguntas por padrão */
        display: none;
        flex-direction: column;
        gap: 0;
        border: 1px solid #ddd;
        padding: 20px;
        border-radius: 8px;
        margin-bottom: 20px;
        background-color: #f9f9f9;
    }    
    input, textarea {
      margin-left: 0;
    }
    .checkbox-group label {
      margin-left: 0;
    }
    label {
      font-size:15px !important;
      color: #993399;
      font-weight: 500;
      display: block;
      text-align: left;
      margin-bottom: 5px;
    }    
    .h3, h3 {
        font-size: 1.3em !important;
        margin-bottom:10px !important;
    }
    ::placeholder {
      font-family: 'Raleway', sans-serif;
      color: #c653c6;
      opacity: 1; /* Firefox */
      font-size: 14px;
    }    
    }


    ::placeholder {
      font-family: 'Raleway', sans-serif;
      color: #c653c6;
      opacity: 1; /* Firefox */
    }
    
    ::-ms-input-placeholder { /* Edge 12 -18 */
      color: #c653c6;
    }
    .subtitulo {
      float:left;
      margin-left:2.5em;
      font-size: 14px;
      color: #c653c6;
      margin-bottom: 5px;
    }
    
  .checkbox-group {
    max-height: none;
    display: flex;
    flex-direction: column;
    gap: 5px;
  }

  #grupo7 {
    overflow: visible;
  }

  .form-group {
    margin-bottom: 20px;
  }

  .visible {
    display: block;
  }

  .slide-up-out {
    animation: slideUp 0.8s forwards;
  }

  @keyframes slideUp {
    0% { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-20px); }
  }
