
/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

/* Fonts */
@import url("https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&display=swap");
:root {
    --font-default: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-primary: "Sora", sans-serif;
    --font-secondary: "Poppins", sans-serif;
  }
  
/* Colores */
:root {
    --color-default: #222222;
    --color-primary: #183BA1;
    --color-primary-mas-claro: #2042E3;
    --color-primary-mas-oscuro: #0f2c83;
    --color-secondary: #1EC987;
    --color-gris-claro: #F8F9FA;
    --color-gris-medio: #666666;
    --color-gris-oscuro: #333333;
    --color-azul-oscuro: #081828;
  }

html {
scroll-behavior: smooth;
}

body {
font-family: var(--font-default);
color: #555555;
}

h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-primary) !important;
color: var(--color-primary) !important;
}

a {
color: var(--color-primary);
text-decoration: none;
transition: all 0.5s ease;
}

a:hover {
color: var(--color-secondary);
text-decoration: none;
}

/* Estilos comunes */

.fondo-degrade {
  background: rgb(238,238,238);
  background: -moz-linear-gradient(180deg, rgba(238,238,238,1) 0%, rgba(248,249,250,1) 100%);
  background: -webkit-linear-gradient(180deg, rgba(238,238,238,1) 0%, rgba(248,249,250,1) 100%);
  background: linear-gradient(180deg, rgba(238,238,238,1) 0%, rgba(248,249,250,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#eeeeee",endColorstr="#f8f9fa",GradientType=1); 
}
.texto-destacado {
  font-weight: bold;
  font-size: 1.1rem;
}
.divisor {
border-bottom: dashed 1px #666;
margin: 80px 30% 60px 30%;
}

/* Button */

.button .btn {
  display: inline-block;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 500;
  padding: 15px 30px;
  background-color: var(--color-primary);
  color: #fff;
  border: none;
  -webkit-transition: 0.5s;
  transition: 0.5s;
  border-radius: 4px;
}
.button .btn:hover {
  background-color: var(--color-secondary);
  color: #fff;
  -webkit-box-shadow: 0 1rem 3rem rgba(35, 38, 45, 0.15) !important;
  box-shadow: 0 1rem 3rem rgba(35, 38, 45, 0.15) !important;
  transform: translate3d(0, -5px, 0);
}

/* Card */

.card {
  box-shadow: 0 1rem 3rem rgba(35, 38, 45, 0.15) !important;
  border: none;
  border-radius: 5px;
  transition: ease-in-out 0.3s;
}
.card .image-box {
  max-height: 350px;
  overflow: hidden;
}
.card .image-box img {
  -webkit-transition:all .5s ease-in; 
  -moz-transition:all .5s ease-in; 
  -o-transition:all .5s ease-in;
  -ms-transition:all .5s ease-in; 
}

.card:hover .image-box img {
  -webkit-transform:scale(1.1);
  -moz-transform:scale(1.1);
  -ms-transform:scale(1.1);
  -o-transform:scale(1.1);
  transform:scale(1.1);
}
.card:hover {
  box-shadow: 0 1rem 3rem rgba(35, 38, 45, 0.35) !important;
  transform: translate(0,-7px);
}
.card-body {
  /*padding: 20px;*/
  /*margin-top: -60px;
  background-color: #ffffffe8;*/
}
.card-title {
  font-size: 1.4rem;
  /*text-transform: uppercase;*/
  font-weight: bold;
  /*color: white;*/
  /*margin-bottom: 20px;*/
}
.card-text {
  margin-bottom: 25px;
}

/* ********** Navegacion ********** */
.navbar {
  padding: 0 !important;
}
@media all and (max-width: 992px) {
	.navbar {
    padding: 10px 0 !important;
  }
}
.navbar-brand {
  width: 135px;
}
nav {
    text-transform: uppercase;
    padding: 10px 0 !important;
    transition: 0.5s ease-in-out;
    font-size: 0.9rem;
    font-weight: 600;
  }

.nav-item a:link, .nav-item a:visited, .nav-item a:active {
    color: black;
}

.nav-item a:hover {
    color:var(--color-primary-mas-claro);
}
.nav-item .active {
    color:var(--color-primary-mas-claro) !important;
}
.dropdown-item.active, .dropdown-item:active {  
  background-color: var(--color-gris-claro);
}

@media all and (min-width: 992px) {
	.navbar .nav-item .dropdown-menu{ display: none; }
	.navbar .nav-item:hover .nav-link{  }
	.navbar .nav-item:hover .dropdown-menu{ display: block; transition: 0.5s;}
	.navbar .nav-item .dropdown-menu{ margin-top:0; }
}

.navbar-nav .nav-item {
  position: relative;
  margin-left: 10px;
}

.navbar-nav .nav-item a {
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
  padding: 30px 0;
}

.dropdown-menu {
  border-radius: 0 !important;
  border: none;
  padding: 10px;
}
.dropdown-item {
  text-transform: uppercase;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 10px !important;
}
@media (max-width: 767px) {
  .navbar-nav .nav-item a {
    padding: 10px 0;
  }
}

.navbar-nav .nav-item a::before {
  content: '';
  position: absolute;
  bottom: 0;
  height: 3px;
  background: #2042e3;
  z-index: -1;
  opacity: 0;
  /*border-radius: 10px;*/
  -webkit-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
  z-index: 5;
}

.navbar-nav .nav-item a::before {
  width: 0%;
  left: 0;
}

.navbar-nav .nav-item a:hover,
.navbar-nav .nav-item a.active {
  color: #2042e3;
}

.navbar-nav .nav-item:hover a:before {
  opacity: 1;
  width: 100%;
}

/* ********** Fin Navegacion ********** */


/* ********** Hero ********** */
#hero {
  padding: 0 !important;
}

/* ********** Carousel Inicio ********** */

#inicioCarousel .carousel-item {
    height: 80vh;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
    width: 100%;
    /*box-shadow: inset 0px 0px 10px rgba(0,0,0,0.9);*/
  }
