/* globals */
:root {
	--blanc: #fff;
	--noir: #000;
	--rouge: #c00c1a;
	--ombre-rouge: #601d1c;
	--bleu: #2a3580;
	--jaune: #f9ac33;
	--orange: #f07241;
	--orange-fonce: #ee522f;
}

.blanc {
	color: var(--blanc);
}

.noir {
	color: var(--noir);
}

.rouge {
	color: var(--rouge);
}

.orange {
	color: var(--orange);
}

.orange-fonce {
	color: var(--orange-fonce);
}

.jaune {
	color: var(--jaune);
}

.bleu {
	color: var(--bleu);
}

.bg-blanc {
	background-color: var(--blanc);
}

.bg-noir {
	background-color: var(--noir);
}

.bg-rouge {
	background-color: var(--rouge);
}

.bg-orange {
	background-color: var(--orange);
}

.bg-orange-fonce {
	background-color: var(--orange-fonce);
}

.bg-bleu {
	background-color: var(--bleu);
}

.bg-jaune {
	background-color: var(--jaune);
}

body {
	font-family: "Roboto", sans-serif;
	font-size: 16px;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-variation-settings: "wdth" 100;
	line-height: 1.3;
}

/* layout */
.container {
	max-width: 1430px;
	width: 100%;
}

@media (min-width: 512px) {
	.corners {
		background-image: url(../images/corner-top-left.webp), url(../images/corner-bottom-right.webp);
		background-position: left top, right bottom;
		background-repeat: no-repeat, no-repeat;
	}

	body:not(.home) .corners {
		background-image: url(../images/corner-top-left.webp), url(../images/corner-bottom-right-logo.webp);
	}
}

@media (max-width: 1920px) {
	.corners {
		background-size: 300px, 300px
	}
}

@media (max-width: 768px) {
	.corners {
		background-size: 200px, 200px
	}
}

@media (max-width: 975px) {
	.container {
		max-width: 100%;
		width: 100dvw;
	}
}

.only-mobile {
	display: none !important;
}

.only-desktop {
	display: block !important;
}

.only-desktop.d-flex {
	display: flex !important;
}

.only-desktop-large {
	display: block !important;
}

.only-desktop-large.d-flex {
	display: flex !important;
}

.inline-only-mobile {
	display: none !important;
}

.inline-only-desktop {
	display: inline !important;
}

@media (max-width: 768px) {
	.only-mobile {
		display: block !important;
	}

	.only-desktop {
		display: none !important;
	}

	.inline-only-mobile {
		display: inline !important;
	}

	.inline-only-desktop {
		display: none !important;
	}
}

@media (max-width: 981px) {
	.only-desktop-large {
		display: none !important;
	}
}

html {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	scroll-behavior: smooth;
	width: 100%;
	width: 100dvw;
	margin: 0 auto;
	min-height: 100vh;
	min-height: 100dvh;
}

body {
	background: var(--orange);
	color: var(--blanc);
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	position: relative;
}

/* header + cadre */
#section-header {
	position: absolute;
	top: 0;
	right: 0;
}

.logo img.only-desktop {
	height: 360px;
}

.logo {
	position: absolute;
	z-index: 2;
	width: 235px;
	height: 125px;
	padding: 0;
	overflow: hidden;
	white-space: nowrap;
	text-indent: -500px;
	bottom: 75px;
	right: 0;
	cursor: pointer;
}

@media (max-width: 1920px) {
	.logo {
		bottom: 50px;
	}
}

@media (max-width: 511px) {
	.logo {
		display: none;
	}
}

.cadre {
	padding: min(160px, 20%) 2rem 2rem 2rem;
	background-color: var(--blanc);
	margin-top: max(-150px, -15%);
	box-shadow: -6px 6px 0px var(--ombre-rouge);
}

@media (max-width: 1024px) {
	.cadre {
		padding: min(160px, 20%) 1rem 1rem 1rem;
		padding-bottom: 5rem;
	}
}

/* footer */
#section-footer {
	color: var(--blanc);
	background-color: var(--orange);
	border-top: 1px solid var(--blanc);
}

#section-footer .jmenu li {
	margin: 0;
}

@media (max-width: 1024px) {
	#section-footer {
		padding-bottom: 3rem;
	}
	#section-footer .jmenu li {
		margin: 5px 0;
	}
}

