/* MWCR Epigenetics — Elementor helper styles
   Scoped to .mwcr-epi-page to avoid affecting the rest of the site. */
.mwcr-epi-page{
  --navy:#003366;--navy-deep:#021f3a;--teal:#5abbb3;--teal-bright:#2ad2c1;
  --teal-soft:#e8f7f5;--gold:#d1a775;--cream:#f8f3ea;--paper:#f5f8f7;
  --ink:#2f3438;--muted:#65727b;--white:#fff;--line:#d8e6e4;
  --shadow:0 30px 80px rgba(0,51,102,.14);--container:1360px;
  --text-h1:clamp(2.2rem,4vw,3.4rem);--text-h2:clamp(2.35rem,4.3vw,4.6rem);
  --text-h3:clamp(1.25rem,2vw,1.55rem);--text-lead:clamp(1.18rem,1.7vw,1.38rem);
  color:var(--ink);font-family:"Heebo",Arial,sans-serif;font-size:16px;line-height:1.7;
}
.mwcr-epi-page,.mwcr-epi-page *{box-sizing:border-box}.mwcr-epi-page img{display:block;max-width:100%}
.mwcr-epi-page .elementor-widget{margin:0}.mwcr-epi-page .elementor-widget-container>p:last-child{margin-bottom:0}
.mwcr-epi-page .epi-container{position:relative}
.mwcr-epi-page .epi-section{position:relative!important}
.mwcr-epi-page .epi-eyebrow .elementor-heading-title{align-items:center;color:var(--teal);display:flex;font:600 .78rem/1.3 "Montserrat",sans-serif;gap:12px;letter-spacing:.13em;margin:0 0 18px;text-transform:uppercase}
.mwcr-epi-page .epi-eyebrow .elementor-heading-title:before{background:currentColor;content:"";height:1px;width:35px}
.mwcr-epi-page .epi-display .elementor-heading-title{color:var(--navy);font-family:"Chakra Petch",sans-serif;font-size:var(--text-h2);font-weight:600;letter-spacing:-.035em;line-height:1.12;margin:0 0 25px}
.mwcr-epi-page .epi-section-number .elementor-heading-title{color:rgba(90,187,179,.20);font:700 clamp(5rem,10vw,9rem)/.8 "Chakra Petch",sans-serif;letter-spacing:-.06em;margin:0;pointer-events:none}

/* Hero */
.mwcr-epi-page .epi-page-title{overflow:hidden;position:relative}
.mwcr-epi-page .epi-page-title:after{background:linear-gradient(90deg,rgba(248,252,253,.99) 0%,rgba(248,252,253,.84) 42%,rgba(248,252,253,.10) 78%);content:"";inset:0;position:absolute;z-index:0}
.mwcr-epi-page .epi-page-title-inner{position:relative;z-index:1}
.mwcr-epi-page .epi-page-h1 .elementor-heading-title{color:var(--teal);font:600 clamp(2.1rem,4vw,3.4rem)/1.12 "Chakra Petch",sans-serif;margin:0 0 4px;text-transform:uppercase}
.mwcr-epi-page .epi-page-subtitle .elementor-heading-title{color:var(--gold);font:500 clamp(1.35rem,2.4vw,2rem)/1.35 "Chakra Petch",sans-serif;margin:0 0 10px}
.mwcr-epi-page .epi-breadcrumbs,.mwcr-epi-page .epi-breadcrumbs p{margin:0}.mwcr-epi-page .epi-breadcrumbs span{color:var(--teal)}

