/* ============================================================
   TEXTE ATTÉNUÉ (états vides / "aucun résultat")
   ============================================================ */
.cp-text-muted {
  color: var(--cp-color-text, #334155);
  opacity: .6;
  font-size: 1rem;
}



/* ============================================================
   MICRO-BADGE COMPOSANT (Hero)
   ============================================================ */
.hero__badge {
  display: inline-block;
  padding: .3rem .85rem;
  border-radius: 50px;
  background: rgba(0,0,0,.05);
  color: var(--cp-color-secondary, #EB7630);
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}



/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .event-card {
    grid-template-columns: auto 1fr;
    row-gap: 1rem;
  }
  .event-card > .cp-btn-primary,
  .event-card > .cp-btn-outline {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
    margin-top: 0.5rem;
  }
}
@media (max-width: 480px) {
  .membre-card__photo-wrap { width: 130px; height: 130px; }
}



/* ============================================================
   RESPONSIVE BREAKPOINTS (MOBILE < 640px, TABLET 640-1024px)
   ============================================================ */
@media (max-width: 1024px) {
  .cp-hero-columns {
    flex-direction: column;
    gap: 2.5rem;
  }
  .cp-hero-text-col, .cp-hero-card-col {
    width: 100% !important;
    flex-basis: 100% !important;
  }
  .cp-hero-text-col {
    text-align: center;
  }
  .cp-hero-description {
    margin-left: auto;
    margin-right: auto;
  }
  .cp-hero-buttons {
    justify-content: center;
  }
  .cp-bento-grid-12 {
    grid-template-columns: 1fr 1fr;
  }
  .cp-col-7, .cp-col-5, .cp-col-6 {
    grid-column: span 2;
  }
  .text-right-desktop {
    text-align: left;
    margin-top: 1.5rem;
  }
}

@media (max-width: 640px) {
  .cp-stats-overlap {
    grid-template-columns: repeat(2, 1fr);
    margin-top: -2rem;
    gap: 0.75rem;
  }
  .cp-bento-grid-12 {
    grid-template-columns: 1fr;
  }
  .cp-col-7, .cp-col-5, .cp-col-6 {
    grid-column: span 1;
  }
  .cp-impact-cta-box {
    padding: 2rem 1.25rem;
  }
}



/* ============================================================
   UTILITAIRES DE LAYOUT & GRILLES RESPONSIVES
   ============================================================ */
.grid { display: grid !important; }
.flex { display: flex !important; }
.inline-flex { display: inline-flex !important; }
.flex-col { flex-direction: column !important; }
.flex-row { flex-direction: row !important; }
.flex-wrap { flex-wrap: wrap !important; }
.flex-shrink-0 { flex-shrink: 0 !important; }

.items-center { align-items: center !important; }
.items-start { align-items: flex-start !important; }
.items-end { align-items: flex-end !important; }
.justify-center { justify-content: center !important; }
.justify-between { justify-content: space-between !important; }
.justify-start { justify-content: flex-start !important; }
.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }

/* Grilles colonnes */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }

@media (min-width: 1024px) {
  .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
  .lg\:col-span-4 { grid-column: span 4 / span 4 !important; }
  .lg\:col-span-5 { grid-column: span 5 / span 5 !important; }
  .lg\:col-span-6 { grid-column: span 6 / span 6 !important; }
  .lg\:col-span-7 { grid-column: span 7 / span 7 !important; }
  .lg\:col-span-8 { grid-column: span 8 / span 8 !important; }
}

@media (max-width: 640px) {
  .grid-cols-2 { grid-template-columns: 1fr !important; }
}

/* Espacements & Gaps */
.gap-2 { gap: 0.5rem !important; }
.gap-3 { gap: 0.75rem !important; }
.gap-4 { gap: 1rem !important; }
.gap-6 { gap: 1.5rem !important; }
.gap-8 { gap: 2rem !important; }
.gap-12 { gap: 3rem !important; }

.space-y-1 > * + * { margin-top: 0.25rem !important; }
.space-y-2 > * + * { margin-top: 0.5rem !important; }
.space-y-3 > * + * { margin-top: 0.75rem !important; }
.space-y-4 > * + * { margin-top: 1rem !important; }
.space-y-6 > * + * { margin-top: 1.5rem !important; }
.space-y-8 > * + * { margin-top: 2rem !important; }
.space-y-12 > * + * { margin-top: 3rem !important; }
.space-y-16 > * + * { margin-top: 4rem !important; }