@media (max-width: 767px) {
	#section-footer {
		position: absolute;
		top: 0;
		z-index: 999;
		padding: 0;
		left: 0;
		right: 0;
		background: none;
	}

	#section-footer .jmenu {
		display: block;
		height: 100%;
	}

	#section-footer .jmenu li {
		border-right: none;
	}

	#section-footer .jmenu li:not(:last-child) {
		border-bottom: 1px dotted var(--blanc);
	}

	#section-footer label.jm-menu-btn {
		padding: 10px 20px;
		margin: 0;
		font-size: 40px;
		color: var(--blanc);
		vertical-align: middle;
		display: inline-block;
	}

	#section-footer .jm-collapse {
		background-color: var(--orange-fonce);
		padding: 1rem;
	}

	#section-footer .jmenu a {
		padding: 1rem 0.5rem;
		font-size: 1.5rem;
	}
}

/* home */
#section-home {
	background-image: url(../images/home.webp), url(../images/sun.webp);
	background-position: center top, calc(50% - min(566px, 28vw)) -645px;
	background-repeat: no-repeat, no-repeat;
}

#section-home .container {
	padding: min(62vw, 1200px) 0 50px 0;
}

@media (max-width: 1919px) {
	#section-home {
		background-position: center top, calc(50% - min(566px, 28vw)) -51vw;
		background-size: contain, 180%;
	}
}

@media (max-width: 1200px) {
	#section-home {
		background-image: url(../images/home-mobile.webp), url(../images/sun-mobile.webp);
		background-position: center top, 50% -25vw;
		background-repeat: no-repeat, no-repeat;
		background-size: 100%, 180%;
	}

	#section-home .container {
		padding: 165dvw 0 10dvw 0;
	}
}

/* dotations */
#section-dotations {
	background-image: url(../images/dotations.webp), url(../images/sun.webp);
	background-position: center top, 50% -1100px;
	background-repeat: no-repeat, no-repeat;
}

#section-dotations .container {
	padding: 1300px 0 50px 0;
}




@media (max-width: 1919px) {
	#section-dotations {
		background-position: center top, 50% -74vw;
		background-size: contain, 180%;
	}
}

@media (max-width: 1200px) {
	#section-dotations {
		background-image: url(../images/dotations-mobile.webp), url(../images/sun-mobile.webp);
		background-position: center -40px, 50% calc(-15px - 47vw);
		background-repeat: no-repeat, no-repeat;
		background-size: min(90%, 1024px), 180%;
	}

	#section-dotations .container {
		padding: 106dvw 0 180dvw 0;
	}
}

/* produits */
#section-produits .container {
	max-width: 1900px;
}

#section-produits {
	background-image: url(../images/sun-mobile.webp);
	background-position: center -345px;
	background-repeat: no-repeat;
}

@media (max-width: 1200px) {
	#section-produits {
		background-position: center center;
		background-size: 180%;
	}

	#section-produits h1 {
		max-width: 800px;
		margin: 5rem auto 2rem auto;
		padding: 0 !important;
	}
}

@media (max-width: 512px) {
	#section-produits h1 {
		margin: 5rem auto 0 auto;
	}
}

#section-produits .liste-produits {
	margin: 0 auto;
	padding: 1rem 2rem;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

@media (max-width: 1200px) {
	#section-produits .liste-produits {
		padding: 1rem 0;
	}
}

#section-produits .produit {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

@media (max-width: 512px) {
	#section-produits .produit {
		font-size: 0.8em;
	}
}

#section-produits .produit img {
	width: auto;
	height: 235px;
	filter: drop-shadow(-5px 5px 10px rgba(0, 0, 0, 0.5));
	object-fit: contain;
	object-position: center bottom;
}

@media (max-width: 512px) {
	#section-produits .produit img {
		height: 220px;
	}
}

#section-produits .produit .titre {
	font-size: 0.9em;
	font-weight: 600;
	padding: 5px 10px;
	border-radius: 15px;
}

#section-produits .produit .soustitre,
#section-produits .produit .ean {
	font-size: 0.8em;
}

#section-produits .details {
	font-size: 0.6em;
	padding: 10px 20px;
	max-width: 1600px;
	margin: 20px auto;
}
@media (max-width: 1900px) {
	#section-produits .details {
		max-width: 1100px;
	}
}

@media (max-width: 1200px) {
	#section-produits .details {
		max-width: 600px;
	}
}

