/* Couche finale commune à tout le site : icônes Phosphor (duotone, MIT) et rythme vertical.
   Chargée en dernier sur chaque page. Sprite : assets/icons/phosphor-sprite.svg */

/* ---------- Typographie : Plus Jakarta Sans (titres) + Inter (texte) ----------
   Polices libres (SIL Open Font License), servies depuis assets/fonts/ */
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/plus-jakarta-sans-latin-ext-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/plus-jakarta-sans-latin-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/inter-latin-ext-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/inter-latin-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  --font-display: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
  --font-text: "Inter", "Segoe UI", Arial, sans-serif;
}

body {
  font-family: var(--font-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1,
h2 {
  font-family: var(--font-display);
  font-weight: 800;
}

h3,
h4 {
  font-family: var(--font-display);
  font-weight: 700;
}

/* L'ancien réglage (-0.05 à -0.06em) était calibré pour Aptos ; Jakarta est plus large et se resserre trop */
h1,
h2 {
  letter-spacing: -0.03em !important;
}

h3,
h4 {
  letter-spacing: -0.015em !important;
}

p strong,
li strong,
dd strong {
  font-family: inherit;
}

/* ---------- Icônes ---------- */
:where(svg.ph) {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex: none;
  fill: currentColor;
  stroke: none;
  vertical-align: middle;
}

:where(svg.ph-sm) {
  width: 18px;
  height: 18px;
}

.ico-badge {
  display: inline-grid;
  width: 52px;
  height: 52px;
  flex: none;
  place-items: center;
  border-radius: 15px;
  color: var(--purple);
  background: var(--purple-soft);
  --ph-duo: var(--purple);
  --ph-duo-opacity: 0.25;
}

.ico-badge svg.ph {
  width: 28px;
  height: 28px;
}

.ico-badge-gold {
  color: #8a5f10;
  background: #fbf0d6;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.55;
}

/* ---------- Rythme vertical : sections moins espacées ---------- */
.section-pad {
  padding: clamp(64px, 7vw, 92px) 0;
}

.project-organizations-section,
.project-practice-bridge,
.practice-library-section,
.study-library-section {
  padding-top: clamp(60px, 6.5vw, 96px);
  padding-bottom: clamp(64px, 7vw, 104px);
}

.study-collections-section {
  padding: clamp(56px, 6vw, 88px) 0 clamp(60px, 6.5vw, 96px);
}

/* ---------- Accueil ---------- */
.impact-icon svg.ph {
  width: 26px;
  height: 26px;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.6;
}

.mission-values span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.mission-values svg.ph {
  width: 20px;
  height: 20px;
  color: var(--purple);
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.55;
}

.home-metrics-grid svg.metric-icon {
  width: 46px;
  height: 46px;
  padding: 10px;
  border-radius: 14px;
  color: #f1ce80;
  background: rgb(255 255 255 / 10%);
  --ph-duo: #f1ce80;
  --ph-duo-opacity: 0.3;
}

.priority-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
}

.priority-meta .priority-number {
  margin: 0;
}

.priority-body {
  min-height: 0;
}

.funding-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.funding-editorial .funding-card {
  grid-template-columns: 96px 1fr 0.85fr 1.4fr;
}

.funding-editorial .funding-index {
  padding-top: 0;
  align-self: center;
}

.funding-editorial .funding-card-featured .ico-badge-gold {
  color: #f1ce80;
  background: rgb(255 255 255 / 12%);
  --ph-duo: #f1ce80;
  --ph-duo-opacity: 0.35;
}

.project-org,
.resource-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.project-org svg.ph,
.resource-label svg.ph {
  width: 20px;
  height: 20px;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.6;
}

@media (max-width: 850px) {
  .funding-editorial .funding-card {
    grid-template-columns: 70px 1fr 1fr;
  }
}

@media (max-width: 520px) {
  .funding-editorial .funding-card {
    grid-template-columns: 1fr;
  }

  .funding-editorial .funding-card strong,
  .funding-editorial .funding-card dl {
    grid-column: auto;
  }

  .home-metrics-grid svg.metric-icon {
    width: 40px;
    height: 40px;
    padding: 8px;
  }
}

/* Les anciennes règles « svg { stroke } » ne doivent pas toucher les icônes Phosphor */
body svg.ph {
  fill: currentColor !important;
  stroke: none !important;
}

/* ---------- À propos ---------- */
.role-card-icon svg.ph {
  width: 28px;
  height: 28px;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.55;
}

.principle-badge {
  gap: 8px;
}

.principle-badge svg.ph {
  width: 18px;
  height: 18px;
}

/* ---------- Contact & signalement ---------- */
.line-icon svg.ph {
  width: 26px;
  height: 26px;
  --ph-duo: currentColor;
  --ph-duo-opacity: 0.3;
}

.reach-location > svg.ph {
  width: 28px;
  height: 28px;
  color: #e1bd70;
  --ph-duo: #e1bd70;
  --ph-duo-opacity: 0.3;
}

.reach-detail {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 14px;
  align-items: center;
}

.reach-detail .reach-ico {
  grid-row: span 2;
  width: 40px;
  height: 40px;
  padding: 9px;
  border-radius: 12px;
  color: #edbe59;
  background: rgb(255 255 255 / 8%);
  --ph-duo: #edbe59;
  --ph-duo-opacity: 0.3;
}

.reach-report {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  align-items: center;
}

.reach-report .reach-report-ico {
  grid-row: span 2;
  width: 32px;
  height: 32px;
  color: #edbe59;
}

.reach-report span {
  grid-column: 2;
}

.integrity-topic svg.ph {
  width: 40px;
  height: 40px;
  padding: 8px;
  border-radius: 11px;
  color: #7358b7;
  background: #f3effa;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.5;
}

.integrity-privacy {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.integrity-privacy svg.ph {
  margin-top: 2px;
}

/* ---------- Études ---------- */
.study-collection-icon svg.ph {
  width: 28px;
  height: 28px;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.55;
}

.study-page-chip,
.study-card-actions a,
.practice-place,
.practice-card-actions a,
.project-organization-meta span:last-child {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.study-card-actions a svg.ph,
.practice-card-actions a svg.ph {
  color: var(--purple);
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.5;
}

.project-organization-meta span:last-child {
  justify-content: flex-end;
}

.project-organization-meta svg.ph,
.practice-place svg.ph {
  width: 15px;
  height: 15px;
  flex: none;
}

.practice-search svg.ph {
  width: 22px;
  height: 22px;
}

/* ---------- Formations ---------- */
body[data-page="training"] .training-card-icon svg.ph {
  width: 22px;
  height: 22px;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.55;
}

.training-lang-icon svg.ph {
  width: 26px;
  height: 26px;
  color: var(--purple);
}

.module-hero-actions .button {
  gap: 10px;
}

.module-hero-actions .button svg.ph,
.button svg.ph-sm {
  width: 20px;
  height: 20px;
}

.file-row-title {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

svg.file-row-icon {
  width: 46px;
  height: 46px;
  padding: 10px;
  border-radius: 13px;
  color: var(--purple);
  background: var(--purple-soft);
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.55;
}

.file-actions a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

@media (max-width: 640px) {
  svg.file-row-icon {
    display: none;
  }
}

.study-collection-icon {
  margin-bottom: 26px;
}

/* ---------- Formations : cartes verticales (photo en haut, texte dessous) ---------- */
body[data-page="training"] .modules-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin-top: 40px;
}

body[data-page="training"] .training-visual-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 0;
  overflow: hidden;
  border-radius: 22px;
  background: #21133d;
  box-shadow: 0 18px 44px rgb(32 20 58 / 16%);
  transition: transform var(--transition), box-shadow var(--transition);
}

body[data-page="training"] .training-visual-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 56px rgb(32 20 58 / 24%);
}

body[data-page="training"] .training-card-media {
  width: 100%;
  height: 190px;
  min-height: 0;
  max-height: none;
  border-radius: 0;
  box-shadow: none;
}

body[data-page="training"] .training-card-overlay {
  flex: 1;
  width: auto;
  margin: 0;
  padding: 0 22px 22px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  justify-content: flex-start;
}

body[data-page="training"] .training-visual-card:hover .training-card-overlay {
  transform: none;
  box-shadow: none;
}

body[data-page="training"] .training-card-icon {
  width: 50px;
  height: 50px;
  margin: -25px 0 16px;
  border: 3px solid #21133d;
  border-radius: 15px;
  color: #21133d;
  background: var(--gold);
  --ph-duo: #21133d;
  --ph-duo-opacity: 0.25;
}

body[data-page="training"] .training-card-icon svg.ph {
  width: 24px;
  height: 24px;
}

body[data-page="training"] .training-card-kicker {
  color: var(--gold);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body[data-page="training"] .training-card-title {
  font-size: 1.12rem;
}

body[data-page="training"] .training-card-desc {
  flex: 1;
}

@media (max-width: 1180px) {
  body[data-page="training"] .modules-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body[data-page="training"] .modules-grid {
    grid-template-columns: 1fr;
  }
}

/* Accueil mobile : les points du carrousel restent sur la photo (700px de haut) */
@media (max-width: 720px) {
  .carousel-controls {
    top: 650px;
    bottom: auto;
  }
}

/* Mobile : la nouvelle police est un peu plus large, on évite tout débordement horizontal */
.method-grid > *,
.split > * {
  min-width: 0;
}

h1,
h2,
h3 {
  overflow-wrap: break-word;
}

.country-flags-inline {
  flex-wrap: wrap;
}

@media (max-width: 720px) {
  .carousel-controls {
    top: 610px;
  }
}

/* ---------- Accueil : 4 chiffres clés (dont « 2+ cycles de financement ») ---------- */
.home-metrics-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-metrics-grid > div {
  gap: 16px;
  padding-inline: clamp(16px, 2vw, 32px);
}

.home-metrics strong {
  font-size: clamp(2.1rem, 3.1vw, 3.3rem);
}

@media (min-width: 721px) and (max-width: 1100px) {
  .home-metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-metrics-grid > div,
  .home-metrics-grid > div:first-child,
  .home-metrics-grid > div:last-child {
    padding: 18px 24px;
    border-right: 0;
  }

  .home-metrics-grid > div:nth-child(odd) {
    border-right: 1px solid rgb(255 255 255 / 16%);
  }

  .home-metrics-grid > div:nth-child(-n + 2) {
    border-bottom: 1px solid rgb(255 255 255 / 16%);
  }
}

@media (max-width: 720px) {
  .home-metrics-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Accueil : titre + deux boutons visibles dès l'arrivée (ordinateur et tablette) ----------
   Le bloc photo prend la hauteur réelle de l'écran (moins l'en-tête) et le texte se cale en bas de la photo. */
@media (min-width: 721px) {
  .hero {
    min-height: 0;
  }

  .slides,
  .hero-center {
    /* +48px : les cartes violettes débordent de ~40px sur la photo ; on les pousse juste sous le bas de l'écran */
    height: clamp(520px, calc(100svh - var(--header-height) + 48px), 1100px);
    min-height: 0;
  }

  .hero-center {
    justify-content: flex-end;
    padding-bottom: clamp(96px, 13vh, 150px);
    transform: none;
  }
}

/* Meilleures pratiques mobile : le saut de ligne masqué collait « pratiques.Des » */
@media (max-width: 520px) {
  .practice-library-copy h1 br {
    display: inline;
  }
}

/* Mobile : zone tactile de 44px autour des points du carrousel (le point reste petit visuellement) */
.slide-dot {
  position: relative;
}

.slide-dot::after {
  content: "";
  position: absolute;
  inset: -14px;
}

/* Ponctuation des grands titres (voir footer.js) */
.tight-punct {
  margin-left: -0.09em;
}

/* Lisibilité : aucun petit libellé sous 12 px */
.study-card-meta,
.study-type-chip,
.study-page-chip,
.project-organization-meta,
.practice-card-meta span,
.funding-editorial .funding-card dt,
.home-metrics span,
.section-kicker,
.pf-label,
.pf-facts dt,
.project-country-chip,
.priority-number,
.funding-index,
.resource-label,
.project-org,
.mission-note span,
.training-card-kicker,
.reach-detail small,
.site-footer h2,
.site-footer-contact small,
.study-collection-card > span,
.study-card-countries,
.project-country-panel-heading span {
  font-size: max(0.75rem, 12px) !important;
}

/* Formulaire de contact : message de confirmation et solutions de repli */
.form-status:not(:empty) {
  display: grid;
  gap: 8px;
  margin-top: 16px;
  padding: 16px 18px;
  border: 1px solid rgb(103 80 181 / 18%);
  border-radius: 14px;
  color: #4d4459;
  background: #f6f3fb;
  font-size: 0.9rem;
  line-height: 1.55;
}

.form-status-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--purple-dark);
  font-weight: 700;
}

