[data-composant="SliderAutomatique"]
{
	&{
		width: var(--maxWidth);
		margin: auto;
		text-align: center;
	}
	
	h2{
		margin-bottom: 20px;
	}
	
	.liste
	{
		&{
			display: flex;
			gap: 2em;
			overflow: hidden;
		}
		
		
		ul{
			flex-shrink: 0;
			
			display: flex;
			align-items: center;
			gap: 2em;
			padding: 0;
			margin: 0;
			animation: SliderAutomatique--animationHorizontale 10s linear infinite;
		}
		
		ul li{
			list-style: none;
			flex-shrink: 0;
		}
		
		ul li img
		{
			display: block;
			height: 30px;
			width: auto;
		}
		
		&:hover ul{
			animation-play-state: paused;
		}
	}
	
}


@keyframes SliderAutomatique--animationHorizontale 
{
	0% {
	  transform: translateX(0);
	}
	100% {
	  transform: translateX(calc(-100% - 1em));
	}
}
@property --AvantApres--progression

{

	syntax: "<percentage>";
	inherits: true;
	initial-value: 0%;

}

@keyframes AvantApres--afficher-apres

{

	from
	{
		--AvantApres--progression: 0%;
	}
	to
	{
		--AvantApres--progression: 100%;
	}

}

@keyframes AvantApres--zoom
{
	from
	{
		transform: scale(1);
	}

	to
	{
		transform: scale(1.2);
	}
}

@keyframes avant-txts
{	
	0%
	{
		opacity: 1;
		transform: translateY(0%);
	}
	
	35%, 100%
	{
		opacity: 0;
		transform: translateY(-25%);
	}
}

@keyframes apres-txts
{
	
	0%, 50%
	{
		opacity: 0;
		transform: translateY(25%);
	}
	
	80%
	{
		opacity: 1;
		transform: translateY(0%);
	}
}

[data-composant="avant-apres"]
{
	&{ overflow: clip }
	
	.conteneur{
		--AvantApres--progression : 0%;
		height: 400dvh;
		view-timeline-name: --avant-apres;
		position: relative;
	}
	
	
	article
	{
		&{
			
			height: 100dvh;
			position: sticky;
			top: 0;
			animation: AvantApres--afficher-apres linear both;
			animation-timeline: --avant-apres;
			animation-range: entry 100% exit 0%;
		}
		
		
			
		&:after
		{
			content: "";
			
			position: absolute;
			top: 0;
			left: var(--AvantApres--progression);
			translate: -50% 0;
			width: 2px;
			height: 100%;
			background: white;
			z-index: 2;
		}
			
	
		img{
			position: absolute;
			inset: 0;
			width: 100%;
			height: 100%;
			object-fit: cover;
			
			animation: AvantApres--zoom linear both;
			
			animation-timeline: --avant-apres;
			animation-range: entry 100% exit 0%;
		}
		
		.avant img
		{
			filter: grayscale();
		}
		
		
		
		.img{
			position: absolute;
			inset: 0;
			overflow: hidden;
		}
		
		.img:after
		{
			content: "";
			position: absolute;
			z-index: 2;
			inset: 0;
			pointer-events: none;
			background: linear-gradient(
			90deg,
			rgba(0, 0, 0, .62),
			transparent 38%,
			transparent 56%,
			rgba(0, 0, 0, .72)
			),
			linear-gradient(0deg, rgba(0, 0, 0, .5), transparent 35%);
		}
		.apres .img
		{
			position: absolute;
			inset: 0;
			clip-path: inset(0 calc(100% - var(--AvantApres--progression)) 0 0);
		}
		
		.txts
		{
			&
			{
				position: absolute;
				top: 75%;
				z-index: 3;
				font-size: 1em;
				width: 35%;
				translate: 10% -50%;
				background: rgba(0, 0, 0, 0.4);
				color: white;
				border: 1px solid white;
				backdrop-filter: blur(5px);
				padding: 10px;
				border-radius: var(--borderRadiusXS);
			}
			
			.tag
			{
				border: 1px solid white;
				font-size: .8em;
				color: white;
				padding: 5px 20px;
				border-radius: var(--borderRadius);
				display: inline-flex;
				margin-bottom: 20px;
			}
			
			h2{
				font-size: 3em;
				color: white;
			}
			
			p{margin: 0}
			
			ul{
				padding: 0;
				display: flex;
				gap: .5em;
				font-size: .8em;
			}
			
			li{
				list-style: none;
				border: 1px solid;
				padding: 5px 10px;
				background: white;
				
			}
		}
		
		.avant .txts
		{
			animation: avant-txts linear both;
			
			animation-timeline: --avant-apres;
			animation-range: entry 100% exit 0%;
		}
		
		.apres .txts
		{
			translate: 0% -50%;
			right: 5%;
			animation: apres-txts linear both;
			
			animation-timeline: --avant-apres;
			animation-range: entry 100% exit 0%;
		}
		
		
	}
	
	.contain img
	{
		object-fit: contain;
	}
	
	[data-composant="bouton"]
	{
		position: sticky;
		
		top: 20px;
		z-index: 10;
		display: block;
		width: max-content;
		margin: 0 20px -48px auto;
		
	}
	
	
}
[data-composant="txt-image"]
{
	&{
		width: var(--maxWidth);
		margin: 0 auto;
		min-height: 100dvh;
		align-items: end;
		padding: var(--padding) 0;
	} 
	
	@media (max-width: 768px) 
	{
		&{
			width: var(--maxWidth);
			min-height: 0;
		}	
	}
	
	p{
		margin-bottom: 0;
	}
	.media
	{
		text-align: right;
	}
	
	.media img{
		border-radius: var(--borderRadiusXS);
		width: 100%;
		height: 80%;
		object-fit: cover;
	}
}
[data-composant="processus-expliquer"]
{
	&
	{
		border-radius: var(--borderRadius);
		width: var(--maxWidth);
		margin: auto;
		display: grid;
		gap: 1em;
	}
	
	@media (max-width: 820px) 
	{
		&{
			width: 95%;
	
		}	
	}
	
	.intro{
		padding: var(--padding);
		position: sticky;
		top: 20px;
		align-self: start;
	}
	
	@media (max-width: 820px) 
	{
		.intro{
			position: relative;
	
		}	
	}
	
	.txts{
		display: flex;
		justify-content: center;
		flex-direction: column;
		overflow: hidden;
	}
	
	.liste{
		padding-top: var(--padding);
		counter-reset: etape;
	}
	
	article{
		background: white;
		border-radius: var(--borderRadiusXS);
		padding: 20px;
		position: relative;
		min-height: 350px;
		transition: transform 0.3s cubic-bezier(0, 0, 0.5, 1);
		transform: scale(1);
		margin-bottom: calc(var(--padding) * 2);
		width: 90%;
		display: grid;
		grid-template-columns: 50px 1fr;
		gap: 1em;
	}
	
	@media (max-width: 768px) 
	{
		article{
			display: block;
		}	
	}
	
	article:before
	{
		counter-increment: etape;
		content: "0" counter(etape);
		font-size: 2em;
		display: grid;
		color: var(--couleur1);
	}
	
	article:after
	{
		position: absolute;
		content: "";
		width: 10px;
		height: 100px;
		border-left: 1px dashed;
		bottom: 0;
		right: 20%;
		translate: 0 100%;
	}
	
	article:nth-child(even)
	{
		margin-left: auto;
	}
	
	article:nth-child(even):after
	{
		right: 60%;
	}
	article:hover{
		transform: scale(1.01);
	}
	
	
	
	article i{
		position: absolute;
		right: 20px;
		bottom: 20px;
		opacity: .5;
		color: rgba(37, 75, 59, 1);
		display: none;
	
	}
	
	h3{font-size: 2em}
	
	
	article .images
	{
		&{
			padding:0;
			display: flex;
			gap: 1em;
			scroll-snap-type: x mandatory;
			overflow-x: scroll;
		}
		
		li{
			list-style: none;
			scroll-snap-align: start;
		}
		
		img{
			border-radius: var(--borderRadiusXS);
			object-fit: cover;
		}
	}
}

