/** Base commune **/

/* Let's get this party started */
::-webkit-scrollbar {
    width: 12px;
}
 
/* Track */
::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px #0C4C8B; 
}
 
/* Handle */
::-webkit-scrollbar-thumb {
    background: #125fa9; 
    -webkit-box-shadow: inset 0 0 6px #0C4C8B; 
}
::-webkit-scrollbar-thumb:window-inactive {
	background: #125fa9; 
}
html, body{
	-webkit-print-color-adjust:exact;
	print-color-adjust:exact;
	margin:0;
	padding:0;
}
body{
	padding-top:39px!important;
}
*:first-letter {text-transform:capitalize;}
@font-face{
    font-family : "Hacked";
    src : url('fonts/HACKED.ttf');
    font-display: swap;
    font-weight: normal;
}
@font-face{
    font-family : "Zilap";
    src : url('fonts/Zilap Sleep Demo.ttf');
    font-display: swap;
    font-weight: normal;
}
@font-face{
    font-family : "stencil";
    src : url('fonts/L-7 Stencil.ttf');
    font-display: swap;
    font-weight: normal;
}
@font-face{
    font-family : "Sensations";
    src : url('fonts/Sensations and Qualities.ttf');
    font-display: swap;
    font-weight: normal;
}

@font-face{
    font-family : "Razed Bold";
    src : url('fonts/Razed Bold.ttf');
    font-display: swap;
    font-weight: normal;
}
h1, h2, h3, h4, h5, h6 {
    margin: 0 0 30px;
    text-transform: uppercase;
    font-family: Montserrat,sans-serif;
    letter-spacing: 1px;
}
h2{
    font-size: 24px;
    line-height: 30px;
    padding-bottom: 6px;
    font-weight: 400;
    color: #0C4C8A;
    font-family: Times New Roman;
    text-align: center;
}
h3{
	font-weight: 600;
	font-size: 18px;
	padding-bottom: 22px;
	margin-top: 0;
}
p{
	font-family: "Open Sans",sans-serif;
	font-size: 14px;
	line-height: 21px;
	font-weight: 400;
	padding-bottom: 22px;
	margin: 0px;
	text-overflow: ellipsis;
}
/* ** Header de page ** */
header{
	/*background-color: #000;*/
	filter: alpha(opacity=30);
  	filter: progid: DXImageTransform.Microsoft.Alpha(opacity=30);
	/*margin-left: 8.3%;
    margin-right: 8.3%;*/

}
a{
	color: #00634f!important;
	font-family: arial;
    text-decoration: none;
}
footer{
	margin-left: 8.3%;
    margin-right: 8.3%;
}
article h1{
	color: #0C4C8A;
	font-family: "Times New Roman";
	font-size: 90px;
	text-align: center;
	margin-top: 50px;
}
.label-default{
	background-color: #0C4C8A;
}
header{
	height: 119px;
	color: rgb(255, 241, 241);
	margin-top: 5px;
}
header img{
	max-height: 90px;
}
header img{
	max-height: 63px!important;
}
#TitreHeader{
	color: white;
	/*color: white;*/
	font-size: 50px;
	height: 119px;
	font-family: "Zilap";
	margin-left: 50px;
}
#TitreHeader span{
    display: initial;
    background: #0290ba;
    color: white;
    padding-left: 15px;
    padding-right: 15px;
}
#Navigation{
	height: 75px;
	background-color: #0C4C8A;
	color: white;
	font-size: 16px;
    /*box-shadow: 0 5px 5px 0 #2d3231;*/
    margin-top: -41px;
    position: fixed;
    z-index: 1;
    padding: 0!important;
    margin-left: 0;
    margin-right: 0;
}
#Navigation img{
	max-height: 45px;
}
#Navigation a{
	color: white;
	display: inline-block;
	line-height: 0;
}
#Navigation a+a{
	margin-left: 50px;
}
#Navigation > a > span{
	display: none;
}
#Navigation > a:hover > span{
	display: -moz-inline-grid;
	margin-left: -47px;
	color: #01BCF3;
	text-orientation: sideways-right;
	position: absolute;
	margin-top: 32px;
	font-weight: bold;
}
#menucacher{
	display: none;
}
/* ** format telephone ** */

@media (max-width: 560px) {
	header{
		padding-left: 0px!important;
	}
	#TitreHeader {
    	padding-left: 0px;
	}
	#TitreHeader {
    	font-size: 25px!important;
    	padding-top: 45px!important;
	}
	article h1{
		font-size: 50px!important;
	}

}

/* ** format tablette ** */

@media only screen and (max-width: 750px) and (min-height: 561px){
	#TitreHeader{
		margin-left: 115px!important;
	}
	#TitreHeader {
    	font-size: 33px!important;
	}

	#voletgauche{
		color: white;
		padding: 5px;
		text-align: center;
		margin-left: 8.3%;
    	margin-right: 8.3%;
	}
	.voletobject > img, a{
		display: inline;
		text-align: center;
		margin: auto;
		display: inline;
	}
	.voletobject img{
		max-width: 90%;
		max-height: 70px;
		display: inline;
	}
	.voletobject img:hover{
		-webkit-animation:spin 2s linear infinite;
	    -moz-animation:spin 2s linear infinite;
    	animation:spin 2s linear infinite;
	}
	@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
	@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
	@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }
	.voletobject p{
		margin-bottom: 20px;
	}
	.voletobject a{
		max-width: 100%;
		max-height: 30px;
		color: #2BABE2;
		display: inline;
	}
	#voletpages img, #voletcv img{
		max-width: 90%;
		max-height: 70px;

	}
	.voletobject > img , .voletobject > a{
		display: block;
		text-align: center;
		margin: auto;
	}
}

/* ** format PC ** */

@media (min-width: 751px) {
	.navbar-nav>li {
       float: none;
	}
	#Navigation > .col-xss-12{
		width: 16.666666666666664%!important;
	}
	#Navigation > .col-md-1{
		width: 16.666666666666664%!important;
	}
	#Navigation > .col-xss-8{
		width: 66.66666666666666%;
	}
	#Navigation > .col-sm-8 {
    width: 66.66666666666666%;
	}
	#Navigation > .col-md-8 {
    width: 66.66666666666666%;
	}
	.col-md-10 {
    	width: 66.66666666666666%;
	}
	
	.nav >li{
		display: inline;
	}
	.collapse {
    	display: block!important;
	}
	.navbar-nav {
    	margin: 0px 0px!important;
	}
	.navbar-header button{
		display: none;
	}
	#voletgauche{
		color: white;
		padding: 5px;
		min-height: 100%!important;
		padding: 0!important;
		margin-left: 8.3%;
    	margin-right: 8.3%;
	}
	.voletobject > img , .voletobject > a{
		display: block;
		text-align: center;
		margin: auto;
	}
	#voletpages img, #voletcv img{
		max-width: 90%;
		max-height: 70px;

	}
	#voletpages img:hover, #voletcv img:hover{
		-webkit-animation:spin 4s linear infinite;
	    -moz-animation:spin 4s linear infinite;
    	animation:spin 4s linear infinite;
	}
	@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
	@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
	@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }

	#voletpages p, {
		margin-top: 30px;
		margin-bottom: 10px;
	}
	#voletpages a, #voletcv a,{
		width: 100%;
		height: 30px;
		color: #2BABE2;
	}
	#voletcv p{
		text-align: center;
	}
	.navbar-collapse {
    	max-height: 100%;
	}
}