.form-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.form-status-actions a,
.form-status-actions button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border: 1px solid rgb(103 80 181 / 25%);
  border-radius: 999px;
  color: var(--purple-dark);
  background: #fff;
  font: 600 0.85rem var(--font-text, "Inter", sans-serif);
  cursor: pointer;
  text-decoration: none;
}

.form-status-actions a:hover,
.form-status-actions button:hover {
  border-color: var(--purple);
  color: var(--purple);
}

/* ---------- Page Équipe ---------- */
.team-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 24px;
  margin-bottom: 30px;
}

.team-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.team-filters button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid rgb(103 80 181 / 22%);
  border-radius: 999px;
  color: var(--purple-dark);
  background: #fff;
  font: 600 0.9rem var(--font-text, "Inter", sans-serif);
  cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.5;
}

.team-filters button span {
  padding: 1px 8px;
  border-radius: 999px;
  color: var(--purple);
  background: var(--purple-soft);
  font-size: 0.78rem;
}

.team-filters button:hover {
  border-color: var(--purple);
}

.team-filters button[aria-pressed="true"] {
  border-color: var(--purple);
  color: #fff;
  background: var(--purple);
}

.team-filters button[aria-pressed="true"] span {
  color: var(--purple-dark);
  background: #fff;
}

.team-count {
  color: #7d7290;
  font-size: 0.9rem;
  font-weight: 600;
}

