* {
    margin: 0;
    overflow: visible;
    box-sizing: border-box;
  } 

  @font-face {
    font-family: open-regular;
    src: url(fonts/Open_Sans/static/OpenSans-Regular.ttf);
  }
  @font-face {
    font-family: open-bold;
    src: url(fonts/Open_Sans/static/OpenSans-Bold.ttf);
  }
  @font-face {
    font-family: open-semiBold;
    src: url(fonts/Open_Sans/static/OpenSans-SemiBold.ttf);
  }
  @font-face {
    font-family: open-medium;
    src: url(fonts/Open_Sans/static/OpenSans-Medium.ttf);
  }
  @font-face {
    font-family: open-light;
    src: url(fonts/Open_Sans/static/OpenSans-Light.ttf);
  }
  body {
    font-family: "open-regular", sans-serif;
    color: var(--font-color);
    margin-bottom: 30px;
    background-color: var(--background-color);
  }
  img {
    border: 0;
    max-width: 100%;
    -ms-interpolation-mode: bicubic;
  }
  a {
    text-decoration: none;
    color: inherit;
  }
  ul{
    list-style-type: none;
    padding-inline-start: 0;
  }
  .btn {
    padding: 7px 15px;
    margin: 10px 0;
    font-family: open-bold;
    letter-spacing: 1px;
    font-size: 14px;
    cursor: pointer;
    border-radius: 3px;
    border: none;
    white-space: nowrap;
  }
.m0{ 
	margin: 0 auto;
}

.p-30 {
	padding: 30px;
}

.m-30 {
	margin: 30px;
}

.p-15 {
	padding: 15px;
}

.p-25 {
	padding: 25px;
}

.m-15 {
	margin: 15px;
}

.mx-10 {
	margin: 0 10px;
}

.mx-15 {
	margin: 0 15px;
}

.mx-20 {
	margin: 0 20px;
}

.mx-25 {
	margin: 0 25px;
}

.mx-30 {
	margin: 0 30px;
}

.my-10 {
	margin: 10px 0;
}

.my-15 {
	margin: 15px 0;
}

.my-20 {
	margin: 20px 0;
}

.my-25 {
	margin: 25px 0;
}

.my-30 {
	margin: 30px 0;
}

.p-10 {
	padding: 10px;
}

.m-10 {
	margin: 10px;
}

.m-20 {
	margin: 20px;
}

.px-25 {
	padding: 0 25px;
}

.px-15 {
	padding: 0 15px;
}

.px-10 {
	padding: 0 10px;
}

.py-25 {
	padding: 25px 0;
}

.py-30 {
	padding: 30px 0;
}

.py-15 {
	padding: 15px 0;
}

.py-10 {
	padding: 10px 0;
}

.py-5 {
	padding: 5px 0;
}

.ligne {
	border: 1px solid var(--bg-grey-br);
	width: 40%;
	margin: 15px auto;
}

.center {
	text-align: center;
}

.flex-center {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.width-320 {
	width: 350px;
}

.width-400 {
	width: 400px;
}

.flex-row {
	display: flex;
	flex-direction: row;
	align-items: center;
}

.navbar {
	width: 100%;
	height: 70px;
	box-shadow: 0px 5px 4px -2px #80808036;
	z-index: 50;
	position: relative;
}

.container-navbar {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: row;
	align-items: center;
	color: var(--font-color);
	font-family: open-bold;
}

.navbar .cont-logo {
	flex: 1;
	justify-content: center;
	padding: 5px 25px;
	margin: 0 20px 0 0;
}

.header-logo {
	max-height: 65px;
}

#description {
	width: calc(100% - 30%);
	margin: 25px auto;
}

#description .title-desc h1 {
	text-transform: uppercase;
	font-weight: bold;
	font-family: open-bold;
	font-size: 26px;
	margin: 5px 0;
}

#description .block-desc .ligne-v {
	position: absolute;
	height: 35px;
	border-left: 3px solid var(--primary-color);
}

#description .block-desc p {
	text-align: justify;
	padding: 0 15px 0;
	font-weight: 400;
	font-family: open-medium;
	font-size: 16px;
}

.block-offre.m-20 {
	margin: 20px;
}

a.btn-line-gr {
	font-size: inherit;
	color: var(--primary-color);
	text-decoration-line: underline;
	cursor: pointer;
	font-family: open-medium;
}

#offres {
	padding: 25px 0;
	position: relative;
	width: 90%;
	margin: 0 auto;
}

