* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
	width: 100%;
	height: 100%;
}
html {
    scroll-behavior: smooth;
	font-family: "Poppins", Sans-serif;
}

body {
    scroll-snap-type: y mandatory;
	font-family: Poppins, Sans-serif;
}
.fn1 {
	font-size: 15px;
	font-weight: normal;
}
.fn2 {
	font-size: 18px;
	font-weight: 320;
	line-height: 27px;
}
.fn3 {
	font-size: 14px;
	font-weight: bold;
    line-height: 21px;	
}
.fn4 {
	font-size: 20px;
	font-weight: bold;
	line-height: 67px;
}
.fn5 {
	font-size: 30px;
}
.bold { font-weight: bold; }
.h-flex { display: flex; flex-direction: row }
.v-flex { display: flex; flex-direction: column }
.fill { flex: 1 !important }
.ac { align-items: center }
.jc { justify-content: center }
.sa { justify-content: space-around }
.tr { text-align: right }
.tc { text-align: center }
.ma { margin: auto }
.m5 { margin: 5px }
.gap5 { gap: 5px }
.em1 { height: 1em }
.mina { min-height: auto }
.click { cursor: pointer }
.clBlack { color: black }
.clWhite  { color: white }
.clGray { color: gray }
.alert {
	padding: 20px;
	margin: 20px;
	border: 10px solid #C9A84C;
	border-style: double;
	border-radius: 20px;
}
header {
	display: flex;
	padding-top: 10px;
}
section {
    min-height: 100vh;
    min-height: 100svh;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	display: flex;
	flex-direction: column;
}
section > * {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}
a {
	text-decoration: none;
	color: white;
}
#accueil {
	background-image: URL("img/accueil.webp");
}
#accueil header {
	flex: 0 0 86px;
}
#accueil article {
	margin: auto;
}
.center-content {
	align-content: center;
}
.color1 {
	color: #C9A84C;
}
.z1 { z-index: 1 }
.logo {
	width:270px;
	height: 88px;
	font-size: 0;
}
.logo span {
	background: URL("img/logo.png") no-repeat center;
	background-size: contain;
	display: inline-block;
	width: 100%;
	height: 100%;
}
.menu {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}
.menu * {
	padding: 20px;
}
a.button {
	padding: 10px 40px;
	background-color: #C9A84C;
	border-radius: 50px;
	color: rgb(13, 31, 20);
	display: block;
}
a.button:hover {
	color: white;
}
.head {
    color: #C9A84C;
    background-color: #0D1F1440;
    border: solid #C9A84C52;
    border-radius: 50px;
    padding: 0px 30px;
	text-align: center;
}
h1 {
	font-size: 60px;
	font-weight: bold;
	line-height: 67px;
	padding: 0px;
	margin: 0px;
}
h2 {
	font-size: 40px;
	font-weight: bold;
	line-height: 50px;
	padding: 0px;
	margin: 0px;
}
p {
    font-size: 18px;
    font-weight: 300;
    line-height: 27px;
	margin: 0px;
}
#accueil p {
	color: white;
}

