/* ============================================
   Variables y Reset
   ============================================ */
:root {
    --color-primary: #58b0e3; 
    --color-hover: #4a9cd1;
    --color-bg: #F5F5F5; 
    --color-border: #e0e0e0;
    --color-text: #000000;
    --color-text-light: #666666;
    --spacing: 10px; 
    --radius: 4px;
}

#nav-propiedades {border-bottom: 5px solid var(--color-primary);}
#nav-propiedades a {
    display: inline-block; padding: 15px 35px; margin-right: 5px;
    font-size: 1rem; font-weight: bold; color: var(--color-text);
    border: 2px solid var(--color-border); border-bottom: none; border-radius: var(--radius) var(--radius) 0 0;
}
#nav-propiedades a:hover {border-color: var(--color-primary); color: var(--color-primary);}
#nav-propiedades a.active {color:var(--color-bg); background-color: var(--color-primary); border-color: var(--color-primary);}

/* ============================================
   Formulario de Filtros
   ============================================ */
.propiedades-form-wrapper {
    position: relative; padding: var(--spacing); margin-bottom: 50px;
    background: var(--color-bg);
}
#propiedades-form {margin-bottom: 0!important;}
.propiedades-form .form-row {display:flex;}
.propiedades-form .form-field {flex:1 0 auto; padding: var(--spacing);}
.form-row-search {padding-right: 320px;}
.form-row-filtros .form-field {min-width: 125px;}
.form-row-filtros .form-precio_min, .form-row-filtros .form-precio_max {min-width: 175px;}
.form-row-buttons {position: absolute; top: 50px; right: 20px;}

.propiedades-form label {
    display:block; margin-bottom: 3px; 
    color: var(--color-text); font-size: 0.9rem; font-weight: 600;
}
.propiedades-form input[type="text"],
.propiedades-form input[type="number"],
.propiedades-form select {
    display:block; padding: 0.75rem; margin:0!important;
    background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius);
    font-size: 1rem; color: var(--color-text);
    transition: border-color 0.3s;
}
.propiedades-form input:focus, .propiedades-form select:focus {
    outline: none; border-color: var(--color-primary);
}
.propiedades-form .btn {
    padding: 10px 15px; margin-left: 15px;
    border: none;  border-radius: var(--radius);
    font-weight: 600; cursor: pointer; transition: all 0.3s;
}
.propiedades-form .btn-primary {background: var(--color-primary); color: var(--color-bg);}
.propiedades-form .btn-primary:hover {background: var(--color-hover);}
.propiedades-form .btn-secondary {background: transparent; color: var(--color-text); border: 1px solid var(--color-border);}
.propiedades-form .btn-secondary:hover {border-color: var(--color-text);}

/* ============================================
   Título de la Sección
   ============================================ */
#propiedades-title {}
.propiedades-controles {
    display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem;   
    justify-content: space-between; align-items: center;
}
.propiedades-controles .controles-izquierda {flex: 1;}
.propiedades-controles .controles-derecha {display: flex; gap: 1rem; flex-wrap: wrap;}
.propiedades-controles .control-group {display: flex; align-items: center; gap: 0.5rem;}
.propiedades-controles label {color: var(--color-text-light); font-size: 0.9rem; font-weight: 600;}
.propiedades-controles select {
    padding: 0.5rem 1rem; margin:0!important; 
    border: 1px solid var(--color-border); border-radius: var(--radius);
    background: var(--color-bg); color: var(--color-text); cursor: pointer;
}
.total-resultados {color: var(--color-text-light); font-size: 0.95rem;}

/* ============================================
   Grid de Propiedades
   ============================================ */
.propiedades-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;}
.propiedad-card {
    overflow: hidden; border: 1px solid var(--color-border); 
    transition: transform 0.3s, box-shadow 0.3s;
}
.propiedad-card:hover {transform: translateY(-4px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);}
.propiedad-card a:hover {text-decoration: underline!important;}

.propiedad-card .propiedad-imagen {}
.propiedad-card .propiedad-imagen img {width: 100%; aspect-ratio: 4 / 3; object-fit: cover;}
.propiedad-card .propiedad-badge {
    position: absolute; top: 1rem; right: 1rem; padding: 0.25rem 0.75rem;
    border-radius: var(--radius); background: var(--color-primary); color: var(--color-bg);
    font-size: 0.85rem; font-weight: 600;
}


.propiedad-card .propiedad-header {padding:10px 20px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;}
.propiedad-card .propiedad-referencia {color: var(--color-text-light);}
.propiedad-card .propiedad-precio {color: var(--color-primary)!important; font-size: 1.5rem; font-weight: 700;}

