@import url("https://fonts.googleapis.com/css?family=Open+Sans|Roboto:400,700&display=swap");

/*==================== My Variables ===================*/
:root {
  --main-color: #005500;
  --main-color-light: #008800;
  --main-color-transparent: #77fa77;
  --second-color: #00aadf;
  --text-color: #fafafa;
  --text-color-alt: #333;
  
  --primary-ff: "Roboto", sans-serif;
  --secondary-ff: "Open Sans", sans-serif;
  --h1-fs: 2.5rem;
  --h2-fs: 2rem;
  --h3-fs: 1.5rem;
  --h4-fs: 1.3rem;
  --text-fs: 1.2rem;
  --normal-fs: 1rem;


  --light-shadow: 0 0 10px rgba(0, 0, 0, 0.6);
  --dark-shadow: 0 0 15px rgba(0, 0, 0, 0.8);
}
/*=================== Global Styles ===================*/
html{
    scroll-behavior: smooth;
}
*, ::before, ::after{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
  font-family: var(--secondary-ff);
  background-color: #e5e5e5;
}
ul {
  list-style-type: none;
}
a {
  text-decoration: none;
}
img{
  width: 100%;
}
/*===================== Utilities =====================*/
.grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.flex{
  display: flex;
  flex-wrap: wrap;
}
.container{
  padding: 3% 5%;
}
.logo {
  width: 7rem;
}
.section-title{
  text-align: center;
  font-size: var(--h1-fs);
  margin-bottom: 1.5rem;
}
.section-subtitle{
  text-align: center;
  font-size: var(--h2-fs);
  margin-bottom: 1rem;
}
.btn{
  display: block;
  width: fit-content;
  padding: .6rem 1rem;
  background-color: var(--main-color);
  color: var(--text-color);
  border-radius: .4rem;
  transition: .6s;
}
.btn:hover{
  color: var(--second-color);
  background-color: var(--main-color-light);
}
.primary-btn{
  margin: .8rem auto;
}
.text-center{
  text-align: center;
}

/*====================== Header ======================*/
header.grid{
  padding: 14px 12px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  background: var(--main-color);
  box-shadow: var(--dark-shadow);
}
header .logo{
  grid-row: span 2;
  justify-self: center;
}
header h1 {
  color: var(--text-color);
  justify-self: center;
  text-align: center;
  margin-left: -6.5rem; /*logo's width */
  font-size: var(--h1-fs);
}
span {
  color: var(--second-color);
}
header .nav-container {
  grid-column: 1 / span 3;
  justify-self: center;
}
header nav a {
  color: var(--text-color);
  font-size: var(--text-fs);
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 5px;
  transition: .6s;
}
header nav a:hover{
  background: #f5f5f5;
  color: var(--second-color);
}
.current {
  color: var(--second-color);
  border-radius: 5px;
}
.hamburger{
  width: 30px;
  height: 30px;
  outline: 3px solid #fff;
  border-radius: 50%;
  position: relative;
  padding: 0 4px;
  cursor: pointer;
  z-index: 10000000;
  display: none;
  justify-content: center;
  align-items: center;
}
.hamburger:before{
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  outline: 2px solid #fff;
  animation: hamburger-pulse 1s infinite;
}
.bar{
  height: 3px;
}
.bar,
.bar::before,
.bar::after{
  width: 100%;
  background-color: #fff;
  border-radius: 2px;
}
.bar::before,
.bar::after{
  content: '';
  display: block;
  height: 100%;
  transition: .8s;
}
.bar::before{
  transform: translateY(-6px);
  margin-left: auto;
}
.bar::after{
  transform: translateY(3px);
}
.hamburger.active .bar::before,
.hamburger.active .bar::after{
  width: 40%;
}
.nav-menu.active{
  right: 0;
}
.hamburger.active{
  position: fixed;
  top: 2.25rem;
  right: .75rem;
}

/*======================= Hero =======================*/
.hero {
  background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.4)), url(img/class-2.jpg);
  background-size: cover;
  background-position: center;
  height: 90vh;
  display: grid;
  grid-template-columns: 50% 50%;
}

.hero article {
  align-self: center;
  color: var(--text-color);
}
.hero-content{
  width: 100%;
  display: grid;
  margin: 0 auto;
}
.hero .col-1 h2{
  font-size: var(--h1-fs);
  text-align: center;
}
.hero .col-1 h3{
  font-size: var(--h3-fs);
  padding-top: 4px;
  text-align: center;
}
.hero form {
  width: 100%;
  margin: 1rem auto 0;
} 
.hero form input, 
.hero form button{
  font-size: 1.5rem;
  padding: 4px;
  outline: none;
}
.subscribe-container {  
  display: flex;
  width: fit-content;
  margin: auto;
}

