/* ==========================================================================
   LOS PORTONES — Design tokens
   Paleta inspirada en el terreno real: quebrada nativa, tierra de secano,
   pasto seco de verano y contornos topográficos (tal como aparecen en los
   KML de mensura). Evitar el "cliché IA" cream+terracota: aquí el acento
   es un rojo-arcilla más apagado (adobe), no el naranja cálido típico.
   ========================================================================== */

:root{
  /* Color — paleta oficial entregada (café, naranjo, verde azulado, arena).
     El café (#613D2A) sigue siendo el color de marca de los logos. */
  --ink:        #24170F; /* café muy oscuro, casi negro — texto principal */
  --brand:      #613D2A; /* café de marca (logos) */
  --brand-dark: #4A2E20;
  --sand:       #EDE6D8; /* arena / tierra clara del secano */
  --sand-2:     #E2D9C7; /* arena, un tono más oscuro (bordes, cards) */
  --sage:       #355B5A; /* verde azulado de marca — sitios "disponible" */
  --sage-dark:  #24403F; /* variante oscura del verde azulado — texto secundario, fondos oscuros */
  --clay:       #BC5716; /* naranjo de marca — acento / CTA / precio */
  --sky:        #6E8B96; /* agua de la quebrada */
  --gold:       #C99E67; /* arena/tostado de marca — sitios "reservado" */
  --paper:      #FBF9F4; /* fondo de fichas / tarjetas claras */
  --line:       rgba(36,23,15,0.14);

  /* Type */
  --f-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --f-body:    "Work Sans", "Inter", system-ui, -apple-system, sans-serif;
  --f-mono:    "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;

  /* Scale */
  --step-0: clamp(1rem, 0.95rem + 0.2vw, 1.05rem);
  --step-1: clamp(1.2rem, 1.1rem + 0.4vw, 1.4rem);
  --step-2: clamp(1.6rem, 1.4rem + 0.8vw, 2.1rem);
  --step-3: clamp(2.2rem, 1.8rem + 1.8vw, 3.4rem);
  --step-4: clamp(3rem, 2.2rem + 3.4vw, 5.2rem);

  --radius: 3px;
  --maxw: 1200px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--sand);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:var(--step-0);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{
  font-family:var(--f-display);
  font-weight:600;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
h1{ font-size:var(--step-4); line-height:1.02; }
h2{ font-size:var(--step-3); line-height:1.05; }
h3{ font-size:var(--step-1); }
p{ margin:0 0 1em; max-width:38em; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem); }
.eyebrow{
  font-family:var(--f-mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sage-dark);
  display:inline-flex;
  align-items:center;
  gap:.5em;
  margin-bottom:.9em;
}
.eyebrow::before{ content:""; width:1.4em; height:1px; background:var(--clay); display:inline-block; }

:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(237,230,216,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:1rem; padding-bottom:1rem;
}
.logo{
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--f-display); font-size:1.15rem; font-weight:600;
}
.logo img{ height:46px; width:auto; }
@media (max-width:760px){ .logo img{ height:38px; } }
.logo .fallback-mark{
  width:34px;height:34px;border-radius:50%;
  background:var(--sage-dark);color:var(--sand);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-size:1rem;
}
nav.primary-nav ul{ display:flex; gap:1.6rem; list-style:none; margin:0; padding:0; }
nav.primary-nav a{
  font-family:var(--f-mono); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;
  position:relative; padding:.25rem 0;
}
nav.primary-nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1px; width:0%;
  background:var(--clay); transition:width .2s ease;
}
nav.primary-nav a:hover::after, nav.primary-nav a[aria-current="page"]::after{ width:100%; }
.nav-toggle{ display:none; }

