/*----------------------------------------*/
/*  01. Template default CSS
/*----------------------------------------*/
@mixin placeholder {
    &::-webkit-input-placeholder {
        @content
    }

    &:-moz-placeholder {
        @content
    }

    &::-moz-placeholder {
        @content
    }

    &:-ms-input-placeholder {
        @content
    }
}

/* Common Style */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
*,
*::after,
*::before {
    box-sizing: border-box;
}

html,
body,
.site-wrapper {
    height: 100%;
}

body {
    font-family: $body-font;
    font-size: 15px;
    font-weight: 400;
    font-style: normal;
    line-height: 1.74;

    position: relative;

    visibility: visible;
    overflow-x: hidden;

    transition: $transition;
    letter-spacing: 0;

    color: $body-color;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: $heading-font;
    font-weight: 700;
    line-height: 1.3;

    margin-top: 0;

    color: $heading-color;
}

.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
    line-height: inherit;

    margin: 0;
}

h1,
.h1 {
    @media #{$large-mobile} {
    }

    @media #{$small-mobile} {
    }
}

h2,
.h2 {
    @media #{$large-mobile} {
    }

    @media #{$small-mobile} {
    }
}

h3,
.h3 {
    @media #{$large-mobile} {
    }

    @media #{$small-mobile} {
    }
}

h4,
.h4 {
    @media #{$large-mobile} {
    }

    @media #{$small-mobile} {
    }
}

h5,
.h5 {
    @media #{$large-mobile} {
    }

    @media #{$small-mobile} {
    }
}

h6,
.h6 {
    @media #{$large-mobile} {
    }

    @media #{$small-mobile} {
    }
}

p:last-child {
    margin-bottom: 0;
}

a,
button {
    line-height: inherit;

    display: inline-block;

    cursor: pointer;
    text-decoration: none;

    color: inherit;
}

a,
button,
img,
input {
    transition: $transition;
}

*:focus {
    outline: none !important;
}

a:focus {
    text-decoration: none;

    color: inherit;
    outline: none;
}

a:hover {
    text-decoration: none;

    color: $primary;
}

button,
input[type="submit"] {
    cursor: pointer;
}

img {
    max-width: 100%;
}

input,
textarea {
    @include placeholder {
        opacity: 1;
    }
}

ul {
    &:last-child {
        margin-bottom: 0;
    }

    & li {
    }
}


hr {
    border-top-width: 2px;
}

svg:not(:root) {
	overflow: hidden;
}

/* Common Classes */
.playfair-font{
    font-family: $playfair-font;
}
.margin-15{
    margin: 15px;
}
.section-border-bottom{
    border-bottom: 1px solid #e7e7e7;
}

.jarallax {
    position: relative;
    z-index: 0;
}
.jarallax {
    & > .jarallax-img{
        position: absolute;
        object-fit: cover;
        font-family: 'object-fit: cover;';
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: -1;
    }
}

.max-width-100{
    max-width: 100%;
}

.fix {
    overflow: hidden;
}

.section,
.main-wrapper {
    float: left;

    width: 100%;
}

.section-fluid {
    & > .container,
    & > .container-fluid {
        @media #{$extraBig-device} {
            width: 100%;
            max-width: none;
            padding-right: 150px;
            padding-left: 150px;
        }
    }
}

.section-fluid-two {
    & > .container,
    & > .container-fluid {
        @media #{$extraBig-device} {
            width: 100%;
            max-width: none;
            padding-right: 240px;
            padding-left: 240px;
        }
    }
}

@media only screen and (min-width: 1200px) {
    .container {
        max-width: 1200px;
    }
}

@media #{$small-mobile} {
    .container {
        max-width: 450px;
    }
}


@each $name,
$color in $templateColors {
    // Background Color
    .bg-#{$name} {
        background-color: $color !important;
    }

    // Text Color
    .text-#{$name} {
        color: $color !important;
    }
}

/* Font Weight */
@for $i from 1 through 9 {
    .fw-#{100 * $i} {
        font-weight: 100 * $i;
    }
}

/* Overlay */
[data-overlay] {
    position: relative;
    z-index: 1;

    &::before {
        position: absolute;
        z-index: -1;
        top: 0;
        left: 0;

        width: 100%;
        height: 100%;

        content: "";

        background-color: $black;
    }
}