.subscribe-container button{
  flex-basis: 60%;
}
.subscribe-container button{
  flex-basis: 30%;
  background-color: var(--main-color);
  color: var(--text-color);
  cursor: pointer;
  transition: .6s;
}
.subscribe-container button:hover{
  color: var(--second-color);
}
@media screen and (max-width: 450px) {
  .hero form input, 
  .hero form button{
    font-size: 1.1rem;
    padding: 3px;
  }
}
@media screen and (max-width: 280px) {
  .hero form input, 
  .hero form button{
    font-size: .8rem;
  }
}

/*================== About Section ==================*/
.about .flex{
  justify-content: space-between;
  align-items: center;
}
.about .col-1{
  flex-basis: 45%;
}
.about-img{
  display: block;
  width: 100%;
}
.about .col-2{
  flex-basis: 50%;
}
.about .col-2 p{
  text-align: center;
  font-size: var(--text-fs);
}
.about .flex .btn{
  padding: 1rem 2rem;
  text-transform: uppercase;
  font-weight: 700;
  margin-top: 2rem;
}

/*==================== Facilities ====================*/
.facilities-container{
  overflow: initial;
  margin: 2rem 0 3rem;
}
.facilities .swiper-wrapper{
  margin: 2rem 0;
}
.facilities-data{
  justify-content: space-around;
  margin-top: 20px;
}
.facilities-images{
  flex-basis: 45%;
  margin-bottom: 20px;
}
.library-img,
.lab-img,
.playground-img{
  display: block;
  height: 300px;
}
.facilities-desc{
  flex-basis: 45%;
  text-align: center;
  font-size: var(--text-fs);
}
.facilities-desc h3{
  font-size: var(--h3-fs);
  margin-bottom: 10px;
}
.facilities .swiper-pagination{
  transform: translateY(2rem);
}
.swiper-button-prev::after,
.swiper-button-next::after{
  content: '';
}
.swiper-icon{
  font-size: 2.5rem;
  color: var(--main-color);
}
.swiper-icon:hover{
  color: var(--main-color-light);
}
.swiper-icon.fa-angle-right{
  margin-right: -2rem;
}
.swiper-icon.fa-angle-left{
  margin-left: -2rem;
}

/*===================== Reviews =====================*/
.review-container{
  overflow: hidden;
  margin: 5% 6%;
  padding: 2rem 1rem;
}
.reviews .section-title{
  margin-bottom: 0;
}
.reviews h4{
  text-align: center;
  font-size: var(--text-fs);
  margin-bottom: 30px;
}
.review-content{
  padding: 30px;
  border-radius: .4rem;
  background-color: var(--main-color-transparent);
  margin-left: 1rem 0;
  transition: .6s;
  display: flex;
}
.review-content:hover{
  cursor: pointer;
  box-shadow: var(--dark-shadow);
}
.parent{
  margin-right: 20px;
}
.parent-img{
  display: block;
  width: 60px;
  height: 60px;
  border-radius: 50%;
}
.parent-data{
  padding: 0 0px;
}
.parent-name{
  margin-bottom: .6rem;
}
.parent-star{
  margin-bottom: .6rem;
  color: var(--main-color);
}

/*============ Register ============*/
.register{
  background: url(img/course_5.jpg) no-repeat;
  background-position: bottom center;
  background-size: cover;
  margin: 6% 7%;
  padding: 6rem 5rem;
  border-radius: .4rem;
}
.register .primary-btn{
  margin-top: 40px;
  padding: 1rem 2rem;
  font-weight: bold;
  letter-spacing: .05rem;
  text-align: center;
}

/*====================== Footer ======================*/
footer {
  width: 100%;
  padding: 30px 0;
  background: var(--main-color);
}
.footer{
  width: fit-content;
  display: grid;
  grid-template-columns: 30% 40% 30%;
  column-gap: 30px;
  margin: 0 auto;
}
footer h2{
  margin-bottom: 50px;
}

/*========== Footer Socials ==========*/
.footer-socials-container{
  justify-self: center;
}
.footer-socials{
  position: relative;
  display: flex;
  justify-content: center;
  margin-bottom: 50px;
}
.footer-socials span{
  height: max-content;
}
.footer-socials span a{
  color: #00e;
}
.footer-socials .socials-tooltip{
  display: none;
  position: absolute;
  top: 45px;
  background-color: black;
  padding: 4px 8px;
  border-radius: 5px;
}
footer span .fab{
  font-size: 2rem;
  margin-right: 20px;
}
footer span:hover .socials-tooltip{
  display: block;
}
footer p{
  color: var(--text-color);
  font-size: 1.1rem;
  margin-bottom: 1rem;
  cursor: pointer;
  transition: .6s;
}
footer p a{
  color: inherit;
}
footer .fa-whatsapp,
footer .fa{
  font-size: 1.3rem;
  margin-right: 6px;
}