@media (max-width: 760px){
  nav.primary-nav{
    position:absolute; left:0; right:0; top:100%;
    height:calc(100vh - 64px); height:calc(100dvh - 64px);
    background:rgba(237,230,216,0.94);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-top:1px solid var(--line);
    padding:2rem 1.5rem;
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  }
  nav.primary-nav[data-open="true"]{
    opacity:1; visibility:visible; transform:none;
    transition:opacity .2s ease, transform .2s ease;
  }
  nav.primary-nav ul{ flex-direction:column; gap:1.6rem; }
  nav.primary-nav a{ font-size:.95rem; color:var(--ink); }
  .nav-toggle{
    display:inline-flex; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:.4rem;
  }
  .nav-toggle span{ width:22px; height:2px; background:var(--ink); display:block; }
}

/* ---------- Hero (Home) ---------- */
.hero{
  position:relative;
  min-height:min(88vh,720px);
  display:flex; align-items:flex-end;
  overflow:hidden;
  background:var(--sage-dark);
}
.hero__image{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover;
}
.hero__contours{
  position:absolute; inset:0; width:100%; height:100%;
  opacity:.5; mix-blend-mode:soft-light; pointer-events:none;
}
.hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(27,36,32,0.05) 0%, rgba(27,36,32,0.85) 92%);
}
.hero__content{ position:relative; z-index:2; color:var(--sand); padding-top:4rem; padding-bottom:3.2rem; }
.hero__content h1{ color:var(--sand); max-width:16ch; }
.hero__logo-heading{ margin:0 0 .5em; max-width:22ch; }
.hero__logo-heading img{ width:100%; max-width:480px; height:auto; display:block; }
.hero__content p{ color:var(--sand-2); max-width:46ch; font-size:1.1rem; }
.hero__map-note{
  font-family:var(--f-mono); font-size:.75rem; color:var(--sand-2); opacity:.8;
  letter-spacing:.05em;
}

/* ---------- Sections ---------- */
section{ padding:clamp(3rem,7vw,6rem) 0; }
.section-alt{ background:var(--sand-2); }
.lede{ font-size:1.15rem; max-width:46ch; }

/* Two-project intro cards */
.project-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1.75rem; margin-top:2.5rem;
}
@media (max-width:820px){ .project-grid{ grid-template-columns:1fr; } }
.project-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
}
.project-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -20px rgba(27,36,32,0.35); }
.project-card__media{ aspect-ratio:4/3; background:var(--sand-2); position:relative; overflow:hidden; }
.project-card__media img{ width:100%; height:100%; object-fit:cover; }
.project-card__media--logo{
  background:var(--paper); display:flex; align-items:center; justify-content:center; padding:1.5rem;
}
.project-card__media--logo img{ width:auto; height:auto; max-width:78%; max-height:78%; object-fit:contain; }
.project-card__badge{
  position:absolute; top:.9rem; left:.9rem;
  background:var(--ink); color:var(--sand);
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.3em .6em; border-radius:2px;
}
.project-card__body{ padding:1.6rem 1.6rem 1.9rem; flex:1; display:flex; flex-direction:column; }
.project-card__body h3{ margin-bottom:.35rem; }
.project-card__tag{ font-family:var(--f-mono); font-size:.72rem; color:var(--sage-dark); letter-spacing:.04em; margin-bottom:.8rem; }
.project-card__body p{ flex:1; }

.btn{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--f-mono); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase;
  padding:.75em 1.3em; border-radius:2px; border:1px solid var(--ink);
  background:transparent; color:var(--ink); cursor:pointer; width:fit-content;
  transition:background .18s ease, color .18s ease;
}
.btn:hover{ background:var(--ink); color:var(--sand); }
.btn--solid{ background:var(--clay); border-color:var(--clay); color:var(--sand); }
.btn--solid:hover{ background:#733a28; }
.btn--ghost-light{ border-color:var(--sand-2); color:var(--sand); }
.btn--ghost-light:hover{ background:var(--sand); color:var(--ink); }

/* Carousel (entorno / fotos proyecto / ficha) */
.carousel{ position:relative; }
.carousel__track{
  display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:1rem;
  scrollbar-width:none;
}
.carousel__track::-webkit-scrollbar{ display:none; }
.carousel__track img, .carousel__track .ph{
  scroll-snap-align:start; flex:0 0 auto;
  width:min(78vw,420px); aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius);
  background:var(--sand-2);
}
.carousel__controls{ display:flex; gap:.6rem; margin-top:1rem; justify-content:flex-end; }
.carousel__controls button{
  border:1px solid var(--line); background:var(--paper); width:2.4rem; height:2.4rem; border-radius:50%;
  cursor:pointer; font-family:var(--f-mono);
}
.carousel__controls button:hover{ background:var(--sand-2); }