.periode input[type="checkbox"] {
	position: relative;
	width: 55px;
	height: 20px;
	appearance: none;
	-webkit-appearance: none;
	/* For Chrome, Safari, and newer versions of Opera */
	-moz-appearance: none; /* For Firefox */
	background-color: var(--bg-grey-br);
	outline: none;
	border-radius: 20px;
	box-shadow: inset 0 0 5px rgb(0, 0, 0, .2);
	transition: .5s;
	cursor: pointer;
}

.periode input:checked[type="checkbox"] {
	background-color: var(--secondary-color);
}

.periode input[type="checkbox"]::before {
	content: '';
	position: absolute;
	width: 20px;
	height: 20px;
	border-radius: 20px;
	top: 0;
	left: 0;
	background-color: var(--white);
	transform: scale(1.1);
	box-shadow: 0 2px 5px rgba(0, 0, 0, .2);
	transition: .5s;
}

.periode input:checked[type="checkbox"]::before {
	left: 35px;
}

input.select-check[type="checkbox"] {
	position: relative;
	width: 20px;
	height: 20px;
	border-radius: 3px;
	border: 3px solid #b3b3b3;
	appearance: none;
	-webkit-appearance: none;
	/* For Chrome, Safari, and newer versions of Opera */
	-moz-appearance: none; /* For Firefox */
	background-color: #fff;
	outline: none;
	box-shadow: inset 1px 3px 3px rgb(0 0 0/ 16%);
	transition: .5s;
}

input.select-check:checked[type="checkbox"] {
	color: #ac0505 !important;
	background-color: var(--secondary-color);
}

input.select-check[type="checkbox"]::before {
	content: '✔';
	position: absolute;
	top: -2px;
	left: 2px;
	color: #fff;
	transition: .5s;
}

input.select-check :checked[type="checkbox"]::before {
	left: 35px;
}


.periode input:checked[type="radio"]::before {
	left: 35px;
}

input.select-check[type="radio"] {
	position: relative;
	width: 20px;
	height: 20px;
	border-radius: 3px;
	border: 3px solid #b3b3b3;
	appearance: none;
	-webkit-appearance: none;
	/* For Chrome, Safari, and newer versions of Opera */
	-moz-appearance: none; /* For Firefox */
	background-color: #fff;
	outline: none;
	box-shadow: inset 1px 3px 3px rgb(0 0 0/ 16%);
	transition: .5s;
}

input.select-check:checked[type="radio"] {
	color: #ac0505 !important;
	background-color: var(--secondary-color);
}

input.select-check[type="radio"]::before {
	content: '✔';
	position: absolute;
	top: -2px;
	left: 2px;
	color: #fff;
	transition: .5s;
}

input.select-check :checked[type="radio"]::before {
	left: 35px;
}


.card label {
	display: flex;
	align-items: center;
	gap: 8px;
	position: absolute;
	bottom: 23px;
	z-index: 11;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
}

@media (max-width : 768px) {
	.card label {
		position: inherit;
	}
}

.card label:hover {
	cursor: pointer;
}

.periode {
	display: flex;
	gap: 25px;
	justify-content: center;
	align-items: center;
	margin: 20px 0;
}

.periode p {
	font-family: open-medium;
	font-size: 16px;
}

.cards {
	padding: 30px 0;
	display: flex;
	flex-direction: row;
	overflow: auto;
	gap: 0.5rem;
	margin: 0 auto;
	scroll-behavior: smooth;
	overflow-x: hidden;
}

.cards::-webkit-scrollbar {
	display: none;
}

.cards .card {
	display: flex;
	justify-content: center;
	position: relative;
	height: fit-content;
}

.cards .box-offre {
	border: 1px solid var(--bg-grey-cl);
	border-radius: 5px;
	box-shadow: 3px 4px 4px -2px #80808036;
	background-color: var(--card-bg-color);
	color: var(--card-txt-color);
	padding-bottom: 1rem;
}

.card .abonner {
	display: flex;
	align-items: center;
	gap: 8px;
	position: absolute;
	bottom: 23px;
	z-index: 11;
}

.card .abonner .btn-abonner {
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	appearance: none;
	border: none;
	background-color: transparent;
	cursor: pointer;
}

.cards .box-offre::after {
	background-color: var(--primary-cl-color) !important;
}

.cards .box-offre .block-offre .bl-title {
	display: flex;
	flex-direction: column;
}
.cards .box-offre .block-offre {
	text-align: center;
}

