/* Non-cinematic property hero carousel; cinematic title/price composition stays intact. */
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-stage{
  position:relative;
  height:auto;
  aspect-ratio:16 / 10;
  overflow:hidden;
  background:#100F0C;
  touch-action:pan-y;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-stage :is(img,video){
  height:100%;
  min-height:0;
  object-fit:cover;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-stage video{object-fit:contain}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-stage .hero-slide-open{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-slide-open:after{
  content:"";
  position:absolute;
  inset:35% 0 0;
  z-index:0;
  background:linear-gradient(180deg,transparent,rgba(9,8,6,.48));
  pointer-events:none;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-stage .media-caption{
  z-index:1;
  padding:50px 22px 19px;
  color:#F2EEE6;
  text-shadow:0 1px 12px rgba(0,0,0,.7);
  font-size:9px;
  letter-spacing:.13em;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-controls-overlay{
  height:auto;
  inset:0;
  padding:0 17px;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-arrow{
  width:43px;
  height:43px;
  border:1px solid rgba(232,203,145,.72);
  border-radius:50%;
  background:rgba(16,15,12,.72);
  color:#F2EEE6;
  font:400 24px/1 var(--serif);
  transition:background-color .2s ease,border-color .2s ease,transform .2s ease;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-arrow:hover:not(:disabled){
  border-color:#E8CB91;
  background:#17140F;
  transform:scale(1.04);
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .hero-overlay-count{
  right:17px;
  bottom:17px;
  min-width:76px;
  padding:9px 12px;
  border:1px solid rgba(242,238,230,.24);
  background:rgba(16,15,12,.8);
  color:#F2EEE6;
  font:500 10px var(--mono);
  letter-spacing:.13em;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .thumbs{
  gap:8px;
  padding:13px 14px 15px;
  background:#15120E;
  border-top:1px solid rgba(242,238,230,.1);
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .thumbs::-webkit-scrollbar{display:none}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .thumb{
  position:relative;
  flex:0 0 96px;
  height:61px;
  border:1px solid rgba(242,238,230,.13);
  background:#100F0C;
  transition:border-color .2s ease,transform .2s ease;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .thumb:hover{transform:translateY(-2px)}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) .thumb[aria-current="true"]{
  border:2px solid #D0AE70;
  outline:2px solid #D0AE70;
  outline-offset:2px;
}
body[data-premium-site] .p-property-page .hero:not(.project-cinematic) :is(.thumb,.hero-arrow,.hero-stage):focus-visible{
  outline:2px solid #F0D49B;
  outline-offset:4px;
}

/* Preserve the existing cinematic full-bleed hero and its deliberate text overlay.
   Only enlarge/clarify its existing thumbnail rail and padded index counter. */
body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .thumbs{
  right:clamp(20px,4vw,58px);
  bottom:150px;
  width:min(430px,38vw);
  gap:9px;
  padding:10px 12px 12px;
  border:1px solid rgba(242,238,230,.2);
  background:rgba(14,13,10,.78);
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
}
body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .thumbs::-webkit-scrollbar{display:none}
body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .thumb{
  flex:0 0 76px;
  width:76px;
  height:52px;
  padding:2px;
  border:1px solid rgba(242,238,230,.34);
  background:#15120E;
}
body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .thumb[aria-current="true"]{
  border:2px solid #E8CB91;
  outline:2px solid #E8CB91;
  outline-offset:2px;
}
body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .hero-overlay-count{
  min-width:82px;
  padding:9px 12px;
  border:1px solid rgba(232,203,145,.65);
  background:rgba(11,10,8,.82);
  color:#F2EEE6;
  font:500 10px/1.4 var(--sans);
  letter-spacing:.15em;
}
body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media :is(.thumb,.hero-arrow):focus-visible{
  outline:2px solid #F0D49B;
  outline-offset:4px;
}

/* Existing /properties/:slug/gallery modal is the approved-image viewer stage. */
body[data-premium-site] dialog#viewer .viewer{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  padding:18px 18px 14px;
}
body[data-premium-site] dialog#viewer .viewer figure#frame{
  position:relative;
  width:100%;
  aspect-ratio:16 / 10;
  min-height:220px;
  margin:0;
  overflow:hidden;
  background:#100F0C;
  touch-action:pan-y;
}
body[data-premium-site] dialog#viewer .viewer #frame :is(img,video){
  display:block;
  width:100%;
  height:100%;
  max-height:none;
  object-fit:contain;
  background:#100F0C;
}
body[data-premium-site] dialog#viewer .viewer #frame figcaption{
  position:absolute;
  inset:auto 0 0;
  padding:36px 130px 14px 18px;
  background:linear-gradient(transparent,rgba(8,7,6,.82));
  color:#F2EEE6;
  font:500 9px/1.5 var(--mono);
  letter-spacing:.09em;
}
body[data-premium-site] dialog#viewer .viewer .premium-viewer-count{
  position:absolute;
  z-index:3;
  top:16px;
  left:50%;
  padding:9px 13px;
  transform:translateX(-50%);
  border:1px solid rgba(232,203,145,.7);
  background:rgba(11,10,8,.82);
  color:#F2EEE6;
  font:500 10px/1.4 var(--mono);
  letter-spacing:.16em;
  white-space:nowrap;
}
body[data-premium-site] dialog#viewer .viewer button{
  width:44px;
  height:44px;
  border:1px solid rgba(232,203,145,.72);
  border-radius:50%;
  background:rgba(16,15,12,.8);
  color:#F2EEE6;
}
body[data-premium-site] dialog#viewer .viewer .close{right:26px;top:26px}
body[data-premium-site] dialog#viewer .viewer .prev,
body[data-premium-site] dialog#viewer .viewer .next{top:calc(50% - 24px)}
body[data-premium-site] dialog#viewer .viewer .prev{left:27px}
body[data-premium-site] dialog#viewer .viewer .next{right:27px}
body[data-premium-site] dialog#viewer .viewer :is(button,.premium-viewer-thumb):focus-visible{
  outline:2px solid #F0D49B;
  outline-offset:4px;
}
body[data-premium-site] dialog#viewer .premium-viewer-thumbnails{
  display:flex;
  gap:8px;
  max-width:100%;
  overflow-x:auto;
  padding:6px 4px 9px;
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
}
body[data-premium-site] dialog#viewer .premium-viewer-thumbnails::-webkit-scrollbar{display:none}
body[data-premium-site] dialog#viewer .premium-viewer-thumb{
  position:relative;
  flex:0 0 78px;
  height:52px;
  display:grid;
  place-items:center;
  padding:2px;
  overflow:hidden;
  border:1px solid rgba(242,238,230,.22);
  border-radius:0;
  background:#100F0C;
  color:#E8CB91;
  font:500 8px/1.3 var(--mono);
  letter-spacing:.06em;
  text-transform:uppercase;
}
body[data-premium-site] dialog#viewer .premium-viewer-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
body[data-premium-site] dialog#viewer .premium-viewer-thumb[aria-current="true"]{
  border:2px solid #E8CB91;
  outline:2px solid #E8CB91;
  outline-offset:2px;
}