/* Placeholder media block (drop-in target for real photos) */
.ph{
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:repeating-linear-gradient(135deg, var(--sand-2) 0 10px, #d8cdb4 10px 20px);
  color:var(--sage-dark); font-family:var(--f-mono); font-size:.72rem; letter-spacing:.04em;
  padding:1rem; border-radius:var(--radius); line-height:1.5;
}

/* Site plan (captura real de Google Earth Pro + puntos clicables con zoom propio) */
.siteplan{
  position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  background:var(--sand-2);
  touch-action:pan-y;            /* un dedo desplaza la página; el pellizco lo maneja el plano */
  user-select:none; -webkit-user-select:none;
}
.siteplan.is-zoomed{ touch-action:none; cursor:grab; }
.siteplan.is-zoomed:active{ cursor:grabbing; }
.siteplan__stage{ position:relative; transform-origin:0 0; will-change:transform; }
.siteplan__lines{ position:relative; width:100%; display:block; pointer-events:none; -webkit-user-drag:none; }
.siteplan img{ width:100%; display:block; }

.siteplan__hotspot{
  --c: #F4EFE6;
  position:absolute; z-index:2;
  transform:translate(-50%,-50%) scale(var(--inv,1));
  width:28px; height:28px; padding:0; border-radius:50%;
  background:transparent;
  border:2px solid var(--c);
  box-shadow:0 0 0 1px rgba(0,0,0,.45), inset 0 0 0 1px rgba(0,0,0,.35);
  color:var(--c);
  font-family:var(--f-mono); font-size:11px; font-weight:600; line-height:1;
  text-shadow:0 0 2px #000, 0 0 4px rgba(0,0,0,.9);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .15s ease;
}
.siteplan__hotspot[data-estado="reservado"]{ --c: var(--gold); }
.siteplan__hotspot[data-estado="vendido"]{ --c: rgba(244,239,230,.45); text-decoration:line-through; }
.siteplan__hotspot:hover, .siteplan__hotspot:focus-visible{ background:rgba(36,23,15,.45); outline:none; }

@media (max-width: 760px){
  .siteplan__hotspot{ width:20px; height:20px; font-size:8.5px; border-width:1.5px; }
  .siteplan__zoom{ right:.4rem; top:.4rem; }
  .siteplan__zoom button{ width:26px; height:26px; font-size:.85rem; }
}

.siteplan__zoom{
  position:absolute; right:.6rem; top:.6rem; z-index:3;
  display:flex; flex-direction:column; gap:4px;
}
.siteplan__zoom button{
  width:32px; height:32px; border-radius:3px; border:1px solid var(--line);
  background:rgba(251,249,244,.92); color:var(--ink);
  font-family:var(--f-mono); font-size:1rem; line-height:1; cursor:pointer;
}
.siteplan__zoom button:hover{ background:var(--paper); }

.siteplan__legend{ display:flex; gap:1.4rem; margin-top:1rem; flex-wrap:wrap; padding:0; }
.siteplan__legend li{ list-style:none; display:flex; align-items:center; gap:.5em; font-family:var(--f-mono); font-size:.75rem; }
.siteplan__legend i{
  width:16px; height:16px; border-radius:50%; display:inline-block;
  background:#3a3a30; box-shadow:inset 0 0 0 2px var(--c, #F4EFE6);
}
.siteplan__legend .disponible i{ --c:#F4EFE6; }
.siteplan__legend .reservado i{ --c:var(--gold); }
.siteplan__legend .vendido i{ --c:rgba(244,239,230,.45); }
.siteplan__hint{ font-family:var(--f-mono); font-size:.72rem; color:var(--sage-dark); margin-top:.6rem; }
.siteplan__note{ font-family:var(--f-mono); font-size:.75rem; color:var(--sage-dark); margin-top:.9rem; max-width:60ch; }

/* Tabs (Plano / Listado) */
.tabs{ margin-top:2rem; }
.tabs__nav{ display:inline-flex; border:1px solid var(--ink); border-radius:2px; overflow:hidden; margin-bottom:1.6rem; }
.tabs__btn{
  font-family:var(--f-mono); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase;
  padding:.7em 1.4em; border:0; background:var(--paper); color:var(--ink); cursor:pointer;
  border-right:1px solid var(--ink);
}
.tabs__btn:last-child{ border-right:0; }
.tabs__btn[aria-selected="true"]{ background:var(--sage-dark); color:var(--sand); }
.tabs__panel[hidden]{ display:none; }

/* Tables (listado) */
.table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); }
table.lotes{ width:100%; border-collapse:collapse; font-size:.92rem; min-width:640px; }
table.lotes caption{ text-align:left; padding:1rem 1.2rem 0; font-family:var(--f-mono); font-size:.75rem; color:var(--sage-dark); }
table.lotes th, table.lotes td{ padding:.85rem 1.1rem; text-align:left; border-bottom:1px solid var(--line); }
table.lotes th{
  font-family:var(--f-mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--sage-dark); cursor:pointer; user-select:none; white-space:nowrap;
}
table.lotes th:hover{ color:var(--clay); }
table.lotes td.num{ font-family:var(--f-mono); }
.estado-pill{
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.04em; text-transform:uppercase;
  padding:.25em .6em; border-radius:2px; display:inline-block;
}
.estado-pill.disponible{ background:rgba(53,91,90,.14); color:var(--sage-dark); }
.estado-pill.reservado{ background:rgba(201,158,103,.28); color:#7A5A2E; }
.estado-pill.vendido{ background:rgba(97,61,42,.16); color:var(--brand); }
.filters{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1.2rem; align-items:center; }
.filters select, .filters input{
  font-family:var(--f-body); font-size:.9rem; padding:.55em .8em; border:1px solid var(--line);
  border-radius:2px; background:var(--paper); color:var(--ink);
}

/* Ficha de sitio */
.ficha{ display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:start; }
@media (max-width:860px){ .ficha{ grid-template-columns:1fr; } }
.ficha__specs{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.8rem; }
.ficha__specs dl{ margin:0; display:grid; grid-template-columns:1fr auto; gap:.7rem 1rem; }
.ficha__specs dt{ font-family:var(--f-mono); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--sage-dark); align-self:center; }
.ficha__specs dd{ margin:0; font-family:var(--f-display); font-size:1.3rem; text-align:right; }
.ficha__price{ font-family:var(--f-display); font-size:var(--step-2); margin:0 0 .2rem; color:var(--clay); }
.ficha__breadcrumb{ font-family:var(--f-mono); font-size:.75rem; color:var(--sage-dark); margin-bottom:1.2rem; }
.ficha__breadcrumb a:hover{ color:var(--clay); }

