/* Ajout de données ::root */
:root {
	--cnvs-secondary-color: #E9C46A;
}

/* Modifier la famille de la police de caractère pour le menu */
.menu-link {
	font-family: 'Roboto', sans-serif;
}

.sub-menu-container .menu-item>.menu-link {
	font-family: 'Roboto', sans-serif;
}

/* Ne pas afficher le contenu à l'aide cette classe : dp-none */
.dp-none {
	display: none !important;
}

/* Modifier l'apparance du texte dans les slider */
.slider-caption h2,
.slider-caption .h2 {
	color: #fff;
	text-shadow: none;
}

.slider-caption p {
	color: #fff;
}

.heading-block h1,
.heading-block .h1 {
	color: white;
}

.clickable-composite {
	cursor: pointer;
}

/* ----------------------------------------------------------------
	Apparence des liens pour le module : QuickAccess
-----------------------------------------------------------------*/
.iconTest {
	fill: #fff;
	/* Couleur initiale de l'icône */
	transition: fill 0.3s;
	/* Animation de transition de couleur */
}

.iconTest:hover {
	fill: #eeb93e;
	/* Couleur au survol de la souris */
}

/* Lorsque l'élément <a> est focalisé à l'aide du clavier */
a:focus>.iconTest {
	fill: #eeb93e;
}

.heading-custom {
	--cnvs-heading-block-font-color: var(--cnvs-contrast-0);
	--cnvs-heading-block-span-color: var(--cnvs-contrast-0);
	background-color: #afafaf;
}

/* ----------------------------------------------------------------
	accessibilité : Gestion des différents focus
-----------------------------------------------------------------*/
.using-keyboard a:focus {
	outline: 2px solid #f9f9f9 !important;
}

.using-keyboard button:focus {
	outline: 2px solid green !important;
}

.using-keyboard div[tabindex]:focus {
	outline: 2px solid yellow !important;
}

.using-keyboard .entry a:focus {
	outline: 3px solid #f9f9f9;
	display: block;
}

.using-keyboard #gotoTop:focus {
	outline: 3px solid #f9f9f9;
	box-shadow: 0 0 5px #f9f9f9;
}

.using-keyboard .menu-link:focus {
	outline: 2px solid #f9f9f9;
}

.using-keyboard .sub-menu:focus {
	outline: 2px solid #223f5c !important;
}

/* ----------------------------------------------------------------
	Carousel : pour les articles et les pages
-----------------------------------------------------------------*/
.carousel-slide {
	position: relative;
}

/* Comportement de l'affichage des différents textes pour le slider actualités et pages */
.carousel-image {
	width: 100%;
	display: block;
}

.carousel-content {
	position: absolute;
	bottom: 0px;
	left: 20px;
	color: #fff;
	background-color: rgba(0, 0, 0, 0.5);
	/* Ajoute un fond noir transparent pour une meilleure lisibilité */
	padding: 10px;
	width: 100%;
}

.carousel-content h2 {
	margin: 0 0 10px;
	color: #fff;
}

/* ----------------------------------------------------------------
	Ajout des différents style pour la partie : Contact du Template Tinymce
-----------------------------------------------------------------*/
.highlightEvent {
	display: flex;
	flex-direction: column;
	margin-top: 3rem;
	color: #000;
	background-color: #fff;
}

.module.shadow {
	border-radius: 17px;
	background-color: var(--white);
	padding: 1.5rem 1.5rem;
	box-shadow: 0 2px 20px 0 rgb(0 0 0 / 10%) !important;
}

.module {
	width: 100%;
	min-width: 50%;
	max-width: 100%;
	border: 0;
	margin-top: 0;
	margin-bottom: 2rem;
	overflow: hidden;
}

/* Sortir à Haguenau
-----------------------------------------------------------------*/
.top-links li a img {
	position: relative;
	display: inline-block;
	width: 20px;
	height: 20px;
	border-radius: 20px;
	top: -1px;
	margin-right: 8px;
	border: 1px solid rgba(255, 255, 255, 0.7);
}