/* Gene */
.mwcr-epi-page .epi-gene{overflow:hidden}
.mwcr-epi-page .epi-gene-intro{position:relative}
.mwcr-epi-page .epi-gene-title{border-bottom:1px solid var(--line)}
.mwcr-epi-page .epi-gene-title-content{position:relative}
.mwcr-epi-page .epi-gene-copy{position:relative}
.mwcr-epi-page .epi-gene-card .elementor-widget-container,.mwcr-epi-page .epi-instruction .elementor-widget-container{background:#f8fbfa;border:1px solid var(--line);border-radius:16px;height:100%;padding:20px 22px}
.mwcr-epi-page .epi-gene-card p,.mwcr-epi-page .epi-instruction p{font-size:1rem;line-height:1.7;margin:0}
.mwcr-epi-page .epi-gene-card-accent .elementor-widget-container,.mwcr-epi-page .epi-instruction .elementor-widget-container{background:linear-gradient(130deg,var(--teal-soft),#f6fbfa);border-color:#b9dfda;border-left:3px solid var(--teal);color:var(--navy)}
.mwcr-epi-page .epi-gene-copy strong{color:var(--navy)}
.mwcr-epi-page .epi-gene-visual{background:linear-gradient(180deg,#fff 0%,#f4eee5 100%);border-radius:30px 30px 0 0;box-shadow:var(--shadow);overflow:hidden;position:relative}
.mwcr-epi-page .epi-gene-visual:before{background:linear-gradient(90deg,var(--teal),var(--gold));content:"";height:4px;left:7%;position:absolute;right:7%;top:0;z-index:2}
.mwcr-epi-page .epi-gene-visual img{border-radius:19px 19px 0 0;width:100%}
.mwcr-epi-page .epi-gene-statement{background:var(--navy);color:#fff;text-align:center}
.mwcr-epi-page .epi-gene-statement p{margin:0}.mwcr-epi-page .epi-gene-statement strong{display:block;font:600 var(--text-h3)/1.45 "Chakra Petch",sans-serif;margin:auto;max-width:1040px}.mwcr-epi-page .epi-gene-statement .quote-mark{color:var(--gold);font-family:Georgia,"Times New Roman",serif;font-size:1.35em;font-weight:700;line-height:0;margin:0 .18em;vertical-align:-.08em}

/* Exposome */
.mwcr-epi-page .epi-exposome{color:#fff;overflow:hidden}
.mwcr-epi-page .epi-exposome:before{background:radial-gradient(circle,rgba(90,187,179,.22) 0 2px,transparent 3px);background-size:32px 32px;content:"";height:480px;opacity:.5;position:absolute;right:-130px;top:-100px;width:480px}
.mwcr-epi-page .epi-expo-header{position:relative}
.mwcr-epi-page .epi-exposome .epi-display .elementor-heading-title{color:#fff}
.mwcr-epi-page .epi-lead p{color:rgba(255,255,255,.9);font-size:clamp(1.28rem,2vw,1.5rem);line-height:1.65;margin:0}
.mwcr-epi-page .epi-expo-number{position:absolute!important;right:0;top:-22px;z-index:0}.mwcr-epi-page .epi-expo-number .elementor-heading-title{color:rgba(90,187,179,.14)}
.mwcr-epi-page .epi-expo-header-left,.mwcr-epi-page .epi-lead{position:relative;z-index:1}
.mwcr-epi-page .epi-expo-story{position:relative}
.mwcr-epi-page .epi-expo-visual{background:#f6f2ea;border-radius:26px;box-shadow:0 32px 90px rgba(0,0,0,.25);overflow:hidden;padding:10px!important}
.mwcr-epi-page .epi-expo-visual img{border-radius:18px;width:100%}
.mwcr-epi-page .epi-expo-copy{position:relative}
.mwcr-epi-page .epi-body-copy p{color:rgba(255,255,255,.82);margin:0 0 17px}.mwcr-epi-page .epi-body-copy strong{color:#fff}
.mwcr-epi-page .epi-affecting-title{align-self:flex-start}.mwcr-epi-page .epi-affecting-title .elementor-heading-title{background:var(--teal-soft);border-left:4px solid var(--teal);border-radius:10px;color:var(--navy);display:inline-block;font:600 var(--text-h3)/1.12 "Chakra Petch",sans-serif;margin:0 0 4px;padding:9px 16px}
.mwcr-epi-page .epi-signals{position:relative}
.mwcr-epi-page .epi-signal .elementor-widget-container{align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);border-radius:14px;display:flex;gap:11px;min-height:54px;padding:12px 16px}
.mwcr-epi-page .epi-signal .elementor-widget-container:before{background:var(--gold);border-radius:50%;content:"";flex:0 0 8px;height:8px;width:8px}.mwcr-epi-page .epi-signal p{color:#fff;margin:0}
.mwcr-epi-page .epi-expo-definition .elementor-widget-container{background:var(--teal);border-radius:18px;color:var(--navy);padding:23px}.mwcr-epi-page .epi-expo-definition p{margin:0}.mwcr-epi-page .epi-expo-definition strong{display:block;font:600 1.2rem "Chakra Petch",sans-serif}
.mwcr-epi-page .epi-expo-which{margin-top:24px!important}

/* Functional */
.mwcr-epi-page .epi-functional{overflow:hidden}
.mwcr-epi-page .epi-functional-layout{position:relative}
.mwcr-epi-page .epi-functional-photo{border-radius:28px;box-shadow:var(--shadow);height:100%;min-height:100%;overflow:hidden;position:relative}.mwcr-epi-page .epi-functional-photo:after{background:linear-gradient(0deg,rgba(0,51,102,.22),transparent 45%);content:"";inset:0;pointer-events:none;position:absolute}.mwcr-epi-page .epi-functional-photo .elementor-widget-container,.mwcr-epi-page .epi-functional-photo img{height:100%}.mwcr-epi-page .epi-functional-photo img{object-fit:cover;width:100%}
.mwcr-epi-page .epi-functional-content{position:relative}.mwcr-epi-page .epi-functional-number{margin:0!important}.mwcr-epi-page .epi-functional-copy p{margin:0 0 15px}.mwcr-epi-page .epi-functional-copy strong{color:var(--navy)}
.mwcr-epi-page .epi-normal{background:linear-gradient(135deg,#fff 0%,#f0faf8 100%);border:1px solid #c9e5e1;border-left:5px solid var(--teal);border-radius:20px;box-shadow:0 18px 48px rgba(0,51,102,.10);margin:26px 0!important;padding:25px 26px 25px 84px!important;position:relative}
.mwcr-epi-page .epi-normal:before{align-items:center;background:var(--navy);border:5px solid #dff2ef;border-radius:50%;color:#fff;content:"+";display:flex;font:500 1.8rem/1 "Heebo",sans-serif;height:44px;justify-content:center;left:24px;position:absolute;top:25px;width:44px}
.mwcr-epi-page .epi-normal p{color:var(--muted);font:400 1rem/1.65 "Heebo",Arial,sans-serif;margin:0}.mwcr-epi-page .epi-normal .normal-lead{color:var(--navy);font-weight:600}.mwcr-epi-page .epi-normal .normal-emphasis{color:var(--teal);font-weight:600}
.mwcr-epi-page .epi-functional-h3 .elementor-heading-title{color:var(--ink);font:600 var(--text-h3)/1.12 "Chakra Petch",sans-serif;margin:0}
.mwcr-epi-page .epi-uncover{position:relative}
.mwcr-epi-page .epi-uncover-item .elementor-widget-container{align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--navy);display:flex;font-size:1rem;font-weight:600;gap:10px;padding:13px}.mwcr-epi-page .epi-uncover-item .elementor-widget-container:before{align-items:center;background:var(--teal);border-radius:50%;color:#fff;content:"✓";display:flex;flex:0 0 24px;font-size:.75rem;height:24px;justify-content:center}.mwcr-epi-page .epi-uncover-item p{margin:0}

/* Direction */
.mwcr-epi-page .epi-direction{overflow:hidden}
.mwcr-epi-page .epi-direction-header{position:relative}.mwcr-epi-page .epi-direction-copy p{font-size:1rem;margin:0 0 16px}.mwcr-epi-page .epi-direction-copy strong{color:var(--navy)}
.mwcr-epi-page .epi-direction-stage{background:linear-gradient(140deg,#faf7f1,#eff8f6);border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);overflow:hidden;padding:14px!important;position:relative}.mwcr-epi-page .epi-direction-stage:before,.mwcr-epi-page .epi-direction-stage:after{border:1px solid rgba(90,187,179,.3);border-radius:50%;content:"";position:absolute}.mwcr-epi-page .epi-direction-stage:before{height:210px;left:-80px;top:-80px;width:210px}.mwcr-epi-page .epi-direction-stage:after{bottom:-100px;height:280px;right:-100px;width:280px}.mwcr-epi-page .epi-direction-stage img{border-radius:22px;position:relative;width:100%;z-index:1}
.mwcr-epi-page .epi-direction-final{background:linear-gradient(105deg,var(--navy),#075285);border-radius:0 0 26px 26px;color:#fff}.mwcr-epi-page .epi-direction-final-icon{align-items:center;background:var(--teal);border-radius:50%;display:flex;height:72px;justify-content:center;width:72px}.mwcr-epi-page .epi-direction-final-icon .elementor-heading-title{color:#fff;font:500 2.5rem/1 Arial,sans-serif;margin:0}.mwcr-epi-page .epi-direction-final-text .elementor-heading-title{color:var(--gold);font:600 var(--text-h3)/1.35 "Chakra Petch",sans-serif;margin:0}

@media(max-width:980px){
  .mwcr-epi-page .epi-functional-photo{height:520px;min-height:520px}
}
@media(max-width:640px){
  .mwcr-epi-page .epi-gene-visual{border-radius:20px 20px 0 0}
  .mwcr-epi-page .epi-functional-photo{height:360px;min-height:360px}
  .mwcr-epi-page .epi-normal{padding:82px 22px 24px!important}.mwcr-epi-page .epi-normal:before{left:22px;top:22px}
  .mwcr-epi-page .epi-direction-final{border-radius:0 0 20px 20px}
  .mwcr-epi-page .epi-display .elementor-heading-title{font-size:2.45rem}
}

/* v1.0.3 — Compatibilidad con Elementor Optimized Markup
   Elementor puede omitir .elementor-widget-container. Estas reglas aplican
   la caja al wrapper del widget y conservan compatibilidad con el markup clásico. */
.mwcr-epi-page .epi-gene-card,
.mwcr-epi-page .epi-instruction{
  background:#f8fbfa;border:1px solid var(--line);border-radius:16px;
  height:100%;padding:20px 22px!important;
}
.mwcr-epi-page .epi-gene-card .elementor-widget-container,
.mwcr-epi-page .epi-instruction .elementor-widget-container{
  background:transparent;border:0;border-radius:0;height:auto;padding:0;
}
.mwcr-epi-page .epi-gene-card-accent,
.mwcr-epi-page .epi-instruction{
  background:linear-gradient(130deg,var(--teal-soft),#f6fbfa);
  border-color:#b9dfda;border-left:3px solid var(--teal);color:var(--navy);
}

.mwcr-epi-page .epi-signal{
  align-items:center!important;background:rgba(255,255,255,.07)!important;
  border:1px solid rgba(255,255,255,.13)!important;border-radius:14px!important;
  display:flex!important;gap:11px!important;min-height:54px!important;
  padding:12px 16px!important;width:100%!important;
}
.mwcr-epi-page .epi-signal:before{
  background:var(--gold);border-radius:50%;content:"";display:block;
  flex:0 0 8px;height:8px;width:8px;
}
.mwcr-epi-page .epi-signal .elementor-widget-container{
  align-items:inherit;background:transparent;border:0;border-radius:0;
  display:block;min-height:0;padding:0;
}
.mwcr-epi-page .epi-signal p,
.mwcr-epi-page .epi-signal .elementor-widget-container p{
  color:#fff!important;margin:0!important;
}

.mwcr-epi-page .epi-expo-definition{
  background:var(--teal)!important;border:0!important;border-radius:18px!important;
  color:var(--navy)!important;margin-bottom:22px!important;padding:23px!important;
  width:100%!important;
}
.mwcr-epi-page .epi-expo-definition .elementor-widget-container{
  background:transparent;border:0;border-radius:0;color:inherit;padding:0;
}
.mwcr-epi-page .epi-expo-definition p{
  color:var(--navy)!important;margin:0!important;
}
.mwcr-epi-page .epi-expo-definition strong{
  color:#fff!important;display:block;font:600 1.2rem "Chakra Petch",sans-serif;
}

.mwcr-epi-page .epi-uncover-item{
  align-items:center!important;background:#fff!important;border:1px solid var(--line)!important;
  border-radius:14px!important;color:var(--navy)!important;display:flex!important;
  font-size:1rem;font-weight:600;gap:10px!important;padding:13px!important;
}
.mwcr-epi-page .epi-uncover-item:before{
  align-items:center;background:var(--teal);border-radius:50%;color:#fff;content:"✓";
  display:flex;flex:0 0 24px;font-size:.75rem;height:24px;justify-content:center;width:24px;
}
.mwcr-epi-page .epi-uncover-item .elementor-widget-container{
  align-items:inherit;background:transparent;border:0;border-radius:0;color:inherit;
  display:block;font:inherit;padding:0;
}
.mwcr-epi-page .epi-uncover-item p{color:var(--navy)!important;margin:0!important}

/* Mantener imágenes a altura completa también con markup optimizado. */
.mwcr-epi-page .epi-functional-photo{display:block!important}
.mwcr-epi-page .epi-functional-photo > img,
.mwcr-epi-page .epi-functional-photo .elementor-widget-container,
.mwcr-epi-page .epi-functional-photo .elementor-widget-container img{height:100%}
.mwcr-epi-page .epi-functional-photo > img,
.mwcr-epi-page .epi-functional-photo img{object-fit:cover;width:100%}

/* v1.0.5 — El editor/preview añade .mwcr-epi-page dinámicamente mediante JS.
   No se cambian los estilos visuales; se asegura el mismo scope que en frontend. */

/* v1.0.7 — Layout nativo Elementor
   Los anchos, boxed/full width, flex directions, gaps, padding de secciones y
   responsive principal se guardan ahora en _elementor_data. Esta hoja queda
   reservada para acabado visual y decoraciones. */


/* v1.0.8 — Grid Containers nativos
   Elementor controla el número de columnas desde _elementor_data. Estas reglas
   solo conservan las proporciones 0.9fr/1.1fr del HTML original en los dos
   grids asimétricos y funcionan como fallback visual si el CSS generado por
   Elementor tarda en regenerarse. */
.mwcr-epi-page .epi-gene-copy,
.mwcr-epi-page .epi-expo-header,
.mwcr-epi-page .epi-signals,
.mwcr-epi-page .epi-functional-layout,
.mwcr-epi-page .epi-uncover,
.mwcr-epi-page .epi-direction-header{
  display:grid!important;
  min-width:0;
}
.mwcr-epi-page .epi-gene-copy{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 34px}
.mwcr-epi-page .epi-expo-header{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px;align-items:end}
.mwcr-epi-page .epi-signals{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mwcr-epi-page .epi-functional-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:45px;align-items:stretch}
.mwcr-epi-page .epi-uncover{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mwcr-epi-page .epi-direction-header{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:65px;align-items:end}
.mwcr-epi-page .epi-functional-layout > *,
.mwcr-epi-page .epi-direction-header > *,
.mwcr-epi-page .epi-expo-header > *,
.mwcr-epi-page .epi-gene-copy > *,
.mwcr-epi-page .epi-signals > *,
.mwcr-epi-page .epi-uncover > *{
  min-width:0;
  max-width:none;
}
@media(max-width:980px){
  .mwcr-epi-page .epi-gene-copy,
  .mwcr-epi-page .epi-expo-header,
  .mwcr-epi-page .epi-functional-layout,
  .mwcr-epi-page .epi-direction-header{
    grid-template-columns:minmax(0,1fr)!important;
  }
}
@media(max-width:640px){
  .mwcr-epi-page .epi-signals,
  .mwcr-epi-page .epi-uncover{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* v1.0.9 — Guardrails de ancho para Elementor Optimized Markup
   La arquitectura sigue siendo nativa (Full Width > Boxed > Grid), pero estos
   límites reproducen la geometría del HTML original incluso cuando Elementor
   no aplica el wrapper .e-con-inner de Boxed de la forma esperada en un
   Container anidado. */
.mwcr-epi-page .epi-container{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:1240px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.mwcr-epi-page .epi-gene-media{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Los hijos directos de Grid deben llenar su track completo. Esto evita que
   Containers heredados de Flexbox conserven un ancho intrínseco estrecho. */
.mwcr-epi-page .epi-gene-copy > *,
.mwcr-epi-page .epi-expo-header > *,
.mwcr-epi-page .epi-signals > *,
.mwcr-epi-page .epi-functional-layout > *,
.mwcr-epi-page .epi-uncover > *,
.mwcr-epi-page .epi-direction-header > *{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch!important;
}

/* Mantiene los gutters originales del HTML en todos los Boxed principales.
   Los valores también siguen guardados como Padding nativo en Elementor. */
@media (min-width:641px){
  .mwcr-epi-page .epi-container,
  .mwcr-epi-page .epi-gene-media{
    padding-left:30px!important;
    padding-right:30px!important;
  }
}
@media (max-width:640px){
  .mwcr-epi-page .epi-container,
  .mwcr-epi-page .epi-gene-media{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}


/* v1.0.10 — Jerarquía Full Width > Boxed > Grid
   Las migraciones 1.0.7–1.0.9 podían dejar controles de ancho heredados en
   Containers exteriores. Estas reglas son guardrails: el fondo pertenece a la
   sección exterior full width; solo el inner .epi-container queda boxed. */
.mwcr-epi-page > .epi-page-title,
.mwcr-epi-page > .epi-section{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  align-self:stretch!important;
  justify-self:stretch!important;
}

/* El color/fondo debe vivir siempre en el outer, nunca depender del inner. */
.mwcr-epi-page > .epi-exposome{background-color:#021f3a!important}
.mwcr-epi-page > .epi-functional{background-color:#f8f3ea!important}
.mwcr-epi-page > .epi-gene{background-color:#fff!important}

/* Un Grid anidado en un Container Flex de Elementor puede conservar un ancho
   intrínseco si viene de una migración anterior. Debe llenar todo el Boxed. */
.mwcr-epi-page .epi-gene-copy,
.mwcr-epi-page .epi-expo-header,
.mwcr-epi-page .epi-signals,
.mwcr-epi-page .epi-functional-layout,
.mwcr-epi-page .epi-uncover,
.mwcr-epi-page .epi-direction-header{
  width:100%!important;
  max-width:100%!important;
  align-self:stretch!important;
  justify-self:stretch!important;
}

/* Los wrappers interiores que agrupan contenido también deben poder crecer
   dentro de la celda del Grid, sin shrink-wrap. */
.mwcr-epi-page .epi-expo-header-left,
.mwcr-epi-page .epi-functional-content,
.mwcr-epi-page .epi-direction-head-left,
.mwcr-epi-page .epi-direction-head-right,
.mwcr-epi-page .epi-expo-copy-col{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}

/* v1.0.11 — Elementor Boxed real, sin doble limitación
   En v1.0.9/v1.0.10 .epi-container tenía max-width:1240px Y además
   Elementor aplicaba content_width=boxed. Eso podía reducir dos veces el área
   útil (especialmente con e-con-inner / breakpoints de Laptop).
   Desde aquí el outer del Container queda al 100%; el ancho Boxed lo gobierna
   --content-width / boxed_width de Elementor. */
.mwcr-epi-page .epi-container{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  --content-width:1240px!important;
}
.mwcr-epi-page .epi-gene-media{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  --content-width:1180px!important;
}

/* Si Elementor genera el wrapper clásico de un Container Boxed, fijamos el
   mismo ancho explícito para que el tema/global Site Settings no lo reduzca. */
.mwcr-epi-page .epi-container.e-con-boxed > .e-con-inner{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:1240px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.mwcr-epi-page .epi-gene-media.e-con-boxed > .e-con-inner{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Optimized Markup puede no crear .e-con-inner. En ese caso Elementor aplica
   el Boxed sobre el propio e-con; :has() evita volver a limitarlo cuando sí
   existe wrapper interior. */
@supports selector(:has(*)){
  .mwcr-epi-page .epi-container.e-con-boxed:not(:has(> .e-con-inner)){
    max-width:1240px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .mwcr-epi-page .epi-gene-media.e-con-boxed:not(:has(> .e-con-inner)){
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* El 02 es decorativo y absoluto. No debe recibir la regla genérica que estira
   todos los hijos de un Grid al 100%, porque eso lo movía visualmente al lado
   izquierdo. */
.mwcr-epi-page .epi-expo-header > .epi-expo-number{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:auto!important;
  align-self:auto!important;
  left:auto!important;
  right:0!important;
  top:-22px!important;
}

/* Los dos elementos reales del header sí ocupan por completo sus tracks. */
.mwcr-epi-page .epi-expo-header > .epi-expo-header-left,
.mwcr-epi-page .epi-expo-header > .epi-lead{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch!important;
}

/* v1.0.12 — Boxed único + Grid que ocupa el ancho real
   La sección exterior sigue siendo Full Width. El inner .epi-container es la
   única caja limitada a 1240px. Si Elementor genera .e-con-inner, ese wrapper
   se deja al 100% para evitar el efecto "boxed dentro de boxed". */
.mwcr-epi-page .epi-container{
  box-sizing:border-box!important;
  width:calc(100% - 0px)!important;
  max-width:1240px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  --content-width:100%!important;
}
.mwcr-epi-page .epi-gene-media{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  --content-width:100%!important;
}
.mwcr-epi-page .epi-container.e-con-boxed > .e-con-inner,
.mwcr-epi-page .epi-gene-media.e-con-boxed > .e-con-inner{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Gutter idéntico al HTML original. Al estar box-sizing:border-box, los 30px
   forman parte de los 1240px y no ensanchan la caja. */
@media (min-width:641px){
  .mwcr-epi-page .epi-container{padding-left:30px!important;padding-right:30px!important}
  .mwcr-epi-page .epi-gene-media{padding-left:30px!important;padding-right:30px!important}
}
@media (max-width:640px){
  .mwcr-epi-page .epi-container{padding-left:18px!important;padding-right:18px!important}
  .mwcr-epi-page .epi-gene-media{padding-left:18px!important;padding-right:18px!important}
}

/* El header de Exposome debe consumir todo el ancho útil (~1180px en desktop)
   y dividirse en dos tracks iguales. Ningún hijo conserva width heredado. */
.mwcr-epi-page .epi-expo-header{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  column-gap:45px!important;
}
.mwcr-epi-page .epi-expo-header > .epi-expo-header-left,
.mwcr-epi-page .epi-expo-header > .epi-lead{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch!important;
  align-self:end!important;
}
.mwcr-epi-page .epi-expo-header > .epi-expo-number{
  position:absolute!important;
  width:auto!important;
  right:0!important;
  left:auto!important;
  top:-22px!important;
}

/* Functional y Direction son grids asimétricos del HTML original.
   Cuando un Container Boxed usa .e-con-inner, el Grid efectivo debe vivir
   también en ese wrapper porque ahí están los hijos renderizados. */
.mwcr-epi-page .epi-functional-layout,
.mwcr-epi-page .epi-functional-layout.e-con-boxed > .e-con-inner{
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
  column-gap:45px!important;
  align-items:stretch!important;
}
.mwcr-epi-page .epi-functional-layout.e-con-boxed > .e-con-inner{
  display:grid!important;
}
.mwcr-epi-page .epi-direction-header{
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
  column-gap:65px!important;
}

/* Grids 2x2 reales. */
.mwcr-epi-page .epi-gene-copy,
.mwcr-epi-page .epi-signals,
.mwcr-epi-page .epi-uncover{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}

/* Nunca imponer width:100% a widgets/containers hijos de Grid: el track ya
   determina su ancho y Elementor puede convertir ese 100% en un constraint
   adicional. Se resetean los restos de v1.0.8–1.0.11. */
.mwcr-epi-page .epi-gene-copy > *,
.mwcr-epi-page .epi-expo-header > *,
.mwcr-epi-page .epi-signals > *,
.mwcr-epi-page .epi-functional-layout > *,
.mwcr-epi-page .epi-functional-layout.e-con-boxed > .e-con-inner > *,
.mwcr-epi-page .epi-uncover > *,
.mwcr-epi-page .epi-direction-header > *{
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch!important;
}

@media(max-width:980px){
  .mwcr-epi-page .epi-expo-header,
  .mwcr-epi-page .epi-functional-layout,
  .mwcr-epi-page .epi-functional-layout.e-con-boxed > .e-con-inner,
  .mwcr-epi-page .epi-direction-header{
    grid-template-columns:minmax(0,1fr)!important;
  }
}
@media(max-width:640px){
  .mwcr-epi-page .epi-gene-copy,
  .mwcr-epi-page .epi-signals,
  .mwcr-epi-page .epi-uncover{
    grid-template-columns:minmax(0,1fr)!important;
  }
}


/* v1.0.13 — Exposome: Grid con dos Containers reales
   El encabezado ya no tiene un widget directo como segunda columna. Ambos
   tracks contienen Containers nativos de Elementor, por lo que cada columna
   ocupa toda su fracción y el contenido no puede hacer shrink-wrap. */
.mwcr-epi-page .epi-expo-header{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  width:100%!important;
  max-width:none!important;
  align-items:end!important;
}
.mwcr-epi-page .epi-expo-header > .epi-expo-header-left{
  grid-column:1 / 2!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch!important;
  align-self:end!important;
}
.mwcr-epi-page .epi-expo-header > .epi-expo-header-right{
  grid-column:2 / 3!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch!important;
  align-self:end!important;
}
.mwcr-epi-page .epi-expo-header-left > .epi-eyebrow,
.mwcr-epi-page .epi-expo-header-left > .epi-display,
.mwcr-epi-page .epi-expo-header-right > .epi-lead{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  align-self:stretch!important;
}
/* Fallback para una página que aún no haya ejecutado la migración v1.0.13. */
.mwcr-epi-page .epi-expo-header > .epi-lead{
  grid-column:2 / 3!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch!important;
}
.mwcr-epi-page .epi-expo-header > .epi-expo-number{
  position:absolute!important;
  grid-column:auto!important;
  width:auto!important;
  right:0!important;
  left:auto!important;
  top:-22px!important;
}
/* El bloque visual inferior también debe llenar el ancho útil del Boxed. */
.mwcr-epi-page .epi-expo-story,
.mwcr-epi-page .epi-expo-story > .epi-expo-visual{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  align-self:stretch!important;
}
@media(max-width:980px){
  .mwcr-epi-page .epi-expo-header{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .mwcr-epi-page .epi-expo-header > .epi-expo-header-left,
  .mwcr-epi-page .epi-expo-header > .epi-expo-header-right,
  .mwcr-epi-page .epi-expo-header > .epi-lead{
    grid-column:1 / 2!important;
  }
}


/* Alineación con el ancho Boxed del header the theme
   No modifica la estructura de Elementor. La sección exterior sigue Full Width
   y el inner se amplía automáticamente para coincidir visualmente con el header.
   Estos selectores están al final para prevalecer sobre guardrails históricos. */
.mwcr-epi-page .epi-container{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:1360px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  --content-width:100%!important;
}
.mwcr-epi-page .epi-gene-media{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:1300px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  --content-width:100%!important;
}
/* Si Elementor genera .e-con-inner para Boxed, el wrapper ocupa el 100% del
   ancho anterior; no se aplica un segundo max-width. */
.mwcr-epi-page .epi-container.e-con-boxed > .e-con-inner,
.mwcr-epi-page .epi-gene-media.e-con-boxed > .e-con-inner{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
/* Gutters responsivos estándar para las páginas internas. */
@media (min-width:1025px){
  .mwcr-epi-page .epi-container,
  .mwcr-epi-page .epi-gene-media{
    padding-left:30px!important;
    padding-right:30px!important;
  }
}
@media (min-width:641px) and (max-width:1024px){
  .mwcr-epi-page .epi-container,
  .mwcr-epi-page .epi-gene-media{
    padding-left:24px!important;
    padding-right:24px!important;
  }
}
@media (max-width:640px){
  .mwcr-epi-page .epi-container,
  .mwcr-epi-page .epi-gene-media{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

/* v3.4.3 — Responsive hardening para Epigenetics
   Corrige grids que Elementor podía conservar en 2 columnas en viewport móvil
   y elimina constraints heredados que provocaban scroll horizontal. */
@media (max-width: 980px) {
  .mwcr-epi-page,
  .mwcr-epi-page .epi-section,
  .mwcr-epi-page .epi-page-title,
  .mwcr-epi-page .epi-container,
  .mwcr-epi-page .epi-gene-media,
  .mwcr-epi-page .epi-container > .e-con-inner,
  .mwcr-epi-page .epi-gene-media > .e-con-inner {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .mwcr-epi-page .epi-gene-copy,
  .mwcr-epi-page .epi-expo-header,
  .mwcr-epi-page .epi-functional-layout,
  .mwcr-epi-page .epi-functional-layout.e-con-boxed > .e-con-inner,
  .mwcr-epi-page .epi-direction-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: none !important;
    grid-auto-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .mwcr-epi-page .epi-gene-copy > *,
  .mwcr-epi-page .epi-expo-header > *,
  .mwcr-epi-page .epi-functional-layout > *,
  .mwcr-epi-page .epi-functional-layout.e-con-boxed > .e-con-inner > *,
  .mwcr-epi-page .epi-direction-header > * {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
  }

  .mwcr-epi-page .epi-expo-number {
    width: auto !important;
    max-width: none !important;
    grid-column: auto !important;
  }

  .mwcr-epi-page .epi-functional-layout,
  .mwcr-epi-page .epi-direction-header,
  .mwcr-epi-page .epi-expo-header {
    gap: 32px !important;
  }
}

@media (max-width: 640px) {
  .mwcr-epi-page {
    overflow-x: clip;
    font-size: 15px;
  }

  .mwcr-epi-page .epi-container,
  .mwcr-epi-page .epi-gene-media {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .mwcr-epi-page .epi-gene-copy,
  .mwcr-epi-page .epi-signals,
  .mwcr-epi-page .epi-uncover {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: none !important;
    grid-auto-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 14px !important;
  }

  .mwcr-epi-page .epi-gene-copy > *,
  .mwcr-epi-page .epi-signals > *,
  .mwcr-epi-page .epi-uncover > * {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
  }

  .mwcr-epi-page .epi-gene-card,
  .mwcr-epi-page .epi-instruction,
  .mwcr-epi-page .epi-signal,
  .mwcr-epi-page .epi-uncover-item {
    height: auto !important;
    min-height: 0 !important;
  }

  .mwcr-epi-page .epi-display .elementor-heading-title {
    font-size: clamp(2rem, 10vw, 2.55rem) !important;
    overflow-wrap: anywhere;
  }

  .mwcr-epi-page .epi-section-number .elementor-heading-title {
    font-size: clamp(4.5rem, 22vw, 6.5rem) !important;
  }

  .mwcr-epi-page .epi-expo-header > .epi-expo-number {
    top: -8px !important;
    right: 0 !important;
  }

  .mwcr-epi-page .epi-expo-copy {
    display: flex !important;
    flex-direction: column !important;
    gap: 28px !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .mwcr-epi-page .epi-expo-copy > *,
  .mwcr-epi-page .epi-expo-copy-col {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .mwcr-epi-page .epi-functional-photo {
    height: 320px !important;
    min-height: 320px !important;
  }

  .mwcr-epi-page .epi-direction-final {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 18px !important;
  }

  .mwcr-epi-page img,
  .mwcr-epi-page .elementor-widget-image img {
    max-width: 100% !important;
    height: auto;
  }
}
