:root {
	--fc-thelis-principale: #2A6454;
	--fc-thelis-secondaire: #78BDBC;
	--fc-thelis-lightgrey: #E9E9E9;
}
/* modalethelis */
#modalethelis {
		font-family: "Open Sans", "Arial", sans-serif;
		display: block;
		position: fixed;
		right: 0;
		top: 0;
		bottom: 0;
		width: 100%;
		height: 100vh;
		margin: 0;
		padding: 16px;
		background: white;
		box-sizing: border-box;
		border-left: solid 1px var(--fc-thelis-lightgrey);
		z-index: 100;
		overflow-x: auto;
		transform: translate(100%);
		transition: all .3s ease;
}

#modalethelis.ouvert {
		transform: translate(0);
}

@media screen and (min-width: 1050px) {
		#modalethelis {
				width: 1050px;
		}
}

@media screen and (min-width: 768px) {
		#modalethelis {
				min-width: 720px;
		}
		#modalethelis.ouvert {
				box-shadow: -4px 0 4px rgba(0, 0, 0, 0.14);
		}
}

@media screen and (min-width: 768px) {
		#modalethelis {
				min-width: 720px;
		}
		#modalethelis.ouvert {
				box-shadow: -4px 0 4px rgba(0, 0, 0, 0.14);
		}
}

.admin-bar #modalethelis,
.admin-bar .modalesinglethelis {
		top: 32px;
		height: calc( 100vh - 32px);
}

@media screen and (max-width: 782px) {
		.admin-bar #modalethelis,
		.admin-bar .modalesinglethelis {
				top: 46px;
				height: calc( 100vh - 46px);
		}
}

.modalesinglethelis .titre,
#modalethelis .titre {
		color: var(--fc-thelis-secondaire);
		font-size: 24px;
		font-weight: 700;
		line-height: 1.1;
		text-transform: uppercase;
}

/* loader */
.thelis-loader {
		width: 0;
		margin: 0 auto;
}

.thelis-loader > i {
		position: absolute;
		display: inline-block;
		width: 18px;
		height: 18px;
		border-radius: 50%;
		background: var(--fc-thelis-secondaire);
}

.thelis-loader > i:first-child {
		transform: translate(-30px, 0);
		-o-transform: translate(-30px, 0);
		-ms-transform: translate(-30px, 0);
		-webkit-transform: translate(-30px, 0);
		-moz-transform: translate(-30px, 0);
		animation: loader-animation-1 1.45s linear infinite;
		-o-animation: loader-animation-1 1.45s linear infinite;
		-ms-animation: loader-animation-1 1.45s linear infinite;
		-webkit-animation: loader-animation-1 1.45s linear infinite;
		-moz-animation: loader-animation-1 1.45s linear infinite;
}

.thelis-loader > i:nth-child(2) {
		background: var(--fc-thelis-principale);
		transform: translate(30px, 0);
		-o-transform: translate(30px, 0);
		-ms-transform: translate(30px, 0);
		-webkit-transform: translate(30px, 0);
		-moz-transform: translate(30px, 0);
		animation: loader-animation-2 1.45s linear infinite;
		-o-animation: loader-animation-2 1.45s linear infinite;
		-ms-animation: loader-animation-2 1.45s linear infinite;
		-webkit-animation: loader-animation-2 1.45s linear infinite;
		-moz-animation: loader-animation-2 1.45s linear infinite;
}

.thelis-loader-texte {
		color: var(--fc-thelis-secondaire);
		text-align: center;
		font-size: 30px;
		font-weight: 400;
		margin: 20px 0;
		font-family: "Lato", "Arial", sans-serif;
}

@keyframes loader-animation-1 {
		25% {
				z-index: 2;
		}
		50% {
				transform: translate(30px, 0) scale(1);
		}
		75% {
				transform: translate(0, 0) scale(0.75);
		}
		100% {
				transform: translate(-30px, 0) scale(1);
		}
}

@keyframes loader-animation-2 {
		25% {
				transform: translate(0, 0) scale(0.75);
		}
		50% {
				transform: translate(-30px, 0) scale(1);
		}
		75% {
				z-index: 2;
		}
		100% {
				transform: translate(30px, 0) scale(1);
		}
}

