/*
	Abstracts are helpers, variables and functions
	for scss compliation.
*/
/*
	@TODO: Add to theme: new division fix for updated sass package.
*/
/**==================================================================================================================================
BREAKPOINT
@TODO: remove? What is use case?? either use simple global points or write custom line. why does first breakpoint have to be 0?
 ==================================================================================================================================*/
/**==================================================================================================================================
BREAKPOINT ENDS
==================================================================================================================================*/
span.edit-link {
  display: inline-block;
  background-color: yellow;
  font-weight: 700;
  position: fixed;
  left: 0;
  bottom: 3.125rem;
  transform: translateX(-45px);
  transition: all 0.2s;
}

span.edit-link a {
  display: block;
  padding: 0.9375rem;
}

span.edit-link:hover {
  transform: translateX(0);
}

/*
	Variables for compliation
	NB! Colors should be added to base/config file as css root variable.
*/
/**
 * Block section background colors.
 * Include the background options ACF fields group to use these.
 */
/**
 *	Fluid sized fonts
 *	Read more here:
 *	https://css-tricks.com/snippets/css/fluid-typography/
 */
/*
 * makes ul/ol as a dropdown select (normaly in mobile)
 * Structure: div > title > list > li > a
*/
/*
	Variables for legacy dc plugins
*/
section.image-gallery {
  --grid-columns: 4;
  --grid-gap: var(--spacing-xs, 0.5rem);
  --hover-scale: 1.04;
  --hover-duration: 0.4s;
  --lightbox-bg: rgba(0, 0, 0, 0.92);
  --lightbox-transition: 0.3s ease;
}

section.image-gallery .block-section-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md, 2rem);
  padding-top: 2rem;
}

section.image-gallery .block-section-wrapper .news-slider-header {
  align-self: flex-start;
  margin: 1.5rem 0 0.75rem;
}

section.image-gallery .image-gallery__grid {
  -moz-columns: var(--grid-columns);
       columns: var(--grid-columns);
  -moz-column-gap: var(--grid-gap);
       column-gap: var(--grid-gap);
}

section.image-gallery .image-gallery__item {
  margin: 0 0 var(--grid-gap) 0;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
}

section.image-gallery .image-gallery__item.has-caption:hover .image-gallery__overlay {
  opacity: 1;
}

section.image-gallery .image-gallery__trigger {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  cursor: pointer;
  -webkit-appearance: none;
}

section.image-gallery .image-gallery__img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 0;
  line-height: 0;
  transition: border-radius var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.image-gallery__trigger:hover section.image-gallery .image-gallery__img-wrap, .image-gallery__trigger:focus-visible section.image-gallery .image-gallery__img-wrap {
  border-radius: 10px;
}

section.image-gallery .image-gallery__img {
  width: 100%;
  height: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}

.image-gallery__trigger:hover section.image-gallery .image-gallery__img, .image-gallery__trigger:focus-visible section.image-gallery .image-gallery__img {
  transform: scale(var(--hover-scale));
}

section.image-gallery .image-gallery__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 1.25rem;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.3) 30%, rgba(0, 0, 0, 0) 60%);
  opacity: 0;
  transition: opacity var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94);
  pointer-events: none;
}

.image-gallery__trigger:hover section.image-gallery .image-gallery__overlay, .image-gallery__trigger:focus-visible section.image-gallery .image-gallery__overlay {
  opacity: 1;
}

section.image-gallery .image-gallery__overlay-text {
  color: #fff;
  font-size: var(--font-size-small, 0.85rem);
  line-height: 1.4;
  text-align: left;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

section.image-gallery .image-gallery__caption {
  display: none;
}

section.image-gallery .image-gallery__lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--lightbox-transition), visibility var(--lightbox-transition);
}

section.image-gallery .image-gallery__lightbox.is-active {
  opacity: 1;
  visibility: visible;
}

section.image-gallery .image-gallery__lightbox-overlay {
  position: absolute;
  inset: 0;
  background: var(--lightbox-bg);
}

section.image-gallery .image-gallery__lightbox-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 85vw;
  max-height: 85vh;
}

section.image-gallery .image-gallery__lightbox-pagination {
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--font-size-small, 0.85rem);
  margin-bottom: var(--spacing-xs, 0.5rem);
  letter-spacing: 0.05em;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

section.image-gallery .image-gallery__lightbox-figure {
  margin: 0;
  line-height: 0;
  text-align: center;
}

section.image-gallery .image-gallery__lightbox-img {
  max-width: 85vw;
  max-height: 80vh;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: var(--radius-sm, 4px);
  opacity: 0;
  transition: opacity 0.25s ease;
}

section.image-gallery .image-gallery__lightbox-img.is-loaded {
  opacity: 1;
}

section.image-gallery .image-gallery__lightbox-caption {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--font-size-small, 0.85rem);
  margin-top: var(--spacing-xs, 0.5rem);
  line-height: 1;
}

section.image-gallery .image-gallery__lightbox-close,
section.image-gallery .image-gallery__lightbox-prev,
section.image-gallery .image-gallery__lightbox-next {
  position: fixed;
  z-index: 2;
  background: none;
  border: 0;
  color: #fff;
  cursor: pointer;
  padding: 0.75rem;
  opacity: 0.7;
  transition: opacity 0.2s ease;
  -webkit-appearance: none;
}

section.image-gallery .image-gallery__lightbox-close:hover, section.image-gallery .image-gallery__lightbox-close:focus-visible,
section.image-gallery .image-gallery__lightbox-prev:hover,
section.image-gallery .image-gallery__lightbox-prev:focus-visible,
section.image-gallery .image-gallery__lightbox-next:hover,
section.image-gallery .image-gallery__lightbox-next:focus-visible {
  opacity: 1;
}

section.image-gallery .image-gallery__lightbox-close svg,
section.image-gallery .image-gallery__lightbox-prev svg,
section.image-gallery .image-gallery__lightbox-next svg {
  display: block;
}

section.image-gallery .image-gallery__lightbox-close {
  top: 3rem;
  right: 3rem;
}

section.image-gallery .image-gallery__lightbox-prev {
  top: 50%;
  left: 3rem;
  transform: translateY(-50%);
}

section.image-gallery .image-gallery__lightbox-next {
  top: 50%;
  right: 3rem;
  transform: translateY(-50%);
}

@media (max-width: 600px) {
  section.image-gallery .image-gallery__lightbox-prev,
section.image-gallery .image-gallery__lightbox-next {
    display: none;
  }
}
@media (max-width: 768px) {
  section.image-gallery .image-gallery__lightbox-close {
    top: 1.5rem;
    right: 1.5rem;
  }
  section.image-gallery .image-gallery__lightbox-prev {
    left: 1rem;
  }
  section.image-gallery .image-gallery__lightbox-next {
    right: 1rem;
  }
}
@media (max-width: 1024px) {
  section.image-gallery {
    --grid-columns: 3;
  }
}
@media (max-width: 768px) {
  section.image-gallery {
    --grid-columns: 2;
  }
}
@media (max-width: 480px) {
  section.image-gallery {
    --grid-columns: 1;
  }
}
