.elementor-kit-9{--e-global-color-primary:#0C0C0C;--e-global-color-secondary:#FBFBFB;--e-global-color-text:#444444;--e-global-color-accent:#000000;--e-global-color-12ea1d2:#EDEDED;--e-global-color-f07d892:#FFFFFF;--e-global-color-a2f7e88:#FFFFFF00;--e-global-typography-primary-font-family:"Poppins";--e-global-typography-primary-font-size:42px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.3em;--e-global-typography-secondary-font-family:"Poppins";--e-global-typography-secondary-font-size:16px;--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-letter-spacing:2px;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:500;--e-global-typography-text-line-height:1.5em;--e-global-typography-text-letter-spacing:-0.1px;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-letter-spacing:1px;color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-9 a{color:var( --e-global-color-secondary );}.elementor-kit-9 a:hover{color:var( --e-global-color-secondary );}.elementor-kit-9 button,.elementor-kit-9 input[type="button"],.elementor-kit-9 input[type="submit"],.elementor-kit-9 .elementor-button{font-family:"Montserrat", Sans-serif;font-size:15px;font-weight:300;letter-spacing:1px;color:var( --e-global-color-f07d892 );background-color:var( --e-global-color-primary );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-primary );border-radius:0px 0px 0px 0px;padding:18px 28px 18px 28px;}.elementor-kit-9 button:hover,.elementor-kit-9 button:focus,.elementor-kit-9 input[type="button"]:hover,.elementor-kit-9 input[type="button"]:focus,.elementor-kit-9 input[type="submit"]:hover,.elementor-kit-9 input[type="submit"]:focus,.elementor-kit-9 .elementor-button:hover,.elementor-kit-9 .elementor-button:focus{color:var( --e-global-color-primary );background-color:var( --e-global-color-a2f7e88 );border-radius:0px 0px 0px 0px;}.elementor-kit-9 label{color:var( --e-global-color-primary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-9 input:not([type="button"]):not([type="submit"]),.elementor-kit-9 textarea,.elementor-kit-9 .elementor-field-textual{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-primary );accent-color:var( --e-global-color-primary );border-style:solid;border-width:0px 0px 1px 0px;border-radius:0px 0px 0px 0px;}.elementor-kit-9 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-9 textarea:focus,.elementor-kit-9 .elementor-field-textual:focus{color:var( --e-global-color-primary );box-shadow:0px 0px 0px 0px rgba(0,0,0,0.5);border-style:solid;border-width:0px 0px 1px 0px;border-color:var( --e-global-color-accent );border-radius:0px 0px 0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1360px;}.e-con{--container-max-width:1360px;--container-default-padding-top:100px;--container-default-padding-right:35px;--container-default-padding-bottom:100px;--container-default-padding-left:35px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}@media(max-width:1024px){.elementor-kit-9{--e-global-typography-primary-font-size:36px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-9 label{font-size:var( --e-global-typography-secondary-font-size );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-9 input:not([type="button"]):not([type="submit"]),.elementor-kit-9 textarea,.elementor-kit-9 .elementor-field-textual{font-size:var( --e-global-typography-accent-font-size );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;--container-default-padding-top:80px;--container-default-padding-right:30px;--container-default-padding-bottom:80px;--container-default-padding-left:30px;}}@media(max-width:767px){.elementor-kit-9{--e-global-typography-primary-font-size:30px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-9 label{font-size:var( --e-global-typography-secondary-font-size );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-9 input:not([type="button"]):not([type="submit"]),.elementor-kit-9 textarea,.elementor-kit-9 .elementor-field-textual{font-size:var( --e-global-typography-accent-font-size );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:60px;--container-default-padding-right:20px;--container-default-padding-bottom:60px;--container-default-padding-left:20px;}}/* Start custom CSS *//* Portfolio */
.port-overlay.info{    max-height: 130px;}
 .port-title {
  display: block;
  transform: translateY(40px);
  opacity: 0;
    transition: opacity 1.2s 0s 
cubic-bezier(.77, 0, .175, 1), transform 1.2s 0s 
cubic-bezier(.77, 0, .175, 1)!important;
    will-change: opacity, transform;
}
.port-category{  opacity: 0;
    transition: opacity 1.2s cubic-bezier(.77, 0, .175, 1);
        transition-delay: 50ms !important;
    }
.port-item:hover .port-category,
.port-item:hover .port-title {
  opacity: 1;
  transform: translateY(0);
}


.port-item:hover:before {
  transform: scale(1.1);
}
.port-item:before {
        overflow: hidden; 
      transition: transform 1.8s cubic-bezier(.77, 0, .175, 1);
    }


.port-item:hover .port-overlay {
  opacity: 1;
}

.port-overlay {
  background: rgba(12, 12, 12, 0.9);
  opacity: 0;
  transition: opacity 1.2s cubic-bezier(.77, 0, .175, 1), background 0.5s;
}
.port-overlay:hover {
background: #fff;
}


.port-overlay .jet-listing-dynamic-terms__link, .port-overlay .elementor-heading-title {
    color:#ffffff!important;
    transition: background 0.5s;
}
.port-overlay:hover .jet-listing-dynamic-terms__link, .port-overlay:hover .elementor-heading-title, .port-overlay:hover .elementor-icon svg {
    color:#0c0c0c!important;
    fill:#0c0c0c!important;
}

.port-overlay:hover .elementor-icon svg { fill:#0c0c0c!important;
transform: rotate(135deg);
}
.port-overlay .elementor-icon svg {
transform: rotate(-45deg);
 transition: all 1.2s cubic-bezier(.77, 0, .175, 1);
}








/* SUbrayados */
.sub-left .elementor-heading-title::before {
  content: "";
  position: absolute;
  left: -75px; 
  top: 50%;
  width: 50px;
  height: 2px;
  background-color: var(--e-global-color-primary);
  transform: translateY(-50%);
}
.sub-right .elementor-heading-title::before {
  content: "";
  position: absolute;
  right: -75px; 
  top: 50%;
  width: 50px;
  height: 2px;
  background-color: var(--e-global-color-primary);
  transform: translateY(-50%);
}
@media (max-width:767px){
.sub-left .elementor-heading-title::before {
  left: -25px; 
  top: -150%;
  transform: rotate(90deg);
}
.sub-right .elementor-heading-title::before {
  right: -25px; 
  top: -150%;
  transform: rotate(90deg);}    
}

.sub-down .elementor-heading-title::before {
  content: "";
  position: absolute;
  left: 2px; 
  bottom: -14px;
  width: 50px;
  height: 2px;
  background-color: var(--e-global-color-primary);
  transform: translateY(-50%);
}




p strong {
    font-weight: 600;
}
/* a underline hover */
p a::before, .elementor-icon-list-item a::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  bottom: -2px;
  left: 0;
  background-color:var(--e-global-color-accent);
  transform: scaleX(0);
  transform-origin: top left;
  transition: transform 0.7s ease;
}

