
@font-face{
  font-family:'Serif titular G';
  src:local('Georgia'), local('Georgia Regular');
  size-adjust:99.3%; ascent-override:74.0%; descent-override:26.7%; line-gap-override:0%;
}
@font-face{
  font-family:'Serif titular T';
  src:local('Times New Roman'), local('TimesNewRomanPSMT'),
      local('Liberation Serif'), local('Tinos');
  size-adjust:109.8%; ascent-override:66.9%; descent-override:24.1%; line-gap-override:0%;
}
@font-face{
  font-family:'Serif titular N';
  src:local('Noto Serif'), local('Droid Serif');
  size-adjust:92.3%; ascent-override:79.6%; descent-override:28.7%; line-gap-override:0%;
}

:root{
  --bg:          #14161B;
  --bg-2:        #191C23;
  --surface:     #1F232C;
  --surface-2:   #272C37;
  --line:        rgba(241,238,231,.10);
  --line-strong: rgba(241,238,231,.20);

  --text:        #F1EEE7;
  --text-2:      #C4BFB4;
  --muted:       #8B877E;

  --accent:      #E0A755;
  --accent-2:    #F3CE94;
  --accent-deep: #8A5F22;
  --on-accent:   #17110A;
  --glow:        rgba(224,167,85,.30);
  --glow-soft:   rgba(224,167,85,.10);

  --verde:       #79C2A0;
  --verde-hondo: #2E7C5C;

  --mapa-tierra: #191C23;
  --mapa-calle:  #4A4E58;

  --vidrio:        linear-gradient(165deg,rgba(241,238,231,.07),rgba(241,238,231,.02));
  --vidrio-fuerte: linear-gradient(165deg,rgba(241,238,231,.12),rgba(241,238,231,.04));
  --campo-bg:      rgba(20,22,27,.55);

  --serif: 'Newsreader', 'Serif titular G', 'Serif titular T',
           'Serif titular N', Georgia, 'Times New Roman', serif;

  --tracking-h: -.018em;

  --radius:      14px;
  --radius-sm:   10px;
  --radius-pill: 100px;

  --sh-depth: 0 8px 34px rgba(0,0,0,.70);
  --sh-lit:   0 0 26px rgba(224,167,85,.28);
  --sh-hover: 0 0 24px rgba(243,206,148,.75);
  --sh-suave: 0 2px 14px rgba(0,0,0,.55);
  --sombra-panel: 0 40px 90px -60px #000;

  --grano-op: .055;
  --vineta: radial-gradient(122% 94% at 50% 42%, transparent 44%, rgba(6,7,10,.55) 100%);
}

.bg-static{
  opacity:.9;
  background:
    radial-gradient(120% 80% at 78% -10%, rgba(224,167,85,.10), transparent 62%),
    radial-gradient(90% 70% at 8% 108%, rgba(121,194,160,.07), transparent 60%),
    var(--bg);
}

.hero__grid{ display:none }

.h1,.h2,.h3{
  font-family:var(--serif);
  font-weight:500;
  font-variant-numeric:lining-nums;
}
.h1{ font-weight:500; line-height:1.0 }
.h2{ line-height:1.05 }

.h1 em,.h2 em,.h3 em{
  font-family:var(--serif); font-style:italic; font-weight:400;
  color:var(--accent-2); letter-spacing:0;
}

.hcap{
  position:absolute; inset:0; z-index:0;
  pointer-events:none; overflow:hidden;
}
.hcap__capa{ position:absolute; will-change:auto }

.hcap__foto{
  inset:-9% -2%;
  display:block;
}
.hcap__foto img{
  width:100%; height:100%; object-fit:cover;
  object-position:50% 42%;
  display:block;
}

