/* =====================================================================
   publico.css — Sitio público de ventas
   Cabecera, navegación, pie, secciones y bloques por pantalla.
   Cada sprint edita SOLO su sección marcada (=== NOMBRE === … === FIN NOMBRE ===).
   ===================================================================== */

/* ---------- Cabecera ---------- */
.sitio-cabecera { position: sticky; top: 0; z-index: var(--z-barra); border-bottom: var(--borde); background: color-mix(in srgb, var(--c-barra) 90%, transparent); -webkit-backdrop-filter: var(--desenfoque); backdrop-filter: var(--desenfoque); }
.sitio-cabecera__fila { display: flex; align-items: center; gap: var(--sp-3); min-height: var(--cabecera-alto); }
.sitio-marca { display: flex; align-items: center; gap: var(--sp-em-3); min-width: 0; margin-right: auto; color: var(--c-texto); font-size: var(--fs-lg); font-weight: 800; text-decoration: none; }
.sitio-marca:hover { color: var(--c-texto); }
.sitio-marca__simbolo { display: inline-grid; color: var(--c-acento-texto); --icono-tam: 1.6em; }
@media (pointer: coarse) { .sitio-marca { min-height: var(--tactil); } }
.sitio-marca__logo { max-width: min(12rem, 45vw); max-height: clamp(2rem, 1.6rem + 1.5vw, 2.75rem); width: auto; object-fit: contain; }
.sitio-nav ul { display: flex; gap: var(--sp-1); margin: 0; padding: 0; list-style: none; }
.sitio-nav a {
  display: inline-flex;
  align-items: center;
  min-height: var(--control-alto);
  padding: var(--sp-em-2) var(--sp-em-4);
  border-radius: var(--r-2);
  color: var(--c-texto-2);
  font-size: var(--fs-sm);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.sitio-nav a:hover { background: var(--c-realce); color: var(--c-texto); }
.sitio-nav a[aria-current="page"] { color: var(--c-texto); box-shadow: var(--indicador-abajo) var(--c-acento); border-radius: 0; }
.sitio-cabecera__acciones { display: flex; align-items: center; gap: var(--sp-1); }
.sitio-favoritos { position: relative; }
.sitio-favoritos .badge--contador { position: absolute; top: 0.05rem; right: 0.05rem; }
.sitio-menu-boton { display: none; }

@media (max-width: 63.99rem) {
  .sitio-nav { display: none; }
  .sitio-menu-boton { display: inline-flex; }
  .sitio-cabecera__wa { min-width: var(--control-alto); padding: 0; aspect-ratio: 1; }
  .sitio-cabecera__wa-texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

.menu-movil__lista { display: grid; gap: var(--sp-hilo); }
.menu-movil__item { display: flex; align-items: center; gap: var(--sp-em-4); min-height: var(--tactil); padding: var(--sp-em-3) var(--sp-em-5); border-radius: var(--r-2); color: var(--c-texto); font-size: var(--fs-md); font-weight: 600; text-decoration: none; }
.menu-movil__item:hover { background: var(--c-realce); color: var(--c-texto); }
.menu-movil__item[aria-current="page"] { background: var(--c-acento-suave); }
.menu-movil__item .badge--contador { margin-left: auto; }

main#contenido:focus { outline: none; }

/* ---------- Secciones ---------- */
.seccion { padding-block: var(--sp-7); }
.seccion--compacta { padding-block: var(--sp-5); }
.seccion--superficie { border-block: var(--borde); background: var(--c-superficie); }
.seccion__cabecera { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sp-2); margin-bottom: var(--sp-4); }
.seccion__titulo { margin: 0; }
.seccion__subtitulo { margin: var(--sp-1) 0 0; color: var(--c-texto-suave); }

/* ---------- Pie ---------- */
.sitio-pie { margin-top: var(--sp-8); padding-block: var(--sp-7) var(--sp-5); border-top: var(--borde); background: var(--c-barra); color: var(--c-sobre-solido); font-size: var(--fs-sm); }
.sitio-pie a { color: var(--c-sobre-solido); }
.sitio-pie :focus-visible { outline-color: var(--c-sobre-solido); }
.sitio-pie__rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--sp-5); }
.sitio-pie__titulo { margin-bottom: var(--sp-3); color: var(--c-sobre-solido); font-size: var(--fs-md); }
.sitio-pie__lista { display: grid; gap: var(--sp-2); }
.sitio-pie p { margin-bottom: var(--sp-2); }
.sitio-pie__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-2); margin-top: var(--sp-6); padding-top: var(--sp-4); border-top: 1px solid var(--c-blanco-20); }

/* === SPRINT 3 · HOME === */
/* Portada: foto de la empresa (Configuración → Marca) oscurecida hacia el texto; sin foto, degradado con el acento */
.home-hero { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--sp-8); border-bottom: var(--borde); background: var(--fondo-portada); }
/* Capas en orden del documento: foto, velo (::after) y contenido encima */
.home-hero__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-hero--foto::after { content: ""; position: absolute; inset: 0; background: var(--c-velo-foto-movil); }
@media (min-width: 64rem) {
  .home-hero--foto { display: grid; align-content: center; min-height: var(--portada-alto); }
  .home-hero--foto::after { background: var(--c-velo-foto); }
}
.home-hero__rejilla { position: relative; z-index: var(--z-1); display: grid; grid-template-areas: "texto" "buscador" "acciones"; gap: var(--sp-4) var(--sp-7); align-items: start; }
@media (min-width: 64rem) {
  .home-hero__rejilla { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-rows: auto 1fr; grid-template-areas: "texto buscador" "acciones buscador"; align-items: center; }
  .home-buscador { justify-self: end; width: min(100%, 24rem); } /* panel angosto a la derecha: la foto de portada se ve en el centro */
}
.home-hero__texto { grid-area: texto; min-width: 0; }
.home-hero__empresa { display: block; margin-bottom: var(--sp-3); color: var(--c-acento-texto); font-size: var(--fs-sm); font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; }
.home-hero__titulo { margin-bottom: var(--sp-4); font-size: var(--fs-hero); line-height: 1.08; letter-spacing: -0.01em; }
.home-hero__resalte { display: block; color: var(--c-acento-texto); }
.home-hero__lema { max-width: 46ch; margin: 0; color: var(--c-texto-2); font-size: var(--fs-lg); }
.home-hero__acciones { grid-area: acciones; align-self: start; }
.home-buscador { container: home-buscador / inline-size; grid-area: buscador; display: grid; gap: var(--sp-3); }
.home-buscador__titulo { margin: 0; font-size: var(--fs-lg); }
/* El buscador se acomoda a SU ancho: apilado · 2 columnas (marca | modelo / precio | buscar) · una sola fila */
.home-buscador__campos { display: grid; gap: var(--sp-3); align-items: end; }
@container home-buscador (min-width: 40rem) { .home-buscador__campos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container home-buscador (min-width: 52rem) { .home-buscador__campos { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(max-content, 0.8fr); } }
.home-buscador__estado { margin: 0; color: var(--c-texto-2); font-size: var(--fs-sm); }
.home-buscador__estado:empty { display: none; }
.home-buscador__pie { display: flex; align-items: center; justify-content: center; gap: var(--sp-em-3); margin: 0; padding-top: var(--sp-3); border-top: 1px solid var(--c-blanco-16); color: var(--c-texto-suave); font-size: var(--fs-sm); text-align: center; }
.home-buscador__pie .icono { color: var(--c-acento-texto); }
@media (max-width: 39.99rem) {
  .home-hero__lema { font-size: var(--fs-md); }
  .home-hero__acciones .btn { flex: 1 1 auto; }
}
/* Secciones seguidas sin fondo propio: un solo espacio entre ellas (densidad) */
.pagina-home .seccion:not(.seccion--superficie) + .seccion:not(.seccion--superficie) { padding-top: 0; }

/* Accesos por presupuesto y marcas */
.home-presupuesto { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); }
.home-presupuesto__titulo { display: inline-flex; align-items: center; gap: var(--sp-em-3); margin: 0; font-size: var(--fs-md); }
.home-presupuesto__titulo .icono { color: var(--c-acento-texto); }
.home-presupuesto__nota { flex-basis: 100%; margin: 0; }
.home-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
@media (max-width: 39.99rem) { /* móvil: presupuestos en una fila deslizable dentro de su contenedor */
  .home-presupuesto .home-chips { flex-wrap: nowrap; margin-inline: calc(-1 * var(--gutter)); padding: var(--sp-1) var(--gutter); overflow-x: auto; scrollbar-width: none; }
  .home-presupuesto .home-chips > li { flex: none; }
}

