/* { outline: 1px solid red !important; }*/

@import url('https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap');


:root {
    --ratio: 1.25;
    --p-base: 1.125rem; /* 18px sur Desktop */

    --font-texte: 'Public Sans', sans-serif;
    --font-titre: 'Montserrat', sans-serif;

    --step-minus-2: calc(var(--step-minus-1) / var(--ratio));
    --step-minus-1: calc(var(--p-base) / var(--ratio));
    --step-0: var(--p-base);
    --step-1: calc(var(--step-0) * var(--ratio));
    --step-2: calc(var(--step-1) * var(--ratio));
    --step-3: calc(var(--step-2) * var(--ratio));
    --step-4: calc(var(--step-3) * var(--ratio));

    --bg-dark: #070D33;
    --bg-light: #E1E9F0;
    --text-light: #EAECEF;
    --text-dark: #101835;
    --text-slate: #334155;
    --text-footer: #EBECEF;

    --radius-images: 4px;
}

/* 1. Les titres sur fond clair : Autorité et profondeur */
#one h2,
#three h2.major,
.ref-item h3 {
  color: var(--text-dark); /* Le bleu nuit profond (#101835) */
}

/* 2. Les textes sur fond clair : Lisibilité et confort */
#one p,
#three p,
.ref-item p {
    color: var(--text-slate); /* Le "presque noir" (#334155) */
}


*, *:before, *:after { box-sizing: inherit; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%; /* Ici, tout en haut */
  text-size-adjust: 100%;
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
html, body, div, span, h1, h2, h3, h4, h5, h6, p, a, img, strong, b, i, em, ul, li, article, footer, header, nav, section {
    margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; box-sizing: border-box;
}

body {
  font-family: 'Public Sans', sans-serif;
  color: var(--text-light);
  background-color: var(--bg-dark);

  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1 {
    font-family: var(--font-titre);
    font-size: var(--step-4); /* 2.75rem */
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    letter-spacing: 1px;

    margin: 3rem 0;
}

h2 {
    font-family: var(--font-titre);
    font-size: var(--step-3); /* 2.20rem */
    font-weight: 700;
    line-height: 1.4;

    margin-bottom: 1.5rem;
}

h3 {
    font-family: var(--font-titre);
    font-size: var(--step-2); /* 1.75rem */
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 1.5rem;
}

p {
    font-size: var(--step-0); /* 1.125rem = 18px */
    font-weight: 375;
    line-height: 1.8;
    text-align: left;
    margin-bottom: 1.5rem;
}

strong, b {
  font-weight: 600;
}

a {
    color: inherit;
    text-decoration: none;
    transition: all 0.2s ease-in-out;
}

ul {
  list-style: none;
  padding-left: 2rem;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-images);
}

.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 2rem;
}



/* ==========================================================================
   HEADER / NAVBAR
   ========================================================================== */
#header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 4rem;
    z-index: 10000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 2rem;
    background-color: transparent;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(0px);
    transition: background-color 0.4s ease, backdrop-filter 0.4s ease;
}

#header.is-scrolled {
    background-color: rgba(11, 19, 43, 0.95);
    backdrop-filter: blur(10px);              /* Effet flou élégant */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

#header h1 a.logo-box {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    height: 100%;
    white-space: nowrap;
}

.logo-text {
    font-family: var(--font-titre);
    color: var(--text-light);
    font-size: 1rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-weight: 600;
}

.navbar-img {
  height: 1.35rem;
  width: auto;
}


/* Container de la navigation */
#header nav {
    display: flex;
    align-items: center;
    gap: 2rem;
}

/* Le lien du bouton langue */
#header nav a.lang-link {
    display: flex;
    align-items: center;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

#header nav a.lang-link:hover {
    opacity: 0.7;
}

/* Le texte "ENGLISH" / "FRANÇAIS" calqué sur la marque */
#header nav a.lang-link .lang-fr,
#header nav a.lang-link .lang-en {
    font-family: var(--font-titre);
    color: var(--text-light);
    font-size: 1rem;
    letter-spacing: 1.5px !important;
    text-transform: uppercase;
    font-weight: 575;
    display: flex;
    align-items: center;
    gap: 2rem;
}

/* Le drapeau calqué sur la hauteur du logo */
.lang-link .flag {
    font-size: 2rem;
    line-height: 1;
    margin-right: 6px;
}

/* Masquer le menu burger */
#header nav a[href="#menu"] {
    display: none;
}

