/* === IMPORTS === */
@import url('style/normalize.css');
@import url('style/animations.css');
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');


/* === VARIABLES === */
:root{
  --white: #fff;
  --thumbbg: #f1f1f1;
  --accent: #1144f1;
  --black: #1A1D21;
  --dark1: #24272C;
  --dark2: #333539;
  --dark3: #595B5F;
}


/* === GLOBALS === */
body{
  background-color: var(--black);
  font-family: 'Poppins', sans-serif;
  padding-top: 45px;
}

body.no-scroll{
  height: 100%;
  overflow: hidden;
}

.container{
  width: 90%;
  max-width: 2076px;
  margin: 0 auto;
}

.full-width-btn{
  text-align: center;
  margin-top: 50px;
  margin-bottom: 50px;
}

.full-width-btn a{
  display: inline-block;
  height: 65px;
  line-height: 65px;
  padding: 0 60px;
  background-color: var(--dark1);
  color: var(--white);
  border-radius: 40px;
  font-size: 1.125rem;
  font-weight: 600;
  text-decoration: none;
  transition: all .2s;
}

.full-width-btn a:hover{
  background-color: var(--accent);
}

@media (max-width:232px) {
  .full-width-btn a{
    padding: 0;
    width: 100%;
  }
}


/* === HEADER === */
#main-header{
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all .2s;
  overflow: hidden;
}

#main-header nav{
  display: flex;
  align-items: center;
}

#main-header nav a, #main-header nav>div{
  display: inline-block;
  text-decoration: none;
  color: var(--dark3);
  font-weight: 600;
  font-size: 1.125rem;
  margin-left: 45px;
  transition: all .3s;
  position: relative;
}

#main-header nav>div{
  margin-left: 0;
}

#main-header nav a::before{
  position: absolute;
  content: '';
  display: block;
  width: 0%;
  height: 5px;
  border-radius: 5px;
  background-color: var(--accent);
  bottom: -10px;
  transition: all .2s;
}

#main-header nav a:hover{
  color: var(--accent);
}

#main-header nav a:hover::before{
  animation: move-effect 0.5s;
}

#main-header nav .sub{
  position: relative;
  padding-bottom: 20px;
  margin-bottom: -20px;
}

#main-header nav .sub>div{
  display: none;
  position: absolute;
  top: 40px;
  left: 20px;
  background-color: var(--dark1);
  border-radius: 8px;
  padding: 24px 10px;
  width: 240px;
}

#main-header nav .sub>div a{
  font-size: 1rem;
  font-weight: 400;
  margin-bottom: 24px;
}

#main-header nav .sub:hover>div{
  display: block;
  animation: dropdown 0.2s;
}

#main-header nav .sub:hover>a{
  color: var(--accent);
}

#main-header nav .sub>div a::before{
  display: none;
}

#main-header nav a.big{
  height: 40px;
  line-height: 40px;
  padding: 0 45px;
  background-color: var(--dark1);
  color: var(--white);
  border-radius: 6px;
  font-size: 1rem;
}

#main-header nav a.big::before{
  display: none;
}

#main-header nav a.big:hover{
  background-color: var(--accent);
}

#mobile-menu-btn{
  display: none;
  position:relative;
  z-index: 9;
}

#mobile-menu-btn a{
  text-decoration: none;
  color: var(--white);
}

@media (max-width:1350px) {
  #main-header nav a{
    margin-left: 20px;
  }
}

@media (max-width:1150px) {
  #main-header nav a{
    font-size: 1rem;
  }

  #main-header nav a.big{
    padding: 0 20px;
  }
}

@media (max-width:1022px){
  #main-header.scrolled{
    position: sticky;
    top: 0;
    background-color: var(--black);
    padding: 20px 0;
    height: auto;
    transition: none;
  }

  #main-header.scrolled #logo img{
    height: 45px;
    width: auto;
  }

  #main-header nav{
    display: block;
    position: absolute;
    background: rgba(0, 0, 0, 0.9);
    left: 0;
    right: 0;
    top: -100%;
    padding-top: 125px;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: all .4s;
  }

  #main-header nav .sub:hover>div{
    display: none;
  }

  #main-header nav .sub.open>div{
    display: block;
  }

  #main-header nav a, #main-header nav>div{
    display: block;
    text-align: center;
    margin: 0 0 45px 0;
  }

  #main-header nav>div.sub{
    margin-bottom: 0;
    padding-bottom: 0;
  }

  #main-header nav>div.sub>div{
    position: static;
    margin: 0 auto;
    margin-bottom: 40px;
  }

  #main-header nav a.big{
    margin: 0 45px;
  }

  #mobile-menu-btn{
    display: block;
  }

  #main-header.open.scrolled{
    position: fixed;
    align-items: flex-start;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 20px 20px;
  }

  #main-header.open nav{
    display: block;
    opacity: 1;
    top: 0;
    bottom: 0;
  }
}

