/*
  Styles repris de TemplateMo 578 "First Portfolio" (https://templatemo.com/tm-578-first-portfolio).
  Migration progressive : chaque section reprise est préfixée pour ne pas entrer
  en conflit avec templatemo-lugx-gaming.css.
*/

:root {
  --fp-white: #ffffff;
  --fp-primary: #535da1;
  --fp-secondary: #14b789;
  /* Vert foncé pour le texte et les fonds portant du texte blanc (contraste ≥ 4,5:1) */
  --fp-secondary-ink: #0c7c5c;
  --fp-section-bg: #f9f9f9;
  --fp-dark: #000000;
  --fp-p: #717275;
  --fp-border: #e9eaeb;
  --fp-font: "DM Sans", sans-serif;
  --fp-radius-large: 100px;
}

/*---------------------------------------
  BOUTONS
-----------------------------------------*/
.fp-btn {
  display: inline-block;
  background: var(--fp-secondary-ink);
  border-radius: var(--fp-radius-large);
  color: var(--fp-white);
  font-family: var(--fp-font);
  font-size: 18px;
  font-weight: 700;
  padding: 12px 24px;
  transition: all .3s;
}

.fp-btn:hover {
  background: var(--fp-primary);
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175);
  color: var(--fp-white);
}

.fp-btn.fp-link {
  background: var(--fp-primary);
}

.fp-btn.fp-link:hover {
  background: var(--fp-secondary-ink);
}

.fp-btn.fp-outline {
  background: var(--fp-white);
  border: 2px solid var(--fp-white);
  color: var(--fp-secondary-ink);
  padding: 10px 22px;
}

.fp-btn.fp-outline:hover {
  background: var(--fp-primary);
  border-color: var(--fp-primary);
  color: var(--fp-white);
}

/*---------------------------------------
  HERO
-----------------------------------------*/
.fp-hero {
  background: var(--fp-secondary);
  position: relative;
  overflow: hidden;
  padding-top: 330px;
  padding-bottom: 330px;
  font-family: var(--fp-font);
}

@media screen and (min-width: 991px) {
  .fp-hero {
    height: 60vh;
  }
}

.fp-hero .avatar-image {
  border-radius: var(--fp-radius-large);
  width: 72px;
  height: 72px;
  object-fit: cover;
  object-position: top;
  background: var(--fp-white);
  flex: none;
}

.fp-hero .hero-title,
.fp-hero h2 {
  background: var(--fp-white);
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175);
  border-radius: var(--fp-radius-large);
  display: inline-block;
  padding: 8px 24px;
  font-family: var(--fp-font);
  font-weight: 700;
  text-transform: none;
}

.fp-hero .hero-title {
  font-size: 32px;
  color: var(--fp-dark);
  letter-spacing: -1.5px;
  line-height: 1.2;
}

.fp-hero h2 {
  font-size: 24px;
  color: var(--fp-secondary-ink);
  letter-spacing: -0.5px;
  line-height: 1.2;
}

.fp-hero .hero-text {
  position: relative;
  z-index: 22;
  top: 70px;
}

.fp-hero .hero-image-wrap {
  background: var(--fp-white);
  border-radius: 100%;
  width: 350px;
  height: 350px;
  position: absolute;
  z-index: 22;
  top: -50px;
  right: 0;
  left: 0;
  margin: auto;
  pointer-events: none;
}

/* Portrait détouré (vertical) : centré et ancré sur le cercle blanc */
.fp-hero .hero-image {
  position: absolute;
  z-index: 23;
  top: -110px;
  right: 0;
  left: 0;
  margin: auto;
  width: 330px;
  max-width: none;
}

.fp-hero svg {
  position: absolute;
  z-index: 2;
  bottom: 0;
  right: 0;
  left: 0;
  overflow: hidden;
  height: 100%;
  pointer-events: none;
}

/* La section features chevauche le bas du hero */
.fp-hero + .features {
  position: relative;
  z-index: 30;
}

@media screen and (min-width: 1600px) {
  .fp-hero {
    padding-top: 380px;
    padding-bottom: 380px;
  }

  .fp-hero .hero-image-wrap {
    width: 400px;
    height: 400px;
  }

  .fp-hero .hero-image {
    width: 380px;
  }

  .fp-hero .hero-title {
    font-size: 36px;
  }

  .fp-hero h2 {
    font-size: 28px;
  }
}