.cards .box-offre .block-offre .bl-title h2 {
	font-size: 18px;
	font-weight: normal;
	text-align: left;
	line-height: 28px;
	margin: 20px 0 15px 0;
	border-left: 3px solid var(--primary-cl-color);
	padding: 0 5px;
}

.cards .box-offre p {
	text-align: justify;
	line-height: 19px;
	font-size: 14px;
}

.cards .block-offre picture{
	text-align: center;
}

.cards .box-offre .block-offre .bl-price .price {
	font-size: 35px;
	font-weight: bold;
	color: var(--secondary-color);
	white-space: nowrap;
	text-align: left;
}

.cards .box-offre .block-offre .bl-price .price span {
	font-size: 22px;
	font-weight: bold;
}

.cards .box-offre .block-offre .bl-price .price-crossed {
	font-size: 16px;
	font-weight: bold;
	line-height: 18px;
	color: var(--font-color);
	text-align: center;
	margin-bottom: 1rem;
}

.btn.btn-ac {
	background-color: var(--secondary-color);
	color: var(--white);
	align-self: center;
}

ul.liste-descr{
	padding: 5px 10px;
}
.cards .box-offre .block-descr{
	padding: 0 1rem;
}
.cards .box-offre .block-descr ul li {
	line-height: 17px;
	font-size: 14px;
	padding: 5px;
	display: list-item;
	width: 100%;
	margin: 0;
}

.cards .box-offre .block-descr ul li::before {
	content: '+';
	padding-right: 5px;
	font-weight: 600;
	color: var(--primary-cl-color);
}

.cards .box-offre .block-gifts .plus {
	font-size: 60px;
	color: var(--primary-cl-color);
	font-weight: bolder;
	display: block;
	margin: 0 auto;
	text-align: center;
}

.cards .box-offre .bl-gift {
	display: flex;
	align-items: center;
}

.cards .box-offre .bl-gift .text-gift {
	border-left: 3px solid var(--primary-cl-color);
	margin: 10px;
}

.cards .box-offre .bl-gift .text-gift p {
	padding: 0 5px;
}

.cards .box-offre .block-gifts .btn-line-gr {
	float: right;
	padding: 0 30px;
}

.prevBtn, .nextBtn {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	cursor: pointer;
	z-index: 30;
	height: 100%;
	background: #ffffff00;
	border: none;
}

.prevBtn {
	left: 0;
	transform: rotate(180deg);
}

.nextBtn {
	right: 0;
}
/*------- cards mono ------------*/
.cards.mono {
	padding: 30px 0;
	display: flex;
	margin: 0 auto;
	justify-content: center;
}

.cards.mono .card {
	width: 70%;
}

.cards.mono .box-offre {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	align-items: start;
	justify-items: center;
	padding: 15px 0 0 0;
}

.cards.mono .box-offre ul.liste-descr {
	padding: 0 0 0 10px;
}

.cards.mono .box-offre .block-descr {
	border-left: 1px solid var(--bg-grey-br);
	padding: 2rem;
}

.cart-savoir.show-cart {
	inset: 0 0 0 auto;
	display: block;
	padding-bottom: 25px;
}

.cart-savoir {
	display: none;
	width: 440px;
	background: var(--detailBackgroundColor);
	color: var(--font-color);
	position: fixed;
	inset: 0 -440px 0 auto;
	display: grid;
	grid-template-rows: 50px 1fr 40px 40px;
	z-index: 111;
	transition: transform .5s;
	margin: 0;
	overflow-y: overlay;
}

.cart-savoir .content-cart {
	color: var(--detailTextColor);
	position: relative;
}

.cart-savoir .btn-close {
	float: right;
	margin: 15px;
	cursor: pointer;
}

.cart-savoir .btn-close img {
	width: 30px;
}

.cart-savoir .content-savoir {
	position: relative;
	margin: 25px 15px;
	top: 35px;
}

.cart-savoir .ligne-top {
	border-top: 1px solid var(--font-color);
	margin: 35px 50px;
}

.content-savoir .btn-abonner {
	color: #fff;
	background: var(--primary-cl-color);
	font-size: 16px;
	font-weight: 600;
	appearance: none;
	border: none;
	cursor: pointer;
	padding: 10px 15px;
	border-radius: 5px;
	display: block;
	margin: 25px auto;
}
.btn-abonner :hover{
	background: var(--secondary-color);
}
.cart-savoir .content-desc {
	font-size: 16px;
	font-weight: 200;
	line-height: 21px;
	margin: 35px 0;
}

