/*
Theme Name: Foutons le Camp
Theme URI: https://foutonslecamp.fr
Author: FLC
Description: Thème du club de bikepacking Foutons le Camp (design v3, clair/crème). Contenu et couleurs entièrement pilotables depuis l'admin (CPT + ACF + Customizer).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: flc
*/

@font-face {
  font-family: 'Notably Absent';
  src: url('assets/fonts/Notably-Absent.ttf') format('truetype');
  font-display: swap;
}

:root {
  --teal:   #326186;
  --blue:   #A3CBE1;
  --green:  #758E4F;
  --yellow: #F8C462;
  --orange: #D4520C;
  --cream:  #FDFAF5;
  --ink:    #1C2B1A;
  --D: 'Notably Absent', 'Fredoka', sans-serif;
  --B: 'Nunito', sans-serif;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--B);overflow-x:hidden;overflow-wrap:break-word;cursor:default}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font-family:inherit}

/* ── Garde-fous responsive (anti-débordement / anti-chevauchement) ── */
h1,h2,h3,h4,p,.hero-bigtitle,.cta-big,.pt-title,.pf-name,.trace-name,.esprit-words h2 { overflow-wrap:break-word; }
.wild-grid>*,.hero-strip-inner>*,.pf-stats>*,.temo-stack>*,.temo-s>*,.team-g>*,.faq-cols>*,.pm>*,footer.site-footer>*,.fgrid>*,.pp>* { min-width:0; }

/* ─── CURSOR (souris fine uniquement) ─── */
@media (pointer:fine){
  * { cursor: none !important; }
  #cursor {
    width: 18px; height: 18px; border-radius: 50%;
    border: 2.5px solid var(--ink);
    position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9999;
    transform: translate(-50%,-50%);
    transition: transform 0.08s, width 0.2s, height 0.2s, border-color 0.2s;
  }
  #cursor.big { width: 42px; height: 42px; background: transparent; border-width: 3px; border-color: var(--orange); }
}
@media (pointer:coarse){ #cursor{ display:none; } }

/* ─── NAV ─── */
#nav {
  position: sticky; top: 0; z-index: 200;
  height: 80px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 32px;
  background: var(--yellow);
  border-bottom: 3px solid var(--ink);
}
.nav-logo { font-family: var(--D); font-size: 22px; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.nav-logo-img { display: block; height: 54px; width: auto; }
.nav-links { display: flex; gap: 4px; }
.nav-link {
  font-family: var(--B); font-size: 13px; font-weight: 800;
  padding: 7px 18px; border-radius: 9999px; border: 2.5px solid transparent;
  background: none; color: var(--ink);
  transition: all 0.15s;
}
.nav-link:hover { border-color: var(--ink); transform: rotate(-2deg); }
.nav-link.active { background: var(--ink); color: var(--yellow); }
.nav-cta {
  font-family: var(--B); font-size: 13px; font-weight: 900;
  padding: 10px 26px; background: var(--orange); color: var(--cream);
  border: 2.5px solid var(--ink); border-radius: 9999px;
  box-shadow: 3px 3px 0 var(--ink);
  transition: transform 0.15s, box-shadow 0.15s;
}
.nav-cta:hover { transform: translate(-2px,-2px) rotate(1deg); box-shadow: 5px 5px 0 var(--ink); }
.nav-burger { display:none; background:none; border:none; font-size:26px; color:var(--ink); }

/* Décalage du nav collant sous la barre d'administration WordPress (utilisateur connecté) */
body.admin-bar #nav { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar #nav { top: 46px; } }

/* ─── MARQUEE ─── */
.mq { overflow: hidden; background: var(--teal); padding: 10px 0; border-bottom: 3px solid var(--ink); white-space: nowrap; }
.mq-track { display: inline-flex; animation: mq 16s linear infinite; }
@keyframes mq { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.mq-item { font-family: var(--D); font-size: 17px; color: var(--cream); padding: 0 28px; display: inline-flex; align-items: center; gap: 12px; }
.mq-item b { color: var(--yellow); }

/* ─── PAGES (vraies pages WordPress, plus de SPA) ─── */
.page { display: block; }

/* ─── REVEAL ─── */
.rev { opacity:0; transform:translateY(20px); transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.34,1,0.64,1); }
.rev.on { opacity:1; transform:none; }

/* ═══════════════════════════════════
   HERO — FULL CHAOS
═══════════════════════════════════ */
/* ── HERO IMMERSIF (photo plein écran) ── */
#hero {
  position: relative; overflow: hidden;
  min-height: calc(100vh - 110px);
  display: flex; flex-direction: column; justify-content: flex-end;
  border-bottom: 3px solid var(--ink);
}
.hero-photo { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: var(--teal); transform: scale(1.05); animation: heroZoom 18s ease-in-out infinite alternate; }
@keyframes heroZoom { from { transform: scale(1.05); } to { transform: scale(1.14); } }
.hero-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(28,43,26,0.5) 0%, rgba(28,43,26,0.12) 38%, rgba(28,43,26,0.55) 74%, rgba(28,43,26,0.92) 100%); }
.hero-inner { position: relative; z-index: 2; flex: 1; display: flex; align-items: flex-end; width: 100%; max-width: 1500px; margin: 0 auto; padding: 0 64px; }
.hero-content { padding: 150px 0 48px; max-width: 940px; }
.hero-eyebrow2 { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 800; letter-spacing: 0.22em; text-transform: uppercase; color: var(--yellow); margin-bottom: 18px; }
.hero-eyebrow2::before { content: ''; width: 40px; height: 3px; background: var(--yellow); border-radius: 2px; }
.hero-bigtitle { font-family: var(--D); color: var(--cream); font-size: clamp(46px, 12vw, 230px); line-height: 0.82; text-shadow: 5px 5px 0 rgba(28,43,26,0.45); }
.hero-bigtitle .stroke { color: transparent; -webkit-text-stroke: 3px var(--yellow); }
.hero-sub2 { color: rgba(253,250,245,0.92); font-size: clamp(16px, 1.5vw, 21px); line-height: 1.6; max-width: 540px; margin: 26px 0 34px; }
.hero-btns2 { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-btns2 .btn-b { color: var(--cream); border-color: var(--cream); }
.hero-btns2 .btn-b:hover { background: var(--cream); color: var(--ink); }
/* bande de stats */
.hero-strip { position: relative; z-index: 2; background: var(--yellow); border-top: 3px solid var(--ink); }
.hero-strip-inner { max-width: 1500px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.hero-stat2 { padding: 22px 36px; display: flex; align-items: baseline; gap: 12px; border-right: 3px solid var(--ink); }
.hero-stat2:last-child { border-right: none; }
.hero-stat2 .n { font-family: var(--D); font-size: clamp(26px, 2.6vw, 44px); color: var(--ink); line-height: 1; white-space: nowrap; }
.hero-stat2 .l { font-size: 13px; font-weight: 700; color: rgba(28,43,26,0.6); line-height: 1.3; }

/* ── Ancien hero split (conservé pour compat, non utilisé) ── */
#hero.legacy {
  min-height: calc(100vh - 88px);
  background: var(--cream);
}
.hero-bg-letter {
  position: absolute; top: -40px; right: -40px;
  font-family: var(--D); font-size: clamp(300px, 45vw, 600px);
  color: rgba(50,97,134,0.06); line-height: 1;
  pointer-events: none; user-select: none;
  z-index: 0;
}
.hero-color-block {
  position: absolute; right: 0; top: 0; bottom: 0; width: 48%;
  background: var(--teal);
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0% 100%);
  z-index: 0;
}
.hero-color-block::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='2' cy='2' r='1.5' fill='%23A3CBE1' opacity='0.3'/%3E%3C/svg%3E");
  background-size: 16px 16px;
}
.hero-main {
  position: relative; z-index: 2;
  padding: 60px 64px;
  display: grid; grid-template-columns: 1.1fr 0.9fr;
  min-height: calc(100vh - 88px);
  align-items: center;
  max-width: 1500px; margin: 0 auto;
}
.hero-words { display: flex; flex-direction: column; }
.hw-eyebrow {
  font-size: 13px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--orange); margin-bottom: 8px;
  display: flex; align-items: center; gap: 8px;
}
.hw-eyebrow::before { content:''; width:32px; height:3px; background:var(--orange); border-radius:2px; }

