/* ev.css — componentes del sistema A+B «editorial contemporánea e inmersiva» (2026-10).
   Base editorial (papel, tinta, Newsreader + Hanken Grotesk) con escenas a sangre y movimiento moderado.
   Lo cargan las páginas rediseñadas (home, catálogo, ficha, proyectos, landing de proyecto, contacto); los tokens,
   el header y el footer vienen de sitio.css. Solo variables de tokens. */
:root {
  --t-0: 0.8rem; --t-1: 1rem; --t-2: 1.25rem; --t-3: 1.5625rem; --t-4: 1.953rem; --t-5: 2.441rem; --t-6: 3.052rem;
  --medida: 62ch;
  --e-1: 4px; --e-2: 8px; --e-3: 12px; --e-4: 16px; --e-5: 24px; --e-6: 32px; --e-7: 48px; --e-8: 72px; --e-9: 112px;
  --gutter: var(--ev-gutter);
  --ancho: var(--ev-ancho);
  --r-foto: 2px; --r-control: 6px; --r-chip: 999px;
  --sombra-hoja: 0 -12px 40px rgba(19, 33, 58, 0.18);
  --z-hoja: 1100; --z-visor: 1200;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--ev-header-h) + 16px); -webkit-tap-highlight-color: rgba(10, 111, 194, 0.12); }
body.ev {
  margin: 0; background: var(--papel); color: var(--tinta);
  font: 400 1.0625rem/1.6 var(--sans);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
:where(.ev) [hidden] { display: none !important; }
:where(.ev) img { max-width: 100%; height: auto; display: block; }
:where(.ev) a { color: inherit; }
:where(.ev) :where(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.ev) :where(h1, h2, h3, h4) { font-family: var(--serif); font-weight: 400; line-height: 1.1; margin: 0; text-wrap: balance; letter-spacing: -0.012em; }
:where(.ev) p { margin: 0 0 var(--e-4); text-wrap: pretty; }
.num { font-variant-numeric: tabular-nums lining-nums; }
.visualmente-oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:where(.ev) :focus-visible { outline: 2px solid var(--azul); outline-offset: 3px; border-radius: 2px; }

.contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--gutter); }
:where(.ev) main { display: block; }
:where(.ev) .pagina { padding-top: var(--ev-header-h); }