@media (max-width: 767px) {
  #inicioCarousel .carousel-item {
    height: 100vh;
  }
}

#inicioCarousel h1 {
  font-size: 3.5rem;
  color: white !important;
  text-shadow: 1px 1px 2px black;
  }
#inicioCarousel p {
  font-size: 1.3rem;
  font-weight: bold;
  text-shadow: 1px 1px 2px black;
  }
    
.carousel-caption {
    top: 40%;
}
@media (max-width: 767px) {
  #inicioCarousel h1 {
    font-size: 2rem;
    color: white;
    }
  #inicioCarousel p {
    font-size: 1rem;
    }
}
/* ********** Fin Carousel Inicio ********** */

/* ********** Titulo pagina ********** */

#titulo-pagina {
  background-color: var(--color-primary-mas-oscuro);
  background-repeat: no-repeat;
  background-position: right;
  color: #fff;
  padding-top: 150px;
  padding-bottom: 50px;
  /*box-shadow: inset 0px 0px 10px rgba(0,0,0,0.9);*/
}
@media (max-width: 767px) {
  #titulo-pagina {
    background-image: none !important;
  }
}
#titulo-pagina h1 {
  font-size: 1.9rem;
  color: #fff !important;
  margin-bottom: 15px;
  font-weight: 700;
  position: relative;
  padding-bottom: 22px;
  line-height: 50px;
}
#titulo-pagina h1::before {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  height: 2px;
  width: 80px;
  background: var(--color-secondary);
}
#titulo-pagina .subtitulo {
  font-size: 1.2rem;
  color: #ffffff !important;
  font-weight: 600;
}
#titulo-pagina .container {
  /*border-bottom: solid 5px var(--color-secondary);
  padding-bottom: 30px;*/
}

/* ********** Secciones ********** */

#inicio section {
    padding: 6rem 0;
}

/* titulo-seccion */