@media screen and (max-width: 991px) {
  .fp-hero {
    padding-top: 200px;
    padding-bottom: 400px;
  }

  .fp-hero .hero-text {
    top: 0;
    margin-bottom: 120px;
  }

  .fp-hero .fp-btn {
    font-size: 14px;
    padding: 8px 16px;
  }

  /* Sur mobile le texte passe sur la vague violette : bouton principal en vert */
  .fp-hero .fp-btn.fp-link {
    background: var(--fp-secondary-ink);
  }

  .fp-hero .fp-btn.fp-link:hover {
    background: var(--fp-white);
    color: var(--fp-primary);
  }
}

@media screen and (max-width: 480px) {
  .fp-hero .hero-title {
    font-size: 24px;
    letter-spacing: -1px;
  }

  .fp-hero h2 {
    font-size: 17px;
    letter-spacing: 0;
  }

  .fp-hero .avatar-image {
    width: 56px;
    height: 56px;
  }

  .fp-hero .fp-btn {
    font-size: 13px;
    padding: 6px 12px;
  }

  .fp-hero .hero-image-wrap {
    width: 300px;
    height: 300px;
  }

  .fp-hero .hero-image {
    width: 280px;
  }
}

/*---------------------------------------
  TITRE DE SECTION (bandeau vert)
-----------------------------------------*/
.fp-section-padding {
  padding-top: 80px;
  padding-bottom: 60px;
}

.fp-section-title-wrap {
  background: var(--fp-secondary-ink);
  border-radius: 10px;
  padding: 8px 24px;
}

.fp-section-title-wrap h2 {
  font-family: var(--fp-font);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -2px;
  color: var(--fp-white);
  text-transform: none;
}

.fp-avatar-image {
  border-radius: var(--fp-radius-large);
  width: 56px;
  height: 56px;
  object-fit: cover;
  background: var(--fp-white);
  flex: none;
}

/*---------------------------------------
  PROJETS
-----------------------------------------*/
.fp-projects {
  font-family: var(--fp-font);
}

.fp-projects .projects-thumb {
  display: block;
  background: var(--fp-section-bg);
  border: 2px solid var(--fp-white);
  border-radius: 20px;
  position: relative;
  overflow: hidden;
  height: calc(100% - 32px);
  min-height: 230px;
  margin-top: 16px;
  margin-bottom: 16px;
  padding: 22px 22px 0;
  transition: all ease 0.5s;
}

.fp-projects .projects-thumb:hover,
.fp-projects .projects-thumb:focus-visible {
  border-color: var(--fp-secondary);
}

.fp-projects .projects-tag {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--fp-secondary-ink);
  text-transform: uppercase;
  margin-bottom: 5px;
}

.fp-projects .projects-title {
  font-family: var(--fp-font);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--fp-dark);
  text-transform: none;
  margin-bottom: 14px;
}

/* Logo du projet sur un panneau blanc, incliné comme les images de 578 */
.fp-projects .projects-image {
  background: var(--fp-white);
  border-radius: 16px;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, .06);
  transform: rotate(8deg) translateY(30px);
  transition: all ease 0.5s;
}

.fp-projects .projects-image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.fp-projects .projects-thumb:hover .projects-image,
.fp-projects .projects-thumb:focus-visible .projects-image {
  transform: rotate(0) translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .fp-projects .projects-thumb,
  .fp-projects .projects-image {
    transition: none;
  }
}

@media screen and (max-width: 991px) {
  .fp-section-padding {
    padding-top: 60px;
    padding-bottom: 40px;
  }

  .fp-section-title-wrap h2 {
    font-size: 24px;
  }

  .fp-projects .projects-thumb {
    height: auto;
    min-height: 0;
    margin-top: 0;
    margin-bottom: 16px;
  }

  .fp-projects .projects-image {
    height: 120px;
  }
}

@media screen and (max-width: 480px) {
  .fp-section-title-wrap h2 {
    font-size: 22px;
    letter-spacing: -0.5px;
  }

  .fp-avatar-image {
    width: 44px;
    height: 44px;
  }
}

