/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/about.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: clamp(14px, 2vw, 1.2rem);
  font-weight: 300;
  line-height: 1.7;
}

.team {
  margin-top: -5rem;
}
.team .team-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  grid-auto-rows: auto;
  justify-content: center;
  grid-row-gap: 40px;
  grid-column-gap: 40px;
}
.team .team-grid .card {
  box-shadow: 0 0.5rem 1rem rgba(22, 28, 45, 0.09);
  text-align: center;
}
.team .team-grid .card .picture {
  padding-bottom: 1.5rem;
}
.team .team-grid .card .picture img {
  max-width: 100%;
  height: auto;
  width: 150px;
}
.team .team-grid .card .name {
  color: var(--main-color);
  font-size: 1.1rem;
}
.team .team-grid .card .job {
  font-size: 0.9rem;
  color: var(--bs-gray-700);
}

.service {
  background-color: rgb(38, 169, 224);
}
.service .card {
  box-shadow: 0 0.5rem 1rem rgba(22, 28, 45, 0.09);
}
.service .card .badge {
  font-weight: 300;
  font-size: 1.1rem;
  padding: 8px 16px;
}
.service .card a {
  text-decoration: none;
  color: var(--main-color);
}

.img-certif,
.img-certif-author {
  position: relative;
}

.badge-link {
  position: absolute;
  display: block;
  width: 70px;
  height: 70px;
  z-index: 2;
  cursor: pointer;
}
.badge-link::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
}

.badge-symfony {
  right: 10px;
  top: 80px;
}
.badge-symfony::before {
  background-image: url(/build/images/pastille-certif-symfony-2-etoiles.426e05a4.png);
}

.badge-kubernetes {
  left: 10px;
  top: 80px;
}
.badge-kubernetes::before {
  background-image: url(/build/images/kubernetes-logo.a8fc3509.png);
}

.badge-eyrolles {
  right: 10px;
  top: 80px;
  width: 60px;
  height: 60px;
}
.badge-eyrolles::before {
  background-image: url(/build/images/eyrolles-logo.eb5b506e.svg);
}

.badge-packtpub {
  left: 10px;
  top: 80px;
  width: 60px;
  height: 60px;
}
.badge-packtpub::before {
  background-image: url(/build/images/packtpub-logo.7964f243.svg);
}