/* Dimensions & Conteneurs */
.w-full { width: 100% !important; }
.w-10 { width: 2.5rem !important; }
.h-10 { height: 2.5rem !important; }
.w-12 { width: 3rem !important; }
.h-12 { height: 3rem !important; }
.w-14 { width: 3.5rem !important; }
.h-14 { height: 3.5rem !important; }
.max-w-2xl { max-width: 42rem !important; }
.max-w-3xl { max-width: 48rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

/* Micro-Tag / Eyebrow Pill */
.micro-tag {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  background: rgba(235, 118, 48, 0.1) !important;
  border: 1px solid rgba(235, 118, 48, 0.25) !important;
  color: var(--cp-color-secondary, #EB7630) !important;
  font-size: 0.75rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.3rem 0.85rem !important;
  border-radius: var(--cp-radius-pill, 50px) !important;
  width: fit-content !important;
}

/* Cartes Vision & Piliers (Page À Propos) */
.cp-card-vision {
  background: #FFF3EC;
  border: 1px solid rgba(235, 118, 48, 0.25);
  border-radius: var(--cp-radius-md, 16px);
  padding: 1.5rem;
}

.cp-pillar-card {
  background: #FFFFFF;
  border: 1px solid var(--cp-color-border, #E2E8F0);
  border-radius: var(--cp-radius-md, 16px);
  padding: 1.5rem;
  box-shadow: var(--cp-shadow-subtle, 0 1px 3px rgba(15, 23, 42, 0.05));
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.cp-pillar-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--cp-shadow-elevated, 0 10px 25px -5px rgba(15, 23, 42, 0.08));
  border-color: #CBD5E1;
}

/* Couleurs & Fonds complémentaires */
.bg-slate-50 { background-color: #F8FAFC !important; }
.bg-slate-100 { background-color: #F1F5F9 !important; }
.bg-slate-900 { background-color: #0F172A !important; }
.bg-white { background-color: #FFFFFF !important; }
.bg-emerald-100 { background-color: #D1FAE5 !important; }
.text-emerald-600 { color: #059669 !important; }
.border-slate-200 { border-color: #E2E8F0 !important; }

/* Utilitaires typographiques — Respect des polices définies par l'utilisateur */
.font-heading { font-family: var(--wp--preset--font-family--plus-jakarta-sans, inherit); }
.font-body { font-family: var(--wp--preset--font-family--plus-jakarta-sans, inherit); }
.font-mono { font-family: var(--wp--preset--font-family--monospace, monospace); }
.font-black { font-weight: 800; }
.font-extrabold { font-weight: 800; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }

/* Tailles de texte */
.text-xs { font-size: 0.75rem; }
.text-sm { font-size: 0.875rem; }
.text-base { font-size: 1rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.text-4xl { font-size: 2.25rem; }
.text-5xl { font-size: 3rem; }

/* Marges & Paddings */
.m-0 { margin: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 0.25rem !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mb-3 { margin-bottom: 0.75rem !important; }
.mb-4 { margin-bottom: 1rem !important; }
.mb-6 { margin-bottom: 1.5rem !important; }
.mb-10 { margin-bottom: 2.5rem !important; }

.p-4 { padding: 1rem !important; }
.p-5 { padding: 1.25rem !important; }
.p-6 { padding: 1.5rem !important; }
.p-8 { padding: 2rem !important; }

.rounded-xl { border-radius: var(--cp-radius-sm, 8px) !important; }
.rounded-2xl { border-radius: var(--cp-radius-md, 16px) !important; }
.rounded-3xl { border-radius: var(--cp-radius-lg, 24px) !important; }
.rounded-full { border-radius: var(--cp-radius-pill, 50px) !important; }

.shadow-sm { box-shadow: var(--cp-shadow-subtle) !important; }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important; }
.shadow-lg { box-shadow: var(--cp-shadow-elevated) !important; }
.shadow-xl { box-shadow: var(--cp-shadow-deep) !important; }

/* Couleurs de texte */
.text-white { color: #ffffff !important; }
.text-slate-300 { color: #CBD5E1 !important; }
.text-slate-400 { color: #94A3B8 !important; }
.text-slate-500 { color: #64748B !important; }
.text-slate-600 { color: #475569 !important; }
.text-slate-700 { color: #334155 !important; }
.text-slate-800 { color: #1E293B !important; }
.text-secondary { color: var(--cp-color-secondary, #EB7630) !important; }
.text-classpro-primary { color: var(--cp-color-primary, #20467B) !important; }
.text-classpro-secondary { color: var(--cp-color-secondary, #EB7630) !important; }

/* Responsive Layout Helpers */
@media (max-width: 992px) {
  .cp-single-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .cp-sidebar-box {
    position: static;
  }
}

@media (max-width: 576px) {
  .cp-page-title {
    font-size: var(--cp-h1-size);
  }
  .cp-cards-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
