:root {
  --couleur-principale: #A3B18A;
  --couleur-secondaire: #2F3E46;
  --fond-clair: #FAF9F6;
  --texte: #333333;
  --accent-dore: #7B3F44; /* Bordeaux feutré rouge vineux légèrement bruni */
  --fond-secondaire: #E8E8E8;
  --couleur1: #E6E2DD; /* Gris perle */
  --couleur2: #B4B8AB; /* Vert sauge */
  --couleur3: #AAB7B8; /* Bleu-gris doux */
  --couleur4: #5A5F52; /* utiliser en bas de page */
  --couleur5: #dbd4c2; /* Beige */
  --couleur-bouton: #B8A89E; /* Taupe doux */
  --couleur-baspage: #1F2D2E; /* Bleu pétrole sombre donne une touche plus organique, entre vert et bleu */
  --sticky-height-mobile: 53.55px; /* hauteur du sticky menu sur mobile */
}

body {

/*
** font-family Gudea remplacée par Lato. Disponible en poids 400 et 700 uniquement
*/
	font-family: 'Lato', sans-serif;
/*	color:#2c2f34 */
	color: var(--texte);
    background-color: var(--fond-clair);
	text-align:justify;
}

/*
** Headers font-family Lato remplacée par Poiret One
*/

h1,
h2,
h3,
h4,
h5 {
  font-family: "Poiret One";
  font-style: normal;
  font-weight: 300;	text-align:center;
  color: var(--couleur-secondaire);
}

a {
    color:#000;
}

a:hover {
	color:#000; 
	opacity:0.7;
}

/*
** Table responsive
*/

@media screen and (max-width: 39.9375em) {
  table {
    border: 0;
  }

	table tr {
    margin-bottom:10;
  	display: block;
  }

	table thead {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  
	table tr:nth-child(odd) {
		background-color:#E0E7E9;
  }

	table tr:hover:nth-child(odd) {
		background-color:#A3C6C4;
		border-bottom: 1px solid white;
    border-top: 1px solid white;
  }

	table tr:hover:nth-child(even) {
		background-color:#A3C6C4;
		border-bottom: 1px solid white;
    border-top: 1px solid white;
  }

  table td {
    border-bottom: 1px solid #ddd;
    display: block;
    font-size: 0.9em;
    text-align: right;
  }
  
  table td::before {
    content: attr(data-label);
    float: left;
    font-weight: bold;
  }

	table td.l, table th.l {
  	text-align: left;
	}
	table td.c, table th.c {
  	text-align: center;
	}
	table td.r, table th.r {
  	text-align: right;
	}
	table td.j, table th.j {
  	text-align: justify;
	}
}

/*
** Containers
*/

.container {
	padding:30px 20px;
}

.container-header {
	padding:10px 20px;
}

.container-image {
	left:0;
	width:100%;
	height:50%;
}

/*
** Entête et Editorial
*/

.entete {
	text-align: right;
	font-family: "Poiret One";
	font-size:2em;
}

.logo-entete {
	text-align: right;
	font-family: "Poiret One";
	font-size:2em;
	padding:5px 10px 5px 0px;
}

.logo-entete-center {
	text-align: center;
	font-family: "Poiret One";
	font-size:2em;
	padding:5px 10px 5px 0px;
}

.entete-mobile {
	font-size:1.25em;
	font-family: "Poiret One";
	font-style: normal;
	padding:0px 0px 0px 10px;
	font-weight:bolder;
}

.slogan-left {
	font-family: 'Poiret One', sans-serif;
	font-size:100%;
	text-align: left;
	font-weight: normal;
  	line-height: 1; /* densité interne du titre */
}

.slogan-gros-left {
	font-family: 'Poiret One', sans-serif;
	text-align: left;
	font-size:200%;
	font-weight:bolder;
	margin-bottom: -0.25em;
}

.slogan-center {
	font-family: 'Poiret One', sans-serif;
	text-align:center;
	font-size:100%;
	font-weight: 600;
}

.slogan-gros-center {
	font-family: 'Poiret One', sans-serif;
	text-align: center;
	font-size:200%;
}

.centre-padding {
	text-align:center;
	padding:10px;
}

.justify-padding {
	text-align:justify;
	padding:10px;
}
.edito {
	text-align:justify;
	padding:10px 0px;
}

.centre {
	text-align:center;
}

.droit {
	text-align:right;
}

.marge-bas-20 {
	margin-bottom:20px;
}

/*
** Sources Notes 
*/

.note {
	font-size: 0.8rem;
	padding:0px 0px 10px 0px;
}

.noteleft{
	font-size: 0.8rem;
	text-align:left;
	vertical-align: top;
	padding-bottom: 0px;
}

/* Force la table à conserver sa structure classique */
.table-card-palette1,
.table-card-palette1 tr,
.table-card-palette1 td {
	all: unset;            /* remet à zéro toutes les propriétés héritées */
	all: revert;           /* remet aux styles par défaut du navigateur */
	font-size: 0.8rem;
	text-align:left;
	vertical-align: top;
	padding: 0px 5px 5px 0px;
	background-color: var(--couleur1);
}

.table-card-palette2,
.table-card-palette2 tr,
.table-card-palette2 td {
	all: unset;            /* remet à zéro toutes les propriétés héritées */
	all: revert;           /* remet aux styles par défaut du navigateur */
	font-size: 0.8rem;
	text-align:left;
	vertical-align: top;
	padding: 0px 5px 5px 0px;
	background-color: #A3C6C4;
}

.table-card-palette3,
.table-card-palette3 tr,
.table-card-palette3 td {
	all: unset;            /* remet à zéro toutes les propriétés héritées */
	all: revert;           /* remet aux styles par défaut du navigateur */
	font-size: 0.8rem;
	text-align:left;
	vertical-align: top;
	padding: 0px 5px 5px 0px;
	background-color: var(--couleur3);
}

.table-card-palette4,
.table-card-palette4 tr,
.table-card-palette4 td {
	all: unset;            /* remet à zéro toutes les propriétés héritées */
	all: revert;           /* remet aux styles par défaut du navigateur */
	font-size: 0.8rem;
	text-align:left;
	vertical-align: top;
	padding: 0px 5px 5px 0px;
	background-color: var(--couleur4);
}

/* Force la table à conserver sa structure classique background blanc*/
.table-classique-blanc,
.table-classique-blanc tr,
.table-classique-blanc td {
	all: unset;            /* remet à zéro toutes les propriétés héritées */
	all: revert;           /* remet aux styles par défaut du navigateur */
	text-align:justify;
	vertical-align: top;
	padding: 0px 5px 5px 0px;
	background-color: #FFFFFF;
 }

/* Force la table à conserver sa structure classique */
.table-classique1,
.table-classique1 tr,
.table-classique1 td {
	all: unset;            /* remet à zéro toutes les propriétés héritées */
	all: revert;           /* remet aux styles par défaut du navigateur */
	text-align:left;
	vertical-align: top;
	padding: 0px 5px 5px 0px;
	background-color: var(--couleur1);
 }

/* Force la table à conserver sa structure classique */
.table-classique-beige,
.table-classique-beige tr,
.table-classique-beige td {
	all: unset;            /* remet à zéro toutes les propriétés héritées */
	all: revert;           /* remet aux styles par défaut du navigateur */
	text-align:justify;
	vertical-align: top;
	padding: 0px 5px 5px 0px;
	background-color: #dbd4c2;
 }

/* Affichage du numéro de téléphone dans contact */
#phone-container {
  margin: 1rem 0;
}