/*---------------------------------------
  À PROPOS (Mon parcours)
-----------------------------------------*/
.fp-about {
  font-family: var(--fp-font);
}

.fp-about .about-image {
  border-radius: 20px;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.fp-about .about-thumb {
  padding-right: 20px;
  padding-left: 20px;
}

.fp-about h3 {
  font-family: var(--fp-font);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--fp-dark);
  text-transform: none;
}

.fp-about p {
  font-family: var(--fp-font);
  font-size: 16px;
  line-height: 1.7;
  color: var(--fp-p);
  margin-bottom: 16px;
}

.fp-about p strong {
  color: var(--fp-dark);
}

/* Enchaîné avec la section projets : on évite le double espacement */
.fp-about + .fp-projects {
  padding-top: 20px;
}

@media screen and (max-width: 991px) {
  .fp-about .about-thumb {
    padding-right: 0;
    padding-left: 0;
  }

  .fp-about h3 {
    font-size: 20px;
  }
}

/*---------------------------------------
  TECHNOLOGIES (fenêtre terminal)
-----------------------------------------*/
:root {
  --fp-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
  --fp-term-bg: #1d2140;
  --fp-term-bar: #151831;
  --fp-term-line: #2c3159;
  --fp-term-text: #d6d9f0;
  --fp-term-muted: #8a90bd;
}

.fp-terminal {
  background: var(--fp-term-bg);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 1.5rem 3rem rgba(29, 33, 64, .25);
  font-family: var(--fp-mono);
}

.fp-terminal-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--fp-term-bar);
  padding: 14px 20px;
}

.fp-terminal-bar .dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex: none;
}

