/******************************************************************/
/********************** SPINNER *****************************/
/****************************************************************/

 /****** CONTENEDORES ******/
.snippet{
    position: relative;
    background: transparent;
    border-radius: .25rem;
    width: 100%;
    height: auto;
}

.stage {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2rem 0;
  margin: 0 -6%;
  overflow: hidden;
  width: 100%;
 }

 /******  BOLAS ******/
.dot-falling {
	position: relative;
    left: -9999px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #3fc8eb;
    background-color: var(--color-ciudad);
    color: #3fc8eb;
    color: var(--color-ciudad);
    box-shadow: 9999px 0 0 0 var(--color-ciudad);;
    animation: dotFalling 1s infinite linear;
    animation-delay: .1s;
}

.dot-falling::before,
.dot-falling::after {
	content: '';
	display: inline-block;
	position: absolute;
	top: 0;
	width: 20px;
	height: 20px;
}

.dot-falling::before {
	border-radius: 50%;
	background-color: #3fc8eb;
	color: #3fc8eb;
	animation: dotFallingBefore 1s infinite linear;
	animation-delay: 0s;
	left: -20px;
}

.dot-falling::after {
	border-radius: 50%;
	background-color: #3fc8eb;
	color: #3fc8eb;
	animation: dotFallingAfter 1s infinite linear;
	animation-delay: .2s;
	left: 20px;
}

/****** ANIMACIONES ******/

@keyframes dotFalling {
  0% {
    box-shadow: 9999px 15px 0 0 rgba(63, 200, 235, 0);
  }
  25%,
  50%,
  75% {
    box-shadow: 9999px 0 0 0 background-color: var(--color-ciudad);;
  }
  100% {
    box-shadow: 9999px -15px 0 0 rgba(63, 200, 235, 0);
  }
}

@keyframes dotFallingBefore {
  0% {
    box-shadow: 9984px -15px 0 0 rgba(63, 200, 235, 0);
  }
  25%,
  50%,
  75% {
    box-shadow: 9984px 0 0 0 background-color: var(--color-ciudad);;
  }
  100% {
    box-shadow: 9984px 15px 0 0 rgba(63, 200, 235, 0);
  }
}

@keyframes dotFallingAfter {
  0% {
    box-shadow: 10014px -15px 0 0 rgba(63, 200, 235, 0);
  }
  25%,
  50%,
  75% {
    box-shadow: 10014px 0 0 0 background-color: var(--color-ciudad);;
  }
  100% {
    box-shadow: 10014px 15px 0 0 rgba(63, 200, 235, 0);
  }
}

/******************************************************************/
/********************** OPTIMAL PATH *****************************/
/****************************************************************/

#content-web2020 .form-optimal-path .button-trayecto button,
#content-web2020 .form-optimal-path .button-trayecto button:hover {
	background: #ff595a;
	background: var(--bck-botones);
	border-color: var(--bck-botones);
	color: #fff;
	color: var(--color-botones);
    height: 70px;
    border-radius: 0;
    box-shadow: none;
    font-size: 1.429rem;
    font-weight: bold;
    width: 100%;
}

.form-optimal-path .inputs-container h3 {
	font-size: 1.3rem;
}

.form-optimal-path .routes-results {
	clear: both;
	margin: 5px -10px -25px -10px;
    background: #FFF;
    float: left;
    display: flex;
    width: calc(100% + 20px);
    box-shadow: 0 3px 20px 0 rgba(36,37,41,0.2);
}

.form-optimal-path .list-results,
.form-optimal-path .map-results {
	width: 50%;
	clear: both;
}

.form-optimal-path .list-results.error.invisible {
	display: none;
}

.form-optimal-path .list-results.error {
	width: 100%
}

.form-optimal-path .list-results.error h3 {
	text-align: center;
	font-size: 20px;
}

.form-optimal-path .list-results.error .no-routes-error-icon {
	font-size: 60px;
    text-align: center;
    padding: 10px;
    opacity: .4;
}