/* Pour tous le monde */

#centersection{
	/*background-color: rgba(0, 0, 0, 0.78);
	color: white;*/
	padding: 5px;
	margin: auto;
	color: black;
	/*border-top: 2px solid #29ABE2;*/

}
#centersectionportfolio{
	background-color: rgba(0, 0, 0, 0.78);
	color: white;
	padding: auto;
	margin: auto;
}
#centersectionportfolio:hover{
	border: 2px solid #29ABE2;
}
#centersection article{
	padding: 10px;
}
#centersection article img{
	max-height: 190px;
	max-width: 20%;
	float: left;
	margin-right: 10px;
	border: 1px solid #0C4C8A;
	box-shadow: 2px 2px 5px #0C4C8A;
}
#centersection article p{
	text-align: justify;
	max-width: 1000px;
	margin: auto;
}
.pagination{
	margin: auto;
}
#pagin{
	clear: both;
	width: 100%;
	text-align: center;
}
.titrevolet{
	text-align: center;
	color: white;
	font-size: 22px;
	border-bottom: 2px solid #29ABE2;
	margin-bottom: 10px;
	background: rgba(0, 0, 0, 0.78);
}
.block{
	margin-top: 10px;
	margin-bottom: 10px;
}
footer{
	min-height: 75px;
	border-top: 5px solid #0C4C8A;
	text-align: center;
	line-height: 5;
	color: black;
}
footer a{
		display: inline-block!important;
		text-align: center!important;
		color: #0C4C8A!important;
		text-decoration: none;
}
section, aside{
	margin-bottom: 10px!important;
	margin-top: 10px!important;
}
hr{
	clear: both;
	border:none;
	background: transparent;
	width: 100%;
}
.list_site{
	cursor: pointer;
	width: 48%;
    height: 200px;
	border: 5px solid #808080;
	margin: 10px;
	padding-left: 0px!important;
	display: block;
	text-align: center;
	background-color: rgba(0, 0, 0, 0.78);
	padding: 0px!important;

}
.list_site a{
	width: 237px;
	height: 147px;
}
.list_site a:hover {
    text-decoration: underline;
}
.list_site img {
	max-width: 100%;
	max-height: 100%;
}
.list_site span {
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9) none repeat scroll 0% 0%;
    border-radius: 3px;
    box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
    transition: all 0.25s ease 0s;
    opacity: 0;
    position: absolute;
    margin-left: -409px;
    transform: scale(0) rotate(-100deg);
    color: white;
    padding: 10px;
}
.list_site span:hover, .list_site a:hover + span, .list_site:hover span , a:focus + span{
opacity:1;
-webkit-transform:scale(1) rotate(0);
   -moz-transform:scale(1) rotate(0);
    -ms-transform:scale(1) rotate(0);
     -o-transform:scale(1) rotate(0);
        transform:scale(1) rotate(0);
}
.bg-gray {
    background: rgba(179, 179, 179, 0.14);
    padding: 20px;
    margin-bottom: -99999px;
    padding-bottom: 99999px;
}
#aqcuis{
    color: black;
    padding: 5px;
}
.aqcuis{
    color: black;
    padding: 5px;
}
.nav > li{
	text-align: center;
}
.img-responsive {
    display: block;
    margin: auto;
    max-width: 100%;
    height: auto;
    margin-top: 20px;
    margin-bottom: 20px;
}
.row{
	overflow: hidden;
	margin-left: 0px;
    margin-right: 0px;
}
#aqcuis .row {
    margin-left: -15px;
    margin-right: -15px;
    margin-top: 5px;
    margin-bottom: 5px;
    overflow: hidden;
}
.aqcuis .row {
    margin-left: -15px;
    margin-right: -15px;
    margin-top: 5px;
    margin-bottom: 5px;
    overflow: hidden;
}
th {
    color: #0C4C8A!important;
}
.text-right{
    max-width: 350px!important;
}
.nav-tabs>li.active>a, .nav-tabs>li.active>a:hover, .nav-tabs>li.active>a:focus {
    color: #fff;
    background-color: rgba(126, 126, 126, 0.78);
}
.nav-tabs a{
    color: #4299d8;
}
#contactbody{
	overflow: inherit;
}
#titremoncv{
	float: left;
	width: 30%;
	height: 35px;
	background: rgba(0, 0, 0, 0.78);
}
#titrepages{
	float: right;
	width: 70%;
	height: 35px;
	background: rgba(0, 0, 0, 0.78);
}
#voletpages{
	float: right;
	width: 70%;
	height: 100px;
	text-align: center;
}
#voletcv{
	height: 100px;
	float: right;
}
#titrepages, #titremoncv{
	text-align: center;
    font-size: 18px;
    line-height: 2;
}
#voletpages p{
	display: inline;
	padding: 55px;
}
section, footer{
	float: inherit!important;
	margin: auto!important;
}
.portfoliopage{
	display: -webkit-box;
	width: 83.3333%!important;
}
.portfoliopage article{
	background: rgba(0, 0, 0, 0.78);
	display: -webkit-box;
	color: white;
	width: 100%;
}
.portfoliopage article:nth-child(5n+3) .list_site {
	float: right;
}
.is-sticky{
	position: fixed!important
    top: 0;
    z-index: 9999;
    -moz-box-shadow: 0px 5px 5px 0px #cccccc;
    -webkit-box-shadow: 0px 5px 5px 0px #cccccc;
    -o-box-shadow: 0px 5px 5px 0px #cccccc;
    box-shadow: 0px 5px 5px 0px #cccccc;
    filter: progid:DXImageTransform.Microsoft.Shadow(color=#cccccc, Direction=180, Strength=5);
}
.scene{
  height: 200px;
  perspective: 600px;
  margin: 20px auto;
}
.flip{
  transform-style: preserve-3d;
  width: 100%!important;
}
.flip,
.flip > div{
  width: inherit;
  height: inherit;
  transition: transform 1s;
}
.flip > div{
  position: absolute;
  backface-visibility: hidden;
}
.avant{
	background: #ffffff;
    overflow: hidden;
}
.arriere{
  background: #0C4C8A;
  transform: rotateX(180deg);
  color: white;
}
.scene:hover .flip{
  transform: rotateX(180deg);
}
.aroundimg{
	border-radius: 50%;
	border: 3px solid #0C4C8A;
	height: 140px;
	margin-top: 20px;
}
.aroundimg:hover {
    -webkit-transform: scale(.95);
    -ms-transform: scale(.95);
    transform: scale(.95);
}
#pagespartages{
	text-align: center;
}
#pagespartages img{
	max-height: 50px;
	margin-left: 10px;
    margin-right: 10px;
}
.col_half{
	margin-top: 50px;
	text-align: left;
    margin: 50px;
}
.col_half .title-dotted-border{
    text-align: center;
    margin-top: -8px;
    background: #ffffff;
    display: table;
    margin-left: auto;
    margin-right: auto;
    padding-right: 10px;
    padding-left: 10px;
}
.col_half td, th {
    padding: 10px;
}
.col_half input, textarea {
    width: 100%;
    border: 2px solid rgba(12, 75, 137, 0.47);
}
button[type=submit]{
    background: #ffffff;
    color: #0c4b89;
    border: 1px solid #8caac7;
}
table {
    width: 100%!important;
}
.avant img{
    width: 100%;
}
blockquote {
    text-align: justify!important;
}
#navcenter{
	text-align: center;
}
nav img {
    vertical-align: baseline;
}
#navbar-right{
	float: right;
}
.navbar-brand {
	padding: 3px!important;
}
.navbar-brand img{
	max-height: 60px!important;
}
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus {
    background-color: #296198!important;
}
.navbar-nav>li>a { padding-bottom: 13px!important; }
.navbar-header button{
	margin-top: 20px;
    background: white;
}
#bs-example-navbar-collapse-1{
	background: rgba(12, 76, 138, 0.94);
	width: 100%;
}
.nav-pills>li>a {
    border-radius: 0px!important;
}
.nav-tabs>li>a {
    border-radius: 0px 0px 0 0!important;
}
.img-responsive.img-thumbnail:hover {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
}
.img-responsive.img-thumbnail {
    -webkit-transition: -webkit-transform .9s;
    -moz-transition: -moz-transform .9s;
    -o-transition: -o-transform .9s;
    -ms-transition: -ms-transform .9s;
    transition: transform .9s;
}
#portfolio > h2{
	text-align: left!important;
	margin-top: 20px;
	margin-bottom: 20px;
	margin-left: 10px;
}
.arriere1{
	height: 150px;
	padding: 10px!important;
	border-bottom: 1px solid white;
	overflow: hidden;
	text-overflow: ellipsis;
}
.arriere1 P{
	overflow: hidden;
	text-overflow: ellipsis;
}
.arriere2{
	height: 50px;
	padding-left: 20px;
}
.arriere1 h3{
	color: white;
}
#portfolio #option{
	margin-left: 20px;
}
#portfolio #option select{
    background: #0c4b89;
    color: white;
    height: 25px;
}
#portfolio h3 {
    padding-bottom: 0px!important;
    margin-bottom: 0px!important;
    margin-top: 15px;
    margin-bottom: 10px!important;
}

