/* Replaces Squarespace runtime (JS-driven) rendering behavior with CSS. */

/* content-fill images: pre-JS fallback only — replica.js applies the exact
   focal-point crop (inline styles must win, so no !important here) */
.content-fill {
  position: relative;
  overflow: hidden;
}
.content-fill img,
.content-fill .loaded {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* image blocks: sqs JS sized these; container aspect comes from padding-bottom already in markup */
.sqs-image-shape-container-element {
  position: relative;
  overflow: hidden;
}
.sqs-image-shape-container-element img.loaded {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* images are visible immediately (no lazy loader) */
img.loaded { opacity: 1; }

/* strip gallery: sqs JS laid slides inline at container height; height set by replica.js (0.75 * width) */
.sqs-gallery-design-strip {
  position: relative;
  overflow: hidden;
  white-space: nowrap;
  font-size: 0; /* kill inline-block gaps */
}
.sqs-gallery-design-strip img.sqs-gallery-design-strip-slide {
  display: inline-block !important; /* site.css stacks slides absolutely; strip lays them in a row */
  position: relative !important;
  top: auto !important;
  left: auto !important;
  height: 100% !important;
  width: auto !important;
  transition: none;
}
/* strip arrows (sqs runtime positioned these) */
.sqs-gallery-block-slider .sqs-gallery-controls .previous,
.sqs-gallery-block-slider .sqs-gallery-controls .next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  cursor: pointer;
}
.sqs-gallery-block-slider .sqs-gallery-controls .previous { left: 10px; }
.sqs-gallery-block-slider .sqs-gallery-controls .next { right: 10px; }

/* stacked slideshow gallery: slides overlaid, active one visible */
.sqs-gallery-design-stacked {
  position: relative;
  overflow: hidden;
}
.sqs-gallery-design-stacked-slide {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.sqs-gallery-design-stacked-slide.sqs-active-slide { opacity: 1; }

/* thumbnail strip under slideshow: 80px thumbs, 5px padding, centred, adjacent */
.sqs-gallery-thumbnails {
  text-align: center;
  padding: 5px 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: 0;
}
.sqs-gallery-thumbnails img {
  display: inline-block;
  height: 80px;
  /* width comes from the width attribute (sqs computed it server-side) */
  object-fit: cover;
  vertical-align: top;
  cursor: pointer;
}

/* static map replacement */
.sqs-block-map .static-map { display: block; height: 100%; }
.sqs-block-map .static-map picture, .sqs-block-map .static-map img {
  display: block; width: 100%; height: 100%; object-fit: cover;
}

/* discreet admin entry */
.estate-admin-link {
  position: fixed;
  right: 10px;
  bottom: 6px;
  font-family: "proxima-nova", sans-serif;
  font-size: 10px;
  font-weight: 300;
  letter-spacing: 1px;
  color: #d8d8d8;
  text-decoration: none;
  z-index: 50;
}
.estate-admin-link:hover { color: #888; }