@media (min-width:1022px){
  #main-header.scrolled{
    position: sticky;
    box-sizing: border-box;
    top: 0;
    width: 100%;
    max-width: 100%;
    background-color: var(--black);
    padding: 0 24px;
    height: 65px;
    z-index: 9;
  }

  #main-header.scrolled #logo img{
    height: 33px;
    width: auto;
  }

  #main-header.scrolled nav a.big{
    position: relative;
    top: -9px;
    margin-bottom: -18px;
    margin-right: -24px;
    height: 65px;
    border-radius: 0;
    line-height: 65px;
    vertical-align: middle;
  }
}


/* === SLIDER === */
.slider{
  margin-top: 130px;
  margin-bottom: 90px;
  text-align: center;
}

.slider h1{
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--dark3);
  margin: 0 0 14px 0;
}

.slider p{
  font-size: 1.25rem;
  line-height: 1.625rem;
  color: var(--dark3);
  max-width: 1156px;
  margin: 0 auto;
}

.slider .breadcrumb{
  display: inline-block;
  margin-top: 45px;
  border-radius: 30px;
  padding: 13px 33px;
  background-color: var(--dark1);
}

.slider .breadcrumb a{
  color: #959595;
  text-decoration: none;
  font-size: 0.875rem;
  transition: all .2s;
}

.slider .breadcrumb a:hover{
  color: var(--accent);
}

.slider .breadcrumb a::before{
  content: "/";
  margin-right: 10px;
  margin-left: 10px;
  color: var(--accent);
}

.slider .breadcrumb a:first-child::before{
  display: none;
}


/* === WORKS === */
.works{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  column-gap: 12px;
  row-gap: 38px;
  justify-content: stretch;
}

@media(max-width:1700px){
  .works{
    grid-template-columns: repeat(4, 1fr);
  }
}

@media(max-width:1000px){
  .works{
    grid-template-columns: repeat(2, 1fr);
  }
}

.works>a{
  display: block;
  text-decoration: none;
}

.works>a figure{
  margin: 0;
  background: var(--white);
  border-radius: 8px;
  transition: all .2s;
}

.works>a:hover figure{
  box-shadow: 0 10px 30px rgba(17, 68, 241, 0.25);
}

.works>a figure img{
  width: 100%;
  height: auto;
}

.works>a span{
  display: block;
  margin-top: 18px;
  font-size: 0.938rem;
  text-align: center;
  color: var(--dark3);
  transition: all .2s;
}

.works>a:hover span{
  color: var(--accent);
}

.cat-menu{
  margin-bottom: 70px;
}

.cat-menu nav{
  white-space: nowrap;
  overflow-x: scroll;
  text-align: center;
}

.cat-menu nav a{
  color: var(--dark3);
  text-decoration: none;
  padding: 5px 25px;
  border-left: 1px solid #393B3F;
  vertical-align: middle;
}

.cat-menu nav a:first-child{
  border-left: 0;
  padding-left: 0;
}

.cat-menu nav a:hover{
  color: var(--accent);
}

.cat-menu nav a svg{
  vertical-align: middle;
  margin-right: 25px;
}

.pagination{
  margin-top: 50px;
  margin-bottom: 100px;
}

.pagination nav{
  display: flex;
  justify-content: center;
  column-gap: 8px;
}

.pagination a{
  background-color: var(--dark1);
  color: #fff;
  text-decoration: none;
  padding: 20px 40px;
  border-radius: 33px;
  transition: all .2s;
}

.pagination a:hover{
  background-color: var(--accent);
}

@media (max-width:800px) {
  .pagination a{
    display: none;
  }

  .pagination a.next, .pagination a.prev{
    display: block;
  }
}


/* === REVIEWS === */
.reviews{
  margin-bottom: 50px;
}

.reviews>.title{
  display: block;
  margin-bottom: 20px;
  color: var(--dark3);
  font-weight: 700;
  font-size: 2rem;
}

.reviews ul{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  column-gap: 13px;
  flex-wrap: nowrap;
}

