@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/barlow-semi-condensed-500.woff2") format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/barlow-semi-condensed-600.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-sans-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/ibm-plex-sans-600.woff2") format("woff2")}

:root{
  --fond:#F7F8F8;
  --texte:#1B1E21;
  --acier:#5B646C;
  --accent:#B4532A;
  --filet:#C9CED2;
  --titre:"Barlow Semi Condensed","Arial Narrow",sans-serif;
  --corps:"IBM Plex Sans",system-ui,sans-serif;
  --gouttiere:1.25rem;
  --largeur:72rem;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--texte);font-family:var(--corps);font-size:1.0625rem;line-height:1.55;font-kerning:normal}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
img{display:block;max-width:100%;height:auto}

a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--texte);outline-offset:3px}

.evitement{position:absolute;left:var(--gouttiere);top:-4rem;padding:.5rem .75rem;background:var(--texte);color:var(--fond);z-index:10}
.evitement:focus{top:.5rem}

.cadre{max-width:var(--largeur);margin:0 auto;padding:0 var(--gouttiere)}

.site-entete{border-bottom:1px solid var(--texte)}
.site-entete .cadre{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 2rem;padding-top:1rem;padding-bottom:.75rem}
.marque{font-family:var(--titre);font-weight:600;font-size:1.375rem;letter-spacing:.01em;text-decoration:none}
.navigation ul{display:flex;flex-wrap:wrap;gap:0 1.25rem}
.navigation a{display:inline-block;padding:.5rem 0 .3rem;font-size:.9375rem;text-decoration:none;border-bottom:2px solid transparent}
.navigation a:hover{border-bottom-color:var(--filet)}
.navigation a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}

body{min-height:100vh;display:flex;flex-direction:column}
main{display:block;flex:1 0 auto}

.etiquette{font-family:var(--titre);font-weight:500;font-size:.875rem;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--acier)}

.entete{padding:3rem 0 3.5rem}
.entete h1{font-family:var(--titre);font-weight:600;font-size:2.75rem;line-height:1;letter-spacing:-.005em}
.entete h1::after{content:"";display:block;width:4rem;height:3px;margin-top:1.25rem;background:var(--accent)}
.fonction{margin-top:1.5rem;font-family:var(--titre);font-weight:500;font-size:1.5rem;line-height:1.2}
.sous-fonction{margin-top:.5rem;color:var(--acier)}
.introduction{margin-top:2rem;max-width:40rem}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}

.page-titre{padding:3rem 0 2.5rem}
.page-titre h1{font-family:var(--titre);font-weight:600;font-size:2.5rem;line-height:1.05}
.page-titre h1::after{content:"";display:block;width:4rem;height:3px;margin-top:1rem;background:var(--accent)}
.page-titre p{margin-top:1.25rem;max-width:40rem;color:var(--acier)}

.section{border-top:1px solid var(--texte);padding:1.5rem 0 3rem}
.section>.etiquette,.section>h2{margin-bottom:1.5rem}
h2{font-family:var(--titre);font-weight:600;font-size:1.75rem;line-height:1.15}
h3{font-family:var(--titre);font-weight:600;font-size:1.3125rem;line-height:1.2}

.reperes{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--texte);border-bottom:1px solid var(--texte)}
.repere{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:1.25rem 1rem 1.25rem 0;border-bottom:1px solid var(--filet)}
.repere:nth-child(2n){padding-left:1rem;border-left:1px solid var(--filet)}
.repere:nth-last-child(-n+2){border-bottom:0}
.repere dd{font-family:var(--titre);font-weight:600;font-size:2.75rem;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums lining-nums}
.repere dd.texte-valeur{font-size:1.75rem;line-height:1.1}
.repere dt{margin-top:.625rem;font-family:var(--titre);font-weight:500;font-size:.875rem;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--acier)}

.domaines li{display:grid;gap:.25rem;padding:1rem 0;border-top:1px solid var(--filet)}
.domaines li:first-child{border-top:0;padding-top:0}
.domaines strong{font-family:var(--titre);font-weight:600;font-size:1.1875rem}