/* bouton fermer modales */
.fermer {
		display: block;
		height: 42px;
		width: 42px;
		padding: 0;
		position: fixed;
		top: 4px;
		left: 16px;
		color: var(--fc-thelis-principale);
		background: transparent;
		font-size: 0;
		border: none;
		outline: none;
		cursor: pointer;
		-webkit-transition: opacity 0.3s ease;
		-moz-transition: opacity 0.3s ease;
		transition: opacity 0.3s ease;
}

.fermer:before {
		content: "\f057";
		font-family: "Font Awesome 6 Pro", "Font Awesome 5 Pro";
		font-size: 39px;
		font-weight: 400;
		height: fit-content;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		margin: auto;
}

.fermer:hover {
		opacity: .5;
}

.fermer + .content {
		margin: 56px auto 0;
}

@media screen and (min-width: 576px) {
		.fermer + .content {
				width: 85%;
		}
}

#modalethelis .fermer + .filtres {
		padding-top: 48px;
}

/* filtres */
#modalethelis .filtres {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		margin: -16px -16px 0;
		/*annule le padding de la modale*/
		padding: 48px 16px 16px;
		font-size: 14px;
		background: #f3f3f3;
		z-index: 10;
}

#modalethelis .filtres > div {
		position: relative;
		background: white;
		flex-grow: 1;
}

@media screen and (max-width: 400px) {
		#modalethelis .filtres > div {
				flex-basis: 100%;
		}
}

#modalethelis .filtres > div > label, .barre_resa > div > label {
		color: var(--fc-thelis-principale);
}

#modalethelis .filtres > div > .flatpickr-wrapper > input, #modalethelis .filtres > div > button, .barre_resa > div > .flatpickr-wrapper > input, .barre_resa > div > button {
		display: block;
		color: var(--fc-thelis-principale);
		background: transparent;
		border: none;
		outline: none;
		font-size: 14px;
		text-transform: uppercase;
		letter-spacing: -.5px;
}

#modalethelis .filtres > div > .flatpickr-wrapper > input, .barre_resa > div > .flatpickr-wrapper > input {
		width: 100%;
		padding: 32px 24px 11.2px 18px;
		box-sizing: border-box;
		font-weight: 600;
		cursor: pointer;
		color: #333;
		letter-spacing: 0;
		text-transform: inherit;
		font-family: "Open Sans", "Arial", sans-serif;
}

#modalethelis .filtres > div > .flatpickr-wrapper > input::placeholder, .barre_resa > div > .flatpickr-wrapper > input::placeholder {
		color: #333;
		font-size: 14px;
}

#modalethelis .filtres > div > button, .barre_resa > div > button {
		text-align: left;
		font-weight: 600;
		font-family: "Open Sans", "Arial", sans-serif;
		padding: 14px 24px 32px 18px;
		text-overflow: ellipsis;
		overflow: hidden;
		white-space: nowrap;
		width: 100%;
		height: 100%;
		cursor: pointer;
}

.placeholder {
		position: absolute;
		left: 18px;
		bottom: 12px;
		color: #333;
		font-size: 14px;
		font-weight: 600;
		pointer-events: none;
}

label[for="barre-datepicker"], label[for="modale-datepicker"] {
		position: absolute;
		top: 12px;
		left: 18px;
		font-size: 14px;
		font-weight: 600;
		text-transform: uppercase;
		pointer-events: none;
		letter-spacing: -.5px;
}

.filtre {
		position: absolute;
		top: 100%;
		display: flex;
		flex-direction: column;
		width: calc(100% - 16px);
		gap: 4px;
		background: white;
		padding: 8px;
		border: solid 1px var(--fc-thelis-lightgrey);
		z-index: 100;
		opacity: 0;
		transition: all .3s ease;
		pointer-events: none;
		box-shadow: 0 6px 12px rgba(0, 0, 0, 0.18);
}

.filtre.ouvert {
		opacity: 1;
		pointer-events: all;
}