.btn-phone {
  background-color: var(--couleur-bouton); 
  color: white;
  padding: 0.625rem 1.25rem; /* = 10px 20px si base 16px */
  border: none;
  border-radius: 0.5rem;     /* = 8px */
  cursor: pointer;
  font-size: 1rem;           /* = 16px */
  text-align: center;
  box-sizing: border-box;
}

.btn-phone:hover {
  background-color: var(--accent-dore);
}
/* Fin Affichage du numéro de téléphone dans contact */


/*
** Bas de page
*/

.basdepage1 {
	text-align:center;
	padding:20px 10px;
	color:#fff;
}

.basdepage1 h3 {
	font-weight:400;
	font-size:1.4em;
}

.basdepage1 p {
	line-height:1.5;
	font-size:80%;
	color:#fff;
}

.basdepage2 {
	color:#fff;
	text-align:center;
	font-size:0.8rem;
	padding:10px;
}

.background-perche {
	width:100%;
	height:100%;
	background:url("../images/perche-slide1.png");
/*	
** background: linear-gradient(rgba(26,26,26,0.3),rgba(26,26,26,0.3)),url("../img/banniere-perche.jpg");
*/
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center center;
}

.background-quebec {
	width:100%;
	height:50vh;
	background:url("../images/quebec-slide1.png");
/*	
** background: linear-gradient(rgba(26,26,26,0.3),rgba(26,26,26,0.3)),url("../img/banniere-perche.jpg");
*/
	background-size:cover;
	background-repeat:no-repeat;
	background-position:center center;
}

.image-container {
	width:100%;
	height:50vh;
  float:left;
  position:relative;
}

.fadeImg{
  position:absolute;
  top:0px;
  left:0px;
	height:50vh;
  transition:all 1s;
}

.background-gris-clair {
	background-color:#E0E7E9;
	color:#fff;
}

.background-off-canvas .off-canvas {
	background-color:#E0E7E9;
}
	
.background-off-canvas a {
	color:#222;
}

.background-menu-2 {
	background-color:#A3C6C4;
}

.background-menu-3 {
	background-color:#A3C6C4;
}

/*	
** palette : https://www.shutterstock.com/fr/blog/10-palettes-de-couleur-inspirantes-pour-votre-site-internet
** du plus clair (1) au plus foncé (4)
*/

.background-palette1 {
	background-color: var(--couleur1);
}

.background-palette2 {
	background-color: var(--couleur2);
}

.background-palette3 {
	background-color: var(--couleur3);
	color:#fff;
}

.background-palette3 a {
	color:#fff;
}

.background-palette4 {
	background-color: var(--couleur4);
	color:#fff;
}

.background-palette4 a {
	color:#fff;
}

.background-palette5 {
	background-color: var(--couleur5);
}

.background-fond-clair {
    background-color: var(--fond-clair);
}

/*	
** palette : graphe bar column  http://www.fubiz.net/2015/10/09/nature-colors-palettes/
*/

.palette-graphe1-couleur1 {
	background-color:#f1f1f3;
}

.palette-graphe1-couleur2 {
	background-color:#c7dfdf;
}

.palette-graphe1-couleur3 {
	background-color:#8bb7b8;
}

.palette-graphe1-couleur4 {
	background-color:#496c6e;
}

.palette-graphe1-couleur5 {
	background-color:#203c3f;
}

.palette-graphe1-couleur6 {
	background-color:#54715d;
}

.palette-graphe2-couleur1 {
	background-color:#e4e8f1;
}

.palette-graphe2-couleur2 {
	background-color:#b5a2b8;
}

.palette-graphe2-couleur3 {
	background-color:#775669;
}

.palette-graphe2-couleur4 {
	background-color:#62786c;
}

.palette-graphe2-couleur5 {
	background-color:#adbda0;
}

.palette-graphe2-couleur6 {
	background-color:#d6d6d6;
}

.palette-graphe3-couleur1 {
	background-color:#e9e7e8;
}

.palette-graphe3-couleur2 {
	background-color:#dbdbdb;
}

.palette-graphe3-couleur3 {
	background-color:#917864;
}

.palette-graphe3-couleur4 {
	background-color:#b09f85;
}

.palette-graphe3-couleur5 {
	background-color:#dcc7ac;
}

.palette-graphe3-couleur6 {
	background-color:#ebe2d1;
}


/*	
** palette : foundation 
*/

.background-beige {
	background-color:#dbd4c2;
}

.background-orange {
	background-color:#f8bc3b;
}

.background-green {
	background-color:#27ae60;
}

.background-grey {
	background-color:#e6e8eb;
}

.background-white {
	background-color:#fff;
}

.background-red {
	background-color:#db5940;
}

.background-yellow {
	background-color:#fec400;
}

.background-baby-blue {
	background-color:#7ecefd;
}

.background-pale-blue {
	background-color:#d1e1ed;
}

.background-slate-blue {
	background-color:#2c3e50;
}

.background-midnight {
	background-color:#1f1f1f;
	color:#fff;
}

.background-midnight a {
	font-weight:600;
	color:#fff;
}

.background-blue {
	background-color:#028ca6;
}

.background-baspage {
	background-color: var(--couleur-baspage);
	color:#fff;
}

.background-baspage a {
	font-weight:600;
	color:#fff;
}

/*
** Nav
*/

nav#main {
	list-style-type: none;
	margin:10px;
	padding:0;
	text-align:center
}

nav#main ul {
	list-style-type: none;
	margin:0;
	padding:0;
	text-align:center
}

nav#main ul li {
	display:inline-block;
	margin-right:20px;
}

nav#main ul li:last-child {
	margin-right:0;
}

nav#main ul li a {
	font-size:78%;
	text-transform:uppercase;
	font-weight:600;
}

nav#main ul li  {
	color:#393f4a;
}

/*
** HOVER UNDERLINE MENU
*/

.hover-underline-menu {
  width: 100%;
}

.hover-underline-menu .menu a {
  padding: 1.2rem 1.5rem;
}

.hover-underline-menu .menu .underline-from-center {
  position: relative;
}

.hover-underline-menu .menu .underline-from-center::after {
  content: "";
  position: absolute;
  top: calc(100% - 0.125rem);
  border-bottom: 0.125rem solid ;
  left: 50%;
  right: 50%;
  transition: all 0.5s ease;
}

.hover-underline-menu .menu .underline-from-center:hover::after {
  left: 0;
  right: 0;
  transition: all 0.5s ease;
}

/*
** Image avec cellule transparente
*/

.image {
	text-align:center;
  position: relative;
  z-index: 1;
	padding:10px;
	margin:10px 10px 60px 10px;
	color:#000000;
}

.image .bg-gris {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color:#e6e6e6;
    opacity: .7;
    width: 100%;
    height: 100%;
}

.image h2 {
	color:#fff;
	text-transform: uppercase;
	letter-spacing:3px;
}

.image h5 {
	font-weight:600;
	font-size:1.4em;
}

.image p {
	font-size:80%;
	margin-bottom:40px;
}

.image ul li a {
	border:2px solid transparent;
	padding:8px 20px;
	border-radius:5px;
	font-weight:600;
	background:#e6e6e6;

}

