@charset "utf-8";
@font-face{
	src: url("../fonts/MaterialIcons-Regular.ttf");
	font-family: "MaterialIcons-Regular";
}
*{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
a{
	color: inherit;
	text-decoration: none;
}
img{
	width: auto;
	height: auto;
}

/*** page min-height=100vh, footer at bottom ***/
body{ min-height:100vh; margin:0; display:flex; flex-direction:column;  }
footer{  margin-top:auto; }
/*** END: page min-height=100vh, footer at bottom ***/

.clear_1{
	clear: both;
	height: 1px;
}
.clear_5{
	clear: both;
	height: 5px;
}
.clear_10{
	clear: both;
	height: 10px;
	width: 100%;
}
.clear_20{
	clear: both;
	height: 20px;
}
.clear_30{
	clear: both;
	height: 30px;
}
.clear_40{
	clear: both;
	height: 40px;
	width: 100%;
}
.clear_50{
	clear: both;
	height: 50px;
}
.clear_80{
	clear: both;
	height: 80px;
}
.clear_100{
	clear: both;
	height: 100px;
}
.clear_10vh{
	clear: both;
	height: 10vh;
}
.clear_20vh{
	clear: both;
	height: 20vh;
}
.clear_30vh{
	clear: both;
	height: 30vh;
}
.padding_10{
	padding: 10px;
}
.padding_20{
	padding: 20px;
}
.padding_40{
	padding: 40px;
}
.padding_dynam{
	padding: 80px;
}
.pad_5vw{
	padding: 5vw;
}
.pos_relative{
	position: relative;
}
.w100{
	width: 100%;
}
.w90{
	width: 90%;
	margin: auto;
}
.w50{
	width: 50%;
}
.h100{
	height: 100%;
}
.clean_a{
	color: inherit;
	text-decoration: none;
}
.grid{
	display: grid;
}
.grid.column{
	grid-auto-flow: column;
}
.flex{
	display: -webkit-box;   /* OLD - iOS 6-, Safari 3.1-6, BB7 */
	display: -ms-flexbox;  /* TWEENER - IE 10 */
	display: -webkit-flex; /* NEW - Safari 6.1+. iOS 7.1+, BB10 */
	display: flex;         /* NEW, Spec - Firefox, Chrome, Opera */
	flex-flow: row wrap;
    align-content: center;
    justify-content: center;
}
.flex_center{
	flex-flow: row wrap;
    align-content: center;
    justify-content: center;
}
.flex_start{
	justify-content: flex-start;
}
.flex_end{
	justify-content: flex-end;
	align-content: flex-end;
}
.column{
	flex-direction: column;
}
.move_btm{
	margin-top: auto;
}
.space_between{
	justify-content: space-between;
}
.bck_img{
	background-size: cover;
	background-position: center;
	position: relative;
}
.img_full{
	object-fit: scale-down;
    width: 100%;
    height: 100%;
}
.img_full_cover{
	object-fit: cover;
    width: 100%;
    height: 100%;
}
.wrap_img_abs{
	position: relative;
	overflow: hidden;
}
.img_full_cover_abs{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	min-width: 100%;
	min-height: 100%;
}
.bck_full_content{
	position: absolute;
    margin: auto;
    width: 100%;
    height: 100%;
    right: -100%;
    bottom: -100%;
    top: -100%;
    left: -100%;
    object-fit: cover;
	z-index: 2;
}

form input:not([type='checkbox']), form textarea{
	-webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box;    
    box-sizing: border-box;
	/* 
	in questo modo posso impostare width: 100% o 50% senza dovermi preoccupare dei padding o dei bordi dei tag input e textarea, così non devo usare il calc per sottrarre le larghezze dei padding e dei bordi
	*/
}

.material-icons {
	font-family: 'MaterialIcons-Regular';
	font-weight: normal;
	font-style: normal;
	font-size: 24px;  /* Preferred icon size */
	display: inline-block;
	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
	word-wrap: normal;
	white-space: nowrap;
	direction: ltr;

	/* Support for all WebKit browsers. */
	-webkit-font-smoothing: antialiased;
	/* Support for Safari and Chrome. */
	text-rendering: optimizeLegibility;

	/* Support for Firefox. */
	-moz-osx-font-smoothing: grayscale;

	/* Support for IE. */
	font-feature-settings: 'liga';
	
	vertical-align: middle;
}
.pointer{
	cursor: pointer;
}
.hide_overflow{
	overflow: hidden;
}