/* Supprimer le contour bleu sur le logo ET les langues */
#header h1 a.logo-box:focus,
#header h1 a.logo-box:active,
#header nav a.lang-link:focus,
#header nav a.lang-link:active {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}



/* ==========================================================================
   BANNER
   ========================================================================== */
#banner {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    height: 60vh;
    background-color: var(--bg-dark);
    width: 100%;             /* IMPORTANT : Force la bannière à prendre toute la largeur */
}

#banner .inner {
  width: 90%;              /* S'adapte aux petits écrans */
  max-width: 920px;        /* Ne dépasse jamais 920px */
  padding-left: 12%;
  text-align: left;        /* Le contenu est à gauche DANS la colonne centrée */
}

#banner h2 {
    font-size: 2.59rem;
    color: var(--text-light);
    font-weight: 685;
    letter-spacing: 2px;
    text-transform: uppercase;

    padding-top: 3rem;
}

#banner h3 {
    font-size: var(--step-1);
    font-weight: 400;
    letter-spacing: 0.4px;
    word-spacing: 1px;
    line-height: 1.5;
}

.highlight {
    font-family: var(--font-titre);
    font-weight: 700;
    color: var(--text-light);
    font-size: var(--step-0);
    letter-spacing: 2.75px;
    display: block;
    opacity: 1;

    margin-top: 2.5rem;

}

ul.actions {
  display: flex;

  padding: 0;
  margin: 2em 0 0 0;
}

.button_chie {
    background-color: #FFFFFF;
    color: var(--text-dark);
    font-family: var(--font-titre);
    font-size: var(--step-minus-1);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: 1.3px;
    word-spacing: 1.4px;
    text-transform: uppercase;

    display: inline-block;
    border-radius: 8px;
    box-shadow: 0 7px 18px rgba(0, 0, 0, 0.08);
    transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    cursor: pointer;
    text-align: center;
    border: none !important;

    padding: 0.8rem 1.5rem;
}

.button_chie:hover {
  background-color: #FFFFFF;
  transform: translateY(-5px);
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
}

#banner a.button_chie {
    position: relative !important;
    z-index: 9999 !important;
    pointer-events: auto !important;
}


/* ==========================================================================
   5. ARCHITECTURE DIAGONALE (Wrappers HTML5 UP)
   ========================================================================== */
.wrapper {
    background-color: var(--bg-dark);

    position: relative;
    margin: 8rem 0;

}

.wrapper .inner {
  width: 55em;
  max-width: 90%;
  padding: 4em 0 2em 0;

  margin: 0 auto;
}

.wrapper:before, .wrapper:after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 6.5em;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    z-index: 1;
}

.wrapper:before {
  left: 0;
  top: -6.5em;
}

.wrapper:after {
  transform: scaleY(-1);
  bottom: -6.5em;
  left: 0;
}

.wrapper.alt:before {
  transform: scaleX(-1);
}

.wrapper.alt:after {
  transform: scaleY(-1) scaleX(-1);
}

/* ==========================================================================
   6. SECTION 1 : PRÉSENTATION
   ========================================================================== */
#one.wrapper.style1 {
  background-color: var(--bg-light);

  margin-top: 0;
  padding-top: 6em;
  padding-bottom: 6em;
}

#one.wrapper.style1:before, #one.wrapper.style1:after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23E1E9F0%3B' /%3E%3C/svg%3E");
    box-shadow: inset 0 -1px 0 0 var(--bg-light), 0 1px 0 0 var(--bg-light);
}

#one .inner {
  display: flex;
  flex-direction: row-reverse; /* Déplace la photo à droite */
  align-items: center;
  gap: 4rem;
  align-items: center;
  position: relative;
  z-index: 2;

  margin-left: 20%;
}

#one .image {
    grid-row: 2;
    justify-self: center !important;
    align-self: center !important;
    display: block;
    margin: 0;
}

#one .image img {
  border-radius: 50%; /* Remplace le 8px par 50% */
  aspect-ratio: 1 / 1; /* Garantit un rond parfait même si la photo d'origine est rectangulaire */
  object-fit: cover;   /* Centre le visage proprement */

  /* Tes réglages actuels que l'on garde : */
  filter: grayscale(100%) contrast(1.1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease;

  flex: 0 0 35%;
  width: 100%;
  max-width: 320px;
}

#one .image img:hover {
  transform: scale(1.02);
}

#one .content {
  flex: 0 0 60%;
}

#one .content h2 {
    font-size: var(--step-2);
    font-weight: 625;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    text-align: left;
    width: 105%;

    margin-bottom: 1.5em;
}

