/*
Theme Name: Hello Elementor Child
Theme URI: https://www.solucionweb.com/
Description: Tema hijo personalizado para Hello Elementor con login privado, reglas de acceso, botones flotantes configurables, WhatsApp y shortcodes básicos administrables.
Author: Solución Web
Author URI: https://www.solucionweb.com/
Template: hello-elementor
Version: 2.4.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: custom-login, translation-ready, elementor, child-theme
*/

/* Los estilos personalizados se cargan desde /assets/css/. */

/* ---------- Generales ---------- */

html, body{
	overflow-x: hidden;
}

/* span con texto amarillo */
.texto-amarillo{
	color: #F7AB08;
}

/* Ancho máximo */
.max-width-640{
	max-width: 640px !important;
}

.max-width-1280{
	max-width: 1280px !important;
}

/* Botón con texto e icono separado */
.btn-between > a > span{
	justify-content: space-between;
	align-items: center;
}

.btn-between > a > span > .elementor-button-icon > svg{
	width: 36px;
}

/* Párrafos */
.p-no-bottom p:last-child{
	margin-bottom: 0;
}

.p-no-bottom-all p{
	margin-bottom: 0;
}

/* Alineaciones con margin */
.margin-top-auto{
	margin-top: auto;
}

.margin-left-auto{
	margin-left: auto;
}

/* Powerby */
.powerby span{
	color: #fff;
}

/* Icono facebook */
.elementor-widget-social-icons > div > span:nth-child(1) > a, .elementor-widget-social-icons > div > span:nth-child(1) > a > svg
{
	width: auto !important;
	height: 0.98em !important;
}


/* Menú en dos columnas */
/*@media (min-width: 1025px){
	.menu-two-columns ul.menu,
	.menu-two-columns .elementor-nav-menu {
	  display: grid !important;
	  grid-template-columns: 1fr 1fr;
	  column-gap: 20px;
	  row-gap: 0px;
	  align-items: start;
	}

	.menu-two-columns ul.menu > li,
	.menu-two-columns .elementor-nav-menu > li {
	  width: 100%;
	  break-inside: avoid;
	}
}*/


/* Menú del footer en 3 columnas */
/*@media (min-width: 1025px) {

	.menu-two-columns .elementor-nav-menu--main {
		width: 100% !important;
	}

	.menu-two-columns .elementor-nav-menu {
		display: grid !important;
		grid-template-columns: repeat(3, max-content) !important;
		grid-template-rows: repeat(4, auto) !important;
		grid-auto-flow: column !important;
		column-gap: 60px !important;
		row-gap: 0 !important;
		width: 100% !important;
		margin: 0 0 20px 0 !important;
		padding: 0 !important;
	}

	.menu-two-columns .elementor-nav-menu > li {
		grid-area: auto !important;
		width: auto !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.menu-two-columns .elementor-nav-menu > li > a {
		display: block !important;
		width: auto !important;
		white-space: nowrap !important;
	}
}*/






