
/* FUENTES */

@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,100..900;1,100..900&display=swap');
.archivo-<uniquifier> {
  font-family: "Archivo", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}


/* 
---------------------------------------------
reset
--------------------------------------------- 
*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, div
pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q,
s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li,
figure, header, nav, section, article, aside, footer, figcaption {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
}

.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}

.clearfix {
  display: inline-block;
}

html[xmlns] .clearfix {
  display: block;
}

* html .clearfix {
  height: 1%;
}


header, nav, section, article, aside, footer, hgroup {
  display: block;
}
section, footer, header, .main-banner { margin: 0 auto; position: relative; max-width:1920px;background: #1C1B1A;}
* {
  box-sizing: border-box;
}

html, body {  
	font-family: "Archivo", sans-serif;
	font-weight: normal;
  font-style: normal;
  color: #fff;
  overflow-x: hidden; margin:0; padding:0;
}

a {
  text-decoration: none !important;
}


ul {
  margin-bottom: 0px;
}

p {
  line-height: 1.3;
}

img { max-width: 100%; height:auto}

.text-or {color: #d3b1e5!important;}


@media (min-width: 768px) {
.mobile { display:none;}

}
@media (max-width: 767.99px) {
.desk {display:none;}

}

/* ---------------------------------------------
   Pre-loader Style
--------------------------------------------- */
#preloader {
  background-color: #1C1B1A;
  position: fixed;
  inset: 0;                /* top:0; right:0; bottom:0; left:0 simplificado */
  z-index: 1100;
  display: flex;
  justify-content: center;
  align-items: center;

  /* estado visible por defecto */
  opacity: 1;
  visibility: visible;
  transition: opacity .45s ease, visibility .45s step-end;
}

/* cuando el JS lo oculta */
#preloader.is-hidden {
  opacity: 0;
  visibility: hidden;
}

/* garantía extra: una vez removido el DOM */
body.preloader-gone #preloader {
  display: none !important;
}

/* tu loader original */
.loader {
  width: 250px;
  height: 156px;
  background: url("../images/logo_footer.png") no-repeat center center;
  background-size: contain;
  animation: pulseOpacity 1.2s infinite ease-in-out;
}

/* animación de pulso */
@keyframes pulseOpacity {
  0% { opacity: 1; }
  50% { opacity: 0.4; }
  100% { opacity: 1; }
}


/* 
---------------------------------------------
Header Style
--------------------------------------------- 
*/
.header-area {
  position: fixed;
  background: #1C1B1A;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  -webkit-transition: all .5s ease 0s;
  -moz-transition: all .5s ease 0s;
  -o-transition: all .5s ease 0s;
  transition: all .5s ease 0s;
}

.header-area .main-nav {
  background: #1C1B1A;
  display: flex; align-items: center;justify-content: center;
}
.logotop { cursor:pointer}
/*
.main-nav span {display:inline-block; color:#d3b1e5; font-size:17px; line-height:20px}*/

.header-area .main-nav ul.nav {
  border-radius: 0px 0px 25px 25px;
  flex-basis: 100%;
  margin-right: 0px;
  justify-content: center;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  position: relative;
  z-index: 999;
}

.header-area .main-nav .nav li {
  padding-left: 5px;
  padding-right: 5px;
}

.header-area .main-nav .nav li.nav-item a {
  display: block;
  border-radius: 0px;
  font-weight: 300;
  font-size: 12px;
  text-transform: uppercase;
  color: #fff;
  -webkit-transition: all 0.4s ease 0s;
  -moz-transition: all 0.4s ease 0s;
  -o-transition: all 0.4s ease 0s;
  transition: all 0.4s ease 0s;
  border: transparent;
}