.fp-terminal-bar .dot-red { background: #ff5f57; }
.fp-terminal-bar .dot-yellow { background: #febc2e; }
.fp-terminal-bar .dot-green { background: #28c840; }

.fp-terminal-title {
  flex: 1;
  text-align: center;
  font-size: 13px;
  color: var(--fp-term-muted);
  margin-right: 52px; /* compense les trois points pour centrer le titre */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fp-terminal-body {
  padding: 24px 28px 28px;
}

.fp-terminal-line {
  font-family: var(--fp-mono);
  font-size: 15px;
  color: var(--fp-term-text);
  margin: 0 0 6px;
}

.fp-terminal-line .prompt {
  color: var(--fp-secondary);
  font-weight: 500;
  margin-right: 6px;
}

.fp-terminal-comment {
  color: var(--fp-term-muted);
  margin-top: 18px;
}

.fp-terminal-line .cursor {
  display: inline-block;
  width: 9px;
  height: 18px;
  background: var(--fp-secondary);
  vertical-align: -3px;
  animation: fp-blink 1.1s steps(1) infinite;
}

@keyframes fp-blink {
  50% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .fp-terminal-line .cursor { animation: none; }
}

.fp-terminal-grid {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 14px;
}

.fp-terminal-grid li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 16px 8px 12px;
  border: 1px solid var(--fp-term-line);
  border-radius: 12px;
  transition: border-color .3s, transform .3s;
}

.fp-terminal-grid li:hover {
  border-color: var(--fp-secondary);
  transform: translateY(-3px);
}

/* Pastille blanche : les logos sombres restent lisibles sur le fond du terminal */
.fp-terminal-grid .logo {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: var(--fp-white);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
}

.fp-terminal-grid .logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.fp-terminal-grid .name {
  font-family: var(--fp-mono);
  font-size: 12px;
  color: var(--fp-term-text);
  text-align: center;
}

@media screen and (max-width: 480px) {
  .fp-terminal-body {
    padding: 18px 16px 20px;
  }

  .fp-terminal-line {
    font-size: 13px;
  }

  .fp-terminal-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .fp-terminal-grid .logo {
    width: 44px;
    height: 44px;
  }

  .fp-terminal-grid .name {
    font-size: 11px;
  }

  .fp-terminal-title {
    margin-right: 0;
    font-size: 12px;
  }
}

/*---------------------------------------
  INFORMATIONS + CHIFFRES CLÉS
-----------------------------------------*/
.fp-featured {
  background: var(--fp-section-bg);
  font-family: var(--fp-font);
}

.fp-featured .profile-thumb {
  background: var(--fp-white);
  border: 1px solid var(--fp-border);
  border-radius: 20px;
  overflow: hidden;
}

.fp-featured .profile-title {
  border-bottom: 1px solid var(--fp-border);
  padding: 15px 30px;
}

.fp-featured .profile-title h3 {
  font-family: var(--fp-font);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--fp-dark);
  text-transform: none;
}

.fp-featured .profile-body p {
  display: flex;
  align-items: center;
  margin: 0;
  font-size: 15px;
  color: var(--fp-p);
  background: var(--fp-section-bg);
}

.fp-featured .profile-body p:nth-of-type(even) {
  background: var(--fp-white);
}

.fp-featured .profile-body p > span:last-child {
  padding: 13px 20px 13px 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.fp-featured .profile-body a {
  color: var(--fp-p);
}

.fp-featured .profile-body a:hover {
  color: var(--fp-secondary-ink);
}

.fp-featured .profile-small-title {
  border-right: 1px solid var(--fp-border);
  color: var(--fp-secondary-ink);
  font-weight: 700;
  min-width: 140px;
  margin-right: 16px;
  padding: 13px 30px;
  flex: none;
  align-self: stretch;
  display: flex;
  align-items: center;
}

.fp-featured .featured-numbers-wrap {
  padding-right: 20px;
  padding-left: 20px;
}

.fp-featured .featured-numbers {
  display: block;
  font-family: var(--fp-font);
  font-size: 52px;
  font-weight: 700;
  letter-spacing: -2px;
  line-height: normal;
  color: var(--fp-dark);
  font-variant-numeric: tabular-nums;
}

.fp-featured .featured-text {
  color: var(--fp-secondary-ink);
  font-size: 16px;
  margin-bottom: 8px;
}

.fp-featured .featured-border-bottom {
  border-bottom: 1px solid var(--fp-border);
}

.fp-featured .featured-border-start {
  border-left: 1px solid var(--fp-border);
}

@media screen and (max-width: 991px) {
  .fp-featured .featured-numbers-wrap {
    padding-right: 0;
    padding-left: 0;
  }

  .fp-featured .featured-numbers {
    font-size: 42px;
  }
}

@media screen and (max-width: 480px) {
  .fp-featured .profile-small-title {
    min-width: 110px;
    padding: 12px 16px;
    margin-right: 12px;
    font-size: 14px;
  }

  .fp-featured .profile-body p {
    font-size: 14px;
  }

  .fp-featured .featured-numbers {
    font-size: 36px;
  }

  .fp-featured .featured-text {
    font-size: 14px;
  }
}

/*=======================================
  GLOBAL : police, en-tête, bandeau de page, boutons, pied de page
=======================================*/
body,
h1, h2, h3, h4, h5, h6,
p, a, li, span, button, input, select, textarea {
  font-family: var(--fp-font);
}

.fp-terminal,
.fp-terminal * {
  font-family: var(--fp-mono);
}

/*---------- En-tête (style menu 578 sur ordinateur) ----------*/
.header-area .main-nav .logo h1 {
  font-weight: 700;
  letter-spacing: -1px;
}

.background-header {
  border-radius: 0;
}

@media (min-width: 768px) {
  .header-area .main-nav .nav li {
    padding-left: 0;
    padding-right: 0;
  }

  .header-area .main-nav .nav li a,
  .background-header .main-nav .nav li a.active {
    position: relative;
    margin: 0 14px;
    padding: 0 2px;
    border-radius: 0;
    background: transparent;
    color: var(--fp-section-bg);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .5px;
    text-transform: uppercase;
  }

  .header-area .main-nav .nav li a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 4px;
    height: 2px;
    background: transparent;
    transition: background .3s;
  }

  .header-area .main-nav .nav li:hover a,
  .header-area .main-nav .nav li a.active,
  .background-header .main-nav .nav li a.active {
    background: transparent;
    color: var(--fp-white);
    font-weight: 700;
  }

  .header-area .main-nav .nav li:hover a::after,
  .header-area .main-nav .nav li a.active::after {
    background: var(--fp-secondary);
  }

  /* Dernier lien (Contact) : bouton contour blanc */
  .header-area .main-nav .nav li:last-child a,
  .header-area .main-nav .nav li:last-child:hover a {
    margin-right: 0;
    padding: 0 22px;
    border: 2px solid var(--fp-white);
    border-radius: var(--fp-radius-large);
    line-height: 36px;
    font-weight: 700;
    background: transparent;
    color: var(--fp-white);
  }

  .header-area .main-nav .nav li:last-child:hover a,
  .header-area .main-nav .nav li:last-child a.active {
    background: var(--fp-white);
    color: var(--fp-secondary-ink);
  }

  .header-area .main-nav .nav li:last-child a::after {
    display: none;
  }
}

/*---------- Bandeau des pages intérieures : mini-hero vert + vague violette ----------*/
.page-heading {
  background: var(--fp-secondary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320' preserveAspectRatio='none'%3E%3Cpath fill='%23535da1' d='M0,160L24,160C48,160,96,160,144,138.7C192,117,240,75,288,64C336,53,384,75,432,106.7C480,139,528,181,576,208C624,235,672,245,720,240C768,235,816,213,864,186.7C912,160,960,128,1008,133.3C1056,139,1104,181,1152,202.7C1200,224,1248,224,1296,197.3C1344,171,1392,117,1416,90.7L1440,64L1440,0L0,0Z'/%3E%3C/svg%3E") top center / 100% 75% no-repeat;
  border-radius: 0;
  padding: 190px 0 80px;
}

.page-heading h1 {
  display: inline-block;
  background: var(--fp-white);
  color: var(--fp-dark);
  border-radius: var(--fp-radius-large);
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175);
  padding: 8px 28px;
  margin: 0 0 18px;
  font-size: 34px;
  font-weight: 700;
  letter-spacing: -1.5px;
  text-transform: none;
}

.page-heading .breadcrumb {
  display: block;
  margin: 0;
  font-size: 14px;
  color: var(--fp-dark);
}

.page-heading .breadcrumb a {
  color: var(--fp-dark);
  font-weight: 700;
}

@media (max-width: 767px) {
  .page-heading {
    padding: 140px 0 60px;
  }

  .page-heading h1 {
    font-size: 24px;
    letter-spacing: -0.5px;
    padding: 6px 20px;
  }
}

/*---------- Titres de section hérités ----------*/
.section-heading h2 {
  letter-spacing: -1.5px;
  text-transform: none;
}

/*---------- Boutons hérités (.main-button) au style 578 ----------*/
.main-button a {
  display: inline-block;
  height: auto;
  line-height: normal;
  background: var(--fp-secondary-ink);
  border-radius: var(--fp-radius-large);
  color: var(--fp-white);
  font-size: 16px;
  font-weight: 700;
  text-transform: none;
  padding: 12px 24px;
  transition: all .3s;
}

.main-button a:hover {
  background: var(--fp-primary);
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175);
  color: var(--fp-white);
}

/*---------- Pied de page (578) ----------*/
footer.fp-footer {
  margin-top: 0;
  min-height: 0;
  background: var(--fp-white);
  background-image: none;
  border-radius: 0;
  border-top: 1px solid var(--fp-border);
  padding: 40px 0;
  text-align: center;
}

footer.fp-footer .fp-social {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 8px;
}

footer.fp-footer .fp-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--fp-border);
  border-radius: var(--fp-radius-large);
  color: var(--fp-dark);
  font-size: 14px;
  transition: all .3s;
}