.cart-savoir h2.title {
	text-transform: uppercase;
	font-weight: bold;
	font-size: 26px;
	margin: 10px 0;
}

.cart-savoir ul {
	margin: 35px 0;
}

.cart-savoir li::before {
	content: '✔';
	padding-right: 5px;
	font-weight: 600;
	color: var(--primary-cl-color);
}

.cart-savoir li {
	margin: 5px 0;
}

.abonnerAll {
	display: block;
	margin: 0 auto;
	text-align: center;
	width: 85% !important;
	color: #fff;
	background: var(--primary-cl-color);
	font-size: 16px;
	font-weight: 600;
	appearance: none;
	border: none;
	cursor: pointer;
	padding: 10px 15px;
	border-radius: 5px;
	display: block;
}
.abonnerAll:hover{
	background: var(--secondary-color);
}

@media ( max-width : 400px) {
	.width-320 .img {
		max-width: 80%;
		max-width: 320px;
	}
}
.desktop{display:block}
.mobile{display:none}
.ouvert{display: block;}
.reduit{overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;line-clamp:2;-webkit-box-orient: vertical;}
#lirelasuite{padding: 0.5rem 15px 0;cursor:pointer;font-family: open-medium;display: none}
.card .bl-title{margin:0!important}
.card .bl-title h2{margin:0 0 1.2rem 0.5rem!important}
.card .bl-price{margin: 0!important}
.card .bl-price h4{text-align:center!important;padding-top:1rem!important;padding-bottom:1.5rem!important;}
input.btn-abonner {text-align:center;background-color: var(--primary-cl-color);text-decoration: none;border-radius: 5px;color: #fff;font-size: 16px;font-weight: 600;appearance: none;border: none;cursor: pointer;min-width:200px;padding:0.8rem 1.7rem;margin-top: 1rem;}
input.btn-abonner:hover{background-color: var(--secondary-color);box-shadow: 0px 0px 19px 0px rgba(0, 0, 0, 0.3)}
.block-offres{padding: 0 2rem;}
@media (max-width : 768px) {
	.desktop{display:none}
	.mobile{display:block}
	#paragraphe-description.ouvert{display: block;}
	#paragraphe-description.reduit{overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;line-clamp:2;-webkit-box-orient: vertical;}
	.title-desc{margin:0 !important}
	.cards.mono {padding:0 !important}
	.card img{max-width: 60%!important}
	.bl-title{margin:0 20px !important}
	.bl-price{margin:0 20px !important}
	.cards .box-offre .block-offre .bl-title h2 {margin: 20px 0 5px 0;}
	.block-descr-text{display:none !important}
	a.btn-line-gr{margin:5px !important}

	.width-400 {
		width: 100%;
	}
	.width-320 {
		width: 100%;
	}
	.block-offre.width-320 {
		width: auto!important;
	}
	.abonnerAll {
		width: 90% !important;
	}
	.addMultiSelect {
		padding-top: 0.5rem;
		text-align: center;
		position: fixed;
		bottom: 0;
		width: 100%;
		background-color: var(--background-color);
		left: 0;
	}
	.cart-savoir.show-cart {
		width: 100%;
	}
	#description {
		width: 100%;
		margin: 0 auto;
		padding: 15px 15px 0 15px;
	}
	.cards.mono .box-offre .block-descr {
		border-left: none;
		padding: 0 0 15px 0;
	}
	.cards {
		width: 100%;
		padding: 0;
		gap: 0px;
		justify-content: normal;
	}
	.cards .card.mx-10 {
		width: 100%;
		margin: 0;
	}
	#offres {
		width: 100% !important;
		height: 100vh;
	}
	.cards.mono .box-offre {
		display: flex;
		align-items: center;
		padding-top:0!important
	}
	.prevBtn img, .nextBtn img {
		width: 35px;
	}
	.js-switch-item {
		display: none;
	}
}

@media (max-width : 730px) {
	.cards {
		padding: 0;
		display: flex;
		flex-direction: column;
		overflow: auto;
		gap: 0.5rem;
		margin: 0 auto;
		scroll-behavior: smooth;
		overflow-x: hidden;
	}
}
@media (max-width : 768px) {
	.cards {
		flex-direction: column;
	}
}
	
.month-list {
	display: none !important;
}
.year-list{
	display: none !important;
}

.month-list.active {
	display: flex !important;
	justify-content: center;
}
.year-list.active {
	display: flex !important;
	justify-content: center;
}
