/* Circular photo orbit: complete images, continuous motion, no crop. */
.house-gallery {
  overflow: hidden;
  background: linear-gradient(180deg, #f7fbf8 0%, #dff0e8 52%, #f8fbf9 100%) !important;
}
.gallery-panels {
  width: min(100%, 1500px);
  margin-inline: auto;
}
.gallery-panel {
  min-width: 0;
}
.gallery-showcase {
  display: block !important;
  margin: 0 auto clamp(1.2rem, 2.5vw, 2.2rem);
}
.gallery-copy {
  width: min(100%, 820px);
  margin-inline: auto;
  padding: 0 !important;
  text-align: center;
}
.gallery-copy p {
  max-width: 720px;
  margin-inline: auto;
}
.gallery-feature,
.gallery-feature.has-media-backdrop {
  display: none !important;
}
.gallery-photo-grid {
  position: relative !important;
  display: block !important;
  width: min(100%, 1500px) !important;
  height: clamp(390px, 52vw, 650px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  perspective: 1500px;
  perspective-origin: 50% 46%;
  touch-action: pan-y;
  outline: none;
  isolation: isolate;
}
.gallery-photo-grid::before {
  display: block !important;
  content: "";
  position: absolute;
  inset: 8% 4% 6%;
  border: 1px solid rgba(32, 96, 77, 0.11);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 44%, rgba(255, 255, 255, 0.94) 0 32%, rgba(222, 239, 231, 0.82) 64%, rgba(188, 219, 205, 0.52) 100%);
  box-shadow: inset 0 0 70px rgba(34, 103, 82, 0.08);
  pointer-events: none;
}
.gallery-photo,
.gallery-photo.has-media-backdrop {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  display: grid !important;
  grid-template-rows: minmax(0, 1fr) !important;
  width: clamp(330px, 58vw, 830px) !important;
  height: clamp(300px, 43vw, 560px) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: clamp(5px, 0.7vw, 9px) !important;
  overflow: hidden !important;
  border: 1px solid rgba(31, 91, 73, 0.18) !important;
  border-radius: 8px !important;
  background: rgba(250, 253, 251, 0.98) !important;
  box-shadow: 0 22px 55px rgba(16, 57, 47, 0.17) !important;
  transform: translate(-50%, -50%) scale(0.45) !important;
  transform-origin: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  cursor: pointer;
  will-change: transform, opacity;
  transition:
    transform 850ms cubic-bezier(.2, .75, .18, 1),
    opacity 560ms ease,
    box-shadow 560ms ease,
    border-color 560ms ease,
    visibility 0s linear 850ms !important;
}
.gallery-photo img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 4px !important;
  background: transparent !important;
  filter: none !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}