[data-composant="processus-expliquer"][data-theme="doree3D"]
{
	&{
		background: black;
		min-height: 100dvh;
		width: 100%;
		padding: 50px;
		padding-bottom: 0;
	}
	
	.intro{
		color: white;
	}
	
	h2{
		color: wheat;
		font-size: 1.5em
	}
	h2 strong{
		text-transform: uppercase;
		font-size: 2.5em;
		display: block;
	}
	
	article{
		color: wheat;
		font-size: 1.2em;
		background: var(--couleurDegrader1);
		animation: apparitionPkoiNous linear both;
		animation-timeline: view();
		animation-range: entry 0% contain 60%;
	}
}
[data-composant="liste-services"][data-theme="stack"]
{
	&{
		width: var(--maxWidth);
		margin: auto;
	}
	
	
	@media (max-width: 820px) 
	{
		&{
			display: grid;
			place-content: center;
		}
	}
	
	
	.titre
	{
		text-align: center;
	}
	
	.txts{
		position: sticky;
		top: 20%;
		margin-bottom: 80dvh;
		transform: translateY(-50%);
		
	}
	
	.txts > .txt
	{
		width: 60%;
		text-align: center;
		margin: auto;
	}
	
	.tag{
		border: 1px solid;
		color: #333;
		font-size: .8em;
		padding: 10px 20px;
		border-radius: var(--borderRadius);
	}
	
	
	.liste{
		
		
		&{
			padding: 0;
		}
		
		& > li
		{
			min-width: 0;
		}
		
		
		
		
		& > li
		{
			&{
				list-style: none;
				background-size: cover;
				background-position: right;
				border-radius: var(--borderRadius);
				position: relative;
				overflow: hidden;
				font-size: 1.2em;
				position: sticky;
				top: calc(((sibling-index() - 1) * 10px) + 30%);
				max-width: calc(((sibling-index() - 1) * 20px) + 800px);
				margin: 20px auto;
				margin-bottom: 250px;
			}
			
			&.li-cta
			{
				height: 85dvh;
				background-size: cover;
				top: calc(((sibling-index() - 1) * 10px) + 60%);
				max-width: 80%;
				margin-bottom: 0;
			}
			
			@media (max-width: 820px) 
			{
				&.li-cta
				{
					max-width: 100%;
				}
			}
			
			&.li-cta:before
			{
				content: "";
				position: absolute;
				inset: 0;
				background: linear-gradient(
				
					180deg,
					transparent 0%,
					rgba(0,0,0,.3) 85%
				
				);
				z-index: 1;
			}
			
			.cta{
				&{
					position: absolute;
					top: 100%;
					transform: translate(5%,-120%);
					width: 80%;
					z-index: 2;
				}
				
				
				
				h2{
					color: white;
					font-size: 1.3em;
				}
				
				h2 strong{
					font-size: 2.5em;
					display: block;
				}
				
				a{display: inline-flex}
			}
			
			
			
			@media (max-width: 820px) 
			{
				&{
					min-width: 80dvw;
					height: 500px;
				}
			}
			
			
			header
			{
				width: 100%;
				height: 400px;
				position: relative;
			}
			
			header .tag
			{
				position: absolute;
				top: 20px;
				left: 20px;
				background: #333;
				color: white;
				
			}
			
			a{
				text-decoration: none;
				color: initial;
				display: grid;
			}
			
			[data-composant="bouton"]
			{
				color:var(--couleurBTNTexte);
			}
			
			a header{
				grid-row-start: 1;
				grid-column-start: 1;
				grid-row-end: auto;
				grid-column-end: auto;
				align-self: start;
			}
			img{
				width: 100%;
				height: 100%;
				object-fit: cover;
				border-radius: var(--borderRadius);
				border:1px solid var(--couleurborderImageRessourcesSlider);
				display: block;
				transition: transform 0.3s cubic-bezier(0, 0, 0.5, 1);
				transform: scale(1);	
				
			}
			
			
			
			&:hover img{
				transform: scale(1.01);
			}
			
			.main
			{
				&{
					grid-row-start: 1;
					grid-column-start: 1;
					grid-row-end: auto;
					grid-column-end: auto;
					align-self: end;
					z-index: 1;
					padding: 10px 20px;
					background: rgba(255, 255, 255, 0.6);
					backdrop-filter: blur(5px);
				}
				
				h3{
					font-size: 1.3em;
				}
				
				.txt{
					overflow: hidden;
					display: -webkit-box;
					-webkit-box-orient: vertical;
					-webkit-line-clamp: 2;
					line-clamp: 2;
				}
			}
			
			footer
			{
				&{
					display: flex;
					align-items: center;
					justify-content: space-between;
					margin-top:20px;
				}
				
				[data-composant="tags"]
				{
					&{
						margin: 0;
						padding: 0;
						display: flex;
						align-items: center;
					}
					
					li{
						list-style: none;
					}
				}
			}
			
			
			
			&.cta {
				&{
					background-position: center;
					background-size: cover;
					background-color: var(--couleurBTN);
			
									
				}
				& > div{
					width: 100%;
					display: flex;
					height: 100%;
					color: var(--couleurTexte);
			
				}
				
				.cta-rdv{
					border-radius:var(--borderRadius);
					padding:var(--padding);
					display:flex;
					align-items:center;
				}
				
				@media (max-width: 768px) 
				{
					.cta-rdv{
						padding:calc(var(--padding) / 2);
					}
				}
				.icone{
					width:80px;
					height:80px;
					border-radius:50%;
					background:rgba(255,255,255,.4);
				
					display:grid;
					place-items:center;
				
					font-size:2rem;
					margin-bottom:30px;
				}
				
				.cta-rdv h2{
					line-height:.9;
				}
				
				.cta-rdv p{
					line-height:1.6;
					color: var(--couleurTexte);
				}
				
				[data-composant="bouton"]{
					display:flex;
					align-items:center;
					justify-content:space-between;
					gap:1em;
					flex-direction: row-reverse;
					width:100%;					
					padding:25px 35px;
				
					background:white;
					border-radius:24px;
					font-size: .8em;
					text-decoration:none;
					color:inherit;
				
					box-shadow:0 10px 30px rgba(0,0,0,.08);
				}
				
				@media (max-width: 768px) 
				{
					.btn-rdv{
						padding:15px 15px;
					}
				}
				
				
			}
			
			&:not(.cta)
			{
				i, svg{
					position: absolute;
					right: 20px;
					bottom: 20px;
					font-size: 3em;
					opacity: .5;
					color: rgba(37, 75, 59, 1);
				}
			}
			
		}
		
	}
	
}