.hw-title { position: relative; margin-bottom: 32px; }
.hw-t1 { font-family: var(--D); font-size: clamp(80px, 12vw, 180px); line-height: 0.88; color: var(--teal); display: block; }
.hw-t2 { font-family: var(--D); font-size: clamp(60px, 9vw, 130px); line-height: 0.88; color: var(--ink); display: block; margin-left: 24px; }
.hw-t3 { font-family: var(--D); font-size: clamp(80px, 12vw, 180px); line-height: 0.88; color: transparent; -webkit-text-stroke: 3px var(--orange); display: block; margin-left: -8px; }
.title-sticker {
  position: absolute; right: 32px; top: 20px;
  background: var(--yellow); padding: 12px 20px;
  border: 2.5px solid var(--ink); border-radius: 50%;
  width: 100px; height: 100px;
  display: flex; align-items: center; justify-content: center; text-align: center;
  font-size: 11px; font-weight: 900; line-height: 1.3;
  transform: rotate(12deg);
  box-shadow: 3px 3px 0 var(--ink);
  animation: wobble 3s ease-in-out infinite;
}
@keyframes wobble { 0%,100%{transform:rotate(12deg)} 50%{transform:rotate(14deg) scale(1.05)} }

.hw-sub { font-size: 16px; line-height: 1.65; color: rgba(28,43,26,0.6); margin-bottom: 40px; max-width: 400px; }
.hw-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-a {
  display:inline-block;
  font-family: var(--B); font-size: 15px; font-weight: 900;
  padding: 16px 36px; background: var(--orange); color: var(--cream);
  border: 2.5px solid var(--ink); border-radius: 9999px;
  box-shadow: 4px 4px 0 var(--ink);
  transition: transform 0.15s, box-shadow 0.15s;
}
.btn-a:hover { transform: translate(-3px,-3px) rotate(-1deg); box-shadow: 7px 7px 0 var(--ink); }
.btn-b {
  display:inline-block;
  font-family: var(--B); font-size: 15px; font-weight: 800;
  padding: 16px 32px; background: transparent; color: var(--ink);
  border: 2.5px solid var(--ink); border-radius: 9999px;
  transition: background 0.15s, color 0.15s, transform 0.15s;
}
.btn-b:hover { background: var(--ink); color: var(--cream); transform: rotate(1deg); }

.hero-right-stats { display: flex; flex-direction: column; gap: 14px; padding: 0; position: relative; width: 100%; max-width: 400px; margin-left: auto; }
.hstat {
  background: var(--cream); border: 2.5px solid var(--ink);
  padding: 18px 24px; border-radius: 16px;
  display: flex; align-items: center; gap: 16px;
  box-shadow: 4px 4px 0 var(--ink);
  transition: transform 0.2s, box-shadow 0.2s;
}
.hstat:nth-child(1) { transform: rotate(-2deg); margin-right: 24px; }
.hstat:nth-child(2) { transform: rotate(1.5deg); margin-left: 20px; }
.hstat:nth-child(3) { transform: rotate(-1deg); margin-right: 8px; }
.hstat:nth-child(4) { transform: rotate(2.5deg); margin-left: 32px; }
.hstat:hover { transform: rotate(0deg) scale(1.04) !important; margin-left: 0 !important; margin-right: 0 !important; box-shadow: 6px 6px 0 var(--ink); z-index: 2; }
.hstat .big { font-family: var(--D); font-size: 44px; line-height: 1; }
.hstat:nth-child(1) .big { color: var(--teal); }
.hstat:nth-child(2) .big { color: var(--orange); }
.hstat:nth-child(3) .big { color: var(--green); }
.hstat:nth-child(4) .big { color: var(--teal); }
.hstat .label { font-size: 13px; font-weight: 700; color: rgba(28,43,26,0.5); line-height: 1.4; }

/* ═══════════════════════════════════ DIAGONAL SECTIONS ═══════════════════════════════════ */
.diag-bottom { clip-path: polygon(0 0, 100% 0, 100% 92%, 0 100%); margin-bottom: -40px; }
.diag-top    { clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%); margin-top: -40px; padding-top: 80px !important; }
.diag-both   { clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%); margin: -30px 0; padding-top: 80px !important; padding-bottom: 80px !important; }

