/* ═══════════ FICHA DE RESIDENCIA ═══════════ */
.rhero{position:relative;height:min(100svh,900px);min-height:520px;overflow:hidden}
.rhero>img{width:100%;height:100%;object-fit:cover}
.rhero__in{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:clamp(28px,4vw,58px)}
.rhero__in h1{margin-top:12px}
.rhero__idx{position:absolute;right:var(--pad);bottom:clamp(28px,4vw,58px);z-index:2;text-align:right}

.rdata{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line-soft);
  margin-inline:var(--pad)}
.rdata div{padding:20px 16px 18px 0;border-right:1px solid var(--line-soft)}
.rdata div:last-child{border-right:0}
.rdata b{display:block;font-family:var(--d);font-weight:300;
  font-size:clamp(1.05rem,1.42vw,1.45rem);letter-spacing:-.02em;margin-top:6px}
@media(max-width:820px){.rdata{grid-template-columns:1fr 1fr 1fr}
  .rdata div{padding-right:10px}
  .rdata div:nth-child(3){border-right:0}}

.rbody{display:grid;grid-template-columns:minmax(0,.86fr) minmax(190px,.44fr) minmax(290px,.62fr);
  gap:clamp(20px,2.4vw,44px);padding:clamp(34px,3.8vw,62px) var(--pad) clamp(44px,5vw,80px);align-items:start}
.rtext{max-width:60ch}
.rside{position:sticky;top:calc(var(--nav-h) + 16px)}
.rtext p{color:rgba(240,238,231,.76)}
.rtext p:first-of-type{font-size:clamp(1.06rem,1.34vw,1.3rem);line-height:1.52;color:var(--bone)}
.amen{list-style:none;margin:0;padding:16px 0 0;border-top:1px solid var(--line);columns:1}
.amen li{font-family:var(--m);font-size:11px;letter-spacing:.08em;padding:8px 0;
  border-bottom:1px solid var(--line-soft);break-inside:avoid;color:rgba(240,238,231,.78)}
@media(max-width:1180px){.rbody{grid-template-columns:minmax(0,1.2fr) minmax(280px,.7fr)}
  .rside{grid-column:1;grid-row:2;position:static}
  .amen{columns:2;column-gap:30px}}
@media(max-width:900px){.rbody{grid-template-columns:1fr}.rside{grid-column:1}}

/* galería: recortes agresivos, nada de cuadrícula uniforme */
.gal{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(7px,.9vw,14px);
  padding:0 var(--pad) clamp(50px,6vw,92px)}
.gal figure{margin:0;overflow:hidden;background:var(--charcoal);cursor:zoom-in;position:relative}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.25s var(--ease)}
.gal figure:hover img{transform:scale(1.045)}
.gal figure::after{content:attr(data-n);position:absolute;right:10px;bottom:8px;z-index:2;
  font-family:var(--m);font-size:9.5px;letter-spacing:.16em;color:var(--bone);opacity:0;
  transition:opacity .4s;text-shadow:0 1px 8px rgba(10,11,9,.9)}
.gal figure:hover::after{opacity:.9}
.gal figure:nth-child(9n+1){grid-column:span 7;aspect-ratio:16/10}
.gal figure:nth-child(9n+2){grid-column:span 5;aspect-ratio:3/4.2}
.gal figure:nth-child(9n+3){grid-column:span 4;aspect-ratio:1}
.gal figure:nth-child(9n+4){grid-column:span 4;aspect-ratio:1}
.gal figure:nth-child(9n+5){grid-column:span 4;aspect-ratio:1}
.gal figure:nth-child(9n+6){grid-column:span 5;aspect-ratio:4/5}
.gal figure:nth-child(9n+7){grid-column:span 7;aspect-ratio:16/9}
.gal figure:nth-child(9n+8){grid-column:span 6;aspect-ratio:5/3}
.gal figure:nth-child(9n+9){grid-column:span 6;aspect-ratio:5/3}
@media(max-width:760px){.gal{grid-template-columns:repeat(2,1fr)}
  .gal figure{grid-column:span 1!important;aspect-ratio:1!important}
  .gal figure:nth-child(9n+1){grid-column:span 2!important;aspect-ratio:16/10!important}}

/* lightbox */
.lb{position:fixed;inset:0;z-index:200;background:rgba(10,11,9,.97);display:none;
  align-items:center;justify-content:center;padding:clamp(14px,4vw,56px)}
.lb.on{display:flex}
.lb img{max-width:100%;max-height:86vh;object-fit:contain}
.lb button{position:absolute;background:none;border:0;color:var(--bone);cursor:pointer;
  font-family:var(--m);font-size:10.5px;letter-spacing:.2em;padding:16px}
.lb__x{top:10px;right:14px}.lb__p{left:6px;top:50%}.lb__n{right:6px;top:50%}
.lb__c{position:absolute;bottom:16px;left:0;right:0;text-align:center}