[data-composant="liste-services"][data-theme="stack--full"]
{
	&{
		position: relative;
		width: var(--maxWidth);
		margin: auto;
	}
	
	&:before{
		content: "";
		position: sticky;
		top: 20px;
		background: url("https://cover-house-design.com/wp-content/uploads/2024/12/Cover_House_Design_Covering_Film_Solaire_Decoration_Amenagement_Meubles_Moselle_Luxembourg-1.jpg");
		background-size: cover;
		background-repeat: no-repeat;
		height: calc(100dvh - 40px);
		left: 0;
		display: block;
		border-radius: var(--borderRadius);
		background-position: center
		
	}
	
	
	.txts
	{
		position: sticky;
		margin-bottom: 80dvh;
		
		background: rgba(0, 0, 0, 0.4);
		height: 100%;
		height: calc(100dvh - 40px);
		border-radius: var(--borderRadius);
		display: grid;
		place-content: center;
		backdrop-filter: blur(5px);
		transform: none;
		top: 20px;
	}
	
	.titre
	{
		text-align: center;
	}
	
	
	.liste{
		
		
		&{
			padding: 0;
		}
		
		& > li
		{
			&{

				list-style: none;
				background-size: cover;
				background-position: right;
				border-radius: var(--borderRadius);
				overflow: hidden;
				font-size: 1.2em;
				position: sticky;
				top: 20px;
				margin-bottom: 50dvh;
			}
			
			&.li-cta
			{
				img{
					height: calc(100dvh - 40px);
				}
			}
			
			@media (max-width: 820px) 
			{
				&.li-cta
				{
				}
			}
			
			&.li-cta:before
			{
				content: "";
				position: absolute;
				inset: 0;
				background: linear-gradient(
				
					180deg,
					transparent 60%,
					rgba(0,0,0,.3) 85%
				
				);
				
				z-index: 1;
				margin-bottom: 0;
			}
			
			.cta{
				&{
					position: absolute;
					bottom: 50px;
					left: 50px;
					z-index: 2;
				}
				
				
				
				h2{
					color: white;
					font-size: 1.3em;
				}
				
				h2 strong{
					font-size: 2.5em;
					display: block;
				}
				
				a{display: inline-flex}
			}
			
			
			
			@media (max-width: 820px) 
			{
				&{
					min-width: 80dvw;
					height: 500px;
				}
			}
			
			
			header
			{
				width: 100%;
				height: 100%;
				position: relative;
				padding: 20px;
				right: -50px;
			}
			
			header .tag
			{
				position: absolute;
				top: 20px;
				left: 20px;
				background: #333;
				color: white;
				
			}
			
			article > div{
				text-decoration: none;
				color: initial;
				display: grid;
				grid-template-columns: 1fr 1fr;
				background: var(--couleurBackgroundBody);
				align-items: end;
				height: calc(100dvh - 40px);
			}
			
			[data-composant="bouton"]
			{
				color:var(--couleurBTNTexte);
			}
			
			img{
				width: 100%;
				height: calc(100dvh - 80px);
				object-fit: cover;
				border-radius: var(--borderRadius);
												
				border:1px solid var(--couleurborderImageRessourcesSlider);
				display: block;
				transition: transform 0.3s cubic-bezier(0, 0, 0.5, 1);
				transform: scale(1);	
				
			}
			
			
			
			&:hover img{
				transform: scale(1.01);
			}
			
			.main
			{
				&{
					
					z-index: 1;
					padding: 50px 20px;
					background: rgba(255, 255, 255, 1);
					position: relative;
					left: -50px;
					bottom: 50px;
					border-radius: var(--borderRadius);
					box-shadow: var(--boxShadow);
				}
				
				h3{
				}
				
				.txt{
				}
			}
			
			footer
			{
				&{
					display: flex;
					align-items: center;
					justify-content: space-between;
					margin-top:20px;
				}
				
				[data-composant="tags"]
				{
					&{
						margin: 0;
						padding: 0;
						display: flex;
						align-items: center;
					}
					
					li{
						list-style: none;
					}
				}
			}
			
			
			
			&.cta {
				&{
					background-position: center;
					background-size: cover;
					background-color: var(--couleurBTN);
			
									
				}
				& > div{
					width: 100%;
					display: flex;
					height: 100%;
					color: var(--couleurTexte);
			
				}
				
				.cta-rdv{
					border-radius:var(--borderRadius);
					padding:var(--padding);
					display:flex;
					align-items:center;
				}
				
				@media (max-width: 768px) 
				{
					.cta-rdv{
						padding:calc(var(--padding) / 2);
					}
				}
				.icone{
					width:80px;
					height:80px;
					border-radius:50%;
					background:rgba(255,255,255,.4);
				
					display:grid;
					place-items:center;
				
					font-size:2rem;
					margin-bottom:30px;
				}
				
				.cta-rdv h2{
					line-height:.9;
				}
				
				.cta-rdv p{
					line-height:1.6;
					color: var(--couleurTexte);
				}
				
				[data-composant="bouton"]{
					display:flex;
					align-items:center;
					justify-content:space-between;
					gap:1em;
					flex-direction: row-reverse;
					width:100%;					
					padding:25px 35px;
				
					background:white;
					border-radius:24px;
					font-size: .8em;
					text-decoration:none;
					color:inherit;
				
					box-shadow:0 10px 30px rgba(0,0,0,.08);
				}
				
				@media (max-width: 768px) 
				{
					.btn-rdv{
						padding:15px 15px;
					}
				}
				
				
			}
			
			&:not(.cta)
			{
				i, svg{
					position: absolute;
					right: 20px;
					bottom: 20px;
					font-size: 3em;
					opacity: .5;
					color: rgba(37, 75, 59, 1);
				}
			}
			
			&.vide{
				height: 50dvh;
				width: 100%;
				margin-bottom: -40dvh;
				background: var(--couleurBackgroundBody);
				border-radius: 0;
			}
			
		}
		
	}
}
[data-composant="form-contact"]{
	& > div{
		background: var(--couleurDegrader1);
		border-radius: var(--borderRadius);
		width: var(--maxWidth);
		margin: 20dvh auto;
		padding: var(--padding);
		margin-bottom: var(--padding);
		container-type: inline-size;
		color: white;
	}
	
	@media (max-width: 768px) 
	{
		& > div{
			padding: calc(var(--padding) / 2);
			width: 95%;
		}	
	}
	
	
	&#discuter
	{
		min-height: 100dvh;
		display: grid;
		align-items: center;
		background: url("/uploads/images/discutons.jpg") center center / cover no-repeat;
		
	}
	&#discuter h2
	{
		color: white;
	}
	&#discuter > div
	{
		background: linear-gradient(315deg, rgba(37, 75, 60, 0.5), rgba(108, 161, 136, 0.5));
		border: 1px solid rgba(255, 255, 255, .4);
		backdrop-filter: blur(5px);
		max-width: 700px;
		width: 100%;

	}
	
	.grid_1_1
	{
		grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	}
	
	
	
	@container (max-width: 1000px)
	{
		& > div{
			display: block;
			
		}
	}
			
	.txts{
		ul{
			padding: 0;
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 1em;
		}
		
		@media (max-width: 768px) 
		{
			ul{
				display: block;
		
			}	
		}
		
		
		li{
			list-style: none
		}
		
		li a
		{
			display: block;
			text-align: center;
		}
		
		li:nth-child(1):not(:has(.moitier))
		{
			grid-column: 1 / span 2;
		}
		
		ul li:not(:first-child):not(:has(.moitier)) a
		{
			background: none;
			color: var(--couleur1);
			border: 1px solid;
			color: white;
		}
		
		.balise
		{
			color:var(--couleurTexte);
		}
	}
	
	h2{
		color: white;
	}
	
	form
	{
		background: rgba(255, 255, 255, .2);
		border-radius: var(--borderRadiusS);
		padding: 20px;
		position: relative;
		transition: all .5s ease;
		margin: 20px 0;
	}
	
	[data-composant="bouton"]
	{
		color: initial;
	}
}