/* Sortir à Haguenau - Header
-----------------------------------------------------------------*/
#primary-menu ul li>a {
	text-transform: none;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
}

.svg-separator {
	position: absolute;
	width: 100%;
	height: 20px;
	bottom: 0;
	left: 0;
	display: flex;
	justify-content: center;
	flex-direction: column;
	z-index: 1;
}

.svg-separator.top {
	top: -1px;
	bottom: auto;
}


.form-process {
	top: 0;
	left: 0;
}

.feature-box.fbox-plain:not(.fbox-small) .fbox-icon img {
	width: 50px;
}

.negetive-margin {
	margin-top: -230px;
}

#cleaner-carousel .owl-item {
	opacity: 0;
	transform: translateY(20px);
	transition: all .4s .1s ease-out;
}

#cleaner-carousel .owl-item.active {
	opacity: 1;
	transform: translateY(0);
}

.total-price {
	font-size: 54px;
	letter-spacing: 0;
}

.btn-outline-secondary:not(:disabled):not(.disabled):not(.active):hover {
	border-color: var(--themecolor, #215089);
	color: var(--themecolor, #215089);
	background-color: transparent;
}

.btn-outline-secondary:not(:disabled):not(.disabled):active,
.btn-outline-secondary:not(:disabled):not(.disabled).active,
.show>.btn-outline-secondary.dropdown-toggle {
	background-color: var(--themecolor, #215089);
	border-color: var(--themecolor, #215089);
}

.toggle .toggleta i {
	color: var(--themecolor, #215089);
}

.section:not(.nobg) .fancy-title h4 {
	background-color: #F9F9F9;
}

.testimonials-carousel:before {
	content: "\e7ad";
	font-family: 'font-icons';
	position: absolute;
	top: -8px;
	left: 50px;
	font-size: 100px;
	color: rgba(51, 94, 238, 0.02);
	color: rgba(var(--themecolorrgba), 0.08);
}

.header-misc .button {
	background-color: var(--secondcolor);
	margin: 0;
	padding: 29px 34px;
}

/* Sortir à Haguenau - Responsive Device more than 992px (.device-md >)
-----------------------------------------------------------------*/
@media (min-width: 992px) {


	.slider-title h1 {
		font-size: 40px;
		line-height: 1.3;
		font-weight: 700;
	}

	.feature-box .fbox-img img {
		z-index: 3;
		position: relative;
		background-color: #FFF;
	}

	[class^=col-]:not(:last-child) .feature-box .fbox-img:before {
		content: '';
		position: absolute;
		top: 50%;
		left: 100%;
		width: 150%;
		border-top: 1px dashed var(--themecolor, #215089);
		transform: translateY(-50%);
		z-index: 0;
	}

	#oc-testi.owl-carousel .owl-dots {
		position: absolute;
		bottom: 45px;
		right: 40px;
	}

	#oc-testi.owl-carousel .owl-dots .owl-dot {
		margin-top: 0;
	}

}

/* Background du module : QuickAcces en fonction du theme (light ou dark)
-----------------------------------------------------------------*/
.quickaccess {
	background-color: #215089;
	padding: 1rem;
	margin-right: -0px;
	margin-left: -0px;
}

.dark .quickaccess {
	background-color: #36393d;
}

/* ----------------------------------------------------------------
	Communiqués de presse
-----------------------------------------------------------------*/
.color-2,
.h-color-2:hover {
	color: var(--cnvs-secondary-color) !important;
}

.color-3,
.h-color-3:hover {
	color: #6c7885 !important;
}

.bg-color-2,
.h-bg-color-2:hover {
	background-color: var(--cnvs-secondary-color) !important;
}

.iconlist>li {
	line-height: 24px;
}

.iconlist>li [class^="icon-"]:first-child,
.iconlist>li [class*=" icon-"]:first-child {
	width: 24px;
	height: 24px;
	text-align: center;
	border-radius: 50%;
}

.dotted-bg:before {
	content: "";
	position: absolute;
	display: block;
	top: 50%;
	left: 50%;
	width: 110%;
	height: 100%;
	background-size: 12px 12px;
	background-position: center;
	transform: translate(-50%, -50%);
	background-image: radial-gradient(rgba(var(--cnvs-themecolor-rgb), 0.3) 14%, transparent 14%);
	-webkit-mask-image: radial-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0) 75%);
	mask-image: radial-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0) 75%);
	z-index: 0;
}

