/* ===================================================================
   Module Parcours d'examen : UX moderne, responsive
   Scope : tout est préfixé .poparc-parcours pour ne pas casser le thème
   =================================================================== */

.poparc-parcours,
.poparc-parcours *,
.poparc-parcours *::before,
.poparc-parcours *::after {
  box-sizing: border-box;
}

.poparc-parcours {
  /* 13/07/2026 soir (retour client : « ni les bonnes couleurs ») : palette
     alignée sur le design system route : bleus #2563eb/#1e3faf, navy
     #15203c, orange CTA #ff6b35→#f7931e. Exit le bleu-violet 2022. */
  --po-blue: #2563eb;
  --po-blue-dark: #15203c;
  --po-blue-light: #eaf2fc;
  --po-pink: #f7931e;
  --po-orange: #ff6b35;
  --po-red: #ff4b5c;
  --po-green: #10b981;
  --po-yellow: #f59e0b;
  --po-text: #0f172a;
  --po-text-soft: #475569;
  --po-text-muted: #94a3b8;
  --po-border: #e2e8f0;
  --po-bg: #ffffff;
  --po-bg-soft: #f8fafc;
  --po-radius: 14px;
  --po-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
  --po-shadow-hover: 0 14px 40px rgba(37, 99, 235, 0.18);

  max-width: 1200px;
  margin: 30px auto;
  padding: 0 16px;
  /* 13/07/2026 : la police du design system du cours (chargée par
     po_cours_head_assets sur cette page). !important ciblé : les
     optimiseurs (used-css) ré-inlinent parfois une vieille copie de la
     règle APRÈS celle-ci, même mécanique de durcissement qu'anti-Divi. */
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  color: var(--po-text);
  line-height: 1.5;
}
.poparc-parcours button, .poparc-parcours input {
  font-family: inherit !important;
}

/* =================== HEADER =================== */
.poparc-parcours-header {
  text-align: center;
  margin-bottom: 28px;
}
.poparc-parcours-header--circuits {
  display: flex;
  align-items: center;
  text-align: left;
  gap: 16px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.poparc-parcours-header--circuits .poparc-parcours-header__center-info {
  flex: 1;
  min-width: 200px;
}
.poparc-parcours-title {
  /* 13/07/2026 : fini le dégradé bleu-rose (vieille marque) : navy du
     design system du cours */
  font-size: 24px;
  font-weight: 800;
  margin: 0 0 8px;
  color: #15203c;
  letter-spacing: -0.02em;
}
.poparc-parcours-subtitle {
  font-size: 15px;
  color: var(--po-text-soft);
  margin: 0;
}

/* =================== BACK BUTTON =================== */
.poparc-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border: 1.5px solid var(--po-border);
  background: var(--po-bg);
  color: var(--po-text);
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.poparc-back-btn:hover {
  border-color: var(--po-blue);
  color: var(--po-blue);
  transform: translateX(-2px);
}

/* =================== TABS RÉGION =================== */
.poparc-parcours-region-tabs {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.poparc-region-tab {
  padding: 8px 18px;
  border: 1.5px solid var(--po-border);
  background: var(--po-bg);
  color: var(--po-text-soft);
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.poparc-region-tab:hover {
  border-color: var(--po-blue);
  color: var(--po-blue);
}
.poparc-region-tab.is-active {
  /* navy plein, comme le switch des 3 cours : plus de glow */
  background: #1e3faf;
  color: #fff;
  border-color: #1e3faf;
  box-shadow: none;
}

/* =================== GRILLE DES CENTRES =================== */
.poparc-parcours-centers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

/* =================== CARTE CENTRE ===================
   Refonte 13/07/2026 (retour client : style obsolète + noms de villes coupés).
   L'ancienne grille à 4 colonnes ne laissait que ~40px au nom : le compteur
   vit désormais DANS la ligne de métas, le nom a toute la largeur. Langage
   visuel du cours : blanc, bordure douce, kicker bleu, nom navy, pills. */
.poparc-center-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: #fff;
  border: 2px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 16px 38px -24px rgba(20, 30, 60, 0.25);
  cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  text-align: left;
  font-family: inherit;
  color: #15203c;
  position: relative;
}
.poparc-center-card:hover {
  transform: translateY(-3px);
  border-color: #2563eb;
  box-shadow: 0 22px 44px -24px rgba(20, 30, 60, 0.35);
}
.poparc-center-card[hidden] {
  display: none;
}
.poparc-center-card__icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: #eef2f8;
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s ease, color 0.2s ease;
}
.poparc-center-card__icon svg {
  width: 26px;
  height: 26px;
}
.poparc-center-card:hover .poparc-center-card__icon {
  background: #2563eb;
  color: #fff;
}
.poparc-center-card__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}
.poparc-center-card__region {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #2563eb;
}
.poparc-center-card__name {
  font-size: 16.5px;
  font-weight: 800;
  margin: 0;
  color: #15203c;
  letter-spacing: -0.01em;
  line-height: 1.25;
}
.poparc-center-card__metas {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 2px;
}
.poparc-center-card__metas span {
  font-size: 11px;
  font-weight: 700;
  color: #475569;
  background: #eef2f8;
  border-radius: 999px;
  padding: 3px 9px;
  white-space: nowrap;
}
.poparc-center-card__arrow {
  color: #94a3b8;
  transition: transform 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
}
.poparc-center-card:hover .poparc-center-card__arrow {
  color: #2563eb;
  transform: translateX(4px);
}