/* ── Botones ───────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2);
  min-height: 48px; padding: 0 var(--e-5);
  border-radius: var(--r-control); border: 1px solid transparent;
  font-weight: 600; font-size: 0.98rem; text-decoration: none; cursor: pointer; text-align: center;
  transition: background-color var(--d-micro) var(--curva), color var(--d-micro) var(--curva), border-color var(--d-micro) var(--curva), transform var(--d-micro) var(--curva);
  touch-action: manipulation;
}
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: 0.6; cursor: progress; }
.btn svg { width: 20px; height: 20px; flex: none; }
.btn--tinta { background: var(--tinta); color: var(--papel); }
.btn--tinta:hover { background: #1F3256; }
.btn--linea { background: transparent; border-color: var(--linea-fuerte); color: var(--tinta); }
.btn--linea:hover { border-color: var(--tinta); }
.btn--papel { background: var(--papel); color: var(--tinta); }
.btn--papel:hover { background: #fff; }
.btn--sobre-foto { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.btn--sobre-foto:hover { background: rgba(255,255,255,.22); border-color: #fff; }
.btn--icono { width: 44px; min-height: 44px; padding: 0; background: transparent; border-color: var(--linea); }
.btn--icono:hover { border-color: var(--tinta); }
.btn--icono:disabled { opacity: .4; cursor: default; }
.btn--ancho { width: 100%; }
.link { color: var(--azul); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; font-weight: 500; }
.link:hover { text-decoration-thickness: 2px; }

/* ── Campos ────────────────────────────────────────────── */
.campo { display: grid; gap: var(--e-2); }
.campo label { font-size: 0.95rem; font-weight: 500; }
.control {
  width: 100%; min-height: 48px; padding: var(--e-3) var(--e-4);
  background: #fff; border: 1px solid var(--linea-fuerte); border-radius: var(--r-control);
  transition: border-color var(--d-micro) var(--curva), box-shadow var(--d-micro) var(--curva);
}
.control:hover { border-color: var(--tinta-3); }
.control:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px var(--azul-suave); }
select.control {
  appearance: none; -webkit-appearance: none; padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2313213A' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
textarea.control { min-height: 110px; resize: vertical; }
.campo[data-error] .control { border-color: var(--error); }
.campo .error { color: var(--error); font-size: 0.9rem; }
.campo .error:empty { display: none; }
.form { display: grid; gap: var(--e-4); }
.form__nota { font-size: var(--t-0); color: var(--tinta-3); margin: 0; }
.form__nota a { color: inherit; }
.form__aviso { padding: var(--e-4); border: 1px solid var(--error); border-radius: var(--r-control); background: #fff; font-size: 0.95rem; }
.form__exito { display: grid; gap: var(--e-3); padding: var(--e-5); background: var(--exito-suave); border-radius: var(--r-control); }
.form__exito:focus { outline: none; }
.form__exito h3 { font-family: var(--sans); font-weight: 600; font-size: 1.05rem; color: var(--exito); }
.form__exito p { margin: 0; color: var(--tinta); }

/* Chips */
.chips { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.chip {
  display: inline-flex; align-items: center; gap: var(--e-2); min-height: 40px; padding: 0 var(--e-4);
  border: 1px solid var(--linea-fuerte); border-radius: var(--r-chip); background: transparent;
  font-size: 0.95rem; font-weight: 500; cursor: pointer; text-decoration: none; color: var(--tinta);
  transition: background-color var(--d-micro) var(--curva), border-color var(--d-micro) var(--curva), color var(--d-micro) var(--curva);
}
.chip:hover { border-color: var(--tinta); }
.chip[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: var(--papel); }
.chip--quitar { background: var(--azul-suave); border-color: transparent; }
.chip--quitar svg { width: 14px; height: 14px; }

/* ── Texto ─────────────────────────────────────────────── */
.titulo-seccion { font-size: clamp(1.9rem, 1.4rem + 1.6vw, var(--t-5)); }
.bajada { color: var(--tinta-2); font-size: 1.1rem; max-width: 52ch; }
.seccion { padding-block: clamp(var(--e-7), 6vw, var(--e-9)); }
.seccion + .seccion { border-top: 1px solid var(--linea); }
.seccion__cabeza { display: flex; align-items: end; justify-content: space-between; gap: var(--e-5); flex-wrap: wrap; margin-bottom: var(--e-6); }
.seccion__cabeza > div { display: grid; gap: var(--e-3); }
.seccion__cabeza .bajada { margin: 0; }
.criterio { font-family: var(--serif); font-size: 1.15rem; line-height: 1.45; color: var(--tinta-2); max-width: 46ch; margin: 0; }
.nota { font-size: var(--t-0); color: var(--tinta-3); }

/* ── Foto ──────────────────────────────────────────────── */
.foto { position: relative; overflow: hidden; background: var(--piedra); border-radius: var(--r-foto); }
.foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--curva); }
.foto--43 { aspect-ratio: 4 / 3; }
.foto--34 { aspect-ratio: 3 / 4; }
.foto--169 { aspect-ratio: 16 / 9; }

/* ── Tarjeta de propiedad ─────────────────────────────── */
.tarjeta { display: grid; gap: var(--e-4); text-decoration: none; color: inherit; align-content: start; }
.tarjeta:hover .foto img { transform: scale(1.03); }
.tarjeta__cuerpo { display: grid; gap: var(--e-2); }
.tarjeta__titulo { font-size: var(--t-2); line-height: 1.2; }
.tarjeta:hover .tarjeta__titulo { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.tarjeta__lugar { font-size: 0.92rem; color: var(--tinta-2); }
.tarjeta__datos { display: flex; flex-wrap: wrap; gap: var(--e-1) var(--e-4); font-size: 0.92rem; color: var(--tinta-2); }
.tarjeta__precio { display: flex; align-items: baseline; justify-content: space-between; gap: var(--e-3); flex-wrap: wrap; padding-top: var(--e-3); border-top: 1px solid var(--linea); }
.precio { font-weight: 600; font-size: 1.05rem; }
.precio--consultar { font-weight: 500; color: var(--tinta-2); }
.m2 { font-size: 0.88rem; color: var(--azul); font-weight: 500; }
.etiqueta-op { position: absolute; left: var(--e-3); top: var(--e-3); z-index: 1; background: var(--papel); color: var(--tinta); font-size: 0.82rem; font-weight: 600; padding: 3px 10px; border-radius: var(--r-control); }
.etiqueta-op:empty { display: none; }

/* ── Escena (foto a sangre bajo el header transparente) ─ */
.escena {
  position: relative; isolation: isolate; overflow: hidden; color: #fff;
  min-height: min(100svh, 980px); display: grid; grid-template-rows: 1fr auto auto;
  padding-top: var(--ev-header-h); background: var(--tinta);
}
.escena__foto { position: absolute; inset: 0; z-index: -1; background: var(--tinta); }
.escena__foto [data-capa] { position: absolute; inset: 0; display: block; transition: opacity var(--d-escena) var(--curva), transform calc(var(--d-escena) * 1.6) var(--curva); }
.escena__foto [data-capa].entrando { opacity: 0; transform: scale(1.04); }
.escena__foto img { width: 100%; height: 100%; object-fit: cover; }
.escena__foto::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(10, 16, 30, 0.58) 0%, rgba(10, 16, 30, 0.32) 42%, rgba(10, 16, 30, 0) 68%),
    linear-gradient(180deg, rgba(10, 16, 30, 0.5) 0%, rgba(10, 16, 30, 0) 20%, rgba(10, 16, 30, 0) 40%, var(--velo) 100%);
}
.escena__texto { align-self: end; display: grid; gap: var(--e-4); padding-bottom: var(--e-7); text-shadow: 0 1px 24px rgba(10, 16, 30, 0.35); }
.escena h1 { font-size: clamp(2.6rem, 1.1rem + 4.6vw, 5.8rem); line-height: 1.02; letter-spacing: -0.028em; max-width: 15ch; }
.escena__texto > p { font-size: 1.15rem; max-width: 46ch; margin: 0; color: rgba(255, 255, 255, 0.92); }
.escena__base { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--e-6); }
.hoja-papel { background: var(--papel); color: var(--tinta); margin: 0; max-width: 940px; padding: var(--e-6) var(--e-6) var(--e-5); border-radius: var(--r-foto) var(--r-foto) 0 0; }
.escena__pie { display: grid; justify-items: end; gap: 2px; padding-bottom: var(--e-5); text-align: right; color: rgba(255, 255, 255, 0.86); text-decoration: none; font-size: 0.92rem; max-width: 30ch; text-shadow: 0 1px 12px rgba(10,16,30,.4); }
.escena__pie strong { font-family: var(--serif); font-weight: 400; font-style: italic; font-size: 1.15rem; color: #fff; }
.escena__pie:hover span { text-decoration: underline; text-underline-offset: 4px; }
.escena__pie:empty { display: none; }

/* Frase de búsqueda */
.frase { font-family: var(--serif); font-size: clamp(1.45rem, 1.1rem + 1vw, 2rem); line-height: 1.6; letter-spacing: -0.01em; }
.frase__hueco {
  font: inherit; color: var(--azul); background: transparent; border: 0; border-bottom: 2px solid var(--azul);
  border-radius: 0; padding: 0 1.1em 0 0.05em; margin: 0 0.12em; cursor: pointer;
  appearance: none; -webkit-appearance: none; min-height: 48px; max-width: 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%230A6FC2' stroke-width='1.8'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0.15em center; background-size: 0.45em auto;
  field-sizing: content;
  transition: border-color var(--d-micro) var(--curva), color var(--d-micro) var(--curva);
}
.frase__hueco:hover { color: var(--azul-hover); border-bottom-color: var(--tinta); }
.frase__hueco:focus-visible { outline-offset: 6px; }
.frase__hueco optgroup { font-family: var(--sans); font-style: normal; }
.frase__accion { font-family: var(--sans); margin-top: var(--e-5); display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-4) var(--e-5); font-size: 1rem; letter-spacing: 0; }
.frase__ref { font-size: 0.95rem; color: var(--tinta-2); display: flex; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.frase__ref input { width: 9ch; min-height: 44px; padding: 0 var(--e-3); border: 1px solid var(--linea-fuerte); border-radius: var(--r-control); background: #fff; }
.frase__otras { font-family: var(--sans); font-size: 0.95rem; color: var(--tinta-2); margin: var(--e-4) 0 0; letter-spacing: 0; line-height: 1.5; }

/* Selección */
.seleccion { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--e-7) var(--e-6); }
.seleccion > * { grid-column: span 4; }
.seleccion:empty { min-height: 120vh; }
.seleccion > :nth-child(3n+2) { margin-top: var(--e-8); }

/* ── Banda de proyectos (inmersiva, sobre tinta) ──────── */
.banda { background: var(--tinta); color: var(--sobre-tinta); }
.banda .titulo-seccion { color: #fff; }
.banda .bajada { color: var(--sobre-tinta-2); }
.banda__escena { position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: end; min-height: min(92svh, 860px); color: #fff; text-decoration: none; }
.banda__foto { position: absolute; inset: 0; z-index: -1; background: #1F3256; }
.banda__foto img { width: 100%; height: 100%; object-fit: cover; }
.banda__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19, 33, 58, 0.15) 0%, rgba(19, 33, 58, 0) 35%, rgba(19, 33, 58, 0.88) 100%); }
.banda__texto { display: grid; gap: var(--e-4); justify-items: start; padding-block: var(--e-9) var(--e-8); }
.banda__estado { font-size: 0.95rem; color: #fff; text-shadow: 0 1px 12px rgba(10, 16, 30, 0.5); }
.banda__texto h3 { font-size: clamp(3.2rem, 1.8rem + 6vw, 7.6rem); line-height: 0.92; letter-spacing: -0.035em; }
.banda__texto p { font-family: var(--serif); font-size: clamp(1.2rem, 1rem + 0.7vw, 1.6rem); max-width: 34ch; margin: 0; }
.banda__datos { display: flex; flex-wrap: wrap; gap: var(--e-4) var(--e-7); margin: var(--e-2) 0 var(--e-3); }
.banda__datos dt { font-size: 0.88rem; color: var(--sobre-tinta-2); }
.banda__datos dd { margin: 2px 0 0; font-family: var(--serif); font-size: var(--t-3); }
.banda__escena:hover .btn--papel { background: #fff; }
.banda__escena:focus-visible { outline-offset: -6px; outline-color: #fff; }
.banda__resto { padding-block: var(--e-8); }
.banda .proyecto-tarjeta { color: #fff; }
.banda .tarjeta__datos, .banda .tarjeta__lugar { color: var(--sobre-tinta-2); }
.banda .tarjeta__precio { border-top-color: var(--linea-tinta); }
.banda .foto { background: #1F3256; }
.banda .carril { scrollbar-color: rgba(255,255,255,.3) transparent; }
.banda .btn--icono, .lago .btn--icono { color: #fff; border-color: rgba(255, 255, 255, 0.35); }
.banda .btn--icono:hover, .lago .btn--icono:hover { border-color: #fff; }
.banda .link, .lago .link { color: #fff; }
.carril-ctrl { display: flex; gap: var(--e-2); }
.banda + .seccion { border-top: 0; }
:where(.banda, .lago, .escena) :focus-visible { outline-color: #fff; }
.escena .hoja-papel :focus-visible { outline-color: var(--azul); }

.carril { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 23%); gap: var(--e-5); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--e-4); scrollbar-width: thin; overscroll-behavior-x: contain; }
.carril > * { scroll-snap-align: start; }
.proyecto-tarjeta { display: grid; gap: var(--e-3); text-decoration: none; color: inherit; align-content: start; }
.proyecto-tarjeta h3 { font-size: var(--t-3); }
.proyecto-tarjeta:hover .foto img { transform: scale(1.03); }
.proyecto-tarjeta:hover h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.proyecto-tarjeta .tarjeta__datos { flex-direction: column; gap: 2px; }

/* ── Zonas ─────────────────────────────────────────────── */
.zonas { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--e-4); }
.zona { position: relative; display: block; color: #fff; text-decoration: none; grid-column: span 7; }
.zona:nth-child(2), .zona:nth-child(3) { grid-column: span 5; }
.zona .foto { height: clamp(220px, 28vw, 400px); background: var(--tinta); }
.zona .foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 16, 30, 0) 45%, var(--velo) 100%); }
.zona__texto { position: absolute; left: var(--e-5); right: var(--e-5); bottom: var(--e-4); display: flex; justify-content: space-between; align-items: baseline; gap: var(--e-4); flex-wrap: wrap; }
.zona strong { font-family: var(--serif); font-weight: 400; font-size: var(--t-4); line-height: 1.1; }
.zona__texto span { font-size: 0.95rem; color: rgba(255, 255, 255, 0.9); }
.zona:hover .foto img { transform: scale(1.03); }
.zona:hover strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.zonas-mas { margin: var(--e-6) 0 0; color: var(--tinta-2); font-size: 0.98rem; line-height: 1.9; max-width: 90ch; }
.zonas-mas a { color: var(--tinta); }

/* ── Vender y lectura de mercado ──────────────────────── */
.vender { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--e-8); align-items: center; }
.incluye { list-style: none; padding: 0; margin: var(--e-5) 0 0; max-width: 46ch; }
.incluye li { padding: var(--e-3) 0; border-top: 1px solid var(--linea); color: var(--tinta-2); }
.lectura { margin: 0; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-foto); padding: var(--e-6); display: grid; gap: var(--e-2); }
.lectura__cabeza { display: flex; justify-content: space-between; gap: var(--e-4); flex-wrap: wrap; font-size: 0.92rem; color: var(--tinta-2); }
.lectura__cabeza span:first-child { color: var(--tinta); font-weight: 600; }
.lectura__valor { font-family: var(--serif); font-size: clamp(2rem, 1.5rem + 1.6vw, var(--t-6)); line-height: 1.05; margin-top: var(--e-3); }
.lectura__rango { color: var(--tinta-2); font-size: 0.95rem; }
.lectura__barras { display: grid; gap: var(--e-4); margin-block: var(--e-5) var(--e-3); }
.barra { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--e-1) var(--e-4); text-decoration: none; font-size: 0.92rem; }
.barra__riel { grid-column: 1 / -1; height: 6px; background: var(--papel-2); border-radius: 3px; overflow: hidden; }
.barra__riel i { display: block; height: 100%; width: var(--w); background: var(--azul); border-radius: 3px; transform-origin: left; }
.barra__texto { color: var(--tinta-2); }
.barra__valor { font-weight: 600; }
.barra:hover .barra__texto { color: var(--tinta); text-decoration: underline; text-underline-offset: 3px; }
.lectura figcaption { font-size: var(--t-0); color: var(--tinta-3); line-height: 1.5; }
.botones { display: flex; flex-wrap: wrap; gap: var(--e-3); margin-top: var(--e-6); align-items: center; }

/* ── Catálogo ──────────────────────────────────────────── */
.cat-cabeza { padding-block: calc(var(--ev-header-h) + var(--e-6)) var(--e-5); display: grid; gap: var(--e-3); }
.cat-cabeza h1 { font-size: clamp(2.2rem, 1.6rem + 2.4vw, var(--t-6)); }
.cat-cabeza .bajada { margin: 0; }
.hoja-abierta .filtros { z-index: var(--z-hoja); }
.filtros { position: sticky; top: var(--ev-header-h); z-index: 10; background: var(--papel); border-block: 1px solid var(--linea); padding-block: var(--e-4); }
.filtros__fila { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-3) var(--e-4); }
.buscador { position: relative; flex: 1 1 240px; max-width: 340px; }
.buscador svg { position: absolute; left: 14px; top: 50%; translate: 0 -50%; width: 18px; height: 18px; color: var(--tinta-2); pointer-events: none; }
.buscador input { padding-left: 42px; }
.filtros .control { min-height: 44px; font-size: 0.95rem; }
.filtros select.control { width: auto; min-width: 0; max-width: 260px; }
.filtros__extra { display: flex; flex-wrap: wrap; gap: var(--e-3); align-items: center; }
.btn-filtros { display: none; }
.activos { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-top: var(--e-3); }
.activos:empty { display: none; }
.resultado-linea { display: flex; justify-content: space-between; align-items: center; gap: var(--e-4); flex-wrap: wrap; padding-block: var(--e-5); }
.resultado-linea p { margin: 0; color: var(--tinta-2); }
.resultado-linea strong { color: var(--tinta); }
.orden { display: flex; align-items: center; gap: var(--e-3); }
.orden label { font-size: .92rem; color: var(--tinta-2); }
.orden .control { width: auto; min-height: 44px; }
.grilla { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-7) var(--e-5); }
.grilla .tarjeta--grande { grid-column: span 2; grid-row: span 2; }
.grilla .tarjeta--grande .tarjeta__titulo { font-size: var(--t-4); }
.mas { display: grid; justify-items: center; gap: var(--e-3); padding-block: var(--e-7); color: var(--tinta-2); font-size: 0.95rem; }
.vacio { padding: var(--e-8) 0; display: grid; gap: var(--e-4); justify-items: start; max-width: 56ch; }
.vacio h2 { font-size: var(--t-4); }
.vacio p { color: var(--tinta-2); margin: 0; }
.hoja__cabeza, .hoja__pie { display: none; }
/* Escritorio: arriba la búsqueda y la operación, abajo los selectores (la hoja del celular agrupa todo) */
@media (min-width: 761px) {
  .filtros__extra { display: contents; }
  .filtros .chips { flex: 1 1 auto; }
  .buscador { order: 0; }
}
.pozo-aviso { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--e-4); padding: var(--e-5); margin-top: var(--e-7); background: var(--papel-2); border-radius: var(--r-foto); }
.pozo-aviso p { margin: 0; max-width: 60ch; }