.overlay{
    position: relative;
    &::before{
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background: rgba(0,0,0,.4);
    }
}


@for $i from 0 through 20 {
    [data-overlay="#{$i * 5}"] {
        &::before {
            opacity: 0.05 * $i;
        }
    }
}

/* Background Image */
[data-bg-image] {
    background-repeat: repeat;
    background-position: top center;

    &:not(.bg-pattern) {
        background-repeat: no-repeat;
        background-position: center center;
        background-size: cover;
        overflow: hidden;
    }
}

.bg-pattern-one{
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain !important;
}
.cta-section,
.about-video-section,
.newsletter-section,
.about-section,
.teaching-section,
.download-app-section{
overflow: hidden;
}
.overflow-inherit{
    overflow: inherit !important;
}
/* Scroll Up */

.scroll-top{
    position: fixed;
    right: 30px;
    bottom: -60px;
    z-index: 999;
    box-shadow: 0 30px 50px rgba(0,0,0,.03);
    display: block;
    padding: 0;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    text-align: center;
    font-size: 25px;
    line-height: 60px;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    background-color: $primary;
    background-size: 200% auto;
    background-position: left center;
    color: $white;
    transition: $transition;
    overflow: hidden;

    @media #{$extra-small-mobile}{
        width: 50px;
        height: 50px;
        line-height: 50px;
        font-size: 20px;
    }

    &.show{
        visibility: visible;
        opacity: 1;
        bottom: 60px;
    }

    i{
        position: absolute;
        top: 50%;
        left: 50%;
        color: $white;
        transition: $transition;
    }

    .arrow-top{
        transform: translate(-50%, -50%);
    }

    .arrow-bottom{
        transform: translate(-50%, 80px);
    }

    &:hover{
        background-position: right center;
        .arrow-top{
            transform: translate(-50%, -80px);
        }
        .arrow-bottom{
            transform: translate(-50%, -50%);
        }
    }
}

/* Border Style */
.border-top-dashed {
    border-top: 1px dashed #D2D2D2;
}

.border-bottom-dashed {
    border-bottom: 1px dashed #D2D2D2;
}

/* Image Over Gray Scale */
.img-hover-color {
    filter: grayscale(100);

    &:hover {
        filter: grayscale(0);
    }
}



.section-bottom-shape {
    position: absolute;
    z-index: 1;
    bottom: -1px;
    left: 0;

    width: 100%;
    height: 70px;
    &.fill-color-gray{
        svg{
            path{
                fill: #f8f8f8;
            }
        }
    }

    & svg {
        width: 100%;
        height: 100%;

        & path {
            fill: $white;
        }
    }
}
.section-bottom-shape-two {
    position: absolute;
    z-index: -1;
    bottom: -1px;
    left: 0;
    width: 100%;
    transform: rotate(180deg);
    overflow: hidden;
    & svg {
        width: 100%;
        height: 100%;
        height: 310px;
        transform: translateX(0) rotateY(180deg);

        // Responsive
        @media #{$large-mobile}{
            height: 80px;
        }

        & path {
            fill: #f8f8f8;
        }
    }
}
.section-bottom-shape-three {
    position: absolute;
    z-index: 1;
    bottom: -1px;
    left: 0;
    width: 100%;
    transform: rotate(180deg);
    overflow: hidden;
    & svg {
        width: 100%;
        height: 100%;
        height: 440px;
        display: block;
        width: calc(100% + 1.3px);
        position: relative;
        left: 50%;
        transform: translateX(-50%) rotateY(180deg);

        // Responsive
        @media #{$large-mobile}{
            height: 80px;
        }

        & path {
            fill: rgba(51,51,51,.06);
        }
    }
}
.section-bottom-shape-four {
    position: absolute;
    z-index: 1;
    bottom: -1px;
    left: 0;
    width: 100%;
    transform: rotate(180deg);
    overflow: hidden;
    & svg {
        height: 600px;
        display: block;
        width: calc(100% + 1.3px);
        position: relative;
        left: 50%;
        transform: translateX(-50%);

        // Responsive
        @media #{$large-mobile}{
            height: 80px;
        }

        & path {
            fill: rgba(255,255,255,.04);
        }
    }
}
.section-bottom-shape-five {
    position: absolute;
    z-index: -1;
    bottom: -1px;
    left: 0;
    width: 100%;
    transform: rotate(180deg);
    overflow: hidden;
    & svg {
        width: calc(100% + 1.3px);
        height: 100%;
        height: 300px;
        display: block;
        position: relative;
        left: 50%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);

        // Responsive
        @media #{$large-mobile}{
            height: 80px;
        }

        & path {
            fill: #faf8f6;
        }
    }
}