/* Cómo llegar */
.ubicacion{ display:grid; grid-template-columns:1.6fr 1fr; gap:1.75rem; margin-top:2.2rem; align-items:stretch; }
@media (max-width:760px){ .ubicacion{ grid-template-columns:1fr; } }
.ubicacion__map{ aspect-ratio:4/3; width:100%; border:0; display:block; }
.ubicacion__list{ list-style:none; margin:0; padding:0; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.ubicacion__list li{
  display:flex; justify-content:space-between; align-items:center;
  padding:1.1rem 1.4rem; border-bottom:1px solid var(--line);
  font-family:var(--f-mono); font-size:.82rem; letter-spacing:.03em; text-transform:uppercase;
}
.ubicacion__list li:last-child{ border-bottom:0; }
.ubicacion__nota{ font-family:var(--f-mono); font-size:.72rem; color:var(--sage-dark); margin-top:.9rem; }
.ubicacion__list strong{ font-family:var(--f-display); font-size:1.2rem; color:var(--brand); text-transform:none; letter-spacing:0; }

/* Footer */
footer.site-footer{ background:var(--ink); color:var(--sand-2); }
footer.site-footer .container{ padding-top:3.5rem; padding-bottom:3rem; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.5rem; }
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr; gap:2rem; } }
footer.site-footer h3{ color:var(--sand); font-size:1rem; margin-bottom:.9rem; }
footer.site-footer a:hover{ color:var(--gold); }
footer.site-footer .contact-line{ display:block; margin-bottom:.5rem; font-size:.92rem; }
.footer-bottom{
  border-top:1px solid rgba(237,230,216,.14); margin-top:2.5rem; padding-top:1.4rem;
  font-family:var(--f-mono); font-size:.72rem; opacity:.7; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
}

