/* ============================================================
   Pages intérieures v2 : Identité, Parcours, Galerie, Contact
   Charge après v2.css (mêmes couleurs, polices, boutons).
   ============================================================ */
.v2{ --card:#FFFFFF; --shadow:0 1px 2px rgba(22,24,28,.06), 0 14px 32px -12px rgba(22,24,28,.18); --shadow-lg:0 1px 2px rgba(22,24,28,.06), 0 26px 48px -16px rgba(22,24,28,.26); }
.container{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.p-label{ font-weight:600; font-size:.98rem; color:var(--gold-ink); }
.p-hint{ display:inline-flex; align-items:center; gap:8px; font-size:.92rem; color:var(--ink-2); }

/* ============ EN-TÊTE DE PAGE : grand titre, puis une photo qui s'ouvre ============ */
.p-hero{ position:relative; padding:calc(var(--hdr) + clamp(48px, 7vw, 96px)) 0 0; }
.p-hero-grid{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(28px, 5vw, 80px); align-items:end; }
.p-hero h1{
  margin-top:1rem; font-weight:900; font-stretch:66%; text-transform:uppercase;
  font-size:clamp(3.2rem, 8.4vw, 8.6rem); line-height:1.04; letter-spacing:-.015em; max-width:11ch;
}
.p-hero h1 .ln{ display:block; overflow:hidden; padding-bottom:.04em; }
.p-hero h1 .ln-in{ display:inline-block; }
.p-hero .p-lead{ font-size:clamp(1.08rem, 1.45vw, 1.28rem); line-height:1.55; color:var(--ink-2); max-width:40ch; padding-bottom:.6em; }
.ph-media{ max-width:var(--maxw); margin:clamp(48px, 6vw, 80px) auto 0; padding-inline:var(--pad); }
.ph-frame{ position:relative; aspect-ratio:16/9; max-height:76svh; width:100%; overflow:hidden; border-radius:16px; box-shadow:var(--shadow-lg); }
.ph-frame img{ width:100%; height:100%; object-fit:cover; object-position:50% 0% !important; }

/* Galerie : une bande de photos qui défile toute seule */
.ph-strip{ margin-top:clamp(48px, 6vw, 80px); overflow:hidden; padding:10px 0 34px; }
.ph-strip-track{ display:flex; gap:16px; width:max-content; animation:strip 70s linear infinite; }
[dir=rtl] .ph-strip-track{ animation-name:strip-rtl; }
.ph-strip:hover .ph-strip-track{ animation-play-state:paused; }
.ph-strip img{ height:clamp(190px, 24vw, 330px); width:auto; border-radius:10px; box-shadow:var(--shadow); }
@keyframes strip{ to{ transform:translateX(-50%); } }
@keyframes strip-rtl{ to{ transform:translateX(50%); } }

/* Contact : le coach détouré à droite, comme sur l'accueil */
.p-hero:has(.ph-coach){ min-height:min(100svh, 980px); overflow:hidden; padding-bottom:clamp(48px, 8vh, 96px); display:flex; align-items:flex-end; }
.p-hero:has(.ph-coach) .p-hero-grid{ grid-template-columns:minmax(0,1fr); width:100%; }
.p-hero:has(.ph-coach) .p-hero-grid > *{ max-width:min(56%, 720px); position:relative; z-index:2; }
.ph-coach{ position:absolute; z-index:1; bottom:0; inset-inline-end:max(var(--pad), calc((100% - var(--maxw)) / 2 + var(--pad))); height:calc(100% - var(--hdr) - 3vh); aspect-ratio:593/1600; margin:0; }
.ph-coach img{ width:100%; height:100%; object-fit:contain; object-position:bottom; }
.ph-coach::before{ content:''; position:absolute; z-index:-1; inset:18% -60% 0; background:radial-gradient(50% 50% at 50% 60%, rgba(201,162,39,.20), rgba(201,162,39,0) 70%); }

/* ============ SECTIONS ============ */
.p-sec{ padding:clamp(88px, 10vw, 140px) 0; }
.p-sec.alt{ background:var(--paper-2); }
.p-sec.paper{ background:var(--paper); }
.p-head-block{ display:grid; gap:1rem; margin-bottom:clamp(36px, 4.5vw, 60px); }
.p-head-block p:not(.p-label):not(.p-hint){ color:var(--ink-2); font-size:1.08rem; max-width:60ch; }

/* Bloc texte + photo */
.p-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px, 6vw, 96px); align-items:center; }
.p-split.rev .p-media{ order:2; }
.p-media{ margin:0; position:relative; overflow:hidden; aspect-ratio:4/5; border-radius:8px; background:var(--paper-2); box-shadow:var(--shadow-lg); }
.p-media.wide{ aspect-ratio:4/3; }
.p-media img{ width:100%; height:100%; object-fit:cover; }
.p-text{ display:grid; gap:1.1rem; align-content:center; min-width:0; }
.p-text h2{ max-width:20ch; }
.p-text > p:not(.p-label):not(.p-season){ font-size:1.08rem; line-height:1.7; color:#33363C; max-width:54ch; }
.p-text .btn{ justify-self:start; margin-top:.4rem; }

/* Mots-clés : petites pastilles blanches en relief */
.p-tags{ display:flex; flex-wrap:wrap; gap:10px; margin-top:.4rem; }
.p-tags li{ font-size:.94rem; font-weight:500; padding:9px 16px; border-radius:999px; background:var(--card); box-shadow:0 1px 2px rgba(22,24,28,.06), 0 6px 14px -6px rgba(22,24,28,.16); }

/* ============ CARTES RETOURNABLES : blanc / noir en alternance, avec relief ============ */
.fgrid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:clamp(14px, 1.6vw, 22px); }
.fgrid.three{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.fcard{ position:relative; min-height:230px; perspective:1200px; cursor:pointer; outline:none; border-radius:14px; }
.fcard .flip-in{ position:relative; height:100%; min-height:inherit; transform-style:preserve-3d; transition:transform .8s cubic-bezier(.2,.75,.2,1); }
.fcard.is-flipped .flip-in{ transform:rotateY(180deg); }
@media (hover:hover) and (pointer:fine){ .fcard:not(.is-flipped):hover .flip-in{ transform:rotateY(180deg); } }
.fcard:focus-visible{ outline:2px solid var(--gold-ink); outline-offset:4px; }
.fcard .face{
  position:absolute; inset:0; padding:24px; border-radius:14px; overflow:hidden;
  display:flex; flex-direction:column; gap:12px; justify-content:flex-end;
  -webkit-backface-visibility:hidden; backface-visibility:hidden;
}
.fcard .front{ background:var(--card); box-shadow:var(--shadow); }
.fcard .front::before{ content:''; position:absolute; top:24px; inset-inline-start:24px; width:30px; height:3px; border-radius:2px; background:var(--gold); }
.fcard .front::after{
  content:''; position:absolute; top:18px; inset-inline-end:18px; width:20px; height:20px; opacity:.6;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A6A0C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-3-6.7L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3C/svg%3E");
}
.fcard .front h3{ font-weight:720; font-stretch:84%; font-size:1.32rem; line-height:1.15; }
.fcard .back{ background:var(--ink); color:#ECEAE4; transform:rotateY(180deg); justify-content:center; box-shadow:var(--shadow-lg); }
.fcard .back p{ font-size:1rem; line-height:1.55; }
.fcard.dark .front{ background:var(--ink); color:#F6F4EE; box-shadow:var(--shadow-lg); }
.fcard.dark .front::after{ filter:brightness(2.2); }
.fcard.dark .back{ background:var(--gold); color:var(--ink); }
/* Cartes « saison » : année en grand, écusson */
.fcard .f-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; }
.fcard .f-season{ font-weight:850; font-stretch:64%; font-size:2.3rem; line-height:1; color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.fcard.dark .f-season{ color:#E3C45C; }
.fcard .f-logo{ width:52px; height:52px; object-fit:contain; filter:drop-shadow(0 4px 8px rgba(22,24,28,.2)); }
.fcard.season .front::before{ display:none; }

/* ============ BANDE PHOTO ============ */
.p-band{ position:relative; margin:0; height:min(86svh, 820px); overflow:hidden; background:var(--ink); }
.p-band img{ width:100%; height:100%; object-fit:cover; transform:scale(1.2); }
.p-band figcaption{ position:absolute; inset:auto 0 0 0; padding:60px max(var(--pad), calc((100% - var(--maxw)) / 2 + var(--pad))) 26px; color:#F6F4EE; font-size:1rem; font-weight:500; background:linear-gradient(0deg, rgba(22,24,28,.7), rgba(22,24,28,0)); }

/* ============ PARCOURS ============ */
.p-feature{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(36px, 5vw, 80px); align-items:center; }
.p-feature .p-media{ aspect-ratio:5/4; }
.p-feature .p-media img{ object-position:38% 50%; }
.p-feature-top{ display:flex; align-items:center; gap:14px; }
.p-feature-top img{ width:56px; height:56px; object-fit:contain; filter:drop-shadow(0 4px 8px rgba(22,24,28,.2)); }
.p-feature h2{ font-size:clamp(2rem, 3.6vw, 3.2rem); max-width:20ch; }
.p-chapters{ display:grid; gap:clamp(80px, 9vw, 140px); }
.p-season{ font-weight:850; font-stretch:64%; font-size:clamp(2.6rem, 4.6vw, 4.2rem); line-height:.9; color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.p-chapters h3{ font-weight:720; font-stretch:84%; font-size:clamp(1.7rem, 2.6vw, 2.3rem); line-height:1.08; }
[dir=rtl] .p-season{ direction:ltr; text-align:right; }

/* Joueur international : une grille, plus de carrousel */
.pc-head .p-head-block{ margin-bottom:0; }
.pc-wrap{ max-width:var(--maxw); margin:clamp(36px, 4.5vw, 60px) auto 0; padding-inline:var(--pad); }
.pc-track{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:clamp(14px, 1.6vw, 22px); }
.pc-card{ position:relative; overflow:hidden; border-radius:14px; min-height:250px; display:flex; flex-direction:column; justify-content:flex-end; gap:8px; }
.pc-wide{ grid-column:span 2; aspect-ratio:1000/642; min-width:0; }
.pc-photo.pc-wide img{ object-position:50% 50%; }
.pc-photo{ background:var(--ink); box-shadow:var(--shadow-lg); }
.pc-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.pc-photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(22,24,28,.78), rgba(22,24,28,0) 50%); }
.pc-photo span{ position:relative; z-index:1; padding:0 22px 20px; color:#F6F4EE; font-weight:600; line-height:1.35; }
.pc-txt{ background:var(--card); padding:24px; box-shadow:var(--shadow); }
.pc-txt::before{ content:''; position:absolute; top:24px; inset-inline-start:24px; width:30px; height:3px; border-radius:2px; background:var(--gold); }
.pc-txt .s-k{ font-weight:850; font-stretch:64%; font-size:2rem; line-height:1.05; color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.pc-txt h3{ font-weight:720; font-stretch:84%; font-size:1.3rem; line-height:1.15; }
.pc-txt p{ color:var(--ink-2); font-size:.95rem; line-height:1.5; }
.pc-txt.dk{ background:var(--ink); box-shadow:var(--shadow-lg); }
.pc-txt.dk .s-k{ color:#E3C45C; } .pc-txt.dk h3{ color:#F6F4EE; } .pc-txt.dk p{ color:#CFCDC6; }

/* ============ GALERIE ============ */
.g-head{ display:grid; gap:.7rem; margin-bottom:clamp(28px, 4vw, 48px); }
#g-eb1, #g-eb2{ font-weight:600; font-size:.98rem; color:var(--gold-ink); }
.gcar{ position:relative; }
.gcar-track{ display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:10px 4px 36px; }
.gcar-track::-webkit-scrollbar{ display:none; }
.gslide{ flex:0 0 min(84vw, 640px); scroll-snap-align:center; margin:0; }
.gslide button, .gitem button{ all:unset; box-sizing:border-box; display:block; position:relative; width:100%; overflow:hidden; cursor:zoom-in; background:var(--ink); }
.gslide button{ aspect-ratio:3/2; border-radius:14px; box-shadow:var(--shadow-lg); }
.gslide img, .gitem img{ width:100%; display:block; transition:scale .8s var(--ease); }
.gslide img{ height:100%; object-fit:cover; object-position:50% 25%; }
.gslide button:hover img, .gitem button:hover img{ scale:1.05; }
.gslide .cap, .gitem .cap{ position:absolute; inset:auto 0 0 0; color:#F6F4EE; background:linear-gradient(transparent, rgba(22,24,28,.85)); }
.gslide .cap{ padding:3rem 1.4rem 1.1rem; font-weight:500; }
.gslide button:focus-visible, .gitem button:focus-visible, .gfilters button:focus-visible, .gdots button:focus-visible{ outline:2px solid var(--gold-ink); outline-offset:3px; }
.gcar-btn{
  position:absolute; top:42%; z-index:3; width:52px; height:52px; border-radius:50%; border:0; cursor:pointer;
  background:var(--card); color:var(--ink); font-size:1.8rem; line-height:1; box-shadow:var(--shadow-lg);
  transition:background-color .2s ease, scale .3s var(--ease);
}
.gcar-btn:hover{ background:var(--gold); scale:1.06; }
.gcar-btn.prev{ left:-10px; } .gcar-btn.next{ right:-10px; }
[dir=rtl] .gcar-btn.prev{ left:auto; right:-10px; } [dir=rtl] .gcar-btn.next{ right:auto; left:-10px; }

.gdots{ display:flex; justify-content:center; gap:8px; }
.gdots button{ position:relative; width:18px; height:4px; border-radius:2px; border:0; padding:0; background:#D6D1C6; cursor:pointer; transition:width .3s ease, background-color .3s ease; }
.gdots button::after{ content:''; position:absolute; inset:-12px -4px; }
.gdots button[aria-current=true]{ width:36px; background:var(--gold); }
.gfilters{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 1.8rem; }
.gfilters button{ font:500 .95rem/1 var(--f); min-height:44px; padding:0 20px; border-radius:999px; border:0; cursor:pointer; background:var(--card); color:var(--ink); box-shadow:0 1px 2px rgba(22,24,28,.06), 0 6px 14px -6px rgba(22,24,28,.16); transition:background-color .2s ease, color .2s ease; }
.gfilters button:hover{ background:#F3E7C0; }
.gfilters button[aria-pressed=true]{ background:var(--ink); color:#F6F4EE; }
.ggrid{ columns:3 260px; column-gap:16px; }
.gitem{ break-inside:avoid; margin:0 0 16px; }
.gitem button{ border-radius:12px; box-shadow:var(--shadow); }
.gitem .cap{ padding:2.4rem .95rem .8rem; font-size:.86rem; opacity:0; transform:translateY(8px); transition:opacity .3s ease, transform .3s ease; }
.gitem button:hover .cap, .gitem button:focus-visible .cap{ opacity:1; transform:none; }
@media (hover:none){ .gitem .cap{ opacity:1; transform:none; } }
.glb{ position:fixed; inset:0; z-index:2000; background:rgba(16,17,20,.94); display:flex; align-items:center; justify-content:center; padding:64px 16px 24px; }
.glb[hidden]{ display:none; }
.glb figure{ margin:0; max-width:min(1200px,100%); display:flex; flex-direction:column; align-items:center; gap:14px; }
.glb img{ max-width:100%; max-height:78vh; object-fit:contain; border-radius:10px; }
.glb figcaption{ color:#F6F4EE; display:flex; gap:16px; align-items:center; justify-content:center; flex-wrap:wrap; text-align:center; }
.glb .cnt{ color:#E3C45C; font-size:.88rem; }
.glb-x{ position:absolute; top:14px; right:16px; width:48px; height:48px; border-radius:50%; border:0; background:#F6F4EE; color:var(--ink); font-size:1.8rem; line-height:1; cursor:pointer; }
.glb-nav{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; border:0; background:var(--gold); color:var(--ink); font-size:1.8rem; line-height:1; cursor:pointer; }
.glb-l{ left:14px; } .glb-r{ right:14px; }
.glb button:focus-visible{ outline:2px solid #fff; outline-offset:3px; }

/* ============ CONTACT ============ */
.p-contact{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(40px, 6vw, 96px); align-items:start; }
.p-lines{ display:grid; gap:12px; }
.p-lines > div{ display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; align-items:baseline; padding:20px 22px; border-radius:14px; background:var(--card); box-shadow:var(--shadow); }
.p-lines dt{ font-size:.92rem; color:var(--ink-2); }
.p-lines dd{ font-weight:720; font-stretch:84%; font-size:1.3rem; overflow-wrap:anywhere; }
.p-lines dd a{ border-bottom:1.5px solid var(--gold); }
.p-lines dd a:hover{ color:var(--gold-ink); }
[dir=rtl] .p-lines dd a[dir=ltr]{ direction:ltr; display:inline-block; }
.p-contact .cv-btn{ margin-top:1.6rem; }
.p-form{ display:grid; gap:18px; padding:clamp(24px, 3.5vw, 44px); border-radius:18px; background:var(--card); box-shadow:var(--shadow-lg); }
.p-field{ display:grid; gap:8px; }
.p-field label{ font-weight:600; font-size:.94rem; }
.p-field input, .p-field textarea{
  width:100%; font:inherit; font-size:1rem; color:var(--ink); background:var(--paper);
  border:1.5px solid transparent; border-radius:10px; padding:14px 16px;
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.p-field textarea{ resize:vertical; min-height:150px; }
.p-field input:hover, .p-field textarea:hover{ border-color:rgba(22,24,28,.18); }
.p-field input:focus, .p-field textarea:focus{ outline:none; background:#fff; border-color:var(--gold-ink); box-shadow:0 0 0 4px rgba(201,162,39,.22); }
.p-form .btn{ justify-self:start; cursor:pointer; border:0; font-family:inherit; }
.p-note{ font-size:.9rem; color:var(--ink-2); }
.p-error{ font-size:.94rem; color:#9B2C1F; font-weight:500; }
.p-error:empty{ display:none; }

/* Ombre sur les écussons ronds/détourés du parcours de l'accueil réutilisée ici */
.p-media.badge{ display:grid; place-items:center; }
.p-media.duo{ display:flex; align-items:center; justify-content:center; gap:10%; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1100px){
  .fgrid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .pc-track{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media (max-width: 900px){
  .p-hero-grid, .p-split, .p-feature, .p-contact{ grid-template-columns:minmax(0,1fr); }
  .p-split.rev .p-media{ order:0; }
  .p-media{ aspect-ratio:4/3; }
  .fgrid, .fgrid.three{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .pc-track{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .ph-frame{ aspect-ratio:4/3; }
  .p-hero:has(.ph-coach){ min-height:0; display:block; padding-bottom:0; }
  .p-hero:has(.ph-coach) .p-hero-grid > *{ max-width:none; }
  .ph-coach{ position:relative; inset:auto; height:auto; width:min(56vw, 260px); margin:28px auto 0; display:block; }
  .p-band{ height:60svh; }
}
@media (max-width: 560px){
  .fgrid, .fgrid.three{ grid-template-columns:minmax(0,1fr); }
  .fcard{ min-height:190px; }
  .pc-track{ grid-template-columns:minmax(0,1fr); }
  .pc-wide{ grid-column:auto; min-height:0; }
  .p-lines > div{ grid-template-columns:minmax(0,1fr); gap:4px; }
  .p-form .btn, .p-contact .cv-btn{ width:100%; }
}
@media (prefers-reduced-motion: reduce){
  .ph-strip-track{ animation:none; }
  .ph-frame img, .p-media img, .p-band img{ transform:none; }
  .fcard .flip-in{ transition:none; }
}
[dir=rtl] .p-hero h1{ line-height:1.15; font-weight:800; font-size:clamp(2.8rem, 6.4vw, 6.4rem); }

/* Avant le lancement de l'animation, l'en-tête de page reste caché (repli après 3 s) */
.has-js:not(.v2-ready) .p-hero > *{ visibility:hidden; }
.p-success{ font-size:.98rem; font-weight:600; color:#2F6B3A; background:#E8F3EA; border-radius:10px; padding:12px 16px; }
.p-success:empty{ display:none; }
.p-form .btn:disabled{ opacity:.6; cursor:wait; }

/* ===== Écrans tactiles : retournement sans 3D (fondu), fiable sur tous les téléphones ===== */
.touch .fcard{ perspective:none; -webkit-tap-highlight-color:transparent; }
.touch .fcard .flip-in, .touch .fcard:hover .flip-in, .touch .fcard.is-flipped .flip-in{ transform:none !important; transform-style:flat; transition:none; }
.touch .fcard .face{ -webkit-backface-visibility:visible; backface-visibility:visible; transition:opacity .35s ease; }
.touch .fcard .back{ transform:none; opacity:0; visibility:hidden; pointer-events:none; }
.touch .fcard.is-flipped .back{ opacity:1; visibility:visible; pointer-events:auto; }
.touch .fcard.is-flipped .front{ opacity:0; visibility:hidden; pointer-events:none; }
@media (prefers-reduced-motion: reduce){ .touch .fcard .face{ transition:none; } }
