/* ==== Movimiento de la página · Alejandro Isla (capa agregada) ==== */

/* Botones: brillo que cruza al pasar el mouse + pulsación al tocar */
.pm-btn{position:relative;overflow:hidden;isolation:isolate}
.pm-btn .pm-shine{position:absolute;top:-20%;bottom:-20%;left:-60%;width:45%;pointer-events:none;z-index:1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg) translateX(0);opacity:0}
.pm-btn:active{transform:scale(.97)}

/* Botón principal del formulario: respira suave para llamar la atención */
.pm-breathe{animation:pmBreathe 3.6s ease-in-out infinite}
@keyframes pmBreathe{
  0%,70%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--barrio-color,#47627a) 0%,transparent)}
  35%{box-shadow:0 0 0 8px color-mix(in srgb,var(--barrio-color,#47627a) 22%,transparent)}
}

/* WhatsApp flotante: onda que se expande cada tanto */
.floating-whatsapp{overflow:visible}
.floating-whatsapp::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  border:2px solid rgba(37,211,102,.75);animation:pmRing 3.2s ease-out infinite}
@keyframes pmRing{0%{transform:scale(1);opacity:.85}70%,100%{transform:scale(1.65);opacity:0}}

/* Recuadros: luz que sigue al cursor y leve elevación 3D */
.pm-card{}
.pm-card .pm-glow{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;opacity:0;
  transition:opacity .35s ease;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),
    color-mix(in srgb,var(--am-gold,#d5946d) 22%,transparent),transparent 45%);
  mix-blend-mode:soft-light}
.pm-card:hover .pm-glow{opacity:1}
.pm-card .pm-edge{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;opacity:0;
  transition:opacity .35s ease;padding:1px;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),var(--am-gold,#d5946d),transparent 60%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude}
.pm-card:hover .pm-edge{opacity:1}

/* Fotos: zoom lento al pasar el mouse (la entrada y el paralaje los maneja el JS) */
.value-card-hero img{transition:filter .6s ease}
.value-card:hover .value-card-hero img{filter:saturate(1.15) contrast(1.05)}

/* Títulos: cada palabra sube desde una "ranura" */
.pm-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.pm-w > span{display:inline-block}


/* Cifra que cuenta */
.pm-count{font-variant-numeric:tabular-nums}

@media (hover:none){.pm-card .pm-glow,.pm-card .pm-edge{display:none}}
@media (prefers-reduced-motion:reduce){
  .pm-breathe,.floating-whatsapp::after{animation:none}
  .pm-btn .pm-shine,.pm-card .pm-glow,.pm-card .pm-edge{display:none}
}

/* Fotos de portada: fundido más lento entre una y otra */
.hero-image{transition:opacity 2000ms ease,filter 220ms ease;animation-duration:16s!important}

/* ---------- Marcos de los recuadros ----------
   Línea dorada que se dibuja alrededor, esquineros de plano de arquitectura
   y una luz que recorre el borde sin parar. */
.pm-card svg.pm-frame,.pm-framed svg.pm-frame,svg.pm-frame{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;padding:0!important;margin:0!important;background:none!important;box-shadow:none!important;border-radius:0!important;pointer-events:none;z-index:3;overflow:visible;grid-row:auto!important}
.pm-frame rect{x:1px;y:1px;width:calc(100% - 2px);height:calc(100% - 2px);rx:8px;ry:8px;fill:none}
.pm-frame .pm-f-line{stroke:color-mix(in srgb,var(--am-gold,#d5946d) 85%,transparent);stroke-width:1.6;
  stroke-dasharray:1;stroke-dashoffset:var(--pm-draw,0)}
.pm-frame .pm-f-run{stroke:var(--am-gold,#d5946d);stroke-width:2.4;stroke-linecap:round;
  stroke-dasharray:.09 .91;filter:drop-shadow(0 0 4px rgba(213,148,109,.9));
  animation:pmRun var(--pm-lap,9s) linear infinite;animation-delay:var(--pm-delay,0s);opacity:var(--pm-run-o,0);transition:opacity .8s}
@keyframes pmRun{to{stroke-dashoffset:-1}}
.pm-corner{position:absolute;width:18px;height:18px;pointer-events:none;z-index:3;
  border-color:var(--am-gold,#d5946d);border-style:solid;border-width:0;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.pm-corner--tl{top:7px;left:7px;border-top-width:2px;border-left-width:2px}
.pm-corner--tr{top:7px;right:7px;border-top-width:2px;border-right-width:2px}
.pm-corner--bl{bottom:7px;left:7px;border-bottom-width:2px;border-left-width:2px}
.pm-corner--br{bottom:7px;right:7px;border-bottom-width:2px;border-right-width:2px}
.pm-framed:hover .pm-corner--tl{transform:translate(-3px,-3px)}
.pm-framed:hover .pm-corner--tr{transform:translate(3px,-3px)}
.pm-framed:hover .pm-corner--bl{transform:translate(-3px,3px)}
.pm-framed:hover .pm-corner--br{transform:translate(3px,3px)}
.pm-framed{--pm-run-o:.9}
.pm-framed .pm-clip{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
@media (prefers-reduced-motion:reduce){.pm-frame .pm-f-run{animation:none;opacity:0}}

/* Foto del asesor en video */
.advisor-photo{position:relative;overflow:hidden}
.pm-advisor-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 12%;display:block;background:#fff}
/* Su video recortado delante del monograma AA en 3D */
.advisor-card:has(.pm-ai3d){grid-template-columns:minmax(0,1fr) 236px}
.advisor-photo.pm-ai3d{width:236px;min-height:214px;isolation:isolate;
  background:radial-gradient(90% 75% at 50% 30%,#3d6cb0 0%,#173a72 45%,#0b1f45 100%)!important;filter:none}
.pm-ai3d .pm-mono3d{position:absolute;inset:0;z-index:0;display:grid;place-items:start center}
.pm-ai3d .pm-mono3d canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.pm-aa-flat{width:72%;height:auto;margin-top:6%;fill:#dfe5ee;opacity:.9}
.pm-aa-flat .c{fill:#ff1200}
.pm-ai3d .pm-person,.pm-ai3d .pm-person-still{position:absolute;left:50%;bottom:0;z-index:2;height:94%;width:auto;max-width:none;transform:translateX(-50%);
  filter:drop-shadow(0 8px 16px rgba(4,12,30,.45));
  -webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 100%);mask-image:linear-gradient(180deg,#000 82%,transparent 100%)}
.pm-ai3d .pm-person{aspect-ratio:480/454}
.pm-ai3d.pm-has-person .pm-person-still{opacity:0}
.pm-ai3d .pm-person-src{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;z-index:-1}
.pm-ai3d::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;z-index:3;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(11,31,69,.55))}
@media (max-width:760px){
  .advisor-card:has(.pm-ai3d){grid-template-columns:minmax(0,1fr) 156px}
  .advisor-photo.pm-ai3d{width:156px;min-height:170px}
}

/* Tilde que faltaba en el texto de los barrios */
.neighborhoods::before{content:"También podemos asesorarte en:"!important}

/* ==== v6 · fluidez ==== */
/* Animaciones infinitas pausadas mientras su elemento no está a la vista */
.pm-pausa,.pm-pausa::before,.pm-pausa::after{animation-play-state:paused!important}
/* Las fotos de Lectura comercial ya se mueven con el scroll (paralaje) y con el mouse: sin la deriva infinita del CSS original, que además tapaba ese efecto */
.value-card-hero img{animation:none!important}
