/* Full-width, seamless strip of square room photographs. */
.ahome-carousel {
  --ahome-scene-size: clamp(180px, 18.2vw, 360px);
  position: relative;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  background: #e8e4de;
}

.ahome-carousel .ahome-carousel-viewport {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}

.ahome-carousel .ahome-carousel-viewport::-webkit-scrollbar { display: none; }
.ahome-carousel.is-ready .ahome-carousel-viewport { overflow: hidden; }

.ahome-carousel .ahome-carousel-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  margin: 0;
  padding: 0;
  gap: 0;
}

.ahome-carousel .ahome-carousel-group {
  display: flex;
  flex: 0 0 auto;
  width: max-content;
  margin: 0;
  padding: 0;
  gap: 0;
  list-style: none;
}

.ahome-carousel [data-ahome-carousel-clone] { display: none; }
.ahome-carousel.is-ready [data-ahome-carousel-clone] { display: flex; }

.ahome-carousel .ahome-carousel-slide {
  display: block;
  flex: 0 0 var(--ahome-scene-size);
  width: var(--ahome-scene-size);
  height: var(--ahome-scene-size);
  aspect-ratio: 1;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.ahome-carousel .ahome-carousel-slide img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  object-fit: cover;
}

.ahome-carousel.is-ready .ahome-carousel-track {
  animation: ahome-scenes-scroll var(--ahome-carousel-duration, 120s) linear infinite;
  will-change: transform;
}

.ahome-carousel.is-paused .ahome-carousel-track { animation-play-state: paused; }

@keyframes ahome-scenes-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(-1 * var(--ahome-carousel-distance, 50%)), 0, 0); }
}

.ahome-carousel .ahome-carousel-toggle {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 8px;
  border: 1px solid rgb(255 255 255 / 65%);
  border-radius: 50%;
  background: rgb(255 255 255 / 88%);
  color: #1a1a1a;
  cursor: pointer;
}

.ahome-carousel .ahome-carousel-toggle svg { display: block; width: 16px; height: 16px; }
.ahome-carousel .ahome-carousel-toggle .ahome-carousel-play { display: none; }
.ahome-carousel .ahome-carousel-toggle[aria-pressed="true"] .ahome-carousel-pause { display: none; }
.ahome-carousel .ahome-carousel-toggle[aria-pressed="true"] .ahome-carousel-play { display: block; }
.ahome-carousel .ahome-carousel-toggle:focus-visible { outline: 2px solid #1a1a1a; outline-offset: 3px; }

@media (max-width: 749px) {
  .ahome-carousel { --ahome-scene-size: clamp(180px, 68vw, 300px); }
}

@media (prefers-reduced-motion: reduce) {
  .ahome-carousel .ahome-carousel-track { animation: none; transform: none; will-change: auto; }
  .ahome-carousel .ahome-carousel-viewport { overflow-x: auto; }
  .ahome-carousel [data-ahome-carousel-clone],
  .ahome-carousel .ahome-carousel-toggle { display: none; }
}

.ahome-carousel *, .ahome-carousel *::before, .ahome-carousel *::after { box-sizing: border-box; }
.ahome-carousel [hidden] { display: none !important; }
.ahome-carousel[data-apdp-protect-images="true"] {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.ahome-carousel[data-apdp-protect-images="true"] img {
  pointer-events: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