/* ── Ficha ─────────────────────────────────────────────── */
.migas { display: flex; flex-wrap: wrap; gap: var(--e-2); font-size: 0.92rem; color: var(--tinta-2); padding: calc(var(--ev-header-h) + var(--e-5)) 0 var(--e-4); list-style: none; margin: 0; }
.migas li + li::before { content: "/"; margin-right: var(--e-2); color: var(--linea-fuerte); }
.migas a { text-decoration: none; } .migas a:hover { text-decoration: underline; }
.ficha-portada { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--e-6); align-items: start; }
.galeria__principal { aspect-ratio: 3 / 2; cursor: zoom-in; }
.galeria__principal button { all: unset; display: block; width: 100%; height: 100%; cursor: zoom-in; }
.galeria__principal button:focus-visible { outline: 2px solid var(--azul); outline-offset: -4px; }
.galeria__vacia { display: grid; place-items: center; height: 100%; color: var(--tinta-2); padding: var(--e-5); text-align: center; cursor: default; }
.galeria__principal button:disabled { cursor: default; }
.galeria__contador:empty { display: none; }
.galeria__contador { position: absolute; right: var(--e-3); bottom: var(--e-3); background: rgba(19,33,58,.78); color: #fff; font-size: 0.85rem; padding: 4px 10px; border-radius: var(--r-control); pointer-events: none; }
.tira { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--e-2); margin-top: var(--e-2); }
.tira button { padding: 0; border: 0; background: var(--piedra); aspect-ratio: 4 / 3; cursor: pointer; overflow: hidden; border-radius: var(--r-foto); position: relative; }
.tira img { width: 100%; height: 100%; object-fit: cover; opacity: .82; transition: opacity var(--d-micro) var(--curva); }
.tira button:hover img, .tira button[aria-current="true"] img { opacity: 1; }
.tira button[aria-current="true"] { outline: 2px solid var(--tinta); outline-offset: -2px; }
.tira__mas { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(19,33,58,.62); color: #fff; font-weight: 600; font-size: 0.95rem; }
.ficha-resumen { position: sticky; top: calc(var(--ev-header-h) + 20px); display: grid; gap: var(--e-5); }
.ficha-resumen h1 { font-size: clamp(2rem, 1.5rem + 1.6vw, var(--t-5)); line-height: 1.08; }
.ficha-resumen .lugar { color: var(--tinta-2); display: block; margin-bottom: var(--e-3); }
.precio-bloque { display: grid; gap: var(--e-2); padding-block: var(--e-5); border-block: 1px solid var(--linea); }
.precio-grande { font-family: var(--serif); font-size: var(--t-5); line-height: 1.05; }
.precio-grande small { display: block; font-family: var(--sans); font-size: .95rem; color: var(--tinta-2); margin-bottom: 2px; }
.precio-sec { color: var(--tinta-2); }
.m2-linea { display: flex; flex-wrap: wrap; gap: var(--e-2); align-items: baseline; color: var(--tinta-2); font-size: 0.95rem; }
.m2-linea strong { color: var(--azul); font-weight: 600; }
.gastos { font-size: .95rem; color: var(--tinta-2); display: grid; gap: 2px; }
.acciones { display: grid; gap: var(--e-3); }
.ref { font-size: var(--t-0); color: var(--tinta-3); }
.ficha-cuerpo { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--e-6); margin-top: var(--e-8); }
.datos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--tinta); margin: 0; }
.datos div { padding: var(--e-4) var(--e-4) var(--e-4) 0; border-bottom: 1px solid var(--linea); }
.datos dt { font-size: 0.88rem; color: var(--tinta-2); }
.datos dd { margin: var(--e-1) 0 0; font-family: var(--serif); font-size: var(--t-3); line-height: 1.15; }
.bloque { margin-top: var(--e-8); display: grid; gap: var(--e-4); }
.bloque h2 { font-size: var(--t-4); }
.descripcion p { max-width: var(--medida); }
.caracteristicas { columns: 2; column-gap: var(--e-6); padding: 0; margin: 0; list-style: none; }
.caracteristicas li { break-inside: avoid; padding: var(--e-3) 0; border-bottom: 1px solid var(--linea); display: flex; justify-content: space-between; gap: var(--e-4); font-size: 0.97rem; }
.caracteristicas li span:last-child { color: var(--tinta-2); text-align: right; }
.caracteristicas--una { columns: 1; }
.lateral { display: grid; gap: var(--e-7); align-content: start; }
.lateral h2 { font-size: var(--t-3); }
.ubicacion { display: grid; gap: var(--e-3); align-content: start; }
.ubicacion p { margin: 0; }
.mapa { aspect-ratio: 4 / 3; border: 1px solid var(--linea); border-radius: var(--r-foto); overflow: hidden; background: var(--papel-2); }
.mapa iframe { width: 100%; height: 100%; border: 0; display: block; }
.panel { background: #fff; border: 1px solid var(--linea); padding: var(--e-6); border-radius: var(--r-foto); display: grid; gap: var(--e-4); }
.panel h2 { font-size: var(--t-3); }
.panel > p { margin: 0; color: var(--tinta-2); }
.barra-movil { display: none; }
.ficha-error { padding-block: calc(var(--ev-header-h) + var(--e-8)) var(--e-8); display: grid; gap: var(--e-4); max-width: 60ch; }
.ficha-error h1 { font-size: var(--t-5); }

/* Visor de fotos y planos */
.visor { position: fixed; inset: 0; z-index: var(--z-visor); background: rgba(10,16,30,.94); display: grid; grid-template-rows: auto 1fr auto; color: #fff; overscroll-behavior: contain; }
.visor[hidden] { display: none; }
.visor__barra { display: flex; justify-content: space-between; align-items: center; padding: var(--e-3) var(--gutter); }
.visor__barra .btn--icono { border-color: rgba(255,255,255,.3); color: #fff; }
.visor__foto { display: grid; place-items: center; padding: 0 var(--gutter); min-height: 0; }
.visor__foto img { max-height: 100%; max-width: 100%; object-fit: contain; }
.visor--claro .visor__foto img { background: #fff; }
.visor__nav { display: flex; justify-content: center; gap: var(--e-4); padding: var(--e-4) var(--gutter) calc(var(--e-4) + env(safe-area-inset-bottom, 0px)); }
.visor__nav .btn { border-color: rgba(255,255,255,.35); color: #fff; }
.visor :focus-visible { outline-color: #fff; }

/* ── Landing de proyecto ──────────────────────────────── */
.escena--proyecto { min-height: min(94svh, 920px); grid-template-rows: 1fr auto; }
.escena--proyecto h1 { font-size: clamp(3.4rem, 1.8rem + 7vw, 8.6rem); line-height: 0.92; letter-spacing: -0.035em; max-width: 12ch; }
.escena--proyecto .escena__texto { padding-bottom: var(--e-8); }
.escena--proyecto .escena__texto > p { font-family: var(--serif); font-size: clamp(1.25rem, 1rem + 0.9vw, 1.8rem); max-width: 30ch; }
.escena__etiquetas { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.escena__etiquetas span { font-size: .9rem; padding: 4px 12px; border: 1px solid rgba(255,255,255,.55); border-radius: var(--r-chip); text-shadow: none; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); background: rgba(255,255,255,.1); }
.migas--foto { padding: 0; color: rgba(255, 255, 255, 0.86); font-size: 0.95rem; }
.migas--foto a { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.acciones-foto { display: flex; flex-wrap: wrap; gap: var(--e-3); margin-top: var(--e-3); }
.ficha-tecnica { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--linea); margin: 0; }
.ficha-tecnica div { padding: var(--e-5) var(--e-4) var(--e-5) 0; }
.ficha-tecnica div + div { padding-left: var(--e-5); border-left: 1px solid var(--linea); }
.ficha-tecnica dt { font-size: 0.88rem; color: var(--tinta-2); }
.ficha-tecnica dd { margin: var(--e-1) 0 0; font-family: var(--serif); font-size: var(--t-3); line-height: 1.2; }
.proy-intro { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--e-8); align-items: start; }
.proy-intro .texto p { font-size: 1.12rem; max-width: var(--medida); }
.panel-form { background: #fff; border: 1px solid var(--linea); padding: var(--e-6); border-radius: var(--r-foto); position: sticky; top: calc(var(--ev-header-h) + 20px); display: grid; gap: var(--e-4); }
.panel-form h2 { font-size: var(--t-4); }
.panel-form > p { margin: 0; color: var(--tinta-2); }
.puntos { list-style: none; padding: 0; margin: var(--e-5) 0 0; max-width: var(--medida); }
.puntos li { padding: var(--e-3) 0; border-top: 1px solid var(--linea); }
.tipo-resumen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-5); padding: var(--e-5) 0; margin: 0; }
.tipo-resumen dt { font-size: 0.88rem; color: var(--tinta-2); }
.tipo-resumen dd { margin: var(--e-1) 0 0; font-family: var(--serif); font-size: var(--t-3); }
.nota-dato { display: block; font-family: var(--sans); font-size: 0.88rem; color: var(--tinta-2); margin-top: var(--e-1); }
.tabla-envoltura { overflow-x: auto; border: 1px solid var(--linea); border-radius: var(--r-foto); background: #fff; }
.tabla { width: 100%; border-collapse: collapse; font-size: 0.95rem; min-width: 560px; }
.tabla th, .tabla td { padding: var(--e-3) var(--e-4); text-align: left; border-bottom: 1px solid var(--linea); white-space: nowrap; }
.tabla th { font-weight: 600; font-size: 0.85rem; color: var(--tinta-2); background: var(--papel-2); }
.tabla td.num, .tabla th.num { text-align: right; }
.tabla tr:last-child td { border-bottom: 0; }
.estado { display: inline-flex; align-items: center; gap: 6px; font-size: 0.88rem; }
.estado::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--exito); }
.estado--reservada::before { background: #B7791F; }
.estado--vendida { color: var(--tinta-3); }
.estado--vendida::before { background: var(--linea-fuerte); }

/* Selector de tipologías */
.selector { display: flex; border-bottom: 1px solid var(--linea); overflow-x: auto; scrollbar-width: none; }
.selector::-webkit-scrollbar { display: none; }
.selector__opcion {
  appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer;
  padding: var(--e-3) var(--e-5) var(--e-3) 0; margin-right: var(--e-5); white-space: nowrap; min-height: 48px;
  font-family: var(--serif); font-size: clamp(1.2rem, 1rem + 0.8vw, var(--t-3)); color: var(--tinta-3);
  transition: color var(--d-micro) var(--curva), border-color var(--d-micro) var(--curva);
}
.selector__opcion:hover { color: var(--tinta); }
.selector__opcion[aria-selected="true"] { color: var(--tinta); border-bottom-color: var(--azul); }
.selector__opcion:focus-visible { outline-offset: -2px; }
.tipo-panel { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--e-5) var(--e-7); align-items: start; grid-template-areas: "plano resumen" "tabla tabla"; padding-top: var(--e-5); }
.tipo-panel:has(.plano-vista[hidden]) { grid-template-areas: "resumen resumen" "tabla tabla"; }
.tipo-datos { display: contents; }
.tipo-lado { grid-area: resumen; display: grid; gap: var(--e-4); align-content: start; }
.tipo-panel .tipo-resumen { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--tinta); padding-top: var(--e-4); gap: var(--e-5); }
.tipo-panel:has(.plano-vista[hidden]) .tipo-resumen { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tipo-panel .tipo-resumen dd { font-size: var(--t-4); }
.tipo-tabla { grid-area: tabla; min-width: 0; }
.plano-vista { grid-area: plano; margin: 0; display: grid; gap: var(--e-3); }
.plano-vista__foto { appearance: none; border: 1px solid var(--linea); padding: 0; display: block; width: 100%; cursor: zoom-in; background: #fff; border-radius: var(--r-foto); overflow: hidden; view-transition-name: plano; }
.plano-vista__foto img { width: 100%; height: auto; aspect-ratio: 1.414 / 1; object-fit: contain; }
.plano-vista__pie { display: flex; justify-content: space-between; align-items: center; gap: var(--e-4); font-size: 0.9rem; color: var(--tinta-2); }
.plano-vista__nav { display: flex; gap: var(--e-2); flex: none; }
.mas--izq { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: var(--e-4) var(--e-5); padding-block: var(--e-5); }
.casilla { display: flex; gap: var(--e-2); align-items: center; cursor: pointer; min-height: 44px; }
.casilla input { width: 20px; height: 20px; accent-color: var(--tinta); }
::view-transition-group(plano) { animation-duration: var(--d-estado); }

/* Escena de vida y riel de imágenes (sobre tinta) */
.lago { background: var(--tinta); color: var(--sobre-tinta); }
.lago__escena { margin: 0; position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: end; min-height: min(96svh, 900px); color: #fff; }
.lago__foto { position: absolute; inset: 0; z-index: -1; background: #1F3256; }
.lago__foto img { width: 100%; height: 100%; object-fit: cover; }
.lago__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19, 33, 58, 0) 50%, rgba(19, 33, 58, 0.9) 100%); }
.lago__texto { padding-block: var(--e-9) var(--e-7); display: grid; gap: var(--e-4); }
.lago__texto h2 { color: #fff; font-size: clamp(2.4rem, 1.4rem + 3.6vw, 5rem); line-height: 1; letter-spacing: -0.025em; max-width: 18ch; }
.lago__texto p { font-family: var(--serif); font-size: clamp(1.15rem, 1rem + 0.5vw, 1.45rem); max-width: 40ch; margin: 0; color: var(--sobre-tinta); }
.lago__riel-cabeza { display: flex; justify-content: space-between; align-items: center; gap: var(--e-4); padding-block: var(--e-7) var(--e-5); }
.lago__riel-cabeza h2 { color: #fff; font-size: var(--t-4); }
.riel {
  display: grid; grid-auto-flow: column; grid-auto-columns: auto; gap: var(--e-4);
  overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none;
  padding-inline: max(var(--gutter), calc((100vw - var(--ancho)) / 2 + var(--gutter)));
  scroll-padding-inline: max(var(--gutter), calc((100vw - var(--ancho)) / 2 + var(--gutter)));
  padding-bottom: var(--e-8);
}
.riel::-webkit-scrollbar { display: none; }
.riel__item { margin: 0; scroll-snap-align: start; display: grid; gap: var(--e-3); width: min(80vw, 640px); }
.riel__item button { all: unset; cursor: zoom-in; display: block; }
.riel__item button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.riel__item .foto { height: clamp(280px, 40vw, 460px); background: #1F3256; }
.riel__item figcaption { font-family: var(--serif); font-style: italic; color: var(--sobre-tinta-2); font-size: 1rem; }

.amenities { columns: 3; column-gap: var(--e-6); list-style: none; padding: 0; margin: 0; }
.amenities li { padding: var(--e-3) 0; border-bottom: 1px solid var(--linea); break-inside: avoid; }
.beneficios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-6); }
.beneficios h3 { font-size: var(--t-3); margin-bottom: var(--e-3); }
.beneficios p { color: var(--tinta-2); margin: 0; }
.costos { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); border-top: 1px solid var(--tinta); margin: 0; }
.costos div { padding: var(--e-4) var(--e-4) var(--e-4) 0; border-bottom: 1px solid var(--linea); }
.costos dt { font-size: .88rem; color: var(--tinta-2); }
.costos dd { margin: var(--e-1) 0 0; font-family: var(--serif); font-size: var(--t-3); }
.costos small { display: block; font-family: var(--sans); font-size: .85rem; color: var(--tinta-3); }
.esquema { margin-top: var(--e-6); white-space: pre-line; max-width: var(--medida); }
.distancias { list-style: none; padding: 0; margin: var(--e-4) 0 0; }
.distancias li { display: flex; justify-content: space-between; gap: var(--e-4); padding: var(--e-3) 0; border-bottom: 1px solid var(--linea); }
.distancias li span:last-child { color: var(--tinta-2); }
.desarrollador { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--e-7); }
.desarrollador dl { display: flex; gap: var(--e-7); margin: 0; }
.desarrollador dd { margin: 0; font-family: var(--serif); font-size: var(--t-5); }
.desarrollador dt { font-size: .88rem; color: var(--tinta-2); }
.cierre { background: var(--papel-2); }
.cierre .contenedor { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--e-6); align-items: center; padding-block: var(--e-8); }
.cierre h2 { font-size: clamp(1.9rem, 1.4rem + 1.6vw, var(--t-5)); }
.cierre p { margin: var(--e-3) 0 0; color: var(--tinta-2); }

/* Listado de proyectos */
.proyectos .filtros .chips { flex: 1 1 100%; }
/* Celular: los filtros de proyectos no quedan fijos (ocupaban media pantalla al bajar): chips en una fila deslizable y
   los tres selectores en una grilla compacta, en su lugar. */
@media (max-width: 760px) {
  .proyectos .filtros { position: static; padding-block: var(--e-3); }
  .proyectos .filtros__fila { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-2); }
  .proyectos .filtros .chips { grid-column: 1 / -1; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .proyectos .filtros .chips::-webkit-scrollbar { display: none; }
  .proyectos .filtros .chip { flex: none; min-height: 40px; }
  .proyectos .filtros select.control { width: 100%; max-width: none; min-height: 44px; font-size: .95rem; padding-left: 12px; padding-right: 30px; background-position: right 10px center; }
  .proyectos #p-zona { grid-column: 1 / -1; }
}
.proyectos-grilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-8) var(--e-6); }
.proyectos-grilla .proyecto-tarjeta:first-child { grid-column: span 2; }
.proyectos-grilla .proyecto-tarjeta:first-child h3 { font-size: var(--t-5); }
.proyectos-grilla .proyecto-tarjeta:first-child .foto { aspect-ratio: 16 / 10; }
.proyecto-tarjeta .foto { aspect-ratio: 4 / 5; }
.proyecto-tarjeta p { margin: 0; color: var(--tinta-2); }