.hcap__velo{
  inset:0;
  background:
    linear-gradient(102deg,
      rgba(20,22,27,.94) 0%, rgba(20,22,27,.86) 30%,
      rgba(20,22,27,.55) 58%, rgba(20,22,27,.30) 100%),
    linear-gradient(to top,
      var(--bg) 0%, rgba(20,22,27,.55) 22%, transparent 52%);
}

.hcap__plano{
  inset:-6% -8%;
  color:var(--accent);
  opacity:.20;
}
.hcap__plano svg{ width:100%; height:100%; display:block }

.hcap__ficha{
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.9), 0 0 0 1px var(--line);
  background:var(--surface);
}
.hcap__ficha img{ width:100%; height:100%; object-fit:cover; display:block }

.hcap__ficha--a{ width:clamp(150px,15vw,232px); aspect-ratio:13/18; right:6.5%;  top:16% }
.hcap__ficha--b{ width:clamp(140px,14vw,214px); aspect-ratio:3/2;   right:22%;   top:57% }

.hcap__chapa{
  position:absolute; left:.55rem; bottom:.55rem;
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.3rem .6rem; border-radius:var(--radius-sm);
  background:rgba(20,22,27,.82);
  border:1px solid var(--line-strong);
  font-size:.68rem; letter-spacing:.02em; color:var(--text);
  font-variant-numeric:lining-nums;
}
.hcap__chapa i{ width:6px; height:6px; border-radius:50%; background:var(--accent); font-style:normal }
.hcap__chapa--alq i{ background:var(--verde) }

.hero__inner{ max-width:min(100%,var(--maxw)) }
.hero__title{ max-width:12.4em }
.hero__lead{ max-width:44ch }

.rota{
  position:relative; display:inline-block;
  overflow:hidden;
  vertical-align:bottom;
  padding-bottom:.14em;
  margin-bottom:-.14em;
}
.rota__pal{
  display:block;
  font-family:var(--serif); font-style:italic; font-weight:400;
  color:var(--accent-2); letter-spacing:0;
  white-space:nowrap;
}

.rota__pal--sale{ position:absolute; left:0; top:0 }

.pulso{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:clamp(.9rem,2.4vw,2rem);
  padding:clamp(1rem,2.2vw,1.5rem) clamp(1.1rem,2.6vw,1.9rem);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--vidrio);
}
.pulso__total{
  display:flex; align-items:baseline; gap:.5rem;
  font-family:var(--serif); font-variant-numeric:lining-nums;
}
.pulso__total b{ font-size:clamp(2.1rem,4.6vw,3.1rem); font-weight:500; line-height:1; color:var(--text) }
.pulso__total span{ font-size:.95rem; color:var(--text-2) }
.pulso__parte{
  display:flex; align-items:center; gap:.55rem;
  font-size:.92rem; color:var(--text-2);
}
.pulso__parte b{ color:var(--text); font-weight:500; font-variant-numeric:lining-nums }
.pulso__punto{ width:9px; height:9px; border-radius:50%; background:var(--accent); flex:none }
.pulso__punto--alq{ background:var(--verde) }
.pulso__sep{ flex:1 1 0; min-width:0 }
.pulso__vivo{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
}
.pulso__vivo i{
  width:7px; height:7px; border-radius:50%; background:var(--verde);
  box-shadow:0 0 0 0 rgba(121,194,160,.55);
  animation:latido 2.6s var(--ease) infinite;
}
@keyframes latido{
  0%,100%{ transform:scale(1);   box-shadow:0 0 0 0 rgba(121,194,160,.5) }
  50%    { transform:scale(1.25);box-shadow:0 0 0 7px rgba(121,194,160,0) }
}