.image ul li a:hover {
	border:2px solid #fff;
}

/*
** Cadre centré
*/

.cadre-centre {
	padding:10px;
	margin:10px;
	text-align:center;
}

/*
** Cards
*/

.card {
	padding:10px;
	margin:10px;
}

/*
** Buttons
*/

.button {
	padding:14px 30px;
	border-radius:5px;
}

.button-primary,
.button-primary:hover {
	background-color:#3a3a3a;
	color:#fff;
}

.button-secondary,
.button-secondary:hover {
	background-color:#fff;
	color:#3a3a3a;
}

/*
** Feature
*/

.feature {
	margin-top:20px;
}

.feature h1 {
	font-size:5.5em;
	color:#fff;
	text-transform: uppercase;
	font-weight:900;
	line-height:70px;
	margin-bottom:40px;
}

/*
** Arbre
*/

.arbre {
	text-align:center;
  font-size: 0.8rem;
	line-height:1rem;
}

.arbre table td{
	border-collapse: separate;
	border-width:10px; 
	padding:0px;
}

.arbre table tbody{
	border:0px; 
}

.arbre hr {
	margin-bottom:0px;
	margin-top:0px;
}

.arbre h2 {
	margin-top:0px;
}

/*
** Graphique
*/

.graphique  {
	font-size:80%;
  padding-bottom: 0.2rem;
}

/*
** Features
*/

.features {
	text-align:center;
	padding:20px 20px;
}

.features h3 {
	font-weight:400;
	font-size:1.4em;
}

.features h5 {
	font-weight:400;
	font-size:1.4em;
}

.features p {
	font-size:80%;
	margin-bottom:20px;
	color:#000000;
}

.features img {
	margin-bottom:20px;
}

.features a:hover {
	color:#666666;
}

.features .note {
	text-align:center;
}

.features .cell-center {
  display: flex;             /* active Flexbox */
  justify-content: center;   /* centre horizontalement */
  align-items: center;       /* centre verticalement */
}

/*
** Lists 
*/

.inline-list {
	list-style-type:none;
}

.inline-list li {
	display:inline-block;
	margin:0 20px;
	margin-bottom:0px;
}

.inline-list a {
	color:#fff;
}

.inline-credit {
	list-style-type:none;
}

.inline-credit li {
	display:inline-block;
	margin:0 20px;
	margin-bottom:20px;
}

/*
** Tag Cloud 
*/

.tag-cloud-section {
  background: #6C7A89;
  padding: 4rem;
  max-width: 800px;
  margin: 0 auto;
}

.tag-cloud-title {
  text-align: center;
  text-transform: uppercase;
  font-weight: bold;
  color: #e6e6e6;
  border-bottom: 1px solid #cacaca;
  padding: 1rem 0;
  margin-bottom: 1rem;
}

.tag-cloud {
  margin: 1rem;
  text-align: center;
  list-style: none;
}

.tag-cloud .tag-cloud-individual-tag {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  border-radius: 5000px;
  background:  #354649;
  display: inline-block;
  color: #e6e6e6;
  margin: 3px;
  text-transform: uppercase;
  font-weight: bold;
}

.tag-cloud .tag-cloud-individual-tag .fa {
  margin-left: 7px;
  color: #e6e6e6;
}

.tag-cloud .tag-cloud-individual-tag:hover {
  background: black;
  transition: background-color .2s ease-in;
}

/*
** timeline
*/

.timeline-container  {
	height:70vh;
	background:#E0E7E9;
	overflow: auto;
	color:white;
	margin:20px 0px;

}

.timeline .timeline-item::after, .timeline .timeline-item::before {
  clear: both;
  content: '';
  display: block;
  width: 100%;
}

.timeline {
  margin: 30px auto;
  padding: 0 10px;
  position: relative;
  transition: all 0.25s ease-in;
  width: 100%;
}

.timeline::before {
  background: #A3C6C4;
  content: '';
  height: 100%;
  left: 50%;
  position: absolute;
  top: 0;
  width: 3px;
}

.timeline::after {
  clear: both;
  content: '';
  display: table;
  width: 100%;
}

.timeline a {
  color: #fefefe;
  font-weight: bold;
  transition: all 0.25s ease-in;
}

.timeline a:hover {
  box-shadow: 0 1px 0px 0px #fefefe;
  transition: all 0.25s ease-in;
}

.timeline .timeline-item {
  margin-bottom: 50px;
  position: relative;
}

.timeline .timeline-item .timeline-icon {
  background: #A3C6C4;
  border-radius: 50%;
  height: 50px;
  left: 50%;
  margin-left: -23px;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 50px;
}

.timeline .timeline-item .timeline-icon img,
.timeline .timeline-item .timeline-icon svg {
  left: 14px;
  position: relative;
  top: 11px;
}

.timeline .timeline-item .timeline-icon svg {
  top: 14px;
}

.timeline .timeline-item .timeline-content {
  padding: 20px;
  text-align: right;
  transition: all 0.25s ease-in;
  width: 45%;
  background: #354649;
}

.timeline .timeline-item .timeline-content p {
  color: #fefefe;
}

.timeline .timeline-item .timeline-content p {
  font-size: 16px;
  line-height: 1.4;
  margin-bottom: 0;
}

.timeline .timeline-item .timeline-content .timeline-content-date {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 0;
}

.timeline .timeline-item .timeline-content .timeline-content-month {
  font-size: 0.875rem;
  text-transform: uppercase;
  font-weight: 400;
}

.timeline .timeline-item .timeline-content.right {
  float: right;
  text-align: left;
}

@media screen and (max-width: 39.9375em) {
  .timeline {
    margin: 30px;
    padding: 0;
    width: 90%;
  }
  .timeline::before {
    left: 0;
  }
  .timeline .timeline-item .timeline-content {
    float: right;
    text-align: left;
    width: 90%;
  }
  .timeline .timeline-item .timeline-content::before, .timeline .timeline-item .timeline-content.right::before {
    border-left: 0;
    border-right: 7px solid #fefefe;
    left: 10%;
    margin-left: -6px;
  }
  .timeline .timeline-item .timeline-icon {
    left: 0;
  }
}

.timeline-container::-webkit-scrollbar {
  width: 0.5em;
  background-color: white;
}

.timeline-container::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}

/*	::-webkit-scrollbar-thumb {
**	background-color: red;
**	outline: 10px solid green;}
*/	

.timeline-container::-webkit-scrollbar-thumb {
	background-color: var(--couleur3);	
	background-image: -webkit-linear-gradient(45deg,rgba(255, 255, 255, .2) 25%,
											  transparent 25%,
											  transparent 50%,
											  rgba(255, 255, 255, .2) 50%,
											  rgba(255, 255, 255, .2) 75%,
											  transparent 75%,
											  transparent)
}

.caption {
  font-size: 0.8rem;
}

/*
** Image dans un article
*/

.flexible-article-image-full .thumbnail {
  width: 100%;
}

.flexible-article-image-full .thumbnail img {
  width: 100%;
}

.flexible-article-image-full .caption {
  font-size: 0.8rem;
  text-align: center;
}

.flexible-article-image-left {
  float: left;
  margin: 1rem 1.5rem 0 0;
  max-width: 20.5rem;
}

.flexible-article-image-left .caption {
  font-size: 0.8rem;
  text-align: center;
}