/* Contacto */
.contacto-grilla { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--e-8); align-items: start; padding-bottom: var(--e-8); }
.canales { display: grid; gap: var(--e-4); margin-top: var(--e-6); }
.canal { display: grid; grid-template-columns: 28px 1fr; grid-template-areas: "icono titulo" "icono texto"; gap: 2px var(--e-4); align-items: center; padding: var(--e-4) 0; border-top: 1px solid var(--linea); text-decoration: none; }
.canal > [data-icono] { grid-area: icono; display: flex; align-self: start; padding-top: 2px; }
.canal svg { width: 24px; height: 24px; }
.canal > strong { grid-area: titulo; }
.canal > span:not([data-icono]) { grid-area: texto; }
.canal strong { font-weight: 600; font-size: 1.05rem; }
.canal span { color: var(--tinta-2); font-size: .95rem; }
.canal:hover strong { text-decoration: underline; text-underline-offset: 4px; }

.aviso-error { margin: calc(var(--ev-header-h) + var(--e-5)) auto var(--e-5); padding: var(--e-5); border: 1px solid var(--error); border-radius: var(--r-control); color: var(--tinta); background: #fff; max-width: 60ch; }
.escena .aviso-error, .con-foto .aviso-error { margin-top: var(--e-5); }
.aviso-error strong { color: var(--error); }

/* ── Responsive ───────────────────────────────────────── */
@media (max-width: 1100px) { .grilla { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) {
  .vender, .proy-intro, .contacto-grilla, .desarrollador, .cierre .contenedor { grid-template-columns: 1fr; }
  .seleccion { grid-template-columns: 1fr 1fr; gap: var(--e-6) var(--e-5); }
  .seleccion > * { grid-column: auto !important; margin-top: 0 !important; }
  .carril { grid-auto-columns: minmax(240px, 70%); }
  .ficha-portada, .ficha-cuerpo { grid-template-columns: 1fr; }
  .ficha-resumen { position: static; }
  .datos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .galeria__principal { aspect-ratio: 4 / 3; margin-inline: calc(var(--gutter) * -1); border-radius: 0; }
  .tira { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tira button:nth-child(n+5) { display: none; }
  .barra-movil {
    position: fixed; inset: auto 0 0 0; z-index: 40; display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-2);
    padding: var(--e-3) var(--gutter) calc(var(--e-3) + env(safe-area-inset-bottom, 0px));
    background: color-mix(in srgb, var(--papel) 96%, transparent); border-top: 1px solid var(--linea);
  }
  .con-barra { padding-bottom: 80px; }
  .acciones { display: none; }
  .ficha-tecnica, .tipo-resumen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tipo-resumen dd, .ficha-tecnica dd { font-size: var(--t-2); }
  .ficha-tecnica div + div { padding-left: 0; border-left: 0; }
  .ficha-tecnica div { border-top: 1px solid var(--linea); }
  .panel-form { position: static; }
  .amenities { columns: 2; }
  .beneficios { grid-template-columns: 1fr; }
  .tipo-panel, .tipo-panel:has(.plano-vista[hidden]) { grid-template-columns: 1fr; grid-template-areas: "plano" "resumen" "tabla"; }
  .tipo-panel .tipo-resumen, .tipo-panel:has(.plano-vista[hidden]) .tipo-resumen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tipo-panel .tipo-resumen dd { font-size: var(--t-3); }
  .proyectos-grilla { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grilla .tarjeta--grande { grid-column: 1 / -1; grid-row: auto; }
}
@media (max-width: 760px) {
  .zona, .zona:nth-child(2), .zona:nth-child(3) { grid-column: 1 / -1; }
  .zona .foto { height: 220px; }
  .buscador { max-width: none; flex: 1 1 0; min-width: 0; }
  .filtros__fila { flex-wrap: nowrap; }
  .cat-cabeza .bajada { font-size: 1rem; }
  .orden label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .resultado-linea { padding-block: var(--e-4); }
  .btn-filtros { display: inline-flex; }
  .filtros__extra {
    position: fixed; inset: auto 0 0 0; z-index: var(--z-hoja); background: var(--papel);
    border-radius: 14px 14px 0 0; box-shadow: var(--sombra-hoja);
    padding: var(--e-5) var(--gutter) calc(var(--e-5) + env(safe-area-inset-bottom, 0px));
    display: grid; gap: var(--e-4); max-height: 86dvh; overflow-y: auto; overscroll-behavior: contain;
  }
  .filtros__extra[data-abierta="false"] { display: none; }
  .filtros__extra select.control { width: 100%; max-width: none; }
  .hoja__cabeza { display: flex; justify-content: space-between; align-items: center; }
  .hoja__cabeza h2 { font-size: var(--t-3); }
  .hoja__pie { display: grid; gap: var(--e-3); }
  .velo { position: fixed; inset: 0; background: rgba(19,33,58,.42); z-index: calc(var(--z-hoja) - 1); }
}
@media (max-width: 700px) {
  .escena { min-height: 0; grid-template-rows: auto auto; }
  .escena__foto { bottom: auto; height: var(--foto-m, 60svh); }
  .escena__texto { min-height: calc(var(--foto-m, 60svh) - var(--ev-header-h)); align-content: end; padding-bottom: var(--e-5); gap: var(--e-3); }
  .escena h1 { font-size: clamp(2.2rem, 1.4rem + 4vw, 2.8rem); }
  .escena__texto > p { font-size: 1rem; }
  .escena__base { grid-template-columns: 1fr; padding-inline: 0; }
  .hoja-papel { border-radius: 0; padding: var(--e-5) var(--gutter) var(--e-4); max-width: none; }
  .escena .frase { font-size: 1.3rem; line-height: 1.75; }
  .frase__hueco { margin: 0; }
  .escena__pie { position: absolute; top: calc(var(--ev-header-h) + 12px); right: var(--gutter); padding: 0; }
  .escena__pie span { display: none; }
  .escena__pie strong { font-size: 1rem; }
  .escena--proyecto { --foto-m: 82svh; }
  .escena--proyecto h1 { font-size: clamp(3rem, 2rem + 6vw, 4rem); }
  .amenities { columns: 1; }
  .proyectos-grilla { grid-template-columns: 1fr; }
  .proyectos-grilla .proyecto-tarjeta:first-child { grid-column: auto; }
  .proyectos-grilla .proyecto-tarjeta:first-child .foto { aspect-ratio: 4 / 3; }
  .proyectos-grilla .proyecto-tarjeta:first-child h3 { font-size: var(--t-4); }
}
@media (max-width: 560px) {
  .seleccion { grid-template-columns: 1fr; }
  .grilla { grid-template-columns: 1fr; gap: var(--e-6); }
  .caracteristicas { columns: 1; }
}

/* ── Movimiento ligado al scroll (solo si el navegador lo soporta y no se pidió reducir movimiento) ── */
@keyframes ab-deriva { to { transform: translateY(6%) scale(1.14); } }
@keyframes ab-asentar { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes ab-barra { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    .escena__foto { animation: ab-deriva linear both; animation-timeline: scroll(root); animation-range: 0 100svh; transform-origin: 50% 0; }
    .banda__foto img, .lago__foto img { animation: ab-asentar linear both; animation-timeline: view(); animation-range: entry 0% cover 55%; }
    .barra__riel i { animation: ab-barra linear both; animation-timeline: view(); animation-range: entry 10% cover 40%; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .tarjeta:hover .foto img, .proyecto-tarjeta:hover .foto img, .zona:hover .foto img { transform: none; }
  .escena__foto [data-capa].entrando { transform: none; }
}