#catalogue {
	justify-content: center;
}
#catalogue header {
	flex-direction: column;
	align-items: center;
}
#catalogue footer {
	text-align: center;
	padding: 10px;
}
.info {
	color: #C9A84C;
	background-color: #C9A84C2E;
	border-radius: 5px;
	padding: 0px 30px;
	display: inline-block;
}
#catalogue article {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2em;
	text-align: center;
	margin: 20px auto;
}
#catalogue article > * {
	color: white;
	background-color: #004F37;
	position: relative;
}
#catalogue article > *::before {
    content: "";
    display: block;
    height: 190px;
	background-position: center;
	background-repeat:  no-repeat;
    background-size: cover;
}
#catalogue article > *:hover {
	transform: scale(1.02);
}
.Pizzas::before {
	background-image: URL("img/Pizzas.webp");
}
.Pates::before {
	background-image: URL("img/Pates.webp");
}
.Salades::before {
	background-image: URL("img/Salades.webp");
}
.Desserts::before {
	background-image: URL("img/Desserts.webp");
}
.Tartes::before {
	background-image: URL("img/Tartes.jpg");
}
.Boissons::before {
	background-image: URL("img/Boissons.webp");
}
#apropos {
	background-color: #004F37;
	color: white;
	justify-content: center;
}
#apropos .layout {
	display: flex;
	flex-direction: row;
	column-gap: 10px;
}
#apropos header {
	flex-direction: column;
	align-items: flex-start;
}
#apropos h2 {
	margin-bottom: 20px;
	position: relative;
}
#apropos h2:after {
content: "";
    border-bottom: solid 2px #C9A84C;
    width: 50px;
    position: absolute;
    left: 0px;
    bottom: -10px;
}
#apropos article > div {
	border: solid 1px #C9A84C8F;
	border-radius: 10px;
	padding: 20px;
	background-color: #FFFFFF3B;
	margin-top: 10px;
}
#apropos article > div > div {
	font-weight: bold;
}
#apropos .photo {
	background: URL("img/APropos.webp") no-repeat center;
	background-size: cover;
	flex: 0 0 591px;
	border-radius: 10px;
}
#contact header {
	flex-direction: column;
	align-items: center;
}
#contact article {
	flex: 1;
}
#contact .layout {
	display: flex;
	flex-direction: row;
	column-gap: 10px;
	margin: 10px auto;
}
footer.footer {
	background-color: #004F37;
	color: white;
	max-width: none;
}
footer.footer > * {
	max-width: 1200px;
	margin: 0 auto;
}
.contact {
	background: URL("img/Contact.webp") no-repeat center;
	background-size: cover;
	flex: 0 0 591px;
	border-radius: 10px;
	color: white;
	padding: 50px;
	font-size: 18px;
}
.contact > div > div:first-child {
	font-size: 20px;
	font-weight: bold;
}
.contact > div:not(:last-child) {
	margin-bottom: 40px;
	position: relative;
}
.contact > div:not(:last-child):after {
	content: "";
    border-bottom: solid 2px #C9A84C;
    width: 50px;
    position: absolute;
    left: 0px;
    bottom: -10px;
}
.map  { 
	flex: 1;
	background-color: silver;
}
iframe {
	width: 100%;
	height: 100%;
	border: none;
}
.bottom {
	display: flex;
	column-gap: 130px;
	padding: 20px 0px;
	font-weight: normal;
}
.bottom > * {
	flex: 1;
	padding: 20px 0px;
}
.pizzeria {
	display: flex;
	flex-direction: column;
}
.pizzeria .logo {
	margin-bottom: 20px;
}
footer.footer .copyright {
	max-width: none;
	border-top: solid 1px #C9A84C;
}
.bottom a {
	display: flex;
}
.bottom a svg {
	margin: 4px;
}
.bottom .title {
	color:  #C9A84C; 
	font-size: 20px;
	font-weight: 500;
}
.open7 {
	background-color: #FFFFFF3D;
	border-radius: 5px;
	padding: 0px 10px;
	display: inline;
}
.copyright .limit {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 0px;
	font-size: 18px;
	font-weight: normal;
	display: flex;
    justify-content: space-between;	
}
.copyright a {
	color: #C9A84C;
}
/* commandes */
.commandes h2 {
	text-align: center;
	margin: 20px;
}
.commandes section > article { flex: 0 0 auto }
#pizzas header {
	background-color: #004F37;
}
#tartes,
#desserts {
	background-color: #004F37;
	color: white;
}
.commandes {
	display: flex;
	flex-direction: column;
}
.top {	
	width: 100%;
	display: flex;
	height: 120px;
	align-items: center;
}
.scroll {
	flex: 1;
	overflow-y: scroll;
    scroll-behavior: smooth;	
}
.row {
	max-width: none;
	background-color: #004F37;
}
.row > * {
	max-width: 1200px;
	margin: 0 auto;
}
.grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);	
	gap: 20px;
	text-align: center;
	margin-bottom: 20px;
}
.produit {
	background-color: #004F37;
	color: white;
	padding: 10px;
	display: flex;
	flex-direction: column;
	aspect-ratio: 265 / 290;
}
.produit img { flex: 1; object-fit: contain; width: 100% }
.produit:hover {
	transform: scale(1.02) !important;
}
.produit:nth-child(4n+1) {
	opacity: 0;
	transform: translateX(-5vw);
}
.produit:nth-child(4n+2) {
	opacity: 0;
	transform: translateY(-2vw);
}
.produit:nth-child(4n) {
	opacity: 0;
	transform: translateX(+5vw);
}
.produit:nth-child(4n+3) {
	opacity: 0;
	transform: translateY(+2vw);
}
#tartes .produit,
#desserts .produit {
	background-color: #FFFFFF3B;;
}
.panier {
	width: 90px;
	height: 90px;
	padding: 0px;	
	background-color: #004F37;
	border: 2px solid white;
	border-radius: 90px;
	position: relative;
	aspect: 1;
}
#backup {
	display: none;
    background-color: #004F37;
    color: white;
    border-radius: 10px;
    padding: 10px 20px;	
	cursor: pointer;
}
#detail { margin-bottom: 20px }
#cart {
    background: URL("img/Panier.png") no-repeat center;
    background-size: contain;
    font-size: 0;
    display: block;
    width: 100%;
    height: 100%;
}
#counter {
    display: none;
    color: #004F37;
    border: 1px solid #004F37;
    background-color: white;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    text-align: center;
    position: absolute;
    padding: 2px;
    bottom: -5px;
    right: -5px;
}
.p48 { padding: 4px; margin: 4px 0px; }
.w20 { width: 15px }
.round { color: gray; width: 1.8em; margin: 5px }
.round:hover { background-color: silver; color: white; border-radius: 50%; }
/* popup */
.popup {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: #0008;
    z-index: 2000;
}