[data-composant="form-contact"][data-theme="form-infos"]
{
	
}
[data-composant="form"]
{
	.parent
	{
		margin-bottom: 20px;
	}
	.parent:has(.champ input[type="hidden"])
	{
		display: none;
	}
	
	label
	{
		display: block; 
		margin-bottom:5px;
		min-height: 20px;
		cursor: pointer;
	}
	
	.blocInput
	{
		&:not(:has([type="file"]))
		{
			transition: background .5s ease, border .5s ease;
			padding: 0;
			margin: 0;
			display: grid;
			grid-template-columns: 45px auto 45px;
			border-radius: var(--borderRadius);
			position: relative;
			overflow: hidden;
			gap: 0px;
			align-items: center;
			min-height: 55px;
		}
		
		*
		{
			transition: opacity .5s ease;
		}
		
		&:has(:where(input, select, textarea)[disabled])
		{
			background: #ccc; 
			cursor: not-allowed
		}
		
		&:has(:where(input, select, textarea)[disabled]) *
		{
			cursor: not-allowed;
		}
		
		&:not(:has([required])):has(output:empty)
		{
			&:has( > :nth-child(3))
			{
				grid-template-columns: 45px auto 0;
			}
			
			&:not(:has( > :nth-child(3)))
			{
				grid-template-columns: auto 0;
			}
		}
		
		.avantChamp, .apresChamp
		{
			color: #9d9e9e;
			display: flex;
			justify-content: center;
			height: 100%;
			align-items: center;
			flex-direction: column-reverse;
			padding: 5px;		
			background: #fff;
			width: 100%;
		}
		
		.avantChamp
		{
			font-size: 1.1em
		}
		
		&:has([type="file"])
		{
			.avantChamp, .apresChamp
			{
				display: none;
			}
		}
		
		.champ
		{
			&:not(:has(input[type="file"]))
			{
				display: block;
				height: 100%;
			}
			
			&:has(input[type="file"])
			{
				display: grid;
				align-items: center;
			}
			
			&:has(input[switch])
			{
				display: flex;
				gap:1em;
				align-items: center;
			}
			
			input, textarea, select
			{
				outline: none;
			}
			
			input[type="file"]
			{
				font-size: 1em;
			}
			input:not([type="checkbox"]):not([type="radio"]):not([type="file"])
			, textarea
			, select
			{
				width: 100%;
				height: 100%;
				padding: 0 10px;
				font-weight: 400;
				font-size: 1em;
				background-color: var(--formCouleurInput);
				border: none;
			}
			
			&:has(textarea)
			{
				height: 200px;
			}
			
			textarea
			{
				padding: 5px;
				height: 100%;
			}
			
		}
		
		.apresChamp
		{
			background: #fff;
			gap: 5px;
			font-size: 1.5em;
			position: relative;
			z-index: 1;
			
		}
		
		output
		{
			&
			{	
				font-size: .4em;
				z-index: 1;
			}
			
			&:empty
			{
				display: none;
			}
			
			&.avertissement
			{
				color: var(--couleurAvertissement);
			}	
		}
		
		.legende
		{
			color:var(--couleurLegende);
			font-size: .8em;
			font-style: italic;
		}
		
		.explicationErreur
		{
			min-height: 20px;
			margin-top:5px;
			color: #fff;
			
			background: var(--couleurAvertissement);
			padding: 10px;
			border-radius: var(--borderRadiusXS);
			padding-top: 20px;
			border: 1px solid var(--couleurAvertissement);
			position: relative;
			z-index: -1;
		
			margin-top: -15px;
			margin-bottom: 20px;
			transition: margin-top .5s ease, opacity .5s ease;
			opacity: 1;
		}
		
		.explicationErreur:empty
		{
			margin-top: -55px;
			opacity: 0;
		}
		
	}
	
	.submit
	{
		position: relative;
	}
	.submit button
	{
		color: var(--couleurBTNTexte);
	}
	
	&:has(:invalid) button
	{
		/*opacity: .5;*/
	}
	
	&:has(:invalid) .submit:after
	{
		content: " ";
		position: absolute;
		top: 0;
		left: 0;
		background: rgba(0,0,0,0);
		width: 100%;
		height: 100%;
		z-index: 1;
		cursor: not-allowed;
	}
	
	
	.blocInput:not(:has([required])) .apresChamp div
	{
		display: none;
	}
	
	.parent:has([required])
	{
		.blocInput:has(:valid) .apresChamp .ko
		, .blocInput:has(:invalid) .apresChamp .ok
		{
			display: none;
		}
		.blocInput:has(:valid) .apresChamp .ok
		{
			color: var(--couleurValidation);
		}
		
		.blocInput:has(:invalid) .apresChamp .ko 
		{
			color: var(--couleurAvertissement);
		
		}
		
	}
	
	
	
	
	
	
	.desactiver-border .blocInput
	{
		border: 2px solid var(--formCouleurBordure);
	}
	
	
	.parent:not(.desactiver-border):has(:focus)
	, .parent:not(.desactiver-border):has(:focus):has(:hover)
	{
		border-color: var(--formCouleurFocus)
	}
	
	.masquer-bordure .blocInput
	{
		border:none;
	}
	
	.parent:has(.explicationErreur:not(:empty)) .blocInput.invalid
	{
		border-color: var(--couleurAvertissement)!important;
	}

	.supprimer-espace-label label:empty
	{
		display: none;
	}
	
	.supprimer-espace-bottom
	{
		margin-bottom: 0!important
	}
	
	input[disabled]:not([type="checkbox"]):not([type="radio"])
	, input[readonly]:not([type="checkbox"]):not([type="radio"])
	, select[disabled]
	, select[readonly]
	, textarea[readonly]
	, textarea[disabled]
	{
		background-color: var(--formCouleurBordure);	
	}
	
	.reassurances
	{
		display: flex;
		gap: 1em;
		padding-left: 0;
		font-size: .7em;
		
		--fa-primary-color: rgb(255, 255, 255);
		--fa-secondary-color: var(--couleurBTN); 
		--fa-secondary-opacity: 1;
	}
	
	@media (max-width: 768px) 
	{
		.reassurances{
			justify-content:center;
		}
	}
	
	.reassurances li
	{
		list-style: none;
	}
	
	.reassurances li i, .reassurances li svg
	{
		color:var(--couleurBTN);
	}
	
	@media (max-width: 768px)
	{
		.reassurances li
		{
			display: flex;
			flex-direction: column;
			align-items: center;
		}
		
		.reassurances li i
		{
			display: block;
		}
	}
}