/* Bloques de tarjetas: carrusel con scroll-snap dentro de su contenedor (< 40rem) y rejilla de 2/3/4 columnas */
.home-autos { container: home-autos / inline-size; }
.home-autos__pista { display: none; align-items: center; gap: var(--sp-em-2); margin: var(--sp-2) 0 0; color: var(--c-texto-suave); font-size: var(--fs-sm); }
@container home-autos (max-width: 39.99rem) {
  .home-autos .rejilla-vehiculos {
    --rejilla-contenedor: normal; /* sin el modo "tarjeta horizontal" de la rejilla: en el carrusel la tarjeta va vertical */
    --rejilla-columnas: none;
    --rejilla-espacio: var(--sp-3);
    grid-auto-flow: column;
    grid-auto-columns: min(80%, 17rem);
    margin-inline: calc(-1 * var(--gutter));
    padding: 0 var(--gutter) var(--sp-2);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--gutter);
  }
  .home-autos .rejilla-vehiculos > .card-vehiculo { scroll-snap-align: start; }
  .home-autos .rejilla-vehiculos:has(> .card-vehiculo:nth-child(2)) ~ .home-autos__pista { display: flex; }
}
/* Umbrales elegidos para que las 5 acciones táctiles de la tarjeta midan ≥ 2.75rem de ancho (también con barra de scroll) */
@container home-autos (min-width: 40rem) { .home-autos .rejilla-vehiculos { --rejilla-columnas: repeat(2, minmax(0, 1fr)); --rejilla-espacio: var(--sp-3); } }
@container home-autos (min-width: 43rem) { .home-autos .rejilla-vehiculos { --rejilla-columnas: repeat(3, minmax(0, 1fr)); } }
@container home-autos (min-width: 57.5rem) { .home-autos .rejilla-vehiculos { --rejilla-columnas: repeat(4, minmax(0, 1fr)); } }
/* Con 2 o 3 columnas se muestran 6 (filas completas, menos deslizamiento); "Ver todos" lleva al resto */
@container home-autos (min-width: 40rem) and (max-width: 57.49rem) {
  .home-autos--limitado .rejilla-vehiculos > .card-vehiculo:nth-child(n + 7) { display: none; }
}

/* Por tipo de auto */
.home-segmentos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); gap: var(--sp-3); }
.home-segmento {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: var(--tactil);
  height: 100%;
  padding: var(--sp-3);
  border: var(--borde);
  border-radius: var(--r-2);
  background: var(--c-superficie);
  color: var(--c-texto);
  text-decoration: none;
  transition: border-color var(--transicion), background-color var(--transicion);
}
.home-segmento:hover { border-color: var(--c-borde-fuerte); background: var(--c-superficie-2); color: var(--c-texto); }
.home-segmento > .icono { color: var(--c-acento-texto); }
.home-segmento__texto { display: flex; flex-direction: column; min-width: 0; }
.home-segmento__nombre { font-weight: 700; line-height: 1.25; }
.home-segmento__conteo { color: var(--c-texto-suave); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }

/* Confianza */
.home-confianza { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: var(--sp-6); }
.home-sello { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--sp-3) var(--sp-4); align-items: start; }
.home-sello__icono { width: clamp(2.5rem, 2rem + 2vw, 3.5rem); height: auto; color: var(--c-info); }
.home-sello__titulo, .home-empresa__titulo { margin: 0; }
.home-sello__cifra { color: var(--c-info); font-size: var(--fs-xl); font-weight: 800; font-variant-numeric: tabular-nums; }
.home-checks, .home-empresa__lista { display: grid; gap: var(--sp-2); }
.home-checks li, .home-empresa__lugar { display: flex; align-items: flex-start; gap: var(--sp-em-3); }
.home-checks .icono { margin-top: var(--sp-em-1); color: var(--c-ok); }
.home-empresa__lista { gap: var(--sp-4); }
.home-empresa__lugar > .icono { margin-top: var(--sp-em-1); color: var(--c-texto-suave); }

/* Cómo comprar */
.home-pasos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--sp-3); counter-reset: paso; }
.home-paso { display: grid; align-content: start; gap: var(--sp-2); padding: var(--sp-4); border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie); counter-increment: paso; }
.home-paso__cabecera { display: flex; align-items: center; gap: var(--sp-2); }
.home-paso__cabecera > .icono { color: var(--c-acento-texto); }
.home-paso__numero { display: inline-grid; place-items: center; min-width: 1.9em; aspect-ratio: 1; border-radius: 50%; background: var(--c-acento-solido); color: var(--c-sobre-solido); font-weight: 800; font-variant-numeric: tabular-nums; }
.home-paso__numero::before { content: counter(paso); }
.home-paso__titulo { margin: 0; font-size: var(--fs-md); }
.home-paso__texto { margin: 0; color: var(--c-texto-2); font-size: var(--fs-sm); }
/* === FIN HOME === */

