/* VSGYM Élan 1.4.2 — « Notre histoire » sur la grille commune VSGYM.
 * Cette feuille est chargée uniquement sur cette page. Pas de modification des
 * autres pages, des blocs Gutenberg enregistrés, des textes ou de la frise.
 */

/* Cadre commun : même largeur et mêmes gouttières que les autres pages. */
body :is(.vsgym-history-hero,.vsgym-history-section,.vsgym-history-anniversary) {
  position:relative;
  box-sizing:border-box;
  width:100%;
  max-width:none;
  margin-block:0!important;
  overflow:clip;
  font-family:var(--vsg-font-body,"Barlow",system-ui,sans-serif);
  isolation:isolate;
}
body :is(.vsgym-history-hero,.vsgym-history-section,.vsgym-history-anniversary) *,
body :is(.vsgym-history-hero,.vsgym-history-section,.vsgym-history-anniversary) *::before,
body :is(.vsgym-history-hero,.vsgym-history-section,.vsgym-history-anniversary) *::after {box-sizing:border-box}
body .vsgym-history-inner {
  width:min(var(--vsg-wide,1280px),calc(100% - var(--vsg-gutter,3rem) - var(--vsg-gutter,3rem)))!important;
  max-width:none!important;
  margin-inline:auto!important;
}
body .vsgym-history-inner > :where(h1,h2,h3,p,figure,.wp-block-shortcode) {
  margin-inline:0!important;
}
/* Alignement identique aux autres pages :
 * - bandeau d'ouverture = .vsgym-wrap (1280 px, même départ que « Le Club »)
 * - chapitres de lecture = .vsgym-narrow / theme.json (820 px, centrés)
 * - frise / bandeau 60 ans = grille large déjà utilisée et conservée.
 * La différence n'existe qu'au-dessus de 820 px : les gouttières mobiles
 * restent exactement celles des autres rubriques. */
body .vsgym-history-hero .vsgym-history-inner {
  width:min(var(--vsg-wide,1280px),calc(100% - var(--vsg-gutter,3rem)*2))!important;
}
body .vsgym-history-section:not(.vsgym-history-timeline-section) .vsgym-history-inner {
  width:min(820px,calc(100% - var(--vsg-gutter,3rem)*2))!important;
}
body .vsgym-history-hero .vsgym-history-inner > :where(h1,p,figure,.wp-block-shortcode),
body .vsgym-history-section:not(.vsgym-history-timeline-section) .vsgym-history-inner > :where(.vsgym-history-eyebrow,h2,h3,p,figure,.wp-block-shortcode) {
  margin-left:0!important;
  margin-right:0!important;
  width:100%;
}
body .vsgym-history-eyebrow {
  font-size:.75rem;
  line-height:1.5;
  font-weight:850;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--vsg-blue-dark,#00689b);
  margin:0 0 1rem!important;
}

