/* Estilo exclusivo seccion Inicio 'Welcome' */
.body--full{
	position: fixed;
	top: 3rem;
	left: 0;
	right: 0;
	bottom: 0;
	overflow-y: scroll;
	background-color: var(--color-lightblue-lighter);
	display: flex;
	align-items: center;
	justify-content: center;
	padding-bottom: 3rem;
}

/* Login */
.welcome .app-login{
	background-color: #fff;
	padding: 3rem 4rem;
	border-radius: 1rem;
	filter: drop-shadow(2px 8px 10px rgb(178, 183, 208));
}

.welcome .app-login .header{
	margin-bottom: .8rem;
}

.welcome .app-login .logo{
	font-family: 'Roboto Mono', sans-serif;
	text-transform: uppercase;
	font-weight: 500;
	font-size: 1.4rem;
	text-align: center;
}

.welcome .app-login .body{
	font-size: 1rem;
	margin-bottom: 2rem;
}

.welcome .app-login .title{
	text-align: center;
	margin-bottom: 1.5rem;
}

.welcome .app-login .item{
	margin: 1.5rem 0;
}

.welcome .app-login .subtitle{
	font-family: 'Roboto Mono', sans-serif;
	font-weight: 500;
	margin-bottom: .2rem;
}

.welcome .app-login input[type="text"], .welcome .app-login input[type="password"]{
	width: 17rem;
	background-color: transparent;
	border: .1rem solid var(--color-lightblue);
	border-radius: .15rem;
	min-height: 1.8rem;
}

.welcome .app-login select{
	width: 17rem;
	background: url('data:image/svg+xml, <svg fill="%234851E6" viewBox="0 0 100 50" xmlns="http://www.w3.org/2000/svg"><path d="M 0 0 L 50 50 L 100 0 z"/></svg>') no-repeat calc(100% - .4rem) center;
	background-size: .6rem;
	border: .1rem solid var(--color-lightblue);
	border-radius: .15rem;
	min-height: 1.8rem;
	padding: .25rem 1.2rem .2rem .2rem;
}

.welcome .app-login .select--multiple-option{
	width: 17rem;
}

.welcome .app-login .select--multiple-option .hidden-input{
	height: 0;
	padding: 0;
}

.welcome .app-login .select--multiple-option .header{
	background: url('data:image/svg+xml, <svg fill="%234851E6" viewBox="0 0 100 50" xmlns="http://www.w3.org/2000/svg"><path d="M 0 0 L 50 50 L 100 0 z"/></svg>') no-repeat calc(100% - .4rem) center;
	background-size: .6rem;
	border: .1rem solid var(--color-lightblue);
	border-radius: .15rem;
	padding: .25rem 1.2rem .2rem .2rem;
	margin-bottom: 0;
}

.welcome .app-login .select--multiple-option input{
	border: 1px solid var(--color-lightblue);
}

.welcome .app-login .error{
	font-size: .8rem;
	color: #999;
	text-align: center;
}

.welcome .app-login .error::before{
	content: '';
	display: inline-block;
	vertical-align: middle;
	height: 1.3rem;
	width: 1.3rem;
	background: url('../images/icon--triangle-exclamation--red.svg') no-repeat center;
	background-size: 1.4rem;
	margin-right: .2rem;
}

.welcome .app-login a{
	display: block;
	font-size: .8rem;
	text-align: center;
	text-decoration: underline;
	transition: color .1s ease-in-out;
	cursor: pointer;
}

.welcome .app-login a:hover{
	color: var(--color-lightblue-darker);
}

.welcome .app-login .footer{
	display: flex;
	justify-content: space-around;
}


/* Mapa de la app */
.welcome .app-map{
	position: relative;
}