/* === SPRINT 3 · CATÁLOGO Y FILTROS === */
/* -- 3a catálogo: barra superior, filtros, deslizadores, bottom sheet y rejilla -- */
/* autos.php + catalogo.js. --cat-cabecera-alto y --cat-barra-alto las mide el JS (valores de reserva sin JS). */
.catalogo { --cat-cabecera-alto: calc(var(--cabecera-alto) + 1px); --cat-barra-alto: 3.5rem; padding-block: var(--sp-4) var(--sp-6); }
.catalogo-cabecera { display: grid; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.catalogo-cabecera__titulo { margin: 0; }
.catalogo-cabecera__texto { margin: 0; max-width: 60ch; color: var(--c-texto-2); }
.catalogo-aviso { align-items: center; margin-bottom: var(--sp-3); }
.catalogo-aviso a { font-weight: 600; }
@media (pointer: coarse) {
  .catalogo-aviso a { display: inline-flex; align-items: center; min-height: var(--tactil); }
}

/* Barra superior pegajosa: contador en vivo, filtros (< 1024), orden, vista y chips activos */
.catalogo-barra {
  position: sticky;
  top: var(--cat-cabecera-alto);
  z-index: calc(var(--z-barra) - 1);
  display: grid;
  gap: var(--sp-2);
  margin-inline: calc(-1 * var(--gutter));
  padding: var(--sp-2) var(--gutter);
  border-bottom: var(--borde);
  background: var(--c-fondo);
}
.catalogo-barra__fila { display: flex; align-items: center; gap: var(--sp-2) var(--sp-3); min-width: 0; }
.catalogo-barra__total { flex: none; margin: 0 auto 0 0; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.catalogo-barra__filtros { flex: none; }
.catalogo-barra__n { font-variant-numeric: tabular-nums; }
.catalogo-barra__orden { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; }
.catalogo-barra__etiqueta { color: var(--c-texto-2); font-size: var(--fs-sm); font-weight: 600; white-space: nowrap; }
.catalogo-barra__orden select { width: auto; max-width: min(16rem, 100%); padding-right: var(--hueco-control); font-size: var(--fs-sm); text-overflow: ellipsis; }
.catalogo-barra__vista { display: flex; gap: var(--sp-05); }
.catalogo-barra__chips { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; }
.catalogo-chips { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-2); min-width: 0; }
.catalogo-chip { max-width: 100%; }
.catalogo-chip > span:first-child { overflow: hidden; text-overflow: ellipsis; }
.catalogo-barra__limpiar { flex: none; }
@media (min-width: 64rem) {
  .catalogo-barra__filtros { display: none; }
}
@media (max-width: 63.99rem) {
  .catalogo-barra__vista { display: none; }
  .catalogo-chips { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; padding-block: var(--sp-1); scrollbar-width: thin; }
  .catalogo-chips > li { flex: none; }
}
@media (max-width: 39.99rem) {
  .catalogo-barra__fila { flex-wrap: wrap; }
  .catalogo-barra__total { margin-right: 0; font-size: var(--fs-sm); }
  .catalogo-barra__orden { flex: 1 1 7rem; }
  .catalogo-barra__orden select { width: 100%; max-width: none; padding-inline: var(--sp-em-4) var(--hueco-control); }
  .catalogo-barra__filtros { padding-inline: var(--sp-em-4); }
  .catalogo-barra__etiqueta { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Cuerpo: barra lateral pegajosa ≥ 1024 px; en < 1024 los filtros viven en el bottom sheet */
.catalogo-cuerpo { display: grid; align-items: start; gap: var(--sp-5); margin-top: var(--sp-4); }
.catalogo-lateral { min-width: 0; scroll-margin-top: calc(var(--cat-cabecera-alto) + var(--cat-barra-alto)); }
@media (min-width: 64rem) {
  .catalogo-cuerpo { grid-template-columns: clamp(220px, 20vw, 300px) minmax(0, 1fr); }
  .catalogo-lateral {
    position: sticky;
    top: calc(var(--cat-cabecera-alto) + var(--cat-barra-alto) + var(--sp-3));
    max-height: calc(100dvh - var(--cat-cabecera-alto) - var(--cat-barra-alto) - 2 * var(--sp-3));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
}
@media (max-width: 63.99rem) {
  .catalogo-lateral { display: none; }
  .catalogo:not(.catalogo--js) .catalogo-lateral:target { display: block; }
}

/* Filtros */
.catalogo-filtros { border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie); }
.catalogo-grupo + .catalogo-grupo { border-top: var(--borde); }
.catalogo-grupo__titulo {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: var(--tactil);
  padding: var(--sp-2) var(--sp-3);
  font-weight: 700;
  list-style: none;
  user-select: none;
}
.catalogo-grupo__titulo::-webkit-details-marker { display: none; }
.catalogo-grupo__titulo:hover { background: var(--c-superficie-2); }
.catalogo-grupo__nombre { margin-right: auto; }
.catalogo-grupo__flecha { color: var(--c-texto-suave); transition: transform var(--transicion); }
.catalogo-grupo[open] > .catalogo-grupo__titulo .catalogo-grupo__flecha { transform: rotate(180deg); }
.catalogo-grupo__cuerpo { display: grid; gap: var(--sp-4); padding: var(--sp-1) var(--sp-3) var(--sp-4); }
.catalogo-filtro { display: grid; gap: var(--sp-2); min-width: 0; }
.catalogo-filtro__titulo { display: flex; align-items: center; gap: var(--sp-em-2); margin: 0 0 var(--sp-1); color: var(--c-texto); font-size: var(--fs-sm); font-weight: 700; }
.catalogo-filtro__sub { display: grid; gap: var(--sp-1); }
.catalogo-filtro__subtitulo { color: var(--c-texto-2); font-size: var(--fs-sm); font-weight: 600; }
.catalogo-filtro__ayuda { margin: 0; color: var(--c-texto-suave); font-size: var(--fs-xs); }
.catalogo-filtro__ayuda:empty { display: none; }
.catalogo-opciones { display: flex; flex-wrap: wrap; gap: var(--sp-1); }
.catalogo-opciones--plazos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 2.9rem), 1fr)); }
.catalogo-lista { display: grid; padding: 0 var(--sp-1); }
.catalogo-lista--columnas { grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr)); column-gap: var(--sp-3); }
.catalogo-lista[data-cat-marcas] { max-height: clamp(10rem, 32vh, 17rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.catalogo-check { display: flex; width: 100%; padding-inline: var(--sp-05); border-radius: var(--r-1); }
.catalogo-check:hover { background: var(--c-superficie-2); }
.catalogo-check__texto { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.catalogo-conteo { color: var(--c-texto-suave); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; white-space: nowrap; }
.catalogo-filtros [data-conteo="0"]:not(.chip):not(:has(input:checked)) { opacity: 0.5; }
.catalogo-switches { display: grid; gap: var(--sp-1); }
.catalogo-switch { display: flex; align-items: center; min-height: 2.25rem; }
.catalogo-switch__texto { flex: 1 1 auto; min-width: 0; }
.catalogo-presets { display: flex; flex-wrap: wrap; gap: var(--sp-1); }
.catalogo-preset { min-height: 2rem; font-size: var(--fs-xs); }
@media (pointer: coarse) {
  .catalogo-preset { min-height: var(--tactil); }
  .catalogo-switch { min-height: var(--tactil); }
}
.catalogo-filtros__pie {
  position: sticky;
  bottom: 0;
  display: grid;
  gap: var(--sp-2);
  padding: var(--sp-3);
  border-top: var(--borde);
  background: var(--c-superficie);
}

/* Doble deslizador: dos range superpuestos sobre una pista con relleno entre ambos pulgares */
.catalogo-rango { --cat-pulgar: 1.5rem; --cat-punto: 50%; --cat-anillo: 72%; }
@media (pointer: coarse) { .catalogo-rango { --cat-pulgar: var(--tactil); --cat-punto: 26%; --cat-anillo: 40%; } }
.catalogo-rango__pistas { position: relative; height: var(--control-alto); }
.catalogo-rango__pista {
  position: absolute;
  top: 50%;
  inset-inline: calc(var(--cat-pulgar) / 2);
  height: 0.375rem;
  border-radius: var(--r-pildora);
  background: var(--c-borde);
  transform: translateY(-50%);
}
.catalogo-rango__relleno {
  position: absolute;
  inset-block: 0;
  left: var(--desde, 0%);
  right: calc(100% - var(--hasta, 100%));
  border-radius: inherit;
  background: var(--c-acento-solido);
}
.catalogo-rango__control {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
  pointer-events: none;
}
.catalogo-rango__control:focus-visible { outline: none; }
.catalogo-rango--min-arriba .catalogo-rango__control[data-extremo="min"] { z-index: var(--z-1); }
.catalogo-rango__control::-webkit-slider-runnable-track { height: var(--control-alto); background: transparent; }
.catalogo-rango__control::-moz-range-track { height: 100%; background: transparent; }
.catalogo-rango__control::-webkit-slider-thumb {
  width: var(--cat-pulgar);
  height: var(--cat-pulgar);
  margin-top: calc((var(--control-alto) - var(--cat-pulgar)) / 2);
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle closest-side, var(--c-superficie) 0 var(--cat-punto), var(--c-acento-solido) calc(var(--cat-punto) + 2%) var(--cat-anillo), transparent calc(var(--cat-anillo) + 2%));
  cursor: grab;
  pointer-events: auto;
  -webkit-appearance: none;
  appearance: none;
}
.catalogo-rango__control::-moz-range-thumb {
  width: var(--cat-pulgar);
  height: var(--cat-pulgar);
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle closest-side, var(--c-superficie) 0 var(--cat-punto), var(--c-acento-solido) calc(var(--cat-punto) + 2%) var(--cat-anillo), transparent calc(var(--cat-anillo) + 2%));
  cursor: grab;
  pointer-events: auto;
}
.catalogo-rango__control:active::-webkit-slider-thumb { cursor: grabbing; }
.catalogo-rango__control:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--c-foco); outline-offset: -2px; }
.catalogo-rango__control:focus-visible::-moz-range-thumb { outline: 2px solid var(--c-foco); outline-offset: -2px; }
.catalogo-rango__entradas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); gap: var(--sp-2); }

