@charset "utf-8";

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :::::::::::::    STUDIO PUBLINOVES     :::::::::::::::::: */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */


/* ========================================================= */
/* ======================= HEADER ========================== */
/* ========================================================= */

/*  -------------------------------------  HEADER - Principal  */

.header-principal {
width: 100%;
position: fixed;
z-index: 10000;
top: 0;
left: 0;
background-color: var(--theme-blanc);
box-shadow: 0 1px 4px rgba(0,0,0,0.08);
border-bottom: 1px solid #d9d9d9;
}

/*  -------------------------------------  HEADER - Conteneur  */



.header-principal-conteneur {
width: 96%;
min-height: 80px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
}



@media screen and (max-width: 1100px) {
.header-principal-conteneur {
width: 96%;
}
}

@media screen and (max-width: 900px) {
.header-principal-conteneur {
width: 92%;
min-height: 60px;
}
}

@media screen and (max-width: 700px) {
.header-principal-conteneur {
width: 90%;
min-height: 60px;
}
}

/*  -------------------------------------  HEADER - Logo  */

.header-principal-logo {
width: 180px;
display: flex;
flex-direction: column;
align-items: flex-start;
text-decoration: none;
}

@media screen and (max-width: 1200px) {
.header-principal-logo {
width: 150px;
}
}

@media screen and (max-width: 900px) {
.header-principal-logo {
width: 140px;
}
}

@media screen and (max-width: 700px) {
.header-principal-logo {
width: 135px;
}
}

.header-principal-logo img {
width: 100%;
height: auto;
display: block;
}

.header-principal-logo-texte {
margin-top: 0;
padding-left: 2px;
padding-top: 5px;
font-size:12.5px;
line-height: 1;
white-space: nowrap;
color: var(--typo-bleu-marine);
font-weight: 300; 
}

@media screen and (max-width: 1100px) {
.header-principal-logo-texte {
font-size:11.5px;
}
}

@media screen and (max-width: 900px) {
.header-principal-logo-texte {
font-size:11px;
}
}


/*  -------------------------------------  HEADER - Navigation-Liste  */

.header-principal-navigation {
margin-left: 0;
width: 77%;
}

@media screen and (max-width: 1100px) {
.header-principal-navigation {
position: fixed;
left: 0;
width: 100%;
top: 60px;
height: calc(100vh - 60px);
padding: 15px 30px 35px;
background-color: var(--theme-blanc);
opacity: 0;
visibility: hidden;
transform: translateX(100%);
transition: 0.35s ease;
z-index: 999;
}
}

@media screen and (max-width: 700px) {
.header-principal-navigation {
overflow-y: auto;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
overscroll-behavior: contain;
}
}

@media screen and (max-width: 1100px) {
.header-principal-navigation.menu-ouvert {
opacity: 1;
visibility: visible;
transform: translateX(0);
}
}

@media screen and (max-width: 700px) {
html.menu-ouvert {
overflow: hidden !important;
}

body.menu-ouvert {
overflow: hidden !important;
position: fixed;
width: 100%;
}
}

.header-principal-liste {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0;
list-style: none;
margin: 0;
padding: 0;
}

@media screen and (max-width: 1100px) {
.header-principal-liste {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 0;
width: 100%;
}
}


/*  -------------------------------------  HEADER - liens  */


.header-principal-lien {
display: flex;
align-items: center;
justify-content: center;
gap: 7px;
height: 30px;
padding: 0;
border: none;
background: none;
font-family: var(--theme-police);
font-size: 12.5px;
letter-spacing: 0.5px;
font-weight: 400;
line-height: 1;
text-transform: uppercase;
text-decoration: none;
/*color: var(--theme-gris-medium);*/
color: var(--typo-anthracite);
cursor: pointer;
transition: color 0.3s ease;
outline: none;
}

@media screen and (max-width: 1200px) {
.header-principal-lien{
font-size: 12.5px;
letter-spacing: 0px;

}
}


.header-principal-lien span {
width: 7px;
height: 7px;
border-right: 1.5px solid var(--theme-bronze);
border-bottom: 1.5px solid var(--theme-bronze);
transform: rotate(45deg);
margin-top: -5px;
margin-left: 5px;
transition: transform 0.35s ease, margin-top 0.35s ease;
}

@media screen and (max-width: 700px) {
.header-principal-lien span {
width: 9px;
height: 9px;
border-right: 2px solid var(--theme-bronze);
border-bottom: 2px solid var(--theme-bronze);
}
}

