/* ==========================================================================
   Recorre360 — estilos
   Móvil primero. Paleta: vino de Tarija + un color propio por categoría.
   Cambia los colores aquí (REEMPLAZAR).
   ========================================================================== */

:root {
  /* Base */
  --fondo: #f7f5fa;
  --superficie: #ffffff;
  --superficie-2: #f0ecf5;
  --texto: #1d1428;
  --texto-2: #5b5268;
  --borde: #e4deec;
  --banda: #2a1840;            /* bandas oscuras (cómo funciona, pie) */
  --sobre-banda: #f5f0fb;
  /* Marca */
  --acento: #a3164f;           /* vino */
  --acento-fuerte: #84103f;
  --acento-suave: #fde7ef;
  --sobre-acento: #ffffff;
  --wa: #0d7a43;
  --wa-fuerte: #0a6336;
  --sobre-wa: #ffffff;
  --foco: #1d4ed8;
  /* Categorías: color, fondo suave y texto sobre el fondo suave */
  --casa: #ff5a36;        --casa-suave: #ffe9e3;        --casa-tinta: #a8300f;
  --departamento: #2f6bff; --departamento-suave: #e4ecff; --departamento-tinta: #1d45b0;
  --terreno: #1fa463;     --terreno-suave: #ddf5e8;     --terreno-tinta: #0d6a3d;
  --auto: #ffb000;        --auto-suave: #fff2cc;        --auto-tinta: #7a4f00;
  --moto: #8b5cf6;        --moto-suave: #efe8ff;        --moto-tinta: #5a2fc2;
  --anticretico: #0ea5b7; --anticretico-suave: #dbf5f8; --anticretico-tinta: #0a6672;
  /* Estados */
  --verde: #12a150;  --verde-suave: #e1f6ea;  --verde-tinta: #0b6334;
  --rojo: #e5484d;   --rojo-suave: #fde7e8;   --rojo-tinta: #b0242b;
  --azul: #2f6bff;   --azul-suave: #e4ecff;   --azul-tinta: #1d45b0;
  --ambar: #ffb000;  --ambar-suave: #fff2cc;  --ambar-tinta: #7a4f00;
  --visor: #120d19;
  --sombra: 0 1px 2px rgb(42 24 64 / .06), 0 12px 32px -16px rgb(42 24 64 / .22);
  --sombra-alta: 0 2px 4px rgb(42 24 64 / .06), 0 22px 44px -18px rgb(42 24 64 / .32);
  --radio: 20px;
  --radio-sm: 12px;
  --fuente-titulo: 'Bricolage Grotesque', 'Segoe UI', system-ui, sans-serif;
  --fuente: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --alto-cabecera: 68px;
  --rebote: cubic-bezier(.34, 1.56, .64, 1);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --fondo: #120d19; --superficie: #1b1424; --superficie-2: #261d32; --texto: #f5f0fb; --texto-2: #b9afc8; --borde: #352a45;
    --banda: #0c0812; --sobre-banda: #f5f0fb;
    --acento: #ff6f9f; --acento-fuerte: #ff94b8; --acento-suave: #3b1628; --sobre-acento: #250712;
    --wa: #25a35f; --wa-fuerte: #2fbb6e; --sobre-wa: #06170d; --foco: #fbbf24;
    --casa-suave: #3b1d16; --casa-tinta: #ffa38c; --departamento-suave: #19244a; --departamento-tinta: #9db8ff;
    --terreno-suave: #12321f; --terreno-tinta: #7fe0ad; --auto-suave: #3a2c0a; --auto-tinta: #ffd36b;
    --moto-suave: #2a1d4d; --moto-tinta: #c6b0ff; --anticretico-suave: #0e3237; --anticretico-tinta: #7fe2ee;
    --verde-suave: #12321f; --verde-tinta: #7fe0ad; --rojo-suave: #3f1719; --rojo-tinta: #ff9da0;
    --azul-suave: #19244a; --azul-tinta: #9db8ff; --ambar-suave: #3a2c0a; --ambar-tinta: #ffd36b;
    --sombra: 0 1px 2px rgb(0 0 0 / .5), 0 12px 32px -16px rgb(0 0 0 / .7);
    --sombra-alta: 0 2px 4px rgb(0 0 0 / .5), 0 22px 44px -18px rgb(0 0 0 / .8);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --fondo: #120d19; --superficie: #1b1424; --superficie-2: #261d32; --texto: #f5f0fb; --texto-2: #b9afc8; --borde: #352a45;
  --banda: #0c0812; --sobre-banda: #f5f0fb;
  --acento: #ff6f9f; --acento-fuerte: #ff94b8; --acento-suave: #3b1628; --sobre-acento: #250712;
  --wa: #25a35f; --wa-fuerte: #2fbb6e; --sobre-wa: #06170d; --foco: #fbbf24;
  --casa-suave: #3b1d16; --casa-tinta: #ffa38c; --departamento-suave: #19244a; --departamento-tinta: #9db8ff;
  --terreno-suave: #12321f; --terreno-tinta: #7fe0ad; --auto-suave: #3a2c0a; --auto-tinta: #ffd36b;
  --moto-suave: #2a1d4d; --moto-tinta: #c6b0ff; --anticretico-suave: #0e3237; --anticretico-tinta: #7fe2ee;
  --verde-suave: #12321f; --verde-tinta: #7fe0ad; --rojo-suave: #3f1719; --rojo-tinta: #ff9da0;
  --azul-suave: #19244a; --azul-tinta: #9db8ff; --ambar-suave: #3a2c0a; --ambar-tinta: #ffd36b;
  --sombra: 0 1px 2px rgb(0 0 0 / .5), 0 12px 32px -16px rgb(0 0 0 / .7);
  --sombra-alta: 0 2px 4px rgb(0 0 0 / .5), 0 22px 44px -18px rgb(0 0 0 / .8);
  color-scheme: dark;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--alto-cabecera) + 12px); }