/* Resultados */
.catalogo-resultados { position: relative; display: grid; align-content: start; gap: var(--sp-4); min-width: 0; }
.catalogo .rejilla-vehiculos { transition: opacity var(--transicion); }
.catalogo .rejilla-vehiculos:not(.rejilla-vehiculos--lista) { --rejilla-columnas: repeat(auto-fill, minmax(clamp(13rem, 16vw, 15rem), 1fr)); }
@media (min-width: 40rem) and (max-width: 47.99rem) {
  .catalogo .rejilla-vehiculos:not(.rejilla-vehiculos--lista) { --rejilla-columnas: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 39.99rem) {
  .catalogo .rejilla-vehiculos { --rejilla-columnas: minmax(0, 1fr); }
}
.catalogo--cargando .rejilla-vehiculos { opacity: 0.55; }
.catalogo-cargando { position: absolute; inset: 0; z-index: var(--z-3); display: flex; justify-content: center; pointer-events: none; }
.catalogo-cargando__pildora {
  position: sticky;
  top: calc(var(--cat-cabecera-alto) + var(--cat-barra-alto) + var(--sp-3));
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  height: fit-content;
  margin: var(--sp-3) 0 0;
  padding: var(--sp-2) var(--sp-4);
  border-radius: var(--r-pildora);
  border: var(--borde);
  background: var(--c-superficie-elevada);
  color: var(--c-texto);
  font-size: var(--fs-sm);
  font-weight: 600;
}
.catalogo-mas { display: grid; justify-items: center; gap: var(--sp-2); padding-top: var(--sp-2); text-align: center; }
.catalogo-mas__estado { margin: 0; color: var(--c-texto-suave); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.catalogo-mas__acciones { justify-content: center; }

/* Bottom sheet de filtros (< 1024 px) con pie pegado "Ver N resultados" */
dialog.catalogo-hoja { height: 92dvh; max-height: 92dvh; }
.catalogo-hoja { --modal-relleno: 0 var(--sp-4); }
.catalogo-hoja .catalogo-filtros { border: 0; border-radius: 0; background: transparent; }
.catalogo-hoja .catalogo-grupo__titulo, .catalogo-hoja .catalogo-grupo__cuerpo { padding-inline: 0; }
.catalogo-hoja__pie { flex-wrap: nowrap; padding-bottom: max(var(--sp-3), env(safe-area-inset-bottom)); }
.catalogo-hoja__pie .btn { flex: 1 1 auto; }
.catalogo-hoja__pie .catalogo-hoja__ver { flex: 2 1 auto; }
@media (min-width: 40rem) {
  dialog.catalogo-hoja { width: min(46rem, 100%); margin-inline: auto; }
}

/* 404 de segmento */
.catalogo-404 { max-width: 60rem; }
.catalogo-404__buscador { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-2) var(--sp-3); max-width: 40rem; }
.catalogo-404__buscador .form-campo { flex: 1 1 14rem; }
.catalogo-404__titulo { margin: 0; font-size: var(--fs-lg); }

/* -- 3c popover de cuota de la tarjeta -- */
/* simulador.js: ≥ 640 px .simulador-cuota (fixed, anclado al botón por JS) · < 640 px dialog.drawer--abajo.simulador-cuota-hoja (mismo contenido) */
.simulador-cuota {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--z-flotante);
  display: flex;
  flex-direction: column;
  width: min(22rem, 92vw);
  max-height: calc(100dvh - 1rem);
  border: var(--borde);
  border-radius: var(--r-3);
  background: var(--c-superficie);
  box-shadow: var(--sombra);
  overflow: hidden;
  animation: simulador-cuota-entrar var(--dur-rapida) var(--curva);
}
.simulador-cuota:focus { outline: none; }
@keyframes simulador-cuota-entrar { from { opacity: 0; transform: translateY(0.25rem); } }
dialog.simulador-cuota-hoja { overflow: hidden; }
.simulador-cuota__cabecera { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-2); padding: var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4); border-bottom: var(--borde); }
.simulador-cuota__encabezado { min-width: 0; padding-top: var(--sp-1); }
.simulador-cuota__titulo { margin: 0; font-size: var(--fs-md); }
.simulador-cuota__auto { margin: var(--sp-05) 0 0; color: var(--c-texto-2); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.simulador-cuota__cuerpo { flex: 1 1 auto; display: grid; gap: var(--sp-3); min-height: 0; padding: var(--sp-3) var(--sp-4); overflow: auto; overscroll-behavior: contain; }
.simulador-cuota__fila { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-2); }
.simulador-cuota__pct { font-weight: 700; font-variant-numeric: tabular-nums; }
.simulador-cuota__entrada { display: grid; grid-template-columns: minmax(0, 1fr) minmax(6.5rem, 45%); align-items: center; gap: var(--sp-2); }
.simulador-cuota__entrada input[type="text"] { text-align: right; font-variant-numeric: tabular-nums; }
.simulador-cuota__ayuda--ajuste { color: var(--c-alerta); font-weight: 600; }
.simulador-cuota__grupo { display: grid; gap: var(--sp-1); }
.simulador-cuota__grupo legend { margin-bottom: var(--sp-1); }
.simulador-cuota__plazos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 2.75rem), 1fr)); gap: var(--sp-1); }
.simulador-cuota__resultado { display: grid; gap: var(--sp-2); padding: var(--sp-3); border-radius: var(--r-2); background: var(--c-ok-suave); }
.simulador-cuota__cuota { margin: 0; color: var(--c-ok); font-size: var(--fs-md); font-weight: 600; line-height: 1.15; }
.simulador-cuota__monto { font-size: var(--fs-precio); font-weight: 800; font-variant-numeric: tabular-nums; }
.simulador-cuota__detalle { display: grid; gap: var(--sp-05); margin: 0; font-size: var(--fs-sm); }
.simulador-cuota__detalle div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0 var(--sp-2); }
.simulador-cuota__detalle dt { color: var(--c-texto-2); }
.simulador-cuota__detalle dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.simulador-cuota__nota { margin: 0; color: var(--c-texto-suave); font-size: var(--fs-xs); }
.simulador-cuota__pie { display: grid; gap: var(--sp-2); padding: var(--sp-3) var(--sp-4) max(var(--sp-3), env(safe-area-inset-bottom)); border-top: var(--borde); background: var(--c-superficie-2); }
@media (pointer: coarse) {
  .simulador-cuota input[type="range"], .simulador-cuota-hoja input[type="range"] { min-height: var(--tactil); }
}
/* El botón que abrió la calculadora queda visible y marcado aunque las acciones de la tarjeta sean "al pasar el cursor" */
.card-vehiculo__acciones:has([aria-expanded="true"]) { opacity: 1; }
.card-vehiculo__accion[data-accion="cuota"][aria-expanded="true"] { background: var(--c-superficie-hundida); color: var(--c-texto); }

/* === FIN CATÁLOGO === */

/* === SPRINT 4 · FICHA, SIMULADOR Y COSTO TOTAL === */
/* -- 4a ficha: estructura (móvil apilado · ≥ 1024: galería + compra, dos columnas de tarjetas y formas de pago a todo el ancho) -- */
.ficha { padding-block: var(--sp-3) var(--sp-6); }
.ficha .breadcrumb { margin-bottom: var(--sp-3); }
.ficha__cuerpo {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "galeria" "compra" "principal" "lateral" "pago";
  gap: var(--sp-4);
  align-items: start;
}
@media (min-width: 64rem) {
  .ficha__cuerpo {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    grid-template-areas: "galeria compra" "principal lateral" "pago pago";
    gap: var(--sp-5);
  }
}
.ficha__galeria { grid-area: galeria; min-width: 0; }
.ficha__compra {
  grid-area: compra;
  display: grid;
  gap: var(--sp-3);
  min-width: 0;
}
.ficha__principal, .ficha__lateral { display: grid; align-content: start; gap: var(--sp-5); min-width: 0; }
.ficha__principal { grid-area: principal; }
.ficha__lateral { grid-area: lateral; }
.ficha__pago { grid-area: pago; }
.ficha-extras { display: grid; gap: var(--sp-6); margin-top: var(--sp-6); }

/* Lo destacado: foto de portada a la derecha bajo el velo, el nombre a la izquierda y cuatro datos sobre vidrio */
.ficha-destacado {
  position: relative;
  isolation: isolate;
  display: grid;
  align-content: space-between;
  gap: var(--sp-5);
  min-height: clamp(13rem, 20vw, 17rem);
  overflow: hidden;
  padding: var(--sp-5);
  border: var(--borde);
  border-radius: var(--r-3);
  background: var(--c-superficie-hundida);
}
.ficha-destacado__foto { position: absolute; top: 0; right: 0; width: 70%; height: 100%; object-fit: cover; }
.ficha-destacado::after { content: ""; position: absolute; inset: 0; background: var(--c-velo-foto); }
.ficha-destacado__texto, .ficha-destacado__datos { position: relative; z-index: var(--z-1); }
.ficha-destacado__titulo { margin: 0; font-size: var(--fs-xl); }
.ficha-destacado__version { max-width: 24ch; margin: var(--sp-1) 0 0; color: var(--c-texto-2); }
.ficha-destacado__datos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
  gap: var(--sp-3);
  padding: var(--sp-3);
  border: 1px solid var(--c-blanco-16);
  border-radius: var(--r-2);
  background: var(--c-vidrio);
  -webkit-backdrop-filter: var(--desenfoque);
  backdrop-filter: var(--desenfoque);
}
.ficha-destacado__datos li { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; font-size: var(--fs-sm); }
.ficha-destacado__datos .icono { color: var(--c-acento-texto); --icono-tam: 1.5em; }
.ficha-destacado__datos span { display: grid; min-width: 0; color: var(--c-texto-2); }
.ficha-destacado__datos strong { color: var(--c-texto); }

/* Panel de compra flotante (≥ 1024): al bajar, el panel se resume en una píldora arriba a la derecha; al tocarla,
   el mismo panel se despliega debajo (ficha.js lo mueve y deja un hueco de su alto en la rejilla). En móvil manda la barra inferior. */
