/* ─────────── DARK TEMPLATE ─────────── */
:root {
    --dk-bg: #0a0c12;
    --dk-surface: #13161f;
    --dk-card: #1a1e29;
    --dk-border: #252a36;
    --dk-text: #e4e7ee;
    --dk-muted: #7e8496;
    --dk-glow: rgba(var(--primary-rgb), 0.18);
}

.dk-body { font-family:'Space Grotesk',sans-serif; background:var(--dk-bg); color:var(--dk-text); line-height:1.6; -webkit-font-smoothing:antialiased; margin:0; }

/* ── Header glass ── */
.dk-header { position:sticky; top:0; z-index:100; background:rgba(19,22,31,0.8); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--dk-border); }
.dk-header-inner { max-width:1280px; margin:0 auto; padding:0 24px; height:60px; display:flex; align-items:center; justify-content:space-between; }
.dk-logo { display:flex; align-items:center; gap:10px; text-decoration:none; font-weight:700; font-size:1.1rem; color:var(--dk-text); }
.dk-logo img { height:34px; width:auto; filter:brightness(1.1); }
.dk-nav { display:flex; gap:28px; }
.dk-nav a { color:var(--dk-muted); text-decoration:none; font-size:0.86rem; font-weight:500; transition:color 0.2s; }
.dk-nav a:hover { color:var(--accent); }

/* ── Hero ── */
.dk-hero { position:relative; padding:90px 24px 70px; text-align:center; overflow:hidden; background:linear-gradient(180deg,var(--dk-surface) 0%,var(--dk-bg) 100%); }
.dk-hero-glow { position:absolute; top:-40%; left:50%; transform:translateX(-50%); width:600px; height:400px; background:radial-gradient(circle,var(--dk-glow) 0%,transparent 70%); pointer-events:none; }
.dk-hero-content { position:relative; z-index:1; }
.dk-hero-content h1 { font-size:clamp(1.8rem,4vw,2.8rem); font-weight:700; margin-bottom:12px; letter-spacing:-0.02em; }
.dk-hero-content p { font-size:1.05rem; color:var(--dk-muted); }

/* ── Search glass ── */
.dk-search { padding:0 24px; margin-top:-24px; position:relative; z-index:2; }
.dk-search-inner { max-width:1280px; margin:0 auto; }
.dk-search-form { display:flex; gap:8px; align-items:center; flex-wrap:wrap; background:var(--dk-card); border:1px solid var(--dk-border); border-radius:14px; padding:8px; box-shadow:0 8px 32px rgba(0,0,0,0.3); }
.dk-search-field { flex:2 1 240px; display:flex; align-items:center; gap:8px; background:var(--dk-surface); border-radius:10px; padding:0 14px; height:44px; }
.dk-search-field i { color:var(--dk-muted); font-size:0.88rem; }
.dk-search-field input { border:none; background:none; outline:none; width:100%; font-size:0.88rem; color:var(--dk-text); font-family:inherit; }
.dk-search-field input::placeholder { color:#4a5060; }
.dk-search-sel { flex:1 1 140px; height:44px; padding:0 36px 0 14px; background:var(--dk-surface); border:none; border-radius:10px; color:var(--dk-text); font-size:0.84rem; font-weight:500; font-family:inherit; cursor:pointer; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%237e8496' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; outline:none; }
.dk-search-btn { height:44px; padding:0 30px; background:var(--primary); color:white; border:none; border-radius:10px; font-size:0.88rem; font-weight:600; cursor:pointer; font-family:inherit; transition:filter 0.2s; white-space:nowrap; }
.dk-search-btn:hover { filter:brightness(1.15); }

/* ── Main ── */
.dk-main { padding:40px 24px; }
.dk-main-inner { max-width:1280px; margin:0 auto; }
.dk-results-hd { display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; font-size:0.9rem; color:var(--dk-muted); }
.dk-results-hd strong { color:var(--dk-text); }
.dk-results-hd em { color:var(--accent); font-style:normal; }
.dk-toggles { display:flex; gap:4px; }
.dk-tog { width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--dk-muted);text-decoration:none;transition:all 0.2s; }
.dk-tog:hover { background:var(--dk-card);color:var(--dk-text); }
.dk-tog.active { background:var(--primary);color:white; }

/* ── Grid ── */
.dk-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.dk-grid-lista { grid-template-columns:1fr; }

/* ── Card glass ── */
.dk-card { display:block; background:var(--dk-card); border:1px solid var(--dk-border); border-radius:14px; overflow:hidden; text-decoration:none; transition:all 0.3s ease; }
.dk-card:hover { border-color:var(--accent); transform:translateY(-3px); box-shadow:0 8px 28px rgba(0,0,0,0.3),0 0 0 1px var(--accent) inset; }
.dk-card-lista { display:flex; }
.dk-card-lista .dk-card-img { width:300px; flex-shrink:0; }
.dk-card-img { position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--dk-surface); }
.dk-card-lista .dk-card-img { aspect-ratio:unset; height:200px; }
.dk-card-img img { width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease; }
.dk-card:hover .dk-card-img img { transform:scale(1.05); }
.dk-card-op { position:absolute;top:12px;left:12px;padding:4px 12px;border-radius:6px;background:var(--primary);color:white;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em; }
.dk-card-glass { position:absolute;bottom:12px;right:12px;padding:6px 14px;background:rgba(10,12,18,0.7);backdrop-filter:blur(8px);border-radius:8px;color:var(--accent);font-size:0.88rem;font-weight:700; }
.dk-card-body { padding:18px; }
.dk-card-body h3 { font-size:0.98rem;font-weight:600;color:var(--dk-text);margin-bottom:6px;line-height:1.3; }
.dk-card-loc { font-size:0.8rem;color:var(--dk-muted);margin-bottom:10px;display:flex;align-items:center;gap:4px; }
.dk-card-stats { display:flex;gap:14px;flex-wrap:wrap; }
.dk-card-stats span { font-size:0.76rem;color:var(--dk-muted);display:flex;align-items:center;gap:4px; }
.dk-card-stats i { color:var(--accent);font-size:0.75rem; }