.theme-color{
    color: $primary !important;
}



/* swiper default styles */

.swiper-pagination{
    position: static;
    display: block;
    line-height: 1;
    margin-top: 20px;
    &.theme-color{
        margin-top: 50px;
        .swiper-pagination-bullet {
            width: 10px;
            height: 10px;
            &:before{
              background: #5c5b6e;
            }
        
            &:hover{
              &:before{
                width: 12px;
                height: 12px;
                opacity: 1;
                background: $primary;
              }
            }
        }

        .swiper-pagination-bullet-active{
            &:before{
              width: 12px;
              height: 12px;
              opacity: 1;
              background: $primary;
            }
          }
    }
  .swiper-pagination-bullet {
      width: 10px;
      height: 10px;
      border: 0;
      border-radius: 0;
      background: transparent;
      opacity: 1;
      position: relative;
      outline: none;
      margin-right: 20px;
      margin: 0 8px !important;
      &:last-child{
        margin-right: 0;
      }
      &:before{
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        border-radius: 100%;
        width: 8px;
        height: 8px;
        background: #d8d8d8;
        z-index: 1;
        transition: $transition;
      }
  
      &:hover{
        &:before{
          width: 12px;
          height: 12px;
          opacity: 1;
          background: $heading-color;
        }
      }
  }
      
      
  .swiper-pagination-bullet-active{
      &:before{
        width: 12px;
        height: 12px;
        opacity: 1;
        background: $heading-color;
      }
    }
  }
  .site-wrapper-reveal{
    background-color: $white;
  }
  
  .swiper-pagination.swiper-pagination-white  {
      & .swiper-pagination-bullet {
          margin: 8px;
          &:hover{
              &:before{
                  width: 12px;
                  height: 12px;
                  opacity: 1;
                  background: #fff;
              }
          }
      }
      & .swiper-pagination-bullet-active::before {
          opacity: 1;
          background: #fff;
          width: 16px;
          height: 16px;
          box-shadow: 0 0 9px #ededed;
      }
  }
  
  .swiper-nav-button {
      transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), visibility 0.1s linear 2s, opacity 0.1s linear 2s;
      background-image: none;
      text-align: center;
      user-select: none;
      outline: none;
      width: 48px;
      height: 48px;
      font-size: 24px;
      color: #6d70a6;
      border: 0;
      border-radius: 50%;
      box-shadow: 0 0 5px rgba(0, 0, 0, 0.01);
      opacity: 0;
      visibility: hidden;
      transform: translate(0, -50%);
      margin: 0;
      top: 50%;
      &::before {
          content: '';
          position: absolute;
          top: 0;
          left: 0;
          bottom: 0;
          right: 0;
          border-radius: inherit;
          color: #fff;
          background: #fff;
      }
  }
  .swiper-nav-button:hover  {
      color: #fff;
       &::before {
          color: #fff;
          background: $heading-color;
      }
  }
  .swiper-container {
      transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
  }
  .swiper-container:hover {
      & .swiper-nav-button {
          opacity: 1;
          visibility: visible;
      }
  }
  
  .swiper-nav-button i {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
  }
  .swiper-nav-button i::before {
      -moz-osx-font-smoothing: grayscale;
      -webkit-font-smoothing: antialiased;
      display: inline-block;
      font-style: normal;
      font-variant: normal;
      text-rendering: auto;
      line-height: 1;
      font-family: 'Font Awesome 5 Pro';
      font-weight: 300;
      content: '\f104';
  }
  .swiper-nav-prev i::before {
       content: '\f104';
  }
  .swiper-button-next i::before {
      content: '\f105';
  }
  .swiper-wrapper {
      transition-timing-function: linear !important;
  }