.ficha-flotante { display: none; }
@media (min-width: 64rem) {
  .ficha-flotante {
    position: fixed;
    top: calc(var(--cabecera-alto) + var(--sp-3));
    right: max(var(--gutter), (100% - var(--ancho-max)) / 2);
    z-index: var(--z-flotante);
    display: grid;
    gap: var(--sp-2);
    width: min(32rem, 100% - 2 * var(--gutter)); /* como la columna del panel: sus botones caben en una fila */
    opacity: 0;
    visibility: hidden;
    transform: translateY(calc(-1 * var(--sp-3)));
    transition: opacity var(--dur-media) var(--curva), transform var(--dur-media) var(--curva), visibility 0s var(--dur-media);
  }
  .ficha-flotante.esta-visible { opacity: 1; visibility: visible; transform: none; transition: opacity var(--dur-media) var(--curva), transform var(--dur-media) var(--curva), visibility 0s; }
}
.ficha-flotante__barra { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2); border: 1px solid var(--c-blanco-16); border-radius: var(--r-3); background: var(--c-vidrio); -webkit-backdrop-filter: var(--desenfoque); backdrop-filter: var(--desenfoque); box-shadow: var(--sombra); }
.ficha-flotante__resumen { display: flex; flex: 1 1 auto; align-items: center; gap: var(--sp-3); min-width: 0; padding: var(--sp-1); border: 0; border-radius: var(--r-2); background: none; color: var(--c-texto); text-align: left; }
.ficha-flotante__resumen:hover { background: var(--c-realce); }
.ficha-flotante__foto { width: 3.5rem; flex: none; aspect-ratio: 4 / 3; border-radius: var(--r-1); object-fit: cover; }
.ficha-flotante__datos { display: grid; flex: 1 1 auto; min-width: 0; }
.ficha-flotante__nombre { overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.ficha-flotante__precio { color: var(--c-texto-2); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.ficha-flotante__cuota { color: var(--c-acento-texto); }
.ficha-flotante__flecha { color: var(--c-texto-2); transition: transform var(--transicion); }
.ficha-flotante.esta-abierto .ficha-flotante__flecha { transform: rotate(180deg); }
.ficha-flotante__panel { max-height: calc(100dvh - var(--cabecera-alto) - 8rem); overflow-y: auto; overscroll-behavior: contain; border-radius: var(--r-3); box-shadow: var(--sombra); transform-origin: top right; animation: ficha-flotante-abrir var(--dur-media) var(--curva); }
@keyframes ficha-flotante-abrir { from { opacity: 0; transform: translateY(calc(-1 * var(--sp-2))) scale(0.98); } }
.ficha-flotante__hueco { grid-area: compra; height: var(--alto-reservado); }

/* Galería: imagen 16/10, deslizar con snap, miniaturas con snap propio */
.galeria__visor { position: relative; overflow: hidden; border-radius: var(--r-3); background: var(--c-superficie-hundida); }
.galeria__pista { position: relative;
  display: flex;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none; }
.galeria__pista::-webkit-scrollbar { display: none; }
.galeria__pista:focus-visible { outline: 2px solid var(--c-foco); outline-offset: -2px; }
.galeria__slide { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; }
.galeria__ampliar { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.galeria__foto { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.galeria__etiquetas { position: absolute; top: var(--sp-2); left: var(--sp-2); display: flex; flex-wrap: wrap; gap: var(--sp-1); max-width: calc(100% - 10rem); pointer-events: none; }
.galeria__acciones { position: absolute; top: var(--sp-2); right: var(--sp-2); display: flex; gap: var(--sp-1); }
.galeria__accion, .galeria__nav {
  display: inline-grid;
  place-items: center;
  min-width: var(--tactil);
  min-height: var(--tactil);
  padding: 0;
  border: 1px solid var(--c-blanco-16);
  border-radius: 50%;
  background: color-mix(in srgb, var(--c-superficie) 94%, transparent);
  color: var(--c-texto);
}
.galeria__accion:hover, .galeria__nav:hover:not(:disabled) { background: var(--c-superficie); color: var(--c-texto); }
.galeria__accion[aria-pressed="true"] { color: var(--c-peligro); }
.galeria__accion[aria-pressed="true"] .icono path { fill: currentColor; }
.galeria__accion[data-accion="comparar"][aria-pressed="true"] { color: var(--c-info); background: var(--c-info-suave); }
.galeria__nav { position: absolute; top: 50%; transform: translateY(-50%); }
.galeria__nav--anterior { left: var(--sp-2); }
.galeria__nav--siguiente { right: var(--sp-2); }
.galeria__nav:disabled { opacity: 0.35; cursor: default; }
@media (hover: none) { .galeria__nav { display: none; } }
.galeria__contador {
  position: absolute;
  right: var(--sp-2);
  bottom: var(--sp-2);
  margin: 0;
  padding: var(--sp-em-1) var(--sp-em-4);
  border-radius: var(--r-pildora);
  background: color-mix(in srgb, var(--c-oscuro) 80%, transparent);
  color: var(--c-sobre-solido);
  font-size: var(--fs-xs);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.galeria__miniaturas { display: flex; gap: var(--sp-2); margin: var(--sp-2) 0 0; padding: 0 0 var(--sp-1); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.galeria__miniaturas > li { flex: 0 0 clamp(4.5rem, 12vw, 6.5rem); scroll-snap-align: start; }
.galeria__miniatura { display: block; width: 100%; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: var(--r-2); background: none; }
.galeria__miniatura img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.galeria__miniatura[aria-current="true"] { border-color: var(--c-acento); }
.galeria__video { margin-top: var(--sp-3); }
.galeria__video-marco { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--r-2); background: var(--c-oscuro); }
.galeria__video-marco--vertical { width: min(100%, 22rem); aspect-ratio: 9 / 16; margin-inline: auto; }

/* Fotos a pantalla completa con zoom */
dialog.galeria-lightbox {
  width: 100%;
  max-width: 100%;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  padding: 0;
  border: 0;
  background: color-mix(in srgb, var(--c-oscuro) 97%, var(--c-negro));
  color: var(--c-sobre-solido);
}
dialog.galeria-lightbox[open] { display: flex; flex-direction: column; }
dialog.galeria-lightbox::backdrop { background: var(--c-oscuro); }
.galeria-lightbox :focus-visible { outline-color: var(--c-sobre-solido); }
.galeria-lightbox__cabecera { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); padding: var(--sp-2) var(--gutter); }
.galeria-lightbox__contador, .galeria-lightbox__ayuda { margin: 0; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.galeria-lightbox__ayuda { color: var(--c-blanco-80); }
.galeria-lightbox__pista { display: flex; flex: 1 1 auto; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.galeria-lightbox__slide { display: grid; flex: 0 0 100%; place-items: center; overflow: hidden; scroll-snap-align: center; touch-action: pan-x pinch-zoom; }
.galeria-lightbox__foto { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; transition: transform var(--dur-media) var(--curva); }
.galeria-lightbox__foto.esta-ampliada { transform: scale(2.2); cursor: zoom-out; }
.galeria-lightbox__nav {
  position: absolute;
  top: 50%;
  display: inline-grid;
  place-items: center;
  min-width: var(--tactil);
  min-height: var(--tactil);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--c-blanco-16);
  color: var(--c-sobre-solido);
  transform: translateY(-50%);
}
.galeria-lightbox__nav--anterior { left: var(--sp-2); }
.galeria-lightbox__nav--siguiente { right: var(--sp-2); }
@media (hover: none) { .galeria-lightbox__nav { display: none; } }

/* Panel de compra */
.ficha__titulo { margin: 0; font-size: var(--fs-2xl); }
.ficha__version { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-em-3); margin: 0; color: var(--c-texto-2); }
.ficha__cuota { margin: var(--sp-1) 0 0; font-size: var(--fs-lg); font-weight: 700; font-variant-numeric: tabular-nums; }
.ficha__datos-clave { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); color: var(--c-texto-2); font-size: var(--fs-sm); }
.ficha__datos-clave li { display: inline-flex; align-items: center; gap: var(--sp-em-2); }
.ficha__vendedor { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3); border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie-2); }
.ficha__vendedor p { margin: 0; }
.ficha__vendedor-foto {
  display: grid;
  flex: none;
  place-items: center;
  width: clamp(2.75rem, 2.4rem + 1vw, 3.5rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--c-acento-solido);
  color: var(--c-sobre-solido);
  font-weight: 700;
  object-fit: cover;
}
.ficha__vendedor-etiqueta { color: var(--c-texto-suave); font-size: var(--fs-xs); }
.ficha__cta { display: grid; gap: var(--sp-2); }
.ficha__cta-secundarias { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); gap: var(--sp-2); }
.ficha__nota { margin: 0; color: var(--c-texto-suave); font-size: var(--fs-xs); }

/* Barra de CTA pegada al pie en móvil (--cta-altura la usan toasts y el comparador) */
.ficha-barra-cta { display: none; }
@media (max-width: 63.99rem) {
  body.pagina-ficha { --cta-altura: calc(4.25rem + env(safe-area-inset-bottom, 0px)); padding-bottom: var(--cta-altura); }
  .ficha-barra-cta {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: var(--z-barra);
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: var(--sp-2);
    padding: var(--sp-2) var(--gutter) calc(var(--sp-2) + env(safe-area-inset-bottom, 0px));
    border-top: var(--borde);
    background: var(--c-superficie);
    transition: transform var(--transicion), visibility 0s;
  }
  .ficha-barra-cta--sola { grid-template-columns: minmax(0, 1fr); }
  .ficha-barra-cta.esta-oculta { visibility: hidden; transform: translateY(110%); transition: transform var(--transicion), visibility 0s var(--transicion); }
}

