/* =========================================================
   Métabolique Turbulence — Page programme (Niveau 1)
   Namespace : .mt-turb (toutes les règles sont scopées)
   Le !important sur police/couleur est nécessaire pour battre
   les styles globaux d'Avada sur h2/h3/h4/p/span.
   ========================================================= */

.mt-turb {
  --mt-dark: #0B2E23;
  --mt-dark-text-muted: #B4B2A9;
  --mt-dark-badge-bg: rgba(255,255,255,0.12);
  --mt-dark-badge-text: #9FE1CB;

  --mt-text-primary: #16231d;
  --mt-text-secondary: #5c675f;
  --mt-text-muted: #8b948d;
  --mt-border: #e3e7e2;

  --mt-lf-bg: #E1F5EE;
  --mt-lf-bg-hover: #c9ebd9;
  --mt-lf-text: #085041;
  --mt-lp-bg: #FAEEDA;
  --mt-lp-text: #633806;

  --mt-green-bg: #EAF3DE;
  --mt-green-text: #3B6D11;
  --mt-teal-bg: #E1F5EE;
  --mt-teal-text: #085041;
  --mt-peach-bg: #FAECE7;
  --mt-peach-text: #712B13;

  --mt-radius: 12px;
  --mt-radius-lg: 16px;

  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  box-sizing: border-box;
}

.mt-turb *,
.mt-turb *::before,
.mt-turb *::after { box-sizing: inherit; }

/* Force la police sur tous les enfants : bat le thème sans avoir
   à répéter la règle élément par élément */
.mt-turb h2, .mt-turb h3, .mt-turb h4,
.mt-turb p, .mt-turb span, .mt-turb div,
.mt-turb a, .mt-turb button {
  font-family: inherit !important;
}

