{"id":22241,"date":"2026-03-09T09:30:03","date_gmt":"2026-03-09T15:30:03","guid":{"rendered":"https:\/\/urbanista.mx\/?page_id=22241"},"modified":"2026-11-05T14:33:46","modified_gmt":"2026-11-05T20:33:46","slug":"urbanista-departamentos-en-renta-en-ciudad-de-mexico","status":"publish","type":"page","link":"https:\/\/urbanista.mx\/en\/","title":{"rendered":"Urbanista &#8211; Departamentos en renta en Ciudad de M\u00e9xico"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n:root{--navy:#004e64;--navy-light:#006580;--navy-dark:#003a4a;--white:#ffffff;--off-white:#f7f9fa;--light-blue:#e8f4f8;--terra:#00b4d8;--terra-btn:#007799;--terra-dark:#00708f;--terra-light:#48cae4;--terra-glow:rgba(0,180,216,.25);--sage:#7a8b6f;--sage-light:#a3b396;--sand:#c9bfae;--charcoal:#2a2a2a;--text-primary:#1a1a1a;--text-secondary:#474747;--text-light:#595959;--ease:cubic-bezier(.22,1,.36,1)}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:'Outfit',sans-serif;font-weight:400;color:var(--text-primary);background:var(--white);overflow-x:hidden}h1,h2,h3,h4{font-family:'Outfit',sans-serif;font-weight:500}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none;font-family:inherit}nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(0,0,0,0.5) 0%,transparent 100%);transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease)}nav.scrolled{background:var(--navy);padding:10px 24px;box-shadow:0 4px 20px rgba(0,78,100,.3)}.nav-logo{display:flex;align-items:center}.nav-logo-img{height:40px !important;width:auto;filter:brightness(0) invert(1);transition:filter .4s,height .4s}nav.scrolled .nav-logo-img{height:35px;filter:brightness(0) invert(1)}.nav-links{display:flex;gap:28px;align-items:center;list-style:none}.nav-links a{font-size:12px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.75);transition:color .3s;position:relative;text-shadow:1px 1px 3px rgba(0,0,0,0.5)}nav.scrolled .nav-links a{color:rgba(255,255,255,.8)}.nav-links a:hover{color:var(--terra-light)}nav.scrolled .nav-links a:hover{color:var(--terra-light)}.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1.5px;background:var(--terra-btn);transition:width .4s var(--ease)}.nav-links a:hover::after{width:100%}.nav-cta{background:var(--terra) !important;color:var(--white) !important;padding:10px 24px !important;border-radius:4px;font-weight:600 !important;letter-spacing:2px !important;transition:all .4s var(--ease) !important;text-shadow:none !important}.nav-cta::after{display:none !important}.nav-cta:hover{background:var(--terra-light) !important;transform:translateY(-1px) !important}.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1001}.nav-toggle span{width:22px;height:1.5px;background:var(--white);transition:all .3s;display:block}.mobile-menu-overlay{display:none;position:fixed;inset:0;background:var(--navy);z-index:999;flex-direction:column;justify-content:center;align-items:center;gap:28px;opacity:0;transition:opacity .4s ease}.mobile-menu-overlay.open{display:flex;opacity:1}.mobile-menu-overlay a{font-family:'Outfit',sans-serif;font-size:32px;color:var(--white);letter-spacing:3px;transition:color .3s}.mobile-menu-overlay a:hover{color:var(--terra)}.hero{width:100%;min-height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column;background:var(--navy)}.hero-bg{position:absolute;inset:0;z-index:0}.hero-bg picture{position:absolute;inset:0;width:100%;height:100%;display:block}.hero-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,20,30,0.45) 0%,rgba(0,30,45,0.15) 35%,rgba(0,20,30,0.3) 65%,rgba(0,20,30,0.85) 100% )}.hero-main{position:relative;z-index:2;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;padding:120px 5% 0;max-width:100%}.hero-headline{font-family:'Outfit',sans-serif;font-size:clamp(28px,3.5vw,52px);font-weight:800;line-height:1.05;color:var(--white);text-transform:uppercase;letter-spacing:1px;margin-bottom:28px;opacity:0;transform:translateY(30px);animation:heroFadeUp 1s .6s var(--ease) forwards;text-shadow:2px 3px 12px rgba(0,0,0,0.5)}.hero-headline span{display:inline}@keyframes heroFadeUp{to{opacity:1;transform:translateY(0)}}.hero-cta-btn{display:inline-flex;align-items:center;gap:8px;background:var(--terra-btn);color:var(--white);padding:14px 36px;border-radius:6px;font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;transition:all .4s var(--ease);width:fit-content;opacity:0;transform:translateY(20px);animation:heroFadeUp .8s .9s var(--ease) forwards;box-shadow:0 4px 24px rgba(0,180,216,.3)}.hero-cta-btn:hover{background:var(--terra-light);transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,180,216,.4)}.hero-bottom-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;padding:0 64px 24px;gap:14px;margin-top:auto;opacity:0;animation:heroFadeUp 1s 1.1s var(--ease) forwards}.hero-stats-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.hero-stat-pill{background:rgba(255,255,255,.12);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:14px 32px;display:flex;align-items:center;gap:10px;transition:all .4s var(--ease)}.hero-stat-pill:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.hero-stat-pill-num{font-family:'Outfit',sans-serif;font-size:24px;font-weight:800;color:var(--white);line-height:1}.hero-stat-pill-label{font-family:'Outfit',sans-serif;font-size:13px;font-weight:500;color:rgba(255,255,255,.8);line-height:1.3}.hero-tagline{font-family:'Outfit',sans-serif;font-size:30px;font-style:italic;color:rgba(255,255,255,.7);text-shadow:1px 1px 4px rgba(0,0,0,0.5)}.hero-form-bar{position:relative;z-index:10;padding:0 16px 24px}.hero-form-bar-inner{width:90%;max-width:1800px;margin:0 auto;padding:0;position:relative;background:var(--white);border-radius:12px;box-shadow:0 16px 48px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.04);overflow:hidden}.hero-form-bar-inner::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--terra),var(--navy),var(--terra))}.hero-form-bar-inner .hs-form{display:flex !important;flex-wrap:nowrap !important;align-items:stretch !important;gap:0 !important}.hero-form-bar-inner .hs-form-field{flex:1 !important;padding:16px 20px !important;border-right:1px solid rgba(0,0,0,.06) !important;position:relative !important}.hero-form-bar-inner .hs-form-field:last-of-type{border-right:none !important}.hero-form-bar-inner .hs-form-field>label{font-size:10px !important;font-weight:600 !important;letter-spacing:2px !important;text-transform:uppercase !important;color:var(--terra) !important;margin-bottom:4px !important;font-family:'Outfit',sans-serif !important}.hero-form-bar-inner input,.hero-form-bar-inner select{width:100% !important;border:none !important;padding:4px 0 !important;font-family:'Outfit',sans-serif !important;font-size:14px !important;color:var(--text-primary) !important;background:transparent !important;outline:none !important}.hero-form-bar-inner input::placeholder{color:var(--text-light) !important}.hero-form-bar-inner select{color:var(--text-secondary) !important}.hero-form-bar-inner select option{color:var(--text-primary) !important;background:var(--white) !important}.hero-form-bar-inner .hs-button{background:var(--terra) !important;color:var(--white) !important;border:none !important;padding:14px 28px !important;border-radius:4px !important;font-family:'Outfit',sans-serif !important;font-size:12px !important;font-weight:600 !important;letter-spacing:2px !important;text-transform:uppercase !important;cursor:pointer !important;transition:all .3s !important;white-space:nowrap !important}.hero-form-bar-inner .hs-button:hover{background:var(--terra-light) !important;transform:translateY(-1px) !important}.hero-form-bar-inner .hs_submit{display:flex !important;align-items:center !important}.hero-form-bar-inner .hs_submit .actions{display:flex !important;align-items:center !important;height:100% !important;background-color:var(--terra);border-radius:0 0 9px 0}.hero-form-bar-inner .hs-phone,.hero-form-bar-inner .hs_phone .input,.hero-form-bar-inner .hs-fieldtype-intl-phone{display:flex !important;align-items:center !important;gap:6px !important;flex-wrap:nowrap !important}.hero-form-bar-inner .hs-phone select.hs-input,.hero-form-bar-inner .hs-fieldtype-intl-phone select{flex:0 0 auto !important;width:auto !important;min-width:60px !important;max-width:80px !important;font-size:12px !important}.hero-form-bar-inner .hs-phone input.hs-input{flex:1 1 auto !important;min-width:80px !important}.hero-form-bar-inner .hs-error-msgs{position:absolute !important;bottom:-18px !important;left:20px !important;right:20px !important;list-style:none !important;font-size:10px !important;color:#d32f2f !important;line-height:1.2 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important}.hero-form-bar-inner .hs-error-msgs li{display:inline !important}.hero-form-bar-inner .hs-error-msgs li label{font-size:10px !important;color:#d32f2f !important;font-weight:500 !important}.hero-form-bar-inner .hs-form-field{position:relative !important;padding-bottom:20px !important;overflow:visible !important}.section{padding:50px 16px;position:relative}.pretitle{font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--terra);display:inline-flex;align-items:center;gap:12px}.pretitle::before{content:'';width:32px;height:1px;background:var(--terra)}.section-title{font-size:clamp(28px,4vw,52px);line-height:1.1;margin:16px 0;max-width:900px}.section-title em{font-style:italic;color:var(--terra)}.section-desc{font-size:18px;color:var(--text-secondary);line-height:1.5;max-width:845px;text-align:center}.porque-v2{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;width:100%;background:var(--off-white);z-index:5;position:relative}.porque-v2-img{position:relative;overflow:hidden;min-height:100%}.porque-v2-img img{width:100%;height:100%;object-fit:cover;object-position:center;position:absolute;inset:0}.porque-v2-content{background:var(--off-white);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:120px 56px 60px}.porque-v2-title{font-family:'Outfit',sans-serif;font-size:clamp(28px,3.5vw,48px);font-weight:900;color:var(--text-primary);line-height:1.05;margin-bottom:10px;text-transform:none}.porque-v2-sub{font-family:'Outfit',sans-serif;font-size:17px;color:var(--text-secondary);line-height:1.5;margin-bottom:28px;max-width:520px}.pv2-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:14px;overflow:visible;margin-bottom:40px;margin-top:22px;position:relative}.pv2-table thead th{font-family:'Outfit',sans-serif;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;padding:14px 20px;text-align:left}.pv2-table thead th:first-child{background:#8a3232;color:var(--white);text-align:center;border-radius:10px 0 0 0}.pv2-table tbody td:first-child{background:#f5e8e8;color:#5d1a1a}.pv2-table tbody td:first-child .pv2-td-inner{justify-content:center;text-align:center}.pv2-table tbody tr:last-child td:first-child{border-radius:0 0 0 10px}.pv2-table thead th:last-child{background:linear-gradient(135deg,#2bb755 0%,#1c7a36 100%);color:var(--white);font-size:15px;letter-spacing:2px;padding:20px 26px;position:relative;border-radius:14px 14px 0 0;box-shadow:0 -8px 24px rgba(40,173,77,.28);text-align:center}.pv2-table thead th:last-child::before{content:\"\u2605 RECOMENDADO\";position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:#00b4d8;color:#fff;font-size:10px;font-weight:800;padding:5px 14px;border-radius:20px;letter-spacing:1.5px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.2);z-index:10}.pv2-table tbody td:last-child{background:linear-gradient(180deg,#eaf5ec 0%,#dcefe0 100%);color:#1a3a1a;padding:20px 26px;font-weight:500;box-shadow:inset 4px 0 0 #1c7a36}.pv2-table tbody tr:last-child td:last-child{border-radius:0 0 14px 14px;box-shadow:inset 4px 0 0 #1c7a36,0 16px 40px rgba(40,173,77,.22)}.pv2-table tbody td{padding:16px 20px;font-family:'Outfit',sans-serif;font-size:14px;line-height:1.45;vertical-align:top;border-bottom:1px solid rgba(0,0,0,.05)}.pv2-table tbody tr:last-child td{border-bottom:none}.pv2-td-inner{display:flex;align-items:flex-start;gap:10px}.pv2-icon-bad,.pv2-icon-good{width:22px;height:22px;min-width:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:var(--white);margin-top:1px}.pv2-icon-bad{background:#b01b1b}.pv2-icon-good{background:#1c7a36}.pv2-pilar-name{font-weight:800;text-transform:uppercase;letter-spacing:.5px}.porque-v2-tagline{font-family:'Outfit',sans-serif;font-size:clamp(20px,2.5vw,30px);font-weight:800;color:var(--text-primary);margin-bottom:20px}.porque-v2-tagline em{font-style:normal;color:var(--terra-dark);font-weight:700}.porque-v2-cta{display:inline-flex;align-items:center;gap:8px;background:var(--terra-btn);color:#fff;padding:14px 32px;border-radius:4px;font-family:'Outfit',sans-serif;font-size:14px;font-weight:800;letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:all .4s var(--ease);width:fit-content}.porque-v2-cta:hover{background:var(--terra-light);transform:translateY(-2px)}.pilares-section{padding:50px 0;background:var(--navy);position:relative}.pilares-header{text-align:center;margin-bottom:28px}.pilares-pretitle{font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;color:var(--terra-light);letter-spacing:1px;margin-bottom:8px}.pilares-title{font-family:'Outfit',sans-serif;font-size:clamp(28px,3.5vw,46px);line-height:1.1;color:var(--white);margin-bottom:12px;font-weight:800;text-align:center}.pilares-title em{color:var(--terra-light)}.pilares-desc{font-family:'Outfit',sans-serif;font-size:20px;color:rgba(255,255,255,.88);line-height:1.6;max-width:750px;margin:0 auto}.pilares-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:99vw;margin:0 auto;padding:0 12px}.pilar-card{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16\/10;cursor:pointer;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}.pilar-card:hover{transform:translateY(-8px);box-shadow:0 24px 64px rgba(0,0,0,.25)}.pilar-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.pilar-card:hover img{transform:scale(1.06)}.pilar-card-badge{position:absolute;top:16px;left:16px;width:36px;height:36px;border-radius:50%;background:var(--terra-btn);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--white);z-index:3;box-shadow:0 4px 16px rgba(0,180,216,.4)}.pilar-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,40,55,.9) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:28px;z-index:2}.pilar-card-title{font-family:'Outfit',sans-serif;font-size:36px;color:var(--white);line-height:1.1;margin-bottom:4px;font-weight:700;letter-spacing:.5px}.pilar-card-subtitle{font-family:'Outfit',sans-serif;font-size:18px;color:rgba(255,255,255,.6);line-height:1.4;margin-bottom:12px}.pilar-card-cta{display:inline-flex;align-items:center;gap:6px;background:var(--terra-btn);color:var(--white);padding:8px 18px;border-radius:6px;font-size:13px;letter-spacing:1px;width:fit-content;transition:all .3s var(--ease);text-decoration:none}.pilar-card-cta:hover{background:var(--terra-light);transform:translateX(4px)}.pilar-card-cta svg{width:14px;height:14px;transition:transform .3s}.pilar-card-cta:hover svg{transform:translateX(3px)}.buildings-section-native{background:var(--white);padding:40px 8px;position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.buildings-intro{text-align:center;margin-bottom:24px;padding:0 16px}.buildings-intro .pilares-title{color:var(--navy);font-size:clamp(28px,4vw,46px);margin:16px auto}.buildings-intro .pilares-title em{color:var(--terra);font-style:italic}.buildings-intro .section-desc{margin:0 auto;max-width:1200px;font-size:20px;color:var(--text-secondary);line-height:1.5}.cb-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:15px;width:100%;margin:20px auto 0;padding:0 24px}.cb-card{position:relative;border-radius:14px;overflow:hidden;flex:0 0 calc(15% - 15px);max-width:calc(15% - 15px);aspect-ratio:4\/5;display:block;text-decoration:none;color:var(--white);transform:translateZ(0)}.cb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.6s var(--ease)}.cb-overlay{position:absolute;inset:0;background:rgba(0,40,55,0.85);opacity:0;transition:opacity 0.4s var(--ease);z-index:1}.cb-card:hover .cb-img{transform:scale(1.06)}.cb-card:hover .cb-overlay{opacity:1}.cb-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:14px 10px;z-index:2;text-align:center;opacity:0;transform:translateY(20px);transition:all 0.4s var(--ease)}.cb-card:hover .cb-content{opacity:1;transform:translateY(0)}.cb-price{font-family:'Outfit',sans-serif;font-size:14px;line-height:1.4;margin-bottom:10px;color:var(--white)}.cb-price b{font-size:20px;font-weight:800;color:var(--white)}.cb-address{font-family:'Outfit',sans-serif;font-size:12px;line-height:1.3;color:rgba(255,255,255,0.85);margin-bottom:14px}.cb-btn{display:inline-block;padding:9px 18px;background:transparent;border:1px solid var(--terra);color:var(--white);font-family:'Outfit',sans-serif;font-size:11px;font-weight:700;letter-spacing:1.5px;border-radius:4px;transition:background 0.3s}.cb-card:hover .cb-btn{background:var(--terra-btn)}#pasos{min-height:auto;padding:50px 16px;display:flex;flex-direction:column;justify-content:center;background:var(--navy)}#pasos .pilares-title{color:var(--white)}#pasos .pilares-title em{color:var(--terra)}#pasos .section-desc{color:rgba(255,255,255,.6) !important}.steps-horizontal{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1200px;margin:36px auto 44px;width:100%}.step-h-card{background:#0000002b;border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:22px 22px;text-align:left;display:flex;flex-direction:row;align-items:center;gap:16px;transition:transform .4s var(--ease),border-color .4s var(--ease)}.step-h-card:hover{transform:translateY(-6px);border-color:rgba(0,180,216,.35)}.step-h-body{flex:1;min-width:0}.step-h-num{width:52px;height:52px;min-width:52px;border-radius:50%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:0}.step-h-num span{font-family:'Outfit',sans-serif;font-size:21px;font-weight:700;color:var(--white)}.step-h-num-icon{position:absolute;bottom:-2px;right:-2px;width:22px;height:22px;background:var(--terra-btn);border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--navy)}.step-h-num-icon svg{width:11px;height:11px;stroke:var(--white);fill:none;stroke-width:2.5}.step-h-card h4{font-family:'Outfit',sans-serif;font-size:19px;font-weight:800;color:var(--white);margin-bottom:6px;line-height:1.2}.step-h-card p{font-size:14px;color:rgba(255,255,255,.7);line-height:1.5}@media (max-width:1100px) and (min-width:901px){.steps-horizontal{gap:14px}.step-h-card{padding:20px 18px;gap:14px}.step-h-num{width:46px;height:46px;min-width:46px}.step-h-num span{font-size:18px}.step-h-card h4{font-size:17px}.step-h-card p{font-size:13px}}@media (max-width:900px){.steps-horizontal{grid-template-columns:1fr;max-width:640px;margin:28px auto 32px;gap:12px}.step-h-card{padding:20px 18px;gap:14px}.step-h-num{width:46px;height:46px;min-width:46px}.step-h-num span{font-size:18px}.step-h-card h4{font-size:18px}.step-h-card p{font-size:14px}}.testimonials-section{overflow:hidden;background:var(--white) !important;padding:50px 16px !important}.testimonials-section .pilares-title{color:var(--text-primary)}.testimonials-section .pilares-title em{color:var(--terra)}.testimonials-wrapper{display:flex;gap:20px;margin-top:32px;animation:scrollTestimonials 35s linear infinite}.testimonial-card{min-width:340px;background:var(--off-white);border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:28px;flex-shrink:0;backdrop-filter:blur(10px)}.testimonial-stars{display:flex;gap:3px;margin-bottom:14px}.testimonial-stars svg{width:14px;height:14px;fill:var(--terra)}.testimonial-text{font-family:'Outfit',sans-serif;font-size:15px;font-style:italic;line-height:1.6;color:var(--text-secondary);margin-bottom:18px}.testimonial-author{display:flex;align-items:center;gap:10px}.testimonial-avatar{width:38px;height:38px;border-radius:50%;background:var(--terra-btn);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:var(--white)}.testimonial-name{font-weight:600;font-size:13px;color:var(--text-primary)}.testimonial-handle{font-size:11px;color:var(--text-light)}@keyframes scrollTestimonials{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}#blog{background:var(--navy);padding:50px 16px}#blog .pilares-title{color:var(--white)}#blog .pilares-title em{color:var(--terra-light)}#blog .section-desc{color:rgba(255,255,255,.6) !important}.cta-section{text-align:center;padding:80px 16px;background:var(--white);position:relative;overflow:hidden}.cta-section::before{content:'';position:absolute;top:50%;left:50%;width:500px;height:500px;background:radial-gradient(circle,rgba(0,180,216,.08),transparent 70%);transform:translate(-50%,-50%);pointer-events:none}.cta-section .pilares-title{color:var(--text-primary)}.cta-section .pilares-title em{color:var(--terra)}.cta-section .section-desc{color:var(--text-secondary);margin:0 auto 32px;text-align:center}.btn-primary{background:var(--terra-btn);color:var(--white);padding:14px 36px;border-radius:4px;font-weight:600;font-size:13px;letter-spacing:2px;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;transition:all .4s var(--ease);border:none;text-decoration:none}.btn-primary:hover{background:var(--terra-light);transform:translateY(-2px)}.btn-outline{background:transparent;color:var(--navy);padding:12px 28px;border-radius:4px;font-weight:500;font-size:13px;letter-spacing:1px;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;border:1.5px solid rgba(0,78,100,.25);transition:all .4s var(--ease)}.btn-outline:hover{background:rgba(0,78,100,.05);border-color:var(--navy)}.footer-logo-img{height:70px !important;width:auto;filter:brightness(0) invert(1)}footer{padding:40px 48px 20px;background:var(--navy-dark);color:var(--white);border-top:1px solid rgba(255,255,255,.06)}.footer-top{display:grid;grid-template-columns:1.4fr 1.2fr 1fr;gap:32px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.08);max-width:none;width:100%;margin:0;align-items:start}.footer-comunidades-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px}.footer-bottom{max-width:none;width:100%;margin:0}.footer-brand-name{margin-bottom:4px}.footer-brand p{font-size:14px;color:rgba(255,255,255,.82);line-height:1.5;max-width:300px;margin-top:10px}.footer-col h4{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--terra);margin-bottom:10px;font-weight:600;font-family:'Outfit',sans-serif}.footer-col a{display:block;color:rgba(255,255,255,.85);font-size:13px;padding:2px 0;transition:color .3s,padding-left .3s}.footer-col a:hover{color:var(--white);padding-left:6px}.footer-bottom{padding-top:16px;font-size:12px;color:rgba(255,255,255,.25)}.footer-bottom-inner{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin-top:12px}.footer-google-badge{display:inline-block;transition:opacity .3s}.footer-google-badge:hover{opacity:.8}.footer-google-badge img{height:50px;width:auto}.footer-legal{display:flex;gap:8px;align-items:center}.footer-legal a{color:rgba(255,255,255,.35);font-size:12px;transition:color .3s;padding:0;display:inline}.footer-legal a:hover{color:var(--white);padding-left:0}.footer-legal span{color:rgba(255,255,255,.15)}.footer-social{display:flex;gap:8px;margin-top:8px;justify-content:flex-start}.footer-social a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;transition:all .3s;padding:0}.footer-social a:hover{background:var(--terra-btn);border-color:var(--terra);padding-left:0}.footer-social a svg{width:14px;height:14px;fill:rgba(255,255,255,.5);transition:fill .3s}.footer-social a:hover svg{fill:var(--white)}.wa-float{position:fixed;bottom:28px;right:28px;z-index:9400;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.35);transition:transform .3s,box-shadow .3s}.wa-float:hover{transform:scale(1.1);box-shadow:0 6px 30px rgba(37,211,102,.5)}.wa-float svg{width:30px;height:30px;fill:white}.wa-popup-overlay{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .3s ease}.wa-popup-overlay.open{opacity:1;pointer-events:all}.wa-popup{position:fixed;bottom:96px;right:28px;z-index:9600;width:380px;max-width:calc(100vw - 32px);max-height:calc(100vh - 130px);background:var(--white);border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.28);overflow-y:auto;opacity:0;transform:translateY(20px) scale(.96);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}.wa-popup.open{opacity:1;transform:translateY(0) scale(1);pointer-events:all}.wa-popup::-webkit-scrollbar{width:6px}.wa-popup::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:3px}.wa-popup-header{position:relative;display:flex;align-items:center;justify-content:center;padding:22px 48px 8px}.wa-popup-title{font-family:'Outfit',sans-serif;font-size:19px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary);text-align:center}.wa-popup-close{position:absolute;top:18px;right:16px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border-radius:50%;transition:background .2s,color .2s;flex-shrink:0}.wa-popup-close:hover{background:rgba(0,0,0,.06);color:var(--text-primary)}.wa-popup-close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.wa-popup-body{padding:8px 24px 28px}.wa-popup-body .hs-form-field{margin-bottom:14px !important}.wa-popup-body .hs-form-field > label{font-size:10px !important;font-weight:600 !important;letter-spacing:1.5px !important;text-transform:uppercase !important;color:var(--terra) !important;font-family:'Outfit',sans-serif !important;margin-bottom:6px !important;display:block !important}.wa-popup-body .hs-input{width:100% !important;background:var(--off-white) !important;border:1px solid rgba(0,0,0,.1) !important;border-radius:8px !important;padding:12px 14px !important;font-family:'Outfit',sans-serif !important;font-size:14px !important;color:var(--text-primary) !important;outline:none !important;transition:border-color .3s !important}.wa-popup-body .hs-input:focus{border-color:var(--terra) !important}.wa-popup-body select.hs-input{cursor:pointer !important}.wa-popup-body .hs-fieldtype-intl-phone .hs-input,.wa-popup-body .hs-phone .input{display:flex !important;gap:8px !important}.wa-popup-body .hs-fieldtype-intl-phone select{flex:0 0 auto !important;max-width:110px !important}.wa-popup-body .hs-button{width:100% !important;background:#25D366 !important;color:var(--white) !important;border:none !important;padding:14px 28px !important;border-radius:8px !important;font-family:'Outfit',sans-serif !important;font-size:13px !important;font-weight:700 !important;letter-spacing:1.5px !important;text-transform:uppercase !important;cursor:pointer !important;margin-top:6px !important;transition:background .3s !important}.wa-popup-body .hs-button:hover{background:#1ebe5d !important}.wa-popup-body .hs-error-msgs{list-style:none !important;padding:0 !important}.wa-popup-body .hs-error-msgs label{font-size:11px !important;color:#d32f2f !important}@media (max-width:480px){.wa-popup{bottom:88px;right:12px;left:12px;width:auto;max-width:none}}.sidebar-overlay{position:fixed;inset:0;background:rgba(0,78,100,.6);backdrop-filter:blur(6px);z-index:9998;opacity:0;pointer-events:none;transition:opacity .4s ease}.sidebar-overlay.open{opacity:1;pointer-events:all}.sidebar-panel{position:fixed;top:0;right:-480px;width:460px;max-width:92vw;height:100vh;background:linear-gradient(180deg,var(--navy) 0%,var(--navy-dark) 100%);z-index:9999;overflow-y:auto;transition:right .45s var(--ease);box-shadow:-20px 0 60px rgba(0,0,0,.4)}.sidebar-panel.open{right:0}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px 16px;border-bottom:1px solid rgba(0,180,216,.15)}.sidebar-title{font-family:'Outfit',sans-serif;font-size:22px;color:var(--white)}.sidebar-title span{color:var(--terra)}.sidebar-close{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);color:var(--white);display:flex;align-items:center;justify-content:center;transition:all .3s}.sidebar-close:hover{background:rgba(255,255,255,.12);border-color:var(--terra)}.sidebar-body{padding:28px}.sidebar-building-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(0,180,216,.12);border:1px solid rgba(0,180,216,.25);color:var(--terra-light);padding:5px 14px;border-radius:100px;font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px}.sidebar-form-container .hs-form{display:flex !important;flex-direction:column !important}.sidebar-form-container .hs-form-field{margin-bottom:16px !important}.sidebar-form-container .hs-form-field>label{font-size:10px !important;font-weight:600 !important;letter-spacing:1.5px !important;text-transform:uppercase !important;color:var(--terra) !important;font-family:'Outfit',sans-serif !important;margin-bottom:6px !important;display:block !important}.sidebar-form-container .hs-input{width:100% !important;background:rgba(255,255,255,.06) !important;border:1px solid rgba(255,255,255,.1) !important;border-radius:8px !important;padding:12px 16px !important;font-family:'Outfit',sans-serif !important;font-size:14px !important;color:var(--white) !important;outline:none !important;transition:border-color .3s !important}.sidebar-form-container .hs-input:focus{border-color:var(--terra) !important}.sidebar-form-container .hs-button{width:100% !important;background:var(--terra) !important;color:var(--white) !important;border:none !important;padding:16px 28px !important;border-radius:4px !important;font-family:'Outfit',sans-serif !important;font-size:13px !important;font-weight:600 !important;letter-spacing:2px !important;text-transform:uppercase !important;cursor:pointer !important}.lightbox-overlay{position:fixed;inset:0;z-index:99990;background:rgba(0,40,55,.95);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}.lightbox-overlay.open{opacity:1;pointer-events:all}.lightbox-content{position:relative;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;align-items:center}.lightbox-img{max-width:90vw;max-height:70vh;object-fit:contain;border-radius:12px;box-shadow:0 40px 100px rgba(0,0,0,.5);transform:scale(.92);opacity:0;transition:all .5s var(--ease)}.lightbox-overlay.open .lightbox-img{transform:scale(1);opacity:1}.lightbox-caption{margin-top:16px;text-align:center}.lightbox-caption-title{font-family:'Outfit',sans-serif;font-size:24px;color:var(--white)}.lightbox-caption-desc{font-size:14px;color:rgba(255,255,255,.85);margin-top:4px}.lightbox-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;z-index:10;color:var(--white)}.lightbox-close:hover{background:var(--terra-btn);border-color:var(--terra)}.lightbox-close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;z-index:10;color:var(--white)}.lightbox-arrow:hover{background:var(--terra-btn);border-color:var(--terra)}.lightbox-arrow svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.5}.lightbox-arrow.prev{left:20px}.lightbox-arrow.next{right:20px}.lightbox-counter{margin-top:10px;font-size:11px;color:rgba(255,255,255,.3);letter-spacing:2px;text-transform:uppercase}.reveal{opacity:1 !important;transform:none !important;transition:opacity .6s var(--ease),transform .6s var(--ease)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}@media(max-width:1200px){.cb-card{flex:0 0 calc(20% - 15px);max-width:calc(20% - 15px);aspect-ratio:4\/5}}@media(max-width:1024px){nav{padding:14px 16px}nav.scrolled{padding:10px 16px}.nav-links{display:none}.nav-toggle{display:flex}.section{padding:48px 12px}.hero{min-height:100vh;min-height:100dvh}.hero-main{padding:90px 20px 0;max-width:100%;flex:0 0 auto}.hero-headline{font-size:clamp(24px,4.2vw,40px) !important;margin-bottom:20px}.hero-cta-btn{padding:12px 28px;font-size:13px}.hero-bottom-content{padding:0 20px 16px}.hero-stats-row{gap:8px;flex-wrap:wrap;justify-content:center}.hero-stat-pill{padding:10px 16px;gap:8px}.hero-stat-pill-num{font-size:18px}.hero-stat-pill-label{font-size:11px}.hero-tagline{font-size:20px}.hero-form-bar-inner .hs-form{flex-direction:column !important}.hero-form-bar-inner .hs-form-field{border-right:none !important;border-bottom:1px solid rgba(255,255,255,.06) !important;width:100% !important}.hero-form-bar-inner .hs_submit{width:100% !important;padding:14px 16px !important}.hero-form-bar-inner .hs_submit .actions{width:100% !important;display:flex !important;justify-content:center !important;background:transparent !important}.hero-form-bar-inner .hs-button{width:100% !important;display:block !important;text-align:center !important}.porque-v2{padding:0;grid-template-columns:1fr;min-height:auto}.porque-v2-img{min-height:40vh;position:relative;width:100%}.porque-v2-img img{object-fit:cover;position:absolute}.porque-v2-content{padding:48px 20px}.porque-v2-title{font-size:clamp(24px,7vw,36px)}.pv2-table thead th{font-size:11px;padding:10px 12px}.pv2-table tbody td{font-size:13px;padding:12px}.pilares-section{padding:48px 0}.pilares-grid{grid-template-columns:1fr;gap:16px;max-width:500px;margin:0 auto}.pilar-card{aspect-ratio:16\/14}.pilar-card-overlay{padding:12px}.pilar-card-title{font-size:24px}.pilar-card-subtitle{font-size:16px;margin-bottom:8px}.pilar-card-cta{font-size:12px;padding:7px 14px}.pilar-card-badge{left:auto;right:12px;top:12px;width:30px;height:30px;font-size:11px}.buildings-intro{margin-bottom:24px}.buildings-intro .section-desc{font-size:15px !important}.cb-card{flex:0 0 calc(33.333% - 15px);max-width:calc(33.333% - 15px);aspect-ratio:4\/5}footer{padding:40px 16px 24px}.footer-top{grid-template-columns:1fr;gap:32px;text-align:center}.footer-comunidades-grid{grid-template-columns:1fr 1fr;gap:2px 12px}.footer-brand{display:flex;flex-direction:column;align-items:center}.footer-brand-name{display:flex;justify-content:center}.footer-brand p{margin-left:auto;margin-right:auto;max-width:380px}.footer-brand .footer-award-inline{justify-content:center !important;text-align:center}.footer-col{text-align:center}.footer-col a{padding-left:0}.footer-col a:hover{padding-left:0}.footer-social{justify-content:center;margin-left:auto;margin-right:auto}.footer-bottom-inner{flex-direction:column !important;justify-content:center !important;text-align:center}.footer-bottom-row{flex-direction:column !important;align-items:center !important;text-align:center !important}}@media(max-width:640px){.footer-top{grid-template-columns:1fr}.footer-bottom .footer-legal{flex-direction:column;gap:4px}.footer-legal span{display:none}.section-title{font-size:clamp(24px,8vw,36px)}.section-desc{font-size:15px}.hero-headline{font-size:clamp(20px,4.5vw,32px) !important}.pilar-card-title{font-size:22px}.pilar-card-subtitle{font-size:15px}.step-h-card h4{font-size:17px}.step-h-card p{font-size:14px}.testimonial-text{font-size:14px}.pretitle{font-size:10px;letter-spacing:2px}.cta-section .section-title{font-size:clamp(24px,8vw,36px)}.cta-section .section-desc{font-size:15px}.testimonials-wrapper{animation:none !important;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:0 16px 16px;gap:12px;scrollbar-width:none}.testimonials-wrapper::-webkit-scrollbar{display:none}.testimonial-card{min-width:0;width:85vw;scroll-snap-align:start;flex-shrink:0}.cta-section{padding:60px 12px}.hero-stat-pill{padding:8px 14px}.hero-stat-pill-num{font-size:16px}.hero-stat-pill-label{font-size:10px}.pilares-title{font-size:clamp(22px,7vw,32px) !important}.porque-v2-title{font-size:clamp(22px,7vw,30px) !important}.pv2-table thead th{font-size:10px;padding:8px 10px;letter-spacing:.5px}.pv2-table tbody td{font-size:12px;padding:10px 10px}.pv2-icon-bad,.pv2-icon-good{width:18px;height:18px;min-width:18px;font-size:9px}.buildings-section-native{padding:16px 8px}.cb-grid{gap:12px;padding:0 4px}.cb-card{flex:0 0 calc(50% - 6px);max-width:calc(50% - 6px);aspect-ratio:4\/5}.cb-price{font-size:13px;margin-bottom:8px}.cb-price b{font-size:17px}.cb-address{font-size:10px;margin-bottom:12px}.cb-btn{padding:8px 16px;font-size:10px}}@media (max-height:800px) and (min-width:1025px){nav{padding:10px 20px}nav.scrolled{padding:8px 20px}.nav-logo-img{height:42px}nav.scrolled .nav-logo-img{height:38px}.nav-links{gap:16px}.nav-links a{font-size:10px;letter-spacing:1px}.nav-cta{padding:8px 16px !important;font-size:10px !important;letter-spacing:1.5px !important}.hero-main{padding:90px 48px 0}.hero-headline{font-size:clamp(22px,2.5vw,36px) !important;margin-bottom:16px}.hero-cta-btn{padding:10px 28px;font-size:12px}.hero-bottom-content{padding:0 48px 16px;gap:10px}.hero-stat-pill{padding:10px 22px}.hero-stat-pill-num{font-size:20px}.hero-stat-pill-label{font-size:11px}.hero-tagline{font-size:20px}.porque-v2-content{padding:36px 40px}.porque-v2-title{font-size:clamp(24px,3vw,38px);margin-bottom:8px}.porque-v2-sub{font-size:14px;margin-bottom:18px}.pv2-table{margin-bottom:18px}.pv2-table thead th{font-size:11px;padding:10px 14px}.pv2-table tbody td{font-size:12px;padding:12px 14px}.pv2-icon-bad,.pv2-icon-good{width:18px;height:18px;min-width:18px;font-size:9px}.porque-v2-tagline{font-size:clamp(18px,2vw,24px);margin-bottom:14px}.porque-v2-cta{color:white;padding:10px 24px;font-size:12px}.pilares-section{padding:36px 0}.pilares-header{margin-bottom:20px}.pilares-title{font-size:clamp(24px,3vw,38px) !important;margin-bottom:8px}.pilares-desc{font-size:16px}.pilar-card-title{font-size:28px}.pilar-card-subtitle{font-size:15px;margin-bottom:8px}.pilar-card-cta{font-size:11px;padding:6px 14px}.pilar-card-overlay{padding:20px}.buildings-section-native{padding:36px 16px;min-height:100vh}.buildings-intro{margin-bottom:20px}.buildings-intro .section-desc{font-size:18px !important}.cb-grid{gap:15px}.cb-card{flex:0 0 calc(15% - 15px);max-width:calc(15% - 15px);aspect-ratio:4\/5}#pasos{padding:24px 16px}#pasos > div:first-child{margin-bottom:8px !important}#pasos .pilares-title{font-size:clamp(22px,2.8vw,34px) !important;margin:8px auto !important}#pasos .section-desc{font-size:14px !important}.steps-horizontal{margin:20px auto 24px;gap:14px}.step-h-card{padding:16px 16px;gap:12px}.step-h-num{width:40px;height:40px;min-width:40px;margin-bottom:0}.step-h-num span{font-size:16px}.step-h-num-icon{width:18px;height:18px}.step-h-num-icon svg{width:9px;height:9px}.step-h-card h4{font-size:16px;margin-bottom:4px}.step-h-card p{font-size:13px;line-height:1.4}.testimonials-section{padding:36px 16px !important}.testimonials-wrapper{margin-top:20px;gap:14px}.testimonial-card{min-width:300px;padding:20px}.testimonial-text{font-size:13px;margin-bottom:12px}.testimonial-stars svg{width:12px;height:12px}.testimonial-stars{margin-bottom:10px}.testimonial-avatar{width:32px;height:32px;font-size:11px}.testimonial-name{font-size:12px}.testimonial-handle{font-size:10px}#blog{padding:36px 16px}#blog .section-desc{font-size:16px !important}.cta-section{padding:40px 16px}.cta-section .section-title{font-size:clamp(24px,3vw,38px);font-weight:800;font-family:'Outfit',sans-serif}.cta-section .section-desc{font-size:14px;margin-bottom:20px !important}.btn-primary{padding:12px 28px;font-size:12px}.btn-outline{padding:10px 24px;font-size:12px}footer{padding:20px 32px 12px}.footer-top{gap:20px;padding-bottom:12px}.footer-logo-img{height:40px}.footer-brand p{font-size:11px;margin-top:6px;line-height:1.4}.footer-brand .footer-award-inline{font-size:11px;color:rgba(255,255,255,.82);margin-top:6px;line-height:1.3}.footer-col h4{font-size:10px;margin-bottom:6px}.footer-col a{font-size:11px;padding:1px 0}.footer-comunidades-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px 16px}.footer-comunidades-grid a{font-size:11px;padding:1px 0}.footer-legal a{font-size:10px}.footer-social{margin-top:4px;gap:5px}.footer-social a{width:28px;height:28px}.footer-social a svg{width:12px;height:12px}.footer-bottom-row{padding-top:10px !important;margin-top:10px !important;font-size:10px !important}.footer-bottom-row .footer-google-badge img{height:28px !important}.footer-bottom-row .footer-legal a{font-size:10px}}@media (min-height:801px) and (min-width:1025px){.porque-v2-content{padding:clamp(60px,8vh,120px) clamp(56px,5vw,100px)}.porque-v2-title{font-size:clamp(42px,5.2vh,68px);margin-bottom:clamp(12px,1.5vh,20px);line-height:1.05}.porque-v2-sub{font-size:clamp(18px,2vh,22px);margin-bottom:clamp(32px,4.5vh,56px);max-width:640px;line-height:1.5}.pv2-table{margin-bottom:clamp(32px,4vh,52px)}.pv2-table thead th{font-size:clamp(13px,1.5vh,16px);padding:clamp(16px,2vh,24px) clamp(20px,2.4vh,32px);letter-spacing:2px}.pv2-table tbody td{font-size:clamp(15px,1.7vh,19px);padding:clamp(18px,2.2vh,26px) clamp(20px,2.4vh,32px)}.pv2-icon-bad,.pv2-icon-good{width:clamp(22px,2.4vh,28px);height:clamp(22px,2.4vh,28px);min-width:clamp(22px,2.4vh,28px);font-size:clamp(11px,1.2vh,14px)}.porque-v2-tagline{font-size:clamp(24px,3vh,38px);margin-bottom:clamp(20px,2.5vh,32px)}.porque-v2-cta{padding:clamp(16px,2vh,22px) clamp(36px,4vh,52px);font-size:clamp(14px,1.5vh,17px)}}@media (min-width:1025px) and (orientation:portrait){.hero{min-height:0 !important;height:950px !important;max-height:1080px !important}.hero-main{padding:120px 40px 40px !important}.hero-headline{font-size:clamp(34px,4vw,50px) !important}.hero-cta-btn{padding:16px 40px !important;font-size:15px !important}.hero-stat-pill{padding:16px 30px !important}.hero-stat-pill-num{font-size:28px !important}.hero-stat-pill-label{font-size:15px !important}.hero-tagline{font-size:35px !important}.hero-form-bar-inner .hs-form-field > label{font-size:12px !important}.hero-form-bar-inner input,.hero-form-bar-inner select{font-size:16px !important}.hero-form-bar-inner .hs-button{font-size:14px !important;padding:16px 30px !important}.nav-links a{font-size:14px !important;letter-spacing:1.5px !important}.nav-cta{padding:12px 26px !important;font-size:13px !important}.nav-logo-img{height:48px !important}nav.scrolled .nav-logo-img{height:42px !important}.porque-v2{display:block !important;min-height:0 !important}.porque-v2-img{display:none !important}.porque-v2-content{width:100% !important;max-width:1100px !important;margin:0 auto !important;padding:90px 80px !important}.porque-v2-title{font-size:clamp(38px,4.2vw,54px) !important;margin-bottom:14px !important;line-height:1.1 !important}.porque-v2-sub{font-size:20px !important;margin-bottom:32px !important;max-width:680px !important}.pv2-table{margin-bottom:32px !important;max-width:900px !important}.pv2-table thead th{font-size:15px !important;padding:18px 22px !important;letter-spacing:2px !important}.pv2-table tbody td{font-size:16px !important;padding:20px 22px !important;line-height:1.5 !important}.pv2-icon-bad,.pv2-icon-good{width:26px !important;height:26px !important;min-width:26px !important;font-size:13px !important}.porque-v2-tagline{font-size:clamp(26px,2.8vw,34px) !important;margin-bottom:24px !important}.porque-v2-cta{padding:16px 36px !important;font-size:15px !important}.pilares-title{font-size:clamp(38px,4.2vw,54px) !important}.pilares-desc{font-size:22px !important}.pilar-card-title{font-size:32px !important}.pilar-card-subtitle{font-size:18px !important}.pilar-card-cta{font-size:14px !important;padding:10px 22px !important}.buildings-section-native{min-height:0 !important;padding:70px 16px !important;justify-content:flex-start !important}.buildings-intro .section-desc{font-size:22px !important}.cb-grid{gap:18px;padding:0 24px}.cb-card{flex:0 0 calc(33.333% - 12px) !important;max-width:calc(33.333% - 12px) !important;aspect-ratio:4\/5}.cb-price{font-size:16px !important}.cb-price b{font-size:22px !important}.cb-address{font-size:13px !important}.cb-btn{font-size:12px !important;padding:11px 20px !important}#pasos .section-desc{font-size:22px !important}#stepsHubspotForm input,.steps-horizontal{grid-template-columns:1fr !important;max-width:900px !important}.step-h-card{padding:26px 24px !important;gap:20px !important}.step-h-num{width:62px !important;height:62px !important;min-width:62px !important}.step-h-num span{font-size:24px !important}.step-h-card h4{font-size:24px !important}.step-h-card p{font-size:17px !important;line-height:1.5 !important}.testimonial-card{min-width:400px !important;padding:32px !important}.testimonial-text{font-size:18px !important;line-height:1.6 !important}.testimonial-name{font-size:15px !important}.testimonial-handle{font-size:13px !important}.testimonial-avatar{width:46px !important;height:46px !important;font-size:14px !important}.testimonial-stars svg{width:17px !important;height:17px !important}#blog .section-desc{font-size:22px !important}.cta-section .section-desc{font-size:20px !important}.btn-primary{padding:16px 40px !important;font-size:14px !important}.btn-outline{padding:14px 32px !important;font-size:14px !important}.pretitle{font-size:13px !important;letter-spacing:3px !important}.footer-logo-img{height:80px !important}.footer-brand p{font-size:16px !important}.footer-brand .footer-award-inline{font-size:14px !important}.footer-col h4{font-size:13px !important;letter-spacing:2.5px !important}.footer-col a{font-size:15px !important;padding:4px 0 !important}.footer-comunidades-grid a{font-size:15px !important}.footer-legal a{font-size:14px !important}.footer-bottom-row{font-size:14px !important}.footer-social a{width:40px !important;height:40px !important}.footer-social a svg{width:16px !important;height:16px !important}}.cta-call{display:none}@media (max-width:767px){.hero-form-bar .cta-call{display:flex;align-items:center;justify-content:center;gap:10px;width:90%;margin:12px auto 0;padding:15px 20px;background:var(--white);color:var(--navy) !important;border:2px solid var(--navy);border-radius:12px;font-family:'Outfit',sans-serif;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none !important;box-shadow:0 8px 24px rgba(0,0,0,.18);transition:all .25s ease;cursor:pointer}.hero-form-bar .cta-call svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.hero-form-bar .cta-call:active{background:var(--light-blue);transform:translateY(1px)}}@media (max-width:380px){.hero-form-bar .cta-call{font-size:13px;letter-spacing:1px;padding:14px}}.agenda-embed{width:100%;max-width:min(1680px,94vw);margin:0 auto}.shell{--navy-dark:#003A4A;--navy:#004E64;--navy-light:#006580;--mist:#EDF2F3;--concrete:#C9D6D9;--white:#fff;--ink:#0B1416;--line:rgba(255,255,255,.18);--shadow:0 1px 2px rgba(0,42,55,.06),0 12px 32px -12px rgba(0,42,55,.18);--r:14px;--ease:cubic-bezier(.2,.7,.2,1);display:grid;grid-template-columns:minmax(0,58%) minmax(0,42%);min-height:640px;border-radius:18px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.3);font-family:'DM Sans',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--white);line-height:1.5;text-align:left;-webkit-font-smoothing:antialiased}.shell *,.shell *::before,.shell *::after{box-sizing:border-box}.shell button,.shell input,.shell select,.shell textarea{font-family:inherit;font-size:inherit;color:inherit}.shell img{max-width:100%;display:block}.shell .main{grid-column:1;grid-row:1}.shell .aside{grid-column:2;grid-row:1}.shell .u-display{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;letter-spacing:.01em;line-height:.92}.shell .u-eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.shell .aside{position:relative;background:var(--navy-dark);color:var(--white);padding:40px 44px;display:flex;flex-direction:column;gap:30px;overflow:hidden;isolation:isolate}.shell .reel{position:absolute;inset:-6% -4%;z-index:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;opacity:.34}.shell .reel-col{display:flex;flex-direction:column;gap:14px;animation:agReelUp 46s linear infinite}.shell .reel-col--down{animation-name:agReelDown;animation-duration:54s}.shell .reel-col img{width:100%;height:auto;border-radius:6px;object-fit:cover;filter:grayscale(.35) contrast(1.05)}@keyframes agReelUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes agReelDown{from{transform:translateY(-50%)}to{transform:translateY(0)}}.shell .aside::after{content:\"\";position:absolute;inset:0;z-index:1;background:linear-gradient(195deg,rgba(0,58,74,.80) 0%,rgba(0,58,74,.93) 50%,#003A4A 100%)}.shell .aside > *:not(.reel):not(.hero-slides){position:relative;z-index:2}.shell .brand{display:flex;align-items:center;justify-content:flex-end;gap:16px}.shell .brand img.logo{width:112px}.shell .pitch{margin-top:auto}.shell .pitch h1{margin:0 0 14px;font-size:clamp(34px,3.2vw,50px);color:var(--white);text-transform:none}.shell .pitch h1 em{font-style:normal;color:var(--concrete);display:block}.shell .pitch p{margin:0;max-width:32ch;color:rgba(255,255,255,.74);font-size:15px}.shell .instruccion{display:flex;align-items:center;gap:11px;margin:0 0 -16px;font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.66);max-width:34ch}.shell .instruccion .flecha{flex:none;font-size:20px;line-height:1;color:var(--concrete);animation:agEmpujon 2.4s var(--ease) infinite}@keyframes agEmpujon{0%,100%{transform:translateX(0)}50%{transform:translateX(-6px)}}.shell .placa{border:1px solid var(--line);border-radius:4px;padding:18px 22px 16px;background:rgba(0,42,55,.5);backdrop-filter:blur(6px)}.shell .placa-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:12px;margin-bottom:6px;border-bottom:1px solid var(--line)}.shell .placa-head .u-eyebrow{color:var(--concrete)}.shell .placa-head span:last-child{font-size:11px;color:rgba(255,255,255,.5);font-variant-numeric:tabular-nums}.shell .placa-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}.shell .placa-row:last-child{border-bottom:0;padding-bottom:0}.shell .placa-row dt{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);white-space:nowrap}.shell .placa-row dd{margin:0;text-align:right;font-family:'Bebas Neue',sans-serif;font-size:19px;letter-spacing:.02em;color:rgba(255,255,255,.3);transition:color .3s var(--ease);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62%}.shell .placa-row dd.is-set{color:var(--white)}.shell .placa-row dd.just-set{animation:agPop .45s var(--ease)}@keyframes agPop{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:none}}.shell .trust{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}.shell .trust li{list-style:none;font-size:11.5px;color:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:100px;padding:6px 12px;background:rgba(0,42,55,.4)}.shell .hero-slides{display:none}.shell .main{background:var(--white);display:flex;flex-direction:column;min-width:0}.shell .progress{position:relative;z-index:5;background:var(--white)}.shell .progress-bar{height:3px;background:var(--mist)}.shell .progress-fill{height:100%;width:0;background:var(--navy);transition:width .45s var(--ease)}.shell .progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 44px;font-size:12px;color:#5B6E73;width:100%;max-width:848px;margin:0 auto}.shell .btn-back{background:none;border:0;padding:6px 0;cursor:pointer;color:#5B6E73;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;border-radius:6px}.shell .btn-back:hover{color:var(--navy)}.shell .btn-back[hidden]{display:none}.shell .step-count{font-variant-numeric:tabular-nums;letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700;color:var(--navy-light)}.shell .stage{flex:1;display:flex;align-items:center;justify-content:center;padding:8px 56px 48px}.shell .stage-inner{width:100%;max-width:760px;margin-left:auto;margin-right:auto}.shell .slide{display:none;animation:agEnter .38s var(--ease)}.shell .slide.is-active{display:block}@keyframes agEnter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.shell .kicker{color:var(--navy-light);margin:0 0 10px}.shell .q-title{margin:0 0 8px;font-size:clamp(28px,3vw,40px);color:var(--navy-dark);text-transform:none;font-weight:400}.shell .q-help{margin:0 0 26px;color:#5B6E73;font-size:14.5px;max-width:48ch}.shell .campo input,.shell .campo select{width:100%;padding:18px;border:1.5px solid var(--concrete);border-radius:var(--r);background:var(--white);font-size:17px;transition:border-color .18s}.shell .campo input:focus,.shell .campo select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,101,128,.12)}.shell .campo input::placeholder{color:#9FB0B4}.shell .campo.has-error input,.shell .campo.has-error select{border-color:#B0243A}.shell .err{display:none;color:#B0243A;font-size:13px;margin-top:8px}.shell .campo.has-error .err{display:block}.shell .tel-row{display:flex;gap:10px}.shell .tel-row select{width:auto;flex:none;min-width:138px;appearance:none;padding-right:40px;cursor:pointer;background-image:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23004E64' stroke-width='2.4'><path d='M6 9l6 6 6-6'\/><\/svg>\");background-repeat:no-repeat;background-position:right 16px center}.shell .tel-row input{flex:1;min-width:0}.shell .options{display:grid;gap:10px}.shell .options.cols-2{grid-template-columns:1fr 1fr}.shell .opt{display:flex;align-items:center;gap:14px;text-align:left;width:100%;background:var(--white);border:1.5px solid var(--concrete);border-radius:var(--r);padding:15px 18px;cursor:pointer;transition:border-color .18s,background .18s,transform .12s}.shell .opt:hover{border-color:var(--navy);background:#F7FAFB}.shell .opt:active{transform:scale(.99)}.shell .opt.is-selected{border-color:var(--navy);background:var(--navy);color:var(--white)}.shell .opt[disabled]{opacity:.5;cursor:not-allowed}.shell .opt[disabled]:hover{border-color:var(--concrete);background:var(--white)}.shell .opt-key{flex:none;width:26px;height:26px;border-radius:6px;background:var(--mist);color:var(--navy);font-size:11px;font-weight:700;display:grid;place-items:center;transition:.18s}.shell .opt.is-selected .opt-key{background:rgba(255,255,255,.2);color:var(--white)}.shell .opt-main{flex:1;min-width:0}.shell .opt-label{font-weight:500;font-size:15.5px;display:block}.shell .opt-note{font-size:12.5px;color:#728488;display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis}.shell .opt.is-selected .opt-note{color:rgba(255,255,255,.75)}.shell .cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--navy);color:var(--white);border:0;border-radius:var(--r);padding:18px 34px;font-size:16px;font-weight:500;cursor:pointer;margin-top:26px;box-shadow:var(--shadow);transition:background .18s,transform .12s;letter-spacing:normal;text-transform:none}.shell .cta:hover{background:var(--navy-light)}.shell .cta:active{transform:scale(.99)}.shell .cta[disabled]{background:var(--concrete);color:#7C9095;box-shadow:none;cursor:not-allowed}.shell .cta--full{width:100%}.shell .cta[hidden],.shell .btn-next[hidden]{display:none!important}.shell .hint{display:block;margin-top:12px;font-size:12.5px;color:#728488}.shell .hint a{color:var(--navy)}.shell .hint kbd{background:var(--mist);border-radius:4px;padding:1px 6px;font-size:11px;font-family:inherit}.shell .check{border:1.5px solid var(--concrete);border-radius:var(--r);overflow:hidden}.shell .check-row{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--mist);background:var(--white)}.shell .check-row:last-child{border-bottom:0}.shell .check-tick{flex:none;width:24px;height:24px;border-radius:50%;background:var(--navy);color:var(--white);display:grid;place-items:center}.shell .check-body{flex:1;min-width:0;margin:0}.shell .check-body dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8A9CA0}.shell .check-body dd{margin:2px 0 0;font-size:15.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis}.shell .check-edit{background:none;border:0;color:var(--navy);font-size:13px;cursor:pointer;padding:6px 8px;border-radius:6px;text-decoration:underline}.shell .check-edit:hover{background:var(--mist)}.shell .aviso{display:none;margin-top:14px;color:#B0243A;font-size:13px}.shell .aviso.is-on{display:block}.shell .aviso a{color:var(--navy)}.shell .done{text-align:center;max-width:520px;margin:0 auto}.shell .done .seal{width:64px;height:64px;border-radius:50%;background:var(--navy);color:var(--white);display:grid;place-items:center;margin:0 auto 22px}.shell .done h2{font-size:clamp(32px,3.2vw,44px);color:var(--navy-dark);margin:0 0 12px;text-transform:none;font-weight:400}.shell .done p{color:#5B6E73;margin:0 0 22px}.shell #meetWrap{margin:26px 0 22px;text-align:left}.shell #meetWrap.is-on{min-height:660px}.shell .meetings-iframe-container{width:100%;min-height:660px}.shell .meetings-iframe-container iframe{width:100%!important;min-height:660px;border:0}.shell .meet-cargando{color:#8A9CA0;font-size:14px;text-align:center;padding:28px 0}.shell .meet-alterno{display:block;text-align:center;font-size:13px;color:#728488;margin-bottom:18px}.shell .meet-alterno[hidden]{display:none}.shell .meet-alterno a{color:var(--navy)}.shell:focus-visible{outline:2px solid var(--navy-light);outline-offset:3px}.shell #hsFrame{position:absolute;left:-9999px;top:0;width:620px;opacity:0;pointer-events:none}.shell #hsFrame.visible{position:static;left:auto;width:auto;opacity:1;pointer-events:auto;margin-top:22px}.shell #hsFrame .hs-form-field{margin:0 0 16px}.shell #hsFrame .hs-form-field > label{display:block;font-size:12.5px;font-weight:500;color:#5B6E73;margin-bottom:8px;letter-spacing:normal;text-transform:none}.shell #hsFrame .hs-field-desc{font-size:12.5px;color:#8A9CA0;margin:-4px 0 10px}.shell #hsFrame input[type=text],.shell #hsFrame input[type=email],.shell #hsFrame input[type=tel],.shell #hsFrame input[type=number],.shell #hsFrame select,.shell #hsFrame textarea{width:100%!important;padding:16px;border:1.5px solid var(--concrete);border-radius:var(--r);background:var(--white);font-size:16px;color:var(--ink)}.shell #hsFrame input:focus,.shell #hsFrame select:focus,.shell #hsFrame textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,101,128,.12)}.shell #hsFrame ul{list-style:none;padding:0;margin:0}.shell #hsFrame .hs-error-msgs label,.shell #hsFrame .hs-error-msg{color:#B0243A;font-size:12.5px}.shell #hsFrame .legal-consent-container{font-size:12.5px;color:#8A9CA0;margin-top:6px}.shell #hsFrame .hs-button{display:flex;align-items:center;justify-content:center;width:100%;background:var(--navy)!important;color:var(--white)!important;border:0;border-radius:var(--r);padding:18px 34px!important;font-size:16px!important;font-weight:500!important;cursor:pointer;margin-top:22px;box-shadow:var(--shadow);letter-spacing:normal!important;text-transform:none!important}.shell #hsFrame .hs-button:hover{background:var(--navy-light)!important}.shell #hsFrame .hs-recaptcha,.shell #hsFrame .grecaptcha-badge{margin:6px 0}.shell #hsFrame .hs-form-field.oculto{display:none}.shell #hsCargando{color:#8A9CA0;font-size:14px;margin-top:20px}.shell .pie-nota{display:flex;align-items:flex-start;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--mist);font-size:12.5px;line-height:1.45;color:#728488}.shell .pie-nota svg{flex:none;width:14px;height:14px;margin-top:2px;stroke:var(--navy-light);fill:none;stroke-width:2}.shell .pie-nota-body{min-width:0}.shell .pie-nota-body p{margin:0}.shell .pie-nota-body p + p{margin-top:8px}.shell .pie-nota .pie-top{color:#728488}.shell .pie-nota .pie-title{font-family:'DM Sans',system-ui,-apple-system,sans-serif;font-weight:700;font-size:15px;letter-spacing:.01em;text-transform:uppercase;color:var(--navy-dark)}.shell .pie-nota .pie-note{color:#728488}#diag{display:none;position:fixed;right:14px;bottom:14px;z-index:99;width:min(440px,calc(100vw - 28px));max-height:56vh;overflow:auto;background:#0B1416;color:#D5E3E6;border-radius:12px;font:12px\/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;box-shadow:0 18px 44px rgba(0,0,0,.4)}#diag.is-on{display:block}#diag header{position:sticky;top:0;background:#0B1416;padding:12px 14px;border-bottom:1px solid #1E2E32;display:flex;justify-content:space-between;align-items:center;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:10.5px}#diag header button{background:none;border:0;color:#7FB2BE;cursor:pointer;font:inherit}#diag .lineas{padding:10px 14px 14px}#diag p{margin:0 0 8px;white-space:pre-wrap;word-break:break-word}#diag p.warn{color:#FFC98A}#diag p.bad{color:#FF8B9E}#diag p.good{color:#8EE6A8}#diag code{color:#7FB2BE}.shell,.shell *{font-family:'DM Sans',system-ui,-apple-system,sans-serif}.shell .u-display,.shell .u-display *{font-family:'Bebas Neue',Impact,sans-serif}.shell button{background-image:none;text-transform:none;letter-spacing:normal;box-shadow:none}.shell .btn-back{background:none!important;background-color:transparent!important;border:0!important;box-shadow:none!important;color:#5B6E73!important;font-size:12.5px!important;font-weight:500!important;line-height:1.4!important;padding:8px 14px!important;margin:0!important;border-radius:8px!important;min-height:0!important;height:auto!important;width:auto!important;text-decoration:none!important;transition:background .18s var(--ease),color .18s var(--ease)}.shell .btn-back:hover,.shell .btn-back:focus{background:var(--mist)!important;color:var(--navy)!important}.shell .btn-back[hidden]{display:none!important}.shell a{text-decoration:none}.shell .q-title,.shell .done h2{color:var(--navy-dark)!important}.shell .kicker{color:var(--navy-light)!important}.shell .q-help,.shell .done p{color:#5B6E73!important}.shell .pie-nota{color:#728488!important}.shell .pie-nota .pie-top,.shell .pie-nota .pie-note{color:#728488!important}.shell .pie-nota .pie-title{color:var(--navy-dark)!important}.shell .opt{background:var(--white)!important;border-color:var(--concrete)!important;color:var(--ink)!important}.shell .opt:hover{border-color:var(--navy)!important;background:#F7FAFB!important}.shell .opt .opt-label{color:var(--ink)!important;font-weight:500!important}.shell .opt .opt-note{color:#728488!important}.shell .opt .opt-key{background:var(--mist)!important;color:var(--navy)!important}.shell .opt.is-selected{background:var(--navy)!important;border-color:var(--navy)!important;color:var(--white)!important}.shell .opt.is-selected .opt-label{color:var(--white)!important}.shell .opt.is-selected .opt-note{color:rgba(255,255,255,.75)!important}.shell .opt.is-selected .opt-key{background:rgba(255,255,255,.2)!important;color:var(--white)!important}.shell .cta{background:var(--navy)!important;color:var(--white)!important}.shell .cta:hover{background:var(--navy-light)!important}.shell .cta[disabled]{background:var(--concrete)!important;color:#7C9095!important}.shell .campo input,.shell .campo select{color:var(--ink)!important;background:var(--white)!important;border-color:var(--concrete)!important}.shell .check-row{background:var(--white)!important}.shell .check-body dt{color:#8A9CA0!important}.shell .check-body dd{color:var(--ink)!important}.shell .check-edit{color:var(--navy)!important;background:none!important}.shell .check-tick{background:var(--navy)!important;color:var(--white)!important}.shell .aside,.shell .aside *{color:var(--white)}.shell .aside .placa-row dt,.shell .aside .placa-head span:last-child{color:rgba(255,255,255,.5)!important}.shell .aside .pitch h1 em{color:var(--concrete)!important}.shell .aside .pitch p{color:rgba(255,255,255,.74)!important}@media (max-width:1024px){.shell{grid-template-columns:1fr;min-height:0;border-radius:14px}.shell .main,.shell .aside{grid-column:1}.shell .aside{grid-row:1;min-height:300px;padding:18px 20px 20px;gap:14px;justify-content:flex-end}.shell .main{grid-row:2}.shell .aside .reel{display:none}.shell .aside .hero-slides{display:block;position:absolute;inset:0;z-index:0}.shell .aside .hero-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s var(--ease)}.shell .aside .hero-slides img.is-on{opacity:1}.shell .aside::after{background:linear-gradient(180deg,rgba(0,58,74,.28) 0%,rgba(0,58,74,.42) 45%,rgba(0,58,74,.90) 100%)}.shell .aside .pitch h1{font-size:33px;text-shadow:0 2px 14px rgba(0,20,26,.35)}.shell .aside .pitch p,.shell .placa,.shell .instruccion{display:none}.shell .aside .pitch{margin-top:auto}.shell .brand img.logo{width:92px}.shell .trust{margin-top:2px}.shell .trust li:nth-child(n+3){display:none}.shell .progress-meta,.shell .stage{padding-left:20px;padding-right:20px}.shell .stage{padding-top:4px;padding-bottom:36px;align-items:flex-start}.shell .q-title{font-size:27px}.shell .q-help{margin-bottom:20px;font-size:14px}.shell .options.cols-2{grid-template-columns:1fr}.shell .cta{width:100%}.shell .tel-row select{min-width:118px;font-size:15px}}@media (prefers-reduced-motion:reduce){.shell .reel-col{animation:none}}.communities-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.community-item a{display:flex;flex-direction:column;justify-content:center;padding:20px 24px;border-radius:12px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);text-decoration:none;color:inherit;transition:background 0.3s cubic-bezier(.22,1,.36,1),border-color 0.3s ease,transform 0.3s cubic-bezier(.22,1,.36,1)}.community-item a:hover{background:rgba(110,193,228,0.12);border-color:#6ec1e4;transform:translateY(-3px)}.community-name{font-family:'Outfit',sans-serif;font-size:clamp(14px,1.2vw,16px);font-weight:600;color:#ffffff;display:block;line-height:1.3;transition:color 0.3s ease}.community-item a:hover .community-name{color:#6ec1e4}.community-tagline{display:block;font-family:'Outfit',sans-serif;font-size:11px;font-weight:400;color:rgba(255,255,255,0.85);margin-top:4px;line-height:1.4;letter-spacing:0.2px;transition:color 0.3s ease}.community-item a:hover .community-tagline{color:rgba(255,255,255,0.85)}@media (max-width:1024px){.communities-list{grid-template-columns:repeat(2,1fr);gap:10px}}@media (max-width:640px){.communities-list{grid-template-columns:1fr;gap:8px}.community-item a{padding:16px 18px}}\n\n\/* ===== Paso final con calendario: ancho completo (se activa con .is-cal desde el JS) ===== *\/\n.shell.is-cal{grid-template-columns:1fr}\n.shell.is-cal .aside{display:none}\n.shell.is-cal .main{grid-column:1;grid-row:1}\n.shell.is-cal .progress-meta{max-width:none;padding:14px 24px}\n.shell.is-cal .stage{padding:4px 24px 24px;align-items:flex-start}\n.shell.is-cal .stage-inner{max-width:100%!important}\n.shell.is-cal .done{max-width:none}\n.shell.is-cal .done h2,\n.shell.is-cal .done p{max-width:620px;margin-left:auto;margin-right:auto}\n.shell.is-cal #meetWrap{margin:16px 0 12px}\n@media (max-width:1024px){\n  .shell.is-cal .stage{padding:4px 8px 20px}\n  .shell.is-cal .progress-meta{padding:12px 16px}\n}\n\n\/* ===== Wizard Agenda \u00b7 CTA final: parte destacada \"seleccionar fecha y hora\" ===== *\/\n.agenda-embed .shell .cta .cta-destacado{font-weight:700!important;color:#8FE3F5!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:4px!important;text-decoration-color:#8FE3F5!important}\n.agenda-embed .shell .cta[disabled] .cta-destacado{color:inherit!important;text-decoration-color:currentColor!important}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n\/* ==========================================================================\n   URBANISTA.MX - SCRIPTS Y L\u00d3GICA DE INTERACCI\u00d3N\n   ========================================================================== *\/\n\n\n\/* ---------- M\u00f3dulo JS 1: Navegaci\u00f3n, Lightbox y Sidebar (Protegido contra ejecuci\u00f3n temprana) ---------- *\/\n\nconst amenitiesData = [{ img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/01\/cowork-scaled.webp', title: 'Cowork', desc: 'Internet de alta velocidad y espacios dise\u00f1ados para tu m\u00e1xima productividad' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/01\/sala-juegos-1024x541.webp', title: 'Gaming Zone', desc: 'Tu zona para desestresarte despu\u00e9s de un d\u00eda intenso' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/01\/Rooftop-1-1024x541.webp', title: 'Rooftop', desc: 'Vistas incre\u00edbles encima del ruido de la ciudad' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/02\/ines-cine-1024x541.webp', title: 'Cinerama', desc: 'Tu sala privada para maratones de tus series favoritas' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/02\/ines-cocina-2.2-1024x541.webp', title: 'Cocina Lounge', desc: 'S\u00e9 el mejor anfitri\u00f3n con cocinas equipadas para tus reuniones' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/01\/Amenidades-6-1024x536.jpg.webp', title: 'Convenience Store', desc: 'Snacks y bebidas saliendo del elevador, siempre a tu alcance' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/01\/sala-juntas-scaled.webp', title: 'Sala de Juntas', desc: 'Espacios profesionales para m\u00e1xima concentraci\u00f3n en tus reuniones' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/07460712-19b1-42bc-9ac4-b725177d1fff.webp', title: 'Gimnasio', desc: 'Equipamiento de primera para tu rutina diaria sin salir del edificio' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/01\/Amenidades-JOSEFA.jpg', title: 'Pet Zone', desc: 'Mascotarios para tu mejor amigo peludo en un entorno seguro' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/Sky-cinema.jpg', title: 'Sky Cinema', desc: 'Cine al aire libre con la mejor vista para sorprender a tus invitados' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/leona-asadores.jpg-1536x811.webp', title: 'Asadores BBQ', desc: 'Asadores premium para que seas el anfitri\u00f3n estrella en tus reuniones' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/Sky-Bar.jpg', title: 'Sky Bar', desc: 'Skybar para brindar por el \u00e9xito desde las alturas' }, { img: 'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/01\/Amenidades-9.jpg', title: 'Eventos', desc: 'Eventos exclusivos en tu edificio donde los vecinos se vuelven amigos' }];\n\nlet currentLightboxIndex = 0;\n\nfunction openLightbox(idx) {\n    currentLightboxIndex = idx;\n    updateLightbox();\n    const lb = document.getElementById('lightboxOverlay');\n    if (lb) lb.classList.add('open');\n    document.body.style.overflow = 'hidden';\n}\n\nfunction closeLightbox() {\n    const lb = document.getElementById('lightboxOverlay');\n    if (lb) lb.classList.remove('open');\n    document.body.style.overflow = '';\n}\n\nfunction updateLightbox() {\n    const item = amenitiesData[currentLightboxIndex];\n    if (!item) return;\n    const img = document.getElementById('lightboxImg');\n    if (img) { img.src = item.img; img.alt = item.title; }\n    const title = document.getElementById('lightboxTitle');\n    if (title) title.textContent = item.title;\n    const desc = document.getElementById('lightboxDesc');\n    if (desc) desc.textContent = item.desc;\n    const counter = document.getElementById('lightboxCounter');\n    if (counter) counter.textContent = (currentLightboxIndex + 1) + ' \/ ' + amenitiesData.length;\n}\n\nfunction lightboxPrev() {\n    currentLightboxIndex = (currentLightboxIndex - 1 + amenitiesData.length) % amenitiesData.length;\n    updateLightbox();\n}\n\nfunction lightboxNext() {\n    currentLightboxIndex = (currentLightboxIndex + 1) % amenitiesData.length;\n    updateLightbox();\n}\n\nconst buildingNames = ['AMALIA', 'IN\u00c9S', 'MAGDA', 'JOSEFA', 'MATILDE', 'NATALIA', 'JOAQUINA', 'LEONA', 'AURORA'];\n\nconst sidebarFormIds = {\n    0: '96d1f251-f481-484b-b838-2123e287d306',\n    1: '1820c8c0-e4bd-4b83-93e5-dae1c368a2d9',\n    2: 'db695a6c-5869-49b0-8dd1-e1241d07ff59',\n    3: 'b36648ae-9c98-4c20-8375-9e6b61d8325d',\n    4: 'fa44f739-1bf0-46f2-b8f7-398f59b24a56',\n    5: '090f08b4-5b99-4c98-831e-8927745ec237',\n    6: 'a0e43f30-1bb9-4806-acc6-003a4bc1f611',\n    7: '4b765a47-f887-458d-8bec-6b9fbe8e35aa',\n    8: '69d1ab47-46cc-4a69-9c11-8c57fbd8b49d'\n};\n\nlet sidebarLoadedFor = -1;\n\nfunction openSidebar(idx) {\n    const bName = document.getElementById('sidebarBuildingName');\n    if (bName) bName.textContent = buildingNames[idx] || 'EDIFICIO';\n    if (sidebarLoadedFor !== idx) {\n        const container = document.getElementById('sidebarFormTarget');\n        if (container) {\n            container.innerHTML = '<p style=\"color:rgba(255,255,255,.5);text-align:center;padding:40px 0;\">Cargando formulario\u2026<\/p>';\n            const formId = sidebarFormIds[idx];\n            cargarHubSpotMotor(function() {\n                if (formId && typeof hbspt !== 'undefined' && hbspt.forms) {\n                    container.innerHTML = '';\n                    hbspt.forms.create({ portalId: '47830887', formId: formId, region: 'na1', target: '#sidebarFormTarget' });\n                } else {\n                    container.innerHTML = '<p style=\"color:rgba(255,255,255,.5);text-align:center;padding:40px 0;\">Formulario pr\u00f3ximamente disponible<\/p>';\n                }\n            });\n            sidebarLoadedFor = idx;\n        }\n    }\n    const overlay = document.getElementById('sidebarOverlay');\n    if (overlay) overlay.classList.add('open');\n    const panel = document.getElementById('sidebarPanel');\n    if (panel) panel.classList.add('open');\n    document.body.style.overflow = 'hidden';\n}\n\nfunction closeSidebar() {\n    const overlay = document.getElementById('sidebarOverlay');\n    if (overlay) overlay.classList.remove('open');\n    const panel = document.getElementById('sidebarPanel');\n    if (panel) panel.classList.remove('open');\n    document.body.style.overflow = '';\n}\n\n\/\/ ===== TRACKING CTA L\u00cdNEA DIRECTA (llamar) \u2014 solo mobile =====\nfunction trackCallClick(origen) {\n    try {\n        if (typeof gtag === 'function') {\n            gtag('event', 'click_llamada', {\n                event_category: 'CTA',\n                event_label: 'Linea Directa - ' + origen,\n                landing: 'Home'\n            });\n        }\n        window.dataLayer = window.dataLayer || [];\n        window.dataLayer.push({ event: 'click_llamada', cta_origen: origen, landing: 'Home' });\n    } catch (e) {}\n}\n\n\/\/ ===== WHATSAPP POPUP =====\nlet waFormLoaded = false;\n\nfunction openWaPopup() {\n    if (!waFormLoaded) {\n        cargarHubSpotMotor(function() {\n            if (typeof hbspt !== 'undefined' && hbspt.forms) {\n                const target = document.getElementById('waPopupForm');\n                if (target) {\n                    hbspt.forms.create({\n                        portalId: '47830887',\n                        formId: 'd04d018c-0ee4-43ad-ac48-016eed8e2012',\n                        region: 'na1',\n                        target: '#waPopupForm',\n                        onFormReady: function($form) { setTimeout(function(){ fixPhoneField($form); }, 500); }\n                    });\n                    waFormLoaded = true;\n                }\n            }\n        });\n    }\n    const popup = document.getElementById('waPopup');\n    if (popup) popup.classList.add('open');\n    const overlay = document.getElementById('waPopupOverlay');\n    if (overlay) overlay.classList.add('open');\n}\n\nfunction closeWaPopup() {\n    const popup = document.getElementById('waPopup');\n    if (popup) popup.classList.remove('open');\n    const overlay = document.getElementById('waPopupOverlay');\n    if (overlay) overlay.classList.remove('open');\n}\n\nfunction fixPhoneField(formContext) {\n    try {\n        const formEl = (formContext ? formContext[0] : null) || formContext;\n        if (!formEl || !formEl.querySelectorAll) return;\n        const selects = formEl.querySelectorAll('select');\n        selects.forEach(sel => {\n            const isPhoneSelect = Array.from(sel.options).some(o => (o.text || '').indexOf('+') !== -1);\n            if (!isPhoneSelect) return;\n            for (let i = 0; i < sel.options.length; i++) {\n                const optTxt = sel.options[i].text || '';\n                if (optTxt.indexOf('Mexico') !== -1) {\n                    sel.selectedIndex = i;\n                    try { sel.dispatchEvent(new Event('change', { bubbles: true })); } catch(e) {}\n                    break;\n                }\n            }\n            const prefix = document.createElement('span');\n            prefix.textContent = 'MX +52';\n            prefix.style.cssText = 'font-family:Outfit,sans-serif;font-size:13px;color:#5a5a5a;white-space:nowrap;flex-shrink:0;padding-right:4px;cursor:pointer;';\n            sel.style.display = 'none';\n            if (sel.parentNode) sel.parentNode.insertBefore(prefix, sel);\n            prefix.addEventListener('click', () => { sel.style.display = ''; prefix.style.display = 'none'; });\n        });\n    } catch(e) { console.warn('fixPhoneField error:', e); }\n}\n\n\/\/ Inicializaci\u00f3n de Listeners del DOM una vez que el HTML exista en el navegador\nfunction initModule1Listeners() {\n    \/\/ Accesibilidad para enlaces de miniaturas de Elementor Posts\n    document.querySelectorAll('a.elementor-post__thumbnail__link').forEach(link => {\n        link.setAttribute('aria-hidden', 'true');\n        link.setAttribute('tabindex', '-1');\n    });\n\n    const lbClose = document.getElementById('lightboxClose');\n    if (lbClose) lbClose.addEventListener('click', closeLightbox);\n    const lbPrev = document.getElementById('lightboxPrev');\n    if (lbPrev) lbPrev.addEventListener('click', lightboxPrev);\n    const lbNext = document.getElementById('lightboxNext');\n    if (lbNext) lbNext.addEventListener('click', lightboxNext);\n    const lbOverlay = document.getElementById('lightboxOverlay');\n    if (lbOverlay) lbOverlay.addEventListener('click', function (e) { if (e.target === this) closeLightbox(); });\n\n    document.addEventListener('keydown', function (e) {\n        const lb = document.getElementById('lightboxOverlay');\n        if (!lb || !lb.classList.contains('open')) return;\n        if (e.key === 'Escape') closeLightbox();\n        if (e.key === 'ArrowLeft') lightboxPrev();\n        if (e.key === 'ArrowRight') lightboxNext();\n    });\n\n    const nav = document.getElementById('mainNav');\n    if (nav) {\n        window.addEventListener('scroll', () => nav.classList.toggle('scrolled', window.scrollY > 50));\n    }\n\n    const navToggle = document.getElementById('navToggle');\n    const mobileMenu = document.getElementById('mobileMenu');\n    if (navToggle && mobileMenu) {\n        navToggle.addEventListener('click', function () {\n            this.classList.toggle('open');\n            mobileMenu.classList.toggle('open');\n            document.body.style.overflow = mobileMenu.classList.contains('open') ? 'hidden' : '';\n        });\n    }\n\n    document.querySelectorAll('.mobile-nav-link').forEach(link => {\n        link.addEventListener('click', () => {\n            if (navToggle) navToggle.classList.remove('open');\n            if (mobileMenu) mobileMenu.classList.remove('open');\n            document.body.style.overflow = '';\n        });\n    });\n\n    const revealObs = new IntersectionObserver(entries => {\n        entries.forEach(e => {\n            if (e.isIntersecting) {\n                e.target.classList.add('visible');\n                revealObs.unobserve(e.target);\n            }\n        });\n    }, { threshold: .12 });\n    document.querySelectorAll('.reveal').forEach(el => revealObs.observe(el));\n\n    const sOverlay = document.getElementById('sidebarOverlay');\n    if (sOverlay) sOverlay.addEventListener('click', closeSidebar);\n    const sCloseBtn = document.getElementById('sidebarCloseBtn');\n    if (sCloseBtn) sCloseBtn.addEventListener('click', closeSidebar);\n    document.addEventListener('keydown', e => { if (e.key === 'Escape') closeSidebar(); });\n\n    const waBtn = document.getElementById('waFloatBtn');\n    if (waBtn) waBtn.addEventListener('click', function(e){ e.preventDefault(); openWaPopup(); });\n    const waClose = document.getElementById('waPopupClose');\n    if (waClose) waClose.addEventListener('click', closeWaPopup);\n    const waOverlay = document.getElementById('waPopupOverlay');\n    if (waOverlay) waOverlay.addEventListener('click', closeWaPopup);\n    document.addEventListener('keydown', function(e){ if (e.key === 'Escape') closeWaPopup(); });\n}\n\nif (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initModule1Listeners);\n} else {\n    initModule1Listeners();\n}\n\n\/\/ Exponer funciones globales inmediatamente en window para atributos onclick en HTML\nwindow.openLightbox = openLightbox;\nwindow.closeLightbox = closeLightbox;\nwindow.lightboxPrev = lightboxPrev;\nwindow.lightboxNext = lightboxNext;\nwindow.openSidebar = openSidebar;\nwindow.closeSidebar = closeSidebar;\nwindow.trackCallClick = trackCallClick;\nwindow.openWaPopup = openWaPopup;\nwindow.closeWaPopup = closeWaPopup;\nwindow.fixPhoneField = fixPhoneField;\n\n\/* ---------- M\u00f3dulo JS 2: Carga Garantizada de Formularios (Polling Activo) ---------- *\/\n\nfunction cargarHubSpotMotor(callback) {\n    if (typeof hbspt !== 'undefined' && hbspt.forms) {\n        if (callback) callback();\n        return;\n    }\n    if (!document.querySelector('script[src*=\"hsforms.net\/forms\/embed\/v2.js\"]')) {\n        const sc = document.createElement('script');\n        sc.src = 'https:\/\/js.hsforms.net\/forms\/embed\/v2.js';\n        sc.charset = 'utf-8';\n        sc.async = true;\n        document.body.appendChild(sc);\n    }\n    let intentos = 0;\n    const timer = setInterval(function() {\n        intentos++;\n        if (typeof hbspt !== 'undefined' && hbspt.forms) {\n            clearInterval(timer);\n            if (callback) callback();\n        }\n        if (intentos > 80) clearInterval(timer);\n    }, 150);\n}\n\nfunction initForms() {\n    let intentos = 0;\n    const timer = setInterval(function() {\n        intentos++;\n        const target = document.getElementById('heroHubspotForm');\n        const hbsptReady = typeof hbspt !== 'undefined' && hbspt.forms;\n\n        if (target && hbsptReady) {\n            clearInterval(timer);\n            target.innerHTML = '';\n            hbspt.forms.create({\n                portalId: '47830887',\n                formId: 'd04d018c-0ee4-43ad-ac48-016eed8e2012',\n                region: 'na1',\n                target: '#heroHubspotForm',\n                onFormReady: function($form) { setTimeout(function() { fixPhoneField($form); }, 500); }\n            });\n            return;\n        }\n\n        \/\/ Si despu\u00e9s de 6 intentos el script de HubSpot no est\u00e1 en el documento, se inyecta\n        if (intentos > 6 && !document.querySelector('script[src*=\"hsforms.net\/forms\/embed\/v2.js\"]')) {\n            const sc = document.createElement('script');\n            sc.src = 'https:\/\/js.hsforms.net\/forms\/embed\/v2.js';\n            sc.charset = 'utf-8';\n            sc.async = true;\n            document.body.appendChild(sc);\n        }\n\n        if (intentos > 100) { \/\/ 15 segundos l\u00edmite\n            clearInterval(timer);\n            console.warn('HubSpot forms timeout');\n        }\n    }, 150);\n}\n\nwindow.cargarHubSpotMotor = cargarHubSpotMotor;\nwindow.initForms = initForms;\n\n\/\/ Iniciar monitoreo activo del formulario inmediatamente\ninitForms();\n\n\n\/* ---------- M\u00f3dulo JS 3 ---------- *\/\n\nfunction animarNumerosHero() {\n    const statNums = document.querySelectorAll('.hero-stat-pill-num');\n    if (!statNums.length) return;\n    setTimeout(() => {\n        statNums.forEach((element, index) => {\n            setTimeout(() => {\n                const originalText = element.innerText.trim();\n                const numMatch = originalText.match(\/[\\d,]+\/);\n                if (!numMatch) return;\n                const cleanNum = numMatch[0].replace(\/,\/g, '');\n                const targetNum = parseInt(cleanNum, 10);\n                const suffix = originalText.substring(numMatch.index + numMatch[0].length);\n                const prefix = originalText.substring(0, numMatch.index);\n                const hasComma = numMatch[0].includes(',');\n                let current = 0;\n                const duration = 1500;\n                const stepTime = 30;\n                const inc = targetNum \/ (duration \/ stepTime);\n                element.style.transform = \"scale(0.8)\";\n                element.style.opacity = \"0.5\";\n                element.style.transition = \"transform 0.3s, opacity 0.3s\";\n                const timer = setInterval(() => {\n                    current += inc;\n                    if (current >= targetNum) {\n                        element.innerText = prefix + (hasComma ? targetNum.toLocaleString() : targetNum) + suffix;\n                        element.style.transform = \"scale(1)\";\n                        element.style.opacity = \"1\";\n                        clearInterval(timer);\n                    } else {\n                        const val = Math.floor(current);\n                        element.innerText = prefix + (hasComma ? val.toLocaleString() : val) + suffix;\n                        element.style.transform = \"scale(1.05)\";\n                        element.style.opacity = \"0.9\";\n                    }\n                }, stepTime);\n            }, index * 300);\n        });\n    }, 1000);\n}\n\nif (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', animarNumerosHero);\n} else {\n    animarNumerosHero();\n}\n\n\/* ---------- M\u00f3dulo JS 4 ---------- *\/\n\n(function() {\n\n        if (!\/^\\\/en\\\/\/.test(window.location.pathname) && window.location.pathname !== '\/en') return;\n\n        var enImages = [\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-napoles.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/Rent-in-nuevo-polanco.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-roma.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-reforma.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-juarez.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-doctores.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-la-del-valle.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-condesa.jpg',\n            'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/rent-in-santa-maria-la-ribera.jpg'\n        ];\n\n        function swapImages() {\n            var imgs = document.querySelectorAll('.cb-grid .cb-img');\n            imgs.forEach(function(img, idx) {\n                if (enImages[idx]) {\n                    img.setAttribute('src', enImages[idx]);\n                    img.setAttribute('srcset', '');\n                }\n            });\n        }\n\n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', swapImages);\n        } else {\n            swapImages();\n        }\n\n    })();\n\n\/* ---------- M\u00f3dulo JS 5 ---------- *\/\n\n(function() {\n\n        var path = window.location.pathname || '\/';\n        var isEN = \/^\\\/en\\\/\/.test(path) || path === '\/en';\n\n        function updateSwitcher() {\n            var link = document.getElementById('langSwitcherLink');\n            var flag = document.getElementById('langSwitcherFlag');\n            if (!link || !flag) return;\n\n            var targetHref;\n            if (isEN) {\n                targetHref = 'https:\/\/urbanista.mx' + path.replace(\/^\\\/en\/, '');\n                flag.setAttribute('src', 'https:\/\/urbanista.mx\/wp-content\/plugins\/translatepress-multilingual\/assets\/images\/flags\/es_MX.png');\n                flag.setAttribute('alt', 'es_MX');\n                flag.setAttribute('title', 'Espa\u00f1ol');\n            } else {\n                targetHref = 'https:\/\/urbanista.mx\/en' + (path === '\/' ? '\/' : path);\n                flag.setAttribute('src', 'https:\/\/urbanista.mx\/wp-content\/plugins\/translatepress-multilingual\/assets\/images\/flags\/en_US.png');\n                flag.setAttribute('alt', 'en_US');\n                flag.setAttribute('title', 'English');\n            }\n            link.setAttribute('href', targetHref);\n        }\n\n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', updateSwitcher);\n        } else {\n            updateSwitcher();\n        }\n\n    })();\n\n\/* ---------- M\u00f3dulo JS 6 ---------- *\/\nfunction initWizard() {\n\n    if(!document.getElementById('slides')) return; \/* el wizard no est\u00e1 en la p\u00e1gina *\/\n\n    \/* ---------- Idioma ----------\n       Si la URL empieza con \/en\/ (o es exactamente \/en), el wizard se muestra en ingl\u00e9s.\n       Solo cambia el TEXTO visible: los valores que se mandan a HubSpot\n       (edificio, tipo_de_depa, fecha_estimada_de_mudanza) siguen en espa\u00f1ol. *\/\n    const EN = \/^\\\/en(\\\/|$)\/.test(location.pathname);\n    const T  = (es, en) => EN ? en : es;\n\n    const CONFIG = {\n      portalId : '47830887',\n      formId   : '1c382be5-c8d7-4b18-a7bd-a439f410f56f',\n      region   : 'na1',\n      whatsapp : '525594886680',\n      thankYouUrl  : '',\n      edificioFijo : '',\n      ladaDefault  : '+52',\n      modoEnvio : 'embed',\n      webhookRespaldo : '',\n      camposFijos : {},\n      consentimiento : false,\n      depurar : true\n    };\n\n    \/* [lada, bandera, pa\u00eds ES, pa\u00eds EN] *\/\n    const LADAS = [\n      ['+52','\ud83c\uddf2\ud83c\uddfd','M\u00e9xico','Mexico'], ['+1','\ud83c\uddfa\ud83c\uddf8','EE.UU. \/ Canad\u00e1','USA \/ Canada'], ['+34','\ud83c\uddea\ud83c\uddf8','Espa\u00f1a','Spain'],\n      ['+54','\ud83c\udde6\ud83c\uddf7','Argentina','Argentina'], ['+57','\ud83c\udde8\ud83c\uddf4','Colombia','Colombia'], ['+56','\ud83c\udde8\ud83c\uddf1','Chile','Chile'],\n      ['+51','\ud83c\uddf5\ud83c\uddea','Per\u00fa','Peru'], ['+55','\ud83c\udde7\ud83c\uddf7','Brasil','Brazil'], ['+58','\ud83c\uddfb\ud83c\uddea','Venezuela','Venezuela'],\n      ['+593','\ud83c\uddea\ud83c\udde8','Ecuador','Ecuador'], ['+591','\ud83c\udde7\ud83c\uddf4','Bolivia','Bolivia'], ['+598','\ud83c\uddfa\ud83c\uddfe','Uruguay','Uruguay'],\n      ['+595','\ud83c\uddf5\ud83c\uddfe','Paraguay','Paraguay'], ['+506','\ud83c\udde8\ud83c\uddf7','Costa Rica','Costa Rica'], ['+507','\ud83c\uddf5\ud83c\udde6','Panam\u00e1','Panama'],\n      ['+502','\ud83c\uddec\ud83c\uddf9','Guatemala','Guatemala'], ['+503','\ud83c\uddf8\ud83c\uddfb','El Salvador','El Salvador'], ['+504','\ud83c\udded\ud83c\uddf3','Honduras','Honduras'],\n      ['+505','\ud83c\uddf3\ud83c\uddee','Nicaragua','Nicaragua'], ['+53','\ud83c\udde8\ud83c\uddfa','Cuba','Cuba'], ['+1809','\ud83c\udde9\ud83c\uddf4','Rep. Dominicana','Dominican Rep.'],\n      ['+351','\ud83c\uddf5\ud83c\uddf9','Portugal','Portugal'], ['+33','\ud83c\uddeb\ud83c\uddf7','Francia','France'], ['+39','\ud83c\uddee\ud83c\uddf9','Italia','Italy'],\n      ['+49','\ud83c\udde9\ud83c\uddea','Alemania','Germany'], ['+44','\ud83c\uddec\ud83c\udde7','Reino Unido','United Kingdom'], ['+41','\ud83c\udde8\ud83c\udded','Suiza','Switzerland'],\n      ['+31','\ud83c\uddf3\ud83c\uddf1','Pa\u00edses Bajos','Netherlands'], ['+972','\ud83c\uddee\ud83c\uddf1','Israel','Israel'], ['+61','\ud83c\udde6\ud83c\uddfa','Australia','Australia'],\n      ['+81','\ud83c\uddef\ud83c\uddf5','Jap\u00f3n','Japan'], ['+82','\ud83c\uddf0\ud83c\uddf7','Corea del Sur','South Korea'], ['+86','\ud83c\udde8\ud83c\uddf3','China','China'],\n      ['+91','\ud83c\uddee\ud83c\uddf3','India','India']\n    ].map(([v,flag,es,en]) => [v, `${flag} ${v} ${T(es,en)}`]);\n\n    \/* PRECIOS \u00b7 Renta Total M\u00edn.*\n       Precio mensual total m\u00e1s bajo disponible por edificio y tipo de layout.\n       Si un tipo no aparece, el wizard lo muestra como \"No disponible\". *\/\n    const PRECIOS = {\n      'In\u00e9s':      { 'Studio': 28350, '1 Rec\u00e1mara': 40650, '2 Rec\u00e1maras': 47350 },\n      'Josefa':    { 'Studio': 29750, '1 Rec\u00e1mara': 37450 },\n      'Magda':     { 'Studio': 26250, '1 Rec\u00e1mara': 32650 },\n      'Amalia':    { 'Studio': 23150, '1 Rec\u00e1mara': 31350 },\n      'Joaquina':  { 'Studio': 24850 },\n      'Matilde':   { 'Studio': 47350 },\n      'Leona':     { '2 Rec\u00e1maras': 39650 },\n      'Natalia':   { '2 Rec\u00e1maras': 27650 },\n      'Enriqueta': null\n    };\n    const precioTxt = n => T('Desde $','From $') + Number(n).toLocaleString('en-US');\n\n    const PREGUNTAS = [\n      { id:'nombre', tipo:'texto', campo:'firstname',\n        kicker:T('Empecemos',\"Let's get started\"), titulo:T('\u00bfCu\u00e1l es tu nombre?',\"What's your name?\"),\n        ayuda:T('Queremos que tu experiencia sea cercana desde el primer momento.','We want your experience to feel personal from the very first moment.'),\n        placeholder:'Ana Rivera', autocomplete:'name', placa:T('Nombre','Name') },\n\n      { id:'email', tipo:'email', campo:'email',\n        kicker:T('Contacto','Contact'), titulo:T('\u00bfA qu\u00e9 correo te enviamos la informaci\u00f3n de tu tour?','Which email should we send your tour details to?'),\n        ayuda:T('Recibir\u00e1s la confirmaci\u00f3n y todos los detalles para tu visita.',\"You'll receive the confirmation and all the details for your visit.\"),\n        placeholder:T('ana@correo.com','ana@email.com'), autocomplete:'email', placa:T('Correo','Email') },\n\n      { id:'telefono', tipo:'tel', campo:'phone',\n        kicker:T('Contacto','Contact'), titulo:T('\u00bfCu\u00e1l es tu n\u00famero de WhatsApp?',\"What's your WhatsApp number?\"),\n        ayuda:T('Para recordarte de tu visita y resolver cualquier duda.','So we can remind you about your visit and answer any questions.'),\n        placeholder:'55 1234 5678', autocomplete:'tel', placa:'WhatsApp' },\n\n      { id:'edificio', tipo:'opciones', campo:'edificio', buscarPor:['edificio','building'], columnas:1,\n        kicker:T('Comunidad','Community'), titulo:T('\u00bfQu\u00e9 edificio te interesa?','Which building are you interested in?'),\n        ayuda:T('Elige la comunidad que hace mejor match contigo en las mejores zonas de la CDMX.','Choose the community that best matches you, in the best neighborhoods of Mexico City.'),\n        placa:T('Edificio','Building'),\n        opciones:[\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-ines',    valor:'In\u00e9s',      etiqueta:'In\u00e9s \u00b7 Polanco'},\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-josefa',  valor:'Josefa',    etiqueta:'Josefa \u00b7 Reforma'},\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-magda',   valor:'Magda',     etiqueta:'Magda \u00b7 Roma'},\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-amalia',  valor:'Amalia',    etiqueta:'Amalia \u00b7 N\u00e1poles'},\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-joaquina?uuid=b126542a-da68-4812-965f-fbc9d41d345c', valor:'Joaquina', etiqueta:'Joaquina \u00b7 Del Valle'},\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-matilde', valor:'Matilde',   etiqueta:'Matilde \u00b7 Ju\u00e1rez'},\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-leona',   valor:'Leona',     etiqueta:'Leona \u00b7 Condesa'},\n          {meet:'https:\/\/meetings.hubspot.com\/urbanista\/tour-natalia', valor:'Natalia',   etiqueta:'Natalia \u00b7 Doctores'},\n          {valor:'Enriqueta', etiqueta:'Aurora \u00b7 Sta Mar\u00eda la Ribera', nota:T('Pr\u00f3ximamente','Coming soon')}\n        ] },\n\n      { id:'tipo', tipo:'opciones', campo:'tipo_de_depa', buscarPor:['tipo','depa','recamara','bedroom'], columnas:2,\n        kicker:T('Tu espacio','Your space'), titulo:T('\u00bfQu\u00e9 tipo de depa est\u00e1s buscando?','What type of apartment are you looking for?'),\n        ayuda:T('Todos vienen listos para mudarte, con cocina equipada y acabados de dise\u00f1o.','Every unit is move-in ready, with an equipped kitchen and designer finishes.'),\n        placa:T('Tipo de depa','Unit type'),\n        \/* Nota al pie del paso: aparece bajo los precios. *\/\n        pie:{\n          top:   T('Precio renta mensual con servicios incluidos: agua, luz, gas e internet.','Monthly rent with utilities included: water, electricity, gas and internet.'),\n          title: T('Plazo m\u00ednimo de 12 meses','Minimum 12-month lease'),\n          note:  T('*Opci\u00f3n plazo a 6 meses con costo de cuota por estancia corta.','*6-month lease option available with a short-stay fee.')\n        },\n        opciones:[\n          {valor:'Studio',      etiqueta:'Studio',                     nota:T('Para uno','For one')},\n          {valor:'1 Rec\u00e1mara',  etiqueta:T('1 rec\u00e1mara','1 bedroom'),  nota:T('El m\u00e1s pedido','Most popular')},\n          {valor:'2 Rec\u00e1maras', etiqueta:T('2 rec\u00e1maras','2 bedrooms'), nota:T('Pareja o roomie','Couple or roommate')}\n        ] },\n\n      { id:'mudanza', tipo:'opciones', campo:'fecha_estimada_de_mudanza', buscarPor:['mudanza','mudarte','move','estimada'], columnas:1,\n        kicker:T('Tiempos','Timing'), titulo:T('\u00bfCu\u00e1ndo quieres mudarte?','When do you want to move in?'),\n        ayuda:T('As\u00ed revisamos qu\u00e9 est\u00e1 disponible justo en tus fechas.',\"This way we can check what's available for your dates.\"),\n        placa:T('Mudanza','Move-in'),\n        \/* \"M\u00e1s de 45 d\u00edas\" es un selector extra que NO existe como opci\u00f3n en el\n           formulario de HubSpot: por eso est\u00e1 en sinEnviar (no se manda ese valor\n           al campo fecha_estimada_de_mudanza) y su opci\u00f3n trae sinCita:true, lo que\n           hace que al terminar se salte el calendario de agendado y solo quede\n           registrado el lead. *\/\n        sinEnviar:['M\u00e1s de 45 d\u00edas'],\n        opciones:[\n          {valor:'3 a 15 d\u00edas',    etiqueta:T('3 a 15 d\u00edas','3 to 15 days'),       nota:T('Me urge mudarme','I need to move ASAP')},\n          {valor:'15 a 30 d\u00edas',   etiqueta:T('15 a 30 d\u00edas','15 to 30 days'),     nota:T('Ya tengo fecha','I already have a date')},\n          {valor:'30 a 45 d\u00edas',   etiqueta:T('30 a 45 d\u00edas','30 to 45 days'),     nota:T('Voy planeando','Planning ahead')},\n          {valor:'M\u00e1s de 45 d\u00edas', etiqueta:T('M\u00e1s de 45 d\u00edas','More than 45 days'), nota:T('A\u00fan estoy planeando','Still planning'), sinCita:true}\n        ] }\n    ];\n\n    const FOTOS = [\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/12\/657770b4-3bee-43fb-afcc-f7cdfaa052ff.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/magda-terraza.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/magda-gimnasio.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/cocina-magda.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/magda-cine-en-casa.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/magda-grill.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/0eba9048-ff87-49cb-95ac-11aea3489f75.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/futbolito-magda.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/magda-hero.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/1-recamara-en-renta.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/magda-2-recamaras-renta.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/5990ff2c-2df5-48cd-bb6c-618e49d79832.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2024\/08\/Mirador-monumento-revolucion.jpg',\n      'https:\/\/urbanista.mx\/wp-content\/uploads\/2024\/08\/1-6.jpg'\n    ];\n\n    const RAIZ = document.querySelector('.agenda-embed');\n    const $  = (s,c=RAIZ)=>c.querySelector(s);\n    const $$ = (s,c=RAIZ)=>[...c.querySelectorAll(s)];\n\n    \/* ---------- Textos est\u00e1ticos del wizard en ingl\u00e9s (solo \/en\/) ---------- *\/\n    if(EN){\n      RAIZ.setAttribute('lang','en');\n      const txt  = (sel, s) => { const el = $(sel); if(el) el.textContent = s; };\n      const html = (sel, s) => { const el = $(sel); if(el) el.innerHTML = s; };\n      txt('.pitch h1', 'Book your tour.');\n      txt('.pitch p', 'Your next apartment is just a minute away. We only need five details to schedule your visit.');\n      txt('.instruccion span:last-child', 'Answer the questions on the left. Your request comes together here.');\n      txt('.placa-head .u-eyebrow', 'Your request');\n      const trust = ['No guarantor, no deposit','Approval in 24 h','Minimum 12-month lease','9 communities in Mexico City','Premium amenities'];\n      $$('.trust li').forEach((li,i)=>{ if(trust[i]) li.textContent = trust[i]; });\n      txt('#back', '\u2190 Back');\n      txt('#slideCheck .kicker', 'Last step');\n      txt('#slideCheck .q-title', 'Almost done');\n      txt('#slideCheck .q-help', 'Before confirming, you can review and edit any detail.');\n      txt('#hsCargando', 'Preparing your request\u2026');\n      txt('#notaEmbed', 'Your details are already loaded. Just confirm to reserve your visit.');\n      html('#notaPrivacidad', 'Minimum lease: 12 months. See our <a href=\"https:\/\/urbanista.mx\/en\/aviso-de-privacidad\/\" target=\"_blank\" rel=\"noopener\">privacy notice<\/a>.');\n      txt('#doneTitle', 'All set, your visit is reserved');\n      txt('#doneTexto', 'An Urbanista advisor will contact you to confirm the day, time and address.');\n      txt('#meetAlternoTxt', 'Calendar not loading?');\n      txt('#meetLink', 'Open it in a new tab');\n    }\n    const TXT_ENVIANDO  = T('Apartando tu visita\u2026','Reserving your visit\u2026');\n\n    \/* ---------- Diagn\u00f3stico (?debug=1) ---------- *\/\n    const DEBUG = CONFIG.depurar && new URLSearchParams(location.search).has('debug');\n    function diag(texto, clase){\n      console[clase === 'bad' ? 'error' : clase === 'warn' ? 'warn' : 'log']('[Urbanista]', texto);\n      if(!DEBUG) return;\n      const panel = document.getElementById('diag');\n      if(!panel) return;\n      panel.classList.add('is-on');\n      const p = document.createElement('p');\n      if(clase) p.className = clase;\n      p.textContent = texto;\n      document.getElementById('diagBody').appendChild(p);\n    }\n    if(EN) diag('Idioma del wizard: ingl\u00e9s (\/en\/).');\n\n    \/* ---------- Marquee (desktop) + Hero m\u00f3vil (Carga diferida inteligente seg\u00fan dispositivo) ---------- *\/\n    (function(){\n      let fotosIniciadas = false;\n      function inicializarFotos(){\n        if(fotosIniciadas) return;\n        fotosIniciadas = true;\n        if(window.innerWidth > 1024){\n          const mitad = Math.ceil(FOTOS.length\/2);\n          [['#reelA',FOTOS.slice(0,mitad)],['#reelB',FOTOS.slice(mitad)]].forEach(([sel,lista])=>{\n            const col=$(sel); if(!col || col.children.length) return;\n            [...lista,...lista].forEach(src=>{const i=new Image();i.src=src;i.loading='lazy';i.alt='';col.appendChild(i);});\n          });\n        } else {\n          const hero=$('#heroSlides');\n          if(hero && !hero.children.length){\n            FOTOS.forEach((src,i)=>{\n              const im=new Image(); im.src=src; im.alt=''; im.decoding='async';\n              im.loading = i===0 ? 'eager' : 'lazy';\n              if(i===0) im.classList.add('is-on');\n              hero.appendChild(im);\n            });\n            if(FOTOS.length>1 && !matchMedia('(prefers-reduced-motion: reduce)').matches){\n              let h=0;\n              setInterval(()=>{\n                const imgs=$$('img',hero); if(!imgs.length) return;\n                imgs[h].classList.remove('is-on');\n                h=(h+1)%imgs.length;\n                imgs[h].classList.add('is-on');\n              },4500);\n            }\n          }\n        }\n      }\n      if('IntersectionObserver' in window){\n        const obs = new IntersectionObserver((entries, observer)=>{\n          entries.forEach(entry=>{\n            if(entry.isIntersecting){\n              inicializarFotos();\n              observer.disconnect();\n            }\n          });\n        }, { rootMargin: '300px' });\n        const agenda = document.querySelector('.agenda-embed');\n        if(agenda) obs.observe(agenda); else inicializarFotos();\n      } else {\n        setTimeout(inicializarFotos, 3000);\n      }\n    })();\n\n    \/* ---------- Estado ---------- *\/\n    const activas = PREGUNTAS.filter(p => !(p.id === 'edificio' && CONFIG.edificioFijo));\n    const respuestas = {}, visibles = {};\n    let saltarCita = false; \/* true si eligieron 'M\u00e1s de 45 d\u00edas': se salta el calendario al final *\/\n\n    \/* Texto del CTA final. Con calendario se destaca \"seleccionar fecha y hora\";\n       si eligi\u00f3 \"M\u00e1s de 45 d\u00edas\" no hay calendario, as\u00ed que no se promete fecha. *\/\n    const ctaTexto = () => saltarCita\n      ? T('Confirmar mis datos','Confirm my details') + ' <span aria-hidden=\"true\">\u2192<\/span>'\n      : T('<span>Confirmar datos y <span class=\"cta-destacado\">seleccionar fecha y hora<\/span><\/span>',\n          '<span>Confirm details and <span class=\"cta-destacado\">pick a date &amp; time<\/span><\/span>')\n        + ' <span aria-hidden=\"true\">\u2192<\/span>';\n    if(CONFIG.edificioFijo){ respuestas.edificio = CONFIG.edificioFijo; visibles.edificio = CONFIG.edificioFijo; }\n    const TOTAL = activas.length;\n    let indice = 0;\n\n    \/* ---------- Render ---------- *\/\n    const optHTML = (o,n)=>`\n          <button class=\"opt\" type=\"button\" data-valor=\"${o.valor}\" data-etiqueta=\"${o.etiqueta}\" ${o.sinCita?'data-sincita=\"1\"':''} ${o.deshabilitada?'disabled':''}>\n            <span class=\"opt-key\">${n+1}<\/span>\n            <span class=\"opt-main\"><span class=\"opt-label\">${o.etiqueta}<\/span>${o.nota?`<span class=\"opt-note\">${o.nota}<\/span>`:''}<\/span>\n          <\/button>`;\n\n    \/* Nota al pie de un paso (letra chica, con \u00edcono de reloj).\n       Acepta un string simple (una sola l\u00ednea) o un objeto\n       { top, title, note } para el bloque de plazo m\u00ednimo. *\/\n    const pieHTML = pie => {\n      const bloque = typeof pie === 'string'\n        ? `<p>${pie}<\/p>`\n        : `${pie.top ? `<p class=\"pie-top\">${pie.top}<\/p>` : ''}${pie.title ? `<p class=\"pie-title\">${pie.title}<\/p>` : ''}${pie.note ? `<p class=\"pie-note\">${pie.note}<\/p>` : ''}`;\n      return `\n          <div class=\"pie-nota\">\n            <svg viewBox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>\n            <div class=\"pie-nota-body\">${bloque}<\/div>\n          <\/div>`;\n    };\n\n    const BTN_CONT = T('Continuar','Continue');\n    const HINT_ENTER = T('O presiona <kbd>Enter<\/kbd>','Or press <kbd>Enter<\/kbd>');\n\n    const cont = $('#slides');\n    activas.forEach((p,i)=>{\n      const s = document.createElement('section');\n      s.className = 'slide'; s.dataset.idx = i;\n      let cuerpo = '';\n\n      if(p.tipo === 'opciones'){\n        const cols = p.columnas === 2 ? ' cols-2' : '';\n        cuerpo = `<div class=\"options${cols}\" data-id=\"${p.id}\">` + p.opciones.map(optHTML).join('') + `<\/div>`;\n\n      }else if(p.tipo === 'tel'){\n        cuerpo = `\n          <div class=\"campo\" data-id=\"${p.id}\">\n            <div class=\"tel-row\">\n              <select id=\"lada\" aria-label=\"${T('C\u00f3digo de pa\u00eds','Country code')}\">${LADAS.map(([v,t])=>`<option value=\"${v}\"${v===CONFIG.ladaDefault?' selected':''}>${t}<\/option>`).join('')}<\/select>\n              <input id=\"in-${p.id}\" type=\"tel\" inputmode=\"tel\" autocomplete=\"tel-national\" placeholder=\"${p.placeholder||''}\">\n            <\/div>\n            <span class=\"err\"><\/span>\n          <\/div>\n          <button class=\"cta\" type=\"button\" data-next>${BTN_CONT}<\/button>\n          <span class=\"hint\">${HINT_ENTER}<\/span>`;\n\n      }else{\n        const tipo = p.tipo === 'email' ? 'email' : 'text';\n        cuerpo = `\n          <div class=\"campo\" data-id=\"${p.id}\">\n            <input id=\"in-${p.id}\" type=\"${tipo}\" inputmode=\"${p.tipo==='email'?'email':'text'}\" autocomplete=\"${p.autocomplete||'on'}\" placeholder=\"${p.placeholder||''}\">\n            <span class=\"err\"><\/span>\n          <\/div>\n          <button class=\"cta\" type=\"button\" data-next>${BTN_CONT}<\/button>\n          <span class=\"hint\">${HINT_ENTER}<\/span>`;\n      }\n\n      s.innerHTML = `\n        <p class=\"u-eyebrow kicker\">${p.kicker||''}<\/p>\n        <h2 class=\"u-display q-title\">${p.titulo}<\/h2>\n        ${p.ayuda?`<p class=\"q-help\">${p.ayuda}<\/p>`:''}\n        ${cuerpo}\n        ${p.pie ? pieHTML(p.pie) : ''}`;\n      cont.appendChild(s);\n    });\n\n    \/* Placa *\/\n    (function(){\n      const body = $('#placaBody');\n      activas.forEach(p=>{\n        const row = document.createElement('div');\n        row.className = 'placa-row';\n        row.innerHTML = `<dt>${p.placa||p.titulo}<\/dt><dd data-placa=\"${p.id}\">\u2014<\/dd>`;\n        body.appendChild(row);\n      });\n      $('#placaCount').textContent = `0 \/ ${$$('#placaBody dd').length}`;\n    })();\n    function contarPlaca(){\n      const total = $$('#placaBody dd').length;\n      $('#placaCount').textContent = `${Math.min(Object.keys(visibles).length, total)} \/ ${total}`;\n    }\n    function pintarPlaca(id){\n      const dd = $(`[data-placa=\"${id}\"]`); if(!dd) return;\n      dd.textContent = visibles[id] || '\u2014';\n      dd.classList.add('is-set','just-set');\n      setTimeout(()=>dd.classList.remove('just-set'),460);\n      contarPlaca();\n    }\n\n    \/* ---------- Navegaci\u00f3n ---------- *\/\n    const lista = () => [...$$('#slides .slide'), $('#slideCheck'), $('#slideDone')];\n    function ir(i){\n      indice = i;\n      const todos = lista();\n      todos.forEach((s,n)=> s.classList.toggle('is-active', n === i));\n      $('#bar').style.width = Math.min((i\/TOTAL)*100, 100) + '%';\n      $('#count').textContent = i < TOTAL\n        ? T(`Paso ${i+1} de ${TOTAL}`, `Step ${i+1} of ${TOTAL}`)\n        : (i === TOTAL ? T('Revisi\u00f3n','Review') : T('\u00a1Listo!','Done!'));\n      $('#back').hidden = (i === 0 || i > TOTAL);\n      if(i === TOTAL){ pintarCheck(); if(!enviando) $('#enviar').innerHTML = ctaTexto(); if(CONFIG.modoEnvio === 'embed' && !pareceBot()) montarFormReal(); }\n      const activo = todos[i];\n      if(activo){\n        const input = activo.querySelector('input:not([aria-hidden=\"true\"])');\n        if(input) setTimeout(()=>input.focus({preventScroll:true}), 340);\n      }\n    }\n    $('#back').addEventListener('click', ()=> ir(Math.max(0, indice-1)));\n\n    \/* ---------- Validaci\u00f3n ---------- *\/\n    function valida(p, valor){\n      if(p.tipo === 'email') return \/^[^@\\s]+@[^@\\s]+\\.[a-z]{2,}$\/i.test(valor) ? '' : T('Revisa tu correo, algo no cuadra.',\"Please check your email, something doesn't look right.\");\n      if(p.tipo === 'tel'){\n        const digitos = valor.replace(\/\\D\/g,'');\n        const lada = $('#lada').value;\n        if(lada === '+52') return digitos.length === 10 ? '' : T('En M\u00e9xico son 10 d\u00edgitos, sin el 1 ni el 044.','Mexican numbers have 10 digits, without the 1 or 044.');\n        return digitos.length >= 7 ? '' : T('Escribe tu n\u00famero completo, sin la lada del pa\u00eds.','Enter your full number, without the country code.');\n      }\n      if(p.id === 'nombre') return valor.trim().split(\/\\s+\/).filter(Boolean).length >= 2 ? '' : T('Escribe tu nombre y al menos un apellido.','Please enter your first and last name.');\n      return valor.trim() ? '' : T('Este dato es necesario para continuar.','This field is required to continue.');\n    }\n\n    function guardarTexto(i){\n      const p = activas[i];\n      const campo = $(`.campo[data-id=\"${p.id}\"]`);\n      const input = campo.querySelector('input');\n      const msg = valida(p, input.value);\n      if(msg){\n        campo.classList.add('has-error');\n        campo.querySelector('.err').textContent = msg;\n        input.focus();\n        return false;\n      }\n      campo.classList.remove('has-error');\n      if(p.tipo === 'tel'){\n        const lada = $('#lada').value;\n        const num  = input.value.replace(\/\\D\/g,'');\n        respuestas[p.id] = `${lada}${num}`;\n        visibles[p.id]   = `${lada} ${num}`;\n      }else{\n        respuestas[p.id] = input.value.trim();\n        visibles[p.id]   = input.value.trim();\n      }\n      pintarPlaca(p.id);\n      return true;\n    }\n\n    $$('[data-next]').forEach(b=> b.addEventListener('click', ()=>{ if(guardarTexto(indice)) ir(indice+1); }));\n    $$('.campo input').forEach(input=>{\n      input.addEventListener('input', ()=> input.closest('.campo').classList.remove('has-error'));\n      input.addEventListener('keydown', e=>{ if(e.key === 'Enter'){ e.preventDefault(); if(guardarTexto(indice)) ir(indice+1); } });\n    });\n    const selLada = $('#lada');\n    if(selLada) selLada.addEventListener('change', ()=> selLada.closest('.campo').classList.remove('has-error'));\n\n    \/* ---------- Opciones ---------- *\/\n    function bindOpciones(group){\n      const id = group.dataset.id;\n      $$('.opt', group).forEach(btn=>{\n        if(btn.disabled) return;\n        btn.addEventListener('click', ()=>{\n          $$('.opt', group).forEach(b=>b.classList.remove('is-selected'));\n          btn.classList.add('is-selected');\n          respuestas[id] = btn.dataset.valor;\n          visibles[id]   = btn.dataset.etiqueta;\n          pintarPlaca(id);\n          if(id === 'edificio') pintarTipos(btn.dataset.valor);\n          if(id === 'mudanza') saltarCita = btn.dataset.sincita === '1';\n          setTimeout(()=> ir(indice+1), 280);\n        });\n      });\n    }\n    $$('.options').forEach(bindOpciones);\n\n    \/* ---------- Tipos de depa din\u00e1micos ---------- *\/\n    function pintarTipos(edificio){\n      const grupo = $('.options[data-id=\"tipo\"]');\n      const pTipo = activas.find(p=>p.id==='tipo');\n      if(!grupo || !pTipo) return;\n\n      const precios = PRECIOS[edificio];\n      let ops;\n      if(precios && Object.keys(precios).length){\n        ops = pTipo.opciones.map(o => precios[o.valor] != null\n          ? {...o, nota: precioTxt(precios[o.valor]), deshabilitada:false}\n          : {...o, nota: T('No disponible','Not available'), deshabilitada:true});\n      }else{\n        ops = pTipo.opciones;\n      }\n\n      grupo.innerHTML = ops.map(optHTML).join('');\n      diag(`Tipos para ${edificio}: ` + ops.map(o=>`${o.valor}${o.deshabilitada?' (bloqueado)':o.nota?` (${o.nota})`:''}`).join(' \u00b7 '));\n\n      const validos = ops.filter(o=>!o.deshabilitada).map(o=>o.valor);\n      if(respuestas.tipo && !validos.includes(respuestas.tipo)){\n        delete respuestas.tipo; delete visibles.tipo;\n        const dd = $('[data-placa=\"tipo\"]');\n        if(dd){ dd.textContent='\u2014'; dd.classList.remove('is-set'); }\n        contarPlaca();\n      }else if(respuestas.tipo){\n        const sel = $$('.opt', grupo).find(b=>b.dataset.valor===respuestas.tipo);\n        if(sel) sel.classList.add('is-selected');\n      }\n      bindOpciones(grupo);\n    }\n    if(CONFIG.edificioFijo) pintarTipos(CONFIG.edificioFijo);\n\n    \/* Atajos 1-9 solo si el wizard est\u00e1 a la vista *\/\n    document.addEventListener('keydown', e=>{\n      if(indice >= TOTAL || !\/^[1-9]$\/.test(e.key)) return;\n      if(['INPUT','TEXTAREA','SELECT'].includes(document.activeElement.tagName)) return;\n      const caja = RAIZ.getBoundingClientRect();\n      if(caja.bottom < 120 || caja.top > window.innerHeight - 120) return;\n      const opts = $$('.opt', lista()[indice]);\n      if(opts[+e.key-1] && !opts[+e.key-1].disabled) opts[+e.key-1].click();\n    });\n\n    \/* ---------- Revisi\u00f3n ---------- *\/\n    function pintarCheck(){\n      $('#checkList').innerHTML = activas.map((p,i)=> `\n        <div class=\"check-row\">\n          <span class=\"check-tick\" aria-hidden=\"true\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg><\/span>\n          <dl class=\"check-body\"><dt>${p.placa||p.titulo}<\/dt><dd>${visibles[p.id]||'\u2014'}<\/dd><\/dl>\n          <button class=\"check-edit\" type=\"button\" data-editar=\"${i}\">${T('Cambiar','Edit')}<\/button>\n        <\/div>`).join('');\n      $$('[data-editar]').forEach(b=> b.addEventListener('click', ()=> ir(+b.dataset.editar)));\n    }\n\n    \/* ============ HubSpot ============ *\/\n    const utm  = k => new URLSearchParams(location.search).get(k) || '';\n    const hutk = () => (document.cookie.match(\/hubspotutk=([^;]+)\/)||[])[1] || '';\n\n    function datosFinales(){\n      const partes = (respuestas.nombre||'').trim().split(\/\\s+\/);\n      const d = {\n        firstname : partes.shift() || '',\n        lastname  : partes.join(' '),\n        email     : respuestas.email || '',\n        phone     : respuestas.telefono || '',\n        ...CONFIG.camposFijos,\n        utm_source : utm('utm_source'), utm_medium : utm('utm_medium'),\n        utm_campaign : utm('utm_campaign'), utm_content : utm('utm_content'), utm_term : utm('utm_term')\n      };\n      PREGUNTAS.forEach(p=>{\n        if(['nombre','email','telefono'].includes(p.id) || !p.campo) return;\n        if(respuestas[p.id] && !(p.sinEnviar && p.sinEnviar.includes(respuestas[p.id]))) d[p.campo] = respuestas[p.id];\n      });\n      Object.keys(d).forEach(k => { if(!d[k]) delete d[k]; });\n      return d;\n    }\n\n    const ENDPOINT = `https:\/\/api.hsforms.com\/submissions\/v3\/integration\/submit\/${CONFIG.portalId}\/${CONFIG.formId}`;\n\n    async function postHubspot(datos, sinHutk){\n      const ctx = { pageUri: location.href, pageName: document.title };\n      const token = hutk();\n      if(token && !sinHutk) ctx.hutk = token;\n      const cuerpo = { fields: Object.entries(datos).map(([name,value])=>({name, value:String(value)})), context: ctx };\n      if(CONFIG.consentimiento){\n        cuerpo.legalConsentOptions = { consent:{ consentToProcess:true, text:'Acepto el aviso de privacidad de Urbanista.' } };\n      }\n      const res = await fetch(ENDPOINT, {\n        method:'POST', headers:{'Content-Type':'application\/json'}, body: JSON.stringify(cuerpo)\n      });\n      return { ok: res.ok, status: res.status, texto: await res.text() };\n    }\n\n    const camposRechazados = texto =>\n      [...new Set([...texto.matchAll(\/fields\\.([A-Za-z0-9_.]+)\/g)].map(m => m[1]))];\n\n    const ABIERTO_EN = Date.now();\n    function pareceBot(){\n      const trampa = $('#empresa_web');\n      if(trampa && trampa.value.trim()){ diag('Trampa de spam activada: campo oculto relleno.', 'warn'); return true; }\n      if(Date.now() - ABIERTO_EN < 4000){ diag('Trampa de spam activada: enviado en menos de 4 s.', 'warn'); return true; }\n      return false;\n    }\n\n    \/* ---------- Modo embed ---------- *\/\n    let hsForm = null, formListo = false, enviando = false;\n    const sinAcentos = t => (t||'').toString().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'').toLowerCase();\n\n    function setCampo(nombre, valor){\n      if(!hsForm || valor === undefined || valor === '') return false;\n      const nodos = [...hsForm.querySelectorAll(`[name=\"${nombre}\"]`)];\n      if(!nodos.length) return false;\n      const el = nodos[0];\n      if(el.type === 'hidden' && String(el.value).trim()) return true;\n      if(el.type === 'radio' || el.type === 'checkbox'){\n        const m = nodos.find(n=>n.value===valor) || nodos.find(n=>(n.closest('label')?.textContent||'').trim()===valor);\n        if(!m) return false;\n        m.checked = true; m.dispatchEvent(new Event('change',{bubbles:true}));\n        return true;\n      }\n      if(el.tagName === 'SELECT'){\n        const v = sinAcentos(valor).replace(\/[^a-z0-9]\/g,'');\n        const norm = t => sinAcentos(t).replace(\/[^a-z0-9]\/g,'');\n        const opt = [...el.options].find(o=>o.value===valor)\n                 || [...el.options].find(o=>o.text.trim()===valor)\n                 || [...el.options].find(o=>o.value && (norm(o.value)===v || norm(o.text)===v))\n                 || [...el.options].find(o=>o.value && (norm(o.value).includes(v) || v.includes(norm(o.value))));\n        if(!opt || !opt.value){\n          diag(`\"${valor}\" no empata con ninguna opci\u00f3n de \u00ab${nombre}\u00bb.`, 'warn');\n          return false;\n        }\n        el.value = opt.value;\n        el.classList.remove('is-placeholder','invalid','error');\n        el.closest('.hs-form-field')?.querySelector('.hs-error-msgs')?.remove();\n      }else{\n        el.value = valor;\n      }\n      el.dispatchEvent(new Event('input',{bubbles:true}));\n      el.dispatchEvent(new Event('change',{bubbles:true}));\n      el.dispatchEvent(new Event('blur',{bubbles:true}));\n      return true;\n    }\n\n    function setCampoPorPista(palabras, valor){\n      if(!hsForm) return false;\n      for(const f of [...hsForm.querySelectorAll('.hs-form-field')]){\n        const el = f.querySelector('select,input:not([type=hidden]),textarea');\n        if(!el || !el.name) continue;\n        const pistas = sinAcentos([\n          f.className, el.name, el.getAttribute('placeholder') || '',\n          f.querySelector(':scope > label')?.textContent || '',\n          el.tagName === 'SELECT' ? ([...el.options].find(op=>!op.value)?.text || '') : ''\n        ].join(' '));\n        if(!palabras.some(w => pistas.includes(sinAcentos(w)))) continue;\n        if(setCampo(el.name, valor)) return el.name;\n      }\n      return false;\n    }\n\n    function rellenarForm(){\n      if(!hsForm) return {llenados:[], faltantes:[]};\n      const datos = datosFinales();\n      const llenados = [], faltantes = [];\n      Object.entries(datos).forEach(([k,v]) => (setCampo(k,v) ? llenados : faltantes).push(k));\n      PREGUNTAS.forEach(pr=>{\n        if(!pr.buscarPor || !respuestas[pr.id] || llenados.includes(pr.campo)) return;\n        const real = setCampoPorPista(pr.buscarPor, respuestas[pr.id]);\n        if(real){\n          llenados.push(real);\n          const i = faltantes.indexOf(pr.campo); if(i>=0) faltantes.splice(i,1);\n        }\n      });\n      const telVis = hsForm.querySelector('.hs-fieldtype-intl-phone input[type=tel]');\n      if(telVis && respuestas.telefono){\n        telVis.value = respuestas.telefono;\n        telVis.dispatchEvent(new Event('input',{bubbles:true}));\n        telVis.dispatchEvent(new Event('change',{bubbles:true}));\n      }\n      return {llenados, faltantes};\n    }\n\n    function pendientes(){\n      return [...hsForm.querySelectorAll('.hs-form-field')].filter(f=>{\n        if(f.querySelector('.hs-recaptcha, .grecaptcha-badge')) return false;\n        const el = f.querySelector('select,input:not([type=hidden]),textarea');\n        if(!el || !el.name) return false;\n        const obligatorio = el.required || el.getAttribute('required') !== null;\n        return obligatorio && !String(el.value).trim();\n      });\n    }\n\n    \/* Reutiliza el hbspt que ya carga el home; si no est\u00e1, lo carga *\/\n    function conHbspt(cb){\n      if(window.hbspt && window.hbspt.forms) return cb();\n      const sc = document.createElement('script');\n      sc.src = 'https:\/\/js.hsforms.net\/forms\/embed\/v2.js';\n      sc.charset = 'utf-8';\n      sc.onerror = () => diag('No carg\u00f3 el motor de formularios de HubSpot.', 'bad');\n      sc.onload = cb;\n      document.body.appendChild(sc);\n    }\n\n    function montarFormReal(){\n      if(hsForm || formListo) return;\n      formListo = true;\n      conHbspt(function(){\n        window.hbspt.forms.create({\n          portalId: CONFIG.portalId, formId: CONFIG.formId, region: CONFIG.region,\n          target: '.agenda-embed #hsFrame', css: '',\n          onFormReady: function($f){\n            hsForm = ($f && $f.length) ? $f[0] : document.querySelector('.agenda-embed #hsFrame form');\n            if(!hsForm){ diag('No encontr\u00e9 el <form> de HubSpot.', 'bad'); return; }\n            const {llenados, faltantes} = rellenarForm();\n            diag('Prellenados: ' + (llenados.join(', ') || 'ninguno'), llenados.length ? 'good' : 'warn');\n            if(faltantes.length) diag('Sin colocar: ' + faltantes.join(', '), 'warn');\n          },\n          onFormSubmitted: function(){ exito('form de HubSpot'); }\n        });\n      });\n    }\n\n    function revelarForm(motivo){\n      $('#hsFrame').classList.add('visible');\n      $('#notaEmbed').hidden = false;\n      $('#notaEmbed').textContent = motivo;\n      $('#enviar').hidden = true;\n      diag('Se revel\u00f3 el form: ' + motivo, 'warn');\n    }\n\n    window.addEventListener('message', e => {\n      if(!e.data || e.data.type !== 'hsFormCallback') return;\n      if(e.data.eventName === 'onFormSubmitted' && $('#hsFrame').querySelector('form')) exito('form de HubSpot');\n    });\n\n    \/* ---------- Env\u00edo ---------- *\/\n    $('#enviar').addEventListener('click', async ()=>{\n      const btn = $('#enviar'), aviso = $('#aviso');\n      aviso.classList.remove('is-on');\n      if(enviando) return;\n\n      if(pareceBot()){ return exito('descartado'); }\n\n      if(CONFIG.modoEnvio !== 'embed'){\n        btn.disabled = true; btn.textContent = TXT_ENVIANDO;\n        return enviar(datosFinales(), btn, aviso);\n      }\n\n      if(!hsForm){\n        aviso.innerHTML = T('Estamos preparando tu solicitud, dale otra vez en un segundo.',\"We're preparing your request, please try again in a second.\");\n        aviso.classList.add('is-on');\n        montarFormReal();\n        return;\n      }\n\n      enviando = true;\n      btn.disabled = true; btn.textContent = TXT_ENVIANDO;\n\n      rellenarForm();\n      if(pendientes().length){\n        enviando = false; btn.disabled = false; btn.innerHTML = ctaTexto();\n        return revelarForm(T('Falta un dato para completar tu solicitud. Compl\u00e9talo aqu\u00ed abajo y confirma.','One detail is missing to complete your request. Fill it in below and confirm.'));\n      }\n\n      const submit = hsForm.querySelector('input[type=submit],button[type=submit]');\n      if(!submit){\n        enviando = false;\n        return revelarForm(T('Completa tu solicitud aqu\u00ed abajo.','Complete your request below.'));\n      }\n\n      submit.click();\n\n      setTimeout(()=>{\n        if($('#slideDone').classList.contains('is-active')) return;\n        enviando = false; btn.disabled = false; btn.innerHTML = ctaTexto();\n        revelarForm(T('Necesitamos confirmar un par de datos. Rev\u00edsalos aqu\u00ed abajo y env\u00eda.','We need to confirm a couple of details. Review them below and submit.'));\n      }, 8000);\n    });\n\n    async function enviar(datos, btn, aviso, intento = 1, sinHutk = false){\n      let r;\n      try{\n        r = await postHubspot(datos, sinHutk);\n      }catch(err){\n        diag('Error de red al llamar a HubSpot: ' + err, 'bad');\n        return fallar(btn, aviso);\n      }\n      if(r.ok){ diag('\u2713 Lead registrado en HubSpot.', 'good'); return exito('api v3'); }\n      diag(`HubSpot rechaz\u00f3 el env\u00edo (HTTP ${r.status}): ${r.texto}`, 'bad');\n      if(\/RECAPTCHA|Captcha\/i.test(r.texto)){\n        if(CONFIG.webhookRespaldo) return porWebhook(datos, btn, aviso);\n        return fallar(btn, aviso);\n      }\n      if(\/hutk\/i.test(r.texto) && !sinHutk && intento < 6) return enviar(datos, btn, aviso, intento+1, true);\n      const invalidos = camposRechazados(r.texto);\n      const limpios = {...datos};\n      invalidos.forEach(k => delete limpios[k]);\n      if(invalidos.length && Object.keys(limpios).length && intento < 6) return enviar(limpios, btn, aviso, intento+1, sinHutk);\n      if(intento < 7){\n        const minimo = {};\n        ['firstname','lastname','email','phone'].forEach(k => { if(datos[k]) minimo[k] = datos[k]; });\n        if(Object.keys(minimo).length && Object.keys(minimo).length < Object.keys(datos).length){\n          return enviar(minimo, btn, aviso, 7, sinHutk);\n        }\n      }\n      fallar(btn, aviso);\n    }\n\n    async function porWebhook(datos, btn, aviso){\n      try{\n        const res = await fetch(CONFIG.webhookRespaldo, {\n          method:'POST', headers:{'Content-Type':'application\/json'},\n          body: JSON.stringify({ ...datos, hutk: hutk(), pageUri: location.href })\n        });\n        if(!res.ok) throw new Error('HTTP ' + res.status);\n        return exito('webhook');\n      }catch(err){\n        diag('El webhook de respaldo tambi\u00e9n fall\u00f3: ' + err, 'bad');\n        return fallar(btn, aviso);\n      }\n    }\n\n    function fallar(btn, aviso){\n      btn.disabled = false; btn.innerHTML = ctaTexto();\n      const wa = `https:\/\/wa.me\/${CONFIG.whatsapp}`;\n      aviso.innerHTML = T(\n        `No pudimos enviar tu solicitud. Int\u00e9ntalo de nuevo o <a href=\"${wa}\" target=\"_blank\" rel=\"noopener\">escr\u00edbenos por WhatsApp<\/a>.`,\n        `We couldn't send your request. Please try again or <a href=\"${wa}\" target=\"_blank\" rel=\"noopener\">message us on WhatsApp<\/a>.`\n      );\n      aviso.classList.add('is-on');\n    }\n\n    function exito(via){\n      if($('#slideDone').classList.contains('is-active')) return;\n      diag('Lead registrado v\u00eda ' + via + '.', 'good');\n      if(window.dataLayer) window.dataLayer.push({event:'tour_agendado', edificio: respuestas.edificio||'', idioma: EN ? 'en' : 'es'});\n      if(CONFIG.thankYouUrl){ location.href = CONFIG.thankYouUrl; return; }\n      const nombre = (respuestas.nombre||'').split(' ')[0];\n      if(nombre) $('#doneTitle').textContent = T(`Listo ${nombre}, tu visita est\u00e1 apartada`, `All set ${nombre}, your visit is reserved`);\n      const opcEdif = (PREGUNTAS.find(p=>p.id==='edificio')?.opciones || []).find(o=>o.valor === respuestas.edificio);\n\n      if(opcEdif && opcEdif.meet && !saltarCita){\n        const corto = opcEdif.etiqueta.split(' \u00b7 ')[0];\n        if(nombre) $('#doneTitle').textContent = T(`Ya casi ${nombre}, elige tu horario`, `Almost there ${nombre}, pick your time`);\n        $('#doneTexto').textContent = T(\n          `Selecciona el d\u00eda y la hora que mejor te acomode para conocer ${corto}. Tus datos ya van cargados.`,\n          `Choose the day and time that works best for you to visit ${corto}. Your details are already filled in.`\n        );\n\n        let url;\n        try{\n          url = new URL(opcEdif.meet);\n          url.searchParams.set('embed','true');\n          const partes = (respuestas.nombre||'').trim().split(\/\\s+\/);\n          if(partes[0]) url.searchParams.set('firstname', partes.shift());\n          if(partes.length) url.searchParams.set('lastname', partes.join(' '));\n          if(respuestas.email) url.searchParams.set('email', respuestas.email);\n          if(respuestas.telefono) url.searchParams.set('phone', respuestas.telefono);\n          url = url.toString();\n        }catch(e){\n          url = opcEdif.meet + (opcEdif.meet.includes('?') ? '&' : '?') + 'embed=true';\n        }\n\n        const wrap = $('#meetWrap');\n        wrap.classList.add('is-on');\n        wrap.innerHTML = `<p class=\"meet-cargando\">${T('Cargando los horarios disponibles\u2026','Loading available times\u2026')}<\/p>`;\n\n        const caja = document.createElement('div');\n        caja.className = 'meetings-iframe-container';\n        caja.setAttribute('data-src', url);\n        wrap.appendChild(caja);\n\n        const sc = document.createElement('script');\n        sc.type = 'text\/javascript';\n        sc.src = 'https:\/\/static.hsappstatic.net\/MeetingsEmbed\/ex\/MeetingsEmbedCode.js';\n        sc.onerror = () => { const c = wrap.querySelector('.meet-cargando'); if(c) c.textContent = T('No pudimos cargar el calendario.',\"We couldn't load the calendar.\"); };\n        document.body.appendChild(sc);\n\n        const vigilante = new MutationObserver(()=>{\n          if(caja.querySelector('iframe')){\n            wrap.querySelector('.meet-cargando')?.remove();\n            vigilante.disconnect();\n          }\n        });\n        vigilante.observe(caja, {childList:true, subtree:true});\n        setTimeout(()=>{\n          if(!caja.querySelector('iframe')) wrap.querySelector('.meet-cargando')?.remove();\n          vigilante.disconnect();\n        }, 6000);\n\n        $('#meetLink').href = url.replace('embed=true','');\n        $('#meetAlterno').hidden = false;\n\n        \/* Calendario a ancho completo: oculta el panel azul y quita los topes de ancho (ver .shell.is-cal en el CSS) *\/\n        RAIZ.querySelector('.shell').classList.add('is-cal');\n\n      }else if(saltarCita){\n        diag('Se salt\u00f3 el calendario: eligi\u00f3 \"M\u00e1s de 45 d\u00edas\".', 'warn');\n        $('#doneTitle').textContent = T('Tu registro ha sido completado','Your registration is complete');\n        $('#doneTexto').textContent = T(\n          'Cuando tengas una fecha de mudanza m\u00e1s cercana, un asesor Urbanista te contacta para agendar tu tour.',\n          'Once your move-in date gets closer, an Urbanista advisor will contact you to schedule your tour.'\n        );\n        $('#meetAlterno').hidden = true;\n        $('#meetAlterno').style.display = 'none';\n\n      }else if(respuestas.edificio === 'Enriqueta'){\n        $('#doneTexto').textContent = T(\n          'Aurora abre pronto. Te avisamos en cuanto haya fecha para visitarla.',\n          \"Aurora opens soon. We'll let you know as soon as tours are available.\"\n        );\n      }\n\n      ir(TOTAL+1);\n      $('#bar').style.width = '100%';\n      RAIZ.scrollIntoView({block:'start', behavior:'smooth'});\n    }\n\n    window.probarCampos = async function(){\n      const prueba = { firstname:'Prueba', lastname:'Campos', email:'esto-no-es-un-correo', phone:'+525500000000', ...CONFIG.camposFijos };\n      PREGUNTAS.forEach(p=>{\n        if(['nombre','email','telefono'].includes(p.id) || !p.campo) return;\n        prueba[p.campo] = (p.opciones && p.opciones[0]) ? p.opciones[0].valor : 'prueba';\n      });\n      try{\n        const r = await postHubspot(prueba, true);\n        const malos = camposRechazados(r.texto);\n        const buenos = Object.keys(prueba).filter(k => !malos.includes(k));\n        diag('\u2713 S\u00cd existen en el form: ' + (buenos.join(', ') || '(ninguno)'), 'good');\n        diag(malos.length ? '\u2717 NO existen: ' + malos.join(', ') : '\u2717 NO existen: ninguno.', malos.length ? 'warn' : 'good');\n      }catch(err){ diag('No se pudo probar: ' + err, 'bad'); }\n    };\n\n    ir(0);\n}\nif (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initWizard);\n} else {\n    initWizard();\n}\n<\/script>\n\n<!-- ==========================================================================\n     URBANISTA.MX - C\u00d3DIGO HTML LIMPIO (ESTRUCTURA DE CONTENIDO)\n     \n     INSTRUCCIONES DE VINCULACI\u00d3N:\n     1. CSS: Pega 'urbanista.css' en 'Apariencia > Personalizar > CSS adicional'\n        o s\u00fabelo a tu tema y enl\u00e1zalo con:\n        <link rel=\"stylesheet\" href=\"\/ruta\/a\/urbanista.css\">\n        \n     2. JS: Sube 'urbanista.js' a tu tema\/servidor y enl\u00e1zalo al final del HTML con:\n        <script src=\"\/ruta\/a\/urbanista.js\" defer><\/script>\n     ========================================================================== -->\n\n<!-- FUENTES GOOGLE (Carga no bloqueante) -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link rel=\"preload\" as=\"style\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue&amp;family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&amp;family=Outfit:wght@300;400;500;600;700;800;900&amp;display=swap\">\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue&amp;family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&amp;family=Outfit:wght@300;400;500;600;700;800;900&amp;display=swap\" media=\"print\" onload=\"this.media='all'\">\n<noscript>\n    <link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue&amp;family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&amp;family=Outfit:wght@300;400;500;600;700;800;900&amp;display=swap\">\n<\/noscript>\n\n<!-- ENLACE AL ARCHIVO CSS SEPARADO (Descomentar si lo alojas en tu servidor) -->\n<!-- <link rel=\"stylesheet\" href=\"urbanista.css\"> -->\n\n<div class=\"mobile-menu-overlay\" id=\"mobileMenu\"><a href=\"#concepto\" class=\"mobile-nav-link\">Concepto<\/a><a href=\"#comunidades-nativa\" class=\"mobile-nav-link\">Comunidades<\/a><a href=\"#experiencias\" class=\"mobile-nav-link\">Experiencias<\/a><a href=\"#pasos\" class=\"mobile-nav-link\">C\u00f3mo Funciona<\/a><a href=\"#pasos\" class=\"mobile-nav-link\" style=\"color:var(--terra)\">Agendar Visita<\/a><\/div>\n\n    <nav id=\"mainNav\">\n\n        <a href=\"https:\/\/urbanista.mx\/\" class=\"nav-logo\" aria-label=\"Urbanista - Inicio\"><img fetchpriority=\"high\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2024\/06\/Logo-Negro-Urbanista-300x138.png.webp\" alt=\"Urbanista\" class=\"nav-logo-img\" width=\"150\" height=\"69\" fetchpriority=\"high\" decoding=\"async\"><\/a>\n\n        <ul class=\"nav-links\">\n\n            <li><a href=\"#concepto\">Concepto<\/a><\/li>\n\n            <li><a href=\"#comunidades-nativa\">Comunidades<\/a><\/li>\n\n            <li><a href=\"#pasos\">C\u00f3mo Funciona<\/a><\/li>\n\n            <li><a href=\"#blog\">Blog<\/a><\/li>\n\n            <li><a href=\"https:\/\/urbanista.mx\/preguntas-frecuentes\/\">FAQ<\/a><\/li>\n\n            <li><a href=\"https:\/\/alma390.mx\/\" target=\"_blank\" rel=\"noopener\">Alma 390<\/a><\/li>\n\n            <li id=\"langSwitcherItem\" class=\"trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher menu-item-8873\">\n\n                <a id=\"langSwitcherLink\" href=\"https:\/\/urbanista.mx\/en\/\" class=\"elementor-item\"><span data-no-translation=\"\"><img decoding=\"async\" id=\"langSwitcherFlag\" class=\"trp-flag-image\" src=\"https:\/\/urbanista.mx\/wp-content\/plugins\/translatepress-multilingual\/assets\/images\/flags\/en_US.png\" width=\"18\" height=\"12\" alt=\"en_US\" title=\"English\"><\/span><\/a>\n\n            <\/li>\n\n            <li><a href=\"https:\/\/urbanista.mx\/form-agenda\/\" class=\"nav-cta\">AGENDA TU TOUR<\/a><\/li>\n\n        <\/ul>\n\n        <div class=\"nav-toggle\" id=\"navToggle\"><span><\/span><span><\/span><span><\/span><\/div>\n\n    <\/nav>\n\n    <section class=\"hero\" id=\"hero\">\n\n        <div class=\"hero-bg\">\n\n            <picture>\n\n                <source media=\"(max-width: 1024px)\" srcset=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/10\/Header_Vertical_Urbanista2026-scaled-1.webp\">\n\n                <img fetchpriority=\"high\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/hf_20260415_155926_9ae6f7d8-5e9f-4899-a347-4552e08a6ffb-scaled.webp\" alt=\"Urbanista rooftop CDMX\" class=\"hero-bg-img\" fetchpriority=\"high\" decoding=\"async\" width=\"1920\" height=\"1080\">\n\n            <\/picture>\n\n            <div class=\"hero-overlay\"><\/div>\n\n        <\/div>\n\n        <div class=\"hero-main\">\n\n            <h1 class=\"hero-headline\">DEPARTAMENTOS EN RENTA EN LA CIUDAD DE<br>M\u00c9XICO PARA QUIENES VALORAN SU TIEMPO.<\/h1>\n\n            <a href=\"#comunidades-nativa\" class=\"hero-cta-btn\">Ver Departamentos<\/a>\n\n        <\/div>\n\n        <div class=\"hero-bottom-content\">\n\n            <div class=\"hero-stats-row\">\n\n                <div class=\"hero-stat-pill\">\n\n                    <span class=\"hero-stat-pill-num\">1,400<\/span>\n\n                    <span class=\"hero-stat-pill-label\">Departamentos<\/span>\n\n                <\/div>\n\n                <div class=\"hero-stat-pill\">\n\n                    <span class=\"hero-stat-pill-num\">12<\/span>\n\n                    <span class=\"hero-stat-pill-label\">Meses sin aval en tu renta<\/span>\n\n                <\/div>\n\n                <div class=\"hero-stat-pill\">\n\n                    <span class=\"hero-stat-pill-num\">24h<\/span>\n\n                    <span class=\"hero-stat-pill-label\">Confirmaci\u00f3n y aprobaci\u00f3n<\/span>\n\n                <\/div>\n\n            <\/div>\n\n            <div class=\"hero-tagline\">When you move in here, you thrive out there.<\/div>\n\n        <\/div>\n\n        <div class=\"hero-form-bar\">\n\n            <div class=\"hero-form-bar-inner\" id=\"heroHubspotForm\"><\/div>\n\n            <!-- CTA Llamada directa \u2014 solo visible en mobile (\u2264767px) -->\n\n            <a href=\"tel:+525599628814\" class=\"cta-call\" onclick=\"trackCallClick('home-hero');\">\n\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.13.96.36 1.9.7 2.81a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0122 16.92z\"><\/path><\/svg>\n\n                L\u00ednea Directa (llamar)\n\n            <\/a>\n\n        <\/div>\n\n    <\/section>\n\n    <section class=\"porque-v2\" id=\"concepto\">\n\n        <div class=\"porque-v2-img\">\n\n            <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/10\/5990ff2c-2df5-48cd-bb6c-618e49d79832-2.webp\" alt=\"Comunidad Urbanista\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\">\n\n        <\/div>\n\n        <div class=\"porque-v2-content\">\n\n            <h2 class=\"porque-v2-title\">Para que rentar y vivir sea un gusto, no una carga.<\/h2>\n\n            <p class=\"porque-v2-sub\">Hay otra forma de vivir en CDMX. Una donde tu depa es solo el punto de partida.<\/p>\n\n            <table class=\"pv2-table\">\n\n                <thead>\n\n                    <tr>\n\n                        <th>Renta Tradicional<\/th>\n\n                        <th>Renta con Urbanista<\/th>\n\n                    <\/tr>\n\n                <\/thead>\n\n                <tbody>\n\n    <tr>\n\n        <td>\n\n            <div class=\"pv2-td-inner\">\n\n                <span><span class=\"pv2-pilar-name\" style=\"display:block;margin-bottom:6px;text-transform:none;\">Rentar se vuelve pesado<\/span>Aval, fiador, burocracia, tr\u00e1mites interminables y caseros que no responden cuando necesitas resolver algo.<\/span>\n\n            <\/div>\n\n        <\/td>\n\n        <td>\n\n            <div class=\"pv2-td-inner\">\n\n                <span class=\"pv2-icon-good\">\u2713<\/span>\n\n                <span><span class=\"pv2-pilar-name\" style=\"display:block;margin-bottom:6px;\">Renta F\u00e1cil<\/span>Sin aval. Aprobaci\u00f3n en 24 horas. Equipo profesional en el edificio para ayudarte todos los d\u00edas.<\/span>\n\n            <\/div>\n\n        <\/td>\n\n    <\/tr>\n\n    <tr>\n\n        <td>\n\n            <div class=\"pv2-td-inner\">\n\n                <span><span class=\"pv2-pilar-name\" style=\"display:block;margin-bottom:6px;text-transform:none;\">Tu depa no siempre te deja descansar<\/span>Ruido, calor e inseguridad. Llegas a casa, pero no siempre logras bajar el ritmo.<\/span>\n\n            <\/div>\n\n        <\/td>\n\n        <td>\n\n            <div class=\"pv2-td-inner\">\n\n                <span class=\"pv2-icon-good\">\u2713<\/span>\n\n                <span><span class=\"pv2-pilar-name\" style=\"display:block;margin-bottom:6px;\">Oasis Urbano<\/span>Aire acondicionado en unidades seleccionadas, ventanas con reducci\u00f3n de ruido, seguridad y monitoreo 24\/7, y sistema contra incendios.<\/span>\n\n            <\/div>\n\n        <\/td>\n\n    <\/tr>\n\n    <tr>\n\n        <td>\n\n            <div class=\"pv2-td-inner\">\n\n                <span><span class=\"pv2-pilar-name\" style=\"display:block;margin-bottom:6px;text-transform:none;\">Solo cuatro paredes<\/span>Sin d\u00f3nde trabajar, recibir amigos o desconectar. Todo pasa dentro del mismo espacio.<\/span>\n\n            <\/div>\n\n        <\/td>\n\n        <td>\n\n            <div class=\"pv2-td-inner\">\n\n                <span class=\"pv2-icon-good\">\u2713<\/span>\n\n                <span><span class=\"pv2-pilar-name\" style=\"display:block;margin-bottom:6px;\">Comparte &amp; Recarga<\/span>Tu depa es mucho m\u00e1s que cuatro paredes: miles de metros cuadrados para trabajar, entrenar, recibir amigos y cambiar de ambiente a un elevador de distancia.<\/span>\n\n            <\/div>\n\n        <\/td>\n\n    <\/tr>\n\n<\/tbody>\n\n            <\/table>\n\n            <div class=\"porque-v2-tagline\">Eso es Urbanista. <em>Move in. Move up.<\/em><\/div>\n\n            <a href=\"https:\/\/urbanista.mx\/form-agenda\/\" class=\"porque-v2-cta\">Agenda tu Tour<\/a>\n\n        <\/div>\n\n    <\/section>\n\n    <section class=\"pilares-section\" id=\"experiencias\">\n\n        <div class=\"pilares-header reveal\">\n\n            <h2 class=\"pilares-title\">\u00bfQu\u00e9 nos hace diferentes?<\/h2>\n\n            <p class=\"pilares-desc\">Renta mucho m\u00e1s que cuatro paredes<\/p>\n\n        <\/div>\n\n        <div class=\"pilares-grid\">\n\n            <a href=\"https:\/\/urbanista.mx\/renta-facil\/\" class=\"pilar-card reveal\">\n\n                <div class=\"pilar-card-badge\">01<\/div>\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/10\/renta-facil-home-scaled-1.webp\" alt=\"Renta F\u00e1cil Urbanista\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"375\">\n\n                <div class=\"pilar-card-overlay\">\n\n                    <div class=\"pilar-card-title\">Renta F\u00e1cil<\/div>\n\n                    <div class=\"pilar-card-subtitle\">Tu \u00fanico trabajo: disfrutar. El resto es nuestro.<\/div>\n\n                    <div class=\"pilar-card-cta\">Conoce m\u00e1s <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"><\/path><\/svg><\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/comparte-y-recarga\/\" class=\"pilar-card reveal reveal-delay-1\">\n\n                <div class=\"pilar-card-badge\">02<\/div>\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/05\/comparte_recarga_home.jpg-1-scaled.jpeg\" alt=\"Comparte y Recarga Urbanista\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"375\">\n\n                <div class=\"pilar-card-overlay\">\n\n                    <div class=\"pilar-card-title\">Comparte &amp; Recarga<\/div>\n\n                    <div class=\"pilar-card-subtitle\">Host like a boss. Recarga como un pro.<\/div>\n\n                    <div class=\"pilar-card-cta\">Conoce m\u00e1s <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"><\/path><\/svg><\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/oasis-urbano-urbanista\/\" class=\"pilar-card reveal reveal-delay-2\">\n\n                <div class=\"pilar-card-badge\">03<\/div>\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/04\/c30e4028-a866-4eb9-9379-53d6370fefb4.jpg\" alt=\"Oasis Urbano Urbanista\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"375\">\n\n                <div class=\"pilar-card-overlay\">\n\n                    <div class=\"pilar-card-title\">Oasis Urbano<\/div>\n\n                    <div class=\"pilar-card-subtitle\">Vive por encima del ruido.<\/div>\n\n                    <div class=\"pilar-card-cta\">Conoce m\u00e1s <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M5 12h14M12 5l7 7-7 7\"><\/path><\/svg><\/div>\n\n                <\/div>\n\n            <\/a>\n\n        <\/div>\n\n    <\/section>\n\n    <section class=\"buildings-section-native\" id=\"comunidades-nativa\">\n\n        <div class=\"buildings-intro reveal\">\n\n            <h2 class=\"pilares-title\" style=\"color: var(--navy)\">Tu<em> \u00e9xito<\/em> merece un entorno a la medida<\/h2>\n\n            <p class=\"section-desc\" style=\"text-align:center;max-width:1200px;font-size:20px;margin: 0 auto;\">Encuentra el refugio que mejor se adapta a ti: nueve edificios premium ubicados estrat\u00e9gicamente en los mejores puntos de la Ciudad de M\u00e9xico, dise\u00f1ados para tu confort y progreso.<\/p>\n\n        <\/div>\n\n        \n\n        <div class=\"cb-grid reveal reveal-delay-1\">\n\n            <a href=\"https:\/\/urbanista.mx\/amalia-napoles\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/WhatsApp-Image-2026-04-14-at-1.01.32-PM.jpeg\" alt=\"Amalia N\u00e1poles\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">Studio Desde:<br><b>$23,150.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Av. Insurgentes Sur 609, N\u00e1poles, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/ines-polanco\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/Renta-en-polanco.jpg\" alt=\"In\u00e9s Polanco\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">Studio Desde:<br><b>$28,350.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Andr\u00f3maco 9, Amp Granada, Miguel Hidalgo, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/magda-la-roma\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/59596a5c-61c2-4131-be77-59c0cb12bf6d.jpg\" alt=\"Magda Roma\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">Studio Desde:<br><b>$26,250.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Av. Insurgentes Sur 454, Roma Sur, Cuauht\u00e9moc, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/josefa-reforma\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/03\/47e3533e-86f8-4eaf-b9f2-71869c26ca3a.jpg\" alt=\"Josefa Reforma\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">Studio Desde:<br><b>$29,750.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Paseo de la Reforma 390, Ju\u00e1rez, Cuauht\u00e9moc, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/matilde-juarez\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/elementor\/thumbs\/3d0955b6-305a-4287-a794-2669df7b5e7a-rm0cxs49si7ut9zjj8d71nm3n7449wb9c9yvlw50ow.jpg\" alt=\"Matilde Ju\u00e1rez\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">Studio Desde:<br><b>$47,350.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Donato Guerra 1, Ju\u00e1rez, Cuauht\u00e9moc, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/natalia-doctores\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/5c95f928-ecd0-406d-9a29-891cec1b16f6.jpg\" alt=\"Doctores\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">2 Rec Desde:<br><b>$27,650.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Calle Dr. Carmona y Valle 25, Doctores, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/joaquina-del-valle\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/elementor\/thumbs\/Renta-en-la-del-valle-rm0dng3mencptypentrgmog7kylxgd7ejb96cw30sg.jpg\" alt=\"Joaquina Del Valle\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">Studio Desde:<br><b>$24,850.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">San Francisco 345, Col Del Valle Centro, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/leona-condesa\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/elementor\/thumbs\/renta-en-la-condesa-rm0dohp600s6qd6ska0jeeyncdgm09co0hcljyj9vk.jpg\" alt=\"Leona Condesa\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">2 Rec Desde:<br><b>$39,650.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Montes de Oca 47, Col Condesa, Cuauht\u00e9moc, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n            <a href=\"https:\/\/urbanista.mx\/aurora-santa-maria-la-ribera\/\" class=\"cb-card\">\n\n                <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/0733dcf6-0a70-4d68-b470-33dabd9f9316.jpg\" alt=\"Aurora Santa Mar\u00eda la Ribera\" class=\"cb-img\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\">\n\n                <div class=\"cb-overlay\"><\/div>\n\n                <div class=\"cb-content\">\n\n                    <div class=\"cb-price\">Studio Desde:<br><b>$18,980.00 MXN con servicios<\/b><\/div>\n\n                    <div class=\"cb-address\">Muy pronto llegar\u00e1 a Santa Mar\u00eda la Ribera, CDMX<\/div>\n\n                    <div class=\"cb-btn\">CONOCE M\u00c1S<\/div>\n\n                <\/div>\n\n            <\/a>\n\n        <\/div>\n\n    <\/section>\n\n    <div class=\"lightbox-overlay\" id=\"lightboxOverlay\"><button class=\"lightbox-close\" id=\"lightboxClose\" aria-label=\"Cerrar vista previa\"><svg viewBox=\"0 0 24 24\"><path d=\"M18 6L6 18M6 6l12 12\"><\/path><\/svg><\/button><button class=\"lightbox-arrow prev\" id=\"lightboxPrev\" aria-label=\"Amenidad anterior\"><svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"><\/polyline><\/svg><\/button><button class=\"lightbox-arrow next\" id=\"lightboxNext\" aria-label=\"Amenidad siguiente\"><svg viewBox=\"0 0 24 24\"><polyline points=\"9 6 15 12 9 18\"><\/polyline><\/svg><\/button>\n\n        <div class=\"lightbox-content\"><img decoding=\"async\" class=\"lightbox-img\" id=\"lightboxImg\" src=\"data:image\/svg+xml,%3Csvg xmlns=\\'http:\/\/www.w3.org\/2000\/svg\\' viewBox=\\'0 0 1 1\\'%3E%3C\/svg%3E\" alt=\"Vista previa\" width=\"800\" height=\"600\">\n\n            <div class=\"lightbox-caption\">\n\n                <div class=\"lightbox-caption-title\" id=\"lightboxTitle\"><\/div>\n\n                <div class=\"lightbox-caption-desc\" id=\"lightboxDesc\"><\/div>\n\n            <\/div>\n\n            <div class=\"lightbox-counter\" id=\"lightboxCounter\"><\/div>\n\n        <\/div>\n\n    <\/div>\n\n    <section class=\"section\" id=\"pasos\">\n\n        <div style=\"text-align:center;margin-bottom:8px\" class=\"reveal\">\n\n            <h2 class=\"pilares-title\" style=\"margin:16px auto;text-align:center\">Tu nuevo hogar en <em>3 pasos<\/em><\/h2>\n\n            <p class=\"section-desc\" style=\"margin:0 auto;text-align:center; font-size: 20px;\">As\u00ed de f\u00e1cil es rentar con Urbanista.<\/p>\n\n        <\/div>\n\n        <div class=\"steps-horizontal reveal reveal-delay-1\">\n\n            <div class=\"step-h-card\">\n\n                <div class=\"step-h-num\">\n\n                    <span>1<\/span>\n\n                    <div class=\"step-h-num-icon\">\n\n                        <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"><\/rect><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line><\/svg>\n\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"step-h-body\">\n\n                    <h4>Agenda tu tour<\/h4>\n\n                    <p>D\u00e9janos tus datos y el edificio que te interesa.<\/p>\n\n                <\/div>\n\n            <\/div>\n\n            <div class=\"step-h-card\">\n\n                <div class=\"step-h-num\">\n\n                    <span>2<\/span>\n\n                    <div class=\"step-h-num-icon\">\n\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z\"><\/path><polyline points=\"9 22 9 12 15 12 15 22\"><\/polyline><\/svg>\n\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"step-h-body\">\n\n                    <h4>Visita tu depa<\/h4>\n\n                    <p>Conoce el edificio, las amenidades y tu futuro departamento con un asesor que resuelve todas tus dudas.<\/p>\n\n                <\/div>\n\n            <\/div>\n\n            <div class=\"step-h-card\">\n\n                <div class=\"step-h-num\">\n\n                    <span>3<\/span>\n\n                    <div class=\"step-h-num-icon\">\n\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"><\/path><polyline points=\"22 4 12 14.01 9 11.01\"><\/polyline><\/svg>\n\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"step-h-body\">\n\n                    <h4>Firma y m\u00fadate<\/h4>\n\n                    <p>Contrato directo con Urbanista, sin aval. En 24 horas tienes confirmaci\u00f3n y las llaves de tu nuevo hogar.<\/p>\n\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n        <!-- ===== WIZARD DE AGENDAMIENTO (antes: step-form-wrapper) =====\n\n             data-no-translation: evita que TranslatePress traduzca esta secci\u00f3n por su cuenta;\n\n             el propio wizard se traduce solo cuando la URL empieza con \/en\/ -->\n\n        <div class=\"agenda-embed reveal reveal-delay-2\" data-no-translation=\"\">\n\n          <div class=\"shell\">\n\n            <aside class=\"aside\">\n\n              <div class=\"reel\" aria-hidden=\"true\"><div class=\"reel-col\" id=\"reelA\"><\/div><div class=\"reel-col reel-col--down\" id=\"reelB\"><\/div><\/div>\n\n              <div class=\"hero-slides\" id=\"heroSlides\" aria-hidden=\"true\"><\/div>\n\n              <div class=\"brand\">\n\n                <a href=\"https:\/\/urbanista.mx\/\"><img loading=\"lazy\" class=\"logo\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2025\/10\/Logo-blanco-Urbanista.png.png\" alt=\"Urbanista\" loading=\"lazy\" decoding=\"async\" width=\"112\" height=\"52\"><\/a>\n\n              <\/div>\n\n              <div class=\"pitch\">\n\n                <h1 class=\"u-display\">Agenda tu tour.<\/h1>\n\n                <p>Tu pr\u00f3ximo departamento est\u00e1 a un minuto de distancia. Solo necesitamos cinco datos para agendar tu visita.<\/p>\n\n              <\/div>\n\n              <p class=\"instruccion\">\n\n                <span class=\"flecha\" aria-hidden=\"true\">\u2190<\/span>\n\n                <span>Ve contestando las preguntas de la izquierda. Aqu\u00ed se arma tu solicitud.<\/span>\n\n              <\/p>\n\n              <dl class=\"placa\" id=\"placa\">\n\n                <div class=\"placa-head\"><span class=\"u-eyebrow\">Tu solicitud<\/span><span id=\"placaCount\">0 \/ 5<\/span><\/div>\n\n                <div id=\"placaBody\"><\/div>\n\n              <\/dl>\n\n              <ul class=\"trust\">\n\n                <li>Sin aval ni fianza<\/li>\n\n                <li>Aprobaci\u00f3n en 24 h<\/li>\n\n                <li>Plazo m\u00ednimo 12 meses<\/li>\n\n                <li>9 comunidades en CDMX<\/li>\n\n                <li>Amenidades premium<\/li>\n\n              <\/ul>\n\n            <\/aside>\n\n            <main class=\"main\">\n\n              <div class=\"progress\">\n\n                <div class=\"progress-bar\"><div class=\"progress-fill\" id=\"bar\"><\/div><\/div>\n\n                <div class=\"progress-meta\">\n\n                  <button class=\"btn-back\" id=\"back\" aria-label=\"Volver al paso anterior\" hidden=\"\">\u2190 Regresar<\/button>\n\n                  <span class=\"step-count\" id=\"count\">&nbsp;<\/span>\n\n                <\/div>\n\n              <\/div>\n\n              <div class=\"stage\">\n\n                <div class=\"stage-inner\">\n\n                  <div id=\"slides\"><\/div>\n\n                  <section class=\"slide\" id=\"slideCheck\">\n\n                    <p class=\"u-eyebrow kicker\">\u00daltimo paso<\/p>\n\n                    <h2 class=\"u-display q-title\">Ya casi terminamos<\/h2>\n\n                    <p class=\"q-help\">Antes de confirmar, puedes revisar y editar cualquier dato.<\/p>\n\n                    <dl class=\"check\" id=\"checkList\"><\/dl>\n\n                    <input id=\"empresa_web\" name=\"empresa_web\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\" style=\"position:absolute;left:-9999px;opacity:0;height:0;width:0\">\n\n                    <div id=\"hsFrame\"><\/div>\n\n                    <p id=\"hsCargando\" hidden=\"\">Preparando tu solicitud\u2026<\/p>\n\n                    <button class=\"cta cta--full\" id=\"enviar\"><span>Confirmar datos y <span class=\"cta-destacado\">seleccionar fecha y hora<\/span><\/span> <span aria-hidden=\"true\">\u2192<\/span><\/button>\n\n                    <p class=\"hint\" id=\"notaEmbed\" hidden=\"\">Tus datos ya quedaron cargados. Solo confirma el env\u00edo para apartar tu visita.<\/p>\n\n                    <p class=\"aviso\" id=\"aviso\"><\/p>\n\n                    <span class=\"hint\" id=\"notaPrivacidad\">Plazo m\u00ednimo de renta: 12 meses. Consulta el <a href=\"https:\/\/urbanista.mx\/aviso-de-privacidad\/\" target=\"_blank\" rel=\"noopener\">aviso de privacidad<\/a>.<\/span>\n\n                  <\/section>\n\n                  <section class=\"slide\" id=\"slideDone\">\n\n                    <div class=\"done\">\n\n                      <div class=\"seal\" aria-hidden=\"true\"><svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6 9 17l-5-5\"><\/path><\/svg><\/div>\n\n                      <h2 class=\"u-display\" id=\"doneTitle\">Listo, tu visita est\u00e1 apartada<\/h2>\n\n                      <p id=\"doneTexto\">Un asesor Urbanista te contacta para confirmar d\u00eda, hora y direcci\u00f3n.<\/p>\n\n                      <div id=\"meetWrap\"><\/div>\n\n                      <span class=\"meet-alterno\" id=\"meetAlterno\" hidden=\"\"><span id=\"meetAlternoTxt\">\u00bfNo carga el calendario?<\/span> <a id=\"meetLink\" target=\"_blank\" rel=\"noopener\">\u00c1brelo en una pesta\u00f1a nueva<\/a><\/span>\n\n                    <\/div>\n\n                  <\/section>\n\n                <\/div>\n\n              <\/div>\n\n            <\/main>\n\n          <\/div>\n\n        <\/div>\n\n        <aside id=\"diag\">\n\n          <header><span>Diagn\u00f3stico Urbanista<\/span><span><button type=\"button\" aria-label=\"Probar validaci\u00f3n de campos\" onclick=\"probarCampos()\">probar campos<\/button> \u00b7 <button type=\"button\" aria-label=\"Cerrar ventana de diagn\u00f3stico\" onclick=\"document.getElementById('diag').classList.remove('is-on')\">cerrar \u2715<\/button><\/span><\/header>\n\n          <div class=\"lineas\" id=\"diagBody\"><\/div>\n\n        <\/aside>\n\n    <\/section>\n\n    <section class=\"section testimonials-section\">\n\n        <div class=\"reveal\" style=\"text-align:center;margin-bottom:16px\">\n\n            <h2 class=\"pilares-title\" style=\"margin:16px auto;text-align:center; color:var(--text-primary);\">Lo que dicen nuestros <em style=\"color:var(--terra)\">urbanistas<\/em><\/h2>\n\n        <\/div>\n\n        <div class=\"testimonials-wrapper\">\n\n            <div class=\"testimonial-card\">\n\n                <div class=\"testimonial-stars\"><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><\/div>\n\n                <div class=\"testimonial-text\">&#8220;Mi gato ama vivir aqu\u00ed. Hay espacio, calma y nadie pone cara por tener mascota. Pet-friendly real!&#8221;<\/div>\n\n                <div class=\"testimonial-author\"><div class=\"testimonial-avatar\">SG<\/div><div><div class=\"testimonial-name\">Sharely G.<\/div><div class=\"testimonial-handle\">Residente en Amalia<\/div><\/div><\/div>\n\n            <\/div>\n\n            <div class=\"testimonial-card\">\n\n                <div class=\"testimonial-stars\"><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><\/div>\n\n                <div class=\"testimonial-text\">&#8220;El proceso fue s\u00faper r\u00e1pido. Sin aval, sin complicaciones. En 24 horas ya ten\u00eda mi depa confirmado.&#8221;<\/div>\n\n                <div class=\"testimonial-author\"><div class=\"testimonial-avatar\">MR<\/div><div><div class=\"testimonial-name\">Miguel R.<\/div><div class=\"testimonial-handle\">Residente en Josefa<\/div><\/div><\/div>\n\n            <\/div>\n\n            <div class=\"testimonial-card\">\n\n                <div class=\"testimonial-stars\"><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><\/div>\n\n                <div class=\"testimonial-text\">&#8220;Las amenidades son incre\u00edbles. El gym, el coworking y el rooftop hacen que no quieras salir del edificio.&#8221;<\/div>\n\n                <div class=\"testimonial-author\"><div class=\"testimonial-avatar\">LC<\/div><div><div class=\"testimonial-name\">Laura C.<\/div><div class=\"testimonial-handle\">Residente en In\u00e9s<\/div><\/div><\/div>\n\n            <\/div>\n\n            <div class=\"testimonial-card\">\n\n                <div class=\"testimonial-stars\"><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><\/div>\n\n                <div class=\"testimonial-text\">&#8220;Lo mejor es el trato directo. Nada de intermediarios. Cualquier problema, lo resuelven r\u00e1pido y bien.&#8221;<\/div>\n\n                <div class=\"testimonial-author\"><div class=\"testimonial-avatar\">DP<\/div><div><div class=\"testimonial-name\">Daniel P.<\/div><div class=\"testimonial-handle\">Residente en Matilde<\/div><\/div><\/div>\n\n            <\/div>\n\n            <div class=\"testimonial-card\">\n\n                <div class=\"testimonial-stars\"><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><\/div>\n\n                <div class=\"testimonial-text\">&#8220;Pas\u00e9 de rentar un depa viejo y ruidoso a vivir en un lugar con aislamiento ac\u00fastico real. Game changer.&#8221;<\/div>\n\n                <div class=\"testimonial-author\"><div class=\"testimonial-avatar\">AF<\/div><div><div class=\"testimonial-name\">Andrea F.<\/div><div class=\"testimonial-handle\">Residente en Magda<\/div><\/div><\/div>\n\n            <\/div>\n\n            <div class=\"testimonial-card\">\n\n                <div class=\"testimonial-stars\"><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><\/div>\n\n                <div class=\"testimonial-text\">&#8220;Mi gato ama vivir aqu\u00ed. Hay espacio, calma y nadie pone cara por tener mascota. Pet-friendly real!&#8221;<\/div>\n\n                <div class=\"testimonial-author\"><div class=\"testimonial-avatar\">SG<\/div><div><div class=\"testimonial-name\">Sharely G.<\/div><div class=\"testimonial-handle\">Residente en Amalia<\/div><\/div><\/div>\n\n            <\/div>\n\n            <div class=\"testimonial-card\">\n\n                <div class=\"testimonial-stars\"><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg><\/div>\n\n                <div class=\"testimonial-text\">&#8220;El proceso fue s\u00faper r\u00e1pido. Sin aval, sin complicaciones. En 24 horas ya ten\u00eda mi depa confirmado.&#8221;<\/div>\n\n                <div class=\"testimonial-author\"><div class=\"testimonial-avatar\">MR<\/div><div><div class=\"testimonial-name\">Miguel R.<\/div><div class=\"testimonial-handle\">Residente en Josefa<\/div><\/div><\/div>\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n    <section class=\"section\" id=\"blog\">\n\n        <div class=\"buildings-intro reveal\">\n\n            <h2 class=\"pilares-title\" style=\"text-align:center\">Tu gu\u00eda para la vida urbana<\/h2>\n\n            <p class=\"section-desc\" style=\"text-align:center;max-width:1170px;font-size:20px;padding-bottom:36px;\">Todo lo que necesitas saber para elegir la colonia correcta, rentar sin fricciones y dominar la ciudad a tu ritmo<\/p>\n\n        <\/div>\n\n        \t\t<div data-elementor-type=\"container\" data-elementor-id=\"22105\" class=\"elementor elementor-22105\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e0ed7fe e-con-full e-flex e-con e-parent\" data-id=\"e0ed7fe\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2bba25f elementor-posts--align-center elementor-grid-tablet-3 elementor-grid-3 elementor-grid-mobile-1 elementor-posts--thumbnail-top load-more-align-center elementor-widget elementor-widget-posts\" data-id=\"2bba25f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;classic_row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:81,&quot;sizes&quot;:[]},&quot;classic_columns_tablet&quot;:&quot;3&quot;,&quot;classic_row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:28,&quot;sizes&quot;:[]},&quot;pagination_type&quot;:&quot;load_more_on_click&quot;,&quot;classic_columns&quot;:&quot;3&quot;,&quot;classic_columns_mobile&quot;:&quot;1&quot;,&quot;classic_row_gap_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;classic_row_gap_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;classic_row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;load_more_spinner&quot;:{&quot;value&quot;:&quot;fas fa-spinner&quot;,&quot;library&quot;:&quot;fa-solid&quot;}}\" data-widget_type=\"posts.classic\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-posts-container elementor-posts elementor-posts--skin-classic elementor-grid\" role=\"list\">\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-25637 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/urbanista.mx\/en\/blog\/lo-que-no-sabias-de-vivir-en-santa-maria-la-ribera\/\" tabindex=\"-1\">\n\t\t\t<div class=\"elementor-post__thumbnail\"><img decoding=\"async\" width=\"2560\" height=\"1429\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-scaled.webp\" class=\"attachment-full size-full wp-image-25659\" alt=\"\" srcset=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-scaled.webp 2560w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-300x167.webp 300w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-1024x572.webp 1024w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-768x429.webp 768w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-1536x857.webp 1536w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-2048x1143.webp 2048w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/08\/kiosko_santa_maria_la_ribera_cdmx-18x10.webp 18w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/urbanista.mx\/en\/blog\/lo-que-no-sabias-de-vivir-en-santa-maria-la-ribera\/\">\n\t\t\t\tLo que no sab\u00edas de vivir en Santa Mar\u00eda la Ribera\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/urbanista.mx\/en\/blog\/lo-que-no-sabias-de-vivir-en-santa-maria-la-ribera\/\" aria-label=\"Read more about Lo que no sab\u00edas de vivir en Santa Mar\u00eda la Ribera\" tabindex=\"-1\">\n\t\t\tMOVE IN. MOVE UP.\t\t<\/a>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-25330 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/urbanista.mx\/en\/blog\/3-amazing-mexico-city-neighborhoods-to-live-in\/\" tabindex=\"-1\">\n\t\t\t<div class=\"elementor-post__thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1429\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-scaled.webp\" class=\"attachment-full size-full wp-image-25340\" alt=\"\" srcset=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-scaled.webp 2560w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-300x167.webp 300w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-1024x572.webp 1024w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-768x429.webp 768w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-1536x857.webp 1536w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-2048x1143.webp 2048w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/07\/colonias_para_rentar_depa_cdmx-18x10.webp 18w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/urbanista.mx\/en\/blog\/3-amazing-mexico-city-neighborhoods-to-live-in\/\">\n\t\t\t\t3 colonias de la CDMX que no sab\u00edas que son incre\u00edbles para vivir (y por qu\u00e9 la gente se est\u00e1 mudando ah\u00ed)\u00a0\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/urbanista.mx\/en\/blog\/3-amazing-mexico-city-neighborhoods-to-live-in\/\" aria-label=\"Read more about 3 colonias de la CDMX que no sab\u00edas que son incre\u00edbles para vivir (y por qu\u00e9 la gente se est\u00e1 mudando ah\u00ed)\u00a0\" tabindex=\"-1\">\n\t\t\tMOVE IN. MOVE UP.\t\t<\/a>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-25241 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/urbanista.mx\/en\/blog\/donde-ver-el-mundial-en-la-cdmx-5-lugares-para-disfruta-la-temporada-del-futbol\/\" tabindex=\"-1\">\n\t\t\t<div class=\"elementor-post__thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1429\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1.webp\" class=\"attachment-full size-full wp-image-26180\" alt=\"\" srcset=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1.webp 2560w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1-300x167.webp 300w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1-1024x572.webp 1024w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1-768x429.webp 768w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1-1536x857.webp 1536w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1-2048x1143.webp 2048w, https:\/\/urbanista.mx\/wp-content\/uploads\/2026\/06\/donde_ver_mundial_cdmx-scaled-1-18x10.webp 18w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/urbanista.mx\/en\/blog\/donde-ver-el-mundial-en-la-cdmx-5-lugares-para-disfruta-la-temporada-del-futbol\/\">\n\t\t\t\t\u00bfD\u00f3nde ver el Mundial en la CDMX?\u00a05 lugares para disfrutar la temporada del futbol\u00a0\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/urbanista.mx\/en\/blog\/donde-ver-el-mundial-en-la-cdmx-5-lugares-para-disfruta-la-temporada-del-futbol\/\" aria-label=\"Read more about \u00bfD\u00f3nde ver el Mundial en la CDMX?\u00a05 lugares para disfrutar la temporada del futbol\u00a0\" tabindex=\"-1\">\n\t\t\tMOVE IN. MOVE UP.\t\t<\/a>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<\/div>\n\t\t\t\t\t<span class=\"e-load-more-spinner\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-spinner\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\n\t\t\t\t<div class=\"e-load-more-anchor\" data-page=\"1\" data-max-page=\"28\" data-next-page=\"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/pages\/22241\/page\/2\/\"><\/div>\n\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a href=\"#\" class=\"elementor-button-link elementor-button\" role=\"button\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Leer m\u00e1s<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<div class=\"e-load-more-message\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\n        \n\n        <div style=\"margin-top: 48px;\"><\/div>\n\n<ul class=\"communities-list\">\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/amalia-napoles\/\">\n\n      <span class=\"community-name\">Amalia \u00b7 N\u00e1poles<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta cerca del WTC<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/ines-polanco\/\">\n\n      <span class=\"community-name\">In\u00e9s \u00b7 Polanco<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta en Nuevo Polanco<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/magda-la-roma\/\">\n\n      <span class=\"community-name\">Magda \u00b7 Roma Sur<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta cerca de la Condesa<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/josefa-reforma\/\">\n\n      <span class=\"community-name\">Josefa \u00b7 Reforma<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta sobre Paseo de la Reforma<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/matilde-juarez\/\">\n\n      <span class=\"community-name\">Matilde \u00b7 Ju\u00e1rez<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta a una cuadra de Reforma<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/natalia-doctores\/\">\n\n      <span class=\"community-name\">Natalia \u00b7 Doctores<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta cerca del Centro y Arena M\u00e9xico<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/joaquina-del-valle\/\">\n\n      <span class=\"community-name\">Joaquina \u00b7 Del Valle<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta en Del Valle Centro<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/leona-condesa\/\">\n\n      <span class=\"community-name\">Leona \u00b7 Condesa<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta en la mejor zona de la Condesa<\/span>\n\n    <\/a>\n\n  <\/li>\n\n  <li class=\"community-item\">\n\n    <a href=\"https:\/\/urbanista.mx\/aurora-santa-maria-la-ribera\/\">\n\n      <span class=\"community-name\">Aurora \u00b7 Santa Mar\u00eda la Ribera<\/span>\n\n      <span class=\"community-tagline\">Departamentos en renta en Santa Mar\u00eda la Ribera<\/span>\n\n    <\/a>\n\n  <\/li>\n\n<\/ul>\n\n    <\/section>\n\n    \n\n    \n\n    <section class=\"cta-section\" id=\"contacto\">\n\n        <h2 class=\"pilares-title\" style=\"text-align:center;\">No es solo mudarte, es avanzar.<br><em style=\"color:var(--terra)\">MOVE IN. MOVE UP.<\/em><\/h2>\n\n        <p class=\"section-desc\" style=\"text-align:center;margin:0 auto 32px;\">Agenda tu tour y descubre c\u00f3mo se siente avanzar.<\/p>\n\n        <div style=\"display:flex;gap:16px;justify-content:center;flex-wrap:wrap\"><a href=\"https:\/\/urbanista.mx\/form-agenda\/\" class=\"btn-primary\">Agenda tu tour<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" width=\"16\" height=\"16\"><path d=\"M7 17L17 7M17 7H7M17 7V17\"><\/path><\/svg><\/a><\/div>\n\n    <\/section>\n\n    <footer>\n\n  <div class=\"footer-top\">\n\n    <div class=\"footer-brand\">\n\n      <div class=\"footer-brand-name\">\n\n        <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2024\/06\/Logo-Negro-Urbanista-768x353.png.webp\" alt=\"Urbanista\" class=\"footer-logo-img\" loading=\"lazy\" decoding=\"async\" width=\"160\" height=\"74\">\n\n      <\/div>\n\n      <p>Apartamentos en renta en CDMX para quienes valoran su tiempo<\/p>\n\n      <p class=\"footer-award-inline\" style=\"font-size:12px;color:rgba(255,255,255,.4);margin-top:8px;line-height:1.3;display:flex;align-items:center;gap:8px;flex-wrap:wrap;\">\n\n        <img loading=\"lazy\" src=\"https:\/\/urbanista.mx\/wp-content\/uploads\/2024\/07\/adi-nvo_final_cvas-e1722877748440.png.webp\" alt=\"Premio ADI\" loading=\"lazy\" decoding=\"async\" style=\"height:40px;width:auto;opacity:.85;\" width=\"100\" height=\"40\">\n\n        Premio al mejor desarrollo residencial 2023 y 2025.\n\n      <\/p>\n\n    <\/div>\n\n    <div class=\"footer-col\">\n\n      <h4>Comunidades<\/h4>\n\n      <div class=\"footer-comunidades-grid\">\n\n        <a href=\"https:\/\/urbanista.mx\/amalia-napoles\">Amalia \u00b7 N\u00e1poles<\/a>\n\n        <a href=\"https:\/\/urbanista.mx\/ines-polanco\/\">In\u00e9s \u00b7 Polanco<\/a>\n\n        <a href=\"https:\/\/urbanista.mx\/magda-la-roma\/\">Magda \u00b7 Roma Sur<\/a>\n\n        <a href=\"https:\/\/urbanista.mx\/josefa-reforma\/\">Josefa \u00b7 Reforma<\/a>\n\n        <a href=\"https:\/\/urbanista.mx\/matilde-juarez\/\">Matilde \u00b7 Ju\u00e1rez<\/a>\n\n        <a href=\"https:\/\/urbanista.mx\/natalia-doctores\/\">Natalia \u00b7 Doctores<\/a>\n\n        <a href=\"https:\/\/urbanista.mx\/joaquina-del-valle\/\">Joaquina \u00b7 Del Valle<\/a>\n\n        <a href=\"https:\/\/urbanista.mx\/leona-condesa\/\">Leona \u00b7 Condesa<\/a>\n\n      <\/div>\n\n    <\/div>\n\n    <div class=\"footer-col\">\n\n      <h4>Contacto<\/h4>\n\n      <a href=\"https:\/\/urbanista.mx\/form-agenda\/\" style=\"color:var(--terra-light);font-weight:600;\">Agenda tu tour<\/a>\n\n      <a href=\"mailto:hola@urbanista.mx\">hola@urbanista.mx<\/a>\n\n      <a href=\"https:\/\/urbanista.mx\/preguntas-frecuentes\/\">FAQ<\/a>\n\n      <div class=\"footer-social\">\n\n        <a href=\"https:\/\/www.facebook.com\/urbanistacdmx\" target=\"_blank\" aria-label=\"Facebook\" rel=\"noopener\">\n\n          <svg viewBox=\"0 0 24 24\"><path d=\"M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z\"><\/path><\/svg>\n\n        <\/a>\n\n        <a href=\"https:\/\/www.instagram.com\/urbanista.mx\/\" target=\"_blank\" aria-label=\"Instagram\">\n\n          <svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"0\"><\/rect><path d=\"M16 3.13a6 6 0 016 6V15a6 6 0 01-6 6H9a6 6 0 01-6-6V9a6 6 0 016-6h7m-.5 2H9a4 4 0 00-4 4v6a4 4 0 004 4h6a4 4 0 004-4V9a4 4 0 00-4-4zm2.75-.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zM12 8a4 4 0 110 8 4 4 0 010-8zm0 1.5a2.5 2.5 0 100 5 2.5 2.5 0 000-5z\"><\/path><\/svg>\n\n        <\/a>\n\n        <a href=\"https:\/\/www.youtube.com\/channel\/UCbfMvTZPKdMWXTYfQWR8uTA\" target=\"_blank\" aria-label=\"YouTube\" rel=\"noopener\">\n\n          <svg viewBox=\"0 0 24 24\"><path d=\"M22.54 6.42a2.78 2.78 0 00-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 00-1.94 2A29 29 0 001 11.75a29 29 0 00.46 5.33A2.78 2.78 0 003.4 19.1c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 001.94-2 29 29 0 00.46-5.33 29 29 0 00-.46-5.35zM9.75 15.02V8.48l5.75 3.27-5.75 3.27z\"><\/path><\/svg>\n\n        <\/a>\n\n        <a href=\"https:\/\/www.linkedin.com\/company\/urbanistamx\" target=\"_blank\" aria-label=\"LinkedIn\" rel=\"noopener\">\n\n          <svg viewBox=\"0 0 24 24\"><path d=\"M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2zM4 2a2 2 0 110 4 2 2 0 010-4z\"><\/path><\/svg>\n\n        <\/a>\n\n        <a href=\"https:\/\/www.tiktok.com\/@urbanistamx\" target=\"_blank\" aria-label=\"TikTok\" rel=\"noopener\">\n\n          <svg viewBox=\"0 0 24 24\"><path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-2.88 2.5 2.89 2.89 0 01-2.89-2.89 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1v-3.52a6.37 6.37 0 00-.79-.05A6.34 6.34 0 003.15 15.2a6.34 6.34 0 0010.86-4.43V7.56a8.16 8.16 0 004.76 1.53v-3.4h-.18z\"><\/path><\/svg>\n\n        <\/a>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n  <div class=\"footer-bottom-row\" style=\"display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding-top:16px;margin-top:16px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:rgba(255,255,255,.25);\">\n\n    <div class=\"footer-legal\">\n\n      <a href=\"https:\/\/urbanista.mx\/aviso-de-privacidad\/\">Aviso de Privacidad<\/a>\n\n      <span>|<\/span>\n\n      <a href=\"https:\/\/urbanista.mx\/terminos-y-condiciones\/\">T\u00e9rminos y Condiciones<\/a>\n\n    <\/div>\n\n    <a href=\"https:\/\/www.google.com\/partners\/agency?id=1048257194\" target=\"_blank\" class=\"footer-google-badge\" rel=\"noopener\">\n\n      <img loading=\"lazy\" src=\"https:\/\/www.gstatic.com\/partners\/badge\/images\/2025\/PartnerBadgeClickable.svg\" alt=\"Google Partner\" loading=\"lazy\" decoding=\"async\" style=\"height:36px;width:auto;\" width=\"120\" height=\"36\">\n\n    <\/a>\n\n    <span>Copyright \u00a9 Urbanista 2026<\/span>\n\n  <\/div>\n\n<\/footer>\n\n    <!-- ===== WHATSAPP FLOAT BUTTON ===== -->\n\n    <a href=\"#\" class=\"wa-float\" id=\"waFloatBtn\" aria-label=\"Cont\u00e1ctanos por WhatsApp\">\n\n        <svg viewBox=\"0 0 24 24\"><path d=\"M17.6 6.32A7.850 7.850 0 0012 4a7.94 7.94 0 00-6.9 11.890L4 20l4.2-1.1a7.93 7.93 0 003.8.97h.004A7.94 7.94 0 0017.6 6.32zM12 18.5a6.6 6.6 0 01-3.36-.92l-.24-.14-2.5.65.67-2.43-.16-.25A6.59 6.59 0 1112 18.5zm3.62-4.94c-.2-.1-1.17-.58-1.35-.64s-.31-.1-.44.1-.51.64-.62.77-.23.15-.42.05a5.4 5.4 0 01-1.6-1 6 6 0 01-1.1-1.37c-.12-.2 0-.31.09-.41s.2-.23.3-.35a1.32 1.32 0 00.2-.34.37.37 0 000-.35c0-.1-.44-1.06-.6-1.45s-.32-.33-.44-.34h-.38a.72.72 0 00-.52.24 2.18 2.18 0 00-.68 1.62 3.79 3.79 0 00.8 2 8.7 8.7 0 003.33 2.94 11.2 11.2 0 001.11.41 2.67 2.67 0 001.23.08 2 2 0 001.31-.93 1.64 1.64 0 00.11-.92c-.05-.08-.18-.13-.38-.23z\"><\/path><\/svg>\n\n    <\/a>\n\n    <!-- ===== WHATSAPP POPUP FORM ===== -->\n\n    <div class=\"wa-popup-overlay\" id=\"waPopupOverlay\"><\/div>\n\n    <div class=\"wa-popup\" id=\"waPopup\">\n\n        <div class=\"wa-popup-header\">\n\n            <span class=\"wa-popup-title\">Cont\u00e1ctanos por WhatsApp<\/span>\n\n            <button class=\"wa-popup-close\" id=\"waPopupClose\" aria-label=\"Cerrar\">\n\n                <svg viewBox=\"0 0 24 24\"><path d=\"M18 6L6 18M6 6l12 12\"><\/path><\/svg>\n\n            <\/button>\n\n        <\/div>\n\n        <div class=\"wa-popup-body\">\n\n            <div id=\"waPopupForm\"><\/div>\n\n        <\/div>\n\n    <\/div>\n\n    <div class=\"sidebar-overlay\" id=\"sidebarOverlay\"><\/div>\n\n    <div class=\"sidebar-panel\" id=\"sidebarPanel\">\n\n        <div class=\"sidebar-header\">\n\n            <div class=\"sidebar-title\">Agendar <span>Visita<\/span><\/div><button class=\"sidebar-close\" id=\"sidebarCloseBtn\" aria-label=\"Cerrar panel de agendamiento\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"18\" height=\"18\"><path d=\"M18 6L6 18M6 6l12 12\"><\/path><\/svg><\/button>\n\n        <\/div>\n\n        <div class=\"sidebar-body\">\n\n            <div class=\"sidebar-building-badge\"><span id=\"sidebarBuildingBadge\">DISPONIBLE<\/span><\/div>\n\n            <h3 style=\"font-size:22px;color:var(--white);margin-bottom:8px;\" id=\"sidebarBuildingName\">EDIFICIO<\/h3>\n\n            <p style=\"font-size:13px;color:rgba(255,255,255,.5);margin-bottom:20px;\">D\u00e9janos tus datos y nos comunicaremos contigo para agendar un recorrido.<\/p>\n\n            <div class=\"sidebar-form-container\" id=\"sidebarFormTarget\"><\/div>\n\n        <\/div>\n\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>ConceptoComunidadesExperienciasC\u00f3mo FuncionaAgendar Visita Concepto Comunidades C\u00f3mo Funciona Blog FAQ Alma 390 AGENDA TU TOUR DEPARTAMENTOS EN RENTA EN LA CIUDAD DEM\u00c9XICO PARA QUIENES VALORAN SU<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-22241","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/pages\/22241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/comments?post=22241"}],"version-history":[{"count":473,"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/pages\/22241\/revisions"}],"predecessor-version":[{"id":26421,"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/pages\/22241\/revisions\/26421"}],"wp:attachment":[{"href":"https:\/\/urbanista.mx\/en\/wp-json\/wp\/v2\/media?parent=22241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}