/* ── Empty ── */
.dk-empty { text-align:center;padding:80px 20px;color:var(--dk-muted); }
.dk-empty i { font-size:2.5rem;display:block;margin-bottom:12px;opacity:0.4; }
.dk-empty a { color:var(--accent);text-decoration:none;font-weight:600; }
.dk-empty a:hover { text-decoration:underline; }

/* ── Pagination ── */
.dk-pag { display:flex;justify-content:center;gap:6px;margin-top:40px; }
.dk-pag-link { min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--dk-border);border-radius:8px;color:var(--dk-muted);text-decoration:none;font-size:0.85rem;transition:all 0.2s; }
.dk-pag-link:hover { border-color:var(--accent);color:var(--accent); }
.dk-pag-link.active { background:var(--primary);border-color:var(--primary);color:white; }

/* ── Map ── */
.dk-map { height:420px;border-radius:14px;overflow:hidden;margin-top:24px;border:1px solid var(--dk-border); }

/* ── Footer ── */
.dk-footer { padding:24px;text-align:center;font-size:0.8rem;color:var(--dk-muted);border-top:1px solid var(--dk-border); }
.dk-footer a { color:var(--accent);text-decoration:none; }
.dk-footer a:hover { text-decoration:underline; }
.dk-footer-inner { max-width:1200px;margin:0 auto;padding:0 20px; }
.dk-footer-cols { display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;padding:30px 0 20px; }
.dk-footer-cols > div { min-width:150px; }
.dk-footer-copy { margin:0;font-size:0.7rem;color:#64748b;text-align:center;padding-top:16px;border-top:1px solid #1e293b; }

/* ═════════ FICHA DARK ═════════ */
.dk-ficha-hero { height:500px;background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end; }
.dk-ficha-hero-overlay { position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,12,18,0.85) 0%,rgba(10,12,18,0.2) 50%,rgba(10,12,18,0.1) 100%); }
.dk-ficha-hero-actions { position:absolute;bottom:20px;right:20px;display:flex;gap:8px;z-index:2; }
.dk-ficha-hero-btn { display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:10px;font-size:0.84rem;font-weight:600;border:1px solid rgba(255,255,255,0.15);cursor:pointer;background:rgba(19,22,31,0.6);backdrop-filter:blur(8px);color:white;font-family:inherit;transition:all 0.2s; }
.dk-ficha-hero-btn:hover { background:rgba(19,22,31,0.8);border-color:rgba(255,255,255,0.25); }
.dk-ficha-hero-btn-vid { border-color:rgba(239,68,68,0.4); }
.dk-ficha-hero-btn-vid:hover { border-color:rgba(239,68,68,0.6); }