/* formulaire */
#section-inscription {
	background-image: url(../images/inscription-upsa.webp), url(../images/sun-mobile.webp);
	background-position: calc(50% + 290px) 100px, calc(50% + 329px) -412px;
	background-repeat: no-repeat, no-repeat;
}

@media (max-width: 1200px) {
	#section-inscription {
		background-size: 600px, 1200px;
		background-position: calc(50% + 242px) 177px, calc(50% + 283px) -136px;
	}
}

@media (max-width: 981px) {
	#section-inscription {
		background: none;
	}
}

#popup_wrapper {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.3);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 99;
}

#popup {
	padding: 2rem;
	max-width: 600px;
	border-radius: 25px;

}

#popup .close {
	color: #fff;
	text-shadow: none;
	border: 1px solid #fff;
	border-radius: 50%;
	width: 24px;
	height: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 10px;
	right: 10px;
	opacity: 1;
}


/* pages textes */
@media (max-width: 768px) {
	#section-page h1 {
		font-size: 24px;
	}
	#section-page p {
		font-size: 15px;
	}
}

/* cookies */
#cookieconsent,
#cookieconsent-nojs {
	padding: 0.5rem;
	position: fixed;
	z-index: 80;
	bottom: 0;
	left: 0;
	right: 0;
	border-top: 1px solid var(--noir);
	background: var(--blanc);
	color: var(--noir);
}

.cookieconsent-toogle {
	border: none;
	padding: 1rem 2rem;
	border-radius: 10px;
	background: var(--vert);
	color: var(--blanc);
}

#footer-cookieconsent-toogle {
	background-color: var(--blanc);
	color: var(--bleu);
	position: fixed;
	z-index: 90;
	bottom: 0;
	right: 1rem;
	padding: 0.5rem 1rem;
	border: 1px solid var(--bleu);
	border-bottom: 0;
	border-radius: 10px 10px 0 0;
	transition: 0.2s linear;
	height: 2rem;
}

@media (max-width: 1024px) {
	#footer-cookieconsent-toogle {
		left: 5rem;
		right: 5rem;
	}
}

#cookieconsent .text {
	padding: 0.5rem;
}

#cookieconsent .buttons {
	width: fit-content;
}

@media (min-width: 769px) {
	#cookieconsent .buttons {
		white-space: nowrap;
	}
}

#cookieconsent .buttons button {
	padding: 8px 13px;
	background: var(--orange-fonce);
	color: #fff;
	border: none;
	margin: 3px;
	border-radius: 15px;
}

/* menu */

.jmenu {
	margin: 1rem;
}

@media (max-width: 1024px) {
	.jmenu a {
		padding: 0px 1rem;
		font-size: 0.9rem;
	}
}

/* base */
a {
	color: inherit;
	text-decoration: underline;
}

a:hover {
	color: inherit;
}

img {
	object-fit: cover;
}

h1,
h2,
h3,
h4,
h4,
h6 {
	font-weight: 800;
	line-height: 1;
}

.fw-light {
	font-weight: 200;
}

.fw-semilight {
	font-weight: 300;
}

.fw-regular {
	font-weight: 400;
}

.fw-medium {
	font-weight: 500;
}

.fw-semibold {
	font-weight: 600;
}

.fw-bold {
	font-weight: 700;
}

.fw-black {
	font-weight: 800;
}

.small {
	line-height: 1em;
}

.big {
	font-size: 120%;
}

strong {
	font-weight: 800;
}

/* forms */
.button {
	background-color: var(--jaune);
	color: var(--blanc);
	outline: 0;
	border: none;
	border-radius: 2rem;
	padding: 0.6rem 1.6rem;
	min-width: 250px;
	font-weight: 800;
	font-size: 3.6rem;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	display: inline-block;
}

.button:hover {
	color: var(--blanc);
	text-decoration: none;
}

@media (max-width: 1024px) {
	.button {
		min-width: 0;
		font-size: 2.5rem;
	}
}

@media (max-width: 520px) {
	.button {
		font-size: 1.5rem;
	}
}

@media (max-width: 360px) {
	.button {
		font-size: 1.3rem;
	}
}

input[name="code"] {
	border: 2px solid var(--rouge);
	outline: 0;
	font-size: 2rem;
	padding: 0 1em;
	line-height: 1em;
	height: auto;
}

.form-inline .form-control {
	border: 1px solid var(--rouge);
	padding: 0 10px;
	height: auto;
	border-radius: 0;
}

.form-check-label {
	cursor: pointer;
}