:root{
  --hm-green:#11851f;
  --hm-green-dark:#0a6417;
  --hm-yellow:#f7be2c;
  --hm-ink:#1f2d21;
  --hm-muted:#687168;
  --hm-paper:#f8f7f1;
  --hm-line:rgba(31,45,33,.10);
  --hm-shadow:0 14px 36px rgba(26,45,27,.08);
  --hm-content:1240px;
}

body.home.page-id-838{overflow-x:hidden;background:var(--hm-paper);}

/* HERO: único bloque al que cambiamos de forma estructural el ancho. */
body.home.page-id-838 .elementor-element.elementor-element-2c1a90d{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  min-height:clamp(560px,64vh,690px)!important;
  padding-left:max(24px,calc((100vw - var(--hm-content))/2))!important;
  padding-right:max(24px,calc((100vw - var(--hm-content))/2))!important;
  border-radius:0!important;
  overflow:hidden;
}
body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-widget-heading h1,
body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-widget-heading h2{
  font-size:clamp(40px,4.6vw,64px)!important;
  line-height:1.03!important;
  color:#fff!important;
  text-shadow:0 4px 20px rgba(0,0,0,.34);
}
body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-widget-text-editor,
body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-widget-text-editor p{
  color:#fff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.46);
}
body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-button{
  min-height:46px;
  padding:12px 22px!important;
  border-radius:8px!important;
}
body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-button:focus-visible{
  outline:3px solid var(--hm-yellow);outline-offset:3px;
}

/* Categorías: respetamos la composición original y sólo la integramos con el hero. */
body.home.page-id-838 .elementor-element.elementor-element-2eb9367{
  width:min(calc(100% - 40px),1000px)!important;
  margin:-34px auto 44px!important;
  padding:8px!important;
  gap:6px!important;
  background:#fff!important;
  border:1px solid var(--hm-line)!important;
  border-radius:16px!important;
  box-shadow:var(--hm-shadow);
  position:relative;
  z-index:4;
}

/* Opiniones: una sola implementación canónica.
   JS mueve las dos columnas reales de Elementor a .hm-opinions-row.
   Así dejamos de pelear contra los anchos/flex inline del contenedor original. */
