@font-face {
      font-family: 'Open Sans';
      font-style: normal;
      font-weight: 400;
      src: url(/fonts/open-sans-400.woff2) format('woff2');
    }

    @font-face {
      font-family: 'Open Sans';
      font-style: normal;
      font-weight: 700;
      src: url(/fonts/open-sans-400.woff2) format('woff2');
    }

    @font-face {
      font-family: 'Open Sans';
      font-style: normal;
      font-weight: 800;
      src: url(/fonts/open-sans-400.woff2) format('woff2');
    }

    @font-face {
      font-family: 'Saira Condensed';
      font-style: normal;
      font-weight: 800;
      src: url(/fonts/saira-condensed-800.woff2) format('woff2');
    }

    :root {
      --vert: #00D556;
      --noir: #000;
      --blanc: #fff;
      --gris: #B4B4B4;
      --bleu: #1882E3;
      --cyan: #00CAC8;
      --orange: #FF5220;
      --jaune: #FFC800;
      --gris-clair: #F4F4F4;
      --gris-texte: #666;
      --filet: #e5e5e5;
      --epinal: #FFC800;
      --metz: #00D556;
      --moselle-est: #FF5220;
      --nancy: #1882E3;
      --saint-die: #49484D;
      --trois-frontieres: #00CAC8;
      --titre: "Saira Condensed", "Saira ExtraCondensed", sans-serif;
      --texte: "Open Sans", "Helvetica Neue", Arial, sans-serif;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0
    }

    html {
      scroll-behavior: smooth
    }

    body {
      font-family: var(--texte);
      color: #1a1a1a;
      background: #fff;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact
    }

    section {
      padding: 76px 24px
    }

    .conteneur {
      max-width: 960px;
      margin: 0 auto
    }

    h1,
    h2,
    h3 {
      font-family: var(--texte);
      font-weight: 800;
      line-height: 1.15;
      letter-spacing: -.01em
    }

    p {
      line-height: 1.75
    }

    header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      flex-wrap: wrap;
      padding: 24px;
      border-bottom: 1px solid var(--filet)
    }

    header img.logo {
      height: 52px
    }

    .signature-region {
      font-family: var(--titre);
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .12em;
      font-size: 1.05rem;
      text-align: right
    }

    .signature-region em {
      font-style: normal;
      color: var(--vert)
    }

    .hero {
      background: #fff;
      color: #1a1a1a;
      position: relative;
      padding: 96px 24px 84px
    }

    .hero .conteneur {
      position: relative
    }

    .hero::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 14px;
      background: repeating-linear-gradient(90deg, var(--vert) 0 6px, transparent 6px 22px)
    }

    .hero .surtitre {
      font-family: var(--texte);
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .2em;
      font-size: .78em;
      color: #999;
      margin-bottom: 30px
    }

    .hero-col {
      max-width: 740px;
      margin: 0 auto
    }

    .titre-hero {
      font-family: var(--titre);
      font-weight: 800;
      text-transform: uppercase;
      line-height: .9;
      letter-spacing: 0;
      color: #1a1a1a;
      white-space: nowrap;
      font-size: clamp(40px, 7.2vw, 92px);
      margin: 30px 0 26px
    }

    .titre-hero em {
      font-style: normal;
      color: var(--vert)
    }

    .hero .sous {
      margin-top: 48px;
      font-size: clamp(17px, 2.2vw, 21px);
      max-width: 660px;
      color: #555
    }

    .hero .sous b {
      color: #1a1a1a
    }

    .blanc {
      background: #fff
    }

    .gris-clair {
      background: var(--gris-clair)
    }

    h2.section-titre {
      font-size: clamp(26px, 4.5vw, 40px);
      margin-bottom: 10px
    }

    h2.section-titre em {
      font-style: normal;
      color: var(--vert)
    }

    .section-intro {
      max-width: 700px;
      color: var(--gris-texte);
      margin-bottom: 44px;
      line-height: 1.7
    }

    .edito {
      max-width: 740px
    }

    .edito p {
      margin-bottom: 22px;
      font-size: 1.08rem;
      line-height: 1.75
    }

    .edito .accroche {
      font-weight: 800;
      font-size: clamp(24px, 3.6vw, 34px);
      line-height: 1.25;
      margin: 38px 0;
      color: #1a1a1a
    }

    .edito .accroche em {
      font-style: normal;
      color: var(--vert)
    }

    .signat {
      margin-top: 44px;
      display: flex;
      gap: 64px;
      flex-wrap: wrap
    }

    .signat .col {
      font-family: var(--texte)
    }

    .signat .nom {
      font-weight: 800;
      font-size: 1.15rem
    }

    .signat .fonction {
      color: #999;
      font-weight: 400;
      font-size: .92rem;
      margin-top: 2px
    }

    .compteurs {
      display: flex;
      flex-direction: row !important;
      flex-wrap: nowrap !important;
      gap: 0;
      justify-content: space-between;
      align-items: flex-start;
    }

    .compteur {
      flex: 1 1 20%;
      padding: 20px 12px;
      border-left: 1px solid var(--filet);
      border-right: none;
      text-align: left;
    }

    .compteur .val {
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      line-height: 1;
      margin-bottom: 6px;
    }

    .compteur .val em {
      display: inline;
      font-size: 0.6em;
      margin-left: 2px;
    }

    .compteur .lbl {
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .08em;
      font-size: .65em;
      color: #999;
      line-height: 1.3;
    }

    .compteur:first-child {
      border-left: none
    }

    .compteur .val {
      font-weight: 800;
      font-size: clamp(2.4rem, 5.5vw, 3.6rem);
      line-height: 1;
      font-variant-numeric: tabular-nums
    }

    .compteur .val em {
      font-style: normal;
      color: var(--vert)
    }

    .compteur .lbl {
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .12em;
      font-size: .72em;
      color: #999;
      margin-top: 10px;
      display: block
    }

    .a-completer {
      border-bottom: 3px dotted var(--orange)
    }

    .reperes {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 26px
    }

    .repere {
      border-top: 3px solid var(--vert);
      padding-top: 20px
    }

    .repere h3 {
      font-size: 1.25rem;
      margin-bottom: 10px
    }

    .repere p {
      font-size: .98rem;
      color: var(--gris-texte)
    }

    .duo {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 26px
    }

    .personne {
      border: 1px solid var(--filet);
      padding: 36px 30px;
      text-align: center;
      background: #fff
    }

    .photo {
      width: 130px;
      height: 130px;
      border-radius: 50%;
      background: var(--gris-clair);
      border: 5px solid var(--vert);
      margin: 0 auto 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--titre);
      font-weight: 800;
      font-size: 3rem;
      color: #b5b5b5
    }

    .personne.fred .photo {
      border-color: #1a1a1a
    }

    .personne h3 {
      font-size: 1.8rem
    }

    .personne .fonction {
      color: #999;
      font-weight: 400;
      font-size: .88rem;
      margin: 8px 0 16px
    }

    .personne p {
      font-size: .95rem;
      color: var(--gris-texte)
    }

    .equipe table {
      width: 100%;
      border-collapse: collapse;
      max-width: 760px
    }

    .equipe td {
      padding: 14px;
      border-bottom: 1px solid var(--filet);
      vertical-align: top
    }

    .equipe td:first-child {
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .08em;
      font-size: .74rem;
      color: #999;
      width: 44%
    }

    .equipe td:last-child {
      font-weight: 800;
      font-size: 1.2rem;
      line-height: 1.2
    }

    .equipe tr:last-child td {
      border-bottom: none
    }

    .teasing {
      background: var(--gris-clair)
    }

    .teasing .bloc {
      border: 1px solid var(--filet);
      padding: 38px;
      max-width: 760px;
      background: #fff
    }

    .teasing .bloc p {
      margin-bottom: 18px;
      color: #333
    }

    .sections-bloc {
      background: var(--gris-clair);
      color: #1a1a1a;
      padding: 76px 24px
    }

    .sections-bloc .liste {
      display: flex;
      flex-wrap: wrap;
      gap: 18px 38px;
      align-items: baseline;
      margin-top: 34px
    }

    .sections-bloc .liste span {
      font-weight: 800;
      font-size: clamp(1.4rem, 3.2vw, 2.2rem);
      line-height: 1
    }

    .fils {
      width: 100%;
      max-width: 820px;
      display: block;
      margin: 0
    }

    footer {
      background: #fff;
      color: #999;
      padding: 36px 24px;
      border-top: 1px solid var(--filet)
    }

    footer .interne {
      display: inline-block;
      font-size: .85rem
    }

    @media print {
      @page {
        size: A4;
        margin: 14mm
      }

      .edito p,
      .section-intro,
      .repere p,
      .personne p,
      .teasing .bloc p,
      .hero .sous {
        font-size: 12pt
      }

      h2.section-titre {
        font-size: 23pt
      }

      .edito .accroche {
        font-size: 19pt
      }

      .repere h3 {
        font-size: 13pt
      }

      .personne h3 {
        font-size: 17pt
      }

      .compteur .val {
        font-size: 26pt
      }

      section {
        padding: 34px 0
      }

      .hero {
        padding: 36px 0 44px
      }

      .hero .sous {
        margin-top: 26px
      }

      h2.section-titre {
        break-after: avoid
      }

      .repere,
      .personne,
      .compteur,
      .teasing .bloc,
      .signat {
        break-inside: avoid
      }

      footer {
        border-top: 1px solid var(--filet);
        padding: 20px 0
      }
    }
