/*
 * cjg-elementor-preview-v24.css
 *
 * Capa de integración con Elementor (editor + vista previa), SEPARADA del
 * CSS del front (style.css), tal como pide la especificación: si aparece un
 * problema exclusivo de Elementor se corrige aquí, nunca tocando el CSS del
 * front que ya funciona.
 *
 * Elementor envuelve el contenido existente (the_content) dentro de
 * .elementor-widget-text-editor / .elementor-widget-container y aplica un
 * reset propio a párrafos, listas e imágenes. Estas reglas sólo restauran,
 * dentro de ese contenedor, el comportamiento de grid/columnas/colores que
 * ya tiene el front, para que "Editar con Elementor" se vea igual que el
 * sitio público.
 */

.elementor-widget-text-editor .cjg-who-grid,
.elementor-widget-text-editor .qs-grid,
.elementor-text-editor .cjg-who-grid,
.elementor-text-editor .qs-grid{
	display:grid !important;
	grid-template-columns:1.1fr .9fr !important;
	gap:56px !important;
}
@media (max-width:860px){
	.elementor-widget-text-editor .cjg-who-grid,
	.elementor-widget-text-editor .qs-grid{
		grid-template-columns:1fr !important;
	}
}

.elementor-widget-text-editor .cat-grid,
.elementor-text-editor .cat-grid{
	display:grid !important;
	grid-template-columns:repeat(3,1fr) !important;
	gap:18px !important;
}
.elementor-widget-text-editor .steps-grid,
.elementor-text-editor .steps-grid{
	display:grid !important;
	grid-template-columns:repeat(3,1fr) !important;
	gap:22px !important;
}
.elementor-widget-text-editor .dir-grid,
.elementor-widget-text-editor .cjg-dir-grid,
.elementor-widget-text-editor .promo-scroller,
.elementor-text-editor .dir-grid,
.elementor-text-editor .cjg-dir-grid,
.elementor-text-editor .promo-scroller{
	display:grid !important;
	grid-template-columns:repeat(3,1fr) !important;
	gap:22px !important;
}

/* Elementor aplica max-width/centrado a <img> dentro del editor; conservamos
   el recorte real de las tarjetas y avatares del directorio. */
.elementor-editor-active .loc-avatar img,
.elementor-editor-active .promo-band img{
	max-width:none;
}

/* Evita que el reset tipográfico de Elementor sobrescriba los colores de
   marca (crema/negro/dorado) dentro del área de contenido. */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li{
	color:inherit;
}
.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3{
	font-family:var(--serif) !important;
	color:var(--ink) !important;
}

/* El editor fuerza box-sizing:border-box en algunos resets; lo confirmamos
   explícitamente para que las tarjetas no se deformen. */
.elementor-editor-active .cjg-container,
.elementor-editor-active .wrap{
	box-sizing:border-box;
	width:100%;
	max-width:var(--container);
}

/* Fondo crema real (no blanco) dentro de las secciones marcadas como tales,
   incluso cuando Elementor envuelve la sección en su propio <section>. */
.elementor-editor-active .cjg-ref-cream{
	background:var(--cream) !important;
}

/* Sin scroll horizontal dentro del iframe del editor/preview. */
html.elementor-editor-active, body.elementor-editor-active{
	overflow-x:hidden;
}

/* =========================================================
   19. Elementor native widgets — paridad visual exacta con el CSS del tema
   ========================================================= */
.elementor-page,
.elementor-editor-active .elementor,
.elementor-editor-preview .elementor{
  font-family:var(--sans);
  color:var(--ink);
}

/* Contenedores que sustituyen a <section> y .wrap del front. */
.elementor .cjg-container,
.elementor-editor-active .cjg-container{
  box-sizing:border-box;
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:20px;
}
.elementor .cjg-ref-section,
.elementor-editor-active .cjg-ref-section{
  width:100%;
  padding-top:76px !important;
  padding-bottom:76px !important;
}
.elementor .page-hero,
.elementor-editor-active .page-hero{
  width:100%;
  padding-top:60px !important;
  padding-bottom:60px !important;
  background:var(--ink); /*!important;*/
  color:#f3ead2 !important;
}
.elementor .cjg-ref-cream,
.elementor-editor-active .cjg-ref-cream{background:var(--cream) !important;}
.elementor .cjg-ref-surface,
.elementor-editor-active .cjg-ref-surface{background:var(--surface) !important;}