/* Menú del footer: 2 + 2 + 3 elementos */
@media (min-width: 1025px) {

	.menu-two-columns .elementor-nav-menu--main {
		width: 100% !important;
	}

	.menu-two-columns .elementor-nav-menu {
		display: grid !important;
		grid-template-columns: repeat(3, max-content) !important;
		grid-template-rows: repeat(3, auto) !important;
		column-gap: 60px !important;
		row-gap: 0 !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Anular las posiciones inline de Elementor */
	.menu-two-columns .elementor-nav-menu > li {
		grid-area: auto !important;
		width: auto !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Primera columna: 2 enlaces */
	.menu-two-columns .elementor-nav-menu > li:nth-child(1) {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	.menu-two-columns .elementor-nav-menu > li:nth-child(2) {
		grid-column: 1 !important;
		grid-row: 2 !important;
	}

	/* Segunda columna: 2 enlaces */
	.menu-two-columns .elementor-nav-menu > li:nth-child(3) {
		grid-column: 2 !important;
		grid-row: 1 !important;
	}

	.menu-two-columns .elementor-nav-menu > li:nth-child(4) {
		grid-column: 2 !important;
		grid-row: 2 !important;
	}

	/* Tercera columna: 3 enlaces */
	.menu-two-columns .elementor-nav-menu > li:nth-child(5) {
		grid-column: 3 !important;
		grid-row: 1 !important;
	}

	.menu-two-columns .elementor-nav-menu > li:nth-child(6) {
		grid-column: 3 !important;
		grid-row: 2 !important;
	}

	.menu-two-columns .elementor-nav-menu > li:nth-child(7) {
		grid-column: 3 !important;
		grid-row: 3 !important;
	}

	.menu-two-columns .elementor-nav-menu > li > a {
		display: block !important;
		width: auto !important;
		white-space: nowrap !important;
	}
}






/* Menú auto */
.nav-auto ul.elementor-nav-menu > li > a {
    flex: 0 0 auto !important;
    width: max-content !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: inline-flex !important;
}

/* Submenú desplegable */
.menu-desplegable .elementor-nav-menu .sub-menu {
    position: static !important;
    width: 100% !important;
    transform: none !important;
    margin: 10px 0 0 0 !important;
    padding-left: 20px !important;
    box-shadow: none !important;
    border: none !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
}

@media (min-width: 1025px) {
  #elementor-popup-modal-515 .dialog-widget-content {
    position: fixed;
    left: calc((100vw - 1280px) / 2);
    transform: none;
  }
}

#elementor-popup-modal-515 .dialog-close-button:hover svg{
	fill: var(--e-global-color-08270ad);
}


/* ---------- Formularios ---------- */

/* Textarea: sin resize */
.effect-label-form form textarea.effect-label-control {
  resize: none;
  padding-top: 15px;
}

.effect-label-form form {
  position: relative;
}

.effect-label-form form .effect-label-field {
  position: relative;
  margin-bottom: 1.25rem;
}

.effect-label-form form .effect-label-control {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding-bottom: 5px;
  padding-top: 15px;
}

/* Label flotando en el input */
.effect-label-form form .effect-label-label {
  position: absolute;
  left: 20px;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.9rem;
  line-height: 1.2;
  color: #777;
  pointer-events: none;
  transition: all 0.18s ease-out;
  margin: 0 !important;
  background: transparent;
  z-index: 1;
}

.effect-label-form form .effect-label-field.elementor-field-type-textarea .effect-label-label {
  top: 5% !important;
  transform: translateY(0) !important;
}

/* Estados de focus o con contenido */
.effect-label-form form .effect-label-field.is-focused .effect-label-label,
.effect-label-form form .effect-label-field.is-filled .effect-label-label,
.effect-label-form form .effect-label-field.filled .effect-label-label {
  top: 4px;
  transform: translateY(0);
  font-size: 0.6rem;
  z-index: 999;
}
	
.effect-label-form form .effect-label-field.is-focused .effect-label-control,
.effect-label-form form .effect-label-field.is-filled .effect-label-control,
.effect-label-form form .effect-label-field.filled .effect-label-control{
  box-shadow: none !important;
  transition: all .3s ease;
}

.effect-label-form.form-bg-f3f3f3 form .effect-label-field.is-focused .effect-label-control,
.effect-label-form.form-bg-f3f3f3 form .effect-label-field.is-filled .effect-label-control,
.effect-label-form.form-bg-f3f3f3 form .effect-label-field.filled .effect-label-control{
  background-color: #f3f3f3 !important;
}


/* Flecha */
.arrow-form > form > div > div.elementor-field-type-submit > button > span{
	justify-content: space-between;
	padding: 0 25px;
}

.arrow-form > form > div > div.elementor-field-type-submit > button > span > span.elementor-button-icon > svg{
	width: 32px;
}

.elementor-widget-form .elementor-field-type-submit button{
	padding: 0 !important;
	width: 220px;
}

/* --- Formulario footer --- */
.suscription-form > form > .elementor-form-fields-wrapper{
	justify-content: space-between;
}

@media (min-width: 1025px){
	.suscription-form > form > .elementor-form-fields-wrapper > div:first-child{
		width: 50%;
	}

	.suscription-form > form > .elementor-form-fields-wrapper > div:last-child{
		width: 40%;
	}
}

@media (max-width: 1024.99px){
	.suscription-form input{
		border: 1.5px solid #fff !important;
	}
}

@media (max-width: 767.99px){
	.menu-footer > nav > ul > li > a{
		justify-content: center;
	}
}

.suscription-form > form > div > div.elementor-field-type-submit > button{
	min-height: 42.5px !important;
}

.suscription-form .elementor-message{
	position: absolute;
}

/* Elementos flotantes */
@media (min-width: 1025px){
	.absolute-right-desktop{
		position: absolute;
		top: 50%;
		transform: translatey(-50%);
	}
}

/* Acordeón */
#acordeon-faq > div > details{
	border-bottom: 1.5px solid #cecece;
}