.titulo-seccion {
    /*max-width: 620px;*/
    margin-bottom: 50px;
    /*padding-left: 15px;*/
    /*border-left: solid 3px var(--color-primary);*/
  }

  .titulo-seccion span {
    font-weight: 600;
    font-size: 15px;
    color: #c0c0c0;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.3rem;
  }
  
  @media (max-width: 767px) {
    .titulo-seccion span {
      font-size: 16px;
    }
  }
  
  .titulo-seccion h2 {
    font-weight: 600;
    font-size: 2.2rem;
    line-height: 2.9rem !important;
    letter-spacing: -0.5px;
    color: var(--heading-color);
    margin-bottom: 30px;
    position: relative;
    line-height: 60px;
  }
  
  .titulo-seccion h2::after {
    content: "";
    position: absolute;
    display: block;
    left: calc(50% - 25px);
    bottom: -12px;
    height: 2px;
    width: 80px;
    background: var(--color-secondary);
  }

  @media (max-width: 767px) {
    .titulo-seccion h2 {
      font-size: 32px;
      line-height: 40px;
    }
  }
  
  @media only screen and (min-width: 576px) and (max-width: 767px) {
    .titulo-seccion h2 {
      font-size: 38px;
      line-height: 45px;
    }
  }
  
  .titulo-seccion p {
    font-size: 18px;
    line-height: 30px;
  }
  
  @media (max-width: 767px) {
    .titulo-seccion p {
      font-size: 16px;
      line-height: 26px;
    }
  }

.titulo-seccion .text-start {
  /*max-width: 620px;*/
  margin-bottom: 50px;
  /*padding-left: 15px;*/
  /*border-left: solid 3px var(--color-primary);*/
}
.titulo-seccion.text-start h2 {
  line-height: 55px;
}
.titulo-seccion.text-start h2::after {
  content: "";
  position: absolute;
  display: block;
  left: 0;
  bottom: -15px;
  height: 2px;
  width: 80px;
  background: var(--color-secondary);
}
/* Fin titulo-seccion */

/* ********** Seccion La empresa ********** */

#la-empresa {
  padding-top: 50px !important;
}



/* ********** Seccion Servicios ********** */

#servicios {
    /*background: var(--color-gris-claro);*/
    /*color: var(--color-gris-medio);*/
}
#servicios h2 {
  /*color: white !important;*/
}

#servicios .card {
  /*background: #fff !important;*/
}
/*#servicios .card:hover {
  -webkit-transform:scale(1.05);
  -moz-transform:scale(1.05);
  -ms-transform:scale(1.05);
  -o-transform:scale(1.05);
  transform:scale(1.05);
}*/

#servicios .card-body {
  padding: 20px;
  margin-top: 10px;
}
#servicios .card-title {
  font-size: 1.8rem;
  /*text-transform: uppercase;*/
  font-weight: bold;
  /*color: white;*/
  margin-bottom: 10px;
}
#servicios .card-text {

}

/* ********** Seccion Obras ********** */

#obras {
    /*background: var(--color-gris-oscuro);*/
}

.card:hover {
  /*transform: scale(1.02);*/
  /*transform: translate(0,-7px);*/
  /*transition-duration: 0.5s;*/
  /*box-shadow: 0 0 20px #00000050;*/
}
.card-img-overlay {
  background: #121d415d;
  /*background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, rgba(9,88,121,0.1) 37%, rgba(0,212,255,0.1) 100%);*/
  transition: 0.3s;
  border-radius: 5px;
}
.card-img-overlay:hover {
  background: #121d41ab;
  /*background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(9,88,121,0.7791317210477942) 37%, rgba(0,212,255,0.10966393393294815) 100%);*/
}

.card-img-overlay::before, .card::before {
	position: absolute;
	content: "";
	left: 0;
	bottom: 0;
	height: 4px;
	width: 0%;
	background-color: var(--color-primary);
	-webkit-transition: all 0.4s ease-in-out;
	transition: all 0.4s ease-in-out;
}
.card-img-overlay:hover::before, .card:hover::before {
	width: 100%;
}
.card-img-overlay .informacion {
  /*background-color: #000;*/
  text-align: left;
  position: absolute;
  bottom: 30px;
  width: 100%;
  
}
.card-img-overlay h2, .card-img-overlay p {
  color: #ffffff !important;
  text-shadow: 0 0 5px #00000050;
}
.card-img-overlay h2 {
  font-size: 1.9rem;
  /*text-transform: uppercase;*/
  line-height: 2rem;
  font-weight: 600;
  letter-spacing: -0.1;
}
.card-img-overlay .card-text {
  /*padding-right: 60px;*/
  font-size: 1.1em !important;
}
@media only screen and (max-width: 960px) {
.card-img-overlay {
  padding: 20px;
}
.card-img-overlay .informacion {
  /*background-color: #fff;*/
  bottom: 40px;
  padding-left: 0px;
}
  .card-img-overlay .informacion h2 {
  font-size: 2.2em;
  line-height: 2.2rem;
}
.card-img-overlay .card-text {
  font-size: 0.9em !important;
  line-height: 1.1em;
}
}