@media screen and (max-width: 39.9375em) {
  .flexible-article-image-left {
    float: none;
    max-width: 100%;
    margin: 0;
  }
  .flexible-article-image-left .thumbnail {
    width: 100%;
  }
  .flexible-article-image-left .thumbnail img {
    width: 100%;
  }
}

.flexible-article-image-right {
  float: right;
  margin: 0 0 1rem 1.5rem;
  max-width: 20.5rem;
}

.flexible-article-image-right .caption {
  font-size: 0.8rem;
  text-align: center;
}

@media screen and (max-width: 39.9375em) {
  .flexible-article-image-right {
    float: none;
    max-width: 100%;
    margin: 0;
  }
  .flexible-article-image-right .thumbnail {
    width: 100%;
  }
  .flexible-article-image-right .thumbnail img {
    width: 100%;
  }
}

/*

** slider 1 image pure CSS
*/

.slider1{
	overflow: hidden;
	height: 100%;
  padding-bottom: 0px;
}

.slider1 figure div{
	width: 100%;
	float: left;
	background-size:contain;
}

.slider1 figure img{
	width: 100%;
	float: left;
}

.slider1 figure{
	position: relative;
	width: 100%;
	margin: 0;
	left: 0;
}

.slider1 .slide h1{
	width: 100%;
	position: absolute;
	text-align: center;
	color: #fefefe;
  text-shadow: 1px 1px 2px $black;
  padding-top: 50px;
}

.slider1 .slide h2{
	width: 100%;
	position: absolute;
	text-align: center;
	color: #fefefe;
  text-shadow: 1px 1px 2px $black;
  padding-top: 50px;
}

/*

** slider 2 images pure CSS
*/

.slider2{
	overflow: hidden;
	height: 100%;
  padding-bottom: 0px;
}

.slider2 figure div{
	width: 50%;
	float: left;
	background-size:contain;
}

.slider2 figure img{
	width: 100%;
	float: left;
}

.slider2 figure{
	position: relative;
	width: 200%;
	margin: 0;
	left: 0;
	animation: 10s slides2 infinite;
}

.slider2 .slide h1{
	width: 50%;
	position: absolute;
	text-align: center;
	color: #fefefe;
  text-shadow: 1px 1px 2px $black;
  padding-top: 50px;
}

.slider2 .slide h2{
	width: 50%;
	position: absolute;
	text-align: center;
	color: #fefefe;
  text-shadow: 1px 1px 2px $black;
  padding-top: 50px;
}

@keyframes slides2{
	0%{
		left: 0%
	}

	50%{
		left: 0%;
	}

	52%{
		left: -100%;
	}

	100%{
		left: -100%;
	}
}


/* slider 3  */
.slider3{
	overflow: hidden;
	height: 100%;
  padding-bottom: 0px;
}

.slider3 figure div{
	width: 33.33%;
	float: left;
	background-size:contain;
}

.slider3 figure img{
	width: 100%;
	float: left;
}

.slider3 figure{
	position: relative;
	width: 300%;
	margin: 0;
	left: 0;
	animation: 28s slides3 infinite;
}

@keyframes slides3 {
  0%, 25% {
    left: 0%; /* Slide 1 visible */
  }

  33%, 58% {
    left: -100%; /* Transition douce vers Slide 2 */
  }

  66%, 91% {
    left: -200%; /* Transition douce vers Slide 3 */
  }

  100% {
    left: 0%; /* Retour au début */
  }
}
/* FIN slider 3  */


/*
** slider 5 images pure CSS
*/

.slider5{
	overflow: hidden;
	height: 100%;
}

.slider5 figure div{
	width: 20%;
	float: left;
}

.slider5 figure img{
	width: 100%;
	float: left;
}

.slider5 figure{
	position: relative;
	width: 500%;
	margin: 0;
	left: 0;
	animation: 50s slides5 infinite;
}

.slider5 .slide h2{
	width: 20%;
	position: absolute;
	text-align: center;
	color: #fefefe;
  text-shadow: 1px 1px 2px $black;
  padding-top: 10px;
}

@keyframes slides5{
	0%{
		left: 0%
	}

	10%{
		left: 0%;
	}

	12%{
		left: -100%;
	}

	22%{
		left: -100%;
	}

	24%{
		left: -200%;
	}

	34%{
		left: -200%;
	}

	36%{
		left: -300%;
	}

	46%{
		left: -300%;
	}

	48%{
		left: -400%;
	}

	58%{
		left: -400%;
	}

	60%{
		left: -300%;
	}

	70%{
		left: -300%;
	}

	72%{
		left: -200%;
	}

	82%{
		left: -200%;
	}

	84%{
		left: -100%;
	}

	94%{
		left: -100%;
	}

	96%{
		left: 0%;
	}

	100%{
		left: 0%;
	}
}

.fade-in {
	animation: fadeIn 2s;
}