[data-composant="faq"]
{
	&
	{
		width: var(--maxWidth);
		margin: auto;
		margin-bottom: -20px;
		padding-bottom: var(--padding);
	}
	
	.intro
	{
		&
		{
			position: sticky;
			top: 20px;
			align-self: start;
		}
		
		@media (max-width: 820px) 
		{
			&{
				position: relative;
			}	
		}
		
		ul{margin-left: 0; }
		ul li{
			list-style: none;
		}
		
		
	}
	
	article
	{
		&{
			border-radius: var(--borderRadiusXS);
			background: white;
		/*	transition: transform 0.3s cubic-bezier(0, 0, 0.5, 1);
			transform: scale(1);*/
			margin-bottom: 20px;
		}
		/*
		&:hover{
			transform: scale(1.05);
		}*/
		
		&:not(first-child)
		{
			margin-top: 10px;
		}
		
		h3
		{
			margin-bottom: 0;
			padding: 10px 0;
			font-size: 1.4rem;
		}
		
		h3 .titre, .infos
		{
			padding: 0 20px;
		}
		
		label
		{
			cursor: pointer;
			display: grid;
			grid-template-columns: 1fr 50px;
			gap: 1em;	
			padding: 10px;
			position: relative;
		}
		
		label:before
		{
			content: "";
			width: 10px;
			height: 10px;
			background: rgba(37, 75, 59, 0.1);
			position: absolute;
			border-radius: 50%;
			left: 10px;
		}
		
		
		
		input
		{
			display: none
		}
		.infos
		{
			display: grid;
			grid-template-rows: 0fr;
			transition: grid-template-rows .4s ease;
		}
		
		.iconeAccordeon
		{
			display: flex;
			align-items: center;
			justify-content: center;
			transform-origin: center;
			transition: transform .5s ease .2s;
		}
		
		&:has(input:checked) 
		{
			.infos
			{
				grid-template-rows : 1fr
			}
		
			.iconeAccordeon
			{
				transform: rotate(180deg);			
			}
		}
		
		p{transition: margin .5s ease}
		&:not(:has(input:checked)) p
		{
			margin: 0;
		}
		
		.infos-contenu
		{
			overflow: hidden;
			min-height: 0;
		}
	}
	
}