.simple{
  display:grid; gap:clamp(1.2rem,3vw,2.2rem);
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}
.simple__paso{
  padding:clamp(1.3rem,2.6vw,1.9rem);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--vidrio);
}
.simple .simple__num{
  display:block;
  font-family:var(--serif); font-variant-numeric:lining-nums;
  font-size:1.55rem; font-weight:500; line-height:1;
  color:var(--accent); letter-spacing:0;
  text-transform:none;
  margin-bottom:.85rem;
}
.simple .simple__paso h3{
  font-size:1.06rem; font-weight:500; color:var(--text);
  margin-bottom:.5rem; letter-spacing:0;
}
.simple .simple__paso p{ font-size:.95rem; color:var(--text-2); line-height:1.6; font-weight:300 }

@media (max-width:860px){
  .hero{ min-height:0; padding-top:calc(var(--header-h) + .5rem); padding-bottom:clamp(2rem,7vw,3rem) }
  .hcap{
    position:relative; inset:auto;

    width:100%; aspect-ratio:5/4;
    border-radius:var(--radius); overflow:hidden;
    margin-bottom:clamp(1.4rem,5vw,2.2rem);
  }

  .hcap__foto{ inset:-6% 0 }
  .hcap__foto img{ object-position:50% 46% }

  .hcap__velo{
    background:linear-gradient(to top,
      var(--bg) 0%, rgba(20,22,27,.72) 16%, rgba(20,22,27,.12) 46%, transparent 78%);
  }
  .hcap__plano{ opacity:.14 }

  .hcap__ficha--b{ display:none }

  .hcap__ficha--a{ width:30%; right:5%; top:auto; bottom:8% }

  .hero__inner .eyebrow{ margin-bottom:.9rem }
  .hero__title{ margin-bottom:1rem }
  .hero__lead{ margin-bottom:1.5rem }

  .pulso{ gap:.8rem 1.2rem }
  .pulso__sep{ display:none }
}

@media (max-width:520px){
  .hcap{ aspect-ratio:4/3 }
  .hcap__ficha--a{ width:33% }
}

.tonos{ position:fixed; inset:0; z-index:-2; pointer-events:none }
.tonos__capa{
  position:absolute; inset:0; display:block; opacity:0;
  will-change:opacity;
}
.tonos__capa--a{
  background:radial-gradient(90% 60% at 12% 0%, rgba(224,167,85,.10), transparent 62%);
}
.tonos__capa--b{
  background:
    radial-gradient(80% 55% at 88% 8%, rgba(121,194,160,.09), transparent 60%),
    radial-gradient(70% 50% at 5% 92%, rgba(224,167,85,.07), transparent 58%);
}
.tonos__capa--c{
  background:radial-gradient(95% 65% at 50% 100%, rgba(224,167,85,.11), transparent 64%);
}

.hcap__foto picture{ display:block; width:100%; height:100% }

.filtros{
  display:flex; flex-wrap:wrap; gap:clamp(.9rem,2vw,1.6rem);
  align-items:center;
  margin:clamp(1.8rem,3.6vw,2.8rem) 0 clamp(1.4rem,2.6vw,2rem);
  padding-bottom:clamp(1.1rem,2.2vw,1.6rem);
  border-bottom:1px solid var(--line);
}
.filtros__grupo{ display:flex; flex-wrap:wrap; gap:.5rem }
.filtros__sep{ flex:1 1 0; min-width:0 }
.filtros__cuenta{
  font-size:.82rem; color:var(--muted);
  font-variant-numeric:lining-nums; white-space:nowrap;
}

.chip{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.5rem .85rem;
  border:1px solid var(--line-strong); border-radius:var(--radius-pill);
  background:transparent; color:var(--text-2);
  font:inherit; font-size:.85rem; line-height:1;
  cursor:pointer;

  transition:color .25s var(--ease-mat), border-color .25s var(--ease-mat),
             background-color .25s var(--ease-mat), transform .25s var(--ease-mat);
}
.chip b{
  font-weight:500; font-variant-numeric:lining-nums;
  font-size:.76rem; color:var(--muted);
}
@media (hover:hover){
  .chip:hover{ color:var(--text); border-color:var(--accent); transform:translateY(-1px) }
}
.chip.is-on{
  background:var(--accent); border-color:var(--accent);
  color:var(--on-accent); font-weight:500;
}
.chip.is-on b{ color:var(--on-accent); opacity:.7 }