/*========== Footer Contact ==========*/
.footer-contact{
  margin: 0 auto;
}

/*========== Footer Address ==========*/
.footer-address{
  margin: 0 auto;
}
footer p:hover {
  color: var(--second-color);
}

/*==== RESPONSIVENESS ====*/
@media screen and (max-width: 980px){
  :root{
    --text-fs: 1rem;
  }
  .about .section-subtitle{
    font-size: 1.3rem;
  }
}
@media screen and (max-width: 850px){
  header .nav-container{
    grid-column: span 1;
  }
  .hamburger{
    display: flex;
  }
  .nav-menu{
    position: fixed;
    top: 0;
    right: -65%;
    bottom: 0;
    width: 60%;
    display: grid;
    justify-content: center;
    align-content: center;
    text-align: center;
    background: linear-gradient(to right, var(--main-color), var(--main-color-light));
    z-index: 100000;
    transition: .8s;
  }
  .nav-menu a{
    margin: 2rem 0;
    font-size: 1.3rem;
  }
  .about .col-1,
  .about .col-2{
    flex-basis: 100%;
  }
  .about .col-1{
    margin-bottom: 1.5rem;
  }
  .facilities .facilities-images{
    flex-basis: 85%;
  }
  .facilities .facilities-desc{
    flex-basis: 100%;
  }
  .hero{
    grid-template-columns: 100%;
  }
  .hero-content .col-1{
    padding: 0 .6rem;
  }
  .subscribe-container input,
  .subscribe-container button{
    font-size: 1.2rem;
  }
  .footer{
    gap: 5px;
  }
}
@media screen and (max-width: 735px){
  header h1 {
    margin-left: 0px;
    font-size: var(--h3-fs);
    text-align: center;
  }
  .footer{
    grid-template-columns: auto;
  }
  footer h2{
    text-align: center;
    margin: 25px auto 20px;
  }
  .footer-socials-container{
    grid-row: 3;
  }
  .footer-socials{
    margin: 25px auto 20px;
  }
  .footer-contact{
    text-align: center;
  }
  .footer-address{
    text-align: center;
  }
}
@media screen and (max-width: 380px){
  .review-content{
    padding: 1.5rem .5rem;
  }
  .subscribe-container input,
  .subscribe-container button{
    font-size: .9rem;
  }
  .logo{
    width: 4rem;
  }
  footer span .fab{
  font-size: 1.2rem;
  margin-right: 10px;
  }
  footer p{
    font-size: .8rem;
  }
  .footer-contact{
    text-align: center;
  }
  footer h2{
    font-size: 1.1rem;
  }
  footer .copyright{
    margin-top: 30px;
  }
  .register .section-title{
    font-size: 1.7rem;
  }
}
@media screen and (max-width: 280px){
  :root{
    --h1-fs: 2rem;
    --h2-fs: 1.8rem;
    --h3-fs: 1.2rem;
    --h4-fs: 1rem;
    --text-fs: .9rem;
    --normal-fs: .8rem;
  }
  .subscribe-container input,
  .subscribe-container button{
    font-size: .8rem;
  }
  .register{
    padding: 2rem .5rem;
  }
  .register .section-title{
    font-size: 1.8rem;
  }
  .review-container{
    padding: 2rem .2rem;
  }
  .logo{
    width: 3.5rem;
  }
  footer p{
    font-size: .65rem;
  }
}

/*================= SUB PAGES =================*/
/*============= ABOUT =============*/
.about .section-title,
.mv .section-title,
.contact .section-title,
.enrol .section-title{
  margin-top: 40px;
}
.about .about-container{
  position: relative;
}
.about .swiper-wrapper{
  width: 100%;
}
.about-container .swiper-slide img{
  width: 100%;
  height: 400px;
}
.about .grid.container{
  grid-template-columns: 48% 48%;
  justify-content: space-between;
  align-items: center;

}
/* .about .swiper-button-prev{
  margin-left: -20px;
}
.about .swiper-button-next{
  margin-right: -20px;
} */
.about .container .col-2 p{
  font-size: .9rem;
}
.about .col-2 .section-subtitle{
  font-size: 1.5rem;
}
.about .topic-intro{
  display: block;
  margin-top: 10px;
  font-size: 1.2rem;
}
@media screen and (max-width: 800px) {
  .about .grid.container{
    grid-template-columns: 100%;
  }
}