.welcome .app-map .map--title{
	height: 15rem;
	width: 15rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: Roboto, sans-serif;
	font-weight: 600;
	font-size: 1.5rem;
	letter-spacing: .05rem;
	background: linear-gradient(130deg, var(--color-turquoise), var(--color-lightblue));
	border-radius : 68% 100% 66% 99% / 61% 86% 65% 95%;
	animation: blob-1 12s ease-in-out infinite;
	transition: width .8s ease-in-out, height .8s ease-in-out;
	cursor: pointer;
}

.welcome .app-map:hover .map--title{
	height: 20rem;
	width: 20rem;
}

.welcome .app-map:hover .map--item{
	opacity: 1;
}

.welcome .app-map .map--item{
	height: 10rem;
	width: 10rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Roboto Mono', Roboto, sans-serif;
	font-weight: 600;
	font-size: 1rem;
	background-color: #fff;
	border-radius : 50% 50% 30% 70% / 63% 50% 50% 50%;
	opacity: 0;
	animation: blob-2 10s ease-in-out infinite;
	transition: opacity 1.1s ease-in-out, text 1.1s ease-in-out;
	cursor: pointer;
	z-index: -1;
}

.welcome .app-map .map--item:hover{
	text-decoration: underline;
}

.welcome .app-map .map--item .content{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.welcome .app-map .map--item[disabled]{cursor: text; text-decoration: none;}
.welcome .app-map .map--item[disabled] .content{opacity: .3;}

.welcome .app-map .map--item object{
	width: 3.5rem;
	height: 3.5rem;
	margin-bottom: .5rem;
}

.welcome .app-map .map--item.item-01{
	position: absolute;
	top: -30%;
	left: 70%;
}

.welcome .app-map .map--item.item-02{
	position: absolute;
	top: 30%;
	left: -45%;
}

.welcome .app-map .map--item.item-03{
	position: absolute;
	top: 90%;
	left: 50%;
}

.welcome .app-map .map--item:hover .map--sub-item{
	opacity: 1;
}

.welcome .app-map .map--sub-item{
	height: 10rem;
	width: 10rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Roboto Mono', Roboto, sans-serif;
	font-size: .9rem;
	font-weight: 300;
	border-radius : 50% 50% 30% 70% / 63% 50% 50% 50%;
	animation: blob-2 10s ease-in-out infinite;
	transition: all .4s ease-in-out;
	opacity: 0;
	z-index: -2;
}

.welcome .app-map .map--sub-item li{
	margin-bottom: .5rem;
	cursor: pointer;
}
.welcome .app-map .map--sub-item li:last-child{margin-bottom: 0;}
.welcome .app-map .map--sub-item li:hover{text-decoration: underline;}

.welcome .app-map .map--sub-item.item-01{
	position: absolute;
	top: 0%;
	left: 100%;
	animation-delay: -3s;
}

.welcome .app-map .map--sub-item.item-02{
	position: absolute;
	top: 0%;
	left: -100%;
	animation-delay: -3s;
}

.welcome .app-map .map--sub-item.item-03{
	position: absolute;
	top: 0%;
	left: 100%;
	animation-delay: -3s;
}


@keyframes blob-1 {
	0% {
		border-radius : 68% 100% 66% 99% / 61% 86% 65% 95%;
	}
	
	25% {
		border-radius : 90% 42% 100% 38% / 67% 47% 88% 48%;
	}
	
	50% {
		border-radius : 33% 75% 28% 61% / 51% 70% 44% 38%;
	}
	
	75% {
		border-radius : 95% 45% 97% 48% / 100% 97% 52% 66%;
	}
	
	100% {
		border-radius : 68% 100% 66% 99% / 61% 86% 65% 95%;
	}
}

@keyframes blob-2 {
	0% {
		border-radius : 50% 50% 30% 70% / 63% 50% 50% 50%;
	}
	
	33% {
		border-radius : 81% 54% 36% 70% / 63% 50% 65% 68%;
	}
	
	66% {
		border-radius : 81% 54% 91% 70% / 72% 75% 65% 68%;
	}
	
	100% {
		border-radius : 50% 50% 30% 70% / 63% 50% 50% 50%;
	}
}