/* ==========================================================
   QUEKO — elementor.css
   Compatibilidad: los widgets nativos de Elementor se ven
   igual que el HTML del sitio estático.
   ========================================================== */

/* ---------- Contenedores ----------
   Sin padding, gap ni flex propios de Elementor: el layout lo dan
   las clases de Queko (hero-grid, servicios-grid, caso, etc.). */
body .elementor .e-con.e-con.e-con {
  --display: block;
  --padding-top: 0;
  --padding-right: 0;
  --padding-bottom: 0;
  --padding-left: 0;
  --margin-top: 0;
  --margin-bottom: 0;
  --gap: 0;
  --row-gap: 0;
  --column-gap: 0;
  --min-height: auto;
  --width: 100%;
  --container-widget-width: auto;
  --container-widget-flex-grow: 0;
  --border-radius: 0;
}
.elementor .e-con > .elementor-widget { max-width: 100%; }
.elementor .elementor-widget:not(:last-child) { margin-block-end: 0; }
.elementor a.e-con { color: inherit; }

/* ---------- Textos (widget "Editor de texto") ----------
   En el sitio publicado, la envoltura de Elementor "desaparece"
   y el título, párrafo o botón se acomoda como en el diseño.
   En el editor se deja la envoltura para poder seleccionarlo. */
body:not(.elementor-editor-active) .elementor-widget-text-editor,
body:not(.elementor-editor-active) .elementor-widget-text-editor > .elementor-widget-container,
body:not(.elementor-editor-active) .elementor-widget-html,
body:not(.elementor-editor-active) .elementor-widget-html > .elementor-widget-container {
  display: contents;
}
/* Si el editor envolvió un botón o etiqueta en <p>, ese <p> tampoco cuenta */
body:not(.elementor-editor-active) .elementor-widget-text-editor > p:not([class]):has(> [class]:only-child),
body:not(.elementor-editor-active) .elementor-widget-text-editor > .elementor-widget-container > p:not([class]):has(> [class]:only-child) {
  display: contents;
}
.elementor-widget-text-editor { color: inherit; }

/* ---------- Imágenes (widget "Imagen") ---------- */
.elementor .elementor-widget-image { text-align: initial; }
.elementor .elementor-widget-image > .elementor-widget-container { height: 100%; }
.elementor .elementor-widget-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
}
.elementor .elementor-widget-image.foto img { border-radius: var(--radio-l); }
.elementor .mosaico img { border-radius: var(--radio-l); }
/* Logos: tamaño natural, sin recorte */
.elementor .logo-cliente .elementor-widget-image img,
.elementor .caso-logo .elementor-widget-image img {
  width: auto;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
}
.elementor .logo-cliente .elementor-widget-image img { max-height: 72px; }
.elementor .caso-logo .elementor-widget-image img { max-height: 140px; }
/* SVG sin tamaño propio: ocupan el alto máximo, proporcionales */
.elementor .logo-cliente .elementor-widget-image img[src$=".svg"] { width: 100%; height: 72px; }
.elementor .caso-logo .elementor-widget-image img[src$=".svg"] { width: 100%; height: 140px; }

/* ---------- Formulario de Elementor Pro (estilo Queko) ---------- */
.queko-form .elementor-form-fields-wrapper {
  display: grid;
  gap: var(--esp-4);
  margin: 0 !important;
}
.queko-form .elementor-field-group {
  display: grid;
  gap: var(--esp-1);
  width: 100% !important;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}