/* =================== GRILLE DES CIRCUITS =================== */
.poparc-circuits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 18px;
  margin-top: 8px;
}

/* =================== CARTE CIRCUIT =================== */
.poparc-circuit-card {
  display: flex;
  flex-direction: column;
  background: var(--po-bg);
  border: 1.5px solid var(--po-border);
  border-radius: var(--po-radius);
  overflow: hidden;
  box-shadow: var(--po-shadow);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.poparc-circuit-card:hover {
  transform: translateY(-3px);
  border-color: var(--po-blue);
  box-shadow: var(--po-shadow-hover);
}

/* Banner top : numéro de circuit + type */
.poparc-circuit-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: linear-gradient(135deg, var(--po-blue) 0%, var(--po-blue-dark) 100%);
  color: #fff;
}
.poparc-circuit-card__n {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.poparc-circuit-card__n-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.85;
  font-weight: 600;
}
.poparc-circuit-card__n-value {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.poparc-circuit-card__type {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(4px);
}

/* Visuel "preview" : icône SVG stylisée avec route + 3 points */
.poparc-circuit-card__visual {
  position: relative;
  height: 110px;
  background:
    radial-gradient(circle at 20% 80%, rgba(255, 107, 53, 0.08), transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(37, 99, 235, 0.10), transparent 50%),
    linear-gradient(180deg, var(--po-bg-soft), #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--po-border);
}
.poparc-circuit-card__visual svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Body : points + stats */
.poparc-circuit-card__body {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}
.poparc-circuit-card__points {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.poparc-circuit-card__point {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: var(--po-text);
  line-height: 1.4;
}
.poparc-circuit-card__point-num {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--po-blue), var(--po-blue-dark));
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.35);
}
.poparc-circuit-card__point-text {
  font-weight: 500;
  color: var(--po-text);
}

/* Stats : temps, distance, difficulté */
.poparc-circuit-card__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--po-border);
}
.poparc-circuit-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.poparc-circuit-stat__label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: var(--po-text-muted);
}
.poparc-circuit-stat__value {
  font-size: 18px;
  font-weight: 800;
  color: var(--po-text);
  letter-spacing: -0.01em;
}
.poparc-circuit-stat__value--time { color: var(--po-orange); }
.poparc-circuit-stat__value--distance { color: var(--po-blue); }

/* Difficulté : barre + valeur */
.poparc-circuit-difficulty {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.poparc-circuit-difficulty__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.poparc-circuit-difficulty__label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: var(--po-text-muted);
}
.poparc-circuit-difficulty__value {
  font-size: 12px;
  font-weight: 800;
}
.poparc-circuit-difficulty__bar {
  height: 6px;
  border-radius: 999px;
  background: var(--po-border);
  overflow: hidden;
}
.poparc-circuit-difficulty__fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Footer : actions */
.poparc-circuit-card__footer {
  display: flex;
  gap: 8px;
  padding: 14px 18px;
  border-top: 1px solid var(--po-border);
  background: var(--po-bg-soft);
}
.poparc-circuit-btn {
  flex: 1;
  padding: 11px 14px;
  border: 1.5px solid transparent;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-decoration: none;
  font-family: inherit;
  letter-spacing: 0.01em;
}
.poparc-circuit-btn--info {
  flex: 0 0 auto;
  background: var(--po-bg);
  border-color: var(--po-border);
  color: var(--po-text-soft);
}
.poparc-circuit-btn--info:hover {
  border-color: var(--po-blue);
  color: var(--po-blue);
  background: var(--po-blue-light);
}
.poparc-circuit-btn--start {
  /* le CTA signature du design system (orange), plus le dégradé bleu-rose */
  background: linear-gradient(135deg, #ff6b35, #f7931e);
  color: #fff;
  box-shadow: 0 6px 16px rgba(255, 107, 53, 0.4);
}
.poparc-circuit-btn--start:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(37, 99, 235, 0.45);
  color: #fff;
}
.poparc-circuit-btn--start svg {
  transition: transform 0.2s ease;
}
.poparc-circuit-btn--start:hover svg {
  transform: translateX(3px);
}

