/*
 * Puente entre el marcado de Elementor y el diseño de ANDO.
 * Los contenedores y widgets convertidos (clase .ando-x) deben comportarse
 * como los elementos HTML originales: sin paddings, gaps ni anchos propios de Elementor.
 */
.elementor .elementor-element.e-con.ando-x {
	--display: block;
	--padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
	--margin-top: 0; --margin-right: 0; --margin-bottom: 0; --margin-left: 0;
	--gap: normal; --row-gap: normal; --column-gap: normal;
	--flex-direction: row; --flex-wrap: nowrap; --justify-content: normal; --align-items: normal; --align-content: normal;
	--flex-grow: 0; --flex-shrink: 1; --flex-basis: auto;
	--width: auto; --height: auto; --min-height: 0; --position: static; --z-index: auto; --overflow: visible;
	--border-radius: 0; --text-align: inherit;
	min-width: auto;
}

.ando-x > .elementor-widget-container,
.elementor-widget.ando-w,
.elementor-widget.ando-w > .elementor-widget-container {
	display: contents;
}

/* Los wrappers de plantilla no deben crear contexto de apilamiento (la nav es fija). */
.elementor-location-header,
.elementor-location-footer,
[data-elementor-type="wp-page"],
[data-elementor-type="single-post"],
[data-elementor-type="archive"],
[data-elementor-type="single-page"] {
	position: static !important;
	z-index: auto !important;
}

/* En el editor de Elementor todo se muestra sin animación de entrada. */
.elementor-editor-active .reveal { opacity: 1 !important; transform: none !important; }

/* === Formularios de contacto (Elementor Pro Form) ===
 * El aspecto de campos, etiquetas y botón se genera desde el CSS de cada página
 * (ver sección "Generado" al final de cada hoja). Aquí sólo va lo estructural. */
.ando-form .elementor-field-label { text-align: left; padding-bottom: 0; }
.ando-form .elementor-mark-required .elementor-field-label::after { color: var(--danger); }
.ando-form .elementor-field-textual { min-height: 0; line-height: normal; }
.ando-form .elementor-select-wrapper::before,
.ando-form .select-caret-down-wrapper { display: none; }
.ando-form .elementor-field-textual,
.ando-form .elementor-select-wrapper select { font-weight: 400; }
.ando-form .elementor-field-textual::placeholder { color: var(--text-muted); opacity: 0.8; font-weight: 400; }
.ando-form .elementor-field-type-acceptance label { line-height: 1.7; }
.ando-form .elementor-field-type-acceptance label a { color: var(--teal-bright); font-weight: 600; }
.ando-form .elementor-field-type-acceptance input { width: 18px; height: 18px; }
.ando-form .elementor-field-type-submit .elementor-button { width: 100%; justify-content: center; }
.ando-form .elementor-message { margin-top: 16px; padding: 14px 20px; border-radius: 10px; font-size: 0.88rem; text-align: left; }
.ando-form .elementor-message::before { display: none; }
.ando-form .elementor-message.elementor-message-danger { background: rgba(248, 113, 113, 0.1); border: 1px solid rgba(248, 113, 113, 0.3); color: var(--danger); }
.ando-form .elementor-message.elementor-message-success { background: rgba(52, 211, 153, 0.1); border: 1px solid rgba(52, 211, 153, 0.3); color: var(--success); }
.ando-form .elementor-error .elementor-field-textual { border-color: var(--danger) !important; }
.ando-form .elementor-field-group .elementor-help-inline { color: var(--danger); font-size: 0.8rem; }

/* Menú principal en escritorios angostos: compacta el espaciado para que quepa en una línea. */
@media (min-width: 901px) and (max-width: 1140px) {
	.nav-links { gap: 18px; }
	.nav-links a { font-size: 0.76rem; letter-spacing: 0.05em; }
	.nav-links .nav-cta { padding: 9px 18px; }
}
@media (min-width: 901px) and (max-width: 1000px) {
	.nav-links { gap: 12px; }
	.nav-links a { font-size: 0.7rem; letter-spacing: 0.03em; }
	.nav-links .nav-cta { padding: 8px 14px; }
}

/* Menú principal: sección actual resaltada. */
.nav-links a.is-current:not(.nav-cta) { color: var(--teal-bright); }
.nav-links .dropdown-menu a.is-current { background: rgba(27, 164, 196, 0.08); }

/* Evita el desbordamiento horizontal sin crear un contenedor de scroll (permite position: sticky). */
html, body { overflow-x: clip; }