/* ********** Seccion introduccion ********** */

#introduccion {
    background-color: var(--color-primary);
    color: #fff;
    padding: 55px 0 47px 0 !important;
    font-size: 0.95rem;
    margin-bottom: 50px;
}
#introduccion h4 {
  
  color: #fff !important;
}
#introduccion .valores {
  padding-left: 88px;
  position: relative;
  padding-right: 15px;
}
#introduccion .valores img {
  position: absolute;
  left: 0;
  top: 0;
  height: 70px;
  width: 70px;
  text-align: center;
  line-height: 67px;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}
/*#introduccion .valores i {
  font-size: 32px;
  color: #fff;
  position: absolute;
  left: 0;
  top: 0;
  height: 70px;
  width: 70px;
  border: 1px solid #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 67px;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}*/

/*======================================
    Seccion Contenido pagina
========================================*/

#contenido-pagina {
  padding: 80px 0 !important;
}
#contenido-pagina .titulo {
  margin-bottom: 20px;
  color: var(--color-primary) !important;
}
#contenido-pagina ul {
  padding-left: 10px !important;
  margin-left: 3px;
}
#contenido-pagina li {
  list-style: square;
}
.parrafo {
  padding: 0 70px 0 50px;
}
@media (max-width: 767px) {
  .parrafo {
    padding: 0 20px;
  }
}

#contenido-pagina .subrayado::before {
  position: absolute;
  content: "";
  /*left: 0;*/
  bottom: 0;
  height: 2px;
  width: 80px;
  background: var(--color-secondary);
}

.parrafo h2 {
  font-size: 2rem;
  margin-bottom: 30px;
  line-height: 45px;
  position: relative;
  font-weight: 700;
}

.parrafo h2 .accordion-button {
  color: var(--color-primary) !important;
  font-weight: 700;
}
.parrafo h3 {
  position: relative;
  line-height: 4rem;
}

.parrafo .single-list {
  position: relative;
  padding-left: 80px;
  margin-bottom: 30px;
}

.parrafo .single-list:last-child {
  margin-bottom: 0;
}

.parrafo .single-list i {
  font-size: 20px;
  height: 55px;
  width: 55px;
  line-height: 55px;
  text-align: center;
  display: inline-block;
  background: #2042e31c;
  color: #2042e3;
  border-radius: 4px;
  position: absolute;
  left: 0;
  top: 3px;
}

.parrafo .single-list .list-bod h5 {
  display: block;
  margin-bottom: 10px;
  font-size: 20px;
  color: #081828;
}

.parrafo .single-list .list-bod p {
  font-size: 1rem;
  line-height: 24px;
}

/*======================================
    Pagina Onras
========================================*/

#pagina-obras .card:hover {
  transform: none;
}

#pagina-obras .card::before {
	position: absolute;
	content: "";
	left: 0;
	bottom: 0;
	height: 4px;
	width: 100%;
	background-color: var(--color-primary);
	-webkit-transition: all 0.4s ease-in-out;
	transition: all 0.4s ease-in-out;
}
#pagina-obras .card:hover::before {
	width: 100%;
}

/*#pagina-obras #contenido-pagina ul {
  padding-left: 10px !important;
  margin-left: 3px;
}
#pagina-obras #contenido-pagina li {
  list-style: square;
}*/

#pagina-obras .fila-anno {
	margin-bottom: 3rem;
  /* border-bottom: solid 1px #d4d4d4; */
}

#pagina-obras .anno {
	background: rgb(238,238,238);
  background: -moz-linear-gradient(180deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 100%);
  background: -webkit-linear-gradient(180deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 100%);
  background: linear-gradient(180deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#eeeeee",endColorstr="#ffffff",GradientType=1);
  padding: 1.5rem;
}

#pagina-obras .accordion h3 {
	font-size: 1.3rem;
}

.listado-obras .row {
  /* margin-bottom: 1.5rem; */
  border-top: solid 1px #d4d4d4;
  /*background-color: #eeeeee;*/
  padding-top: 1.5rem;
  padding-bottom: 1rem;
}

.listado-obras h3 {
  /* border-bottom: solid 1px var(--color-primary); */
  margin-bottom: 1rem;
}

.listado-obras p {
  margin-bottom: 10px;
}

