/* Réglages de lisibilité et palette plus lumineuse */
:root {
  --navy: #294044;
  --navy-mid: #46615e;
  --navy-deep: #1e2d30;
  --gold: #b77928;
  --gold-soft: #f2dfb6;
  --cream: #fffdf8;
  --cream-dark: #f3eee5;
  --text: #273237;
  --text-light: #5b6668;
  --border: rgba(183, 121, 40, 0.28);
}

body {
  font-size: 16px;
  line-height: 1.7;
  color: var(--text);
}

/* Les textes courants passent à une taille confortable, y compris sur mobile. */
p,
.hero-desc,
.bio-presentation-left p,
.bio-lead,
.bio-quote-card p,
.contact-intro,
.contact-form label,
.engagement-card p,
.philo-card p {
  font-size: 1.08rem;
  line-height: 1.8;
}

.nav-link,
.dropdown-link,
.topbar a,
.btn-primary-hero,
.btn-ghost-hero,
.hero-card-cta,
.bio-hero-nav-link {
  font-size: 0.9rem;
}

.logo-sub,
.hero-eyebrow span,
.hero-stat-label,
.bio-hero-tag,
.bio-cred-label {
  font-size: 0.78rem;
}

.hero,
.bio-hero {
  background: rgba(70, 97, 94, 0.82);
}

/* Hero d'accueil : le contenu principal doit rester lisible dès le premier écran. */
.hero-eyebrow span {
  font-size: 0.95rem;
}

.hero h1 {
  font-size: clamp(3.4rem, 5.8vw, 5.8rem);
}

.hero-desc {
  font-size: 1.22rem;
  line-height: 1.8;
}

.btn-primary-hero,
.btn-ghost-hero {
  font-size: 0.95rem;
}

.hero-card-name {
  font-size: 1.9rem;
}

.hero-card-title {
  font-size: 0.9rem;
}

.hero-card-tag {
  font-size: 1rem;
  line-height: 1.5;
  color: #ffffff !important;
}

.hero-card-tag span {
  color: #ffffff !important;
}

.hero-card-cta {
  font-size: 0.9rem;
}

.hero-bg {
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%, rgba(91, 126, 117, 0.5) 0%, transparent 70%),
    linear-gradient(135deg, rgba(30, 45, 48, 0.88) 0%, rgba(41, 64, 68, 0.82) 55%, rgba(70, 97, 94, 0.78) 100%);
}

.hero-desc {
  color: rgba(255, 255, 255, 0.9) !important;
}

.slide p {
  font-size: 1.08rem;
  color: rgba(255, 255, 255, 0.88) !important;
  line-height: 1.8;
}

.slide-tag span {
  font-size: 0.88rem;
}

.slide h2 {
  font-size: clamp(2.6rem, 4.5vw, 4rem);
}

.slide-btn {
  font-size: 0.92rem;
}

.slide-bg::after {
  background: linear-gradient(90deg, rgba(30, 45, 48, 0.62) 0%, rgba(30, 45, 48, 0.3) 50%, rgba(30, 45, 48, 0.15) 100%) !important;
}

.hero::before {
  background: linear-gradient(90deg, rgba(30, 45, 48, 0.45), rgba(30, 45, 48, 0.12)) !important;
}

.bio-hero-bg {
  filter: brightness(0.58) saturate(0.65);
}

.bio-hero-overlay {
  background: linear-gradient(180deg, rgba(30, 45, 48, 0.25) 0%, rgba(30, 45, 48, 0.55) 70%, rgba(30, 45, 48, 0.78) 100%);
}

.topbar,
.mobile-menu,
.section-kpi,
.bio-quote-card {
  background: var(--navy-deep);
}

.section-kpi {
  background: rgba(62, 88, 86, 0.58) !important;
}

.hero-card {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(242, 223, 182, 0.5);
}

.bio-cred-item {
  background: var(--cream-dark);
}

/* Les libellés de la bande de chiffres doivent rester lisibles sur le fond coloré. */
.kpi-label-carousel {
  color: #ffffff !important;
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.4;
}

.kpi-num-carousel {
  color: #ffffff !important;
}

/* Sections d'accueil : Expertises, Savoir et Témoignages */
#expertises .section-header-right p,
#savoir .section-header-right p,
#temoignages .section-header-right p,
#expertises .presta-card p,
#savoir .pub-card p,
#temoignages .temo-text {
  font-size: 1.25rem;
  line-height: 1.8;
}

#expertises .section-tag span,
#savoir .section-tag span,
#temoignages .section-tag span {
  font-size: 0.9rem;
}

#expertises .presta-card h3,
#savoir .pub-card h3 {
  font-size: 1.8rem;
}

#expertises .presta-cat,
#savoir .pub-type,
#expertises .presta-link,
#savoir .pub-link,
#temoignages .temo-name,
#temoignages .temo-role {
  font-size: 0.95rem;
}

#temoignages .temo-name {
  line-height: 1.4;
}

@media (max-width: 700px) {
  #expertises .section-header-right p,
  #savoir .section-header-right p,
  #temoignages .section-header-right p,
  #expertises .presta-card p,
  #savoir .pub-card p,
  #temoignages .temo-text {
    font-size: 1.12rem;
    line-height: 1.75;
  }

  #expertises .presta-card h3,
  #savoir .pub-card h3 {
    font-size: 1.6rem;
  }

  .hero-eyebrow span {
    font-size: 0.82rem;
  }

  .hero h1 {
    font-size: clamp(2.9rem, 12vw, 4.2rem);
  }

  .hero-desc {
    font-size: 1.1rem;
  }

  .btn-primary-hero,
  .btn-ghost-hero,
  .hero-card-cta {
    font-size: 0.88rem;
  }

  .hero-card-name {
    font-size: 1.65rem;
  }

  .hero-card-tag {
    font-size: 0.95rem;
  }

  .slide-tag span {
    font-size: 0.8rem;
  }

  .slide h2 {
    font-size: clamp(2.1rem, 9vw, 3.2rem);
  }

  .slide p {
    font-size: 1.08rem;
  }

  .slide-btn {
    font-size: 0.86rem;
  }
}

@media (max-width: 700px) {
  body {
    font-size: 16px;
  }

  p,
  .hero-desc,
  .bio-presentation-left p,
  .bio-lead,
  .bio-quote-card p,
  .contact-intro,
  .contact-form label,
  .engagement-card p,
  .philo-card p {
    font-size: 1rem;
    line-height: 1.75;
  }

  .header-inner {
    padding-left: 24px;
    padding-right: 24px;
  }
}