.header-principal-lien:hover span {
animation: header-fleche-rebond 0.45s ease;
}

.header-principal-item.menu-ouvert .header-principal-lien span {
transform: rotate(45deg) translate(2px,2px);
margin-top: -1px;
}

.header-principal-lien:hover,
.header-principal-item.menu-ouvert .header-principal-lien {
color: var(--theme-gris-fonce);
}

.header-principal-item.menu-ouvert .header-principal-lien span {
transform: rotate(-135deg);
margin-top: 3px;
}

@media screen and (max-width: 1100px) {
.header-principal-lien {
font-size: 11px;
}
}

@media screen and (max-width: 900px) {
.header-principal-lien {
font-size: 10px;
}
}

@media screen and (max-width: 700px) {
.header-principal-lien {
width: 100%;
height: 52px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0;
font-size: 14px!important;
}
}

@keyframes header-fleche-rebond {

0% {
transform: rotate(45deg) translate(0,0);
}

45% {
transform: rotate(45deg) translate(2px,2px);
}

70% {
transform: rotate(45deg) translate(1px,1px);
}

100% {
transform: rotate(45deg) translate(0,0);
}

}

/*  -------------------------------------  HEADER - Contact Téléphone  */


.header-principal-contact {
display: flex;
align-items: center;
justify-content: center;
height: 30px;
padding: 0 18px;
border: 1px solid var(--theme-bronze);
line-height: 1;
text-transform: uppercase;
text-decoration: none;
color: var(--theme-gris-medium);
}

.header-principal-telephone {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
height: 30px;
padding: 0 12px;
background-color: var(--theme-bronze);
font-size: 14px;
font-weight: 700;
line-height: 1;
text-decoration: none;
color: var(--theme-blanc);
}

.header-principal-telephone-icone {
width: 14px;
height: 14px;
display: block;
flex-shrink: 0;
object-fit: contain;
margin-right: 5px;
color: var(--theme-blanc);
}

.header-principal-contact:hover {
background-color: var(--theme-bronze)!important;
color: var(--theme-blanc) !important;
}


.header-principal-item-contact .header-principal-contact {
display: inline-flex;
align-items: center;
justify-content: center;
width: fit-content !important;
height: 30px !important;
padding: 0 12px !important;
border: 1px solid var(--theme-bronze) !important;
background-color: transparent !important;
font-size: 14px;
line-height: 1;
color: var(--theme-gris-medium);
box-sizing: border-box;
}

.header-principal-item-contact .header-principal-contact:hover {
background-color: var(--theme-bronze)!important;
color: var(--theme-blanc) !important;
}

@media screen and (max-width: 1200px) {
.header-principal-item-contact .header-principal-contact {
font-size: 12px!important;
padding: 0 10px !important;

}
}

@media screen and (max-width: 1100px) {
.header-principal-item-contact {
display: flex;
align-items: center;
padding: 12px 0;

}
}	


@media screen and (max-width: 1100px) {
.header-principal-item-contact .header-principal-contact:hover {
background-color: var(--theme-bronze) !important;
color: var(--theme-blanc) !important;
border-color: var(--theme-bronze) !important;

}
}


@media screen and (max-width: 1100px) {
.header-principal-telephone {
display: inline-flex;
align-items: center;
justify-content: center;
width: auto;
height: 30px;
padding: 0 14px;
margin: 14px 0;
background-color: var(--theme-bronze);
color: var(--theme-blanc);
	font-size: 13px;
}
}




/*  -------------------------------------  HEADER - Téléphone Mobile  */

.header-principal-telephone-mobile {
display: none;
}

@media screen and (max-width: 1100px) {
.header-principal-telephone-mobile {
display: inline-flex;
position: absolute;
left: 50vw;
top: 50%;
transform: translate(-50%,-50%);
align-items: center;
justify-content: center;
gap: 6px;
height: 30px;
padding: 0 14px;
background-color: var(--theme-bronze);
font-size: 13px;
font-weight: 700;
line-height: 1;
text-decoration: none;
white-space: nowrap;
color: var(--theme-blanc);
z-index: 10;
}
}


.header-principal-telephone-mobile svg {
display: block;
width: 14px;
height: 14px;
flex-shrink: 0;
}

/*  -------------------------------------  HEADER - Menu Déroulant  */

