.wrapper {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 20px;
	row-gap: 0;
	max-width: 1280px;
	margin: 10px auto 20px auto;
}

hgroup {
	grid-column: span 2;
	display: flex;
	flex-direction: row;
    justify-content: space-between;
	margin: 15px 0;
	padding: 0 5px;
	border-bottom: 2px solid var(--s);
}

hgroup .tipo_obra {
	font-size:20px;
	font-weight:500;
}
	
hgroup h1 {
	font-size: 36px;
	font-weight: 700;
}
	
hgroup .place {
	font-size: 22px;
	font-weight: 500;
	text-align: right;
	padding-right: 10px;
	align-self: end;
	margin-bottom: 3px;
}

main h2 {
	font-size:24px;
	line-height:45px;
	background: var(--s);
	padding: 0 15px;
	position: relative;
}

main .txt_ficha {
	background: var(--sl);
	line-height: 25px;
	display: block;
}

main .txt_ficha p {
	font-size: 16px;
	margin-bottom: 10px;
}

main .contenedor {
	padding: 10px 25px;
}

.div_img_principal {
	margin-top: 20px;
}

.img_principal {
	width:100%;
}

.leyenda  {
	font-size: 14px;
	margin-bottom: 20px;
}

aside img {
	width:100%;
}

aside .leyenda  {
	text-align: right;
}

@media screen and (max-width: 1280px) { /*---1024---*/

	.wrapper {
		padding: 0 15px;
	}
}

@media screen and (max-width: 768px) { /*---887----*/

	hgroup .tipo_obra {
		font-size:18px;
	}
	
	hgroup .Obra {
		font-size:30px;
	}
	
	hgroup .place {
		font-size:18px;
	}
	
	.leyenda {
		font-size:12px;
	}
}

@media screen and (max-width: 640px) { /*---640----*/

	hgroup .tipo_obra {
		font-size:16px;
	}
	
	hgroup .Obra {
		font-size:26px;
	}
	
	hgroup .place {
		font-size:14px;
		padding-right: 0px
	}
	
	main {
		font-size:16px;
	}

	main .contenedor {
		padding: 10px;
	}

	main h3 {
		font-size: 18px;
	}

	main .txt_ficha p {
		font-size: 14px;
	}
	
	main h2 {
		font-size:22px;
		line-height:40px;
	}
}

@media screen and (max-width: 480px) { /*---480----*/

	hgroup .place {
		display: none;
	}

	main {
		display: block;
		width: 100%;
	}

	main .txt_ficha p {
		font-size: 14px;
		line-height: 20px;
	}

	main h3 {
		font-size: 16px;
		margin-top: 5px;
	}

	aside {
		width: 100%;
	}

	aside .div_imagen {
		padding-top:0px;
	}

	.leyenda, 
	.leyenda {
		text-align: left;
		margin-bottom: 15px;
	}

}

@media screen and (max-width: 375px) { /*---375----*/

	.wrapper {
		display: block;
	}
	
	hgroup {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		margin: 15px 0;
		padding: 0;
	}

	hgroup .Obra {
		font-size: 22px;
		text-align: center;
	}

	hgroup .tipo_obra {
		font-size: 14px;
		text-align: center;
	}
	
	main h2 {
		font-size:21px;
	}
}