.dk-ficha-content { padding:48px 24px 60px; }
.dk-ficha-content-inner { max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:start; }
.dk-ficha-main { min-width:0; }
.dk-ficha-badge { display:inline-block;padding:3px 14px;border-radius:6px;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;background:var(--primary);color:white;margin-bottom:16px; }
.dk-ficha-title { font-size:clamp(1.5rem,3vw,2rem);font-weight:700;margin-bottom:8px;letter-spacing:-0.02em; }
.dk-ficha-loc { font-size:0.95rem;color:var(--dk-muted);margin-bottom:20px;display:flex;align-items:center;gap:6px; }
.dk-ficha-price { font-size:2.2rem;font-weight:800;color:var(--accent);margin-bottom:28px;letter-spacing:-0.02em; }

.dk-ficha-stats { display:flex;gap:20px;flex-wrap:wrap;padding:20px;background:var(--dk-card);border:1px solid var(--dk-border);border-radius:12px;margin-bottom:32px; }
.dk-stat { display:flex;flex-direction:column;align-items:center;gap:4px;min-width:64px; }
.dk-stat i { font-size:1rem;color:var(--accent); }
.dk-stat span { font-size:1.2rem;font-weight:700; }
.dk-stat small { font-size:0.68rem;color:var(--dk-muted);text-transform:uppercase;letter-spacing:0.04em; }

.dk-ficha-desc,.dk-ficha-serv,.dk-ficha-mapa { margin-bottom:40px; }
.dk-ficha-desc h2,.dk-ficha-serv h2,.dk-ficha-mapa h2 { font-size:1.05rem;font-weight:700;margin-bottom:14px; }
.dk-ficha-desc div { font-size:0.92rem;color:#bcc3d0;line-height:1.7; }
.dk-serv-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px; }
.dk-serv-item { padding:10px 14px;background:var(--dk-card);border:1px solid var(--dk-border);border-radius:8px;font-size:0.82rem;color:var(--dk-muted); }