#one .content p {
    font-size: 1.2rem;
    font-style: italic;
    font-weight: 400;
    width: 100%;

    border-left: 2px solid var(--text-dark);
    padding-left: 2rem;

}

#one .content p strong {
  font-weight: 600;
  color: inherit;
}



/* ==========================================================================
   7. SECTION 2 : DOMAINES INTERVENTION
   ========================================================================== */
#two.wrapper.style2 {
  background-color: var(--bg-dark);
  padding-top: 3em;
  padding-bottom: 3em;
}

#two.wrapper.style2:before, #two.wrapper.style2:after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23070D33%3B' /%3E%3C/svg%3E");
    box-shadow: inset 0 -1px 0 0 var(--bg-dark), 0 1px 0 0 var(--bg-dark);
}

#two h2.major {
  display: none;
}

#two .inner {
    width: 75em;
    max-width: 95%;
}

#two .features {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 4rem;
    position: relative;
    z-index: 2;
}

#two .features article {
    background-color: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);

    flex: 1;
    aspect-ratio: 1 / 1;
    min-height: 0;

    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.06);

    padding: 1rem 2rem;
}

#two .features article h3 {
    font-size: var(--step-1); /* On réduit légèrement le titre pour calmer le jeu */
    font-weight: 670;       /* On renforce le gras pour garder l'autorité */
    line-height: 1.3;
    letter-spacing: 0.5px;
    text-align: center;
    text-transform: uppercase;
    width: 85%;

    margin-bottom: 2rem;
    margin-left: auto;
    margin-right: auto;
}

#two .features article p {
    font-size: calc(var(--step-0) * 0.88);
    font-weight: 350;
    line-height: 1.7;
    opacity: 0.95;
    text-align: center;
    width: 95%;

    margin: 0 auto;        /* Centre le paragraphe dans le carré */
}



/* ==========================================================================
   8. SECTION 3 : RÉFÉRENCES
   ========================================================================== */
#three.wrapper.style3 {
  background-color: var(--bg-light);
  padding-top: 4em;
}
#three.wrapper.style3:before, #three.wrapper.style3:after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23E1E9F0%3B' /%3E%3C/svg%3E");
    box-shadow: inset 0 -1px 0 0 var(--bg-light), 0 1px 0 0 var(--bg-light);
}

#three h2.major {
    font-family: var(--font-titre);
    font-weight: 700;
    font-size: 2.1rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    position: relative;
    z-index: 2;
}

.references-container {
  margin-top: 2.5em;
  position: relative;
  z-index: 2;
}

.ref-item {
    background-color: #F8FAFC;
    border-radius: 8px;
    border: none;
    box-shadow:
        0 1px 3px rgba(7, 13, 51, 0.05),
        0 10px 25px rgba(7, 13, 51, 0.03),
        inset 0 1px 0 rgba(255, 255, 255, 1);

    padding: 3rem 4rem;
    margin-bottom: 3.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.ref-item:hover {
    background-color: #FFFFFF;
    box-shadow:
        0 2px 6px rgba(7, 13, 51, 0.06),
        0 15px 35px rgba(7, 13, 51, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 1);
    transform: translateY(-4px);
}

.ref-item:last-child {
  margin-bottom: 0;
}

.ref-item h3 {
    font-family: var(--font-titre);
    font-weight: 700;
    font-size: var(--step-1);
    letter-spacing: 1px;
    text-transform: uppercase;

    margin-top: 0;
    margin-bottom: 1.5rem;
}

.ref-item p {
    font-size: var(--step-0);
    line-height: 1.8;

    margin-bottom: 0;
}

#three .actions {
  margin-top: 2em;
  margin-bottom: 4em;
  position: relative;
  z-index: 2;
}


/* 1. LOGIQUE GLOBALE DU CONTENU (Les textes de Romain) */
html[lang="fr"] .lang-en {
    display: none !important;
}

html[lang="en"] .lang-fr {
    display: none !important;
}

/* 2. LOGIQUE INVERSÉE DU BOUTON MENU */
/* Quand on est en FR, on cache le bouton FR et on montre le bouton EN */
html[lang="fr"] .switch-to-fr {
    display: none;
}
html[lang="fr"] .switch-to-en {
    display: inline-block;
}

/* Quand on est en EN, on cache le bouton EN et on montre le bouton FR */
html[lang="en"] .switch-to-en {
    display: none;
}
html[lang="en"] .switch-to-fr {
    display: inline-block;
}



/* ==========================================================================
   9. FOOTER
   ========================================================================== */
#footer {
    background-color: var(--bg-dark);
    padding: 3em 0 2em 0;
    border-top: none;
}

