
:root{
  --nieve:#FFFFFF; --hueso:#FBF9F5; --bruma:#F3F0E9; --arena:#EAE5DB;
  --verde:#5FAE2E; --verde-hondo:#2F6B18; --verde-claro:#EDF4E5;
  --tinta:#1E2A22; --humo:rgba(30,42,34,.6); --linea:rgba(30,42,34,.12);
  --rosa:#E4007C; --azul:#2B5FAB; --sol:#F2A007; --jamaica:#C8102E;
  --turquesa:#00A19A; --tejocote:#E8622A; --jacaranda:#7A4E9E;
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Instrument Sans",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --gut:clamp(18px,4.5vw,72px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--hueso);color:var(--tinta);font-family:var(--body);
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.rv{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}*{animation:none!important}}


/* ── barra ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:16px var(--gut);background:transparent;border-bottom:1px solid transparent;color:#fff;
  transition:background .45s ease,color .45s ease,border-color .45s ease,backdrop-filter .45s ease}
.nav.pega{background:rgba(251,249,245,.94);backdrop-filter:blur(14px);border-bottom-color:var(--linea);color:var(--tinta)}
.nav img{transition:filter .45s ease;filter:brightness(0) invert(1)}
.nav.pega img{filter:none}
.nav .liga a{opacity:.78}
.nav.pega .liga a{opacity:.62}
.bolsa{border-color:rgba(255,255,255,.4)}
.nav.pega .bolsa{border-color:var(--linea)}
.marca{display:flex;align-items:center;gap:9px}
.marca img{width:22px;height:22px;opacity:.9}
.marca span{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.2em}
.nav .liga{display:flex;align-items:center;gap:clamp(12px,2vw,26px);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.nav .liga a{opacity:.62}
.nav .liga a:hover{opacity:1}
.bolsa{border:1px solid var(--linea);border-radius:2px;padding:7px 14px;display:inline-flex;gap:7px;align-items:center;opacity:1!important}
.bolsa em{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--humo)}
@media (max-width:820px){.nav .liga a:not(.bolsa){display:none}}

/* ── portada ── */
.hero{position:relative;min-height:92svh;display:grid;align-items:end;overflow:hidden;background:var(--bruma)}
.hero .foto{position:absolute;inset:0}
.hero .foto img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(28,24,20,.28) 0%,rgba(28,24,20,0) 22%,rgba(28,24,20,.4) 48%,rgba(28,24,20,.88) 100%)}
.hero .txt{position:relative;z-index:2;padding:0 var(--gut) clamp(44px,7vh,86px);width:100%;color:#fff}
.hero .txt h1{color:#fff}
.hero .txt h1 em{color:#fff;opacity:.62}
.hero p{color:rgba(255,255,255,.9)}
.hero p strong{color:#fff}
.chip{align-self:flex-start;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(95,174,46,.35);
  background:var(--verde-claro);color:var(--verde-hondo);border-radius:999px;padding:7px 15px;
  font-family:var(--mono);font-size:11px;margin-bottom:22px}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--verde)}
h1{font-family:var(--display);font-weight:800;margin:0;text-transform:uppercase;
  font-size:clamp(32px,5.6vw,68px);line-height:1.0;letter-spacing:-.035em}
h1 em{font-style:normal;color:var(--verde-hondo)}
.hero p strong{color:var(--tinta)}
.hero p{margin:22px 0 0;max-width:44ch;font-size:clamp(15px,1.3vw,17px);color:var(--humo)}
.acciones{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-top:32px}
.susurro{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;color:rgba(255,255,255,.86)}
.btn{display:inline-flex;align-items:center;border:0;cursor:pointer;border-radius:2px;padding:16px 34px;
  font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  background:#fff;color:var(--tinta);transition:background .3s ease,color .3s ease}
.btn:hover{background:var(--tinta);color:#fff}

/* ── secciones ── */
.pad{padding:clamp(56px,7.5vw,110px) var(--gut)}
.ojo{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--verde-hondo);margin:0 0 16px}
h2{font-family:var(--display);font-weight:800;margin:0;text-transform:uppercase;
  font-size:clamp(26px,4.4vw,54px);line-height:.98;letter-spacing:-.03em;text-wrap:balance}
h2 em{font-style:normal;color:var(--verde-hondo)}
.lede strong{color:var(--tinta);font-weight:500}
.lede{font-size:clamp(15px,1.3vw,17px);line-height:1.75;color:var(--humo);max-width:58ch;margin:18px 0 0}

/* ── cajones ── */
.cajones{display:flex;flex-wrap:wrap;gap:clamp(16px,2.4vw,32px);margin:clamp(26px,3.6vw,42px) 0 clamp(22px,3vw,34px)}
.cajon{border:0;background:none;padding:6px 0;cursor:pointer;color:var(--humo);
  font-family:var(--body);font-size:13.5px;letter-spacing:.01em;position:relative;transition:color .25s ease}
.cajon::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--tinta);
  transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.22,.61,.36,1)}
.cajon:hover{color:var(--tinta)}
.cajon.on{color:var(--tinta)}
.cajon.on::after{transform:scaleX(1)}
.etiq{align-self:center;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--humo);margin-right:4px}
.cajon.chico{font-size:12.5px}
.conteo{margin-left:auto;align-self:center;font-family:var(--mono);font-size:11px;color:var(--humo)}

.fuente{margin:clamp(26px,3.4vw,42px) 0 0;font-size:13px;line-height:1.7;color:var(--humo);max-width:78ch;
  border-top:1px solid var(--linea);padding-top:18px}