.header-principal-menu {
position: absolute;
top: 100%;
left: 50%;
width: 60%;
transform: translateX(-50%);
background-color: var(--theme-blanc);
box-shadow: 0 8px 18px rgba(0,0,0,0.13);
border-top: 6px solid var(--theme-bronze);
opacity: 0;
visibility: hidden;
/*pointer-events: none;*/
transition: 0.3s ease;
pointer-events: auto;
}

@media screen and (max-width: 1300px) {
.header-principal-menu {
width: 75%!important;
}
}

@media screen and (max-width: 1200px) {
.header-principal-menu {
width: 85%!important;
}
}

@media screen and (max-width: 1100px) {
.header-principal-menu {
width: 90%;
}
}




/*  ------------------------------------- */

.header-principal-menu:hover,
.header-principal-item.menu-ouvert .header-principal-menu,
.header-principal-item-deroulant:hover .header-principal-menu {
opacity: 1;
visibility: visible;
pointer-events: auto;
}

.header-principal-menu {
pointer-events: auto;
}

/*  -------------------------------------  HEADER - Menu Contenu  */

.header-principal-menu-contenu {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 60px;
padding: 28px 42px 42px;
}

@media screen and (max-width: 1200px) {
.header-principal-menu-contenu {
gap: 40px;
padding: 38px 38px;
}
}

@media screen and (max-width: 1100px) {
.header-principal-menu-contenu {
gap: 40px;
padding: 30px 30px;
}
}

@media screen and (max-width: 900px) {
.header-principal-menu-contenu {
gap: 30px;
padding: 25px 25px;
}
}

@media screen and (max-width: 700px) {
.header-principal-menu-contenu {
grid-template-columns: 1fr;
}
}

/*  -------------------------------------  HEADER - Menu Colonne  */

.header-principal-menu-colonne {
position: relative;
padding-left: 35px;
}

.header-principal-menu-colonne span {
display: block;
font-family: Georgia, serif;
font-size: 23px;
font-weight: 400;
letter-spacing: 2px;
color: var(--theme-bleu-marine);
padding-bottom: 30px;
}

.header-principal-menu-colonne ul {
position: relative;
list-style: none;
margin: 0;
padding: 0 0 0 28px;
border-left: 1px solid rgba(17,24,47,0.55);
}

.header-principal-menu-colonne ul::before {
content: "";
position: absolute;
left: -5px;
top: var(--position-rond, 6px);
width: 9px;
height: 9px;
border-radius: 50%;
background-color: var(--theme-bronze);
transition: top 0.25s ease;
}

.header-principal-menu-colonne li {
margin-bottom: 14px;
}

.header-principal-menu-colonne a {
font-size: 13.5px;
line-height: 1.1;
text-decoration: none;
color: var(--theme-gris-medium);
transition: color 0.3s ease;
}

@media screen and (max-width: 1200px) {
.header-principal-menu-colonne a {
letter-spacing: -0.5px; 
}
}

.header-principal-menu-colonne a:hover {
color: var(--theme-bronze);
}

@media screen and (max-width: 1200px) {
.header-principal-menu-colonne span {
font-size: 21px!important;
}
}

@media screen and (max-width: 900px) {
.header-principal-menu-colonne span {
font-size: 20px;
}
}

@media screen and (max-width: 700px) {
.header-principal-menu-colonne {
padding-left: 0;
}
}/*  -------------------------------------  HEADER - Bouton Mobile  */

.header-principal-bouton {
display: none;
}

.header-principal-bouton span {
display: block;
width: 34px;
height: 3px;
margin-bottom: 6px;
background-color: var(--theme-gris-medium);
border-radius: 10px;
transition: width 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}


@media screen and (max-width: 1100px) {
.header-principal-bouton {
display: block;
position: absolute;
top: 50%;
right: 2%;
transform: translateY(-50%);
width: 34px;
height: 24px;
border: none;
background: none;
cursor: pointer;
z-index: 1001;
}
}



@media screen and (max-width: 700px) {
.header-principal-navigation {
position: fixed;
top: 60px;
left: 0;
width: 100%;
height: calc(100vh - 60px);
padding: 10px 35px 30px;
background-color: var(--theme-blanc);
opacity: 0;
visibility: hidden;
transform: translateX(100%);
transition: 0.35s ease;
z-index: 999;
overscroll-behavior: contain;

}
}