.services-grid .feature-box {
	padding: 2rem;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	border-radius: .5rem;
	border: 1px solid var(--cnvs-secondary-color);
}

.services-grid .feature-box:hover {
	background-size: cover;
}

.hover-button {
	display: block;
	margin-top: 20px;
	font-weight: 600;
}

.dark .hover-button {
	color: #FFF;
}

.dark .services-grid .feature-box {
	background-color: #343a40;
}

.services-grid .feature-box {
	background-color: #e0e0e0;
}

.fbox-icon i {
	background-color: rgba(255, 255, 255, 0.15);
}

.dark .fbox-icon i {
	color: #fff;
}


.services-grid .feature-box,
.services-grid .feature-box .fbox-icon,
.services-grid .feature-box .fbox-content,
.hover-button {
	transition: all .4s ease, border-color .0s ease;
}

.heading-block h3 {
	font-size: 2.1rem;
	line-height: 1.3 !important;
}


.form-widget label {
	text-transform: none;
	letter-spacing: 0;
	font-size: 1rem;
	font-weight: 500;
	margin-bottom: 5px;
}

.dark .presse {
	color: #fff !important;
}

.presse {
	color: #000 !important;
}

/* Changement de couleur lors du survol */
.feature-box:hover .presse {
	color: white !important;
}

@media (min-width: 992px) {

	.services-grid .feature-box {
		padding: 3rem;
		background-size: 0;
		border: 1px solid rgba(0, 0, 0, 0.1);
	}

	.dark .services-grid .feature-box {
		border: 1px solid rgba(255, 255, 255, 0.1);
	}

	.services-grid .feature-box:hover {
		transform: translateY(-6px);
		border-color: var(--cnvs-themecolor);
	}

	.services-grid .feature-box:not(:hover) .hover-button {
		opacity: 0;
		transform: translateY(-5px);
	}

	.services-grid .feature-box .fbox-icon,
	.services-grid .feature-box .fbox-content {
		transform: translateY(20px);
	}

	.services-grid .feature-box:hover .fbox-icon,
	.services-grid .feature-box:hover .fbox-content {
		transform: translateY(0px);
	}

	.dark .services-grid .feature-box:hover .fbox-icon i {
		background-color: rgba(92, 112, 131, 0.6);
	}

	.services-grid .feature-box:hover .fbox-icon i {
		background-color: rgba(52, 58, 64, 0.6);
	}

	.heading-block h3 {
		font-size: 2.5rem;
		line-height: 1.3 !important;
	}

	body .dark .heading-block h3 {
		color: #f9f9f9 !important;
	}

	.hero-title.display-3 {
		font-size: 4.25rem;
		letter-spacing: -3px;
	}
}

@media (max-width: 991.98px) {
	.presse {
		color: #fff !important;
	}

	.dark .fbox-icon i {
		background-color: #343a40;
	}
}

/* ----------------------------------------------------------------
	Slider Accueil
-----------------------------------------------------------------*/

.block-slider-3 .swiper-horizontal>.swiper-scrollbar {
	top: 50%;
	bottom: auto;
	left: 50%;
	margin-left: 20%;
	width: 200px;
	height: 2px;
	transform: translateY(-50%);
	background-color: rgba(0, 0, 0, 0.4);
	border-radius: 2px;
}

