/* ============================================================
   Pages intérieures v12 (Identité, Parcours, Galerie, Contact)
   Charge après home.css : mêmes couleurs, mêmes boutons.
   ============================================================ */

/* L'ancien style masquait le contenu en attendant une animation : tout reste visible */
.home .reveal, .home .reveal-item{ opacity:1 !important; transform:none !important; }

.home .p-sec{ padding:clamp(72px, 9vw, 120px) 0; }
.home .p-sec.alt{ background:var(--stone-2); }
.home .p-sec.paper{ background:var(--paper); }
.home .p-head-block{ margin-bottom:clamp(32px, 4.5vw, 56px); display:grid; gap:1rem; }
.home .p-head-block p{ color:var(--muted); font-size:1.06rem; max-width:60ch; }
.home .p-label{ font-weight:600; font-size:.95rem; color:var(--gold-ink); }
.home .p-hint{ display:inline-flex; align-items:center; gap:8px; font-size:.92rem; color:var(--muted); }
.home .p-hint svg{ flex:none; }

/* ---------- En-tête de page ---------- */
.home .p-hero{
  padding:calc(var(--hdr) + clamp(56px, 8vw, 104px)) 0 clamp(48px, 6vw, 80px);
  border-bottom:1px solid var(--rule);
}
.home .p-hero-grid{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(32px, 6vw, 96px); align-items:end; }
.home .p-hero h1{
  font-family:var(--f-display); font-weight:600; color:var(--ink);
  font-size:clamp(2.5rem, 5.6vw, 4.6rem); line-height:1.02; letter-spacing:-.02em;
  margin-top:.8rem; max-width:16ch; text-wrap:balance;
}
.home .p-hero .p-lead{ font-size:clamp(1.05rem, 1.5vw, 1.22rem); line-height:1.6; color:var(--muted); max-width:46ch; }
.home .p-hero .p-lead::before{ content:''; display:block; width:48px; height:2px; background:var(--gold); margin-bottom:1.2rem; }