p a, .elementor-icon-list-item a {
  position: relative;
}


p a:hover::before,.elementor-icon-list-item a:hover::before {
  transform: scaleX(1);
}
/* a underline hover */

/* SVG */
.svg-shadow svg{ filter: drop-shadow(0px 4px 25px rgb(0 0 0 / 15%));}
.svg-full .elementor-icon svg {width:100%!important;height:100%!important;}
.svg-full .elementor-icon {width:100%!important;}
/* SVG */

/**form replace fonticon**/
.elementor-message:before, .elementor-message.elementor-message-danger:before {
    content: "";
    font-family: unset;
}

.elementor-form-spinner {
    content: "";
    font-family: unset;
  width: 25px;
  height: 25px;
  padding: 4px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #ffffff;
  --_m: 
    conic-gradient(#0000 10%,#000),
    linear-gradient(#000 0 0) content-box;
  -webkit-mask: var(--_m);
          mask: var(--_m);
  -webkit-mask-composite: source-out;
          mask-composite: subtract;
  animation: l3 1s infinite linear;
}
@keyframes l3 {to{transform: rotate(1turn);}}
/**form replace fonticon**/






/**Efecto de botones**/
.fill_btn .elementor-button{
  position: relative;
  overflow: hidden;
}
.fill_btn .elementor-button:after{
  position: absolute;
  left: 0%;
  top: 0%;
  width: 0;
    transform: translate(-50%,0%)!important;
  content: "";
  background: #0c0c0c;
    height: 100%;
  transition: all .8s ;

}
.fill_btn .elementor-button:hover:after {
    transform: translate(0%,0%) !important;
     width: 100%;
}

.fill_btn span.elementor-button-text, .fill_btn span.elementor-button-icon{z-index: 10;}


.fill_btn.fill_btn2 .elementor-button:after {
   background: var(   --e-global-color-3e20072);
}

/**Efecto de botones ico**/


.fill_btn.ico .elementor-button .elementor-button-text, .elementor-form .elementor-button .elementor-button-text{
   transform: translateX(-50%);
    opacity: 1;
    transition: all .5s;
    min-width: 100%;
}
.fill_btn.ico .elementor-button:hover .elementor-button-text, .elementor-form .elementor-button:hover .elementor-button-text{
       transform: translateX(0%);
     opacity: 0;
    
}

.fill_btn.ico .elementor-button .elementor-button-icon, .elementor-form .elementor-button .elementor-button-icon {
min-width: 100%;
    font-size: 36px;
    margin: -10px 0 -10px 0;
    transform: translateX(-50%);
    opacity: 0;
    transition: all .7s;
    justify-content: center;
    
}
.fill_btn.ico .elementor-button:hover .elementor-button-icon, .elementor-form .elementor-button:hover .elementor-button-icon {
         transform: translateX(50%);
      opacity: 1;}
/* Custom scroll bar */
::-webkit-scrollbar {
    width: 10px;
        background-color: var(--e-global-color-primary);
}
::-webkit-scrollbar-track {
    border-radius: 0px;
}

::-webkit-scrollbar-thumb {
    background-color: transparent;
    background-image: linear-gradient(180deg, var(--e-global-color-57bdc37d) 0%, var(--e-global-color-accent) 60%);
    border-radius: 0px;
}
/* Custom scroll bar */

/* Seleccion color */
::-moz-selection { 
  color: var( --e-global-color-f07d892);
  background: var( --e-global-color-primary );
}

::selection {
  color: var( --e-global-color-f07d892 );
  background: var( --e-global-color-primary );
}
/* Seleccion color */


.elementor-motion-effects-element {
    transition-property: all!important;
    transition-duration: 2.1s!important;
    transition-timing-function: cubic-bezier(.165,.84,.44,1)!important;
}
/**Efecto de movimiento**/

/******* ENTRANCES *********/

html, body {
    overflow-x: hidden;
}

:root {
	--quart-out: 0.165,0.84,0.44,1;
	--quart-in-out: 0.77,0,0.175,1;
	--prueba:.19,1,.22,1;}

/******* TRANSITIONS DURATIONS *********/
.animated {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}
.animated.animated-slow {
    -webkit-animation-duration: 3s;
    animation-duration: 3s;
} 
.animated.animated-fast {
    animation-duration: 1s;
}
/******* MASKS *********/

.bounceInDown {
	animation-name: bounceInDown-new !important;
	animation-timing-function: cubic-bezier(var(--quart-in-out));
	animation-fill-mode: both;
}
@keyframes bounceInDown-new {
    from {
        clip-path: inset(0 0 100% 0);
        opacity: 1;
    }
    to {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

.bounceInUp {
	animation-name: bounceInUp-new !important;
	animation-timing-function: cubic-bezier(var(--quart-in-out));
	animation-fill-mode: both;
}
@keyframes bounceInUp-new {
    from {
        clip-path: inset(100% 0 0 0);
        opacity: 1;
    }
    to {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

.bounceInRight {
	animation-name: bounceInRight-new !important;
	animation-timing-function: cubic-bezier(var(--quart-in-out));
	animation-fill-mode: both;
}
@keyframes bounceInRight-new {
    from {
        clip-path: inset(0 0 0 100%);
        opacity: 1;
    }
    to {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

.bounceInLeft {
	animation-name: bounceInLeft-new !important;
	animation-timing-function: cubic-bezier(var(--quart-in-out));
	animation-fill-mode: both;
}
@keyframes bounceInLeft-new {
    from {
        clip-path: inset(-20% 100% -20% -20%);
        opacity: 1;
    }
    to {
        clip-path: inset(-20% -20% -20% -20%);
        opacity: 1;
    }
}

/******* SCALES *********/
.zoomInUp {
    animation-name: zoomInUp-new !important;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
}
@keyframes zoomInUp-new {
    0% {
        transform: scale(0.9, 0.9);
        	opacity: 0;
    }
    100% {
        transform: none;
        opacity: 1;
    }
}
.zoomInDown {
    animation-name: zoomInDown-new !important;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
}
@keyframes zoomInDown-new {
    0% {
        transform: scale(1.3, 1.3);
        	opacity: 0;
    }
    100% {
        transform: none;
        opacity: 1;
    }
}
/******* FADES *********/

@keyframes fadeIn {
    from {
        opacity: 0;
        filter: blur(3px);
    }
    to {
        opacity: 1;
        filter: blur(0);
    }
}
.fadeIn {
    animation-name: fadeIn;
}

@keyframes fadeUp {
    0% {
         opacity: 0;
        transform: translate3d(0, 75px, 0);
        filter: blur(3px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
        filter: blur(0);
    }
}
.fadeInUp {
    animation-name: fadeUp !important;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
}	
@keyframes fadeLeft {
    0% {
        transform: translate3d(-75px, 0, 0);
        opacity: 0;
        filter: blur(3px);
    }
    100% {
	transform: translateX(0); 	
	opacity: 1;  
	filter: blur(0);
    }
}
.fadeInLeft {
    animation-name: fadeLeft !important;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
}
@keyframes fadeRight {
    0% {
        transform: translate3d(75px, 0, 0);
        opacity: 0;
        filter: blur(3px);
    }
    100% {
        transform: translateX(0);
        opacity: 1;
        filter: blur(0);
    }
}
.fadeInRight {
    animation-name: fadeRight !important;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
}
@keyframes fadeDown {
    0% {
        transform: translate3d(0, -75px, 0);
        opacity: 0;
        filter: blur(3px);
    }
    100% {
        transform: translateY(0);
        opacity: 1;
        filter: blur(0);
    }
}
.fadeInDown {
    animation-name: fadeDown !important;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
}
/******* ENTRANCES *********/


/****************
   SLIDE ANIMS
*****************/

.slideInDown {
     animation-name: unset!important;
}
.animated.slideInDown {
    overflow: hidden;
    opacity: 1;
}
.slideInDown > .elementor-widget-container {
    animation-name: slideInDown-new!important;
    animation-duration: inherit;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
    animation-delay: inherit;
    
}
@keyframes slideInDown-new {
    from {
        transform: translateY(-100%);
    }
   to {
        opacity: 1;
        transform: none;
    }
}
.slideInLeft {
     animation-name: unset!important;
}
.animated.slideInLeft {
    overflow: hidden;
    opacity: 1;
}
.slideInLeft > .elementor-widget-container {
    animation-name: slideInLeft-new!important;
    animation-duration: inherit;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
    animation-delay: inherit;
    
}
@keyframes slideInLeft-new {
    from {
        transform: translateX(-100%);
    }
   to {
        opacity: 1;
        transform: none;
    }
}
.slideInRight {
     animation-name: unset!important;
}
.animated.slideInRight {
    overflow: hidden;
    opacity: 1;
}
.slideInRight > .elementor-widget-container {
    animation-name: slideInRight-new!important;
    animation-duration: inherit;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
    animation-delay: inherit;
    
}
@keyframes slideInRight-new {
    from {
        transform: translateX(100%);
    }
   to {
        opacity: 1;
        transform: none;
    }
}
.slideInUp {
     animation-name: unset!important;
}
.animated.slideInUp {
    overflow: hidden;
    opacity: 1;
}
.slideInUp > .elementor-widget-container {
    animation-name: slideInUp-new!important;
    animation-duration: inherit;
    animation-timing-function: cubic-bezier(var(--quart-in-out));
    animation-fill-mode: both;
    animation-delay: inherit;
    
}
@keyframes slideInUp-new {
    from {
        transform: translateY(100%);
    }
   to {
        opacity: 1;
        transform: none;
    }
}




/*************************************************
LEFT / RIGHT BLOCK REVEAL ANIMATION FOR WIDGETS
REPLACEMENT WITH FLASH ANIMATION
/*************************************************/

.flash {
    animation: none !important;
}
.flash .elementor-widget-container {
    opacity: 0;
    animation: show-element 0.3s linear forwards;
    animation-delay: 1.4s;
}
.flash:after, .flash:before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transform: scalex(0);
}

.flash:after {
    background:  var( --e-global-color-primary );
    animation: reveal-blockX 2.8s cubic-bezier(0.19, 1, 0.22, 1) forwards;
    animation-delay: 0.1s;
}
.flash:before {
    background: var( --e-global-color-accent );
    animation: reveal-blockX 2s cubic-bezier(0.19, 1, 0.22, 1) forwards;
    animation-delay: 0.4s;
    z-index: 2;
}
@keyframes reveal-blockX {
    0% {
        transform: scaleX(0);
              transform-origin: 0% 0%; 
    }
    50% {
        transform: scaleX(1);
         transform-origin: 0% 0%; 
    }
 51% {
              transform-origin: 100% 100%; 
    }
 100% {
        transform: scaleX(0);
        transform-origin: 100% 100%; 
    }
   
}
@keyframes show-element {
    50% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}/* End custom CSS */