#footer .inner {
    width: 55em;
    max-width: 90%;
    margin: 0 auto;
    text-align: left;
}

#footer h2 {
    font-family: var(--font-titre);
    font-weight: 700;
    font-size: var(--step-1);
    color: var(--text-footer);
    text-transform: uppercase;
    letter-spacing: 2px;
    text-align: left;

    margin-bottom: 2em;

}

/* Suppression des icônes vieillottes pour un look moderne */
ul.contact {
  margin: 0 0 2em 0;
}

ul.contact, ul.copyright {
  text-align: left;
  margin-left: 0;
  padding-left: 0;
}

ul.contact li {
  font-family: var(--font-texte);
  font-size: var(--step-0);
  color: var(--text-footer);
  font-weight: 400;
  letter-spacing: 0.5px;
  opacity: 0.9;
  margin: 0.8em 0;
}

/* Liens du footer plus élégants */
#footer a {
    font-family: var(--font-titre);
    color: var(--text-light);
    text-decoration: none;
    border-bottom: none;
}

#footer a:hover {
  border-bottom-color: var(--text-light);
}

/* Bloc légal très sobre */
ul.copyright {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5em;
    border-top: none;

    padding-top: 0;
    margin-top: 4em;
}

ul.copyright li {
    color: rgba(235, 236, 239, 0.4); /* Un gris plus subtil */
    font-size: 0.75rem;              /* Plus petit, c'est le standard "légal" */
    letter-spacing: 0.5px;
    font-weight: 300;                /* Plus fin, pour ne pas distraire l'œil */
}



/* ==========================================================================
   10. RESPONSIVE (Tablettes & Mobiles)
   ========================================================================== */
@media screen and (max-width: 1024px) {
    :root {
        --page-gutter: 2rem;
    }

    .inner {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 2rem !important;  /* Valeur en dur absolue */
        padding-right: 2rem !important;
        box-sizing: border-box !important;
        margin: 0 auto !important;      /* Centre et annule tout décalage */
    }

    h1 {
        font-size: 2.35rem !important;
        line-height: 1.2 !important;
        margin: 2.5rem 0;
    }

    h2 {
        font-size: 1.5rem !important;
        font-weight: 640 !important;
        line-height: 1.4 !important;
        margin-bottom: 1.5rem;
    }

    h3 {
        font-size: 1.3rem !important;
        line-height: 1.4 !important;
        margin-bottom: 1.5rem;
    }

    p {
        font-size: 1.125rem !important;
        line-height: 1.65 !important;
        text-align: left;
    }

    .button_chie {
      letter-spacing: 1px;
      word-spacing: 1px;
    }



/*************************************************************************/
    #header {
        height: 3.2rem;
        padding: 0 1.6rem;
    }

    .navbar-img {
        height: 1.2rem;
    }

    .logo-text {
        font-size: 0.9rem;
        font-weight: 650;
    }

    #header nav {
        gap: 1.6rem;
    }

    /* On force la réduction du texte sur le parent ET l'enfant */
    #header nav a.lang-link,
    #header nav a.lang-link.lang-en,
    #header nav a.lang-link .lang-en {
        font-size: 0.85rem !important;
        letter-spacing: 0.5px;
        gap: 0.25rem !important;
    }

    /* On verrouille le drapeau pour qu'il ne rétrécisse pas avec le mot */
    #header nav a.lang-link .flag {
        font-size: 1.8rem !important;
    }



  /* 1. Ancrage en haut en rem ******************************************************************************/
    #banner {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        height: auto;

        padding-top: 5rem;
        padding-bottom: 6rem;
    }

    /* 2. Alignement à gauche en rem */
    #banner .inner {
        width: 90%;
        max-width: 57.5rem;   /* 920px / 16 = 57.5rem */

        margin-left: 3.125rem; /* ~50px, remplace le % pour la précision */
        padding-left: 0;
    }

    /* 3. Typographie en rem */
    #banner h2 {
      font-size: 2rem;
      letter-spacing: 1px;
      font-weight: 750 !important;

      padding-top: 1rem;
      margin-top: 2rem;
    }


