.elementor-57 .elementor-element.elementor-element-f0159be{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--z-index:9999;}.elementor-57 .elementor-element.elementor-element-a48931d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-widget-theme-site-logo .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-57 .elementor-element.elementor-element-05ae3ac{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 30px;text-align:left;}.elementor-57 .elementor-element.elementor-element-05ae3ac img{width:60px;}.elementor-57 .elementor-element.elementor-element-d8a38b1{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-57 .elementor-element.elementor-element-d9d6af0{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-57 .elementor-element.elementor-element-d9d6af0.elementor-element{--align-self:flex-end;}.elementor-57 .elementor-element.elementor-element-aa73ae1{--display:flex;--justify-content:center;}.elementor-57 .elementor-element.elementor-element-1166826{--display:flex;--justify-content:center;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:30px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:767px){.elementor-57 .elementor-element.elementor-element-05ae3ac{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-57 .elementor-element.elementor-element-05ae3ac img{width:25%;}}@media(min-width:768px){.elementor-57 .elementor-element.elementor-element-a48931d{--width:16%;}.elementor-57 .elementor-element.elementor-element-d8a38b1{--width:43%;}.elementor-57 .elementor-element.elementor-element-aa73ae1{--width:17%;}.elementor-57 .elementor-element.elementor-element-1166826{--width:24%;}}/* Start custom CSS for html, class: .elementor-element-d9d6af0 */.boton-efecto {
  position: relative;
  overflow: hidden;
  padding: 10px 70px;
  background-color:transparent;
  color: #2A2A2A;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
  font-size: 16px;
  font-weight: 700
}

.texto-normal,
.texto-hover {
  color: #2A2A2A;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.3s ease;
}

.texto-hover {
  transform: translate(-50%, 100%);
  opacity: 0;
}

.boton-efecto:hover {
  background-color: #FFF;
}

.boton-efecto:hover .texto-normal {
  transform: translate(-50%, -150%);
  opacity: 0;
}

.boton-efecto:hover .texto-hover {
  transform: translate(-50%, -50%);
  opacity: 1;
}
.boton-efecto-blog {
  position: relative;
  overflow: hidden;
  padding: 10px 30px;
  background-color:transparent;
  color: #fff;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
  font-size: 16px;
  font-weight: 700
}
.boton-efecto-blog:hover {
  background-color: #FFF;
}

.boton-efecto-blog:hover .texto-normal {
  transform: translate(-50%, -150%);
  opacity: 0;
}

.boton-efecto-blog:hover .texto-hover {
  transform: translate(-50%, -50%);
  opacity: 1;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-5ca783e */button.boton-efecto-contacto {
  position: relative;
  overflow: hidden;
  padding: 10px 70px;
  background-color: transparent;
  color: #2A2A2A;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
  font-size: 16px;
  font-weight: 700;
}

/* --- Transición de texto --- */
.texto-normal,
.texto-hover {
  color: #2A2A2A;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.3s ease;
}

.texto-hover {
  transform: translate(-50%, 100%);
  opacity: 0;
}

button.boton-efecto-contacto:hover {
  background-color: #FFF;
}

button.boton-efecto-contacto:hover .texto-normal {
  transform: translate(-50%, -150%);
  opacity: 0;
}

button.boton-efecto-contacto:hover .texto-hover {
  transform: translate(-50%, -50%);
  opacity: 1;
}

/* --- Ícono flecha --- */
img.icon-arrow {
  transform: rotate(45deg);
  vertical-align: middle;
  transition: transform 0.3s ease-in-out;
}

/* 🔸 El ícono gira cuando el botón está en hover o activo */
button.boton-efecto-contacto:hover img.icon-arrow,
button.boton-efecto-contacto:active img.icon-arrow {
  transform: rotate(0deg);
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1166826 *//* ===== BOTÓN HAMBURGUESA ===== */
.menu-toggle {
  position: fixed;
  top: 20px;
  right: 25px;
  width: 48px;
  height: 48px;
  background-color: #000;
  border-radius: 50%;
  cursor: pointer;
  z-index: 1501;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, background-color 0.3s ease;
  box-shadow: 0 0 10px rgba(255,255,255,0.2);
}

.menu-toggle:hover {
  transform: scale(1.1);
  background-color: #111;
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  position: relative;
  transition: all 0.3s ease;
}

.menu-toggle span::before,
.menu-toggle span::after {
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: all 0.3s ease;
}

.menu-toggle span::before {
  top: -7px;
}

.menu-toggle span::after {
  top: 7px;
}

.menu-toggle.active span {
  background: transparent;
}

.menu-toggle.active span::before {
  transform: rotate(45deg);
  top: 0;
}

.menu-toggle.active span::after {
  transform: rotate(-45deg);
  top: 0;
}

/* ===== MENÚ ===== */
.menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100%;
  background-color: rgba(10,10,10,0.98);
  z-index: 1500;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: right 0.5s ease;
}

.menu.active {
  right: 0;
}

.menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

.menu ul li {
  margin: 0px 0;
  opacity: 0;
  transform: translateX(30px);
  border-bottom: 1px solid #626262
}

.menu ul li a {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #fff;
  text-decoration: none;
  font-size: 5rem;
  font-weight: 300;
  transition: color 0.3s ease;
}

.menu ul li a:hover {
  color: #999;
}

.menu ul li a img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 50%;
  transition: transform 0.3s ease;
}

.menu ul li a:hover img {
  transform: scale(1.1);
}/* End custom CSS */