/* ===== RESET & TOKENS ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#004589;
  --blue-2:#0a5aa8;
  --blue-3:#00305f;
  --blue-ink:#022545;
  --ink:#13233a;
  --gray:#5b6b7c;
  --soft:#f3f7fc;
  --soft-2:#e9f1fa;
  --line:#e2e9f1;
  --green:#1a9c5b;
  --amber:#e0a23b;
  --white:#ffffff;
  --font:'Poppins',system-ui,-apple-system,sans-serif;
  --maxw:1180px;
  --r:16px;
  --rs:10px;
  --shadow:0 18px 50px -24px rgba(0,69,137,.30);
  --shadow-lg:0 40px 90px -40px rgba(0,48,95,.55);
  --t:.4s cubic-bezier(.2,.7,.2,1);
}
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}
body{font-family:var(--font);color:var(--ink);background:#fff;line-height:1.65;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
section{scroll-margin-top:88px}
h1,h2,h3,h4{font-weight:600;line-height:1.15;color:var(--ink)}
.container{width:min(var(--maxw),92%);margin-inline:auto}
::selection{background:var(--blue);color:#fff}

/* ===== PRELOADER ===== */
.preloader{position:fixed;inset:0;z-index:200;background:var(--blue);display:grid;place-items:center;transition:opacity .6s ease,visibility .6s ease}
.preloader.hide{opacity:0;visibility:hidden}
.preloader__logo{color:#fff;position:relative;display:inline-block;line-height:0}
.preloader__logo .logo__img{height:42px;width:auto}
.preloader__logo::after{content:"";position:absolute;left:0;bottom:-14px;width:0;height:3px;background:rgba(255,255,255,.6);animation:loadbar 1.2s ease forwards}
@keyframes loadbar{to{width:100%}}

/* ===== SCROLL PROGRESS ===== */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:100;background:var(--blue);transform:scaleX(0);transform-origin:0 50%;transition:transform .1s linear}

