/* Contenedor */
.cavlp-wrap{
  max-width: 1200px;
  margin: 0 auto;
}

/* Título archivo */
.cavlp-archive__header{
  max-width: 1200px;
  margin: 0 auto 18px;
  padding: 0 10px;
}
.cavlp-archive__title{
  font-size: 28px;
  line-height: 1.2;
  margin: 10px 0;
}

/* Grid responsive por variables */
.cavlp-grid{
  display: grid;
  gap: 14px;
  padding: 0 10px 18px;
  grid-template-columns: repeat(var(--cavlp-cols-pc, 4), minmax(0, 1fr));
}

@media (max-width: 900px){
  .cavlp-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 650px){

  /* ==========================================
     EL PROBLEMA REAL (GeneratePress):
     #content.site-content tiene padding grande en móvil
     Aquí lo corregimos para municipio Y categoría
  ========================================== */
  body.tax-cav_municipio #content.site-content,
  body.tax-cav_categoria #content.site-content{
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  /* A veces GeneratePress mete padding extra dentro del main */
  body.tax-cav_municipio #primary,
  body.tax-cav_municipio #main,
  body.tax-cav_categoria #primary,
  body.tax-cav_categoria #main{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Nuestro header y grid sin bordes grandes */
  .cavlp-archive__header{
    padding: 0 !important;
    margin: 0 0 10px !important;
  }

  .cavlp-grid{
    padding: 0 !important;          /* casi a ras */
    gap: 6px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Forzar ancho real aunque el tema encajone */
  .cavlp-wrap{
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Imagen un poco más alta para que se vea “más grande” */
  .cavlp-card__media img{
    height: 210px !important;
  }
}

@media (max-width: 420px){
  .cavlp-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Card */
.cavlp-card{
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.cavlp-card__media{
  display:block;
  background:#f5f5f5;
}
.cavlp-card__media img{
  width:100%;
  height: 190px;
  object-fit: cover;
  display:block;
}

.cavlp-card__body{
  padding: 12px 12px 14px;
  display:flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.cavlp-card__title{
  margin: 0;
  font-size: 16px;
  line-height: 1.25;
}
.cavlp-card__title a{
  text-decoration: none;
  color: inherit;
}
.cavlp-card__title a:hover{
  text-decoration: underline;
}

.cavlp-card__meta{
  font-size: 13px;
  color: #444;
  display:flex;
  flex-direction: column;
  gap: 4px;
}

.cavlp-card__price{
  font-weight: 700;
}

.cavlp-card__actions{
  margin-top: auto;
}

.cavlp-btn{
  display:inline-block;
  padding: 10px 12px;
  border-radius: 8px;
  background: #1e73be;
  color:#fff;
  text-decoration:none;
  font-size: 14px;
  text-align:center;
  width: 100%;
}
.cavlp-btn:hover{
  filter: brightness(0.95);
}

/* Paginación */
.cavlp-pagination{
  padding: 0 10px 25px;
}
.cavlp-pagination ul{
  list-style:none;
  margin: 0;
  padding: 0;
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
}
.cavlp-pagination li{
  margin:0;
}
.cavlp-pagination a,
.cavlp-pagination span{
  display:inline-block;
  padding: 8px 10px;
  border: 1px solid #e2e2e2;
  border-radius: 8px;
  text-decoration:none;
}
.cavlp-pagination .current{
  background:#222;
  color:#fff;
  border-color:#222;
}

/* Vacío */
.cavlp-empty{
  padding: 18px 10px;
  color:#666;
}