.queko-form .elementor-field-label {
  padding: 0 !important;
  font-size: var(--fs-small);
  font-weight: var(--peso-semi);
  color: var(--texto);
}
.queko-form .elementor-field-group .elementor-field,
.queko-form .elementor-field-group select,
.queko-form .elementor-field-group textarea {
  width: 100%;
  min-height: 48px;
  padding: var(--esp-3) var(--esp-4);
  border: 1.5px solid var(--borde-fuerte);
  border-radius: var(--radio);
  background: var(--blanco);
  font: inherit;
  font-size: var(--fs-body);
  line-height: 1.4;
  color: var(--texto);
  box-shadow: none;
}
.queko-form .elementor-field-group textarea { min-height: 110px; resize: vertical; }
.queko-form .elementor-field-group .elementor-field:focus,
.queko-form .elementor-field-group select:focus,
.queko-form .elementor-field-group textarea:focus { outline: none; border-color: var(--azul); }
.queko-form .elementor-select-wrapper { width: 100%; }
.queko-form .elementor-field-type-submit { margin-top: var(--esp-1) !important; }
.queko-form .elementor-form .elementor-button,
.queko-form .elementor-button.elementor-size-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: 0 var(--esp-5);
  border: 0;
  border-radius: var(--radio);
  background: var(--azul);
  color: var(--texto-inverso);
  font: var(--peso-semi) var(--fs-body)/1 var(--font-base);
  cursor: pointer;
  transition: transform .15s ease;
}
.queko-form .elementor-form .elementor-button:hover { transform: translateY(-1px); color: var(--texto-inverso); background: var(--azul); }
.queko-form .elementor-message {
  margin-top: var(--esp-3);
  padding: var(--esp-3) var(--esp-4);
  border-radius: var(--radio);
  font-size: var(--fs-small);
}
.queko-form .elementor-message-success { background: rgba(18, 166, 107, 0.12); color: #0b6b45; }
.queko-form .elementor-message-danger,
.queko-form .elementor-error { color: #a32020; }
.queko-form .elementor-message::before { display: none; }

/* ---------- WPForms (estilo Queko) ---------- */
.formulario .wpforms-container { margin: 0 !important; max-width: none; }
.formulario .wpforms-container .wpforms-form .wpforms-field-container { display: grid; gap: var(--esp-4); }
.formulario .wpforms-container .wpforms-form .wpforms-field {
  display: grid;
  gap: var(--esp-1);
  padding: 0 !important;
  margin: 0;
  overflow: visible;
}
.formulario .wpforms-container .wpforms-form .wpforms-field-label {
  margin: 0;
  padding: 0;
  font-family: var(--font-base);
  font-size: var(--fs-small);
  font-weight: var(--peso-semi);
  line-height: 1.3;
  color: var(--texto);
}
.formulario .wpforms-container .wpforms-form .wpforms-required-label { display: none; }
.formulario .wpforms-container .wpforms-form input[type="text"],
.formulario .wpforms-container .wpforms-form input[type="email"],
.formulario .wpforms-container .wpforms-form input[type="tel"],
.formulario .wpforms-container .wpforms-form select,
.formulario .wpforms-container .wpforms-form textarea {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 48px;
  height: auto;
  padding: var(--esp-3) var(--esp-4);
  border: 1.5px solid var(--borde-fuerte);
  border-radius: var(--radio);
  background-color: var(--blanco);
  font-family: var(--font-base);
  font-size: var(--fs-body);
  line-height: 1.4;
  color: var(--texto);
  box-shadow: none;
}
.formulario .wpforms-container .wpforms-form textarea { min-height: 110px; resize: vertical; }
.formulario .wpforms-container .wpforms-form :is(input, select, textarea):focus {
  outline: none;
  border-color: var(--azul);
  box-shadow: none;
}
.formulario .wpforms-container .wpforms-form ::placeholder { color: var(--texto-suave); }
.formulario .wpforms-container .wpforms-form .wpforms-submit-container {
  padding: var(--esp-4) 0 0 !important;
  margin: 0;
}
.formulario .wpforms-container .wpforms-form button.wpforms-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: 0 var(--esp-5);
  border: 0;
  border-radius: var(--radio);
  background: var(--azul);
  color: var(--texto-inverso);
  font: var(--peso-semi) var(--fs-body)/1 var(--font-base);
  cursor: pointer;
  transition: transform .15s ease;
}
.formulario .wpforms-container .wpforms-form button.wpforms-submit:hover {
  background: var(--azul);
  transform: translateY(-1px);
}
.formulario .wpforms-container .wpforms-form label.wpforms-error,
.formulario .wpforms-container .wpforms-form em.wpforms-error {
  margin: 2px 0 0;
  font-size: var(--fs-small);
  color: #a32020;
}
.formulario .wpforms-container .wpforms-form :is(input, select, textarea).wpforms-error { border-color: #d63031; }
.formulario .wpforms-confirmation-container-full,
.formulario div[submit-success] > .wpforms-confirmation-container-full {
  margin: 0;
  padding: var(--esp-4);
  border: 0;
  border-radius: var(--radio);
  background: rgba(18, 166, 107, 0.12);
  color: #0b6b45;
  font-size: var(--fs-small);
}
.formulario .wpforms-confirmation-container-full p { margin: 0; }

/* ---------- Preguntas frecuentes (Acordeón de Elementor) ---------- */
.faq .e-n-accordion { display: block; }
.faq .e-n-accordion-item { border-top: 1px solid var(--borde-fuerte); margin: 0 !important; }
.faq .e-n-accordion-item:last-child { border-bottom: 1px solid var(--borde-fuerte); }
.faq .e-n-accordion-item-title {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: var(--esp-4);
  padding: var(--esp-5) 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  cursor: pointer;
  list-style: none;
}
.faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.faq .e-n-accordion-item-title-header { flex: 1; }
.faq .e-n-accordion-item-title-text {
  margin: 0;
  font-family: var(--font-base);
  font-size: 1.125rem;
  font-weight: var(--peso-semi);
  line-height: 1.35;
  color: var(--texto);
}
.faq .e-n-accordion-item-title::after {
  content: "+";
  flex: none;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radio-pill);
  background: var(--gris-fondo);
  color: var(--azul);
  font: var(--peso-semi) 1.25rem/1 var(--font-base);
  transition: transform .2s ease, background-color .2s ease;
}
.faq .e-n-accordion-item[open] > .e-n-accordion-item-title::after { transform: rotate(45deg); background: var(--azul); color: var(--texto-inverso); }
.faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--azul); }
.faq .e-n-accordion-item > .e-con {
  padding: 0 3rem var(--esp-5) 0 !important;
  border: 0 !important;
  background: none !important;
}
.faq .e-n-accordion-item > .e-con p { max-width: 42em; color: var(--texto-2); }
.faq .e-n-accordion-item > .e-con a { color: var(--azul); font-weight: var(--peso-semi); }

/* ---------- Aviso de privacidad ---------- */
.aviso-seccion { padding-top: 0; }
.aviso-legal { max-width: 46em; }
.aviso-legal h2 { margin: var(--esp-7) 0 var(--esp-3); }
.aviso-legal h2:first-child { margin-top: 0; }
.aviso-legal p, .aviso-legal ul { margin: 0 0 var(--esp-4); }
.aviso-legal ul { padding-left: 1.25em; }
.aviso-legal li { margin-bottom: var(--esp-2); }
.aviso-legal a { color: var(--azul); text-decoration: underline; }
.footer-legal a { text-decoration: underline; }

/* ---------- Otros ---------- */
.queko-ld { display: none !important; }

body { margin: 0; }