[data-composant="faq"][data-theme="block"]
{
	&{
		width: 65%;
		border-radius: var(--borderRadius);
		padding: 20px;
	}
	
	& > div{
		display: block;
	}
	
	.intro{
		position: static;
	}
	
	article{
		background: rgb(from var(--couleur1) r g b / 20%);
		
		animation-name: fromRight;
		animation-duration: 1s;
		animation-fill-mode: both;
		animation-timing-function: ease;
		animation-timeline: view(block);
		animation-range: entry 15% cover 20%;
	}
	
	
}

@keyframes fromRight

{

	from
	{
		opacity: 0;
		transform: translateX(50%);
	}
	to
	{
		opacity: 1;
		transform: translateX(0);
	}

}
[data-composant="footer"]
{
	&{
		background: var(--couleurDegrader1);
		color: white;
		padding: 20px;
		padding-top:40px;
		position: sticky;
		bottom: 0;
		margin-top: -20px;
		
	}
	
	@media (max-width: 820px)
	{
		h2, h3{
			font-size: 1.5em!important;
		}
	}
	
	& > div {
		display: flex;
		justify-content: space-between;
		gap: 1em;
	}
	
	@media (max-width: 720px)
	{
		& > div {
			display: block;
		}
	}
	
	
	@media (max-width: 820px)
	{
		& > div > div{
			max-width: 350px;
		}
	}
	
	.txt{
		max-width: 500px;
	}
	#menus{
		display: flex;
		gap: 1em;
	}
	
	@media (max-width: 720px)
	{
		nav {
			font-size: .8em;
		}
	}
	
	
	ul{
		padding-left: 0;
	}
	li{
		list-style: none;
		padding-left: 0;
	}
	
	h2, h3, h4{
		color: white !important;
	}
	
	
	a{
		color: white;
	}
	
	li a{
		text-decoration: none;
	}
	
	[data-composant="bouton"]
	{
		color: var(--couleurBTNTexte);
	}
	
	
	#copyright
	{
		&{
			font-size: .8em;
			
		}
		
		p{
		}
	}
	
	
}