.registre>li{display:grid;gap:.375rem;padding:1.5rem 0;border-top:1px solid var(--filet)}
.registre>li:first-child{border-top:0;padding-top:0}
.registre .periode{font-family:var(--titre);font-weight:600;font-size:1.0625rem;font-variant-numeric:tabular-nums lining-nums;color:var(--acier);letter-spacing:.02em}
.registre .poste{font-family:var(--titre);font-weight:600;font-size:1.3125rem;line-height:1.2}
.registre .maison{font-weight:600}
.registre .lieu{color:var(--acier)}
.registre .missions{margin-top:.375rem}
.missions li{position:relative;padding-left:1.125rem}
.missions li+li{margin-top:.25rem}
.missions li::before{content:"";position:absolute;left:0;top:.8em;width:.5rem;height:1px;background:var(--texte)}
.registre-entete{display:none}

.lien-suite{display:inline-block;margin-top:1.5rem;font-weight:600}

.domaine-corps{max-width:44rem}
.domaine-corps .experiences{margin-top:1.25rem}
.experiences li{padding:1rem 0;border-top:1px solid var(--filet)}
.experiences li:last-child{padding-bottom:0}
.experiences .ref{display:block;margin-bottom:.25rem;font-family:var(--titre);font-weight:500;font-size:.9375rem;letter-spacing:.04em;color:var(--acier);font-variant-numeric:tabular-nums lining-nums}

.fiche{display:grid;grid-template-columns:1fr}
.fiche>div{padding:1rem 0;border-top:1px solid var(--filet)}
.fiche>div:first-child{border-top:0;padding-top:0}
.fiche dt{margin-bottom:.25rem}
.fiche dd{max-width:40rem}
.courriel{font-family:var(--titre);font-weight:600;font-size:1.5rem;word-break:break-word}

.texte{max-width:40rem}
.texte p+p,.texte p+h2,.texte ul+h2{margin-top:1rem}
.texte h2{margin-top:2.25rem;margin-bottom:.75rem;font-size:1.375rem}
.texte h2:first-child{margin-top:0}

.site-pied{border-top:1px solid var(--texte);margin-top:2rem}
.site-pied .cadre{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding-top:1.25rem;padding-bottom:2rem;font-size:.9375rem;color:var(--acier)}
.site-pied ul{display:flex;flex-wrap:wrap;gap:0 1.25rem}

@media (min-width:48rem){
  :root{--gouttiere:2rem}
  .entete{padding:5rem 0 5rem}
  .entete h1{font-size:4rem}
  .fonction{font-size:1.875rem}
  .page-titre{padding:4.5rem 0 3.5rem}
  .page-titre h1{font-size:3.25rem}
  h2{font-size:2rem}
  .section{display:grid;grid-template-columns:repeat(12,1fr);column-gap:2rem;padding:1.75rem 0 4rem}
  .section>.etiquette,.section>h2{grid-column:1/4;margin-bottom:0}
  .section>h2{font-size:1.5rem}
  .section>:not(.etiquette):not(h2){grid-column:4/13}
  .reperes{grid-template-columns:repeat(4,1fr)}
  .repere,.repere:nth-child(2n){padding:1.5rem 1.25rem;border-bottom:0;border-left:1px solid var(--filet)}
  .repere:first-child{padding-left:0;border-left:0}
  .repere dd{font-size:3.5rem}
  .repere dd.texte-valeur{font-size:2rem}
  .domaines li{grid-template-columns:16rem 1fr;gap:2rem}
  .registre-entete{display:grid;grid-template-columns:8rem 1fr 11rem;gap:2rem;padding-bottom:.75rem;border-bottom:1px solid var(--texte);margin-bottom:1.5rem}
  .registre>li{grid-template-columns:8rem 1fr 11rem;column-gap:2rem;row-gap:0}
  .registre .periode{grid-column:1;grid-row:1/4;padding-top:.125rem}
  .registre .poste,.registre .maison,.registre .missions{grid-column:2}
  .registre .lieu{grid-column:3;grid-row:1/4;padding-top:.125rem}
  .fiche>div{display:grid;grid-template-columns:1fr 2fr;gap:2rem}
  .fiche dt{margin-bottom:0;padding-top:.25rem}
}

@media (min-width:64rem){
  .entete h1{font-size:5rem}
  .entete:has(.portrait) .cadre{display:grid;grid-template-columns:repeat(12,1fr);column-gap:2rem;align-items:end}
  .entete:has(.portrait) .entete-texte{grid-column:1/9}
  .entete:has(.portrait) .portrait{grid-column:9/13}
}

@media (max-width:47.99rem){
  .entete:has(.portrait) .portrait{max-width:16rem;margin-bottom:2rem}
  .entete:has(.portrait) .cadre{display:flex;flex-direction:column-reverse}
}

@media print{
  .site-entete .navigation,.evitement,.site-pied ul{display:none}
  body{background:#fff}
}