.reviews ul li{
  flex-shrink: 0;
  width: 685px;
  padding-top: 38px;
  padding-bottom: 50px;
}

.reviews .keep{
  box-sizing: border-box;
  background-color: var(--dark1);
  padding: 33px 36px;
  position: relative;
  overflow: visible;
  border-radius: 8px;
  height: 100%;
}

.reviews .keep:hover{
  box-shadow: 0 10px 30px rgba(17, 68, 241, 0.25);
}

.reviews li figure{
  position: absolute;
  top:-55px;
  right: 0;
}

.reviews h5{
  font-size: 2.25rem;
  line-height: 2.188rem;
  font-weight: 700;
  color: var(--dark3);
  margin: 30px 0;
}

.reviews p{
  font-size: 1rem;
  color: var(--dark3);
  line-height: 1.375rem;
  margin-bottom: 16px;
}

.reviews .text{
  display: block;
  font-size: 1rem;
  color: var(--dark3);
  margin-bottom: 0;
}

.reviews .navigation{
  display: flex;
  justify-content: center;
  gap: 8px;
}

.reviews .navigation button{
  background: transparent;
  border: 0;
  padding: 0;
}

.reviews .navigation button:hover{
  cursor: pointer;
}

.reviews .navigation button:hover path{
  fill: var(--accent);
}


/* === SERVICES === */
.services{
  margin-bottom: 120px;
}

.services>.title{
  display: block;
  margin-bottom: 20px;
  color: var(--dark3);
  font-weight: 700;
  font-size: 2rem;
}

.services>nav{
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 12px;
  row-gap: 12px;
  margin-bottom: 36px;
}

@media(max-width:1700px){
  .services>nav{
    grid-template-columns: repeat(4, 1fr);
  }
}

@media(max-width:1000px){
  .services>nav{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width:420px){
  .services>nav{
    grid-template-columns: 1fr;
  }
}

.services>nav a{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--dark1);
  height: 250px;
  text-decoration: none;
  color: var(--dark3);
  border-radius: 8px;
  text-align: center;
  transition: all .2s;
}

.services>nav a:hover{
  background-color: var(--accent);
  color: var(--white);
  box-shadow: 0 0 100px rgba(17, 68, 241, 0.39);
}

.services>nav a svg{
  margin-bottom: 42px;
}

.services>nav a svg path{
  transition: all .2s;
}

.services>nav a:hover svg path{
  fill: var(--white);
}

.services>p{
  width: 50%;
  font-size: 1rem;
  line-height: 1.375rem;
  color: var(--dark3);
}

@media (max-width:770px) {
  .services>p{
    width: 100%;
  }
}

.services>p b{
  color: var(--accent);
  font-weight: 400;
}


/* === BLOG === */
.blog{
  margin-bottom: 120px;
}

.blog>.title{
  display: block;
  font-size: 2rem;
  font-weight: 700;
  color: var(--dark3);
  margin-bottom: 30px;
}

.blog>main{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 12px;
  row-gap: 12px;
  margin-bottom: 40px;
}

@media(max-width:770px){
  .blog>main{
    grid-template-columns: 1fr;
  }
}

.blog>main article a{
  display: block;
  background-color: var(--dark1);
  text-decoration: none;
  color: var(--dark3);
  padding: 50px 45px;
  height: calc(100% - 100px);
  border-radius: 10px;
  transition: all .2s;
}

.blog>main article a:hover{
  box-shadow: 0 10px 30px rgba(17, 68, 241, 0.25);
  background-color: var(--accent);
  color: var(--white);
}

.blog>main article h3{
  margin: 0;
}

.blog-bottom{
  display: flex;
  justify-content: space-between;
  margin-bottom: 120px;
}

.blog-bottom .title{
  display: block;
  font-size: 1.5rem;
  font-weight: bold;
  color: var(--dark3);
}

.blog-bottom p{
  font-size: 1rem;
  line-height: 1.375rem;
  color: var(--dark3);
  width: 50%;
}

@media (max-width:770px) {
  .blog-bottom{
    flex-direction: column;
  }

  .blog-bottom p{
    width: 100%;
  }
}

.blog-bottom p b{
  color: var(--accent);
  font-weight: 400;
}

.blog-bottom a{
  display: block;
  text-decoration: none;
  width: 232px;
  height: 65px;
  line-height: 65px;
  text-align: center;
  font-weight: 1.125rem;
  font-weight: 600;
  color: var(--white);
  background-color: var(--dark1);
  border-radius: 39px;
  transition: all .2s;
}