.chip.is-on[data-v="alquiler"]{ background:var(--verde); border-color:var(--verde) }
.chip:focus-visible{ outline:2px solid var(--accent-2); outline-offset:3px }

.grilla{
  display:grid; gap:clamp(1.1rem,2.2vw,1.7rem);
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr));

  grid-auto-flow:dense;
}
.grilla__vacio{
  grid-column:1 / -1;
  padding:clamp(2.4rem,6vw,4rem) 1rem; text-align:center;
  border:1px dashed var(--line-strong); border-radius:var(--radius);
  color:var(--text-2);
}
.grilla__vacio b{ display:block; color:var(--text); font-weight:500; margin-bottom:.5rem }
.grilla__mas{
  grid-column:1 / -1; padding-top:.6rem;
  display:flex; flex-direction:column; align-items:center; gap:.1rem;
}

.prop{

  perspective:1000px;
}

.grilla--anima .prop{ opacity:0 }

.prop__cara.is-inclinando{ transition:box-shadow .45s var(--ease-out) }
.prop__cara{
  position:relative;
  display:flex; flex-direction:column; height:100%;
  border:1px solid var(--line); border-radius:var(--radius);
  background:var(--surface); overflow:hidden;
  transform-style:preserve-3d;

  transition:transform .55s var(--ease-out), box-shadow .45s var(--ease-out);
  box-shadow:0 2px 10px rgba(0,0,0,.35);
}
.prop__cara:hover, .prop__cara.is-tocada{
  box-shadow:0 26px 60px -28px rgba(0,0,0,.95), 0 0 0 1px var(--line-strong);
}

.prop__foto{
  position:relative; overflow:hidden;
  aspect-ratio:3/2; background:var(--bg-2);

  transform:translateZ(22px);
}
.prop__foto img{ width:100%; height:100%; object-fit:cover; display:block }
.prop__foto svg{ width:100%; height:100%; display:block }

.prop__op{
  position:absolute; left:.7rem; top:.7rem;
  display:inline-flex; align-items:center;
  padding:.32rem .62rem; border-radius:var(--radius-pill);
  font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500;
  background:var(--accent); color:var(--on-accent);
}
.prop__op--alquiler{ background:var(--verde) }

.prop__dest{
  position:absolute; right:.7rem; top:.7rem;
  display:inline-flex; align-items:center; gap:.34rem;
  padding:.32rem .62rem; border-radius:var(--radius-pill);
  font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(20,22,27,.82); color:var(--accent-2);
  border:1px solid var(--accent-deep);
}

.prop__cuerpo{
  display:flex; flex-direction:column; flex:1;
  padding:clamp(1rem,2vw,1.3rem);
  gap:.55rem;
}
.prop__precio{
  font-family:var(--serif); font-variant-numeric:lining-nums;
  font-size:1.42rem; font-weight:500; line-height:1; color:var(--text);
  letter-spacing:0;
}
.prop__precio small{
  display:block; margin-top:.35rem;
  font-family:var(--font); font-size:.76rem; font-weight:300; color:var(--muted);
  letter-spacing:0;
}
.prop .prop__titulo{
  font-family:var(--font); font-size:1rem; font-weight:500;
  line-height:1.35; color:var(--text); letter-spacing:0;
}
.prop__donde{ font-size:.84rem; color:var(--text-2); line-height:1.45 }
.prop__datos{
  display:flex; flex-wrap:wrap; gap:.4rem;
  list-style:none; margin:.15rem 0 0;
}
.prop__datos li{
  padding:.24rem .55rem; border-radius:var(--radius-sm);
  border:1px solid var(--line); background:var(--bg-2);
  font-size:.74rem; color:var(--text-2);
  font-variant-numeric:lining-nums;
}
.prop__desc{ font-size:.84rem; color:var(--muted); line-height:1.55 }