#acordeon-faq > div > details > div{
	padding-bottom: 15px;
}


/* ---------- Catálogo servicios ---------- */
.img-servicio img{
	transform: scale(1.1);
}

@media (max-width: 1024.99px){
	.img-servicio img{
		transform: scale(1.05);
	}
}


/* ----------- Contenedores ----------- */
@media (min-width: 768px){
	.img-absolute{
			position: absolute;
			top: 0;
		}

	.absolute-left-desktop{
		left: 0;
	}
	
}



/* Scroll horizontal */
@media (min-width: 1025px) {
    .horizontal-scroll {
        overflow: hidden !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
        transition: none !important;
    }

    .horizontal-scroll > .horizontal-item {
        flex: 0 0 100vw !important;
        width: 100vw !important;
        min-width: 100vw !important;
        max-width: 100vw !important;
        height: 100vh !important;
        transition: none !important;
    }
}


/* Icono relleno de WhatsApp */
.elementor-share-btn_whatsapp .elementor-share-btn__icon svg,
.elementor-share-btn_whatsapp .elementor-share-btn__icon i {
    display: none !important;
}

.elementor-share-btn_whatsapp .elementor-share-btn__icon::before {
    content: "";
    display: block;
    width: 4em;
    height: 4em;
    background-color: currentColor;
    -webkit-mask-image: url('/wp-content/uploads/2026/05/whatsapp-filled.svg');
    mask-image: url('/wp-content/uploads/2026/05/whatsapp-filled.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}




/* GROW SUAVE SOLO EN EL ITEM PRINCIPAL SIN DROPDOWN */
.menu-grow-soft .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item{
  display: inline-flex;
  align-items: center;
  transition: transform .35s cubic-bezier(.22,.61,.36,1);
  transform-origin: center center;
  will-change: transform;
}

.menu-grow-soft .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item:hover{
  transform: scale(1.05);
}








/* Botón con flecha SVG */
.arrow-bot .elementor-slide-button {
  display: inline-flex !important;
  align-items: center;
  gap: 15px;
}

/* Flecha */
.arrow-bot .elementor-slide-button::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;

  background-color: currentColor;

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg transform='matrix(-1 0 0 -1 64.0014 63.9754)'%3E%3Cpath d='M60.002 30H8.828l5.186-5.186a2 2 0 1 0-2.828-2.828l-8.6 8.6a2 2 0 0 0 0 2.828l8.6 8.6c.39.391.902.586 1.414.586s1.024-.195 1.414-.586a2 2 0 0 0 0-2.828L8.828 34h51.173a2 2 0 0 0 0-4z'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg transform='matrix(-1 0 0 -1 64.0014 63.9754)'%3E%3Cpath d='M60.002 30H8.828l5.186-5.186a2 2 0 1 0-2.828-2.828l-8.6 8.6a2 2 0 0 0 0 2.828l8.6 8.6c.39.391.902.586 1.414.586s1.024-.195 1.414-.586a2 2 0 0 0 0-2.828L8.828 34h51.173a2 2 0 0 0 0-4z'/%3E%3C/g%3E%3C/svg%3E");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;

  -webkit-mask-position: center;
  mask-position: center;

  -webkit-mask-size: contain;
  mask-size: contain;

  transition: background-color 0.3s ease;
}



/* OCULTAR NOMBRES DE IMAGENES */
/* Elementor Lightbox: ocultar el título/descripcion en todo el sitio */
.elementor-lightbox .elementor-slideshow__footer,
.elementor-lightbox .elementor-slideshow__title,
.elementor-lightbox .elementor-slideshow__caption,
.elementor-lightbox .elementor-slideshow__description{
  display: none !important;
}




/* QUITAR BORDER RADIUS EN ACORDEÓN AL MOMENTO DE ESTAR ABIERTO */
/* =========================================
   ACCORDION: unión header/contenido sin radius
   Clase en el widget: acc-join-flat
========================================= */

/* Cuando el item está abierto (details[open]) quitamos SOLO el radius inferior del header */
.acc-join-flat .e-n-accordion-item[open] summary {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}