.header-area .main-nav .nav li:hover a { color:#d3b1e5 }
.header-area .main-nav .nav li a.active {  color: #d3b1e5;  opacity: 1;}

.header-area .main-nav .menu-trigger {
  cursor: pointer;
  position: absolute;
  top: 8px;
  width: 32px;
  height: 40px;
  text-indent: -9999em;
  z-index: 9999;
  right: 20px;
  display: none;background: transparent;
  border: none;
}


.header-area .main-nav .menu-trigger span,
.header-area .main-nav .menu-trigger span:before,
.header-area .main-nav .menu-trigger span:after {
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
  background-color: #fff;
  display: block;
  position: absolute;
  width: 30px;
  height: 2px;
  left: 0;
}

.header-area .main-nav .menu-trigger span:before,
.header-area .main-nav .menu-trigger span:after {
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
  background-color: #fff;
  display: block;
  position: absolute;
  width: 30px;
  height: 2px;
  left: 0;
  width: 100%;
}


.header-area .main-nav .menu-trigger span:before,
.header-area .main-nav .menu-trigger span:after {
  content: "";
}

.header-area .main-nav .menu-trigger span {
  top: 16px;
}

.header-area .main-nav .menu-trigger span:before {
  -moz-transform-origin: 33% 100%;
  -ms-transform-origin: 33% 100%;
  -webkit-transform-origin: 33% 100%;
  transform-origin: 33% 100%;
  top: -10px;
  z-index: 10;
}

.header-area .main-nav .menu-trigger span:after {
  -moz-transform-origin: 33% 0;
  -ms-transform-origin: 33% 0;
  -webkit-transform-origin: 33% 0;
  transform-origin: 33% 0;
  top: 10px;
}

.header-area .main-nav .menu-trigger.active span,
.header-area .main-nav .menu-trigger.active span:before,
.header-area .main-nav .menu-trigger.active span:after {
  background-color: transparent;
  width: 100%;
}

.header-area .main-nav .menu-trigger.active span:before {
  -moz-transform: translateY(6px) translateX(1px) rotate(45deg);
  -ms-transform: translateY(6px) translateX(1px) rotate(45deg);
  -webkit-transform: translateY(6px) translateX(1px) rotate(45deg);
  transform: translateY(6px) translateX(1px) rotate(45deg);
  background-color: #fff;
}


.header-area .main-nav .menu-trigger.active span:after {
  -moz-transform: translateY(-6px) translateX(1px) rotate(-45deg);
  -ms-transform: translateY(-6px) translateX(1px) rotate(-45deg);
  -webkit-transform: translateY(-6px) translateX(1px) rotate(-45deg);
  transform: translateY(-6px) translateX(1px) rotate(-45deg);
  background-color: #fff;
}

.visible{
  display:inline-block !important;
}

@media (min-width:768px) {
	#nav-list {justify-content: end;}	
	.main-nav .logo_header img { height:35px; width:auto}
	.main-nav .cont_logo { display:none}
}
 
@media (min-width:992px) {
  .header-area .main-nav .nav li.nav-item a {
    padding-left: 45px;
    padding-right: 45px;
  }
}

@media (min-width:768px) and (max-width: 991.98px){
  .header-area .main-nav .nav li a { padding-left: 35px; padding-right: 35px;}
}
@media (max-width: 767.99px) {
	.main-nav .cont_logo { text-align:center}
	.main-nav .cont_logo img { height: 35px;width: auto; }
	.main-nav .logo_header { display:none}
	.header-area .container { max-width:100%!important}
  .header-area .main-nav .nav li a {padding-left: 5px;padding-right: 5px;}
  .header-area .main-nav .nav {
    background-color: #1C1B1A;
  }
  .header-area .main-nav .nav li a {
    line-height: 30px;
    height: 50px;
    font-weight: 300;
    color: #fff;
    background-color: #1C1B1A;
    /* border-radius: 0px 0px 25px 25px;*/
  }

  .header-area .main-nav .nav li {
    border-top: 1px solid #fff;
    background-color: #1C1B1A;
    height: 50px;
    /*border-radius: 0px 0px 25px 25px;*/
  }

  .header-area .main-nav .nav {
    height: auto;
    flex-basis: 100%;
  }


  .header-area .main-nav .border-button {
    position: absolute;
    top: 15px;
    right: 70px;
  }
  .header-area.header-sticky .nav li a:hover,
  .header-area.header-sticky .nav li a.active {
    color: #d3b1e5!important;
    opacity: 1;
  }
  

  .header-area .menu-trigger {
    display: block !important;
  }
  .header-area .main-nav {
    overflow: hidden; justify-content: center;
  }
  .header-area .main-nav .nav {
    width: 100%;
    -webkit-transition: all 0s ease 0s;
    -moz-transition: all 0s ease 0s;
    -o-transition: all 0s ease 0s;
    transition: all 0s ease 0s;
    margin-left: 0px;
  }

  .header-area .nav {
    margin-top: 13px !important;
  }
  
  .header-area .main-nav .nav li {
    width: 100%;
    background: #011321;
    padding-left: 0px !important;
    padding-right: 0px !important;
  }
  
}

/* 
---------------------------------------------
Banner Style
--------------------------------------------- 
*/

.main-banner {
  position: relative;
  padding: 0;
  margin-top: 51px;
}

/* Video full-bleed */
.banner-video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Texto centrado arriba */
.banner-text {
  position: absolute;
  top: 50px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
  z-index: 5;
  pointer-events: none; /* evita interferir con clicks en el video */
}

.banner-text h1 {
  position: relative;
  display: inline-block;
  font-weight: 400;
  color: #fff;
  text-shadow: 2px 2px 6px rgba(0,0,0,0.6);
}

/* El span es el que se anima (para no pelear con el translateX del contenedor) */
.banner-text h1 span {
  display: inline-block;
  opacity: 0;
  transform: scale(0.5);
}

/* Cuando el banner está en vista, ejecuta el zoom/fade */
.main-banner.inview .banner-text h1 span {
  animation: zoomIn 1s ease-out forwards;
  animation-delay: 0.6s; /* opcional */
}

@keyframes zoomIn {
  from { opacity: 0; transform: scale(0.5); }
  to   { opacity: 1; transform: scale(1); }
}

/* Accesibilidad: reduce motion */
@media (prefers-reduced-motion: reduce) {
  .banner-text h1 span {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}

@media (min-width: 768px) {
	.banner-text {  top: 50px;}
	.banner-text h1 {font-size:28px }

	

}
@media (max-width: 767.99px) {
	.banner-text {  top: 10px;}
}
@media only screen and (min-width: 576px) and (max-width: 767.99px) {
	.banner-text h1 {font-size:23px }
}
@media (max-width: 575.99px) {
	.banner-text h1 {font-size:20px }
}
/**/

.boton { border-radius: 32px; padding: 12px; width:182px; text-align: center; display:inline-block; font-weight:400; font-size:19px; cursor:pointer;  border: none;-webkit-transition: all 0.3s ease-out 0s;
  -moz-transition: all 0.3s ease-out 0s;
  -ms-transition: all 0.3s ease-out 0s;
  -o-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;}

.boton_o {color:#000;background-color:#d3b1e5;}
.boton_w { color:#000; background-color:#FFF}
.boton:hover {color:#fff;background-color:#25d366; }
.boton_v:hover {color:#fff;background-color:#000; }

/* 
---------------------------------------------
highlights
--------------------------------------------- 
*/
#highlights { background:#1C1B1A; padding-bottom:15px; padding-top:70px}

.owl-2 .item { position: relative; margin: 0 7.5px;}
.owl-2 article {position: relative; overflow: hidden;border-radius: 10px;aspect-ratio: 16 / 9;width: 100%; height:auto}
/* El wrapper ocupa todo el espacio del article */
.owl-2 .item article .media-wrapper {position: absolute; top: 0; left: 0; width: 100%; height: 100%}
.owl-2 article img {border-radius: 10px; width:100%; height:100%;object-fit: cover;display: inline-block;}
.owl-2 article video {border-radius: 10px; width:100%; height:100%;object-fit: cover;display: inline-block;}
.owl-2 article .imagen_bg { position: absolute; top: 0; z-index: 10; width: 100%;}
.owl-2 article h3 { position: absolute; top:0; z-index: 10; color:#FFF; padding:40px 0 0 36px; font-weight:300;  opacity: 0;  transform: translateX(-500px);
  transition: all 1.5s ease-out;}
/* Solo anima cuando el carrusel está visible en pantalla */
.owl-2.inview .owl-item.active article h3 {
  opacity: 1;
  transform: translateX(0);
}

/* Respeto a accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .owl-2 article h3 { transition: none; }
}

.owl-2 .owl-nav { display: none}
.owl-2 .owl-dots {max-width: 256px; text-align: center; background:#FFF; border-radius: 30px; border: 1px solid #fff;   padding: 5px 0 0 0;  margin: 40px auto 0 auto; }
.owl-2 .owl-dots .owl-dot span {
  width: 18px;
  height: 18px;
  margin: 5px 7px;
  background: #5f5f5f;
  display: block;
  -webkit-backface-visibility: visible;
  transition: opacity 200ms ease;
  border-radius: 30px;
}
.owl-2 .owl-dots .owl-dot.active span, .owl-2 .owl-dots .owl-dot:hover span { background: #d3b1e5; }


@media only screen and (min-width: 576px) and (max-width: 767.99px) {
	.owl-2 article h3  {padding:40px 0 0 36px }
}
@media (max-width: 575.99px) {
	.owl-2 article h3  {padding:10px 0 0 15px }
}
/* 
---------------------------------------------
Feboverse
--------------------------------------------- 
*/
.videofull { padding:50px 20px 0 20px;}
.owl-banner .item {margin-left: -1px;}
.owl-banner article {position: relative; overflow: hidden;border-radius: 30px;aspect-ratio: 16 / 9;width: 100%; height:auto}
.owl-banner article video {border-radius: 30px; width:100%; height:100%;object-fit: cover;display: inline-block;}
.owl-banner .owl-dots  {
  display:none
}

.owl-banner .owl-nav {  position: absolute; top: 30px; right: 35px; }
.owl-banner .owl-nav button{ border-radius:50%; background:#000!important; padding: 5px!important}
.owl-banner .owl-nav button:hover{ background:#979494 !important; }
.owl-banner .owl-nav .owl-prev { margin-right:20px}
.owl-banner .owl-nav .owl-prev i, .owl-banner .owl-nav .owl-next i {
  width: 30px;
  height: 30px;
  line-height: .8;
  font-size: 30px;
  display: inline-block;
  color: #fff;
  opacity: 1;
  transition: all .3s;
 
}
.owl-banner .owl-nav .owl-prev img{ margin-left: -2px;width:20px; height:auto}
.owl-banner .owl-nav .owl-next  img {margin-left: 2px;width:20px; height:auto}

@media only screen and (min-width: 576px) and (max-width: 991.99px) {
	.owl-banner .owl-nav .owl-prev {  margin-right: 10px;}
	.owl-banner .owl-nav .owl-prev i, .owl-banner .owl-nav .owl-next i {   width: 20px;  height: 20px;   font-size: 20px;}
	.owl-banner .owl-nav .owl-prev img{ margin-left: -2px;width:13px; height:auto}
	.owl-banner .owl-nav .owl-next  img {margin-left: 2px;width:13px; height:auto}
}
@media (max-width: 575.99px) {
	
	.owl-2 .owl-dots .owl-dot span {  width: 15px;  height: 15px;  margin: 3px 7px;}
	.owl-banner .owl-nav { top: 15px;    right: 15px;  }
	.owl-banner .owl-nav button {  padding: 2px 3px !important;}
	.owl-banner .owl-nav .owl-prev {  margin-right: 5px;}
	.owl-banner .owl-nav .owl-prev i, .owl-banner .owl-nav .owl-next i {   width: 18px;  height: 10px;   font-size: 20px;}
	.owl-banner .owl-nav .owl-prev img{ margin-left: -2px;width:10px; height:auto}
	.owl-banner .owl-nav .owl-next  img {margin-left: 2px;width:10px; height:auto}/

}
/* 
---------------------------------------------
DyS
--------------------------------------------- 
*/

.parallax {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
  background-attachment: fixed;
}
.fondo_tel {
  padding-top: 180px;
  padding-bottom: 140px;
}
.celu img { width:195px}
.fondo_tel .container_texto { margin: 0 auto; padding-top: 100px }
/*.fondo_tel .texto { display: grid; gap: 2rem; max-width: 64rem;  margin: 0 auto;}*/
.fondo_tel .container_texto h3 { color:#d3b1e5; font-weight:500; }
/*.fondo_tel .container_texto .flex-item-left { max-width: 37%}
.fondo_tel .container_texto .flex-item-right {margin: 0 auto; max-width: 37%}*/
.fondo_tel .texto p { color:#c9c9c9; font-weight:300;  padding-top:44px }
.fondo_tel .texto p strong{ color:#fff; font-weight:500; }



@media (min-width: 768px) {
	/*.fondo_tel .texto { grid-template-columns: repeat(2, 1fr);}*/
	.fondo_tel .container_texto h3 {  font-size:40px;}
	.fondo_tel .texto p {  font-size:23px;}
}
@media (max-width: 767.99px) {
	/*.fondo_tel .texto { grid-template-columns: 1fr;}*/
	.fondo_tel .container_texto h3 {  font-size:29px}
	.fondo_tel .texto p {  font-size:18px;}
}

@media (min-width: 1400px) {
	.max-1400 { display:none}
}
@media (max-width: 1399.99px) {
	.min-1400 { display:none}
}
/* 
---------------------------------------------
energy
--------------------------------------------- 
*/

#energy { background-color:#f2f2f2 }
#energy .section-title h2 {padding-right: 15px; color:#232323}
#energy .section-title h2 span { color:#b87fd6}
.service-item {color:#393939}
.service-item p, .abajo p { color:#393939; font-weight:400; }
.service-item p {  margin-top:2.1em }
.abajo  .icon img{  border-radius: 10px;}
.abajo  .main-content {  padding-top: 25px;  max-width: 450px;  margin: 0 auto; }

@media (min-width: 768px) {
	#energy { padding: 120px 0px }
	#energy .section-title h2 { margin-bottom:100px; font-size:52px}
	.service-item { margin-bottom:100px;}
	.abajo{ margin-top:100px;}
	.service-item p, .abajo p {font-size:23px }

	

}
@media (max-width: 767.99px) {
 	 #energy { padding: 75px 0px}
	#energy .section-title h2 {margin-bottom:80px;  font-size:29px}
	.service-item { margin-bottom:60px;}
	.abajo{ margin-top:60px;}
	.service-item p, .abajo p {font-size:18px }
	.service-item .icon img  {width: 55px; }
	#energy .col-lg-4 { margin: 0 auto;  max-width: 300px;}
}

/* 
---------------------------------------------
Footer Style
--------------------------------------------- 
*/

footer { position: relative;  background-color: #000; }

footer p { text-align: center; line-height:18px; color: #fff; font-size:13px; font-weight: 400;}
footer p a {
  color: #666;
  transition: all .3s;
  position: relative;
  z-index: 3;
}

footer p a:hover {
  opacity: 0.75;
}
.cm { position:absolute; bottom:15px; right:15px; }


@media (min-width: 768px) {
	footer {padding: 100px 0 250px 0;}
  .max_sm { display:none!important}
}
@media (max-width: 767.99px) {
	footer {padding: 50px 0 125px 0;}
  .min_sm { display:none!important}
  
}