.block-slider-3 .swiper-scrollbar-drag {
	background: #000
}

.block-slider-3 .slide-number {
	opacity: 1;
	bottom: 10px;
	text-align: left;
	right: auto;
}

.block-slider-3 .slide-number-current {
	top: auto;
	bottom: -2px;
	font-size: 34px;
	font-weight: 600;
}

.block-slider-3 .slide-number span {
	margin-left: 24px;
	font-size: 16px;
	opacity: .7;
}

.block-slider-3 .slide-number-total {
	font-size: 13px;
	line-height: 30px;
	left: 32px;
	opacity: .7;
}

.block-slider-3 .swiper-navs {
	position: absolute;
	display: block;
	left: 50%;
	top: 50%;
	margin-top: 60px;
	margin-left: 20%;
}

.block-slider-3 .slider-arrow-left,
.block-slider-3 .slider-arrow-right {
	border-radius: 50%;
	background: transparent;
	border: 1px solid rgba(0, 0, 0, 0.7);
	width: 36px;
	height: 36px;
}

.block-slider-3 .slider-arrow-right {
	left: 45px;
}

.block-slider-3 .slider-arrow-left i,
.block-slider-3 .slider-arrow-right i {
	display: block;
	width: 36px;
	height: 36px;
	font-size: 16px;
	line-height: 34px;
	margin: 0 auto;
	color: #000;
}

.block-slider-3 .slider-arrow-right i {
	margin-left: -1px;
}

.block-slider-3 .swiper-button-disabled {
	opacity: .5;
	cursor: default;
}

.block-slider-3.dark .slider-arrow-left,
.block-slider-3.dark .slider-arrow-right {
	border-color: rgba(255, 255, 255, 0.7);
}

.block-slider-3.dark .swiper-horizontal>.swiper-scrollbar {
	background-color: rgba(255, 255, 255, 0.4);
}

.block-slider-3.dark .swiper-scrollbar-drag {
	background: #FFF
}

.block-slider-3.dark .slide-number,
.block-slider-3.dark .slider-arrow-left i,
.block-slider-3.dark .slider-arrow-right i {
	color: #FFF;
}

@media (min-width: 576px) and (max-width: 767px) {
	.block-slider-3 .swiper-horizontal>.swiper-scrollbar {
		top: auto;
		left: auto;
		bottom: 70px;
		right: 30px;
		width: 100px;
		height: 2px;
		transform: translateY(0);
	}

	.block-slider-3 .swiper-navs {
		left: auto;
		top: auto;
		bottom: 30px;
		right: 115px;
		margin: 0;
	}
}

.block-slider-3.slider-element .slider-product-desc {
	position: absolute;
	top: auto;
	bottom: 0;
	left: auto;
	right: 0;
	width: 65%;
	z-index: 2;
	overflow: hidden;
}

.block-slider-3.slider-element .slider-product-desc a .bi-play {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 99;
	color: #000;
	font-size: 20px;
	width: 40px;
	height: 40px;
	line-height: 40px;
	background-color: #FFF;
	border-radius: 50%;
	text-align: center;
	padding-left: 4px;
	margin-top: -20px;
	margin-left: -20px;
	-webkit-transition: transform .3s ease;
	-o-transition: transform .3s ease;
	transition: transform .3s ease;
}

.block-slider-3.slider-element .slider-product-desc a:hover .bi-play {
	-webkit-transform: scale(1.1);
	-ms-transform: scale(1.1);
	-o-transform: scale(1.1);
	transform: scale(1.1);
}

.blurred-box {
	position: relative;
	color: white;
	/* Assure que le texte à l'intérieur est blanc */
}

.blurred-box:after {
	content: '';
	width: 130%;
	height: 130%;
	background: inherit;
	position: absolute;
	left: -25px;
	top: -25px;
	background-color: rgba(0, 0, 0, 0.5);
	-webkit-filter: blur(20px);
	-o-filter: blur(20px);
	filter: blur(20px);
	z-index: -1;
	/* Place le flou derrière le contenu */
}

