.elementor-section:has(.prg-root),
.e-con:has(.prg-root),
.e-con:has(.prg-root) > .e-con-inner,
.elementor-widget-photo-room-gallery,
.elementor-widget-photo-room-gallery > .elementor-widget-container,
.elementor-element:has(> .prg-root),
.elementor-element:has(.prg-root) {
  --padding-top: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  --padding-block-start: 0px !important;
  --padding-block-end: 0px !important;
  --padding-inline-start: 0px !important;
  --padding-inline-end: 0px !important;
  padding: 0 !important;
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  flex-shrink: 0 !important;
}

.elementor-section:has(.prg-root) > .elementor-container,
.elementor-section:has(.prg-root) > .elementor-container > .elementor-column,
.elementor-section:has(.prg-root) > .elementor-container > .elementor-column > .elementor-widget-wrap,
.e-con:has(.prg-root) > .e-con-inner {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  height: auto !important;
}

.elementor-widget-photo-room-gallery,
.elementor-widget-photo-room-gallery.elementor-invisible,
.elementor-widget-photo-room-gallery.elementor-invisible .elementor-widget-container,
.elementor-widget-photo-room-gallery .elementor-widget-container,
.elementor-widget-photo-room-gallery .prg-root {
  visibility: visible !important;
  opacity: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.prg-placeholder {
  padding: 3rem 1.5rem;
  background: #e6e8ea;
  color: #5c5c5c;
  font-family: Switzer, Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 15px;
  text-align: center;
}

.prg-root {
  --prg-bg: #e6e8ea;
  --prg-heading: #000;
  --prg-radius-fan: 20px;
  --prg-radius-grid: 10px;
  --prg-gap: 12px;
  --prg-heading-size: 58px;
  --prg-card-w: 300px;
  --prg-card-h: 400px;
  --prg-spread: 0;
  --prg-max: 1296px;
  background: var(--prg-bg);
  color: var(--prg-heading);
  font-family: Switzer, Inter, ui-sans-serif, system-ui, sans-serif;
  overflow: visible;
  display: block;
  width: 100%;
  min-height: 100vh;
  flex-shrink: 0;
}

.prg-fan-pin {
  position: relative;
  height: 185vh;
}

.prg-fan-sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.5rem, 4vh, 2.75rem);
  overflow: hidden;
  background: var(--prg-bg);
}

.prg-heading {
  margin: 0;
  padding: 0 1.25rem;
  font-size: clamp(2rem, 5vw, var(--prg-heading-size));
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
  text-align: center;
  color: var(--prg-heading);
}

.prg-fan-stage {
  position: relative;
  width: var(--prg-card-w);
  height: var(--prg-card-h);
  flex-shrink: 0;
}

.prg-card {
  position: absolute;
  inset: 0;
  margin: 0;
  border-radius: var(--prg-radius-fan);
  overflow: hidden;
  background: #d5d8db;
  box-shadow: 0 22px 50px rgba(15, 18, 22, 0.18);
  transform-origin: center center;
  will-change: transform, opacity;
}

.prg-card img,
.prg-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
  color: transparent;
}

.prg-card[data-prg-full],
.prg-item[data-prg-full] {
  cursor: zoom-in;
}

.prg-bento {
  position: relative;
  z-index: 2;
  width: min(100%, var(--prg-max));
  margin: 0 auto;
  padding: 8px clamp(16px, 4vw, 72px) 96px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--prg-gap);
}

.prg-row,
.prg-stack {
  display: contents;
}

.prg-item,
.prg-item--tile,
.prg-item--full,
.prg-item--tall,
.prg-item--mid,
.prg-item--wide,
.prg-item--span {
  position: relative;
  margin: 0;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--prg-radius-grid);
  background: #d5d8db;
}

.prg-item img,
.prg-item--span img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.prg-item:hover img {
  transform: scale(1.035);
}

.prg-root--editor .prg-fan-pin {
  height: auto;
}

.prg-root--editor .prg-fan-sticky {
  position: relative;
  height: auto;
  min-height: 72vh;
  padding: 72px 0 56px;
}

.prg-root--editor {
  --prg-spread: 1;
}

.prg-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8, 10, 12, 0.88);
  backdrop-filter: blur(10px);
}

.prg-lightbox[hidden] {
  display: none;
}

.prg-lightbox__figure {
  margin: 0;
  max-width: min(92vw, 1400px);
  max-height: 86vh;
}

.prg-lightbox__figure img {
  display: block;
  width: auto;
  height: auto;
  max-width: 92vw;
  max-height: 86vh;
  object-fit: contain;
  border-radius: 12px;
}

.prg-lightbox__close,
.prg-lightbox__nav {
  position: absolute;
  border: 0;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  border-radius: 999px;
}

.prg-lightbox__close {
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  font-size: 28px;
  line-height: 1;
}

.prg-lightbox__nav {
  top: 50%;
  width: 46px;
  height: 46px;
  font-size: 22px;
  transform: translateY(-50%);
}

.prg-lightbox__prev {
  left: 16px;
}

.prg-lightbox__next {
  right: 16px;
}

.prg-lightbox__close:hover,
.prg-lightbox__nav:hover {
  background: rgba(255, 255, 255, 0.22);
}

@media (max-width: 1024px) {
  .prg-root {
    --prg-card-w: 250px;
    --prg-card-h: 333px;
  }

  .prg-bento {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .prg-root {
    --prg-card-w: 228px;
    --prg-card-h: 304px;
  }

  .prg-fan-pin {
    height: 165vh;
  }

  .prg-bento {
    grid-template-columns: 1fr;
    padding: 4px 14px 72px;
  }

  .prg-lightbox__nav {
    width: 40px;
    height: 40px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .prg-root {
    --prg-spread: 1;
  }

  .prg-card,
  .prg-item img {
    transition: none !important;
  }

  .prg-fan-pin {
    height: auto;
  }

  .prg-fan-sticky {
    position: relative;
    height: auto;
    min-height: 80vh;
    padding: 80px 0 48px;
  }
}