/* Contour texture used behind hero — generated inline as SVG in the page */

/* Enlaces de vuelta al proyecto desde la ficha */
.ficha__breadcrumb a{ text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--line); }
.ficha__breadcrumb a:hover{ color:var(--clay); text-decoration-color:var(--clay); }
.eyebrow--link{ text-decoration:none; }
.eyebrow--link:hover{ color:var(--clay); }

/* Tarjetas de proyecto en la portada: fotos que se van alternando + sello del logo */
.project-card__media[data-slides] img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.2s ease;
}
.project-card__media[data-slides] img.is-active{ opacity:1; }
.project-card__logo{
  position:absolute; left:.9rem; bottom:.9rem; z-index:2;
  width:74px; height:74px; border-radius:50%;
  background:rgba(251,249,244,.92); box-shadow:0 2px 10px rgba(0,0,0,.25);
  display:flex; align-items:center; justify-content:center; padding:9px;
}
.project-card__media[data-slides] .project-card__logo img{
  position:static; opacity:1; width:100%; height:100%; object-fit:contain; transition:none;
}

/* ---------- Video de vuelo (dron) ---------- */
.vuelo{ position:relative; margin:1.6rem 0 0; border-radius:14px; overflow:hidden; background:var(--sage-dark); aspect-ratio:16/9; box-shadow:0 18px 40px -24px rgba(36,64,63,.55); }
.vuelo video{ display:block; width:100%; height:100%; object-fit:cover; }
.vuelo__sitios{ position:absolute; left:1rem; bottom:1rem; display:flex; align-items:center; gap:.55rem; padding:.45rem .55rem .45rem .8rem; border-radius:999px; background:rgba(36,64,63,.72); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); color:var(--sand); font-family:'IBM Plex Mono',monospace; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; transition:opacity .3s; }
.vuelo--sin-sitios .vuelo__sitios{ opacity:0; }
.vuelo__nums{ display:flex; gap:.35rem; }
.vuelo__nums a{ display:grid; place-items:center; min-width:2rem; height:2rem; padding:0 .4rem; border-radius:999px; border:1.5px solid var(--gold); color:#F4EFE6; font-size:.9rem; font-weight:500; letter-spacing:0; text-decoration:none; transition:background .2s; }
.vuelo__nums a:hover{ background:var(--clay); border-color:var(--clay); }
.vuelo__nums.is-in a{ animation:vueloIn .45s ease both; }
.vuelo__nums.is-in a:nth-child(2){ animation-delay:.06s } .vuelo__nums.is-in a:nth-child(3){ animation-delay:.12s } .vuelo__nums.is-in a:nth-child(4){ animation-delay:.18s }
@keyframes vueloIn{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none;} }
@media (max-width:760px){
  .vuelo{ border-radius:10px; }
  .vuelo__sitios{ left:.5rem; bottom:.5rem; padding:.3rem .4rem .3rem .6rem; font-size:.66rem; gap:.4rem; }
  .vuelo__nums a{ min-width:1.6rem; height:1.6rem; font-size:.78rem; }
}