/* ===== BUTTONS ===== */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--font);font-weight:500;font-size:.88rem;letter-spacing:.01em;padding:.85rem 1.5rem;border:1.5px solid transparent;border-radius:var(--rs);cursor:pointer;transition:var(--t);white-space:nowrap}
.btn svg{width:17px;height:17px}
.btn--blue{background:var(--blue);color:#fff}
.btn--blue:hover{background:var(--blue-3);transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(0,69,137,.6)}
.btn--white{background:#fff;color:var(--blue)}
.btn--white:hover{background:var(--soft);transform:translateY(-2px)}
.btn--light{background:#fff;color:var(--ink);border-color:var(--line)}
.btn--light:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.btn--outline{background:transparent;color:var(--blue);border-color:var(--blue)}
.btn--outline:hover{background:var(--blue);color:#fff}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn--ghost:hover{background:#fff;color:var(--blue)}
.btn--lg{padding:1rem 1.7rem;font-size:.92rem}
.btn--block{width:100%}
.btn--blue::after,.btn--white::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .6s ease;z-index:-1}
.btn--blue:hover::after,.btn--white:hover::after{left:150%}

/* ===== HEADER ===== */
.header{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);box-shadow:0 4px 24px -18px rgba(0,48,95,.5);transition:var(--t)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.9rem 0}
.logo{display:flex;align-items:center;gap:.55rem;color:var(--blue)}
.logo__img{display:block;height:28px;aspect-ratio:811/178;background-color:currentColor;-webkit-mask:url(amura-logo.svg) center/contain no-repeat;mask:url(amura-logo.svg) center/contain no-repeat}
.logo--light{color:#fff}
/* compat: por si quedara el logo antiguo en algún lado */
.logo__mark{width:34px;height:31px;color:var(--blue);flex-shrink:0}
.logo__text{font-size:1.5rem;font-weight:700;letter-spacing:.16em;color:var(--ink);line-height:1}
.logo--light .logo__mark,.logo--light .logo__text{color:#fff}
.nav__list{display:flex;gap:2rem}
.nav__link{color:var(--ink);font-size:.94rem;font-weight:400;position:relative;transition:var(--t)}
.nav__link::after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:2px;background:var(--blue);transition:var(--t)}
.nav__link:hover,.nav__link.is-active{color:var(--blue)}
.nav__link:hover::after,.nav__link.is-active::after{width:100%}
.header__actions{display:flex;align-items:center;gap:.7rem}
.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;z-index:95}
.nav__toggle span{width:26px;height:2px;background:var(--blue);transition:var(--t);transform-origin:center}
.nav__toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__toggle.active span:nth-child(2){opacity:0}
.nav__toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ===== HERO ===== */
.hero{position:relative;background:radial-gradient(120% 90% at 80% 0%,#dcebff00 0,transparent 60%),linear-gradient(180deg,#e7f1fb 0%,#f4f9fe 55%,#ffffff 100%);padding:3.4rem 0 7rem;overflow:hidden}
.hero__inner{display:grid;grid-template-columns:1fr 1.08fr;gap:2.6rem;align-items:center}
.hero__eyebrow{display:flex;align-items:center;gap:.65rem;color:var(--gray);font-size:.92rem;font-weight:400;margin-bottom:1.3rem}
.hero__eyebrow::before{content:"";width:3px;height:18px;background:var(--blue);border-radius:2px}
.hero__title{font-size:clamp(2.1rem,4.3vw,3.35rem);font-weight:700;line-height:1.08;letter-spacing:-.02em;color:var(--ink)}
.hero__title b{color:var(--blue);font-weight:700}
.hero__text{color:var(--gray);font-size:1.08rem;line-height:1.7;font-weight:300;margin:1.3rem 0 1.9rem;max-width:460px}
.hero__actions{display:flex;gap:.9rem;flex-wrap:wrap}
.hero__pills{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.7rem}
.hero__pill{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid var(--line);border-radius:50px;padding:.5rem 1.05rem;font-size:.86rem;color:var(--ink);box-shadow:0 8px 22px -14px rgba(0,48,95,.5)}
.hero__pill svg{color:var(--blue);width:15px;height:15px}
.hero__art{position:relative;aspect-ratio:1/1}
.hero__art img{position:absolute;inset:0;width:100%;height:100%;border-radius:20px;box-shadow:var(--shadow-lg);object-fit:cover;object-position:var(--hero-pos,center);opacity:0;transition:opacity var(--hero-fade,1.2s) ease}
.hero__art img.is-on{opacity:1}
.hero__art-badge{position:absolute;left:-1.2rem;bottom:1.4rem;background:#fff;border-radius:14px;padding:.9rem 1.1rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:.7rem}
.hero__art-badge .n{font-size:1.6rem;font-weight:700;color:var(--blue);line-height:1}
.hero__art-badge .t{font-size:.74rem;color:var(--gray);font-weight:300}

/* ===== PROJECTS ===== */
.projects{position:relative;padding:0 0 5rem;background:#fff}
.projects__panel{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 34px 80px -50px rgba(0,48,95,.55);margin-top:-4.2rem;padding:2.4rem 2.2rem 2.6rem;position:relative;z-index:5}
.projects__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.9rem}
.projects__head h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.projects__all{color:var(--blue);font-weight:500;font-size:.92rem;display:inline-flex;align-items:center;gap:.4rem;transition:var(--t)}
.projects__all:hover{gap:.7rem}
.projects__filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:-.4rem 0 1.5rem}
.pchip{border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-size:.85rem;font-weight:500;padding:.42rem .95rem;border-radius:999px;cursor:pointer;transition:var(--t)}
.pchip:hover{border-color:var(--blue);color:var(--blue)}
.pchip.is-active{background:var(--blue);border-color:var(--blue);color:#fff}
.projects__empty{text-align:center;color:var(--gray);padding:2.5rem 0;font-size:.95rem}
.projects__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.pcard{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;color:var(--ink);transition:var(--t)}
.pcard:hover{box-shadow:var(--shadow);transform:translateY(-5px);border-color:transparent}
.pcard__media{position:relative;aspect-ratio:4/5;overflow:hidden}
.pcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.pcard:hover .pcard__media img{transform:scale(1.07)}
.pcard__veil{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,69,137,.85),rgba(0,48,95,.92));display:grid;place-items:center}
.pcard__veil svg{width:46%;color:rgba(255,255,255,.92)}
.badge{position:absolute;left:.8rem;bottom:.85rem;display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid var(--line);border-radius:50px;padding:.42rem .85rem;font-size:.78rem;font-weight:500;color:var(--ink);box-shadow:0 12px 26px -12px rgba(0,48,95,.45);z-index:3}
.badge .dot{width:8px;height:8px;border-radius:50%}
.badge svg{width:15px;height:15px}
/* Chip del banco financiador (abajo-derecha de la foto) */
.pcard__bank{position:absolute;right:.8rem;top:.85rem;display:inline-flex;align-items:center;gap:.35rem;max-width:66%;background:rgba(255,255,255,.96);border-radius:50px;padding:.3rem .62rem;font-size:.72rem;font-weight:600;color:var(--ink);box-shadow:0 12px 26px -12px rgba(0,48,95,.45);z-index:4}
.pcard__bank img{height:16px;width:auto;max-width:72px;object-fit:contain;display:block}
.pcard__bank span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Etiqueta "En construcción" (reemplaza el estado; elegante con franja de obra sutil) */
.badge--build{background:#fff;border-color:var(--line);color:#9a5b00;font-weight:600;gap:.4rem;padding-left:.95rem;overflow:hidden}
.badge--build::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:repeating-linear-gradient(45deg,#f2b134 0 4px,#1f2937 4px 8px)}
.badge--build svg{width:14px;height:14px;color:#c8791b}
.badge--entregado{color:var(--green)}.badge--entregado .dot{background:var(--green)}
.badge--actual{color:var(--blue)}.badge--actual .dot{background:var(--blue)}
.badge--futuro{color:var(--amber)}.badge--futuro .dot{background:var(--amber)}
.pcard__body{padding:1.5rem 1.25rem 1.3rem;display:flex;flex-direction:column;flex:1}
.pcard__name{font-size:1.25rem;font-weight:600}
.pcard__loc{display:flex;align-items:center;gap:.35rem;color:var(--gray);font-size:.86rem;font-weight:300;margin-top:.35rem}
.pcard__loc svg{color:var(--blue);width:14px;height:14px}
.pcard__addr{display:block;color:var(--gray);font-size:.8rem;font-weight:300;margin-top:.2rem;opacity:.85}
.pcard__stats{display:flex;gap:.7rem;margin:1.1rem 0;padding-top:1.1rem;border-top:1px solid var(--line)}
.pcard__stat{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:var(--gray);font-weight:300;flex:1}
.pcard__stat .ic{width:30px;height:30px;border-radius:8px;background:var(--soft);color:var(--blue);display:grid;place-items:center;flex-shrink:0}
.pcard__stat .ic svg{width:15px;height:15px}
.pcard__stat b{display:block;color:var(--ink);font-weight:600;font-size:.84rem}
.pcard__cta{margin-top:auto;display:inline-flex;align-items:center;justify-content:space-between;color:var(--blue);font-weight:500;font-size:.88rem;transition:var(--t)}
.pcard__cta svg{width:16px;height:16px;transition:var(--t)}
.pcard:hover .pcard__cta svg{transform:translateX(4px)}

/* ===== FEATURES ===== */
.features{padding:0 0 4.5rem;background:#fff}
.features__wrap{background:var(--soft);border-radius:24px;display:grid;grid-template-columns:repeat(4,1fr);padding:2.6rem 1rem}
.feature{text-align:center;padding:.6rem 1.7rem;border-right:1px solid #dbe6f2}
.feature:last-child{border-right:0}
.feature__ic{width:58px;height:58px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;margin:0 auto 1.1rem;box-shadow:0 12px 26px -16px rgba(0,48,95,.6);transition:var(--t)}
.feature:hover .feature__ic{transform:translateY(-4px)}
.feature__ic svg{width:26px;height:26px}
.feature h3{font-size:1.04rem;margin-bottom:.5rem}
.feature p{color:var(--gray);font-size:.86rem;font-weight:300}

/* ===== CTA BAND ===== */
.ctaband{padding:0 0 3.8rem;background:#fff}
.ctaband__wrap{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--blue-3),var(--blue));border-radius:24px;padding:2.6rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;color:#fff}
.ctaband__left{display:flex;align-items:center;gap:1.4rem;position:relative;z-index:2}
.ctaband__logo{width:66px;height:66px;border-radius:50%;border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;color:#fff;flex-shrink:0}
.ctaband__logo svg{height:34px;width:auto}
.ctaband__left h2{color:#fff;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.15}
.ctaband__left p{color:rgba(255,255,255,.85);font-weight:300;font-size:.95rem;margin-top:.4rem;max-width:420px}
.ctaband__actions{display:flex;flex-direction:column;gap:.8rem;position:relative;z-index:2}

/* ===== FOOTER ===== */
.footer{background:var(--blue-ink);color:rgba(255,255,255,.72)}
.footer__top{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:2.2rem;padding:3.4rem 0 2.6rem}
.footer__brand p{margin-top:1rem;font-size:.92rem;font-weight:300;max-width:240px}
.footer__col h4{color:#fff;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.1rem;font-weight:600}
.footer__col ul li{margin-bottom:.6rem;font-size:.92rem;font-weight:300}
.footer__col a{transition:var(--t)}.footer__col a:hover{color:#fff}
.footer__social{display:flex;gap:.6rem}
.footer__social a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:var(--t)}
.footer__social a:hover{background:var(--blue);transform:translateY(-3px)}
.footer__social svg{width:18px;height:18px}
.footer__contact li{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem;font-size:.92rem;font-weight:300}
.footer__contact svg{width:16px;height:16px;color:#7fb3e8;flex-shrink:0}
.footer__bottom{border-top:1px solid rgba(255,255,255,.1);text-align:center;padding:1.3rem 0;font-size:.82rem;opacity:.7;font-weight:300}

/* ===== WHATSAPP & TO-TOP ===== */
.whatsapp{position:fixed;right:1.4rem;bottom:1.4rem;z-index:80;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 12px 30px -8px rgba(37,211,102,.6);transition:var(--t);animation:pulse 2.6s infinite}
.whatsapp:hover{transform:scale(1.08)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
.to-top{position:fixed;left:1.4rem;bottom:1.4rem;z-index:80;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;border:0;font-size:1.2rem;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:var(--t)}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--blue-3)}

/* =====================================================
   PÁGINA DE DETALLE
   ===================================================== */
.detail-loading{padding:9rem 0;text-align:center;color:var(--gray)}
.dhero{min-height:74vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;color:#fff;padding-bottom:3.2rem}
.dhero__inner{position:relative;z-index:2;padding-top:6rem;max-width:840px}
/* Proyectos "Próximamente": la fachada va difuminada (todavía no se revela) */
.dhero--soon{overflow:hidden}
.dhero--soon::before{content:"";position:absolute;inset:-45px;z-index:0;
  background-image:linear-gradient(110deg,rgba(2,37,69,.86),rgba(0,69,137,.55) 60%),var(--dhero-img);
  background-size:cover;background-position:center;filter:blur(16px)}
.crumbs{font-size:.82rem;opacity:.9;margin-bottom:1.2rem;font-weight:300}
.crumbs a:hover{color:#bcd6f0}
.crumbs span{margin:0 .4rem;opacity:.6}
.dhero__badges{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.dhero__status{display:inline-block;background:#fff;color:var(--blue);font-size:.72rem;font-weight:600;letter-spacing:.04em;padding:.4rem .9rem;border-radius:6px}
.dhero__bank{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;font-size:.72rem;font-weight:500;padding:.35rem .7rem;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.dhero__bank img{height:20px;width:auto;max-width:90px;object-fit:contain;background:#fff;border-radius:3px;padding:2px 4px}
.dhero__bank strong{font-weight:700}
.dhero__district{font-size:.84rem;opacity:.9;font-weight:300}
.dhero__title{font-size:clamp(2.2rem,5.2vw,3.8rem);font-weight:700;color:#fff;margin:.2rem 0 .3rem}
.dhero__tagline{font-size:1.1rem;opacity:.92;font-weight:300}
.dhero__quick{display:flex;flex-wrap:wrap;gap:2.2rem;margin-top:2rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.25)}
.dhero__quick div{display:flex;flex-direction:column}
.dhero__quick strong{font-size:1.5rem;font-weight:700;line-height:1}
.dhero__quick span{font-size:.76rem;opacity:.85;margin-top:.3rem;font-weight:300}
.dhero__cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}
.dsection{padding:4.5rem 0}
.dsection--soft{background:var(--soft)}
.doverview{display:grid;grid-template-columns:1.4fr .9fr;gap:3.5rem;align-items:start}
.doverview__text p{color:var(--gray);margin-top:1.1rem;font-weight:300}
.doverview__cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.8rem}
.dsheet{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.8rem;box-shadow:var(--shadow);position:sticky;top:100px}
.dsheet h3{font-size:1.3rem;margin-bottom:1.1rem}
.dsheet ul li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.dsheet ul li:last-child{border-bottom:0}
.dsheet ul li span{color:var(--gray);font-weight:300}
.dsheet ul li strong{font-weight:600}
.section__eyebrow{display:inline-flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;color:var(--blue);font-weight:600;margin-bottom:.9rem}
.section__eyebrow::before{content:"";width:26px;height:2px;background:var(--blue)}
.section__title{font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:700;letter-spacing:-.01em}
.section__head{max-width:720px;margin:0 0 2.5rem}
.section__lead{color:var(--gray);margin-top:.9rem;font-size:1.02rem;font-weight:300}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;grid-auto-rows:220px}
.gallery__item{position:relative;border:0;padding:0;cursor:pointer;overflow:hidden;border-radius:var(--rs);background:none}
.gallery__item:nth-child(1){grid-column:span 2;grid-row:span 2}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.gallery__item:hover img{transform:scale(1.08)}
.gallery__zoom{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,69,137,.4);color:#fff;font-size:1.6rem;opacity:0;transition:var(--t)}
.gallery__item:hover .gallery__zoom{opacity:1}
.amenities{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.amenities li{display:flex;align-items:center;gap:.7rem;padding:1.1rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:var(--rs);font-size:.93rem;font-weight:300;transition:var(--t)}
.amenities li:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}
.amenities svg{color:var(--blue);flex-shrink:0}
.others{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.ocard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:var(--t);display:block}
.ocard:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.ocard__media{aspect-ratio:4/5;overflow:hidden;position:relative}
.ocard__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.ocard__loc{display:inline-flex;align-items:center;gap:.35rem;color:var(--gray);font-size:.85rem;font-weight:300}
.ocard__loc svg{color:var(--blue);width:14px;height:14px}
.ocard:hover .ocard__media img{transform:scale(1.08)}
.ocard__body{padding:1.3rem 1.4rem}
.ocard__body h3{font-size:1.25rem;margin:.2rem 0 .5rem}
.ocard__link{color:var(--blue);font-size:.88rem;font-weight:500}
.lightbox{position:fixed;inset:0;z-index:150;display:none;align-items:center;justify-content:center;background:rgba(2,37,69,.94);padding:2rem}
.lightbox.is-open{display:flex}
.lightbox__img{max-width:90%;max-height:85vh;border-radius:8px;box-shadow:var(--shadow-lg);animation:pop .35s ease}
@keyframes pop{from{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}
.lightbox__close{position:absolute;top:1.4rem;right:1.6rem;background:none;border:0;color:#fff;font-size:2.6rem;cursor:pointer;line-height:1}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.14);border:0;color:#fff;width:52px;height:52px;border-radius:50%;font-size:2rem;cursor:pointer;transition:var(--t)}
.lightbox__nav:hover{background:var(--blue)}
.lightbox__prev{left:1.5rem}.lightbox__next{right:1.5rem}
.lightbox__counter{position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);color:#fff;font-size:.9rem;opacity:.85;font-weight:300}
.highlights{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 2rem;margin-top:1.4rem}
.highlights li{display:flex;gap:.7rem;align-items:flex-start;color:var(--gray);font-weight:300;font-size:.95rem}
.highlights svg{color:var(--blue);flex-shrink:0;margin-top:.2rem}
.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}
.tab{font-family:var(--font);font-size:.9rem;font-weight:500;padding:.6rem 1.3rem;border:1px solid var(--line);background:#fff;border-radius:50px;cursor:pointer;color:var(--gray);transition:var(--t)}
.tab:hover{border-color:var(--blue);color:var(--blue)}
.tab.is-active{background:var(--blue);color:#fff;border-color:var(--blue)}
.tabpanel{display:none}
.tabpanel.is-active{display:block;animation:fade .4s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.tour{position:relative;border-radius:var(--r);overflow:hidden;min-height:420px;display:grid;place-items:center;color:#fff;text-align:center;background-size:cover;background-position:center}
/* Tour 360 embebido (iframe en el mismo cuadro) */
.tour-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-lg);background:var(--soft)}
.tour-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tour-embed__loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:linear-gradient(160deg,#004589,#00305f);color:#fff;font-weight:400;font-size:.95rem}
.tour-embed__spin{width:42px;height:42px;border:3px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:50%;animation:spin 0.9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tour-embed__actions{margin-top:1rem;display:flex;justify-content:flex-end}
/* Disclaimer "Imágenes referenciales" (editable, sutil, al pie de cada imagen) */
.gallery__item,.pcard__media,.ocard__media,.dhero,.hero__art,.tour{position:relative}
.gallery__item::after,.pcard__media::after,.ocard__media::after,.hero__art::after,.tour::after,.dhero::after{
  content:var(--img-disc,"Imágenes referenciales");
  position:absolute;right:.6rem;bottom:.45rem;z-index:2;pointer-events:none;
  color:rgba(255,255,255,.9);font-size:.7rem;font-weight:300;letter-spacing:.02em;
  text-shadow:0 1px 3px rgba(0,0,0,.6)
}
.dhero::after{right:1.1rem;bottom:.7rem;z-index:1}
/* En el inicio el aviso va al lado izquierdo de la imagen: el botón de WhatsApp lo tapaba */
.hero__art::after{right:auto;left:1rem;bottom:.7rem}
/* Bloque "Próximamente" (galería/tour de proyectos futuros) */
.soon-box{aspect-ratio:16/9;min-height:320px;border-radius:var(--r);background:linear-gradient(160deg,#004589,#00305f);color:#fff;display:grid;place-content:center;place-items:center;text-align:center;padding:2rem;box-shadow:var(--shadow-lg)}
.soon-box__a svg{width:66px;color:rgba(255,255,255,.92)}
.soon-box h3{color:#fff;font-size:1.6rem;margin:1rem 0 .4rem;letter-spacing:.02em}
.soon-box p{opacity:.85;font-weight:300;max-width:420px}
@media(max-width:560px){.tour-embed{aspect-ratio:4/3}}
.tour::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(2,37,69,.6),rgba(0,69,137,.55))}
.tour__inner{position:relative;z-index:2;padding:2rem}
.tour__play{width:78px;height:78px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--blue);display:grid;place-items:center;margin:0 auto 1.2rem;font-size:1.6rem;transition:var(--t);animation:pulseW 2.4s infinite}
.tour:hover .tour__play{transform:scale(1.08)}
@keyframes pulseW{0%{box-shadow:0 0 0 0 rgba(255,255,255,.45)}70%{box-shadow:0 0 0 22px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.tour h3{color:#fff;font-size:1.6rem}
.tour p{opacity:.9;font-weight:300;margin-top:.3rem}
.typo__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.typo__card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;transition:var(--t);display:flex;flex-direction:column}
.typo__card.is-hidden{display:none}
.typo__card:hover{box-shadow:var(--shadow);transform:translateY(-5px);border-color:transparent}
.typo__plan{position:relative;background:var(--soft);padding:1.2rem;aspect-ratio:4/3;display:grid;place-items:center}
.typo__plan svg{width:100%;height:100%}
.typo__planlabel{position:absolute;top:.7rem;left:.8rem;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);background:#fff;border:1px solid var(--line);padding:.2rem .55rem;border-radius:5px}
.typo__zoom{position:absolute;top:.7rem;right:.8rem;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--blue);cursor:pointer}
.typo__info{padding:1.3rem 1.4rem;display:flex;flex-direction:column;flex:1}
.typo__code{font-size:1.2rem;font-weight:600}
.typo__attrs{display:flex;gap:1rem;flex-wrap:wrap;color:var(--gray);font-size:.85rem;font-weight:300;margin:.4rem 0 .9rem}
.typo__attrs span{display:inline-flex;align-items:center;gap:.3rem}
.typo__price{color:var(--blue);font-weight:600;font-size:1.05rem}
.typo__price small{display:block;color:var(--gray);font-weight:300;font-size:.74rem}
.typo__btn{margin-top:1.1rem}
.nearby{display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;align-items:start}
.poi-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.poi h4{display:flex;align-items:center;gap:.5rem;font-size:1.02rem;margin-bottom:.6rem}
.poi h4 span{width:30px;height:30px;border-radius:8px;background:var(--soft-2);color:var(--blue);display:grid;place-items:center;font-size:.95rem}
.poi ul li{color:var(--gray);font-weight:300;font-size:.92rem;padding:.2rem 0 .2rem 1rem;position:relative}
.poi ul li::before{content:"";position:absolute;left:0;top:.7rem;width:5px;height:5px;border-radius:50%;background:var(--blue)}
.nearby__maplinks{display:flex;gap:.7rem;margin-top:1.4rem}
.nearby__map{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);height:420px}
.nearby__map iframe{width:100%;height:100%;border:0}
.lead{background:var(--blue);color:#fff}
.lead__inner{display:grid;grid-template-columns:1fr 1.1fr;gap:3rem;align-items:center}
.lead__text .section__eyebrow{color:#bcd6f0}.lead__text .section__eyebrow::before{background:#bcd6f0}
.lead__text .section__title{color:#fff}
.lead__text p{opacity:.9;font-weight:300;margin-top:1rem}
.lead__text ul{margin-top:1.4rem;display:grid;gap:.6rem}
.lead__text ul li{display:flex;gap:.6rem;align-items:center;font-weight:300;opacity:.95}
.lead__form{background:#fff;color:var(--ink);padding:2rem;border-radius:var(--r);box-shadow:var(--shadow-lg)}
.lead__form .field-row3{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.lead__check{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:var(--gray);font-weight:300;margin:.2rem 0 1rem}
.lead__check input{width:18px;height:18px;margin-top:.15rem;accent-color:var(--blue);flex-shrink:0}
.lead__check a{color:var(--blue);text-decoration:underline}
.field{margin-bottom:1.1rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{display:block;font-size:.82rem;font-weight:500;margin-bottom:.4rem;color:var(--ink)}
.field input,.field select,.field textarea{width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--rs);font-family:var(--font);font-size:1rem;font-weight:300;color:var(--ink);background:#fcfdff;transition:var(--t)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(0,69,137,.12)}
.field textarea{resize:vertical}
.form__note{margin-top:1rem;color:#1a7f4b;font-size:.92rem;text-align:center}

/* =====================================================
   EFECTOS (cursor, tilt 3D, spotlight)
   ===================================================== */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:10000;mix-blend-mode:difference;will-change:transform}
.cursor-dot{width:7px;height:7px;background:#fff;margin:-3.5px 0 0 -3.5px}
.cursor-ring{width:38px;height:38px;border:1.6px solid #fff;margin:-19px 0 0 -19px;transition:width .25s,height .25s,margin .25s,background .25s}
.cursor-ring.is-big{width:62px;height:62px;margin:-31px 0 0 -31px;background:rgba(255,255,255,.12)}
.cursor-ring.is-down{width:28px;height:28px;margin:-14px 0 0 -14px}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor .tab{cursor:none}
.has-cursor input,.has-cursor textarea,.has-cursor select{cursor:auto}
@media(max-width:900px){.cursor-dot,.cursor-ring{display:none}}
[data-tilt]{position:relative;transform-style:preserve-3d;transition:transform .4s cubic-bezier(.2,.7,.2,1);will-change:transform}
[data-tilt]::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.3),transparent 45%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:4}
[data-tilt]:hover::after{opacity:1}
.spotlight-sec{position:relative;overflow:hidden}
.spotlight-sec::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(650px circle at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.12),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.spotlight-sec:hover::after{opacity:1}
.ctaband__wrap>*{position:relative;z-index:2}
.lead>.container{position:relative;z-index:2}

/* ===== MAPA DE UBICACIONES ===== */
.locations{padding:0 0 4.5rem;background:#fff}
.locations__wrap{display:grid;grid-template-columns:.85fr 1.6fr;gap:1.4rem}
.locations__list{display:flex;flex-direction:column;gap:.7rem;max-height:480px;overflow:auto;padding-right:.2rem}
.loc{display:flex;align-items:center;gap:.85rem;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.7rem;cursor:pointer;transition:var(--t);font-family:var(--font)}
.loc:hover,.loc.is-active{border-color:var(--blue);box-shadow:var(--shadow);transform:translateY(-2px)}
.loc__img{width:64px;height:64px;border-radius:12px;background-size:cover;background-position:center;flex-shrink:0;position:relative;overflow:hidden}
.loc__meta{display:inline-flex;align-items:center;gap:.3rem}
.loc__depas{margin-top:.1rem}
.loc__chev{color:var(--gray);font-size:1.25rem;font-weight:300;flex-shrink:0;margin-left:.15rem}
/* Tarjeta guía al final de la lista */
.map-guide{display:flex;align-items:center;gap:.85rem;background:var(--soft);border-radius:14px;padding:1rem;margin-top:.1rem}
.map-guide__ic{width:44px;height:44px;border-radius:12px;background:#fff;display:grid;place-items:center;flex-shrink:0}
.map-guide__ic svg{width:20px;height:20px}
.map-guide b{display:block;font-weight:600;font-size:.9rem;color:var(--ink)}
.map-guide span span{font-size:.8rem;color:var(--gray);font-weight:300;line-height:1.4;display:block}
@media(max-width:900px){.map-guide{display:none}}
/* Velo azul con "A" para proyectos "Próximamente" (mapa: lista y popup) */
.mveil{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,69,137,.85),rgba(0,48,95,.92));display:grid;place-items:center}
.mveil svg{width:56%;color:rgba(255,255,255,.92)}
.map-pop__img .mveil svg{width:34%}
.loc__info{display:flex;flex-direction:column;flex:1}
.loc__info b{font-weight:600;font-size:.95rem;color:var(--ink)}
.loc__info span{font-size:.8rem;color:var(--gray);font-weight:300}
.loc__dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}
.locations__map{height:500px;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);position:relative;z-index:1;background:#eef3f9}
.locations__note{margin-top:1rem;text-align:center;color:var(--gray);font-size:.78rem;font-weight:300}

/* Barra de filtros del mapa */
.locations__bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.map-filters{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font);font-size:.85rem;font-weight:400;padding:.5rem 1.05rem;border:1px solid var(--line);background:#fff;border-radius:50px;cursor:pointer;color:var(--gray);transition:var(--t)}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip.is-active{background:var(--blue);color:#fff;border-color:var(--blue)}
.chip__dot{width:9px;height:9px;border-radius:50%}
.map-reset{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font);font-size:.85rem;font-weight:500;padding:.5rem 1.05rem;border:1px solid var(--line);background:#fff;color:var(--blue);border-radius:50px;cursor:pointer;transition:var(--t)}
.map-reset svg{width:15px;height:15px}
.map-reset:hover{background:var(--blue);color:#fff;border-color:var(--blue)}

/* Herramientas: contador + conmutador 2D/3D */
.map-tools{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.map-count{font-size:.78rem;color:var(--gray);font-weight:300;margin:0;white-space:nowrap}
.map-view{display:inline-flex;border:1px solid var(--line);border-radius:50px;overflow:hidden;background:#fff}
.map-view .seg{font-family:var(--font);font-size:.82rem;font-weight:600;padding:.5rem .95rem;border:0;background:#fff;color:var(--gray);cursor:pointer;transition:var(--t)}
.map-view .seg+.seg{border-left:1px solid var(--line)}
.map-view .seg:hover{color:var(--blue)}
.map-view .seg.is-active{background:var(--blue);color:#fff}

/* Estado de carga del mapa */
.map-loading{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;background:linear-gradient(180deg,#f4f8fc,#e7f0fa);color:var(--gray);font-size:.9rem;font-weight:300;transition:opacity .4s ease}
.map-loading.hide{opacity:0;pointer-events:none}
.map-loading__spin{width:38px;height:38px;border-radius:50%;border:3px solid #cfe0f2;border-top-color:var(--blue);animation:mapspin .8s linear infinite}
@keyframes mapspin{to{transform:rotate(360deg)}}

/* Respaldo si el mapa no carga */
.map-fallback{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(180deg,#f4f8fc,#e7f0fa);text-align:center}
.map-fallback__box{max-width:340px;display:flex;flex-direction:column;align-items:center;gap:.6rem;color:var(--blue)}
.map-fallback__box p{color:var(--gray);font-weight:300;font-size:.92rem;margin:.2rem 0 .4rem}

/* Pista de uso sobre el mapa */
.map-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:4;background:rgba(2,37,69,.86);color:#fff;font-size:.78rem;font-weight:300;padding:.5rem 1rem;border-radius:50px;box-shadow:0 10px 24px -12px rgba(0,48,95,.7);max-width:90%;text-align:center;backdrop-filter:blur(4px);transition:opacity .5s ease,transform .5s ease;pointer-events:none}
.map-hint.hide{opacity:0;transform:translateX(-50%) translateY(8px)}

/* Estado vacío de un filtro (sin proyectos) */
.locations__map.is-empty::after{content:"No hay proyectos en esta categoría. Pronto sumaremos más.";position:absolute;inset:auto 0 0;z-index:4;margin:auto;top:50%;transform:translateY(-50%);text-align:center;color:var(--gray);font-size:.9rem;padding:0 2rem;pointer-events:none}

/* Insignia de estado en la lista lateral */
.loc__badge{display:inline-flex;align-items:center;gap:.32rem;font-size:.7rem;font-weight:600;white-space:nowrap;flex-shrink:0}

/* Popup */
.map-pop__img{height:120px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.map-pop__body{padding:.9rem 1rem 1rem}
.map-pop__badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}
.map-pop__badge .dot{width:8px;height:8px;border-radius:50%}
.map-pop__body h4{font-size:1.1rem;margin:.1rem 0;color:var(--ink)}
.map-pop__body p{font-size:.84rem;color:var(--gray);font-weight:300;margin:0;line-height:1.5}
.map-pop__meta{margin-top:.15rem!important}
.map-pop__link{display:inline-block;margin-top:.7rem;color:var(--blue);font-weight:600;font-size:.86rem}

@media(max-width:900px){
  .locations__wrap{grid-template-columns:1fr}
  .locations__list{flex-direction:row;overflow-x:auto;max-height:none;padding-bottom:.4rem}
  .loc{min-width:230px}
  .locations__map{height:400px}
}

/* ===== MapLibre 3D: pines, popup, controles ===== */
.maplibregl-canvas{outline:none}
.maplibregl-ctrl-attrib{font-size:.62rem;background:rgba(255,255,255,.72)!important}
.maplibregl-ctrl-group{border:0!important;border-radius:12px!important;overflow:hidden;box-shadow:0 10px 24px -12px rgba(0,48,95,.5)!important}
.maplibregl-ctrl-group button{width:38px;height:38px}
.maplibregl-ctrl-group button+button{border-top:1px solid var(--line)}

/* Pin con la FOTO del proyecto + etiqueta blanca con nombre y estado */
.bpin{position:relative;cursor:pointer;width:0;height:0}
.bpin:focus-visible{outline:none}
.bpin:focus-visible .bpin__card{outline:3px solid var(--blue);outline-offset:2px}
.bpin__card{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);width:54px;height:54px;border-radius:14px;background:#0d3a66;padding:3px;box-shadow:0 12px 24px -8px rgba(2,37,69,.65);transition:transform .2s;overflow:hidden}
.bpin__card img{width:100%;height:100%;object-fit:cover;border-radius:11px;display:block}
.bpin__card .mveil{border-radius:11px}
.bpin__card .mveil svg{width:48%}
.bpin__tip{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);width:0;height:0;border:8px solid transparent;border-bottom:0;border-top-width:12px;border-top-style:solid;filter:drop-shadow(0 3px 3px rgba(2,37,69,.3))}
.bpin__gdot{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:12px;height:12px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 4px 10px -2px rgba(2,37,69,.55)}
.bpin__label{position:absolute;left:34px;bottom:30px;background:#fff;border-radius:10px;padding:.42rem .8rem;white-space:nowrap;box-shadow:0 10px 22px -10px rgba(0,48,95,.5);pointer-events:none;z-index:2}
.bpin__label b{display:block;font-weight:600;font-size:.78rem;color:var(--ink);line-height:1.25}
.bpin__st{display:block;font-size:.7rem;font-weight:500;line-height:1.25}
.bpin:hover,.bpin.is-active{z-index:8}
.bpin:hover .bpin__card,.bpin.is-active .bpin__card{transform:translateX(-50%) scale(1.07)}
/* Halo pulsante bajo el pin seleccionado */
.bpin.is-active::before{content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;background:var(--c,#004589);opacity:.3;animation:pinPulse 1.7s ease-out infinite;pointer-events:none}
@keyframes pinPulse{0%{transform:translateX(-50%) scale(.5);opacity:.4}100%{transform:translateX(-50%) scale(2.2);opacity:0}}

/* Tarjeta flotante del proyecto seleccionado (sobre el mapa) */
.map-card{position:absolute;right:14px;bottom:14px;z-index:9;width:min(300px,calc(100% - 28px));background:#fff;border-radius:18px;box-shadow:0 24px 48px -18px rgba(2,37,69,.45);padding:1rem;animation:cardUp .3s ease}
@keyframes cardUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.map-card__x{position:absolute;right:.7rem;top:.6rem;background:none;border:0;color:var(--gray);font-size:1rem;cursor:pointer;padding:.2rem;line-height:1}
.map-card__x:hover{color:var(--ink)}
.map-card__top{display:flex;gap:.85rem;margin-bottom:.9rem}
.map-card__img{width:92px;height:104px;border-radius:12px;background-size:cover;background-position:center;flex-shrink:0;position:relative;overflow:hidden}
.map-card__info{display:flex;flex-direction:column;gap:.28rem;padding-top:.15rem;min-width:0}
.map-card__info h4{font-size:1.05rem;font-weight:600;color:var(--ink);line-height:1.2;padding-right:1.2rem}
.map-card__st{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600}
.map-card__st .dot{width:8px;height:8px;border-radius:50%}
.map-card__meta{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--gray);font-weight:300}
.map-card__btn{width:100%;justify-content:center;font-size:.88rem}
.map-card__btn+.map-card__btn{margin-top:.55rem}

.amura-pop .maplibregl-popup-content{padding:0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg);font-family:var(--font)}
.amura-pop .maplibregl-popup-close-button{font-size:1.3rem;color:#fff;right:6px;top:2px;z-index:3;width:24px;height:24px}
.amura-pop .maplibregl-popup-tip{display:none}

/* ===== PÁGINA GENÉRICA (contenido tipo artículo) ===== */
.page-body{max-width:760px;margin-inline:auto;color:var(--ink);font-weight:300;line-height:1.8}
.page-body h2{font-size:1.5rem;margin:2rem 0 .8rem;font-weight:600}
.page-body h3{font-size:1.2rem;margin:1.6rem 0 .6rem;font-weight:600}
.page-body p{margin:1rem 0;color:var(--gray)}
.page-body ul,.page-body ol{margin:1rem 0 1rem 1.4rem;color:var(--gray)}
.page-body li{margin:.4rem 0}
.page-body a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.page-body img{max-width:100%;border-radius:var(--r);margin:1.4rem 0}
.page-body blockquote{border-left:3px solid var(--blue);background:var(--soft);padding:1rem 1.3rem;border-radius:8px;margin:1.4rem 0}
.page-body strong{color:var(--ink);font-weight:600}

/* ===== REVEAL (progressive enhancement: solo se oculta si hay JS) ===== */
.reveal{transition:opacity .7s ease,transform .7s ease}
.js .reveal{opacity:0;transform:translateY(26px)}
.reveal.in{opacity:1;transform:none}

/* ===== RESPONSIVE ===== */
@media(max-width:980px){
  .doverview{grid-template-columns:1fr;gap:2.5rem}
  .dsheet{position:static}
  .dlocation{grid-template-columns:1fr;gap:2rem}
  .amenities{grid-template-columns:repeat(2,1fr)}
  .typo__grid{grid-template-columns:1fr 1fr}
  .nearby{grid-template-columns:1fr;gap:2rem}
  .lead__inner{grid-template-columns:1fr;gap:2.2rem}
  .highlights{grid-template-columns:1fr}
}
@media(max-width:900px){
  .nav{position:fixed;inset:0 0 0 auto;width:min(82%,330px);background:#fff;flex-direction:column;justify-content:center;transform:translateX(100%);transition:var(--t);z-index:92;padding:2rem;box-shadow:-20px 0 60px -30px rgba(0,48,95,.5)}
  .nav.open{transform:translateX(0)}
  .nav__list{flex-direction:column;gap:1.7rem;text-align:center}
  .nav__toggle{display:flex}
  .header__cta{display:none}
  .hero{padding:2.5rem 0 5.5rem}
  .hero__inner{grid-template-columns:1fr;gap:2.2rem}
  .hero__art{order:-1}
  .hero__text{max-width:none}
  .projects__panel{margin-top:1.5rem}
  .projects__grid{grid-template-columns:1fr 1fr}
  .features__wrap{grid-template-columns:1fr 1fr;gap:1.6rem;padding:2rem 1.4rem}
  .feature{border-right:0;padding:1rem}
  .ctaband__wrap{grid-template-columns:1fr;gap:1.6rem}
  .ctaband__actions{flex-direction:row;flex-wrap:wrap}
  .footer__top{grid-template-columns:1fr 1fr;gap:2rem}
  .others{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}
  .gallery__item:nth-child(1){grid-column:span 2}
}
@media(max-width:560px){
  .projects__grid{grid-template-columns:1fr}
  .features__wrap{grid-template-columns:1fr}
  .footer__top{grid-template-columns:1fr}
  .ctaband__actions{flex-direction:column}
  .ctaband__actions .btn{width:100%}
  .field-row,.lead__form .field-row3{grid-template-columns:1fr}
  .amenities,.typo__grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr;grid-auto-rows:200px}
  .gallery__item:nth-child(1){grid-column:span 1;grid-row:span 1}
  .hero__art-badge{left:.6rem}
}

/* ===== HERO: franja de confianza ===== */
.hero__stats{display:flex;margin-top:2rem;background:#fff;border-radius:18px;box-shadow:0 18px 40px -22px rgba(0,48,95,.35);padding:1.15rem .4rem;max-width:560px}
.hero__stat{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 .9rem}
.hero__stat+.hero__stat{border-left:1px solid var(--line)}
.hero__stat-ic{width:40px;height:40px;border-radius:50%;background:var(--soft);color:var(--blue);display:grid;place-items:center;margin-bottom:.5rem}
.hero__stat-ic svg{width:19px;height:19px}
.hero__stat b{font-size:1.5rem;font-weight:700;color:var(--blue);line-height:1}
.hero__stat-lb{font-size:.66rem;color:var(--gray);font-weight:400;margin-top:.35rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.45}
/* Imagen del hero a sangre completa con curva orgánica (escritorio) */
/* Franja de datos compacta en celulares chicos */
@media(max-width:560px){
  .hero__stats{padding:.9rem .2rem}
  .hero__stat{padding:0 .35rem}
  .hero__stat-ic{width:34px;height:34px;margin-bottom:.4rem}
  .hero__stat-ic svg{width:16px;height:16px}
  .hero__stat b{font-size:1.25rem}
  .hero__stat-lb{font-size:.58rem;letter-spacing:.03em}
}
@media(min-width:901px){
  .hero{padding:0}
  .hero__inner{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:min(72vh,530px);padding:2.2rem 0 2.4rem;position:static;gap:0}
  .hero__copy{width:100%;max-width:min(520px,45vw);position:relative;z-index:2}
  .hero__eyebrow{margin-bottom:.9rem}
  .hero__title{font-size:clamp(1.85rem,3.2vw,2.6rem)}
  .hero__text{font-size:1rem;margin:.9rem 0 1.3rem}
  .hero__stats{margin-top:1.2rem;max-width:500px;padding:.9rem .4rem}
  .hero__art{position:absolute;top:0;right:0;bottom:0;width:50%;z-index:1;aspect-ratio:auto}
  .hero__art img{border-radius:min(22vw,340px) 0 0 0;box-shadow:none}
  /* El panel arranca al ras del hero: ni se superpone a la imagen ni deja franja blanca */
  .projects__panel{margin-top:0}
  /* La imagen del hero no "entra" animada: al desplazarse dejaba una franja blanca abajo */
  .js .hero__art.reveal{opacity:1;transform:none}
}

/* ===== FOCO VISIBLE (accesibilidad por teclado) ===== */
a:focus-visible,button:focus-visible,.chip:focus-visible,.tab:focus-visible,.loc:focus-visible,.seg:focus-visible,.nav__link:focus-visible,.nav__toggle:focus-visible,.gallery__item:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:5px}
.lead__form a:focus-visible,.footer a:focus-visible{outline-color:#bcd6f0}

/* ===== CONTRASTE DE INSIGNIAS (texto legible, punto vivo) ===== */
.badge--entregado{color:#157a47}
.badge--futuro{color:#9a6a12}
.map-pop__badge,.loc__badge{color:var(--ink)!important}

/* ===== PIE: enlaces legales ===== */
.footer__legal-links{margin-top:.5rem;font-size:.8rem}
.footer__bottom a{color:rgba(255,255,255,.82);text-decoration:underline;text-underline-offset:2px}
.footer__bottom a:hover{color:#fff}

/* ===== MENÚ MÓVIL + LISTA DEL MAPA (afinado táctil) ===== */
@media(max-width:900px){
  .nav{visibility:hidden}
  .nav.open{visibility:visible}
  .nav__toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center}
  .locations__list{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;gap:.6rem}
  .loc{scroll-snap-align:start}
  .map-tools{width:100%;justify-content:space-between}
}

/* ===== RESPONSIVE · AJUSTES FINOS MULTIPLATAFORMA (auditoría) ===== */
/* Menú móvil desde 1024px (evita que el menú se corte en tablets/laptops chicas) */
@media(max-width:1024px){
  .nav{position:fixed;inset:0 0 0 auto;width:min(84%,330px);background:#fff;flex-direction:column;justify-content:center;transform:translateX(100%);transition:var(--t);z-index:92;padding:2rem;box-shadow:-20px 0 60px -30px rgba(0,48,95,.5);visibility:hidden}
  .nav.open{transform:translateX(0);visibility:visible}
  .nav__list{flex-direction:column;gap:1.7rem;text-align:center}
  .nav__toggle{display:flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}
  .header__cta{display:none}
  .chip,.map-reset,.map-view .seg{min-height:44px;display:inline-flex;align-items:center;padding-top:.6rem;padding-bottom:.6rem}
}
/* Fondo oscuro detrás del menú móvil (se muestra desde JS) */
.nav-scrim{position:fixed;inset:0;background:rgba(2,37,69,.45);z-index:91;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}
.nav-scrim.show{opacity:1;visibility:visible}
/* Palabras largas escritas en el panel no rompen el diseño */
h1,h2,h3,h4,p,.pcard__name,.hero__title,.loc__info b,.bpin__label b{overflow-wrap:break-word}
/* Redes del pie con área táctil mayor */
.footer__social a{width:44px;height:44px}
.nearby__maplinks{flex-wrap:wrap}
/* Ajustes para celulares chicos */
@media(max-width:560px){
  .ctaband__wrap{padding:1.8rem 1.3rem}
  .ctaband__left{flex-direction:column;align-items:flex-start;gap:.9rem}
  .ctaband__actions .btn{white-space:normal;text-align:center}
  .nearby__maplinks .btn{flex:1 1 100%}
  .poi-grid{grid-template-columns:1fr}
  .nearby__map{height:300px}
  .dsection{padding:3rem 0}
  .dhero__quick{gap:1rem 1.6rem}
  .dhero__quick strong{font-size:1.25rem}
  .projects__panel{padding:1.4rem 1rem 1.6rem;border-radius:18px}
  .map-count{white-space:normal;flex:1 1 100%;order:3;text-align:center;margin-top:.2rem}
  .map-tools{justify-content:center;gap:.5rem}
  .footer__bottom{padding-bottom:5rem}
}

/* ===== REDUCED MOTION ===== */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ===== MODAL DE PRELANZAMIENTO ("Próximamente") ===== */
.smodal{position:fixed;inset:0;z-index:160;background:rgba(2,37,69,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:1.2rem;animation:smFade .25s ease}
@keyframes smFade{from{opacity:0}to{opacity:1}}
.smodal__box{position:relative;width:min(430px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:1.4rem 1.5rem 1.2rem;box-shadow:0 40px 90px -35px rgba(2,37,69,.7);animation:smUp .3s cubic-bezier(.2,.7,.2,1)}
@keyframes smUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.smodal__x{position:absolute;right:1rem;top:.9rem;background:none;border:0;font-size:1.1rem;color:var(--gray);cursor:pointer;line-height:1;padding:.3rem}
.smodal__x:hover{color:var(--ink)}
.smodal__head{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:1rem}
.smodal__img{width:78px;height:78px;border-radius:13px;background-size:cover;background-position:center;flex-shrink:0;position:relative;overflow:hidden}
.smodal__img .mveil{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,69,137,.85),rgba(0,48,95,.92));display:grid;place-items:center}
.smodal__img .mveil svg{width:52%;color:rgba(255,255,255,.95)}
.smodal__meta{display:flex;flex-direction:column;gap:.3rem;padding-top:.35rem;min-width:0}
.smodal__meta>b{font-size:1.15rem;font-weight:600;color:var(--ink);line-height:1.15}
.smodal__loc{display:inline-flex;align-items:center;gap:.3rem;font-size:.83rem;color:var(--gray);font-weight:300}
.smodal__loc svg{color:var(--blue);width:14px;height:14px}
.smodal__addr{font-size:.79rem;color:var(--gray);font-weight:300}
.smodal__badge{position:static;margin-top:.35rem;font-size:.7rem;padding:.3rem .6rem;align-self:flex-start;box-shadow:none}
.smodal__title{font-size:1.15rem;font-weight:600;line-height:1.3;color:var(--ink);margin-bottom:.45rem}
.smodal__title b{color:var(--blue);font-weight:600}
.smodal__text{color:var(--gray);font-weight:300;font-size:.85rem;line-height:1.55;margin-bottom:.9rem}
.smodal__form label{display:block;font-size:.78rem;font-weight:500;color:var(--ink);margin:.6rem 0 .25rem}
.smodal__form input{width:100%;font-family:var(--font);font-size:.88rem;font-weight:300;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px;padding:.62rem .8rem;transition:var(--t)}
.smodal__form input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,69,137,.12)}
.smodal__form input:user-invalid{border-color:#d14343}
.smodal__send{margin-top:1rem;padding:.8rem;font-size:.88rem}
.smodal__later{display:block;width:100%;margin-top:.45rem;background:none;border:0;font-family:var(--font);font-size:.9rem;color:var(--gray);cursor:pointer;padding:.5rem}
.smodal__later:hover{color:var(--ink)}
.smodal__note{margin-top:.7rem;background:var(--soft);border-radius:10px;padding:.6rem .8rem;font-size:.76rem;color:var(--gray);font-weight:300;text-align:center}
.smodal__ok{text-align:center;color:var(--ink);font-weight:500;padding:1.2rem .5rem .8rem;font-size:.95rem}
@media(max-width:560px){
  .smodal__box{padding:1.5rem 1.2rem 1.3rem;border-radius:18px}
  .smodal__head{gap:.9rem}
  .smodal__img{width:86px;height:86px;border-radius:13px}
  .smodal__meta>b{font-size:1.2rem}
  .smodal__title{font-size:1.25rem}
}
