body, html {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
   width: 100%;
   height: 100%;
   overflow: hidden;
   display: flex;
   justify-content: center;
   align-items: center; 
   background-color: #FFF;
   color: #111;
   user-select: none;
   min-width: 320px;
   min-height: 545px;
}

a {
   color: #000;
   text-decoration: none;
}

a:hover { 
   text-decoration: underline;
}

input:required:invalid, 
select:required:invalid {
   box-shadow: none;
   outline: none;
   border: none;
}

input:required:invalid {
   box-shadow: none;
}

.poppins-regular {
   font-family: "Poppins", sans-serif;
   font-weight: 400;
   font-style: normal;
}

.poppins-medium {
   font-family: "Poppins", sans-serif;
   font-weight: 500;
   font-style: normal;
}

.poppins-bold {
   font-family: "Poppins", sans-serif;
   font-weight: 700;
   font-style: normal;
}

.parallax-container {
   box-sizing: border-box;
   position: relative;
   width: 100vw;
   max-height: 100%;
   min-height: 545px;
   aspect-ratio: 16 / 9;
   overflow: hidden;
   background-color: #fff;
}

.layer {
   position: absolute;
   top: -10%; 
   left: -10%; 
   width: 120%; 
   height: 120%; 
   background-size: contain;
   background-position: center;
   background-repeat: no-repeat;
   pointer-events: none;
   transition: transform 0.1s ease-out;
}

#background { 
   background-image: url('../../assets/i/background.svg'); 
   z-index: 1; 
}

#person { 
   background-image: url('../../assets/i/person.svg'); 
   z-index: 3; 
}

.phone {
   position: absolute;
   top: 5%;
   right: 3%;
   font-size: clamp(12px, 1.2vw, 20px);
}

.phoneUrl {
   text-decoration: none;
   transition: all 0.1s;
}

.phoneUrl:hover {
   text-decoration: none;
   color: #111;
}

.logo {
   display: block;
   position: absolute;
   top: 5%;
   left: 3%;
   z-index: 2;
   width: 16%;
   aspect-ratio: 16 / 9;
   height: auto;
   background-image: url('../../assets/i/logo-encjo.svg'); 
   background-size: contain;
   background-position: center;
   background-repeat: no-repeat;
}

.bottom-text {
   position: absolute;
   bottom: 5%;
   left: 3%;
   right: 40%;
   font-size: clamp(12px, 1vw, 20px);
}

.lead-text {
   display: block;
   font-size: clamp(28px, 2.8vw, 46px);
   margin-bottom: 4vh;
   max-width: 42%;
   line-height: 1.2em;
}

.orange {
   color: #ec9242;
}

.form-container {
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
   align-items: center; 
   position: absolute;
   left: 30%;
   bottom: 35%;
   background-color: #213b86;
   padding: 2.1vh 2.4vh 2.7vh 2.4svh;
   border-radius: 20px;
   width: 27%;
   color: white;
   font-family: sans-serif;
   z-index: 2;
   max-height: 518px;
}

.form-head {
   color: #FFF;
   line-height: 1.4em;
   font-size: clamp(16px, 1.6vw, 42px);
   margin-bottom: 1.6vh;
   margin-bottom: 2vh;
}

input, select {
   width: 100%;
   padding: 0.8vw 1.4vw;
   border: none;
   border-radius: 30px;
   box-sizing: border-box;
   font-size: 0.9em;
   border: 0;
   outline: 0;
}

select {
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
   background-color: #FFF;
   cursor: pointer;
}

select::-ms-expand {
   display: none;
}

button {
   width: 100%;
   padding: 0.7vw;
   background-color: white;
   color: #213b86;
   border: none;
   border-radius: 25px;
   font-weight: bold;
   cursor: pointer;
   margin-top: auto;
   font-size: clamp(15px, 0.4vw, 26px);
   margin-top: auto;
}

input:invalid { 
   border: 2px solid #ffcccc;
}

#enrollmentForm {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center; 
   gap: 2.5vh;
   box-sizing: border-box;
   width: calc(100% - 4px);
   flex: 1;
}

.socialmedia-container {
   display: flex;
   flex-direction: row;
   flex-wrap: nowrap;
   justify-content: flex-start;
   align-items: center; 
   gap: 1.2vh;
   margin: 1vh 0 4vh 0;
}

.socialmedia-head {
   display: block;
}