.form-optimal-path .invisible {
	height: 0;
	width: 0;
	display: none;
}

.form-optimal-path .header-list {
    border-bottom: 1px solid #E6E6E6;
    padding: 20px 25px
}

.form-optimal-path .header-list h3 {
    font-size: 25px;
    margin-bottom: 3px;
    font-weight: bold
}

.form-optimal-path .header-list h4 {
    font-size: 16px;
    margin: 0
}

.form-optimal-path .body-list {
    display: flex;
    flex-direction: column
}

.form-optimal-path .body-list .info-route {
    padding: 10px 25px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    border-bottom: 1px solid #E6E6E6;
}

.form-optimal-path .body-list .info-route .icons {
    width: calc(100% - 300px);
    margin-right: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
}
.form-optimal-path .body-list .info-route .icons:before {
	content:' ';
	border-bottom: 4px dotted #e6e6e6;
	position: absolute;
	width: 100%;
}

.form-optimal-path .body-list .info-route .icons.icons--only-child:before {
	border-bottom: 0px;
}

.form-optimal-path .body-list .info-route .icons div {
	background: #FFF;
	z-index: 1;
}

.form-optimal-path .body-list .info-route .icons img {
	height: 20px;
	margin: 0 5px;
}

.form-optimal-path .body-list .info-route .icons div:last-of-type img { margin-right: 0;  }
.form-optimal-path .body-list .info-route .icons div:first-of-type img { margin-left: 0;  }

.form-optimal-path .body-list .info-route .icons img[src*="bus"] {
	width: 25px;
	margin: 0 10px;
}

.form-optimal-path .body-list .info-route .timetable {
    display: flex;
    justify-content: space-between;
    min-width: 115px
}

.form-optimal-path .body-list .info-route .timetable .way-out,.form-optimal-path .body-list .info-route .timetable .arrival {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#content-web2020 .form-optimal-path .body-list .info-route .timetable .way-out p,
#content-web2020 .form-optimal-path .body-list .info-route .timetable .arrival p {
    font-size: 12px;
    margin-bottom: 0;
    font-weight: bold
}

.form-optimal-path .body-list .info-route .timetable .way-out span,
.form-optimal-path .body-list .info-route .timetable .arrival span {
    font-size: 17px;
    font-weight: light
}

.form-optimal-path .body-list .info-route .total-time {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 140px;
}

#content-web2020 .form-optimal-path .body-list .info-route .total-time p {
    font-size: 12px;
    margin: 0;
}

.form-optimal-path .body-list .info-route .total-time span {
    font-size: 20px;
    font-weight: bold
}

.form-optimal-path .body-list .info-route i,
.form-optimal-path .body-list .info-route svg {
    color: #38333A;
    width: 5px;
}

.form-optimal-path .footer-list {
    padding: 20px 25px;
    background: #1f405b;
    display: flex;
    justify-content: center;
    align-items: center
}

.form-optimal-path .footer-list p {
    font-size: 16px;
    text-transform: uppercase;
    color: #fff;
    font-weight: bold
}

.form-optimal-path .footer-list p i,
.form-optimal-path .footer-list p svg {
    margin-left: 15px
}

.form-optimal-path .route-detail .content-route {
    width: 100%;
    padding: 15px;
    background: #F9F7F5;
}

.form-optimal-path .route-detail .content-route .row-route {
    display: flex;
    flex-direction: row;
    width: 100%;
    align-items: center;
    margin: 8px 0;
}

.form-optimal-path .route-detail .content-route .row-route .time-mode {
    min-width: 100px;
    font-size: 18px;
    text-align: center
}

.form-optimal-path .route-detail .content-route .row-route .points {
    width: 30px;
    height: 30px;
    border-radius: 100%;
    margin-right: 20px
}

.form-optimal-path .route-detail .content-route .row-route .points.grey {
    background: #9b9b9b;
    border: 1px solid #c7c7c7
}

.form-optimal-path .route-detail .content-route .row-route .points.blue {
    background: #8ed9f6;
    border: 1px solid #00a3e2
}