.filtre.ouvert:before {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		width: 0;
		margin: auto;
		display: inline-block;
		top: -7px;
		border-right: 7px solid transparent;
		border-bottom: 7px solid var(--fc-thelis-lightgrey);
		border-left: 7px solid transparent;
}

.filtre.ouvert:after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		width: 0;
		margin: auto;
		display: inline-block;
		top: -6px;
		border-right: 6px solid transparent;
		border-bottom: 6px solid #fff;
		border-left: 6px solid transparent;
}

.filtre input {
		display: none;
}

.filtre label {
		position: relative;
		display: block;
		padding: 4px 18px 4px 32px;
		color: #787878;
		font-weight: 700;
		font-size: 14px;
}

.filtre input:checked + label::before {
		content: "\f00c";
		font-family: "Font Awesome 6 Pro", "Font Awesome 5 Pro";
		font-weight: 700;
		height: fit-content;
		position: absolute;
		top: 0;
		left: 14px;
		bottom: 0;
		margin: auto;
		color: #333;
}

/* carte hebergement */
.column-infos figure:before {
		content: '';
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		background-color: var(--fc-thelis-principale);
		opacity: 0;
}

.column-infos figure:after {
		content: '';
    background: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' viewBox='0 0 64 64' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M36 0H28V28H3.49691e-07L0 36H28V64H36V36H64V28H36V0Z' fill='white'/%3E%3C/svg%3E%0A");
		background-size: 100% 100%;
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		height: 72px;
		width: 72px;
		margin: auto;
		opacity: 0;
}

.grille-carte-hebergement {
		display: flex;
		flex-direction: column;
		gap: 16px;
		margin-top: 16px;
}

.grille-carte-hebergement .carte-hebergement {
		border: solid 1px var(--fc-thelis-lightgrey);
		background-color: white;
		cursor: pointer;
}

.grille-carte-hebergement .carte-hebergement[data-fc-visible="0"] {
		display: none;
}

.grille-carte-hebergement .carte-hebergement[data-fc-disponibilite="1"] {
		order: -1;
}

.grille-carte-hebergement .carte-hebergement:hover {
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

.grille-carte-hebergement .carte-hebergement:hover figure:before {
		opacity: .6;
}

.grille-carte-hebergement .carte-hebergement:hover figure:after {
		opacity: 1;
}

.grille-carte-hebergement .carte-hebergement .column-infos {
		position: relative;
		display: flex;
		flex-direction: row;
		flex-grow: 1;
}

.grille-carte-hebergement .carte-hebergement .column-infos p:not(.titre) {
		display: block;
		font-size: 14px;
		margin: 0;
		/* contre wp */
}

.grille-carte-hebergement .carte-hebergement .column-infos figure {
		position: absolute;
		top: 0;
		left: 0;
		min-width: 37%;
		max-width: 37%;
		height: 100%;
		margin: 0;
		/* contre wp */
}

.grille-carte-hebergement .carte-hebergement .column-infos figure img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		background-color: var(--fc-thelis-lightgrey);
		border-radius: 0;
		/* contre wp */
}

.grille-carte-hebergement .carte-hebergement .column-infos figure + div {
		margin: 24px 24px 24px calc(37% + 24px);
}

.grille-carte-hebergement .carte-hebergement .column-infos > div > a:not(:last-child), .grille-carte-hebergement .carte-hebergement .column-infos > div > div:not(:last-child) {
		margin: 16px 0 16px;
}

.grille-carte-hebergement .carte-hebergement .column-infos > div > a:last-child, .grille-carte-hebergement .carte-hebergement .column-infos > div > div:last-child {
		margin: 16px 0 0;
}

.grille-carte-hebergement .carte-hebergement .column-infos > div .titre {
		margin: 0 0 22px;
}

.grille-carte-hebergement .carte-hebergement .column-infos > div p.description {
		line-height: 24px;
		color: #333;
}

.grille-carte-hebergement .carte-hebergement .column-infos > div a {
		color: var(--fc-thelis-principale);
}

.column-prix {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		padding: 16px;
		box-sizing: border-box;
		text-align: center;
		min-width: 25%;
		min-height: 16rem;
		background: #f3f3f3;
}

.content .column-prix {
    margin-top: 32px;
}

