/* FOOT FACTORY — NOS ATHLÈTES */

/* ------------------------------------------------------------ TITRE HERO */
.page-hero__inner:has(.ath-title) { max-width: 78rem; }
.ath-title { font-size: clamp(2rem, 1rem + 5vw, 6rem); }
.ath-title__nowrap { white-space: nowrap; }

.ath-grid { display: grid; gap: clamp(.6rem, 1.2vw, 1.1rem); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .ath-grid { grid-template-columns: repeat(4, 1fr); } }
.ath-grid .athlete { scroll-margin-top: 7rem; }
.athlete--pending { display: grid; place-items: center; background: linear-gradient(160deg, var(--ff-ink-700, #16161b), var(--ff-ink-800)); }
.athlete__initials { font-family: var(--font-display); font-weight: 600; font-size: clamp(3rem, 2rem + 4vw, 5rem); color: var(--ff-bone-28); letter-spacing: var(--ls-mega); }

/* Photos et matchdays : grilles légères, agrandissement au clic */
.shots { display: grid; gap: clamp(.5rem, 1vw, .9rem); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .shots { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .shots { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 700px) { .shots--md { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1100px) { .shots--md { grid-template-columns: repeat(6, 1fr); } }
.shot {
  position: relative; display: block; overflow: hidden; cursor: zoom-in;
  border-radius: var(--r-sm); background: var(--ff-ink-800); aspect-ratio: 3 / 4;
}
.shots--md .shot { aspect-ratio: 9 / 16; }
.shot img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease); }
.shot:hover img { transform: scale(1.05); }
.shot::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,5,7,.85), rgba(5,5,7,0) 40%); pointer-events: none; }
.shot:focus-visible { outline: 2px solid var(--ff-bone); outline-offset: 3px; }
.shot__caption {
  position: absolute; z-index: 1; inset-inline: var(--s3); inset-block-end: var(--s3);
  font-family: var(--font-display); font-weight: 600; text-transform: uppercase;
  font-size: var(--fs-sm); line-height: 1.1;
}
.shots--md .shot__caption { font-size: var(--fs-xs); letter-spacing: var(--ls-wide); color: var(--ff-bone-80); }

/* ---------------------------------------------------------- LIFESTYLE */
.life { display: grid; gap: clamp(2rem, 1.4rem + 3vw, 4.5rem); align-items: center; }
@media (min-width: 960px) { .life { grid-template-columns: .9fr 1.1fr; } }
.life__intro { display: flex; flex-direction: column; gap: var(--s5); align-items: flex-start; }
.life__grid {
  display: grid; gap: clamp(.6rem, 1.2vw, 1.1rem);
  grid-template-columns: 1.15fr 1fr; grid-template-rows: repeat(2, auto);
}
.life__card {
  position: relative; overflow: hidden; border-radius: var(--r-md);
  aspect-ratio: 4 / 5; background: var(--ff-ink-800);
}
.life__card--tall { grid-row: span 2; aspect-ratio: auto; }
.life__card img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease); }
.life__card:hover img { transform: scale(1.05); }
.life__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,5,7,.75), transparent 45%); }
.life__label {
  position: absolute; z-index: 1; inset-inline: var(--s4); inset-block-end: var(--s4);
  font-family: var(--font-display); font-weight: 600; text-transform: uppercase; font-size: var(--fs-sm);
}

.ath-choice--gestion .ath-choice__media img { object-position: 50% 10%; }