footer.fp-footer .fp-social a:hover {
  background: var(--fp-secondary-ink);
  border-color: transparent;
  color: var(--fp-white);
}

footer.fp-footer p.fp-copyright {
  margin: 0;
  padding: 0;
  font-size: 14px;
  color: var(--fp-p);
  line-height: 1.7;
}

footer.fp-footer .copyright-text {
  border-right: 1px solid var(--fp-border);
  padding-right: 25px;
  margin-right: 20px;
}

footer.fp-footer p.fp-copyright a {
  color: var(--fp-dark);
  font-weight: 700;
}

footer.fp-footer p.fp-copyright a:hover {
  color: var(--fp-secondary-ink);
}

@media (max-width: 575px) {
  footer.fp-footer .copyright-text {
    display: block;
    border-right: 0;
    padding-right: 0;
    margin-right: 0;
  }
}

/*---------- Page Projets : filtres en pastilles 578 ----------*/
.fp-filter {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.fp-filter li button {
  display: inline-block;
  background: transparent;
  cursor: pointer;
  min-width: 70px;
  padding: 8px 20px;
  border: 1px solid var(--fp-border);
  border-radius: 20px;
  font-size: 14px;
  font-weight: 500;
  color: var(--fp-p);
  text-align: center;
  transition: all .3s;
}

.fp-filter li button:hover,
.fp-filter li button.is_active {
  background: var(--fp-secondary-ink);
  border-color: transparent;
  color: var(--fp-white);
}

/* Isotope positionne les cartes : hauteur fixe pour une grille régulière */
.fp-projects-page .projects-thumb {
  height: 260px;
}

/*---------- Détail projet / formation : bloc principal ----------*/
.fp-single {
  margin-top: 80px;
}

.fp-single h4,
.fp-single .fp-single-title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -1.5px;
  margin-bottom: 8px;
}

