/* Image Gallery & Overlay Components */

.img-wrapper {
  position: relative;
  border-radius: 0.25rem;
  overflow: hidden;
  margin-bottom: 30px;
  display: block;
}

.img-wrapper img {
  position: relative;
  width: 100%;
  height: auto;
  z-index: 8;
}

.img-wrapper .overlay {
  background: var(--overlay-color);
  position: absolute;
  left: 0;
  bottom: 100%;
  width: 100%;
  height: 100%;
  z-index: 9;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.img-wrapper .overlay .overlay-infos {
  position: absolute;
  top: 0%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  -webkit-transition-delay: .2s;
          transition-delay: .2s;
  color: #fff;
  pointer-events: none;
  width: 100%;
  text-align: center;
}

.overlay-link-full {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  cursor: pointer;
}

.overlay-zoom-link {
  position: absolute;
  bottom: 0px;
  right: 0px;
  width: 35px;
  height: 35px;
  line-height: 35px;
  text-align: center;
  color: #fff;
  z-index: 20;
  cursor: pointer;
  transition: all 0.3s;
  pointer-events: auto;
  border-top-left-radius: 5px;
}

.overlay-zoom-link:hover {
  color: var(--primary);
  background: #fff;
}

.img-wrapper .overlay .overlay-infos h5 {
  margin-bottom: 15px;
}

.img-wrapper .overlay .overlay-infos a {
  display: inline-block;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  border: 2px solid #fff;
  line-height: 35px;
  text-align: center;
  color: #fff;
  text-decoration: none;
}

.img-wrapper .overlay .overlay-infos a:hover {
  background: #fff;
  color: #A50034;
}

.img-wrapper:hover .overlay, .img-wrapper:active .overlay {
  bottom: 0;
  visibility: visible;
  opacity: 1;
}

.img-wrapper:hover .overlay .overlay-infos, .img-wrapper:active .overlay .overlay-infos {
  top: 50%;
}

/* General Image Holder (used in projects/CV) */
.general-img-holder {
  height: 100%;
  -webkit-align-self: flex-end;
      -ms-flex-item-align: end;
          align-self: flex-end;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  padding-left: 0px;
}

.general-img-holder img {
  width: 100%;
  max-width: 500px;
  -webkit-filter: drop-shadow(0 -4px 20px rgba(206, 212, 218, 0.4));
          filter: drop-shadow(0 -4px 20px rgba(206, 212, 218, 0.4));
  margin-left: auto;
  margin-right:auto;
}

.general-img-holder .overlay {
  background: var(--overlay-color);
  position: absolute;
  left: 0;
  bottom: 100%;
  width: 100%;
  height: 100%;
  z-index: 9;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.general-img-holder .overlay .overlay-infos {
  position: absolute;
  top: 0%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  -webkit-transition-delay: .2s;
          transition-delay: .2s;
  color: #fff;
  pointer-events: none;
  width: 100%;
  text-align: center;
}

.general-img-holder .overlay .overlay-infos h5 {
  margin-bottom: 15px;
}



.general-img-holder:hover .overlay, .img-wrapper:active .overlay {
  bottom: 0;
  visibility: visible;
  opacity: 1;
}

.general-img-holder:hover .overlay .overlay-infos, .img-wrapper:active .overlay .overlay-infos {
  top: 50%;
}

/* Header Background Image (Waves) */
.header .bg-image {
  position: relative;
  z-index: -1;
  background-image: url(../imgs/wavesss_webp.webp);
  background-repeat: no-repeat;
  background-size: cover;
  height: 100%;
}

@media (max-width: 767.98px) {
  .header .bg-image {
    background-image: url(../imgs/wavesss_mobile.webp);
    background-position: center top; 
    background-size: cover;
  }
}

.header .bg-image-white {
  position: relative;
  z-index: 0;
  background-color: rgba(255, 255, 255, 0.85);
  height: 100%;
}
