// core
.p-galleria-content {
  display: flex;
  flex-direction: column;
}

.p-galleria-item-wrapper {
  display: flex;
  flex-direction: column;
  position: relative;
}

.p-galleria-item-container {
  position: relative;
  display: flex;
  height: 100%;
}

.p-galleria-item-nav {
  position: absolute;
  top: 50%;
  margin-top: -0.5rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.p-galleria-item-prev {
  left: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.p-galleria-item-next {
  right: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.p-galleria-item {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
}

.p-galleria-item-nav-onhover .p-galleria-item-nav {
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}

.p-galleria-item-nav-onhover
  .p-galleria-item-wrapper:hover
  .p-galleria-item-nav {
  pointer-events: all;
  opacity: 1;
}

.p-galleria-item-nav-onhover
  .p-galleria-item-wrapper:hover
  .p-galleria-item-nav.p-disabled {
  pointer-events: none;
}

.p-galleria-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}

/* Thumbnails */
.p-galleria-thumbnail-wrapper {
  display: flex;
  flex-direction: column;
  overflow: auto;
  flex-shrink: 0;
}

.p-galleria-thumbnail-prev,
.p-galleria-thumbnail-next {
  align-self: center;
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
}

.p-galleria-thumbnail-prev span,
.p-galleria-thumbnail-next span {
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-galleria-thumbnail-container {
  display: flex;
  flex-direction: row;
}

.p-galleria-thumbnail-items-container {
  overflow: hidden;
  width: 100%;
}

.p-galleria-thumbnail-items {
  display: flex;
}

.p-galleria-thumbnail-item {
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.5;
}

.p-galleria-thumbnail-item:hover {
  opacity: 1;
  transition: opacity 0.3s;
}

.p-galleria-thumbnail-item-current {
  opacity: 1;
}

/* Positions */
/* Thumbnails */
.p-galleria-thumbnails-left .p-galleria-content,
.p-galleria-thumbnails-right .p-galleria-content {
  flex-direction: row;
}

.p-galleria-thumbnails-left .p-galleria-item-wrapper,
.p-galleria-thumbnails-right .p-galleria-item-wrapper {
  flex-direction: row;
}

.p-galleria-thumbnails-left .p-galleria-item-wrapper,
.p-galleria-thumbnails-top .p-galleria-item-wrapper {
  order: 2;
}

.p-galleria-thumbnails-left .p-galleria-thumbnail-wrapper,
.p-galleria-thumbnails-top .p-galleria-thumbnail-wrapper {
  order: 1;
}

.p-galleria-thumbnails-left .p-galleria-thumbnail-container,
.p-galleria-thumbnails-right .p-galleria-thumbnail-container {
  flex-direction: column;
  flex-grow: 1;
}

.p-galleria-thumbnails-left .p-galleria-thumbnail-items,
.p-galleria-thumbnails-right .p-galleria-thumbnail-items {
  flex-direction: column;
  height: 100%;
}

/* Indicators */
.p-galleria-indicators {
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-galleria-indicator > button {
  display: inline-flex;
  align-items: center;
}

.p-galleria-indicators-left .p-galleria-item-wrapper,
.p-galleria-indicators-right .p-galleria-item-wrapper {
  flex-direction: row;
  align-items: center;
}

.p-galleria-indicators-left .p-galleria-item-container,
.p-galleria-indicators-top .p-galleria-item-container {
  order: 2;
}

.p-galleria-indicators-left .p-galleria-indicators,
.p-galleria-indicators-top .p-galleria-indicators {
  order: 1;
}

.p-galleria-indicators-left .p-galleria-indicators,
.p-galleria-indicators-right .p-galleria-indicators {
  flex-direction: column;
}

.p-galleria-indicator-onitem .p-galleria-indicators {
  position: absolute;
  display: flex;
  z-index: 1;
}

.p-galleria-indicator-onitem.p-galleria-indicators-top .p-galleria-indicators {
  top: 0;
  left: 0;
  width: 100%;
  align-items: flex-start;
}

.p-galleria-indicator-onitem.p-galleria-indicators-right
  .p-galleria-indicators {
  right: 0;
  top: 0;
  height: 100%;
  align-items: flex-end;
}

.p-galleria-indicator-onitem.p-galleria-indicators-bottom
  .p-galleria-indicators {
  bottom: 0;
  left: 0;
  width: 100%;
  align-items: flex-end;
}

.p-galleria-indicator-onitem.p-galleria-indicators-left .p-galleria-indicators {
  left: 0;
  top: 0;
  height: 100%;
  align-items: flex-start;
}

/* FullScreen */
.p-galleria-mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-galleria-close {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.p-galleria-mask .p-galleria-item-nav {
  position: fixed;
  top: 50%;
  margin-top: -0.5rem;
}

/* Animation */
.p-galleria-enter-active {
  transition: all 150ms cubic-bezier(0, 0, 0.2, 1);
}

.p-galleria-leave-active {
  transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.p-galleria-enter-from,
.p-galleria-leave-to {
  opacity: 0;
  transform: scale(0.7);
}

.p-galleria-enter-active .p-galleria-item-nav {
  opacity: 0;
}

/* Keyboard Support */
.p-items-hidden .p-galleria-thumbnail-item {
  visibility: hidden;
}

.p-items-hidden .p-galleria-thumbnail-item.p-galleria-thumbnail-item-active {
  visibility: visible;
}

// theme
.p-galleria {
  .p-galleria-close {
    margin: $galleriaCloseIconMargin;
    background: $galleriaCloseIconBg;
    color: $galleriaCloseIconColor;
    width: $galleriaCloseIconWidth;
    height: $galleriaCloseIconHeight;
    transition: $actionIconTransition;
    border-radius: $galleriaCloseIconBorderRadius;

    .p-galleria-close-icon {
      font-size: $galleriaCloseIconFontSize;
    }

    .p-icon {
      width: $galleriaCloseIconFontSize;
      height: $galleriaCloseIconFontSize;
    }

    &:hover {
      background: $galleriaCloseIconHoverBg;
      color: $galleriaCloseIconHoverColor;
    }
  }

  .p-galleria-item-nav {
    background: $galleriaItemNavigatorBg;
    color: $galleriaItemNavigatorColor;
    width: $galleriaItemNavigatorWidth;
    height: $galleriaItemNavigatorHeight;
    transition: $actionIconTransition;
    border-radius: $galleriaItemNavigatorBorderRadius;
    margin: $galleriaItemNavigatorMargin;

    .p-galleria-item-prev-icon,
    .p-galleria-item-next-icon {
      font-size: $galleriaItemNavigatorFontSize;
    }

    .p-icon {
      width: $galleriaCloseIconFontSize;
      height: $galleriaCloseIconFontSize;
    }

    &:not(.p-disabled) {
      &:hover {
        background: $galleriaItemNavigatorHoverBg;
        color: $galleriaItemNavigatorHoverColor;
      }
    }
  }

  .p-galleria-caption {
    background: $galleriaCaptionBg;
    color: $galleriaCaptionTextColor;
    padding: $galleriaCaptionPadding;
  }

  .p-galleria-indicators {
    padding: $galleriaIndicatorsPadding;

    .p-galleria-indicator {
      button {
        background-color: $galleriaIndicatorBg;
        width: $galleriaIndicatorWidth;
        height: $galleriaIndicatorHeight;
        transition: $actionIconTransition;
        border-radius: $galleriaIndicatorBorderRadius;

        &:hover {
          background: $galleriaIndicatorHoverBg;
        }
      }

      &.p-highlight {
        button {
          background: $highlightBg;
          color: $highlightTextColor;
        }
      }
    }
  }

  &.p-galleria-indicators-bottom,
  &.p-galleria-indicators-top {
    .p-galleria-indicator {
      margin-right: $inlineSpacing;
    }
  }

  &.p-galleria-indicators-left,
  &.p-galleria-indicators-right {
    .p-galleria-indicator {
      margin-bottom: $inlineSpacing;
    }
  }

  &.p-galleria-indicator-onitem {
    .p-galleria-indicators {
      background: $galleriaIndicatorsBgOnItem;

      .p-galleria-indicator {
        button {
          background: $galleriaIndicatorBgOnItem;

          &:hover {
            background: $galleriaIndicatorHoverBgOnItem;
          }
        }

        &.p-highlight {
          button {
            background: $highlightBg;
            color: $highlightTextColor;
          }
        }
      }
    }
  }

  .p-galleria-thumbnail-container {
    background: $galleriaThumbnailContainerBg;
    padding: $galleriaThumbnailContainerPadding;

    .p-galleria-thumbnail-prev,
    .p-galleria-thumbnail-next {
      margin: $inlineSpacing;
      background-color: $galleriaThumbnailNavigatorBg;
      color: $galleriaThumbnailNavigatorColor;
      width: $galleriaThumbnailNavigatorWidth;
      height: $galleriaThumbnailNavigatorHeight;
      transition: $actionIconTransition;
      border-radius: $galleriaThumbnailNavigatorBorderRadius;

      &:hover {
        background: $galleriaThumbnailNavigatorHoverBg;
        color: $galleriaThumbnailNavigatorHoverColor;
      }
    }

    .p-galleria-thumbnail-item-content {
      outline-color: transparent;

      &:focus-visible {
        @include focused();
      }
    }
  }
}

.p-galleria-mask {
  --maskbg: #{$galleriaMaskBg};
}