.gallery-photo > span,
.gallery-photo figcaption,
.gallery-feature > span,
.gallery-feature figcaption {
  display: none !important;
}
.gallery-photo.is-orbit-current,
.gallery-photo.is-orbit-previous,
.gallery-photo.is-orbit-next,
.gallery-photo.is-orbit-far-previous,
.gallery-photo.is-orbit-far-next {
  visibility: visible !important;
  transition-delay: 0s !important;
}
.gallery-photo.is-orbit-current {
  z-index: 5;
  opacity: 1 !important;
  pointer-events: auto !important;
  border-color: rgba(199, 115, 88, 0.46) !important;
  box-shadow: 0 30px 70px rgba(16, 57, 47, 0.24) !important;
  transform: translate(-50%, -50%) rotateY(0deg) scale(1) !important;
}
.gallery-photo.is-orbit-previous {
  z-index: 4;
  opacity: 0.74 !important;
  pointer-events: auto !important;
  transform: translate(calc(-50% - clamp(250px, 28vw, 470px)), -50%) rotateY(32deg) scale(0.72) !important;
}
.gallery-photo.is-orbit-next {
  z-index: 4;
  opacity: 0.74 !important;
  pointer-events: auto !important;
  transform: translate(calc(-50% + clamp(250px, 28vw, 470px)), -50%) rotateY(-32deg) scale(0.72) !important;
}
.gallery-photo.is-orbit-far-previous {
  z-index: 2;
  opacity: 0.32 !important;
  transform: translate(calc(-50% - clamp(390px, 44vw, 720px)), -50%) rotateY(48deg) scale(0.5) !important;
}
.gallery-photo.is-orbit-far-next {
  z-index: 2;
  opacity: 0.32 !important;
  transform: translate(calc(-50% + clamp(390px, 44vw, 720px)), -50%) rotateY(-48deg) scale(0.5) !important;
}
.gallery-photo.is-orbit-previous:hover,
.gallery-photo.is-orbit-next:hover,
.gallery-photo.is-orbit-previous:focus-visible,
.gallery-photo.is-orbit-next:focus-visible {
  opacity: 0.92 !important;
  border-color: rgba(35, 107, 88, 0.42) !important;
}
.gallery-photo.is-orbit-current:hover,
.gallery-photo.is-orbit-current:focus-visible {
  border-color: rgba(199, 115, 88, 0.75) !important;
  box-shadow: 0 34px 76px rgba(16, 57, 47, 0.28) !important;
}
.gallery-reel-controls {
  display: grid;
  grid-template-columns: 44px minmax(120px, 1fr) auto 44px;
  gap: 0.85rem;
  align-items: center;
  width: min(92%, 760px);
  margin: 0.35rem auto 0;
}
.gallery-reel-controls button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(35, 107, 88, 0.22);
  border-radius: 50%;
  color: var(--deep-forest);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 7px 20px rgba(20, 72, 58, 0.09);
  cursor: pointer;
  transition: color 220ms ease, background 220ms ease, transform 220ms ease;
}
.gallery-reel-controls button:hover,
.gallery-reel-controls button:focus-visible {
  color: #fff;
  background: var(--forest);
  transform: scale(1.05);
}
.gallery-reel-progress {
  position: relative;
  height: 2px;
  overflow: hidden;
  background: rgba(35, 107, 88, 0.15);
}
.gallery-reel-progress span {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--gallery-progress, 0%);
  background: linear-gradient(90deg, var(--ocean), var(--coral));
  transition: width 500ms ease;
}
.gallery-reel-count {
  min-width: 66px;
  color: #567069;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
body[data-atmosphere="night"] .house-gallery {
  background: linear-gradient(135deg, #123f35, #185a50 55%, #2d6970) !important;
}
body[data-atmosphere="night"] .gallery-photo-grid::before {
  display: block !important;
  border-color: rgba(255, 255, 255, 0.14);
  background: radial-gradient(circle at 50% 44%, rgba(31, 77, 66, 0.96) 0 32%, rgba(24, 67, 59, 0.9) 66%, rgba(16, 52, 46, 0.86) 100%);
}
body[data-atmosphere="night"] .gallery-photo,
body[data-atmosphere="night"] .gallery-photo.has-media-backdrop {
  background: rgba(239, 247, 243, 0.98) !important;
}
body[data-atmosphere="night"] .gallery-reel-controls button {
  color: #eef8f4;
  border-color: rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.08);
}
body[data-atmosphere="night"] .gallery-reel-count {
  color: #dcebe6;
}
body[data-atmosphere="night"] .gallery-reel-progress {
  background: rgba(255, 255, 255, 0.18);
}
@media (max-width: 900px) {
  .gallery-photo-grid {
    height: clamp(350px, 68vw, 550px) !important;
  }
  .gallery-photo {
    width: clamp(310px, 72vw, 650px) !important;
    height: clamp(280px, 56vw, 460px) !important;
  }
  .gallery-photo.is-orbit-previous {
    transform: translate(calc(-50% - 33vw), -50%) rotateY(28deg) scale(0.68) !important;
  }
  .gallery-photo.is-orbit-next {
    transform: translate(calc(-50% + 33vw), -50%) rotateY(-28deg) scale(0.68) !important;
  }
  .gallery-photo.is-orbit-far-previous,
  .gallery-photo.is-orbit-far-next {
    opacity: 0 !important;
  }
}
@media (max-width: 560px) {
  .gallery-photo-grid {
    height: clamp(330px, 100vw, 480px) !important;
  }
  .gallery-photo-grid::before {
  display: block !important;
    inset: 8% -14% 7%;
  }
  .gallery-photo {
    width: 84vw !important;
    height: clamp(270px, 74vw, 400px) !important;
    padding: 4px !important;
  }
  .gallery-photo.is-orbit-previous {
    opacity: 0.32 !important;
    transform: translate(calc(-50% - 52vw), -50%) rotateY(24deg) scale(0.62) !important;
  }
  .gallery-photo.is-orbit-next {
    opacity: 0.32 !important;
    transform: translate(calc(-50% + 52vw), -50%) rotateY(-24deg) scale(0.62) !important;
  }
  .gallery-reel-controls {
    grid-template-columns: 40px 1fr 58px 40px;
    gap: 0.55rem;
  }
  .gallery-reel-controls button {
    width: 40px;
    height: 40px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-photo,
  .gallery-reel-progress span,
  .gallery-reel-controls button {
    transition: none !important;
  }
}

/* Intrinsic photo sizing: no crop and no letterbox bars. */
.gallery-photo,
.gallery-photo.has-media-backdrop {
  width: max-content !important;
  height: max-content !important;
}
.gallery-photo img {
  width: auto !important;
  height: auto !important;
  max-width: min(58vw, 830px) !important;
  max-height: min(43vw, 560px) !important;
}
@media (max-width: 900px) {
  .gallery-photo,
  .gallery-photo.has-media-backdrop {
    width: max-content !important;
    height: max-content !important;
  }
  .gallery-photo img {
    max-width: min(72vw, 650px) !important;
    max-height: min(56vw, 460px) !important;
  }
}
@media (max-width: 560px) {
  .gallery-photo,
  .gallery-photo.has-media-backdrop {
    width: max-content !important;
    height: max-content !important;
  }
  .gallery-photo img {
    max-width: 84vw !important;
    max-height: min(74vw, 400px) !important;
  }
}