/* ═══════════════════════════════════ ESPRIT ═══════════════════════════════════ */
#esprit { background: var(--ink); padding: 120px 64px 120px; position: relative; overflow: hidden; z-index: 1; }
#esprit::before { content: '"'; position: absolute; top: -60px; left: -20px; font-family: var(--D); font-size: 500px; line-height: 1; color: rgba(248,196,98,0.07); pointer-events: none; }
.esprit-inner { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 80px; align-items: center; position: relative; z-index: 1; }
.esprit-words h2 { font-family: var(--D); line-height: 1.05; color: var(--cream); margin-bottom: 28px; }
.esprit-w1 { font-size: clamp(24px,4vw,56px); color: rgba(253,250,245,0.4); display: block; }
.esprit-w2 { font-size: clamp(56px,8vw,120px); color: var(--cream); display: block; line-height: 0.9; }
.esprit-w3 { font-size: clamp(48px,7vw,104px); color: var(--yellow); display: block; line-height: 0.9; }
.esprit-w4 { font-size: clamp(28px,4vw,60px); color: var(--blue); display: block; margin-top: 8px; }
.esprit-body { font-size: 16px; line-height: 1.75; color: rgba(253,250,245,0.55); max-width: 400px; }
.esprit-body strong { color: var(--yellow); }
.esprit-pillars { display: flex; flex-direction: column; gap: 12px; }
.pillar-card { background: rgba(253,250,245,0.05); border: 2px solid rgba(253,250,245,0.12); border-radius: 20px; padding: 24px 28px; transition: background 0.2s, border-color 0.2s, transform 0.2s; }
.pillar-card:nth-child(2) { margin-left: 20px; }
.pillar-card:nth-child(3) { margin-left: 40px; }
.pillar-card:hover { background: rgba(248,196,98,0.08); border-color: var(--yellow); transform: translateX(-4px); }
.pillar-icon { font-size: 28px; margin-bottom: 8px; }
.pillar-title { font-family: var(--D); font-size: 22px; color: var(--yellow); margin-bottom: 4px; }
.pillar-text { font-size: 13px; color: rgba(253,250,245,0.5); line-height: 1.5; }

/* ═══════════════════════════════════ PARCOURS WILD GRID ═══════════════════════════════════ */
#parcours-teaser { background: var(--cream); padding: 100px 64px 120px; position: relative; z-index: 1; }
.pt-head { margin-bottom: 64px; }
.pt-label { font-size: 12px; font-weight: 900; letter-spacing: 0.25em; text-transform: uppercase; color: var(--orange); margin-bottom: 12px; }
.pt-title { font-family: var(--D); font-size: clamp(52px, 7vw, 112px); line-height: 0.95; color: var(--ink); }
.pt-title span { color: var(--teal); display: inline-block; transform: rotate(-1deg); }
.pt-title em { font-style: normal; -webkit-text-stroke: 2px var(--ink); color: transparent; }

/* Grille harmonisée : s'adapte automatiquement au nombre de cartes (pas de colonne vide) */
.wild-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; align-items: stretch; max-width: 1500px; margin: 0 auto; }
.wc { border-radius: 24px; position: relative; transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); }
.wc:nth-child(3n+1) { transform: rotate(-1.5deg); }
.wc:nth-child(3n+2) { transform: rotate(1deg); }
.wc:nth-child(3n+3) { transform: rotate(-0.5deg); }
.wc:hover { transform: rotate(0deg) translateY(-8px) scale(1.02); z-index: 10; }
.wc-inner { display: flex; flex-direction: column; height: 100%; border-radius: 24px; overflow: hidden; border: 3px solid var(--ink); box-shadow: 5px 5px 0 var(--ink); background: #fff; transition: box-shadow 0.25s; }
.wc:hover .wc-inner { box-shadow: 8px 11px 0 var(--ink); }
/* Photo nette en haut (ratio 3:2, bien remplie) */
.wc-photo { position: relative; aspect-ratio: 3 / 2; background-size: cover; background-position: center; background-color: var(--ink); overflow: hidden; }
.wc-photo[style*="url"]::after { display: none; } /* masque la silhouette terrain quand vraie photo */
.wc-badge { position: absolute; top: 14px; left: 14px; font-size: 10px; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; padding: 6px 14px; background: var(--cream); color: var(--ink); border: 2.5px solid var(--ink); border-radius: 9999px; box-shadow: 2px 2px 0 var(--ink); transform: rotate(-3deg); }
.wc-arrow { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; background: var(--yellow); border: 2.5px solid var(--ink); display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 900; color: var(--ink); box-shadow: 2px 2px 0 var(--ink); transition: transform 0.25s; }
.wc:hover .wc-arrow { transform: rotate(45deg) scale(1.12); }
/* Panneau d'info coloré en bas (à la couleur du parcours) */
.wc-info { flex: 1; padding: 20px 22px 22px; background: var(--teal); color: var(--cream); border-top: 3px solid var(--ink); }
.wc.p-bleu .wc-info  { background: var(--teal); }
.wc.p-rouge .wc-info { background: var(--orange); }
.wc.p-vert .wc-info  { background: var(--green); }
.wc.p-noir .wc-info  { background: var(--ink); }
.wc-name { font-family: var(--D); font-size: clamp(30px, 2.4vw, 46px); line-height: 1; color: inherit; }
.wc-route { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, currentColor 78%, transparent); margin-top: 5px; }
.wc-stats { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 16px; }
.wc-stats span { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, currentColor 70%, transparent); }
.wc-stats strong { display: block; font-family: var(--D); font-weight: 400; font-size: 22px; line-height: 1; color: inherit; letter-spacing: 0; text-transform: none; margin-bottom: 2px; }