.fp-single .projects-tag {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--fp-secondary-ink);
  text-transform: uppercase;
}

.fp-single p {
  margin: 16px 0 24px;
  color: var(--fp-p);
  line-height: 1.7;
}

.fp-single ul {
  margin-top: 0;
  border: 1px solid var(--fp-border);
  border-radius: 20px;
  overflow: hidden;
  padding: 0;
}

.fp-single ul li {
  margin: 0;
  padding: 13px 24px;
  font-size: 15px;
  color: var(--fp-p);
  background: var(--fp-section-bg);
}

.fp-single ul li:nth-child(even) {
  background: var(--fp-white);
}

.fp-single ul li span {
  width: 130px;
  color: var(--fp-secondary-ink);
  font-weight: 700;
}

.fp-single .sep {
  margin: 60px 0 0;
  background-color: var(--fp-border);
}

/* Logo du projet présenté sur un grand panneau */
.fp-logo-panel {
  background: var(--fp-white);
  border: 1px solid var(--fp-border);
  border-radius: 20px;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 50px;
}

.fp-logo-panel img {
  max-width: 80%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0;
}

/*---------- Onglets (Démarche / Résultats) ----------*/
.fp-tabs .tabs-content {
  background: var(--fp-section-bg);
  border-radius: 20px;
  padding: 40px;
}

.fp-tabs .tabs-content .nav-link {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--fp-p);
}

.fp-tabs .tabs-content .nav-tabs .nav-link.active {
  color: var(--fp-secondary-ink);
}

.fp-tabs .tab-content p {
  color: var(--fp-p);
  line-height: 1.7;
}

@media (max-width: 767px) {
  .fp-single {
    margin-top: 50px;
  }

  .fp-single h4,
  .fp-single .fp-single-title {
    font-size: 24px;
  }

  .fp-logo-panel {
    padding: 30px;
  }

  .fp-tabs .tabs-content {
    padding: 24px;
  }
}

/* Avatar contenant un logo : affiché en entier */
.fp-avatar-image.fp-avatar-logo {
  object-fit: contain;
  padding: 7px;
}

/*---------- Page Contact (Say Hi 578) ----------*/
.fp-contact {
  background: var(--fp-section-bg);
}

.fp-contact .contact-info {
  background: var(--fp-white);
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
  padding: 50px 30px 30px;
  height: 100%;
}

.fp-contact .contact-info-border-start {
  border-right: 1px solid var(--fp-border);
  border-radius: 10px 0 0 10px;
}

.fp-contact .contact-info p,
.fp-contact .contact-info a {
  font-size: 15px;
  color: var(--fp-p);
  overflow-wrap: anywhere;
}

.fp-contact .contact-info a:hover {
  color: var(--fp-secondary-ink);
}

.fp-footer-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--fp-dark);
  text-transform: uppercase;
}

.fp-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.fp-menu a {
  display: inline-block;
  border: 1px solid var(--fp-border);
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 500;
  color: var(--fp-p);
  transition: all .3s;
}

.fp-menu a:hover {
  background: var(--fp-secondary-ink);
  border-color: transparent;
  color: var(--fp-white);
}

.fp-social.fp-social-left {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 8px;
}