.prop__wa{
  margin-top:auto; padding-top:.9rem;
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.86rem; font-weight:500; color:var(--verde);
  transition:color .25s var(--ease-mat), transform .25s var(--ease-mat);
}
.prop__wa svg{ flex:none }
@media (hover:hover){ .prop__wa:hover{ color:var(--text); transform:translateX(2px) } }
.prop__wa:focus-visible{ outline:2px solid var(--accent-2); outline-offset:3px; border-radius:4px }

.prop--dest .prop__cara{ border-color:var(--accent-deep) }
@media (min-width:900px){
  .prop--dest{ grid-column:1 / -1 }
  .prop--dest .prop__cara{ flex-direction:row }

  .prop--dest .prop__ver{ flex:0 0 56%; display:flex }
  .prop--dest .prop__foto{
    flex:1; aspect-ratio:16/10; height:auto;
  }
  .prop--dest .prop__cuerpo{
    justify-content:center; gap:.7rem;
    padding:clamp(1.4rem,3vw,2.4rem);
  }
  .prop--dest .prop__precio{ font-size:2rem }
  .prop--dest .prop__titulo{ font-size:1.28rem }
  .prop--dest .prop__desc{ font-size:.9rem }

  .prop--dest .prop__wa{ margin-top:.4rem }
}

.prop__ver{
  display:block; width:100%; padding:0; border:0; margin:0;
  background:none; color:inherit; font:inherit; text-align:inherit;
  cursor:zoom-in; position:relative;
  transform:translateZ(22px);
}
.prop__ver .prop__foto{ transform:none }
.prop__ver:focus-visible{ outline:2px solid var(--accent); outline-offset:-3px }

.prop--abre .prop__cara{ cursor:pointer }
.prop--abre .prop__wa{ cursor:pointer }

.prop__cuantas{
  position:absolute; right:.7rem; bottom:.7rem;
  display:inline-flex; align-items:center; gap:.32rem;
  padding:.3rem .58rem; border-radius:var(--radius-pill);
  font-size:.72rem; letter-spacing:.02em; font-weight:400;
  background:rgba(20,22,27,.78); color:var(--text);
  border:1px solid var(--line-strong);
  backdrop-filter:none;
}
.prop__cuantas::before{
  content:''; width:11px; height:9px; border-radius:1.5px;
  border:1.4px solid currentColor; box-shadow:2px -2px 0 -0.4px currentColor;
  opacity:.85;
}

.grilla__quedan{ font-size:.82rem; color:var(--muted) }
.grilla__fin{
  grid-column:1 / -1;
  text-align:center; max-width:52ch; margin:clamp(1.4rem,3vw,2.4rem) auto 0;
  padding-top:clamp(1.4rem,3vw,2.2rem);
  border-top:1px solid var(--line);
}
.grilla__fin-tit{
  font-family:var(--serif); font-size:clamp(1.1rem,2.4vw,1.4rem);
  color:var(--text); letter-spacing:0;
}

.grilla__fin-tit b{ color:var(--accent); font-weight:500; white-space:nowrap }
.grilla__fin-sub{
  margin-top:.6rem; font-size:.92rem; color:var(--text-2);
  line-height:1.6; font-weight:300;
}
.grilla__fin-btns{
  margin-top:clamp(1rem,2.4vw,1.5rem);
  display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center;
}

.visor{
  position:fixed; inset:0;

  z-index:1010;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(.6rem,2vw,1.4rem);
  overscroll-behavior:contain;
}
.visor[hidden]{ display:none }
.visor__fondo{
  position:absolute; inset:0;
  background:rgba(8,9,12,.92);
  animation:visorEntra .22s var(--ease-out) both;
}
@keyframes visorEntra{ from{ opacity:0 } to{ opacity:1 } }