/* Styles spécifiques pour le texte si nécessaire */
.blurred-box h3,
.blurred-box p {
	z-index: 1;
	position: relative;
}


@media (max-width: 576px) {
	.block-slider-3 .swiper-horizontal>.swiper-scrollbar {
		display: none;
	}

	.block-slider-3 .swiper-navs {
		right: 0px;
	}
}

/* Breadcrumb */
.breadcrumb-item+.breadcrumb-item::before {
	color: #f9f9f9 !important;
}

.top-search-form input {
	color: #f9f9f9 !important;
}

p {
	color: var(--cnvs-font-color) !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--cnvs-font-color) !important;

}

.module.shadow {
	box-shadow: 0 2px 20px 0 rgb(249 249 249 / 10%) !important;
}

.marker-cluster-small div {
	background-color: rgba(108, 19, 29, 0.6);
}

.marker-cluster-small {
	background-color: rgba(108, 19, 29, 0.6);
}

.heading-block::after {
	border-color: #f9f9f9;
}

blockquote {
	border-left: 5px solid rgba(255, 255, 255, 0.2);
}

.cnvs-cursor {
	--cnvs-cursor-bg: #f9f9f9 !important;
	--cnvs-cursor-action-bg: #f9f9f9 !important;
}

.quote::before {
	color: #f9f9f9 !important;
}

/* Conteneur pour la carte OpenStreetMap */
.openMap {
	width: 100%;
	height: 500px;
	/* Ajustez la hauteur selon vos besoins */
	position: relative;
	z-index: 0;
	border: 1px solid #ccc;
	/* Optionnel : ajouter une bordure */
	background: #fff;
}

/* Styles spécifiques à Leaflet */
.leaflet-container {
	background: #fff;
	color: #333;
	font-family: Arial, sans-serif;
}

/* Style pour les popups de Leaflet */
.leaflet-popup-content-wrapper {
	background: #fff;
	border-radius: 5px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.leaflet-popup-content {
	margin: 8px;
	line-height: 1.4;
}

.leaflet-popup-tip {
	background: #fff;
}

/* Contrôles de zoom et autres éléments Leaflet (optionnel) */
.leaflet-control-zoom,
.leaflet-control-attribution {
	font-size: 14px;
	font-family: Arial, sans-serif;
}

.photo-credit {
	position: absolute;
	left: 17px;
	/* Aligné à gauche */
	top: 88%;
	transform: translateY(-50%) rotate(-90deg);
	transform-origin: left center;
	/* Ajuste le pivot pour une meilleure rotation */
	background: rgba(0, 0, 0, 0.8);
	/* Fond semi-transparent */
	color: white;
	padding: 5px 10px;
	font-size: 12px;
	font-family: Arial, sans-serif;
	white-space: nowrap;
	border-radius: 3px;
}

/* Base : mobile (≤ 767px) */
section.page-title.page-title-parallax.parallax {
	/* bg déjà fixé inline ; on ne le répète pas ici */
	--hero-pad: clamp(100px, 42vh, 180px);
}

/* ≥ 768px (tablette) */
@media (min-width: 768px) {
	section.page-title.page-title-parallax.parallax {
		--hero-pad: clamp(120px, 38vh, 200px);
	}
}

/* ≥ 1080px (petit desktop / FHD) */
@media (min-width: 1080px) {
	section.page-title.page-title-parallax.parallax {
		--hero-pad: clamp(140px, 35vh, 260px);
	}
}

/* ≥ 1250px (desktop large) */
@media (min-width: 1250px) {
	section.page-title.page-title-parallax.parallax {
		--hero-pad: clamp(140px, 35vh, 300px);
	}
}

.footer-logo {
	display: block;
	margin-bottom: 30px;
	max-width: 250px;
}