/* Bloques de la ficha */
.ficha-verificacion__nota { margin-top: var(--sp-3); }
.ficha-bloque__titulo { display: flex; align-items: center; gap: var(--sp-3); margin: 0 0 var(--sp-3); font-size: var(--fs-lg); }
details.ficha-bloque > summary { display: flex; align-items: center; gap: var(--sp-3); min-height: var(--tactil); list-style: none; cursor: pointer; }
details.ficha-bloque > summary::-webkit-details-marker { display: none; }
details.ficha-bloque > summary h2 { flex: 1 1 auto; margin: 0; font-size: var(--fs-lg); }
details.ficha-bloque > summary::after {
  content: "";
  flex: none;
  width: 0.55em;
  height: 0.55em;
  margin-inline: var(--sp-em-1);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--transicion);
}
details.ficha-bloque[open] > summary::after { transform: rotate(-135deg); }
details.ficha-bloque[open] > summary { margin-bottom: var(--sp-3); }
.ficha-costo__total { font-size: var(--fs-lg); font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ficha-costo .tabla th { background: none; color: var(--c-texto); font-weight: 400; white-space: normal; }
.ficha-costo .tabla tfoot th, .ficha-costo .tabla tfoot td { border-top: 2px solid var(--c-borde-fuerte); font-weight: 800; }
.ficha-verificacion { display: grid; gap: var(--sp-2); margin: var(--sp-3) 0 0; }
.ficha-verificacion li { display: flex; align-items: flex-start; gap: var(--sp-em-4); }
.ficha-verificacion .icono { margin-top: var(--sp-em-1); }
.ficha-verificacion__ok .icono { color: var(--c-ok); }
.ficha-verificacion__pendiente { color: var(--c-texto-2); }
.ficha-verificacion__pendiente .icono { color: var(--c-alerta); }
.ficha-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 0 var(--sp-5); margin: 0; }
.ficha-specs > div { display: flex; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0; border-bottom: var(--borde); }
.ficha-specs dt { color: var(--c-texto-2); }
.ficha-specs dd { margin: 0; font-weight: 600; text-align: right; }
.ficha-equipamiento { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); gap: var(--sp-4) var(--sp-3); }
.ficha-equipamiento h3 { margin-bottom: var(--sp-2); font-size: var(--fs-sm); }
.ficha-equipamiento ul { display: grid; gap: var(--sp-1); color: var(--c-texto-2); font-size: var(--fs-sm); }
.ficha-descripcion { max-width: var(--ancho-lectura); }
.ficha-pago { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: var(--sp-3); }
.ficha-pago__item { padding: var(--sp-3); border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie-2); }
.ficha-pago__item h3 { display: flex; align-items: center; gap: var(--sp-em-3); margin-bottom: var(--sp-1); font-size: var(--fs-md); }
.ficha-pago__item p { margin: 0; font-size: var(--fs-sm); }
.ficha-concesionario { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); align-items: center; gap: var(--sp-3); }
.ficha-concesionario p + p { margin-top: var(--sp-1); }
.ficha-no-disponible { width: min(46rem, 100%); }
.ficha-no-disponible__busqueda { display: flex; gap: var(--sp-2); }
.ficha-no-disponible__busqueda input { flex: 1 1 auto; }

/* -- 4b simulador completo y página del simulador -- */
.simulador { container: simulador / inline-size; scroll-margin-top: 5rem; }
.simulador__app--listo { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
.simulador__auto { margin: 0; padding: 0; border: 0; }
.simulador__rejilla { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
@container simulador (min-width: 36rem) {
  .simulador__rejilla { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
}
.simulador__controles { display: grid; gap: var(--sp-3); }
.simulador__entrada-cabecera { justify-content: space-between; }
.simulador__pct { font-size: var(--fs-sm); font-weight: 700; font-variant-numeric: tabular-nums; }
.simulador input[type="range"] { min-height: var(--control-alto); }
.simulador__plazos { margin: 0; }
.simulador__plazos legend { margin-bottom: var(--sp-2); }
.simulador__plazos .fila { --fila-espacio: var(--sp-1); }
.simulador__resultado { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); padding: var(--sp-4); border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie-2); }
.simulador__etiqueta { margin: 0; color: var(--c-texto-2); font-size: var(--fs-sm); font-weight: 600; }
.simulador__cuota { margin: 0; line-height: 1.1; }
.simulador__monto { color: var(--c-ok); font-size: var(--fs-precio); font-weight: 800; font-variant-numeric: tabular-nums; }
.simulador__mes { color: var(--c-texto-2); font-size: var(--fs-md); font-weight: 600; }
.simulador__detalle { display: grid; gap: var(--sp-1); margin: 0; font-size: var(--fs-sm); }
.simulador__detalle > div { display: flex; justify-content: space-between; gap: var(--sp-3); }
.simulador__detalle dt { color: var(--c-texto-2); }
.simulador__detalle dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.simulador__todas { display: grid; gap: var(--sp-2); }
.simulador__no-aplica { color: var(--c-texto-suave); }
.simulador-pagina { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); align-items: start; }
@media (min-width: 64rem) { .simulador-pagina { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.simulador-pagina__intro { max-width: 60ch; }
.simulador-pagina__auto { display: grid; grid-template-columns: clamp(6rem, 22%, 9rem) minmax(0, 1fr); align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-4); padding-bottom: var(--sp-4); border-bottom: var(--borde); }
.simulador-pagina__auto img { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--r-1); object-fit: cover; }
.simulador-pagina__entidades { display: grid; gap: var(--sp-2); }
.simulador-pagina__entidades li { display: grid; gap: var(--sp-05); padding-bottom: var(--sp-2); border-bottom: var(--borde); }
.simulador-pagina__entidades li:last-child { border-bottom: 0; padding-bottom: 0; }
/* === FIN FICHA === */

/* === SPRINT 5 · COMPARADOR Y FAVORITOS === */
/* -- 5a botón flotante y panel del comparador -- */
.comparador-flotante {
  position: fixed;
  right: clamp(12px, 2vw, 24px);
  bottom: calc(clamp(12px, 2vh, 24px) + var(--cta-altura));
  z-index: var(--z-flotante);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--sp-2);
}
.pagina-ficha .comparador-flotante { right: auto; left: clamp(12px, 2vw, 24px); align-items: flex-start; }
.comparador-flotante__boton {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-em-3);
  min-width: 3.5rem;
  min-height: 3.5rem;
  padding: 0 var(--sp-em-6);
  border: 1px solid var(--c-borde-fuerte);
  border-radius: var(--r-pildora);
  background: var(--c-superficie-elevada);
  color: var(--c-sobre-solido);
  font-size: var(--fs-sm);
  font-weight: 700;
  box-shadow: var(--sombra);
}
.comparador-flotante__boton:hover { background: color-mix(in srgb, var(--c-superficie-elevada) 88%, var(--c-blanco)); color: var(--c-sobre-solido); }
.comparador-flotante__boton:focus-visible { outline: 3px solid var(--c-foco); outline-offset: 3px; }
.comparador-flotante__contador { position: absolute; top: -0.3rem; right: -0.2rem; --contador-fondo: var(--c-acento-solido); }
.comparador-flotante__boton.esta-pulsando { animation: cmp-pulso var(--dur-lenta) var(--curva); }
@keyframes cmp-pulso { 50% { transform: scale(1.12); } }
@media (max-width: 39.99rem) {
  .comparador-flotante__boton { padding: 0; aspect-ratio: 1; }
  .comparador-flotante__texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.comparador-panel {
  order: -1;
  display: flex;
  flex-direction: column;
  width: min(420px, 94vw);
  max-height: min(70vh, calc(100dvh - var(--cta-altura) - 6rem));
  overflow: hidden;
  border: var(--borde);
  border-radius: var(--r-3);
  background: var(--c-superficie);
  box-shadow: var(--sombra);
}
.comparador-panel__cabecera { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); padding: var(--sp-2) var(--sp-3); border-bottom: var(--borde); }
.comparador-panel__titulo { margin: 0; font-size: var(--fs-md); }
.comparador-panel__lista { display: grid; gap: var(--sp-2); padding: var(--sp-3); overflow: auto; }
.comparador-panel__item { display: grid; grid-template-columns: clamp(3.5rem, 12vw, 4rem) minmax(0, 1fr) auto; align-items: center; gap: var(--sp-2); }
.comparador-panel__foto { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: var(--r-1); background: var(--c-superficie-hundida); object-fit: cover; }
.comparador-panel__datos { display: flex; flex-direction: column; min-width: 0; font-size: var(--fs-sm); }
.comparador-panel__datos a, .comparador-panel__datos strong { overflow: hidden; color: var(--c-texto); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.comparador-panel__precio { color: var(--c-texto-2); font-variant-numeric: tabular-nums; }
.comparador-panel__pista { margin: 0; padding: 0 var(--sp-3) var(--sp-2); }
.comparador-panel__acciones { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); padding: var(--sp-3); border-top: var(--borde); background: var(--c-superficie-2); }
.comparador-panel__secundarias { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); }