#content-web2020 .form-optimal-path .route-detail .content-route .row-route .description .title {
    font-size: 16px;
    margin-bottom: 3px;
}

#content-web2020 .form-optimal-path .route-detail .content-route .row-route .description .subtitle {
    font-size: 13px;
    font-weight: lighter;
    margin-bottom: 3px;
}

.form-optimal-path .route-detail .content-route .row-route .icon {
    text-align: center;
    min-width: 100px
}

.form-optimal-path .route-detail .content-route .row-route .lines {
    width: 2px;
    height: 40px;
    margin-left: 14px
}

.form-optimal-path .route-detail .content-route .row-route .lines.grey {
    border: 1px solid #9b9b9b;
    margin-right: 35px
}

.form-optimal-path .route-detail .content-route .row-route .lines.blue {
    border: 1px solid #00a3e2;
    margin-right: 35px
}


/**************************************************************************** SOLO DESKTOP ******************************************************************************/

@media screen and (min-width: 992px){

/******************************************************************/
/****************** CABECERA DE LINEAS ***************************/
/****************************************************************/

	.cabecera-servicios {
	    padding-bottom: 20px;
	}

	.buscador-lineas {
	    width: 40%;
	    float: right;
	    margin-top: -68px;
	    margin-bottom: 40px;
	}

/*****************************************************************/
/****************** LISTADO DE LINEAS ***************************/
/***************************************************************/

	.listado-lineas {
		padding: 0;
		margin-bottom: 30px;
	}

	.listado-lineas .bloque-linea {
	    width: 32%;
	    margin: 10px .6%;
	}

/************************************************************************/
/********************** RUTA DE LAS LÍNEAS *****************************/
/**********************************************************************/

	.route-lines .stops-container {
		padding-right: 0;
	}

	.route-lines .map-container {
		padding-left: 0;
	}

/******************************************************************/
/********************** OPTIMAL PATH *****************************/
/****************************************************************/

	.form-optimal-path > .form {
		background: #36333a;
	    padding: 20px 15px 25px;
	}

	.form-optimal-path .inputs-container h3 {
		font-size: 1.3rem;
		margin-bottom: 15px;
		color: #FFF;
	}

	#content-web2020 .form-optimal-path .inputs-container .form-group {
		width: calc(33.33% - 6px);
    	margin-right: 6px;
	}

	#content-web2020 .form-optimal-path .inputs-container .form-group input,
	#content-web2020 .form-optimal-path .inputs-container .form-group select {
		height: 70px;
		padding-left: 15px;
    	padding-right: 15px;
	}

	#content-web2020 .form-optimal-path .inputs-container .form-group label {
		left: 15px;
	    top: 16px;
	}

	#content-web2020 .form-optimal-path .button-trayecto {
		width: 25%;
		padding-right: 15px !important;
    	padding-left: 0;
    	padding-top: 36px;
	}

	#content-web2020 .form-optimal-path .oculto {
		display: none;
	}

	/************** OPTIMAL PATH EN BLOQUE CABECERA ******************/
	#content-web2020 .buscador-cabecera {
		margin-top: calc(-160px - 3vh);
	}
}

/**************************************************************************** TABLET Y MOVIL ******************************************************************************/

@media screen and (max-width: 991px){

/******************************************************************/
/****************** CABECERA DE LINEAS ***************************/
/****************************************************************/

	.buscador-lineas {
	    margin-bottom: 15px;
	}

/******************************************************************/
/********************** OPTIMAL PATH *****************************/
/****************************************************************/
	.form-optimal-path {
		padding-top: 15px;
    	background: #FFF;
	}
	.form-optimal-path .bloque-formulario {
		background: #FFF;
	    padding: 10px 15px 0;
	    margin-top: -20px;
	}

	.form-optimal-path .inputs-container h3 {
		margin-bottom: 5px;
	}

	.form-optimal-path .button-trayecto {
		padding: 0;
    	margin-bottom: 0;
	}

	.form-optimal-path .header-list h3 {
		font-size: 18px;
	}

	.form-optimal-path .routes-results {
		margin: 0;
    	width: 100%;
    	flex-wrap: wrap;
	}

	.form-optimal-path .list-results,
	.form-optimal-path .map-results {
		width: 100%;
	}

	.form-optimal-path .map-results {
		height: 50vh;
	}

	.form-optimal-path .body-list .info-route .icons {
		display: none;
	}

}