.bg-bleu  { background-image: linear-gradient(160deg, #0e2840, #326186); }
.bg-rouge { background-image: linear-gradient(160deg, #5a1205, #D4520C); }
.bg-vert  { background-image: linear-gradient(160deg, #1e3010, #758E4F); }
.bg-noir  { background-image: linear-gradient(160deg, #080c14, #1a2840); }
.bg-bleu::after  { content:'';position:absolute;bottom:0;left:0;right:0;height:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 160' preserveAspectRatio='none'%3E%3Cpath d='M0,160 L0,90 Q80,45 160,65 Q240,85 300,30 Q360,0 400,15 L400,160Z' fill='%23A3CBE1' opacity='0.2'/%3E%3C/svg%3E") bottom/100% auto no-repeat; }
.bg-rouge::after { content:'';position:absolute;bottom:0;left:0;right:0;height:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 160' preserveAspectRatio='none'%3E%3Cpath d='M0,160 L0,100 Q100,55 200,75 Q280,90 340,35 L400,15 L400,160Z' fill='%23F8C462' opacity='0.2'/%3E%3C/svg%3E") bottom/100% auto no-repeat; }
.bg-vert::after  { content:'';position:absolute;bottom:0;left:0;right:0;height:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 160' preserveAspectRatio='none'%3E%3Cpath d='M0,160 L0,120 Q80,80 160,95 Q240,110 310,55 Q360,25 400,10 L400,160Z' fill='%23FDFAF5' opacity='0.15'/%3E%3C/svg%3E") bottom/100% auto no-repeat; }
.bg-noir::after  { content:'';position:absolute;bottom:0;left:0;right:0;height:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 160' preserveAspectRatio='none'%3E%3Cpath d='M0,160 L0,130 Q80,95 180,110 Q260,122 340,65 Q375,35 400,10 L400,160Z' fill='%23F8C462' opacity='0.15'/%3E%3C/svg%3E") bottom/100% auto no-repeat; }
/* image de fond réelle si fournie */
.wc-bg[style*="url"], .pf-vis-bg[style*="url"], .pm-bg[style*="url"] { background-color: var(--ink); }

.pt-footer { margin-top: 48px; display: flex; justify-content: center; }

/* ═══════════════════════════════════ TEMOIGNAGES STACK ═══════════════════════════════════ */
#temo-section { background: var(--yellow); padding: 100px 64px; border-top: 3px solid var(--ink); border-bottom: 3px solid var(--ink); position: relative; overflow: hidden; z-index: 1; }
#temo-section::after { content: '😮‍💨'; position: absolute; right: 64px; bottom: 20px; font-size: 140px; opacity: 0.12; pointer-events: none; }
.temo-header { margin-bottom: 56px; }
.temo-header h2 { font-family: var(--D); font-size: clamp(40px, 5.5vw, 84px); color: var(--ink); line-height: 1; }
.temo-header h2 em { font-style: normal; color: var(--teal); }
.temo-stack { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0; position: relative; align-items: start; }
.temo-card { background: var(--cream); border: 2.5px solid var(--ink); border-radius: 20px; padding: 28px; box-shadow: 5px 5px 0 var(--ink); transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.25s; }
.temo-card:nth-child(1) { transform: rotate(-2deg); z-index: 3; margin-right: -16px; }
.temo-card:nth-child(2) { transform: rotate(1deg); z-index: 4; margin-top: 24px; }
.temo-card:nth-child(3) { transform: rotate(-1.2deg); z-index: 3; margin-left: -16px; margin-top: 8px; }
.temo-card:hover { transform: rotate(0deg) scale(1.04) translateY(-8px) !important; z-index: 10; box-shadow: 8px 8px 0 var(--ink); }
.temo-quote-mark { font-family: var(--D); font-size: 64px; color: var(--teal); line-height: 0.7; margin-bottom: 8px; }
.temo-text { font-size: 15px; line-height: 1.7; font-style: italic; color: var(--ink); margin-bottom: 20px; }
.temo-who { font-weight: 900; font-size: 13px; color: var(--teal); }
.temo-info { font-size: 12px; color: rgba(28,43,26,0.45); margin-top: 2px; }

/* ═══════════════════════════════════ FAQ ═══════════════════════════════════ */
#faq-section { background: var(--teal); padding: 100px 64px; position: relative; z-index: 1; }
.faq-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 56px; }
.faq-head h2 { font-family: var(--D); font-size: clamp(52px, 7vw, 100px); color: var(--cream); line-height: 1; }
.faq-head h2 span { color: var(--yellow); display: inline-block; transform: rotate(-2deg); }
.faq-head p { font-size: 15px; color: rgba(253,250,245,0.5); max-width: 300px; text-align: right; line-height: 1.6; }
.faq-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 64px; }
.faq-item { border-bottom: 2px solid rgba(253,250,245,0.15); }
.faq-q { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 20px 0; font-family: var(--B); font-size: 15px; font-weight: 800; color: var(--cream); background: none; border: none; text-align: left; transition: color 0.2s; }
.faq-q:hover { color: var(--yellow); }
.faq-icon { font-size: 22px; opacity: 0.7; transition: transform 0.3s; flex-shrink: 0; margin-left: 12px; }
.faq-a { overflow: hidden; max-height: 0; transition: max-height 0.4s, padding 0.3s; font-size: 14px; line-height: 1.7; color: rgba(253,250,245,0.6); }
.faq-item.open .faq-a { max-height: 320px; padding-bottom: 20px; }
.faq-item.open .faq-icon { transform: rotate(45deg); }

/* ═══════════════════════════════════ CTA FINAL ═══════════════════════════════════ */
#cta-final { background: var(--cream); padding: 120px 64px; text-align: center; position: relative; z-index: 1; border-top: 3px solid var(--ink); overflow: hidden; }
#cta-final::before { content: '🌰'; position: absolute; font-size: 320px; opacity: 0.05; top: 50%; left: 50%; transform: translate(-50%,-50%); pointer-events: none; }
.cta-eyebrow { font-size: 12px; font-weight: 900; letter-spacing: 0.25em; text-transform: uppercase; color: var(--orange); margin-bottom: 20px; }
.cta-big { font-family: var(--D); font-size: clamp(42px, 9vw, 160px); line-height: 0.92; color: var(--ink); margin-bottom: 32px; position: relative; z-index: 1; }
.cta-big span { color: var(--teal); display: inline-block; transform: rotate(-1.5deg); }
.cta-big em { font-style: normal; -webkit-text-stroke: 3px var(--orange); color: transparent; }
.cta-sub { font-size: 18px; color: rgba(28,43,26,0.55); line-height: 1.65; max-width: 480px; margin: 0 auto 56px; }
.btn-giant { display: inline-block; font-family: var(--B); font-size: 22px; font-weight: 900; padding: 24px 80px; background: var(--orange); color: var(--cream); border: 3px solid var(--ink); border-radius: 9999px; box-shadow: 6px 6px 0 var(--ink); transition: transform 0.2s, box-shadow 0.2s; animation: btnBounce 2s ease-in-out infinite; }
@keyframes btnBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
.btn-giant:hover { transform: translate(-4px,-4px) rotate(-1deg) !important; box-shadow: 10px 10px 0 var(--ink); animation: none; }

/* ═══════════════════════════════════ FOOTER ═══════════════════════════════════ */
footer.site-footer { background: var(--ink); padding: 64px; border-top: 3px solid var(--yellow); display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 64px; }
.footer-brand .wm { font-family: var(--D); font-size: 28px; color: var(--yellow); margin-bottom: 12px; }
.footer-logo-img { display: block; height: 48px; width: auto; }
.footer-brand p { font-size: 13px; line-height: 1.7; color: rgba(253,250,245,0.4); max-width: 240px; }
.fc h5 { font-size: 11px; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; color: var(--yellow); margin-bottom: 16px; }
.fc a { display: block; font-size: 13px; color: rgba(253,250,245,0.5); margin-bottom: 8px; transition: color 0.2s; }
.fc a:hover { color: var(--cream); }
.footer-bottom { grid-column: 1/-1; padding-top: 32px; border-top: 1px solid rgba(253,250,245,0.1); display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: rgba(253,250,245,0.3); flex-wrap:wrap; gap:16px; }
.partners { display: flex; gap: 24px; flex-wrap:wrap; }
.partner { font-family: var(--D); font-size: 14px; opacity: 0.35; color: var(--cream); }

.mf { background: var(--cream); border-top: 3px solid var(--ink); padding: 28px 64px; display: flex; justify-content: space-between; align-items: center; gap:16px; flex-wrap:wrap; }
.mf span { font-size: 13px; color: rgba(28,43,26,0.4); }

/* ═══════════════════════════════════ PAGE PARCOURS ═══════════════════════════════════ */
.ph { background: var(--teal); padding: 80px 64px 60px; border-bottom: 3px solid var(--ink); position: relative; overflow: hidden; }
.ph::after { content: 'TRACES'; position: absolute; right: -40px; top: -20px; font-family: var(--D); font-size: 200px; color: rgba(253,250,245,0.06); pointer-events: none; line-height: 1; }
.ph h1 { font-family: var(--D); font-size: clamp(64px, 9vw, 130px); color: var(--cream); line-height: 0.92; }
.ph h1 span { color: var(--yellow); display: inline-block; transform: rotate(-1deg); }
.ph p { margin-top: 20px; font-size: 16px; color: rgba(253,250,245,0.65); max-width: 520px; line-height: 1.6; }

.pf-list { display: flex; flex-direction: column; }
.pf-row { display: grid; grid-template-columns: 1fr 1fr; min-height: 80vh; border-bottom: 3px solid var(--ink); }
.pf-row:nth-child(even) .pf-vis { order: 2; }
.pf-row:nth-child(even) .pf-det { order: 1; border-right: 3px solid var(--ink); border-left: none; }
.pf-vis { position: relative; overflow: hidden; min-height: 60vh; border-right: 3px solid var(--ink); }
.pf-vis-bg { position: absolute; inset: -120px -20px; background-size: cover; background-position: center; transition: transform 0.1s; }
.pf-vis-overlay { position: absolute; inset: 0; background: rgba(28,43,26,0.12); }
.pf-badge { position: absolute; top: 24px; left: 24px; z-index: 2; font-size: 11px; font-weight: 900; letter-spacing: 0.15em; text-transform: uppercase; padding: 7px 18px; background: var(--cream); border: 2.5px solid var(--ink); border-radius: 9999px; box-shadow: 2px 2px 0 var(--ink); transform: rotate(-2deg); }
.pf-det { padding: 64px; display: flex; flex-direction: column; justify-content: center; }
.pf-num { font-size: 11px; font-weight: 900; letter-spacing: 0.25em; text-transform: uppercase; color: var(--orange); margin-bottom: 12px; }
.pf-name { font-family: var(--D); font-size: clamp(56px, 7vw, 104px); line-height: 0.92; margin-bottom: 6px; }
.pf-route { font-size: 13px; font-weight: 700; color: rgba(28,43,26,0.45); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 32px; }
.pf-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 32px; }
.pf-stat { border: 2.5px solid var(--ink); padding: 16px 20px; border-radius: 16px; background: white; box-shadow: 3px 3px 0 var(--ink); }
.pf-stat .v { font-family: var(--D); font-size: 32px; line-height: 1; }
.pf-stat .k { font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(28,43,26,0.45); margin-top: 4px; }
.pf-desc { font-size: 15px; line-height: 1.75; color: rgba(28,43,26,0.6); margin-bottom: 32px; max-width: 420px; }
.pf-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 32px; }
.pf-tag { font-size: 12px; font-weight: 700; padding: 6px 16px; border: 2px solid var(--ink); border-radius: 9999px; transition: all 0.15s; }
.pf-tag:hover { background: var(--ink); color: var(--cream); transform: rotate(-1deg); }
.p-bleu .pf-name { color: var(--teal); } .p-bleu .pf-stat .v { color: var(--teal); }
.p-rouge .pf-name { color: var(--orange); } .p-rouge .pf-stat .v { color: var(--orange); }
.p-vert .pf-name { color: var(--green); } .p-vert .pf-stat .v { color: var(--green); }
.p-noir .pf-name { color: #1a2840; } .p-noir .pf-stat .v { color: #1a2840; }
.p-noir .pf-det { background:#f5f0ff; }

/* ═══════════════════════════════════ PAGE TRIBU ═══════════════════════════════════ */
.th { background: var(--yellow); padding: 80px 64px 60px; border-bottom: 3px solid var(--ink); }
.th h1 { font-family: var(--D); font-size: clamp(64px, 9vw, 130px); color: var(--ink); line-height: 0.92; }
.th h1 span { color: var(--teal); }
.th p { margin-top: 20px; font-size: 16px; color: rgba(28,43,26,0.6); max-width: 520px; line-height: 1.6; }

.pm { padding: 64px; display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: 240px 200px 220px; gap: 12px; }
.pm-c { border-radius: 20px; overflow: hidden; position: relative; border: 2.5px solid var(--ink); transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); }
.pm-c:nth-child(1) { grid-column:1/3; transform:rotate(-0.8deg); }
.pm-c:nth-child(3) { grid-column:3/5; transform:rotate(1.2deg); }
.pm-c:nth-child(4) { transform:rotate(-1.5deg); }
.pm-c:nth-child(5) { grid-column:2/4; }
.pm-c:nth-child(6) { transform:rotate(1.8deg); }
.pm-c:nth-child(7) { grid-column:1/3; grid-row:3; transform:rotate(0.6deg); }
.pm-c:nth-child(8) { grid-row:3; transform:rotate(-1.2deg); }
.pm-c:nth-child(9) { grid-row:3; transform:rotate(1.5deg); }
.pm-c:hover { transform: rotate(0deg) scale(1.04) !important; z-index: 5; box-shadow: 6px 6px 0 var(--ink); }
.pm-bg { width:100%; height:100%; background-size:cover; background-position:center; transition:transform 0.4s; }
.pm-c:hover .pm-bg { transform:scale(1.08); }
.pm-ov { position:absolute; inset:0; background:rgba(28,43,26,0.12); transition:background 0.3s; }
.pm-c:hover .pm-ov { background:rgba(248,196,98,0.15); }

.temo-s { padding: 0 64px 80px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; }
.tc { background: white; border: 2.5px solid var(--ink); border-radius: 24px; padding: 32px; box-shadow: 4px 4px 0 var(--ink); transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.25s; }
.tc:nth-child(2) { transform: translateY(16px); }
.tc:hover { transform: translateY(-6px) rotate(-0.5deg) !important; box-shadow: 6px 8px 0 var(--ink); }
.tc-qm { font-family: var(--D); font-size: 56px; color: var(--teal); line-height: 0.8; margin-bottom: 8px; }
.tc-txt { font-size: 15px; line-height: 1.7; font-style: italic; color: var(--ink); margin-bottom: 20px; }
.tc-who { font-weight: 900; font-size: 13px; color: var(--teal); }
.tc-inf { font-size: 12px; color: rgba(28,43,26,0.4); }

.team-s { background: var(--ink); padding: 100px 64px; position: relative; overflow: hidden; }
.team-s::before { content: '🤘'; position: absolute; top: 28px; right: 48px; font-size: 120px; opacity: 0.08; pointer-events: none; }
.team-s h2 { font-family: var(--D); font-size: clamp(40px, 5.5vw, 84px); color: var(--cream); margin-bottom: 56px; line-height: 1; text-align: center; position: relative; }
.team-s h2 span { color: var(--yellow); display: inline-block; transform: rotate(-2deg); }
.team-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 28px; max-width: 1200px; margin: 0 auto; }
.tm { background: var(--cream); border: 3px solid var(--ink); border-radius: 24px; padding: 34px 26px 28px; text-align: center; box-shadow: 6px 6px 0 var(--ink); position: relative; transition: transform 0.28s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.28s; }
.tm:nth-child(3n+1) { transform: rotate(-2deg); }
.tm:nth-child(3n+2) { transform: rotate(1.5deg); }
.tm:nth-child(3n+3) { transform: rotate(-1deg); }
.tm:hover { transform: rotate(0deg) translateY(-10px) scale(1.03); box-shadow: 10px 14px 0 var(--ink); z-index: 2; }
.tm-av { width: 132px; height: 132px; border-radius: 50%; margin: 0 auto 18px; border: 4px solid var(--teal); background-size: cover; background-position: center; background-color: var(--blue); box-shadow: 5px 5px 0 var(--ink); }
.tm:nth-child(3n+2) .tm-av { border-color: var(--orange); }
.tm:nth-child(3n+3) .tm-av { border-color: var(--green); }
.tm-name { font-family: var(--D); font-size: 32px; color: var(--ink); line-height: 1; }
.tm-role { display: inline-block; font-size: 11px; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cream); background: var(--orange); border: 2.5px solid var(--ink); border-radius: 9999px; padding: 6px 16px; margin: 12px 0 16px; transform: rotate(-2deg); box-shadow: 2px 2px 0 var(--ink); }
.tm:nth-child(3n+2) .tm-role { background: var(--teal); transform: rotate(2deg); }
.tm:nth-child(3n+3) .tm-role { background: var(--green); transform: rotate(-1deg); }
.tm-bio { font-size: 13.5px; line-height: 1.65; color: rgba(28,43,26,0.65); }

/* ═══════════════════════════════════ PAGE CANDIDATER ═══════════════════════════════════ */
.ch { padding: 80px 64px; background: var(--orange); border-bottom: 3px solid var(--ink); display: grid; grid-template-columns: 1fr 1fr; gap: 64px; position: relative; overflow: hidden; }
.ch::after { content: '→'; position: absolute; right: 64px; bottom: -20px; font-family: var(--D); font-size: 240px; color: rgba(253,250,245,0.08); pointer-events: none; line-height: 1; }
.ch h1 { font-family: var(--D); font-size: clamp(64px, 8vw, 120px); line-height: 0.92; color: var(--cream); position: relative; z-index: 1; }
.ch p { font-size: 16px; line-height: 1.75; color: rgba(253,250,245,0.8); margin-top: 20px; }
.ch-nota { margin-top: 24px; background: rgba(253,250,245,0.15); border: 2px solid rgba(253,250,245,0.3); padding: 16px 20px; border-radius: 16px; font-size: 14px; color: var(--cream); line-height: 1.6; }
.ch-nota strong { font-weight: 900; }
.dates { display: flex; flex-direction: column; gap: 10px; position: relative; z-index: 1; }
.date-r { background: rgba(253,250,245,0.15); border: 2.5px solid rgba(253,250,245,0.3); border-radius: 16px; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; transition: background 0.2s, transform 0.2s; }
.date-r:hover { background: rgba(253,250,245,0.25); transform: translateX(4px); }
.dn { font-family: var(--D); font-size: 26px; color: var(--cream); }
.dd { font-size: 13px; color: rgba(253,250,245,0.7); }
.ds { font-size: 12px; font-weight: 900; }
.ds.o { color: var(--yellow); } .ds.l { color: #ffd0a0; }

.cf-section { padding: 64px; }
.cf-section h2 { font-family: var(--D); font-size: 52px; color: var(--ink); margin-bottom: 40px; }
.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.fg { display: flex; flex-direction: column; gap: 8px; }
.fg.full { grid-column: 1/-1; }
.fg label { font-size: 12px; font-weight: 900; letter-spacing: 0.15em; text-transform: uppercase; color: var(--teal); }
.fg input, .fg select, .fg textarea { font-family: var(--B); font-size: 15px; padding: 14px 18px; background: white; border: 2.5px solid var(--ink); border-radius: 16px; color: var(--ink); outline: none; transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; appearance: none; width:100%; }
.fg input:focus, .fg select:focus, .fg textarea:focus { border-color: var(--teal); box-shadow: 4px 4px 0 var(--teal); transform: rotate(-0.3deg); }
.fg input::placeholder, .fg textarea::placeholder { color: rgba(28,43,26,0.3); }
.fg select option { background: white; }
.fg textarea { min-height: 120px; resize: vertical; }
.pp { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pp-o { padding: 16px; background: white; border: 2.5px solid rgba(28,43,26,0.15); border-radius: 16px; text-align: center; transition: all 0.2s; box-shadow: 3px 3px 0 rgba(28,43,26,0); }
.pp-o:hover { border-color: var(--ink); transform: translateY(-3px) rotate(-1deg); box-shadow: 4px 4px 0 var(--ink); }
.pp-o.sel { border-color: var(--teal); background: rgba(50,97,134,0.07); box-shadow: 3px 3px 0 var(--teal); }
.pp-n { font-family: var(--D); font-size: 28px; margin-bottom: 2px; }
.pp-l { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(28,43,26,0.45); }
.ff { grid-column: 1/-1; display: flex; justify-content: flex-end; align-items: center; gap: 20px; padding-top: 16px; }
.ff p { font-size: 13px; color: rgba(28,43,26,0.4); flex: 1; line-height: 1.5; }
.btn-submit { font-family: var(--B); font-size: 16px; font-weight: 900; padding: 18px 56px; background: var(--teal); color: var(--cream); border: 3px solid var(--ink); border-radius: 9999px; box-shadow: 5px 5px 0 var(--ink); transition: transform 0.2s, box-shadow 0.2s; }
.btn-submit:hover { transform: translate(-3px,-3px) rotate(-1deg); box-shadow: 8px 8px 0 var(--ink); }
.form-error { grid-column:1/-1; background:rgba(212,82,12,0.1); border:2px solid var(--orange); color:var(--orange); padding:14px 18px; border-radius:16px; font-weight:700; font-size:14px; }

/* ═══════════════════════════════════ FICHE PARCOURS (single) ═══════════════════════════════════ */
.trace-hero { position: relative; min-height: 62vh; display: flex; align-items: flex-end; padding: 64px; border-bottom: 3px solid var(--ink); overflow: hidden; }
.trace-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.trace-hero-ov { position: absolute; inset: 0; background: linear-gradient(to top, rgba(28,43,26,0.92) 0%, rgba(28,43,26,0.3) 60%, rgba(28,43,26,0.15) 100%); }
.trace-hero-inner { position: relative; z-index: 1; color: var(--cream); max-width: 900px; }
.trace-back { display: inline-block; font-size: 13px; font-weight: 800; color: var(--cream); border-bottom: 2px solid var(--yellow); padding-bottom: 2px; margin-bottom: 24px; }
.trace-badge { display: inline-block; font-size: 11px; font-weight: 900; letter-spacing: 0.15em; text-transform: uppercase; padding: 7px 18px; background: var(--cream); color: var(--ink); border: 2.5px solid var(--ink); border-radius: 9999px; box-shadow: 2px 2px 0 var(--ink); transform: rotate(-2deg); margin-bottom: 16px; }
.trace-num { font-size: 12px; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; color: var(--yellow); margin-bottom: 10px; }
.trace-name { font-family: var(--D); font-size: clamp(64px, 9vw, 150px); line-height: 0.88; color: var(--cream); }
.trace-route { font-size: 16px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(253,250,245,0.8); margin-top: 8px; }

.trace-statband { padding: 40px 64px; border-bottom: 3px solid var(--ink); }
.trace-statband .pf-stats { max-width: 1100px; margin: 0 auto; grid-template-columns: repeat(4, 1fr); }

.trace-main { display: grid; grid-template-columns: 1.6fr 1fr; gap: 56px; padding: 64px; align-items: start; }
.trace-content { font-size: 16px; line-height: 1.85; color: rgba(28,43,26,0.78); }
.trace-content > *:first-child { margin-top: 0; }
.trace-content h2 { font-family: var(--D); font-size: clamp(28px, 3vw, 42px); color: var(--ink); margin: 36px 0 14px; }
.trace-content h3 { font-family: var(--D); font-size: 24px; color: var(--teal); margin: 28px 0 10px; }
.trace-content p { margin-bottom: 18px; }
.trace-content ul, .trace-content ol { margin: 0 0 18px 22px; }
.trace-content li { margin-bottom: 8px; }
.trace-content img { width: 100%; border-radius: 16px; border: 2.5px solid var(--ink); margin: 24px 0; box-shadow: 5px 5px 0 var(--ink); }
.trace-content strong { color: var(--ink); }

.trace-aside { position: sticky; top: 80px; }
.trace-card { border: 2.5px solid var(--ink); border-radius: 20px; padding: 28px; background: white; box-shadow: 6px 6px 0 var(--ink); }
.trace-card h4 { font-family: var(--D); font-size: 24px; margin-bottom: 16px; }
.trace-card .pf-tags { margin: 0 0 20px; }
.trace-card .date-line { font-size: 14px; font-weight: 800; color: var(--teal); margin-bottom: 6px; }
.trace-card .status-line { font-size: 13px; font-weight: 900; margin-bottom: 20px; }
.trace-card .btn-a { display: block; text-align: center; }

.trace-gallery { padding: 0 64px 80px; }
.trace-gallery h2 { font-family: var(--D); font-size: clamp(32px, 4vw, 56px); color: var(--ink); margin-bottom: 28px; }
.trace-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.trace-gallery-grid .g { border-radius: 16px; overflow: hidden; border: 2.5px solid var(--ink); aspect-ratio: 4/3; box-shadow: 4px 4px 0 var(--ink); }
.trace-gallery-grid .g img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.trace-gallery-grid .g:hover img { transform: scale(1.06); }

/* ── Fiche parcours construite avec Elementor ── */
.trace-content .elementor img { border: 0; box-shadow: none; border-radius: 0; margin: 0; } /* laisse Elementor gérer ses images */
.trace-content .elementor { width: 100%; }
.trace-infoband { border-top: 3px solid var(--ink); background: var(--teal); color: var(--cream); }
.trace-infoband.p-bleu  { background: var(--teal); }
.trace-infoband.p-rouge { background: var(--orange); }
.trace-infoband.p-vert  { background: var(--green); }
.trace-infoband.p-noir  { background: var(--ink); }
.trace-infoband-inner { max-width: 1200px; margin: 0 auto; padding: 26px 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.ib-meta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 14px; }
.ib-label { font-family: var(--D); font-size: 18px; padding-right: 4px; }
.ib-date { font-weight: 800; }
.ib-status { font-weight: 900; }
.ib-tags { display: inline-flex; gap: 8px; flex-wrap: wrap; }
.trace-infoband .pf-tag { color: currentColor; border-color: currentColor; }
.trace-infoband .btn-a { background: var(--cream); color: var(--ink); flex-shrink: 0; }
.trace-infoband .btn-a:hover { background: #fff; }

/* Description en pleine largeur (centrée pour la lisibilité) */
.trace-body { padding: 56px 64px; }
.trace-body > .trace-content { max-width: 1140px; margin: 0 auto; }
.trace-body .elementor { max-width: 1140px; margin: 0 auto; }

/* ═══════════════════════════════════ PARTENAIRES (accueil) ═══════════════════════════════════ */
#partenaires { background: var(--cream); padding: 100px 64px; border-top: 3px solid var(--ink); position: relative; z-index: 1; }
.partners-head { max-width: 1500px; margin: 0 auto 56px; }
.partners-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; max-width: 1500px; margin: 0 auto; }
.partner-card { background: #fff; border: 2.5px solid var(--ink); border-radius: 20px; padding: 24px; box-shadow: 5px 5px 0 var(--ink); display: flex; flex-direction: column; transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.25s; }
.partner-card:hover { transform: translateY(-6px); box-shadow: 8px 10px 0 var(--ink); }
.partner-logo { display: flex; align-items: center; justify-content: center; height: 120px; border: 2px solid var(--ink); border-radius: 14px; background: var(--cream); margin-bottom: 18px; overflow: hidden; padding: 16px; }
.partner-logo img { max-height: 84px; max-width: 100%; width: auto; object-fit: contain; }
.partner-logo-text { font-family: var(--D); font-size: 28px; color: var(--teal); text-align: center; line-height: 1.1; }
.partner-name { font-family: var(--D); font-size: 26px; color: var(--ink); margin-bottom: 8px; }
.partner-desc { font-size: 14px; line-height: 1.65; color: rgba(28,43,26,0.6); flex: 1; }
.partner-link { margin-top: 16px; align-self: flex-start; font-size: 13px; font-weight: 900; letter-spacing: 0.05em; color: var(--orange); border-bottom: 2px solid var(--orange); padding-bottom: 2px; transition: color 0.2s, border-color 0.2s; }
.partner-link:hover { color: var(--ink); border-color: var(--ink); }

/* ═══════════════════════════════════ RESPONSIVE ═══════════════════════════════════ */
@media (max-width: 1024px){
  .hero-main, .esprit-inner, .ch { grid-template-columns: 1fr; gap: 40px; }
  .wc { transform: none !important; }
  .pf-row { grid-template-columns: 1fr; }
  .pf-row:nth-child(even) .pf-vis { order: 0; }
  .pf-row:nth-child(even) .pf-det { order: 0; border-right:none; }
  .pf-vis { min-height: 40vh; border-right:none; border-bottom:3px solid var(--ink); }
  .pm { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; grid-template-rows:none; }
  .pm-c { grid-column: auto !important; grid-row: auto !important; transform:none !important; }
  .temo-stack, .temo-s, .team-g { grid-template-columns: 1fr; }
  .temo-card, .tc { transform:none !important; margin:0 0 16px !important; }
  .tm { transform: none !important; }
  .pillar-card { margin-left: 0 !important; }
  .faq-cols { grid-template-columns: 1fr; }
  .faq-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .faq-head p { text-align: left; max-width: none; }
  footer.site-footer { grid-template-columns: 1fr 1fr; }
  .trace-main { grid-template-columns: 1fr; gap: 40px; }
  .trace-aside { position: static; }
  .trace-gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .trace-statband .pf-stats { grid-template-columns: 1fr 1fr; }
  .esprit-inner { gap: 40px; }
}
@media (max-width: 680px){
  #nav { padding: 0 18px; }
  .nav-links { display: none; position: absolute; top: 100%; left:0; right:0; background: var(--yellow); flex-direction: column; padding: 12px; border-bottom: 3px solid var(--ink); gap: 6px; }
  .nav-links.open { display: flex; }
  .nav-burger { display: block; }
  .hero-main, .hero-inner, #esprit, #parcours-teaser, #temo-section, #faq-section, #cta-final, #partenaires, .ph, .th, .pm, .temo-s, .team-s, .ch, .cf-section, footer.site-footer, .mf, .trace-hero, .trace-statband, .trace-main, .trace-body, .trace-gallery, .trace-infoband-inner { padding-left: 22px; padding-right: 22px; }
  .trace-gallery-grid { grid-template-columns: 1fr; }
  .trace-infoband-inner { flex-direction: column; align-items: flex-start; }
  .hero-content { padding-top: 100px; }
  .hero-strip-inner { grid-template-columns: repeat(2, 1fr); }
  .hero-stat2 { border-right: none; border-bottom: 3px solid var(--ink); padding: 16px 22px; }
  .hero-stat2:nth-child(odd) { border-right: 3px solid var(--ink); }
  .hero-stat2:nth-last-child(-n+1) { border-bottom: none; }
  .hero-color-block { display:none; }
  .fgrid, .pp, .pf-stats { grid-template-columns: 1fr; }
  .ff { flex-direction: column; align-items: stretch; }
  footer.site-footer { grid-template-columns: 1fr; gap: 32px; }
  .title-sticker { right: 0; top: -10px; }
  /* Masque les grosses décorations qui pourraient déborder/chevaucher sur mobile */
  #esprit::before, .ph::after, .ch::after, #temo-section::after, #cta-final::before, .hero-bg-letter { display: none; }
  /* Sections : on resserre un peu la hauteur sur mobile */
  #esprit, #parcours-teaser, #temo-section, #faq-section, #cta-final, .team-s { padding-top: 72px; padding-bottom: 72px; }
}

@media (max-width: 480px){
  .hero-inner, #esprit, #parcours-teaser, #temo-section, #faq-section, #cta-final, #partenaires, .ph, .th, .pm, .temo-s, .team-s, .ch, .cf-section, footer.site-footer, .mf, .trace-hero, .trace-statband, .trace-main, .trace-body, .trace-gallery, .trace-infoband-inner { padding-left: 16px; padding-right: 16px; }
  .hero-strip-inner, .trace-statband .pf-stats { grid-template-columns: 1fr; }
  .hero-stat2, .hero-stat2:nth-child(odd) { border-right: none; }
  .hero-content { padding-top: 84px; padding-bottom: 28px; }
  .pm { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .wild-grid { gap: 16px; }
  .cf-section h2, .trace-gallery h2 { font-size: clamp(34px, 11vw, 52px); }
}
