#filters-modal {
	left: unset; right: 0;
	max-width: 700px;
	
	background-color: #FFF;
	clip-path: inset(0 0 0 100%);
}
.filters-open #filters-modal {
    opacity: 1;
	clip-path: inset(0 0 0 0);
    pointer-events: auto;
}
@media (min-width: 900px)	 { #filters-modal { padding: 0 50px; } }
@media (max-width: 899.99px) { #filters-modal { padding: 0 25px; } }

/*-------------------------------------------------------------------------------------------*/

#filters-modal > .modal-wrapper {
    display: flex; min-height: 100%;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
	
	transform: translateY(50px);
	opacity: 0;
	
	transition:
		transform .4s cubic-bezier(0.38, 0.005, 0.215, 1) .2s,
		opacity	  .4s cubic-bezier(0.38, 0.005, 0.215, 1) .2s;
}
.filters-open #filters-modal > .modal-wrapper {
	transform: translateY(0);
	opacity: 1;
}

/*-------------------------------------------------------------------------------------------*/

#filters-modal > .modal-wrapper > .filters-wrapper {
	width: 100%;
	text-align: left;
}

#filters-modal > .modal-wrapper > .filters-wrapper > .header {
	position: sticky; top: 0px; z-index: 1;
	padding: 45px 0 20px;
	
	background-color: #FFF;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .header > .close-btn {
	position: absolute; right: 0;
	display: block;
	
	background-image: url("../../images/icons/close.svg");
	background-position: center;
	background-size: 20px auto;
	background-repeat: no-repeat;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .header > .title {
	margin: 0;
	font-weight: 400;
}
@media (min-width: 900px) {
	#filters-modal > .modal-wrapper > .filters-wrapper > .header > .close-btn {
		height: 40px; width: 40px;
	}
	#filters-modal > .modal-wrapper > .filters-wrapper > .header > .title {
		padding-right: 60px;
		
		line-height: 40px;
		font-size: 32px;
	}
}
@media (max-width: 899.99px) {
	#filters-modal > .modal-wrapper > .filters-wrapper > .header > .close-btn {
		height: 30px; width: 30px;
	}
	#filters-modal > .modal-wrapper > .filters-wrapper > .header > .title {
		padding-right: 50px;
		
		line-height: 30px;
		font-size: 24px;
	}
}

#filters-modal > .modal-wrapper > .filters-wrapper > .filters {}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter {
	margin-bottom: 10px;
	border-bottom: solid 1px #D2D2D2;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .title {
	position: relative;
	padding: 20px 65px 20px 0;
	
	line-height: 24px;
	font-size: 18px;
	font-weight: 400;
	
	cursor: pointer;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .title:after {
	position: absolute; top: 50%; right: 0px;
	display: block; height: 5px; overflow: hidden;
	
	background-image: url("../../../resources/images/icons/arrow.down.svg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	border-radius: 50%;
	
	transition: transform .2s ease-out;
}
@media (min-width: 900px)	 { #filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .title:after { width: 40px; } }
@media (max-width: 899.99px) { #filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .title:after { width: 30px; } }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter.closed > .title:after { content: ''; transform: translateY(-50%) scale(1); }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter.open > .title:after { content: ''; transform: translateY(-50%) scale(-1); }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	row-gap: 20px;
	margin: 10px 0 35px;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option {
	position: relative;
	display: block;
	pointer-events: none;
}

#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox {
	position: relative;
	display:grid; width: 100%;
	grid-template-areas:
		'range range'
		'label-min label-max';
	align-items: center;
	column-gap: 25px;
	row-gap: 15px;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox:before {
	content: '';
	grid-area: range;
	display: block; height: .8px; width: 100%;
	
	background-color: #000;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > input {
	-webkit-appearance: none;
	grid-area: range;
	margin: 0;
	
	background-color: transparent;
	
	pointer-events: none;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > input::-moz-range-thumb {
    -webkit-appearance: none;
    width: 9px; height: 9px;
	
    background-color: #FFF;
    border: solid 1px #000;
    border-radius: 50%;
	
	cursor: pointer;
	pointer-events: auto;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 9px; height: 9px;
	
    background-color: #FFF;
    border: solid 1px #000;
    border-radius: 50%;
	
	cursor: pointer;
	pointer-events: auto;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > .min-range-label,
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > .max-range-label {
	font-size: 16px;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > .min-range-label:after,
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > .max-range-label:after { content: ' €'; }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > .min-range-label {
	grid-area: label-min;
	text-align: left;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.rangebox > .max-range-label {
	grid-area: label-max;
	text-align: right;
}

#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.selectbox {
	position: relative;
	width: 100%;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.selectbox:after {
	content: '';
	position: absolute; top: 50%; right: 0; transform: translateY(-50%);
	display: block; height: 5px; width: 40px;
	
	background-image: url("../../images/icons/arrow.down.svg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.selectbox > select {
	appearance: none;
	width: 100%;
	margin: 0;
	padding: 0;
	
	background-color: transparent;
	border: none;
	
	line-height: inherit;
	font-family: inherit;
	font-size: 16px;
	font-weight: 300;
	color: rgba(0,0,0,1);
	
	pointer-events: auto;
	cursor: pointer;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.selectbox > select:required:invalid { color: rgba(0,0,0,.5); }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.selectbox > select > option[value=""][disabled] { display: none; }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option.selectbox > select > option { color: rgba(0,0,0,.5); }

#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .checkbox,
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .radiobox {
	position: absolute;
	opacity: 0;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .checkbox + .label,
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .radiobox + .label {
	position: relative;
	display: inline-block;
	padding-left: 40px;
	cursor: pointer;
	pointer-events: auto;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .checkbox + .label:before,
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .radiobox + .label:before {
	content: '';
	position: absolute; top: 50%; left: 0; transform: translateY(-50%);
	box-sizing: border-box;
	display: block; height: 24px; width: 24px;
	padding: 3px;
	
	background-color: rgba(0,0,0,0);
	background-clip: content-box;
	border: solid 1px #000;
	
	line-height: 20px;
	font-size: 16px;
	
	transition: background-color .2s ease-out;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .checkbox + .label:before { border-radius: 3px; }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .radiobox + .label:before { border-radius: 50%; }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .checkbox:not(:checked) + .label:hover:before,
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .radiobox:not(:checked) + .label:hover:before { background-color: rgba(0,0,0,.5); }
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .checkbox:checked + .label:before,
#filters-modal > .modal-wrapper > .filters-wrapper > .filters > .filter > .options > .option > .radiobox:checked + .label:before { background-color: rgba(0,0,0,1); }

#filters-modal > .modal-wrapper > .filters-wrapper > .footer {
	position: sticky; bottom: 0px; z-index: 1;
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	
	background-color: #FFF;
}
#filters-modal > .modal-wrapper > .filters-wrapper > .footer > .cta-btn {}
@media (min-width: 900px)	 { #filters-modal > .modal-wrapper > .filters-wrapper > .footer { padding: 20px 0 45px; } }
@media (max-width: 899.99px) { #filters-modal > .modal-wrapper > .filters-wrapper > .footer { padding: 20px 0 25px; } }