/* ---------- Mapa de loteos (Home) ---------- */
#mapa-loteos{ min-height:380px; z-index:0; }
.mapa-loteos__label{ background:rgba(36,64,63,.85); color:#F4EFE6; border:0; border-radius:999px; box-shadow:none;
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:.3rem .7rem; }
.mapa-loteos__label::before{ display:none; }
.ubicacion__nota a{ color:var(--clay); text-decoration:underline; text-underline-offset:3px; }

/* ---------- Ficha: plano ampliado del sitio ---------- */
.ficha__plano{ margin:1.5rem 0 0; }
.ficha__plano img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); background:var(--sand-2); }
.ficha__plano figcaption{ font-family:var(--f-mono); font-size:.72rem; color:var(--sage-dark); margin-top:.6rem; }
.ficha__fotos{ margin-top:2.2rem; }
.contact-line--name{ font-weight:600; }
[hidden]{ display:none !important; }

.contact-line--wa{ display:inline-flex; align-items:center; gap:.45rem; }
.contact-line__icon{ width:1.05em; height:1.05em; flex:none; margin-right:.45rem; vertical-align:-.15em; }

.hero__video{ object-fit:cover; }
.btn--wa svg{ width:1.15em; height:1.15em; margin-right:.5rem; flex:none; }

/* Portada sin filtro: legibilidad con un halo suave solo detrás del texto */
.hero__content::before{
  content:""; position:absolute; z-index:-1; left:-4rem; right:auto; top:1.5rem; bottom:1rem;
  width:min(46rem, calc(100% + 6rem));
  background:radial-gradient(ellipse at 35% 55%, rgba(20,30,26,.42) 0%, rgba(20,30,26,.22) 45%, rgba(20,30,26,0) 72%);
  pointer-events:none;
}
.hero__content p{ text-shadow:0 1px 2px rgba(0,0,0,.55), 0 0 18px rgba(0,0,0,.35); color:#F4EFE6; }
.hero__logo-heading img{ filter:drop-shadow(0 2px 6px rgba(0,0,0,.45)); }

/* Pie de página en dos columnas */
.footer-grid{ grid-template-columns:1.3fr 1fr; }
.footer-copy{ margin-top:1rem; font-family:var(--f-mono); font-size:.75rem !important; opacity:.75; }
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr; } .hero__content::before{ left:-1rem; width:calc(100% + 2rem); } }

/* Mapa a todo el ancho, con camino costero y destinos */
.ubicacion{ grid-template-columns:1fr; }
.ubicacion__map{ aspect-ratio:16/9; border-radius:var(--radius); overflow:hidden; }
@media (max-width:760px){ .ubicacion__map{ aspect-ratio:4/5; } }
.mapa-loteos__label--camino{ background:#6E6B66; color:#F4EFE6; }
.mapa-destinos{ position:absolute; inset:0; z-index:650; pointer-events:none; }
.mapa-destino{ position:absolute; display:flex; align-items:center; gap:.4rem; white-space:nowrap;
  background:rgba(251,249,244,.94); color:var(--ink); border-radius:999px; padding:.3rem .7rem .3rem .45rem;
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.03em; box-shadow:0 2px 10px rgba(0,0,0,.25); }
.mapa-destino b{ font-weight:600; text-transform:uppercase; letter-spacing:.06em; margin-right:.2rem; }
.mapa-destino__flecha{ display:inline-grid; place-items:center; width:1.35rem; height:1.35rem; border-radius:50%;
  background:var(--clay); color:#fff; font-size:.75rem; line-height:1; }
@media (max-width:760px){ .mapa-destino{ font-size:.62rem; padding:.22rem .55rem .22rem .35rem; } .mapa-destino__flecha{ width:1.1rem; height:1.1rem; font-size:.62rem; } }