.fp-social.fp-social-left a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--fp-border);
  border-radius: var(--fp-radius-large);
  color: var(--fp-dark);
  font-size: 14px;
  transition: all .3s;
}

.fp-social.fp-social-left a:hover {
  background: var(--fp-secondary-ink);
  border-color: transparent;
  color: var(--fp-white);
}

.fp-contact .contact-form {
  margin-left: 10px;
}

.fp-custom-form .form-control {
  background: var(--fp-white);
  box-shadow: none;
  border: 2px solid var(--fp-border);
  border-radius: 10px;
  color: var(--fp-p);
  margin-bottom: 24px;
  outline: none;
}

.fp-custom-form .form-control:hover,
.fp-custom-form .form-control:focus {
  background: var(--fp-white);
  border-color: var(--fp-secondary);
}

.fp-custom-form .form-floating > label {
  color: var(--fp-p);
}

.fp-custom-form .form-floating textarea.form-control {
  height: 170px;
}

.fp-custom-form button[type="submit"] {
  background: var(--fp-secondary-ink);
  border: none;
  border-radius: var(--fp-radius-large);
  color: var(--fp-white);
  font-weight: 700;
  padding: 12px;
  margin-bottom: 0;
  transition: all .3s;
}

.fp-custom-form button[type="submit"]:hover,
.fp-custom-form button[type="submit"]:focus {
  background: var(--fp-primary);
  color: var(--fp-white);
}

.fp-alert-success {
  background: var(--fp-white);
  border: 2px solid var(--fp-secondary);
  border-radius: 10px;
  padding: 14px 18px;
  color: var(--fp-dark);
  font-weight: 500;
  margin-bottom: 24px;
}

.fp-errors {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  color: #c0392b;
  font-size: 14px;
}

@media screen and (max-width: 991px) {
  .fp-contact .contact-info {
    border-radius: 0 0 10px 10px;
    padding: 36px 26px;
  }

  .fp-contact .contact-info-border-start {
    border-right: 0;
    border-bottom: 1px solid var(--fp-border);
    border-radius: 10px 10px 0 0;
  }

  .fp-contact .contact-form {
    margin-left: 0;
  }
}

/*---------- Formations ----------*/
.fp-formations {
  padding-bottom: 80px;
}

.fp-formations .formation-card {
  background: var(--fp-section-bg);
  border: 1px solid var(--fp-border);
  border-radius: 20px;
  transition: border-color .3s;
}

.fp-formations .formation-card .formation-thumb {
  border-bottom: 1px solid var(--fp-border);
}

.fp-inscription {
  padding-bottom: 80px;
}

.fp-formations .formation-card:hover {
  border-color: var(--fp-secondary);
}

.fp-formations .formation-card h4,
.fp-formations .formation-card h3 {
  font-weight: 700;
  letter-spacing: -0.5px;
}

.fp-formations .formation-card p {
  color: var(--fp-p);
}

.fp-formations .formation-meta i {
  color: var(--fp-secondary-ink);
}

/* Formulaire d'inscription : champs au style 578 */
.fp-inscription .left-text {
  background: var(--fp-white);
  border: 1px solid var(--fp-border);
  border-radius: 20px;
}

.fp-inscription .left-text p {
  color: var(--fp-p);
}

.fp-inscription .right-content form .form-control,
.fp-inscription .right-content form .form-select {
  height: auto;
  min-height: 54px;
  background-color: var(--fp-white);
  border: 2px solid var(--fp-border);
  border-radius: 10px;
  padding: 13px 16px;
  font-size: 15px;
  color: var(--fp-p);
  margin-bottom: 20px;
  box-shadow: none;
}

.fp-inscription .right-content form textarea.form-control {
  height: 140px;
}

.fp-inscription .right-content form .form-control:hover,
.fp-inscription .right-content form .form-control:focus,
.fp-inscription .right-content form .form-select:hover,
.fp-inscription .right-content form .form-select:focus {
  border-color: var(--fp-secondary);
}

.fp-inscription .right-content form button {
  text-transform: none;
  font-weight: 700;
  font-size: 16px;
  padding: 0 32px;
}

.fp-inscription .right-content form button:hover {
  background-color: var(--fp-primary);
}

/* Le nouveau pied de page n'a plus de marge haute : espace sous la page CV */
.cv-page {
  padding-bottom: 80px;
}

