/* ─────────── JOVEN — Vibrante, Mapa protagonista, Poppins ─────────── */
.jv-body { font-family:'Poppins',sans-serif; margin:0; background:#fafafa; color:#1a1a2e; line-height:1.5; }

/* ─────────── HEADER (default: ficha usa --primary) ─────────── */
.jv-header { position:sticky;top:0;z-index:100;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 80%,#000));box-shadow:0 2px 12px rgba(0,0,0,0.12); }
.jv-header-inner { max-width:1280px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between; }
.jv-logo { display:flex;align-items:center;gap:8px;text-decoration:none; }
.jv-logo img { height:34px;width:auto; }
.jv-logo-txt { font-weight:800;font-size:1.1rem;color:white; }
.jv-nav { display:flex;align-items:center;gap:20px; }
.jv-nav a { color:rgba(255,255,255,0.92);text-decoration:none;font-size:0.85rem;font-weight:500;transition:color 0.2s; }
.jv-nav a:hover { color:white; }
.jv-nav-btn { padding:6px 18px;background:transparent;border:2px solid rgba(255,255,255,0.85);color:white!important;border-radius:50px;font-weight:600!important;transition:all 0.2s; }
.jv-nav-btn:hover { background:white;color:var(--primary)!important;border-color:white; }

/* Index: header con --primary (igual que fichas) */

/* Hero con collage de fotos (350px × ancho contenedor, layout aleatorio por carga) */
.jv-hero { position:relative; height:350px; overflow:hidden; background:#f1f5f9; }
.jv-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.28) 100%); z-index:1; pointer-events:none; }
.jv-hero-collage { position:relative; z-index:0; display:grid; grid-template-columns:repeat(4, 1fr); grid-template-rows:repeat(3, 1fr); gap:6px; height:100%; width:100%; padding:6px; box-sizing:border-box; grid-auto-flow:dense; }
.jv-hero-collage-item { position:relative; overflow:hidden; background:#e2e8f0; display:block; border-radius:8px; min-width:0; min-height:0; text-decoration:none; }
.jv-hero-collage-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease, filter 0.3s; display:block; }
.jv-hero-collage-item:hover img { transform:scale(1.08); filter:brightness(0.85); }
.jv-collage-label { position:absolute; left:0; right:0; bottom:0; padding:6px 10px 7px; background:linear-gradient(to top, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.2) 70%, transparent 100%); color:white; transform:translateY(100%); transition:transform 0.3s; pointer-events:none; line-height:1.2; z-index:2; }
.jv-hero-collage-item:hover .jv-collage-label { transform:translateY(0); }
.jv-collage-precio { display:block; font-size:0.74rem; font-weight:800; color:var(--accent); letter-spacing:0.2px; }
.jv-collage-tit { display:block; font-size:0.7rem; font-weight:500; color:rgba(255,255,255,0.95); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jv-collage-cta { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 75%, #000)); color:white; font-size:0.9rem; font-weight:700; }
.jv-collage-cta span { display:flex; flex-direction:column; align-items:center; gap:4px; }
.jv-collage-cta i { font-size:1.6rem; }
.jv-hero-title { position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); z-index:3; margin:0; padding:8px 24px; color:var(--accent); font-weight:900; font-size:clamp(1.8rem, 4.5vw, 3.2rem); text-align:center; line-height:1.1; max-width:92%; text-shadow:0 2px 16px rgba(0,0,0,0.7), 0 0 2px rgba(0,0,0,0.5); letter-spacing:-0.5px; pointer-events:none; }
.jv-hero-search-bar { padding:14px 16px; background:white; border:1px solid #e2e8f0; border-radius:12px; box-shadow:0 4px 20px rgba(0,0,0,0.1); position:relative; z-index:5; margin:12px 16px 0; }
.jv-hero-search-form { max-width:1100px; margin:0 auto; display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.jv-hero-field { flex:1 1 220px; display:flex; align-items:center; gap:6px; background:#f1f5f9; border-radius:50px; padding:0 14px; height:40px; min-width:180px; }
.jv-hero-field i { color:#94a3b8; font-size:0.9rem; }
.jv-hero-field input { border:none; background:none; outline:none; font-size:0.85rem; font-family:inherit; width:100%; }
.jv-hero-search-bar select { height:40px; border:1.5px solid #e2e8f0; border-radius:50px; padding:0 14px; font-size:0.82rem; font-family:inherit; cursor:pointer; outline:none; background:white; flex:1 1 130px; min-width:120px; color:#475569; }
.jv-hero-search-bar select:focus { border-color:var(--primary); }
.jv-hero-search-bar button { height:40px; padding:0 20px; border-radius:50px; border:none; background:var(--primary); color:white; cursor:pointer; font-size:0.85rem; font-weight:600; flex-shrink:0; transition:all 0.2s; font-family:inherit; display:flex; align-items:center; gap:6px; box-shadow:0 2px 8px rgba(0,0,0,0.12); }
.jv-hero-search-bar button:hover { background:color-mix(in srgb, var(--primary) 85%, #000); transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,0.18); }

/* Search bar activa (super compacta) */
.jv-search-bar { padding:8px 16px;background:var(--banda);border-bottom:1px solid #e2e8f0;box-shadow:0 2px 8px rgba(0,0,0,0.04); }
.jv-search-inner { max-width:820px;margin:0 auto; }
.jv-search-form { display:flex;gap:5px;align-items:center;flex-wrap:nowrap; }
.jv-search-field { flex:1 0 0;display:flex;align-items:center;gap:5px;background:#f1f5f9;border-radius:50px;padding:0 10px;height:32px;min-width:120px; }
.jv-search-field i { color:#94a3b8;font-size:0.75rem; }
.jv-search-field input { border:none;background:none;outline:none;font-size:0.75rem;font-family:inherit;width:100%; }
.jv-search-form select { height:32px;padding:0 8px;border:1.5px solid #e2e8f0;border-radius:50px;font-size:0.72rem;font-family:inherit;cursor:pointer;background:white;outline:none;max-width:130px; }
.jv-search-form button { height:32px;padding:0 12px;border-radius:50px;border:1px solid var(--secondary);background:var(--accent);color:var(--secondary);font-weight:600;font-size:0.75rem;cursor:pointer;font-family:inherit;transition:all 0.2s;white-space:nowrap; }
.jv-search-form button:hover { filter:brightness(1.08); }

/* Main */
.jv-main { padding:32px 24px; }
.jv-main-inner { max-width:1280px;margin:0 auto; }
.jv-results-hd { display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;font-size:0.9rem;color:#64748b; }
.jv-results-hd strong { color:#1a1a2e;font-size:1.1rem; }
.jv-toggles { display:flex;gap:6px; }
.jv-tog { padding:6px 14px;border-radius:50px;color:#64748b;text-decoration:none;font-size:0.82rem;font-weight:500;transition:all 0.2s;border:2px solid #e2e8f0;background:transparent; }
.jv-tog:hover { border-color:var(--primary);color:var(--primary); }
.jv-tog.active { border-color:var(--primary);color:var(--primary);background:transparent; }
.jv-tog-map { display:flex;align-items:center;gap:4px; }

/* Grid */
.jv-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px; }
.jv-grid-lista { grid-template-columns:1fr; }
.jv-empty { text-align:center;padding:80px 20px;color:#94a3b8; }
.jv-empty i { font-size:2.5rem;display:block;margin-bottom:12px; }
.jv-empty a { color:var(--primary);text-decoration:none;font-weight:600; }

/* Card */
.jv-card { display:block;background:white;border-radius:16px;overflow:hidden;text-decoration:none;box-shadow:0 1px 3px rgba(0,0,0,0.04);transition:all 0.3s ease; }
.jv-card:hover { transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.1); }
.jv-card-lista { display:flex; }
.jv-card-lista .jv-card-img { width:280px;flex-shrink:0; }
.jv-card-img { position:relative;aspect-ratio:16/10;overflow:hidden;background:#f1f5f9; }
.jv-card-img img { width:100%;height:100%;object-fit:cover;transition:transform 0.4s; }
.jv-card:hover .jv-card-img img { transform:scale(1.04); }
.jv-card-op { position:absolute;top:12px;left:12px;padding:4px 14px;border-radius:50px;background:rgba(var(--primary-rgb),0.12);color:var(--primary);font-size:0.68rem;font-weight:700;text-transform:uppercase; }
.jv-card-body { padding:16px; }
.jv-card-precio { font-size:1rem;font-weight:500;color:var(--primary);display:block;margin-bottom:4px; }
.jv-card-body h3 { font-size:0.78rem;font-weight:400;color:#1a1a2e;margin-bottom:4px; }
.jv-card-loc { font-size:0.78rem;color:#94a3b8;margin-bottom:8px;display:flex;align-items:center;gap:4px; }
.jv-card-stats { display:flex;gap:10px;flex-wrap:wrap; }
.jv-card-stats span { font-size:0.74rem;color:#64748b;display:flex;align-items:center;gap:3px;font-weight:500; }
.jv-card-stats i { color:var(--accent); }

/* Pag */
/* Espartano: título + buscador inline */
.jv-espartano { background:var(--primary);padding:18px 0;border-bottom:3px solid var(--accent); }
.jv-espartano-inner { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px; }
.jv-espartano-title { color:white;font-size:1rem;font-weight:700;margin:0;line-height:1.2; }
.jv-espartano-title small { display:block;font-weight:400;opacity:0.75;font-size:0.7rem;margin-top:2px; }
.jv-espartano-form { display:flex;gap:6px;align-items:center;flex:1;max-width:680px;justify-content:flex-end;flex-wrap:wrap; }
.jv-espartano-field { flex:1;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,0.95);border-radius:50px;padding:0 14px;height:38px;min-width:140px; }
.jv-espartano-field i { color:#94a3b8;font-size:0.85rem; }
.jv-espartano-field input { border:none;background:none;outline:none;font-size:0.82rem;font-family:inherit;width:100%;color:#1a1a2e; }
.jv-espartano-form select { height:38px;padding:0 12px;border:1.5px solid rgba(255,255,255,0.4);border-radius:50px;font-size:0.78rem;font-family:inherit;cursor:pointer;outline:none;background:rgba(255,255,255,0.95);color:#1a1a2e;max-width:140px; }
.jv-espartano-form select:focus { border-color:white;box-shadow:0 0 0 3px rgba(255,255,255,0.2); }
.jv-espartano-form button { height:38px;width:38px;border-radius:50%;border:none;background:white;color:var(--secondary);cursor:pointer;font-size:0.9rem;flex-shrink:0;transition:all 0.2s;display:flex;align-items:center;justify-content:center; }
.jv-espartano-form button:hover { transform:scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,0.15); }

.jv-pag { display:flex;justify-content:center;gap:6px;margin-top:32px; }
.jv-pag-link { min-width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #e2e8f0;color:#64748b;text-decoration:none;font-size:0.85rem;font-weight:600;transition:all 0.2s; }
.jv-pag-link:hover { border-color:var(--primary);color:var(--primary); }
.jv-pag-link.active { background:var(--primary);border-color:var(--primary);color:white; }
.jv-big-map { height:100%;border-radius:0;overflow:hidden;border:0; }

/* ═════ MAP LAYOUT (lista fina izquierda + mapa derecha) ═════ */
.jv-map-layout { display:grid;grid-template-columns:380px 1fr;gap:0;height:calc(100vh - 64px);background:#fafafa;border-top:1px solid #e2e8f0; }
.jv-map-list { overflow-y:auto;background:#fafafa;border-right:1px solid #e2e8f0;padding:0; }
.jv-map-list-item { display:flex;gap:10px;padding:10px 12px;background:white;border-bottom:1px solid #f1f5f9;text-decoration:none;color:inherit;transition:background 0.15s,transform 0.15s;align-items:stretch;cursor:pointer; }
.jv-map-list-item:hover { background:#fff7ed; }
.jv-map-list-item.is-active { background:#fff1e6;box-shadow:inset 4px 0 0 var(--accent); }
.jv-map-list-item img { width:88px;height:72px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#f1f5f9; }
.jv-map-list-info { display:flex;flex-direction:column;gap:2px;min-width:0;flex:1; }
.jv-map-list-precio { font-size:0.85rem;font-weight:800;color:var(--primary);line-height:1.2; }
.jv-map-list-tit { font-size:0.78rem;font-weight:600;color:#1a1a2e;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical; }
.jv-map-list-loc { font-size:0.7rem;color:#94a3b8;display:flex;align-items:center;gap:3px;margin-top:auto; }
.jv-map-list-loc i { color:var(--accent);font-size:0.7rem; }

.jv-footer { padding:24px;text-align:center;font-size:0.8rem;color:#94a3b8; }
.jv-footer a { color:var(--primary);text-decoration:none;font-weight:600; }
.jv-footer-inner { max-width:1300px;margin:0 auto;padding:0 20px; }
.jv-footer-cols { display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:center;padding:24px 0 16px; }
.jv-footer-copy { margin:0;font-size:0.7rem;color:#94a3b8;text-align:center;padding-top:12px;border-top:1px solid rgba(0,0,0,0.06); }

/* Leaflet popup personalizado */
.leaflet-popup-content-wrapper{border-radius:10px!important;box-shadow:0 4px 16px rgba(0,0,0,0.12)!important;padding:0!important;overflow:hidden}
.leaflet-popup-content{margin:0!important;min-width:180px}
.leaflet-popup-close-button{top:6px!important;right:6px!important;color:white!important;text-shadow:0 1px 3px rgba(0,0,0,0.4)!important;z-index:5}

/* ═════ FICHA — Layout photos-left (limpio y profesional) ═════ */
.jv-ficha-layout { display:flex;min-height:calc(100vh - 64px);padding:56px 32px 40px 64px;gap:32px;background:#f5f7fa;align-items:flex-start; }

/* Left photo column */
.jv-ficha-fotos { width:50%;max-width:50%;flex-shrink:0;max-height:calc(100vh - 64px - 96px);overflow-y:auto;position:sticky;top:calc(64px + 56px);background:white;border-radius:18px;box-shadow:0 4px 24px rgba(0,0,0,0.06);scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent; }
.jv-ficha-fotos::-webkit-scrollbar { width:4px; }
.jv-ficha-fotos::-webkit-scrollbar-thumb { background:#cbd5e1;border-radius:4px; }
.jv-ficha-foto-item { width:100%;aspect-ratio:16/11;overflow:hidden;cursor:pointer;position:relative;border-bottom:1px solid #f1f5f9;background:#f8fafc; }
.jv-ficha-foto-item:last-child { border-bottom:none; }
.jv-ficha-foto-item img { width:100%;height:100%;object-fit:cover;transition:transform 0.4s;display:block; }
.jv-ficha-foto-item:hover img { transform:scale(1.03); }
.jv-ficha-foto-item .jv-foto-num { position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,0.6);color:white;font-size:0.7rem;padding:3px 10px;border-radius:50px;font-weight:600;backdrop-filter:blur(4px); }

/* Video overlay on photo (light theme, primary color) */
.jv-ficha-foto-video { position:relative;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fafafa,#f1f5f9);cursor:pointer; }
.jv-ficha-foto-vid-icon { text-align:center;color:var(--primary);font-size:1.1rem;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:8px; }
.jv-ficha-foto-vid-icon i { font-size:2.8rem;color:var(--primary); }
.jv-ficha-foto-vid-icon span { color:#475569;font-weight:600; }

/* Right info column */
.jv-ficha-info { flex:1;min-width:0;display:flex;justify-content:center;position:sticky;top:calc(64px + 56px);height:calc(100vh - 64px - 56px);align-self:flex-start; }
.jv-ficha-info-inner { width:100%;max-width:720px;background:white;border-radius:18px;padding:36px 40px 56px;box-shadow:0 4px 24px rgba(0,0,0,0.05);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent; }
.jv-ficha-info-inner::-webkit-scrollbar { width:4px; }
.jv-ficha-info-inner::-webkit-scrollbar-thumb { background:#cbd5e1;border-radius:4px; }

.jv-ficha-badge { display:inline-block;padding:4px 16px;border-radius:50px;background:var(--primary);color:white;font-size:0.7rem;font-weight:700;text-transform:uppercase;margin-bottom:12px; }
.jv-ficha-title { font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin-bottom:6px; }
.jv-ficha-loc { font-size:0.95rem;color:#64748b;margin-bottom:16px;display:flex;align-items:center;gap:6px; }
.jv-ficha-price { font-size:2rem;font-weight:900;color:var(--primary);margin-bottom:24px; }
.jv-ficha-stats { display:flex;gap:16px;flex-wrap:wrap;padding:16px 20px;background:white;border-radius:16px;box-shadow:0 1px 4px rgba(0,0,0,0.04);margin-bottom:28px; }
.jv-stat { display:flex;flex-direction:column;align-items:center;gap:3px;min-width:60px; }
.jv-stat i { font-size:1rem;color:var(--accent); }
.jv-stat span { font-size:1.15rem;font-weight:800; }
.jv-stat small { font-size:0.66rem;color:#94a3b8;text-transform:uppercase;font-weight:600; }

/* Contact bar */
.jv-ficha-contacto { display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px; }
.jv-btn-contacto-lg { display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:50px;text-decoration:none;font-size:0.85rem;font-weight:600;transition:all 0.2s;font-family:inherit;cursor:pointer;border:none; }
.jv-btn-contacto-lg:hover { transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.1); }
.jv-ficha-form-card { background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:16px 20px;margin-bottom:28px; }
.jv-ficha-form-card h3 { font-weight:800;font-size:0.95rem;margin-bottom:14px;color:var(--primary);display:flex;align-items:center;gap:8px; }
.jv-btn-wsp-lg { background:#25D366;color:white; }
.jv-btn-wsp-lg:hover { background:#1da851;color:white; }
.jv-btn-tel-lg { background:#f1f5f9;color:#1a1a2e; }
.jv-btn-tel-lg:hover { background:#e2e8f0; }
.jv-btn-email-lg { background:#f1f5f9;color:#64748b; }
.jv-btn-email-lg:hover { background:#e2e8f0;color:var(--primary); }

.jv-ficha-desc,.jv-ficha-serv { margin-bottom:28px; }
.jv-ficha-desc h2,.jv-ficha-serv h2 { font-size:1.05rem;font-weight:700;margin-bottom:12px; }
.jv-ficha-desc div { font-size:0.9rem;color:#475569;line-height:1.7; }
.jv-serv-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px; }
.jv-serv-item { padding:10px 14px;background:white;border-radius:12px;font-size:0.82rem;color:#64748b;font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,0.03); }

/* Map section — sticky within right column */
.jv-ficha-map-section { margin-bottom:28px;scroll-margin-top:80px; }
.jv-ficha-map-section h2 { font-size:1.05rem;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px; }
.jv-ficha-map-wrap { position:sticky;top:80px;border-radius:20px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.08); }

/* ═════ MAPA INTERACTIVO (toolbar + fullscreen + routing) ═════ */
.jv-ficha-map-section #jvFichaMap { height:420px; width:100%; }
.jv-ficha-map-wrap .leaflet-container { font-family:inherit; border-radius:0; }

.jv-map-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; background:white; border-bottom:1px solid #f1f5f9; flex-wrap:wrap; }
.jv-map-modes { display:inline-flex; background:#f1f5f9; border-radius:50px; padding:3px; gap:2px; }
.jv-map-modes input[type=radio] { position:absolute; opacity:0; pointer-events:none; width:0; height:0; }
.jv-map-modes label { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:50px; font-size:0.78rem; font-weight:600; color:#64748b; cursor:pointer; transition:all 0.2s; user-select:none; margin:0; }
.jv-map-modes label i { font-size:0.85rem; }
.jv-map-modes label:hover { color:var(--primary); }
.jv-map-modes input[type=radio]:checked + label { background:var(--primary); color:white; box-shadow:0 2px 6px rgba(0,0,0,0.15); }
.jv-map-modes input[type=radio]:checked + label:hover { color:white; }
.jv-map-modes input[type=radio]:focus-visible + label { outline:2px solid var(--accent); outline-offset:2px; }

.jv-map-fs-btn { width:36px; height:36px; border-radius:50%; border:1.5px solid #e2e8f0; background:white; color:#475569; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.2s; font-size:0.95rem; }
.jv-map-fs-btn:hover { border-color:var(--primary); color:var(--primary); }

.jv-map-routing { position:absolute; left:12px; right:12px; bottom:12px; z-index:500; display:flex; align-items:center; gap:10px; padding:10px 14px; background:rgba(255,255,255,0.97); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-radius:50px; box-shadow:0 4px 16px rgba(0,0,0,0.12); border:1px solid rgba(255,255,255,0.5); }
.jv-map-routing-info { display:flex; align-items:center; gap:8px; flex:1; min-width:0; font-size:0.82rem; color:#1a1a2e; font-weight:500; }
.jv-map-routing-info i { color:var(--primary); font-size:1rem; flex-shrink:0; }
.jv-map-routing-info span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jv-map-routing-info b { color:var(--primary); }
.jv-map-routing-btn { padding:8px 16px; border-radius:50px; border:none; background:var(--primary); color:white; font-family:inherit; font-size:0.8rem; font-weight:600; cursor:pointer; display:flex; align-items:center; gap:6px; transition:all 0.2s; white-space:nowrap; }
.jv-map-routing-btn:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,0.2); }
.jv-map-routing-btn:disabled { opacity:0.7; cursor:wait; }

.jv-map-fs-close { position:absolute; top:16px; right:16px; z-index:600; display:none; align-items:center; gap:6px; padding:10px 18px; border-radius:50px; background:rgba(0,0,0,0.7); color:white; border:none; font-family:inherit; font-size:0.85rem; font-weight:600; cursor:pointer; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); transition:background 0.2s; }
.jv-map-fs-close:hover { background:rgba(0,0,0,0.9); }

.jv-map-fs { position:fixed !important; inset:0 !important; z-index:9999 !important; border-radius:0 !important; max-height:none !important; height:100vh !important; }
.jv-map-fs #jvFichaMap { height:100vh !important; }
.jv-map-fs .jv-map-routing { max-width:640px; left:50%; right:auto; transform:translateX(-50%); }
.jv-map-fs .jv-map-fs-close { display:flex; }
.jv-map-fs .leaflet-control-layers { top:64px !important; }

.jv-routing-itinerary { background:white !important; border-radius:12px !important; box-shadow:0 4px 16px rgba(0,0,0,0.1) !important; padding:8px 10px !important; max-height:180px !important; font-family:inherit !important; font-size:0.8rem !important; overflow:hidden !important; transition:max-height 0.25s ease; }
.jv-routing-itinerary:hover { max-height:300px !important; overflow-y:auto !important; }
.jv-routing-itinerary table { font-size:0.78rem !important; border-collapse:collapse; }
.jv-routing-itinerary table td { padding:4px 6px !important; }

@media(max-width:767px){
  .jv-ficha-map-section #jvFichaMap { height:340px; }
  .jv-map-toolbar { padding:8px 10px; gap:6px; }
  .jv-map-modes label { padding:5px 10px; font-size:0.72rem; gap:4px; }
  .jv-map-modes label i { font-size:0.78rem; }
  .jv-map-fs-btn { width:32px; height:32px; font-size:0.85rem; }
  .jv-map-routing { flex-direction:column; align-items:stretch; border-radius:16px; padding:10px 12px; gap:8px; }
  .jv-map-routing-info { justify-content:center; }
  .jv-map-routing-btn { width:100%; justify-content:center; }
  .jv-ficha-map-wrap { position:static; }
  .jv-map-fs .jv-map-routing { max-width:calc(100% - 24px); }
  .jv-map-fs-close { padding:8px 14px; font-size:0.78rem; }
}

/* Info cards (details, contact sidebar - repurposed as inline cards) */
.jv-ficha-info-cards { margin-top:32px; }
.jv-side-card { background:white;border-radius:18px;padding:24px;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,0.04); }
.jv-side-card h3 { font-size:0.9rem;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px; }
.jv-detail-table { width:100%;border-collapse:collapse; }
.jv-detail-table tr:not(:last-child) { border-bottom:1px solid #f1f5f9; }
.jv-detail-table td { padding:10px 0;font-size:0.83rem; }
.jv-detail-table td:first-child { color:#94a3b8; }
.jv-detail-table td:last-child { text-align:right;font-weight:600; }
.jv-share-row { display:flex;gap:8px; }
.jv-share-btn { width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1rem;border:none;cursor:pointer;transition:all 0.2s; }
.jv-share-btn:hover { transform:translateY(-2px); }
.jv-share-wsp { background:#25D366;color:white; }
.jv-share-fb { background:#1877F2;color:white; }
.jv-share-tw { background:#1a1a2e;color:white; }
.jv-share-copy { background:#f1f5f9;color:#64748b; }
.jv-share-copy:hover { background:#e2e8f0;color:var(--primary); }

/* Photo count badge on column */
.jv-ficha-fotos-hdr { position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:16px 20px;background:white;color:#1a1a2e;font-size:0.85rem;font-weight:700;border-bottom:1px solid #f1f5f9;gap:10px;border-radius:18px 18px 0 0; }
.jv-ficha-fotos-hdr i { color:var(--primary);font-size:1rem; }
.jv-ficha-fotos-hdr span { display:flex;align-items:center;gap:6px; }
.jv-ficha-fotos-hdr .jv-foto-count { background:#f1f5f9;padding:4px 12px;border-radius:50px;font-size:0.72rem;color:#475569;font-weight:600; }

/* Gallery */
.jv-gal-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.95);z-index:9999;display:none;flex-direction:column;align-items:center;justify-content:center; }
.jv-gal-overlay.activo { display:flex; }
.jv-gal-cerrar { position:absolute;top:20px;right:20px;z-index:10;background:rgba(255,255,255,0.1);border:none;width:42px;height:42px;border-radius:50%;color:white;font-size:1.2rem;cursor:pointer; }
.jv-gal-counter { position:absolute;top:24px;left:50%;transform:translateX(-50%);color:white;font-size:0.9rem;font-weight:600; }
.jv-gal-nav { position:absolute;top:50%;z-index:10;background:rgba(255,255,255,0.1);border:none;width:46px;height:46px;border-radius:50%;color:white;font-size:1.3rem;cursor:pointer; }
.jv-gal-prev{left:20px}.jv-gal-next{right:20px}
.jv-gal-img-wrap{width:100%;height:70vh;display:flex;align-items:center;justify-content:center;}
.jv-gal-img-wrap img{max-width:90vw;max-height:65vh;object-fit:contain;border-radius:8px;}
.jv-gal-thumbs{display:flex;gap:8px;padding:16px 20px;overflow-x:auto;max-width:90vw;}
.jv-gal-thumb{min-width:56px;height:42px;border-radius:8px;background-size:cover;background-position:center;cursor:pointer;opacity:0.4;border:2px solid transparent;flex-shrink:0;}
.jv-gal-thumb.active,.jv-gal-thumb:hover{opacity:1;border-color:var(--accent);}
.jv-vid-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.95);z-index:10000;display:none;align-items:center;justify-content:center;}
.jv-vid-overlay.activo{display:flex}
.jv-vid-wrap{width:90vw;max-width:960px;aspect-ratio:16/9}
.jv-vid-wrap iframe{width:100%;height:100%;border-radius:8px}

@media(max-width:991px){.jv-ficha-layout{flex-direction:column;padding:20px 16px;gap:16px}.jv-ficha-fotos{width:100%;max-width:100%;max-height:none;position:static;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:1px;background:white;scroll-snap-type:x mandatory;border-radius:14px}.jv-ficha-fotos::-webkit-scrollbar{height:3px}.jv-foto-num{display:none!important}.jv-ficha-foto-item{min-width:280px;aspect-ratio:16/12;flex-shrink:0;border-bottom:none;border-right:1px solid #f1f5f9;scroll-snap-align:start}.jv-ficha-foto-item:last-child{border-right:none}.jv-ficha-fotos-hdr{position:static;border-radius:14px 14px 0 0}.jv-ficha-info{padding:0}.jv-ficha-info-inner{padding:24px 20px 40px;border-radius:14px}.jv-ficha-map-wrap{position:static}}
@media(max-width:767px){.jv-hero{height:auto;min-height:380px}.jv-hero-collage{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,1fr);min-height:360px}.jv-hero-collage-item{grid-column:span 1!important;grid-row:span 1!important}.jv-collage-cta{font-size:0.75rem}.jv-hero-search-form{gap:5px}.jv-hero-search-bar select{flex:1 1 calc(50% - 5px);min-width:0}.jv-hero-search-bar button{width:100%;justify-content:center}}
@media(max-width:767px){.jv-grid{grid-template-columns:1fr}.jv-card-lista{flex-direction:column}.jv-card-lista .jv-card-img{width:100%}.jv-map-layout{grid-template-columns:1fr;grid-template-rows:40vh 60vh;height:auto}.jv-map-list{border-right:0;border-bottom:1px solid #e2e8f0}.jv-espartano-inner{flex-direction:column;align-items:stretch}.jv-espartano-form{max-width:none;justify-content:stretch}.jv-espartano-field,.jv-espartano-form select{flex:1;min-width:0}}
@media(max-width:520px){.jv-espartano-form{flex-direction:column;align-items:stretch}.jv-espartano-form select{max-width:none}}