.socialmedia {
   display: inline-block;
   width: 2.8em;
   height: 2.8em;
   border-radius: 100%;
   background-size: 80%;
   background-position: center;
   background-repeat: no-repeat;
   transition: background-color 0.1s linear;
}

.socialmedia:hover {
   background-color: #DADADA;
}

.yt {
   background-image: url('../../assets/i/logo-youtube.svg'); 
}

.fb {
   background-image: url('../../assets/i/logo-facebook.svg'); 
}

.tt {
   background-image: url('../../assets/i/logo-tiktok.svg'); 
}

.in {
   background-image: url('../../assets/i/logo-instagram.svg'); 
}

.bottom-text-mobile {
   display: none;
}

.modalForm {
   position: absolute;
   top: 0;
   left: 0;
   bottom: 0;
   right: 0;
   background-color: #000000AA;
   z-index: 100;
   display: flex;
   justify-content: center;
   align-items: center; 
   backdrop-filter: blur(10px);
}

.modalFormItem {
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
   align-items: center; 
   position: absolute;
   gap: 20px;
   padding: 40px;
   box-sizing: border-box;
   width: 320px;
   background-color: #FFF;
   max-width: calc(100% - 40px);
   max-height: calc(100% - 40px);
   border-radius: 20px;
   box-shadow: 0px 0px 20px 5px rgba(0, 0, 0, 0.5);
   -webkit-box-shadow: 0px 0px 20px 5px rgba(0, 0, 0, 0.3);
   position: relative;
}

.thanks-person {
   width: 128px;
   height: 128px;
   border-radius: 100%;
   border: 3px solid #ec9242;
}

.mfiText {
   font-size: 20px;
   text-align: center;
}

.mfiTextSmall {
   text-align: center;
   font-size: 14px;
}

.mfiClose {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center; 
   position: absolute;
   top: -15px;
   right: -15px;
   z-index: 101;
   width: 42px;
   height: 42px;
   font-size: 40px;
   color: #FFF;
   user-select: none;
   cursor: pointer;
   border-radius: 100%;
   background-color: #ec9242;
   transition: all 0.1s ease-in-out;
}

.mfiClose:hover {
   transform: scale(1.15);
}

@media (max-width: 860px) {
   body, html {
      overflow-y: auto;
      flex-direction: column;
      width: initial;
      height: initial;
   }

   .parallax-container {
      width: 100vw;
      height: calc(100vh - 200px);
      aspect-ratio: initial;
      min-width: 300px;
      border-bottom: 1px solid #d7d7d7;
   }

   .logo {
      top: 12px;
      left: 15px;
      width: 150px;
   }

   .phone {
      top: 14px;
      right: 15px;
      text-align: right;
      font-size: clamp(16px, 1vw, 20px);
      width: 180px;
   }

   .lead-text {
      display: block;
      font-size: clamp(24px, 2.8vw, 44px);
      margin-bottom: 2vh;
      max-width: 100%;
      line-height: 1.2em;
   }

   .socialmedia-container {
      margin: 1vh 0 2vh 0;
   }

   .layer {
      background-size: auto 80%;
      background-position: bottom 10% right 25%;
   }

   .form-container {
      box-sizing: border-box;
      position: absolute;
      left: 4%;
      top: 110px;
      right: initial;
      bottom: initial;
      aspect-ratio: unset;
      height: auto;
      min-height: auto;
      background-color: #213b86;
      padding: 25px 25px 30px 25px;
      border-radius: 20px;
      width: 50%;
   }

   .bottom-text {
      display: none;
   }

   .bottom-text-mobile {
      display: block;
      padding: 20px;
      font-size: clamp(12px, 1vw, 20px);
   }

   input, select {
      padding: 10px 16px;
   }

   button {
      padding: 10px 20px;
      width: initial;
   }
}

@media (max-width: 579px) {
   .form-container {
      width: 280px;
   }
}

@media (max-width: 860px) and (max-height: 940px) {
   .layer {
      background-size: auto 70%;
      background-position: bottom 10% right 22%;
   }
   .bottom-text-long {
      display: block;
   }
}

@media (max-width: 860px) and (max-height: 844px) {
   .layer {
      background-size: auto 68%;
      background-position: bottom 10% right 25%;
   }
   .parallax-container {
      width: 100vw;
      height: calc(100vh - 140px);
   }

}

@media (max-width: 860px) and (max-height: 740px) {
   .layer {
      background-size: auto 60%;
      background-position: bottom 10% right 25%;
   }
}

.hide {
   display: none;
}