body[data-page="team"] .team-grid {
  gap: 22px;
}

/* Portraits au format 4:5, cadrés sur le visage, quelle que soit la largeur de la carte */
body[data-page="team"] .team-card img {
  height: auto;
  aspect-ratio: 4 / 5;
  object-position: center 18%;
}

body[data-page="team"] .team-card-copy {
  min-height: 0;
  padding: 18px 20px 22px;
}

.team-card-group {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
  color: var(--purple);
  font-size: 0.75rem;
  font-weight: 700;
  --ph-duo: var(--gold);
  --ph-duo-opacity: 0.5;
}

.team-closing {
  padding: 0 0 clamp(56px, 6vw, 88px);
  background: #fff;
}

.team-closing-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: clamp(26px, 3.4vw, 42px);
  border-radius: 26px;
  color: #fff;
  background:
    radial-gradient(circle at 0% 100%, rgb(216 166 60 / 18%), transparent 20rem),
    linear-gradient(130deg, #3a2368, var(--purple-dark));
}

.team-closing-card h2 {
  margin: 8px 0;
  color: #fff;
  font-size: clamp(1.6rem, 2.6vw, 2.3rem);
}

.team-closing-card p:not(.section-kicker) {
  margin: 0;
  color: #ddd3ec;
}

.team-closing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* À propos : aperçu de l'équipe */
.team-teaser {
  padding: clamp(56px, 6vw, 88px) 0;
}