/* ── Sidebar dark ── */
.dk-ficha-sidebar { position:sticky;top:80px; }
.dk-side-card { background:var(--dk-card);border:1px solid var(--dk-border);border-radius:14px;padding:24px;margin-bottom:16px; }
.dk-side-card h3 { font-size:0.92rem;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px; }
.dk-side-contacto h3 i { color:var(--accent); }
.dk-contacto-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px; }
.dk-btn-contacto { display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 8px;border-radius:10px;text-decoration:none;font-size:0.74rem;font-weight:600;text-align:center;transition:all 0.2s; }
.dk-btn-contacto i { font-size:1.15rem; }
.dk-btn-contacto:hover { transform:translateY(-1px); }
.dk-btn-wsp { background:#25D366;color:white; }
.dk-btn-wsp:hover { background:#1da851;color:white; }
.dk-btn-tel { background:var(--dk-surface);color:var(--dk-text);border:1px solid var(--dk-border); }
.dk-btn-tel:hover { border-color:var(--accent);color:var(--accent); }
.dk-btn-email { background:var(--dk-surface);color:var(--dk-muted);border:1px solid var(--dk-border); }
.dk-btn-email:hover { border-color:var(--accent);color:var(--accent); }
.dk-detail-table { width:100%;border-collapse:collapse; }
.dk-detail-table tr:not(:last-child) { border-bottom:1px solid var(--dk-border); }
.dk-detail-table td { padding:10px 0;font-size:0.83rem; }
.dk-detail-table td:first-child { color:var(--dk-muted); }
.dk-detail-table td:last-child { text-align:right;font-weight:600; }

.dk-share-row { display:flex;gap:8px;justify-content:space-between; }
.dk-share-btn { width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1rem;border:none;cursor:pointer;transition:all 0.2s; }
.dk-share-btn:hover { transform:translateY(-1px); }
.dk-share-wsp { background:#25D366;color:white; }
.dk-share-fb { background:#1877F2;color:white; }
.dk-share-tw { background:#e4e7ee;color:#0a0c12; }
.dk-share-copy { background:var(--dk-surface);color:var(--dk-muted);border:1px solid var(--dk-border); }
.dk-share-copy:hover { border-color:var(--accent);color:var(--accent); }

/* ── Gallery dark ── */
.dk-gal-overlay { position:fixed;inset:0;background:rgba(10,12,18,0.98);z-index:9999;display:none;flex-direction:column;align-items:center;justify-content:center; }
.dk-gal-overlay.activo { display:flex; }
.dk-gal-cerrar { position:absolute;top:20px;right:20px;z-index:10;background:var(--dk-card);border:1px solid var(--dk-border);color:white;width:42px;height:42px;border-radius:10px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s; }
.dk-gal-cerrar:hover { border-color:#ef4444;color:#ef4444; }
.dk-gal-counter { position:absolute;top:24px;left:50%;transform:translateX(-50%);color:var(--dk-muted);font-size:0.9rem;font-weight:600;z-index:10; }
.dk-gal-nav { position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:var(--dk-card);border:1px solid var(--dk-border);width:46px;height:46px;border-radius:10px;font-size:1.3rem;cursor:pointer;color:white;display:flex;align-items:center;justify-content:center;transition:all 0.2s; }
.dk-gal-nav:hover { border-color:var(--accent); }
.dk-gal-prev { left:20px; }
.dk-gal-next { right:20px; }
.dk-gal-img-wrap { width:100%;height:70vh;display:flex;align-items:center;justify-content:center; }
.dk-gal-img-wrap img { max-width:90vw;max-height:65vh;object-fit:contain;border-radius:2px;animation:dkFadeImg 0.3s ease; }
@keyframes dkFadeImg { from{opacity:0;transform:scale(0.97)}to{opacity:1;transform:scale(1)} }
.dk-gal-thumbs { display:flex;gap:8px;padding:16px 20px;overflow-x:auto;max-width:90vw;scrollbar-width:thin;scrollbar-color:var(--dk-border) transparent; }
.dk-gal-thumb { min-width:56px;height:42px;border-radius:6px;background-size:cover;background-position:center;cursor:pointer;opacity:0.4;border:2px solid transparent;transition:all 0.2s;flex-shrink:0; }
.dk-gal-thumb.active,.dk-gal-thumb:hover { opacity:1;border-color:var(--accent); }

.dk-vid-overlay { position:fixed;inset:0;background:rgba(10,12,18,0.98);z-index:10000;display:none;align-items:center;justify-content:center; }
.dk-vid-overlay.activo { display:flex; }
.dk-vid-wrap { width:90vw;max-width:960px;aspect-ratio:16/9; }
.dk-vid-wrap iframe { width:100%;height:100%;border-radius:8px; }

@media(max-width:991px) { .dk-ficha-content-inner{grid-template-columns:1fr;gap:32px}.dk-ficha-sidebar{position:static}.dk-ficha-hero{height:380px} }
@media(max-width:767px) { .dk-ficha-hero{height:300px}.dk-ficha-content{padding:32px 16px}.dk-ficha-stats{gap:16px}.dk-grid{grid-template-columns:1fr}.dk-card-lista{flex-direction:column}.dk-card-lista .dk-card-img{width:100%;height:200px} }

/* ── Form fields inside sidebar cards ── */
.dk-ficha-sidebar .form-control,
.dk-ficha-sidebar .form-control-sm {
    background: var(--dk-surface);
    border-color: var(--dk-border);
    color: var(--dk-text);
}
.dk-ficha-sidebar .form-control:focus,
.dk-ficha-sidebar .form-control-sm:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .15);
}
.dk-ficha-sidebar label.text-muted,
.dk-ficha-sidebar .text-muted {
    color: #b0b8c9 !important;
}
.dk-ficha-sidebar .form-control::placeholder,
.dk-ficha-sidebar .form-control-sm::placeholder {
    color: #5a6070;
}
.dk-ficha-sidebar .btn-outline-secondary {
    color: var(--dk-text);
    border-color: var(--dk-border);
}
.dk-ficha-sidebar .btn-outline-secondary:hover {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}
