{"id":768,"date":"2026-02-28T03:49:08","date_gmt":"2026-02-28T01:49:08","guid":{"rendered":"https:\/\/mudanzasguerrero.es\/?page_id=768"},"modified":"2026-04-08T20:55:14","modified_gmt":"2026-04-08T18:55:14","slug":"blog","status":"publish","type":"page","link":"https:\/\/mudanzasguerrero.es\/?page_id=768","title":{"rendered":"Blog"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"768\" class=\"elementor elementor-768\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-19e712f e-flex e-con-boxed e-con e-parent\" data-id=\"19e712f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8ea8443 elementor-widget elementor-widget-html\" data-id=\"8ea8443\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \n=============================================\nP\u00c1GINA: BLOG\nBLOQUE 1: HERO\nCompatible con Elementor HTML Widget\nEstilo 2026 \u2014 Mudanzas Guerrero\n=============================================\n-->\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&display=swap');\n\n.mg-blog-hero *{margin:0;padding:0;box-sizing:border-box}\n\n.elementor-section:has(.mg-blog-hero),\n.elementor-container:has(.mg-blog-hero),\n.elementor-widget-wrap:has(.mg-blog-hero),\n.elementor-widget:has(.mg-blog-hero){max-width:100%!important;padding:0!important}\n\n.mg-blog-hero{\n  --mg-brown:hsl(16,50%,15%);\n  --mg-brown-light:hsl(16,40%,20%);\n  --mg-gold:hsl(40,100%,50%);\n  --mg-white:hsl(0,0%,97%);\n  background:linear-gradient(145deg,var(--mg-brown) 0%,var(--mg-brown-light) 100%);\n  padding:70px 20px;\n  width:100vw;max-width:100vw;\n  margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);\n  position:relative;overflow:hidden;\n}\n\n.mg-blog-hero::before{\n  content:'';position:absolute;inset:0;pointer-events:none;\n  background-image:url(\"data:image\/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cg fill='%23FFB500' fill-rule='evenodd'%3E%3Cpath d='M0 0h1v40H0zM40 0h1v40h-1z'\/%3E%3Cpath d='M0 0h40v1H0zM0 40h40v1H0z'\/%3E%3C\/g%3E%3C\/svg%3E\");\n  opacity:.03;\n}\n\n.mg-blog-hero__inner{max-width:800px;margin:0 auto;text-align:center;position:relative;z-index:1}\n\n.mg-blog-hero__badge{\n  display:inline-flex;align-items:center;gap:10px;\n  background:hsla(40,100%,50%,.12);border:1px solid hsla(40,100%,50%,.30);\n  padding:10px 22px;border-radius:50px;margin-bottom:24px;\n  animation:mgBlogFade .6s ease both;\n}\n.mg-blog-hero__badge svg{width:18px;height:18px;fill:var(--mg-gold)}\n.mg-blog-hero__badge span{\n  font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;\n  color:var(--mg-gold);text-transform:uppercase;letter-spacing:1.5px;\n}\n\n.mg-blog-hero__title{\n  font-family:'DM Serif Display',serif;font-weight:400;\n  font-size:clamp(32px,5vw,48px);color:var(--mg-white);\n  margin-bottom:20px;line-height:1.2;\n  animation:mgBlogFade .6s .1s ease both;\n}\n.mg-blog-hero__title span{color:var(--mg-gold)}\n\n.mg-blog-hero__text{\n  font-family:'DM Sans',sans-serif;font-size:clamp(15px,1.8vw,17px);\n  color:hsla(0,0%,100%,.82);line-height:1.75;max-width:620px;margin:0 auto;\n  animation:mgBlogFade .6s .2s ease both;\n}\n\n@keyframes mgBlogFade{\n  from{opacity:0;transform:translateY(18px)}\n  to{opacity:1;transform:translateY(0)}\n}\n\n@media(max-width:600px){\n  .mg-blog-hero{padding:50px 16px}\n}\n<\/style>\n\n<div class=\"mg-blog-hero\">\n  <div class=\"mg-blog-hero__inner\">\n\n    <div class=\"mg-blog-hero__badge\">\n      <svg viewBox=\"0 0 24 24\"><path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\/><\/svg>\n      <span>Mudanzas Guerrero<\/span>\n    <\/div>\n\n    <h1 class=\"mg-blog-hero__title\">\n      Blog de <span>Mudanzas<\/span>\n    <\/h1>\n\n    <p class=\"mg-blog-hero__text\">\n      Consejos, gu\u00edas pr\u00e1cticas y novedades sobre mudanzas, transporte y almacenaje. Todo lo que necesitas saber para tu pr\u00f3ximo traslado.\n    <\/p>\n\n  <\/div>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-446b370 elementor-widget elementor-widget-html\" data-id=\"446b370\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\r\n\r\n:root {\r\n  --mg-marron: #351C15;\r\n  --mg-dorado: #FFB500;\r\n  --mg-blanco: #F7F7F7;\r\n  --mg-gris: #666666;\r\n}\r\n\r\n.mg-blog-grid * {\r\n  margin: 0;\r\n  padding: 0;\r\n  box-sizing: border-box;\r\n}\r\n\r\n.mg-blog-grid {\r\n  background: var(--mg-blanco);\r\n  padding: 80px 20px;\r\n  width: 100vw;\r\n  max-width: 100vw;\r\n  margin-left: calc(-50vw + 50%);\r\n  margin-right: calc(-50vw + 50%);\r\n  box-sizing: border-box;\r\n}\r\n\r\n.mg-blog-grid__inner {\r\n  max-width: 1100px;\r\n  margin: 0 auto;\r\n}\r\n\r\n\/* \u2500\u2500 Header \u2500\u2500 *\/\r\n.mg-blog-grid__header {\r\n  margin-bottom: 32px;\r\n}\r\n\r\n.mg-blog-grid__title {\r\n  font-family: 'Times New Roman', Times, serif;\r\n  font-weight: 700;\r\n  font-size: clamp(24px, 3vw, 32px);\r\n  color: var(--mg-marron);\r\n  margin-bottom: 8px;\r\n}\r\n\r\n.mg-blog-grid__subtitle {\r\n  font-family: 'Montserrat', sans-serif;\r\n  font-size: 15px;\r\n  color: var(--mg-gris);\r\n}\r\n\r\n\/* \u2500\u2500 Filtros de categor\u00eda \u2500\u2500 *\/\r\n.mg-blog-filters {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 10px;\r\n  margin-bottom: 40px;\r\n}\r\n\r\n.mg-blog-filter-btn {\r\n  font-family: 'Montserrat', sans-serif;\r\n  font-size: 13px;\r\n  font-weight: 600;\r\n  padding: 8px 18px;\r\n  border-radius: 30px;\r\n  border: 2px solid transparent;\r\n  cursor: pointer;\r\n  transition: all 0.25s ease;\r\n  background: #fff;\r\n  color: var(--mg-marron);\r\n  border-color: rgba(53, 28, 21, 0.18);\r\n  letter-spacing: 0.2px;\r\n}\r\n\r\n.mg-blog-filter-btn:hover {\r\n  border-color: var(--mg-dorado);\r\n  color: var(--mg-marron);\r\n  background: rgba(255, 181, 0, 0.08);\r\n}\r\n\r\n.mg-blog-filter-btn.is-active {\r\n  background: var(--mg-dorado);\r\n  border-color: var(--mg-dorado);\r\n  color: var(--mg-marron);\r\n  box-shadow: 0 4px 14px rgba(255, 181, 0, 0.35);\r\n}\r\n\r\n\/* \u2500\u2500 Grid de posts \u2500\u2500 *\/\r\n.mg-blog-grid__articles {\r\n  display: grid;\r\n  grid-template-columns: repeat(3, 1fr);\r\n  gap: 30px;\r\n  transition: opacity 0.25s ease;\r\n}\r\n\r\n.mg-blog-grid__articles.is-loading {\r\n  opacity: 0.4;\r\n  pointer-events: none;\r\n}\r\n\r\n\/* \u2500\u2500 Card \u2500\u2500 *\/\r\n.mg-blog-card {\r\n  background: #FFFFFF;\r\n  border-radius: 16px;\r\n  overflow: hidden;\r\n  transition: all 0.3s ease;\r\n  border: 2px solid transparent;\r\n  text-decoration: none;\r\n  display: block;\r\n  animation: mg-fadeIn 0.35s ease both;\r\n}\r\n\r\n@keyframes mg-fadeIn {\r\n  from { opacity: 0; transform: translateY(10px); }\r\n  to   { opacity: 1; transform: translateY(0); }\r\n}\r\n\r\n.mg-blog-card:hover {\r\n  border-color: var(--mg-dorado);\r\n  transform: translateY(-5px);\r\n  box-shadow: 0 15px 40px rgba(53, 28, 21, 0.12);\r\n}\r\n\r\n.mg-blog-card__img {\r\n  width: 100%;\r\n  height: 200px;\r\n  background-size: cover;\r\n  background-position: center;\r\n  background-repeat: no-repeat;\r\n  background-color: #e8e0dc;\r\n  position: relative;\r\n  overflow: hidden;\r\n}\r\n\r\n\/* Placeholder sin imagen *\/\r\n.mg-blog-card__img--empty::after {\r\n  content: '';\r\n  position: absolute;\r\n  inset: 0;\r\n  background: linear-gradient(135deg, #e8e0dc 0%, #d4c4bb 100%);\r\n}\r\n\r\n.mg-blog-card__content {\r\n  padding: 24px;\r\n}\r\n\r\n.mg-blog-card__category {\r\n  display: inline-block;\r\n  background: rgba(255, 181, 0, 0.12);\r\n  color: var(--mg-marron);\r\n  font-family: 'Montserrat', sans-serif;\r\n  font-size: 11px;\r\n  font-weight: 600;\r\n  text-transform: uppercase;\r\n  letter-spacing: 0.5px;\r\n  padding: 5px 10px;\r\n  border-radius: 4px;\r\n  margin-bottom: 12px;\r\n}\r\n\r\n.mg-blog-card__title {\r\n  font-family: 'Times New Roman', Times, serif;\r\n  font-weight: 700;\r\n  font-size: 18px;\r\n  color: var(--mg-marron);\r\n  margin-bottom: 12px;\r\n  line-height: 1.3;\r\n  transition: color 0.3s ease;\r\n}\r\n\r\n.mg-blog-card:hover .mg-blog-card__title {\r\n  color: var(--mg-dorado);\r\n}\r\n\r\n.mg-blog-card__excerpt {\r\n  font-family: 'Montserrat', sans-serif;\r\n  font-size: 14px;\r\n  color: var(--mg-gris);\r\n  line-height: 1.6;\r\n  margin-bottom: 16px;\r\n}\r\n\r\n.mg-blog-card__meta {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 12px;\r\n  padding-top: 16px;\r\n  border-top: 1px solid rgba(53, 28, 21, 0.08);\r\n}\r\n\r\n.mg-blog-card__date {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 6px;\r\n  font-family: 'Montserrat', sans-serif;\r\n  font-size: 12px;\r\n  color: var(--mg-gris);\r\n}\r\n\r\n.mg-blog-card__date svg {\r\n  width: 14px;\r\n  height: 14px;\r\n  fill: var(--mg-dorado);\r\n  flex-shrink: 0;\r\n}\r\n\r\n.mg-blog-card__read {\r\n  margin-left: auto;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 6px;\r\n  font-family: 'Montserrat', sans-serif;\r\n  font-size: 13px;\r\n  font-weight: 600;\r\n  color: var(--mg-dorado);\r\n  white-space: nowrap;\r\n}\r\n\r\n.mg-blog-card__read svg {\r\n  width: 16px;\r\n  height: 16px;\r\n  fill: var(--mg-dorado);\r\n  transition: transform 0.3s ease;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.mg-blog-card:hover .mg-blog-card__read svg {\r\n  transform: translateX(4px);\r\n}\r\n\r\n\/* \u2500\u2500 \"Ver m\u00e1s\" \u2500\u2500 *\/\r\n.mg-blog-grid__more {\r\n  text-align: center;\r\n  margin-top: 48px;\r\n}\r\n\r\n.mg-blog-grid__more-btn {\r\n  font-family: 'Montserrat', sans-serif;\r\n  font-size: 14px;\r\n  font-weight: 600;\r\n  padding: 14px 36px;\r\n  border-radius: 30px;\r\n  border: 2px solid var(--mg-marron);\r\n  background: transparent;\r\n  color: var(--mg-marron);\r\n  cursor: pointer;\r\n  transition: all 0.25s ease;\r\n  display: none; \/* se muestra via JS si hay m\u00e1s posts *\/\r\n}\r\n\r\n.mg-blog-grid__more-btn:hover {\r\n  background: var(--mg-marron);\r\n  color: var(--mg-dorado);\r\n}\r\n\r\n.mg-blog-grid__more-btn.is-visible {\r\n  display: inline-block;\r\n}\r\n\r\n\/* \u2500\u2500 Loading spinner \u2500\u2500 *\/\r\n.mg-blog-grid__loading {\r\n  text-align: center;\r\n  padding: 60px 20px;\r\n  font-family: 'Montserrat', sans-serif;\r\n  color: var(--mg-gris);\r\n}\r\n\r\n.mg-blog-grid__loading-spinner {\r\n  width: 40px;\r\n  height: 40px;\r\n  border: 3px solid #e0e0e0;\r\n  border-top-color: var(--mg-dorado);\r\n  border-radius: 50%;\r\n  animation: mg-spin 0.8s linear infinite;\r\n  margin: 0 auto 16px;\r\n}\r\n\r\n@keyframes mg-spin {\r\n  to { transform: rotate(360deg); }\r\n}\r\n\r\n\/* \u2500\u2500 Sin resultados \u2500\u2500 *\/\r\n.mg-blog-grid__empty {\r\n  text-align: center;\r\n  padding: 60px 20px;\r\n  font-family: 'Montserrat', sans-serif;\r\n  color: var(--mg-gris);\r\n  grid-column: 1 \/ -1;\r\n}\r\n\r\n.mg-blog-grid__empty p {\r\n  font-size: 15px;\r\n}\r\n\r\n\/* \u2500\u2500 Responsive \u2500\u2500 *\/\r\n@media (max-width: 900px) {\r\n  .mg-blog-grid__articles {\r\n    grid-template-columns: repeat(2, 1fr);\r\n  }\r\n}\r\n\r\n@media (max-width: 600px) {\r\n  .mg-blog-grid {\r\n    padding: 60px 16px;\r\n  }\r\n  .mg-blog-grid__articles {\r\n    grid-template-columns: 1fr;\r\n  }\r\n  .mg-blog-card__img {\r\n    height: 180px;\r\n  }\r\n  .mg-blog-filters {\r\n    gap: 8px;\r\n  }\r\n  .mg-blog-filter-btn {\r\n    font-size: 12px;\r\n    padding: 7px 14px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<!-- HTML -->\r\n<section class=\"mg-blog-grid\">\r\n  <div class=\"mg-blog-grid__inner\">\r\n\r\n    <header class=\"mg-blog-grid__header\">\r\n      <h2 class=\"mg-blog-grid__title\">Consejos para tu mudanza<\/h2>\r\n      <p class=\"mg-blog-grid__subtitle\">Gu\u00edas pr\u00e1cticas para que tu traslado sea m\u00e1s f\u00e1cil.<\/p>\r\n    <\/header>\r\n\r\n    <!-- Filtros de categor\u00eda (se generan din\u00e1micamente) -->\r\n    <div class=\"mg-blog-filters\" id=\"mg-blog-filters\"><\/div>\r\n\r\n    <!-- Grid de posts -->\r\n    <div class=\"mg-blog-grid__articles\" id=\"mg-blog-posts\">\r\n      <div class=\"mg-blog-grid__loading\" style=\"grid-column: 1\/-1;\">\r\n        <div class=\"mg-blog-grid__loading-spinner\"><\/div>\r\n        <p>Cargando art\u00edculos...<\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Bot\u00f3n ver m\u00e1s -->\r\n    <div class=\"mg-blog-grid__more\">\r\n      <button class=\"mg-blog-grid__more-btn\" id=\"mg-load-more\">Ver m\u00e1s art\u00edculos<\/button>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n\r\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n  \/\/ CONFIGURACI\u00d3N\r\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n  const POSTS_PER_PAGE = 6;   \/\/ Posts visibles por defecto\r\n  const SITE_URL = '';        \/\/ Dejar vac\u00edo para usar el dominio actual\r\n\r\n  const CATEGORIES = [\r\n    { id: 12, name: 'Consejos' },\r\n    { id: 32, name: 'Guias' },\r\n  ];\r\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n\r\n  const baseUrl   = SITE_URL || window.location.origin;\r\n  const container = document.getElementById('mg-blog-posts');\r\n  const filters   = document.getElementById('mg-blog-filters');\r\n  const moreBtn   = document.getElementById('mg-load-more');\r\n\r\n  let activeCategoryId = null; \/\/ null = todas las categor\u00edas\r\n  let currentPage      = 1;\r\n  let totalPages       = 1;\r\n  let allPosts         = [];   \/\/ posts acumulados en pantalla\r\n\r\n  \/\/ \u2500\u2500 Utilidades \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\n  function formatDate(dateStr) {\r\n    const d = new Date(dateStr);\r\n    const months = ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'];\r\n    return d.getDate() + ' ' + months[d.getMonth()] + ' ' + d.getFullYear();\r\n  }\r\n\r\n  function stripHtml(html) {\r\n    return html.replace(\/<[^>]*>\/g, '');\r\n  }\r\n\r\n  function truncate(text, max) {\r\n    const plain = stripHtml(text);\r\n    return plain.length <= max ? plain : plain.substring(0, max).trim() + '\u2026';\r\n  }\r\n\r\n  function getCategoryName(post) {\r\n    if (!post._embedded || !post._embedded['wp:term']) return '';\r\n    const terms = post._embedded['wp:term'][0] || [];\r\n    const cat = terms.find(t => t.taxonomy === 'category');\r\n    return cat ? cat.name : '';\r\n  }\r\n\r\n  function getImageUrl(post) {\r\n    try {\r\n      return post._embedded['wp:featuredmedia'][0].source_url || '';\r\n    } catch (e) {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  \/\/ \u2500\u2500 Renderizado de una card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\n  function createCard(post) {\r\n    const img      = getImageUrl(post);\r\n    const catName  = getCategoryName(post);\r\n    const excerpt  = truncate(post.excerpt.rendered, 120);\r\n    const date     = formatDate(post.date);\r\n    const imgStyle = img\r\n      ? `background-image: url(${img});`\r\n      : '';\r\n    const imgClass = img ? '' : ' mg-blog-card__img--empty';\r\n\r\n    return `\r\n      <a href=\"${post.link}\" class=\"mg-blog-card\">\r\n        <div class=\"mg-blog-card__img${imgClass}\" style=\"${imgStyle}\"><\/div>\r\n        <div class=\"mg-blog-card__content\">\r\n          ${catName ? `<span class=\"mg-blog-card__category\">${catName}<\/span>` : ''}\r\n          <h3 class=\"mg-blog-card__title\">${post.title.rendered}<\/h3>\r\n          <p class=\"mg-blog-card__excerpt\">${excerpt}<\/p>\r\n          <div class=\"mg-blog-card__meta\">\r\n            <span class=\"mg-blog-card__date\">\r\n              <svg viewBox=\"0 0 24 24\"><path d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM9 10H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2z\"\/><\/svg>\r\n              ${date}\r\n            <\/span>\r\n            <span class=\"mg-blog-card__read\">\r\n              Leer m\u00e1s\r\n              <svg viewBox=\"0 0 24 24\"><path d=\"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\/><\/svg>\r\n            <\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/a>`;\r\n  }\r\n\r\n  \/\/ \u2500\u2500 Renderizado del grid \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\n  function renderPosts(posts, append) {\r\n    if (!append) {\r\n      \/\/ Reset\r\n      allPosts = [];\r\n      container.innerHTML = '';\r\n    }\r\n\r\n    if (posts.length === 0 && !append) {\r\n      container.innerHTML = `\r\n        <div class=\"mg-blog-grid__empty\">\r\n          <p>No hay art\u00edculos en esta categor\u00eda todav\u00eda.<\/p>\r\n        <\/div>`;\r\n      moreBtn.classList.remove('is-visible');\r\n      return;\r\n    }\r\n\r\n    allPosts = allPosts.concat(posts);\r\n    const fragment = posts.map(createCard).join('');\r\n    container.insertAdjacentHTML('beforeend', fragment);\r\n\r\n    \/\/ Mostrar u ocultar bot\u00f3n \"Ver m\u00e1s\"\r\n    if (currentPage < totalPages) {\r\n      moreBtn.classList.add('is-visible');\r\n    } else {\r\n      moreBtn.classList.remove('is-visible');\r\n    }\r\n  }\r\n\r\n  \/\/ \u2500\u2500 Fetch de posts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\n  async function fetchPosts(page, append) {\r\n    container.classList.add('is-loading');\r\n    if (!append) {\r\n      container.innerHTML = `\r\n        <div class=\"mg-blog-grid__loading\" style=\"grid-column:1\/-1\">\r\n          <div class=\"mg-blog-grid__loading-spinner\"><\/div>\r\n          <p>Cargando art\u00edculos\u2026<\/p>\r\n        <\/div>`;\r\n    }\r\n\r\n    try {\r\n      let url = `${baseUrl}\/wp-json\/wp\/v2\/posts?per_page=${POSTS_PER_PAGE}&page=${page}&orderby=date&order=desc&_embed`;\r\n      if (activeCategoryId) url += `&categories=${activeCategoryId}`;\r\n\r\n      const response = await fetch(url);\r\n\r\n      if (!response.ok && response.status !== 400) {\r\n        throw new Error('Error ' + response.status);\r\n      }\r\n\r\n      \/\/ Total de p\u00e1ginas en cabecera\r\n      totalPages = parseInt(response.headers.get('X-WP-TotalPages') || '1', 10);\r\n\r\n      const posts = response.ok ? await response.json() : [];\r\n      renderPosts(posts, append);\r\n\r\n    } catch (err) {\r\n      console.error('Error cargando posts:', err);\r\n      container.innerHTML = `\r\n        <div class=\"mg-blog-grid__empty\" style=\"grid-column:1\/-1\">\r\n          <p>No se pudieron cargar los art\u00edculos. Int\u00e9ntalo de nuevo.<\/p>\r\n        <\/div>`;\r\n    } finally {\r\n      container.classList.remove('is-loading');\r\n    }\r\n  }\r\n\r\n  \/\/ \u2500\u2500 Renderizado de filtros \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\n  function renderFilters() {\r\n    \/\/ Bot\u00f3n \"Todos\"\r\n    const allBtn = document.createElement('button');\r\n    allBtn.className = 'mg-blog-filter-btn is-active';\r\n    allBtn.textContent = 'Todos';\r\n    allBtn.dataset.catId = '';\r\n    filters.appendChild(allBtn);\r\n\r\n    \/\/ Un bot\u00f3n por cada categor\u00eda hardcodeada\r\n    CATEGORIES.forEach(cat => {\r\n      const btn = document.createElement('button');\r\n      btn.className = 'mg-blog-filter-btn';\r\n      btn.textContent = cat.name;\r\n      btn.dataset.catId = cat.id;\r\n      filters.appendChild(btn);\r\n    });\r\n\r\n    \/\/ Listener delegado en el contenedor\r\n    filters.addEventListener('click', function (e) {\r\n      const btn = e.target.closest('.mg-blog-filter-btn');\r\n      if (!btn) return;\r\n\r\n      filters.querySelectorAll('.mg-blog-filter-btn').forEach(b => b.classList.remove('is-active'));\r\n      btn.classList.add('is-active');\r\n\r\n      activeCategoryId = btn.dataset.catId ? parseInt(btn.dataset.catId, 10) : null;\r\n      currentPage = 1;\r\n      fetchPosts(currentPage, false);\r\n    });\r\n  }\r\n\r\n  \/\/ \u2500\u2500 Bot\u00f3n \"Ver m\u00e1s\" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\n  moreBtn.addEventListener('click', function () {\r\n    currentPage++;\r\n    fetchPosts(currentPage, true);\r\n  });\r\n\r\n  \/\/ \u2500\u2500 Inicializaci\u00f3n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\r\n  function init() {\r\n    renderFilters();\r\n    fetchPosts(1, false);\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', init);\r\n  } else {\r\n    init();\r\n  }\r\n\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Mudanzas Guerrero Blog de Mudanzas Consejos, gu\u00edas pr\u00e1cticas y novedades sobre mudanzas, transporte y almacenaje. Todo lo que necesitas saber para tu pr\u00f3ximo traslado. Consejos para tu mudanza Gu\u00edas pr\u00e1cticas para que tu traslado sea m\u00e1s f\u00e1cil. Cargando art\u00edculos&#8230; Ver m\u00e1s art\u00edculos<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-768","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Blog de Mudanzas | Consejos y Gu\u00edas | Mudanzas Guerrero<\/title>\n<meta name=\"description\" content=\"Descubre en nuestro blog de mudanzas consejos, gu\u00edas y recomendaciones sobre traslados, guardamuebles, almacenaje y mudanzas internacionales.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mudanzasguerrero.es\/?page_id=768\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Blog de Mudanzas | Consejos y Gu\u00edas | Mudanzas Guerrero\" \/>\n<meta property=\"og:description\" content=\"Descubre en nuestro blog de mudanzas consejos, gu\u00edas y recomendaciones sobre traslados, guardamuebles, almacenaje y mudanzas internacionales.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mudanzasguerrero.es\/?page_id=768\" \/>\n<meta property=\"og:site_name\" content=\"Mudanzas Guerrero\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MudanzasGuerrero\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-08T18:55:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mudanzasguerrero.es\/wp-content\/uploads\/2015\/08\/Mudanzas-Guerrero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"248\" \/>\n\t<meta property=\"og:image:height\" content=\"136\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/?page_id=768\",\"url\":\"https:\\\/\\\/mudanzasguerrero.es\\\/?page_id=768\",\"name\":\"Blog de Mudanzas | Consejos y Gu\u00edas | Mudanzas Guerrero\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/#website\"},\"datePublished\":\"2026-02-28T01:49:08+00:00\",\"dateModified\":\"2026-04-08T18:55:14+00:00\",\"description\":\"Descubre en nuestro blog de mudanzas consejos, gu\u00edas y recomendaciones sobre traslados, guardamuebles, almacenaje y mudanzas internacionales.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/?page_id=768#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mudanzasguerrero.es\\\/?page_id=768\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/?page_id=768#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mudanzasguerrero.es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/#website\",\"url\":\"https:\\\/\\\/mudanzasguerrero.es\\\/\",\"name\":\"Mudanzas Guerrero\",\"description\":\"Servicio Mundial\",\"publisher\":{\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mudanzasguerrero.es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/#organization\",\"name\":\"Mudanzas Guerrero\",\"url\":\"https:\\\/\\\/mudanzasguerrero.es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mudanzasguerrero.es\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/Mudanzas-Guerrero.jpg\",\"contentUrl\":\"https:\\\/\\\/mudanzasguerrero.es\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/Mudanzas-Guerrero.jpg\",\"width\":248,\"height\":136,\"caption\":\"Mudanzas Guerrero\"},\"image\":{\"@id\":\"https:\\\/\\\/mudanzasguerrero.es\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/MudanzasGuerrero\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Blog de Mudanzas | Consejos y Gu\u00edas | Mudanzas Guerrero","description":"Descubre en nuestro blog de mudanzas consejos, gu\u00edas y recomendaciones sobre traslados, guardamuebles, almacenaje y mudanzas internacionales.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mudanzasguerrero.es\/?page_id=768","og_locale":"es_ES","og_type":"article","og_title":"Blog de Mudanzas | Consejos y Gu\u00edas | Mudanzas Guerrero","og_description":"Descubre en nuestro blog de mudanzas consejos, gu\u00edas y recomendaciones sobre traslados, guardamuebles, almacenaje y mudanzas internacionales.","og_url":"https:\/\/mudanzasguerrero.es\/?page_id=768","og_site_name":"Mudanzas Guerrero","article_publisher":"https:\/\/www.facebook.com\/MudanzasGuerrero","article_modified_time":"2026-04-08T18:55:14+00:00","og_image":[{"width":248,"height":136,"url":"https:\/\/mudanzasguerrero.es\/wp-content\/uploads\/2015\/08\/Mudanzas-Guerrero.jpg","type":"image\/jpeg"}],"twitter_misc":{"Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mudanzasguerrero.es\/?page_id=768","url":"https:\/\/mudanzasguerrero.es\/?page_id=768","name":"Blog de Mudanzas | Consejos y Gu\u00edas | Mudanzas Guerrero","isPartOf":{"@id":"https:\/\/mudanzasguerrero.es\/#website"},"datePublished":"2026-02-28T01:49:08+00:00","dateModified":"2026-04-08T18:55:14+00:00","description":"Descubre en nuestro blog de mudanzas consejos, gu\u00edas y recomendaciones sobre traslados, guardamuebles, almacenaje y mudanzas internacionales.","breadcrumb":{"@id":"https:\/\/mudanzasguerrero.es\/?page_id=768#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mudanzasguerrero.es\/?page_id=768"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mudanzasguerrero.es\/?page_id=768#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mudanzasguerrero.es\/"},{"@type":"ListItem","position":2,"name":"Blog"}]},{"@type":"WebSite","@id":"https:\/\/mudanzasguerrero.es\/#website","url":"https:\/\/mudanzasguerrero.es\/","name":"Mudanzas Guerrero","description":"Servicio Mundial","publisher":{"@id":"https:\/\/mudanzasguerrero.es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mudanzasguerrero.es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/mudanzasguerrero.es\/#organization","name":"Mudanzas Guerrero","url":"https:\/\/mudanzasguerrero.es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/mudanzasguerrero.es\/#\/schema\/logo\/image\/","url":"https:\/\/mudanzasguerrero.es\/wp-content\/uploads\/2015\/08\/Mudanzas-Guerrero.jpg","contentUrl":"https:\/\/mudanzasguerrero.es\/wp-content\/uploads\/2015\/08\/Mudanzas-Guerrero.jpg","width":248,"height":136,"caption":"Mudanzas Guerrero"},"image":{"@id":"https:\/\/mudanzasguerrero.es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/MudanzasGuerrero"]}]}},"_links":{"self":[{"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=\/wp\/v2\/pages\/768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=768"}],"version-history":[{"count":22,"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=\/wp\/v2\/pages\/768\/revisions"}],"predecessor-version":[{"id":1087,"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=\/wp\/v2\/pages\/768\/revisions\/1087"}],"wp:attachment":[{"href":"https:\/\/mudanzasguerrero.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}