.team-teaser-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 32px;
  padding: clamp(26px, 3.4vw, 42px);
  border: 1px solid rgb(103 80 181 / 14%);
  border-radius: 26px;
  background: linear-gradient(135deg, #faf8fd, #f1edf9);
}

.team-teaser-copy h2 {
  margin: 8px 0 10px;
  color: var(--purple-dark);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.08;
}

.team-teaser-copy p:not(.section-kicker) {
  margin: 0 0 22px;
  color: #5f566a;
}

.team-teaser-faces {
  display: flex;
  align-items: center;
}

.team-teaser-faces img,
.team-teaser-faces span {
  width: 66px;
  height: 66px;
  margin-left: -16px;
  border: 3px solid #fff;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 20%;
  background: var(--purple-soft);
  box-shadow: 0 8px 20px rgb(47 27 91 / 14%);
}

.team-teaser-faces img:first-child {
  margin-left: 0;
}

.team-teaser-faces span {
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--purple);
  font-weight: 800;
}

@media (max-width: 1080px) {
  .team-teaser-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body[data-page="team"] .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  body[data-page="team"] .team-card-copy {
    padding: 14px 14px 16px;
  }

  body[data-page="team"] .team-card h3 {
    font-size: 0.98rem;
  }

  .team-teaser-faces img,
  .team-teaser-faces span {
    width: 48px;
    height: 48px;
    margin-left: -12px;
  }
}

@media (max-width: 1010px) and (min-width: 761px) {
  body[data-page="team"] .team-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ---------- Interrupteur de langue FR | EN ---------- */
.lang-switch {
  display: inline-flex;
  flex: none;
  padding: 3px;
  border: 1px solid rgb(103 80 181 / 22%);
  border-radius: 999px;
  background: #f6f3fb;
}

.lang-switch a {
  min-width: 38px;
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--purple-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
}

.lang-switch a:hover {
  color: var(--purple);
}

.lang-switch a[aria-current="true"] {
  color: #fff;
  background: var(--purple);
}

.mobile-nav .lang-switch-menu {
  align-self: flex-start;
  margin: 4px 0 10px;
}

.mobile-nav .lang-switch-menu a {
  min-width: 52px;
  padding: 8px 14px;
}

.header-inner > .lang-switch {
  margin-left: 4px;
}

@media (max-width: 1010px) {
  .header-inner > .lang-switch {
    margin-left: auto;
  }
}
