
/* Parcours VTT - Chalet Montriond | CSS scope sous .cml-parcours */

/* ===== HUB (liste) ===== */
.cml-parcours {
      --ink:#0F1419;
      --ink-2:#2C3338;
      --muted:#5B6770;
      --muted-2:#8B95A0;
      --line:#E5E7EA;
      --line-2:#EFF1F3;
      --bg:#FFFFFF;
      --bg-2:#FAFAF9;
      --bg-3:#F4F5F4;

      --accent:#1F6F43;
      --accent-dark:#13502F;
      --accent-soft:#E6F0EA;

      
      --easy:#2C70C3;       --easy-bg:#2C70C3;
      --moyen:#D3343A;      --moyen-bg:#D3343A;
      --hard:#7A1E22;       --hard-bg:#7A1E22;

      
      --activity:#C5343B;
      --activity-bike:#1F6F43;

      --radius:8px;
      --radius-sm:5px;
    }
.cml-parcours * {box-sizing:border-box}
.cml-parcours { scroll-behavior:smooth; }
.cml-parcours {
      margin:0;
      background:var(--bg);
      color:var(--ink);
      font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
      font-size:15px;
      line-height:1.5;
      -webkit-font-smoothing:antialiased;
    }
.cml-parcours a { color:inherit; text-decoration:none; }
.cml-parcours .topbar {
      position:sticky;
      top:0;
      z-index:50;
      background:rgba(255,255,255,.95);
      backdrop-filter:saturate(180%) blur(10px);
      -webkit-backdrop-filter:saturate(180%) blur(10px);
      border-bottom:1px solid var(--line);
    }
.cml-parcours .topbar-inner {
      max-width:1280px;
      margin:0 auto;
      padding:12px 24px;
      display:flex;
      align-items:center;
      gap:18px;
    }
.cml-parcours .topbar .back {
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:var(--muted);
      font-size:13px;
      font-weight:500;
      transition:color .15s ease;
    }
.cml-parcours .topbar .back:hover { color:var(--ink); }
.cml-parcours .topbar .brand {
      margin-left:auto;
      font-size:13px;
      color:var(--muted);
      font-weight:600;
    }
.cml-parcours .topbar .brand strong { color:var(--ink); font-weight:700; }
.cml-parcours .breadcrumb {
      max-width:1280px;
      margin:18px auto 0;
      padding:0 24px;
      font-size:13px;
      color:var(--muted);
    }
.cml-parcours .breadcrumb a { color:var(--muted); }
.cml-parcours .breadcrumb a:hover { color:var(--ink); text-decoration:underline; }
.cml-parcours .breadcrumb .sep { margin:0 8px; color:var(--muted-2); }
.cml-parcours .page-head {
      max-width:1280px;
      margin:0 auto;
      padding:14px 24px 32px;
    }
.cml-parcours .kicker {
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-size:11px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
      color:var(--accent);
      margin-bottom:10px;
    }
.cml-parcours .kicker::before {
      content:"";
      width:18px;
      height:1.5px;
      background:var(--accent);
    }
.cml-parcours h1 {
      margin:0 0 12px;
      font-size:clamp(26px, 3.4vw, 38px);
      line-height:1.15;
      letter-spacing:-0.01em;
      font-weight:700;
    }
.cml-parcours .lead {
      max-width:780px;
      margin:0;
      color:var(--muted);
      font-size:16px;
      line-height:1.6;
    }
.cml-parcours .filters {
      max-width:1280px;
      margin:24px auto 0;
      padding:0 24px;
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      align-items:center;
    }
.cml-parcours .filter-label {
      font-size:12px;
      color:var(--muted);
      font-weight:600;
      letter-spacing:.04em;
      margin-right:4px;
    }
.cml-parcours .filter {
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:7px 13px;
      border:1px solid var(--line);
      border-radius:999px;
      font-size:13px;
      font-weight:500;
      color:var(--ink-2);
      background:var(--bg);
      cursor:pointer;
      transition:all .15s ease;
      font-family:inherit;
    }
.cml-parcours .filter:hover { background:var(--bg-3); border-color:var(--muted-2); }
.cml-parcours .filter.active {
      background:var(--ink);
      color:#fff;
      border-color:var(--ink);
    }
.cml-parcours .filter .count {
      font-size:11px;
      opacity:.7;
      font-weight:600;
    }
.cml-parcours .results-count {
      margin-left:auto;
      font-size:13px;
      color:var(--muted);
    }
.cml-parcours .results-count strong { color:var(--ink); font-weight:700; }
.cml-parcours .grid {
      max-width:1280px;
      margin:24px auto 0;
      padding:0 24px;
      display:grid;
      grid-template-columns:repeat(4, 1fr);
      gap:18px;
    }
@media (max-width:1100px) {
.cml-parcours .grid { grid-template-columns:repeat(3, 1fr); }
 
}
@media (max-width:820px) {
.cml-parcours .grid { grid-template-columns:repeat(2, 1fr); }
 
}
@media (max-width:540px) {
.cml-parcours .grid { grid-template-columns:1fr; }
 
}
.cml-parcours .card {
      display:flex;
      flex-direction:column;
      background:var(--bg);
      border:1px solid var(--line);
      border-radius:var(--radius);
      overflow:hidden;
      cursor:pointer;
      transition:transform .18s ease, box-shadow .2s ease, border-color .2s ease;
    }
.cml-parcours .card:hover {
      transform:translateY(-3px);
      box-shadow:0 12px 30px rgba(15,20,25,.10);
      border-color:var(--muted-2);
    }
.cml-parcours .card .photo {
      aspect-ratio:4/3;
      background-size:cover;
      background-position:center;
      background-color:#dde2e8;
      position:relative;
    }
.cml-parcours .activity-pin {
      position:absolute;
      top:12px;
      left:12px;
      width:34px;
      height:34px;
      border-radius:var(--radius-sm);
      background:var(--activity-bike);
      display:flex;
      align-items:center;
      justify-content:center;
      color:#fff;
      box-shadow:0 2px 8px rgba(0,0,0,.15);
    }
.cml-parcours .activity-pin svg { width:18px; height:18px; }
.cml-parcours .top-flag {
      position:absolute;
      bottom:12px;
      left:12px;
      background:rgba(15,20,25,.92);
      color:#fff;
      font-size:10.5px;
      font-weight:800;
      letter-spacing:.12em;
      padding:5px 9px;
      border-radius:3px;
    }
.cml-parcours .card .body {
      padding:14px 16px 16px;
      flex:1;
      display:flex;
      flex-direction:column;
      gap:10px;
    }
.cml-parcours .card .cat {
      font-size:11px;
      font-weight:600;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:var(--muted);
    }
