/*!*******************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./apps/frontend-gallery/index.scss ***!
  \*******************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * 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;
  align-items: center;
  justify-content: center;
  min-height: 6rem;
  padding: 24px;
  font-size: 0.9375rem;
  color: #646970;
}

/* Composable hover (v2): classes from PHP Modula_Item_Data_Processor::process_hover_effects */
.modula .modula-items .modula-item.modula-hover-v2 .figc-inner {
  display: flex;
  flex-direction: column;
  gap: 0.35em;
  align-items: stretch;
}

.modula .modula-items .modula-item.modula-hover-v2 .modula-title {
  order: var(--modula-hover-ord-title, 0);
}

.modula .modula-items .modula-item.modula-hover-v2 .jtg-description {
  order: var(--modula-hover-ord-caption, 1);
}

.modula .modula-items .modula-item.modula-hover-v2 .modula-social {
  order: var(--modula-hover-ord-social, 2);
}

/* Card treatments (image area) — PHP nests img in `.modula-item-content`; React uses sibling `.modula-item-picture`. */
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--zoom .modula-item-content img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--zoom .modula-item-picture img {
  transition: transform var(--modula-hover-card-enter-duration, 350ms) ease;
  transition-delay: 0ms;
  transform: scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--zoom:hover .modula-item-content img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--zoom:hover .modula-item-picture img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--zoom:focus-within:has(:focus-visible) .modula-item-content img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--zoom:focus-within:has(:focus-visible) .modula-item-picture img {
  transition-delay: var(--modula-hover-card-enter-delay, 0ms);
  transform: scale(1.06);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--grayscale .modula-item-content img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--grayscale .modula-item-picture img {
  transition: filter var(--modula-hover-card-enter-duration, 350ms) ease;
  transition-delay: 0ms;
  filter: grayscale(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--grayscale:hover .modula-item-content img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--grayscale:hover .modula-item-picture img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--grayscale:focus-within:has(:focus-visible) .modula-item-content img,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--grayscale:focus-within:has(:focus-visible) .modula-item-picture img {
  transition-delay: var(--modula-hover-card-enter-delay, 0ms);
  filter: grayscale(1);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--lift {
  transition: transform var(--modula-hover-card-enter-duration, 250ms) ease, box-shadow var(--modula-hover-card-enter-duration, 250ms) ease;
  transition-delay: 0ms;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--lift:hover,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--lift:focus-within:has(:focus-visible) {
  transition-delay: var(--modula-hover-card-enter-delay, 0ms);
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
}

/*
 * Dim overlay add-on: stacks with other card treatments. Same rules as legacy --dim class.
 * Tint / strength: --modula-hover-overlay-tint / --modula-hover-dim-active-opacity on #modula-{id} or the item.
 */
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--dim .modula-item-overlay,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--dim-addon .modula-item-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-color: var(--modula-hover-overlay-tint, rgba(0, 0, 0, 0.55));
  transition: opacity var(--modula-hover-card-enter-duration, 300ms) ease;
  transition-delay: 0ms;
  opacity: 0;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--dim:hover .modula-item-overlay,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--dim:focus-within:has(:focus-visible) .modula-item-overlay,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--dim-addon:hover .modula-item-overlay,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-card--dim-addon:focus-within:has(:focus-visible) .modula-item-overlay {
  transition-delay: var(--modula-hover-card-enter-delay, 0ms);
  opacity: var(--modula-hover-dim-active-opacity, 0.55);
}

/* Slot entrance: subtle motion until hover */
.modula .modula-items .modula-item.modula-hover-v2 .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2 .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2 .figc .modula-social {
  transition: opacity var(--modula-hover-enter-duration, 280ms) ease, transform var(--modula-hover-enter-duration, 280ms) ease, filter var(--modula-hover-enter-duration, 280ms) ease;
}

.modula .modula-items .modula-item.modula-hover-v2 .figc .modula-title {
  --modula-hover-enter-duration: var(--modula-hover-enter-duration-title, 280ms);
  transition-delay: var(--modula-hover-enter-delay-title, 0ms);
}

.modula .modula-items .modula-item.modula-hover-v2 .figc .jtg-description {
  --modula-hover-enter-duration: var(--modula-hover-enter-duration-caption, 280ms);
  transition-delay: var(--modula-hover-enter-delay-caption, 0ms);
}

.modula .modula-items .modula-item.modula-hover-v2 .figc .modula-social {
  --modula-hover-enter-duration: var(--modula-hover-enter-duration-social, 280ms);
  transition-delay: var(--modula-hover-enter-delay-social, 0ms);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--fade .figc .modula-title {
  opacity: 0;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--fade:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--fade:focus-within:has(:focus-visible) .figc .modula-title {
  opacity: 1;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--fade .figc .jtg-description {
  opacity: 0;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--fade:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--fade:focus-within:has(:focus-visible) .figc .jtg-description {
  opacity: 1;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--fade .figc .modula-social {
  opacity: 0;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--fade:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--fade:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-up .figc .modula-title {
  opacity: 0;
  transform: translateY(12px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-up:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-up:focus-within:has(:focus-visible) .figc .modula-title {
  opacity: 1;
  transform: translateY(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-up .figc .jtg-description {
  opacity: 0;
  transform: translateY(12px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-up:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-up:focus-within:has(:focus-visible) .figc .jtg-description {
  opacity: 1;
  transform: translateY(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-up .figc .modula-social {
  opacity: 0;
  transform: translateY(12px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-up:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-up:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translateY(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-down .figc .modula-title {
  opacity: 0;
  transform: translateY(-12px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-down:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-down:focus-within:has(:focus-visible) .figc .modula-title {
  opacity: 1;
  transform: translateY(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-down .figc .jtg-description {
  opacity: 0;
  transform: translateY(-12px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-down:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-down:focus-within:has(:focus-visible) .figc .jtg-description {
  opacity: 1;
  transform: translateY(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-down .figc .modula-social {
  opacity: 0;
  transform: translateY(-12px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-down:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-down:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translateY(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-left .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-left .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-left .figc .modula-social {
  opacity: 0;
  transform: translateX(16px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-left:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-left:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-left:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-left:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-left:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-left:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translateX(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-right .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-right .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-right .figc .modula-social {
  opacity: 0;
  transform: translateX(-16px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-right:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--slide-right:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-right:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--slide-right:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-right:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--slide-right:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translateX(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--blur-in .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--blur-in .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--blur-in .figc .modula-social {
  opacity: 0;
  filter: blur(5px);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--blur-in:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--blur-in:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--blur-in:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--blur-in:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--blur-in:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--blur-in:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  filter: blur(0);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--scale .figc .modula-title {
  opacity: 0;
  transform: scale(0.94);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--scale:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--title--scale:focus-within:has(:focus-visible) .figc .modula-title {
  opacity: 1;
  transform: scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--scale .figc .jtg-description {
  opacity: 0;
  transform: scale(0.94);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--scale:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--caption--scale:focus-within:has(:focus-visible) .figc .jtg-description {
  opacity: 1;
  transform: scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--scale .figc .modula-social {
  opacity: 0;
  transform: scale(0.94);
}

.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--scale:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2.modula-hover-enter--social--scale:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: scale(1);
}

/* Free-position slots (percent anchors on the tile). */
.modula .modula-items .modula-item.modula-hover-v2--free-slots .modula-item-content {
  position: relative;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc {
  position: absolute;
  inset: 0;
  padding: 0;
  margin: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.35) 100%);
  /* Diamond graphic: square sized from min(tile width, tile height). */
  container-type: size;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc-inner {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--frame .figc::before,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--diamond .figc::before {
  content: "";
  position: absolute;
  border: 2px solid rgba(255, 255, 255, 0.92);
  pointer-events: none;
  opacity: 0;
  transition: opacity 220ms ease, transform 220ms ease;
  z-index: 3;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--frame .figc::before {
  inset: 10%;
}

/* Square in tile space, then rotate — avoids stretched rhombus on wide custom-grid tiles. */
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--diamond .figc::before {
  inset: auto;
  left: 50%;
  top: 50%;
  width: min(64cqw, 64cqh);
  height: min(64cqw, 64cqh);
  transform: translate(-50%, -50%) rotate(45deg) scale(0.92);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--frame:hover .figc::before,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--frame:focus-within:has(:focus-visible) .figc::before {
  opacity: 1;
  transform: scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--diamond:hover .figc::before,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic--diamond:focus-within:has(:focus-visible) .figc::before {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(45deg) scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic-visibility--always.modula-hover-graphic--frame .figc::before,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic-visibility--always.modula-hover-graphic--diamond .figc::before {
  opacity: 1;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic-visibility--always.modula-hover-graphic--frame .figc::before {
  transform: scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-graphic-visibility--always.modula-hover-graphic--diamond .figc::before {
  transform: translate(-50%, -50%) rotate(45deg) scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc .modula-social {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  min-width: 0;
  width: max-content;
  overflow-wrap: anywhere;
  word-break: break-word;
  order: unset;
  z-index: 3;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc .jtg-description p {
  margin: 0;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc .modula-title {
  left: var(--modula-hover-slot-title-x, 50%);
  top: var(--modula-hover-slot-title-y, 18%);
  --modula-hover-slot-anchor: var(--modula-hover-slot-anchor-title, 0%);
  max-width: min(var(--modula-hover-slot-max-width-title, 50%), 100% - 0.75rem);
  text-align: var(--modula-hover-slot-text-align-title, left);
  transform: translate(var(--modula-hover-slot-anchor-title, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc .jtg-description {
  left: var(--modula-hover-slot-caption-x, 50%);
  top: var(--modula-hover-slot-caption-y, 50%);
  --modula-hover-slot-anchor: var(--modula-hover-slot-anchor-caption, 0%);
  max-width: min(var(--modula-hover-slot-max-width-caption, 50%), 100% - 0.75rem);
  text-align: var(--modula-hover-slot-text-align-caption, left);
  transform: translate(var(--modula-hover-slot-anchor-caption, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots .figc .modula-social {
  left: var(--modula-hover-slot-social-x, 50%);
  top: var(--modula-hover-slot-social-y, 82%);
  --modula-hover-slot-anchor: var(--modula-hover-slot-anchor-social, 0%);
  max-width: min(var(--modula-hover-slot-max-width-social, 50%), 100% - 0.75rem);
  text-align: var(--modula-hover-slot-text-align-social, left);
  transform: translate(var(--modula-hover-slot-anchor-social, 0%), -50%);
}

/* Show on hover: keep layers hidden until the tile is hovered or keyboard-focused. */
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--title--on-hover:not(:hover):not(:focus-within:has(:focus-visible)) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--caption--on-hover:not(:hover):not(:focus-within:has(:focus-visible)) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--social--on-hover:not(:hover):not(:focus-within:has(:focus-visible)) .figc .modula-social {
  opacity: 0;
  pointer-events: none;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--title--on-hover:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--title--on-hover:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--caption--on-hover:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--caption--on-hover:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--social--on-hover:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--social--on-hover:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  pointer-events: auto;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--title--always .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--caption--always .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--social--always .figc .modula-social {
  opacity: 1;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--title--hide-on-hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--caption--hide-on-hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--social--hide-on-hover .figc .modula-social {
  opacity: 1;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--title--hide-on-hover:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--title--hide-on-hover:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--caption--hide-on-hover:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--caption--hide-on-hover:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--social--hide-on-hover:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-visibility--social--hide-on-hover:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
}

/* Hide-on-hover: use chosen motion as an exit transition. */
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--fade:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--fade:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--fade:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--fade:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--fade:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--fade:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
  transition-delay: 0ms;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-up:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-up:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-up:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-up:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-up:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-up:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor, 0%), calc(-50% - 12px));
  transition-delay: 0ms;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-down:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-down:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-down:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-down:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-down:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-down:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor, 0%), calc(-50% + 12px));
  transition-delay: 0ms;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-left:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-left:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-left:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-left:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-left:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-left:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
  transform: translate(calc(var(--modula-hover-slot-anchor, 0%) - 16px), -50%);
  transition-delay: 0ms;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-right:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--slide-right:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-right:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--slide-right:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-right:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--slide-right:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
  transform: translate(calc(var(--modula-hover-slot-anchor, 0%) + 16px), -50%);
  transition-delay: 0ms;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--blur-in:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--blur-in:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--blur-in:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--blur-in:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--blur-in:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--blur-in:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
  filter: blur(5px);
  transition-delay: 0ms;
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--scale:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--title--scale:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--scale:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--caption--scale:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--scale:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-exit--social--scale:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor, 0%), -50%) scale(0.94);
  transition-delay: 0ms;
}

/* Entrance + anchor: combine centering with motion (higher specificity than rules above). */
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--fade .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--fade .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--fade .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--fade:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--fade:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--fade:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--fade:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--fade:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--fade:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-up .figc .modula-title {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-title, 0%), calc(-50% + 12px));
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-up:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-up:focus-within:has(:focus-visible) .figc .modula-title {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-title, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-up .figc .jtg-description {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-caption, 0%), calc(-50% + 12px));
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-up:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-up:focus-within:has(:focus-visible) .figc .jtg-description {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-caption, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-up .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-social, 0%), calc(-50% + 12px));
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-up:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-up:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-social, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-down .figc .modula-title {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-title, 0%), calc(-50% - 12px));
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-down:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-down:focus-within:has(:focus-visible) .figc .modula-title {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-title, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-down .figc .jtg-description {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-caption, 0%), calc(-50% - 12px));
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-down:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-down:focus-within:has(:focus-visible) .figc .jtg-description {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-caption, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-down .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-social, 0%), calc(-50% - 12px));
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-down:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-down:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-social, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-left .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-left .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-left .figc .modula-social {
  opacity: 0;
  transform: translate(calc(var(--modula-hover-slot-anchor, 0%) + 16px), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-left:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-left:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-left:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-left:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-left:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-left:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-right .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-right .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-right .figc .modula-social {
  opacity: 0;
  transform: translate(calc(var(--modula-hover-slot-anchor, 0%) - 16px), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-right:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--slide-right:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-right:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--slide-right:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-right:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--slide-right:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor, 0%), -50%);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--blur-in .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--blur-in .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--blur-in .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor, 0%), -50%);
  filter: blur(5px);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--blur-in:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--blur-in:focus-within:has(:focus-visible) .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--blur-in:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--blur-in:focus-within:has(:focus-visible) .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--blur-in:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--blur-in:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor, 0%), -50%);
  filter: blur(0);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--scale .figc .modula-title {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-title, 0%), -50%) scale(0.94);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--scale:hover .figc .modula-title,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--title--scale:focus-within:has(:focus-visible) .figc .modula-title {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-title, 0%), -50%) scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--scale .figc .jtg-description {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-caption, 0%), -50%) scale(0.94);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--scale:hover .figc .jtg-description,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--caption--scale:focus-within:has(:focus-visible) .figc .jtg-description {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-caption, 0%), -50%) scale(1);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--scale .figc .modula-social {
  opacity: 0;
  transform: translate(var(--modula-hover-slot-anchor-social, 0%), -50%) scale(0.94);
}

.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--scale:hover .figc .modula-social,
.modula .modula-items .modula-item.modula-hover-v2--free-slots.modula-hover-enter--social--scale:focus-within:has(:focus-visible) .figc .modula-social {
  opacity: 1;
  transform: translate(var(--modula-hover-slot-anchor-social, 0%), -50%) scale(1);
}

/* Title & caption below the image tile (captions.contentPlacement = below-image). */
.modula .modula-items .modula-item.modula-caption-below-image {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area {
  position: relative;
  width: 100%;
  flex: 0 0 auto;
  overflow: hidden;
}

.modula .modula-items .modula-item.modula-caption-below-image.modula-caption-below-image--fixed-tile {
  height: 100%;
  min-height: 0;
}

.modula .modula-items .modula-item.modula-caption-below-image.modula-caption-below-image--fixed-tile .modula-item-image-area:not(.modula-uniform-grid__media) {
  flex: 1 1 0;
  min-height: 0;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area > a.tile-inner,
.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area > a.modula-item-link {
  position: absolute;
  inset: 0;
  z-index: 5;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area .modula-item-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area .modula-item-content {
  position: absolute;
  inset: 0;
  height: auto;
  opacity: 1;
  pointer-events: none;
  z-index: 2;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area .modula-item-picture:not(.modula-item-picture--focal-crop) {
  position: relative;
  inset: auto;
  width: 100%;
  height: auto;
  overflow: visible;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area .modula-item-picture:not(.modula-item-picture--focal-crop) img,
.modula .modula-items .modula-item.modula-caption-below-image .modula-item-image-area .modula-item-picture:not(.modula-item-picture--focal-crop) img.pic {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  position: relative;
  object-fit: initial;
}

.modula .modula-items .modula-item.modula-caption-below-image.modula-caption-below-image--fixed-tile .modula-item-image-area .modula-item-picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.modula .modula-items .modula-item.modula-caption-below-image.modula-caption-below-image--fixed-tile .modula-item-image-area .modula-item-picture:not(.modula-item-picture--focal-crop) img,
.modula .modula-items .modula-item.modula-caption-below-image.modula-caption-below-image--fixed-tile .modula-item-image-area .modula-item-picture:not(.modula-item-picture--focal-crop) img.pic {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption {
  flex: 0 0 auto;
  width: 100%;
  padding: 0;
  color: #1e1e1e;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption .jtg-description {
  color: #50575e;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption--align-left {
  text-align: left;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption--align-center {
  text-align: center;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption--align-right {
  text-align: right;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption .modula-title,
.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption .jtg-description {
  position: static;
  transform: none;
  opacity: 1;
  max-width: none;
  width: 100%;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-below-caption .modula-title::before {
  display: none;
}

/* PHP SSR: figc stays in flow below the image inside modula-item-content. */
.modula .modula-items .modula-item.modula-caption-below-image:not(.modula-hover-v2) > .modula-item-content,
.modula .modula-items .modula-item.modula-caption-below-image.modula-hover-v2 > .modula-item-content {
  position: relative;
  inset: auto;
  display: flex;
  flex-direction: column;
  height: auto;
  opacity: 1;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-content > img,
.modula .modula-items .modula-item.modula-caption-below-image .modula-item-content > picture,
.modula .modula-items .modula-item.modula-caption-below-image > .modula-item-picture {
  order: 1;
  position: relative;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-content > .figc {
  order: 2;
  position: relative;
  inset: auto;
  height: auto !important;
  padding: 0;
  opacity: 1;
  transform: none;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-content .figc .modula-title,
.modula .modula-items .modula-item.modula-caption-below-image .modula-item-content .figc .jtg-description,
.modula .modula-items .modula-item.modula-caption-below-image .modula-item-content .figc p.description {
  position: static;
  transform: none;
  opacity: 1;
}

.modula .modula-items .modula-item.modula-caption-below-image .modula-item-content .figc .modula-title::before {
  display: none;
}

/* Masonry columns: match in-flow img rules when picture sits in image-area. */
.modula-masonry-react .modula-caption-below-image .modula-item-image-area .modula-item-picture img.pic {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  position: relative;
}

/* Uniform grid: item stays auto-height; aspect ratio lives on the media wrapper. */
.modula .modula-uniform-grid .modula-uniform-grid__cell > .modula-item.modula-caption-below-image {
  height: auto !important;
  flex: 0 0 auto;
}

.modula .modula-uniform-grid .modula-item.modula-caption-below-image.modula-caption-below-image--fixed-tile {
  height: auto !important;
}

.modula .modula-uniform-grid .modula-item.modula-caption-below-image .modula-item-image-area.modula-uniform-grid__media {
  aspect-ratio: var(--modula-uniform-aspect, 1/1);
  flex: 0 0 auto;
  width: 100%;
  min-height: 0;
}

.modula .modula-uniform-grid.modula-uniform-grid--caption-below .modula-uniform-grid__cell > .modula-item.modula-item--embedded {
  height: auto !important;
  aspect-ratio: var(--modula-uniform-aspect, 1/1);
  min-height: clamp(5.5rem, 16vw, 11rem);
}

.modula .modula-video {
  /*
   * Playlist thumbs must not use legacy `.pic` (absolute fill + focal crop from modula.css).
   * Frame holds 16:9; image fills the frame centered.
   */
}
.modula .modula-video .modula-video-player-wrap {
  position: relative;
}
.modula .modula-video .modula-video-player-wrap.playlist_right {
  display: flex;
  flex-direction: row;
  gap: 10px;
}
.modula .modula-video .modula-video-player-wrap.playlist_right .modula-video-main-item {
  width: 80%;
  position: relative;
}
.modula .modula-video .modula-video-player-wrap.playlist_right .modula-video-items-wrap {
  width: 20%;
  position: relative;
  overflow: hidden;
}
.modula .modula-video .modula-video-player-wrap.playlist_bottom .modula-video-main-item,
.modula .modula-video .modula-video-player-wrap.playlist_bottom .modula-video-items-wrap {
  width: 100%;
  position: relative;
}
.modula .modula-video .modula-video-player-wrap.playlist_right .modula-video-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: absolute;
  right: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  padding-right: 10px;
  padding-bottom: 10px;
}
.modula .modula-video .modula-video-player-wrap.playlist_bottom .modula-video-items {
  display: flex;
  flex-direction: row;
  column-gap: 10px;
  width: 100%;
  overflow-x: auto;
}
.modula .modula-video .modula-video-player-wrap.playlist_bottom .modula-video-item {
  flex: 0 0 calc(20% - 8px);
  box-sizing: border-box;
  margin-bottom: 10px;
}
.modula .modula-video .modula-video-player-wrap.playlist_bottom .modula-video-items-wrap {
  margin-top: 10px;
}
.modula .modula-video .modula-video-main-item-content,
.modula .modula-video .modula-video-main-item-aspect {
  position: relative;
  width: 100%;
}
.modula .modula-video .modula-video-main-item-aspect {
  padding-top: 56.25%;
  background: #000;
}
.modula .modula-video .modula-video-gallery__player-mount {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.modula .modula-video .modula-video-gallery__player-mount iframe,
.modula .modula-video .modula-video-gallery__player-mount video,
.modula .modula-video .modula-video-gallery__html5 {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #000;
}
.modula .modula-video .modula-video-gallery__poster-btn {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  z-index: 2;
}
.modula .modula-video .modula_video_preview_image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.modula .modula-video .modula-video-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 3;
  width: auto;
  height: auto;
}
.modula .modula-video .modula-video-items .modula-video-item {
  position: relative;
  width: 100%;
  flex-shrink: 0;
  box-sizing: border-box;
}
.modula .modula-video .modula-video-items .modula-item-content {
  position: relative;
  background-color: #fff;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
}
.modula .modula-video .modula-video-gallery__thumb-frame {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  line-height: 0;
  position: relative;
  z-index: 0;
}
.modula .modula-video .modula-video-gallery__thumb-frame .modula-video-icon {
  z-index: 25;
}
.modula .modula-video .modula-video-list-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  z-index: 20;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.modula .modula-video .modula-video-items img.modula-video-gallery__thumb {
  display: block !important;
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #e8e8e8;
}
.modula .modula-video .modula-video-gallery__thumb--empty {
  width: 100%;
  height: 100%;
  background: #e8e8e8;
  object-fit: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.modula .modula-video .modula-video--empty {
  padding: 1rem;
  text-align: center;
}
.modula .modula-video .modula-video-gallery__empty {
  margin: 0;
  opacity: 0.7;
}

/**
 * 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 {
  position: relative;
  /*
   * Focal point (object-position) or crop: no transitions — themes often use
   * `img { transition: all }` which interpolates object-position / transform.
   * !important + html body beats uniform-grid / legacy blocks; inline style also set in JS.
   */
  /*
   * Focal crop tiles: JS sets --modula-focal-* on the img. Themes and layout blocks may use
   * `img { width:100% !important; object-fit:cover !important }`; html body prefix beats
   * uniform-grid / legacy layout overrides so editor + front match the cropper.
   */
  /**
   * v2 content_block tiles — large readable headline (poster-style defaults).
   */
}
.modula .modula-items .modula-item > .modula-item-link.tile-inner {
  position: absolute;
  inset: 0;
  z-index: 5;
}
.modula.modula-gallery .modula-gallery-title {
  margin: 0 0 16px;
  line-height: 1.3;
}
.modula img {
  width: 100%;
  transition: width 0.3s, height 0.3s, transform 0.3s linear, opacity 0.2s linear;
}
.modula img.modula-item-img--focal-point,
.modula img.modula-item-img--focal-crop {
  transition: none !important;
  transition-property: none !important;
}
html body .modula .modula-items img.modula-item-img--focal-crop {
  width: var(--modula-focal-w) !important;
  height: var(--modula-focal-h) !important;
  max-width: none !important;
  object-fit: fill !important;
  object-position: initial !important;
  position: absolute !important;
  left: var(--modula-focal-left) !important;
  top: var(--modula-focal-top) !important;
  transform: var(--modula-focal-transform, none) !important;
}
.modula .modula-item {
  overflow: hidden;
}
.modula .modula-item.modula-item--embedded-content-block .modula-item-content--embedded {
  display: flex;
  align-items: stretch;
}
.modula .modula-item.modula-item--embedded-content-block .modula-embedded-block-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-self: stretch;
  min-height: 100%;
  gap: 0.35em;
}
.modula .modula-item.modula-item--embedded-content-block .modula-embedded-block__title {
  font-size: clamp(1rem, 2.5vw + 0.55rem, 2.125rem);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin: 0;
}
.modula .modula-item.modula-item--embedded-content-block .modula-embedded-block__description {
  font-size: clamp(0.75rem, 1.1vw + 0.55rem, 0.9375rem);
  font-weight: 600;
  line-height: 1.3;
  opacity: 0.93;
  margin: 0;
}
.modula .modula-item.modula-item--embedded-content-block .modula-embedded-block__body {
  font-size: clamp(0.8125rem, 0.9vw + 0.6rem, 1rem);
  line-height: 1.45;
  font-weight: 500;
  margin: 0;
}
.modula .modula-item.modula-item--embedded-content-block .modula-embedded-block__body p {
  margin: 0 0 0.5em;
}
.modula .modula-item.modula-item--embedded-content-block .modula-embedded-block__body p:last-child {
  margin-bottom: 0;
}

/* Slider: Fancyapps Thumbs plugin bar under main carousel */
.modula .modula-slider {
  /*
   * Arrows sit over the viewport edges; full-slide lightbox links (.modula-item-link)
   * must stay below hit targets so prev/next receive clicks (theme .modula-items uses z-index: 1).
   */
  /*
   * “Card slider” look (Slick centerMode demos): rounded tiles + shadow.
   * Width/peek comes from --f-carousel-slide-width / center in sliderSettingsToCarousel.
   */
  /*
   * Fancy “is-centered” uses ::before/::after + margin:auto so the slide content stays
   * only as tall as the image — the rest of the tile shows empty background while
   * border-radius still wraps the full cell (truncated look at the bottom).
   * We want photos to fill the tile with cover; drop those spacers for our slider cards.
   */
  /* Fixed-height slider: crop slides to configured aspect (see SliderLayout shell style). */
  /* Adaptive height: slide height follows image; Fancyapps measures offsetHeight per page. */
  /* Editor preview chrome must not contribute to Fancyapps offsetHeight measurements. */
  /* Slider item captions (Pro: .slider-image-info + position classes) */
}
.modula .modula-slider .modula-items.f-carousel {
  isolation: isolate;
  /* Allow absolutely positioned arrows (siblings of the viewport) to stay clickable */
  overflow: visible;
  /* Prev/next: white circular hit area (Fancyapps --f-arrow-* → .f-button.is-arrow) */
  --f-arrow-bg: #fff;
  --f-arrow-hover-bg: #f3f3f3;
  --f-arrow-active-bg: #eaeaea;
  --f-arrow-border-radius: 50%;
  --f-arrow-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
  --f-arrow-color: #1a1a1a;
  --f-arrow-hover-color: #000;
  --f-arrow-width: 44px;
  --f-arrow-height: 44px;
  /*
   * Dots: Fancy “dynamic” mode adds class `active` on the current dot. Themes often
   * style `button.active` (border, ::before “stem”, shadows) which clashes with the
   * library’s circular ::after-only bullets — reset to keep a clean pill look.
   */
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__viewport {
  position: relative;
  z-index: 1;
}
.modula .modula-slider .modula-items.f-carousel .f-button.is-arrow.is-prev,
.modula .modula-slider .modula-items.f-carousel .f-button.is-arrow.is-next {
  z-index: 100;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot {
  appearance: none;
  background-color: transparent;
  border: 0;
  box-shadow: none;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot::before {
  display: none !important;
  content: none !important;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot.active, .modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot.padd, .modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot.small, .modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot.micro {
  border: 0;
  box-shadow: none;
  background-color: transparent;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot:focus {
  outline: none;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__dots .f-carousel__dot:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.35);
  outline-offset: 2px;
}
.modula .modula-slider.modula-gallery .modula-items.f-carousel .f-carousel__slide,
.modula .modula-slider .modula-items.f-carousel .f-carousel__slide {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.modula .modula-slider .modula-items.f-carousel.is-centered .f-carousel__slide::before,
.modula .modula-slider .modula-items.f-carousel.is-centered .f-carousel__slide::after {
  display: none;
}
.modula .modula-slider .modula-items.f-carousel.is-centered .f-carousel__slide {
  align-items: stretch;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__slide.modula-item {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: auto;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__slide .modula-item-link.tile-inner {
  position: absolute;
  inset: 0;
  z-index: 5;
}
.modula .modula-slider .modula-items.f-carousel .f-carousel__slide .modula-slider-image-wrapper {
  width: 100%;
  position: relative;
  z-index: 1;
}
.modula .modula-slider.modula-slider--fixed-height .modula-items.f-carousel .f-carousel__slide .modula-slider-image-wrapper {
  aspect-ratio: var(--modula-slider-slide-aspect, 16/9);
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.modula .modula-slider.modula-slider--fixed-height .modula-items.f-carousel .f-carousel__slide .modula-slider-image-wrapper > .modula-item-picture-stack {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.modula .modula-slider.modula-slider--fixed-height .modula-items.f-carousel .f-carousel__slide .modula-item-picture {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.modula .modula-slider.modula-slider--fixed-height .modula-items.f-carousel .f-carousel__slide .modula-item-picture:not(.modula-item-picture--focal-crop) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.modula .modula-slider.modula-slider--adaptive-height .modula-items.f-carousel .f-carousel__track {
  align-items: flex-start;
}
.modula .modula-slider.modula-slider--adaptive-height .modula-items.f-carousel .f-carousel__slide .modula-slider-image-wrapper {
  flex: 0 0 auto;
  display: block;
}
.modula .modula-slider.modula-slider--adaptive-height .modula-items.f-carousel .f-carousel__slide .modula-item-picture:not(.modula-item-picture--focal-crop) img {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
}
.modula .modula-slider.modula-slider--adaptive-height .modula-items.f-carousel .f-carousel__slide.modula-item {
  height: auto !important;
}
.modula .modula-slider.modula-slider--adaptive-height .modula-items.f-carousel .f-carousel__slide .modula-item-picture-stack {
  height: auto;
  min-height: 0;
}
.modula .modula-slider.modula-slider--adaptive-height .modula-items.f-carousel .f-carousel__slide .modula-item-preview-admin-mount {
  position: absolute;
  inset: 0;
  z-index: 120;
  pointer-events: none;
}
.modula .modula-slider .f-thumbs {
  margin-top: var(--modula-slider-thumbs-margin-top, 10px);
}
.modula .modula-slider .modula-items .modula-slider-image-wrapper .slider-image-info {
  width: 100%;
}
.modula .modula-slider .modula-items .modula-slider-image-wrapper .slider-image-info.top_inside {
  position: absolute;
  left: 0;
  top: 0;
}
.modula .modula-slider .modula-items .modula-slider-image-wrapper .slider-image-info.bot_inside {
  position: absolute;
  left: 0;
  bottom: 0;
}
.modula .modula-slider .slider-image-info.bot_inside,
.modula .modula-slider .slider-image-info.top_inside {
  background-color: rgba(56, 54, 54, 0.2509803922);
}

/*
 * Story layout — MUST live under `.modula`, not `.modula-parallax-masonry`.
 * (Story can render on any gallery page; parallax scope would drop all story CSS.)
 */
.modula .modula-story {
  width: 100%;
  /*
   * Frame: no flex here. StoryChrome is position:absolute; carousel is absolute inset.
   * Height comes from aspect-ratio + width only.
   * No fill background — slides are full-bleed; a dark fill (#0a0a0a) bleeds through
   * anti-aliased rounded corners when tile box-shadow/border is also applied.
   */
  /*
   * Tap zones: themes/WP often style button:focus with outline/box-shadow — reset with
   * high specificity (.modula.modula-gallery …) so story chrome stays clean.
   */
  /*
   * Settings-editor live preview: wrapping row — several portrait tiles per line when width allows,
   * then next row (“una sub alta” per rând); no horizontal scroll on the strip. 9:16 + Focus modal.
   */
}
.modula .modula-story .modula-story__frame {
  position: relative;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  aspect-ratio: 9/16;
  max-height: min(90vh, 900px);
  border-radius: 14px;
  overflow: hidden;
  background: transparent;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}
.modula .modula-story .modula-story__frame > .modula-items.f-carousel .f-carousel__viewport {
  border-radius: inherit;
  overflow: hidden;
}
.modula .modula-story .modula-story__frame > .modula-items {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  min-height: 0;
}
.modula .modula-story .modula-items.f-carousel {
  isolation: isolate;
}
.modula .modula-story .modula-items.f-carousel .f-carousel__viewport {
  position: relative;
  z-index: 1;
  height: 100%;
}
.modula .modula-story .modula-items.f-carousel .f-carousel__track {
  height: 100%;
}
.modula .modula-story .modula-items.f-carousel .f-carousel__slide.modula-item {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  border-radius: 0;
  box-shadow: none;
}
.modula .modula-story .modula-items.f-carousel .f-carousel__slide.modula-item--embedded {
  overflow: hidden;
}
.modula .modula-story .modula-items.f-carousel .f-carousel__slide .modula-item-link.tile-inner {
  position: absolute;
  inset: 0;
  z-index: 5;
}
.modula .modula-story .modula-story-chrome {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 8;
  display: flex;
  flex-direction: column;
}
.modula .modula-story .modula-story-progress {
  display: flex;
  gap: 4px;
  padding: 10px 10px 8px;
  pointer-events: none;
  flex-shrink: 0;
}
.modula .modula-story .modula-story-progress__seg {
  flex: 1 1 0;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.35);
  overflow: hidden;
}
.modula .modula-story .modula-story-progress__fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: #fff;
  transition: width 0.25s ease;
}
.modula .modula-story .modula-story-progress__fill.is-done {
  width: 100%;
}
.modula .modula-story .modula-story-progress__fill.is-active {
  width: 100%;
}
.modula .modula-story .modula-story-taps {
  flex: 1 1 auto;
  display: flex;
  flex-direction: row;
  min-height: 0;
  pointer-events: none;
}
.modula .modula-story button.modula-story-tap.modula-story-tap {
  pointer-events: auto;
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  cursor: pointer;
  color: transparent;
  -webkit-tap-highlight-color: transparent;
}
.modula .modula-story button.modula-story-tap.modula-story-tap::-moz-focus-inner {
  border: 0;
}
.modula .modula-story button.modula-story-tap.modula-story-tap:focus,
.modula .modula-story button.modula-story-tap.modula-story-tap:focus-visible,
.modula .modula-story button.modula-story-tap.modula-story-tap:focus-within,
.modula .modula-story button.modula-story-tap.modula-story-tap:active {
  outline: 0 !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}
.modula .modula-story .modula.modula-gallery .modula-story button.modula-story-tap:focus,
.modula .modula-story .modula.modula-gallery .modula-story button.modula-story-tap:focus-visible,
.modula .modula-story .modula.modula-gallery .modula-story button.modula-story-tap:active {
  outline: 0 !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}
.modula .modula-story .modula-story-tap--prev {
  flex: 0 0 28%;
}
.modula .modula-story .modula-story-tap--pass {
  flex: 1 1 auto;
  pointer-events: none;
}
.modula .modula-story .modula-story-tap--next {
  flex: 0 0 28%;
}
.modula .modula-story .modula-story-image-wrapper {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 1;
}
.modula .modula-story .modula-item-picture {
  flex: 1 1 auto;
  min-height: 0;
}
.modula .modula-story .modula-item-picture-stack {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  flex: 1 1 auto;
  overflow: hidden;
  background: #f2f2f2;
}
.modula .modula-story .modula-item-picture--placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  filter: blur(10px);
  transform: scale(1.06);
  pointer-events: none;
}
.modula .modula-story .modula-item-picture--placeholder.modula-item-img--focal-crop,
.modula .modula-story .modula-item-picture--placeholder.modula-item-img--focal-point {
  inset: auto;
  object-fit: fill;
  object-position: initial;
  filter: blur(10px);
  transform: var(--modula-focal-transform, none);
}
.modula .modula-story .modula-item-picture--placeholder.modula-item-img--focal-crop {
  width: var(--modula-focal-w) !important;
  height: var(--modula-focal-h) !important;
  max-width: none !important;
  left: var(--modula-focal-left) !important;
  top: var(--modula-focal-top) !important;
}
.modula .modula-story .modula-item-picture-stack:has(.modula-item-picture__img--revealed) .modula-item-picture--placeholder {
  opacity: 0;
  transition: opacity 0.35s ease;
}
.modula .modula-story .modula-item-picture img.modula-item-picture__img--pending {
  opacity: 0;
}
.modula .modula-story .modula-item-picture img.modula-item-picture__img--revealed {
  opacity: 1;
  transition: opacity 0.35s ease;
}
.modula .modula-story .modula-uniform-grid__media > .modula-item-picture-stack,
.modula .modula-story .modula-item-image-area > .modula-item-picture-stack {
  position: absolute;
  inset: 0;
  min-height: 0;
}
.modula .modula-story .modula-item-picture-stack > .modula-item-picture {
  position: relative;
  z-index: 1;
}
.modula .modula-story .modula-item-picture:not(.modula-item-picture--focal-crop) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.modula .modula-story .modula-story-video-wrapper {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  position: relative;
  z-index: 1;
  background: #000;
}
.modula .modula-story .modula-story-video-el,
.modula .modula-story .modula-story-video-iframe,
.modula .modula-story .modula-story-video-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
  object-position: center;
}
.modula .modula-story .modula-story-video-el {
  background: #000;
}
.modula .modula-story .modula-story-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 20px 14px 16px;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.2) 55%, transparent 100%);
  color: #fff;
  z-index: 2;
  pointer-events: none;
}
.modula .modula-story .modula-story-caption__title {
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.3;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.modula .modula-story .modula-story-caption__desc {
  margin-top: 6px;
  font-size: 0.8rem;
  line-height: 1.35;
  opacity: 0.92;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}
.modula .modula-story.modula-story--editor-preview .modula-story__frame--editor-preview {
  max-width: 100%;
  aspect-ratio: auto;
  max-height: none;
  overflow: visible;
  background: transparent;
  box-shadow: none;
  /* Room so card box-shadows are not clipped by the takeover preview chrome */
  padding-bottom: 12px;
}
.modula .modula-story.modula-story--editor-preview .modula-story-editor-stack {
  position: relative;
  inset: auto;
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  /* Per line: leftover width splits evenly left/right (incl. last row after wrap). */
  justify-content: center;
  align-items: flex-start;
  column-gap: var(--modula-uniform-gap, 10px);
  row-gap: 16px;
  overflow: visible;
  padding-top: 6px;
  padding-bottom: 20px;
  z-index: 1;
  min-height: 0;
}
.modula .modula-story.modula-story--editor-preview .modula-story-editor-stack > .modula-item {
  flex: 0 1 auto;
  width: clamp(152px, 30vw, 238px);
  max-width: 100%;
  aspect-ratio: 9/16;
  border-radius: 14px;
  overflow: hidden;
  background: #0a0a0a;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.modula .modula-story.modula-story--editor-preview .modula-story-editor-stack .modula-story-image-wrapper {
  flex: 1 1 auto;
  min-height: 0;
}

/* BnB layout: hero (left) + 2x2 featured (right), then uniform grid */
.modula-bnb {
  --modula-bnb-gutter: 10px;
  /* Public front: extras stay in DOM for lightbox only (matches PHP BnB). */
  /* Settings editor / takeover preview: show extras under the featured block + badge. */
}
.modula-bnb .modula-bnb-featured {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--modula-bnb-gutter);
  min-height: min(45vw, 420px);
  margin-bottom: var(--modula-bnb-gutter);
}
.modula-bnb .modula-bnb-hero {
  grid-column: 1;
  grid-row: 1/-1;
  position: relative;
  overflow: hidden;
  min-height: 0;
}
.modula-bnb .modula-bnb-featured-grid {
  grid-column: 2/-1;
  grid-row: 1/-1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--modula-bnb-gutter);
  min-height: 0;
}
.modula-bnb .modula-bnb-featured-cell {
  position: relative;
  overflow: hidden;
  min-height: 0;
}
.modula-bnb .modula-bnb-featured-cell--has-more::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.28);
}
.modula-bnb .modula-bnb-show-all-photos {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: calc(100% - 24px);
  margin: 0;
  padding: 10px 14px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  background: #fff;
  color: #222;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  text-align: left;
  white-space: nowrap;
  transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.modula-bnb .modula-bnb-show-all-photos:hover, .modula-bnb .modula-bnb-show-all-photos:focus-visible {
  background: #f7f7f7;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22);
  transform: translateY(-1px);
}
.modula-bnb .modula-bnb-show-all-photos:focus-visible {
  outline: 2px solid #2271b1;
  outline-offset: 2px;
}
.modula-bnb .modula-bnb-show-all-photos__icon {
  flex: 0 0 auto;
}
.modula-bnb .modula-bnb-show-all-photos__label {
  flex: 0 1 auto;
}
.modula-bnb .modula-bnb-show-all-photos__count {
  flex: 0 1 auto;
  font-weight: 500;
  color: #444;
}
@media (max-width: 640px) {
  .modula-bnb .modula-bnb-show-all-photos {
    right: 8px;
    bottom: 8px;
    padding: 8px 10px;
    font-size: 12px;
    gap: 6px;
  }
  .modula-bnb .modula-bnb-show-all-photos__count {
    display: none;
  }
}
.modula-bnb .modula-bnb-grid {
  display: none;
  gap: var(--modula-bnb-gutter);
}
.modula-bnb.modula-bnb--editor-preview-extras .modula-bnb-grid {
  display: grid;
  margin-top: 0;
}
.modula-bnb .modula-bnb-grid-cell {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  min-height: 0;
}
.modula-bnb .modula-bnb-lightbox-only-overlay {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35em;
  padding: 0.5rem;
  text-align: center;
  background: rgba(0, 0, 0, 0.55);
  box-sizing: border-box;
}
.modula-bnb .modula-bnb-lightbox-only-overlay__label {
  color: #fff;
  font-size: clamp(13px, 2.2vw, 20px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}
.modula-bnb .modula-bnb-lightbox-only-overlay__hint {
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(10px, 1.6vw, 13px);
  font-weight: 500;
  line-height: 1.25;
  max-width: 12rem;
}
.modula-bnb .modula-bnb .modula-item-content {
  opacity: 1;
}

/*
 * Legacy modula.css forces html body .modula .modula-items .modula-item { position: absolute }.
 * React masonry columns need normal flow; without this, every tile stacks at (0,0).
 *
 * `react-responsive-masonry` wraps each child in an extra flex `div` (ref host) until it has
 * run `distributeChildren()`; only then items sit directly under the column `div`. Target both
 * depths so `.modula-item` is never left `position:absolute` inside a zero-height wrapper (that
 * breaks height measurement and prevents packing — looks like a fixed “row” grid).
 */
html body .modula .modula-items.modula-masonry-react > div > .modula-item,
html body .modula .modula-items.modula-masonry-react > div > div > .modula-item {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
}

/*
 * Embedded (content block / shortcode): copy lives in `.modula-item-content`. Legacy `modula.css`
 * sets `opacity: 0` on that node until `.tg-loaded` / `.modula-columns` — image tiles keep
 * `<picture>` as a *sibling* of the empty shell, so photos still show; embedded does not.
 * Scope: any `.modula-items` (masonry, justified, creative wrapper, etc.), not only masonry-react.
 */
html body .modula .modula-items .modula-item--embedded .modula-item-content {
  opacity: 1 !important;
  transform: none !important;
  z-index: 2;
}

/*
 * Loaded tiles: legacy modula.css hides `.modula-item-content` until `.tg-loaded` and exempts
 * `.modula-loaded-scale` from the reset. Loading-effect keyframes used fill-mode `none`, so
 * opacity snapped back to 0 after the animation — hover/caption layers died a second later.
 */
html body .modula.modula-gallery-initialized .modula-items .modula-item.tg-loaded:not(.modula-item--embedded) .modula-item-content {
  opacity: 1 !important;
}

/*
 * Masonry columns: flex parents often lack a definite height; `height: 100%` on embedded tiles
 * collapses — reserve a minimum so the block is visible and text has a box.
 */
html body .modula .modula-items.modula-masonry-react .modula-item--embedded {
  min-height: clamp(5.5rem, 16vw, 11rem);
  align-self: stretch;
}

.modula-masonry-react > div > .modula-item,
.modula-masonry-react > div > div > .modula-item {
  position: relative;
  width: 100%;
  min-width: 0;
}
.modula-masonry-react .modula-item .modula-item-content img.pic {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  max-width: 100%;
}

/*
 * Flow layouts (masonry, parallax masonry, custom-grid column flow): LQIP placeholder must
 * overlay the real image. Story defines the same under `.modula-story`; without this, thumb +
 * full image stack in document flow and look like duplicated tiles.
 */
html body .modula .modula-masonry-react .modula-item-picture-stack,
html body .modula .modula-parallax-masonry .modula-item-picture-stack,
html body .modula .modula-slider .modula-item-picture-stack {
  position: relative;
  width: 100%;
  overflow: hidden;
}
html body .modula .modula-masonry-react .modula-item-picture--placeholder,
html body .modula .modula-parallax-masonry .modula-item-picture--placeholder,
html body .modula .modula-slider .modula-item-picture--placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  filter: blur(10px);
  transform: scale(1.06);
  pointer-events: none;
}
html body .modula .modula-masonry-react .modula-item-picture--placeholder.modula-item-img--focal-crop,
html body .modula .modula-masonry-react .modula-item-picture--placeholder.modula-item-img--focal-point,
html body .modula .modula-parallax-masonry .modula-item-picture--placeholder.modula-item-img--focal-crop,
html body .modula .modula-parallax-masonry .modula-item-picture--placeholder.modula-item-img--focal-point,
html body .modula .modula-slider .modula-item-picture--placeholder.modula-item-img--focal-crop,
html body .modula .modula-slider .modula-item-picture--placeholder.modula-item-img--focal-point {
  inset: auto;
  object-fit: fill;
  object-position: initial;
  filter: blur(10px);
  transform: var(--modula-focal-transform, none);
}
html body .modula .modula-masonry-react .modula-item-picture--placeholder.modula-item-img--focal-crop,
html body .modula .modula-parallax-masonry .modula-item-picture--placeholder.modula-item-img--focal-crop,
html body .modula .modula-slider .modula-item-picture--placeholder.modula-item-img--focal-crop {
  width: var(--modula-focal-w) !important;
  height: var(--modula-focal-h) !important;
  max-width: none !important;
  left: var(--modula-focal-left) !important;
  top: var(--modula-focal-top) !important;
}
html body .modula .modula-masonry-react .modula-item-picture-stack:has(.modula-item-picture__img--revealed) .modula-item-picture--placeholder,
html body .modula .modula-parallax-masonry .modula-item-picture-stack:has(.modula-item-picture__img--revealed) .modula-item-picture--placeholder,
html body .modula .modula-slider .modula-item-picture-stack:has(.modula-item-picture__img--revealed) .modula-item-picture--placeholder {
  opacity: 0;
  transition: opacity 0.35s ease;
}
html body .modula .modula-masonry-react .modula-item-picture img.modula-item-picture__img--pending,
html body .modula .modula-parallax-masonry .modula-item-picture img.modula-item-picture__img--pending,
html body .modula .modula-slider .modula-item-picture img.modula-item-picture__img--pending {
  opacity: 0;
}
html body .modula .modula-masonry-react .modula-item-picture-stack > .modula-item-picture,
html body .modula .modula-parallax-masonry .modula-item-picture-stack > .modula-item-picture,
html body .modula .modula-slider .modula-item-picture-stack > .modula-item-picture {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
}

/**
 * Uniform grid — equal columns (CSS Grid), equal cell size per row.
 * Default: square cells (aspect-ratio 1 / 1). Fixed height: add class
 * modula-uniform-grid--fixed-height (?modula_uniform_mode=fixed); uses
 * --modula-uniform-cell-h from gallery desktop height setting.
 */
.modula .modula-uniform-grid {
  --modula-uniform-cols: 4;
  --modula-uniform-cols-tablet: 2;
  --modula-uniform-cols-mobile: 1;
  --modula-uniform-gap: 10px;
  --modula-uniform-cell-h: 280px;
  /* Tile shape: height tracks column width (e.g. 1/1 = square). Images use object-fit: cover inside. */
  --modula-uniform-aspect: 1 / 1;
  display: grid;
  grid-template-columns: repeat(var(--modula-uniform-cols-mobile), minmax(0, 1fr));
  gap: var(--modula-uniform-gap);
  width: 100%;
  min-width: 0;
  align-items: stretch;
  /* Inline gridTemplateColumns / gridAutoRows from UniformGridLayout (Safari var() in repeat()). */
  /* Editor-preview pagination marker: full-width row must not use 1/1 aspect (height = width). */
  /*
   * modula.css forces .modula-items .modula-item { position: absolute } for legacy
   * layouts. That removes items from grid cell flow → cells collapse to 0 height →
   * “empty” grid. Match masonry stack (.modula-masonry-react > div > div > .modula-item).
   */
  /* React uses .modula-item-picture (not .pic on <picture>); keep media visible without .tg-loaded */
  /* Legacy modula.css uses huge max-width on .pic; force cover inside the tile slot */
}
@media (min-width: 768px) {
  .modula .modula-uniform-grid {
    grid-template-columns: repeat(var(--modula-uniform-cols-tablet), minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .modula .modula-uniform-grid {
    grid-template-columns: repeat(var(--modula-uniform-cols), minmax(0, 1fr));
  }
}
.modula .modula-uniform-grid .modula-uniform-grid__cell {
  min-width: 0;
  /* Safari: min-height 0 + flex collapses aspect-ratio-sized grid cells. */
  min-height: auto;
  display: flex;
  flex-direction: column;
  /* Fallback when JS does not inline aspect-ratio (visitor legacy path). */
  aspect-ratio: 1/1;
  /* Safari: var(--modula-uniform-aspect) is not applied reliably — React sets inline aspectRatio. */
  aspect-ratio: var(--modula-uniform-aspect);
}
.modula .modula-uniform-grid.modula-uniform-grid--react-tracks .modula-uniform-grid__cell:not(.modula-uniform-grid__cell--page-break) {
  min-height: auto;
}
.modula .modula-uniform-grid .modula-uniform-grid__cell.modula-uniform-grid__cell--page-break {
  grid-column: 1/-1;
  aspect-ratio: unset;
  height: auto;
  min-height: 0;
  max-height: none;
  flex: 0 0 auto;
  align-self: stretch;
}
html body .modula .modula-uniform-grid.modula-items > .modula-uniform-grid__cell > .modula-item {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 100%;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
html body .modula .modula-uniform-grid.modula-items > .modula-uniform-grid__cell > .modula-item.modula-caption-below-image {
  height: auto !important;
  flex: 0 0 auto;
}
.modula .modula-uniform-grid .modula-uniform-grid__cell:has(> .modula-item.modula-caption-below-image) {
  aspect-ratio: unset;
  height: auto;
  min-height: 0;
}
.modula .modula-uniform-grid .modula-item.modula-caption-below-image .modula-item-image-area.modula-uniform-grid__media {
  aspect-ratio: var(--modula-uniform-aspect, 1/1);
  flex: 0 0 auto;
  width: 100%;
  min-height: 0;
}
.modula .modula-uniform-grid.modula-uniform-grid--react-tracks:has(.modula-caption-below-image), .modula .modula-uniform-grid.modula-uniform-grid--caption-below {
  align-items: start;
  grid-auto-rows: auto;
}
.modula .modula-uniform-grid.modula-uniform-grid--caption-below .modula-uniform-grid__cell:not(.modula-uniform-grid__cell--page-break) {
  aspect-ratio: unset !important;
  height: auto !important;
  min-height: 0;
  overflow: visible;
}
.modula .modula-uniform-grid.modula-uniform-grid--caption-below .modula-uniform-grid__cell > .modula-item.modula-item--embedded {
  height: auto !important;
  aspect-ratio: var(--modula-uniform-aspect, 1/1);
  min-height: clamp(5.5rem, 16vw, 11rem);
}
.modula .modula-uniform-grid .modula-uniform-grid__media {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  position: relative;
  overflow: hidden;
  z-index: 0;
}
.modula .modula-uniform-grid.modula-uniform-grid--fixed-height .modula-uniform-grid__cell {
  aspect-ratio: unset;
  height: var(--modula-uniform-cell-h);
}
.modula .modula-uniform-grid.modula-uniform-grid--fixed-height .modula-uniform-grid__cell.modula-uniform-grid__cell--page-break {
  height: auto;
  aspect-ratio: unset;
}
html body .modula .modula-uniform-grid.modula-items .modula-item .modula-item-picture, html body .modula .modula-uniform-grid.modula-items .modula-item img.pic {
  opacity: 1 !important;
}
html body .modula .modula-uniform-grid.modula-items .modula-uniform-grid__media img.modula-item-picture__img--pending, html body .modula .modula-uniform-grid.modula-items .modula-uniform-grid__media img.pic.modula-item-picture__img--pending {
  opacity: 0 !important;
}
html body .modula .modula-uniform-grid.modula-items .modula-uniform-grid__media img.modula-item-picture__img--revealed, html body .modula .modula-uniform-grid.modula-items .modula-uniform-grid__media img.pic.modula-item-picture__img--revealed {
  opacity: 1 !important;
}
html body .modula .modula-uniform-grid.modula-items .modula-uniform-grid__media .modula-item-picture:not(.modula-item-picture--focal-crop) img, html body .modula .modula-uniform-grid.modula-items .modula-uniform-grid__media img.pic:not(.modula-item-img--focal-crop):not(.modula-item-img--focal-point) {
  max-width: none !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center;
}
.modula .modula-uniform-grid .modula-item .modula-item-overlay {
  z-index: 1;
}
.modula .modula-uniform-grid .modula-item .modula-item-content {
  opacity: 1;
  z-index: 2;
  pointer-events: none;
}

/*
 * Polaroid: `.modula-items.modula-polaroid-gallery` is a direct child of `.modula`, not inside
 * `.modula-uniform-grid` — rules must not be nested under uniform-grid or the pin never gets
 * positioning and `.modula-item { overflow: hidden }` clips it.
 */
.modula .modula-items.modula-polaroid-gallery .modula-polaroid-slot.modula-item {
  overflow: visible;
}
.modula .modula-items.modula-polaroid-gallery .modula-polaroid-slot.modula-item:hover {
  z-index: 6;
}
.modula .modula-items.modula-polaroid-gallery .modula-polaroid-frame--has-pin .modula-polaroid-pin {
  position: absolute;
  top: -5px;
  left: 50%;
  width: 14px;
  height: 14px;
  margin-left: -7px;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), inset 0 1px 1px rgba(255, 255, 255, 0.45);
  z-index: 2;
  pointer-events: none;
}
.modula .modula-items.modula-polaroid-gallery .modula-polaroid-frame__media .modula-item-content,
.modula .modula-items.modula-polaroid-gallery .modula-polaroid-frame__media {
  height: 100%;
}
.modula .modula-items.modula-polaroid-gallery .modula-polaroid-frame__media .modula-item-picture:not(.modula-item-picture--focal-crop) img,
.modula .modula-items.modula-polaroid-gallery .modula-polaroid-frame__media img.pic {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Parallax masonry: viewfinder — 4 columns, continuous drift, top/bottom mask */
.modula-parallax-masonry {
  --modula-parallax-gutter: 10px;
  --modula-parallax-column-width: 200px;
  --modula-parallax-fade-height: 140px;
  --modula-parallax-fade-color: #000;
  --modula-parallax-viewfinder-radius: 12px;
  position: relative;
  height: 100vh;
  min-height: 400px;
  overflow: hidden;
  border-radius: var(--modula-parallax-viewfinder-radius);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
  /* Viewfinder mask: top — content fades as if it continues above */
  /* Overlay: background from React (settings.parallaxMasonry.overlayGradient); fallback if unset */
  /* Title on top: justified center, vertical center, bold, white */
  /* Columns extend into fade zone so drift never shows a hard edge */
}
.modula-parallax-masonry .modula-parallax-masonry-fade {
  position: absolute;
  left: 0;
  right: 0;
  height: var(--modula-parallax-fade-height);
  pointer-events: none;
  z-index: 2;
}
.modula-parallax-masonry .modula-parallax-masonry-fade--top {
  top: 0;
  background: linear-gradient(to bottom, var(--modula-parallax-fade-color) 0%, var(--modula-parallax-fade-color) 15%, color-mix(in srgb, var(--modula-parallax-fade-color) 85%, transparent) 35%, transparent 100%);
}
.modula-parallax-masonry .modula-parallax-masonry-fade--bottom {
  bottom: 0;
  background: linear-gradient(to top, var(--modula-parallax-fade-color) 0%, var(--modula-parallax-fade-color) 15%, color-mix(in srgb, var(--modula-parallax-fade-color) 85%, transparent) 35%, transparent 100%);
}
.modula-parallax-masonry .modula-parallax-masonry-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.5) 40%, rgba(0, 0, 0, 0.15) 72%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 3;
  border-radius: var(--modula-parallax-viewfinder-radius);
}
.modula-parallax-masonry .modula-parallax-masonry-title {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: bold;
  font-size: clamp(1.5rem, 4vw, 3rem);
  letter-spacing: 0.05em;
  pointer-events: none;
  z-index: 4;
}
.modula-parallax-masonry .modula-parallax-masonry-columns {
  display: flex;
  gap: var(--modula-parallax-gutter);
  justify-content: center;
  align-items: flex-start;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  padding: var(--modula-parallax-fade-height) 0;
  max-height: calc(100% + var(--modula-parallax-fade-height) * 2);
  will-change: transform;
}
.modula-parallax-masonry .modula-parallax-masonry-column {
  flex: 0 0 var(--modula-parallax-column-width);
  max-width: var(--modula-parallax-column-width);
  display: flex;
  flex-direction: column;
  gap: var(--modula-parallax-gutter);
  will-change: transform;
}
.modula-parallax-masonry .modula-parallax-masonry-item {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.modula-parallax-masonry .modula-parallax-masonry-item .modula-item {
  position: relative;
  width: 100%;
}
.modula-parallax-masonry .modula-parallax-masonry-item .modula-item-picture:not(.modula-item-picture--focal-crop),
.modula-parallax-masonry .modula-parallax-masonry-item .modula-item-picture:not(.modula-item-picture--focal-crop) img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}
.modula-parallax-masonry .modula-parallax-masonry-item .modula-item-content {
  opacity: 1;
}

.modula.modula-blur-protection.modula-tab-blurred .modula-items {
  filter: blur(6px);
  transition: filter 0.2s ease;
}

.modula.modula-image-guardian .modula-item img {
  -webkit-user-select: none;
  user-select: none;
}

.modula-creative-commons-wrap p {
  margin: 0;
}

.modula-creative-commons-wrap img {
  height: 20px;
  margin-right: 10px;
}

a.modula-image-licensing-caption img {
  margin-right: 10px;
  max-height: 20px;
}

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