.popup.visible {
    display: flex;
}

.popup-close {
    position: absolute;
    top: 10px;
    right: 10px;

    width: 32px;
    height: 32px;
    padding: 0;

    border: 0;
    border-radius: 50%;
    background: transparent;

    font-size: 24px;
    line-height: 32px;
    font-weight: 300;

    color: #666;
    cursor: pointer;
}

.popup-close:hover {
    background: #eee;
    color: #222;
}
.popup-content {
	position: relative;
    width: min(90%, 400px);
    padding: 30px 20px 20px;
    background: white;
    border-radius: 10px;
    text-align: center;
}

.price-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 20px 0;
}

.price-options button {
    display: flex;
    justify-content: space-between;
    padding: 15px;
    border: 0;
    border-radius: 8px;
    background: #004F37;
    color: white;
    font-size: 1.1rem;
    cursor: pointer;
}

.popup-cancel {
    padding: 10px 20px;
}
/* paiment */
.border {
    border: 2px solid #C9A84C;
    border-radius: 20px;
    padding: 20px;
    width: 90%;
    max-width: 500px;
	margin-bottom: 50px;
}
#pnValider {
	display: flex;
	justify-content: center;
	height: 0px;
    margin-top: 20px;
    position: relative;
}
.valider {
    color: white;
    width: 75%;
    max-width: 200px;
    margin: auto;
    padding: 10px;
    border-radius: 15px;
    position: absolute;
    top: 50%;
	cursor: pointer;
	background-color: #c80000;
	text-align: center;
}
.border-top { border-top: 2px solid #C9A84C; padding: 10px 0px }
#hours span {
    border: 1px solid #C9A84C;
	color: gray;
    padding: 10px;
	cursor: pointer;
}
#hours span.first {
    border-radius: 50px 0 0 50px;
}
#hours span.last {
    border-radius: 0 50px 50px 0;
}
#hours span.active {
	background-color: #004F37;
	color: white;
}
#hour {
    border: 1px solid #C9A84C;
	color: gray;
    padding: 10px;
	border-radius: 50px;
}
.collect {
	background: URL("img/collect.png") no-repeat center;
    width: 128px;
    height: 128px;
}
.small_promo {
    font-size: 11px;
    color: #c80000;
    display: inline-block;
    transform: rotate(-35deg);	
}
.error { background-color: orange }
#spinner {
	position: fixed;
	top: 0px;
	left: 0px;
	width: 100%;
	height:100%;
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 2;
	background-color: rgba(0,0,0,.25);
}
#spinner:before {
	content: ' ';
	display: block;
	position: absolute;
	width: 150px;
	height: 150px;
	border-radius: 100%;
	background: URL(stripe.svg) no-repeat center;  
	background-color: white;
	background-size: 110px;
}
#spinner:after {
	content: ' ';
	display: block;
	position: absolute;
	width: 150px;
	height: 150px;
	border: 5px solid #cbcbca;
	border-top-color: #2380be;
	border-radius: 100%;
	animation: rotation .7s linear infinite;
}
@keyframes rotation {
	0% { transform: rotate(0deg) }
	to  { transform: rotate(359deg) }
}
/* utils */
.moveCart {
    position: fixed;
    z-index: 1000;
    pointer-events: none;
    transition: transform 500ms ease-in;
	padding: 25px;
	background-color: #71a400;
	color: white;
	border-radius: 50%;	
    left: var(--start-x);
    top: var(--start-y);	
	animation: moveToCart 500ms ease-in forwards;
}
@keyframes moveToCart {
    from {
        transform: translate(0, 0);
    }
    to {
        transform: translate(var(--delta-x), var(--delta-y));
    }
}
.slide {
    display: inline-block;
    opacity: 0;
}
.slide.down { transform: translateY(-5vw); }
.slide.up { transform: translateY(+5vw); }
.slide.left { transform: translateX(-5vw); }
.slide.right { transform: translateX(+5vw); }
.produit.animated,
.slide.animated {
    opacity: 1;
    transform: translate(0, 0);
    transition:
        opacity 1s ease,
        transform 1s ease;
}
#toggle {
    align-self: center;
	margin: 0px 20px;
	display: none;
}
#toggle .bars {
    display: inline-block;
    position: relative;
    width: 20px;
    height: 10px;
    border-top: 3px solid white;
    border-bottom: 3px solid white;
    cursor: pointer;
    padding: 0px;
    align-self: center;
}
#toggle .bars:before {
    content: ' ';
    position: absolute;
    top: 11px;
    left: 0px;
    height: 3px;
    width: 20px;
    background-color: white;
}
@media (max-width: 767px) {
	h1 { font-size: 50px; line-height: 1.1em;}
	h2 { font-size: 35px }
	.popup h2 { font-size: 25px; line-height: 1.1em; }
	.fn2 { font-size: 16px; line-height: 16px }
	.fn3 { font-size: 10px; }
	.fn4 { font-size: 15px; line-height: 35px }
	.menu,
	#menu-pdf * {
		display: none
	}
	#menu-pdf { flex: 1 }
	#accueil {
		text-align: center;
	}
	#accueil header {
		flex: 0 0 
	}
	#accueil .logo {
		width: 130px;
		height: 41px;
	}
	.commandes .logo {
		width: 210px;
		height: 60px;
	}
	#catalogue {
		text-align: center;
		padding: 10px;
	}
	#catalogue article {
		grid-template-columns: repeat(2, 1fr);
	}
	#catalogue article > *::before {
		height: 80px;
	}
	#apropos .layout {
		flex-flow: column-reverse;
	}
	#apropos .photo {
		flex: 0 0 380px;
		margin: 10px;
	}
	#apropos header,
	#apropos article > div {
		margin: 10px;
	}
	#contact header {
		text-align: center;
		padding: 10px;
	}
	#contact .layout {
		margin: 10px;
		row-gap: 10px;
	}
    .map { flex: 0 0 400px }	
	#contact .layout,
	.bottom	{
		flex-direction: column;
		padding: 10px;
	}
	.contact {
		flex: auto;
	}
	.copyright .limit {
		flex-direction: column;
		text-align: center;	
		font-size: 14px;
	}
	article {
		padding: 5px;
	}
	.grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
		font-size: 12px;
	}
	.produit {
		aspect-ratio: 146/167;
	}
	#toggle { display: block }
	.quickMenu .menu {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 50px;
		right: 20px;
		background-color: white;
		color: black;
		z-index: 1;
	}
	.commandes .menu {
		top: 80px;
		right: 100px;
		border: 1px solid #004F37;
		
	}
	.quickMenu .menu a { 
		color: black;
		padding: 10px 20px;
		width: 100%;
	}
	.quickMenu .menu a:hover {
		color: white;
		background-color: #004F37;
	}	
}