/* -- 5b comparación (modal y comparar.php): tarjetas que reparten todo el ancho y tabla por grupos, sin columnas con tope -- */
.comparador-modal { width: min(75rem, 96vw); --modal-relleno: var(--sp-5); }
.comparador-tabla { container: comparador / inline-size; display: grid; gap: var(--sp-4); min-width: 0; }
.comparador-tabla__barra p { display: inline-flex; align-items: center; gap: var(--sp-em-2); }
.comparador-tabla__barra p .icono { color: var(--c-ok); }

/* Tarjetas: 2 columnas en angosto; desde 40rem una columna por tarjeta. Con un número impar en 2 columnas, «Agrega otro auto» llena el hueco */
.comparador-autos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
@container comparador (min-width: 40rem) {
  .comparador-autos { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .comparador-autos[data-autos="3"] > .comparador-auto--agregar { display: none; }
}
.comparador-auto { container: comparador-auto / inline-size; position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: var(--borde); border-radius: var(--r-3); background: var(--c-superficie); }
.comparador-auto__media { position: relative; aspect-ratio: 4 / 3; background: var(--c-superficie-hundida); }
.comparador-auto__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } /* fuera del flujo: la proporción la pone el marco */
.comparador-auto--no-disponible .comparador-auto__foto { filter: grayscale(1); opacity: 0.6; }
.comparador-auto__cabecera { display: grid; gap: var(--sp-05); min-width: 0; padding: var(--sp-2) var(--sp-3) 0; }
.comparador-auto__nombre { color: var(--c-texto); font-size: var(--fs-md); font-weight: 700; line-height: 1.2; text-decoration: none; }
.comparador-auto__nombre:hover { color: var(--c-texto); text-decoration: underline; }
.comparador-auto__version { overflow: hidden; color: var(--c-texto-2); font-size: var(--fs-xs); text-overflow: ellipsis; white-space: nowrap; }
.comparador-auto__cuerpo { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--sp-05); padding: var(--sp-2) var(--sp-3) var(--sp-3); }
.comparador-auto__precio { margin: 0; font-size: var(--fs-lg); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.15; }
.comparador-auto__cuota { margin: 0; color: var(--c-ok); font-size: var(--fs-sm); font-weight: 700; font-variant-numeric: tabular-nums; }
.comparador-auto__acciones { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: auto; padding-top: var(--sp-3); }
.comparador-auto__acciones > .btn { flex: 1 1 auto; }
.comparador-auto__acciones > .btn--whatsapp { flex-basis: 100%; }
/* Tarjeta ancha (como la maqueta): foto panorámica con el nombre encima y los botones en una fila */
@container comparador-auto (min-width: 18rem) {
  .comparador-auto__media { aspect-ratio: 15 / 8; }
  .comparador-auto__media::after { content: ""; position: absolute; inset: 0; background: var(--c-velo-foto-arriba); pointer-events: none; }
  .comparador-auto__cabecera { position: absolute; top: 0; right: 0; left: 0; z-index: var(--z-1); padding: var(--sp-3) var(--sp-4); }
  .comparador-auto__nombre { font-size: var(--fs-lg); }
  .comparador-auto__version { font-size: var(--fs-sm); }
  .comparador-auto__cuerpo { padding: var(--sp-3) var(--sp-4) var(--sp-4); }
  .comparador-auto__precio { font-size: var(--fs-precio); }
  .comparador-auto__cuota { font-size: var(--fs-md); }
  .comparador-auto__acciones > .btn--whatsapp, .comparador-auto__acciones > .btn--secundario { flex: 1 1 7rem; }
  .comparador-auto__acciones > .btn--fantasma { flex: 0.5 1 auto; } /* crece menos; si baja sola de línea, ocupa la fila */
}
.comparador-auto--agregar { border-style: dashed; background: transparent; }
.comparador-auto__agregar { display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-2); padding: var(--sp-4); color: var(--c-texto); text-align: center; text-decoration: none; }
.comparador-auto__agregar:hover { background: var(--c-realce); color: var(--c-texto); }

/* Tabla: la etiqueta fija a la izquierda y los autos se reparten el resto (2 visibles con deslizamiento en angosto) */
.comparador-tabla__desliz {
  --col-etiqueta: clamp(6.5rem, 28cqi, 20rem);
  position: relative; /* contiene los textos .visualmente-oculto (absolutos): sin esto escapan del scroll y ensanchan la página */
  container-type: inline-size;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  border: var(--borde);
  border-radius: var(--r-3);
  background: var(--c-superficie);
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--col-etiqueta);
}
.comparador {
  --visibles: 2;
  --col-auto: max(7rem, calc((100cqi - var(--col-etiqueta)) / min(var(--columnas), var(--visibles))));
  width: calc(var(--col-etiqueta) + var(--columnas) * var(--col-auto));
  min-width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
}
@container (min-width: 36rem) { .comparador { --visibles: 4; } }
.comparador th, .comparador td { padding: var(--sp-2) var(--sp-4); border-bottom: var(--borde); text-align: left; vertical-align: top; }
.comparador td { border-left: var(--borde); }
/* Anchos por columna en <col>: con la tabla fija el navegador no los toma de la primera fila de un tbody */
.comparador__col-etiqueta { width: var(--col-etiqueta); }
.comparador__col-auto { width: var(--col-auto); }
.comparador th[scope="row"], .comparador__grupo-titulo { position: sticky; left: 0; z-index: var(--z-1); background: var(--c-superficie); color: var(--c-texto); font-weight: 400; }
.comparador__cabecera > th { padding-block: var(--sp-3); vertical-align: middle; }
.comparador__grupo-titulo { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.comparador__grupo-texto { display: inline-flex; align-items: center; gap: var(--sp-em-5); }
.comparador__grupo-texto .icono { color: var(--c-texto-2); --icono-tam: 1.6em; }
.comparador__auto { border-left: var(--borde); background: var(--c-superficie-2); color: var(--c-texto); font-weight: 500; scroll-snap-align: start; }
.comparador td.es-mejor { background: var(--c-ok-suave); color: var(--c-ok); font-weight: 700; }
.comparador tr[data-iguales]:hover > * { background-image: linear-gradient(var(--c-realce), var(--c-realce)); } /* capa encima: la etiqueta fija sigue opaca */
.comparador .comparador__grupo:last-child tr:last-child > * { border-bottom: 0; }
.comparador-tabla.solo-diferencias tr[data-iguales="1"],
.comparador-tabla.solo-diferencias .comparador__grupo:not(:has(tr[data-iguales="0"])) { display: none; }

/* -- 5c favoritos -- */
.favoritos__barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2); padding: var(--sp-3); border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie); }
.favoritos__seleccion { flex-wrap: wrap; align-items: center; }
.favoritos__marcar {
  position: absolute;
  top: var(--sp-2);
  left: var(--sp-2);
  z-index: var(--z-3);
  display: grid;
  place-items: center;
  min-width: var(--tactil);
  min-height: var(--tactil);
  border: 1px solid var(--c-borde-fuerte);
  border-radius: var(--r-2);
  background: color-mix(in srgb, var(--c-superficie) 94%, transparent);
  cursor: pointer;
}
.favoritos__marcar input { width: 1.4em; height: 1.4em; }
.favoritos__marcar:has(input:checked) { border-color: var(--c-acento-solido); box-shadow: var(--anillo) var(--c-acento-solido); }
.favoritos__marcar:has(input:disabled) { opacity: 0.5; cursor: not-allowed; }
/* === FIN COMPARADOR === */