/* =====================================================================
   Compatibilité mobile (10/10/2026) — sans refonte visuelle.
   Copie d'origine : style.css.avant-mobile
   ===================================================================== */
img, iframe, video, embed, object { max-width: 100%; height: auto; }
.km-missions { margin: 6px 0 0; padding-left: 18px; }
.km-article-texte p { margin: 0 0 10px; }

@media (max-width: 767px) {
	html, body { max-width: 100%; }
	body { font-size: 16px; line-height: 1.5; }
	/* Longs mots, adresses et étiquettes : retour à la ligne au lieu de déborder */
	body, h1, h2, h3, h4, h5, h6, p, td, th, li, a, span, small, label { overflow-wrap: anywhere; word-break: normal; }
	.row { margin-left: 0; margin-right: 0; }
	.container { width: 100%; max-width: 100%; padding-left: 10px; padding-right: 10px; }
	[class*="col-"] { max-width: 100%; }

	/* Menu : burger Bootstrap utilisable au doigt */
	#Navigation { width: 100%; max-width: 100%; margin: 0; }
	#Navigation .navbar-header { width: 100%; max-width: 100%; float: none; padding-left: 0; padding-right: 0; }
	#Navigation .navbar-toggle { min-width: 44px; min-height: 44px; margin-right: 0; }
	#Navigation .navbar-collapse { width: 100%; max-width: 100%; padding-left: 0; padding-right: 0; }
	#Navigation #navcenter { width: 100%; float: none; margin: 0; }
	#Navigation #navcenter > li > a { display: block; min-height: 44px; min-width: 44px; padding: 6px 10px; text-align: center; }
	#Navigation .navbar-brand { min-height: 44px; }

	/* Page CV : blocs empilés, tableaux en une colonne */
	.km-cv-table, .km-cv-table tbody, .km-cv-table tr, .km-cv-table td, .km-cv-table th { display: block; width: 100%; }
	.km-cv-table td:first-child { font-weight: bold; padding-bottom: 0; border-top-width: 1px; }
	.km-cv-table td + td { border-top: 0; padding-top: 2px; }
	.km-cv-projets td.text-right { text-align: left; }
	.label { white-space: normal; display: inline-block; max-width: 100%; margin: 2px 0; text-align: left; }
	.panel { max-width: 100%; }
	.panel .table td a { display: inline-block; min-height: 44px; line-height: 44px; }

	/* Contact : formulaire et blocs empilés */
	.km-formulaire, .km-formulaire tbody, .km-formulaire tr, .km-formulaire td { display: block; width: 100%; }
	.km-formulaire td[colspan="5"]:empty { display: none; }
	.km-formulaire input, .km-formulaire textarea, .km-formulaire button { width: 100%; max-width: 100%; min-height: 44px; font-size: 16px; box-sizing: border-box; }
	#contactbody .km-contact-bloc { width: 100% !important; margin-left: 0 !important; float: none; }
	#contactbody a { display: inline-block; min-height: 44px; line-height: 44px; }
	#table-infos { display: table; width: 100%; }

	/* Portfolio : sélecteur, cartes et images fluides */
	#option select, #option button { min-height: 44px; font-size: 16px; max-width: 100%; }
	#portfolio .scene { width: 100%; max-width: 100%; float: none; }
	#portfolio .flip, #portfolio .avant, #portfolio .arriere { max-width: 100%; }
	#portfolio .avant img { width: 100%; height: auto; }
	#portfolio .arriere1 a { display: inline-block; min-height: 44px; }

	/* Article : titre lisible sans débordement */
	.km-article-titre { font-size: 26px !important; margin-top: 15px !important; }
	.post-content p a, .km-article-texte a { overflow-wrap: anywhere; }

	/* Pied de page */
	footer { width: 100%; max-width: 100%; float: none; }
	footer a { display: inline-block; min-height: 44px; min-width: 44px; line-height: 44px; }
	#pagespartages img { max-width: 44px; }
}