div.form-optimal-path.row {
	word-wrap: initial;
}

/**************************************************************************** SOLO MOVIL ******************************************************************************/

@media screen and (max-width: 767px){

/******************************************************************/
/****************** CABECERA DE LINEAS ***************************/
/****************************************************************/

	.buscador-lineas {
	    padding-bottom: 15px;
    	background: #FFF;
	}

	.cabecera-servicios { padding-bottom: 15px; }

	.titulo-cabecera-servicios {
        padding-left: 63px;
    }

    .cabecera-servicios .titulo-cabecera-servicios H1 {
        font-size: 18px;
    }

    .cabecera-servicios:before {
        font-size: 33px;
        top: 16px;
        left: 20px;
    }

/*****************************************************************/
/****************** LISTADO DE LINEAS ***************************/
/***************************************************************/

    .listado-lineas .bloque-linea .nombre-linea {
        font-size: 16px
    }

/************************************************************************/
/********************** RUTA DE LAS LÍNEAS *****************************/
/**********************************************************************/

	.options-lines .wrapper {
		background: #38333b;
	}

	.options-lines .number-line {
        line-height: 80px;
        font-size: 30px;
        height: auto;
        min-height: 80px;
    }

    .options-lines .description-line {
        position: relative;
        padding: 15px;
        padding-bottom: 50px;
    	height: auto;
    	min-height: 80px;
    }

    .description-line .itineraries {
    	width: 100%;
    }

    #content-web2020 .options-lines .description-line p {
        font-size: 1.3rem;
        margin-bottom: 12px;
    }

    #content-web2020 .options-lines .description-line p.inactive-itinerary {
    	font-size: 15px;
    	margin-bottom: 8px;
    }

    .options-lines .description-line small {
        font-size: 12px;
        margin-bottom: 15px;
    }

    .options-lines a.volver {
    	position: absolute;
    	bottom: 0;
	    z-index: 1;
	    padding-top: 10px;
	    padding-bottom: 17px;
	    padding-right: 60px;
	    font-size: 16px;
    }


	.route-lines .head-route,
	.route-lines .list-route {
		padding: 5px 10px 4px 7px;
	}

	.route-lines .head-route h5 {
		font-size: 1.4rem;
	}

	.route-lines .head-route h5 svg {
		margin-right: 12px;
	}

	.back-lines {
		width: 100%;
		order: -1;
	}

	.lines-button {
		padding: 0 15px;
	}

}


/**************************************************************************** SOLO MOVIL EN LANDSCAPE ******************************************************************************/

@media screen and (max-width: 450px) {
/************************************************************************/
/********************** RUTA DE LAS LÍNEAS *****************************/
/**********************************************************************/

/***** PROXIMAS LLEGADAS ******/

	.next-arrivals .next-arrivals-list-item {
		    align-items: center;
	}

	.next-arrivals .times {
		padding-left: 0;
    	float: left;
	}

	.next-arrivals .times span {
		width: 35px;
	    padding-left: 0;
	    padding-right: 0;
	}

	.next-arrivals .destiny {
		width: calc(100% - 130px);
	    margin: 0 5px;
	    padding-left: 0;
	    padding-right: 0;
	    display: inline-block;
	}

	.next-arrivals conections { display: inline-block; }

	.next-arrivals .line {
		float: right;
	}
}

.lineaBus span {
  background-color:rgb(255,255,255,0.75);
  padding:0 12px;
  border-radius:2px
}
.lineaBus div {
  border-radius:4px
}
.lineaBus div span {
  background-color:rgb(255,255,255,0.75);
  padding:0 12px;
  border-radius:2px
}