/* concierge de la casa */
.rcon{display:grid;grid-template-columns:clamp(160px,18vw,260px) 1fr;gap:clamp(22px,3.4vw,56px);
  align-items:center;padding:clamp(40px,5vw,80px) var(--pad);background:var(--charcoal);
  margin-bottom:clamp(44px,5vw,84px)}
.rcon figure{margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--charcoal-2)}
.rcon img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.rcon:hover img{transform:scale(1.03)}
@media(max-width:760px){.rcon{grid-template-columns:1fr}.rcon figure{max-width:200px}}

/* otras residencias */
.more{padding:0 var(--pad) clamp(60px,7vw,110px)}
.more__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,32px);margin-top:26px}
.more__grid a figure{margin:0 0 12px;overflow:hidden;background:var(--charcoal)}
.more__grid a:nth-child(1) figure{aspect-ratio:4/5}
.more__grid a:nth-child(2) figure{aspect-ratio:4/5;margin-top:clamp(12px,2.4vw,40px)}
.more__grid a:nth-child(3) figure{aspect-ratio:4/5}
.more__grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.more__grid a:hover img{transform:scale(1.045)}
.more__t{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding-bottom:9px;border-bottom:1px solid var(--line-soft)}
@media(max-width:760px){.more__grid{grid-template-columns:1fr}
  .more__grid a:nth-child(2) figure{margin-top:0}}

/* cursor editorial sobre fotos (solo puntero fino) */
.cursor{position:fixed;top:0;left:0;z-index:150;pointer-events:none;
  width:86px;height:86px;border-radius:50%;background:var(--gold);color:var(--obsidian);
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--m);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;
  transform:translate3d(-50%,-50%,0) scale(0);transition:transform .5s var(--ease);will-change:transform}
.cursor.on{transform:translate3d(-50%,-50%,0) scale(1)}
@media(hover:none),(max-width:900px){.cursor{display:none}}

/* ═══════════ STEP INSIDE — la galería como carrusel, con pie y contador ═══════════ */
.inside{position:relative;padding:clamp(46px,5.4vw,86px) 0 clamp(36px,4.2vw,64px);overflow:hidden}
.inside__bg{position:absolute;inset:0;z-index:0}
.inside__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.1s var(--ease-io);filter:blur(14px) saturate(.8)}
.inside__bg img.on{opacity:.55}
.inside__bg::after{content:'';position:absolute;inset:0;background:rgba(10,11,9,.72)}
.inside__head{position:relative;z-index:2;text-align:center;padding:0 var(--pad) clamp(24px,3vw,42px)}
.inside__head .h2{margin-top:10px}
.inside__win{position:relative;z-index:2;overflow:hidden}
.inside__row{display:flex;align-items:center;gap:clamp(10px,1.4vw,22px);will-change:transform}
.ins{flex:0 0 auto;width:clamp(180px,24vw,380px);height:clamp(240px,30vw,440px);
  overflow:hidden;cursor:pointer;opacity:.34;
  transition:width .9s var(--ease),height .9s var(--ease),opacity .7s var(--ease-io)}
.ins img{width:100%;height:100%;object-fit:cover}
.ins.on{width:clamp(300px,52vw,880px);height:clamp(300px,38vw,560px);opacity:1;cursor:zoom-in}
.inside__cap{position:relative;z-index:2;text-align:center;padding:clamp(16px,2vw,26px) var(--pad) 0;
  min-height:3em}
.inside__cap p{font-family:var(--d);margin:0;color:rgba(240,238,231,.8);font-size:.96em}
.inside__nav{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;
  gap:16px;margin-top:clamp(14px,1.8vw,24px)}
.inside__nav button{width:44px;height:44px;border:1px solid rgba(240,238,231,.3);background:transparent;
  color:var(--bone);cursor:pointer;transition:border-color .4s,background .4s,color .4s}
.inside__nav button:hover{border-color:transparent;background:var(--grad);color:#140F05}
.inside__n{font-family:var(--m);font-weight:500;font-size:11px;letter-spacing:.16em;
  font-variant-numeric:tabular-nums;min-width:5.5em;text-align:center}
@media(max-width:760px){.ins{width:96px;height:180px}.ins.on{width:min(80vw,340px);height:250px}}
@media (prefers-reduced-motion:reduce){.inside__row,.ins{transition:none}}

/* la descripción como sección con título propio */
.rbody__h{padding:clamp(34px,4vw,64px) var(--pad) 0}

/* amenidades: en oro lo que no tienen las demás */
.amen__h{display:block}
.amen{margin-top:14px}
.amen--x{color:var(--gold-hi)!important;position:relative;padding-left:16px!important}
.amen--x::before{content:'';position:absolute;left:0;top:50%;width:5px;height:5px;
  border-radius:50%;background:var(--grad);transform:translateY(-50%)}
