body { }

body.forms-template {
  
  background: #F3F3FE;

  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;


  .h1, h1 {
    font-size: calc(1rem + 1.5vw);
    margin-bottom: 1.5rem;
  }
  @media (min-width: 1200px) {
    .h1, h1 {
      font-size: 2rem;
    }
  }



}




.featherlight {
  background: rgba(0,0,0,0.8) !important;
}
.featherlight-content {
  padding: 20px !important;
  border-radius: 10px;
  border-bottom: 0 !important;
}


section.form {

  background: white;
  border-radius: 24px;
  box-shadow: 0 4px 4px rgba(87, 100, 126, .21);
  max-width: 700px;
  width: 100%;
  margin: 72px auto;
  display: flex;
  flex-direction: column;
  gap: 32px;

  padding: 15px;
  @media (min-width: 576px) {
    padding: 30px;
  }
  @media (min-width: 768px) {
    padding: 40px;
  }

  .logo {
    img {
      max-width: 100%;
      padding-bottom: 32px;
    }
  }

  .intro {
    > *:last-child {
      margin-bottom: 0;
    }
  }

  .elements {

    display: flex;
    flex-direction: column;
    gap: 32px;

    h3 {
      margin-bottom: 0;
    }

    .element {

      position: relative;

      * { 
        position: relative;
        z-index: 1; 
      }

      .form-label {
        display: block;
        font-weight: 500;
      }

      &.date {
        input {
          display: inline-block;
          width: auto;
        }
      }
      &.sectionopen {
        @media (min-width: 768px) {
          .row .element {
            flex: 1 0 0%;
          }
        }
      }
      &.submit {
        text-align: center;
      }
      &.signature {
        button {
          background-color: #016938;
          border-color: #016938;
          min-width: 80px;
          color: #fff;
          font-size: 14px;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          height: 2em;
          border-radius: 4px;
          border: 1px solid;
          float: right;
        }
        button:hover {
          background-color: #01502b;
          border-color: #01502b;
        }
      }

    }

    .element:has(input:focus):before,
    .element:has(textarea:focus):before {
      position: absolute;
      content: '';
      width: calc(100% + 32px);
      height: calc(100% + 32px);
      background: #f1f5ff;
      z-index: 0;
      left: -16px;
      top: -16px;
    }
    .element {
      /* remove focus background from sub-elements */
      .element:has(input:focus):before {
        display: none;
      }
    }

    .element.element-error:before {
      position: absolute;
      content: '';
      width: calc(100% + 32px);
      height: calc(100% + 32px);
      background: #f8d7da !important;
      border-bottom: 2px solid white;
      z-index: 0;
      left: -16px;
      top: -16px;
    }    

  }


  .form-check input,
  .form-check label {
    cursor: pointer;
  }

  em.req {
    color: red;
    font-weight: 500;
  }

  hr { 
    margin: 0;
  }

  input[type=submit] {
    background-color: #016938;
    border-color: #016938;
    min-width: 180px;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3em;
    border-radius: 4px;
    border: 1px solid;
  }
  input[type=submit]:hover {
    background-color: #01502b;
    border-color: #01502b;
  }

  progress {
    width: 100%;
    height: 5px;
    border: none; /* Remove default border */
    background-color: #e0e0e0; /* Background for the progress bar */
    border-radius: 10px;
    overflow: hidden; /* Ensures rounded corners apply */
  }

  /* Style the value (the filled portion of the progress bar) */
  progress::-webkit-progress-value {
      background-color: #016938; /* Green */
      transition: width 0.2s; /* Smooth animation */
  }

  progress::-moz-progress-bar {
      background-color: #016938; /* Green for Firefox */
      transition: width 0.2s;
  }

  /* Style the remaining part of the bar */
  progress::-webkit-progress-bar {
      background-color: #e0e0e0; /* Light gray */
  }

}



@media (max-width: 575px) {
  .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    padding-left: 0;
    padding-right: 0;
  }
  section.form {
    border-radius: 0;
    padding: 40px 15px;
  }
}