ul.propiedad-caracteristicas {margin:0; padding:0 10px; list-style: none; border-bottom: 1px solid var(--color-border);}
ul.propiedad-caracteristicas li {
    display: inline-block; padding: 10px; padding-top: 0; margin: 0; 
    color: var(--color-text-light); font-size: 0.9rem;
}

.propiedad-card .propiedad-contenido {padding:20px;}
.propiedad-card .propiedad-titulo {color: var(--color-text); font-size: 1.2rem; font-weight: 700; margin-bottom: 0; font-family: var(--enfold-font-family-body);}
.propiedad-card .propiedad-ubicacion {margin-top: 0.2rem; margin-bottom:0.5rem; font-size: 0.9rem;}
.propiedad-card .propiedad-ubicacion a {color: var(--color-primary)!important; }
.propiedad-card .propiedad-descripcion {margin: 0; font-size: 0.9rem;}




/* ============================================
   Paginación
   ============================================ */
.propiedades-paginacion {display: flex; justify-content: center; align-items: center; gap: 0.5rem; margin: 2rem 0;}
.paginacion-btn {
    width: 35px; height: 35px; border-radius: 50%; text-align: center; margin:5px;
    border: 1px solid var(--color-border); background: transparent; color: var(--color-text); border-radius: 50%;
    cursor: pointer; transition: all 0.3s;
}

.paginacion-btn:hover:not(:disabled) {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.paginacion-btn.activo {
    background: var(--color-primary);
    color: var(--color-bg);
    border-color: var(--color-primary);
}

.paginacion-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ============================================
   Loader y Estados
   ============================================ */
.propiedades-loader {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4rem;
}

.loader-spinner {
    border: 4px solid var(--color-border);
    border-top: 4px solid var(--color-primary);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.propiedades-sin-resultados {
    text-align: center;
    padding: 4rem 2rem;
    color: var(--color-text-light);
}

.propiedades-sin-resultados h3 {
    color: var(--color-text);
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
}

.propiedades-error {
    background: #fff3cd;
    border: 1px solid #ffc107;
    color: #856404;
    padding: 1rem;
    border-radius: var(--radius);
    margin-bottom: 2rem;
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 768px) {
    .propiedades-grid {
        grid-template-columns: 1fr;
    }
    
    .propiedades-formulario-wrapper {
        padding: 1rem;
    }
    
    .propiedades-form .form-row {
        grid-template-columns: 1fr;
    }
    
    .propiedades-controles {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .propiedades-controles .controles-derecha {
        width: 100%;
        flex-direction: column;
    }
    
    .propiedades-controles .control-group {
        width: 100%;
        justify-content: space-between;
    }
    
    .propiedades-form .form-actions {
        flex-direction: column;
    }
    
    .propiedades-form .btn {
        width: 100%;
    }
}

@media (min-width: 769px) and (max-width: 1200px) {
    .propiedades-grid {
        grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    }
}


/* Estilos básicos para la ficha individual */
.galeria-principal {position: relative; width: 100%; margin-bottom: 10px;}
.galeria-principal img {width: 100%; height: 500px; object-fit: cover;}
.galeria-miniaturas {display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 10px;}
.miniatura {width: 100%; height: 80px; object-fit: cover; cursor: pointer; transition: opacity 0.3s;}
.miniatura:hover {opacity: 0.7;}

.propiedad-contenido-detalle {max-width: 1200px; margin: 50px auto;}
.propiedad-header-detalle {display: flex; justify-content: space-between; align-items: flex-start; padding: 20px 0;}
.propiedad-header-detalle .header-derecha {text-align: right;}
.propiedad-precio-detalle {font-size: 2.5em; color: var(--color-primary); font-weight: bold; margin-bottom: 5px;}

.propiedad-caracteristicas-principales {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 20px;
    padding: 20px; background: #f5f5f5; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border);
}
.caracteristica-item {text-align: center;}
.caracteristica-valor {display: block; font-size: 1.5em; font-weight: bold; margin: 5px 0;}

.propiedad-descripcion-detalle, .propiedad-caracteristicas-detalle, .propiedad-mapa {padding: 35px 0; border-bottom: 1px solid var(--color-border);}

ul.listado-caracteristicas {
    display: grid; grid-template-columns: repeat(3, 1fr);
    list-style: disc; margin-bottom: 0;
}




.extras-lista {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
}

.extras-lista li {
    padding: 5px 0;
}

.contacto-form {
    max-width: 600px;
    margin: 20px 0;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
}

.btn-enviar,
.btn-volver {
    display: inline-block;
    padding: 12px 30px;
    background: #2c5aa0;
    color: white;
    text-decoration: none;
    border: none;
    cursor: pointer;
    font-size: 1em;
}

.btn-enviar:hover,
.btn-volver:hover {
    background: #1a3d6b;
}