/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Jan 25 2026 | 19:49:38 */
/* ===============================
   VARIABLES GLOBALES DE PADDING
   =============================== */
:root {
  --global-padding-desktop: 5vw;
  --global-padding-tablet: 4vw;
  --global-padding-mobile: 20px;
}

/* ==================================================
   TYPOGRAPHY SPACING SYSTEM (REM) + CSS VARIABLES
   Elementor – Text Editor
   ================================================== */

/* Variables (ajusta aquí y afecta a todo) */
.elementor-widget-text-editor{
  --space-p: 1rem;            /* p -> p */
  --space-p-block: 2.5rem;    /* p -> bloque (cuando no es p ni lista) */
  --space-p-before-list: 1.6rem; /* p -> ul/ol (aire medio antes de lista) */

  --space-h2-after: 1rem;     /* margen inferior base h2 */
  --space-h2-after-block: 2rem; /* h2 cuando después NO hay p */

  --space-h3-after: 1rem;     /* margen inferior base h3 */
  --space-h3-after-block: 1.6rem; /* h3 cuando después NO hay p */

  --space-list-after: 2rem;   /* margen inferior de ul/ol */
  --space-li: 0.8rem;         /* separación entre li */

  --space-list-to-p: 1rem;    /* ul/ol -> p (margen superior del p) */
  --space-heading-to-list: 0.8rem; /* h2/h3 -> ul/ol (margen superior de la lista) */

  --space-nested-list: 0.4rem; /* listas anidadas */
}

/* ==================================================
   1. HEADINGS
   ================================================== */

/* Espacio base después de H2 */
.elementor-widget-text-editor h2 {
  margin-bottom: var(--space-h2-after);
}

/* Más espacio cuando después de H2 NO viene un párrafo */
.elementor-widget-text-editor h2:not(:last-child):not(:has(+ p)) {
  margin-bottom: var(--space-h2-after-block);
}

/* Espacio base después de H3 */
.elementor-widget-text-editor h3 {
  margin-bottom: var(--space-h3-after);
}

/* Más espacio cuando después de H3 NO viene un párrafo */
.elementor-widget-text-editor h3:not(:last-child):not(:has(+ p)) {
  margin-bottom: var(--space-h3-after-block);
}

/* ==================================================
   2. PÁRRAFOS
   ================================================== */

/* Párrafo normal */
.elementor-widget-text-editor p {
  margin-bottom: var(--space-p);
}

/* Párrafo que NO va seguido de otro p (pero tampoco de lista) */
.elementor-widget-text-editor p:not(:last-child):not(:has(+ p)):not(:has(+ ul)):not(:has(+ ol)) {
  margin-bottom: var(--space-p-block);
}

/* Párrafo antes de lista → aire medio */
.elementor-widget-text-editor p:has(+ ul),
.elementor-widget-text-editor p:has(+ ol) {
  margin-bottom: var(--space-p-before-list);
}

/* ==================================================
   3. LISTAS
   ================================================== */

/* Espacio entre ítems */
.elementor-widget-text-editor ul li,
.elementor-widget-text-editor ol li {
  margin-bottom: var(--space-li);
}

.elementor-widget-text-editor ul li:last-child,
.elementor-widget-text-editor ol li:last-child {
  margin-bottom: 0;
}

/* Margen inferior de listas */
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol {
  margin-bottom: var(--space-list-after);
}

/* Evitar margen extra si la lista es el último elemento */
.elementor-widget-text-editor ul:last-child,
.elementor-widget-text-editor ol:last-child {
  margin-bottom: 0;
}

/* ==================================================
   4. TRANSICIONES ENTRE ELEMENTOS
   ================================================== */

/* IMPORTANTÍSIMO: si un p va antes de una lista, no añadimos margin-top extra en la lista */
.elementor-widget-text-editor p + ul,
.elementor-widget-text-editor p + ol {
  margin-top: 0;
}

/* Lista → párrafo */
.elementor-widget-text-editor ul + p,
.elementor-widget-text-editor ol + p {
  margin-top: var(--space-list-to-p);
}

/* Heading → lista */
.elementor-widget-text-editor h2 + ul,
.elementor-widget-text-editor h2 + ol,
.elementor-widget-text-editor h3 + ul,
.elementor-widget-text-editor h3 + ol {
  margin-top: var(--space-heading-to-list);
}

/* ==================================================
   5. LISTAS ANIDADAS
   ================================================== */

.elementor-widget-text-editor ul ul,
.elementor-widget-text-editor ul ol,
.elementor-widget-text-editor ol ul,
.elementor-widget-text-editor ol ol {
  margin-top: var(--space-nested-list);
  margin-bottom: var(--space-nested-list);
}

/* ==================================================
   6. RESET SUAVE
   ================================================== */

.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol,
.elementor-widget-text-editor li {
  padding-top: 0;
  padding-bottom: 0;
}

/* ===============================
   PRIMER NIVEL DE CONTENEDORES PARENT
   =============================== */

/* Para e-con-boxed: aplicar padding al e-con-inner hijo directo de e-parent */
.elementor-element.e-con.e-parent.e-con-boxed > .e-con-inner {
  padding-left: var(--global-padding-desktop) !important;
  padding-right: var(--global-padding-desktop) !important;
}

/* Para e-con-full: aplicar padding al e-con-inner del primer child */
.elementor-element.e-con.e-parent.e-con-full > .e-child.e-con-boxed > .e-con-inner {
  padding-left: var(--global-padding-desktop) !important;
  padding-right: var(--global-padding-desktop) !important;
}

/* TABLET */
@media (max-width: 1024px) {
  .elementor-element.e-con.e-parent.e-con-boxed > .e-con-inner {
    padding-left: var(--global-padding-tablet) !important;
    padding-right: var(--global-padding-tablet) !important;
  }
  
  .elementor-element.e-con.e-parent.e-con-full > .e-child.e-con-boxed > .e-con-inner {
    padding-left: var(--global-padding-tablet) !important;
    padding-right: var(--global-padding-tablet) !important;
  }
}

/* MÓVIL */
@media (max-width: 767px) {
  .elementor-element.e-con.e-parent.e-con-boxed > .e-con-inner {
    padding-left: var(--global-padding-mobile) !important;
    padding-right: var(--global-padding-mobile) !important;
  }
  
  .elementor-element.e-con.e-parent.e-con-full > .e-child.e-con-boxed > .e-con-inner {
    padding-left: var(--global-padding-mobile) !important;
    padding-right: var(--global-padding-mobile) !important;
  }
}

/* ===============================
   FULL BLEED OPCIONAL POR CLASE
   =============================== */
/* TABLET */
@media (max-width: 1024px){
  .no-margins-tablet{
    margin-left: calc(var(--global-padding-tablet) * -1) !important;
    margin-right: calc(var(--global-padding-tablet) * -1) !important;
    width: calc(100% + (var(--global-padding-tablet) * 2)) !important;
    max-width: none !important;
  }
}

/* MÓVIL */
@media (max-width: 767px){
  .no-margins-mobile{
    margin-left: calc(var(--global-padding-mobile) * -1) !important;
    margin-right: calc(var(--global-padding-mobile) * -1) !important;
    width: calc(100% + (var(--global-padding-mobile) * 2)) !important;
    max-width: none !important;
  }
}

/* ===============================
   BOTONES
   =============================== */
.btn-light .elementor-button {
    border: 1px solid var(--e-global-color-a8eefc9);
    color: var(--e-global-color-a8eefc9);
}

.btn-light .elementor-button:hover {
    background: var(--e-global-color-a8eefc9);
    color: #fff;
}