/* Bouton du menu mobile : <button> sans apparence native */
.header-area .main-nav .menu-trigger {
  background: transparent;
  border: 0;
  padding: 0;
}

/* Cartes features : h3 (ordre des titres) avec le rendu des anciens h4 */
.features .item h3 {
  font-size: 17px;
  font-weight: 700;
  margin-top: 25px;
  margin-bottom: 0;
  text-transform: uppercase;
}

.fp-projects-page .projects-title {
  font-size: 18px;
}

.formation-contenu .fp-sub-title {
  font-size: 20px;
  font-weight: 700;
  margin: 10px 0 15px;
}

.fp-formations .formation-card h3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.5px;
  margin-bottom: 12px;
}

.fp-formations .formation-card h3 a {
  color: var(--fp-dark);
}

/* Sur-titre de section (remplace les h6 qui cassaient l'ordre des titres) */
.fp-eyebrow {
  display: block;
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--fp-secondary-ink);
}

/*---------- Features : 4 tuiles sur une seule ligne sur téléphone ----------*/
@media (max-width: 767px) {
  .features {
    margin-top: -60px;
  }

  .features .item {
    height: 100%;
    padding: 14px 2px 12px;
    border-radius: 14px;
  }

  .features .item .image {
    width: 44px;
    height: 44px;
    line-height: 44px;
  }

  .features .item .image img {
    padding: 6px;
  }

  .features .item {
    margin-bottom: 0;
  }

  .features .item h3 {
    font-size: 10px;
    line-height: 1.3;
    margin-top: 10px;
    letter-spacing: -0.1px;
    text-transform: none;
  }

  .features .col-3 > a {
    display: block;
    height: 100%;
  }
}

@media (max-width: 375px) {
  .features .item h3 {
    font-size: 9px;
  }

  .features .item .image {
    width: 40px;
    height: 40px;
  }
}

/*---------- Gestion : inscriptions aux formations ----------*/
.badge-statut.en_attente { background-color: #fff3e0; color: #a35f00; }
.badge-statut.confirme { background-color: #e3f2fd; color: #1565c0; }
.badge-statut.paye { background-color: #e8f5e9; color: #1b6e20; }

.gestion-pastille {
  display: inline-block;
  min-width: 20px;
  padding: 0 6px;
  margin-left: 4px;
  border-radius: 10px;
  background: #c0392b;
  color: var(--fp-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
}

.gestion-stats .stat-lien {
  color: inherit;
  border: 2px solid var(--fp-secondary);
}

.gestion-filtres {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.gestion-filtres label {
  font-weight: 700;
  font-size: 14px;
}

.gestion-filtres select,
.gestion-statut-form select {
  border: 1px solid var(--fp-border);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 14px;
  background: var(--fp-white);
}

.gestion-table-wrap {
  overflow-x: auto;
}

.gestion-contact a {
  display: block;
  font-size: 14px;
  white-space: nowrap;
}

.gestion-contact .lien-whatsapp {
  color: #128c4b;
  font-weight: 700;
}

.gestion-message-inscrit {
  color: var(--fp-p);
}

.gestion-statut-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.gestion-sous-titre {
  margin: 40px 0 15px;
  font-size: 22px;
  font-weight: 700;
}

/*---------- Formation : projets réalisés pendant le programme ----------*/
.fp-projets-formation {
  background: var(--fp-section-bg);
  margin-top: 60px;
}

.fp-projet-formation {
  background: var(--fp-white);
  border: 1px solid var(--fp-border);
  border-radius: 20px;
  padding: 26px 26px 22px;
  height: calc(100% - 24px);
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color .3s;
}

.fp-projet-formation:hover {
  border-color: var(--fp-secondary);
}

.fp-projet-numero {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--fp-secondary-ink);
}

.fp-projet-formation h3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.5px;
  margin: 0;
}

.fp-projet-formation p {
  color: var(--fp-p);
  line-height: 1.7;
  margin: 0;
  flex: 1;
}

.fp-competences {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.fp-competences li {
  font-size: 12px;
  font-weight: 500;
  color: var(--fp-primary);
  background: #eef0f8;
  border-radius: 20px;
  padding: 4px 10px;
}