.column-prix p {
		color: #4d4d4d;
		margin: 0;
		font-size: 14px;
}

.column-prix p strong {
		font-weight: 600;
}

.column-prix .dates {
		margin-bottom: 14px;
}

.column-prix .prix-original {
		font-size: 9.6px;
		font-weight: bold;
		color: #929292;
		text-decoration: line-through;
}

.column-prix .prix {
		color: var(--fc-thelis-principale);
		font-size: 28px;
		line-height: 48px;
		font-weight: 600;
}

.column-prix .remise {
		font-size: 20px;
		font-weight: bold;
		position: absolute;
		top: 0;
		right: 0;
		padding: 4px;
		color: white;
		background-color: var(--fc-thelis-secondaire);
		white-space: nowrap;
}

.column-prix .stock {
		color: #c70d1e;
		font-size: 14px;
		line-height: 1.7142857143;
}

.column-prix .stock i {
		font-size: 25.2px;
		margin-right: 10px;
		vertical-align: sub;
}

.column-prix a {
		font-size: 18px;
		line-height: 1.3333333;
		padding: 10px 16px;
		color: #ffffff;
		background: var(--fc-thelis-principale);
		text-decoration: none;
		margin: 10px 0;
}

.column-prix a i {
		margin-right: 16px;
}

.column-prix .complet, .column-prix .saissisezvosdates {
		font-weight: bold;
		opacity: .25;
}

@media screen and (min-width: 768px) {
		.grille-carte-hebergement .carte-hebergement {
				display: flex;
		}
		.column-prix {
				padding: 32px 8px;
		}
}

@media screen and (max-width: 576px) {
		.grille-carte-hebergement .carte-hebergement {
				flex-direction: column;
		}
		.grille-carte-hebergement .carte-hebergement .column-infos figure {
				max-width: inherit;
				width: 100%;
				height: 80vw;
		}
		.grille-carte-hebergement .carte-hebergement .column-infos figure + div {
				margin: calc(80vw + 12px) 24px 14px;
		}
		.grille-carte-hebergement .carte-hebergement .column-infos > div p.description {
				display: none;
		}
		.column-prix .dates {
				display: flex;
				gap: 4px;
		}
		.column-prix a {
				width: 100%;
		}
		.product-criterion {
				display: none;
		}
}

.main-criterion, .product-criterion {
		display: flex;
		flex-wrap: wrap;
		gap: 4px;
}

.main-criterion > p {
		padding: 6px 8px;
		border: solid 1px var(--fc-thelis-lightgrey);
		color: #333;
		line-height: 24px;
}

.main-criterion > p i {
		color: #333;
}

.product-criterion > p {
		font-weight: bold;
		line-height: 20.5714px;
		text-align: center;
		text-transform: uppercase;
		color: var(--fc-thelis-secondaire);
		padding: 2px 4px;
		border: solid 1px var(--fc-thelis-lightgrey);
		border-radius: 4px;
		box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.14);
}

.grille-carte-hebergement .carte-hebergement .column-infos .product-criterion > p, .modalesinglethelis .product-criterion > p {
		font-size: 12px;
}

.details, .voir-tarif-semaine {
		font-size: 14px;
		font-weight: bold;
		text-transform: uppercase;
		text-decoration: underline;
		cursor: pointer;
}

/* modalesinglethelis */
.modalesinglethelis {
		font-family: "Open Sans", "Arial", sans-serif;
		display: block;
		position: fixed;
		right: 0;
		top: 0;
		bottom: 0;
		width: 100%;
		max-width: 1170px;
		height: 100vh;
		margin: 0;
		padding: 16px;
		background: white;
		box-sizing: border-box;
		border-left: solid 1px var(--fc-thelis-lightgrey);
		z-index: 110;
		overflow-x: auto;
		transform: translate(100%);
		transition: all .3s ease;
}

.modalesinglethelis.ouvert {
		transform: translate(0);
}

.modalesinglethelis .thr-simpleblock {
		margin: 24px -16px;
}

@media screen and (min-width: 576px) {
		.modalesinglethelis .thr-simpleblock {
				margin: 24px -11%;
		}
}