.cml-parcours .card h3 {
      margin:0;
      font-size:16px;
      line-height:1.3;
      font-weight:700;
      color:var(--ink);
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
      min-height:2.6em;
    }
.cml-parcours .badges {
      display:flex;
      flex-wrap:wrap;
      gap:5px;
      align-items:center;
    }
.cml-parcours .badge {
      display:inline-flex;
      align-items:center;
      gap:4px;
      padding:3px 8px;
      border-radius:3px;
      font-size:11px;
      font-weight:700;
      letter-spacing:.02em;
      line-height:1.2;
    }
.cml-parcours .badge.cas {
      background:var(--bg);
      border:1.5px solid var(--ink);
      color:var(--ink);
    }
.cml-parcours .badge.diff-easy { background:var(--easy-bg); color:#fff; }
.cml-parcours .badge.diff-moyen { background:var(--moyen-bg); color:#fff; }
.cml-parcours .badge.diff-hard { background:var(--hard-bg); color:#fff; }
.cml-parcours .badge.season {
      background:#FCEBEC;
      color:#A23838;
      font-weight:600;
    }
.cml-parcours .badge.season::before {
      content:"";
      width:6px;
      height:6px;
      border-radius:50%;
      background:#A23838;
    }
.cml-parcours .stats-mini {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:6px 14px;
      margin-top:auto;
      padding-top:10px;
      border-top:1px solid var(--line-2);
      font-size:13.5px;
      color:var(--ink);
    }
.cml-parcours .stats-mini .stat {
      display:inline-flex;
      align-items:center;
      gap:6px;
      font-weight:500;
    }
.cml-parcours .stats-mini .stat .ico {
      color:var(--muted);
      font-weight:700;
      font-size:13px;
      width:14px;
      text-align:center;
      flex-shrink:0;
    }
.cml-parcours .card .src {
      margin-top:6px;
      padding-top:10px;
      border-top:1px solid var(--line-2);
      font-size:12px;
      color:var(--muted);
      display:flex;
      align-items:center;
      gap:5px;
    }
.cml-parcours .card .src .verified {
      color:var(--accent);
      font-size:14px;
      line-height:1;
    }
.cml-parcours .featured-section {
      max-width:1280px;
      margin:8px auto 0;
      padding:0 24px;
    }
.cml-parcours .featured-card {
      display:grid;
      grid-template-columns:1.2fr 1fr;
      gap:0;
      border:1px solid var(--line);
      border-radius:var(--radius);
      overflow:hidden;
      background:var(--bg);
      margin-bottom:36px;
      cursor:pointer;
      transition:box-shadow .2s ease, border-color .2s ease;
    }
.cml-parcours .featured-card:hover {
      box-shadow:0 12px 30px rgba(15,20,25,.10);
      border-color:var(--muted-2);
    }
.cml-parcours .featured-photo {
      aspect-ratio:auto;
      min-height:340px;
      background:url('https://new.swissexplorerscamp.com/wp-content/uploads/2026/05/Alpage_La_Palaz.webp') center/cover;
      position:relative;
    }
.cml-parcours .featured-body {
      padding:32px 36px;
      display:flex;
      flex-direction:column;
      gap:14px;
      justify-content:center;
    }
.cml-parcours .featured-body .cat {
      font-size:11px;
      font-weight:600;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--muted);
    }
.cml-parcours .featured-body h2 {
      margin:0;
      font-size:clamp(22px, 2.4vw, 30px);
      font-weight:700;
      line-height:1.2;
      letter-spacing:-0.01em;
    }
.cml-parcours .featured-body p {
      margin:0;
      color:var(--ink-2);
      font-size:15px;
      line-height:1.6;
      max-width:500px;
    }
.cml-parcours .featured-stats {
      display:flex;
      flex-wrap:wrap;
      gap:0;
      margin:6px 0;
      border:1px solid var(--line);
      border-radius:var(--radius-sm);
      overflow:hidden;
    }
.cml-parcours .featured-stats .stat {
      flex:1 1 0;
      min-width:90px;
      padding:10px 12px;
      border-right:1px solid var(--line);
    }
.cml-parcours .featured-stats .stat:last-child { border-right:0; }
.cml-parcours .featured-stats .stat .lbl {
      display:block;
      font-size:10.5px;
      font-weight:600;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:var(--muted);
      margin-bottom:2px;
    }
.cml-parcours .featured-stats .stat .val {
      display:block;
      font-size:15px;
      font-weight:700;
      color:var(--ink);
    }
.cml-parcours .featured-cta {
      display:inline-flex;
      align-items:center;
      gap:8px;
      align-self:flex-start;
      padding:11px 18px;
      background:var(--accent);
      color:#fff;
      border-radius:var(--radius-sm);
      font-size:14px;
      font-weight:600;
      margin-top:6px;
      transition:background .15s ease;
    }
.cml-parcours .featured-cta:hover { background:var(--accent-dark); }
.cml-parcours .featured-cta svg { width:14px; height:14px; }
.cml-parcours .section-head {
      max-width:1280px;
      margin:48px auto 0;
      padding:0 24px;
    }
.cml-parcours .section-head h2 {
      margin:0 0 6px;
      font-size:22px;
      font-weight:700;
      letter-spacing:-0.01em;
    }
.cml-parcours .section-head p {
      margin:0;
      color:var(--muted);
      font-size:14.5px;
    }
.cml-parcours .info-banner {
      max-width:1280px;
      margin:60px auto 0;
      padding:0 24px;
    }
.cml-parcours .info-banner-inner {
      display:grid;
      grid-template-columns:1fr auto;
      gap:24px;
      align-items:center;
      padding:24px 28px;
      background:linear-gradient(135deg, var(--accent-soft) 0%, var(--bg-2) 100%);
      border:1px solid var(--line);
      border-radius:var(--radius);
    }
.cml-parcours .info-banner h3 {
      margin:0 0 4px;
      font-size:17px;
      font-weight:700;
    }
.cml-parcours .info-banner p {
      margin:0;
      color:var(--ink-2);
      font-size:14px;
      line-height:1.55;
    }
.cml-parcours .info-banner .btn {
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:11px 18px;
      background:var(--ink);
      color:#fff;
      border-radius:var(--radius-sm);
      font-size:14px;
      font-weight:600;
      white-space:nowrap;
      transition:background .15s ease;
    }
.cml-parcours .info-banner .btn:hover { background:var(--ink-2); }
@media (max-width:640px) {
.cml-parcours .info-banner-inner { grid-template-columns:1fr; }
.cml-parcours .featured-card { grid-template-columns:1fr; }
.cml-parcours .featured-photo { min-height:240px; aspect-ratio:16/10; }
.cml-parcours .featured-body { padding:24px; }
.cml-parcours h1 { font-size:24px; }
.cml-parcours .topbar .brand { display:none; }

    
}
.cml-parcours footer {
      max-width:1280px;
      margin:60px auto 0;
      padding:32px 24px 48px;
      border-top:1px solid var(--line);
      color:var(--muted);
      font-size:13px;
      line-height:1.6;
    }
.cml-parcours footer .foot-grid {
      display:flex;
      justify-content:space-between;
      gap:24px;
      flex-wrap:wrap;
    }
.cml-parcours footer a { color:var(--muted); }
.cml-parcours footer a:hover { color:var(--ink); text-decoration:underline; }
.cml-parcours footer strong { color:var(--ink); }


  

/* ===== FICHE DETAIL ===== */
.cml-parcours {
      --ink:#0F1419;
      --ink-2:#2C3338;
      --muted:#5B6770;
      --muted-2:#8B95A0;
      --line:#E5E7EA;
      --line-2:#EFF1F3;
      --bg:#FFFFFF;
      --bg-2:#FAFAF9;
      --bg-3:#F4F5F4;

      --accent:#1F6F43;        
      --accent-dark:#13502F;
      --accent-soft:#E6F0EA;

      --warning:#B25A1A;
      --warning-soft:#FBEFE2;
      --danger:#A23838;
      --danger-soft:#F7E4E4;

      
      --t1:#3F8C5E;  --t1-bg:#E6F0EA;
      --t2:#4E7FA9;  --t2-bg:#E5EDF3;
      --t3:#C28A1F;  --t3-bg:#F8EED9;
      --t4:#B25A1A;  --t4-bg:#FBEFE2;
      --t5:#A23838;  --t5-bg:#F7E4E4;

      --radius:10px;
      --radius-sm:6px;
      --shadow:0 1px 2px rgba(15,20,25,.04), 0 8px 24px rgba(15,20,25,.06);
    }
.cml-parcours * {box-sizing:border-box}
.cml-parcours { scroll-behavior:smooth; }
.cml-parcours {
      margin:0;
      background:var(--bg);
      color:var(--ink);
      font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
      font-size:15px;
      line-height:1.55;
      -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility;
    }
.cml-parcours a { color:inherit; }
.cml-parcours .topbar {
      position:sticky;
      top:0;
      z-index:50;
      background:rgba(255,255,255,.94);
      backdrop-filter:saturate(180%) blur(10px);
      -webkit-backdrop-filter:saturate(180%) blur(10px);
      border-bottom:1px solid var(--line);
    }
.cml-parcours .topbar-inner {
      max-width:1240px;
      margin:0 auto;
      padding:12px 24px;
      display:flex;
      align-items:center;
      gap:18px;
    }
.cml-parcours .topbar a.back {
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:var(--muted);
      text-decoration:none;
      font-size:13px;
      font-weight:500;
      transition:color .15s ease;
    }
.cml-parcours .topbar a.back:hover { color:var(--ink); }
.cml-parcours .topbar .brand {
      margin-left:auto;
      font-size:13px;
      color:var(--muted);
      font-weight:600;
      letter-spacing:.04em;
    }
.cml-parcours .topbar .brand strong { color:var(--ink); font-weight:700; }
.cml-parcours .breadcrumb {
      max-width:1240px;
      margin:18px auto 0;
      padding:0 24px;
      font-size:13px;
      color:var(--muted);
    }
.cml-parcours .breadcrumb a { color:var(--muted); text-decoration:none; }
.cml-parcours .breadcrumb a:hover { color:var(--ink); text-decoration:underline; }
.cml-parcours .breadcrumb .sep { margin:0 8px; color:var(--muted-2); }
.cml-parcours .fiche-head {
      max-width:1240px;
      margin:0 auto;
      padding:14px 24px 0;
    }
.cml-parcours .kicker {
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-size:11px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
      color:var(--accent);
      margin-bottom:10px;
    }
.cml-parcours .kicker::before {
      content:"";
      width:18px;
      height:1.5px;
      background:var(--accent);
    }
.cml-parcours h1.title {
      margin:0 0 14px;
      font-size:clamp(28px, 3.6vw, 42px);
      line-height:1.15;
      letter-spacing:-0.01em;
      font-weight:700;
      color:var(--ink);
    }
.cml-parcours .subtitle {
      margin:0 0 24px;
      font-size:17px;
      color:var(--muted);
      max-width:780px;
      line-height:1.55;
    }
.cml-parcours .stats-bar {
      display:flex;
      flex-wrap:wrap;
      gap:0;
      margin:6px 0 22px;
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:var(--bg);
      overflow:hidden;
    }
.cml-parcours .stat-cell {
      flex:1 1 0;
      min-width:130px;
      padding:14px 18px;
      border-right:1px solid var(--line);
    }
.cml-parcours .stat-cell:last-child { border-right:0; }
.cml-parcours .stat-cell .lbl {
      display:block;
      font-size:11px;
      font-weight:600;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--muted);
      margin-bottom:4px;
    }
.cml-parcours .stat-cell .val {
      display:block;
      font-size:18px;
      font-weight:700;
      color:var(--ink);
      letter-spacing:-0.01em;
    }
.cml-parcours .stat-cell .val small {
      font-weight:500;
      color:var(--muted);
      font-size:12px;
      margin-left:3px;
    }
.cml-parcours .diff {
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:3px 9px;
      border-radius:999px;
      font-size:12px;
      font-weight:700;
      letter-spacing:.02em;
    }
.cml-parcours .diff.t1 { background:var(--t1-bg); color:var(--t1); }
.cml-parcours .diff.t2 { background:var(--t2-bg); color:var(--t2); }
.cml-parcours .diff.t3 { background:var(--t3-bg); color:var(--t3); }
.cml-parcours .diff.t4 { background:var(--t4-bg); color:var(--t4); }
.cml-parcours .diff.t5 { background:var(--t5-bg); color:var(--t5); }
.cml-parcours .diff::before {
      content:"";
      width:7px;
      height:7px;
      border-radius:50%;
      background:currentColor;
    }
.cml-parcours .actions-row {
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-bottom:24px;
    }
.cml-parcours .btn {
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:11px 18px;
      border-radius:var(--radius-sm);
      border:1px solid var(--line);
      background:var(--bg);
      color:var(--ink);
      font-size:14px;
      font-weight:600;
      text-decoration:none;
      cursor:pointer;
      transition:background .15s ease, border-color .15s ease, transform .1s ease;
      font-family:inherit;
    }
.cml-parcours .btn:hover { background:var(--bg-3); border-color:var(--muted-2); }
.cml-parcours .btn:active { transform:translateY(1px); }
.cml-parcours .btn.primary {
      background:var(--accent);
      color:#fff;
      border-color:var(--accent);
    }
.cml-parcours .btn.primary:hover { background:var(--accent-dark); border-color:var(--accent-dark); }
.cml-parcours .btn svg { width:16px; height:16px; flex-shrink:0; }
.cml-parcours .hero-img {
      max-width:1240px;
      margin:0 auto 0;
      padding:0 24px;
    }
.cml-parcours .hero-img-frame {
      width:100%;
      aspect-ratio:21/9;
      border-radius:var(--radius);
      overflow:hidden;
      background-color:#cfd4dc;
      background-image:url('https://new.swissexplorerscamp.com/wp-content/uploads/2026/05/vtt_montagne_2400x1200.webp');
      background-size:cover;
      background-position:center;
      position:relative;
    }
.cml-parcours .hero-img-caption {
      position:absolute;
      bottom:14px;
      right:18px;
      font-size:11px;
      color:rgba(255,255,255,.85);
      background:rgba(15,20,25,.4);
      padding:4px 10px;
      border-radius:999px;
      backdrop-filter:blur(4px);
    }
.cml-parcours .map-section {
      max-width:1240px;
      margin:32px auto 0;
      padding:0 24px;
    }
.cml-parcours .section-label {
      display:flex;
      align-items:baseline;
      justify-content:space-between;
      margin-bottom:14px;
      gap:14px;
      flex-wrap:wrap;
    }
.cml-parcours .section-label h2 {
      margin:0;
      font-size:13px;
      font-weight:700;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--muted);
    }