/* ---------- Bloc texte + photo ---------- */
.home .p-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px, 6vw, 96px); align-items:center; }
.home .p-split.rev .p-media{ order:2; }
.home .p-media{ margin:0; aspect-ratio:4/5; overflow:hidden; background:var(--stone-2); max-width:100%; }
.home .p-media.wide{ aspect-ratio:4/3; }
.home .p-media img{ width:100%; height:100%; object-fit:cover; }
.home .p-media.badge{ background:var(--graphite); display:grid; place-items:center; }
.home .p-media.badge img{ width:34%; height:auto; object-fit:contain; }
.home .p-text{ display:grid; gap:1.1rem; align-content:center; min-width:0; }
.home .p-text h2{ max-width:20ch; }
.home .p-text p{ font-size:1.06rem; line-height:1.7; color:#3c3f45; max-width:56ch; }
.home .p-text .h-btn{ justify-self:start; margin-top:.6rem; }

/* ---------- Mots-clés ---------- */
.home .p-tags{ list-style:none; margin:.4rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.home .p-tags li{ font-size:.92rem; font-weight:500; color:var(--ink); padding:8px 14px; border:1px solid var(--rule); background:var(--paper); }

/* ---------- Cartes retournables ---------- */
.home .fgrid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.home .fgrid.three{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.home .fcard{ position:relative; min-height:210px; perspective:1200px; cursor:pointer; outline:none; }
.home .fcard .flip-in{
  position:relative; height:100%; min-height:inherit;
  transform-style:preserve-3d; transition:transform .7s cubic-bezier(.2,.75,.2,1);
}
.home .fcard:hover .flip-in, .home .fcard:focus-visible .flip-in, .home .fcard.is-flipped .flip-in{ transform:rotateY(180deg); }
.home .fcard .face{
  position:absolute; inset:0; padding:22px 22px 20px;
  display:flex; flex-direction:column; gap:12px;
  -webkit-backface-visibility:hidden; backface-visibility:hidden;
}
.home .fcard .face{ border-radius:12px !important; box-shadow:none !important; overflow:hidden; text-align:start; align-items:stretch; }
.home .fcard .front{ background:var(--paper); border:1px solid var(--rule); justify-content:flex-end; }
.home .fcard .front::before{ content:''; position:absolute; top:22px; inset-inline-start:22px; width:28px; height:2px; background:var(--gold); }
.home .fcard .front::after{
  content:''; position:absolute; top:16px; inset-inline-end:16px; width:18px; height:18px; opacity:.55;
  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='%237a600f' 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");
}
.home .fcard .front h3{ margin:0; font-family:var(--f-display); font-weight:600; font-size:1.22rem; line-height:1.2; color:var(--ink); }
.home .fcard .back{ background:var(--graphite); color:#ecebe6; transform:rotateY(180deg); justify-content:center; }
.home .fcard .back p{ margin:0; font-size:.98rem; line-height:1.55; color:#ecebe6; }
.home .fcard:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
/* Variante sombre : face avant graphite, dos clair */
.home .fcard.dark .front{ background:var(--graphite); border-color:var(--graphite); }
.home .fcard.dark .front h3{ color:#f6f4ee; }
.home .fcard.dark .back{ background:var(--paper); border:1px solid var(--gold); }
.home .fcard.dark .back p{ color:var(--ink); }
/* Carte « saison » : année, écusson, titre */
.home .fcard .f-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; }
.home .fcard .f-season{ font-family:var(--f-display); font-weight:700; font-size:1.7rem; line-height:1; color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.home .fcard.dark .f-season{ color:#e3c45c; }
.home .fcard .f-logo{ width:44px; height:44px; object-fit:contain; }
.home .fcard.season .front{ justify-content:space-between; }
.home .fcard.season .front::before{ display:none; }

/* ---------- Bandeau photo ---------- */
.home .p-band{ position:relative; margin:0; height:clamp(260px, 42vw, 520px); overflow:hidden; background:var(--graphite); }
.home .p-band img{ width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.home .p-band figcaption{
  position:absolute; inset:auto 0 0 0; padding:40px max(16px, var(--pad)) 18px;
  color:#f6f4ee; font-size:.95rem; background:linear-gradient(0deg, rgba(22,24,28,.75), rgba(22,24,28,0));
}

/* ---------- Distinction (Parcours) ---------- */
.home .p-feature{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(32px, 5vw, 80px); align-items:center; }
.home .p-feature .p-media{ aspect-ratio:5/4; }
.home .p-feature .p-media img{ object-position:38% 50%; }
.home .p-feature-top{ display:flex; align-items:center; gap:14px; }
.home .p-feature-top img{ width:52px; height:52px; object-fit:contain; }
.home .p-feature h2{ font-size:clamp(1.8rem, 3.2vw, 2.7rem); max-width:22ch; }

/* ---------- Chapitres (Parcours) ---------- */
.home .p-chapters{ list-style:none; margin:0; padding:0; display:grid; gap:clamp(56px, 7vw, 96px); }
.home .p-chapters .p-split{ align-items:center; }
.home .p-chapters .p-season{ font-family:var(--f-display); font-weight:700; font-size:clamp(1.8rem, 3vw, 2.4rem); line-height:1; color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.home .p-chapters h3{ margin:0; font-family:var(--f-display); font-weight:600; color:var(--ink); font-size:clamp(1.6rem, 2.6vw, 2.2rem); line-height:1.12; }

/* ---------- Carrière de joueur ---------- */
.home .p-stats{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid var(--rule); }
.home .p-stats li{ padding:24px 24px 24px 0; border-bottom:1px solid var(--rule); display:grid; gap:6px; align-content:start; }
.home .p-stats li:not(:nth-child(3n+1)){ padding-inline-start:24px; border-inline-start:1px solid var(--rule); }
.home .p-stats .s-k{ font-family:var(--f-display); font-weight:700; font-size:1.5rem; line-height:1.1; color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.home .p-stats h3{ margin:0; font-family:var(--f-display); font-weight:600; font-size:1.18rem; color:var(--ink); }
.home .p-stats p{ margin:0; color:var(--muted); font-size:.95rem; }

/* ---------- Galerie ---------- */
.home .gcar-track{ gap:14px; padding:4px 2px 18px; }
.home .gslide{ flex-basis:min(86vw, 620px); }
.home .gslide button{ border-radius:0; box-shadow:none; aspect-ratio:3/2; background:var(--graphite); }
.home .gslide .cap{ font-size:.98rem; padding:3rem 1.2rem 1rem; }
.home .gcar-btn{ width:48px; height:48px; border-radius:0; background:var(--paper); color:var(--ink); border:1px solid var(--rule); box-shadow:none; }
.home .gcar-btn:hover{ background:var(--gold); border-color:var(--gold); }
.home .gcar-btn.prev{ left:-8px; } .home .gcar-btn.next{ right:-8px; }
[dir=rtl] .home .gcar-btn.prev{ left:auto; right:-8px; } [dir=rtl] .home .gcar-btn.next{ right:auto; left:-8px; }
.home .gdots button{ border-radius:0; height:3px; width:18px; background:var(--rule); }
.home .gdots button[aria-current=true]{ width:32px; background:var(--gold); }
.home .gdots button{ position:relative; }
.home .gdots button::after{ content:''; position:absolute; inset:-12px -4px; }
.home .gfilters{ margin:0 0 1.6rem; gap:8px; }
.home .gfilters button{ border-radius:0; padding:10px 16px; font-weight:500; background:var(--paper); border-color:var(--rule); color:var(--ink); min-height:44px; }
.home .gfilters button:hover{ background:var(--stone); border-color:var(--graphite); }
.home .gfilters button[aria-pressed=true]{ background:var(--graphite); color:#f6f4ee; border-color:var(--graphite); }
.home .ggrid{ columns:3 260px; column-gap:12px; }
.home .gitem{ margin:0 0 12px; }
.home .gitem button{ border-radius:0; background:var(--stone-2); }
.home .gitem .cap{ font-size:.85rem; }
.home #g-eb1, .home #g-eb2{ font-weight:600; font-size:.95rem; color:var(--gold-ink); }
.home .g-head{ display:grid; gap:.6rem; margin-bottom:clamp(28px, 4vw, 44px); }

/* ---------- Contact ---------- */
.home .p-contact{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(40px, 6vw, 96px); align-items:start; }
.home .p-lines{ margin:0; border-top:1px solid var(--rule); }
.home .p-lines > div{ display:grid; grid-template-columns:120px minmax(0,1fr); gap:16px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--rule); }
.home .p-lines dt{ font-size:.92rem; color:var(--muted); }
.home .p-lines dd{ margin:0; font-family:var(--f-display); font-weight:600; font-size:1.25rem; color:var(--ink); overflow-wrap:anywhere; }
.home .p-lines dd a{ border-bottom:1px solid var(--rule); }
.home .p-lines dd a:hover{ border-bottom-color:var(--gold); color:var(--gold-ink); }
.home .p-contact .cv-btn{ margin-top:2rem; }
.home .p-form{ display:grid; gap:18px; background:var(--paper); border:1px solid var(--rule); padding:clamp(22px, 3.5vw, 40px); }
.home .p-field{ display:grid; gap:8px; }
.home .p-field label{ font-weight:600; font-size:.92rem; color:var(--ink); }
.home .p-field input, .home .p-field textarea{
  width:100%; font:inherit; font-size:1rem; color:var(--ink);
  background:#fff; border:1px solid rgba(38,41,46,.28); padding:13px 14px; border-radius:0;
}
.home .p-field textarea{ resize:vertical; min-height:140px; }
.home .p-field input:focus, .home .p-field textarea:focus{ outline:2px solid var(--gold); outline-offset:1px; border-color:var(--graphite); }
.home .p-form .h-btn{ justify-self:start; cursor:pointer; }
.home .p-note{ font-size:.9rem; color:var(--muted); }
.home .p-error{ font-size:.92rem; color:#9b2c1f; font-weight:500; }
.home .p-error:empty{ display:none; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px){
  .home .fgrid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media (max-width: 900px){
  .home .p-hero-grid, .home .p-split, .home .p-feature, .home .p-contact{ grid-template-columns:minmax(0,1fr); }
  .home .p-split.rev .p-media{ order:0; }
  .home .p-media{ aspect-ratio:4/3; }
  .home .fgrid, .home .fgrid.three{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .home .p-stats{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .home .p-stats li:not(:nth-child(3n+1)){ padding-inline-start:0; border-inline-start:0; }
  .home .p-stats li:nth-child(even){ padding-inline-start:20px; border-inline-start:1px solid var(--rule); }
}
@media (max-width: 560px){
  .home .fgrid, .home .fgrid.three{ grid-template-columns:minmax(0,1fr); }
  .home .fcard{ min-height:180px; }
  .home .p-stats{ grid-template-columns:minmax(0,1fr); }
  .home .p-stats li:nth-child(even){ padding-inline-start:0; border-inline-start:0; }
  .home .p-lines > div{ grid-template-columns:minmax(0,1fr); gap:4px; }
  .home .p-form .h-btn, .home .p-contact .cv-btn{ width:100%; }
}
@media (prefers-reduced-motion: reduce){
  .home .fcard .flip-in{ transition:none; }
}
.home .p-media.duo{ display:flex; align-items:center; justify-content:center; gap:10%; }
.home .p-media.duo img{ width:24%; }

/* ---------- Carrousel « Joueur international » (Parcours) ---------- */
.home .pc-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.home .pc-head .p-head-block{ margin-bottom:0; }
.home .pc-nav{ display:flex; gap:8px; }
.home .pc-btn{
  width:48px; height:48px; display:grid; place-items:center; cursor:pointer;
  background:var(--paper); color:var(--ink); border:1px solid var(--rule);
  transition:background-color .2s ease, border-color .2s ease;
}
.home .pc-btn:hover:not(:disabled){ background:var(--gold); border-color:var(--gold); }
.home .pc-btn:disabled{ opacity:.35; cursor:default; }
.home .pc-btn:focus-visible, .home .pc-track:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
[dir=rtl] .home .pc-btn svg{ transform:scaleX(-1); }
.home .pc-wrap{ margin-top:clamp(32px, 4vw, 48px); }
.home .pc-track{
  list-style:none; margin:0; display:flex; gap:14px; overflow-x:auto;
  scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch;
  padding:4px max(var(--pad), calc((100% - var(--maxw)) / 2 + var(--pad))) 8px;
  scroll-padding-inline:max(var(--pad), calc((100% - var(--maxw)) / 2 + var(--pad)));
}
.home .pc-track::-webkit-scrollbar{ display:none; }
.home .pc-card{
  flex:0 0 min(74vw, 270px); min-height:clamp(320px, 34vw, 400px); scroll-snap-align:start;
  position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; gap:8px;
}
.home .pc-wide{ flex-basis:min(88vw, 560px); }
.home .pc-photo{ background:var(--graphite); }
.home .pc-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 20%; }
.home .pc-photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(22,24,28,.8) 0%, rgba(22,24,28,0) 45%); }
.home .pc-photo span{ position:relative; z-index:1; padding:0 20px 18px; color:#f6f4ee; font-weight:500; font-size:.98rem; line-height:1.4; }
.home .pc-txt{ background:var(--paper); border:1px solid var(--rule); padding:22px; }
.home .pc-txt::before{ content:''; position:absolute; top:22px; inset-inline-start:22px; width:28px; height:2px; background:var(--gold); }
.home .pc-txt .s-k{ font-family:var(--f-display); font-weight:700; font-size:1.7rem; line-height:1.05; color:var(--gold-ink); font-variant-numeric:tabular-nums; }
.home .pc-txt h3{ margin:0; font-family:var(--f-display); font-weight:600; font-size:1.25rem; line-height:1.2; color:var(--ink); }
.home .pc-txt p{ margin:0; color:var(--muted); font-size:.95rem; line-height:1.5; }
.home .pc-txt.dk{ background:var(--graphite); border-color:var(--graphite); }
.home .pc-txt.dk .s-k{ color:#e3c45c; }
.home .pc-txt.dk h3{ color:#f6f4ee; }
.home .pc-txt.dk p{ color:#cfcdc6; }
@media (hover:none){ .home .pc-nav{ display:none; } }

/* Angles arrondis : cartes retournables et cartes du carrousel joueur */
.home .fcard{ border-radius:12px; }
.home .fcard:focus-visible{ outline-offset:4px; }
.home .pc-card{ border-radius:12px; }
