/* ============================================================
   REGLAGES
   ============================================================ */

:root
{
	/* Couleurs */
	--orange: #f28725;
	--noir: #000;
	--blanc: #fff;
	--gris-fonce: #777;
	--gris: #ccc;
	--gris-clair: #eee;

	/* Formes */
	--rayon: 4px;

	/* Largeur maximale du contenu */
	--largeur-max: 1600px;

	/* Marge laterale du contenu */
	--marge: 4vw;

	/* Espacement vertical entre les grands blocs */
	--espace: clamp(20px, 4vw, 45px);
}

@media (min-width: 700px)
{
	:root
	{
		--marge: 3vw;
	}
}

@media (min-width: 1200px)
{
	:root
	{
		--marge: 30px;
	}
}

/* ============================================================
   POLICE
   ============================================================ */

@font-face
{
	font-family: "Bubblegum";
	src: url("/font/Bubblegum.ttf") format("truetype");
	font-display: swap;
}

/* ============================================================
   BASE
   ============================================================ */

html
{
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
	-webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after
{
	box-sizing: border-box;
}

body
{
	margin: 0px;
	padding: 0px;
	background-color: var(--blanc);
	color: var(--noir);
	font-family: "Bubblegum", "Comic Sans MS", system-ui, sans-serif;
}

img
{
	max-width: 100%;
	height: auto;
}

::-webkit-scrollbar
{
	width: 8px;
}

::-webkit-scrollbar-track
{
	background: var(--gris-clair);
}

::-webkit-scrollbar-thumb
{
	background: #aaa;
}

::-webkit-scrollbar-thumb:hover
{
	background: #888;
}

/* ============================================================
   STRUCTURE GENERALE
   Le pied de page est pousse en bas par #contenu (flex: 1),
   sans hauteur figee ni positionnement absolu.
   ============================================================ */

#app
{
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

#contenu
{
	padding-bottom: var(--espace);
	flex: 1;
}

/* ============================================================
   TITRES ET TEXTES
   ============================================================ */

.titleMain
{
	padding: var(--espace) var(--marge) 0px var(--marge);
	font-size: clamp(26px, 6vw, 36px);
	text-align: center;
}

.text
{
	margin-top: clamp(12px, 2.5vw, 20px);
	padding-left: var(--marge);
	padding-right: var(--marge);
	font-size: clamp(17px, 4vw, 22px);
	text-align: center;
}

.text div
{
	margin-bottom: 5px;
}

.text span
{
	padding: 4px;
	color: var(--orange);
	font-size: clamp(16px, 3.8vw, 20px);
	background-color: var(--noir);
	border-radius: var(--rayon);
	white-space: nowrap;
}

.text a
{
	color: var(--orange) !important;
	text-decoration: none;
}

.message
{
	margin: 20px var(--marge);
	font-size: clamp(17px, 4.5vw, 20px);
	text-align: center;
}

/* ============================================================
   CREATIONS (pages Impression 3D / Decoupe laser)
   ============================================================ */

.creations
{
	margin: var(--espace) auto 0px auto;
	padding-left: var(--marge);
	padding-right: var(--marge);
	max-width: var(--largeur-max);
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: clamp(20px, 4vw, 50px);
}

.creation
{
	text-align: center;
}

.creation img
{
	width: 100%;
	border-radius: var(--rayon);
	display: block;
}

.creation .description
{
	padding-top: 8px;
	font-size: clamp(15px, 3.6vw, 18px);
}

/* ============================================================
   CHAMP QUANTITE
   ============================================================ */

.inputNumberParent
{
	white-space: nowrap;
}

.inputNumberParent .inputNumber
{
	padding: 2px 4px;
	width: 60px;
	font-family: inherit;
	font-size: clamp(18px, 4.5vw, 20px);
	text-align: center;
	border: none;
	border-top: 1px solid #aaa;
	border-bottom: 1px solid #aaa;
	vertical-align: middle;
	display: inline-block;
}

.inputNumber::-webkit-outer-spin-button,
.inputNumber::-webkit-inner-spin-button
{
	-webkit-appearance: none;
	margin: 0;
}

.inputNumber[type=number]
{
	-moz-appearance: textfield;
}

.inputNumberParent .inputNumberButtonSub,
.inputNumberParent .inputNumberButtonAdd
{
	padding: 2px 12px;
	font-size: clamp(18px, 4.5vw, 20px);
	font-weight: bold;
	border: 1px solid #aaa;
	cursor: pointer;
	vertical-align: middle;
	user-select: none;
	display: inline-block;
}

.inputNumberParent .inputNumberButtonSub
{
	border-top-left-radius: 3px;
	border-bottom-left-radius: 3px;
}

.inputNumberParent .inputNumberButtonAdd
{
	border-top-right-radius: 3px;
	border-bottom-right-radius: 3px;
}

.inputNumberParent .inputNumberButtonSub:hover,
.inputNumberParent .inputNumberButtonAdd:hover
{
	background-color: #ddd;
}

/* ============================================================
   PIED DE PAGE
   ============================================================ */

.footer
{
	padding: clamp(14px, 3vw, 20px) var(--marge);
	color: var(--blanc);
	font-size: clamp(13px, 3.2vw, 16px);
	background-color: var(--noir);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: clamp(15px, 4vw, 30px);
}

.footer .ico
{
	width: 130px;
	text-align: center;
}

.footer .ico .icoImg
{
	width: clamp(45px, 12vw, 64px);
}

.footer .liensImportants
{
	text-align: center;
}

.footer .liensImportants a
{
	margin-bottom: 4px;
	color: var(--blanc);
	font-size: clamp(12px, 3vw, 13px);
	font-weight: normal;
	text-decoration: none;
	display: block;
}

.footer .liensImportants a:hover
{
	text-decoration: underline;
}

@media (min-width: 700px)
{
	.footer
	{
		justify-content: flex-end;
		gap: 30px;
	}

	.footer .liensImportants
	{
		padding-top: 12px;
		text-align: right;
	}
}

/* ============================================================
   PAGES LEGALES
   ============================================================ */

.legalTextParent
{
	width: 100%;
	display: block;
}

.legalTextParent .legalText
{
	margin: var(--espace) auto 0px auto;
	padding-left: var(--marge);
	padding-right: var(--marge);
	max-width: 700px;
	font-family: arial, sans-serif;
	font-size: clamp(12px, 3.2vw, 13px);
	text-align: left;
}

.legalTextParent p
{
	margin-left: 10px;
}