/* === SPRINT 6 · FORMULARIOS WEB Y RESERVA POR TRANSFERENCIA === */
.form-web .modal__cuerpo.pila { gap: var(--sp-3); }
.form-web__auto { display: flex; align-items: center; gap: var(--sp-2); margin: 0; padding: var(--sp-2) var(--sp-3); border-radius: var(--r-2); background: var(--c-superficie-2); font-size: var(--fs-sm); overflow-wrap: anywhere; }
.form-web__auto .icono { color: var(--c-texto-2); }
.form-web__fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr)); gap: var(--sp-3); }
.form-web__opciones { margin: 0; padding: 0; border: 0; min-width: 0; }
.form-web__opciones legend { margin-bottom: var(--sp-2); }
.form-web__simulacion { margin: 0; padding: var(--sp-2) var(--sp-3); border-left: 3px solid var(--c-ok-vivo); border-radius: var(--r-1); background: var(--c-ok-suave); color: var(--c-ok); font-size: var(--fs-sm); font-weight: 600; }
.form-web__nota { display: flex; align-items: flex-start; gap: var(--sp-em-2); margin: 0; color: var(--c-texto-suave); font-size: var(--fs-xs); }
.form-web__nota .icono { margin-top: var(--sp-em-1); }
/* Honeypot: fuera de la vista y del lector de pantalla (los bots lo llenan) */
.form-web__trampa { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.web-exito { display: grid; justify-items: center; align-content: start; gap: var(--sp-2); text-align: center; }
.web-exito__icono { display: inline-grid; place-items: center; width: clamp(3rem, 12vw, 3.75rem); aspect-ratio: 1; border-radius: 50%; background: var(--c-ok-suave); color: var(--c-ok); --icono-tam: 55%; }
.web-exito__titulo { margin: 0; font-size: var(--fs-lg); outline: none; }
.web-exito__texto { margin: 0; max-width: 36ch; color: var(--c-texto-2); }
.web-exito__acciones { display: grid; gap: var(--sp-2); width: 100%; margin-top: var(--sp-2); }

.reserva-web { width: min(520px, 92vw); }
.reserva-web__pasos { display: grid; gap: var(--sp-2); margin: 0; padding-left: var(--sangria-lista); font-size: var(--fs-sm); }
.reserva-web__pasos li::marker { color: var(--c-acento-texto); font-weight: 700; }
.reserva-web__politica > summary { cursor: pointer; font-size: var(--fs-sm); font-weight: 600; }
.reserva-web__politica p { margin: var(--sp-2) 0 0; color: var(--c-texto-2); font-size: var(--fs-sm); }
.reserva-web__resultado { outline: none; }
.reserva-web__subtitulo { margin: 0; font-size: var(--fs-md); }
.reserva-web__cuentas { display: grid; gap: var(--sp-2); }
.reserva-web__cuenta { display: grid; gap: var(--sp-1); min-width: 0; padding: var(--sp-3); border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie-2); }
.reserva-web__banco, .reserva-web__titular { margin: 0; font-size: var(--fs-sm); overflow-wrap: anywhere; }
.reserva-web__titular { color: var(--c-texto-2); }
.reserva-web__numero .numero { min-width: 0; font-size: var(--fs-lg); font-weight: 700; letter-spacing: 0.03em; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.reserva-web__contacto { display: flex; align-items: center; gap: var(--sp-3); min-width: 0; }
.reserva-web__contacto > div { min-width: 0; overflow-wrap: anywhere; }
.reserva-web__contacto img, .reserva-web__iniciales { flex: 0 0 auto; width: clamp(2.75rem, 10vw, 3.25rem); aspect-ratio: 1; border-radius: 50%; object-fit: cover; }
.reserva-web__iniciales { display: inline-grid; place-items: center; background: var(--c-acento-suave); color: var(--c-acento-texto); font-weight: 700; }

.ficha__cta-interes { justify-self: center; font-size: var(--fs-sm); white-space: normal; text-align: center; text-wrap: balance; } /* la frase larga parte línea: con el nowrap de .btn ensanchaba la columna de compra a 360 px */
@media (pointer: coarse) {
  .ficha__cta-interes, .reserva-web__politica > summary { display: inline-flex; align-items: center; min-height: var(--tactil); }
}
/* === FIN RESERVA WEB === */

/* === SPRINT 7 · PROFORMA PÚBLICA === */
/* === FIN PROFORMA PÚBLICA === */

/* === FASE 2 · VENDE TU AUTO, PRECALIFICACIÓN, ALERTAS Y RESEÑAS (S12) === */
/* Vende tu auto */
.vende { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: var(--sp-5); }
@media (min-width: 64rem) { .vende { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.vende__titulo { margin: 0; font-size: var(--fs-2xl); line-height: 1.15; }
.vende__bajada { margin: 0; color: var(--c-texto-2); font-size: var(--fs-md); }
.vende__pasos { display: grid; gap: var(--sp-3); }
.vende__pasos li { display: flex; align-items: flex-start; gap: var(--sp-3); }
.vende__paso-n { display: inline-grid; flex: none; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--c-acento-suave); color: var(--c-acento-texto); font-weight: 700; }
.vende-form__grupo { display: grid; gap: var(--sp-3); min-width: 0; margin: 0; padding: 0; border: 0; }
.vende-form__grupo + .vende-form__grupo { padding-top: var(--sp-4); border-top: var(--borde); }
.vende-form__leyenda { margin-bottom: var(--sp-1); padding: 0; font-size: var(--fs-lg); font-weight: 700; }
.vende-fotos { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
.vende-fotos__boton, .form-web__archivo { position: relative; cursor: pointer; }
.vende-fotos__boton:focus-within, .form-web__archivo:focus-within { outline: 2px solid var(--c-acento-solido); outline-offset: 2px; }
.form-web__archivo { justify-self: start; }
.vende-fotos__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 6.5rem), 1fr)); gap: var(--sp-2); }
.vende-foto { position: relative; overflow: hidden; border-radius: var(--r-2); background: var(--c-superficie-hundida); aspect-ratio: 4 / 3; }
.vende-foto img { width: 100%; height: 100%; object-fit: cover; }
.vende-foto__quitar { position: absolute; top: 0.25rem; right: 0.25rem; }
.vende-exito { max-width: 36rem; }
.form-web__autorizo { align-items: flex-start; font-size: var(--fs-sm); }
/* Alerta de búsqueda (baja) */
.alerta-baja { justify-items: center; max-width: 40rem; margin-inline: auto; text-align: center; }
.alerta-baja__icono { --icono-tam: 2.5rem; color: var(--c-acento-texto); }
.alerta-baja__titulo { margin: 0; font-size: var(--fs-xl); }
.alerta-baja .fila { justify-content: center; }
.catalogo-alerta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
/* Reseñas en la home */
.home-resenas__cabecera { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--sp-2) var(--sp-4); }
.home-resenas__estrellas, .home-resena__estrellas { color: var(--c-estrella); letter-spacing: 0.05em; }
.home-resenas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: var(--sp-3); }
.home-resena { display: grid; align-content: start; gap: var(--sp-2); padding: var(--sp-4); border: var(--borde); border-radius: var(--r-2); background: var(--c-superficie); }
.home-resena__estrellas { margin: 0; font-size: var(--fs-md); }
.home-resena__vacias { color: var(--c-borde); }
.home-resena__texto, .home-resena__texto p { margin: 0; }
.home-resena__autor { margin: 0; color: var(--c-texto-2); font-size: var(--fs-sm); }
.home-resenas__pie { margin: var(--sp-4) 0 0; text-align: center; }
/* === FIN FASE 2 PÚBLICO === */

/* === FASE 2 · SUCURSALES EN EL SITIO (S13) === */
.sucursales-rejilla { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.sucursal-tarjeta { display: grid; align-content: space-between; gap: var(--sp-4); padding: var(--sp-5, 1.5rem); }
.sucursal-tarjeta__titulo { margin: 0; font-size: var(--fs-lg, 1.25rem); overflow-wrap: anywhere; }
.sucursal-tarjeta__titulo a { color: inherit; text-decoration: none; }
.sucursal-tarjeta__titulo a:hover, .sucursal-tarjeta__titulo a:focus-visible { text-decoration: underline; }
.sucursal-tarjeta__stock { color: var(--c-texto-2); }
.sucursal-tarjeta__acciones, .sucursal-cabecera__acciones { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.sucursal-tarjeta__acciones .btn, .sucursal-cabecera__acciones .btn { flex: 1 1 auto; }
.sucursal-cabecera { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sp-4); padding: var(--sp-5, 1.5rem); }
.sucursal-cabecera h1 { overflow-wrap: anywhere; }
.sucursal-autos__cabecera { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--sp-2); }
.sucursal-autos__pie { text-align: center; }
.sucursal-otras { flex-wrap: wrap; }
@media (min-width: 48rem) { .sucursal-cabecera__acciones .btn { flex: 0 0 auto; } }
/* === FIN FASE 2 SUCURSALES === */

/* === FASE 3 · SUCURSALES Y FIRMA EN PANTALLA (S14–S15) === */
/* S15 · Firma en pantalla (proforma pública y /firmar/{token}) */
.firma-pagina { max-width: 60rem; margin-inline: auto; }
.firma-pagina__resumen { display: grid; gap: var(--sp-3); }
.firma-pagina__titulo { font-size: var(--fs-xl); overflow-wrap: anywhere; }
.firma-pad { scroll-margin-top: 5rem; }
.firma-form__datos { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.firma-lienzo { display: grid; gap: var(--sp-2); }
.firma-lienzo__area { display: block; width: 100%; height: clamp(9rem, 32vw, 13rem); border: 2px dashed var(--c-borde-fuerte); border-radius: var(--r-2); background: var(--doc-papel); touch-action: none; cursor: crosshair; }
.firma-lienzo__area:focus-visible { outline: 3px solid var(--c-foco); outline-offset: 2px; }
.firma-lienzo__acciones { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.firma-form__acepto { align-items: flex-start; }
/* === FIN FASE 3 PÚBLICO === */