/* =================== MODAL =================== */
.poparc-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: poparc-modal-in 0.2s ease;
}
.poparc-modal[hidden] { display: none; }
@keyframes poparc-modal-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.poparc-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.poparc-modal__content {
  position: relative;
  background: #fff;
  border-radius: 18px;
  max-width: 540px;
  width: 100%;
  max-height: 85vh;
  overflow-y: auto;
  padding: 30px 28px 28px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
  animation: poparc-modal-pop 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes poparc-modal-pop {
  from { opacity: 0; transform: scale(0.94) translateY(20px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
.poparc-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: var(--po-bg-soft);
  color: var(--po-text-soft);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
.poparc-modal__close:hover {
  background: var(--po-red);
  color: #fff;
  transform: rotate(90deg);
}
.poparc-modal__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #2563eb;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(37, 99, 235, 0.3);
}
.poparc-modal__title {
  text-align: center;
  font-size: 22px;
  font-weight: 800;
  margin: 0 0 18px;
  color: var(--po-text);
  letter-spacing: -0.01em;
}
.poparc-modal__body {
  font-size: 15px;
  color: var(--po-text-soft);
  line-height: 1.6;
  margin-bottom: 18px;
}
.poparc-modal__points {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  background: var(--po-bg-soft);
  border-radius: 12px;
}
.poparc-modal__point {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
}
.poparc-modal__point-num {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #1e3faf;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.35);
}
.poparc-modal__point-text {
  flex: 1;
  color: var(--po-text);
  font-weight: 500;
  padding-top: 3px;
}

/* =================== RING DE PROGRESSION + PHRASE MOTIVANTE =================== */
.poparc-parcours-progress-wrap {
  margin-bottom: 22px;
}
.poparc-progress {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
  border: 1.5px solid var(--po-border);
  border-radius: var(--po-radius);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
  position: relative;
  overflow: hidden;
}
.poparc-progress::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 0% 0%, rgba(37, 99, 235, 0.08), transparent 60%),
              radial-gradient(circle at 100% 100%, rgba(255, 107, 53, 0.06), transparent 60%);
  pointer-events: none;
}
.poparc-progress > * { position: relative; z-index: 1; }

.poparc-progress__ring {
  position: relative;
  width: 86px;
  height: 86px;
  flex-shrink: 0;
}
.poparc-progress__ring svg {
  display: block;
}
.poparc-progress__ring-fill {
  transition: stroke-dashoffset 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  filter: drop-shadow(0 2px 6px rgba(37, 99, 235, 0.25));
}
.poparc-progress__count {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 800;
  color: var(--po-text);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.poparc-progress__sep {
  margin: 0 1px;
  color: var(--po-text-muted);
  font-weight: 600;
}
.poparc-progress__text {
  flex: 1;
  min-width: 0;
}
.poparc-progress__title {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--po-text-muted);
  margin-bottom: 4px;
}
.poparc-progress__msg {
  font-size: 15px;
  color: var(--po-text);
  line-height: 1.45;
}
.poparc-progress__msg strong {
  color: #2563eb;
  font-weight: 800;
}
/* État 100% : aspect "trophée" */
.poparc-progress[data-progress-pct="100"] {
  background: linear-gradient(135deg, #fff8e1 0%, #fff3c4 100%);
  border-color: #f9a825;
  box-shadow: 0 8px 24px rgba(249, 168, 37, 0.2);
}
.poparc-progress[data-progress-pct="100"] .poparc-progress__title {
  color: #5d4500;
}

/* =================== BOUTON "FAIT" =================== */
.poparc-circuit-btn--done {
  flex: 0 0 auto;
  background: var(--po-bg);
  border: 1.5px solid var(--po-border);
  color: var(--po-green);
  padding: 11px 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: all 0.2s ease;
}
.poparc-circuit-btn--done:hover {
  border-color: var(--po-green);
  background: rgba(16, 185, 129, 0.08);
}
.poparc-circuit-btn--done[aria-pressed="true"] {
  background: var(--po-green);
  border-color: var(--po-green);
  color: #fff;
  box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}
.poparc-circuit-btn--done svg {
  flex-shrink: 0;
}

/* =================== ÉTAT "FAIT" SUR LA CARTE =================== */
.poparc-circuit-card.is-done {
  border-color: var(--po-green);
  position: relative;
}
.poparc-circuit-card.is-done::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--po-green) 0%, #34d399 100%);
  z-index: 5;
}
/* Petit badge "✓ Fait" en haut à droite (subtle) */
.poparc-circuit-card.is-done .poparc-circuit-card__top {
  background: linear-gradient(135deg, var(--po-green) 0%, #047857 100%);
}
.poparc-circuit-card.is-done .poparc-circuit-card__type {
  background: rgba(255, 255, 255, 0.25);
}

/* =================== TRANSITION DE VUE (multipage-like) =================== */
/* Garantir que la vue cachée disparaît complètement (pas juste opacity) */
.poparc-parcours-view[hidden] {
  display: none !important;
}
.poparc-parcours-view {
  display: block;
}

/* Animation d'entrée courte et nette quand une vue prend le focus */
@keyframes poparc-fade-up {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.poparc-parcours-view.poparc-anim-in {
  animation: poparc-fade-up 0.22s cubic-bezier(0.4, 0, 0.2, 1) both;
}
/* Stagger léger sur les cards de circuits (apparition cascade très subtile) */
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card {
  animation: poparc-fade-up 0.26s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(1) { animation-delay: 0.02s; }
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(2) { animation-delay: 0.04s; }
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(3) { animation-delay: 0.06s; }
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(4) { animation-delay: 0.08s; }
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(5) { animation-delay: 0.10s; }
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(6) { animation-delay: 0.12s; }
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(7) { animation-delay: 0.14s; }
.poparc-parcours-view.poparc-anim-in .poparc-circuit-card:nth-child(8) { animation-delay: 0.16s; }

/* =================== MASQUAGE TITRE PAGE =================== */
/* Quand le shortcode est présent sur la page, on cache le titre WP/Divi
   pour donner toute la place au module parcours. */
body.poparc-has-parcours .main_title,
body.poparc-has-parcours h1.main_title,
body.poparc-has-parcours .entry-title,
body.poparc-has-parcours h1.entry-title,
body.poparc-has-parcours .et_pb_post_title,
body.poparc-has-parcours .et_pb_post_title h1,
body.poparc-has-parcours .et_pb_title_container,
body.poparc-has-parcours .et_pb_title_meta_container,
body.poparc-has-parcours .et_post_meta_wrapper,
body.poparc-has-parcours .et_pb_post_main_image_fullwidth,
body.poparc-has-parcours .et_pb_section h1.et_pb_module_header,
body.poparc-has-parcours #main-content article > .main_title,
body.poparc-has-parcours #main-content article > .entry-title,
body.poparc-has-parcours #main-content > .container > .et_pb_section:first-child .et_pb_post_title {
  display: none !important;
}

/* =================== RESPONSIVE =================== */
@media (max-width: 720px) {
  /* MOBILE : full width forcé.
     On casse les contraintes des wrappers Divi/WP (entry-content, et_pb_*)
     pour que l'app prenne toute la largeur de l'écran sans marges externes. */
  body.poparc-has-parcours .entry-content,
  body.poparc-has-parcours .et_pb_post_content,
  body.poparc-has-parcours .et_pb_text_inner,
  body.poparc-has-parcours .et_pb_text_align_left,
  body.poparc-has-parcours .et_pb_section,
  body.poparc-has-parcours .et_pb_row,
  body.poparc-has-parcours .et_pb_column,
  body.poparc-has-parcours .et_pb_module,
  body.poparc-has-parcours #left-area,
  body.poparc-has-parcours #main-content .container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 100% !important;
    /* CRITIQUE : autoriser le débordement pour que les marges négatives
       puissent atteindre les bords du viewport (sinon overflow:hidden
       parent annule l'effet full-width). */
    overflow: visible !important;
  }

  /* L'app elle-même prend 100vw via marges négatives calculées
     (technique fiable, n'utilise pas position:relative/transform qui
     peuvent casser le scroll fluide ou les sticky parents). */
  .poparc-parcours {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 16px 12px !important;
    box-sizing: border-box !important;
    overflow-x: hidden;
  }

  /* Empeche tout débordement horizontal des cards */
  .poparc-center-card,
  .poparc-circuit-card {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden;
  }
  .poparc-circuit-card__top {
    flex-wrap: wrap;
    gap: 8px;
  }

  /* Progress ring + phrase mobile : compact */
  .poparc-progress {
    padding: 14px 16px;
    gap: 14px;
  }
  .poparc-progress__ring {
    width: 70px;
    height: 70px;
  }
  .poparc-progress__ring svg {
    width: 70px;
    height: 70px;
  }
  .poparc-progress__count {
    font-size: 18px;
  }
  .poparc-progress__msg {
    font-size: 13px;
  }
  /* Footer card : 3 boutons (info, fait, démarrer) - bien gérer le wrap */
  .poparc-circuit-card__footer {
    flex-wrap: wrap;
    gap: 6px;
  }
  .poparc-circuit-btn--info,
  .poparc-circuit-btn--done {
    flex: 1 1 calc(50% - 3px);
  }
  .poparc-circuit-btn--start {
    flex: 1 1 100%;
  }
  .poparc-parcours-title { font-size: 22px; }
  .poparc-parcours-subtitle { font-size: 14px; }
  .poparc-parcours-centers-grid { grid-template-columns: 1fr; gap: 12px; }
  .poparc-circuits-grid { grid-template-columns: 1fr; gap: 14px; }

  .poparc-center-card { padding: 13px 14px; gap: 12px; }
  .poparc-center-card__icon { width: 44px; height: 44px; }
  .poparc-center-card__icon svg { width: 28px; height: 28px; }
  .poparc-center-card__name { font-size: 16px; }
  .poparc-center-card__count { display: none; }

  .poparc-circuit-card__visual { height: 90px; }
  .poparc-circuit-card__top { padding: 12px 14px; }
  .poparc-circuit-card__body { padding: 14px; }
  .poparc-circuit-card__footer { padding: 12px 14px; }

  .poparc-parcours-header--circuits { flex-direction: column; align-items: stretch; gap: 12px; }
  .poparc-back-btn { align-self: flex-start; }

  .poparc-modal__content { padding: 26px 20px 20px; max-height: 90vh; }
  .poparc-modal__title { font-size: 19px; }
  .poparc-modal__body { font-size: 14px; }
}

@media (max-width: 420px) {
  .poparc-circuit-card__stats { grid-template-columns: 1fr; }
  .poparc-region-tab { font-size: 13px; padding: 7px 14px; }
}

/* Dark mode (optionnel, suit la préférence système) */
@media (prefers-color-scheme: dark) {
  /* On laisse en light pour matcher le reste du site WP */
}

/* Accessibilité : focus clair */
.poparc-parcours button:focus-visible,
.poparc-parcours a:focus-visible {
  outline: 3px solid var(--po-blue);
  outline-offset: 3px;
  border-radius: 10px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .poparc-parcours *,
  .poparc-parcours *::before,
  .poparc-parcours *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ===================================================================
   ULTIMATE FALLBACK MOBILE : sélecteurs ultra-spécifiques (html body)
   Ces règles sont à la FIN du fichier pour avoir la priorité maximale
   et ne peuvent être écrasées par aucun CSS de thème ou plugin tiers.
   =================================================================== */
@media (max-width: 720px) {
  html body.poparc-has-parcours .poparc-parcours,
  html body.poparc-has-parcours #poparc-parcours-app {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 16px 12px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }
  html body.poparc-has-parcours .poparc-parcours-centers-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  html body.poparc-has-parcours .poparc-circuits-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  html body.poparc-has-parcours .poparc-center-card,
  html body.poparc-has-parcours .poparc-circuit-card {
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* ── Circuits verrouillés (freemium 11/07/2026 : 1 itinéraire offert par
   centre, les 7 autres sans données : le serveur ne les envoie pas) ── */
.poparc-circuit-card--locked { position: relative; }
.poparc-circuit-card--locked .poparc-circuit-card__lock {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; text-align: center; padding: 22px 16px;
  margin: 12px 14px 2px; border-radius: 14px;
  background: linear-gradient(150deg, #f4f7fd, #eef2f8);
  border: 1.5px dashed #c9d5ea; color: #64748b;
}
.poparc-circuit-card--locked .poparc-circuit-card__lock svg { color: #94a3b8; }
.poparc-circuit-card--locked .poparc-circuit-card__lock p {
  margin: 0; font-size: 12.5px; font-weight: 600; line-height: 1.5; max-width: 260px;
}
.poparc-circuit-card--locked .poparc-circuit-btn--start {
  background: linear-gradient(135deg, #15203c, #0b1024);
  box-shadow: 0 10px 22px -10px rgba(11, 16, 36, .5);
}

/* Badge « x/8 roulés » sur la carte de centre (13/07/2026, progression par centre) */
.poparc-center-card__metas span.poparc-center-card__done {
  background: #dcfce7;
  color: #0a7d33;
}
.poparc-center-card__metas span.poparc-center-card__done.is-full {
  background: #0a7d33;
  color: #fff;
}

/* ═══ Refonte écran circuits (13/07/2026 nuit, retour client : « design
   complètement obsolète » en ouvrant un itinéraire) : exit le bandeau en
   dégradé et l'illustration décorative : en-tête blanc, plaque belge du
   numéro (bande bleue B + texte rouge), pills, langage du cours. ═══ */
.poparc-circuit-card__top {
  background: #fff !important;
  color: #15203c !important;
  border-bottom: 1px solid var(--po-border);
  padding: 12px 16px;
}
.poparc-plate {
  display: inline-flex;
  align-items: stretch;
  background: #fff;
  border: 2px solid #15203c;
  border-radius: 7px;
  overflow: hidden;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.12);
}
.poparc-plate i {
  font-style: normal;
  background: #003da5;
  color: #fff;
  font-size: 8px;
  font-weight: 800;
  display: flex;
  align-items: flex-end;
  padding: 3px 3px 2px;
}
.poparc-plate b {
  color: #d02c2c;
  font-weight: 800;
  font-size: 15px;
  padding: 4px 8px 3px;
  letter-spacing: 0.04em;
}
.poparc-circuit-card__n { align-items: center; gap: 10px; }
.poparc-circuit-card__n-label {
  color: #15203c !important;
  font-size: 13.5px !important;
  font-weight: 800 !important;
  text-transform: none !important;
  letter-spacing: -0.01em !important;
  opacity: 1 !important;
}
.poparc-circuit-card__type {
  background: #eaf2fc !important;
  color: #2563eb !important;
  border: 0 !important;
  font-weight: 800 !important;
}
.poparc-circuit-card.is-done .poparc-circuit-card__top {
  background: #e9f9f0 !important;
  color: #0a7d33 !important;
}
.poparc-circuit-card.is-done .poparc-circuit-card__n-label { color: #0a7d33 !important; }
.poparc-circuit-card.is-done { border-color: #4ac785; }
.poparc-circuit-card__point-num {
  background: #eaf2fc;
  color: #2563eb;
  font-weight: 800;
}
.poparc-circuit-btn { font-weight: 800 !important; border-radius: 12px !important; }

/* ═══ Finition pro (13/07/2026 nuit, retour client : anneau « immonde »,
   ensemble pas assez moderne/UX) : bannière de progression épurée,
   ligne de route pointillée entre les points, difficulté discrète. ═══ */
.poparc-progress {
  background: #fff !important;
  border: 2px solid #e7ecf3 !important;
  border-radius: 18px !important;
  box-shadow: 0 16px 38px -24px rgba(20, 30, 60, 0.25) !important;
}
.poparc-progress::before { display: none !important; }
.poparc-progress__title {
  font-size: 11px !important;
  letter-spacing: 0.1em;
  color: #64748b !important;
  font-weight: 800 !important;
}
.poparc-progress__msg { font-size: 15.5px; color: #15203c !important; font-weight: 700; }
.poparc-progress__count { color: #15203c !important; font-weight: 800; }

/* les points de passage deviennent une vraie route : pastilles reliées
   par un pointillé (marquage au sol) */
.poparc-circuit-card__point { position: relative; }
.poparc-circuit-card__point:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 10px;
  top: 24px;
  bottom: -12px;
  width: 2px;
  background: repeating-linear-gradient(180deg, #cbd5e1 0 4px, transparent 4px 9px);
}
.poparc-circuit-card__point-text { font-weight: 600; color: #334155; }

.poparc-circuit-difficulty__label {
  font-size: 10.5px !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #94a3b8 !important;
  font-weight: 800 !important;
}
.poparc-circuit-difficulty__bar { height: 5px !important; }
.poparc-circuit-btn { padding: 11px 14px !important; }
