/* =========================================
   1. CONTENEDOR PRINCIPAL (REDUCCIÓN Y CENTRADO)
   ========================================= */
/* Esto fuerza a que la ficha se reduzca a 700px y se centren */
.inmo-ficha-container, .inmo-buscador-wrapper {
    max-width: 700px; /* Ancho deseado: 700px */
    width: 100%;
    margin: 30px auto; /* Centrado horizontal */
    padding: 0 15px;   /* Padding lateral para móviles */
    border: none;
    box-shadow: none;
    background: transparent;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* =========================================
   2. FICHA DE PROPIEDAD (SINGLE)
   ========================================= */
.inmo-precio-box {
    background: linear-gradient(135deg, #0073aa 0%, #005177 100%);
    color: white;
    padding: 30px 20px;
    text-align: center;
    border-radius: 8px;
    margin-bottom: 30px;
    box-shadow: 0 10px 20px rgba(0, 115, 170, 0.2);
}
.precio-valor { font-size: 2.5rem; }

/* Datos Clave (Iconos) */
.inmo-datos-grid {
    list-style: none; padding: 0; margin: 0 0 40px 0;
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 15px;
}
.inmo-datos-grid li {
    background: #fff; padding: 15px; border-radius: 8px; border: 1px solid #e0e0e0; 
    font-size: 1rem; color: #444; 
    display: flex; align-items: center; justify-content: center; 
    gap: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}
.inmo-datos-grid li strong { color: #000; }

@media (max-width: 600px) {
    .inmo-datos-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
    .precio-valor { font-size: 2rem; }
}


/* =========================================
   3. GALERÍA DE FOTOS (Responsive)
   ========================================= */
.inmo-galeria-frontend { margin: 40px 0; padding-top: 20px; border-top: 1px solid #eee; }
.inmo-galeria-frontend h3 { font-size: 1.3rem; margin-bottom: 20px; color: #222; font-weight: 700; }
.inmo-galeria-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.inmo-galeria-item { position: relative; aspect-ratio: 4/3; overflow: hidden; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); cursor: pointer; }
.inmo-galeria-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }

@media (max-width: 768px) { .inmo-galeria-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } }


/* =========================================
   4. CONTACTO Y REDES (Responsive)
   ========================================= */
.inmo-contacto-box { margin-top: 40px; background: #f8f9fa; padding: 30px 20px; border-radius: 12px; border: 1px solid #eee; text-align: center; }
.inmo-agente-card { display: flex; align-items: center; justify-content: center; gap: 20px; margin-bottom: 25px; padding-bottom: 20px; border-bottom: 1px solid #ddd; }
.inmo-agente-foto { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; border: 3px solid #0073aa; }
.inmo-vendedor { font-size: 1.3rem; margin-bottom: 0; color: #333; font-weight: 600; }
.inmo-agente-detalle p { line-height: 1.2; }

.inmo-botones-sociales { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.btn-social {
    flex-grow: 1; min-width: 120px; padding: 12px 15px; color: white !important; text-decoration: none; border-radius: 50px; 
    font-weight: 700; font-size: 0.95rem; display: flex; align-items: center; justify-content: center; gap: 8px; 
    box-shadow: 0 4px 12px rgba(0,0,0,0.15); transition: transform 0.2s;
}
.btn-ws { background: #25D366; } .btn-fb { background: #1877F2; } .btn-ig { background: linear-gradient(45deg, #f09433, #bc1888); }

@media (max-width: 480px) {
    .inmo-botones-sociales { flex-direction: column; gap: 10px; }
    .btn-social { min-width: 100%; }
}


/* =========================================
   5. BUSCADOR Y LISTADO
   ========================================= */
.inmo-form-busqueda { display: flex; flex-wrap: wrap; gap: 15px; align-items: flex-end; }
.inmo-campo { flex: 1; min-width: 200px; }
.inmo-campo select { padding: 12px; border: 1px solid #ccc; border-radius: 6px; }
.inmo-btn-buscar { height: 46px; background: #222; color: white; border: none; padding: 12px 30px; border-radius: 6px; }

.inmo-grid-propiedades { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 30px; }
@media (max-width: 600px) { .inmo-grid-propiedades { grid-template-columns: 1fr; gap: 20px; } }
.inmo-card { background: white; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eee; }
.inmo-card-img { position: relative; height: 220px; overflow: hidden; }
.inmo-card-img img { width: 100%; height: 100%; object-fit: cover; }
.inmo-etiqueta-precio { position: absolute; bottom: 10px; right: 10px; background: rgba(0,0,0,0.8); color: white; padding: 5px 10px; border-radius: 4px; font-weight: bold; }
.inmo-card-body { padding: 20px; }
.inmo-card-body h3 a { text-decoration: none; color: #222; font-size: 1.2rem; }
.inmo-card-meta { display: flex; gap: 15px; color: #666; font-size: 0.9rem; margin-top: 10px; padding-top: 10px; border-top: 1px solid #eee; }
.inmo-btn-ver { display: block; text-align: center; background: #0073aa; color: white; padding: 10px; text-decoration: none; border-radius: 4px; font-weight: bold; margin-top: 15px; }


/* =========================================
   6. LIGHTBOX (VISUALIZADOR)
   ========================================= */
.inmo-lightbox { display: none; position: fixed; z-index: 99999; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.95); backdrop-filter: blur(5px); }
.inmo-lightbox-content { margin: auto; display: block; max-width: 90%; max-height: 85vh; object-fit: contain; position: relative; top: 50%; transform: translateY(-50%); box-shadow: 0 0 30px rgba(0,0,0,0.5); }
.inmo-close { position: absolute; top: 20px; right: 30px; color: #fff; font-size: 40px; font-weight: bold; cursor: pointer; z-index: 100000; line-height: 1; }
.inmo-prev, .inmo-next { cursor: pointer; position: absolute; top: 50%; width: auto; padding: 20px; margin-top: -30px; color: white; font-weight: bold; font-size: 40px; user-select: none; z-index: 100000; background: rgba(0,0,0,0.3); border-radius: 50%; }
.inmo-next { right: 20px; } .inmo-prev { left: 20px; }

@media (max-width: 480px) {
    .inmo-prev, .inmo-next { font-size: 24px; padding: 10px; margin-top: -20px; }
    .inmo-close { font-size: 30px; top: 10px; right: 15px; }
}

/* ==========================================
   7. ESTILOS DE LOGIN FRONTEND (ELEGANCIA FORZADA)
   ========================================== */
.inmo-login-container {
    max-width: 400px;
    margin: 60px auto !important;
    padding: 30px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
    border: 1px solid #eee;
}

#inmo_loginform {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#inmo_loginform label {
    display: block !important;
    margin-top: 15px !important;
    font-weight: 600 !important;
    color: #555 !important;
    font-size: 0.95rem !important;
}

#inmo_loginform input[type="text"], 
#inmo_loginform input[type="password"] {
    width: 100% !important;
    padding: 12px !important;
    margin-top: 5px !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 6px !important;
    box-shadow: none !important;
}

#inmo_loginform input[type="text"]:focus, 
#inmo_loginform input[type="password"]:focus {
    border-color: #0073aa !important;
    outline: none !important;
}

#inmo_loginform .login-submit {
    margin-top: 25px !important;
}

#inmo_loginform #wp-submit {
    width: 100% !important;
    background: #0073aa !important;
    color: white !important;
    border: none !important;
    padding: 15px !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    font-weight: bold !important;
    font-size: 1.1rem !important;
}
#inmo_loginform #wp-submit:hover {
    background: #005177 !important;
}

#inmo_loginform p { margin-top: 10px !important; }
#inmo_loginform p a { color: #0073aa !important; text-decoration: none !important; }

.inmo-login-mensaje {
    max-width: 600px; margin: 40px auto; padding: 20px; border: 1px solid #bce0ee;
    background: #e5f5fa; border-radius: 8px; text-align: center;
}
.inmo-login-mensaje a { color: #0073aa; font-weight: bold; }
/* --- CORRECCIÓN DE ALTURA Y ESPACIO DEL BUSCADOR --- */

/* 1. Añade espacio superior para que no se solape con el título de la página */
.inmo-buscador-wrapper {
    margin-top: 40px !important; 
    padding-top: 25px; /* Asegura espacio interno */
    padding-bottom: 25px; /* Asegura espacio interno */
}

/* 2. Asegura que el texto del label ("Quiero:", "Tipo:") no se corte */
.inmo-campo label {
    line-height: 1.2 !important; /* Más espacio vertical para el texto */
    padding-top: 5px; /* Añade un pequeño padding arriba del texto */
}
/* --- CORRECCIÓN FINAL DE BUSCADOR (SOLUCIÓN DE CONFLICTO CON ASTRA) --- */

/* Aseguramos que la caja de búsqueda tenga suficiente margen superior para no chocar con el título de la página */
.inmo-buscador-wrapper {
    /* Forzamos el espacio superior */
    margin-top: 50px !important; 
    /* Añadimos relleno interno para que los elementos respiren */
    padding: 30px !important; 
}

/* Forzamos que los labels ("Quiero", "Tipo") se muestren por encima del select sin solaparse */
.inmo-buscador-wrapper .inmo-campo {
    /* Altura mínima para asegurar que quepa el label */
    min-height: 70px !important; 
}

/* Centramos el título de la página Propiedades, que es un h1 de WP */
.entry-content h1, .entry-content h2, .entry-title {
    text-align: center;
    margin-bottom: 20px !important;
}