.visor__panel{
  position:relative; z-index:1;
  width:min(1200px, 100%); max-height:100%;
  display:flex; flex-direction:column; gap:.7rem;
  animation:visorSube .26s var(--ease-out) both;
}
@keyframes visorSube{
  from{ opacity:0; transform:translateY(14px) scale(.985) }
  to  { opacity:1; transform:none }
}

.visor__top{
  display:flex; align-items:flex-start; gap:1rem; justify-content:space-between;
}
.visor__tit{ min-width:0 }
.visor__tit b{
  display:block; font-family:var(--serif); font-weight:500;
  font-size:clamp(1rem,2.4vw,1.25rem); color:var(--text); letter-spacing:0;
}
.visor__tit span{
  display:block; margin-top:.15rem;
  font-size:.84rem; color:var(--text-2);
}
.visor__x{
  flex:0 0 auto; display:grid; place-items:center;
  width:40px; height:40px; border-radius:var(--radius-pill);
  border:1px solid var(--line-strong); background:var(--surface);
  color:var(--text); cursor:pointer;
  transition:background .2s var(--ease-out), transform .2s var(--ease-out);
}
.visor__x:hover{ background:var(--surface-2); transform:scale(1.06) }

.visor__marco{
  position:relative; flex:1; min-height:0;
  display:grid; place-items:center;
  border-radius:var(--radius);

  touch-action:none;
}
.visor__foto{
  max-width:100%; max-height:100%;
  border-radius:var(--radius);
  width:auto; height:auto; display:block;
  object-fit:contain;
}
.visor__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  display:grid; place-items:center;
  width:44px; height:44px; border-radius:var(--radius-pill);
  border:1px solid var(--line-strong);
  background:rgba(20,22,27,.72); color:var(--text);
  cursor:pointer;
  transition:background .2s var(--ease-out), transform .2s var(--ease-out);
}
.visor__nav:hover{ background:var(--surface-2); transform:translateY(-50%) scale(1.06) }
.visor__nav--ant{ left:.6rem }
.visor__nav--sig{ right:.6rem }
.visor__nav[hidden]{ display:none }
.visor__cuenta{
  position:absolute; left:50%; bottom:.6rem; transform:translateX(-50%);
  padding:.26rem .6rem; border-radius:var(--radius-pill);
  font-size:.76rem; color:var(--text);
  background:rgba(20,22,27,.78); border:1px solid var(--line);
}
.visor__cuenta:empty{ display:none }

.visor__minis{
  display:flex; gap:.4rem; overflow-x:auto; padding-bottom:.2rem;
  scrollbar-width:thin;
}
.visor__minis[hidden]{ display:none }
.visor__mini{
  flex:0 0 auto; width:78px; height:52px; padding:0;
  border:1px solid var(--line); border-radius:var(--radius-sm);
  overflow:hidden; background:var(--bg-2); cursor:pointer;
  opacity:.55; transition:opacity .2s var(--ease-out), border-color .2s var(--ease-out);
}
.visor__mini img{ width:100%; height:100%; object-fit:cover; display:block }
.visor__mini.is-on{ opacity:1; border-color:var(--accent) }
.visor__mini:hover{ opacity:1 }

.visor__wa{
  display:inline-flex; align-items:center; gap:.5rem; align-self:flex-start;
  padding:.6rem 1rem; border-radius:var(--radius-pill);
  background:var(--accent); color:var(--on-accent);
  font-size:.9rem; font-weight:500; text-decoration:none;
  transition:transform .2s var(--ease-out);
}
.visor__wa:hover{ transform:translateY(-2px) }

@media (max-width:700px){
  .visor__panel{ gap:.5rem }
  .visor__nav{ width:38px; height:38px }
  .visor__mini{ width:62px; height:42px }
  .visor__wa{ align-self:stretch; justify-content:center }
}

