:root{
  --ink:#172033;
  --muted:#637083;
  --line:#e6e9ee;
  --soft:#f5f7fa;
  --accent:#1d4f91;
  --accent-dark:#153a6a;
  --white:#fff;
  --max:1160px;
  --shadow:0 16px 40px rgba(23,32,51,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.65}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{text-decoration:none;font-weight:750;font-size:1.25rem;letter-spacing:.01em}
.brand span{color:var(--accent)}
.menu{display:flex;gap:6px;align-items:center}
.menu a{text-decoration:none;padding:10px 14px;border-radius:999px;color:#425067;font-weight:600;font-size:.95rem}
.menu a:hover,.menu a.active{background:var(--soft);color:var(--accent)}
.hero{padding:70px 0 58px;background:linear-gradient(180deg,#f8fafc 0%,#fff 100%)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:64px}
.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:800;color:var(--accent);margin:0 0 12px}
h1{font-size:clamp(2.5rem,5vw,4.9rem);line-height:1.02;letter-spacing:-.045em;margin:0 0 22px}
.lead{font-size:1.18rem;color:var(--muted);max-width:650px;margin:0 0 30px}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;text-decoration:none;border-radius:12px;padding:12px 18px;font-weight:750;border:1px solid var(--accent);background:var(--accent);color:#fff}
.btn:hover{background:var(--accent-dark)}
.btn.alt{background:#fff;color:var(--accent)}
.hero-photo{border-radius:24px;overflow:hidden;box-shadow:var(--shadow);min-height:520px;background:#ddd}
.hero-photo img{width:100%;height:100%;min-height:520px;object-fit:cover;object-position:center 34%}
.section{padding:72px 0}
.section.soft{background:var(--soft)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}
.section h2,.page-head h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.08;letter-spacing:-.035em;margin:0}
.section-head p{max-width:560px;color:var(--muted);margin:0}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.card{border:1px solid var(--line);border-radius:18px;padding:28px;background:#fff;box-shadow:0 8px 26px rgba(23,32,51,.05)}
.card h3{margin:0 0 9px;font-size:1.3rem}
.card p{margin:0;color:var(--muted)}
.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.preview-grid{align-items:start}
.preview-grid img{width:100%;height:auto;object-fit:contain;border-radius:16px;background:#eef1f5}
.page-head{padding:56px 0 36px;background:var(--soft);border-bottom:1px solid var(--line)}
.page-head p{max-width:750px;color:var(--muted);margin:12px 0 0;font-size:1.05rem}
.bio-layout{display:grid;grid-template-columns:320px 1fr;gap:50px;align-items:start}
.bio-photo{position:sticky;top:102px}
.bio-photo img{border-radius:18px;box-shadow:var(--shadow);width:100%}
.bio-content section{padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid var(--line)}
.bio-content section:last-child{border-bottom:0}
.bio-content h2{font-size:1.55rem;margin:0 0 12px}
.clean-list{padding-left:1.2rem;margin:0}
.clean-list li{margin:.48rem 0}
.note{margin-top:28px;padding:15px 18px;border-left:4px solid var(--accent);background:var(--soft);color:#59667a;font-size:.93rem}
.gallery{columns:3 300px;column-gap:14px}
.gallery-item{display:block;width:100%;border:0;padding:0;border-radius:14px;overflow:hidden;background:#eee;position:relative;margin:0 0 14px;break-inside:avoid;cursor:pointer;text-align:inherit}
.gallery img{width:100%;height:auto;object-fit:contain;transition:transform .25s ease,filter .25s ease}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.025);filter:brightness(.93)}
.gallery-item:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.lightbox{position:fixed;inset:0;background:rgba(6,11,20,.93);z-index:100;display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1200px,92vw);max-height:88vh;object-fit:contain;border-radius:8px}
.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.7rem;width:48px;height:48px;border-radius:50%;cursor:pointer}
.lightbox .close{top:20px;right:20px}
.lightbox .prev{left:20px;top:50%;transform:translateY(-50%)}
.lightbox .next{right:20px;top:50%;transform:translateY(-50%)}
.site-footer{border-top:1px solid var(--line);padding:26px 0;color:var(--muted);font-size:.92rem}
.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
@media (max-width:900px){.hero-grid,.bio-layout{grid-template-columns:1fr}.hero-photo{min-height:400px}.hero-photo img{min-height:400px}.bio-photo{position:static;max-width:380px}}
@media (max-width:640px){.wrap{width:min(100% - 28px,var(--max))}.nav{min-height:auto;padding:16px 0;align-items:flex-start;flex-direction:column;gap:10px}.menu{width:100%;justify-content:space-between}.menu a{padding:7px 9px;font-size:.9rem}.hero{padding-top:42px}.hero-grid{gap:30px}.hero-photo,.hero-photo img{min-height:340px}.section{padding:52px 0}.cards,.preview-grid{grid-template-columns:1fr}.page-head{padding:40px 0 30px}}

/* Compléments page d'accueil */
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.fact{border-top:3px solid var(--accent);padding:22px 20px 24px;background:#fff;border-radius:0 0 16px 16px;box-shadow:0 8px 26px rgba(23,32,51,.05)}
.fact strong{display:block;color:var(--accent);font-size:1.7rem;line-height:1;margin-bottom:14px}
.fact h3{margin:0 0 9px;font-size:1.12rem}
.fact p{margin:0;color:var(--muted);font-size:.96rem}
.split-content{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.split-content h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.08;letter-spacing:-.035em;margin:0}
.prose p{margin:0 0 18px;color:#425067;font-size:1.05rem}
.cards.three{grid-template-columns:repeat(3,1fr)}
.history-strip{margin-top:24px;border:1px solid var(--line);border-radius:16px;padding:20px 22px;background:var(--soft)}
.history-strip p{margin:0;color:#536176}
@media (max-width:1000px){.facts-grid{grid-template-columns:repeat(2,1fr)}.cards.three{grid-template-columns:1fr}.split-content{grid-template-columns:1fr;gap:28px}}
@media (max-width:640px){.facts-grid{grid-template-columns:1fr}}

/* Version enrichie : actualité et photographies récentes */
.hero-photo-current{position:relative}
.hero-photo figcaption,.current-photo figcaption{font-size:.78rem;color:#748094;padding:8px 12px;background:#fff;border-top:1px solid var(--line)}
.hero-photo-current img{object-position:center 24%}
.facts-grid.facts-five{grid-template-columns:repeat(5,1fr)}
.current-section{background:#fff}
.current-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.current-photo{margin:0;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);background:#eef1f5}
.current-photo img{width:100%;height:auto;object-fit:contain}
.current-copy h2{font-size:clamp(2rem,4vw,3.35rem);line-height:1.08;letter-spacing:-.035em;margin:0 0 18px}
.current-copy>p:not(.kicker){font-size:1.06rem;color:#4c596d;margin:0 0 26px}
.mini-facts{display:grid;gap:10px}
.mini-facts div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--line)}
.mini-facts strong{color:var(--accent)}
.mini-facts span{color:#566377}
.bio-intro{font-size:1.08rem;color:#425067;margin-top:0}
.bio-now{border-bottom:0!important;background:var(--soft);padding:24px!important;border-radius:18px}
.bio-now-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.bio-now-grid div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.bio-now-grid strong,.bio-now-grid span{display:block}
.bio-now-grid strong{margin-bottom:4px;color:var(--accent)}
.bio-now-grid span{color:#617086;font-size:.93rem}
.gallery-note{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:0 0 24px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.gallery-note strong{color:var(--accent)}
.gallery-note span{color:#647185;font-size:.92rem;text-align:right;max-width:680px}
@media (max-width:1100px){.facts-grid.facts-five{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.current-grid{grid-template-columns:1fr}.current-photo{max-width:760px}.gallery-note{align-items:flex-start;flex-direction:column}.gallery-note span{text-align:left}.facts-grid.facts-five{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.facts-grid.facts-five{grid-template-columns:1fr}.bio-now-grid{grid-template-columns:1fr}.mini-facts div{grid-template-columns:1fr;gap:2px}}


/* Réseaux sociaux */
.social-links{display:flex;align-items:center;gap:10px}
.social-link{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);border-radius:999px;background:#fff;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.social-link:hover{transform:translateY(-1px);border-color:#cfd6df;box-shadow:0 10px 24px rgba(23,32,51,.08)}
.social-link img{width:20px;height:20px}
@media (max-width:640px){.footer-row{justify-content:center;text-align:center}.social-links{order:3;width:100%;justify-content:center}}

/* Repères - version six dates */
.facts-grid.facts-six{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.facts-grid.facts-six{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.facts-grid.facts-six{grid-template-columns:1fr}}

/* Nouvelle galerie photo */
.gallery-intro{max-width:760px;margin:0 0 28px;color:var(--muted);font-size:1.02rem}
.gallery-intro p{margin:0}
.hero-photo-current img{object-position:center 25%}


/* Galerie optimisée Firefox : miniatures locales légères et dimensions réservées */
.gallery img{display:block;width:100%;height:auto;background:#eef1f5}
.gallery-item{min-height:1px}


/* Protection légère des copies web : ne remplace pas une vraie protection serveur */
.protected-photo{-webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}


/* V10 — accueil : aucune image recadrée */
.hero-photo{
  min-height:0;
  width:100%;
  max-width:520px;
  justify-self:end;
  background:#eef1f5;
}
.hero-photo img,
.current-photo img,
.preview-grid img{
  width:100%;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center !important;
}
.current-photo{
  overflow:hidden;
}

/* Téléphone / tablette en portrait : images entières et largeur raisonnable */
@media (max-width:900px){
  .hero-photo{
    max-width:460px;
    justify-self:center;
  }
  .current-photo{
    width:100%;
    max-width:650px;
    margin-inline:auto;
  }
}

/* Téléphone en paysage : priorité à la lisibilité, sans chevauchement */
@media (min-width:641px) and (max-width:900px) and (orientation:landscape){
  .hero{padding:34px 0 42px}
  .hero-grid{
    grid-template-columns:1fr;
    gap:28px;
    align-items:start;
  }
  .hero-grid>div,
  .hero-grid>figure{
    min-width:0;
    width:100%;
  }
  .hero .lead{
    max-width:none;
    overflow-wrap:anywhere;
  }
  .hero-photo{
    width:min(100%,420px);
    max-width:420px;
    justify-self:center;
  }
  .current-grid{
    grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);
    gap:32px;
    align-items:center;
  }
  .current-grid>*{min-width:0}
  .current-photo{
    width:100%;
    max-width:440px;
    margin:0;
  }
  .preview-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
  }
  .preview-grid img{
    width:100%;
    height:auto!important;
    object-fit:contain!important;
  }
  .section{padding:48px 0}
}

/* Petit téléphone en portrait */
@media (max-width:640px){
  .hero-photo{
    max-width:420px;
    justify-self:center;
  }
}

/* Sécurité Safari / Firefox : les contenus de grille peuvent réellement rétrécir */
.hero-grid>* , .current-grid>* , .split-content>*{min-width:0}


/* V12 — mise en valeur du marathon de Berlin */
.sport-performance{margin-top:24px;display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(23,32,51,.05)}
.sport-performance figure{margin:0}
.sport-performance img{width:100%;height:auto;object-fit:contain;border-radius:14px;background:#eef1f5}
.sport-performance h3{margin:0 0 8px;font-size:1.22rem}
.sport-performance p{margin:0;color:#536176;font-size:.98rem}
.sport-performance strong{color:var(--accent)}
@media (max-width:760px){.sport-performance{grid-template-columns:1fr}.sport-performance figure{max-width:520px;margin-inline:auto}.sport-performance img{width:100%}}