.modalesinglethelis .titre {
		text-align: center;
		font-size: 28px;
		margin: 34px 0;
}

.modalesinglethelis .titre:not(:only-child):first-child {
		margin: 0 0 34px;
}

.modalesinglethelis p:not(.titre) {
		display: block;
		font-size: 14px;
		margin: 0!important;
}

.modalesinglethelis p:not(.titre):not(:only-child):not(:first-child):not(:last-child) {
		margin: 0;
}

.modalesinglethelis .product-criterion {
		margin: 32px 0;
}

@media screen and (min-width: 1200px) {
		.modalesinglethelis {
				width: 1050px;
				min-width: 720px;
		}
		.modalesinglethelis.ouvert {
				box-shadow: -4px 0 4px rgba(0, 0, 0, 0.14);
		}
}

/* barre resa */
.barre_resa {
		font-family: "Open Sans", "Arial", sans-serif;
		display: flex;
		flex-wrap: wrap;
		gap: 8px 2%;
		padding: 16px;
		/* background: white;
		border: solid 1px var(--fc-thelis-lightgrey); */
		box-sizing: border-box;
}

.barre_resa > * {
		flex-grow: 1;
		flex-basis: 20%;
}

.barre_resa > div {
		position: relative;
		background: white;
		border: solid 1px var(--fc-thelis-lightgrey);
		/*provisoire*/
		min-width: 240px;
		/* largeur minimum pour que les info du champ dates ne soient pas rognées */
}

.barre_resa > div i.far {
		color: #333;
		font-size: 14px;
    padding: 0;
}

.barre_resa button {
		background: white;
}

.barre_resa > button.btn_resa {
		position: relative;
		font-size: 18px;
		font-family: "Lato", "Arial", sans-serif;
		font-weight: 700;
		text-align: center;
		background: var(--fc-thelis-principale);
		color: white;
		border: solid 1px var(--fc-thelis-principale);
		box-sizing: border-box;
		padding: 12px 18px;
		cursor: pointer;
		min-height: 55px;
}

.barre_resa > button.btn_resa i {
		position: unset;
		margin-right: 10px;
		font-weight: bold;
    font-size: 18px;
    padding: 0;
}

@media screen and (max-width: 768px) {
		.barre_resa > * {
				flex-basis: 40%;
		}
}

@media screen and (max-width: 768px) {
		.barre_resa > button.btn_resa {
				flex-basis: 100%;
		}
}

/* icones */
.barre_resa i, #modalethelis .filtres i {
		position: absolute;
		right: 18px;
		top: 0;
		bottom: 0;
		margin: auto 0;
		height: fit-content;
		pointer-events: none;
}

/* slider */
.modalesinglethelis figure {
		margin: 20px 0;
    height: 300px;
		/* contre wp */
}

.modalesinglethelis figure img {
    max-height: 300px;
		object-fit: contain;
}

.modalesinglethelis figure .arrow {
		position: absolute;
		top: 0;
		bottom: 0;
		padding: 0 6px;
		z-index: 1;
		font-size: 0;
		background: transparent;
		border: 0;
		outline: 0;
		box-shadow: none;
		transform: none;
		cursor: pointer;
		margin: auto 0;
		text-shadow: 0 0 2px black, 1px 1px 1px rgba(0, 0, 0, 0.8);
}

.modalesinglethelis figure .arrow:before {
		color: white;
		font-family: "Font Awesome 6 Pro", "Font Awesome 5 Pro";
		font-weight: 900;
		font-size: 45px;
}

.modalesinglethelis figure .arrow-prev {
		left: 0;
		right: auto;
}

.modalesinglethelis figure .arrow-prev:before {
		content: '\f053';
}

.modalesinglethelis figure .arrow-next {
		right: 0;
		left: auto;
}

.modalesinglethelis figure .arrow-next:before {
		content: '\f054';
}

/* Msg si pas de dispo / pas de saison */
.msg-erreur-thelis{
	padding-left: 2rem;
    font-size: 1.3rem;
}

@media screen and (max-width:748px){
	.msg-erreur-thelis{
		padding-right: 2rem;
		text-align:center;
	}
}
