
/* ===== Correctifs communs : toutes les pages ===== */
:root{--lecture-size:1.25rem;--image-surround:#e6e8eb;--image-edge:#c9ced4}
*,*::before,*::after{box-sizing:border-box}
body{overflow-wrap:break-word}

/* Taille de lecture unique, identique à celle des textes d'introduction */
main :is(p,li,dd,figcaption,blockquote,label,input,textarea,select,.small,.lead,.cycles-intro,.cycles-note),
footer p,footer li{font-size:var(--lecture-size);line-height:1.65}
main :is(.kicker,.cycle-card__tag){font-size:1.1rem;letter-spacing:.05em}
.quote figcaption span{font-size:var(--lecture-size)}
footer .footer-brand{font-size:2rem;line-height:1.2}
.btn{font-size:1.1rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;white-space:normal;text-align:center}
.cta-row{display:flex;flex-wrap:wrap;gap:.85rem}
.direct-contact{overflow-wrap:anywhere}

/* Navigation en boutons */
nav ul{display:flex;flex-wrap:wrap;align-items:stretch;gap:.6rem;margin:0;padding:0;list-style:none}
nav li{margin:0;padding:0;min-width:0}
nav a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.65rem 1.1rem;border:2px solid #142f43;border-radius:.5rem;background:#fff;color:#142f43;font-size:1.1rem;font-weight:700;line-height:1.3;text-align:center;text-decoration:none}
nav a:visited{color:#142f43}
nav a:hover,nav a[aria-current]{background:#142f43;color:#fff;border-color:#142f43}
nav a[href="contact.html"]{background:#73521e;border-color:#73521e;color:#fff}
nav a[href="contact.html"]:hover{background:#513a15;border-color:#513a15}
nav a[href="contact.html"][aria-current]{box-shadow:inset 0 -5px 0 #fff}
footer nav{margin-block:1.25rem}
footer nav a[aria-current],footer nav a:hover{border-color:#fff}
.nav-wrap{flex-wrap:wrap;gap:1.25rem}
.site-header nav{max-width:100%}

/* Focus visible */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #005fcc;outline-offset:4px}
footer a:focus-visible{outline-color:#fff}

/* Chiffres centrés sous leur description */
.stats{display:grid;gap:1.25rem}
.stats>div{display:flex;flex-direction:column;align-items:center;min-width:0;padding:1.25rem .75rem;text-align:center}
.stats dt{width:100%;margin:0 0 .65rem;text-align:center;font-size:clamp(1.6rem,2.4vw,2.2rem);font-weight:700;line-height:1.2;text-wrap:balance}
.stats dd{width:100%;margin:0;text-align:center;text-wrap:balance}

/* Images : suppression complète des encadrés, bordures et fonds artificiels */
main img{background:transparent;max-width:100%;height:auto;border:none;padding:0;box-shadow:none}
.editorial-photo{margin:2rem 0;max-width:900px}
.editorial-photo img{background:transparent;border:none;padding:0;box-shadow:none}
.hero-visual{background:transparent;padding:0;border:none;border-radius:0}
.hero-photo{border:none;padding:0;box-shadow:none}
.logo{background:transparent;mix-blend-mode:multiply}
.portrait-frame{background:transparent;border:none;padding:0}
.cycle-card__figure{background:transparent;padding:0;margin:0;border:none}
.cycle-card__image{background:transparent;border:none;padding:0}
.cycle-card__body{gap:.5rem}
.cycle-card__body .btn{max-width:100%}

@media(max-width:1050px){
  .nav-wrap{display:flex;flex-direction:column;align-items:flex-start}
  .grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .hero,.grid.two,.grid.three{grid-template-columns:minmax(0,1fr)}
  .hero>*,.grid>*{min-width:0}
  .site-header nav{width:100%}
  nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  nav a{width:100%;padding-inline:.5rem}
  .cta-row .btn{width:100%}
}
@media(max-width:360px){nav ul{grid-template-columns:1fr}}
@media print{nav,.cta-row,.skip-link{display:none}}

/* ===== Titres H1 et en-têtes déployés sur toute la largeur ===== */
h1 {
  width: 100%;
  max-width: 100% !important;
  text-wrap: normal !important;
  line-height: 1.22;
}
.page > h1, main > h1 {
  width: 100%;
  max-width: 100% !important;
  font-size: clamp(1.85rem, 2.35vw, 2.45rem) !important;
  margin-top: 0.25em;
  margin-bottom: 0.75em;
  letter-spacing: -0.015em;
}
.hero-header {
  grid-column: 1 / -1;
  width: 100%;
  margin-bottom: 0.5rem;
}
.hero-header h1 {
  font-size: clamp(2.2rem, 3.8vw, 3.6rem) !important;
  max-width: 100% !important;
  line-height: 1.15;
  margin: 0.25em 0 0.45em;
}
.lead, main .lead {
  max-width: 1000px !important;
  line-height: 1.65;
}
.editorial-photo, .object-photo {
  max-width: 1000px !important;
}
/* Présentation détaillée du cycle avec affiche */
.cycle-detail-layout {
  display: grid;
  grid-template-columns: minmax(260px, 340px) 1fr;
  gap: 2.5rem;
  align-items: start;
  margin: 2rem 0;
}
.cycle-poster {
  margin: 0;
}
.cycle-poster img {
  width: 100%;
  max-width: 340px;
  height: auto;
  border-radius: 4px;
}
@media (max-width: 800px) {
  .cycle-detail-layout {
    grid-template-columns: 1fr;
  }
  .cycle-poster {
    max-width: 300px;
    margin: 0 auto 1.5rem;
  }
}