/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[3]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[4]!./assets/styles/ui/portfolio.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.shape {
  pointer-events: none;
  position: absolute;
  overflow: hidden;
}
.shape > img, .shape svg {
  transform: scale(2);
  display: block;
}

.shape-top {
  left: 0;
  right: 0;
  top: 0;
}
.shape-top > svg, .shape-top img {
  transform-origin: bottom center;
}

.shape-bottom {
  left: 0;
  right: 0;
  bottom: 0;
}
.shape-bottom > img, .shape-bottom svg {
  transform-origin: top center;
}

.shape-end {
  inset: 0;
}
.shape-end > svg {
  bottom: inherit;
  position: inherit;
  right: inherit;
  top: inherit;
  transform-origin: center left;
}

.shape-fluid-x > img {
  height: auto;
  width: 100%;
}

.shape-fluid-y > svg {
  height: 100%;
  width: auto;
}

footer.bg-primary .footer-link {
  flex-wrap: nowrap;
  gap: 15px;
}
footer.bg-primary .footer-link li.link {
  position: relative;
}
footer.bg-primary .footer-link li.link a {
  font-size: 1rem;
  text-decoration: none;
  color: var(--white-color);
  font-weight: 300;
}
footer.bg-primary .footer-link li.link::after {
  content: "";
  opacity: 0;
  transition: opacity 0.2s ease-out;
  position: absolute;
  top: 102%;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--white-color);
}
footer.bg-primary .footer-link li.link:hover::after {
  opacity: 1;
}

.welcome p {
  font-size: 1.313rem;
  font-weight: 300;
  line-height: 1.7;
}
.welcome .category-nav span.badge {
  cursor: pointer;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.9rem;
  padding: 6px 14px;
  background-color: var(--white-color);
  color: var(--main-color);
}
.welcome .category-nav span.badge.show {
  background-color: rgba(255, 255, 255, 0.3);
  color: var(--white-color);
}

.portfolio {
  margin-top: -5rem;
  min-height: 500px;
}
.portfolio #portfolio .portfolio-item .portfolio-card {
  box-shadow: 0 0.5rem 1rem rgba(22, 28, 45, 0.09);
}
.portfolio #portfolio .portfolio-item .portfolio-card .car-hover-wrapper {
  position: absolute;
  inset: 0;
  border-radius: var(--bs-border-radius);
  overflow-y: hidden;
}
.portfolio #portfolio .portfolio-item .portfolio-card .car-hover-wrapper .card-hover {
  background-color: rgba(var(--main-color-rgb), 0.7);
  transform: translateY(110%);
  transition: transform 0.2s ease-out;
}
.portfolio #portfolio .portfolio-item .portfolio-card .car-hover-wrapper .card-hover span {
  padding: 1rem;
  border-radius: var(--bs-border-radius);
  border: 2px solid var(--white-color);
  font-size: 1rem;
  font-weight: 600;
  background-color: rgba(0, 0, 0, 0.1);
}
.portfolio #portfolio .portfolio-item .portfolio-card .car-hover-wrapper:hover .card-hover {
  transform: translateY(0);
}

.cta-contact {
  color: var(--main-color);
  background-color: #fff;
  text-decoration: none;
  border-radius: 5px;
  padding: 1vw 3vw;
}

.cta-container {
  margin-top: 3vw;
}

@media (min-width: 768px) {
  .portfolio {
    margin-top: -14rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3BvcnRmb2xpby5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7QUNBSjtBRENJO0VBQ0k7RUFDQTtBQ0NSOztBREVBO0VBQ0k7RUFDQTtFQUNBO0FDQ0o7QURBSTtFQUNJO0FDRVI7O0FEQ0E7RUFDSTtFQUNBO0VBQ0E7QUNFSjtBRERJO0VBQ0k7QUNHUjs7QURBQTtFQUNJO0FDR0o7QURGSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUNJUjs7QUREQTtFQUNJO0VBQ0E7QUNJSjs7QURGQTtFQUNJO0VBQ0E7QUNLSjs7QUM1Q1E7RUFDSTtFQUNBO0FEK0NaO0FDOUNZO0VBQ0k7QURnRGhCO0FDL0NnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FEaURwQjtBQy9DZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QURpRHBCO0FDL0NnQjtFQUNJO0FEaURwQjs7QUF2RUk7RUFDSTtFQUNBO0VBQ0E7QUEwRVI7QUF4RUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTBFUjtBQXpFUTtFQUNJO0VBQ0E7QUEyRVo7O0FBdkVBO0VBQ0k7RUFDQTtBQTBFSjtBQXZFWTtFQUNJO0FBeUVoQjtBQXhFZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTBFcEI7QUF6RW9CO0VBQ0k7RUFDQTtFQUNBO0FBMkV4QjtBQTFFd0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE0RTVCO0FBekVvQjtFQUNJO0FBMkV4Qjs7QUFuRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBc0VKOztBQW5FQTtFQUNJO0FBc0VKOztBQW5FQTtFQUNJO0lBQ0k7RUFzRU47QUFDRixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL19zaGFwZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWkvcG9ydGZvbGlvLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL19mb290ZXIuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzaGFwZSBzdHlsZVxuLnNoYXBlIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAmID4gaW1nLCBzdmcge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDIpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG4uc2hhcGUtdG9wIHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICAmID4gc3ZnLCBpbWcge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICAgIH1cbn1cbi5zaGFwZS1ib3R0b20ge1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgICYgPiBpbWcsIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gICAgfVxufVxuLnNoYXBlLWVuZCB7XG4gICAgaW5zZXQ6IDA7XG4gICAgJiA+IHN2ZyB7XG4gICAgICAgIGJvdHRvbTogaW5oZXJpdDtcbiAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgIHJpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0b3A6IGluaGVyaXQ7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xuICAgIH1cbn1cbi5zaGFwZS1mbHVpZC14ID4gaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG59XG4uc2hhcGUtZmx1aWQteT4gc3ZnIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG59IiwiQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc2hhcGVcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Zvb3RlclwiO1xuXG4ud2VsY29tZSB7XG4gICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zMTNyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgfVxuICAgIC5jYXRlZ29yeS1uYXYgc3Bhbi5iYWRnZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IC45cmVtO1xuICAgICAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUtY29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWFpbi1jb2xvcik7XG4gICAgICAgICYuc2hvdyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4zKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4ucG9ydGZvbGlvIHtcbiAgICBtYXJnaW4tdG9wOiAtNXJlbTtcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICAjcG9ydGZvbGlvIHtcbiAgICAgICAgLnBvcnRmb2xpby1pdGVtIHtcbiAgICAgICAgICAgIC5wb3J0Zm9saW8tY2FyZCB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwLjVyZW0gMXJlbSByZ2JhKDIyLCAyOCwgNDUsIDAuMDkpO1xuICAgICAgICAgICAgICAgIC5jYXItaG92ZXItd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIC5jYXJkLWhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tbWFpbi1jb2xvci1yZ2IpLCAwLjcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExMCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlLW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0td2hpdGUtY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciAuY2FyZC1ob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jdGEtY29udGFjdCB7XG4gICAgY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBwYWRkaW5nOiAxdncgM3Z3O1xufVxuXG4uY3RhLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDozdnc7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5wb3J0Zm9saW8ge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTRyZW07XG4gICAgfVxufVxuIiwiLy8gZm9vdGVyXG5mb290ZXIge1xuICAgICYuYmctcHJpbWFyeSB7XG4gICAgICAgIC5mb290ZXItbGluayB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGdhcDogMTVweDtcbiAgICAgICAgICAgIGxpLmxpbmsge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1vdXQ7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMDIlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/