/* Inline editorial photo viewer; its source buttons remain the thumbnails and
   the stage delegates to those same approved-photo buttons for the lightbox. */
body[data-premium-site] .p-property-page .premium-inline-viewer{
  position:relative;
  width:100%;
  margin:0 0 12px;
  overflow:hidden;
  border:1px solid rgba(201,164,92,.38);
  background:#100F0C;
}
body[data-premium-site] .p-property-page .premium-inline-stage{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 10;
  overflow:hidden;
  padding:0;
  border:0;
  background:#100F0C;
  color:#F2EEE6;
  text-align:left;
  cursor:zoom-in;
  touch-action:pan-y;
}
body[data-premium-site] .p-property-page .premium-inline-stage:after{
  content:"";
  position:absolute;
  inset:38% 0 0;
  background:linear-gradient(180deg,transparent,rgba(9,8,6,.72));
  pointer-events:none;
}
body[data-premium-site] .p-property-page .premium-inline-stage img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
body[data-premium-site] .p-property-page .premium-inline-stage:hover img{transform:scale(1.012)}
body[data-premium-site] .p-property-page .premium-inline-caption{
  position:absolute;
  z-index:1;
  inset:auto 106px 18px 20px;
  color:#F2EEE6;
  font:500 9px/1.5 var(--sans);
  letter-spacing:.13em;
  text-transform:uppercase;
  text-shadow:0 1px 10px rgba(0,0,0,.75);
}
body[data-premium-site] .p-property-page .premium-inline-count{
  position:absolute;
  z-index:1;
  right:18px;
  bottom:15px;
  min-width:72px;
  padding:8px 10px;
  border:1px solid rgba(232,203,145,.68);
  background:rgba(11,10,8,.8);
  color:#F2EEE6;
  font:500 9px/1.4 var(--mono);
  letter-spacing:.13em;
  text-align:center;
}
body[data-premium-site] .p-property-page .premium-inline-arrow{
  position:absolute;
  z-index:2;
  top:50%;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  transform:translateY(-50%);
  border:1px solid rgba(232,203,145,.7);
  border-radius:50%;
  background:rgba(16,15,12,.78);
  color:#F2EEE6;
  font:400 25px/1 var(--serif);
}
body[data-premium-site] .p-property-page .premium-inline-prev{left:18px}
body[data-premium-site] .p-property-page .premium-inline-next{right:18px}
body[data-premium-site] .p-property-page .premium-inline-arrow:hover{
  border-color:#E8CB91;
  background:#17140F;
}
body[data-premium-site] .p-property-page .premium-inline-viewer :is(button):focus-visible,
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails button:focus-visible{
  outline:2px solid #F0D49B;
  outline-offset:3px;
  z-index:3;
}
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails{
  display:flex!important;
  grid-template-columns:none;
  grid-auto-rows:auto;
  grid-auto-flow:initial;
  gap:9px;
  width:100%;
  margin:0;
  padding:12px 4px 15px;
  overflow-x:auto;
  overflow-y:hidden;
  border-top:1px solid rgba(242,238,230,.12);
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
}
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails::-webkit-scrollbar{display:none}
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails>button.editorial-gallery-item{
  position:relative;
  flex:0 0 112px;
  width:112px;
  height:72px;
  min-height:0;
  grid-column:auto;
  grid-row:auto;
  padding:0;
  border:1px solid rgba(242,238,230,.2);
  background:#100F0C;
  cursor:pointer;
}
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails>button.editorial-gallery-item:after{
  content:none;
  display:none;
}
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails>button.editorial-gallery-item[aria-current="true"]{
  border:2px solid #E8CB91;
  outline:2px solid #E8CB91;
  outline-offset:2px;
}
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails>button.editorial-gallery-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails>button.editorial-gallery-item span{
  position:absolute;
  inset:auto 0 0;
  overflow:hidden;
  padding:5px 6px;
  background:linear-gradient(transparent,rgba(9,8,6,.85));
  color:#F2EEE6;
  font:500 7px/1.3 var(--sans);
  letter-spacing:.04em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-premium-site] .p-gallery-page .premium-inline-viewer{
  position:relative;
  width:100%;
  margin:22px 0 0;
  overflow:hidden;
  border:1px solid rgba(201,164,92,.38);
  background:#100F0C;
}
body[data-premium-site] .p-gallery-page .premium-inline-stage{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 10;
  overflow:hidden;
  padding:0;
  border:0;
  background:#100F0C;
  color:#F2EEE6;
  text-align:left;
  cursor:zoom-in;
  touch-action:pan-y;
}
body[data-premium-site] .p-gallery-page .premium-inline-stage:after{
  content:"";
  position:absolute;
  inset:38% 0 0;
  background:linear-gradient(180deg,transparent,rgba(9,8,6,.72));
  pointer-events:none;
}
body[data-premium-site] .p-gallery-page .premium-inline-stage img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
body[data-premium-site] .p-gallery-page .premium-inline-stage:hover img{transform:scale(1.012)}
body[data-premium-site] .p-gallery-page .premium-inline-caption{
  position:absolute;
  z-index:1;
  inset:auto 106px 18px 20px;
  color:#F2EEE6;
  font:500 9px/1.5 var(--sans);
  letter-spacing:.13em;
  text-transform:uppercase;
  text-shadow:0 1px 10px rgba(0,0,0,.75);
}
body[data-premium-site] .p-gallery-page .premium-inline-count{
  position:absolute;
  z-index:1;
  right:18px;
  bottom:15px;
  min-width:72px;
  padding:8px 10px;
  border:1px solid rgba(232,203,145,.68);
  background:rgba(11,10,8,.8);
  color:#F2EEE6;
  font:500 9px/1.4 var(--mono);
  letter-spacing:.13em;
  text-align:center;
}
body[data-premium-site] .p-gallery-page .premium-inline-arrow{
  position:absolute;
  z-index:2;
  top:50%;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  transform:translateY(-50%);
  border:1px solid rgba(232,203,145,.7);
  border-radius:50%;
  background:rgba(16,15,12,.78);
  color:#F2EEE6;
  font:400 25px/1 var(--serif);
}
body[data-premium-site] .p-gallery-page .premium-inline-arrow:disabled{opacity:.5;cursor:not-allowed}
body[data-premium-site] .p-gallery-page .premium-inline-prev{left:18px}
body[data-premium-site] .p-gallery-page .premium-inline-next{right:18px}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails{
  display:flex;
  grid-template-columns:none;
  gap:9px;
  margin:0;
  padding:12px 4px 15px;
  overflow-x:auto;
  overflow-y:hidden;
  border-top:1px solid rgba(242,238,230,.12);
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails::-webkit-scrollbar{display:none}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile{
  flex:0 0 112px;
  width:112px;
  min-width:112px;
  margin:0;
  grid-column:auto;
  grid-row:auto;
  background:#100F0C;
}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile:first-child{
  grid-column:auto;
  grid-row:auto;
}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile>button{
  position:relative;
  display:block;
  width:100%;
  height:72px;
  overflow:hidden;
  padding:0;
  border:1px solid rgba(242,238,230,.2);
  background:#100F0C;
}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile>button[aria-current="true"]{
  border:2px solid #E8CB91;
  outline:2px solid #E8CB91;
  outline-offset:2px;
}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile>button>img{
  display:block;
  width:100%;
  height:100%!important;
  object-fit:cover;
  transition:none;
}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile>button:hover>img{transform:none}
body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile>.label{display:none}
body[data-premium-site] .p-gallery-page :is(.premium-inline-viewer button,.premium-inline-thumbnails button):focus-visible{
  outline:2px solid #F0D49B;
  outline-offset:3px;
  z-index:3;
}
@media(max-width:850px){
  body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .thumbs{
    right:20px;
    bottom:150px;
    width:min(370px,46vw);
  }
}
@media(max-width:600px){
  body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .thumbs{
    right:18px;
    left:auto;
    bottom:22px;
    width:min(245px,58vw);
    padding:7px 8px 9px;
  }
  body[data-premium-site] .p-property-page .hero.project-cinematic .hero-media .thumb{
    flex-basis:58px;
    width:58px;
    height:42px;
  }
  body[data-premium-site] dialog#viewer .viewer{padding:12px}
  body[data-premium-site] dialog#viewer .viewer figure#frame{min-height:190px}
  body[data-premium-site] dialog#viewer .viewer #frame figcaption{padding:32px 82px 11px 12px}
  body[data-premium-site] dialog#viewer .viewer .prev{left:18px}
  body[data-premium-site] dialog#viewer .viewer .next{right:18px}
  body[data-premium-site] dialog#viewer .premium-viewer-thumb{flex-basis:66px;height:46px}
  body[data-premium-site] .p-property-page .premium-inline-stage{aspect-ratio:16 / 10}
  body[data-premium-site] .p-property-page .premium-inline-caption{inset:auto 84px 13px 13px;font-size:8px}
  body[data-premium-site] .p-property-page .premium-inline-count{right:11px;bottom:10px;min-width:64px;padding:7px 8px}
  body[data-premium-site] .p-property-page .premium-inline-arrow{width:38px;height:38px}
  body[data-premium-site] .p-property-page .premium-inline-prev{left:10px}
  body[data-premium-site] .p-property-page .premium-inline-next{right:10px}
  body[data-premium-site] .p-property-page .editorial-gallery.premium-inline-thumbnails>button.editorial-gallery-item{
    flex-basis:86px;
    width:86px;
    height:58px;
  }
  body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile{
    flex-basis:86px;
    width:86px;
    min-width:86px;
  }
  body[data-premium-site] .p-gallery-page .grid.premium-inline-thumbnails>.tile>button{height:58px}
  body[data-premium-site] .p-gallery-page .premium-inline-caption{inset:auto 84px 13px 13px;font-size:8px}
  body[data-premium-site] .p-gallery-page .premium-inline-count{right:11px;bottom:10px;min-width:64px;padding:7px 8px}
  body[data-premium-site] .p-gallery-page .premium-inline-arrow{width:38px;height:38px}
  body[data-premium-site] .p-gallery-page .premium-inline-prev{left:10px}
  body[data-premium-site] .p-gallery-page .premium-inline-next{right:10px}
}
@media(prefers-reduced-motion:reduce){
  body[data-premium-site] .p-property-page .hero .thumb,
  body[data-premium-site] .p-property-page .hero .hero-arrow,
  body[data-premium-site] .p-property-page .premium-inline-stage img,
  body[data-premium-site] .p-property-page .premium-inline-arrow,
  body[data-premium-site] .p-gallery-page .premium-inline-stage img,
  body[data-premium-site] .p-gallery-page .premium-inline-arrow,
  body[data-premium-site] dialog#viewer .premium-viewer-thumb{transition:none}
}