/***************************************************************************************/
    #one .inner {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 3rem;
    }

    #one .content {
        display: contents;
    }

    /* 2. On sécurise les enfants de la grille */
    #one .content h2 {
      text-align: center;
      letter-spacing: 0.5px;
      word-spacing: 0.5px;
      grid-row: 1;
      width: 105%;


      margin-top: -5rem;
      margin-bottom: 0;
    }

    #one img {
      grid-row: 2;
      width: 14rem !important;  /* 160px - C'est la taille physique réelle */
      height: 14rem !important;
      max-width: none;
      flex: none;

      /* C'est ici que ça se joue pour centrer */
      justify-self: center;
      align-self: center;

      /* Sécurité supplémentaire */
      display: block;

      margin-top: -1rem;
      margin-bottom: 0;

    }

    #one .content p {
        grid-row: 3;
        width: 100%;
        border-left: none;
        padding-left: 0;
        margin-left: 0;
        margin-bottom: -2.5rem;
        font-size: 1.25rem !important;
        line-height: 1.6 !important;
    }



/******************************************************************************************/
    #two.wrapper.style2 {
        position: relative; /* Indispensable pour que le :before s'y accroche */
        padding-top: 1rem;  /* On réintroduit un peu de padding pour éviter que le contenu touche le bord */
        margin-top: 0;      /* On annule la marge négative qui créait le bug */
        margin-bottom: -0.5rem;
    }

    #two.wrapper.style2:before {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 4rem;      /* Hauteur fixe pour éviter le repli */
        content: "";
        pointer-events: none; /* Empêche le clic de passer à travers */
    }

    #two .inner {
        width: 90% !important;
        max-width: 100%;
        margin: 0 auto;
    }

    #two .features {
        display: grid;       /* On tue le flex pour une grille */
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Auto-ajustable */
        gap: 3rem;
    }

    #two .features article {
        aspect-ratio: auto;  /* On enlève le carré parfait, trop rigide en mobile */
        padding: 2.5rem 2rem;       /* Padding fixe pour aérer */
        min-height: auto;    /* Le bloc s'adapte au contenu */
    }

    #two .features article h3 {
        font-size: 1.2rem;   /* Réduction proportionnelle */
        width: 100%;
    }

    #two .features article p {
        font-size: 1rem;     /* Plus lisible sur tablette */
        line-height: 1.5;
        width: 100%;
    }



/******************************************************************************************/
    /* 1. Conteneur principal */
    #three h2.major {
      font-weight: 700 !important
    }


    #three.wrapper.style3 {
        padding-top: 1.75rem;       /* Réduction du souffle haut */
    }

    .references-container {
        margin-top: 1.5rem;      /* Rapproche les cartes du titre */
    }

    /* 2. Les cartes de références (Le plus critique) */
    .ref-item {
        padding: 2.25rem 2rem;    /* Math : On divise presque par 2 pour laisser respirer le texte */
        margin-bottom: 3rem;     /* Espace entre les cartes réduit de 3.5rem à 2rem */
    }

    /* 3. Typographie héritée et calibrée */
    .ref-item h3 {
        font-size: inherit;      /* On force l'héritage de ton h3 global (1.3rem) */
        letter-spacing: 0.5px;

        margin-bottom: 1rem;
    }

    .ref-item p {
        line-height: 1.65;
    }

    /* 4. Bouton final */
    #three .actions {
        margin-top: 1.75rem;
        margin-bottom: 4rem;
    }



/*********************************************************************************************/
    /* 1. Réduction de la zone morte globale */
    #footer {
        padding: 2.5rem 0 2rem 0; /* On réduit le padding-top de 3em à 2.5rem */
    }

    /* 2. Typographie verrouillée */
    #footer h2 {
        font-size: inherit;       /* Hérite du 1.5rem global, écrase le var(--step-1) */

        margin-bottom: 1.5rem;    /* 2em -> 1.5rem */
    }

    /* 3. Compression des listes de contact */
    ul.contact {
        margin-bottom: 1.5rem;
    }

    ul.contact li {
        margin: 0.8rem 0;         /* Conversion stricte em -> rem */
    }

    /* 4. Empilement du bloc légal */
    ul.copyright {
        flex-direction: column;   /* Annule le wrap horizontal */
        gap: 0.5rem;              /* Division par 3 du gap (1.5em -> 0.5rem) */
        margin-top: 2.5rem;       /* Rapprochement vers le haut (4em -> 2.5rem) */
    }



 /**********************************************************************************/
   section#one .content h2.lang-en {
    font-size: 1.45rem !important;
    letter-spacing: 1px !important;
    word-spacing: 2px !important;
    line-height: 1.6;
}
  }




#one .content h2.lang-en {
  font-size: 1.65rem !important;
  font-weight: 625;
  letter-spacing: 1px;
  word-spacing: 2px;
}


#three .content h2.lang-en {
  font-size: 2rem;
  letter-spacing: 0.5px;
  font-weight: 700;
}