@media screen and (max-width: 700px) {
.header-principal-navigation.menu-ouvert {
opacity: 1;
visibility: visible;
transform: translateX(0);
	
}
}

@media screen and (max-width: 700px) {
html.menu-ouvert {
overflow: hidden !important;
}

body.menu-ouvert {
overflow: hidden !important;
position: fixed;
width: 100%;
}
}


@media screen and (max-width: 1100px) {
.header-principal-item {
width: 100%;
border-bottom: 1px solid rgba(0,0,0,0.15);
list-style: none;
display: flex;
align-items: center;

}
}


@media screen and (max-width: 1100px) {
.header-principal-lien,
.header-principal-contact {
width: 100%;
height: 52px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0;
border: none;
font-size: 15px!important;
}
}


.header-principal-bouton span:nth-child(3) {
width: 24px;
margin-left: auto;
}

.header-principal-bouton:hover span:nth-child(3) {
width: 34px;
}

.header-principal-bouton.menu-ouvert span:nth-child(3) {
width: 34px;
margin-left: 0;
}

@media screen and (max-width: 1100px) {
.header-principal-bouton.menu-ouvert span:nth-child(1) {
transform: translateY(9px) rotate(45deg);
background-color: var(--theme-bronze);
}

.header-principal-bouton.menu-ouvert span:nth-child(2) {
opacity: 0;
}

.header-principal-bouton.menu-ouvert span:nth-child(3) {
width: 34px;
margin-left: 0;
transform: translateY(-9px) rotate(-45deg);
background-color: var(--theme-bronze);
}
}

@media screen and (max-width: 1100px) {
.header-principal-bouton.menu-ouvert:hover span:nth-child(3),
.header-principal-bouton.menu-ouvert:active span:nth-child(3) {
width: 34px;
}
}


/*  -------------------------------------  HEADER - Couleurs Catégories  */


/* LOGO & IDENTITÉ */

.header-couleur-logo {
--couleur-menu: #c3b2ad;
}

/* COMMUNICATION */

.header-couleur-communication {
--couleur-menu: #11182f;
}

/* ILLUSTRATION */

.header-couleur-illustration {
--couleur-menu: #d98a5f;
}

/* WEB */
.header-couleur-web {
--couleur-menu: #427d8d;
}

/* Bordure haute */

.header-couleur-logo .header-principal-menu,
.header-couleur-communication .header-principal-menu,
.header-couleur-illustration .header-principal-menu,
.header-couleur-web .header-principal-menu  {
border-top-color: var(--couleur-menu);
}

/* Flèche *//*

.header-couleur-logo .header-principal-lien span,
.header-couleur-communication .header-principal-lien span,
.header-couleur-illustration .header-principal-lien span, 
.header-couleur-web .header-principal-lien span {
border-right-color: var(--couleur-menu);
border-bottom-color: var(--couleur-menu);
}

/* Rond du sous-menu */

.header-couleur-logo .header-principal-menu-colonne ul::before,
.header-couleur-communication .header-principal-menu-colonne ul::before,
.header-couleur-illustration .header-principal-menu-colonne ul::before,
.header-couleur-web .header-principal-menu-colonne ul::before {
background-color: var(--couleur-menu);
}



@media screen and (max-width: 1100px) {

.header-principal-item-deroulant {
display: block;
}

.header-principal-item-deroulant .header-principal-menu {
display: none;
position: static;
width: 100%;
transform: none;
box-shadow: none;
border-top: 10px solid var(--couleur-menu);
opacity: 1;
visibility: visible;
}

.header-principal-item-deroulant.menu-ouvert .header-principal-menu {
display: block;
}

.header-principal-item-deroulant .header-principal-menu-contenu {
display: block;
padding: 18px 0;
}

.header-principal-item-deroulant .header-principal-menu-colonne {
padding-left: 0;
margin-bottom: 22px;
}

.header-principal-item-deroulant .header-principal-menu-colonne span {
font-family: var(--theme-police);
font-size: 16px !important;
letter-spacing: 0;
padding-bottom: 10px;
}

.header-principal-item-deroulant .header-principal-menu-colonne ul {
padding: 0 0 0 18px;
background: none;
}

}


@media screen and (max-width: 1100px) {
.header-principal-item-deroulant.menu-ouvert > .header-principal-lien {
color: var(--theme-bleu-marine);

}
	
}@media screen and (max-width: 1100px) {
.header-principal-menu-colonne ul::before {
display: none;
}

}