@media (max-height:460px){
  .visor__minis, .visor__tit span{ display:none }
}

.prop__plano{
  display:grid; place-items:center;
  background:
    linear-gradient(0deg, rgba(224,167,85,.05), rgba(224,167,85,.05)),
    var(--bg-2);
  color:var(--accent);
}

@media (max-width:860px){
  .grilla{ grid-template-columns:1fr }

  .prop__foto{ transform:none }
  .filtros{ gap:.7rem 1rem }
  .filtros__sep{ display:none }
  .filtros__cuenta{ width:100%; order:3 }
}

.publi{
  display:grid; gap:clamp(1.8rem,4vw,3.4rem);
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  align-items:start;
}

.publi__razones{ display:grid; gap:clamp(1.2rem,2.6vw,1.9rem) }
.publi__punto{
  padding-left:clamp(2.6rem,5vw,3.4rem);
  position:relative;
}
.publi .publi__num{
  position:absolute; left:0; top:.1rem;
  font-family:var(--serif); font-variant-numeric:lining-nums;
  font-size:1.5rem; font-weight:500; line-height:1;
  color:var(--accent); letter-spacing:0; text-transform:none;
}

.publi__punto::before{
  content:''; position:absolute;
  left:.62rem; top:2.1rem; bottom:-.9rem; width:1px;
  background:linear-gradient(var(--line-strong), transparent);
}
.publi__punto:last-child::before{ display:none }
.publi .publi__punto h3{
  font-size:1.06rem; font-weight:500; color:var(--text);
  margin-bottom:.4rem; letter-spacing:0;
}
.publi .publi__punto p{ font-size:.94rem; color:var(--text-2); line-height:1.6; font-weight:300 }

.publi__form{
  padding:clamp(1.4rem,3vw,2.2rem);
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:var(--vidrio-fuerte);
  box-shadow:var(--sombra-panel);
}
.publi .publi__form-tit{
  font-family:var(--serif); font-size:1.24rem; font-weight:500;
  color:var(--text); letter-spacing:0; margin-bottom:1.2rem;
}

.process__grid{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr);
  gap:clamp(2.4rem,6vw,5rem); align-items:start;
}
.process__aside{
  position:sticky;
  top:calc(var(--header-h) + clamp(1.6rem,6vh,4rem));
}

.equipo{
  margin-top:clamp(.6rem,1.4vw,1rem);
  border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line);
  background:var(--surface);
}
.equipo img{ width:100%; height:auto; display:block; aspect-ratio:2/1; object-fit:cover }

.equipo__pie{
  position:relative; z-index:1; background:var(--surface);
  display:grid; gap:.35rem;
  padding:clamp(.9rem,2vw,1.15rem);
  font-size:.84rem; color:var(--text-2); line-height:1.4;
}
.equipo__pie b{ color:var(--text); font-weight:500 }
.equipo__nota{ margin-top:1.4rem; font-size:.8rem; color:var(--muted); line-height:1.55 }

.publi__foto,
.barrio{
  margin:0; max-width:660px;
  border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; background:var(--surface);
}

.publi__foto img,
.barrio img{ width:100%; height:auto; display:block; object-fit:cover }
.publi__foto img{ aspect-ratio:940/392 }
.barrio img{ aspect-ratio:960/400 }
.publi__foto{ margin-bottom:.3rem }

.barrio figcaption{
  position:relative; z-index:1; background:var(--surface);
  padding:clamp(.7rem,1.6vw,.95rem) clamp(.85rem,1.8vw,1.1rem);
  font-size:.82rem; color:var(--text-2);
  border-top:1px solid var(--line);
}

