#portfolio {
   position: relative;
}
#section-portfolio {
   top: -70px;
}

.portfolio img {
   object-fit: cover;
}
.portfolio * {
   padding: 0;
   margin: 0;
}

.portfolio {
   display: block;
   width: 100%;
   margin: 0 auto;
   box-sizing: border-box;
   text-align: center;
}

.portfolio h1 {
   font-size: 34px;
   line-height: 1;
}

.portfolio__navigation {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
   align-content: center;
   gap: 10px;
   margin: 48px auto;
}
@media (max-width: 1279px) {
   .portfolio__navigation {
      margin-bottom: 32px;
   }
   .portfolio {
      margin-top: 60px;
   }
}
@media (max-width: 767px) {
   #section-portfolio {
      top: -18px;
   }
   .portfolio {
      margin-top: 40px;
      padding: 0px 14px;
   }
   .portfolio__navigation {
      margin-bottom: 24px;
      margin-top: 32px;
   }
}
.portfolio__navigation li {
   flex: 1;
   min-width: 30%;
}

@media (max-width: 659px) {
   .portfolio__navigation li {
      min-width: 48%;
   }
}

@media (max-width: 420px) {
   .portfolio__navigation li {
      flex: none;
      width: 100%;
   }
}

.portfolio__button {
   cursor: pointer;
   display: flex;
   position: relative;
   width: 100%;
   height: 52px;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
   align-content: center;
   font-size: 16px;
   line-height: 1;
   background-color: rgba(0, 0, 0, 0);
   border: 2px solid #118a6f;
   padding: 10px 20px;
   color: #118a6f;
   transition: border 0.3s, color 0.3s, background-color 0.3s;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
   user-select: none;
   white-space: nowrap;
}

.portfolio__button:disabled {
   cursor: auto;
   pointer-events: none;
   opacity: 0.3;
}

.portfolio__button.portfolio__load-more.load {
   font-size: 0px;
   background-color: #118a6f;
}
.portfolio__button.portfolio__load-more:hover {
   color: #fff;
   background-color: #118a6f;
   border: 2px solid #118a6f;
}
.portfolio__button:hover {
   color: #fff;
   background-color: #84afa1;
   border: 2px solid #84afa1;
}
.portfolio__button.active {
   color: #fff;
   background-color: #118a6f;
   border: 2px solid #118a6f;
   cursor: auto;
   pointer-events: none;
}
.portfolio__button.load {
   color: rgba(0, 0, 0, 0);
}
.portfolio__button.load:before {
   content: '';
   width: 20px;
   height: 20px;
   position: absolute;
   border-left: 2px solid #fff;
   border-top: 2px solid #fff;
   border-right: 2px solid rgba(0, 0, 0, 0);
   border-bottom: 2px solid rgba(0, 0, 0, 0);
   border-radius: 10px;
   -webkit-animation: roll 0.3s linear infinite;
   animation: roll 0.3s linear infinite;
}

@keyframes roll {
   from {
      transform: rotate(0deg);
   }
   to {
      transform: rotate(360deg);
   }
}
.portfolio__collection {
   display: flex;
   position: relative;
   width: 100%;
   flex-wrap: wrap;
   justify-content: flex-start;
   align-items: flex-start;
   align-content: flex-start;
   gap: 28px;
   opacity: 0;
   transition: opacity 0.3s;
   margin-bottom: 28px;
}
.portfolio__collection.active {
   opacity: 1;
}
@media (max-width: 1279px) {
   .portfolio__collection {
      gap: 16px;
      margin-bottom: 16px;
   }
}
@media (max-width: 767px) {
   .portfolio__collection {
      gap: 14px;
      margin-bottom: 14px;
   }
}
.portfolio__collection li {
   display: flex;
   position: relative;
   overflow: hidden;
   justify-content: center;
   align-items: center;
   align-content: center;
   position: relative;
   width: calc((100% - 56px) / 3);
   background: #eee;
}
@media (max-width: 1279px) {
   .portfolio__collection li {
      width: calc((100% - 32px) / 3);
   }
}
@media (max-width: 767px) {
   .portfolio__collection li {
      width: calc((100% - 14px) / 2);
   }
}
.portfolio__collection li:before {
   content: '';
   display: block;
   width: 100%;
   padding-top: 114%;
   z-index: 0;
}
@media (max-width: 1279px) {
   .portfolio__collection li:before {
      padding-top: 104%;
   }
}
@media (max-width: 767px) {
   .portfolio__collection li:before {
      padding-top: 101%;
   }
}
.portfolio__collection li:hover a {
   transform: scale(1.1);
}
.portfolio__collection li a {
   position: absolute;
   width: 100%;
   height: 100%;
   transition: transform 0.6s;
   left: 0px;
   top: 0px;
   transform: scale(1);
   z-index: 1;
   cursor: zoom-in;
}
.portfolio__collection li a img {
   width: 100%;
   height: 100%;
}