.blog-bottom a:hover{
  background-color: var(--accent);
}

@media (max-width:232px) {
  .blog-bottom a{
    width: 100%;
  }
}


/* === TEXT === */
.text{
  margin-bottom: 100px;
}

.text h4{
  color: var(--dark2);
  font-weight: 600;
  font-size: 0.875rem;
  margin-bottom: 5px;
}

.text p{
  color: var(--dark2);
  font-size: 0.875rem;
  margin-bottom: 20px;
  margin-top: 0;
}


/* === ACCORDION === */
.accordion{
  margin-bottom: 38px;
}

.accordion .item{
  box-sizing: border-box;
  max-width: 1148px;
  margin: 0 auto;
  background: var(--dark1);
  border-radius: 8px;
  margin-bottom: 15px;
  border: 1px solid var(--dark1);
  transition: all .2s;
}

.accordion .item.active, .accordion .item:hover{
  border-color: var(--accent);
  box-shadow: 0 10px 99px rgba(17, 68, 241, 0.08);
}

.accordion header{
  display:flex;
  justify-content: space-between;
  padding: 24px 20px;
}

.accordion header:hover{
  cursor: pointer;
}

.accordion .arrow{
  transition: all .2s;
}

.accordion .active .arrow{
  transform: rotate(180deg);
}

.accordion h4{
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--dark3);
}

.accordion header:hover h4, .accordion .item.active header h4{
  color: var(--thumbbg);
}

.accordion p{
  font-size: 0.875rem;
  line-height: 1.375rem;
  color: var(--dark3);
  margin-bottom: 20px;
}

.accordion .content p:last-child{
  padding-bottom: 20px;
}

.accordion .content{
  box-sizing: border-box;
  padding: 0px 20px;
  overflow: hidden;
  transition: all .3s ease-in-out;
}


/* === BOXED TEXT === */
.boxed-text{
  margin-bottom: 38px;
}

.boxed-text .content{
  box-sizing: border-box;
  max-width: 1148px;
  margin: 0 auto;
  background: var(--dark1);
  border-radius: 8px;
  padding: 34px;
}

.boxed-text h6{
  margin: 0;
  font-size: 0.875rem;
  color: var(--dark3);
}

.boxed-text p{
  margin: 0;
  font-size: 0.875rem;
  color: var(--dark3);
  margin-bottom: 20px;
  line-height: 1.375rem;
}




/* === FOOTER === */
#main-footer{
  border-top: 1px solid var(--dark1);
  padding-top: 85px;
  padding-bottom: 185px;
}

#navs{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 200px;
  margin: 0 200px;
}

@media(max-width:2000px){
  #navs{
    margin:0;
    column-gap: 0;
  }
}

@media(max-width:1100px){
  #navs{
    grid-template-columns: repeat(2, 1fr);
  }

  #navs nav{
    margin-bottom: 40px;
  }
}

@media(max-width:500px){
  #navs{
    grid-template-columns: 1fr;
  }
}

#navs nav .title{
  display: block;
  color: var(--accent);
  font-size: 1.125rem;
  font-weight: bold;
  margin-bottom: 15px;
}

#navs nav a{
  display: block;
  text-decoration: none;
  color: var(--dark3);
  margin-bottom: 15px;
}

#navs nav a:hover{
  color: var(--accent);
}

#footer-text{
  margin: 100px 0;
}

#footer-text .title{
  display: block;
  text-align: center;
  font-size: 3.813rem;
  font-weight: bold;
  color: var(--dark2);
  margin-bottom: 10px;
}

@media(max-width:465px){
  #footer-text .title{
    font-size: 2.5rem;
  }
}

#footer-text .sub{
  display: block;
  text-align:center;
  color: var(--dark2);
}

#main-footer .details{
  text-align: center;
}

#main-footer .details img{
  display: block;
  margin: 0 auto;
  margin-bottom: 18px;
}

#main-footer .details span{
  display: block;
  color: var(--dark2);
  margin-bottom: 30px;
}

#main-footer nav.social{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 45px;
}

@media(max-width:450px){
  #main-footer nav.social{
    gap: 20px;
  }
}

@media(max-width:270px){
  #main-footer nav.social{
    flex-direction: column;
  }
}

#main-footer nav.social path{
  transition: all .2s;
}

#main-footer nav.social a:hover path{
  fill: var(--accent);
}