/*======= MISSION AND VISION =======*/
.mv .col-1{
  flex-basis: 100%;
}
.mv .col-1 img{
  display: block;
  height: 50vh;
}
.mv .col-2{
  flex-basis: 100%;
}
.mv .col-2 .section-subtitle{
  display: block;
  text-align: left;
  margin-top: 20px;
  margin-bottom: 7px;
}
.mv .mission-subtitle{
  margin-top: 15px;
  margin-bottom: 8px;
}
.mv .col-2 p,
.mv .col-2 li{
  line-height: 1.4rem;
}
@media screen and (max-width: 400px) {
  .mv .col-1 img{
    height: 35vh;
  }
  .mv .section-title{
    font-size: 2.3rem;
  }
  .mv .col-2 .section-subtitle{
    font-size: 1.5rem;
  }
}

/*=========== CONTACT US ===========*/
.contact .section-subtitle,
.enrol .section-subtitle{
  text-align: center;
  font-size: 1rem;
  margin-bottom: 20px;
}
.location{
   width: 88%;
   margin: auto;
   padding: 0;
}
.location iframe{
   width: 100%;
}
.contact .flex{
  justify-content: space-between;
}

/*----- Contact-left Column -----*/
.contact-right{
   flex-basis: 35%;
}
.contact-right h1{
   margin-bottom: 30px;
}
.contact-right p{
   margin-bottom: 30px;
}
.contact-right p i{
   margin-right: 15px;
   color: #00aadf;
   font-size: 1.5625rem; /*25px*/  
}

/*------- Social Icon -------*/
.social-icons{
    cursor: pointer;
    font-size: 1.5625rem; /*25px*/
    margin-top: 30px;
}
.social-icons a{
    text-decoration: none;
    font-size: 1.875rem; /*30px*/
    margin-right: 15px;
    color: #00aadf;
    display: inline-block;
    transition: 0.5s;
}
.social-icons a:hover{
    transform: translateY(-5px);
}
.fa-heart, 
.fa-instagram:hover{
    color: rgb(200, 0, 0);
}
.fa-linkedin:hover,
 .fa-twitter:hover,
 .fa-facebook:hover{
    color: rgb(0, 0, 190);
}

/*===== Contact-left Column =====*/
.contact-left{
   flex-basis: 60%;
}
.contact-left form{
   width: 96%;
}
.contact-left form input,
.contact-left form textarea{
   width: 100%;
   border: 0;
   outline: none;
   background-color: #002200;
   padding: 15px;
   margin: 15px 0;
   color: #fff;
   font-size: 1.125rem; /*18px*/
   border-radius: 6px;
}
form .btn{
   padding: 14px 60px;
   font-size: 1.125rem; /*18px*/
   margin-top: 20px;
   border: none;
   cursor: pointer;
}
@media screen and (max-width: 550px) {
  .contact-left,
  .contact-right{
    flex-basis: 100%;
    margin: 20px 0;
  }
  .location{
    height: 40vh;
  }
  .location iframe{
    height: 100%;
  }
}

/*============ REGISTER ============*/
.enrol .form-container{
  width: 70%;
  background: #333;
  margin: 10px auto 40px;
  border-radius: 15px;
}
.enrol form{
  padding: 5px 40px 50px;
}
.enrol .form-title{
  text-align: center;
  background: #222;
  border-radius: 15px 15px 0 0;
  padding: 15px 0;
}
.enrol .form-title h1{
  font-size: 2rem;
  color: var(--second-color);
}
.enrol .enrol-intro{
  text-align: center;
  color: #ddd;
}
.enrol .name-container{
  width: 100%;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.enrol .name-container input{
  flex-basis: 48%;
}
.enrol form > label:not([for^='sex-']){
  display: block;
  font-weight: 800;
  margin-top: 15px;
  color: #ddd;
}
.enrol form > label[for^='sex-']{
  font-weight: 600;
  color: #ddd;
}
.enrol input{
  padding: 3px 8px;
  border-radius: 2px;
  border: none;
  font-size: 1rem;
  font-weight: 600;
}
.enrol select{
  padding: 3px 8px;
  border-radius: 2px;
  border: none;
  font-size: 1rem;
  font-weight: 600;
}
@media screen and (max-width: 700px){
  .enrol .form-container{
    width: 90%;
  }
  .enrol form{
    padding: 20px 20px 50px;
  }
  .enrol .name-container input{
    width: 30%;
  }
}
@media screen and (min-width: 700px) {
  .enrol form{
    position: relative;
  }
  .enrol form button{
    position: absolute;
    top: 83%;
    right: 10%;
  }
  .enrol form button[type=submit]{
    top: 73%;
  }
}

/*================= ANIMATION =================*/
@keyframes hamburger-pulse{
  0%{
      opacity: 1;
      transform: scale(1.1);
  }
  100%{
      opacity: 0;
      transform: scale(1.4);
  }
}