/* Tipografías: Fraunces para títulos, Work Sans para contenido. */
.elementor .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .elementor-widget-heading .elementor-heading-title{
  font-family:var(--serif) !important;
  font-weight:600 !important;
  color:var(--ink);
  margin:0 0 .4em;
}
.elementor .page-hero .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .page-hero .elementor-widget-heading .elementor-heading-title{
  color:#fbf6ea;
}
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor .elementor-widget-container,
.elementor .elementor-widget-text-editor p,
.elementor .elementor-widget-text-editor li,
.elementor-editor-active .elementor-widget-text-editor{
  font-family:var(--sans) !important;
}
.elementor .elementor-widget-text-editor p{color:var(--ink-soft);}
.elementor .section-head .elementor-widget-text-editor p,
.elementor .cjg-section-head .elementor-widget-text-editor p{color:var(--muted) !important; font-size:1rem;}
.elementor .page-hero .elementor-widget-text-editor p{color:#e6ddc9 !important;}

/* Kicker / eyebrow convertido a Text Editor. */
.elementor .eyebrow,
.elementor .cjg-kicker{
  font-family:var(--sans) !important;
  font-size:.72rem !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:var(--gold-deep) !important;
  font-weight:600 !important;
}
.elementor .page-hero .eyebrow{color:var(--gold-light) !important;}

/* Botones nativos de Elementor: el wrapper no recibe .btn/.btn-ghost para evitar el doble borde/padding del CSS global del tema. */
.elementor .elementor-widget-button.cjg-el-button .elementor-button,
.elementor-editor-active .elementor-widget-button.cjg-el-button .elementor-button{
  display:inline-flex !important; align-items:center; justify-content:center; gap:8px;
  width:auto !important; padding:13px 26px !important;
  font-family:var(--sans) !important; font-size:.86rem !important; font-weight:600 !important;
  letter-spacing:.03em !important; line-height:1.2 !important; text-decoration:none !important;
  cursor:pointer; border-radius:var(--radius) !important; border:1px solid transparent !important; box-shadow:none !important;
}
.elementor .elementor-widget-button.cjg-el-button-ghost .elementor-button{background:transparent !important; border-color:var(--ink) !important; color:var(--ink) !important;}
.elementor .elementor-widget-button.cjg-el-button-ghost .elementor-button:hover{border-color:var(--gold-deep) !important; color:var(--gold-deep) !important; background:transparent !important;}
.elementor .elementor-widget-button.cjg-el-button-gold .elementor-button{background:var(--gold) !important; color:#211a0d !important; border-color:var(--gold) !important;}
.elementor .elementor-widget-button.cjg-el-button-gold .elementor-button:hover{background:var(--gold-deep) !important; border-color:var(--gold-deep) !important; color:#fff !important;}
.elementor .elementor-widget-button.cjg-el-button-whatsapp .elementor-button{background:var(--whatsapp) !important; color:#fff !important; border-color:var(--whatsapp) !important;}
.elementor .elementor-widget-button.cjg-el-button-whatsapp .elementor-button:hover{filter:brightness(1.08);}
.elementor .elementor-widget-button.cjg-el-button .elementor-widget-container{width:auto !important;}
/* Ghost: transparente, sin fondo verde y sin doble borde del wrapper. */
.elementor .elementor-widget-button.cjg-el-button-ghost .elementor-button,
.elementor-editor-active .elementor-widget-button.cjg-el-button-ghost .elementor-button{
  background:transparent !important; background-color:transparent !important;
  color:var(--ink) !important; border:1px solid var(--ink) !important;
  box-shadow:none !important;
}
/* Las etiquetas de metal deben conservar el tamaño de su contenido. */
.elementor .metal-list > .elementor-element{
  flex-grow:0 !important; flex-shrink:0 !important; flex-basis:auto !important;
  width:auto !important; max-width:max-content !important;
}
.elementor .metal-list > .elementor-element .elementor-widget-container{
  width:auto !important; max-width:max-content !important;
}
.elementor-editor-active .metal-list > .elementor-element{align-self:flex-start !important;}

/* Grids: los contenedores hijos deben ocupar la celda completa. */
.elementor .cjg-who-grid > .elementor-element,
.elementor .qs-grid > .elementor-element,
.elementor .cat-grid > .elementor-element,
.elementor .steps-grid > .elementor-element,
.elementor .pilares-grid > .elementor-element,
.elementor .calendario-grid > .elementor-element,
.elementor .faq-list > .elementor-element,
.elementor .contact-grid > .elementor-element{
  width:auto !important;
  max-width:100%;
  min-width:0;
}
.elementor .cjg-who-grid,
.elementor .qs-grid{
  display:grid !important;
  grid-template-columns:1.1fr .9fr !important;
  gap:56px !important;
}
.elementor .cat-grid{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:18px !important;
}
.elementor .steps-grid{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:22px !important;
}
.elementor .pilares-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:18px !important;
}
.elementor .calendario-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:16px !important;
}
.elementor .faq-list{
  display:grid !important;
  gap:14px !important;
}
.elementor .contact-grid{
  display:grid !important;
  grid-template-columns:1.1fr .9fr !important;
  gap:48px !important;
}

/* Tarjetas. */
.elementor .cjg-find-card,
.elementor .qs-panel,
.elementor .cat-card,
.elementor .pilar-card,
.elementor .temporada-card,
.elementor .faq-item,
.elementor .info-panel{
  box-sizing:border-box;
  min-width:0;
}
.elementor .cjg-find-card,
.elementor .qs-panel{background:var(--surface) !important; border:1px solid var(--line) !important; padding:28px !important;}
.elementor .cat-card{border:1px solid var(--line) !important; background:var(--surface) !important; padding:22px !important;}
.elementor .cat-card .elementor-widget-heading .elementor-heading-title{font-size:1.05rem !important; margin-bottom:8px !important;}
.elementor .cat-card .elementor-widget-text-editor p{color:var(--muted) !important; font-size:.9rem !important; margin:0 0 14px !important;}
.elementor .pilar-card{border:1px solid var(--line) !important; background:var(--cream) !important; padding:20px !important;}
.elementor .temporada-card{border:1px solid var(--line) !important; background:var(--cream) !important; padding:18px !important;}
.elementor .faq-item{border:1px solid var(--line) !important; background:var(--cream) !important; padding:18px 20px !important;}
.elementor .info-panel{background:var(--cream) !important; border:1px solid var(--line) !important; padding:28px !important;}

/* Metales, pasos y CTA. */
.elementor .metal-list{display:flex !important; flex-direction:row !important; flex-wrap:wrap !important; align-items:center !important; align-content:flex-start !important; gap:8px !important; width:100% !important;}
.elementor .metal-list > .elementor-element{flex:0 0 auto !important; width:auto !important; max-width:max-content !important; min-width:0 !important; align-self:flex-start !important;}
.elementor .metal-list > .elementor-element > .elementor-widget-container{width:auto !important; max-width:max-content !important;}
.elementor .metal-list .elementor-widget-text-editor{font-size:.78rem !important; border:1px solid var(--line); padding:6px 12px !important; border-radius:20px; color:var(--ink-soft) !important; display:inline-flex !important; width:auto !important; max-width:max-content !important; flex:0 0 auto !important; box-sizing:border-box !important;}
.elementor .step-card{padding:6px 0 !important; min-width:0;}
.elementor .step-num{font-family:var(--serif) !important; font-size:1.6rem !important; color:var(--gold) !important; display:block; margin-bottom:8px;}
.elementor .cta-band{background:var(--ink) !important; color:#f3ead2 !important; padding:40px !important;}
.elementor .cta-band .elementor-widget-heading .elementor-heading-title{color:#fbf6ea !important;}
.elementor .cta-band .elementor-widget-text-editor p{color:#e6ddc9 !important;}

/* Responsive parity with the supplied style. */
@media (max-width:960px){
  .elementor .pilares-grid{grid-template-columns:repeat(2,1fr) !important;}
  .elementor .calendario-grid{grid-template-columns:repeat(2,1fr) !important;}
  .elementor .contact-grid{grid-template-columns:1fr !important;}
  .elementor .cat-grid{grid-template-columns:repeat(2,1fr) !important;}
}
@media (max-width:860px){
  .elementor .cjg-who-grid,.elementor .qs-grid{grid-template-columns:1fr !important;}
  .elementor .steps-grid{grid-template-columns:1fr !important;}
}
@media (max-width:600px){
  .elementor .cat-grid,.elementor .pilares-grid,.elementor .calendario-grid{grid-template-columns:1fr !important;}
}

/* Paridad de Quiénes somos: tarjeta alineada arriba y botón sin wrapper visual. */
.elementor .cjg-who-grid > .cjg-find-card,.elementor .qs-grid > .cjg-find-card,.elementor .qs-grid > .qs-panel{min-width:0 !important; align-self:start !important;}
.elementor .cjg-who-copy > .elementor-widget-button,.elementor .qs-copy > .elementor-widget-button{width:auto !important; max-width:max-content !important; align-self:flex-start !important;}

/* =========================================================
   20. Correcciones de paridad visual V1.4
   ========================================================= */
/* El botón ghost sólo debe dibujar su propio borde; el wrapper de Elementor
   nunca debe recibir borde, fondo, padding ni sombra. */
.elementor .elementor-widget-button.cjg-el-button,
.elementor-editor-active .elementor-widget-button.cjg-el-button{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  box-shadow:none !important;
}
.elementor .elementor-widget-button.cjg-el-button .elementor-widget-container,
.elementor-editor-active .elementor-widget-button.cjg-el-button .elementor-widget-container{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  box-shadow:none !important;
  width:auto !important;
}
.elementor .elementor-widget-button.cjg-el-button-ghost .elementor-button,
.elementor-editor-active .elementor-widget-button.cjg-el-button-ghost .elementor-button{
  background:transparent !important;
  background-color:transparent !important;
  color:var(--ink) !important;
  border:1px solid var(--ink) !important;
  box-shadow:none !important;
}
/* Una sola tarjeta para "Lo que vas a encontrar". */
.elementor .cjg-find-card,
.elementor-editor-active .cjg-find-card{
  border:1px solid var(--line) !important;
  background:var(--surface) !important;
  box-shadow:none !important;
}

/* =========================================================
   CJG — Corrección exacta de controles nativos Elementor
   Basado directamente en los estilos del front:
   .btn / .btn-ghost / .metal-list / .metal-list span / .cat-grid / .cat-card
   ========================================================= */

/* El widget de botón NO debe tener ningún estilo visual propio.
   Todo el borde, color, padding y fondo pertenecen exclusivamente al
   <a class="elementor-button"> que renderiza Elementor. */
.elementor .elementor-widget-button.cjg-el-button,
.elementor-editor-active .elementor-widget-button.cjg-el-button,
.elementor-editor-preview .elementor-widget-button.cjg-el-button{
  width:max-content !important;
  max-width:max-content !important;
  flex:0 0 auto !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
}
.elementor .elementor-widget-button.cjg-el-button .elementor-widget-container,
.elementor-editor-active .elementor-widget-button.cjg-el-button .elementor-widget-container,
.elementor-editor-preview .elementor-widget-button.cjg-el-button .elementor-widget-container{
  width:max-content !important;
  max-width:max-content !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* .btn EXACTO del front */
.elementor .elementor-widget-button.cjg-el-button .elementor-button,
.elementor-editor-active .elementor-widget-button.cjg-el-button .elementor-button,
.elementor-editor-preview .elementor-widget-button.cjg-el-button .elementor-button{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  width:auto !important;
  min-width:0 !important;
  max-width:max-content !important;
  padding:13px 26px !important;
  font-size:.86rem !important;
  line-height:normal !important;
  letter-spacing:.03em !important;
  text-decoration:none !important;
  cursor:pointer !important;
  border-radius:var(--radius) !important;
  border:1px solid transparent !important;
  font-family:var(--sans) !important;
  font-weight:600 !important;
  box-sizing:border-box !important;
  box-shadow:none !important;
}

/* .btn-ghost EXACTO del front: transparente, negro, un solo borde */
.elementor .elementor-widget-button.cjg-el-button-ghost .elementor-button,
.elementor-editor-active .elementor-widget-button.cjg-el-button-ghost .elementor-button,
.elementor-editor-preview .elementor-widget-button.cjg-el-button-ghost .elementor-button{
  background:transparent !important;
  background-color:transparent !important;
  border:1px solid var(--ink) !important;
  border-color:var(--ink) !important;
  color:var(--ink) !important;
  box-shadow:none !important;
}
.elementor .elementor-widget-button.cjg-el-button-ghost .elementor-button:hover,
.elementor-editor-active .elementor-widget-button.cjg-el-button-ghost .elementor-button:hover,
.elementor-editor-preview .elementor-widget-button.cjg-el-button-ghost .elementor-button:hover{
  background:transparent !important;
  background-color:transparent !important;
  border-color:var(--gold-deep) !important;
  color:var(--gold-deep) !important;
}

/* .cat-grid EXACTO del front */
.elementor .cat-grid,
.elementor-editor-active .cat-grid,
.elementor-editor-preview .cat-grid{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:18px !important;
  width:100% !important;
  min-width:0 !important;
}
@media (max-width:900px){
  .elementor .cat-grid,
  .elementor-editor-active .cat-grid,
  .elementor-editor-preview .cat-grid{
    grid-template-columns:repeat(2,1fr) !important;
  }
}
@media (max-width:600px){
  .elementor .cat-grid,
  .elementor-editor-active .cat-grid,
  .elementor-editor-preview .cat-grid{
    grid-template-columns:1fr !important;
  }
}

/* .cat-card EXACTO del front: un solo borde y un solo fondo. */
.elementor .cat-grid > .elementor-element.cat-card,
.elementor-editor-active .cat-grid > .elementor-element.cat-card,
.elementor-editor-preview .cat-grid > .elementor-element.cat-card{
  width:auto !important;
  max-width:100% !important;
  min-width:0 !important;
  flex:0 0 auto !important;
  border:1px solid var(--line) !important;
  background:var(--surface) !important;
  padding:22px !important;
  box-sizing:border-box !important;
  box-shadow:none !important;
  border-radius:0 !important;
}
.elementor .cat-card .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .cat-card .elementor-widget-heading .elementor-heading-title{
  font-size:1.05rem !important;
  margin-bottom:8px !important;
}
.elementor .cat-card .elementor-widget-text-editor p,
.elementor-editor-active .cat-card .elementor-widget-text-editor p{
  color:var(--muted) !important;
  font-size:.9rem !important;
  margin:0 0 14px !important;
}

/* =========================================================
   21. CJG — PARIDAD DEL EDITOR CON CONTENEDORES NATIVOS
   La estructura actual de Elementor usa Containers reales. Estas reglas
   sustituyen los antiguos selectores que dependían de Text Editor/HTML.
   No modifican style.css ni el front-end.
   ========================================================= */
.elementor .wrap,
.elementor-editor-active .wrap,
.elementor-editor-preview .wrap,
.elementor .cjg-container,
.elementor-editor-active .cjg-container,
.elementor-editor-preview .cjg-container{
  width:100% !important;
  max-width:var(--container) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:20px !important;
  padding-right:20px !important;
  box-sizing:border-box !important;
}

/* Estructura general de secciones */
.elementor .cjg-ref-section,
.elementor-editor-active .cjg-ref-section,
.elementor-editor-preview .cjg-ref-section{
  width:100% !important;
  padding-top:76px !important;
  padding-bottom:76px !important;
  box-sizing:border-box !important;
}
.elementor .cjg-ref-cream,
.elementor-editor-active .cjg-ref-cream,
.elementor-editor-preview .cjg-ref-cream{background:var(--cream) !important;}
.elementor .cjg-ref-surface,
.elementor-editor-active .cjg-ref-surface,
.elementor-editor-preview .cjg-ref-surface{background:var(--surface) !important;}
.elementor .page-hero,
.elementor-editor-active .page-hero,
.elementor-editor-preview .page-hero{
  width:100% !important;
  min-height:0 !important;
  padding-top:60px !important;
  padding-bottom:60px !important;
  background:var(--ink); /*!important;*/
  color:#f3ead2 !important;
  box-sizing:border-box !important;
}
.elementor .page-hero > .wrap,
.elementor-editor-active .page-hero > .wrap,
.elementor-editor-preview .page-hero > .wrap{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* Títulos y textos */
.elementor .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .elementor-widget-heading .elementor-heading-title,
.elementor-editor-preview .elementor-widget-heading .elementor-heading-title{
  font-family:var(--serif) !important;
  font-weight:600 !important;
  color:var(--ink);
  margin:0 0 .4em !important;
}
.elementor .page-hero .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .page-hero .elementor-widget-heading .elementor-heading-title,
.elementor-editor-preview .page-hero .elementor-widget-heading .elementor-heading-title{
  color:#fbf6ea;
}
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor .elementor-widget-container,
.elementor-editor-active .elementor-widget-text-editor,
.elementor-editor-preview .elementor-widget-text-editor{
  font-family:var(--sans) !important;
  color:var(--ink) !important;
}
.elementor .elementor-widget-text-editor p,
.elementor-editor-active .elementor-widget-text-editor p,
.elementor-editor-preview .elementor-widget-text-editor p{color:var(--ink-soft);}
.elementor .page-hero .elementor-widget-text-editor p,
.elementor-editor-active .page-hero .elementor-widget-text-editor p,
.elementor-editor-preview .page-hero .elementor-widget-text-editor p{color:#e6ddc9 !important;}
.elementor .eyebrow,
.elementor-editor-active .eyebrow,
.elementor-editor-preview .eyebrow,
.elementor .cjg-kicker,
.elementor-editor-active .cjg-kicker,
.elementor-editor-preview .cjg-kicker{
  font-family:var(--sans) !important;
  font-size:.72rem !important;
  line-height:1.5 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:var(--gold-deep) !important;
  font-weight:600 !important;
}
.elementor .page-hero .eyebrow,
.elementor-editor-active .page-hero .eyebrow,
.elementor-editor-preview .page-hero .eyebrow{color:var(--gold-light) !important;}

/* Encabezados de sección */
.elementor .section-head,
.elementor-editor-active .section-head,
.elementor-editor-preview .section-head,
.elementor .cjg-section-head,
.elementor-editor-active .cjg-section-head,
.elementor-editor-preview .cjg-section-head{
  width:100%;
  /*max-width:640px !important;*/
  margin-left:auto;
  margin-right:auto;
  margin-bottom:44px;
}
.elementor .section-head .elementor-widget-text-editor p,
.elementor .cjg-section-head .elementor-widget-text-editor p,
.elementor-editor-active .section-head .elementor-widget-text-editor p,
.elementor-editor-active .cjg-section-head .elementor-widget-text-editor p{color:var(--muted) !important; font-size:1rem !important;}

/* Layouts que antes sólo se corregían dentro de Text Editor */
.elementor .cjg-who-grid,
.elementor-editor-active .cjg-who-grid,
.elementor-editor-preview .cjg-who-grid,
.elementor .qs-grid,
.elementor-editor-active .qs-grid,
.elementor-editor-preview .qs-grid{
  display:grid !important;
  grid-template-columns:1.1fr .9fr !important;
  gap:56px !important;
  width:100% !important;
  align-items:start !important;
}
.elementor .cat-grid,
.elementor-editor-active .cat-grid,
.elementor-editor-preview .cat-grid{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:18px !important;
  width:100% !important;
}
.elementor .steps-grid,
.elementor-editor-active .steps-grid,
.elementor-editor-preview .steps-grid{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:22px !important;
  width:100% !important;
}
.elementor .pilares-grid,
.elementor-editor-active .pilares-grid,
.elementor-editor-preview .pilares-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:18px !important;
  width:100% !important;
}
.elementor .calendario-grid,
.elementor-editor-active .calendario-grid,
.elementor-editor-preview .calendario-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:16px !important;
  width:100% !important;
}
.elementor .faq-list,
.elementor-editor-active .faq-list,
.elementor-editor-preview .faq-list{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  width:100% !important;
}
.elementor .contact-grid,
.elementor-editor-active .contact-grid,
.elementor-editor-preview .contact-grid{
  display:grid !important;
  grid-template-columns:1.1fr .9fr !important;
  gap:48px !important;
  width:100% !important;
}

/* Los hijos de los grids deben ocupar la celda y no recibir el ancho
   automático de Elementor que deformaba el editor. */
.elementor .cjg-who-grid > .elementor-element,
.elementor .qs-grid > .elementor-element,
.elementor .cat-grid > .elementor-element,
.elementor .steps-grid > .elementor-element,
.elementor .pilares-grid > .elementor-element,
.elementor .calendario-grid > .elementor-element,
.elementor .faq-list > .elementor-element,
.elementor .contact-grid > .elementor-element,
.elementor-editor-active .cjg-who-grid > .elementor-element,
.elementor-editor-active .qs-grid > .elementor-element,
.elementor-editor-active .cat-grid > .elementor-element,
.elementor-editor-active .steps-grid > .elementor-element,
.elementor-editor-active .pilares-grid > .elementor-element,
.elementor-editor-active .calendario-grid > .elementor-element,
.elementor-editor-active .faq-list > .elementor-element,
.elementor-editor-active .contact-grid > .elementor-element{
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Tarjetas */
.elementor .cjg-find-card,
.elementor-editor-active .cjg-find-card,
.elementor .qs-panel,
.elementor-editor-active .qs-panel{
  background:var(--surface) !important;
  border:1px solid var(--line) !important;
  padding:28px !important;
  box-sizing:border-box !important;
}
.elementor .cat-card,
.elementor-editor-active .cat-card,
.elementor-editor-preview .cat-card{
  background:var(--surface) !important;
  border:1px solid var(--line) !important;
  padding:22px !important;
  box-sizing:border-box !important;
}
.elementor .cat-card .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .cat-card .elementor-widget-heading .elementor-heading-title{font-size:1.05rem !important; margin-bottom:8px !important;}
.elementor .cat-card .elementor-widget-text-editor p,
.elementor-editor-active .cat-card .elementor-widget-text-editor p{color:var(--muted) !important; font-size:.9rem !important; margin:0 0 14px !important;}
.elementor .pilar-card,.elementor-editor-active .pilar-card{background:var(--cream) !important; border:1px solid var(--line) !important; padding:20px !important; box-sizing:border-box !important;}
.elementor .temporada-card,.elementor-editor-active .temporada-card{background:var(--cream) !important; border:1px solid var(--line) !important; padding:18px !important; box-sizing:border-box !important;}
.elementor .faq-item,.elementor-editor-active .faq-item{background:var(--cream) !important; border:1px solid var(--line) !important; padding:18px 20px !important; box-sizing:border-box !important;}
.elementor .info-panel,.elementor-editor-active .info-panel{background:var(--cream) !important; border:1px solid var(--line) !important; padding:28px !important; box-sizing:border-box !important;}

/* Pasos */
.elementor .step-card,.elementor-editor-active .step-card{padding:6px 0 !important; min-width:0 !important;}
.elementor .step-num,.elementor-editor-active .step-num{font-family:var(--serif) !important; font-size:1.6rem !important; color:var(--gold) !important; display:block !important; margin-bottom:8px !important;}

/* CTA */
.elementor .cta-band,.elementor-editor-active .cta-band{background:var(--ink) !important; color:#f3ead2 !important; padding:40px !important;}
.elementor .cta-band .elementor-widget-heading .elementor-heading-title,.elementor-editor-active .cta-band .elementor-widget-heading .elementor-heading-title{color:#fbf6ea !important;}
.elementor .cta-band .elementor-widget-text-editor p,.elementor-editor-active .cta-band .elementor-widget-text-editor p{color:#e6ddc9 !important;}

/* Contacto: la estructura de .info-row en Elementor es Container, no HTML. */
.elementor .info-panel .info-row,
.elementor-editor-active .info-panel .info-row{
  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start !important;
  gap:14px !important;
  width:100% !important;
}
.elementor .info-panel .info-row > .elementor-element,
.elementor-editor-active .info-panel .info-row > .elementor-element{width:auto !important; flex:1 1 auto !important; min-width:0 !important;}
.elementor .info-panel .info-row .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .info-panel .info-row .elementor-widget-heading .elementor-heading-title{font-family:var(--sans) !important; font-size:.92rem !important; font-weight:600 !important; margin:0 0 4px !important;}
.elementor .info-panel .info-row .elementor-widget-text-editor p,
.elementor-editor-active .info-panel .info-row .elementor-widget-text-editor p{margin:0 !important; font-size:.86rem !important; color:var(--muted) !important;}
.elementor .cjg-map iframe,.elementor-editor-active .cjg-map iframe{width:100% !important; height:220px !important; border:1px solid var(--line) !important;}

/* Metal list: estructura definitiva = padre metal-list + Text Editor sin clase
   + contenido <span>. No usar metal-pill. */
.elementor .metal-list,
.elementor-editor-active .metal-list,
.elementor-editor-preview .metal-list{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:flex-start !important;
  align-content:flex-start !important;
  gap:8px !important;
  width:100% !important;
}
.elementor .metal-list > .elementor-element,
.elementor-editor-active .metal-list > .elementor-element,
.elementor-editor-preview .metal-list > .elementor-element{
  flex:0 0 auto !important;
  width:auto !important;
  max-width:max-content !important;
  min-width:0 !important;
  align-self:flex-start !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
}
.elementor .metal-list > .elementor-element .elementor-widget-container,
.elementor-editor-active .metal-list > .elementor-element .elementor-widget-container,
.elementor-editor-preview .metal-list > .elementor-element .elementor-widget-container{
  width:auto !important;
  max-width:max-content !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
}
.elementor .metal-list > .elementor-element .elementor-widget-text-editor,
.elementor-editor-active .metal-list > .elementor-element .elementor-widget-text-editor,
.elementor-editor-preview .metal-list > .elementor-element .elementor-widget-text-editor{
  width:auto !important;
  max-width:max-content !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
}
.elementor .metal-list > .elementor-element .elementor-widget-container > span,
.elementor-editor-active .metal-list > .elementor-element .elementor-widget-container > span,
.elementor-editor-preview .metal-list > .elementor-element .elementor-widget-container > span{
  display:inline-block !important;
  font-size:.78rem !important;
  line-height:1.2 !important;
  font-family:var(--sans) !important;
  border:1px solid var(--line) !important;
  padding:6px 12px !important;
  border-radius:20px !important;
  color:var(--ink-soft) !important;
  white-space:nowrap !important;
  box-sizing:border-box !important;
}

/* Directorio/promociones/eventos dinámicos */
.elementor .promo-scroller,.elementor-editor-active .promo-scroller{display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:22px !important;}
.elementor .promo-card,.elementor-editor-active .promo-card{border:1px solid var(--line) !important; background:var(--surface) !important; overflow:hidden !important; min-width:0 !important;}
.elementor .promo-band,.elementor-editor-active .promo-band{height:120px !important; background:linear-gradient(135deg,var(--ink),#2c2418) !important; position:relative !important;}
.elementor .promo-band img,.elementor-editor-active .promo-band img{width:100% !important; height:100% !important; object-fit:cover !important; max-width:none !important;}
.elementor .promo-body,.elementor-editor-active .promo-body{padding:20px !important;}

/* Responsive */
@media (max-width:960px){
  .elementor .cat-grid,.elementor-editor-active .cat-grid{grid-template-columns:repeat(2,1fr) !important;}
  .elementor .pilares-grid,.elementor-editor-active .pilares-grid{grid-template-columns:repeat(2,1fr) !important;}
  .elementor .calendario-grid,.elementor-editor-active .calendario-grid{grid-template-columns:repeat(2,1fr) !important;}
  .elementor .contact-grid,.elementor-editor-active .contact-grid{grid-template-columns:1fr !important;}
}
@media (max-width:860px){
  .elementor .cjg-who-grid,.elementor-editor-active .cjg-who-grid,
  .elementor .qs-grid,.elementor-editor-active .qs-grid{grid-template-columns:1fr !important;}
  .elementor .steps-grid,.elementor-editor-active .steps-grid{grid-template-columns:1fr !important;}
}
@media (max-width:600px){
  .elementor .cat-grid,.elementor-editor-active .cat-grid,
  .elementor .pilares-grid,.elementor-editor-active .pilares-grid,
  .elementor .calendario-grid,.elementor-editor-active .calendario-grid,
  .elementor .promo-scroller,.elementor-editor-active .promo-scroller{grid-template-columns:1fr !important;}
}