.fuente em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--verde-hondo)}
.rejilla{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,20px)}
@media (max-width:1100px){.rejilla{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.rejilla{grid-template-columns:repeat(2,1fr)}}
.pz{display:flex;flex-direction:column}
.pz .ph{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--bruma)}
.pz .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.pz:hover .ph img{transform:scale(1.03)}
.pz .t{padding:16px 2px 0;display:flex;flex-direction:column;gap:4px;flex:1}
.pz .don{font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--humo)}
.pz .nm{font-size:15px;font-weight:500;letter-spacing:.01em;line-height:1.25}
.pz .ds{font-size:12.5px;color:var(--humo);line-height:1.55;max-width:34ch}
.pz .pr{display:flex;align-items:baseline;gap:10px;margin-top:auto;padding-top:9px;font-variant-numeric:tabular-nums}
.pz .pr b{font-size:15px;font-weight:600}
.pz .pr s{font-size:12.5px;color:var(--humo);text-decoration-thickness:1px}
.cot{margin-left:auto;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--humo)}

/* ── por estado ── */
.estado-sec{background:var(--nieve);position:relative;overflow:hidden}
.estado-sec::before{content:"";position:absolute;inset:0;opacity:.028;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%232F6B18' stroke-width='2'%3E%3Cpath d='M40 8 L56 24 L40 40 L24 24 Z'/%3E%3Cpath d='M40 40 L56 56 L40 72 L24 56 Z'/%3E%3Ccircle cx='40' cy='40' r='5'/%3E%3Cpath d='M8 40 L24 24 M56 24 L72 40 M8 40 L24 56 M56 56 L72 40'/%3E%3C/g%3E%3C/svg%3E");
  background-size:80px 80px}
.estado-sec > *{position:relative}
.plazas{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:clamp(24px,3.4vw,38px)}
@media (max-width:1100px){.plazas{grid-template-columns:repeat(5,1fr)}}
@media (max-width:700px){.plazas{grid-template-columns:repeat(3,1fr)}}
.pl{cursor:pointer;opacity:.5;transition:opacity .3s ease}
.pl:hover,.pl.on{opacity:1}
.pl .fr{display:block;height:40px;border-radius:2px}
.pl .n{display:block;padding:8px 0 0;font-size:11px;letter-spacing:.02em;line-height:1.25;color:var(--humo)}
.pl.on .n{color:var(--tinta)}

.especiales{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,20px);margin-top:clamp(24px,3.4vw,38px)}
@media (max-width:1100px){.especiales{grid-template-columns:repeat(2,1fr)}}
.esp{display:flex;flex-direction:column}
.esp .ph{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--bruma);position:relative}
.esp .ph img{width:100%;height:100%;object-fit:cover}
.esp .banda{position:absolute;left:0;right:0;bottom:0;height:6px;transition:background .4s ease}
.esp .t{padding:16px 2px 0;display:flex;flex-direction:column;gap:5px}
.esp .nm{font-size:15px;font-weight:500;letter-spacing:.01em}
.esp .ds{font-size:12.5px;color:var(--humo);line-height:1.55}
.esp .pr{margin-top:9px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.esp .pr s{font-size:12px;color:var(--humo);font-weight:400;margin-left:8px}

/* ── el 50% ── */
.mitad{background:var(--bruma);border-radius:4px;padding:clamp(30px,5vw,72px);
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);align-items:center}
@media (max-width:860px){.mitad{grid-template-columns:1fr}}
.precio{font-family:var(--display);font-weight:800;letter-spacing:-.04em;line-height:1;
  font-size:clamp(44px,7.5vw,110px);display:flex;align-items:baseline;gap:.16em;flex-wrap:wrap}
.precio .antes{position:relative;color:var(--humo)}
.precio .antes::after{content:"";position:absolute;left:-2%;top:52%;height:5px;width:0;background:var(--verde);
  border-radius:3px;transition:width .9s cubic-bezier(.22,.61,.36,1) .2s}
.mitad.in .precio .antes::after{width:104%}
.precio .ahora{color:var(--verde-hondo);opacity:0;transform:translateY(12px);
  transition:opacity .6s ease .85s,transform .6s ease .85s}
.mitad.in .precio .ahora{opacity:1;transform:none}
.mitad .nota{font-family:var(--mono);font-size:11.5px;color:var(--humo);margin-top:18px}

/* ── pie ── */
footer{background:var(--nieve);border-top:1px solid var(--linea);padding:clamp(40px,6vw,72px) var(--gut) 32px}
.pie{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between}
.pie .col{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--humo)}
.pie .col b{color:var(--tinta);font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px}
.legal{margin-top:34px;padding-top:18px;border-top:1px solid var(--linea);display:flex;flex-wrap:wrap;
  gap:12px;justify-content:space-between;font-size:11.5px;color:var(--humo)}

/* ── barra de pestañas ── */
.nav .liga a[aria-current="page"]{opacity:1;position:relative}
.nav .liga a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor}
.tope-pag{padding:calc(clamp(56px,7.5vw,110px) + 40px) var(--gut) clamp(26px,3.4vw,44px)}
.tope-pag h1{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.035em;
  font-size:clamp(30px,5.2vw,64px);line-height:.98;margin:0;color:var(--tinta)}
.tope-pag h1 em{font-style:normal;color:var(--verde-hondo)}

/* ── tres puertas del inicio ── */
.puertas{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.8vw,26px);margin-top:clamp(30px,4vw,52px)}
@media (max-width:820px){.puertas{grid-template-columns:1fr}}
.puerta{display:flex;flex-direction:column}
.puerta .ph{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--bruma)}
.puerta .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.puerta:hover .ph img{transform:scale(1.03)}
.puerta .t{padding:16px 2px 0;display:flex;flex-direction:column;gap:5px}
.puerta .nm{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(19px,2.2vw,26px)}
.puerta .ds{font-size:13.5px;color:var(--humo);line-height:1.6}
