/*!********************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./apps/frontend-gallery/loader.scss ***!
  \********************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * Critical styles for the thin loader entry (pending shell before React bootstrap).
 *
 * @package
 */
/**
 * Shared gallery mount shell (loader + bootstrap bundle).
 *
 * @package
 */
/*
 * Visually hide SSR tiles until React has painted real layout markup.
 * (sr-only pattern — keeps nodes in DOM for SEO/crawlers.)
 */
.modula.modula-gallery:not(.modula-gallery-initialized) .modula-items,
.modula.modula-gallery:not(.modula-gallery-initialized) .filters,
.modula.modula-gallery:not(.modula-gallery-initialized) .modula-pagination,
.modula.modula-gallery:not(.modula-gallery-initialized) a.post-edit-link {
  visibility: hidden;
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}

.modula.modula-gallery {
  opacity: 0;
  visibility: hidden;
  /*
   * Filter/pagination chrome mounts with React; keep hidden until styles are ready.
   */
  /*
   * Progressive reveal for image tiles when loading-effect animations are enabled.
   */
}
.modula.modula-gallery.modula-gallery--bootstrap-pending {
  opacity: 1;
  visibility: visible;
  min-height: 120px;
  position: relative;
}
.modula.modula-gallery.modula-gallery-initialized {
  opacity: 1;
  visibility: visible;
  /*
   * Lazy layout chunks (custom grid, masonry, etc.) mount after init;
   * stay hidden until at least one tile exists to avoid the white flash.
   */
}
.modula.modula-gallery.modula-gallery-initialized:not(:has(.modula-items .modula-item)) {
  opacity: 0;
  visibility: hidden;
  min-height: 120px;
}
.modula.modula-gallery.modula-gallery-initialized:not(.modula-gallery-chrome-ready) .filters,
.modula.modula-gallery.modula-gallery-initialized:not(.modula-gallery-chrome-ready) .modula-pagination {
  visibility: hidden !important;
}
.modula.modula-gallery.modula-gallery-initialized[class*=modula-loaded-] .modula-items .modula-item:not(.modula-item--embedded):not(.tg-loaded) .modula-item-content {
  opacity: 0;
}

.modula-gallery__bootstrap-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 6rem;
  padding: 24px;
  font-size: 0.9375rem;
  color: #646970;
}

.modula-gallery__bootstrap-retry {
  appearance: none;
  border: 1px solid #c3c4c7;
  border-radius: 4px;
  background: #fff;
  color: #1d2327;
  cursor: pointer;
  font-size: 0.875rem;
  line-height: 1.4;
  padding: 8px 16px;
}
.modula-gallery__bootstrap-retry:hover {
  border-color: #8c8f94;
}

.modula-gallery__error-boundary,
.modula-gallery__lightbox-error {
  padding: 16px 24px;
  color: #646970;
  font-size: 0.9375rem;
  text-align: center;
}

.modula-gallery__error-boundary-retry {
  appearance: none;
  border: 1px solid #c3c4c7;
  border-radius: 4px;
  background: #fff;
  color: #1d2327;
  cursor: pointer;
  font-size: 0.875rem;
  margin-top: 12px;
  padding: 8px 16px;
}

.modula-gallery__chunk-loading {
  min-height: 1px;
}

/**
 * Critical visitor chrome (filters, pagination) — loaded with the thin loader CSS
 * so React filter/pagination markup is never unstyled on slow connections.
 *
 * @package
 */
.modula .filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  align-items: center;
}

.modula .filters--align-center {
  justify-content: center;
}

.modula .filters--align-right {
  justify-content: flex-end;
}

.modula .filters button {
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: transparent;
  padding: 0.35rem 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.modula .filters button.active {
  font-weight: 600;
}

.modula .filters--dropdown {
  position: relative;
}

.modula .filters__dropdown-menu {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 20;
  background: #fff;
  padding: 0.5rem;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  min-width: 10rem;
}

.modula .modula-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: center;
  margin-top: 1rem;
}

.modula .modula-pagination.modula-pagination--left {
  justify-content: flex-start;
}

.modula .modula-pagination.modula-pagination--center {
  justify-content: center;
}

.modula .modula-pagination.modula-pagination--right {
  justify-content: flex-end;
}

.modula .modula-pagination button,
.modula .modula-pagination__load-more {
  border: 1px solid rgba(0, 0, 0, 0.15);
  background: #fff;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.modula .modula-pagination button.active {
  font-weight: 700;
}

.modula.modula-gallery {
  transition: opacity 0.3s, visibility 0.3s;
}

/*# sourceMappingURL=modula-gallery.css.map*/