/* Galerie des fiches du portfolio et statut des projets (10/10/2026) */
.km-statut { display: inline-block; margin: 4px 0 10px; padding: 3px 10px; border-radius: 12px; background: #1e7b3c; color: #fff; font-size: 14px; }
.km-statut-prototype { background: #8a5a00; }
.km-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin: 20px 0; clear: both; }
.km-galerie-item { margin: 0; }
.km-galerie-item a { display: block; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 4px rgba(0, 0, 0, .25); }
.km-galerie-item img { display: block; width: 100%; height: 160px; object-fit: cover; object-position: top center; }
.km-galerie-item figcaption { font-size: 14px; margin-top: 6px; color: #333; }
.km-visionneuse { position: fixed; inset: 0; z-index: 2000; background: rgba(0, 0, 0, .9); display: flex; align-items: center; justify-content: center; padding: 50px 56px; }
.km-visionneuse[hidden] { display: none; }
.km-visionneuse figure { margin: 0; max-width: 100%; max-height: 100%; text-align: center; }
.km-visionneuse img { max-width: 100%; max-height: calc(100vh - 130px); width: auto; height: auto; object-fit: contain; }
.km-visionneuse figcaption { color: #fff; margin-top: 10px; font-size: 16px; }
.km-visionneuse button { position: absolute; background: rgba(255, 255, 255, .15); color: #fff; border: 0; min-width: 44px; min-height: 44px; font-size: 30px; line-height: 1; border-radius: 22px; cursor: pointer; }
.km-v-fermer { top: 10px; right: 10px; }
.km-v-prec { left: 6px; top: 50%; transform: translateY(-50%); }
.km-v-suiv { right: 6px; top: 50%; transform: translateY(-50%); }
.km-lien-fiche { white-space: nowrap; }
@media (max-width: 767px) {
	.km-galerie { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.km-galerie-item img { height: 120px; }
	.km-visionneuse { padding: 56px 8px; }
	.km-v-prec, .km-v-suiv { top: auto; bottom: 8px; transform: none; }
}

/* Accueil : photo, encart « Recherche », boutons d'appel (10/10/2026) */
.km-accueil .km-photo { float: right; width: 160px; height: 160px; border-radius: 50%; object-fit: cover; margin: 0 0 15px 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); }
.km-recherche { clear: both; background: #e8f3ec; border-left: 5px solid #1e7b3c; color: #14532d; padding: 10px 14px; margin: 10px 0 18px; font-size: 17px; line-height: 1.45; border-radius: 4px; }
.km-recherche-cv { margin-top: 0; }
.km-boutons { margin: 20px 0 10px; }
.km-bouton { display: inline-block; min-height: 44px; line-height: 24px; padding: 10px 18px; margin: 0 10px 10px 0; background: #0C4C8A; color: #fff !important; border-radius: 22px; font-weight: bold; text-decoration: none !important; }
.km-bouton-secondaire { background: #fff; color: #0C4C8A !important; border: 2px solid #0C4C8A; }
.km-lien-texte { display: inline-block; padding: 0 6px; font-weight: bold; }
@media (max-width: 767px) {
	.km-accueil .km-photo { float: none; display: block; margin: 0 auto 15px; width: 140px; height: 140px; }
	.km-bouton { display: block; text-align: center; margin-right: 0; }
}

/* Titres de page (h1) ajoutés pour le référencement et l'accessibilité (10/10/2026) */
.km-h1 { font-size: 26px; margin: 10px 0 18px; color: #0C4C8A; text-transform: none; line-height: 1.25; }
#a-propos h1 { font-size: 30px; color: #0C4C8A; text-transform: none; }
#a-propos h2 { font-size: 22px; margin: 22px 0 10px; color: #0C4C8A; text-transform: none; }
#a-propos p { font-size: 17px; line-height: 1.6; max-width: 70ch; }

/* Recette multi-tailles (10/10/2026) : image principale des fiches et longueur des lignes */
#portfolio .col-sm-4 > img { padding: 0; height: auto; object-fit: contain; }
.km-article-texte p, .km-article-texte h2, #portfolio .col-sm-12 > p { max-width: 75ch; }

/* Grand écran : contenu centré, largeur maximale (10/10/2026) */
.km-main { display: block; }
.km-main::after { content: ""; display: table; clear: both; }
@media (min-width: 1440px) {
	.km-main { max-width: 1400px; margin-left: auto; margin-right: auto; }
	footer { float: none; max-width: 1400px; margin-left: auto; margin-right: auto; }
}

/* Titres h1 ajoutés : police complète (la police « Hacked » de cv2.css n'a pas les lettres accentuées) */
.km-h1, .km-article-titre, #a-propos h1, #a-propos h2 { font-family: "Times New Roman", Times, serif; }
@media (max-width: 420px) {
	article h1 { font-size: 36px !important; margin-top: 20px; }
	h1, h2 { overflow-wrap: break-word; }
}

/* Photo de l'accueil : la règle d'origine « #centersection article img » (20 %, flottant à gauche) ne s'applique pas */
#centersection article img.km-photo { float: right; max-width: none; max-height: none; width: 160px; height: 160px; border-radius: 50%; object-fit: cover; margin: 45px 0 15px 20px; border: 0; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); }
@media (max-width: 767px) {
	#centersection article img.km-photo { float: none; display: block; margin: 50px auto 10px; width: 140px; height: 140px; }
}
@media (max-width: 420px) {
	article h1 { margin-top: 10px; }
}

/* Le menu fixe mesure 75 px (marge haute du corps : 39 px) : le contenu commence sous le menu */
.km-main { padding-top: 40px; }
#centersection article img.km-photo { margin-top: 0; }
@media (max-width: 767px) {
	#centersection article img.km-photo { margin-top: 0; }
}
@media (max-width: 767px) {
	#Navigation { margin-top: -41px; }
}
/* Accueil sur mobile : pleine largeur et texte aligné à gauche (sans photo, 10/10/2026) */
@media (max-width: 767px) {
	.km-accueil { padding: 10px 0 !important; }
	.row > section.col-xs-10 { width: 100%; }
	#centersection article p { text-align: left; }
}

/* Page contact refaite (10/10/2026) */
.km-contact { max-width: 1100px; margin: 0 auto; padding: 0 15px 20px; }
.km-contact h2 { font-size: 22px; color: #0C4C8A; margin: 10px 0 14px; text-transform: none; font-family: "Times New Roman", Times, serif; }
.km-coordonnees { margin: 0 0 24px; }
.km-coordonnees dt { font-size: 14px; color: #555; font-weight: normal; margin-top: 10px; }
.km-coordonnees dd { font-size: 18px; margin: 2px 0 0; }
.km-coordonnees dd a { display: inline-block; min-height: 44px; line-height: 44px; }
.km-distance img { vertical-align: middle; margin-right: 8px; }
.km-distance a { display: inline-block; min-height: 44px; line-height: 44px; }
.km-formulaire-contact { display: flex; flex-wrap: wrap; gap: 12px 16px; }
.km-champ { flex: 1 1 100%; display: flex; flex-direction: column; }
.km-champ-demi { flex: 1 1 calc(50% - 8px); min-width: 220px; }
.km-champ label { font-weight: bold; margin-bottom: 4px; }
.km-champ input, .km-champ textarea { width: 100%; box-sizing: border-box; min-height: 44px; padding: 8px 10px; font-size: 16px; border: 1px solid #8aa4c8; border-radius: 4px; }
.km-champ textarea { min-height: 150px; resize: vertical; }
.km-note-envoi { flex: 1 1 100%; font-size: 14px; color: #555; margin: 0; }
.km-formulaire-contact .km-bouton { border: 0; cursor: pointer; }
.km-message-envoi { background: #fff7e6; border-left: 5px solid #b26a00; padding: 12px 14px; margin: 0 0 16px; border-radius: 4px; }
@media (max-width: 767px) {
	.km-contact-form { margin-top: 10px; }
	.km-champ-demi { flex-basis: 100%; }
}

/* Adresses (GitHub, e-mail) : pas de majuscule forcée par la règle d'origine « *:first-letter » */
a[href*="github.com"]::first-letter, a[href^="mailto:"]::first-letter, a[href^="tel:"]::first-letter, .km-coordonnees dd::first-letter { text-transform: none; }
/* Ancres : jamais cachées sous le menu fixe */
[id] { scroll-margin-top: 90px; }
/* Contact : bouton d'envoi visible (la règle d'origine button[type=submit] le rendait blanc sur blanc), alignements */
.km-formulaire-contact button[type=submit].km-bouton { background: #0C4C8A; color: #fff !important; border: 0; padding: 10px 26px; }
.km-contact h2 { text-align: left; }
.km-coordonnees dd { min-height: 44px; line-height: 44px; }

/* Portfolio : cartes régulières (image 16:10, titre et statut toujours visibles), remplacent les cartes à retournement */
.km-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; margin: 10px 0 30px; clear: both; }
.km-carte { margin: 0; background: #fff; border: 1px solid #d5dfeb; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 4px rgba(12, 76, 138, .12); display: flex; }
.km-carte > a { display: flex; flex-direction: column; width: 100%; color: inherit; text-decoration: none; }
.km-carte > a:hover, .km-carte > a:focus { text-decoration: none; }
.km-carte > a:hover .km-carte-titre, .km-carte > a:focus .km-carte-titre { text-decoration: underline; }
.km-carte-img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #eef3f8; }
.km-carte-img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.km-carte-texte { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 14px 14px; flex: 1; }
.km-carte-titre { font-size: 17px; font-weight: bold; color: #0C4C8A; line-height: 1.35; overflow-wrap: break-word; }
.km-carte .km-statut { margin: 0; font-size: 13px; }
.km-statut-en-ligne { background: #1e7b3c; }
.km-statut-prototype-de-travail, .km-statut-prototype { background: #8a5a00; }
.km-statut-open-source { background: #5b3fa0; }
#portfolio #option select, #portfolio #option button { min-height: 44px; font-size: 16px; padding: 0 10px; }
@media (max-width: 767px) {
	.km-grille { grid-template-columns: 1fr; gap: 16px; }
}
.km-carte-img { background: #f3f6fa; }
.km-carte-img img { object-fit: contain; object-position: center; }
.km-carte-texte, .km-carte-titre { text-align: left; }
.km-carte-titre::first-letter { text-transform: none; }

/* Page CV, bloc « Qui suis-je ? » (retours de Kévin sur téléphone, 10/10/2026) */
#me .km-cv-nom { text-transform: none; font-size: 26px; margin: 12px 0 6px; }
#me .km-cv-titre { font-size: 17px; font-weight: bold; color: #0C4C8A; margin: 0 0 4px; }
#me .km-cv-devise { font-size: 14px; color: #555; margin: 0 0 12px; }
.km-cv-coord { list-style: none; padding: 0; margin: 0 auto 14px; display: inline-block; text-align: left; }
.km-cv-coord li { font-size: 16px; color: #222; min-height: 32px; line-height: 32px; }
.km-cv-coord li .fa { width: 22px; text-align: center; color: #0C4C8A; }
.km-cv-coord a { display: inline-block; min-height: 44px; line-height: 44px; }
.km-cv-coord a::first-letter, .km-cv-table a::first-letter { text-transform: none; }
.km-bouton-cv { font-size: 16px; }
/* Étiquettes (hashtags) des projets : retour à la ligne, taille lisible */
.km-cv-projets td.text-right .label { font-size: 12.5px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; display: inline-block; max-width: 100%; margin: 2px 0; }
@media (max-width: 767px) {
	.km-cv-projets td.text-right { display: flex !important; flex-wrap: wrap; gap: 6px; justify-content: flex-start; }
	.km-cv-projets td.text-right .label { margin: 0; font-size: 13px; }
}

/* En-tête mobile (11/10/2026) : logo à gauche, bouton du menu à droite, centré, contrasté, 48 px ; menu pleine largeur */
@media (max-width: 767px) {
	#Navigation { overflow: visible; }
	#Navigation .navbar-header { display: flex; align-items: center; justify-content: space-between; height: 75px; margin: 0; padding: 0 12px !important; float: none; width: 100%; box-sizing: border-box; }
	#Navigation .navbar-header::before, #Navigation .navbar-header::after { display: none; }
	#Navigation .navbar-brand { float: none; height: auto; padding: 0; margin: 0 !important; display: flex; align-items: center; }
	#Navigation .navbar-brand img { max-height: 60px; width: auto; }
	#Navigation .navbar-toggle { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; float: none; position: static; margin: 0 !important; padding: 0; width: 48px; height: 48px; min-width: 48px; background: #fff; border: 2px solid #fff; border-radius: 8px; cursor: pointer; }
	#Navigation .navbar-toggle .icon-bar { display: block; width: 26px; height: 3px; margin: 0 !important; border-radius: 2px; background: #0C4C8A; }
	#Navigation .navbar-toggle:hover, #Navigation .navbar-toggle:focus { background: #e8f0fa; }
	#Navigation .navbar-toggle:focus-visible { outline: 3px solid #ffcc00; outline-offset: 2px; }
	#Navigation .navbar-collapse { position: absolute; top: 75px; left: 0; right: 0; width: 100%; background: #0C4C8A; border-top: 1px solid rgba(255, 255, 255, .25); box-shadow: 0 6px 12px rgba(0, 0, 0, .25); margin: 0; padding: 6px 0 !important; max-height: none; }
	#Navigation .navbar-collapse.collapse:not(.in) { display: none !important; }
	#Navigation #navcenter { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 0; padding: 0; width: 100%; }
	#Navigation #navcenter > li { float: none; }
	#Navigation #navcenter > li > a { display: flex; align-items: center; justify-content: center; min-width: 64px; min-height: 56px; padding: 6px 12px; }
}
@media (max-width: 767px) {
	/* Ordre d'origine : logo à gauche, bouton du menu à droite (le bouton précède le logo dans le HTML) */
	#Navigation .navbar-brand { order: 1; }
	#Navigation .navbar-toggle { order: 2; }
	#Navigation .navbar-collapse { left: 0; right: 0; width: 100vw; max-width: 100vw; box-sizing: border-box; }
}
@media (max-width: 767px) {
	#Navigation { border-left: 0; border-right: 0; left: 0; }
}
/* Bouton « Voir la sauvegarde figée » */
.km-archive { margin: 14px 0 18px; }
.km-archive small { display: inline-block; margin-top: 6px; color: #7a1f1f; }

/* Disponibilité des sites (sonde, 11/10/2026) : pastille, boutons de la fiche et des cartes */
.km-pastille { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 8px; padding: 2px 10px; border-radius: 12px; font-size: 13px; font-weight: bold; line-height: 1.6; }
.km-pastille::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.km-pastille-en-ligne { background: #e3f4e8; color: #1b6b34; }
.km-pastille-archive { background: #eceff3; color: #4a5563; }
.km-acces-site { margin: 14px 0 18px; }
.km-acces-site .km-boutons { margin: 4px 0 6px; }
.km-bouton-principal { font-size: 17px; padding: 12px 22px; }
.km-acces-note { color: #4a5563; font-size: 14px; margin: 0; }
.km-carte { flex-direction: column; }
.km-carte-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 14px 14px; }
.km-carte-actions .km-pastille { margin: 0; }
.km-carte-lien { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 22px; background: #0C4C8A; color: #fff !important; font-weight: bold; font-size: 14px; text-decoration: none; }
.km-carte-lien:hover, .km-carte-lien:focus { background: #093a6a; text-decoration: none; }
.km-carte-lien:focus-visible { outline: 3px solid #f0a500; outline-offset: 2px; }
.km-carte-lien-secondaire { background: #fff; color: #0C4C8A !important; border: 2px solid #0C4C8A; }
.km-carte-lien-secondaire:hover, .km-carte-lien-secondaire:focus { background: #eef3f8; }

/* Qualité (11/10/2026) : lien d'évitement, titres du CV, focus visible, mouvement réduit */
.km-evitement { position: absolute; left: 8px; top: -80px; min-height: 44px; z-index: 10000; padding: 10px 16px; background: #0C4C8A; color: #fff !important; border-radius: 0 0 8px 8px; font-weight: bold; text-decoration: none; }
.km-evitement:focus { top: 0; outline: 3px solid #f0a500; }
h2.km-panel-titre { margin: 0; font-size: 16px; line-height: 1.1; font-weight: 500; }
#me p.km-cv-nom { font-weight: 500; line-height: 1.1; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid #f0a500; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
/* Images avec width/height (anti-CLS) : la taille affichée reste réglée par max-height */
#pagespartages img, #Navigation img, .navbar-brand img { width: auto; height: auto; }
/* Accueil : espace sous l encart « Recherche » ; galerie : logo SVG clair sur fond sombre */
.km-accueil .km-recherche { margin-bottom: 16px; }
.km-galerie-item img[src$=".svg"] { background: #14122b; object-fit: contain; padding: 8px; }

/* En-tête et barre de navigation flottante (11/10/2026) : plus de menu burger.
   Ordinateur (> 1024 px) : navigation en haut (icône + libellé), « Appeler » et « Télécharger le CV » dans l'en-tête.
   Jusqu'à 1024 px : en-tête = logo seul ; navigation dans une barre fixe en bas d'écran (cibles >= 48 px, zone sûre iOS). */
#Navigation.km-entete { display: flex; align-items: center; justify-content: space-between; gap: 16px; left: 0; right: 0; padding: 0 16px !important; box-sizing: border-box; overflow: visible; }
#Navigation .km-logo { display: flex; align-items: center; line-height: 0; margin: 0; flex: 0 0 auto; }
#Navigation .km-logo img { max-height: 60px !important; width: auto; height: auto; }
#Navigation .km-nav-haut { flex: 1 1 auto; display: flex; justify-content: center; }
#Navigation .km-nav-haut ul { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
#Navigation .km-nav-haut a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 76px; min-height: 66px; margin: 0; padding: 5px 10px; line-height: 1.15; color: #fff !important; text-decoration: none; border-radius: 8px; }
#Navigation .km-nav-haut a img { max-height: 34px !important; width: auto; height: auto; }
#Navigation .km-nav-haut a span { font-size: 13px; font-weight: 600; }
#Navigation .km-nav-haut a.km-actif { background: #296198; }
#Navigation .km-nav-haut a:hover, #Navigation .km-nav-haut a:focus { background: #1f5d99; text-decoration: none; }
#Navigation .km-entete-actions { display: flex; gap: 10px; align-items: center; flex: 0 0 auto; }
#Navigation .km-entete-actions a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 0 16px; border-radius: 22px; font-size: 15px; font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap; }
#Navigation .km-entete-actions .km-entete-appeler { background: #f0a500; color: #10233a !important; }
#Navigation .km-entete-actions .km-entete-cv { background: #fff; color: #0C4C8A !important; }
#Navigation .km-entete-actions a:hover, #Navigation .km-entete-actions a:focus { filter: brightness(1.08); text-decoration: none; }
#Navigation a:focus-visible, .km-barre a:focus-visible, .km-barre summary:focus-visible { outline: 3px solid #ffcc00; outline-offset: 2px; }
.km-barre { display: none; }
@media (max-width: 1024px) {
	#Navigation .km-nav-haut, #Navigation .km-entete-actions { display: none !important; }
	#Navigation.km-entete { justify-content: flex-start; }
	body { padding-bottom: calc(84px + env(safe-area-inset-bottom)) !important; }
	.km-barre { display: block; position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); z-index: 1000; background: #0C4C8A; border-radius: 18px; box-shadow: 0 6px 22px rgba(0, 0, 0, .32); padding: 4px; }
	.km-barre > ul { display: flex; align-items: stretch; width: 100%; margin: 0; padding: 0; list-style: none; }
	.km-barre > ul > li { flex: 1 1 0; min-width: 0; position: static; }
	.km-barre > ul > li > a, .km-barre summary { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 60px; height: 100%; margin: 0; padding: 4px 2px; color: #fff !important; font-size: 12px; font-weight: 600; line-height: 1.15; text-align: center; text-decoration: none; border-radius: 14px; cursor: pointer; list-style: none; box-sizing: border-box; }
	.km-barre summary::-webkit-details-marker { display: none; }
	.km-barre summary::marker { content: ""; }
	.km-barre .fa { font-size: 21px; line-height: 1; }
	.km-barre > ul > li > a span, .km-barre summary span { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.km-barre > ul > li > a.km-actif, .km-barre summary.km-actif, .km-barre details[open] summary { background: #2b6aa6; box-shadow: inset 0 -3px 0 #ffcc00; }
	.km-barre > ul > li > a:hover, .km-barre summary:hover { background: #1f5d99; text-decoration: none; }
	.km-barre .km-barre-appeler a { background: #f0a500; color: #10233a !important; margin: 0 2px; }
	.km-barre .km-barre-appeler a:hover, .km-barre .km-barre-appeler a:focus { background: #ffb81a; color: #10233a !important; }
	.km-barre .km-barre-appeler .fa { font-size: 23px; }
	.km-barre details { height: 100%; }
	.km-barre .km-feuille { position: absolute; right: 4px; bottom: calc(100% + 8px); min-width: 220px; margin: 0; padding: 6px; list-style: none; background: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, .3); }
	.km-barre .km-feuille a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 14px; color: #0C4C8A !important; font-size: 16px; font-weight: 600; text-decoration: none; border-radius: 10px; }
	.km-barre .km-feuille a:hover, .km-barre .km-feuille a:focus, .km-barre .km-feuille a.km-actif { background: #eef3f8; }
	.km-barre .km-feuille .fa { width: 22px; font-size: 18px; text-align: center; }
}
@media (max-width: 360px) {
	.km-barre { left: 4px; right: 4px; padding: 2px; border-radius: 16px; }
	.km-barre .km-barre-appeler a { margin: 0; }
	.km-barre > ul > li > a, .km-barre summary { font-size: 11px; padding: 4px 1px; }
	.km-barre .fa { font-size: 19px; }
}
@media (min-width: 600px) and (max-width: 1024px) {
	.km-barre { left: 50%; right: auto; transform: translateX(-50%); width: min(560px, calc(100% - 16px)); }
}
@media print {
	.km-barre, #Navigation .km-entete-actions { display: none !important; }
}

/* Menus « Type de CV » (11/10/2026) : page CV, en-tête ordinateur, barre flottante */
.km-cv-type { margin: 12px 0 4px; }
.km-cv-type label { display: block; font-weight: 700; margin: 0 0 4px; color: #0C4C8A; }
.km-cv-type select { display: block; width: 100%; max-width: 420px; min-height: 44px; padding: 6px 10px; font-size: 16px; border: 2px solid #0C4C8A; border-radius: 8px; background: #fff; color: #10233a; }
.km-cv-type-boutons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.km-cv-type-boutons .km-bouton { margin: 0; border: 0; cursor: pointer; }
.km-cv-type-boutons .km-bouton-secondaire { border: 2px solid #0C4C8A; }
.km-feuille-titre { margin: 4px 10px 6px; font-size: 13px; font-weight: 700; color: #4a5563 !important; text-transform: uppercase; letter-spacing: .03em; }
.km-feuille-liste { list-style: none; margin: 0; padding: 0; }
.km-feuille-liste small { font-weight: 400; color: #4a5563; }
#Navigation .km-entete-cv-menu { position: relative; }
#Navigation .km-entete-cv-menu summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 22px; font-size: 15px; font-weight: 700; line-height: 1; white-space: nowrap; background: #fff; color: #0C4C8A !important; cursor: pointer; list-style: none; }
#Navigation .km-entete-cv-menu summary::-webkit-details-marker { display: none; }
#Navigation .km-entete-cv-menu summary::marker { content: ""; }
#Navigation .km-entete-cv-menu .km-feuille { position: absolute; right: 0; top: calc(100% + 8px); z-index: 1100; min-width: 300px; padding: 6px; background: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, .3); }
#Navigation .km-entete-cv-menu .km-feuille a { display: flex; align-items: center; gap: 10px; min-height: 44px; min-width: 0; padding: 0 12px; margin: 0; border-radius: 10px; color: #0C4C8A !important; font-size: 15px; font-weight: 600; line-height: 1.25; white-space: normal; text-decoration: none; background: transparent; }
#Navigation .km-entete-cv-menu .km-feuille a:hover, #Navigation .km-entete-cv-menu .km-feuille a:focus { background: #eef3f8; }
@media (max-width: 1024px) {
	.km-barre .km-feuille-cv { position: absolute; right: 4px; bottom: calc(100% + 8px); width: min(320px, calc(100vw - 24px)); padding: 6px; background: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, .3); }
	.km-barre .km-feuille-cv a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 4px 14px; color: #0C4C8A !important; font-size: 15px; font-weight: 600; line-height: 1.25; text-decoration: none; border-radius: 10px; }
	.km-barre .km-feuille-cv a:hover, .km-barre .km-feuille-cv a:focus { background: #eef3f8; }
	.km-barre .km-feuille-cv .fa { width: 22px; font-size: 18px; text-align: center; }
	.km-barre .km-barre-cv details[open] summary { background: #2b6aa6; box-shadow: inset 0 -3px 0 #ffcc00; }
}
.km-cv-type-boutons .km-bouton-cv { background: #0C4C8A !important; color: #fff !important; }
.km-cv-type-boutons .km-bouton-secondaire { background: #fff !important; color: #0C4C8A !important; }

/* Pied de page : profils (11/10/2026) — icônes de même taille et même style, zone cliquable de 48 px */
#pagespartages.km-reseaux { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin: 10px 0; }
#pagespartages .km-reseau, footer #pagespartages a.km-reseau { display: inline-flex !important; align-items: center; justify-content: center; width: 48px; height: 48px; margin: 0; border-radius: 50%; background: #0C4C8A; color: #fff !important; line-height: 1; text-decoration: none; transition: background .15s; }
#pagespartages .km-reseau:hover, #pagespartages .km-reseau:focus { background: #093a6a; }
#pagespartages .km-reseau:focus-visible { outline: 3px solid #f0a500; outline-offset: 3px; }
#pagespartages .km-reseau .fa { font-size: 24px; width: 24px; text-align: center; }
#pagespartages .km-reseau svg { width: 22px; height: 22px; display: block; }
#pagespartages .km-reseau img { max-width: 24px; max-height: 24px; margin: 0; }

/* Accueil (11/10/2026) : espace entre l'encart « Recherche » et le texte qui suit (24 px ordinateur, 18 px mobile) */
#centersection article.km-accueil p.km-recherche { margin-bottom: 24px !important; }
@media (max-width: 767px) {
	#centersection article.km-accueil p.km-recherche { margin-bottom: 18px !important; }
}

/* Feuille « Choisir un modèle de CV » (11/10/2026) : monte du bas au-dessus de la barre flottante ; menu sous l'en-tête sur ordinateur */
.km-cv-voile { position: fixed; inset: 0; z-index: 1190; background: rgba(16, 35, 58, .45); }
.km-cv-feuille { position: fixed; z-index: 1200; left: 8px; right: 8px; bottom: calc(84px + env(safe-area-inset-bottom)); max-height: calc(100vh - 110px); overflow-y: auto; overscroll-behavior: contain; background: #fff; color: #10233a; border-radius: 18px; box-shadow: 0 -6px 28px rgba(0, 0, 0, .3); padding: 6px 12px 12px; transition: transform .15s ease-out; }
.km-cv-feuille[hidden], .km-cv-voile[hidden] { display: none !important; }
.km-cv-poignee { width: 44px; height: 5px; border-radius: 3px; background: #c3cfdc; margin: 4px auto 6px; }
.km-cv-tete { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 4px; }
.km-cv-titre { margin: 0; font: 700 17px/1.3 Arial, sans-serif; color: #0C4C8A; }
.km-cv-fermer { min-height: 44px; min-width: 44px; padding: 0 14px; border: 2px solid #0C4C8A; border-radius: 22px; background: #fff; color: #0C4C8A; font: 700 15px Arial, sans-serif; cursor: pointer; }
.km-cv-liste { list-style: none; margin: 0; padding: 0; }
.km-cv-ligne { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 6px; border-bottom: 1px solid #e3eaf2; }
.km-cv-ligne:last-child { border-bottom: 0; }
.km-cv-defaut { background: #eef4fb; border-left: 4px solid #f0a500; border-radius: 10px; padding-left: 8px; }
.km-cv-icone { flex: 0 0 28px; font-size: 22px !important; color: #0C4C8A; text-align: center; }
.km-cv-texte { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; font-family: Arial, sans-serif; }
.km-cv-texte strong { font-size: 15px; line-height: 1.3; color: #10233a; }
.km-cv-texte small { font-size: 13px; line-height: 1.3; color: #4a5563; }
.km-cv-badge { display: inline-block; margin-left: 4px; padding: 0 7px; border-radius: 9px; background: #f0a500; color: #10233a; font-size: 11px; font-weight: 700; vertical-align: 1px; }
.km-cv-actions { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.km-cv-feuille a.km-cv-telecharger { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border-radius: 22px; background: #0C4C8A; color: #fff !important; font: 700 14px Arial, sans-serif; text-decoration: none; white-space: nowrap; }
.km-cv-feuille a.km-cv-apercu { display: inline-flex; align-items: center; min-height: 32px; padding: 0 6px; color: #0C4C8A !important; font: 600 13px Arial, sans-serif; text-decoration: underline; }
.km-cv-feuille a:focus-visible, .km-cv-fermer:focus-visible { outline: 3px solid #f0a500; outline-offset: 2px; }
body.km-cv-ouverte { overflow: hidden; }
@media (max-width: 380px) {
	.km-cv-ligne { gap: 8px; }
	.km-cv-feuille a.km-cv-telecharger { padding: 0 10px; font-size: 13px; }
	.km-cv-icone { flex-basis: 22px; font-size: 19px !important; }
}
@media (min-width: 1025px) {
	.km-cv-voile { background: rgba(16, 35, 58, .2); }
	.km-cv-feuille { left: auto; right: 16px; bottom: auto; top: 80px; width: 460px; max-height: calc(100vh - 100px); border-radius: 14px; box-shadow: 0 10px 30px rgba(0, 0, 0, .3); }
	.km-cv-poignee { display: none; }
}
@media print { .km-cv-feuille, .km-cv-voile { display: none !important; } }

/* PDF des projets (11/10/2026) : boutons sur la fiche, icône sur la carte, visionneuse intégrée (JS/km-visionneuse-pdf.mjs) */
.km-pdf-projet { margin: 18px 0 8px; clear: both; }
.km-pdf-nom { margin: 0 0 6px; }
.km-pdf-nom .fa { color: #a12020; }
.km-pdf-taille { font-weight: normal; }
.km-carte-pdf { color: #a12020; font-size: 15px; margin-left: 4px; }
.km-pdf-vue { position: fixed; inset: 0; z-index: 1300; display: flex; flex-direction: column; background: rgba(16, 35, 58, .96); }
.km-pdf-vue[hidden] { display: none !important; }
.km-pdf-barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; padding: 8px 10px calc(8px); background: #0C4C8A; color: #fff; font-family: Arial, sans-serif; }
.km-pdf-titre { margin: 0; font-weight: 700; font-size: 15px; flex: 1 1 200px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.km-pdf-outils { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.km-pdf-outils button, .km-pdf-outils a { min-height: 44px; min-width: 44px; padding: 0 12px; border: 2px solid #fff; border-radius: 22px; background: transparent; color: #fff !important; font: 700 15px Arial, sans-serif; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.km-pdf-outils .km-pdf-fermer { background: #fff; color: #0C4C8A !important; }
.km-pdf-outils button:focus-visible, .km-pdf-outils a:focus-visible, .km-pdf-pages:focus-visible { outline: 3px solid #f0a500; outline-offset: 2px; }
.km-pdf-zoom, .km-pdf-page { font-size: 14px; min-width: 52px; text-align: center; }
.km-pdf-pages { flex: 1 1 auto; overflow: auto; -webkit-overflow-scrolling: touch; padding: 8px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.km-pdf-feuille { background: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, .4); flex: 0 0 auto; max-width: none; }
.km-pdf-feuille canvas { display: block; }
.km-pdf-etat { color: #fff; margin: 40px 0; }
body.km-pdf-ouverte { overflow: hidden; }
@media (min-width: 1025px) {
	.km-pdf-vue { inset: 24px; border-radius: 12px; overflow: hidden; box-shadow: 0 10px 40px rgba(0, 0, 0, .5); }
}
@media (max-width: 480px) {
	.km-pdf-titre { font-size: 13px; flex-basis: 100%; }
	.km-pdf-outils { width: 100%; justify-content: space-between; gap: 4px; }
	.km-pdf-outils button, .km-pdf-outils a { padding: 0 9px; font-size: 14px; }
	.km-pdf-zoom { display: none; }
	.km-pdf-page { min-width: 0; font-size: 13px; }
}

/* Compétences sur deux niveaux (11/10/2026) : actuelles, puis acquises précédemment (repliable, discret) ; « Vue dans » ; étiquettes des fiches */
.km-comp-niveau { font-size: 16px; font-weight: bold; color: #0C4C8A; margin: 12px 15px 4px; }
.km-vue-dans { color: #555; }
.km-vue-dans a { color: #0C4C8A; text-decoration: underline; }
.km-comp-anterieures { border-top: 1px solid #d5dfeb; margin-top: 8px; }
.km-comp-anterieures > summary { cursor: pointer; min-height: 44px; padding: 12px 15px; font-weight: bold; color: #4a5563; list-style-position: inside; }
.km-comp-anterieures > summary:focus-visible { outline: 3px solid #f0a500; outline-offset: -3px; }
.km-comp-anterieures table { opacity: .92; font-size: 95%; }
.km-comp-intro { margin: 0 15px 8px; color: #555; font-size: 14px; }
tr:target td { background: #fff7e0; }
.km-tags-comp { list-style: none; padding: 0; margin: 8px 0 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.km-tags-comp a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px; border: 1px solid #0C4C8A; border-radius: 22px; color: #0C4C8A; background: #fff; font-size: 14px; text-decoration: none; }
.km-tags-comp a:hover, .km-tags-comp a:focus-visible { background: #0C4C8A; color: #fff; }
.km-tags-comp .km-tag-anterieure a { border-style: dashed; color: #4a5563; border-color: #8a99a8; }
.km-filtre-comp { margin: 8px 0 16px; }