body { margin: 0; background: var(--fondo); color: var(--texto); font: 400 16px/1.6 var(--fuente); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video, iframe { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4 { font-family: var(--fuente-titulo); font-weight: 800; line-height: 1.08; letter-spacing: -.025em; margin: 0 0 .5em; text-wrap: balance; }
p { margin: 0 0 1em; }
a { color: var(--acento); text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; border-radius: 8px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--acento); color: var(--sobre-acento); padding: 10px 14px; border-radius: 10px; font-weight: 700; }
.saltar:focus { top: 12px; }
.contenedor { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: max(16px, env(safe-area-inset-left, 0px)) max(16px, env(safe-area-inset-right, 0px)); }
[hidden] { display: none !important; }
.ico { width: 1.2em; height: 1.2em; flex: none; }
[data-icono] { display: inline-flex; }
.sin-scroll { overflow: hidden; }

/* ---------- Botones ---------- */
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 44px; padding: 10px 18px; border-radius: 999px; border: 2px solid transparent;
  font-weight: 800; font-size: .95rem; line-height: 1.1; text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color .15s, border-color .15s, color .15s, transform .2s var(--rebote), box-shadow .2s;
}
.boton:hover { transform: translateY(-1px); }
.boton:active { transform: translateY(1px) scale(.98); }
.boton--primario { background: var(--acento); color: var(--sobre-acento); box-shadow: 0 6px 16px -8px var(--acento); }
.boton--primario:hover { background: var(--acento-fuerte); }
.boton--secundario { background: var(--superficie); color: var(--texto); border-color: var(--borde); }
.boton--secundario:hover { border-color: var(--acento); color: var(--acento); }
.boton--wa { background: var(--wa); color: var(--sobre-wa); }
.boton--wa:hover { background: var(--wa-fuerte); }
.boton--claro { background: #fff; color: #84103f; }
.boton--claro:hover { background: #fff4f8; }
.boton--texto { background: none; color: var(--acento); padding-inline: 8px; text-decoration: underline; }
.boton--compacto { min-height: 40px; padding: 8px 14px; font-size: .9rem; }
.boton--grande { width: 100%; min-height: 54px; font-size: 1rem; }
.boton--grande-auto { min-height: 52px; padding-inline: 22px; font-size: 1rem; }
.boton[disabled] { opacity: .6; cursor: wait; }
.boton-icono {
  display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  background: transparent; border: 0; color: var(--texto); cursor: pointer; flex: none;
}
.boton-icono:hover { background: var(--superficie-2); }
.boton-icono--suave { background: var(--superficie-2); }
.boton-icono--suave:hover { background: var(--acento-suave); color: var(--acento); }
.boton-icono--claro { color: #fff; background: rgb(255 255 255 / .14); }
.boton-icono--claro:hover { background: rgb(255 255 255 / .28); }
.boton-icono--borde { border: 2px solid var(--borde); }
.chip-boton {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 14px; border-radius: 999px;
  border: 2px solid var(--borde); background: var(--superficie); color: var(--texto); font-weight: 700; font-size: .88rem; cursor: pointer;
  transition: border-color .15s, background-color .15s, color .15s;
}
.chip-boton:hover { border-color: var(--acento); }
.chip-boton[aria-pressed="true"] { background: var(--acento); border-color: var(--acento); color: var(--sobre-acento); }

/* ---------- Píldoras, categorías e insignias ---------- */
.pildora { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 8px; border-radius: 999px; background: var(--acento-suave); color: var(--acento); font-weight: 800; font-size: .85rem; margin-bottom: 18px; }
.pildora [data-icono] { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--acento); color: var(--sobre-acento); }
.pildora .ico { width: 15px; height: 15px; }
.pildora--verde { background: var(--verde-suave); color: var(--verde-tinta); }
.pildora--verde [data-icono] { background: var(--verde); color: #fff; }
.cat, .op, .insignia { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; font-size: .78rem; font-weight: 800; letter-spacing: .01em; white-space: nowrap; }
.cat .ico, .insignia .ico { width: 1.05em; height: 1.05em; }
.cat--casa { background: var(--casa-suave); color: var(--casa-tinta); }
.cat--departamento { background: var(--departamento-suave); color: var(--departamento-tinta); }
.cat--terreno { background: var(--terreno-suave); color: var(--terreno-tinta); }
.cat--auto { background: var(--auto-suave); color: var(--auto-tinta); }
.cat--moto { background: var(--moto-suave); color: var(--moto-tinta); }
.op { border: 1.5px solid var(--borde); color: var(--texto-2); padding: 3px 10px; }
.op--alquiler { border-color: var(--departamento); color: var(--departamento-tinta); }
.op--anticretico { border-color: var(--anticretico); color: var(--anticretico-tinta); background: var(--anticretico-suave); }
.insignia--verificado { background: var(--verde-suave); color: var(--verde-tinta); }
.insignia--360 { background: var(--acento-suave); color: var(--acento); }
.insignia--3d { background: var(--azul-suave); color: var(--azul-tinta); }
.insignia--destacado { background: var(--ambar-suave); color: var(--ambar-tinta); }
.insignia--destacado .ico { fill: currentColor; }

/* ---------- Cabecera ---------- */
.cabecera { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: color-mix(in srgb, var(--superficie) 90%, transparent); backdrop-filter: saturate(1.5) blur(14px); border-bottom: 1px solid var(--borde); }
.cabecera__fila { display: flex; align-items: center; gap: 12px; height: var(--alto-cabecera); }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--texto); min-width: 0; margin-right: auto; }
.logo img { width: 40px; height: 40px; transition: transform .4s var(--rebote); }
.logo:hover img { transform: rotate(-10deg) scale(1.05); }
.logo span { display: grid; line-height: 1.15; min-width: 0; }
.logo strong { font-family: var(--fuente-titulo); font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; }
.logo small { color: var(--texto-2); font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: none; }
.cabecera__nav { display: none; gap: 2px; }
.cabecera__nav a { color: var(--texto); text-decoration: none; padding: 8px 14px; border-radius: 999px; font-weight: 700; font-size: .95rem; }
.cabecera__nav a:hover { background: var(--acento-suave); color: var(--acento); }
.cabecera__acciones { display: flex; align-items: center; gap: 4px; }
.solo-ancho { display: none; }
@media (min-width: 640px) { .logo small { display: block; } .solo-ancho { display: inline; margin-right: -.25em; } }
@media (min-width: 1000px) { .cabecera__nav { display: flex; } }

/* ---------- Portada ---------- */
.portada { position: relative; padding: 28px 0 8px; overflow: hidden; isolation: isolate; }
.portada__fondo { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(38% 50% at 8% 12%, color-mix(in srgb, var(--casa) 22%, transparent), transparent 70%),
    radial-gradient(34% 46% at 92% 8%, color-mix(in srgb, var(--departamento) 20%, transparent), transparent 70%),
    radial-gradient(40% 50% at 80% 95%, color-mix(in srgb, var(--auto) 22%, transparent), transparent 70%),
    radial-gradient(36% 46% at 20% 98%, color-mix(in srgb, var(--terreno) 18%, transparent), transparent 70%);
}
.portada__grilla { display: grid; gap: 28px; }
.portada h1 { font-size: clamp(2.4rem, 10vw, 3.9rem); margin-bottom: .35em; }
.portada h1 mark { color: var(--acento); background: linear-gradient(transparent 62%, color-mix(in srgb, var(--auto) 55%, transparent) 62%, color-mix(in srgb, var(--auto) 55%, transparent) 92%, transparent 92%); padding-inline: .05em; }
.portada__bajada { font-size: 1.08rem; color: var(--texto-2); max-width: 48ch; }
.portada__acciones { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 22px; }
.sellos { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.sello { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 6px; border-radius: 999px; background: var(--superficie); border: 1px solid var(--borde); font-size: .88rem; color: var(--texto-2); box-shadow: var(--sombra); }
.sello strong { color: var(--texto); font-weight: 800; }
.sello [data-icono] { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; }
.sello .ico { width: 16px; height: 16px; }
.sello--verde [data-icono] { background: var(--verde); }
.sello--azul [data-icono] { background: var(--azul); }
.sello--ambar [data-icono] { background: var(--ambar); color: #3a2600; }
@media (min-width: 960px) {
  .portada { padding: 56px 0 24px; }
  .portada__grilla { grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; }
}

/* ---------- Visor 360 / 3D (tarjeta con barra debajo, nada encima de la imagen) ---------- */
.visor { position: relative; margin: 0; padding: 8px; border-radius: calc(var(--radio) + 6px); background: var(--superficie); border: 1px solid var(--borde); box-shadow: var(--sombra-alta); }
.visor__escena { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radio); overflow: hidden; background: var(--visor); isolation: isolate; }
@media (min-width: 720px) { .visor--ficha .visor__escena { aspect-ratio: 16 / 9; } }
.visor__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.visor__poster--esqueleto { background: linear-gradient(100deg, var(--superficie-2) 30%, var(--borde) 50%, var(--superficie-2) 70%) 0 0 / 300% 100%; animation: brillo 1.4s infinite linear; }
.visor__lienzo { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: var(--visor); }
model-viewer.visor__lienzo { --poster-color: transparent; --progress-bar-color: transparent; background: radial-gradient(circle at 50% 38%, #3b2d4d, #120d19 75%); }
model-viewer.modo-medir { cursor: crosshair; }
.visor__iniciar {
  position: absolute; z-index: 2; left: 50%; top: 50%; translate: -50% -50%;
  display: inline-flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 22px 8px 8px;
  border: 0; border-radius: 999px; cursor: pointer; white-space: nowrap;
  background: #fff; color: #1d1428; font-weight: 800; font-size: 1rem;
  box-shadow: 0 12px 30px -10px rgb(0 0 0 / .55);
  transition: transform .25s var(--rebote);
}
.visor__iniciar:hover { transform: scale(1.05); }
.visor__iniciar [data-icono] { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #a3164f; color: #fff; position: relative; }
.visor__iniciar .ico { width: 18px; height: 18px; fill: currentColor; stroke: none; margin-left: 2px; }
@media (prefers-reduced-motion: no-preference) { .visor__iniciar [data-icono]::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; border: 3px solid #a3164f; animation: pulso 1.8s ease-out infinite; } }
.visor__barra { display: flex; align-items: center; gap: 10px; padding: 10px 6px 4px 10px; font-size: .88rem; min-height: 56px; }
.visor__etiqueta { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; white-space: nowrap; }
@media (max-width: 479px) { .visor__pista { visibility: hidden; } }
.visor__etiqueta .ico { color: var(--acento); }
.visor__pista { color: var(--texto-2); margin-right: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.visor__error { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; text-align: center; margin: 0; color: #fff; }
.visor__escena--cargando::before { content: 'Cargando…'; position: absolute; z-index: 3; left: 50%; top: 50%; translate: -50% -50%; padding: 10px 18px; border-radius: 999px; background: #fff; color: #1d1428; font-weight: 800; }
.visor__progreso { position: absolute; left: 0; right: 0; top: 0; height: 4px; }
.visor__progreso span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--casa), var(--auto)); transition: width .2s; }
/* Pantalla completa (nativa y alternativa para iPhone) */
.visor:fullscreen, .visor.es-pantalla-completa { display: flex; flex-direction: column; border-radius: 0; width: 100%; height: 100%; padding: 0; border: 0; }
.visor:fullscreen .visor__escena, .visor.es-pantalla-completa .visor__escena { flex: 1; aspect-ratio: auto; border-radius: 0; }
.visor:fullscreen .visor__barra, .visor.es-pantalla-completa .visor__barra { padding: 8px max(12px, env(safe-area-inset-right, 0px)) max(8px, env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); }
.visor.es-pantalla-completa { position: fixed; inset: 0; z-index: 1000; height: 100dvh; }
/* Ajustes de Pannellum */
.pnlm-container { background: var(--visor) !important; font-family: var(--fuente) !important; }
.pnlm-load-box { background: rgb(0 0 0 / .6) !important; border-radius: 14px !important; }
.pnlm-hotspot-base.pnlm-info { background-color: #a3164f; border-radius: 50%; width: 30px; height: 30px; box-shadow: 0 0 0 5px rgb(255 255 255 / .6); }
.pnlm-tooltip span { background: rgb(29 20 40 / .92) !important; font-family: var(--fuente); border-radius: 8px !important; }
.pnlm-controls-container { top: 12px !important; left: 12px !important; }

/* Puntos marcados y medición en el modelo 3D */
.punto { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border-radius: 50%; border: 3px solid #fff; color: #fff; font-weight: 800; font-size: .82rem; cursor: pointer; box-shadow: 0 4px 10px rgb(0 0 0 / .4); transition: transform .2s var(--rebote), opacity .2s; }
.punto--defecto { background: #e5484d; }
.punto--detalle { background: #2f6bff; }
.punto:not([data-visible]) { opacity: .25; }
.punto--activo, .punto:hover { transform: scale(1.3); }
.marca-medicion { display: block; width: 16px; height: 16px; border-radius: 50%; background: #ffb000; border: 3px solid #fff; box-shadow: 0 2px 8px rgb(0 0 0 / .5); }
svg.medicion { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
svg.medicion line { stroke: #ffb000; stroke-width: 3; stroke-dasharray: 8 6; }
svg.medicion rect { fill: #1d1428; }
svg.medicion text { fill: #fff; font: 800 14px var(--fuente); }

/* Panel de herramientas 3D (debajo del visor) */
.herramientas { margin-top: 12px; padding: 16px; border-radius: var(--radio); background: var(--superficie); border: 1px solid var(--borde); }
.herr3d { display: grid; gap: 14px; }
.herr3d__botones { display: flex; flex-wrap: wrap; gap: 8px; }
.herr3d__resultado:empty { display: none; }
.pista { display: flex; align-items: flex-start; gap: 8px; margin: 0; color: var(--texto-2); font-size: .9rem; }
.pista .ico { color: var(--azul); margin-top: 2px; }
.medidas { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; list-style: none; padding: 0; margin: 0 0 10px; }
.medidas li, .resultado-medida { display: grid; padding: 10px 14px; border-radius: var(--radio-sm); background: var(--ambar-suave); color: var(--ambar-tinta); }
.medidas span, .resultado-medida span { font-size: .78rem; font-weight: 700; }
.medidas strong, .resultado-medida strong { font-family: var(--fuente-titulo); font-size: 1.4rem; color: var(--texto); font-variant-numeric: tabular-nums; }
.resultado-medida { margin: 0 0 8px; justify-self: start; min-width: 180px; }
.herr3d__puntos h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 1.2rem; margin-bottom: 10px; }
.herr3d__puntos h3 span { font-family: var(--fuente); font-size: .85rem; font-weight: 600; letter-spacing: 0; color: var(--texto-2); }
.lista-puntos { display: grid; gap: 8px; list-style: none; margin: 0 0 12px; padding: 0; }
@media (min-width: 640px) { .lista-puntos { grid-template-columns: 1fr 1fr; } }
.lista-puntos__item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border-radius: var(--radio-sm); border: 2px solid var(--borde); background: var(--superficie); text-align: left; cursor: pointer; transition: border-color .15s, transform .2s var(--rebote); }
.lista-puntos__item:hover { transform: translateY(-2px); }
.lista-puntos__item strong { display: block; font-size: .92rem; line-height: 1.3; }
.lista-puntos__item small { color: var(--texto-2); font-weight: 700; font-size: .78rem; }
.lista-puntos__num { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; color: #fff; font-weight: 800; font-size: .85rem; }
.lista-puntos__item--defecto .lista-puntos__num { background: var(--rojo); }
.lista-puntos__item--detalle .lista-puntos__num { background: var(--azul); }
.lista-puntos__item--defecto[aria-current] { border-color: var(--rojo); background: var(--rojo-suave); }
.lista-puntos__item--detalle[aria-current] { border-color: var(--azul); background: var(--azul-suave); }
.detalle-punto { display: grid; gap: 14px; padding: 14px; border-radius: var(--radio-sm); }
.detalle-punto--defecto { background: var(--rojo-suave); }
.detalle-punto--detalle { background: var(--azul-suave); }
.detalle-punto img { border-radius: 10px; width: 100%; max-width: 320px; aspect-ratio: 3 / 2; object-fit: cover; }
.detalle-punto h4 { font-size: 1.15rem; margin-bottom: .3em; }
.detalle-punto p { margin: 0; }
.detalle-punto__tipo { display: flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px !important; }
.detalle-punto--defecto .detalle-punto__tipo { color: var(--rojo-tinta); }
.detalle-punto--detalle .detalle-punto__tipo { color: var(--azul-tinta); }
@media (min-width: 640px) { .detalle-punto { grid-template-columns: auto 1fr; align-items: start; } }

/* ---------- Categorías (baldosas de colores) ---------- */
.categorias { padding: 28px 0 8px; }
.mosaico { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; list-style: none; padding: 0; margin: 0; }
@media (min-width: 640px) { .mosaico { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .mosaico { grid-template-columns: repeat(6, 1fr); gap: 14px; } }
.baldosa { --c: var(--acento); --c-suave: var(--acento-suave); --c-tinta: var(--acento);
  display: grid; gap: 2px; padding: 16px; min-height: 100%; border-radius: var(--radio); background: var(--c-suave); color: var(--texto); text-decoration: none;
  border: 2px solid transparent; transition: transform .25s var(--rebote), border-color .15s; }
.baldosa:hover { transform: translateY(-4px); border-color: var(--c); }
.baldosa__icono { display: inline-grid !important; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: var(--c); color: #fff; margin-bottom: 10px; transition: transform .35s var(--rebote); }
.baldosa__icono .ico { width: 26px; height: 26px; }
.baldosa:hover .baldosa__icono { transform: rotate(-8deg) scale(1.08); }
.baldosa strong { font-family: var(--fuente-titulo); font-size: 1.15rem; font-weight: 800; letter-spacing: -.01em; }
.baldosa small { color: var(--c-tinta); font-weight: 700; font-size: .82rem; }
.baldosa--casa { --c: var(--casa); --c-suave: var(--casa-suave); --c-tinta: var(--casa-tinta); }
.baldosa--departamento { --c: var(--departamento); --c-suave: var(--departamento-suave); --c-tinta: var(--departamento-tinta); }
.baldosa--terreno { --c: var(--terreno); --c-suave: var(--terreno-suave); --c-tinta: var(--terreno-tinta); }
.baldosa--auto { --c: var(--auto); --c-suave: var(--auto-suave); --c-tinta: var(--auto-tinta); }
.baldosa--auto .baldosa__icono { color: #3a2600; }
.baldosa--moto { --c: var(--moto); --c-suave: var(--moto-suave); --c-tinta: var(--moto-tinta); }
.baldosa--anticretico { --c: var(--anticretico); --c-suave: var(--anticretico-suave); --c-tinta: var(--anticretico-tinta); }

/* ---------- Buscador ---------- */
.buscar { padding: 40px 0 56px; }
.encabezado-seccion { margin-bottom: 18px; }
.encabezado-seccion p { color: var(--texto-2); margin: 0; }
.titulo-seccion { font-size: clamp(1.8rem, 6vw, 2.7rem); }
.buscador { display: grid; gap: 16px; padding: 16px; background: var(--superficie); border: 1px solid var(--borde); border-radius: calc(var(--radio) + 4px); box-shadow: var(--sombra); }
.buscador__fila { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.buscador__fila--secundaria { justify-content: space-between; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.segmentado { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--superficie-2); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.segmentado label, .chips label { position: relative; flex: none; }
.segmentado input, .chips input, .interruptor input { position: absolute; opacity: 0; width: 100%; height: 100%; inset: 0; margin: 0; cursor: pointer; }
.segmentado span { display: block; padding: 9px 16px; border-radius: 999px; font-weight: 800; min-height: 40px; color: var(--texto-2); transition: background-color .2s, color .2s; }
.segmentado input:checked + span { background: var(--acento); color: var(--sobre-acento); box-shadow: 0 4px 12px -6px var(--acento); }
.segmentado input:focus-visible + span, .chips input:focus-visible + span, .interruptor input:focus-visible + span { outline: 3px solid var(--foco); outline-offset: 2px; }
.buscador__texto { flex: 1 1 220px; }
input[type="search"], input[type="number"], input[type="text"], input[type="url"], input[type="password"], input[type="date"], select, textarea {
  width: 100%; min-height: 48px; padding: 10px 16px; border: 2px solid var(--borde); border-radius: 14px; background: var(--fondo); font-size: 1rem;
}
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--acento); outline-offset: 0; }
.nota-operacion { margin: -4px 0 0; padding: 12px 14px; border-radius: 14px; background: var(--anticretico-suave); color: var(--anticretico-tinta); font-size: .9rem; font-weight: 600; }
.chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 3px; margin: -3px; }
.chips::-webkit-scrollbar, .segmentado::-webkit-scrollbar { display: none; }
.chips label { --c: var(--texto); --c-texto: var(--fondo); }
.chips span { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; padding: 8px 16px 8px 12px; border: 2px solid var(--borde); border-radius: 999px; font-weight: 700; font-size: .95rem; background: var(--superficie); transition: background-color .15s, border-color .15s, color .15s; }
.chips span::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--c); }
.chips input:checked + span { background: var(--c); border-color: var(--c); color: var(--c-texto); }
.chips input:checked + span::before { background: currentColor; }
.chips label:hover span { border-color: var(--c); }
.chip--casa { --c: var(--casa) !important; --c-texto: #fff !important; }
.chip--departamento { --c: var(--departamento) !important; --c-texto: #fff !important; }
.chip--terreno { --c: var(--terreno) !important; --c-texto: #fff !important; }
.chip--auto { --c: var(--auto) !important; --c-texto: #3a2600 !important; }
.chip--moto { --c: var(--moto) !important; --c-texto: #fff !important; }
.interruptores { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.interruptor { position: relative; display: inline-flex; }
.interruptor span { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: .92rem; min-height: 44px; }
.interruptor span::before { content: ''; width: 44px; height: 26px; border-radius: 999px; background: var(--borde); transition: background .2s; flex: none; }
.interruptor span::after { content: ''; position: absolute; left: 4px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; background: #fff; transition: transform .25s var(--rebote); box-shadow: 0 1px 3px rgb(0 0 0 / .3); }
.interruptor input:checked + span::before { background: var(--verde); }
.interruptor input:checked + span::after { transform: translateX(18px); }
.panel-filtros { display: grid; gap: 14px; grid-template-columns: 1fr; padding-top: 16px; border-top: 2px dashed var(--borde); }
.campo { display: grid; gap: 6px; font-weight: 800; font-size: .88rem; }
.campo--doble > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.panel-filtros__pie { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
@media (min-width: 640px) { .panel-filtros { grid-template-columns: 1fr 1fr; } .panel-filtros__pie { grid-column: 1 / -1; } }
@media (min-width: 1000px) { .panel-filtros { grid-template-columns: repeat(4, 1fr); } }
.contador { margin: 22px 0 14px; color: var(--texto-2); font-weight: 700; }

/* ---------- Tarjetas (la foto queda limpia; todo lo demás va debajo) ---------- */
.grilla { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .grilla { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .grilla { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.tarjeta { display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); transition: box-shadow .25s, transform .3s var(--rebote); }
@media (hover: hover) { .tarjeta:hover { box-shadow: var(--sombra-alta); transform: translateY(-4px); } }
.tarjeta--esqueleto { min-height: 440px; background: linear-gradient(100deg, var(--superficie) 30%, var(--superficie-2) 50%, var(--superficie) 70%) 0 0 / 300% 100%; animation: brillo 1.4s infinite linear; }
.tarjeta__media { display: block; aspect-ratio: 3 / 2; background: var(--superficie-2); overflow: hidden; margin: 8px 8px 0; border-radius: calc(var(--radio) - 6px); }
.tarjeta__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
@media (hover: hover) { .tarjeta:hover .tarjeta__media img { transform: scale(1.05); } }
.tarjeta__cuerpo { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 16px; flex: 1; }
.tarjeta__etiquetas, .tarjeta__insignias, .ficha__etiquetas, .ficha__insignias { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.tarjeta__titulo { margin: 0; font-family: var(--fuente); font-size: 1.08rem; font-weight: 800; letter-spacing: -.01em; line-height: 1.3; }
.tarjeta__titulo a { color: var(--texto); text-decoration: none; }
.tarjeta__titulo a:hover { color: var(--acento); text-decoration: underline; }
.tarjeta__lugar { display: flex; align-items: center; gap: 6px; margin: 0; color: var(--texto-2); font-size: .92rem; }
.tarjeta__precio { margin: 2px 0 0; font-family: var(--fuente-titulo); font-size: 1.6rem; font-weight: 800; color: var(--acento); line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.tarjeta__precio span { display: block; font-family: var(--fuente); font-size: .82rem; font-weight: 600; letter-spacing: 0; color: var(--texto-2); }
.tarjeta__datos { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 4px 0 0; padding: 0; font-size: .86rem; font-weight: 700; }
.tarjeta__datos li { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 10px; background: var(--superficie-2); }
.tarjeta__datos .ico { color: var(--texto-2); width: 1.05em; height: 1.05em; }
.tarjeta__acciones { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: auto; padding-top: 12px; }
.vacio { grid-column: 1 / -1; padding: 40px 20px; text-align: center; border: 2px dashed var(--borde); border-radius: var(--radio); background: var(--superficie); }
.vacio--pagina { margin-block: 48px; }

/* ---------- Verificados ---------- */
.verificados { padding: 56px 0; background: var(--verde-suave); }
.verificados__grilla { display: grid; gap: 28px; }
.verificados__texto { font-size: 1.05rem; color: var(--texto); max-width: 52ch; }
.verificados__nota { font-size: .85rem; color: var(--texto-2); max-width: 52ch; }
.verificados__listas { display: grid; gap: 14px; }
.lista-control { padding: 20px; border-radius: var(--radio); background: var(--superficie); box-shadow: var(--sombra); }
.lista-control h3 { display: flex; align-items: center; gap: 10px; font-size: 1.2rem; }
.lista-control h3 [data-icono] { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #fff; }
.lista-control--inmueble h3 [data-icono] { background: var(--casa); }
.lista-control--vehiculo h3 [data-icono] { background: var(--auto); color: #3a2600; }
.lista-control ul { display: grid; gap: 10px; list-style: none; padding: 0; margin: 0; }
.lista-control li { display: flex; align-items: flex-start; gap: 10px; font-weight: 600; }
.lista-control li [data-icono] { display: inline-grid; place-items: center; width: 24px; height: 24px; flex: none; border-radius: 50%; background: var(--verde); color: #fff; }
.lista-control li .ico { width: 14px; height: 14px; stroke-width: 3; }
@media (min-width: 900px) { .verificados__grilla { grid-template-columns: 1fr 1.2fr; align-items: center; gap: 48px; } .verificados__listas { grid-template-columns: 1fr 1fr; } }

/* ---------- Cómo funciona ---------- */
.pasos { padding: 64px 0; background: var(--banda); color: var(--sobre-banda); }
.pasos .titulo-seccion { max-width: 22ch; }
.pasos__lista { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 16px; counter-reset: paso; }
.paso { --c: var(--casa); counter-increment: paso; position: relative; padding: 24px; border-radius: var(--radio); background: rgb(255 255 255 / .06); border: 1px solid rgb(255 255 255 / .1); }
.paso::after { content: counter(paso); position: absolute; top: 18px; right: 22px; font-family: var(--fuente-titulo); font-size: 2.6rem; font-weight: 800; color: rgb(255 255 255 / .12); line-height: 1; }
.paso__icono { display: inline-grid !important; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--c); color: #fff; margin-bottom: 16px; }
.paso__icono .ico { width: 26px; height: 26px; }
.paso h3 { font-size: 1.35rem; }
.paso p { color: rgb(245 240 251 / .78); margin: 0; }
.paso--azul { --c: var(--azul); }
.paso--verde { --c: var(--verde); }
@media (min-width: 800px) { .pasos__lista { grid-template-columns: repeat(3, 1fr); gap: 20px; } }

/* ---------- Llamado a publicar ---------- */
.publicar { padding: 56px 0; }
.publicar__caja { position: relative; overflow: hidden; display: grid; gap: 18px; align-items: center; padding: 32px 24px; border-radius: calc(var(--radio) + 8px); background: linear-gradient(120deg, #84103f, #b31a55 60%, #c42a55); color: #fff; isolation: isolate; }
.publicar__caja::before, .publicar__caja::after { content: ''; position: absolute; z-index: -1; border-radius: 50%; }
.publicar__caja::before { width: 220px; height: 220px; right: -60px; top: -90px; background: #ffb000; opacity: .9; }
.publicar__caja::after { width: 140px; height: 140px; right: 120px; bottom: -80px; background: #ff5a36; opacity: .85; }
.publicar__caja h2 { font-size: clamp(1.7rem, 5vw, 2.4rem); max-width: 20ch; }
.publicar__caja p { margin: 0; opacity: .92; max-width: 46ch; }
@media (min-width: 800px) { .publicar__caja { grid-template-columns: 1fr auto; padding: 44px 48px; } }

/* ---------- Pie ---------- */
.pie { background: var(--banda); color: rgb(245 240 251 / .75); padding: 36px 0 40px; font-size: .9rem; }
.pie__fila { display: grid; gap: 8px; }
.pie__marca { display: flex; align-items: center; gap: 10px; margin: 0; color: #fff; font-family: var(--fuente-titulo); font-size: 1.2rem; }
.pie__redes { display: flex; flex-wrap: wrap; gap: 4px 16px; list-style: none; margin: 0; padding: 0; }
.pie__redes a { color: #fff; display: inline-block; padding: 8px 0; }
.pie__legal { font-size: .8rem; margin: 0; }
.pagina-ficha .pie { padding-bottom: 120px; }
@media (min-width: 960px) { .pagina-ficha .pie { padding-bottom: 40px; } }

/* ---------- Ficha ---------- */
.migas ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 16px 0; padding: 0; font-size: .85rem; color: var(--texto-2); }
.migas li + li::before { content: '/'; margin-right: 6px; opacity: .6; }
.migas li[aria-current] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 50vw; }
.migas a { color: var(--texto-2); }
.escenario { margin-bottom: 24px; }
.escenario__pestanas { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 3px; margin: -3px -3px 12px; }
.escenario__pestanas::-webkit-scrollbar { display: none; }
.escenario__pestanas [role="tab"] { flex: none; display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 2px solid var(--borde); background: var(--superficie); font-weight: 800; font-size: .9rem; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.escenario__pestanas [role="tab"]:hover { border-color: var(--acento); }
.escenario__pestanas [aria-selected="true"] { background: var(--acento); color: var(--sobre-acento); border-color: var(--acento); }
.carrusel { position: absolute; inset: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.carrusel::-webkit-scrollbar { display: none; }
.carrusel__item { flex: 0 0 100%; scroll-snap-align: center; border: 0; padding: 0; background: none; cursor: zoom-in; }
.carrusel__item img { width: 100%; height: 100%; object-fit: cover; }
.ficha__grilla { display: grid; gap: 24px; }
@media (min-width: 960px) { .ficha__grilla { grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: start; } }
.ficha__etiquetas { margin-bottom: 12px; }
.ficha h1 { font-size: clamp(2rem, 7vw, 3rem); margin-bottom: .3em; }
.ficha__lugar { display: flex; align-items: center; gap: 6px; color: var(--texto-2); font-weight: 600; }
.ficha__insignias { margin-bottom: 16px; }
.ficha__precio { font-family: var(--fuente-titulo); font-size: 2.2rem; font-weight: 800; color: var(--acento); line-height: 1.05; margin: 0 0 4px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.ficha__precio-bs { color: var(--texto-2); margin: 0 0 12px; font-weight: 600; }
.ficha__precio-etiqueta, .caja-contacto__op { display: block; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--texto-2); margin: 0 0 4px; }
.ficha__precio-movil { padding: 16px 18px 6px; border-radius: var(--radio); background: var(--superficie); border: 1px solid var(--borde); margin-bottom: 16px; }
.ficha__clave { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; list-style: none; padding: 0; margin: 0 0 8px; }
.ficha__clave li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 16px; background: var(--superficie); border: 1px solid var(--borde); font-weight: 800; }
.ficha__clave .ico { display: block; width: 36px; height: 36px; padding: 8px; border-radius: 12px; background: var(--acento-suave); color: var(--acento); }
.bloque { padding: 28px 0 8px; margin-top: 8px; }
.bloque h2 { font-size: 1.6rem; }
.bloque p { max-width: 68ch; }
.bloque--verificacion { margin-top: 20px; padding: 20px; border-radius: var(--radio); background: var(--superficie-2); }
.bloque--verificado { background: var(--verde-suave); }
.verificacion__cabecera { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.verificacion__cabecera h2 { font-size: 1.35rem; margin: 0 0 2px; }
.verificacion__cabecera p { margin: 0; color: var(--texto-2); font-size: .92rem; }
.verificacion__icono { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; background: var(--texto-2); color: #fff; }
.bloque--verificado .verificacion__icono { background: var(--verde); }
.verificacion__icono .ico { width: 28px; height: 28px; }
.verificacion__lista { display: grid; gap: 8px; list-style: none; padding: 0; margin: 0 0 12px; }
@media (min-width: 640px) { .verificacion__lista { grid-template-columns: 1fr 1fr; } }
.verificacion__lista li { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--superficie); font-weight: 600; font-size: .92rem; }
.verificacion__lista .ico { flex: none; width: 22px; height: 22px; padding: 4px; border-radius: 50%; stroke-width: 3; }
.verificacion__lista .ok .ico { background: var(--verde); color: #fff; }
.verificacion__lista .pendiente { color: var(--texto-2); }
.verificacion__lista .pendiente .ico { background: var(--borde); color: var(--texto-2); }
.verificacion__nota { font-size: .82rem; color: var(--texto-2); margin: 0; }
.nota-anticretico { display: flex; gap: 14px; align-items: flex-start; margin-top: 20px; padding: 18px; border-radius: var(--radio); background: var(--anticretico-suave); }
.nota-anticretico > [data-icono] { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 14px; background: var(--anticretico); color: #fff; }
.nota-anticretico h2 { font-size: 1.15rem; margin-bottom: .3em; color: var(--anticretico-tinta); }
.nota-anticretico p { margin: 0; font-size: .95rem; }
.caracteristicas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.caracteristicas div { background: var(--superficie); border: 1px solid var(--borde); border-radius: 14px; padding: 10px 14px; }
.caracteristicas dt { font-size: .8rem; color: var(--texto-2); font-weight: 600; }
.caracteristicas dd { margin: 0; font-weight: 800; }
@media (min-width: 640px) { .caracteristicas { grid-template-columns: repeat(3, 1fr); } }
.comodidades { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 16px 0 0; }
.comodidades li { padding: 7px 14px; border-radius: 999px; background: var(--acento-suave); color: var(--acento); font-size: .9rem; font-weight: 700; }
.galeria { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.galeria button { padding: 0; border: 0; border-radius: 14px; overflow: hidden; cursor: zoom-in; aspect-ratio: 3 / 2; background: var(--superficie-2); }
.galeria img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.galeria button:hover img { transform: scale(1.06); }
@media (min-width: 640px) { .galeria { grid-template-columns: repeat(3, 1fr); } }
.mapa__marco { aspect-ratio: 4 / 3; border-radius: var(--radio); overflow: hidden; background: var(--superficie-2); border: 1px solid var(--borde); }
@media (min-width: 640px) { .mapa__marco { aspect-ratio: 16 / 9; } }
.mapa__marco iframe { width: 100%; height: 100%; border: 0; }
.mapa__nota { margin-top: 8px; font-size: .9rem; color: var(--texto-2); }
.ficha__lateral { display: none; }
.caja-contacto { display: grid; gap: 10px; padding: 24px; border-radius: calc(var(--radio) + 4px); background: var(--superficie); border: 1px solid var(--borde); box-shadow: var(--sombra-alta); }
.caja-contacto .ficha__precio-bs { margin-bottom: 8px; }
.caja-contacto__verificado { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 4px 0 0; padding: 10px; border-radius: 12px; background: var(--verde-suave); color: var(--verde-tinta); font-weight: 800; font-size: .88rem; }
.caja-contacto__nota { margin: 0; font-size: .85rem; color: var(--texto-2); text-align: center; }
.similares { padding: 40px 0 56px; margin-top: 32px; background: var(--superficie-2); }
.barra-accion { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; display: flex; gap: 8px; padding: 10px max(16px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); background: color-mix(in srgb, var(--superficie) 94%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--borde); }
.barra-accion .boton { flex: 1; min-height: 50px; }
@media (min-width: 960px) {
  .ficha__lateral { display: block; position: sticky; top: calc(var(--alto-cabecera) + 20px); }
  .ficha__precio-movil, .barra-accion { display: none; }
}

/* ---------- Visor de fotos ---------- */
.visor-fotos { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgb(12 8 18 / .97); color: #fff; }
.visor-fotos::backdrop { background: rgb(0 0 0 / .7); }
.visor-fotos[open] { display: grid; place-items: center; }
.visor-fotos img { max-width: 100%; max-height: 100dvh; object-fit: contain; }
.visor-fotos .boton-icono { position: absolute; }
.visor-fotos__cerrar { top: calc(12px + env(safe-area-inset-top, 0px)); right: max(12px, env(safe-area-inset-right, 0px)); }
.visor-fotos__ant { left: max(12px, env(safe-area-inset-left, 0px)); top: 50%; translate: 0 -50%; }
.visor-fotos__sig { right: max(12px, env(safe-area-inset-right, 0px)); top: 50%; translate: 0 -50%; }
.visor-fotos__contador { position: absolute; top: calc(20px + env(safe-area-inset-top, 0px)); left: max(20px, env(safe-area-inset-left, 0px)); margin: 0; font-weight: 800; }

/* ---------- Aviso ---------- */
.aviso { position: fixed; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom, 0px)); z-index: 2000; translate: -50% 20px; opacity: 0; pointer-events: none; padding: 12px 18px; border-radius: 999px; background: var(--texto); color: var(--fondo); font-weight: 800; transition: opacity .2s, translate .3s var(--rebote); max-width: calc(100vw - 32px); }
.aviso--visible { opacity: 1; translate: -50% 0; }

/* ---------- Animaciones ---------- */
@keyframes brillo { to { background-position: -300% 0; } }
@keyframes pulso { from { transform: scale(1); opacity: .9; } to { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