@media (min-width: 350px) {
  .team .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 768px) {
  .team {
    margin-top: -14rem;
  }
  .team .team-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .service {
    align-items: center;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX2Fib3V0LmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtBQ0FKO0FEQ0k7RUFDSTtFQUNBO0FDQ1I7O0FERUE7RUFDSTtFQUNBO0VBQ0E7QUNDSjtBREFJO0VBQ0k7QUNFUjs7QURDQTtFQUNJO0VBQ0E7RUFDQTtBQ0VKO0FEREk7RUFDSTtBQ0dSOztBREFBO0VBQ0k7QUNHSjtBREZJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQ0lSOztBRERBO0VBQ0k7RUFDQTtBQ0lKOztBREZBO0VBQ0k7RUFDQTtBQ0tKOztBQzVDUTtFQUNJO0VBQ0E7QUQrQ1o7QUM5Q1k7RUFDSTtBRGdEaEI7QUMvQ2dCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QURpRHBCO0FDL0NnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRGlEcEI7QUMvQ2dCO0VBQ0k7QURpRHBCOztBQXZFSTtFQUNJO0VBQ0E7RUFDQTtBQTBFUjs7QUF0RUE7RUFDSTtBQXlFSjtBQXhFSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTBFUjtBQXpFUTtFQUNJO0VBQ0E7QUEyRVo7QUExRVk7RUFDSTtBQTRFaEI7QUEzRWdCO0VBQ0k7RUFDQTtFQUNBO0FBNkVwQjtBQTFFWTtFQUNJO0VBQ0E7QUE0RWhCO0FBMUVZO0VBQ0k7RUFDQTtBQTRFaEI7O0FBdkVBO0VBQ0k7QUEwRUo7QUF6RUk7RUFDSTtBQTJFUjtBQTFFUTtFQUNJO0VBQ0E7RUFDQTtBQTRFWjtBQTFFUTtFQUNJO0VBQ0E7QUE0RVo7O0FBdEVBOztFQUVJO0FBeUVKOztBQXJFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXdFSjtBQXRFSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXdFUjs7QUFuRUE7RUFDSTtFQUNBO0FBc0VKO0FBcEVJO0VBQ0k7QUFzRVI7O0FBakVBO0VBQ0k7RUFDQTtBQW9FSjtBQWxFSTtFQUNJO0FBb0VSOztBQS9EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBa0VKO0FBaEVJO0VBQ0k7QUFrRVI7O0FBN0RBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFnRUo7QUE5REk7RUFDSTtBQWdFUjs7QUE3REE7RUFFUTtJQUNJO0VBK0RWO0FBQ0Y7QUE1REE7RUFDSTtJQUNJO0VBOEROO0VBN0RNO0lBQ0k7RUErRFY7RUE1REU7SUFDSTtFQThETjtBQUNGLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2NvbXBvbmVudHMvX3NoYXBlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aS9hYm91dC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc2hhcGUgc3R5bGVcbi5zaGFwZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgJiA+IGltZywgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgyKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuLnNoYXBlLXRvcCB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgJiA+IHN2ZywgaW1nIHtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbiAgICB9XG59XG4uc2hhcGUtYm90dG9tIHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICAmID4gaW1nLCBzdmcge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAgIH1cbn1cbi5zaGFwZS1lbmQge1xuICAgIGluc2V0OiAwO1xuICAgICYgPiBzdmcge1xuICAgICAgICBib3R0b206IGluaGVyaXQ7XG4gICAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgICByaWdodDogaW5oZXJpdDtcbiAgICAgICAgdG9wOiBpbmhlcml0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbiAgICB9XG59XG4uc2hhcGUtZmx1aWQteCA+IGltZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLnNoYXBlLWZsdWlkLXk+IHN2ZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xufSIsIkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3NoYXBlXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb290ZXJcIjtcblxuLndlbGNvbWUge1xuICAgIHAge1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDE0cHgsIDJ2dywgMS4ycmVtKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICB9XG59XG5cbi50ZWFtIHtcbiAgICBtYXJnaW4tdG9wOiAtNXJlbTtcbiAgICAudGVhbS1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcbiAgICAgICAgZ3JpZC1hdXRvLXJvd3M6IGF1dG87XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBncmlkLXJvdy1nYXA6IDQwcHg7XG4gICAgICAgIGdyaWQtY29sdW1uLWdhcDogNDBweDtcbiAgICAgICAgLmNhcmQge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwLjVyZW0gMXJlbSByZ2JhKDIyLCAyOCwgNDUsIDAuMDkpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLnBpY3R1cmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubmFtZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmpvYiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYnMtZ3JheS03MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLnNlcnZpY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzgsMTY5LDIyNCwxKTtcbiAgICAuY2FyZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41cmVtIDFyZW0gcmdiYSgyMiwgMjgsIDQ1LCAwLjA5KTtcbiAgICAgICAgLmJhZGdlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIGEge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLW1haW4tY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBDb21tb24gc3R5bGVzIGZvciBjZXJ0aWZpY2F0aW9uIGJhZGdlc1xuLmltZy1jZXJ0aWYsXG4uaW1nLWNlcnRpZi1hdXRob3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gQmFkZ2UgbGlua3MgKGNsaWNrYWJsZSBhcmVhcylcbi5iYWRnZS1saW5rIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICB9XG59XG5cbi8vIEh1Z28ncyBTeW1mb255IGNlcnRpZmljYXRpb24gYmFkZ2UgKHJpZ2h0IHNpZGUpXG4uYmFkZ2Utc3ltZm9ueSB7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgdG9wOiA4MHB4O1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1hZ2VzL3Bhc3RpbGxlLWNlcnRpZi1zeW1mb255LTItZXRvaWxlcy5wbmdcIik7XG4gICAgfVxufVxuXG4vLyBIdWdvJ3MgS3ViZXJuZXRlcyBjZXJ0aWZpY2F0aW9uIGJhZGdlIChsZWZ0IHNpZGUpXG4uYmFkZ2Uta3ViZXJuZXRlcyB7XG4gICAgbGVmdDogMTBweDtcbiAgICB0b3A6IDgwcHg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWFnZXMva3ViZXJuZXRlcy1sb2dvLnBuZ1wiKTtcbiAgICB9XG59XG5cbi8vIEZhYmllbidzIEV5cm9sbGVzIGF1dGhvciBiYWRnZSAocmlnaHQgc2lkZSlcbi5iYWRnZS1leXJvbGxlcyB7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgdG9wOiA4MHB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIGhlaWdodDogNjBweDtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltYWdlcy9leXJvbGxlcy1sb2dvLnN2Z1wiKTtcbiAgICB9XG59XG5cbi8vIEZhYmllbidzIFBhY2t0cHViIGF1dGhvciBiYWRnZSAobGVmdCBzaWRlKVxuLmJhZGdlLXBhY2t0cHViIHtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogODBweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWFnZXMvcGFja3RwdWItbG9nby5zdmdcIik7XG4gICAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDM1MHB4KSB7XG4gICAgLnRlYW0ge1xuICAgICAgICAudGVhbS1ncmlkIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAudGVhbSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xNHJlbTtcbiAgICAgICAgLnRlYW0tZ3JpZCB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zZXJ2aWNlIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG59XG4iLCIvLyBmb290ZXJcbmZvb3RlciB7XG4gICAgJi5iZy1wcmltYXJ5IHtcbiAgICAgICAgLmZvb3Rlci1saW5rIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgZ2FwOiAxNXB4O1xuICAgICAgICAgICAgbGkubGluayB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLW91dDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDEwMiU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6MDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlLWNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/