@keyframes fadeIn{
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/*
** fade-in fade-out
*/

.fade-out {
	animation: fadeOut 2s;
}

@keyframes fadeOut{
	from {
		opacity: 1;
	}
	to {
		opacity: 0;
	}
}

/* DEBUT SLIDER2-FADE */
.slider2-fade {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* Images superposées */
.slider2-fade img {
  width: 100%;
  height: auto;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  animation: slides-fade-2 10s infinite ease-in-out;
}

/* Décalage de la deuxième image */
.slider2-fade img:nth-child(1) { animation-delay: 0s; }
.slider2-fade img:nth-child(2) { animation-delay: 5s; }

/* Animation de fondu fluide sans blanc */
@keyframes slides-fade-2 {
  0%   { opacity: 0; }
  10%  { opacity: 1; }
  50%  { opacity: 1; }
  60%  { opacity: 0; }
  100% { opacity: 0; }
}

/* Conteneur : ratio d'image (ex. 630/1920 = format 16:9 environ) */
.slider2-fade::before {
  content: "";
  display: block;
  padding-top: calc(100% * (630 / 1920)); /* ajuste selon ton ratio */
}
/* FIN SLIDER2-FADE */


/* DEBUT SLIDER3-FADE */
.slider3-fade {
  position: relative;
  width: 100%;
}

.slider3-fade img {
  width: 100%;
  height: auto;       /* hauteur selon l'image */
  display: block;     /* empêche espaces blancs indésirables */
  position: absolute; /* superposition */
  top: 0;
  left: 0;
  opacity: 0;
  animation: slides-fade 21s infinite;
}

/* Décalage pour chaque image */
.slider3-fade img:nth-child(1) { animation-delay: 0s; }
.slider3-fade img:nth-child(2) { animation-delay: 7s; }
.slider3-fade img:nth-child(3) { animation-delay: 14s; }

/* Animation de fondu fluide */
@keyframes slides-fade {
  0%   { opacity: 0; }
  10%  { opacity: 1; }
  30%  { opacity: 1; }
  40%  { opacity: 0; }
  100% { opacity: 0; }
}
/* Conteneur prend la hauteur de la première image */
.slider3-fade::before {
  content: "";
  display: block;
  padding-top: calc(100% * (630 / 1920)); /* ratio 630:1920 ou 9:16 par exemple */
}
/* FIN SLIDER3-FADE */

/*
** newspaper 2 colonnes
*/

@media screen and (min-width: 40em)
{
   .newspaper {
    -webkit-column-count: 2; /* Chrome, Safari, Opera */
    -moz-column-count: 2; /* Firefox */
    column-count: 2;
    -webkit-column-gap: 40px; /* Chrome, Safari, Opera */
    -moz-column-gap: 40px; /* Firefox */
    column-gap: 40px;
    -webkit-column-rule: 0px solid lightblue; /* Chrome, Safari, Opera */
    -moz-column-rule: 0px solid lightblue; /* Firefox */
    column-rule: 0px solid lightblue;
    padding:10px 0px 10px 0px;
	}
}

/*
** newspaper 3 colonnes
*/

@media screen and (min-width: 40em)
{
   .newspaper3 {
    -webkit-column-count: 3; /* Chrome, Safari, Opera */
    -moz-column-count: 3; /* Firefox */
    column-count: 3;
    -webkit-column-gap: 40px; /* Chrome, Safari, Opera */
    -moz-column-gap: 40px; /* Firefox */
    column-gap: 40px;
    -webkit-column-rule: 0px solid lightblue; /* Chrome, Safari, Opera */
    -moz-column-rule: 0px solid lightblue; /* Firefox */
    column-rule: 0px solid lightblue;
    padding:10px 0px 10px 0px;
	}
}

/*
** Quote
*/

.quote-inline-wrap-article-content {
  max-width: 100%;
  position: relative;
  font-family: 'Lato';
}

.quote-inline-wrap {
  float: left;
  max-width: 21.875rem;
  padding: 2.35rem 1rem 1rem 0;
}

.quote-inline-wrap .quote-inline-marks {
  font-size: 6rem;
  color: #8a8a8a;
	line-height:25%;
  font-family: 'Arial';
}

.quote-inline-wrap .quote-inline-testimonial {
  border-radius: 5px;
}

.quote-inline-wrap .quote-inline-testimonial p {
  font-weight: 300;
}

.quote-inline-wrap .quote-inline-person {
  margin-bottom: 1.5rem;
}

.quote-inline-wrap .quote-inline-person .quote-inline-photo img {
  border-radius: 50%;
  width: 4.375rem;
  height: 4.375rem;
  float: left;
  margin-right: 1rem;
}

.quote-inline-wrap .quote-inline-person p {
  position: relative;
  top: 5px;
}

.quote-inline-wrap .quote-inline-person p:nth-child(2) {
  font-size: 1rem;
  font-weight: 500;
  margin-bottom: 0;
}

.quote-inline-wrap .quote-inline-person p:nth-child(3) {
  font-size: 0.875rem;
  font-weight: 400;
  color: #8a8a8a;
}

@media screen and (max-width: 40em) {
  .quote-inline-wrap {
    width: 100%;
    float: none;
    display: block;
  }
}

/*
** Ligne
*/

.hr50{border: none; width:50%; height:1px;color:#354649; background-color:#354649}
.hr67{border: none; width:67%; height:1px;color:#354649; background-color:#354649}
.hr50l{border: none; width:50%; height:1px;color:#354649; background-color:#354649; float:left}
.hr50r{border: none; width:50%; height:1px;color:#354649; background-color:#354649; float:right}
.hr75{border: none; width:75%; height:1px;color:#354649; background-color:#354649}
.hr75l{border: none; width:75%; height:1px;color:#354649; background-color:#354649; float:left}
.hr75r{border: none; width:75%; height:1px;color:#354649; background-color:#354649; float:right}
.hr80{border: none; width:80%; height:1px;color:#354649; background-color:#354649}
.hr85{border: none; width:85%; height:1px;color:#354649; background-color:#354649}
.hr875{border: none; width:87.50%; height:1px;color:#354649; background-color:#354649}
.hr90{border: none; width:90%; height:1px;color:#354649; background-color:#354649}
.hr100{border: none; width:100%; height:1px;color:#354649; background-color:#354649}

div.vertical-line{
      width: 1px; /* Line width */
      background-color: black; /* Line color */
      height: 100%; /* Override in-line if you want specific height. */
      display:inline-block; /* You can use position:absolute or display:inline-block or float: left or float: right
        if this fits better with your design */
    }

div.vertical-line-left{
      width: 1px; /* Line width */
      background-color: black; /* Line color */
      height: 100%; /* Override in-line if you want specific height. */
      float: left; /* You can  use position:absolute or display:inline-block or float: left or float: right
        if this fits better with your design */
    }

div.vertical-line-right{
      width: 1px; /* Line width */
      background-color: black; /* Line color */
      height: 100%; /* Override in-line if you want specific height. */
      float: right; /* You can  use position:absolute or display:inline-block or float: left or float: right
        if this fits better with your design */
    }
/*
** Tableau avec tri
*/

/* Classe obligatoire pour les flèches */
.flecheDesc {
  width: 0; 
  height: 0; 
  float:right;
  margin: 5px;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 5px solid;
}
.flecheAsc {
  width: 0; 
  height: 0;
  float:right;
  margin: 5px;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid;
}

/* Classe optionnelle pour le style */
.tableautri {border-spacing: 0px; margin:auto; border-collapse: separate;}
.tableautri td {padding:.25rem}
.zebre tbody tr:nth-child(odd) {background-color: white;border-bottom:1px solid #ccc;}
.zebre tbody tr:nth-child(even) {background-color:#E0E7E9; border-bottom:1px solid #ccc;}
.zebre tbody tr:hover:nth-child(odd) {background-color:#A3C6C4;color: white;}
.zebre tbody tr:hover:nth-child(even) {background-color:#A3C6C4;color: white;}
.zebrecookies tbody tr:nth-child(odd) {background-color: white;border-bottom:1px solid #ccc;}
.zebrecookies tbody tr:nth-child(even) {background-color:#E0E7E9; border-bottom:1px solid #ccc;}
.zebrecookies tbody tr:hover:nth-child(odd) {background-color:#A3C6C4;color: white;}
.zebrecookies tbody tr:hover:nth-child(even) {background-color:#A3C6C4;color: white;}

.avectri th {text-align:left;padding:5px 0px 0px 5px ;vertical-align:top;background-color:#6C7A89;cursor:pointer;font-weight:normal;color:white;
	-webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  user-select: none;
}
.avectri th.selection {background-color:#6C7A89;color:white;}
.avectri th.selection .flecheDesc {border-bottom-color: white;}
.avectri th.selection .flecheAsc {border-top-color: white;}
.zebre tbody td:nth-child(2) {text-align:center;}
.zebre tbody td:nth-child(4) {text-align:center;}
.zebre tbody td:nth-child(5) {text-align:center;}
.zebrecookies tbody td:nth-child(2) {text-align:left;}
.zebrecookies tbody td:nth-child(4) {text-align:center;}
.zebrecookies tbody td:nth-child(5) {text-align:center;}

/* Stats list */

.stats-list {
  list-style-type: none;
  clear: left;
  margin: 0;
  padding: 0;
  text-align: center;
  margin-bottom: 30px;
}

.stats-list .stats-list-positive {
  color: #3adb76;
}

.stats-list .stats-list-negative {
  color: #cc4b37;
}

.stats-list > li {
  display: inline-block;
  margin-right: 10px;
  padding-right: 10px;
  border-right: 1px solid #cacaca;
  text-align: center;
  font-size: 1.1em;
  font-weight: bold;
}

.stats-list > li:last-child {
  border: none;
  margin: 0;
  padding: 0;
}

.stats-list > li .stats-list-label {
  display: block;
  margin-top: 2px;
  font-size: 0.9em;
  font-weight: normal;
}

/* Popup */
.overlay {
    background-color: rgba(0, 0, 0, 0.6);
    bottom: 0;
    cursor: default;
    left: 0;
    opacity: 0;
    position: fixed;
    right: 0;
    top: 0;
    visibility: hidden;
    z-index: 1;
    -webkit-transition: opacity .5s;
    -moz-transition: opacity .5s;
    -ms-transition: opacity .5s;
    -o-transition: opacity .5s;
    transition: opacity .5s;
}
.overlay:target {
    visibility: visible;
    opacity: 1;
}
.popup {
    background-color: #fff;
    border: 3px solid #fff;
    display: inline-block;
    left: 50%;
    opacity: 0;
    padding: 15px;
    position: fixed;
    text-align: justify;
    top: 40%;
    visibility: hidden;
    z-index: 10;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    -ms-border-radius: 10px;
    -o-border-radius: 10px;
    border-radius: 10px;
    -webkit-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset;
    -moz-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset;
    -ms-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset;
    -o-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset;
    box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset;
    -webkit-transition: opacity .5s, top .5s;
    -moz-transition: opacity .5s, top .5s;
    -ms-transition: opacity .5s, top .5s;
    -o-transition: opacity .5s, top .5s;
    transition: opacity .5s, top .5s;
}
.overlay:target+.popup {
    top: 50%;
    opacity: 1;
    visibility: visible;
}
.close {
    background-color: rgba(0, 0, 0, 0.8);
    height: 30px;
    line-height: 30px;
    position: absolute;
    right: 0;
    text-align: center;
    text-decoration: none;
    top: -15px;
    width: 30px;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    -ms-border-radius: 15px;
    -o-border-radius: 15px;
    border-radius: 15px;
}
.close:before {
    color: rgba(255, 255, 255, 0.9);
    content: "X";
    font-size: 24px;
    text-shadow: 0 -1px rgba(0, 0, 0, 0.9);
}
.close:hover {
    background-color: rgba(64, 128, 128, 0.8);
}
.popup p, .popup div {
    margin-bottom: 10px;
}
.popup label {
    display: inline-block;
    text-align: left;
    width: 120px;
}

/* social media icon facebook bluesky envelope*/
.fa {
  padding: 10px;
  font-size: 15px;
  width: 15px;
  text-align: center;
  text-decoration: none;
  opacity: 0.8;
}

.fa:hover {
    opacity: 0.5;
}

/* contact us*/
  /* Style général du bouton */
.btn {
  background-color: var(--couleur-bouton);
  /*  background-color: #928490; */
  color: white;
  padding: 0.625rem 1.25rem; /* = 10px 20px si base 16px */
  border: none;
  border-radius: 0.5rem;     /* = 8px */
  cursor: pointer;
  font-size: 1rem;           /* = 16px */
  transition: background-color 0.3s;
  max-width: 50%;           /* ne dépasse jamais l’écran */
  text-align: center;
  box-sizing: border-box;
}

.parent_btn {
  display: flex;
  justify-content: space-between; /* texte à gauche, bouton à droite */
  align-items: center;            /* alignement vertical sur la même ligne */
  flex-wrap: wrap;                /* permet au texte de passer sous le bouton si pas assez de place */
  gap: 1rem;                      /* espace minimal entre bouton et texte si wrap */
}

.texte_btn {
  margin: 0;                      /* supprime les marges par défaut du <p> */
  font-size: 0.8rem;
  line-height:0rem;
}

.texte_btn a {
  font-weight:bolder;
}

/* Effet hover */
.btn:hover {
/*  background-color: #6e646b; */
  background-color: var(--accent-dore);
}

/* Sur mobile (écran < 480px) */
@media (max-width: 480px) {
  .btn {
    width: 100%;           /* bouton prend toute la largeur */
    padding: 0.75rem;      /* plus compact */
    font-size: 0.9rem;     /* texte un peu plus petit */
  }
}

/* Conteneur texte */
.texte-container {
    position: relative;
    width: 100%;
    margin: 0 auto;        /* Centrer sur la page */
}

@media screen and (max-width: 39.9375em) {
/* Texte superposé avec animation*/ 
.text-overlay {
	position: absolute;
	top: 50%;
	left: 12.5%;
	right: 12.5%;
	transform: translateY(-50%);
	color: white;
	font-size: 3vw;
	text-align: center;
	text-shadow: 2px 2px 6px rgba(0,0,0,0.7);
	padding: 0.5rem 1rem;
	background-color: rgba(0,0,0,0.5);
	border-radius: 5px;
	opacity: 0;
	transition: opacity 0.5s ease-in-out;
	pointer-events: none;
	}
	.text-overlay.active{
	opacity: 1;
	}
	.text-overlay.fondtransparent{
    background-color: rgba(0,0,0,0); /* fond transparent */
	}
}

@media screen and (min-width: 39.938em) and (max-width: 74.9375em) {
/* Texte superposé avec animation*/ 
  .text-overlay {
    position: absolute;
	top: 50%; 
	left: 12.5%;
	right: 12.5%;
    transform: translateY(-50%);
    color: white;
    font-size: 2.5vw; 
    text-align: center;
    text-shadow: 3px 3px 8px rgba(0,0,0,0.7);
    padding: 1rem 2rem;
    background-color: rgba(0,0,0,0.4);
    border-radius: 10px;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
	}
	.text-overlay.active{
	opacity: 1;
	}
	.text-overlay.fondtransparent{
    background-color: rgba(0,0,0,0); /* fond transparent */
	}
}

@media screen and (min-width: 74.938em) {
/* Texte superposé avec animation*/ 
.text-overlay {
/* Centered text */
    position: absolute;
    top: 50%;
    left: 25%;
    right: 25%;
    transform: translateY(-50%);
    color: white;
    font-size: 2vw;   
    text-align: center;
    text-shadow: 2px 2px 6px rgba(0,0,0,0.7);
    padding: 0.5rem 1rem;
    background-color: rgba(0,0,0,0.5); /* fond semi-transparent */
    border-radius: 5px;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
/*   color: #222;  texte noir/gris foncé */
/*   text-shadow: 1px 1px 3px rgba(255,255,255,0.7); ombre claire pour contraste doux */
/*   background-color: rgba(255,255,255,0.6);  fond blanc semi-transparent */
	}
	.text-overlay.active{
	opacity: 1;
	}
	.text-overlay.fondtransparent{
    background-color: rgba(0,0,0,0); /* fond transparent */
	}
}

/* Texte superposé court non amimé*/ 
.text-overlay2 {
/* Centered text */
    position: absolute;
    transform: translate(-50%, -50%);
    color: white;
    text-align: center;
    text-shadow: 2px 2px 6px rgba(0,0,0,0.7);
    padding: 0.5rem 1rem;
    background-color: rgba(0,0,0,0.5); /* fond semi-transparent */
    border-radius: 5px;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
/*   color: #222;  texte noir/gris foncé */
/*   text-shadow: 1px 1px 3px rgba(255,255,255,0.7); ombre claire pour contraste doux */
/*   background-color: rgba(255,255,255,0.6);  fond blanc semi-transparent */
}


@media screen and (max-width: 39.9375em) {
.text-overlay2 {
    position: absolute;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 4vw;
    text-align: center;
    text-shadow: 2px 2px 6px rgba(0,0,0,0.7);
    padding: 0.5rem 1rem;
    background-color: rgba(0,0,0,0.5); /* fond semi-transparent */
    border-radius: 5px;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
	}
.text-overlay2.active {
    opacity: 1;
	}
.text-overlay2-left {
	top: 15%;
   	left: 37%;
	}
.text-overlay2-right {
    top: 25%;
   	left: 63.5%;
	}
.text-overlay2-centre {
    top: 50%;
   	left: 50%;
	}
}

@media screen and (min-width: 39.938em) and (max-width: 74.9375em) {
.text-overlay2 {
    position: absolute;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 2,5vw;
    text-align: center;
    text-shadow: 2px 2px 6px rgba(0,0,0,0.7);
    padding: 0.5rem 1rem;
    background-color: rgba(0,0,0,0.5); /* fond semi-transparent */
    border-radius: 5px;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
	}
.text-overlay2.active {
    opacity: 1;
	}
.text-overlay2-left {
	top: 25%;
   	left: 37%;
	}
.text-overlay2-right {
    top: 25%;
   	left: 63.5%;
	}
.text-overlay2-centre {
    top: 50%;
   	left: 50%;
	}
}

@media screen and (min-width: 74.938em) {
.text-overlay2 {
    position: absolute;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 1.6vw;
    text-align: center;
    text-shadow: 2px 2px 6px rgba(0,0,0,0.7);
    padding: 0.5rem 1rem;
    background-color: rgba(0,0,0,0.5); /* fond semi-transparent */
    border-radius: 5px;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
	}
.text-overlay2.active {
    opacity: 1;
	}
.text-overlay2-left {
	top: 25%;
   	left: 37%;
	}
.text-overlay2-right {
    top: 25%;
   	left: 63.5%;
	}
.text-overlay2-centre {
    top: 50%;
   	left: 50%;
	}
}

/* form container */ 
.form-container {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 35rem;
  margin: 0 auto; }
  @media print, screen and (min-width: 40em) {
    .form-container {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .form-container.fluid {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100%;
    margin: 0 auto; }
    @media print, screen and (min-width: 40em) {
      .form-container.fluid {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
  .form-container.full {
    padding-right: 0;
    padding-left: 0;
    max-width: 100%;
    margin: 0 auto; }

.form-container:not(.full) > .grid-padding-x {
  margin-right: -0.625rem;
  margin-left: -0.625rem; }
  @media print, screen and (min-width: 40em) {
    .form-container:not(.full) > .grid-padding-x {
      margin-right: -0.9375rem;
      margin-left: -0.9375rem; } }

/* Champs texte et textarea */
.champ, .texte{
    width: 100%;
    padding: 0.5rem 0.75rem; /* 8px top/bottom, 12px left/right */
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 0.5rem;
    box-sizing: border-box;
}

.ligne-ville-zip {
  display: flex;
  gap: 10px; /* espace entre les deux champs */
}

.ligne-ville-zip .champ {
  flex: 1; /* les deux champs prennent la même largeur remplissant 100% de la largeur */
}

/* Responsive : sur mobile, les champs repassent à la ligne */
@media (max-width: 600px) {
  .ligne-ville-zip {
    flex-direction: column;
  }
}

select.texte {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  /* icône chevron (SVG inline) */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14'><path d='M2 5l5 5 5-5' stroke='%23ddd' stroke-width='1' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.25rem center;
  background-size: 1rem;
}

/* Focus */
.champ:focus {
    border-color: #928490;
    box-shadow: 0 0 5px rgba(146, 132, 144, 0.3);
    outline: none;
}

/* Textarea */
textarea.champ {
    resize: vertical;
    min-height: 150px;      /* ou la hauteur que tu souhaites */
}

/* Style du texte indicatif */
.champ::placeholder {
  color: #aaa;          /* gris clair */
  font-weight: 300;     /* police légère */
/*  font-style: italic;   optionnel : italique */
  transition: color 0.3s;
}

/* Au focus, placeholder devient plus discret */
.champ:focus::placeholder {
  color: #ccc;          /* encore plus clair */
}

/* Image ronde avec effet ombre et marge*/
img.photo-ronde {
/*  width: 150px;             taille de l'image */
/*  height: 150px;            garder largeur = hauteur pour un cercle parfait */
  border-radius: 50%;      /* cercle */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); /* ombre douce autour du cercle */
  object-fit: cover;       /* optionnel : recadrage si l'image n'est pas carrée */
  display: block;          /* pour éviter les petits décalages inline */
  margin: 20px auto;       /* centrer si nécessaire */
  transition: box-shadow 0.3s ease; /* pour effet smooth au hover */
}

/* Optionnel : effet hover plus marqué */
img.photo-ronde:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
}

/* Image ronde avec effet ombre */
img.logo-rond {
  border-radius: 50%;      /* cercle */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); /* ombre douce autour du cercle */
  object-fit: cover;       /* optionnel : recadrage si l'image n'est pas carrée */
  display: block;          /* pour éviter les petits décalages inline */
  margin: 0px auto;       /* centrer si nécessaire */
  transition: box-shadow 0.3s ease; /* pour effet smooth au hover */
}

/* Optionnel : effet hover plus marqué */
img.logo-rond:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
}

/* image noir & blanc */
.grayscale img{
-webkit-filter: grayscale(100%); /* Chrome, Safari, Opera */
filter: grayscale(100%); /* Firefox */
max-width:75px;
width:100%;
height:auto;
}

/* image png fond blanc */
.image-white {
  display: inline-block;        /* s’adapte à la taille de l’image */
  background-color: white;      /* blanc pour remplacer la transparence */
}

/* menu sticky */
.menu-sticky {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;

/*  background-color: rgba(255, 255, 255, 1); /* opaque au départ */
  background-color: rgba(250, 249, 246, 1); 
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: background-color 0.4s ease, box-shadow 0.3s ease, backdrop-filter 0.4s ease;
}

/* Quand on scrolle : fond légèrement transparent et effet verre dépoli */
body.scrolled .menu-sticky {
  background-color: rgba(250, 249, 246, 0.85); /* léger effet de transparence */
  backdrop-filter: blur(6px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); /* ombre un peu plus marquée */
}

/* Liens du menu */
.menu-sticky a {
  color: #222;
}

.menu-sticky a:hover {
  color: #555;
}

/*
dans foundation les tailles des écrans sont : 
small ≥ 40em - medium ≥ 64em - large ≥ 75em 
Appareil Type d’écran	Taille en px (largeur du viewport)	Taille en em (si 1em = 16px)	Exemple de media query
📱 Smartphone (portrait)	Small	0 – 639 px	0 – 39.9375 em	@media screen and (max-width: 39.9375em)
📱 Smartphone (paysage) / petit iPad	Small+	≥ 640 px	≥ 40 em	@media screen and (min-width: 40em)
💻 Tablette / iPad vertical	Medium	640 px – 1023 px	40 em – 63.9375 em	@media screen and (min-width: 40em) and (max-width: 63.9375em)
💻 Laptop / iPad horizontal	Large	≥ 1024 px	≥ 64 em	@media screen and (min-width: 64em)
🖥️ Grand écran (iMac, 27")	X-Large	≥ 1200 px	≥ 75 em	@media screen and (min-width: 75em)
🖥️ Ultra-large (écran 4K, 32"+)	XX-Large	≥ 1440 px ou 1600 px+	≥ 90 em – 100 em	@media screen and (min-width: 90em)
/*


/* Ajuste automatiquement la position du défilement pour les ancres */
/* --- SMALL Smartphone (portrait)	Small	0 – 639 px	0 – 39.9375 em --- */
@media screen and (max-width: 39.9375em) {
  :target {
    scroll-margin-top: var(--sticky-height-mobile); /* adapte à la hauteur du menu sur Smartphone (portrait)	Small */
  }
}

/* Corrige la superposition du menu sur mobile */
@media screen and (max-width: 39.9375em) {
  .off-canvas.position-left {
    top: var(--sticky-height-mobile);
    height: calc(100% - var(--sticky-height-mobile));
  }

  /* Si tu veux aussi que le menu ferme proprement avec effet smooth */
  .off-canvas.is-open {
    transition: top 0.3s ease, height 0.3s ease;
  }
}
/* --- MEDIUM Tablette / iPad vertical	Medium	640 px – 1023 px	40 em – 63.9375 em --- */
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  :target {
    scroll-margin-top: 123.48px; /* adapte à la hauteur du menu sur Smartphone (paysage) / petit iPad	Small+ Tablette / iPad vertical	Medium */
  }
}

/* --- LARGE Laptop / iPad horizontal	Large	≥ 1024 px	64 em - 74.9375 em--- */
@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  :target {
    scroll-margin-top: 123.48px; /* hauteur du menu sticky sur Tablette / iPad vertical	Medium */
  }
}

/* --- LARGE Grand écran (iMac, 27")	X-Large	≥ 1200 px	≥ 75 em --- */
@media screen and (min-width: 75em) {
  :target {
    scroll-margin-top: 97.61px; /* hauteur du menu sticky sur grand écran */
  }
}

/* Images de la grille avec loupe au survol */
.card-img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  cursor: zoom-in;
  transition: transform 0.3s ease;
  position: relative;
}

/* Loupe au survol */
.card-img::after {
  content: "\f002"; /* loupe FontAwesome */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: rgba(255, 255, 255, 0.8);
  font-size: 2em;
  position: absolute;
  top: 45%;
  left: 45%;
  opacity: 0;
  transition: opacity 0.3s;
}

.card-img:hover::after {
  opacity: 1;
  transform: scale(1.1);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

/* DEBUT LIGHTBOX */
/* Lightbox */
.lightbox {
  display: none;
  justify-content: center;
  align-items: center;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.6);
}

/* Image avec effet fondu */
.lightbox-image {
  max-width: 90%;
  max-height: 85%;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.lightbox-image.visible {
  opacity: 1;
}

/* Bouton fermer */
.closelightbox {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: rgba(34, 34, 34, 0.8); /* gris foncé semi-transparent */
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  color: white;
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: all 0.3s ease;
}

.closelightbox:hover {
  background: rgba(34, 34, 34, 1); /* gris foncé opaque au hover */
  color: #fefefe;
  transform: scale(1.1);
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.5);
}

/* Navigation flèches */
.lightbox .prev, 
.lightbox .next {
	position: absolute;
	font-family: Arial, sans-serif;
    font-size: 30px;
    color: white;
    cursor: pointer;
    background: none;
    width: 40px; height: 40px;
	border: none;
	top: 50%;
	transform: translateY(-50%);
}

.lightbox .prev {
	left: 40px;
}

.lightbox .next {
	right: 40px;
}

/* Effet au survol */
.lightbox .prev:hover,
.lightbox .next:hover {
  transform: translateY(-50%) scale(1.1); /* léger zoom */
}
/* FIN LIGHTBOX */

/* DEBUT Lightbox2 */
/* Lightbox2 */
.lightbox2 {
  display: none;
  justify-content: center;
  align-items: flex-start;       /* on aligne le contenu en haut pour permettre le scroll */
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow-y: auto;              /* active le défilement vertical */
  background-color: rgba(0, 0, 0, 0.6);
  padding: 40px 0;               /* espace en haut et bas */
  box-sizing: border-box;}

/* Image avec effet fondu */
.lightbox2-image {
  max-width: 100%;
/*  max-height: 85%; */
  height: auto;                  /* conserve les proportions */
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.lightbox2-image.visible {
  opacity: 1;
}

/* Navigation flèches */
.lightbox2 .prev, 
.lightbox2 .next {
	position: fixed;
	font-family: Arial, sans-serif;
    font-size: 30px;
    color: white;
    cursor: pointer;
    background: none;
    width: 40px; height: 40px;
	border: none;
	top: 50%;
	transform: translateY(-50%);
}

.lightbox2 .prev {
	left: 40px;
}

.lightbox2 .next {
	right: 40px;
}

/* Effet au survol */
.lightbox2 .prev:hover,
.lightbox2 .next:hover {
  transform: translateY(-50%) scale(1.1); /* léger zoom */
}

/* Bouton fermer */
.closelightbox2 {
  position: fixed;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: rgba(34, 34, 34, 0.8); /* gris foncé semi-transparent */
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  color: white;
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: all 0.3s ease;
}

.closelightbox2:hover {
  background: rgba(34, 34, 34, 1); /* gris foncé opaque au hover */
  color: #fefefe;
  transform: scale(1.1);
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.5);
}


/* FIN LIGHTBOX2 */

/* IMAGE CADRE de base */
/* image encadrée avec effet ombre */
.image-cadre {
  border: 5px solid #fff;        /* bord blanc de 5px */
  border-radius: 4px;            /* coins légèrement arrondis */
  box-shadow: 0 4px 10px rgba(0,0,0,0.15); /* ombre légère */
  display: center;                
  max-width: 100%;               /* responsive */
  height: auto;
  margin: 0 0 0.5rem 0;   /* contrôle l’espace sous l’image */
  transition: transform 0.3s, box-shadow 0.3s; /* animation au survol */
}

a .image-cadre:hover {
	opacity:0.9;
	transform: translateY(-5px) scale(1.02); /* léger “pop” */
	box-shadow: 0 15px 25px rgba(0,0,0,0.25);
}

/* IMAGE CADRE avec zoom sur LIGHTBOX - différence de pointer avec image-cadre */
/* image encadrée avec effet ombre */
.image-cadre-lightbox {
  border: 5px solid #fff;        /* bord blanc de 5px */
  border-radius: 4px;            /* coins légèrement arrondis */
  box-shadow: 0 4px 10px rgba(0,0,0,0.15); /* ombre légère */
  display: center;                
  max-width: 100%;               /* responsive */
  height: auto;
  margin: 0 0 0.5rem 0;   /* contrôle l’espace sous l’image */
  transition: transform 0.3s, box-shadow 0.3s; /* animation au survol */
}

/* effet au survol */
.image-cadre-lightbox:hover {
  transform: translateY(-5px) scale(1.02); /* léger “pop” */
  box-shadow: 0 15px 25px rgba(0,0,0,0.25);
  cursor: zoom-in; /* différence de pointer avec image-cadre */
}

/* image png fond noir */
.image-noir {
  display: inline-block;        /* s’adapte à la taille de l’image */
  background-color: black;      /* noir pour remplacer la transparence */
}

select {
  max-height: 100px;        /* limite la hauteur du menu ouvert */
  overflow-y: auto;          /* ajoute un défilement vertical si nécessaire */
}