@charset "utf-8";
*{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
a{
	color: inherit;
	text-decoration: none;
}
img{
	width: auto;
	height: auto;
}
.hidden{
    display: none;
}
.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;
}
.relative{
	position: relative;
}
.over_hidden{
    overflow: hidden;
}
.center {
    text-align: center;
}
.w100{
	width: 100%;
}
.w90{
	width: 90%;
	margin: auto;
}
.h100{
    height: 100%;
}
.pointer{
	cursor: pointer;
}
.clean_a{
	color: inherit;
	text-decoration: none;
}
.fl_rt{
	float: right;
}
.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_reverse{
	flex-direction: row-reverse;
}
.flex_start, .flex.start{
	justify-content: flex-start;
}
.flex_end, .end{
	justify-content: flex-end;
	align-content: flex-end;
}
.column{
	flex-direction: column;
}
.space_between{
	justify-content: space-between;
}
.flex_col{
	flex-direction: column;
}
.grid{
    display: grid;
}

.bck_img{
	background-size: cover;
	background-position: center;
	position: relative;
}
.ar169{
    width: 100%;
    aspect-ratio: 16 / 9;
}
.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
	*/
    font-size: inherit;
    font-family: inherit;
}
.fullscreen_wrap{
	height: 100vh;
	position: relative;
	overflow: hidden;
}
.bck_video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-height: 100%;
    min-width: 100%;
}
.bck_video_bottom{
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}
.fullscreen_wrap .filter{
    z-index: 15;
    background: #000;
    /*background: radial-gradient(circle,rgba(0,0,0,0),#032439 100%);*/
    background: radial-gradient(circle,rgba(0,0,0,0),#000 100%);
    opacity: .6;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
	/*display: none;*/
}
.fullscreen_wrap .filter_top{
    z-index: 15;
    background: #000;
    /*background: radial-gradient(circle,rgba(0,0,0,0),#032439 100%);*/
    background: linear-gradient(#000, rgba(0,0,0,0));
	height: 300px;
    opacity: .25;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}
.fullscreen_wrap .filter_bottom, .filter_bottom{
    z-index: 15;
    background: #000;
    /*background: radial-gradient(circle,rgba(0,0,0,0),#032439 100%);*/
    background: linear-gradient(rgba(0,0,0,0), #000);
	height: 300px;
    opacity: .6;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}
.card .filter_bottom{
    height: 60%;
}

.bck{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.bck_media{
	object-fit: cover;
    width: 100%;
    height: 100%;
}
.bck_media.abs{
    position: absolute;
}
.h16_9{
    width: 100%;
    aspect-ratio: 16 / 9;
}
.square{
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.rectangle{
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.rectangle_ver{
    width: 100%;
    aspect-ratio: 9 / 16;
    overflow: hidden;
}
.abs{
    position: absolute;
}
.sticky{
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
}