.mt-turb-hero.purple { background: #7a00df; }
.mt-turb-hero.purple .mt-turb-badge { background: rgba(255,255,255,0.22); color: #ffffff !important; }
.mt-turb-hero.purple .mt-turb-meta span,
.mt-turb-hero.purple .mt-turb-hero-desc { color: #ffffff !important; opacity: .92; }

/* ---------- Fil d'ariane ---------- */
.mt-turb-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--mt-text-muted) !important;
  margin-bottom: 16px;
}
.mt-turb-breadcrumb .is-current { color: var(--mt-text-secondary) !important; }

/* ---------- Hero ---------- */
.mt-turb-hero {
  background: var(--mt-dark);
  border-radius: var(--mt-radius-lg);
  padding: 32px 28px;
  margin-bottom: 28px;
}
.mt-turb-badge {
  display: inline-block;
  background: var(--mt-dark-badge-bg);
  color: var(--mt-dark-badge-text) !important;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.mt-turb-title {
  color: #ffffff !important;
  font-size: 34px !important;
  font-weight: 800 !important;
  margin: 0 0 16px !important;
  line-height: 1.1 !important;
}
.mt-turb-meta { display: flex; gap: 20px; flex-wrap: wrap; }
.mt-turb-meta span { color: var(--mt-dark-text-muted) !important; font-size: 14px; }

/* ---------- Titres de section ---------- */
.mt-turb-h2 {
  font-size: 22px !important;
  font-weight: 700 !important;
  margin: 0 0 4px !important;
  color: var(--mt-text-primary) !important;
}
.mt-turb-subtitle {
  color: var(--mt-text-secondary) !important;
  font-size: 14px;
  margin: 0 0 18px;
}

/* ---------- Semaine ---------- */
.mt-turb-week {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.mt-turb-day {
  border: 1px solid var(--mt-border);
  border-radius: var(--mt-radius);
  padding: 16px 14px;
}
.mt-turb-day-name {
  font-size: 12px;
  color: var(--mt-text-muted) !important;
  margin-bottom: 10px;
}
.mt-turb-day-activity {
  font-size: 14px;
  font-weight: 600 !important;
  color: var(--mt-text-primary) !important;
  margin-bottom: 12px;
}
.mt-turb-day-activity.is-rest {
  font-weight: 500 !important;
  color: var(--mt-text-secondary) !important;
}

/* ---------- Pastilles type de journée ---------- */
.mt-turb-pill {
  display: block;
  width: 100%;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  padding: 7px 8px;
  border-radius: 20px;
  text-decoration: none;
  transition: background-color .15s ease, transform .15s ease;
}
.mt-turb-pill-lf { background: var(--mt-lf-bg); color: var(--mt-lf-text) !important; }
.mt-turb-pill-lf:hover { background: var(--mt-lf-bg-hover); transform: translateY(-1px); }
.mt-turb-pill-lp { background: var(--mt-lp-bg); color: var(--mt-lp-text) !important; }

/* ---------- Légende ---------- */
.mt-turb-legend { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 36px; }
.mt-turb-legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--mt-text-secondary) !important;
}
.mt-turb-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.mt-turb-dot-lf { background: #5DCAA5; }
.mt-turb-dot-lp { background: #EF9F27; }

/* ---------- Séances de fitness ---------- */
.mt-turb-sessions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.mt-turb-session {
  border: 1px solid var(--mt-border);
  border-radius: var(--mt-radius);
  overflow: hidden;
}
.mt-turb-session-visual {
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.mt-turb-session-visual.green { background: var(--mt-green-bg); }
.mt-turb-session-visual.teal  { background: var(--mt-teal-bg); }
.mt-turb-session-visual.peach { background: var(--mt-peach-bg); }
.mt-turb-session-visual.pink  { background: #f78da7; }
.mt-turb-session-visual.mint  { background: #00d084; }
.mt-turb-session-visual.stacked { flex-direction: column; gap: 6px; }
.mt-turb-session-visual span.emoji { font-size: 36px; }

.mt-turb-freq {
  position: absolute;
  top: 10px;
  left: 10px;
  background: rgba(255,255,255,0.85);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 12px;
}
.mt-turb-freq.green { color: var(--mt-green-text) !important; }
.mt-turb-freq.teal  { color: var(--mt-teal-text) !important; }
.mt-turb-freq.peach { color: var(--mt-peach-text) !important; }

.mt-turb-session-body { padding: 16px; }
.mt-turb-session-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  margin: 0 0 4px !important;
  color: var(--mt-text-primary) !important;
}
.mt-turb-session-days {
  font-size: 12px;
  color: var(--mt-text-muted) !important;
  margin: 0 0 14px;
}

.mt-turb-btn {
  display: block;
  width: 100%;
  background: #fff;
  border: 1px solid var(--mt-border);
  color: var(--mt-text-primary) !important;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 12px;
  border-radius: var(--mt-radius);
  cursor: pointer;
}
.mt-turb-btn:hover { background: #f7f8f6; }

/* ---------- Fiche journée : description ---------- */
.mt-turb-hero-desc {
  color: var(--mt-dark-text-muted) !important;
  font-size: 14px;
  max-width: 520px;
  margin: 0;
}

/* ---------- Grille de repas (fiche journée LF/L+) ---------- */
.mt-turb-meal-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 32px;
}
.mt-turb-meal-card {
  border: 1px solid var(--mt-border);
  border-radius: var(--mt-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.mt-turb-meal-top {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 18px 16px 14px;
  color: #fff !important;
}
.mt-turb-meal-top.c-green  { background: #10c45c; }
.mt-turb-meal-top.c-orange { background: #f3b82d; }
.mt-turb-meal-top.c-blue   { background: #00bbe3; }
.mt-turb-meal-top.c-purple { background: #ca12e9; }
.mt-turb-meal-top.c-coral  { background: #ff7a59; }
.mt-turb-meal-top.c-red    { background: #f05858; }
.mt-turb-meal-icon { font-size: 20px; line-height: 1; }
.mt-turb-meal-title {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0 !important;
  letter-spacing: .02em;
}
.mt-turb-meal-body { padding: 14px 16px 16px; flex: 1; display: flex; flex-direction: column; }
.mt-turb-meal-desc {
  font-size: 13px;
  color: var(--mt-text-secondary) !important;
  margin: 0 0 14px;
  flex: 1;
}
.mt-turb-meal-btn {
  display: block;
  width: 100%;
  text-align: center;
  background: #fff;
  border: 1px solid var(--mt-border);
  color: var(--mt-text-primary) !important;
  font-size: 12px;
  font-weight: 600;
  padding: 9px 10px;
  border-radius: var(--mt-radius);
  text-decoration: none;
  transition: background-color .15s ease;
}
.mt-turb-meal-btn:hover { background: #f7f8f6; }

/* ---------- Grille recettes (cartes mt-turb-session réutilisées) ---------- */
.mt-turb-recipe-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

/* ---------- Fil retour ---------- */
.mt-turb-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--mt-text-muted) !important;
  text-decoration: none;
}
.mt-turb-back:hover { color: var(--mt-text-secondary) !important; }

/* ---------- Panneau d'explication (texte + icône) ---------- */
.mt-turb-info-card {
  border: 1px solid var(--mt-border);
  border-radius: var(--mt-radius-lg);
  padding: 20px 22px;
  margin-bottom: 16px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.mt-turb-info-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #f4f6f3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.mt-turb-info-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--mt-text-primary) !important;
  margin: 0 0 8px !important;
}
.mt-turb-info-text {
  font-size: 13px;
  color: var(--mt-text-secondary) !important;
  line-height: 1.6;
  margin: 0;
}

/* ---------- Bloc placeholder — à remplir par Olivier ---------- */
.mt-turb-placeholder {
  border: 1.5px dashed #c9cfc7;
  border-radius: var(--mt-radius-lg);
  padding: 22px;
  margin-bottom: 16px;
  background: #fafbfa;
}
.mt-turb-placeholder-label {
  font-size: 11px;
  font-weight: 700 !important;
  color: var(--mt-text-muted) !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 8px;
}
.mt-turb-placeholder-text {
  font-size: 13px;
  color: #a8afa4 !important;
  font-style: italic;
  margin: 0;
}

/* ---------- Déroulement (liste numérotée) ---------- */
.mt-turb-steps-list {
  margin: 0;
  padding-left: 20px;
  font-size: 16px;
  color: var(--mt-text-secondary) !important;
}
.mt-turb-steps-list li { margin-bottom: 6px; }

/* ---------- Cartes recette détaillées ---------- */
.mt-turb-recipe2 {
  border: 1px solid var(--mt-border);
  border-radius: var(--mt-radius-lg);
  overflow: hidden;
  margin-bottom: 16px;
}
.mt-turb-recipe2-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  background: #ff7a59;
}
.mt-turb-recipe2-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin: 0 !important;
}
.mt-turb-recipe2-meta {
  font-size: 11px;
  color: #ffffff !important;
  opacity: .9;
  white-space: nowrap;
}
.mt-turb-recipe2-body {
  display: grid;
  grid-template-columns: 1fr 200px;
  gap: 20px;
  padding: 20px;
}
.mt-turb-recipe2-photo {
  width: 100%;
  border-radius: 10px;
  object-fit: cover;
  height: 140px;
  display: block;
}
.mt-turb-recipe2-ingredients {
  font-size: 13px;
  color: var(--mt-text-secondary) !important;
  padding-left: 18px;
  margin: 0;
}
.mt-turb-recipe2-steps {
  grid-column: 1 / -1;
  font-size: 13px;
  color: var(--mt-text-secondary) !important;
  padding-left: 18px;
  margin: 14px 0 0;
}

/* ---------- Page séance : bannière, exercices, stats, tableau ---------- */
.mt-turb-banner { width: 100%; border-radius: var(--mt-radius-lg); margin-bottom: 20px; display: block; }

.mt-turb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 10px; margin-bottom: 24px; }
.mt-turb-stat { text-align: center; background: #f4f6f3; border-radius: var(--mt-radius); padding: 14px 6px; }
.mt-turb-stat-val { font-size: 18px !important; font-weight: 700 !important; color: var(--mt-text-primary) !important; display: block; }
.mt-turb-stat-lbl { font-size: 11px; color: var(--mt-text-secondary) !important; }

.mt-turb-exercise { border: 1px solid var(--mt-border); border-radius: var(--mt-radius); padding: 12px; margin-bottom: 10px; }
.mt-turb-exercise summary { list-style: none; cursor: pointer; }
.mt-turb-exercise summary::-webkit-details-marker { display: none; }
.mt-turb-exercise summary::marker { content: ''; }
.mt-turb-exercise-row { display: flex; gap: 14px; align-items: center; }
.mt-turb-lbl-close { display: none; }
.mt-turb-exercise[open] .mt-turb-lbl-open { display: none; }
.mt-turb-exercise[open] .mt-turb-lbl-close { display: inline; }
.mt-turb-exercise-num { width: 22px; height: 22px; border-radius: 50%; background: #0693e3; color: #fff !important; font-size: 11px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-weight: 700 !important; }
.mt-turb-exercise-thumb { width: 56px; height: 56px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.mt-turb-exercise-body { flex: 1; min-width: 0; }
.mt-turb-exercise-title { font-size: 14px !important; font-weight: 600 !important; color: var(--mt-text-primary) !important; margin: 0 !important; }
.mt-turb-exercise-meta { font-size: 14px; color: var(--mt-text-muted) !important; margin-top: 2px; }
.mt-turb-exercise-toggle { font-size: 12px; padding: 7px 12px; border: 1px solid var(--mt-border); background: #fff; border-radius: 8px; white-space: nowrap; flex-shrink: 0; color: var(--mt-text-primary) !important; font-weight: 600; }
.mt-turb-exercise-toggle:hover { background: #f7f8f6; }
.mt-turb-exercise-panel { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--mt-border); }
.mt-turb-exercise-panel img { width: 100%; max-width: 280px; border-radius: 10px; display: block; margin-bottom: 10px; }
.mt-turb-exercise-panel-hint { font-size: 13px; color: var(--mt-text-secondary) !important; margin: 0 0 10px; }
.mt-turb-exercise-panel-link { display: inline-block; font-size: 12px; font-weight: 600; color: #fff !important; background: #0F6E56; padding: 8px 14px; border-radius: 8px; text-decoration: none; }

.mt-turb-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 24px; }
.mt-turb-table th, .mt-turb-table td { padding: 10px 8px; border-bottom: 1px solid var(--mt-border); text-align: left; color: var(--mt-text-secondary) !important; }
.mt-turb-table thead th { color: var(--mt-text-primary) !important; font-weight: 700 !important; font-size: 11px; text-transform: uppercase; }
.mt-turb-table .num-badge { width: 24px; height: 24px; border-radius: 50%; background: #0693e3; color: #fff !important; font-size: 11px; display: flex; align-items: center; justify-content: center; font-weight: 700 !important; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .mt-turb-exercise-panel img { max-width: 100%; }
  .mt-turb-recipe2-body { grid-template-columns: 1fr; }
  .mt-turb-meal-grid { grid-template-columns: repeat(2, 1fr); }
  .mt-turb-recipe-grid { grid-template-columns: 1fr; }
  .mt-turb-week { grid-template-columns: repeat(2, 1fr); }
  .mt-turb-sessions { grid-template-columns: 1fr; }
  .mt-turb-title { font-size: 28px !important; }
}
@media (max-width: 480px) {
  .mt-turb-week { grid-template-columns: 1fr; }
  .mt-turb-hero { padding: 24px 20px; }
}