/* ============================================================
   GRAPHCONNECT — DESIGN SYSTEM SOCIAL
   Surfaces claires, accents rouge/bordeaux et typographie
   Poppins sur tous les textes.
   ============================================================ */

/* Poppins hébergée localement (licence OFL), sans requête externe. */
@font-face {
  font-family: "Poppins";
  src: url("../Poppins-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Poppins";
  src: url("../Poppins-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Poppins";
  src: url("../Poppins-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Poppins";
  src: url("../Poppins-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

:root {
  /* --- Toile de fond --- */
  --gc-bg: #F7F7F8;
  --gc-canvas-2: #F0F0F2;

  /* --- Encre / texte (noms conservés pour compat. inline) --- */
  --gc-text: #202024;
  --gc-text-muted: #66666D;
  --gc-ink-faint: #8A8A91;

  /* --- Surfaces vitrées (noms conservés) --- */
  --gc-surface: #FFFFFF;
  --gc-surface-2: #FFFFFF;
  --gc-surface-alt: rgba(238,0,57,0.06);
  --gc-border: #EAEAEA;

  /* --- Accents GraphConnect --- */
  --gc-primary: #EE0039;
  --gc-primary-2: #54091B;
  --gc-primary-soft: rgba(238,0,57,0.09);
  --gc-coral: #EE0039;
  --gc-gradient: linear-gradient(135deg, #EE0039 0%, #B90031 54%, #54091B 100%);

  --gc-success: #238457;
  --gc-success-soft: rgba(35,132,87,0.12);
  --gc-warning: #B56B00;
  --gc-warning-soft: rgba(181,107,0,0.12);
  --gc-danger: #B90031;
  --gc-danger-soft: rgba(238,0,57,0.10);

  /* --- Formes --- */
  --gc-radius: 0.875rem;
  --gc-radius-sm: 0.5rem;
  --gc-radius-lg: 1rem;

  /* --- Verre --- */
  --gc-glass-border: #EAEAEA;
  --gc-blur: none;
  --gc-sheen: none;

  /* --- Ombres --- */
  --gc-shadow: 0 16px 40px -28px rgba(30,24,29,0.22), 0 2px 7px rgba(30,24,29,0.04);
  --gc-shadow-sm: 0 4px 16px rgba(30,24,29,0.04);
  --gc-shadow-glow: 0 5px 15px rgba(238,0,57,0.18);

  /* --- Largeurs standard du web (Behance ≈ 1200-1440 px de contenu utile) --- */
  --gc-container: 1280px;   /* colonne de contenu principale */
  --gc-navbar-w: 1440px;    /* barre de navigation, un cran plus large */
  --gc-wide: 1600px;        /* galeries pleine largeur si besoin */
  /* Marge latérale fluide : 16 px sur téléphone, 32 px sur ordinateur */
  --gc-gutter: clamp(1rem, 3vw, 2rem);

  /* --- Typo --- */
  --gc-font: 'Poppins', sans-serif;
  --gc-font-display: 'Poppins', sans-serif;
}

* { box-sizing: border-box; }

/* ------------------------------------------------------------
   ÉCHELLE DU SITE — 1 rem = 16 px, la base standard du web.
   Plus aucun « zoom » global : la mise en page s'adapte par la
   grille et les points de rupture, comme sur Behance, Dribbble
   ou Figma. Le site respecte ainsi la taille de police choisie
   par l'utilisateur dans son navigateur (accessibilité).
   ------------------------------------------------------------ */
html {
  font-size: 100%;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;   /* aucun débordement latéral sur téléphone */
  font-family: var(--gc-font);
  font-size: 1rem;      /* 16 px — taille de lecture standard */
  color: var(--gc-text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  background-color: var(--gc-bg);
}
button, input, select, textarea { font-family: var(--gc-font); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
h1, h2, h3, h4, .gc-logo, .gc-card__title, .gc-hero h1, .gc-discover__title,
.gc-section__title, .gc-cta-banner h2 { font-family: var(--gc-font-display); }
/* Échelle de titres fluide : lisible sur téléphone, généreuse sur grand écran.
   clamp(mini, fluide, maxi) — plus besoin de redéfinir chaque titre par média. */
h1 { font-size: clamp(1.9rem, 1.35rem + 2.1vw, 2.65rem); line-height: 1.12; letter-spacing: -0.035em; font-weight: 800; }
h2 { font-size: clamp(1.4rem, 1.13rem + 1vw, 1.8rem); line-height: 1.2; letter-spacing: -0.025em; font-weight: 750; }
h3 { font-size: clamp(1.125rem, 1rem + 0.45vw, 1.3rem); line-height: 1.28; letter-spacing: -0.012em; font-weight: 700; }
h4 { font-size: 1.05rem; line-height: 1.35; font-weight: 700; }
h1, h2, h3, h4 { text-wrap: pretty; }
h1 { margin: 0 0 0.75rem; }
h2, h3, h4 { margin: 0 0 0.625rem; }
/* les tableaux héritent de la police du site (et pas de celle du navigateur) */
table, th, td { font-family: inherit; font-size: inherit; }

:focus-visible {
  outline: 2px solid var(--gc-primary);
  outline-offset: 2px;
  border-radius: 0.375rem;
}

::-webkit-scrollbar { width: 0.625rem; height: 0.625rem; }
::-webkit-scrollbar-thumb { background: rgba(28,30,42,0.18); border-radius: 999px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

.gc-logo { font-weight: 800; font-size: 1.25rem; letter-spacing: -0.02em; color: var(--gc-text); white-space: nowrap; flex-shrink: 0; }
.gc-logo span { background: var(--gc-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* --- Navbar --- */
.gc-navbar {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,0.55);
  backdrop-filter: var(--gc-blur);
  -webkit-backdrop-filter: var(--gc-blur);
  border-bottom: 1px solid var(--gc-glass-border);
  box-shadow: 0 1px 0 rgba(255,255,255,0.7), 0 12px 30px -20px rgba(46,36,110,0.35);
}
.gc-navbar__inner {
  /* un peu plus large que le contenu : 9 liens + logo + actions */
  max-width: var(--gc-navbar-w); margin: 0 auto;
  padding: 0.625rem var(--gc-gutter);
  min-height: 4rem; /* hauteur de barre standard (64 px) */
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.gc-navbar__links { display: flex; gap: 0.125rem; flex: 1 1 auto; min-width: 0; justify-content: center; }
.gc-navbar__group { display: contents; }
.gc-navbar__group-title, .gc-navbar__link-icon { display: none; }
/* nowrap : les libellés ne se cassent plus sur 2-3 lignes */
.gc-navbar__links a { padding: 0.5rem 0.6875rem; border-radius: 999px; color: var(--gc-text-muted); font-size: 0.875rem; font-weight: 600; white-space: nowrap; transition: background .15s ease, color .15s ease; }
/* Entre 1180 et 1440 px, les 9 liens deviennent serrés : on resserre plutôt que de replier */
@media (min-width: 1181px) and (max-width: 1440px) {
  .gc-navbar__links a { padding: 0.5rem 0.4375rem; font-size: 0.8125rem; }
}
.gc-navbar__links a:hover { color: var(--gc-text); background: rgba(110,59,35,0.10); }
.gc-nav-more { position: relative; display: flex; align-items: center; }
.gc-nav-more__summary { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.5rem 0.6875rem; border-radius: 999px; color: var(--gc-text-muted); font-size: 0.875rem; font-weight: 600; white-space: nowrap; cursor: pointer; list-style: none; }
.gc-nav-more__summary::-webkit-details-marker { display: none; }
.gc-nav-more__summary:hover, .gc-nav-more[open] > .gc-nav-more__summary { color: var(--gc-text); background: rgba(110,59,35,0.10); }
.gc-nav-more__menu { position: absolute; top: calc(100% + 0.5rem); right: 0; z-index: 120; display: grid; min-width: 13rem; padding: 0.5rem; gap: 0.15rem; border: 1px solid var(--gc-border); border-radius: var(--gc-radius); background: #fff; box-shadow: var(--gc-shadow); }
.gc-nav-more__menu a { display: flex; align-items: center; gap: 0.625rem; padding: 0.625rem 0.75rem; border-radius: 0.5rem; color: var(--gc-text); font-size: 0.9rem; }
.gc-nav-more__menu a:hover { background: var(--gc-primary-soft); }
.gc-nav-more__summary .gc-icon { width: 0.875rem; height: 0.875rem; }
.gc-navbar__actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.gc-navbar__actions .gc-btn { white-space: nowrap; }
.gc-navbar__mobile-only { display: none; } /* lien dupliqué, visible seulement dans le menu burger sur téléphone */
.gc-navbar__mobile-login { display: none; }
.gc-navbar__mobile-pages { display: none; }
.gc-navbar__toggle {
  display: none; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  width: 2.375rem; height: 2.375rem; padding: 0; border-radius: 999px; flex-shrink: 0;
  background: none; border: none; cursor: pointer; color: var(--gc-text);
}
.gc-navbar__toggle:hover { background: rgba(110,59,35,0.10); }
.gc-navbar__toggle span { display: block; width: 1.1rem; height: 2px; border-radius: 2px; background: currentColor; }

/* Menu replié (burger) dès que les 9 liens ne tiennent plus sur une ligne */
@media (max-width: 1180px) {
  .gc-logo { margin-right: auto; }
  .gc-navbar__actions { order: 2; display: flex; gap: 0.25rem; }
  .gc-navbar__actions--guest { display: none; }
  .gc-navbar__toggle { display: inline-flex; order: 3; }
  .gc-navbar__mobile-login { display: inline-flex; order: 4; padding: 0.5rem 0.875rem; min-height: 2.5rem; font-size: 0.8125rem; white-space: nowrap; }
  .gc-navbar__links {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 2px;
    padding: 0.5rem var(--gc-gutter) 1rem;
    background: #fbf9f7; /* opaque : sinon le contenu de la page transparaît derrière le menu */
    border-bottom: 1px solid var(--gc-glass-border);
    box-shadow: 0 18px 30px -20px rgba(46,36,110,0.35);
    max-height: calc(100dvh - 4rem); overflow-y: auto;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  }
  .gc-navbar__links.is-open { display: flex; }
  /* 44 px de haut : la cible tactile recommandée */
  .gc-navbar__links a { display: flex; align-items: center; min-height: 2.75rem; padding: 0.625rem 0.875rem; border-radius: 0.625rem; font-size: 0.9375rem; }
  .gc-navbar__links .gc-nav-more { display: block; margin-top: 0.25rem; }
  .gc-navbar__mobile-pages { display: contents; }
  .gc-navbar__menu-heading {
    grid-column: 1 / -1;
    margin: 0.5rem 0 0.125rem;
    padding: 0.25rem 0.2rem;
    color: var(--gc-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    line-height: 1.3;
    text-transform: uppercase;
  }
}

/* Photos de profil cohérentes partout : carré stable, recadrage circulaire sans déformation. */
img.gc-avatar,
.gc-new-members__avatar img,
.gc-creator-strip__avatar img {
  display: block;
  box-sizing: border-box;
  aspect-ratio: 1 / 1;
  flex: 0 0 auto;
  max-width: none;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 50%;
}
.gc-avatar-link,
.gc-new-members__avatar,
.gc-creator-strip__avatar {
  flex-shrink: 0;
  aspect-ratio: 1 / 1;
}
.gc-new-members__avatar img,
.gc-creator-strip__avatar img {
  width: 100%;
  height: 100%;
}

/* Préférences d’interface : thème, sons et mouvements adaptés à l’écran. */



  .gc-navbar__toggle:focus-visible,
  .gc-navbar__mobile-login:focus-visible,
.gc-navbar__links a:focus-visible { outline: 3px solid var(--gc-primary); outline-offset: 2px; }
.gc-navbar__toggle[aria-expanded="true"] span:first-child { transform: translateY(6px) rotate(45deg); }
.gc-navbar__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.gc-navbar__toggle[aria-expanded="true"] span:last-child { transform: translateY(-6px) rotate(-45deg); }
.gc-navbar__toggle span { transition: transform .18s ease, opacity .18s ease; }
.gc-mobile-nav { display: none; }

/* --- Boutons --- */
.gc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.5625rem 1.125rem; min-height: 2.5rem; border-radius: 999px;
  font-weight: 700; font-size: 0.875rem; line-height: 1.2;
  font-family: var(--gc-font-display);
  border: 1px solid transparent; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.gc-btn:hover { transform: translateY(-1px); }
.gc-btn:active { transform: translateY(0); }
.gc-btn--primary { background: var(--gc-gradient); color: #fff; box-shadow: var(--gc-shadow-glow), var(--gc-sheen); }
.gc-btn--primary:hover { box-shadow: 0 14px 34px -8px rgba(110,59,35,0.55), var(--gc-sheen); }
.gc-btn--ghost { background: rgba(255,255,255,0.55); backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur); border-color: var(--gc-glass-border); color: var(--gc-text); box-shadow: var(--gc-sheen); }
.gc-btn--ghost:hover { background: rgba(255,255,255,0.75); }
.gc-btn.gc-navbar__mobile-login,
.gc-navbar__actions--guest .gc-btn--ghost { background: var(--gc-primary); border-color: var(--gc-primary); color: #fff; box-shadow: none; }
.gc-btn.gc-navbar__mobile-login:hover,
.gc-navbar__actions--guest .gc-btn--ghost:hover { background: #C90031; border-color: #C90031; color: #fff; }
.gc-btn--outline { background: transparent; border-color: var(--gc-primary); color: var(--gc-primary); }
.gc-btn--outline:hover { background: var(--gc-primary-soft); }
.gc-btn--block { width: 100%; }
.gc-btn--danger { background: var(--gc-danger); color: #fff; box-shadow: 0 10px 24px -8px rgba(255,92,114,0.55); }
.gc-btn--sm { padding: 0.375rem 0.8125rem; min-height: 2rem; font-size: 0.8125rem; }

.gc-icon-btn { position: relative; font-size: 1.1rem; opacity: .8; width: 2.375rem; height: 2.375rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; transition: background .15s ease, opacity .15s ease; }
.gc-icon-btn:hover { opacity: 1; background: rgba(110,59,35,0.10); }
.gc-badge {
  position: absolute; top: 2px; right: 2px; background: var(--gc-coral);
  color: #fff; font-size: 0.75rem; font-weight: 700; padding: 1px 0.375rem; border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.7);
}

.gc-avatar {
  width: 2.5rem; height: 2.5rem;
  aspect-ratio: 1 / 1;          /* toujours carré -> cercle parfait */
  flex: 0 0 auto;               /* ne se fait jamais écraser par un parent flex */
  max-width: none; min-width: 0; /* neutralise img { max-width: 100% } */
  border-radius: 50%; object-fit: cover; object-position: center;
  border: 2px solid rgba(255,255,255,0.8); box-shadow: 0 0 0 1px var(--gc-border);
}
.gc-avatar--sm { width: 2.125rem; height: 2.125rem; }
.gc-avatar--xs { width: 1.375rem; height: 1.375rem; border-width: 1px; }
.gc-avatar--md { width: 3.5rem; height: 3.5rem; }
.gc-avatar-link { display: inline-flex; border-radius: 50%; }
.gc-avatar-link:hover .gc-avatar { border-color: var(--gc-primary); }

/* --- Layout --- */
/* Lien "Aller au contenu" : invisible tant qu'il n'a pas le focus clavier,
   pour ne pas gêner l'affichage habituel mais permettre à un utilisateur au
   clavier/lecteur d'écran de sauter directement le header et la sidebar. */
.gc-skip-link {
  position: absolute; top: -3rem; left: 0.5rem; z-index: 1000;
  background: var(--gc-primary); color: #fff; padding: 0.625rem 1rem;
  border-radius: 0 0 0.5rem 0.5rem; font-weight: 600; text-decoration: none;
  transition: top .15s ease;
}
.gc-skip-link:focus { top: 0; }

.gc-main { min-height: 70vh; }
/* Conteneur standard : centré, largeur max. 1280 px, marge latérale fluide */
.gc-container { width: 100%; max-width: calc(var(--gc-container) + 2 * var(--gc-gutter)); margin: 0 auto; padding: 0 var(--gc-gutter); }
.gc-container--wide { max-width: calc(var(--gc-wide) + 2 * var(--gc-gutter)); }
.gc-section { padding-top: 2.5rem; padding-bottom: 2.5rem; } /* ne touche plus au padding horizontal de .gc-container */

/* Grilles fluides : les colonnes se réduisent d'elles-mêmes, aucun média requis.
   minmax() garantit qu'une carte ne descend jamais sous une largeur lisible. */
.gc-grid { display: grid; gap: 1.5rem; }
.gc-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.gc-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.gc-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }

.gc-app-layout {
  display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: 1.5rem;
  width: 100%; max-width: calc(var(--gc-container) + 2 * var(--gc-gutter));
  margin: 1.5rem auto; padding: 0 var(--gc-gutter); align-items: start;
}

/* --- Sidebar (panneau) --- */
.gc-sidebar {
  background: var(--gc-surface);
  backdrop-filter: var(--gc-blur);
  -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid var(--gc-glass-border);
  border-radius: var(--gc-radius-lg);
  padding: 0.75rem;
  height: fit-content;
  max-height: calc(100dvh - 6rem);
  overflow-y: auto;
  position: sticky; top: 4.75rem;
  box-shadow: var(--gc-shadow-sm), var(--gc-sheen);
}
.gc-sidebar__user {
  display: flex; align-items: center; gap: 0.625rem;
  padding: 0.375rem 0.5rem 0.75rem; margin-bottom: 0.5rem;
  border-bottom: 1px solid var(--gc-border);
}
.gc-sidebar__user .gc-avatar { width: 2.125rem; height: 2.125rem; }
.gc-sidebar__user strong { display: block; font-family: var(--gc-font-display); font-size: 0.9375rem; line-height: 1.2; }
.gc-sidebar__user .gc-tag {
  display: inline-block; margin-top: 2px; font-size: 0.75rem; font-weight: 700;
  padding: 1px 0.4375rem; border-radius: 999px; color: var(--gc-primary); background: var(--gc-primary-soft);
}
.gc-sidebar__nav { display: flex; flex-direction: column; gap: 1px; }
.gc-sidebar__group-label {
  margin: 0.875rem 0.5rem 0.25rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.02em;
  color: var(--gc-ink-faint); text-transform: uppercase;
}
.gc-sidebar__group-label:first-child { margin-top: 0.25rem; }

/* --- Sidebar : sections repliables (accordéon) --- */
.gc-sidebar__group { margin-top: 0.125rem; }
.gc-sidebar__group summary.gc-sidebar__group-label {
  display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
  cursor: pointer; padding: 0.4375rem 0.5rem; border-radius: 0.5rem;
  list-style: none; user-select: none; margin: 0.25rem 0 0.125rem;
  transition: background .15s ease, color .15s ease;
}
.gc-sidebar__group summary.gc-sidebar__group-label::-webkit-details-marker { display: none; }
.gc-sidebar__group summary.gc-sidebar__group-label:hover { background: rgba(110,59,35,0.08); color: var(--gc-text); }
.gc-sidebar__chevron { transition: transform .18s ease; flex-shrink: 0; }
.gc-sidebar__group[open] > summary .gc-sidebar__chevron { transform: rotate(180deg); }
.gc-sidebar__group-body { display: flex; flex-direction: column; gap: 1px; }
.gc-sidebar__group:not([open]) .gc-sidebar__group-body { display: none; }
.gc-sidebar__nav a {
  display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.6875rem; border-radius: 0.625rem;
  color: var(--gc-text-muted); font-size: 0.875rem; font-weight: 600; line-height: 1.3;
  transition: background .15s ease, color .15s ease, transform .1s ease;
}
.gc-sidebar__icon { width: 1.25rem; height: 1.25rem; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gc-sidebar__icon .gc-icon { width: 100%; height: 100%; }
.gc-sidebar__label { flex: 1; }
.gc-sidebar__nav a:hover { background: rgba(110,59,35,0.10); color: var(--gc-text); }
.gc-sidebar__nav a.is-active {
  background: var(--gc-gradient); color: #fff; box-shadow: var(--gc-shadow-glow), var(--gc-sheen);
}
.gc-sidebar__nav a.is-active .gc-badge-count { background: rgba(255,255,255,0.35); }

/* --- Cards --- */
.gc-card {
  background: var(--gc-surface);
  backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid var(--gc-glass-border);
  border-radius: var(--gc-radius);
  overflow: hidden;
  box-shadow: var(--gc-shadow-sm), var(--gc-sheen);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.gc-card:hover { transform: translateY(-4px); box-shadow: var(--gc-shadow), var(--gc-sheen); border-color: rgba(110,59,35,0.35); }
.gc-card__body { padding: 1.25rem; }
.gc-card__title { font-weight: 700; margin: 0 0 0.375rem; }
.gc-card__meta { font-size: 0.8rem; color: var(--gc-text-muted); margin-block: 0.4rem; }

/* --- Forms --- */
.gc-form {
  max-width: 26.25rem; margin: 2.25rem auto;
  background: var(--gc-surface);
  backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid var(--gc-glass-border);
  border-radius: var(--gc-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--gc-shadow), var(--gc-sheen);
}
.gc-form--wide { max-width: 40rem; }
.gc-field { margin-bottom: 1.125rem; }
.gc-field label { display: block; font-size: 0.875rem; font-weight: 700; margin-bottom: 0.375rem; color: var(--gc-text-muted); }
.gc-field input, .gc-field select, .gc-field textarea {
  width: 100%; padding: 0.6875rem 0.875rem; background: var(--gc-surface-2); border: 1px solid var(--gc-border);
  border-radius: var(--gc-radius-sm); color: var(--gc-text); font-family: var(--gc-font); font-size: 0.9375rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.gc-field input:focus, .gc-field select:focus, .gc-field textarea:focus {
  outline: none; border-color: var(--gc-primary); box-shadow: 0 0 0 4px var(--gc-primary-soft);
}
.gc-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.875rem; }

/* --- Flash / alertes --- */
.gc-flash {
  max-width: var(--gc-container); margin: 0.75rem var(--gc-gutter) 0; margin-inline: auto; width: calc(100% - 2 * var(--gc-gutter));
  padding: 0.75rem 1rem; border-radius: var(--gc-radius-sm);
  font-size: 0.9rem; font-weight: 600;
  backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid transparent;
}
.gc-flash--success { background: var(--gc-success-soft); color: #0F8F62; border-color: rgba(31,182,129,0.3); }
.gc-flash--error { background: var(--gc-danger-soft); color: #D93B52; border-color: rgba(255,92,114,0.3); }
.gc-flash--info { background: var(--gc-primary-soft); color: var(--gc-primary); border-color: rgba(110,59,35,0.3); }

/* --- Hero --- */
.gc-hero { text-align: center; padding: 4rem var(--gc-gutter) 3rem; }
.gc-hero h1 { font-size: clamp(1.6rem, 3.4vw, 2.5rem); font-weight: 800; letter-spacing: -0.03em; margin-bottom: 0.875rem; }
.gc-hero h1 .grad { background: var(--gc-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gc-hero p { color: var(--gc-text-muted); font-size: 1.0625rem; max-width: 33.75rem; margin: 0 auto 1.375rem; }
.gc-hero__actions { display: flex; gap: 0.75rem; justify-content: center; }

/* --- Badges de statut --- */
.gc-status { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; }
.gc-status--pending { background: var(--gc-warning-soft); color: #B6791B; }
.gc-status--active { background: var(--gc-success-soft); color: #0F8F62; }
.gc-status--suspended, .gc-status--rejected { background: var(--gc-danger-soft); color: #D93B52; }

/* --- Footer --- */
.gc-footer { border-top: 1px solid var(--gc-border); margin-top: 3.5rem;
  padding: 2.5rem var(--gc-gutter) calc(1.5rem + env(safe-area-inset-bottom, 0px)); }
.gc-footer__inner { max-width: var(--gc-container); margin: 0 auto; width: 100%; display: flex; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.gc-footer__brand { max-width: 20rem; color: var(--gc-text-muted); font-size: 0.88rem; }
.gc-footer__links { display: flex; gap: 3.75rem; }
.gc-footer__links h4 { font-size: 0.85rem; margin-bottom: 0.75rem; color: var(--gc-text-muted); font-family: var(--gc-font-display); }
.gc-footer__links a { display: block; font-size: 0.88rem; color: var(--gc-text-muted); margin-bottom: 0.5rem; }
.gc-footer__links a:hover { color: var(--gc-primary); }
.gc-footer__bottom { max-width: var(--gc-container); margin: 1.75rem auto 0; padding-top: 1.25rem; border-top: 1px solid var(--gc-border); font-size: 0.8rem; color: var(--gc-ink-faint); }

/* --- Fil d'actualité (Phase 1) --- */
.gc-composer textarea {
  width: 100%; min-height: 4.375rem; padding: 0.75rem 0.875rem; background: var(--gc-surface-2);
  border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); color: var(--gc-text);
  font-family: var(--gc-font); font-size: 0.92rem; resize: vertical;
}
.gc-composer textarea:focus { outline: none; border-color: var(--gc-primary); box-shadow: 0 0 0 4px var(--gc-primary-soft); }
.gc-composer__row { display: flex; gap: 0.625rem; flex-wrap: wrap; align-items: center; margin: 0.625rem 0; }
.gc-composer__attach { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.5rem 0.875rem; border-radius: 999px; border: 1px solid var(--gc-border); background: rgba(255,255,255,0.5); cursor: pointer; font-size: 0.85rem; color: var(--gc-text-muted); }
.gc-composer__attach:hover { color: var(--gc-text); border-color: var(--gc-primary); }
.gc-composer__link { flex: 1; min-width: 12.5rem; padding: 0.5625rem 0.875rem; background: var(--gc-surface-2); border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); color: var(--gc-text); }
.gc-composer__row select { padding: 0.5625rem 0.875rem; background: var(--gc-surface-2); border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); color: var(--gc-text); }
.gc-composer__filename { min-height: 1em; color: var(--gc-text-muted); font-size: 0.85rem; }

.gc-feed-tabs { display: flex; gap: 0.5rem; margin: 1.5rem 0 1rem; border-bottom: 1px solid var(--gc-border); }
.gc-feed-tabs a { padding: 0.625rem 0.25rem; margin-right: 1.25rem; color: var(--gc-text-muted); font-weight: 700; font-size: 0.92rem; border-bottom: 2px solid transparent; }
.gc-feed-tabs a.is-active { color: var(--gc-primary); border-bottom-color: var(--gc-primary); }

.gc-feed { display: flex; flex-direction: column; gap: 1rem; }
.gc-feed-item {
  background: var(--gc-surface);
  backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid var(--gc-glass-border); border-radius: var(--gc-radius);
  padding: 1.25rem; box-shadow: var(--gc-shadow-sm), var(--gc-sheen);
}
.gc-feed-item__head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; }
.gc-feed-item__head > div { flex: 1; }
.gc-feed-item__author { font-weight: 700; }
.gc-feed-item__type { font-size: 0.75rem; color: var(--gc-text-muted); }
.gc-feed-item__body { margin: 0 0 0.625rem; }
.gc-feed-item__text { white-space: pre-wrap; margin: 0 0 0.625rem; }
.gc-feed-item__media { width: 100%; border-radius: var(--gc-radius-sm); margin-bottom: 0.625rem; max-height: 30rem; object-fit: cover; }
.gc-feed-item__media--project { aspect-ratio: 4 / 3; max-height: none; }
.gc-feed-item__media--project-video { aspect-ratio: 16 / 9; max-height: 70vh; object-fit: contain; background: #111; }
.gc-project-detail-video { display: block; width: 100%; max-height: 76vh; margin: 0 0 1.25rem; border-radius: var(--gc-radius); background: #111; object-fit: contain; }
.gc-feed-item__link { display: inline-block; margin-bottom: 0.625rem; color: var(--gc-primary); font-size: 0.88rem; font-weight: 600; }
.gc-feed-item__ref-card { display: block; padding: 0.75rem 0.875rem; border: 1px solid var(--gc-border); background: rgba(255,255,255,0.4); border-radius: var(--gc-radius-sm); margin-bottom: 0.625rem; }
.gc-feed-item__actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.375rem; }
.gc-feed-item__comments { margin-top: 0.875rem; padding-top: 0.875rem; border-top: 1px solid var(--gc-border); }
.gc-feed-item__comment-list { display: flex; flex-direction: column; gap: 0.625rem; margin-bottom: 0.625rem; }
.gc-feed-item__comment { display: flex; gap: 0.625rem; }
.gc-feed-item__comment p { margin: 2px 0; font-size: 0.88rem; }
.gc-feed-item__comment-form { display: flex; gap: 0.5rem; }
.gc-feed-item__comment-form input { flex: 1; padding: 0.5625rem 0.875rem; background: var(--gc-surface-2); border: 1px solid var(--gc-border); border-radius: 999px; color: var(--gc-text); }
.gc-feed-comment-delete { background: none; border: none; color: var(--gc-ink-faint); cursor: pointer; font-size: 0.8rem; }
.gc-feed-comment-delete:hover { color: var(--gc-danger); }

/* --- Suivre / Abonnements (Phase 2) --- */
.gc-follow-stats { display: flex; gap: 1.125rem; margin-top: 0.625rem; font-size: 0.88rem; }
.gc-follow-stats a { color: var(--gc-text-muted); }
.gc-follow-stats a:hover { color: var(--gc-primary); }
.gc-follow-stats strong { color: var(--gc-text); }
.gc-follow-form { display: inline-block; }
.gc-follow-form button[disabled] { opacity: 0.55; cursor: not-allowed; }
.gc-follow-btn {
  display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.5625rem 1.125rem; border-radius: 999px;
  font-weight: 700; font-size: 0.85rem; border: 1px solid var(--gc-primary); color: var(--gc-primary);
  background: rgba(255,255,255,0.5); cursor: pointer; transition: background .15s ease, color .15s ease;
}
.gc-follow-btn:hover:not([disabled]) { background: var(--gc-gradient); color: #fff; border-color: transparent; }

/* --- Badges (Phase 3) --- */
.gc-badge-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.gc-badge-chip {
  display: inline-flex; align-items: center; gap: 0.375rem;
  padding: 0.3125rem 0.75rem; border-radius: 999px;
  background: var(--gc-surface-2); border: 1px solid var(--gc-border);
  font-size: 0.82rem; font-weight: 600; color: var(--gc-text);
  cursor: default;
}

/* --- Compteur de notifications non lues (sidebar) --- */
.gc-badge-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1rem; height: 1rem; padding: 0 0.25rem; margin-left: auto;
  border-radius: 999px; background: var(--gc-coral); color: #fff;
  font-size: 0.75rem; font-weight: 700; line-height: 1;
}

/* ============================================================
   RESPONSIVE — échelle de points de rupture standard
     1440  grand écran      1280  ordinateur
     1024  tablette paysage  768  tablette portrait
      480  téléphone
   ============================================================ */

/* Tablette paysage : la barre latérale passe en rangée de puces horizontale */
@media (max-width: 1024px) {
  .gc-app-layout { grid-template-columns: minmax(0, 1fr); }
  .gc-app-layout > * { min-width: 0; }
  .gc-sidebar { position: static; max-height: none; overflow: visible; padding: 0.5rem; }
  .gc-sidebar__user, .gc-sidebar__group-label { display: none; }
  .gc-sidebar__nav { flex-direction: row; gap: 0.5rem; overflow-x: auto; scrollbar-width: none; padding: 0.125rem; -webkit-overflow-scrolling: touch; }
  .gc-sidebar__nav::-webkit-scrollbar { display: none; }
  .gc-sidebar__nav a { flex: 0 0 auto; white-space: nowrap; min-height: 2.5rem; padding: 0.5rem 0.875rem; border: 1px solid var(--gc-border); border-radius: 999px; background: rgba(255,255,255,0.5); }
  .gc-sidebar__nav a.is-active { border-color: transparent; }
  /* Sur mobile, l'accordéon n'a pas d'intérêt (nav déjà en ruban horizontal) :
     on affiche tous les liens des groupes à plat, sans le bouton replier/déplier. */
  .gc-sidebar__group { display: contents; }
  .gc-sidebar__group-body { display: contents; }
}

/* Tablette portrait */
@media (max-width: 768px) {
  .gc-section { padding-top: 2rem; padding-bottom: 2rem; }
  .gc-hero { padding: 2.5rem var(--gc-gutter) 2rem; }
  /* 16 px minimum dans les champs : en dessous, iOS zoome à la mise au point */
  .gc-field input, .gc-field select, .gc-field textarea,
  .gc-composer textarea, .gc-composer__link, .gc-navsearch input,
  .gc-discover__search input, input[type="text"], input[type="email"],
  input[type="password"], input[type="search"], input[type="url"],
  input[type="number"], select, textarea { font-size: 1rem; }
  .gc-form { margin: 1.5rem auto; padding: 1.25rem; border-radius: var(--gc-radius); }
  .gc-footer__links { gap: 2rem; }
}

/* Typographic scale: standard reading sizes across GraphConnect content. */
:root {
  --gc-type-body: 1rem;
  --gc-type-lead: 1rem;
  --gc-type-h1: clamp(1.75rem, 1.55rem + .8vw, 2.125rem);
  --gc-type-h2: clamp(1.375rem, 1.22rem + .5vw, 1.625rem);
  --gc-type-h3: 1.125rem;
  --gc-type-h4: 1rem;
}

#gc-main-content h1,
#gc-main-content h2,
#gc-main-content h3,
#gc-main-content h4 {
  text-wrap: pretty;
}
#gc-main-content h1 { font-size: var(--gc-type-h1) !important; line-height: 1.15; }
#gc-main-content h2 { font-size: var(--gc-type-h2) !important; line-height: 1.25; }
#gc-main-content h3 { font-size: var(--gc-type-h3) !important; line-height: 1.35; }
#gc-main-content h4 { font-size: var(--gc-type-h4) !important; line-height: 1.4; }

#gc-main-content .gc-home-hero h1 {
  font-size: clamp(1.875rem, 1.65rem + .65vw, 2.125rem) !important;
  line-height: 1.12;
}
#gc-main-content .gc-home-projects-head h1 { font-size: var(--gc-type-h1) !important; }
#gc-main-content .gc-project-listing-card .gc-card__title { font-size: 1rem !important; line-height: 1.4; }
#gc-main-content .gc-feed-page-subtitle,
#gc-main-content .gc-home-projects-head > div > p:last-child,
#gc-main-content .gc-legal__lead { font-size: var(--gc-type-lead) !important; line-height: 1.6; }
#gc-main-content .gc-home-hero__copy > p:not(.gc-home-hero__eyebrow) { font-size: var(--gc-type-lead) !important; }

@media (max-width: 640px) {
  #gc-main-content .gc-home-hero h1 { font-size: clamp(1.75rem, 6vw, 1.9rem) !important; }
  #gc-main-content .gc-home-projects-head h1 { font-size: 1.75rem !important; }
  #gc-main-content .gc-home-projects-head > div > p:last-child { font-size: 1rem !important; }
}

/* Téléphone */
@media (max-width: 640px) {
  .gc-navbar__inner { padding: 0.5rem var(--gc-gutter); gap: 0.5rem; min-height: 3.5rem; }
  .gc-navbar__actions { gap: 0.25rem; }
  .gc-navbar__actions .gc-btn { padding: 0.5rem 0.875rem; font-size: 0.8125rem; min-height: 2.5rem; }
  /* cible tactile de 44 px sur les icônes cloche / messagerie */
  .gc-icon-btn { width: 2.75rem; height: 2.75rem; }
  .gc-hero__actions { flex-wrap: wrap; }
  .gc-hero__actions .gc-btn { flex: 1 1 10rem; }
  .gc-feed-tabs { overflow-x: auto; scrollbar-width: none; }
  .gc-feed-tabs::-webkit-scrollbar { display: none; }
  .gc-feed-tabs a { margin-right: 1rem; white-space: nowrap; }
  .gc-footer__inner { flex-direction: column; gap: 1.5rem; }
  .gc-footer__links { flex-wrap: wrap; gap: 1.5rem 2.5rem; }
  /* les tableaux d'administration défilent au lieu de déborder de l'écran */
  table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 560px) {
  .gc-field-row { grid-template-columns: 1fr; }
  .gc-card__body { padding: 1rem; }
}

/* Navigation mobile en panneau clair, inspirée des menus éditoriaux des apps créatives. */
@media (max-width: 1180px) {
  .gc-navbar__links.is-open {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 1rem var(--gc-gutter) 1.125rem;
    border-radius: 0 0 1rem 1rem;
    background: #fff;
    box-shadow: 0 20px 40px -24px rgba(25, 29, 50, 0.45);
  }
  .gc-navbar__group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: 0.375rem;
    min-width: 0;
  }
  .gc-navbar__group-title {
    display: block;
    grid-column: 1 / -1;
    margin: 0 0 0.125rem;
    padding: 0 0.25rem;
    color: var(--gc-text-muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    line-height: 1.3;
    text-transform: uppercase;
  }
  .gc-navbar__links a {
    min-width: 0;
    min-height: 3.25rem;
    gap: 0.5rem;
    padding: 0.625rem 0.7rem;
    border: 1px solid var(--gc-border);
    border-radius: 0.75rem;
    background: var(--gc-surface, #f7f7fa);
    color: var(--gc-text);
    font-size: 0.8125rem;
    line-height: 1.2;
    white-space: normal;
  }
  .gc-navbar__links a:hover,
  .gc-navbar__links a:focus-visible { background: var(--gc-primary-soft); border-color: var(--gc-primary); }
  .gc-navbar__link-icon { display: inline-flex; flex: 0 0 1.25rem; color: var(--gc-primary); }
  .gc-navbar__link-icon .gc-icon { width: 1.125rem; height: 1.125rem; }
  .gc-navbar__mobile-only { display: none; }
  .gc-navbar__links .gc-navbar__account-link {
    display: flex;
    grid-column: 1 / -1;
    justify-content: center;
    min-height: 2.875rem;
    margin: 0.125rem 0 0;
    border-color: transparent;
    border-radius: 0.75rem;
    background: var(--gc-primary-soft);
    color: var(--gc-primary);
    font-weight: 750;
  }
}

@media (max-width: 640px) {
  .gc-navbar__links.is-open { grid-template-columns: 1fr; gap: 0.875rem; }
  .gc-navbar__group { gap: 0.375rem; }
  .gc-navbar__group-title { margin-bottom: 0.125rem; }
}

/* Écrans tactiles : pas de survol, donc le titre du projet reste visible */
@media (hover: none) {
  .gc-project-card__overlay { opacity: 1; transform: none; }
  .gc-card:hover { transform: none; }
  .gc-btn:hover { transform: none; }
  .gc-creator-chip:hover { transform: none; }
}

/* --- Phase 4 : Graph Score --- */
.gc-score-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.1875rem 0.75rem;
  border-radius: 999px;
  background: var(--gc-surface-alt, rgba(110,59,35,0.09));
  color: var(--gc-text-muted);
  font-size: 0.88rem;
}
.gc-score-chip strong { color: var(--gc-primary); }

/* Navigation unifiée et espace d'idées communautaires */
.gc-ideas-layout { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: 1.5rem; align-items: start; max-width: 74rem; margin: 1.75rem auto; padding-inline: var(--gc-gutter); }
.gc-ideas-main { min-width: 0; }
.gc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.gc-feed-page-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.gc-feed-page-head h1 { margin-bottom: 0; }
.gc-ideas-intro { margin-bottom: 1.25rem; }
.gc-ideas-intro p { max-width: 45rem; color: var(--gc-text-muted); }
.gc-ideas-composer { margin-bottom: 1.25rem; }
.gc-ideas-composer__fields { display: grid; grid-template-columns: minmax(0, 1fr) 12rem; gap: 0.75rem; }
.gc-ideas-composer input, .gc-ideas-composer select, .gc-ideas-composer textarea, .gc-idea-comment-form input { width: 100%; min-width: 0; padding: 0.7rem 0.85rem; border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); color: var(--gc-text); background: var(--gc-surface-2); font: inherit; }
.gc-ideas-composer textarea { min-height: 7rem; margin-top: 0.75rem; resize: vertical; }
.gc-ideas-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; margin: 1.25rem 0; }
.gc-ideas-list { display: grid; gap: 1rem; }
.gc-idea { padding: 1.25rem; border: 1px solid var(--gc-glass-border); border-radius: var(--gc-radius); background: var(--gc-surface); box-shadow: var(--gc-shadow-sm), var(--gc-sheen); }
.gc-idea__head { display: flex; align-items: center; gap: 0.65rem; margin-bottom: 0.7rem; }
.gc-idea__author { font-weight: 750; }
.gc-idea__date { display: block; color: var(--gc-text-muted); font-size: 0.78rem; }
.gc-idea__tag { margin-left: auto; }
.gc-idea h2 { margin: 0 0 0.5rem; font-size: 1.2rem; }
.gc-idea__content { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.gc-idea__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.65rem; margin-top: 1rem; padding-top: 0.875rem; border-top: 1px solid var(--gc-border); }
.gc-idea__vote { display: inline-flex; align-items: center; gap: 0.4rem; }
.gc-idea__comments { flex: 1 1 100%; margin-top: 0.3rem; }
.gc-idea__comments summary { cursor: pointer; color: var(--gc-primary); font-size: 0.9rem; font-weight: 700; }
.gc-idea__comment-list { display: grid; gap: 0.75rem; margin: 0.75rem 0; }
.gc-idea__comment { display: flex; gap: 0.6rem; align-items: flex-start; }
.gc-idea__comment p { margin: 0.1rem 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 0.9rem; }
.gc-idea-comment-form { display: flex; gap: 0.5rem; margin-top: 0.75rem; }
.gc-idea-comment-form input { flex: 1; }
.gc-ideas-aside { position: sticky; top: 5rem; }
.gc-ideas-aside .gc-card { margin-bottom: 1rem; }
.gc-ideas-aside ul { margin: 0.5rem 0 0; padding-left: 1.2rem; color: var(--gc-text-muted); font-size: 0.88rem; }
.gc-ideas-aside li + li { margin-top: 0.45rem; }

@media (max-width: 1024px) {
  .gc-ideas-layout { grid-template-columns: minmax(0, 1fr); max-width: 48rem; }
  .gc-ideas-aside { position: static; }
}
@media (max-width: 640px) {
  body { padding-bottom: calc(4.4rem + env(safe-area-inset-bottom, 0px)); }
  .gc-mobile-nav {
    position: fixed; z-index: 95; left: 0; right: 0; bottom: 0;
    display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: 3.9rem; padding: 0.35rem 0.35rem calc(0.35rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--gc-border); background: rgba(255,255,255,0.94);
    backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur);
  }
  .gc-mobile-nav a { display: flex; min-width: 0; min-height: 3rem; flex-direction: column; align-items: center; justify-content: center; gap: 0.1rem; border-radius: 0.65rem; color: var(--gc-text-muted); font-size: 0.65rem; font-weight: 700; line-height: 1.1; }
  .gc-mobile-nav a .gc-icon { width: 1.2rem; height: 1.2rem; }
  .gc-mobile-nav a:hover, .gc-mobile-nav a:focus-visible { color: var(--gc-primary); background: var(--gc-primary-soft); }
  .gc-navbar__links.is-open { grid-template-columns: minmax(0, 1fr); gap: 0.375rem; }
  .gc-navbar__links.is-open .gc-navbar__menu-heading { margin-top: 0.75rem; }
  .gc-navbar__links.is-open a { min-height: 2.875rem; }
  .gc-ideas-layout { margin: 1rem auto; gap: 1rem; }
  .gc-feed-page-head { align-items: flex-start; flex-direction: column; }
  .gc-ideas-composer__fields { grid-template-columns: minmax(0, 1fr); }
  .gc-ideas-toolbar { align-items: stretch; flex-direction: column; }
  .gc-ideas-toolbar select { width: 100%; }
  .gc-idea { padding: 1rem; }
  .gc-idea-comment-form { flex-direction: column; }
  .gc-idea-comment-form .gc-btn { width: 100%; }
  .gc-sidebar__group { display: none; }
}

/* Page typeset: clear levels, consistent spacing and reading width site-wide. */
.gc-main > .gc-container > h1,
.gc-main > .gc-section > h1,
.gc-main > section > h1 { margin-bottom: 1rem; }
.gc-main p { line-height: 1.65; }
.gc-main h1 + p,
.gc-main h2 + p,
.gc-main h3 + p { margin-top: 0; }
.gc-section { padding-block: clamp(1.25rem, 2.6vw, 2.25rem); }
.gc-feed-page-head { align-items: center; gap: 1rem 1.5rem; margin-bottom: 1.5rem; }
.gc-feed-page-head h1 { line-height: 1.12; }
.gc-discover__head { align-items: end; gap: clamp(1rem, 3vw, 2rem); margin-bottom: 1.5rem; }
.gc-discover__eyebrow { margin: 0 0 0.5rem; color: var(--gc-primary); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; line-height: 1.3; text-transform: uppercase; }
.gc-discover__title { max-width: 17ch; margin: 0; font-size: clamp(2rem, 1.35rem + 2.1vw, 2.65rem); line-height: 1.12; letter-spacing: -0.035em; }
.gc-card__title { line-height: 1.35; }
.gc-card__meta { color: var(--gc-text-muted); font-size: 0.875rem; line-height: 1.45; }

@media (max-width: 640px) {
  h1 { font-size: clamp(1.8rem, 1.55rem + 1.5vw, 2.15rem); }
  h2 { font-size: clamp(1.35rem, 1.2rem + 0.7vw, 1.55rem); }
  .gc-section { padding-block: 1.125rem; }
  .gc-discover__head { align-items: stretch; }
  .gc-discover__title { max-width: 16ch; }
}

/* Fil d’actualité : largeur de lecture maîtrisée et niveaux visuels nets. */
.gc-app-layout--feed > .gc-feed-main { width: 100%; max-width: 58rem; min-width: 0; margin-inline: auto; }
.gc-app-layout--feed { align-items: start; }
.gc-feed-page-head { align-items: flex-start; gap: 1rem 1.5rem; margin-bottom: 1.25rem; }
.gc-feed-page-head > div { flex: 1 1 24rem; min-width: 0; }
.gc-feed-page-head h1 { margin: 0; }
.gc-feed-page-subtitle { max-width: 48ch; margin: 0.5rem 0 0; color: var(--gc-text-muted); font-size: 0.95rem; line-height: 1.55; }
.gc-feed-page-head > .gc-btn { flex: 0 0 auto; margin-top: 0.25rem; }
.gc-composer { margin-bottom: 1.25rem; }
.gc-composer__heading { margin-bottom: 0.875rem; }
.gc-composer__heading h2 { margin: 0 0 0.25rem; font-size: 1.2rem; line-height: 1.3; }
.gc-composer__heading p { margin: 0; color: var(--gc-text-muted); font-size: 0.9rem; line-height: 1.5; }
.gc-composer__footer { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: 0.75rem; }
.gc-composer__filename { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.gc-feed-tabs { align-items: center; gap: 1.5rem; margin: 1.5rem 0 1rem; }
.gc-feed-tabs a { display: inline-flex; align-items: center; min-height: 2.75rem; margin: 0; padding: 0.625rem 0.125rem; }
.gc-feed-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; margin: 1.5rem 0 0.75rem; }
.gc-feed-section-head h2 { margin: 0; font-size: 1.25rem; }
.gc-feed-section-head p { margin: 0; color: var(--gc-text-muted); font-size: 0.85rem; line-height: 1.4; }
.gc-feed { gap: 1rem; }
.gc-feed-item { padding: clamp(1rem, 2.3vw, 1.375rem); }
.gc-feed-item__head { gap: 0.75rem; align-items: center; margin-bottom: 0.875rem; }
.gc-feed-item__author { font-size: 0.98rem; line-height: 1.3; }
.gc-feed-item__head .gc-card__meta { margin: 0.2rem 0 0; font-size: 0.8rem; line-height: 1.4; }
.gc-feed-item__type { padding: 0.25rem 0.625rem; border: 1px solid var(--gc-border); border-radius: 999px; background: rgba(255,255,255,0.55); font-weight: 700; white-space: nowrap; }
.gc-feed-item__text { font-size: 1rem; line-height: 1.65; overflow-wrap: anywhere; }
.gc-feed-item[data-type="project"] { border-color: rgba(110,59,35,0.22); }
.gc-feed-item[data-type="event"] { border-color: rgba(45,112,151,0.28); }
.gc-feed-item[data-type="event"] .gc-card__title { margin-bottom: 0.75rem; font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.45rem); line-height: 1.25; }
.gc-feed-item__media--event { aspect-ratio: 16 / 9; max-height: 28rem; object-fit: cover; }
.gc-feed-item[data-type="project"] .gc-card__title { margin-bottom: 0.75rem; font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.55rem); line-height: 1.25; }
.gc-feed-item[data-type="project"] .gc-feed-item__media--project { margin: 0.5rem 0 0.75rem; }
.gc-feed-item[data-type="new_member"] { padding-block: 1rem; border-left: 3px solid var(--gc-primary-2); }
.gc-feed-item[data-type="new_member"] .gc-feed-item__head { margin-bottom: 0.4rem; }
.gc-feed-item[data-type="new_member"] .gc-feed-item__body { margin-bottom: 0.5rem; }
.gc-feed-item[data-type="new_member"] .gc-feed-item__body p { margin: 0; color: var(--gc-text-muted); font-size: 0.9rem; }
.gc-feed-empty { text-align: center; }
.gc-feed-load-more { display: flex; justify-content: center; margin-top: 1.25rem; }
@media (max-width: 640px) {
  .gc-app-layout--feed { margin-top: 0.75rem; }
  .gc-feed-page-head { gap: 0.75rem; }
  .gc-feed-page-head > .gc-btn { align-self: flex-start; }
  .gc-feed-section-head { align-items: flex-start; flex-direction: column; }
  .gc-composer__footer { align-items: stretch; flex-direction: column; }
  .gc-composer__footer .gc-btn { width: 100%; }
  .gc-feed-item__type { max-width: 8.5rem; overflow: hidden; text-overflow: ellipsis; }
}

/* ============================================================
   Phase 13 — Recherche globale
   ============================================================ */
.gc-navsearch-row {
  background: rgba(255,255,255,0.35);
  backdrop-filter: var(--gc-blur);
  -webkit-backdrop-filter: var(--gc-blur);
  padding: 1.5rem 1.25rem;
  text-align: center;
  border-top: 1px solid var(--gc-glass-border);
  border-bottom: 1px solid var(--gc-glass-border);
}
.gc-navsearch-row::before {
  content: 'Trouvez ce que vous cherchez';
  display: block;
  font-family: var(--gc-font-display);
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 1.125rem;
}
.gc-navsearch {
  position: relative;
  max-width: 47.5rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--gc-surface-2);
  border: 1px solid var(--gc-border);
  border-radius: 999px;
  padding: 0.25rem 0.375rem 0.25rem 1.25rem;
  transition: border-color .2s, box-shadow .2s;
}
.gc-navsearch:focus-within {
  border-color: var(--gc-primary);
  box-shadow: 0 0 0 4px var(--gc-primary-soft);
}
.gc-navsearch__icon { font-size: 1.1rem; opacity: .8; }
.gc-navsearch input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  color: var(--gc-text);
  font-size: 1rem;
  padding: 0.75rem 0;
}
.gc-navsearch input::placeholder { color: var(--gc-ink-faint); }
.gc-navsearch__submit {
  flex-shrink: 0;
  border: none;
  cursor: pointer;
  padding: 0.75rem 1.5rem;
  border-radius: 999px;
  background: var(--gc-gradient);
  color: #fff;
  font-weight: 700;
  font-size: 0.9rem;
}
.gc-navsearch__submit:hover { transform: translateY(-1px); }
.gc-navsearch__results {
  position: absolute;
  top: calc(100% + 0.625rem);
  left: 0;
  right: 0;
  background: rgba(255,255,255,0.9);
  backdrop-filter: var(--gc-blur);
  -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid var(--gc-glass-border);
  border-radius: var(--gc-radius-sm, 0.75rem);
  box-shadow: var(--gc-shadow, 0 20px 40px -20px rgba(46,36,110,0.35));
  overflow: hidden;
  z-index: 60;
}
.gc-navsearch__item {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.75rem 1rem;
  font-size: 0.9rem;
  color: var(--gc-text);
  border-bottom: 1px solid var(--gc-border);
}
.gc-navsearch__item:last-child { border-bottom: none; }
.gc-navsearch__item:hover { background: var(--gc-primary-soft); }

@media (max-width: 640px) {
  .gc-navsearch-row { padding: 0.625rem 1rem; }
  .gc-navsearch__submit { display: none; }
}

/* ============================================================
   ACCUEIL — Fil de découverte façon Behance
   ============================================================ */

.gc-discover {
  width: 100%;
  max-width: calc(var(--gc-container) + 2 * var(--gc-gutter));
  margin: 0 auto;
  padding: 2rem var(--gc-gutter) 0.5rem;
}
.gc-discover__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.gc-discover__eyebrow {
  margin: 0 0 0.375rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--gc-primary);
}
.gc-discover__title {
  margin: 0;
  font-size: clamp(1.5rem, 1.15rem + 1.75vw, 2.125rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.gc-discover__search {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--gc-surface-2);
  border: 1px solid var(--gc-border);
  border-radius: 999px;
  padding: 0.375rem 0.5rem 0.375rem 1.125rem;
  flex: 1 1 23.75rem;
  max-width: 32.5rem;
}
.gc-discover__search-icon { opacity: .6; font-size: 0.95rem; }
.gc-discover__head > * { min-width: 0; }
.gc-discover__search input {
  flex: 1; min-width: 0; width: 100%;
  border: none;
  background: transparent;
  color: var(--gc-text);
  font-size: 1rem;
  padding: 0.625rem 0;
  outline: none;
}
.gc-discover__search input::placeholder { color: var(--gc-ink-faint); }
.gc-discover__search .gc-btn { padding: 0.625rem 1.25rem; white-space: nowrap; }

.gc-pill-row {
  display: flex;
  gap: 0.625rem;
  overflow-x: auto;
  padding: 1rem 0 0.25rem;
  scrollbar-width: none;
}
.gc-pill-row::-webkit-scrollbar { display: none; }
.gc-pill {
  flex: 0 0 auto;
  padding: 0.5rem 1.125rem;
  border-radius: 999px;
  border: 1px solid var(--gc-border);
  background: rgba(255,255,255,0.45);
  color: var(--gc-text-muted);
  font-size: 0.87rem;
  font-weight: 600;
  white-space: nowrap;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.gc-pill:hover { color: var(--gc-text); border-color: var(--gc-primary); }
.gc-pill--active { background: var(--gc-gradient); color: #fff; border-color: transparent; box-shadow: var(--gc-shadow-glow); }

/* Les couvertures de projets partagent un cadre 4:3 sur toutes les listes. */
.gc-project-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}
@media (max-width: 1200px) { .gc-project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px)  { .gc-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
@media (max-width: 600px)  { .gc-project-grid { grid-template-columns: 1fr; } }
.gc-project-card {
  position: relative;
  display: block;
  border-radius: var(--gc-radius-sm, 0.75rem);
  overflow: hidden;
  background: var(--gc-surface-2);
  border: 1px solid var(--gc-glass-border);
  box-shadow: var(--gc-shadow-sm);
}
/* uniquement l'image de couverture (enfant direct) — sinon la règle écrase la taille des avatars */
.gc-project-card > img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; object-position: center; }
.gc-project-listing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gc-project-listing-card { display: block; min-width: 0; overflow: hidden; }
.gc-project-listing-card__cover { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; object-position: center; }
@media (max-width: 900px) { .gc-project-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .gc-project-listing-grid { grid-template-columns: 1fr; } }
.gc-project-card__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1rem;
  background: linear-gradient(to top, rgba(20,16,40,0.82) 0%, rgba(20,16,40,0.35) 45%, rgba(20,16,40,0) 75%);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .2s ease, transform .2s ease;
}
.gc-project-card:hover .gc-project-card__overlay,
.gc-project-card:focus-visible .gc-project-card__overlay { opacity: 1; transform: translateY(0); }
.gc-project-card__overlay h3 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
}
.gc-project-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.625rem;
}
.gc-project-card__author {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.82rem;
  color: #f4f4f8;
}
.gc-project-card__stats {
  display: flex;
  gap: 0.625rem;
  font-size: 0.8rem;
  color: #f4f4f8;
  white-space: nowrap;
}

.gc-section__title {
  font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.5rem);
  font-weight: 800;
  margin: 0 0 1.125rem;
}

.gc-creators-row {
  display: flex;
  gap: 0.875rem;
  overflow-x: auto;
  padding-bottom: 0.375rem;
  scrollbar-width: none;
}
.gc-creators-row::-webkit-scrollbar { display: none; }
.gc-creator-chip {
  flex: 0 0 auto;
  width: 9.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.3125rem;
  padding: 0.875rem 0.625rem;
  border-radius: var(--gc-radius, 1.25rem);
  border: 1px solid var(--gc-glass-border);
  background: var(--gc-surface);
  backdrop-filter: var(--gc-blur);
  -webkit-backdrop-filter: var(--gc-blur);
  box-shadow: var(--gc-shadow-sm), var(--gc-sheen);
  transition: border-color .15s ease, transform .1s ease, box-shadow .15s ease;
}
.gc-creator-chip:hover { border-color: var(--gc-primary); transform: translateY(-3px); box-shadow: var(--gc-shadow); }
.gc-creator-chip__name { font-weight: 700; font-size: 0.9rem; }
.gc-creator-chip__specialty { color: var(--gc-text-muted); font-size: 0.78rem; }

.gc-cta-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  padding: 1.625rem 1.75rem;
  border-radius: var(--gc-radius-lg, 1.125rem);
  background: var(--gc-gradient);
  box-shadow: var(--gc-shadow-glow), var(--gc-sheen);
  position: relative;
  overflow: hidden;
}
.gc-cta-banner h2 { margin: 0 0 0.25rem; font-size: 1.2rem; font-weight: 800; color: #fff; }
.gc-cta-banner p { margin: 0; color: rgba(255,255,255,0.92); }
.gc-cta-banner__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.gc-cta-banner .gc-btn--primary { background: #fff; color: var(--gc-primary); box-shadow: none; }
.gc-cta-banner .gc-btn--ghost { border-color: rgba(255,255,255,0.6); color: #fff; background: rgba(255,255,255,0.12); }

@media (max-width: 900px) {
  .gc-discover__head { flex-direction: column; align-items: stretch; }
  /* en colonne, flex-basis s'appliquait à la HAUTEUR (barre de ~380px de haut) */
  .gc-discover__search { max-width: none; flex: 0 0 auto; }
}
@media (max-width: 560px) {
  .gc-cta-banner { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   GARDE-FOUS MOBILES — placés en fin de feuille pour l'emporter
   sur les règles définies plus haut (ordre de la cascade CSS).
   ============================================================ */
@media (max-width: 768px) {
  /* 16 px minimum : en dessous, iOS zoome automatiquement à la saisie */
  .gc-discover__search input,
  .gc-navsearch input,
  .gc-field input, .gc-field select, .gc-field textarea,
  .gc-composer textarea, .gc-composer__link,
  .gc-feed-item__comment-form input { font-size: 1rem; }

  /* Boutons pleine largeur dans la barre de recherche d'accueil */
  .gc-discover__search { flex-wrap: wrap; border-radius: var(--gc-radius); padding: 0.625rem 0.875rem; }
  .gc-discover__search input { flex: 1 1 100%; padding: 0.5rem 0; }
  .gc-discover__search .gc-btn { flex: 1 1 auto; }
  .gc-discover__search-icon { display: none; }

  /* Rangées défilantes : on laisse respirer le premier et le dernier élément */
  .gc-pill-row, .gc-creators-row { scroll-padding-inline: var(--gc-gutter); }
}

@media (max-width: 480px) {
  .gc-cta-banner { padding: 1.25rem; }
  .gc-cta-banner__actions { width: 100%; }
  .gc-cta-banner__actions .gc-btn { flex: 1 1 auto; }
  .gc-creator-chip { width: 8.5rem; }
  .gc-project-card__overlay { padding: 0.875rem; }
}

/* Très petits téléphones (360 px et moins) : la barre du haut doit tenir
   sur une seule ligne — logo, cloche, messagerie, bouton et burger. */
@media (max-width: 420px) {
  .gc-navbar__inner { gap: 0.25rem; padding-inline: 0.75rem; }
  .gc-logo { font-size: 1rem; }
  .gc-icon-btn { width: 2.375rem; height: 2.375rem; font-size: 1rem; }
  .gc-navbar__actions { gap: 0.125rem; }
  .gc-navbar__actions .gc-btn { padding: 0.5rem 0.6875rem; font-size: 0.75rem; }
  .gc-navbar__toggle { width: 2.125rem; height: 2.125rem; }
  .gc-navbar__mobile-login { padding-inline: 0.6875rem; font-size: 0.75rem; }
}

/* ============================================================
   BANDEAU DE SOUTIEN (dons) — au-dessus du pied de page
   Une seule ligne fine et discrète (tout le bandeau est cliquable), plutôt
   que l'ancien bloc à deux étages (titre + texte + montants + boutons).
   ============================================================ */
.gc-donate-band { background: var(--gc-surface-alt); border-top: 1px solid var(--gc-border); border-bottom: 1px solid var(--gc-border); }
.gc-donate-band__inner {
  width: 100%;
  max-width: var(--gc-container);
  margin: 0 auto;
  padding: 0.5rem var(--gc-gutter);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 1.25rem;
  flex-wrap: nowrap;
  color: var(--gc-text);
  text-decoration: none;
  font-size: 0.8125rem;
  transition: background .15s ease;
}
.gc-donate-band__inner:hover { background: rgba(110,59,35,0.14); }
.gc-donate-band__text {
  display: flex; align-items: center; gap: 0.375rem;
  color: var(--gc-text-muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.gc-donate-band__cta {
  display: flex; align-items: center; gap: 0.3rem;
  font-weight: 700; white-space: nowrap; flex-shrink: 0;
  color: var(--gc-primary);
  text-decoration: underline; text-underline-offset: 0.15rem;
}
/* le pied de page suit immédiatement le bandeau : pas de double marge */
.gc-donate-band + .gc-footer { margin-top: 0; border-top: none; }

@media (max-width: 640px) {
  .gc-donate-band__text { font-size: 0.75rem; }
}


/* ============================================================
   COMPOSANTS COMMUNS — cases à cocher, fenêtre modale, signalement
   ============================================================ */
.gc-check { display: flex; align-items: flex-start; gap: 0.625rem; cursor: pointer; font-size: 0.9rem; line-height: 1.5; }
.gc-check input { flex: none; width: 1.1rem; height: 1.1rem; margin-top: 0.2rem; accent-color: var(--gc-primary); }
.gc-check a { color: var(--gc-primary); text-decoration: underline; text-underline-offset: 0.18em; }

.gc-modal {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center; padding: 1.25rem;
  background: rgba(28,30,42,0.55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.gc-modal[hidden] { display: none; }
.gc-modal__panel {
  width: 100%; max-width: 26.25rem; max-height: calc(100dvh - 2.5rem); overflow-y: auto;
  padding: 1.5rem; background: var(--gc-surface-2); border: 1px solid var(--gc-glass-border);
  border-radius: var(--gc-radius-lg); box-shadow: var(--gc-shadow), var(--gc-sheen);
}
.gc-modal__panel h3 { margin-top: 0; }
.gc-modal__actions { display: flex; gap: 0.625rem; }
.gc-modal__actions .gc-btn { flex: 1 1 0; }

/* bouton « Signaler » discret, à côté d'un commentaire ou d'une réponse */
.gc-comment-report {
  background: none; border: none; padding: 0.125rem 0.25rem; cursor: pointer;
  font: inherit; font-size: 0.8125rem; color: var(--gc-text-muted);
}
.gc-comment-report:hover { color: var(--gc-danger); }

/* ============================================================
   PIED DE PAGE — liens juridiques
   ============================================================ */
.gc-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1.5rem; }
.gc-footer__bottom p { margin: 0; }
.gc-footer__legal { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.gc-footer__legal a { color: var(--gc-text-muted); }
.gc-footer__legal a:hover { color: var(--gc-primary); }

/* ============================================================
   PAGES JURIDIQUES (mentions, confidentialité, CGU, règles)
   Mêmes surfaces « verre », mêmes couleurs, mêmes boutons que le reste du site.
   ============================================================ */
.gc-legal { max-width: calc(66rem + 2 * var(--gc-gutter)); }
.gc-legal__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.gc-legal__head { margin-bottom: 1.5rem; }
.gc-legal__head h1 { margin: 0 0 0.625rem; }
.gc-legal__lead { max-width: 46rem; margin: 0 0 0.875rem; color: var(--gc-text-muted); font-size: 1.02rem; line-height: 1.65; }
.gc-legal__updated {
  display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; padding: 0.25rem 0.75rem;
  border-radius: 999px; background: var(--gc-primary-soft); color: var(--gc-primary);
  font-size: 0.8125rem; font-weight: 600;
}
.gc-legal__notice, .gc-legal__callout {
  margin: 0 0 1.5rem; padding: 0.875rem 1rem; border-radius: var(--gc-radius-sm);
  font-size: 0.875rem; line-height: 1.6;
}
.gc-legal__notice { background: var(--gc-warning-soft); border: 1px solid rgba(255,182,72,0.45); }
.gc-legal__callout { margin: 0.25rem 0 0.875rem; background: var(--gc-primary-soft); border: 1px solid rgba(110,59,35,0.22); color: var(--gc-text); }
.gc-legal__notice code, .gc-legal__section code {
  padding: 0.05rem 0.35rem; border-radius: 0.3rem; background: rgba(28,30,42,0.07); font-size: 0.85em;
}

.gc-legal__layout { display: grid; grid-template-columns: 14.5rem minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.gc-legal__toc {
  position: sticky; top: 4.75rem; max-height: calc(100dvh - 6rem); overflow-y: auto; padding: 1rem;
  background: var(--gc-surface); backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid var(--gc-glass-border); border-radius: var(--gc-radius-lg);
  box-shadow: var(--gc-shadow-sm), var(--gc-sheen);
}
.gc-legal__toc-title { display: block; margin-bottom: 0.5rem; font-family: var(--gc-font-display); font-size: 0.85rem; color: var(--gc-text-muted); }
.gc-legal__toc ol { list-style: none; margin: 0; padding: 0; counter-reset: gcToc; }
.gc-legal__toc li { counter-increment: gcToc; }
.gc-legal__toc a { display: flex; gap: 0.5rem; padding: 0.375rem 0.5rem; border-radius: var(--gc-radius-sm); font-size: 0.85rem; line-height: 1.35; color: var(--gc-text-muted); }
.gc-legal__toc a::before { content: counter(gcToc) "."; min-width: 1.25rem; color: var(--gc-ink-faint); font-variant-numeric: tabular-nums; }
.gc-legal__toc a:hover { background: var(--gc-primary-soft); color: var(--gc-primary); }

.gc-legal__content { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.gc-legal__section {
  scroll-margin-top: 5rem; padding: 1.5rem;
  background: var(--gc-surface); backdrop-filter: var(--gc-blur); -webkit-backdrop-filter: var(--gc-blur);
  border: 1px solid var(--gc-glass-border); border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow-sm), var(--gc-sheen);
}
.gc-legal__section h2 { display: flex; align-items: center; gap: 0.625rem; margin: 0 0 0.875rem; }
.gc-legal__num {
  flex: none; display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 0.5rem;
  background: var(--gc-primary-soft); color: var(--gc-primary);
  font-family: var(--gc-font-display); font-size: 0.85rem; font-weight: 800;
}
.gc-legal__section h3 { margin: 1.25rem 0 0.375rem; font-size: 1rem; }
.gc-legal__section p, .gc-legal__section li { line-height: 1.75; }
.gc-legal__section p { margin: 0 0 0.875rem; }
.gc-legal__section ul, .gc-legal__section ol { margin: 0 0 0.875rem; padding-left: 1.25rem; }
.gc-legal__section li + li { margin-top: 0.4rem; }
.gc-legal__section > :last-child { margin-bottom: 0; }
.gc-legal__section a { color: var(--gc-primary); text-decoration: underline; text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
.gc-legal__section .gc-legal__small { font-size: 0.8125rem; color: var(--gc-text-muted); }
.gc-legal__foot { margin: 0; padding: 0.5rem 1rem; text-align: center; font-size: 0.9rem; color: var(--gc-text-muted); }
.gc-legal__foot a { color: var(--gc-primary); text-decoration: underline; text-underline-offset: 0.18em; }

.gc-legal__dl { display: grid; gap: 0.5rem; margin: 0 0 0.5rem; }
.gc-legal__dl > div { display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 0.75rem; padding: 0.625rem 0.875rem; border-radius: var(--gc-radius-sm); background: var(--gc-surface-alt); }
.gc-legal__dl dt { font-size: 0.875rem; font-weight: 700; color: var(--gc-text-muted); }
.gc-legal__dl dd { margin: 0; overflow-wrap: anywhere; }

.gc-legal__table { overflow-x: auto; margin: 0 0 0.875rem; border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); }
.gc-legal__table table { width: 100%; min-width: 32rem; border-collapse: collapse; font-size: 0.875rem; }
.gc-legal__table th, .gc-legal__table td { padding: 0.7rem 0.875rem; text-align: left; vertical-align: top; line-height: 1.55; border-bottom: 1px solid var(--gc-border); }
.gc-legal__table thead th { background: var(--gc-surface-alt); font-family: var(--gc-font-display); font-size: 0.8125rem; color: var(--gc-text-muted); }
.gc-legal__table tbody tr:last-child td { border-bottom: none; }

.gc-legal__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 0.875rem; }
.gc-legal__item { display: flex; gap: 0.75rem; padding: 1rem; border-radius: var(--gc-radius-sm); background: var(--gc-surface-alt); }
.gc-legal__item h3 { margin: 0 0 0.25rem; }
.gc-legal__item p { margin: 0; font-size: 0.9rem; line-height: 1.55; }
.gc-legal__icon { font-size: 1.5rem; line-height: 1.2; }
.gc-legal__list--x { list-style: none; padding-left: 0 !important; }
.gc-legal__list--x li { position: relative; padding-left: 1.75rem; }
.gc-legal__list--x li::before { content: "✕"; position: absolute; left: 0; top: 0; color: var(--gc-danger); font-weight: 800; }

/* « [À COMPLÉTER : …] » : impossible à rater tant que l'information n'est pas renseignée */
.gc-legal-todo {
  padding: 0.05rem 0.35rem; border-radius: 0.3rem; font-weight: 600;
  background: var(--gc-warning-soft); color: #8A4B00;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}

@media (max-width: 900px) {
  .gc-legal__layout { grid-template-columns: minmax(0, 1fr); }
  .gc-legal__toc { position: static; max-height: none; }
}
@media (max-width: 560px) {
  .gc-legal__section { padding: 1.125rem; }
  .gc-legal__dl > div { grid-template-columns: minmax(0, 1fr); gap: 0.125rem; }
}

/* ============================================================
   SÉCURITÉ — robustesse du mot de passe, afficher/masquer, 2FA
   ============================================================ */
.gc-pw-field { position: relative; }
.gc-pw-field input { padding-right: 2.75rem !important; }
.gc-pw-toggle {
  position: absolute; top: 50%; right: 0.5rem; transform: translateY(-50%);
  background: none; border: none; padding: 0.25rem 0.375rem; font-size: 1rem; line-height: 1;
  cursor: pointer; color: var(--gc-text-muted); border-radius: var(--gc-radius-sm);
}
.gc-pw-toggle:hover { color: var(--gc-primary); }

.gc-pw-meter { margin: 0.375rem 0 0; }
.gc-pw-meter[hidden] { display: none; }
.gc-pw-meter__bar { height: 0.3rem; border-radius: 999px; background: var(--gc-border); overflow: hidden; }
.gc-pw-meter__bar span { display: block; height: 100%; width: 0; border-radius: inherit; transition: width .2s ease, background-color .2s ease; background: var(--gc-danger); }
.gc-pw-meter__bar span[data-score="2"] { background: #E0A100; }
.gc-pw-meter__bar span[data-score="3"] { background: var(--gc-primary); }
.gc-pw-meter__bar span[data-score="4"] { background: var(--gc-success); }
.gc-pw-meter__label { margin: 0.25rem 0 0; font-size: 0.8125rem; color: var(--gc-text-muted); }

.gc-status { display: inline-flex; align-items: center; padding: 0.2rem 0.7rem; border-radius: 999px; font-size: 0.8125rem; font-weight: 700; white-space: nowrap; }
.gc-status--active { background: rgba(38,166,91,0.15); color: var(--gc-success); }
.gc-status--pending { background: var(--gc-surface-alt); color: var(--gc-text-muted); }

.gc-totp-secret {
  display: inline-block; padding: 0.625rem 0.875rem; border-radius: var(--gc-radius-sm);
  background: var(--gc-surface-alt); font-size: 1.1rem; letter-spacing: 0.12em; font-weight: 700;
  overflow-wrap: anywhere;
}
.gc-recovery-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: 0.625rem; margin-top: 0.5rem;
}
.gc-recovery-grid code {
  display: block; padding: 0.5rem 0.625rem; border-radius: var(--gc-radius-sm);
  background: var(--gc-surface-alt); text-align: center; font-size: 0.9375rem; letter-spacing: 0.04em;
}
@media (max-width: 560px) {
  .gc-recovery-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   ICÔNES — SVG trait fin (includes/icons.php), remplace les emojis
   ============================================================ */
.gc-icon { display: inline-block; vertical-align: -0.2em; flex-shrink: 0; }
.gc-icon--sm { width: 16px; height: 16px; }
.gc-icon--lg { width: 28px; height: 28px; }
.gc-icon--xl { width: 36px; height: 36px; }
.gc-icon--muted { color: var(--gc-text-muted); }
.gc-icon--primary { color: var(--gc-primary); }
.gc-icon--danger { color: var(--gc-danger); }
.gc-icon--success { color: var(--gc-success); }

/* icône + libellé, alignés proprement sur une ligne (remplace « 🔗 Texte ») */
.gc-icon-text { display: inline-flex; align-items: center; gap: 0.4em; }
.gc-icon-text .gc-icon { vertical-align: middle; }

/* dans les boutons / liens : hérite déjà de currentColor, on ajuste juste l'espacement */
.gc-btn .gc-icon, .gc-nav-link .gc-icon, .gc-card__title .gc-icon { margin-right: 0.4em; }
.gc-btn .gc-icon:only-child { margin-right: 0; }
h1 .gc-icon, h2 .gc-icon, h3 .gc-icon { margin-right: 0.45em; vertical-align: -0.15em; }

/* ============================================================
   GraphConnect Social — nouvelle expérience claire et créative
   ============================================================ */
body {
  background: var(--gc-bg);
  background-image: none;
  background-attachment: initial;
}

.gc-navbar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 100;
  width: 15.25rem;
  border: 0;
  border-right: 1px solid var(--gc-border);
  border-radius: 0;
  background: #fff;
  box-shadow: 2px 0 14px rgba(32,32,36,0.025);
  backdrop-filter: none;
}
.gc-navbar__inner {
  width: 100%;
  height: 100dvh;
  max-width: none;
  margin: 0;
  padding: 1.25rem 0.875rem 1rem;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 1.25rem;
}
.gc-logo { display: inline-flex; align-items: center; gap: 0.65rem; padding: 0.25rem 0.5rem; font-size: 1.25rem; }
.gc-logo .gc-logo__mark {
  display: inline-grid;
  width: 2.125rem;
  height: 2.125rem;
  place-items: center;
  border-radius: 0.7rem;
  background: var(--gc-gradient);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 850;
  letter-spacing: -0.06em;
  -webkit-text-fill-color: #fff;
}
.gc-logo .gc-logo__word { background: none; color: var(--gc-text); -webkit-text-fill-color: currentColor; }
.gc-logo__word strong { color: var(--gc-primary); font-weight: 800; }
.gc-navbar__links {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.25rem;
  overflow-y: auto;
  padding: 0.25rem 0;
}
.gc-navbar__links > a,
.gc-navbar__links .gc-nav-more__summary {
  display: flex;
  min-height: 2.85rem;
  align-items: center;
  gap: 0.8rem;
  padding: 0.65rem 0.8rem;
  border: 1px solid transparent;
  border-radius: 0.75rem;
  background: transparent;
  color: #35343a;
  font-size: 0.925rem;
  font-weight: 550;
  line-height: 1.25;
  white-space: normal;
  transition: color .16s ease, background .16s ease, transform .16s ease;
}
.gc-navbar__links > a:hover,
.gc-navbar__links .gc-nav-more__summary:hover { background: #f7f7f8; color: var(--gc-primary); }
.gc-navbar__links .gc-nav-more[open] > .gc-nav-more__summary { background: var(--gc-primary-soft); color: var(--gc-primary); }
.gc-navbar__link-icon { display: inline-flex; width: 1.3rem; flex: 0 0 1.3rem; align-items: center; justify-content: center; color: currentColor; }
.gc-navbar__link-icon .gc-icon { width: 1.25rem; height: 1.25rem; }
.gc-nav-more { display: block; margin-top: 0.25rem; }
.gc-nav-more__summary { list-style: none; cursor: pointer; }
.gc-nav-more__summary::-webkit-details-marker { display: none; }
.gc-nav-more__summary > .gc-icon:last-child { margin-left: auto; transition: transform .18s ease; }
.gc-nav-more[open] > .gc-nav-more__summary > .gc-icon:last-child { transform: rotate(180deg); }
.gc-nav-more__menu {
  position: static;
  display: grid;
  min-width: 0;
  gap: 0.125rem;
  padding: 0.25rem 0 0.25rem 0.75rem;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.gc-navbar__links .gc-nav-more__menu a {
  display: flex;
  min-height: 2.5rem;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  border-radius: 0.7rem;
  color: var(--gc-text-muted);
  font-size: 0.865rem;
  font-weight: 500;
}
.gc-navbar__links .gc-nav-more__menu a:hover { background: #f7f7f8; color: var(--gc-primary); }
.gc-navbar__links a.is-active,
.gc-navbar__links .gc-nav-more__menu a.is-active {
  border-color: transparent;
  background: var(--gc-primary-soft);
  color: var(--gc-primary);
  box-shadow: none;
  font-weight: 750;
}
.gc-navbar__create-link { justify-content: center; min-height: 3rem !important; margin-top: 0.5rem; border-radius: 0.75rem !important; color: #fff !important; }
.gc-navbar__mobile-pages--member { display: block; margin-top: 0.35rem; padding-top: 0.65rem; border-top: 1px solid var(--gc-border); }
.gc-navbar__mobile-pages--member .gc-navbar__menu-heading { display: block; margin: 0.25rem 0.35rem 0.4rem; color: var(--gc-text-muted); font-size: 0.69rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gc-navbar__mobile-pages--member > a { display: flex; min-height: 2.5rem; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; border-radius: 0.7rem; color: var(--gc-text-muted); font-size: 0.84rem; }
.gc-navbar__mobile-pages--member > a:hover { background: #f7f7f8; color: var(--gc-primary); }
.gc-navbar__actions {
  min-height: 3.25rem;
  margin-top: auto;
  padding: 0.65rem 0.25rem 0;
  justify-content: space-around;
  border-top: 1px solid var(--gc-border);
}
.gc-navbar__actions--guest { display: flex; }
.gc-main { margin-left: 15.25rem; min-height: 100vh; }
.gc-footer, .gc-donate-band { margin-left: 15.25rem; }
.gc-navsearch-row { background: #fff; border-color: var(--gc-border); backdrop-filter: none; }

.gc-app-layout { max-width: 86rem; }
.gc-app-layout--feed { display: block; max-width: 58rem; }
.gc-app-layout--feed > .gc-sidebar { display: none; }
.gc-app-layout--feed > .gc-feed-main { max-width: 100%; }
.gc-feed-page-head { align-items: center; }
.gc-feed-section-head { padding-bottom: 0.5rem; border-bottom: 1px solid var(--gc-border); }
.gc-feed-item,
.gc-card {
  border-color: var(--gc-border);
  background: #fff;
  box-shadow: 0 2px 10px rgba(32,32,36,0.035);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.gc-card:hover { transform: translateY(-2px); border-color: rgba(238,0,57,0.2); box-shadow: 0 8px 24px rgba(32,32,36,0.075); }
.gc-feed-item { border-radius: 0.9rem; }
.gc-feed-item__media,
.gc-feed-item__media--project,
.gc-feed-item__media--event {
  max-height: 72vh;
  aspect-ratio: auto;
  object-fit: contain;
  background: #f2f2f4;
}
.gc-feed-item img.gc-feed-item__media {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  max-height: none;
  object-fit: cover;
  object-position: center;
}
.gc-feed-item img.gc-feed-item__media--event {
  aspect-ratio: 16 / 9;
  max-height: 72vh;
}
.gc-project-listing-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; }
.gc-project-listing-card { border-radius: 0.75rem; }
.gc-project-listing-card__cover,
.gc-project-card > img,
.gc-profile-project-cover { aspect-ratio: 4 / 3; object-fit: cover !important; object-position: center; background: #f1f1f3; }
.gc-project-detail-cover { max-height: 76vh !important; object-fit: contain !important; background: #f1f1f3; }
.gc-project-gallery-image { max-height: 38rem; object-fit: contain; background: #f1f1f3; }
.gc-profile-header { gap: 1.5rem; border-radius: 1rem; }
.gc-profile-layout { grid-template-columns: minmax(0,2fr) minmax(15rem,1fr) !important; }
.gc-profile-project-cover { width: 100%; height: auto !important; aspect-ratio: 4 / 3; object-fit: contain !important; background: #f1f1f3; }
.gc-profile-page .gc-grid .gc-card { box-shadow: 0 2px 10px rgba(32,32,36,0.04); }
.gc-btn { transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease; }
.gc-btn--primary { background: var(--gc-gradient); box-shadow: 0 4px 12px rgba(238,0,57,0.16); }
.gc-btn--primary:hover { box-shadow: 0 7px 18px rgba(238,0,57,0.22); }
.gc-btn--ghost { border-color: var(--gc-border); background: #fff; color: var(--gc-text); backdrop-filter: none; }
.gc-btn--ghost:hover, .gc-btn--outline:hover { background: var(--gc-primary-soft); color: var(--gc-primary); }
input:focus, select:focus, textarea:focus { border-color: var(--gc-primary) !important; box-shadow: 0 0 0 3px rgba(238,0,57,0.1); outline: 0; }
.gc-tag, .gc-badge-chip, .gc-score-chip { border-color: var(--gc-border); }
.gc-avatar-link:focus-visible, .gc-icon-btn:focus-visible { outline: 3px solid var(--gc-primary); outline-offset: 2px; }

.gc-reveal { opacity: 0; transform: translateY(0.55rem); transition: opacity .38s ease, transform .38s cubic-bezier(.2,.7,.25,1); transition-delay: calc(var(--gc-reveal-index, 0) * 28ms); }
.gc-reveal.is-visible { opacity: 1; transform: translateY(0); }
@keyframes gc-reaction-pop { 50% { transform: scale(1.18); } }
.gc-feed-item__actions button:active .gc-icon,
.gc-mobile-nav__create:active .gc-icon { animation: gc-reaction-pop .2s ease-out; }

@media (min-width: 1181px) and (max-width: 1440px) {
  .gc-project-listing-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 1180px) {
  .gc-navbar { position: sticky; inset: auto; width: 100%; height: auto; border-right: 0; border-bottom: 1px solid var(--gc-border); }
  .gc-navbar__inner { width: 100%; height: auto; max-width: var(--gc-navbar-w); margin: 0 auto; padding: 0.5rem var(--gc-gutter); flex-direction: row; align-items: center; justify-content: space-between; gap: 0.5rem; }
  .gc-logo { margin-right: auto; }
  .gc-navbar__links { display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 110; max-height: calc(100dvh - 4rem); flex: initial; flex-direction: column; gap: 0.2rem; overflow-y: auto; padding: 0.75rem var(--gc-gutter) 1rem; border-bottom: 1px solid var(--gc-border); background: #fff; box-shadow: 0 14px 28px rgba(32,32,36,0.12); }
  .gc-navbar__links.is-open { display: flex; }
  .gc-navbar__links > a, .gc-navbar__links .gc-nav-more__summary { min-height: 2.85rem; padding: 0.65rem 0.8rem; font-size: 0.925rem; }
  .gc-nav-more { display: none; }
  .gc-navbar__mobile-pages { display: contents; }
  .gc-navbar__menu-heading { margin: 0.75rem 0 0.15rem; padding: 0.3rem 0.8rem; color: var(--gc-text-muted); font-size: 0.7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
  .gc-navbar__links .gc-navbar__account-link { justify-content: flex-start; margin-top: 0.15rem; background: var(--gc-primary-soft); color: var(--gc-primary); }
  .gc-navbar__create-link { display: none !important; }
  .gc-navbar__toggle { display: inline-flex; order: 3; }
  .gc-navbar__actions { order: 2; min-height: 0; margin: 0; padding: 0; justify-content: flex-end; gap: 0.2rem; border: 0; }
  .gc-navbar__actions--guest { display: none; }
  .gc-navbar__mobile-login { display: inline-flex; order: 4; padding: 0.5rem 0.875rem; min-height: 2.5rem; font-size: 0.8125rem; white-space: nowrap; }
  .gc-main, .gc-footer, .gc-donate-band { margin-left: 0; }
  .gc-app-layout--feed { max-width: 58rem; }
  .gc-app-layout--feed > .gc-sidebar { display: none; }
  .gc-project-listing-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .gc-project-listing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gc-profile-layout { grid-template-columns: minmax(0,1fr) !important; }
}
@media (max-width: 768px) {
  body { padding-bottom: calc(4.35rem + env(safe-area-inset-bottom,0px)); }
  .gc-mobile-nav {
    position: fixed; z-index: 120; inset: auto 0 0; display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    min-height: 4rem; padding: 0.35rem 0.25rem calc(0.35rem + env(safe-area-inset-bottom,0px));
    border-top: 1px solid var(--gc-border); background: rgba(255,255,255,0.97);
    box-shadow: 0 -5px 20px rgba(32,32,36,0.055); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  }
  .gc-mobile-nav a { display: flex; min-width: 0; min-height: 3.15rem; flex-direction: column; align-items: center; justify-content: center; gap: 0.12rem; border-radius: 0.65rem; color: var(--gc-text-muted); font-size: 0.625rem; font-weight: 650; line-height: 1.1; }
  .gc-mobile-nav a .gc-icon { width: 1.35rem; height: 1.35rem; }
  .gc-mobile-nav a[aria-current="page"] { color: var(--gc-primary); }
  .gc-mobile-nav__create .gc-icon { box-sizing: content-box; width: 1.2rem !important; height: 1.2rem !important; padding: 0.17rem; border: 2px solid var(--gc-primary); border-radius: 0.45rem; background: var(--gc-gradient); color: #fff; }
  .gc-mobile-nav__create { color: var(--gc-primary) !important; font-weight: 750 !important; }
  .gc-navbar__actions .gc-icon-btn { width: 2.35rem; height: 2.35rem; }
  .gc-navbar__actions .gc-avatar { width: 2rem; height: 2rem; }
  .gc-app-layout--feed { margin-top: 1rem; }
  .gc-feed-main { padding-inline: 0; }
  .gc-feed-item { border-radius: 0.75rem; }
  .gc-feed-item__media { max-height: 68vh; }
  .gc-profile-header { align-items: flex-start !important; padding: 1.25rem !important; }
  .gc-profile-header > .gc-avatar { width: 4.5rem !important; height: 4.5rem !important; }
  .gc-profile-header > div { min-width: 0 !important; }
  .gc-profile-header h1 { font-size: 1.5rem; }
}
@media (max-width: 640px) {
  .gc-navbar__inner { min-height: 3.5rem; }
  .gc-navbar__actions { gap: 0.05rem; }
  .gc-navbar__toggle { width: 2.25rem; height: 2.25rem; }
  .gc-navbar__mobile-login { padding: 0.45rem 0.7rem; font-size: 0.75rem; }
  .gc-project-listing-grid { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .gc-project-listing-card .gc-card__body { padding: 0.75rem; }
  .gc-project-listing-card .gc-card__title { font-size: 0.88rem !important; }
  .gc-project-listing-card .gc-card__meta { font-size: 0.73rem; }
  .gc-app-layout { gap: 0.85rem; padding-inline: var(--gc-gutter); }
  .gc-feed-page-head { flex-direction: column; }
  .gc-feed-section-head { gap: 0.25rem; }
  .gc-feed-section-head p { font-size: 0.8rem; }
  .gc-profile-page { padding-top: 1.25rem !important; }
  .gc-profile-layout { gap: 0.875rem !important; }
}
@media (max-width: 380px) {
  .gc-logo { gap: 0.4rem; font-size: 1.08rem; }
  .gc-logo .gc-logo__mark { width: 1.9rem; height: 1.9rem; }
  .gc-navbar__actions .gc-icon-btn { width: 2rem; height: 2rem; }
  .gc-mobile-nav a { font-size: 0.57rem; }
  .gc-mobile-nav a .gc-icon { width: 1.2rem; height: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gc-reveal, .gc-reveal.is-visible { opacity: 1; transform: none; transition: none; }
  .gc-card:hover, .gc-btn:hover { transform: none; }
}

/* Bande de compte dans la colonne principale, hors du menu latéral. */
.gc-account-topbar { display: none; }
@media (min-width: 1181px) {
  .gc-navbar__actions--member { display: none !important; }
  .gc-navbar__actions--guest { display: none !important; }
  .gc-account-topbar {
    position: fixed;
    inset: 0 0 auto 15.25rem;
    z-index: 110;
    display: flex;
    min-height: 4.5rem;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.5rem 1.5rem;
    border-bottom: 1px solid var(--gc-border);
    background: #fff;
    box-shadow: 0 2px 10px rgba(32,32,36,0.045);
  }
  body:has(.gc-account-topbar) .gc-main { padding-top: 4.5rem; }
  .gc-account-topbar--guest .gc-btn--ghost { border-color: rgba(255,255,255,.5); background: transparent; color: #fff; }
  .gc-account-topbar--guest .gc-btn--ghost:hover { background: rgba(255,255,255,.12); }
  .gc-account-topbar--guest .gc-btn--primary { color: #fff; }
}
@media (max-width: 1180px) {
  .gc-account-topbar { display: none; }
}

/* ============================================================
   GraphConnect — accueil créatif et fil communautaire
   ============================================================ */
.gc-navbar {
  border-right-color: rgba(238,0,57,.38);
  background: linear-gradient(180deg, #30000f 0%, #190009 68%, #100006 100%);
  box-shadow: 8px 0 28px rgba(30,0,10,.12);
}
.gc-logo .gc-logo__word { color: #fff; -webkit-text-fill-color: #fff; }
.gc-navbar__links > a, .gc-navbar__links .gc-nav-more__summary { color: rgba(255,255,255,.84); }
.gc-navbar__links > a:hover, .gc-navbar__links .gc-nav-more__summary:hover,
.gc-navbar__links .gc-nav-more__menu a:hover { background: rgba(255,255,255,.08); color: #fff; }
.gc-navbar__links a.is-active, .gc-navbar__links .gc-nav-more__menu a.is-active,
.gc-navbar__links .gc-nav-more[open] > .gc-nav-more__summary { background: rgba(238,0,57,.2); color: #ff315c; }
.gc-navbar__links .gc-nav-more__menu a { color: rgba(255,255,255,.68); }
.gc-navbar__mobile-pages--member { border-top-color: rgba(255,255,255,.14); }
.gc-navbar__mobile-pages--member .gc-navbar__menu-heading { color: rgba(255,255,255,.52); }
.gc-navbar__mobile-pages--member > a { color: rgba(255,255,255,.72); }
.gc-navbar__mobile-pages--member > a:hover { background: rgba(255,255,255,.08); color: #fff; }
.gc-navbar__actions { border-top-color: rgba(255,255,255,.14); }
.gc-navbar__actions--guest .gc-btn--ghost { border-color: rgba(255,255,255,.35); background: transparent; color: #fff; }
.gc-navbar__actions--guest .gc-btn--ghost:hover { background: rgba(255,255,255,.1); }
.gc-account-topbar { border-bottom-color: rgba(238,0,57,.28); background: #1b0009; box-shadow: 0 4px 18px rgba(20,0,8,.14); }
.gc-account-topbar .gc-icon-btn { color: rgba(255,255,255,.9); }

.gc-home-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-items: center;
  gap: clamp(2rem,5vw,4.5rem);
  min-height: 17.5rem;
  overflow: hidden;
  isolation: isolate;
  padding: clamp(1.15rem,2.5vw,1.75rem);
  border: 0;
  border-radius: 1.25rem;
  background: linear-gradient(122deg,#140007 0%,#210009 58%,#35000f 100%);
  color: #fff;
  box-shadow: 0 18px 50px rgba(69,0,21,.16);
}
.gc-home-hero::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgba(20,0,7,.96) 0%,rgba(20,0,7,.94) 35%,rgba(20,0,7,.78) 48%,rgba(20,0,7,.48) 62%,rgba(20,0,7,.16) 78%,rgba(20,0,7,0) 100%); content: ''; pointer-events: none; }
.gc-home-hero__copy { position: relative; z-index: 2; width: calc(52% - 1.25rem); min-width: 0; }
.gc-home-hero__visual { position: absolute; z-index: 0; inset: 0 0 0 auto; width: 68%; height: auto; min-width: 0; display: flex; align-items: stretch; justify-content: stretch; overflow: hidden; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
.gc-home-hero__eyebrow { display: flex; align-items: center; gap: .55rem; margin: 0 0 .9rem; color: #ff174b; font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.gc-home-hero__eyebrow span { width: 1.4rem; height: 2px; border-radius: 9px; background: #ff174b; }
.gc-home-hero h1 { max-width: 14ch; margin: 0 0 1rem; color: #fff; font-size: clamp(2rem,3.3vw,3.1rem); line-height: 1.05; letter-spacing: -.045em; }
.gc-home-hero h1 em { color: #fff; font-style: normal; }
.gc-home-hero__copy > p:not(.gc-home-hero__eyebrow) { max-width: 38rem; margin: 0 0 1.4rem; color: rgba(255,255,255,.78); font-size: 1rem; line-height: 1.65; }
.gc-home-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.gc-home-hero__actions .gc-btn { min-height: 2.85rem; }
.gc-btn--hero-outline { border: 1px solid rgba(255,255,255,.5); background: rgba(20,0,8,.18); color: #fff; }
.gc-btn--hero-outline:hover { border-color: #ff174b; background: rgba(238,0,57,.12); color: #fff; }
.gc-home-hero__proof { display: flex; align-items: center; gap: .6rem; margin-top: 1.4rem; color: rgba(255,255,255,.67); font-size: .78rem; }
.gc-home-hero__proof-mark { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: #ff315c; }
.gc-home-hero__brand-video { display: none; }
.gc-home-hero__tile { position: relative; display: block; min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.25); border-radius: 1rem; background: rgba(255,255,255,.08); box-shadow: 0 16px 32px rgba(10,0,5,.3); }
.gc-home-hero__tile--1 { grid-row: 1 / span 2; }
.gc-home-hero__tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.gc-home-hero__tile:hover img { transform: scale(1.04); }
.gc-home-hero__tile::after { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,rgba(15,0,7,.82)); content: ''; }
.gc-home-hero__tile > span { position: absolute; z-index: 1; right: .75rem; bottom: .7rem; left: .75rem; overflow: hidden; color: #fff; font-size: .78rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.gc-home-hero__empty-art { display: grid; grid-column: 1 / -1; place-content: center; justify-items: center; gap: .75rem; border: 1px solid rgba(255,255,255,.2); border-radius: 1rem; background: radial-gradient(circle at 70% 20%,rgba(238,0,57,.48),transparent 45%),rgba(255,255,255,.06); color: #ff315c; }
.gc-home-hero__empty-art span { color: rgba(255,255,255,.76); font-size: .85rem; }
.gc-home-hero__glow { display: none !important; }
@media (min-width: 641px) {
  .gc-home-hero__copy { width: calc(52% - 1.25rem); }
  .gc-home-hero__visual { display: flex; }
  .gc-home-hero__visual { width: 68%; }
  .gc-home-hero__brand-video { display: block; width: 100%; height: 100%; flex: 1 1 100%; border: 0; border-radius: 0; outline: 0; object-fit: cover; object-position: center; background: transparent; box-shadow: none; -webkit-mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 12%,rgba(0,0,0,.55) 28%,#000 42%); mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 12%,rgba(0,0,0,.55) 28%,#000 42%); }
  .gc-home-hero__brand-video::-webkit-media-controls,
  .gc-home-hero__brand-video::-webkit-media-controls-enclosure { display: none !important; }
  .gc-home-hero__visual > .gc-home-hero__tile, .gc-home-hero__visual > .gc-home-hero__empty-art { display: none; }
}
.gc-home-shortcuts { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: .75rem; margin: 1.25rem 1.15rem 2.5rem; position: relative; z-index: 2; overflow: visible; }
.gc-home-shortcuts a { display: flex; min-width: 0; min-height: 5.7rem; flex-direction: column; justify-content: center; gap: .22rem; padding: .85rem 1rem; border: 1px solid rgba(238,0,57,.18); border-radius: .9rem; background: #21000b; color: #fff; box-shadow: 0 8px 20px rgba(35,0,11,.1); transition: background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.gc-home-shortcuts a:hover { transform: translateY(-2px); border-color: rgba(238,0,57,.52); background: #2b0010; box-shadow: 0 12px 24px rgba(35,0,11,.16); }
.gc-home-shortcuts a > span { display: inline-flex; color: #ff174b; }
.gc-home-shortcuts a strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.gc-home-shortcuts a small { overflow: hidden; color: rgba(255,255,255,.58); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.gc-home-projects-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 0 0 1rem; }
.gc-home-projects-head h1 { margin: 0; font-size: clamp(1.5rem,2.1vw,2rem); }
.gc-home-projects-head > div > p:last-child { margin: .35rem 0 0; color: var(--gc-text-muted); font-size: .9rem; }
.gc-home-projects-head__eyebrow { margin: 0 0 .3rem; color: var(--gc-primary); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gc-home-projects-filter { display: flex; flex-wrap: wrap; gap: .625rem; margin-bottom: 1.5rem; }
.gc-home-projects-filter input { flex: 1; min-width: 12.5rem; padding: .6875rem .875rem; border: 1px solid var(--gc-border); border-radius: .625rem; background: #fff; color: var(--gc-text); }
.gc-home-projects-filter select { padding: .6875rem .875rem; border: 1px solid var(--gc-border); border-radius: .625rem; background: #fff; color: var(--gc-text); }
.gc-home-projects-filter .gc-btn { min-height: 2.8rem; }

.gc-app-layout--feed { display: grid; grid-template-columns: minmax(0,1fr) 18rem; align-items: start; gap: 1.25rem; max-width: 78rem; }
.gc-app-layout--feed > .gc-feed-main { min-width: 0; max-width: none; }
.gc-feed-rail { position: sticky; top: 5.25rem; display: grid; gap: .9rem; min-width: 0; }
.gc-feed-rail__card { min-width: 0; padding: 1rem; border: 1px solid var(--gc-border); border-radius: .95rem; background: #fff; box-shadow: 0 3px 14px rgba(32,32,36,.04); }
.gc-feed-rail__idea { overflow: hidden; border-color: rgba(238,0,57,.22); background: radial-gradient(circle at 100% 0,rgba(238,0,57,.24),transparent 48%),linear-gradient(140deg,#24000b,#500018); color: #fff; }
.gc-feed-rail__kicker { color: #ff6a89; font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gc-feed-rail__idea h2 { margin: .55rem 0; font-size: 1.15rem; }
.gc-feed-rail__idea p { margin: 0 0 .9rem; color: rgba(255,255,255,.72); font-size: .8rem; line-height: 1.5; }
.gc-feed-rail__idea .gc-btn { min-height: 2.5rem; padding: .55rem .75rem; font-size: .76rem; }
.gc-feed-rail__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .55rem; }
.gc-feed-rail__head h2 { margin: 0; font-size: .95rem; }
.gc-feed-rail__head a, .gc-creator-strip__head a { display: inline-flex; align-items: center; gap: .2rem; color: var(--gc-primary); font-size: .72rem; font-weight: 750; white-space: nowrap; }
.gc-feed-rail__project, .gc-feed-rail__resource { display: flex; align-items: center; gap: .65rem; min-width: 0; padding: .55rem 0; border-top: 1px solid #f0eef0; }
.gc-feed-rail__project img { width: 3.2rem; height: 3.2rem; flex: 0 0 3.2rem; border-radius: .6rem; object-fit: cover; }
.gc-feed-rail__project > span, .gc-feed-rail__resource > span:last-child { display: grid; min-width: 0; gap: .15rem; }
.gc-feed-rail__project strong, .gc-feed-rail__resource strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.gc-feed-rail__project small, .gc-feed-rail__resource small { color: var(--gc-text-muted); font-size: .67rem; }
.gc-feed-rail__resource-icon { display: grid; width: 2.7rem; height: 2.7rem; flex: 0 0 2.7rem; place-items: center; border-radius: .6rem; background: var(--gc-primary-soft); color: var(--gc-primary); }
.gc-feed-rail__empty { margin: .35rem 0 0; color: var(--gc-text-muted); font-size: .78rem; }
.gc-creator-strip { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid var(--gc-border); border-radius: .95rem; background: #fff; box-shadow: 0 3px 14px rgba(32,32,36,.035); }
.gc-creator-strip__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .55rem; }
.gc-creator-strip__head h2 { margin: 0; font-size: .9rem; }
.gc-creator-strip__list { display: flex; gap: .85rem; overflow-x: auto; scrollbar-width: none; }
.gc-creator-strip__list::-webkit-scrollbar { display: none; }
.gc-creator-strip__item { display: grid; width: 4.1rem; flex: 0 0 4.1rem; justify-items: center; gap: .3rem; color: var(--gc-text); font-size: .65rem; text-align: center; }
.gc-creator-strip__item > span:last-child { width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gc-creator-strip__avatar { display: grid; width: 3.4rem; height: 3.4rem; place-items: center; padding: 2px; border-radius: 50%; background: linear-gradient(145deg,#ff315c,#54091b); }
.gc-creator-strip__avatar img { width: 100%; height: 100%; border: 2px solid #fff; border-radius: 50%; object-fit: cover; }

/* Publication de projet : une carte plus accueillante et des zones média claires. */
.gc-project-publish {
  position: relative; overflow: hidden; margin-top: 2rem; padding: clamp(1.25rem,3vw,2rem);
  border: 1px solid rgba(238,0,57,.2); border-top: 4px solid #ee0039;
  background: radial-gradient(ellipse at 100% 0,rgba(238,0,57,.09),transparent 38%),#fff;
  box-shadow: 0 16px 40px rgba(84,9,27,.09);
}
.gc-project-publish__heading { display: flex; align-items: center; gap: .9rem; margin-bottom: .6rem; }
.gc-project-publish__mark { display: grid; width: 3.25rem; height: 3.25rem; flex: 0 0 3.25rem; place-items: center; border-radius: 1rem; background: linear-gradient(140deg,#ee0039,#54091b); color: #fff; }
.gc-project-publish__eyebrow { margin: 0 0 .2rem; color: #ee0039; font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.gc-project-publish h1 { margin: 0; color: #2a1119; font-size: clamp(1.55rem,2.5vw,2rem); line-height: 1.2; }
.gc-project-publish__intro { margin: 0 0 1.4rem; color: #62565a; font-size: .95rem; line-height: 1.55; }
.gc-project-publish__media { margin: 0 0 1.2rem; padding: 1rem 1rem .1rem; border: 1px solid #f3dce2; border-radius: .85rem; background: linear-gradient(145deg,#fff8fa,#fff); }
.gc-project-publish__section-title { display: flex; align-items: center; gap: .55rem; margin: 0 0 1rem; color: #54091b; font-size: 1rem; font-weight: 800; }
.gc-project-publish__section-title .gc-icon { color: #ee0039; }
.gc-project-publish .gc-field label { color: #39232a; }
.gc-project-publish .gc-field input[type="file"] { padding: .6rem; border-color: #ead6dc; background: #fff; }
.gc-project-publish .gc-field small { display: block; margin-top: .4rem; color: #70646a; line-height: 1.5; }
.gc-project-publish > form > .gc-btn { min-height: 3rem; background: linear-gradient(110deg,#ee0039,#a8002b 72%,#54091b); box-shadow: 0 8px 20px rgba(238,0,57,.18); }

/* Icônes inline plus lisibles à côté des titres, dates et catégories. */
.gc-card__meta > .gc-icon, .gc-tag > .gc-icon { width: 1.15em; height: 1.15em; vertical-align: -.2em; }
h1 > .gc-icon, h2 > .gc-icon, h3 > .gc-icon { width: 1.1em; height: 1.1em; vertical-align: -.16em; }

/* Les pages métiers et événements démarrent avec une marge d’air régulière. */
.gc-careers-page { padding-top: 1.35rem !important; }
.gc-careers-page__title { margin: .45rem 0 .25rem; line-height: 1.2; }
.gc-careers-page__section-title { margin: 2rem 0 .5rem; line-height: 1.25; }
.gc-career-detail { padding-top: 1.25rem !important; }
.gc-career-detail__back { margin: 0 0 1rem; }
.gc-career-detail__back a { display: inline-flex; align-items: center; gap: .4rem; }
.gc-career-detail__title { margin: .35rem 0 .6rem; line-height: 1.2; }
.gc-career-detail > .gc-card__meta .gc-icon { width: 1.15em; height: 1.15em; }

@media (max-width: 640px) {
  .gc-project-publish { margin: 1rem .75rem; padding: 1.15rem; border-radius: 1rem; }
  .gc-project-publish__media { padding: .85rem .75rem .1rem; }
  .gc-careers-page, .gc-career-detail { padding-top: .9rem !important; }
}

@media (max-width: 1180px) {
  .gc-app-layout--feed { grid-template-columns: minmax(0,1fr); max-width: 58rem; }
  .gc-feed-rail { display: none; }
}
@media (max-width: 900px) {
  .gc-home-hero { grid-template-columns: minmax(0,1fr); gap: 1.4rem; }
  .gc-home-shortcuts { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin: 1rem .65rem 2rem; }
}
@media (max-width: 640px) {
  .gc-home-hero__publish { display: none; }
  .gc-home-hero__copy { width: auto; }
  .gc-home-hero__visual { display: none; }
  .gc-navbar { background: linear-gradient(90deg,#25000b,#140007); border-bottom-color: rgba(238,0,57,.35); }
  .gc-navbar__links { border-bottom-color: rgba(238,0,57,.35); background: #1a0008; box-shadow: 0 14px 28px rgba(20,0,8,.28); }
  .gc-navbar__links > a, .gc-navbar__links .gc-nav-more__summary { color: rgba(255,255,255,.86); }
  .gc-navbar__links .gc-navbar__account-link { background: rgba(238,0,57,.18); color: #ff315c; }
  .gc-home-hero { display: flex; min-height: 0; flex-direction: column; align-items: stretch; gap: .85rem; padding: 1.1rem .95rem .95rem; border-radius: 1rem; }
  .gc-home-hero h1 { max-width: 15ch; font-size: clamp(1.75rem,6vw,1.9rem); }
  .gc-home-hero__copy > p:not(.gc-home-hero__eyebrow) { font-size: .9rem; }
  .gc-home-hero__actions { display: grid; grid-template-columns: 1fr; }
  .gc-home-hero__actions .gc-btn { justify-content: center; }
  .gc-home-hero__proof { margin-top: .9rem; font-size: .7rem; }
  .gc-home-hero__visual { height: 9rem; margin: .1rem .2rem .25rem; transform: rotate(-1deg); }
  .gc-home-hero__tile { border-radius: .75rem; }
  .gc-home-hero__tile > span { right: .5rem; bottom: .45rem; left: .5rem; font-size: .68rem; }
  .gc-home-shortcuts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; margin: .25rem 0 1.8rem; }
  .gc-home-shortcuts a { min-height: 5rem; padding: .65rem .75rem; }
  .gc-home-shortcuts a strong { font-size: .76rem; }
  .gc-home-shortcuts a small { font-size: .63rem; }
  .gc-home-projects-head { align-items: flex-start; flex-direction: column; margin-bottom: .8rem; }
  .gc-home-projects-head .gc-btn { width: 100%; justify-content: center; }
  .gc-home-projects-filter { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
  .gc-home-projects-filter input { grid-column: 1 / -1; min-width: 0; }
  .gc-home-projects-filter select { min-width: 0; }
  .gc-home-projects-filter .gc-btn { grid-column: 1 / -1; justify-content: center; }
  .gc-app-layout--feed { margin-top: .7rem; }
  .gc-feed-page-head { gap: .65rem; }
  .gc-feed-page-head .gc-btn { align-self: stretch; justify-content: center; }
  .gc-creator-strip { margin-inline: calc(var(--gc-gutter) * -0.5); padding-inline: .8rem; border-radius: .8rem; }
  .gc-creator-strip__list { gap: .65rem; }
  .gc-mobile-nav { border-top-color: rgba(238,0,57,.3); background: rgba(22,0,8,.98); box-shadow: 0 -5px 20px rgba(18,0,7,.2); }
  .gc-mobile-nav a { color: rgba(255,255,255,.65); }
  .gc-mobile-nav a[aria-current="page"] { color: #ff315c; }
  .gc-mobile-nav__create .gc-icon { background: linear-gradient(135deg,#ff174b,#b90031); border-color: #ff315c; }
}

.gc-new-members,
.gc-mobile-creative-marquee { display: none; }

/* Keep profile photos circular and proportional in flex/grid rows. */
.gc-avatar {
  aspect-ratio: 1 / 1 !important;
  flex: 0 0 auto !important;
  object-fit: cover !important;
  object-position: center !important;
}
.gc-avatar-link { flex: 0 0 auto; aspect-ratio: 1 / 1; }

/* Mobile home and feed: compact creative stream, without stories. */
@media (max-width: 640px) {
  html { font-size: 100%; }
  body { overflow-x: clip; }
  .gc-container.gc-section:has(.gc-home-hero) {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 0 calc(4.35rem + env(safe-area-inset-bottom,0px));
  }
  .gc-home-hero,
  .gc-home-shortcuts { display: none !important; }
  .gc-home-projects-head { gap: .5rem; margin: 0; padding: .9rem .85rem .65rem; }
  .gc-home-projects-head h1 { font-size: 1.15rem; }
  .gc-home-projects-head > div > p:last-child { font-size: .78rem; }
  .gc-home-projects-head .gc-btn { width: auto; min-height: 2.4rem; align-self: flex-start; }
  .gc-home-projects-head > .gc-btn { display: none !important; }
  .gc-new-members { display: block; margin: 0; padding: .65rem .8rem .75rem; border-bottom: 1px solid #ececf0; background: #fff; }
  .gc-new-members h2 { margin: 0 0 .55rem; color: #29252a; font-size: .78rem; font-weight: 750; }
  .gc-new-members__list { display: flex; gap: .8rem; overflow-x: auto; scrollbar-width: none; }
  .gc-new-members__list::-webkit-scrollbar { display: none; }
  .gc-new-members__profile { display: grid; width: 3.85rem; flex: 0 0 3.85rem; justify-items: center; gap: .28rem; color: #29252a; font-size: .62rem; text-align: center; }
  .gc-new-members__profile > span:last-child { width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .gc-new-members__avatar { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; padding: 2px; border-radius: 50%; background: linear-gradient(145deg,#ff315c,#54091b); }
  .gc-new-members__avatar img { width: 100%; height: 100%; border: 2px solid #fff; border-radius: 50%; object-fit: cover; }
  .gc-new-members__avatar { flex: 0 0 3.25rem; aspect-ratio: 1 / 1; }
  .gc-new-members__avatar img { display: block; max-width: none; aspect-ratio: 1 / 1; object-position: center; }
  .gc-avatar-link .gc-avatar,
  .gc-feed-item__head .gc-avatar,
  .gc-profile-header > .gc-avatar { border-radius: 50% !important; object-fit: cover !important; object-position: center !important; }
  .gc-mobile-creative-marquee {
    display: block;
    width: 100%;
    overflow: hidden;
    padding: .85rem 0;
    border-block: 1px solid rgba(238,0,57,.2);
    background: linear-gradient(100deg,#26000c,#520017 52%,#25000c);
    color: #fff;
  }
  .gc-mobile-creative-marquee__track { display: flex; width: max-content; animation: gc-creative-marquee 34s linear infinite; }
  .gc-mobile-creative-marquee__group { display: flex; flex: 0 0 auto; align-items: center; gap: 1.4rem; padding-right: 1.4rem; }
  .gc-mobile-creative-marquee__group span { display: inline-flex; align-items: center; gap: .42rem; color: rgba(255,255,255,.94); font-size: .78rem; font-weight: 650; white-space: nowrap; }
  .gc-mobile-creative-marquee__group .gc-icon { color: #ff315c; }
  @keyframes gc-creative-marquee { to { transform: translateX(-50%); } }
  .gc-home-projects-head--home { display: none !important; }
  /* Keep the mobile home focused on the project feed; hide its search and category controls. */
  .gc-home-projects-filter--home,
  .gc-navsearch-row { display: none !important; }
  .gc-home-projects-filter { margin: 0; padding: .35rem .8rem .7rem; }
  .gc-project-listing-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: .65rem; }
  .gc-project-listing-card { border: 0; border-bottom: 1px solid #ececf0; border-radius: 0; box-shadow: none; background: #fff; }
  .gc-project-listing-card__cover { width: 100%; aspect-ratio: 4 / 3; max-height: none !important; object-fit: cover !important; background: #f1f1f3; }
  .gc-project-listing-card .gc-card__body { padding: .65rem .85rem .8rem; }
  .gc-project-listing-card .gc-card__title { font-size: .95rem !important; }
  .gc-project-listing-card .gc-card__meta { font-size: .75rem; }
  .gc-navbar__toggle { color: #fff; }
  .gc-navbar__actions--member { display: flex !important; order: 2; align-items: center; gap: .12rem; }
  .gc-navbar__actions--member .gc-icon-btn { color: #fff !important; opacity: 1; }
  .gc-navbar__actions--member .gc-avatar-link { display: inline-flex; }
  .gc-navbar__actions--member .gc-avatar { border-color: rgba(255,255,255,.85); }
}

@media (prefers-reduced-motion: reduce) {
  .gc-mobile-creative-marquee__track { animation: none; }
}

/* Mobile feed: compact, single-column publication stream (without stories). */
@media (max-width: 640px) {
  .gc-app-layout--feed {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }
  .gc-app-layout--feed > .gc-sidebar,
  .gc-app-layout--feed > .gc-feed-rail,
  .gc-feed-page-head,
  .gc-feed-tabs,
  .gc-feed-section-head,
  .gc-creator-strip { display: none !important; }
  .gc-feed-main { width: 100%; max-width: none; padding: 0; }
  .gc-composer {
    margin: .35rem 0 .55rem;
    border: 0;
    border-bottom: 1px solid #ececf0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }
  .gc-composer .gc-card__body { padding: .6rem .8rem; }
  .gc-composer__heading { display: none; }
  .gc-composer textarea {
    min-height: 2.75rem;
    max-height: 7rem;
    padding: .72rem .85rem;
    border: 0;
    border-radius: 999px;
    background: #f4f4f6;
    font-size: .82rem;
    resize: vertical;
  }
  .gc-composer textarea:focus { min-height: 5rem; }
  .gc-composer__row { gap: .4rem; margin: .45rem 0; }
  .gc-composer__attach { min-height: 2.25rem; padding: .4rem .65rem; font-size: .74rem; }
  .gc-composer__link, .gc-composer__row select { min-width: 0; flex: 1 1 100%; font-size: .8rem; }
  .gc-composer__footer { min-height: 2.25rem; align-items: center; flex-direction: row; margin-top: .3rem; }
  .gc-composer__footer .gc-btn { width: auto; min-height: 2.2rem; padding: .4rem 1rem; }
  .gc-feed { gap: 0; background: #fff; }
  .gc-feed-item {
    padding: .7rem .8rem .55rem;
    border: 0;
    border-bottom: 1px solid #ececf0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
  }
  .gc-feed-item__head { gap: .55rem; margin-bottom: .45rem; }
  .gc-feed-item__head > a:first-child .gc-avatar { width: 2.15rem; height: 2.15rem; }
  .gc-feed-item__author { font-size: .8rem; }
  .gc-feed-item__head .gc-card__meta { margin-top: .08rem; font-size: .68rem; }
  .gc-feed-item__type { max-width: 6rem; padding: .18rem .45rem; font-size: .63rem; }
  .gc-feed-item__body { margin-bottom: .25rem; }
  .gc-feed-item__text { margin: .2rem 0 .55rem; font-size: .79rem; line-height: 1.45; }
  .gc-feed-item__media,
  .gc-feed-item img.gc-feed-item__media,
  .gc-feed-item img.gc-feed-item__media--project {
    display: block;
    width: calc(100% + 1.6rem);
    max-width: none;
    height: auto;
    max-height: 68vh;
    margin: .35rem -.8rem .45rem;
    border-radius: 0;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: #f1f1f3;
  }
  .gc-feed-item img.gc-feed-item__media--event { aspect-ratio: 16 / 9; }
  .gc-feed-item__actions { gap: .25rem; margin-top: .15rem; }
  .gc-feed-item__actions .gc-btn { min-height: 2rem; padding: .3rem .45rem; font-size: .7rem; }
  .gc-feed-item__actions .gc-icon { width: 1rem; height: 1rem; }
  .gc-feed-item__comments { margin-top: .5rem; padding-top: .5rem; }
  .gc-feed-item[data-type="new_member"] { padding-block: .65rem; border-left: 0; }
  .gc-feed-item[data-type="new_member"] .gc-feed-item__body p { font-size: .76rem; }
}

/* Mobile readability: enforce clear foreground colors on light content surfaces. */
@media (max-width: 640px) {
  .gc-home-projects-head,
  .gc-home-projects-head h1,
  .gc-project-listing-card,
  .gc-project-listing-card .gc-card__title,
  .gc-project-listing-card .gc-card__body,
  .gc-feed-item,
  .gc-feed-item__author,
  .gc-feed-item__text,
  .gc-feed-item__body,
  .gc-composer,
  .gc-composer label {
    color: #202024 !important;
    -webkit-text-fill-color: currentColor;
  }

  .gc-home-projects-head > div > p:last-child,
  .gc-project-listing-card .gc-card__meta,
  .gc-feed-item__head .gc-card__meta,
  .gc-feed-item__body p,
  .gc-card__meta {
    color: #5c5c63 !important;
    -webkit-text-fill-color: currentColor;
  }

  .gc-composer textarea,
  .gc-composer input,
  .gc-composer select {
    color: #202024 !important;
    -webkit-text-fill-color: #202024;
  }
  .gc-composer textarea::placeholder,
  .gc-composer input::placeholder {
    color: #66666d !important;
    opacity: 1;
  }
}

/* Mobile: strong contrast for navigation and a message composer that fits. */
@media (max-width: 768px) {
  .gc-navbar__links.is-open {
    background: #1a0008 !important;
    border-bottom-color: rgba(238,0,57,.45) !important;
    box-shadow: 0 14px 28px rgba(20,0,8,.4) !important;
  }
  .gc-navbar__links.is-open > a,
  .gc-navbar__links.is-open .gc-navbar__theme-toggle,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle,
  .gc-navbar__links.is-open .gc-nav-more__summary,
  .gc-navbar__links.is-open .gc-nav-more__menu a,
  .gc-navbar__links.is-open .gc-navbar__mobile-pages--member > a {
    border-color: rgba(255,255,255,.16) !important;
    background: #2a0611 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }
  .gc-navbar__links.is-open .gc-navbar__menu-heading { color: #ff9bad !important; }
  .gc-navbar__links.is-open > a:hover,
  .gc-navbar__links.is-open > a:focus-visible,
  .gc-navbar__links.is-open .gc-navbar__theme-toggle:hover,
  .gc-navbar__links.is-open .gc-navbar__theme-toggle:focus-visible,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle:hover,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle:focus-visible,
  .gc-navbar__links.is-open .gc-nav-more__menu a:hover,
  .gc-navbar__links.is-open .gc-navbar__mobile-pages--member > a:hover {
    border-color: rgba(255,107,136,.65) !important;
    background: #470015 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }
  .gc-navbar__links.is-open > a.is-active,
  .gc-navbar__links.is-open .gc-nav-more[open] > .gc-nav-more__summary {
    border-color: #ff315c !important;
    background: #61001c !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }
  .gc-navbar__links.is-open .gc-navbar__account-link {
    border-color: #ee0039 !important;
    background: #ee0039 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }
  .gc-mobile-nav a { color: #fff !important; -webkit-text-fill-color: #fff !important; }
  .gc-mobile-nav a[aria-current="page"] { color: #ff6b88 !important; -webkit-text-fill-color: #ff6b88 !important; }

  .gc-message-page,
  .gc-message-compose,
  .gc-message-compose__fields { min-width: 0; max-width: 100%; }
  .gc-message-page { overflow-x: clip; }
  .gc-message-compose { width: 100%; align-items: stretch !important; gap: .5rem !important; }
  .gc-message-compose__fields { flex: 1 1 0% !important; }
  .gc-message-compose textarea { display: block; box-sizing: border-box; width: 100% !important; min-width: 0; }
  .gc-message-compose input[type="file"] { display: block; width: 100%; max-width: 100%; min-width: 0; }
  .gc-message-compose > .gc-btn { flex: 0 0 auto; max-width: 34%; min-width: 0; padding-inline: .7rem; white-space: nowrap; }
}

.gc-preference-toggle { flex: 0 0 auto; color: #fff; font-size: 1.15rem; line-height: 1; }
.gc-preference-toggle:hover { color: #fff; background: rgba(255,255,255,.14); }
.gc-preference-toggle span { display: inline-block; min-width: 1em; text-align: center; }
@media (max-width: 1180px) {
  .gc-navbar__actions--guest { display: flex; order: 2; gap: .12rem; }
  .gc-navbar__actions--guest > a { display: none !important; }
}
@media (max-width: 640px) {
  .gc-navbar__actions .gc-preference-toggle { width: 2rem; height: 2rem; }
}
@media (max-width: 380px) {
  .gc-navbar__actions .gc-preference-toggle { width: 1.75rem; height: 1.75rem; }
}

/* Sur ordinateur, la connexion des visiteurs est présentée dans le bandeau supérieur. */
@media (min-width: 1181px) {
  .gc-navbar__mobile-login { display: none !important; }
}

/* Les préférences de thème et de son restent avec la navigation sur tous les écrans. */
.gc-navbar__preference-controls { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .15rem; }
.gc-navbar__theme-toggle,
.gc-navbar__sound-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--gc-text-muted);
  cursor: pointer;
  font: inherit;
  font-size: 1.2rem;
  line-height: 1;
  transition: color .15s ease, background .15s ease, transform .15s ease;
}
.gc-navbar__theme-toggle:hover,
.gc-navbar__theme-toggle:focus-visible,
.gc-navbar__sound-toggle:hover,
.gc-navbar__sound-toggle:focus-visible { color: var(--gc-primary); background: var(--gc-primary-soft); }
.gc-navbar__theme-toggle:focus-visible,
.gc-navbar__sound-toggle:focus-visible { outline: 2px solid var(--gc-primary); outline-offset: 2px; }
.gc-navbar__theme-icon { display: inline-block; min-width: 1em; text-align: center; }
.gc-navbar__theme-label { display: none; }
@media (max-width: 1180px) {
  .gc-navbar__links.is-open > .gc-navbar__preference-controls {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    width: 100%;
    margin-top: .35rem;
    padding-top: .35rem;
    border-top: 1px solid rgba(255,255,255,.16);
  }
  .gc-navbar__links.is-open .gc-navbar__theme-toggle,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle {
    justify-content: flex-start;
    gap: .7rem;
    width: 100%;
    min-height: 2.75rem;
    height: auto;
    padding: .625rem .875rem;
    border-radius: .625rem;
    color: #fff;
    font-size: .9375rem;
  }
  .gc-navbar__theme-label { display: inline; font-size: .9375rem; font-weight: 600; }
}
@media (max-width: 768px) {
  .gc-navbar__links.is-open .gc-navbar__theme-toggle,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle { background: #2a0611; }
  .gc-navbar__links.is-open .gc-navbar__theme-toggle:hover,
  .gc-navbar__links.is-open .gc-navbar__theme-toggle:focus-visible,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle:hover,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle:focus-visible { background: #470015; color: #fff; }
}

@keyframes gc-page-enter { from { opacity: .72; transform: translateY(.35rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes gc-page-leave { to { opacity: .72; transform: translateY(-.2rem); } }
@keyframes gc-click-pulse { 50% { transform: scale(.96); } }
main.gc-page-enter { animation: gc-page-enter .24s ease-out both; }
body.gc-page-leaving main { animation: gc-page-leave .13s ease-in both; }
button:active, summary:active, a.gc-btn:active, .gc-icon-btn:active { animation: gc-click-pulse .16s ease-out; }
@media (prefers-reduced-motion: reduce) {
  main.gc-page-enter, body.gc-page-leaving main, button:active, summary:active, a.gc-btn:active, .gc-icon-btn:active { animation: none !important; }
}

/* Palette sombre cohérente sur les pages publiques, l’espace membre et les formulaires. */
html[data-theme="dark"] {
  color-scheme: dark;
  --gc-bg: #100b10;
  --gc-canvas-2: #191118;
  --gc-text: #f8f1f4;
  --gc-text-muted: #c0b2ba;
  --gc-ink-faint: #a18e98;
  --gc-surface: #1b141a;
  --gc-surface-2: #241a21;
  --gc-surface-alt: rgba(238,0,57,.12);
  --gc-border: #402a35;
  --gc-glass-border: #402a35;
  --gc-primary-soft: rgba(238,0,57,.18);
  --gc-shadow: 0 16px 40px -24px rgba(0,0,0,.75), 0 2px 7px rgba(0,0,0,.28);
  --gc-shadow-sm: 0 4px 16px rgba(0,0,0,.24);
}
html[data-theme="dark"] body { background: var(--gc-bg); color: var(--gc-text); }
html[data-theme="dark"] .gc-card,
html[data-theme="dark"] .gc-feed-item,
html[data-theme="dark"] .gc-sidebar,
html[data-theme="dark"] .gc-form,
html[data-theme="dark"] .gc-idea,
html[data-theme="dark"] .gc-legal__toc,
html[data-theme="dark"] .gc-legal__section,
html[data-theme="dark"] .gc-modal__panel,
html[data-theme="dark"] .gc-feed-rail__card,
html[data-theme="dark"] .gc-creator-strip,
html[data-theme="dark"] .gc-new-members,
html[data-theme="dark"] .gc-profile-header,
html[data-theme="dark"] .gc-profile-card,
html[data-theme="dark"] .gc-resource-card,
html[data-theme="dark"] .gc-project-listing-card,
html[data-theme="dark"] .gc-navsearch-row,
html[data-theme="dark"] .gc-navbar__links.is-open,
html[data-theme="dark"] .gc-nav-more__menu,
html[data-theme="dark"] .gc-mobile-nav,
html[data-theme="dark"] .gc-account-topbar { background-color: var(--gc-surface) !important; color: var(--gc-text); border-color: var(--gc-border); }
html[data-theme="dark"] .gc-footer,
html[data-theme="dark"] .gc-main,
html[data-theme="dark"] .gc-app-layout,
html[data-theme="dark"] .gc-project-listing-grid,
html[data-theme="dark"] .gc-feed { color: var(--gc-text); }
html[data-theme="dark"] .gc-card,
html[data-theme="dark"] .gc-feed-item,
html[data-theme="dark"] .gc-idea,
html[data-theme="dark"] .gc-legal__section,
html[data-theme="dark"] .gc-legal__toc,
html[data-theme="dark"] .gc-profile-header,
html[data-theme="dark"] .gc-profile-card,
html[data-theme="dark"] .gc-resource-card,
html[data-theme="dark"] .gc-project-listing-card,
html[data-theme="dark"] .gc-feed-rail__card,
html[data-theme="dark"] .gc-creator-strip { background: var(--gc-surface) !important; color: var(--gc-text); border-color: var(--gc-border); }
html[data-theme="dark"] .gc-card__body,
html[data-theme="dark"] .gc-feed-item__comments,
html[data-theme="dark"] .gc-feed-item__ref-card,
html[data-theme="dark"] .gc-project-listing-card__body { background: var(--gc-surface); color: var(--gc-text); }
html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .gc-composer__attach,
html[data-theme="dark"] .gc-btn--ghost { background-color: var(--gc-surface-2) !important; color: var(--gc-text) !important; border-color: var(--gc-border) !important; }
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color: #a18e98; }
html[data-theme="dark"] .gc-mobile-nav { background: rgba(27,20,26,.97) !important; box-shadow: 0 -5px 20px rgba(0,0,0,.35); }
html[data-theme="dark"] .gc-navbar__links.is-open { background: #1b141a !important; }
html[data-theme="dark"] .gc-navbar__links.is-open > a,
html[data-theme="dark"] .gc-navbar__links.is-open .gc-nav-more__summary,
html[data-theme="dark"] .gc-navbar__links.is-open .gc-nav-more__menu a,
html[data-theme="dark"] .gc-navbar__links.is-open .gc-navbar__mobile-pages--member > a { color: #f8f1f4 !important; }
html[data-theme="dark"] .gc-navsearch-row,
html[data-theme="dark"] .gc-footer,
html[data-theme="dark"] .gc-donate-band { border-color: var(--gc-border); }
html[data-theme="dark"] .gc-home-projects-filter input,
html[data-theme="dark"] .gc-home-projects-filter select,
html[data-theme="dark"] .gc-project-publish .gc-field input[type="file"] { background: var(--gc-surface-2); color: var(--gc-text); border-color: var(--gc-border); }
html[data-theme="dark"] .gc-project-listing-card,
html[data-theme="dark"] .gc-feed-item,
html[data-theme="dark"] .gc-new-members { border-color: var(--gc-border); }
html[data-theme="dark"] .gc-preference-toggle { color: #fff !important; }

/* Contraste du texte dans les contenus qui gardent encore des couleurs fixes du thème clair. */
html[data-theme="dark"] .gc-main :is(h1, h2, h3, h4, p, li, dt, dd, figcaption, blockquote),
html[data-theme="dark"] .gc-main :is(small, .gc-text-muted, .text-muted, .muted, .gc-muted) {
  color: var(--gc-text) !important;
}
html[data-theme="dark"] .gc-main :is(.gc-project-publish__intro, .gc-project-publish__section-title,
  .gc-project-publish .gc-field label, .gc-project-publish .gc-field small,
  .gc-new-members h2, .gc-new-members__profile,
  .gc-home-projects-head > div > p:last-child, .gc-home-projects-filter label,
  .gc-feed-item__meta, .gc-feed-item__caption, .gc-feed-item__comments,
  .gc-profile-card__meta, .gc-resource-card__meta, .gc-project-listing-card__meta) {
  color: var(--gc-text) !important;
}
html[data-theme="dark"] .gc-main :is(a:not(.gc-btn), button:not(.gc-btn), .gc-icon) { color: var(--gc-text); }
html[data-theme="dark"] .gc-main :is(a:not(.gc-btn), button:not(.gc-btn), .gc-icon):hover {
  color: #ff6b88;
}
html[data-theme="dark"] .gc-project-publish__media,
html[data-theme="dark"] .gc-new-members,
html[data-theme="dark"] .gc-home-projects-filter input,
html[data-theme="dark"] .gc-home-projects-filter select {
  background-color: var(--gc-surface-2) !important;
  color: var(--gc-text) !important;
  border-color: var(--gc-border) !important;
}
html[data-theme="dark"] .gc-project-publish h1,
html[data-theme="dark"] .gc-project-publish__intro,
html[data-theme="dark"] .gc-project-publish__section-title,
html[data-theme="dark"] .gc-project-publish .gc-field label,
html[data-theme="dark"] .gc-project-publish .gc-field small,
html[data-theme="dark"] .gc-new-members h2,
html[data-theme="dark"] .gc-new-members__profile { color: var(--gc-text) !important; }

/* Menu déroulant lisible avec icônes sur les fenêtres PC rétrécies et les tablettes. */
@media (max-width: 1180px) {
  .gc-navbar__toggle { color: #fff !important; }
  .gc-navbar__actions--member {
    display: flex !important;
    order: 2;
    align-items: center;
    gap: .15rem;
    margin: 0;
    padding: 0;
    border: 0;
  }
  .gc-navbar__actions--member .gc-icon-btn,
  .gc-navbar__actions--member .gc-avatar-link { display: inline-flex !important; color: #fff !important; opacity: 1; }
  .gc-navbar__actions--member .gc-icon-btn { width: 2.25rem; height: 2.25rem; }
  .gc-navbar__actions--member .gc-avatar { width: 2rem; height: 2rem; border: 2px solid rgba(255,255,255,.85); }
  .gc-navbar__links.is-open {
    background: #1a0008 !important;
    border-bottom-color: rgba(238,0,57,.45) !important;
    box-shadow: 0 14px 28px rgba(20,0,8,.4) !important;
  }
  .gc-navbar__links.is-open > a,
  .gc-navbar__links.is-open .gc-navbar__link-icon,
  .gc-navbar__links.is-open .gc-nav-more__summary,
  .gc-navbar__links.is-open .gc-nav-more__menu a,
  .gc-navbar__links.is-open .gc-navbar__menu-heading,
  .gc-navbar__links.is-open .gc-navbar__mobile-pages--member > a,
  .gc-navbar__links.is-open .gc-navbar__theme-toggle,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }
  .gc-navbar__links.is-open .gc-navbar__link-icon { display: inline-flex !important; }
  .gc-navbar__links.is-open .gc-navbar__link-icon .gc-icon { width: 1.2rem; height: 1.2rem; }
  .gc-navbar__links.is-open .gc-nav-more { display: block !important; }
  .gc-navbar__links.is-open .gc-nav-more__menu {
    position: static;
    display: grid;
    width: 100%;
    padding: .15rem 0 .35rem 2.1rem;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .gc-navbar__links.is-open .gc-nav-more__menu a { min-height: 2.6rem; }
  .gc-navbar__links.is-open .gc-navbar__account-link {
    border-color: #ee0039 !important;
    background: #ee0039 !important;
  }
  .gc-navbar__links.is-open > a:hover,
  .gc-navbar__links.is-open .gc-nav-more__summary:hover,
  .gc-navbar__links.is-open .gc-nav-more__menu a:hover,
  .gc-navbar__links.is-open .gc-navbar__theme-toggle:hover,
  .gc-navbar__links.is-open .gc-navbar__sound-toggle:hover {
    background: #470015 !important;
  }
}