.razones{ display:grid; gap:clamp(1.6rem,3.4vw,2.6rem) }
.razon{
  padding-bottom:clamp(1.6rem,3.4vw,2.6rem);
  border-bottom:1px solid var(--line);
}
.razon:last-child{ border-bottom:0; padding-bottom:0 }
.razon__cifra{
  display:flex; align-items:baseline; gap:.5rem;
  margin-bottom:.6rem;
}
.razon .razon__cifra b{
  font-family:var(--serif); font-variant-numeric:lining-nums;
  font-size:clamp(2.6rem,6vw,3.9rem); font-weight:500; line-height:.9;
  color:var(--accent); letter-spacing:-.01em;
}
.razon .razon__cifra span{
  font-size:.86rem; color:var(--muted);
  letter-spacing:.1em; text-transform:uppercase;
}
.razon h3{
  font-family:var(--serif); font-size:1.5rem; font-weight:500;
  color:var(--text); line-height:1.15; letter-spacing:0;
  margin-bottom:.55rem;
}
.razon p{ color:var(--text-2); line-height:1.65; font-weight:300; max-width:46ch }

.cont{
  display:grid; gap:clamp(1.8rem,4vw,3.4rem);
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  align-items:start;
  margin-top:clamp(1.6rem,3.4vw,2.6rem);
}
.cont__lista{ display:grid; gap:1.15rem }
.cont__lista dt{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); margin-bottom:.3rem;
}
.cont__lista dd{ color:var(--text); line-height:1.55; font-size:.98rem }
.cont__lista a{
  color:var(--accent-2);
  border-bottom:1px solid transparent; transition:border-color .3s var(--ease-mat);
}
.cont__lista a:hover{ border-color:currentColor }
.cont__acciones{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.8rem }
.cont__nota{ margin-top:1.1rem; font-size:.84rem; color:var(--muted) }

.mapa{
  border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; background:var(--bg-2);
}
.mapa svg{ width:100%; height:auto; display:block }
.mapa figcaption{
  padding:clamp(.8rem,1.8vw,1.05rem);
  font-size:.84rem; color:var(--text-2);
  border-top:1px solid var(--line);
}

.mapa__halo{
  transform-box:fill-box; transform-origin:center;
  animation:pinLate 2.8s var(--ease) infinite;
}
@keyframes pinLate{
  0%,100%{ transform:scale(.72); opacity:.30 }
  55%    { transform:scale(1.18); opacity:.06 }
}

.seccion--foto{ position:relative; overflow:clip }
.seccion--foto > .container{ position:relative; z-index:1 }

.fondo-foto{ display:none }

@media (min-width:900px){
  .fondo-foto{
    display:block;
    position:absolute; left:0; right:0; top:-60px; bottom:-60px;
    z-index:0; pointer-events:none; overflow:clip;
  }
  .fondo-foto__img{
    position:absolute; left:0; right:0; top:-40px; bottom:-40px;
    background-size:cover; background-position:center;
  }
  #publicar .fondo-foto__img{ background-image:url('../img/fondo-publicar.webp') }
  #contacto .fondo-foto__img{ background-image:url('../img/fondo-contacto.webp') }
}

.fondo-foto__velo{
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom,
      var(--bg) 0%, rgba(20,22,27,0) 16%,
      rgba(20,22,27,0) 84%, var(--bg) 100%),
    linear-gradient(rgba(20,22,27,.72), rgba(20,22,27,.72));
}

.seccion--foto .cont__nota,
.seccion--foto .form__nota,
.seccion--foto .field small{ color:var(--text-2) }

@media (max-width:900px){
  .publi{ grid-template-columns:1fr }
  .process__grid{ grid-template-columns:1fr; gap:clamp(1.8rem,5vw,2.6rem) }

  .process__aside{ position:static }
  .cont{ grid-template-columns:1fr }
}
@media (max-width:620px){
  .cont__acciones .btn{ width:100% }
  .razon .razon__cifra b{ font-size:2.9rem }
}

@media (prefers-reduced-motion: reduce){
  .mapa__halo{ animation:none; opacity:.22 }
  .pulso__vivo i{ animation:none }
}
