
/* ===== 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 : un seul fond gris partout */
main img{background-color:var(--image-surround);max-width:100%;height:auto}
.editorial-photo img{background:var(--image-surround);border:1px solid var(--image-edge)}
.hero-visual{background:var(--image-surround);padding:1rem;border-radius:.5rem}
.hero-photo{border:0}
.logo{background:transparent;mix-blend-mode:multiply}
.portrait-frame{background:var(--image-surround)}
.cycle-card__figure{background:var(--image-surround);padding:1rem}
.cycle-card__image{background:var(--image-surround)}
.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}}

/* Réseaux sociaux : boutons aux couleurs du site, sur une seule ligne */
.social{margin-block:1.25rem}
.social-title{margin:0 0 .6rem;font-weight:700}
.social ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:0;padding:0;list-style:none;max-width:640px}
.social li{margin:0;min-width:0}
.social a{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:.7rem .5rem;border:2px solid #a47c35;border-radius:.5rem;background:#704b35;color:#fff;font-size:1.1rem;font-weight:700;text-align:center;text-decoration:none}
.social a:visited{color:#fff}
.social a:hover{background:#142f43;border-color:#a47c35;color:#fff}
footer .social a:hover{background:#a47c35;color:#142f43}
.social--accueil{margin-block:1.5rem}
.social--accueil .social-title{color:#142f43;font-size:1.2rem}
@media(max-width:1050px){.social--accueil ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.social ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.social ul{grid-template-columns:1fr}}
@media print{.social{display:none}}