@keyframes apparitionProcessus {
	from{
		scale: .65;
		translate: 0 100px;
		rotate: x 25deg;
		opacity: 0;
		filter: blur(8px);
	}

	to{
		scale: 1;
		translate: 0 0;
		rotate: x 0deg;
		opacity: 1;
		filter: blur(0);
	}
}

@keyframes apparitionPkoiNous {
	from{
		transform: perspective(1000px) rotateY(-40deg);
	}

	to{
		transform: perspective(1000px) rotateY(0deg);
	}
}


/* perspective: 400px; */

.balise
{
	&{
		background: white;
		padding: 5px 30px;
		border-radius: var(--borderRadiusS);
		width: fit-content;
		font-size: .8em;
		position: relative;
		padding-right: 20px;
		margin-bottom: 20px
	}
	
	&:before
	{
		content: " ";
		aspect-ratio: 1/1;
		width: 10px;
		background: var(--couleurTexte);
		border-radius: 50%;
		position: absolute;
		left: 10px;
		top: 50%;
		transform: translateY(-50%);
	}
}


main{
	padding-bottom: 20px;
}


#_accueil main > section:not(#banniere)
, #_realisations-enfant main > section:not([data-composant="avant-apres"])
{
	margin: 100px auto;
}

#contact
{
	&
	{
		background: url(https://cover-house-design.com/wp-content/uploads/2025/11/download.webp);
		background-size: cover;
		background-position: center center;
		display: grid;
		place-content: center;
		position: relative;
		z-index: 1;
		height: 100dvh;
		grid-template-columns: 1fr;
	
	}
	&:before{
		content: "";
		position: absolute;
		z-index: 2;
		inset: 0;
		background: rgba(0, 0, 0, 0.5);
		backdrop-filter: blur(5px);
		
	}
	& > div{
		background: none;
		position: relative;
		z-index: 3;
		margin: 0;
	}
}

@keyframes masquerTxtsBanniere
{
	from
	{
		opacity: 1;
	}

	to
	{
		opacity: 0;
	}
}

@keyframes paralaxeTexte

{

	from
	{
		translate: 0 -45%;
	}
	to
	{
		translate: 0 -20%;
	}

}



#_accueil
{
	&{
		timeline-scope: --agence;
  
	}
	#banniere{
		&{
			
		
			animation: masquerTxtsBanniere linear forwards;
			animation-timeline: --agence;

			/* Débute quand #agence entre dans la vue
			   Termine quand #agence est entièrement visible */
			animation-range: entry 100% contain 100%;
			
			height: calc(100dvh - var(--headerHeight));
		}
		
		.media{
			&{
				width: 100%;
				height: 100%;
				display: flex;
				justify-content: center;
				align-items: center;
				padding:20px
			}
			
			video{
				width: auto;
				border-radius: var(--borderRadius);
				height: calc(100dvh - var(--headerHeight) - 40px);
			}
		}
		
	}
	
	#agence
	{
		&{
			view-timeline-name: --agence;
			background: #f7f7f7;
			border-radius: var(--borderRadius);
			margin-top: -20px;
			z-index: 2;
			position: relative;
			height: 100dvh;
			display: grid;
			place-content: center;
			
			background: url(https://cover-house-design.com/wp-content/uploads/2024/12/Cover_House_Design_Covering_Film_Solaire_Decoration_Amenagement_Meubles_Moselle_Luxembourg-6.jpg);
			background-size: cover;
			overflow: hidden;
		}
		
		&:before{
			content: "";
			position: absolute;
			inset: 0px;
			background: var(--couleurBTN);
			backdrop-filter: blur(5px);
		}
		
		
		
		.txts{ 
			order: 2;
			background: rgba(255, 255, 255, .75);
			backdrop-filter: blur(5px);
			border-radius: var(--borderRadius);
			padding: 10px 20px;
			color: black;
			animation: paralaxeTexte linear both;
			animation-timeline: --agence;
			animation-range: entry 0% exit 100%;
			box-shadow: var(--boxShadow);
			z-index: 1
			
		}
		
		.media{
			translate: 10%;
		}
		
		.media img
		{
			border-radius: var(--borderRadius);
		}
		
		& > div
		{
			align-items: end;
			width: var(--maxWidth);
			margin: 0px auto;
		}
		
		@media (max-width: 820px){
			& > div{
				display: grid;
				grid-template-columns: 1fr;
				padding-top: 60px;
			}
		}
		
		
	}
	
	[data-composant="ressources-slider"]
	{
		&
		{
			background: radial-gradient(circle at center, black, rgba(78, 71, 59, 1) 43.7%, #ceb595);
		}
		
		.liste{
			gap: 1em;
		}
		
		.liste > li{
			padding: 0;
			border-radius: var(--borderRadiusXS);
			width: auto;
		}
		
		a{
			color: white;
		}
		
		header{
			height: 60dvh;
			border-radius:var(--borderRadiusXS);
			overflow: hidden;
			width: 100%;
		}
		
		[data-composant="tags"] .tag, .tag{
			padding: 5px 10px;
			border-radius: var(--borderRadiusXS);
			font-size: .6em;
		}
		
		header .tag{
			background: rgba(51, 51, 51, 0.5);
			backdrop-filter: blur(5px);
			border-color: rgba(51, 51, 51, .5);
			color: rgba(255, 255, 255, 0.55);
		}
		
		img{
			border-radius:var(--borderRadiusXS);
			border:none;
		}
		
		.main{
			width: 60%;
		}
		
		.icone svg{
			font-size: 2em;
		}
		.icone .svg-inline--fa .fa-primary
		{
			fill: rgba(255, 255, 255, 0.5);
		}
		
		.icone .svg-inline--fa .fa-secondary
		{
			fill: rgb(51, 51, 51);
		}
		
		
		[data-composant="tags"], .tag
		{
			color: white;
		}
		
		.cta div{
			background: rgba(0, 0, 0, 0.5);
		}
	}
	
	#processus[data-composant="processus-expliquer"]
	{
		&{
			margin-bottom: -100px;
		}
		
	}
	
	[data-composant="liste-services"][data-theme="stack--full"]
	{
		&{
			z-index: -1;
		}
		h2{
			color: wheat;
		}
		
		.liste > li .cta
		{
			position: static;
			text-align: center;
			margin-top: -150px;
			padding-bottom: 150px;
		}
	}
	
	
	#agence{
		&{
			background: var(--couleurDegrader1);
		}
		&:before{
			background: linear-gradient(69deg, rgba(0, 0, 0, 0.5) 30.25%, rgba(255, 255, 255, 0) 55.46%);
		}
	}
}