/* En-tête : même bandeau noir et soulignement bleu que Présentation/Disciplines. */
body .vsgym-history-hero {
  background:#08131a;
  color:#fff;
  padding:clamp(3.25rem,6vw,5.5rem) 0;
}
body .vsgym-history-hero::before {content:none}
body .vsgym-history-hero::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  height:8px;
  width:25vw;
  max-width:310px;
  background:var(--vsg-blue,#009eff);
}
body .vsgym-history-hero .vsgym-history-eyebrow {color:#9adfff}
body .vsgym-history-hero .vsgym-history-title {
  font-family:var(--vsg-font-display,"Bebas Neue",Impact,sans-serif);
  font-size:clamp(3.1rem,8vw,7.5rem);
  line-height:1.04;
  font-weight:400;
  letter-spacing:0;
  color:#fff!important;
  max-width:22ch;
  margin:0 0 1rem!important;
}
body .vsgym-history-hero .vsgym-history-hero-lead {
  color:#d6e8f0;
  font-size:clamp(1.05rem,2vw,1.25rem);
  line-height:1.6;
  font-weight:500;
  max-width:55ch;
  margin:0 0 1.25rem!important;
}
body .vsgym-history-hero p:not(.vsgym-history-eyebrow):not(.vsgym-history-hero-lead) {
  max-width:75ch;
  color:#d6e8f0;
  line-height:1.65;
  font-size:1rem;
  margin:0 0 1rem!important;
}

/* Chapitres : rythme des .vsgym-section, titres et prose déjà utilisés ailleurs. */
body .vsgym-history-section {
  background:#fff;
  padding:var(--vsg-section-space,clamp(3rem,6vw,5.5rem)) 0;
  color:var(--vsg-ink,#15212b);
}
body :is(.vsgym-history-timeline-section,.vsgym-history-now,.vsgym-history-champions) {
  background:var(--vsg-surface,#f2f6f8);
}
body .vsgym-history-section .vsgym-history-section-title {
  font-family:var(--vsg-font-display,"Bebas Neue",Impact,sans-serif);
  font-weight:400;
  font-size:clamp(2.1rem,4vw,3.6rem);
  line-height:1.08;
  max-width:26ch;
  letter-spacing:0;
  color:#0b151d;
  margin:.15rem 0 clamp(1.75rem,3vw,2.75rem)!important;
}
body .vsgym-history-section h3 {
  font-family:var(--vsg-font-display,"Bebas Neue",Impact,sans-serif);
  font-weight:400;
  font-size:clamp(1.5rem,3vw,2.25rem);
  line-height:1.08;
  color:#0b151d;
  max-width:32ch;
  margin:clamp(2.2rem,4.3vw,3.8rem) 0 1rem!important;
  padding:1.05rem 0 0;
  border:0;
  border-top:1px solid #c7dce7;
}
body .vsgym-history-section h3:first-of-type {margin-top:0!important}
body .vsgym-history-section p:not(.vsgym-history-eyebrow):not(.vsgym-history-year):not(.vsgym-history-timeline-intro) {
  font-size:1rem;
  line-height:1.65;
  color:#344957;
  max-width:75ch;
  margin:0 0 1rem!important;
}
body .vsgym-history-section .wp-block-shortcode:empty {display:none}

/* 1.4.1 — Les titres, intertitres et paragraphes partagent désormais
 * la même ligne de départ. L'ancienne règle de centrage de blocs plus étroits
 * provoquait le décalage visible entre les titres et la prose. */
body .vsgym-history-section:not(.vsgym-history-timeline-section) .vsgym-history-inner > :is(.vsgym-history-section-title,h3.wp-block-heading) {
  width:100%!important;
  max-width:760px!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left;
}
body .vsgym-history-section:not(.vsgym-history-timeline-section) .vsgym-history-inner > .vsgym-history-eyebrow {
  margin-left:0!important;
  margin-right:0!important;
}
/* La frise demeure pleine largeur et conserve son implantation alternée. */

/* Archives optionnelles : l'absence de photo n'ajoute aucun cadre au public. */
body .vsgym-history-archive {
  max-width:760px;
  margin:1.65rem 0 2.5rem!important;
  padding:0;
  background:#fff;
  border:1px solid #d7e0e4;
  box-shadow:none;
}
body .vsgym-history-archive img {
  display:block;
  width:100%;
  height:auto;
  max-height:480px;
  object-fit:contain;
  background:#eef4f7;
}
body .vsgym-history-archive figcaption {
  margin:0;
  border-top:1px solid #e0e9ee;
  padding:.7rem 1rem;
  color:#405767;
  font-size:.85rem;
  line-height:1.5;
}
body .vsgym-history-credit {font-style:italic}

/* Frise : conserve les interactions et la chronologie mais reprend les cartes
 * blanches, contours fins et liseré bleu du reste du site. */
body .vsgym-history-timeline-section::before {content:none}
body .vsgym-history-timeline-section .vsgym-history-eyebrow {color:var(--vsg-blue-dark,#00689b)}
body .vsgym-history-timeline-section .vsgym-history-section-title {color:#0b151d}
body .vsgym-history-timeline-section .vsgym-history-timeline-intro {
  font-size:1rem;
  line-height:1.65;
  color:#344957;
  max-width:72ch;
  margin:0!important;
}
body .vsgym-history-timeline {
  position:relative;
  width:100%!important;
  max-width:none!important;
  margin:clamp(2.5rem,5vw,4.25rem) 0 0!important;
}
body .vsgym-history-timeline::before {
  content:"";
  position:absolute;
  width:2px;
  top:1rem;
  bottom:1rem;
  left:calc(50% - 1px);
  background:#8bcce9;
}
body .vsgym-history-event {
  position:relative;
  width:calc(50% - 2.25rem)!important;
  max-width:none!important;
  margin:0 0 1rem!important;
  min-width:0;
  min-height:128px;
  padding:1.3rem 1.5rem 1.5rem;
  background:#fff;
  border:1px solid #d7e0e4;
  border-top:4px solid var(--vsg-blue,#009eff);
  box-shadow:none;
}
body .vsgym-history-event:nth-child(odd) {margin-right:auto!important;margin-left:0!important}
body .vsgym-history-event:nth-child(even) {margin-left:auto!important;margin-right:0!important}
body .vsgym-history-event::after {
  content:"";
  position:absolute;
  top:1.65rem;
  width:15px;
  height:15px;
  border-radius:50%;
  border:3px solid var(--vsg-surface,#f2f6f8);
  background:var(--vsg-blue,#009eff);
  box-shadow:0 0 0 1px #7bbfe2;
}
body .vsgym-history-event:nth-child(odd)::after {right:-3.1rem;left:auto}
body .vsgym-history-event:nth-child(even)::after {left:-3.1rem;right:auto}
body .vsgym-history-event .vsgym-history-year {
  font-family:var(--vsg-font-display,"Bebas Neue",Impact,sans-serif);
  font-size:clamp(2.2rem,3.5vw,3.15rem);
  line-height:1;
  color:var(--vsg-blue-dark,#00689b);
  margin:0 0 .65rem!important;
}
body .vsgym-history-event .vsgym-history-details {margin:0!important;border:0;padding:0}
body .vsgym-history-event .vsgym-history-details>summary {
  display:block;
  position:relative;
  min-height:30px;
  padding:0 1.8rem 0 0;
  color:#0b151d;
  font-family:var(--vsg-font-body,"Barlow",sans-serif);
  font-size:1.05rem;
  font-weight:800;
  line-height:1.4;
  list-style:none;
  cursor:pointer;
}
body .vsgym-history-event .vsgym-history-details>summary::-webkit-details-marker {display:none}
body .vsgym-history-event .vsgym-history-details>summary::after {
  content:"+";
  position:absolute;
  right:0;
  top:0;
  font-size:1.4rem;
  line-height:1;
  color:var(--vsg-blue-dark,#00689b);
}
body .vsgym-history-event .vsgym-history-details[open]>summary::after {content:"−"}
body .vsgym-history-event .vsgym-history-details>summary:hover {color:#005f91}
body .vsgym-history-event .vsgym-history-details>summary:focus-visible {
  outline:2px solid #000;
  outline-offset:4px;
}
body .vsgym-history-event .vsgym-history-details p {
  border-top:1px solid #d7e0e4;
  padding:.8rem 0 0;
  margin:.85rem 0 0!important;
  font-size:.96rem!important;
  line-height:1.55!important;
  color:#344957!important;
}

/* Anniversaire : déclinaison de la section d'appel à l'action bleue VSGYM. */
body .vsgym-history-anniversary {
  background:var(--vsg-blue,#009eff);
  color:#000;
  padding:clamp(3.5rem,6vw,5.5rem) 0;
}
body .vsgym-history-anniversary::after {content:none}
body .vsgym-history-anniversary .vsgym-history-inner {
  display:grid;
  grid-template-columns:minmax(140px,230px) minmax(0,1fr);
  gap:0 clamp(1.5rem,4vw,4rem);
  align-items:start;
}
body .vsgym-history-anniversary .vsgym-history-eyebrow {
  grid-column:1 / -1;
  color:#052e45;
  margin-bottom:1.25rem!important;
}
body .vsgym-history-anniversary .vsgym-history-big-number {
  grid-column:1;
  grid-row:2 / span 6;
  font-family:var(--vsg-font-display,"Bebas Neue",Impact,sans-serif);
  font-size:clamp(8.25rem,18vw,15.5rem);
  line-height:.9;
  font-weight:400;
  letter-spacing:0;
  color:#06141d;
  margin:0!important;
}
body .vsgym-history-anniversary .vsgym-history-section-title {
  grid-column:2;
  font-family:var(--vsg-font-display,"Bebas Neue",Impact,sans-serif);
  font-weight:400;
  font-size:clamp(2.7rem,5.8vw,5rem);
  line-height:1.04;
  letter-spacing:0;
  color:#000;
  margin:0 0 1rem!important;
  max-width:22ch;
}
body .vsgym-history-anniversary p:not(.vsgym-history-big-number):not(.vsgym-history-eyebrow) {
  grid-column:2;
  max-width:72ch;
  font-size:1rem;
  line-height:1.65;
  color:#06141d;
  margin:0 0 1rem!important;
}
body .vsgym-history-anniversary .vsgym-history-final-quote {
  font-size:clamp(1.13rem,2vw,1.45rem)!important;
  line-height:1.4!important;
  font-weight:800;
  max-width:45ch!important;
  margin:1.1rem 0!important;
}
body .vsgym-history-anniversary .wp-block-shortcode {grid-column:2;margin:0!important}
body .vsgym-history-end-links {display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0 0!important}
body .vsgym-history-end-links a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:1rem 1.4rem;
  background:#08131a;
  color:#fff;
  border:2px solid #08131a;
  border-radius:0;
  font-size:.83rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.045em;
  text-decoration:none;
  line-height:1.35;
  transition:background .18s,color .18s;
}
body .vsgym-history-end-links a:hover,
body .vsgym-history-end-links a:focus-visible {background:#fff;color:#08131a}

/* Tablette et mobile : mêmes principes que les autres pages du thème. */
@media(max-width:800px) {
  body .vsgym-history-timeline::before {left:9px}
  body .vsgym-history-event,
  body .vsgym-history-event:nth-child(odd),
  body .vsgym-history-event:nth-child(even) {
    width:calc(100% - 42px)!important;
    margin-right:0!important;
    margin-left:42px!important;
  }
  body .vsgym-history-event::after,
  body .vsgym-history-event:nth-child(odd)::after,
  body .vsgym-history-event:nth-child(even)::after {left:-41px;right:auto}
}
@media(max-width:700px) {
  body .vsgym-history-hero {padding:clamp(3rem,7vw,4.2rem) 0}
  body .vsgym-history-hero .vsgym-history-title {font-size:clamp(2.85rem,10vw,4.9rem)}
  body .vsgym-history-section .vsgym-history-section-title {font-size:clamp(2.15rem,7vw,3.35rem)}
  body .vsgym-history-anniversary .vsgym-history-inner {display:block}
  body .vsgym-history-anniversary .vsgym-history-big-number {font-size:clamp(7.5rem,29vw,11rem);margin:.3rem 0 .6rem!important}
  body .vsgym-history-anniversary .vsgym-history-section-title {font-size:clamp(2.7rem,8vw,4.5rem)}
}
@media(max-width:430px) {
  body .vsgym-history-hero .vsgym-history-title {font-size:clamp(2.75rem,12vw,3.9rem)}
  body .vsgym-history-event,
  body .vsgym-history-event:nth-child(odd),
  body .vsgym-history-event:nth-child(even) {padding:1.15rem 1rem 1.3rem}
  body .vsgym-history-end-links {flex-direction:column}
  body .vsgym-history-end-links a {width:100%}
}
@media(prefers-reduced-motion: no-preference) {
  .vsgym-history-motion .vsgym-history-event:not(.vsgym-history-appeared) {opacity:.7;transform:translateY(10px)}
  .vsgym-history-motion .vsgym-history-event {transition:opacity .4s ease,transform .4s ease}
}
@media(prefers-reduced-motion: reduce) {
  body .vsgym-history-event {transition:none!important;transform:none!important;opacity:1!important}
  body .vsgym-history-end-links a {transition:none!important}
}