.cml-parcours .section-label .meta {
      font-size:13px;
      color:var(--muted);
    }
.cml-parcours .section-label .meta strong { color:var(--ink); font-weight:600; }
.cml-parcours .map-wrap {
      border:1px solid var(--line);
      border-radius:var(--radius);
      overflow:hidden;
      background:var(--bg-2);
    }
.cml-parcours #cml-map {
      width:100%;
      height:560px;
    }
.cml-parcours .leaflet-container { font-family:inherit; font-size:13px; }
.cml-parcours .basemap-pastel {
      filter:saturate(.32) brightness(1.16) contrast(.86);
    }
.cml-parcours .profile-section {
      max-width:1240px;
      margin:24px auto 0;
      padding:0 24px;
    }
.cml-parcours .profile-wrap {
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:18px 20px 14px;
      background:var(--bg);
    }
.cml-parcours .profile-wrap svg { width:100%; height:240px; display:block; touch-action:none; }
.cml-parcours .profile-frame { fill:#FCFBF8; stroke:var(--line); }
.cml-parcours .profile-grid { stroke:var(--line-2); stroke-width:1; }
.cml-parcours .profile-grid-v { stroke:var(--line-2); stroke-width:1; stroke-dasharray:2 4; }
.cml-parcours .profile-line { fill:none; stroke:#D63A2F; stroke-width:2.2; stroke-linejoin:round; stroke-linecap:round; }
.cml-parcours .profile-axis-label { font-size:11px; fill:var(--muted); font-weight:600; }
.cml-parcours .profile-axis-label.x { text-anchor:middle; }
.cml-parcours .profile-poi-line { stroke:var(--muted-2); stroke-width:1; stroke-dasharray:3 3; }
.cml-parcours .profile-poi-dot { fill:#fff; stroke:#1F6F43; stroke-width:2; }
.cml-parcours .profile-poi-label { font-size:10.5px; fill:var(--accent-dark); font-weight:700; }
.cml-parcours .profile-hover-line { stroke:var(--ink-2); stroke-width:1; opacity:0; }
.cml-parcours .profile-hover-dot { fill:#D63A2F; stroke:#fff; stroke-width:2; opacity:0; }
.cml-parcours .profile-tip {
      position:absolute; pointer-events:none; opacity:0; transition:opacity .1s ease;
      background:var(--ink); color:#fff; font-size:12px; font-weight:600;
      padding:6px 10px; border-radius:6px; white-space:nowrap;
      transform:translate(-50%, -120%); box-shadow:0 4px 12px rgba(15,20,25,.25);
      z-index:5;
    }
.cml-parcours .profile-tip small { display:block; font-weight:500; color:rgba(255,255,255,.75); font-size:10.5px; margin-top:1px; }
.cml-parcours .profile-legend-mini {
      display:flex; flex-wrap:wrap; gap:18px; margin-top:12px;
      font-size:12px; color:var(--muted);
    }
.cml-parcours .profile-legend-mini b { color:var(--ink); font-weight:700; }
.cml-parcours .profile-legend-mini .up { color:#1F6F43; }
.cml-parcours .profile-legend-mini .down { color:#B25A1A; }
.cml-parcours .body-grid {
      max-width:1240px;
      margin:48px auto 0;
      padding:0 24px;
      display:grid;
      grid-template-columns:minmax(0, 1fr) 320px;
      gap:56px;
      align-items:start;
    }
.cml-parcours .body-main h2 {
      margin:32px 0 12px;
      font-size:22px;
      font-weight:700;
      color:var(--ink);
      letter-spacing:-0.01em;
    }
.cml-parcours .body-main h2:first-child { margin-top:0; }
.cml-parcours .body-main h3 {
      margin:24px 0 8px;
      font-size:17px;
      font-weight:700;
      color:var(--ink);
    }
.cml-parcours .body-main p {
      margin:0 0 14px;
      color:var(--ink-2);
      font-size:16px;
      line-height:1.65;
    }
.cml-parcours .body-main p.lead {
      font-size:17px;
      color:var(--ink);
      line-height:1.6;
    }
.cml-parcours .stages {
      margin:18px 0 8px;
      padding:0;
      list-style:none;
      counter-reset:stage;
    }
.cml-parcours .stages li {
      counter-increment:stage;
      padding:18px 0 18px 56px;
      border-top:1px solid var(--line);
      position:relative;
    }
.cml-parcours .stages li:last-child { border-bottom:1px solid var(--line); }
.cml-parcours .stages li::before {
      content:"J" counter(stage);
      position:absolute;
      left:0;
      top:18px;
      width:38px;
      height:38px;
      border-radius:50%;
      background:var(--accent-soft);
      color:var(--accent-dark);
      font-size:13px;
      font-weight:700;
      display:flex;
      align-items:center;
      justify-content:center;
      letter-spacing:.02em;
    }
.cml-parcours .stages li h4 {
      margin:0 0 4px;
      font-size:16px;
      font-weight:700;
      color:var(--ink);
    }
.cml-parcours .stages li .stage-meta {
      font-size:13px;
      color:var(--muted);
      margin-bottom:6px;
    }
.cml-parcours .stages li .stage-meta strong { color:var(--ink-2); font-weight:600; }
.cml-parcours .stages li p { margin:0; font-size:14.5px; color:var(--ink-2); }
.cml-parcours .body-aside { position:sticky; top:80px; }
.cml-parcours .info-box {
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:0;
      background:var(--bg);
      margin-bottom:20px;
      overflow:hidden;
    }
.cml-parcours .info-box h3 {
      margin:0;
      padding:14px 18px;
      font-size:12px;
      font-weight:700;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--muted);
      border-bottom:1px solid var(--line);
      background:var(--bg-2);
    }
.cml-parcours .info-box dl {
      margin:0;
      padding:8px 0;
    }
.cml-parcours .info-box dl > div {
      display:flex;
      justify-content:space-between;
      gap:12px;
      padding:8px 18px;
      font-size:14px;
      border-bottom:1px solid var(--line-2);
    }
.cml-parcours .info-box dl > div:last-child { border-bottom:0; }
.cml-parcours .info-box dt {
      color:var(--muted);
      font-weight:500;
    }
.cml-parcours .info-box dd {
      margin:0;
      color:var(--ink);
      font-weight:600;
      text-align:right;
    }
.cml-parcours .info-box .pad { padding:14px 18px; }
.cml-parcours .info-box ul.refuges {
      list-style:none;
      padding:8px 0;
      margin:0;
    }
.cml-parcours .info-box ul.refuges li {
      padding:9px 18px;
      font-size:13.5px;
      border-bottom:1px solid var(--line-2);
    }
.cml-parcours .info-box ul.refuges li:last-child { border-bottom:0; }
.cml-parcours .info-box ul.refuges li strong {
      display:block;
      color:var(--ink);
      font-weight:600;
    }
.cml-parcours .info-box ul.refuges li span {
      color:var(--muted);
      font-size:12.5px;
    }
.cml-parcours .cta-aside {
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:20px;
      background:linear-gradient(180deg, var(--accent-soft) 0%, var(--bg) 100%);
    }
.cml-parcours .cta-aside h3 {
      margin:0 0 8px;
      font-size:16px;
      font-weight:700;
      color:var(--ink);
    }
.cml-parcours .cta-aside p {
      margin:0 0 14px;
      font-size:13.5px;
      color:var(--ink-2);
      line-height:1.55;
    }
.cml-parcours .cta-aside .btn { width:100%; justify-content:center; }
.cml-parcours .cta-aside .btn + .btn { margin-top:8px; }
.cml-parcours .related-section {
      max-width:1240px;
      margin:80px auto 0;
      padding:48px 24px;
      border-top:1px solid var(--line);
    }
.cml-parcours .related-section h2.section-h2 {
      margin:0 0 6px;
      font-size:24px;
      font-weight:700;
      letter-spacing:-0.01em;
    }
.cml-parcours .related-section .section-sub {
      margin:0 0 28px;
      color:var(--muted);
      font-size:15px;
    }
.cml-parcours .trail-grid {
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:18px;
    }
.cml-parcours .trail-card {
      border:1px solid var(--line);
      border-radius:var(--radius);
      overflow:hidden;
      background:var(--bg);
      transition:border-color .2s ease, transform .15s ease, box-shadow .2s ease;
      display:flex;
      flex-direction:column;
    }
.cml-parcours .trail-card:hover {
      border-color:var(--muted-2);
      transform:translateY(-2px);
      box-shadow:var(--shadow);
    }
.cml-parcours .trail-card .photo {
      aspect-ratio:16/10;
      background-size:cover;
      background-position:center;
      background-color:#dde2e8;
      position:relative;
    }
.cml-parcours .trail-card .photo .num {
      position:absolute;
      top:12px;
      left:12px;
      background:rgba(255,255,255,.95);
      color:var(--ink);
      font-size:11px;
      font-weight:700;
      padding:5px 9px;
      border-radius:4px;
      letter-spacing:.02em;
    }
.cml-parcours .trail-card .body {
      padding:16px 18px 18px;
      flex:1;
      display:flex;
      flex-direction:column;
    }
.cml-parcours .trail-card h3 {
      margin:0 0 6px;
      font-size:17px;
      font-weight:700;
      line-height:1.25;
      color:var(--ink);
    }
.cml-parcours .trail-card .tagline {
      margin:0 0 14px;
      font-size:13.5px;
      color:var(--muted);
      line-height:1.5;
    }
.cml-parcours .trail-card .mini-stats {
      display:flex;
      gap:14px;
      margin-top:auto;
      padding-top:12px;
      border-top:1px solid var(--line-2);
      font-size:12.5px;
      color:var(--ink-2);
    }
.cml-parcours .trail-card .mini-stats span {
      display:inline-flex;
      align-items:center;
      gap:5px;
    }
.cml-parcours .trail-card .mini-stats strong { font-weight:700; color:var(--ink); }
.cml-parcours .trail-card.expanded {
      grid-column:1 / -1;
    }
.cml-parcours .trail-card .expand-content {
      display:none;
      border-top:1px solid var(--line);
    }
.cml-parcours .trail-card.expanded .expand-content { display:block; }
.cml-parcours .trail-card .expand-grid {
      display:grid;
      grid-template-columns:1.4fr 1fr;
      gap:0;
    }
.cml-parcours .trail-card .expand-map {
      height:340px;
      background:var(--bg-2);
      border-right:1px solid var(--line);
    }
.cml-parcours .trail-card .expand-detail {
      padding:22px 24px;
      font-size:14.5px;
      line-height:1.6;
      color:var(--ink-2);
    }
.cml-parcours .trail-card .expand-detail p { margin:0 0 14px; }
.cml-parcours .trail-card .expand-detail .row-stats {
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:10px;
      margin-bottom:14px;
    }
.cml-parcours .trail-card .expand-detail .row-stats > div {
      background:var(--bg-2);
      padding:10px 12px;
      border-radius:var(--radius-sm);
    }
.cml-parcours .trail-card .expand-detail .row-stats .lbl {
      display:block;
      font-size:10.5px;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:var(--muted);
      font-weight:600;
      margin-bottom:2px;
    }
.cml-parcours .trail-card .expand-detail .row-stats .val {
      display:block;
      font-size:15px;
      font-weight:700;
      color:var(--ink);
    }
.cml-parcours .trail-card .expand-actions {
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:10px;
    }
.cml-parcours .trail-card .expand-profile {
      grid-column:1 / -1;
      padding:14px 24px 20px;
      border-top:1px solid var(--line);
    }
.cml-parcours .trail-card .expand-profile svg { width:100%; height:140px; }
.cml-parcours .expand-toggle {
      width:100%;
      padding:11px 14px;
      background:var(--bg-2);
      border:0;
      border-top:1px solid var(--line);
      font-size:13px;
      font-weight:600;
      color:var(--ink-2);
      cursor:pointer;
      font-family:inherit;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      transition:background .15s ease;
    }
.cml-parcours .expand-toggle:hover { background:var(--bg-3); }
.cml-parcours .expand-toggle .chev { transition:transform .2s ease; }
.cml-parcours .trail-card.expanded .expand-toggle .chev { transform:rotate(180deg); }
.cml-parcours .safety {
      max-width:1240px;
      margin:32px auto 0;
      padding:0 24px;
    }
.cml-parcours .safety-inner {
      border-left:3px solid var(--warning);
      background:var(--warning-soft);
      padding:14px 18px;
      border-radius:0 var(--radius-sm) var(--radius-sm) 0;
      font-size:14px;
      color:var(--ink-2);
      line-height:1.6;
    }
.cml-parcours .safety-inner strong { color:var(--ink); }
.cml-parcours footer {
      max-width:1240px;
      margin:60px auto 0;
      padding:32px 24px 48px;
      border-top:1px solid var(--line);
      color:var(--muted);
      font-size:13px;
      line-height:1.6;
    }
.cml-parcours footer .foot-grid {
      display:flex;
      justify-content:space-between;
      gap:24px;
      flex-wrap:wrap;
    }
.cml-parcours footer a {
      color:var(--muted);
      text-decoration:none;
    }
.cml-parcours footer a:hover { color:var(--ink); text-decoration:underline; }
@media (max-width:980px) {
.cml-parcours .body-grid {
        grid-template-columns:1fr;
        gap:32px;
      }
.cml-parcours .body-aside { position:static; }
.cml-parcours #cml-map { height:420px; }
.cml-parcours .trail-grid { grid-template-columns:repeat(2, 1fr); }
.cml-parcours .trail-card.expanded .expand-grid { grid-template-columns:1fr; }
.cml-parcours .trail-card.expanded .expand-map { border-right:0; border-bottom:1px solid var(--line); height:300px; }

    
}
@media (max-width:640px) {
.cml-parcours { font-size:14.5px; }
.cml-parcours .topbar .brand { display:none; }
.cml-parcours h1.title { font-size:26px; }
.cml-parcours .subtitle { font-size:15.5px; }
.cml-parcours .stats-bar { flex-direction:column; }
.cml-parcours .stat-cell {
        border-right:0;
        border-bottom:1px solid var(--line);
        min-width:0;
        display:flex;
        justify-content:space-between;
        align-items:baseline;
        padding:12px 16px;
      }
.cml-parcours .stat-cell:last-child { border-bottom:0; }
.cml-parcours .stat-cell .lbl { margin-bottom:0; }
.cml-parcours .stat-cell .val { font-size:16px; }
.cml-parcours .hero-img-frame { aspect-ratio:16/10; }
.cml-parcours #cml-map { height:340px; }
.cml-parcours .trail-grid { grid-template-columns:1fr; }
.cml-parcours .related-section { padding:32px 24px; }
.cml-parcours .related-section h2.section-h2 { font-size:20px; }
.cml-parcours .body-main h2 { font-size:19px; }
.cml-parcours .stages li { padding-left:48px; }
.cml-parcours .stages li::before { width:32px; height:32px; font-size:12px; }

    
}
.cml-parcours .icon-inline {
      width:14px; height:14px;
      display:inline-block;
      vertical-align:-2px;
      fill:currentColor;
    }
.cml-parcours .body-side { display:flex; flex-direction:column; gap:16px; }
.cml-parcours .side-card { background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius); padding:18px 18px 20px; }
.cml-parcours .side-card h3 { margin:0 0 12px; font-size:15px; font-weight:700; color:var(--ink); letter-spacing:.01em; }
.cml-parcours .side-card.accent { background:var(--accent-soft); border-color:#cfe3d7; }
.cml-parcours .side-card.accent p { color:var(--ink-2); font-size:14px; margin:0 0 14px; line-height:1.5; }
.cml-parcours dl.kv { margin:0; display:grid; grid-template-columns:auto 1fr; gap:6px 14px; }
.cml-parcours dl.kv dt { color:var(--muted); font-size:13px; }
.cml-parcours dl.kv dd { margin:0; text-align:right; font-size:13px; font-weight:600; color:var(--ink-2); }
.cml-parcours .btn.full { width:100%; justify-content:center; }
.cml-parcours ul.kit { margin:0 0 8px; padding-left:0; list-style:none; }
.cml-parcours ul.kit li { position:relative; padding-left:24px; margin-bottom:8px; font-size:15px; color:var(--ink-2); line-height:1.5; }
.cml-parcours ul.kit li::before { content:""; position:absolute; left:4px; top:9px; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.cml-parcours .safety-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:18px; }
.cml-parcours .safe-card { background:var(--bg); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; }
.cml-parcours .safe-card h4 { margin:0 0 8px; font-size:14px; font-weight:700; color:var(--accent-dark); }
.cml-parcours .safe-card p { margin:0; font-size:13px; color:var(--muted); line-height:1.5; }
.cml-parcours .related-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.cml-parcours .related-link { display:inline-flex; align-items:center; gap:8px; background:var(--bg-2); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 16px; font-size:14px; font-weight:600; color:var(--ink-2); text-decoration:none; transition:background .15s, border-color .15s; }
.cml-parcours .related-link:hover { background:var(--accent-soft); border-color:#cfe3d7; color:var(--accent-dark); }
.cml-parcours .site-footer { max-width:1240px; margin:40px auto 0; padding:28px 24px 48px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.cml-parcours .site-footer p { margin:0 0 6px; }
.cml-parcours .site-footer strong { color:var(--ink-2); }
.cml-parcours .site-footer .muted { color:var(--muted-2); font-size:12px; line-height:1.5; }
@media (max-width:720px) {
.cml-parcours .safety-grid { grid-template-columns:1fr; }
 
}
.cml-parcours .poi-pin {
      background:#fff;
      border:2.5px solid #D63A2F;
      color:#D63A2F;
      width:30px; height:30px;
      border-radius:50% 50% 50% 0;
      transform:rotate(-45deg);
      display:flex; align-items:center; justify-content:center;
      box-shadow:0 2px 8px rgba(15,20,25,.28);
    }
.cml-parcours .poi-pin svg { width:15px; height:15px; transform:rotate(45deg); }
.cml-parcours .lodge-pin {
      background:#042C53;
      border:2.5px solid #FAC775;
      color:#FAC775;
      width:34px; height:34px;
      border-radius:50% 50% 50% 0;
      transform:rotate(-45deg);
      display:flex; align-items:center; justify-content:center;
      box-shadow:0 2px 9px rgba(4,44,83,.4);
    }
.cml-parcours .lodge-pin svg { width:17px; height:17px; transform:rotate(45deg); }
.cml-parcours .poi-pop .poi-lodge-tag {
      display:inline-block; margin-bottom:4px; padding:2px 8px;
      background:#042C53; color:#FAC775;
      font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
      border-radius:999px;
    }
.cml-parcours .poi-pop a.poi-link.lodge { color:#042C53; }
.cml-parcours .leaflet-popup-content-wrapper { border-radius:10px; box-shadow:0 6px 24px rgba(15,20,25,.18); }
.cml-parcours .leaflet-popup-content { margin:14px 16px; font-family:inherit; }
.cml-parcours .poi-pop h4 { margin:0 0 3px; font-size:14.5px; font-weight:700; color:var(--ink); }
.cml-parcours .poi-pop .poi-alt { font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.cml-parcours .poi-pop .poi-hours { margin:8px 0 0; font-size:12.5px; color:var(--ink-2); line-height:1.5; }
.cml-parcours .poi-pop .poi-hours .lbl { font-weight:600; color:var(--ink); }
.cml-parcours .poi-pop a.poi-link {
      display:inline-flex; align-items:center; gap:5px;
      margin-top:10px; font-size:12.5px; font-weight:700;
      color:#D63A2F; text-decoration:none;
    }
.cml-parcours .poi-pop a.poi-link:hover { text-decoration:underline; }
.cml-parcours .poi-pop .poi-closed {
      display:inline-block; margin-top:8px; padding:3px 9px;
      background:var(--danger-soft); color:var(--danger);
      font-size:11px; font-weight:700; border-radius:999px;
      letter-spacing:.02em;
    }
.cml-parcours .map-legend {
      display:flex; flex-wrap:wrap; gap:16px; align-items:center;
      margin-top:12px; font-size:12.5px; color:var(--muted);
    }
.cml-parcours .map-legend .lg { display:inline-flex; align-items:center; gap:7px; }
.cml-parcours .map-legend .lg .swatch-line { width:24px; height:3px; border-radius:2px; background:#D63A2F; position:relative; }
.cml-parcours .map-legend .lg .swatch-arrow {
      display:inline-flex; align-items:center; justify-content:center;
      width:16px; height:16px; border-radius:3px; background:#D63A2F;
      color:#fff; font-weight:900; font-size:11px; line-height:1;
    }
.cml-parcours .map-legend .lg .swatch-poi {
      width:14px; height:14px; border-radius:50% 50% 50% 0;
      transform:rotate(-45deg); border:2px solid #D63A2F; background:#fff;
      display:inline-block;
    }
.cml-parcours .map-legend .lg .swatch-start {
      width:15px; height:15px; border-radius:50%;
      background:#1F6F43; border:2.5px solid #fff; box-shadow:0 0 0 1px var(--line);
      display:inline-block;
    }
.cml-parcours .map-legend .lg .swatch-lodge {
      width:14px; height:14px; border-radius:50% 50% 50% 0;
      transform:rotate(-45deg); border:2px solid #FAC775; background:#042C53;
      display:inline-block;
    }

  
/* ============================================================
   HERO + intégration WordPress (ajouté v1.2)
   ============================================================ */

/* Titres en Playfair Display pour le cachet "hôtel" */
.cml-parcours h1,
.cml-parcours h2,
.cml-parcours h3,
.cml-parcours .cml-hero h1 {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  letter-spacing: 0;
}

/* Texte courant en Inter */
.cml-parcours,
.cml-parcours p,
.cml-parcours .filter,
.cml-parcours .lead {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* HERO bandeau image */
.cml-parcours .cml-hero {
  position: relative;
  margin: 0 0 8px;
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center 60%;
  background-repeat: no-repeat;
  border-radius: 0;
}
.cml-parcours .cml-hero-inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 24px 40px;
  color: #fff;
}
.cml-parcours .cml-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #FAC775;
  margin-bottom: 12px;
}
.cml-parcours .cml-hero-kicker::before {
  content: "";
  width: 22px;
  height: 1.5px;
  background: #FAC775;
}
.cml-parcours .cml-hero h1 {
  margin: 0 0 12px;
  font-size: clamp(30px, 4.4vw, 52px);
  line-height: 1.08;
  font-weight: 800;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0,0,0,.35);
}
.cml-parcours .cml-hero p {
  max-width: 760px;
  margin: 0;
  font-size: clamp(15px, 1.6vw, 18px);
  line-height: 1.6;
  color: rgba(255,255,255,.92);
  text-shadow: 0 1px 12px rgba(0,0,0,.30);
}

/* La page hub démarre proprement (pas de chevauchement du menu du thème) */
.cml-parcours.cml-hub {
  margin-top: 0;
}
.cml-parcours.cml-hub .filters {
  margin-top: 22px;
}

@media (max-width: 640px) {
  .cml-parcours .cml-hero { min-height: 360px; }
  .cml-parcours .cml-hero-inner { padding: 0 18px 26px; }
}

/* ============================================================
   PAGE DÉTAIL — HERO bandeau image (même style que le hub) v1.3
   Le header du thème est en position:absolute (~145px) et se pose
   PAR-DESSUS le contenu (comme sur le hub). On reproduit ce
   comportement : le hero démarre en haut, le menu se pose dessus,
   et le contenu du hero (kicker/titre/stats) est poussé sous la
   zone occupée par le menu.
   ============================================================ */

/* Lien retour : dans le hero, poussé sous la zone du menu */
.cml-parcours .cml-detail-hero .actions-row .btn-allroutes {
  margin-left: 0;
  order: -1;            /* v2.8 : à GAUCHE (premier de la barre d'actions) */
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.55);
  color: #fff;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.cml-detail-hero .actions-row .btn-allroutes:hover {
  background: rgba(255,255,255,.28);
  border-color: #fff;
}
.cml-parcours .cml-detail-back a { pointer-events: auto; }
.cml-parcours .cml-detail-back a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.92);
  letter-spacing: .01em;
  text-shadow: 0 1px 8px rgba(0,0,0,.5);
}
.cml-parcours .cml-detail-back a:hover { color: #fff; }

/* Le fiche-head devient un hero image PLEIN ÉCRAN (100vh).
   Démarre en haut (top:0) : le header absolute (~145px) se pose dessus.
   Le contenu est centré verticalement sous la zone du menu. min-height
   au lieu de height fixe pour ne jamais tronquer un contenu long (Grand 8). */
.cml-parcours .fiche-head.cml-detail-hero {
  position: relative;
  max-width: none;
  width: 100vw;
  margin: 0 0 8px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center 55%;
  background-repeat: no-repeat;
}
.cml-parcours .cml-detail-hero-inner {
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  padding: 210px 56px 64px;   /* descendu + décollé du bord gauche */
}

/* Kicker doré sur le hero */
.cml-parcours .cml-detail-hero .kicker { color: #FAC775; margin-bottom: 12px; }
.cml-parcours .cml-detail-hero .kicker::before { background: #FAC775; }

/* Titre blanc Playfair */
.cml-parcours .cml-detail-hero h1.title {
  color: #fff;
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 800;
  font-size: clamp(28px, 4vw, 48px);
  text-shadow: 0 2px 24px rgba(0,0,0,.4);
  margin: 0 0 12px;
}
.cml-parcours .cml-detail-hero .subtitle {
  color: rgba(255,255,255,.92);
  text-shadow: 0 1px 12px rgba(0,0,0,.35);
  margin: 0 0 20px;
}

/* Stats sur fond translucide pour rester lisibles sur la photo */
.cml-parcours .cml-detail-stats-below {
  max-width: 1240px;
  margin: -18px auto 0;
  padding: 0 24px;
  position: relative;
  z-index: 4;
}
.cml-detail-stats-below .stats-bar {
  margin: 0;
  background: var(--bg);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

@media (max-width: 640px) {
  .cml-parcours .fiche-head.cml-detail-hero { min-height: 390px; }
  .cml-parcours .cml-detail-hero-inner { padding: 130px 22px 30px; }
  .cml-parcours 
  .cml-parcours .cml-detail-stats-below { padding: 0 18px; margin-top: -12px; }
}

.cml-parcours .gpx-short { display:none; }
.cml-parcours .gpx-long { display:inline; }
@media (max-width:640px){
  .cml-parcours .gpx-short { display:inline; }
  .cml-parcours .gpx-long { display:none; }
}
@media (max-width:640px){
  .cml-parcours .profile-wrap { padding:14px 12px 12px; }
  .cml-parcours .profile-wrap svg { height:320px; }
}

/* ===== v2.1 — encarts séjour (offre individuels) + location VTT ===== */
.cml-parcours .side-card .cml-side-eyebrow { margin:0 0 6px; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.cml-parcours .side-card.accent h3 { margin:0 0 8px; }
.cml-parcours .cml-side-price { display:flex; align-items:baseline; gap:6px; margin:0 0 2px; }
.cml-parcours .cml-side-price-num { font-size:26px; font-weight:700; color:var(--accent); line-height:1; }
.cml-parcours .cml-side-price-cur { font-size:14px; font-weight:700; color:var(--accent); }
.cml-parcours .cml-side-price-sub { margin:2px 0 12px; font-size:12.5px; color:var(--ink-2); }
.cml-parcours .side-card.cml-side-location h3 { margin:0 0 10px; }
.cml-parcours .btn.accent { border-color:var(--accent); color:var(--accent); background:var(--bg); }
.cml-parcours .btn.accent:hover { background:var(--accent-soft); border-color:var(--accent); }

/* ============================================================
   v2.5 — Hub rendu serveur : intro SEO + description de carte
   ============================================================ */
.cml-hub .cml-hub-intro{
    max-width:820px;
    margin:0 auto 32px;
    text-align:center;
}
.cml-hub .cml-hub-intro h2{
    font-family:'Playfair Display',Georgia,serif;
    color:#042C53;
    font-size:clamp(22px,3vw,30px);
    margin:0 0 12px;
}
.cml-hub .cml-hub-intro p{
    color:#56616f;
    font-size:16px;
    line-height:1.65;
    margin:0;
}
.cml-hub .card .card-desc{
    color:#56616f;
    font-size:14px;
    line-height:1.55;
    margin:6px 0 12px;
}
.cml-hub .stats-mini .stat .lbl{
    font-weight:600;
    color:#042C53;
}

/* ============================================================
   2.5.1 — Correctifs d'affichage du HUB (rendu serveur)
   Ciblé .cml-hub uniquement : ne touche pas la fiche détail.
   ============================================================ */
.cml-hub .card .photo { display:block; }
.cml-hub .card .photo img {
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover; display:block;
}
.cml-hub .stats-mini { grid-template-columns:1fr; }
.cml-hub .stats-mini .stat { white-space:nowrap; }

/* ============================================================
   2.6 — Barre de filtres du HUB (rendu serveur + JS de masquage)
   ============================================================ */
.cml-hub .cml-hub-filters {
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:12px; margin:26px 0 22px;
}
.cml-hub .cml-hub-filter-group {
    display:flex; flex-wrap:wrap; align-items:center; gap:10px;
}
.cml-hub .cml-hub-filter-label {
    font-family:'Inter',sans-serif; font-size:14px; font-weight:600;
    color:#56616f; margin-right:2px;
}
.cml-hub .cml-hub-filter {
    font-family:'Inter',sans-serif; font-size:14px; font-weight:600;
    color:#042C53; background:#fff;
    border:1px solid #d9dee5; border-radius:999px;
    padding:9px 18px; line-height:1; cursor:pointer;
    transition:background .15s, border-color .15s, color .15s;
}
.cml-hub .cml-hub-filter .n { color:#8a93a0; font-weight:600; }
.cml-hub .cml-hub-filter:hover { border-color:#042C53; }
.cml-hub .cml-hub-filter.is-active { background:#0f1722; border-color:#0f1722; color:#fff; }
.cml-hub .cml-hub-filter.is-active .n { color:rgba(255,255,255,.7); }
.cml-hub .cml-hub-count { font-family:'Inter',sans-serif; font-size:14px; color:#56616f; }
.cml-hub .cml-hub-count strong { color:#042C53; font-weight:700; }
.cml-hub .card.cml-hide { display:none; }

/* ============================================================
   2.6.1 — Hero en pleine largeur (full-bleed) depuis une colonne contrainte
   ============================================================ */
.cml-hub .cml-hero {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* ============================================================
   v2.8 — MULTI-ACTIVITÉ
   ------------------------------------------------------------
   1) Bouton « Tous les itinéraires <activité> » à droite (hero + mobile)
   2) Encarts séjour + location déplacés en fin de colonne principale
      (donc après les buvettes), au lieu de la sidebar.
   ============================================================ */

/* 1) « Tous les itinéraires » à GAUCHE de la barre d'actions (hero + mobile). */
.cml-parcours .cml-detail-hero .actions-row .btn-allroutes {
  margin-left: 0;
  order: -1;
}
@media (max-width: 640px) {
  .cml-parcours .cml-detail-hero .actions-row { align-items: center; }
  .cml-parcours .cml-detail-hero .actions-row .btn-allroutes {
    margin-left: 0;
    order: -1;          /* reste à gauche, en tête de barre, même après wrap */
  }
}

/* 2) Bloc offres (séjour + location) en colonne principale, après buvettes.
      Deux colonnes côte à côte sur desktop, empilées sur mobile. */
.cml-parcours .cml-detail-offers {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  align-items: start;
}
.cml-parcours .cml-detail-offers .side-card { margin: 0; }
@media (max-width: 760px) {
  .cml-parcours .cml-detail-offers { grid-template-columns: 1fr; }
}