.listado-obras .btn {
  margin-bottom: 10px;
}

.listado-obras .button .btn {
  display: inline-block;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 500;
  padding: 10px 20px;
  /* background-color: var(--color-primary); */
  background-color: transparent;
  border: solid 1px var(--color-primary);
  color: var(--color-primary);
  
  
}

.listado-obras .button .btn:hover {
  background-color: var(--color-primary);
  color: #fff;
}

/*======================================
    Pagina Contacto
========================================*/

#pagina-contacto h4 {
  text-transform: uppercase;
  font-size: 1.2rem;
  line-height: 1rem;
}

/*======================================
   Clients CSS
========================================*/
.client-logo-section {
  /*background: #F9FAFF;*/
  padding: 0 !important;
}

.client-logo-section .client-logo-wrapper .client-logo-carousel .client-logo {
  padding: 10px;
  text-align: center;
  margin: auto;
}

.client-logo-section .client-logo-wrapper .client-logo-carousel .client-logo img {
  max-width: 220px;
  width: 100%;
  /*opacity: .3;*/
  -webkit-transition: all .3s ease-out 0s;
  transition: all .3s ease-out 0s;
}

.client-logo-section .client-logo-wrapper .client-logo-carousel .client-logo img:hover {
  opacity: 1;
}

/*--------------------------------------------------------------
# Seccion contacto
--------------------------------------------------------------*/

#seccion-contacto {
  padding: 105px 0 !important;
}
.caja-accion {
  /*margin-top: 50px;*/
}
.caja-accion {
  background-color: white;
  border-radius: 10px;
  padding: 50px 60px;
  color: var(--color-default);
}
.caja-accion h2 {
  font-weight: bold;
  font-size: 2rem;
}
.caja-accion .parrafo {
  padding-left: 20px;
  font-size: 1.2rem;
  border-left: solid 2px var(--color-secondary);
}
@media (max-width: 767px) {
  .caja-accion .parrafo {
    padding-left: initial;
    font-size: 1.2rem;
    border: none;
  }
  .caja-accion {
    padding-top: 70px;
  }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
#seccion-footer {
    background-color: var(--color-primary-mas-oscuro);
    color: white;
    padding: 90px 0 70px 0;
}
#seccion-footer .titulo {
  color: #506dff !important;
  font-weight: bold;
  font-size: 1.1rem;
  margin: 3px 0 13px 0;
  text-transform: uppercase;
  letter-spacing: 0.1rem;
  /*border-bottom: solid 2px var(--color-secondary);*/
}
#seccion-footer a:link, #seccion-footer a:active, #seccion-footer a:visited {
  color: white !important;
}
#seccion-footer a:hover {
  color: var(--color-secondary) !important;
}
.parrafo-footer {
  border-left: solid 2px #506dff;
  padding-left: 15px;
  font-size: 0.90rem;
}
@media only screen and (max-width: 960px) {
  .parrafo-footer {
    border-left: none;
    padding-left: 0;
  }
}
.parrafo-footer ol, .parrafo-footer ul {
  padding-left: 0;
  padding-bottom: 0 !important;
}
.parrafo-footer li {
  list-style: none;
  line-height: 1.8rem;
  padding-bottom: 0 !important;
}
.parrafo-footer i {
  margin-right: 5px;
}

footer {
  padding: 20px 0;
  background-color: #0c2238;
  color: white;
  
  font-size: 0.8rem;
  /*border-top: solid 1px var(--color-primary);*/
}
footer .container {
  /*border-top: solid 1px #10395f;*/
  
}
footer a:link, footer a:active, footer a:visited {
  color: #2c7ecf !important;
}
footer a:hover {
  color: var(--color-secondary) !important;
}

/* ********** Back to top button ********** */
#top-page {
  position: fixed;
  right: 15px;
  bottom: 25px;
  z-index: 996;
  background: var(--color-primary);
  width: 40px;
  height: 40px;
  border-radius: 4px;
  cursor: pointer;
  color: white;
  display: none;
  /*padding-top: 12px;*/
  text-align: center;
  box-shadow: 0 0 1rem rgba(35, 38, 45, 0.35) !important;
}
#top-page i {
  font-size: 1.6rem;
  font-weight: 600;
}
#top-page:hover {
  background: var(--color-secondary);
}