:root {
	--blanco:#ffffff;
	--oscuro:#212121;
	--primario:#ffc107;
	--secundario:#0097a7;
	--gris:#757575;
	--griscalro:red;
}

/* Globales */

html
{
	font-size: 62.5%; /* Dar proporcion de 10px = 1 rem */
	box-sizing:border-box; /* hack para box model */
	scroll-snap-type: y mandatory;
	scroll-snap-stop: always;
	
	
	
}


/** Scrol Snap ****/
.servicios,.navegacion-principal,.formulario
{

	
	scroll-snap-align: center;
	scroll-snap-stop: always;
}




*, *:before,*:after   /* hack para box model */
{
	
	box-sizing: inherit;
}
body
{
	font-family: 'Krub', sans-serif;
	font-size: 16px; /* 1rem =10px */
	background-image: linear-gradient(to top, darkgray 0%, var(--blanco) 100%); /* css matic cssmatic.com ....caniuse.com */
	
}  

.boton
{
 	background-color: var(--secundario);
	color: var(--blanco ); /* Color de texto */
	padding: 1rem 3rem;
	margin-top: 3rem;
	font-size: 2rem;
	text-decoration: none;
	text-transform: uppercase;
	font-weight: bold;
	border-radius: 0.5rem;
	width: 90%;
	text-align: center;
	border: none;
	
}
.boton:hover
{
	cursor: pointer;
	
}
@media (min-width: 768px)
{
	
	.boton
	{
		
		width: auto;
	}
	
}


.contenedor{
	
	max-width: 120rem;
	margin: 0 auto;
}

.sombra
{
	
-webkit-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.48);
-moz-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.48);
box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.48);
	background-color: var(--blanco);
	padding: 2rem;
	border-radius: 1rem;
}


/* Tipografia */
h1
{
	font-size: 3.8rem;
}
h2
{
	font-size: 2.8rem;
}
h3
{
	font-size: 1.8rem;	
}

h1,h2,h3
{
	text-align: center;
}



/* Titulos */


.titulo span{
	font-size: 2rem;
	
}


/*** utilidades ***/
.w-100
{
	width: 100%;
	
}
@media(min-width:768px)
{
	.w-100
	{
		width: auto;
		
	}
	
}
.flex
{
	display: flex;
	
}
.alinear-derecha
{
	
	justify-content: flex-end;
}


/* Navegacion Principal */

.navegacion-principal{
	display: flex;
	flex-direction: column;
	
}

@media (min-width:480px) /*480 telefonos, 768 tabletas, 1140 pc-lap, 1400 o 1440 */
{
	.navegacion-principal{
		flex-direction: row;
		justify-content: space-between;
	}
	
	
}
.navegacion-principal a{
	color: var(--blanco);	
	text-decoration: none;
	font-size: 2rem;
	font-weight: bold;
	padding: 1rem;
}
.navegacion-principal a:hover{
	
	background-color: var(--primario);
	color: var(--oscuro);
}


.nav-bg{
	background: var(--secundario);
	
}



/* Hero  */
.hero
{
background-image:url("../images/hero.jpg");
background-repeat: no-repeat;
background-size: cover;
height: 450px;
position: relative; /* siempre se aplica esta condicion en el padre  para que el hijo pueda posicionarse */
	margin-bottom: 2rem;
}
.contenido-hero
{
	position: absolute; 
	background-color:rgba(0,0,0,0.7);
	width: 100%;
	height: 100%;
	
	/* para alinear verticalmente u horizontalmente */ 
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	
	
}
.contenido-hero h2, .contenido-hero p
{
	
	color: var(--blanco );
}

.ubicacion
{
	display: flex;
	align-items: flex-end; /* para alinear verticalmente siempre y cuando no se modifique flex-direction */
	
}


.servicios, .navegacion-principal, .formulario
{
	scroll-snap-align: center;
	scroll-snap-stop: always;
	
}

/* Servicios */

@media(min-width: 768px)
{
	.servicios
{
	
	display: grid; /*Despliega las opciones de grid .. como con display:flex */ 
	grid-template-columns: repeat(3, 1fr); /* 1fr .. 1 fraccion */ 
	column-gap: 1rem; /* separacion de columnas dentro del grid */
	 /* grid: 200px 800px/ 300px 300px; */  
	
}


}



.servicio
{
	
display: flex;
	flex-direction: column;
	align-items: center;
}
.servicio h3
{
	
	color: var(--secundario);
	font-weight: normal;
}
.servicio p
{
	
	line-height: 2;
	text-align: center;
}
.servicio .iconos
{
	
	height: 15rem;
	width: 15rem;
	background-color: var(--primario);
	border-radius: 50%;
	display: flex; /*por default es alineacion row */
	justify-content: space-evenly; /* alineado horizontal */
	align-items: center; /* alineado vrtical */ 
		
}

/* contacto */ 

.formulario
{
	
	background-color: var(--gris);
	width: min(60rem, 100%); /* toma medidas minimas para el ancho */
	margin: 0 auto;
	padding: 2rem;
	border-radius: 1rem;
	
}
.formulario fieldset
{
	
	border:none;
}
.formulario legend
{
	
	text-align: center;
	font-size: 1.8rem;
	text-transform: uppercase;
	margin-bottom: 2rem;
	color: var(--primario);
}

@media (min-width: 768px)
{
 .contenedor-campos
{
   display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto auto 20rem;
	column-gap: 1rem;
	
	
}
	
	.campo:nth-child(3),.campo:nth-child(4) /* nth-child para seleccionar un hijo de la clase con un indexado*/
	{
		
		grid-column: 1/3; /*para extender la seccion por dendro del grid  */
	}
	
	
}

.campo
{
	margin-bottom: 1rem;
	
}
.campo label
{
	color: var(--blanco);
	font-weight: bold;
	margin-bottom: .5rem;
	display: block;
	
	
}
.campo textarea
{
	
	height: 20rem;
}
.input-text
{
	width: 100%;
	border:none;
	padding: 1.5rem;
	border-radius: .5rem;
	
}

/***** fotter ******/

.footer{
	
	text-align: center;
}