.hm-opinions-row{
  width:min(calc(100% - 40px),1180px);
  margin:0 auto 54px;
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(285px,.85fr);
  gap:18px;
  align-items:start;
}
.hm-opinions-row > .elementor-element-573b4c2,
.hm-opinions-row > .elementor-element-78c51d2{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  align-self:start!important;
  box-sizing:border-box!important;
}
.hm-opinions-row > .elementor-element-573b4c2{
  padding:22px!important;
  background:#fff!important;
  border:1px solid var(--hm-line)!important;
  border-radius:18px!important;
  box-shadow:var(--hm-shadow);
}
.hm-opinions-row > .elementor-element-78c51d2{
  padding:22px!important;
  background:linear-gradient(155deg,rgba(247,190,44,.13),rgba(68,241,41,.04))!important;
  border:1px solid rgba(17,133,31,.22)!important;
  border-radius:18px!important;
}
.hm-review-fallback{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.hm-review-card{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  padding:14px;
  background:#fff;
  border:1px solid var(--hm-line);
  border-radius:14px;
}
.hm-review-card__avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;background:#f1f3ef;}
.hm-review-card__body{min-width:0;}
.hm-review-card__name{margin:0 0 5px;color:var(--hm-ink);font-weight:800;font-size:13px;line-height:1.25;}
.hm-review-card__text{margin:0;color:#4e594f;font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
.hm-review-card__source{margin-top:7px;color:#b98400;font-size:11px;font-weight:700;}
.hm-opinions-row > .elementor-element-573b4c2 .elementor-widget-image img{max-width:150px;margin-inline:auto;}

/* CÓMO TRABAJAMOS: no cambiamos su layout de Elementor. Sólo acabado visual ligero. */
body.home.page-id-838 .elementor-element.elementor-element-8b2682c,
body.home.page-id-838 .elementor-element.elementor-element-f958351,
body.home.page-id-838 .elementor-element.elementor-element-0967386{
  border:1px solid var(--hm-line)!important;
  border-radius:18px!important;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(26,45,27,.055);
}

/* FAQ — presentación propia, desacoplada de los anchos internos de Elementor Extras.
   Los widgets originales siguen en el DOM como fallback funcional; JS crea una rejilla limpia
   y sólo entonces oculta las tres filas originales. */
body.home.page-id-838 .elementor-element.elementor-element-a4e9fc5{
  width:min(calc(100% - 40px),1120px)!important;
  margin:48px auto 22px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.home.page-id-838 .elementor-element.elementor-element-a4e9fc5::before,
body.home.page-id-838 .elementor-element.elementor-element-a4e9fc5::after{content:none!important;display:none!important;}
body.home.page-id-838 .elementor-element.elementor-element-95e8a76 .elementor-heading-title{
  margin:0!important;
  color:var(--hm-green-dark)!important;
  font-size:clamp(30px,3vw,40px)!important;
  line-height:1.1!important;
  letter-spacing:-.025em;
  font-weight:850!important;
}
body.home.page-id-838 .elementor-element.elementor-element-95e8a76::after{
  content:"";
  display:block;
  width:54px;
  height:3px;
  margin:13px auto 0;
  border-radius:999px;
  background:var(--hm-yellow);
}

/* Sólo se oculta la implementación original si JS ha construido las 9 tarjetas. */
body.home.page-id-838.hm-faq-ready .elementor-element.elementor-element-fd98bd4,
body.home.page-id-838.hm-faq-ready .elementor-element.elementor-element-021fccb,
body.home.page-id-838.hm-faq-ready .elementor-element.elementor-element-16ed9b6{
  display:none!important;
}

body.home.page-id-838 .hm-faq-grid{
  width:min(calc(100% - 40px),1120px);
  margin:0 auto 54px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
body.home.page-id-838 .hm-faq-card{
  margin:0;
  border:1px solid #dfe5dc;
  border-radius:14px;
  background:#fff;
  color:var(--hm-ink);
  box-shadow:0 8px 22px rgba(24,61,28,.045);
  overflow:hidden;
}
body.home.page-id-838 .hm-faq-card summary{
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:17px 20px;
  list-style:none;
  cursor:pointer;
  font-size:15px;
  font-weight:800;
  line-height:1.35;
}
body.home.page-id-838 .hm-faq-card summary::-webkit-details-marker{display:none;}
body.home.page-id-838 .hm-faq-card summary::after{
  content:"+";
  flex:0 0 auto;
  font-size:20px;
  font-weight:700;
  color:var(--hm-green);
  line-height:1;
}
body.home.page-id-838 .hm-faq-card[open] summary::after{content:"−";}
body.home.page-id-838 .hm-faq-card:hover{
  border-color:rgba(17,133,31,.32);
  box-shadow:0 12px 26px rgba(24,61,28,.075);
}
body.home.page-id-838 .hm-faq-card summary:focus-visible{
  outline:3px solid rgba(247,190,44,.85);
  outline-offset:-3px;
}
body.home.page-id-838 .hm-faq-card__answer{
  padding:0 20px 18px;
  color:#4e594f;
  font-size:14px;
  line-height:1.6;
  white-space:pre-line;
}
@media(max-width:900px){
  body.home.page-id-838 .hm-faq-grid{width:calc(100% - 28px);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
}
@media(max-width:767px){
  body.home.page-id-838 .elementor-element.elementor-element-a4e9fc5{width:calc(100% - 24px)!important;margin-top:34px!important;}
  body.home.page-id-838 .hm-faq-grid{width:calc(100% - 24px);grid-template-columns:1fr;gap:10px;margin-bottom:38px;}
  body.home.page-id-838 .hm-faq-card summary{min-height:62px;padding:15px 17px;font-size:15px;}
  body.home.page-id-838 .hm-faq-card__answer{padding:0 17px 16px;}
}


@media(max-width:900px){
  body.home.page-id-838 .elementor-element.elementor-element-a4e9fc5{
    width:calc(100% - 28px)!important;
    padding:36px 22px 20px!important;
  }
  body.home.page-id-838 .elementor-element.elementor-element-fd98bd4,
  body.home.page-id-838 .elementor-element.elementor-element-021fccb,
  body.home.page-id-838 .elementor-element.elementor-element-16ed9b6{
    width:calc(100% - 28px)!important;
    padding-left:22px!important;
    padding-right:22px!important;
    gap:10px!important;
  }
  body.home.page-id-838 .elementor-widget-ee-popup .ee-popup__trigger{
    min-height:86px;
    padding:16px 48px 16px 52px;
    font-size:14px;
  }
}
@media(max-width:767px){
  body.home.page-id-838 .elementor-element.elementor-element-a4e9fc5{
    width:calc(100% - 24px)!important;
    margin-top:34px!important;
    padding:30px 18px 18px!important;
    border-radius:22px 22px 0 0!important;
  }
  body.home.page-id-838 .elementor-element.elementor-element-fd98bd4,
  body.home.page-id-838 .elementor-element.elementor-element-021fccb,
  body.home.page-id-838 .elementor-element.elementor-element-16ed9b6{
    width:calc(100% - 24px)!important;
    padding:6px 18px!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  body.home.page-id-838 .elementor-element.elementor-element-16ed9b6{
    padding-bottom:28px!important;
    margin-bottom:38px!important;
    border-radius:0 0 22px 22px!important;
  }
  body.home.page-id-838 .elementor-widget-ee-popup .ee-popup__trigger{
    min-height:76px;
    padding:15px 48px 15px 52px;
  }
  body.home.page-id-838 .elementor-element.elementor-element-2c1a90d{
    min-height:520px!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
  body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-widget-heading h1,
  body.home.page-id-838 .elementor-element.elementor-element-2c1a90d .elementor-widget-heading h2{font-size:clamp(34px,10vw,46px)!important;}
  body.home.page-id-838 .elementor-element.elementor-element-2eb9367{
    width:calc(100% - 24px)!important;
    margin-top:-24px!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }
  body.home.page-id-838 .elementor-element.elementor-element-2eb9367 > *{width:100%!important;min-width:0!important;}
  body.home.page-id-838 .elementor-element.elementor-element-2eb9367 > :last-child{grid-column:1/-1;}
  .hm-review-fallback{grid-template-columns:1fr;}
}
@media(max-width:480px){
  body.home.page-id-838 .elementor-element.elementor-element-2eb9367{grid-template-columns:1fr!important;}
  body.home.page-id-838 .elementor-element.elementor-element-2eb9367 > :last-child{grid-column:auto;}
}

@media(max-width:560px){
}

@media(prefers-reduced-motion:reduce){
  body.home.page-id-838 .elementor-widget-ee-popup .ee-popup__trigger{transition:none!important;}
  body.home.page-id-838 .elementor-widget-ee-popup .ee-popup__trigger:hover{transform:none;}
}

@media(max-width:620px){
  .hm-opinions-row{
    width:calc(100% - 24px);
    grid-template-columns:1fr;
    gap:14px;
  }
}
