/* VSGYM Élan 1.2.0 — progressive, native Gutenberg theme. */
:root{--vsg-blue:#009eff;--vsg-blue-dark:#00689b;--vsg-ink:#15212b;--vsg-black:#000;--vsg-white:#fff;--vsg-surface:#f2f6f8;--vsg-line:#d7e0e4;--vsg-wide:1280px;--vsg-gutter:clamp(1.15rem,4vw,3rem)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;min-width:320px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--vsg-ink);background:#fff;-webkit-font-smoothing:antialiased}
body :where(h1,h2,h3,h4){letter-spacing:.002em;text-wrap:balance}
body :where(h1,h2,.vsgym-display){font-family:Impact,"Arial Narrow",sans-serif;font-stretch:condensed;text-transform:uppercase;line-height:1.04}
body a{color:var(--vsg-blue-dark);text-underline-offset:.19em}
body a:hover{color:#004b70}
body a:focus-visible,body button:focus-visible,body input:focus-visible,body textarea:focus-visible{outline:3px solid #c55700;outline-offset:4px}
body img{max-width:100%;height:auto}
body .wp-site-blocks{overflow:clip}
body .wp-block-post-content> :first-child{margin-block-start:0}
.vsgym-wrap{width:min(var(--vsg-wide),calc(100% - var(--vsg-gutter)*2));margin-inline:auto}
.vsgym-narrow{width:min(820px,calc(100% - var(--vsg-gutter)*2));margin-inline:auto}
.vsgym-section{padding:clamp(3.8rem,8vw,7rem) 0}
.vsgym-section-tight{padding:clamp(2.7rem,5vw,4.3rem) 0}
.vsgym-kicker{display:block;margin:0 0 1rem;color:var(--vsg-blue-dark);font-size:.75rem;letter-spacing:.18em;font-weight:850;text-transform:uppercase}
.vsgym-section-title{font-size:clamp(2.5rem,6vw,5.6rem);margin:0 0 1.3rem}
.vsgym-lead{font-size:clamp(1.1rem,1.7vw,1.35rem);max-width:60ch;line-height:1.56}
.vsgym-rule{height:4px;background:var(--vsg-blue);width:74px;margin:1.5rem 0 2.4rem;border:0}
.vsgym-bg-light{background:var(--vsg-surface)}
.vsgym-bg-dark{background:#080e12;color:#fff}
.vsgym-bg-dark :where(h2,h3,p){color:inherit}
.vsgym-header-shell{position:relative;background:#fff;border-bottom:1px solid #e6edef;box-shadow:0 5px 24px rgba(4,22,31,.06)}
.vsgym-sticky-root{position:sticky;top:0;z-index:1000} body.admin-bar .vsgym-sticky-root{top:32px}
.vsgym-header{min-height:94px;width:min(1380px,calc(100% - var(--vsg-gutter)*2));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.vsgym-header .wp-block-image{margin:0;flex-shrink:0}
.vsgym-header .wp-block-image img{display:block;width:64px;height:64px;object-fit:contain}
.vsgym-header-brand{display:flex;align-items:center;gap:.75rem;flex:0 0 auto}
.vsgym-header-brand .vsgym-wordmark img{width:190px;height:auto}
.vsgym-header nav{flex:1 1 auto;justify-content:flex-end}
.vsgym-header .wp-block-navigation__container{gap:clamp(.75rem,1.5vw,1.65rem)}
.vsgym-header .wp-block-navigation a{font-size:.8rem;font-weight:790;text-transform:uppercase;letter-spacing:.045em;color:#141b1e;text-decoration:none;border-bottom:3px solid transparent;padding:1rem .05rem .8rem;transition:color .18s,border-color .18s}
.vsgym-header .wp-block-navigation a:hover,.vsgym-header .wp-block-navigation a.vsgym-is-current{border-bottom-color:var(--vsg-blue);color:#005b8b}
.vsgym-header .wp-block-navigation-item.vsgym-nav-cta>a{background:var(--vsg-blue);color:#000;padding:.9rem 1.15rem;border:2px solid var(--vsg-blue);font-weight:900}
.vsgym-header .wp-block-navigation-item.vsgym-nav-cta>a:hover{background:#000;border-color:#000;color:#fff}
.vsgym-header .wp-block-navigation__responsive-container-open{min-width:44px;min-height:44px}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open{padding:2rem;background:#fff}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{margin-bottom:.2rem}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open a{font-size:1.15rem;padding:.6rem 0}
.vsgym-header .wp-block-navigation__responsive-container-close{min-width:44px;min-height:44px}
.vsgym-hero{background:#050c10;color:#fff;isolation:isolate;position:relative;min-height:min(720px,85vh);overflow:hidden;display:flex;align-items:center}
.vsgym-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(110deg,rgba(0,158,255,.16),transparent 60%),repeating-linear-gradient(155deg,transparent 0 98px,rgba(255,255,255,.025) 99px 100px)}
.vsgym-hero::after{content:"";position:absolute;top:0;bottom:0;right:13%;width:clamp(115px,13vw,230px);transform:skew(-16deg);background:var(--vsg-blue);opacity:.96;z-index:-1}
.vsgym-hero-inner{width:min(var(--vsg-wide),calc(100% - var(--vsg-gutter)*2));margin:auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(230px,.55fr);gap:3rem;align-items:center;padding:7rem 0}
.vsgym-hero h1{color:#fff!important;font-size:clamp(4.1rem,10vw,9.5rem);margin:.3rem 0 1.4rem;line-height:.91;letter-spacing:-.025em;max-width:11ch}
.vsgym-hero h1 strong{color:var(--vsg-blue);font-weight:inherit}
.vsgym-hero p{color:#fff}
.vsgym-hero .vsgym-kicker{color:#b5e7ff}
.vsgym-hero .vsgym-hero-text{font-size:clamp(1.1rem,2vw,1.4rem);max-width:38ch;opacity:.92}
.vsgym-hero-mark{margin:0;justify-self:center;position:relative}
.vsgym-hero-mark img{width:min(32vw,370px);height:auto;filter:drop-shadow(0 20px 40px rgba(0,0,0,.2));object-fit:contain}
.vsgym-hero-mark figcaption{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;max-width:22ch;margin-top:.9rem}
.vsgym-photo-slot{aspect-ratio:16/10;background:#111e26;color:#b1dae8;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:240px;border:1px solid #295166;position:relative;overflow:hidden;padding:2rem;text-align:center;font-weight:750;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.vsgym-photo-slot::before{content:"";position:absolute;inset:20px;border:1px dashed #537182;pointer-events:none}
.vsgym-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#dbe6ec;border:1px solid #dbe6ec;transform:translateY(-1px)}
.vsgym-quick-link{display:block;padding:2.1rem 1.7rem;background:#fff;color:#000!important;text-decoration:none!important;transition:background .2s,transform .2s}
.vsgym-quick-link:hover{background:#d9f1ff;transform:translateY(-4px)}
.vsgym-quick-index{display:block;color:#00689b;font-size:.72rem;letter-spacing:.12em;font-weight:900;margin-bottom:.7rem}
.vsgym-quick-link strong{font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(1.5rem,2.1vw,2rem);line-height:1;display:block;font-weight:750;text-transform:uppercase}
.vsgym-quick-link small{display:block;color:#46545e;font-size:.86rem;margin-top:.75rem}
.vsgym-discipline-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:3.5rem}
.vsgym-discipline-card{background:#f0f6f9;min-height:255px;padding:2.2rem;position:relative;overflow:hidden;border-top:5px solid var(--vsg-blue);display:flex;flex-direction:column;justify-content:space-between;transition:background .2s,transform .2s}
.vsgym-discipline-card::after{content:"";position:absolute;width:210px;height:210px;border:40px solid rgba(0,158,255,.07);border-radius:50%;right:-110px;bottom:-100px;pointer-events:none}
.vsgym-discipline-card:hover{background:#deeff8;transform:translateY(-4px)}
.vsgym-discipline-card h3{font-size:clamp(1.7rem,3vw,2.65rem);margin:0 0 .5rem}
.vsgym-discipline-card p{margin:0 0 1.4rem;font-size:.95rem;max-width:32ch}
.vsgym-discipline-card a{color:#005f91;font-weight:800;text-underline-offset:.25em;align-self:flex-start}
.vsgym-btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
body .vsgym-btn a,body .vsgym-btn button{border-radius:0!important;padding:1rem 1.4rem;font-size:.83rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em;transition:background .18s,color .18s,transform .18s}
body .vsgym-btn a:hover{background:#111;color:#fff;transform:translateY(-2px)}
body .vsgym-btn-outline a{border:2px solid currentColor;background:transparent!important;color:inherit!important}
body .vsgym-btn-outline a:hover{background:#fff!important;color:#000!important}
.vsgym-page-intro{background:#08131a;padding:5.8rem 0 4.7rem;color:#fff;position:relative}
.vsgym-page-intro::after{content:"";height:8px;width:25vw;max-width:310px;background:var(--vsg-blue);position:absolute;bottom:0;left:0}
.vsgym-page-intro h1{color:#fff!important;font-size:clamp(3.1rem,8vw,7.5rem);margin:0 0 1rem;line-height:.98}
.vsgym-page-intro p{font-size:clamp(1.05rem,2vw,1.25rem);max-width:55ch;color:#d6e8f0}
.vsgym-prose{padding:4.5rem 0}
.vsgym-prose h2{font-size:clamp(2.1rem,4vw,3.6rem);margin-top:2.6rem}
.vsgym-prose h3{font-size:clamp(1.5rem,3vw,2.25rem)}
.vsgym-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0}
.vsgym-info-panel{border-left:4px solid var(--vsg-blue);padding:1.5rem;background:var(--vsg-surface)}
.vsgym-info-panel h3{font-size:1.75rem;margin:0 0 .6rem}
.vsgym-info-panel p{margin:.4rem 0}
.vsgym-address{font-style:normal}
.vsgym-button-link{display:inline-block;padding:.65rem 1rem;border:2px solid #0073a9;color:#005b86;text-decoration:none!important;font-weight:850;margin-top:.8rem;transition:background .15s,color .15s}
.vsgym-button-link:hover{background:#005b86;color:#fff}
.vsgym-callout{background:#e7f5fc;border-left:5px solid var(--vsg-blue);padding:1.4rem 1.6rem;margin:2rem auto;max-width:820px}
.vsgym-callout p{margin:0}
.vsgym-steps{counter-reset:vsgstep;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.vsgym-step{border-top:4px solid var(--vsg-blue);background:#f1f6f8;padding:1.65rem;min-height:175px}
.vsgym-step::before{counter-increment:vsgstep;content:counter(vsgstep,decimal-leading-zero);font-size:.75rem;color:#00689b;font-weight:800}
.vsgym-step h3{font-size:1.8rem;margin:.65rem 0 .45rem}
.vsgym-step p{font-size:.9rem}
.vsgym-cta-section{background:var(--vsg-blue);color:#000;padding:clamp(3rem,6vw,5rem) 0}
.vsgym-cta-section h2{font-size:clamp(2.7rem,6vw,5rem);margin:0 0 1rem;color:#000!important}
.vsgym-cta-section p{color:#111;font-weight:550}
.vsgym-cta-section .wp-block-button__link{background:#050a0e!important;color:#fff!important}
.vsgym-cta-section .wp-block-button__link:hover{background:#fff!important;color:#000!important}
.vsgym-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.vsgym-post-grid li{background:#f1f6f8;padding:0 0 1.4rem;border-bottom:3px solid var(--vsg-blue)}
.vsgym-post-grid .wp-block-post-featured-image img{width:100%;aspect-ratio:16/9;object-fit:cover}
.vsgym-post-grid :where(.wp-block-post-title,.wp-block-post-date,.wp-block-post-excerpt){margin-inline:1.3rem}
.vsgym-post-grid .wp-block-post-title{font-size:1.65rem;margin-top:1.2rem}
.vsgym-post-grid .wp-block-post-title a{color:#101519;text-decoration:none}
.vsgym-post-grid .wp-block-post-title a:hover{text-decoration:underline}
.vsgym-post-grid .wp-block-post-date{font-size:.76rem;color:#5b6a74}
.vsgym-post-grid .wp-block-post-excerpt{font-size:.9rem}
.vsgym-footer-shell{background:#050b0f;color:#fff;padding:4.5rem 0 1.2rem}
.vsgym-footer-grid{width:min(var(--vsg-wide),calc(100% - var(--vsg-gutter)*2));margin-inline:auto;display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:2rem}
.vsgym-footer-grid h3{font-family:Impact,"Arial Narrow",sans-serif;font-size:1.4rem;color:#fff;margin:0 0 1.1rem}
.vsgym-footer-grid .wp-block-image img{width:130px;height:auto}
.vsgym-footer-grid a{color:#d0eefa;text-decoration:none}
.vsgym-footer-grid a:hover{text-decoration:underline;color:#fff}
.vsgym-footer-grid ul{list-style:none;padding:0;margin:0}
.vsgym-footer-grid li{margin:.5rem 0;font-size:.92rem}
.vsgym-footer-base{max-width:var(--vsg-wide);padding:1.5rem 0 0;margin:3.4rem auto 0;border-top:1px solid #364249;color:#b6c8d3;font-size:.75rem;width:calc(100% - var(--vsg-gutter)*2)}
.vsgym-404{min-height:65vh;display:grid;place-items:center;text-align:center;padding:4rem 1rem}
.vsgym-404 h1{font-size:clamp(5rem,12vw,10rem);margin:0;color:var(--vsg-blue-dark)}
.vsgym-text-note{font-size:.85rem;color:#46545e}
.wp-block-post-content>:is(.vsgym-hero,.vsgym-page-intro,.vsgym-cta-section){margin-block:0}
.wp-block-post-content .vsgym-wrap, .wp-block-post-content .vsgym-narrow{max-width:none}
@media(max-width:1100px){.vsgym-header{min-height:80px}.vsgym-header-brand .vsgym-wordmark img{width:145px}.vsgym-header .wp-block-navigation__container{gap:.6rem}.vsgym-header .wp-block-navigation a{font-size:.74rem}}
@media(max-width:900px){.vsgym-discipline-grid,.vsgym-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vsgym-quick-grid,.vsgym-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.vsgym-footer-grid{grid-template-columns:repeat(2,1fr)}.vsgym-hero-inner{grid-template-columns:1fr 210px;gap:.5rem}.vsgym-hero-mark img{width:195px}}
@media(max-width:750px){body.admin-bar .vsgym-sticky-root{top:46px}.vsgym-header{min-height:74px}.vsgym-header .wp-block-image img{width:50px;height:50px}.vsgym-header-brand .vsgym-wordmark img{width:138px}.vsgym-hero{min-height:600px}.vsgym-hero-inner{display:block;padding:5rem 0 4rem}.vsgym-hero h1{font-size:clamp(3.7rem,15vw,6rem);max-width:11ch}.vsgym-hero-mark{display:none}.vsgym-hero::after{right:-80px;width:160px;opacity:.45}.vsgym-discipline-grid,.vsgym-post-grid,.vsgym-info-grid{grid-template-columns:1fr}.vsgym-page-intro{padding:4.5rem 0 3.4rem}.vsgym-info-panel{padding:1.2rem}.vsgym-footer-grid{gap:2rem 1rem}}
@media(max-width:430px){.vsgym-quick-grid,.vsgym-steps{grid-template-columns:1fr}.vsgym-quick-link{padding:1.4rem}.vsgym-hero{min-height:530px}.vsgym-footer-grid{grid-template-columns:1fr}.vsgym-header-brand .vsgym-wordmark img{width:125px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.vsgym-quick-item{background:#fff;padding:1.9rem 1.6rem}
.vsgym-quick-item h3{font-size:clamp(1.55rem,2vw,2.1rem);margin:.2rem 0;text-transform:uppercase}
.vsgym-quick-item p{font-size:.9rem;margin:0 0 .6rem}
.vsgym-quick-item p:last-child{margin-bottom:0}
.vsgym-quick-item a{font-weight:850;text-decoration:none;color:#005b86}
.vsgym-quick-item:hover{background:#e3f5ff}
.vsgym-info-panel .vsgym-address{margin:.3rem 0}
/* Dropdown submenus: native Gutenberg navigation, click-to-open on desktop and mobile. */
.vsgym-main-nav .wp-block-navigation__submenu-container{background:#fff!important;border:1px solid #d7e4ed!important;box-shadow:0 20px 34px rgba(0,17,30,.12);padding:.6rem;min-width:260px!important}
.vsgym-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item a{font-size:.78rem;font-weight:730;padding:.8rem .9rem;border:0!important;white-space:normal}
.vsgym-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover{background:#e6f5ff;color:#004e76!important}
.vsgym-main-nav .wp-block-navigation__submenu-icon{margin-left:.25rem;color:#00689b}
.vsgym-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{box-shadow:none;border:0!important;padding:.2rem 0 .65rem 1rem!important;min-width:0!important}

/* 1.1.0 | Gutenberg click-navigation, accessible active section + responsive switch. */
.vsgym-header .wp-block-navigation a.vsgym-parent-current,.vsgym-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content{color:#005b8b;border-bottom-color:#009eff}
.vsgym-header .wp-block-navigation .wp-block-navigation__submenu-container a:focus-visible{outline:3px solid #b64b00;outline-offset:0}
@media(max-width:1180px){
  .vsgym-header .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
  .vsgym-header .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex!important;align-items:center;justify-content:center}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open{display:flex!important;position:fixed!important;inset:0!important;z-index:10000!important;background:#fff!important;padding:clamp(1.2rem,5vw,3rem)!important;overflow:auto!important;flex-direction:column;align-items:flex-start;justify-content:flex-start}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:stretch;width:100%;padding-top:2.2rem}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{width:100%;align-items:stretch}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{position:static!important;min-width:0!important;width:100%!important;box-shadow:none!important;border:0!important;padding-left:1rem!important}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{width:100%}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{min-height:44px;display:flex;align-items:center}
}
@media(max-width:782px){body.admin-bar .vsgym-sticky-root{top:46px}}
@media(max-width:600px){.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:.2rem}}

/* Élan 1.2.0: robust tablet/mobile dropdowns, visible focus, sticky compact state. */
:root{--vsg-focus:#a64200}
body{font-family:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif}
body :where(h1,h2,.vsgym-display){font-family:"Bebas Neue","Arial Narrow",Impact,sans-serif}
.vsgym-header-shell{transition:box-shadow .22s ease}
.vsgym-sticky-root.vsgym-is-scrolled .vsgym-header-shell{box-shadow:0 9px 24px rgb(0 20 32 / .11)}
.vsgym-sticky-root.vsgym-is-scrolled .vsgym-header{min-height:70px}
.vsgym-sticky-root.vsgym-is-scrolled .vsgym-header-brand .wp-block-image:first-child img{width:48px;height:48px}
.vsgym-header,.vsgym-header-brand img{transition:min-height .2s ease,width .2s ease,height .2s ease}
.vsgym-header .wp-block-navigation .vsgym-parent-current,
.vsgym-header .wp-block-navigation a[aria-current="page"]{color:#005b8b;border-bottom-color:#009eff}
.vsgym-main-nav .wp-block-navigation__submenu-container a[aria-current="page"]{background:#e8f6ff}
.vsgym-main-nav .wp-block-navigation-submenu__toggle{min-height:44px;min-width:36px;cursor:pointer}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container:not(.is-open){box-shadow:none!important}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle{width:44px;height:44px}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{padding-top:.25rem!important;padding-bottom:.5rem!important}
.vsgym-header a:focus-visible,.vsgym-header button:focus-visible{outline:3px solid var(--vsg-focus)!important;outline-offset:3px}
.vsgym-main-nav .wp-block-navigation a:active{transform:translateY(1px)}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:1rem}
.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:.95rem;font-weight:600;text-transform:none}
.vsgym-photo-slot{border:2px dashed #bfd9e7;min-height:200px;background:repeating-linear-gradient(-45deg,#e9f5fb 0 16px,#f4faff 16px 32px);color:#31566d;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem;font-weight:700;letter-spacing:.03em}
.vsgym-photo-slot p{margin:0}
.vsgym-schedule-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2rem}
.vsgym-schedule-links>div{border:1px solid #cbdfe8;background:#fff;padding:1.5rem;border-left:5px solid #009eff}
.vsgym-schedule-links h3{font-size:1.6rem;margin:0 0 .6rem}
.vsgym-schedule-links p{margin:.4rem 0}
.vsgym-schedule-links a{display:inline-block;min-height:44px;padding:.55rem 0}
.vsgym-schedule-links a:hover{text-decoration-thickness:2px}
.vsgym-hero-photo-slot{position:absolute;inset:auto var(--vsg-gutter) 1.15rem auto;max-width:260px;min-height:64px;padding:.75rem 1rem;background:#07151dee;border:1px dashed #75badf;color:#fff;font-size:.75rem;z-index:2}
.vsgym-footer-shell a:focus-visible{outline-color:#fff}
.vsgym-page-intro h1{overflow-wrap:anywhere}
.vsgym-schedule-links a,.vsgym-button-link,.wp-block-button__link{touch-action:manipulation}
@media(max-width:782px){body.admin-bar .vsgym-sticky-root{top:46px}}
@media(max-width:600px){body.admin-bar .vsgym-sticky-root{top:0}.vsgym-schedule-links{grid-template-columns:1fr}.vsgym-hero-photo-slot{position:relative;inset:auto;max-width:none;margin:0 var(--vsg-gutter) 1rem}}
@media(prefers-reduced-motion:reduce){.vsgym-header,.vsgym-header-brand img,.vsgym-header-shell{transition:none}}

/* Mobile display type: avoid mid-word breaks in long French discipline titles. */
@media(max-width:750px){.vsgym-page-intro h1{font-size:clamp(2.15rem,7.3vw,3.75rem);overflow-wrap:normal;hyphens:auto;line-height:1.04}}

/* VSGYM Élan 1.2.2 — première recette en conditions réelles.
   Rescale the first impression so that the promise and actions are seen together.
   No changes to Gutenberg page content or official lion artwork. */
body .wp-site-blocks > main,
body .wp-site-blocks > footer { margin-block-start: 0; }
body .wp-site-blocks > main { margin-top: 0 !important; }
.vsgym-hero { min-height: 565px; }
.vsgym-hero-inner {
  grid-template-columns: minmax(0, 1.48fr) minmax(200px, .52fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  padding: clamp(3.5rem, 5vw, 4.6rem) 0;
}
.vsgym-hero h1 {
  font-size: clamp(3.8rem, 6.15vw, 7.2rem);
  line-height: .94;
  letter-spacing: -.02em;
  max-width: 14.5ch;
  margin: .35rem 0 1.05rem;
}
.vsgym-hero-mark img { width: min(25vw, 315px); }
.vsgym-hero .vsgym-hero-text { font-size: clamp(1.05rem, 1.45vw, 1.3rem); max-width: 48ch; }
.vsgym-hero .vsgym-btn-row { margin-top: 1.45rem; }
.vsgym-hero-photo-slot { max-width: 240px; bottom: .75rem; }
@media (max-width: 900px) {
  .vsgym-hero { min-height: 520px; }
  .vsgym-hero-inner { grid-template-columns: minmax(0, 1fr) 160px; gap: 1rem; }
  .vsgym-hero h1 { font-size: clamp(3.4rem, 7.7vw, 5.8rem); }
  .vsgym-hero-mark img { width: 160px; }
}
@media (max-width: 750px) {
  .vsgym-hero { min-height: 0; }
  .vsgym-hero-inner { display: block; padding: 3.5rem 0 2.8rem; }
  .vsgym-hero h1 { font-size: clamp(3.45rem, 11.2vw, 5.6rem); max-width: 12.5ch; }
  .vsgym-hero-mark { display: none; }
  .vsgym-hero-photo-slot { max-width: none; }
}
@media (max-width: 430px) {
  .vsgym-hero h1 { font-size: clamp(3.05rem, 11.6vw, 4.15rem); line-height: .98; }
  .vsgym-hero-inner { padding: 2.8rem 0 2.3rem; }
  .vsgym-hero .vsgym-hero-text { font-size: 1rem; }
  .vsgym-hero .vsgym-btn-row { gap: .65rem; }
  body .vsgym-hero .vsgym-btn a { padding: .85rem .95rem; }
}
/* The optional photograph placeholder must not form a second flex column on phones. */
@media (max-width: 750px) {
  .vsgym-hero { flex-direction: column; align-items: stretch; }
  .vsgym-hero-inner { width: min(var(--vsg-wide), calc(100% - var(--vsg-gutter)*2)); }
  .vsgym-hero-photo-slot { position: relative; inset: auto; width: calc(100% - var(--vsg-gutter)*2); max-width: none; margin: 0 auto 1.25rem; min-height: 55px; padding: .65rem 1rem; }
}


/* VSGYM Élan 1.2.3 — two distinct discipline stories; only native editable blocks. */
.vsgym-main-nav .wp-block-navigation__submenu-container{min-width:355px!important}
.vsgym-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item a{font-size:.82rem;line-height:1.35;padding:.72rem 1rem;font-weight:700}
.vsgym-header .wp-block-navigation a.vsgym-parent-current{border-bottom-color:#009eff;color:#005b8b}
.vsgym-page-intro--discipline{padding:clamp(3.2rem,5vw,4.6rem) 0 clamp(3rem,4.5vw,4rem)}
.vsgym-page-intro--discipline h1{font-size:clamp(2.8rem,6.15vw,5.85rem);max-width:23ch;line-height:1.02;letter-spacing:-.015em;margin-bottom:1rem;overflow-wrap:normal}
.vsgym-page-intro--discipline p:not(.vsgym-kicker){max-width:54ch}
.vsgym-discipline-overview{padding:clamp(3.25rem,6vw,5.5rem) 0 clamp(2rem,4vw,3rem)}
.vsgym-discipline-summary,.vsgym-discipline-club-grid,.vsgym-discipline-visual-grid{gap:clamp(1.25rem,4vw,4.5rem);align-items:center!important}
.vsgym-discipline-summary>.wp-block-column:first-child{flex:0 0 44%}
.vsgym-discipline-summary h2,.vsgym-discipline-apparatus h2,.vsgym-discipline-club h2,.vsgym-discipline-practical h2,.vsgym-discipline-visual h2{font-size:clamp(2.15rem,4.5vw,3.9rem);line-height:1.05;margin:.15rem 0 1rem}
.vsgym-discipline-overview p,.vsgym-discipline-club p,.vsgym-discipline-practical p,.vsgym-discipline-visual p{line-height:1.62}
.vsgym-discipline-apparatus{padding:clamp(2rem,4vw,3.5rem) 0 clamp(3.25rem,6vw,5.25rem)}
.vsgym-apparatus-list{list-style:none;counter-reset:apparatus;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(1rem,4vw,4.5rem);margin:clamp(1.5rem,4vw,3rem) 0 0!important;padding:0!important}
.vsgym-apparatus-list li{counter-increment:apparatus;display:grid;grid-template-columns:2.75rem minmax(0,1fr);grid-template-rows:auto auto;column-gap:1.15rem;border-top:1px solid #b8d3e2;padding:1.3rem .2rem 1.4rem;margin:0;font-size:1rem;line-height:1.5}
.vsgym-apparatus-list li:before{content:counter(apparatus,decimal-leading-zero);grid-row:1/3;grid-column:1;font-weight:850;font-size:.9rem;color:#005f91;padding-top:.25rem}
.vsgym-apparatus-list li strong{grid-column:2;font-family:"Bebas Neue","Arial Narrow",Impact,sans-serif;font-size:clamp(1.6rem,2.5vw,2.05rem);text-transform:uppercase;color:#0b151d;line-height:1.1;font-weight:700}
.vsgym-apparatus-list li span{grid-column:2;color:#405261;margin-top:.35rem}
.vsgym-discipline-club{background:#081923;color:#fff;padding:clamp(3.2rem,6vw,5.5rem) 0}
.vsgym-discipline-club .vsgym-kicker{color:#9adfff}
.vsgym-discipline-club h2,.vsgym-discipline-club p{color:#fff}
.vsgym-discipline-club p:not(.vsgym-kicker){color:#dce8ef}
.vsgym-discipline-practical{background:#eef6fa;padding:clamp(3rem,5vw,4.5rem) 0}
.vsgym-discipline-practical .vsgym-wrap{max-width:1000px}
.vsgym-discipline-practical .vsgym-btn-row{margin-top:1.4rem}
.vsgym-discipline-practical .vsgym-btn-outline a{color:#0b202b!important;background:#fff!important;border-color:#0b202b!important}
.vsgym-discipline-practical .vsgym-btn-outline a:hover{background:#0b202b!important;color:#fff!important}
.vsgym-discipline-visual{padding:clamp(3.5rem,6vw,5rem) 0}
.vsgym-discipline-visual-grid>.wp-block-column:first-child{flex:0 0 34%}
.vsgym-photo-slot--compact{aspect-ratio:1.9;min-height:210px;max-height:410px;width:100%;padding:1rem}
.vsgym-photo-slot--compact:before{inset:12px}
@media (max-width: 1180px){.vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{min-width:0!important}}
@media(max-width:780px){
  .vsgym-page-intro--discipline{padding:3rem 0 2.7rem}
  .vsgym-page-intro--discipline h1{font-size:clamp(2.65rem,8vw,4.8rem)}
  .vsgym-discipline-summary,.vsgym-discipline-club-grid,.vsgym-discipline-visual-grid{flex-direction:column;align-items:stretch!important;gap:1.1rem}
  .vsgym-discipline-summary>.wp-block-column:first-child,.vsgym-discipline-visual-grid>.wp-block-column:first-child{flex-basis:auto}
  .vsgym-apparatus-list{grid-template-columns:1fr}
  .vsgym-photo-slot--compact{aspect-ratio:4/3;max-height:300px}
}
@media(max-width:400px){.vsgym-page-intro--discipline h1{font-size:clamp(2.3rem,10.6vw,3.35rem)}}
@media (prefers-reduced-motion: reduce){.vsgym-apparatus-list li{transition:none}}


/* VSGYM Élan 1.2.4 — schedules and the team page. */
.vsgym-hours-section h2{font-size:clamp(2.05rem,4.7vw,3.7rem);margin:0 0 .6rem}
.vsgym-hours-section .vsgym-hourly-intro{margin:2rem 0 1.4rem}
.vsgym-hourly-anchors{display:flex;flex-wrap:wrap;gap:.55rem;margin:0}
.vsgym-hourly-anchors a{display:inline-flex;align-items:center;min-height:44px;border:1px solid #b7d7e8;background:#fff;padding:.55rem .8rem;font-size:.82rem;font-weight:750;text-decoration:none;color:#00577b}
.vsgym-hourly-anchors a:hover{background:#cceeff;color:#001a25}
.vsgym-schedule-details{scroll-margin-top:7.5rem;margin:0 0 .7rem!important;border:1px solid #c0d5df;border-left:5px solid #009eff;background:#fff;padding:0!important}
.vsgym-schedule-details summary{cursor:pointer;position:relative;display:block;padding:1.15rem 3rem 1.15rem 1.35rem;font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;font-size:clamp(1.35rem,2.5vw,2rem);font-weight:700;color:#06121b;line-height:1.1;list-style:none}
.vsgym-schedule-details summary::-webkit-details-marker{display:none}
.vsgym-schedule-details summary:after{content:'+';position:absolute;right:1.35rem;top:50%;transform:translateY(-50%);font-family:system-ui,sans-serif;color:#006b9c;font-size:1.5rem;font-weight:500}
.vsgym-schedule-details[open] summary:after{content:'−'}
.vsgym-schedule-details summary:hover{background:#eef8ff}
.vsgym-schedule-details summary:focus-visible{outline:3px solid #a55000;outline-offset:3px}
.vsgym-detail-subtitle{margin:.25rem 1.35rem 1rem;color:#385264;font-size:.93rem}
.vsgym-slot-list{list-style:none!important;margin:0 1.35rem 1rem!important;padding:0!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.vsgym-slot-list li{margin:0!important;padding:1rem;background:#eff6fa;min-width:0;border-top:2px solid #b9dbe8;line-height:1.4}
.vsgym-slot-list li strong{display:block;color:#07141e;font-size:1rem;margin-bottom:.3rem}
.vsgym-slot-list li span{display:block;color:#263b47;font-size:.94rem}
.vsgym-slot-list li small{display:block;margin-top:.35rem;color:#405b6b;font-size:.8rem}
.vsgym-pdf-link{margin:0 1.35rem 1.25rem}
.vsgym-pdf-link a{display:inline-block;min-height:44px;padding:.65rem .8rem;border:2px solid #00577b;text-decoration:none;color:#00577b;font-weight:800;font-size:.85rem}
.vsgym-pdf-link a:hover{color:white;background:#00577b}
.vsgym-hourly-footnote{border-left:4px solid #009eff;padding:.8rem 1rem;background:#dceef9;margin-top:1.75rem}
.vsgym-venue-item h3{font-size:clamp(1.3rem,2.1vw,1.75rem)}
.vsgym-venue-map{margin-top:.65rem!important}
.vsgym-venue-map a{display:inline-block;min-height:44px;padding:.6rem .2rem}
.vsgym-cta-minor{background:#081923;color:#fff}
.vsgym-cta-minor :where(h2,p){color:#fff}
.vsgym-cta-minor .vsgym-button-link{color:#fff;border-color:#fff}
.vsgym-cta-minor .vsgym-button-link:hover{color:#001821;background:#fff}
.vsgym-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin:2rem 0}
.vsgym-member{background:#f0f6f9;border-top:4px solid #009eff;padding:1.35rem;min-width:0}
.vsgym-member-portrait{margin:0 0 1.2rem!important}
.vsgym-member-portrait img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#dceef8}
.vsgym-member h3{font-size:clamp(1.45rem,2.7vw,2rem);margin:0 0 .3rem}
.vsgym-member-role{font-size:.91rem;color:#385464;margin:0}
.vsgym-team-footnote{font-size:.9rem;color:#546a78}
.vsgym-coach-links{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.6rem}
.vsgym-coach-links .vsgym-coach-link{margin:0}
.vsgym-coach-link .vsgym-button-link{margin:0;background:#fff}
@media(max-width:800px){.vsgym-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.vsgym-slot-list{grid-template-columns:1fr}.vsgym-schedule-details summary{padding:1rem 3rem 1rem 1rem}.vsgym-detail-subtitle{margin-left:1rem}.vsgym-slot-list{margin:0 1rem 1rem!important}.vsgym-pdf-link{margin-left:1rem}.vsgym-team-grid{grid-template-columns:1fr}.vsgym-member-portrait img{aspect-ratio:7/3}.vsgym-coach-links .vsgym-coach-link{width:100%}}
@media(prefers-reduced-motion:reduce){.vsgym-hourly-anchors a,.vsgym-schedule-details summary{scroll-behavior:auto}}


/* VSGYM Élan 1.2.5 — inscription dans l'application MonClub. */
.vsgym-signup-intro{padding:clamp(3.3rem,5vw,4.7rem) 0 clamp(2.9rem,4vw,3.8rem)}
.vsgym-signup-intro h1{max-width:21ch;font-size:clamp(3rem,6.4vw,6rem)}
.vsgym-signup-access{background:#061821;color:#fff;padding:clamp(2.7rem,5.5vw,5.3rem) 0}
.vsgym-signup-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:clamp(1.5rem,5vw,5rem);align-items:center}
.vsgym-signup-context h2{color:#fff;margin:.35rem 0 1.15rem;font-size:clamp(2.4rem,4.5vw,4.3rem);line-height:1.04;max-width:15ch}
.vsgym-signup-context p:not(.vsgym-kicker){color:#d6e9f0;line-height:1.62;max-width:53ch}
.vsgym-signup-context .vsgym-kicker{color:#8cdeff}
.vsgym-store-links{gap:.75rem;margin:1.65rem 0 0}
body .vsgym-store-links .vsgym-btn a{background:#009eff!important;color:#001622!important;border:2px solid #009eff!important;min-height:48px;padding:.9rem 1.05rem;display:inline-flex;align-items:center}
body .vsgym-store-links .vsgym-btn a:hover{background:#b4eaff!important;border-color:#b4eaff!important;color:#001622!important}
body .vsgym-store-links .vsgym-btn-outline a{color:#fff!important;border:2px solid #fff!important;background:transparent!important}
body .vsgym-store-links .vsgym-btn-outline a:hover{color:#001622!important;background:#fff!important}
.vsgym-signup-pass{background:#009eff;color:#001821;padding:clamp(1.6rem,4vw,2.8rem);position:relative;box-shadow:10px 10px 0 rgba(0,158,255,.12)}
.vsgym-signup-pass:before{content:"";position:absolute;right:0;top:0;border-top:1.25rem solid #061821;border-left:1.25rem solid transparent}
.vsgym-signup-pass .vsgym-signup-code-label{font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;font-weight:850;color:#003750;margin:0 0 .65rem}
.vsgym-monclub-code-value{font-family:'Bebas Neue','Arial Narrow',Impact,sans-serif;font-size:clamp(3.7rem,8.4vw,6.7rem);font-weight:800;line-height:1.05;letter-spacing:.04em;margin:0 0 .2rem;text-transform:lowercase;overflow-wrap:anywhere}
.vsgym-monclub-code-value strong{font-weight:inherit}
.vsgym-signup-code-note{font-size:.93rem;font-weight:650;margin:0 0 1.35rem;color:#003348}
.vsgym-signup-code-info{border-top:1px solid rgba(0,24,33,.25);padding-top:1rem;margin:1.15rem 0 0;font-size:.9rem;line-height:1.55;color:#003348}
.vsgym-code-copy{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:#001821;border:2px solid #001821;color:#fff;font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;padding:.65rem 1.15rem;cursor:pointer;transition:background .16s,color .16s}
.vsgym-code-copy:hover{background:#fff;color:#001821}
.vsgym-code-copy:focus-visible{outline:3px solid #fff;outline-offset:3px}
.vsgym-code-copy-feedback{display:block;min-height:1.5rem;margin-top:.4rem;color:#003348;font-weight:600;font-size:.85rem}
.vsgym-signup-process{padding-top:clamp(3rem,5vw,4.4rem)}
.vsgym-signup-process .vsgym-section-title{font-size:clamp(2.5rem,5vw,4.4rem)}
.vsgym-signup-steps{gap:.75rem}
.vsgym-signup-steps .vsgym-step{min-height:180px;padding:1.4rem 1.2rem}
.vsgym-signup-steps .vsgym-step h3{font-size:clamp(1.45rem,2.1vw,1.85rem);line-height:1.15}
.vsgym-signup-steps .vsgym-step p{line-height:1.6;color:#355064}
.vsgym-signup-practical{padding:clamp(2.5rem,5vw,4rem) 0 clamp(3rem,6vw,5rem);background:#eef6fa}
.vsgym-signup-practical h2{font-size:clamp(2.2rem,4vw,3.3rem)}
.vsgym-signup-practical .vsgym-btn-outline a{color:#001821!important;background:transparent!important;border-color:#001821!important}
.vsgym-signup-practical .vsgym-btn-outline a:hover{background:#001821!important;color:#fff!important}
@media(max-width:850px){.vsgym-signup-layout{grid-template-columns:1fr}.vsgym-signup-context h2{max-width:none}.vsgym-signup-pass{max-width:560px}.vsgym-signup-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:470px){.vsgym-signup-intro h1{font-size:clamp(2.6rem,11vw,3.7rem)}.vsgym-signup-pass{padding:1.45rem}.vsgym-signup-steps{grid-template-columns:1fr}.vsgym-signup-steps .vsgym-step{min-height:unset}.vsgym-store-links>.wp-block-button{width:100%}.vsgym-store-links .wp-block-button a{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.vsgym-code-copy{transition:none}}


/* VSGYM Élan 1.2.7 — non-destructive typography resilience for legal content. */
.vsgym-prose .vsgym-narrow,
.vsgym-prose .vsgym-narrow > * { min-width:0; max-width:100%; }
.vsgym-prose .vsgym-narrow :is(h2,h3,p,li,a) { overflow-wrap:break-word; }
@media (max-width: 600px) {
  .vsgym-prose .vsgym-narrow :is(h2,.wp-block-heading) {
    font-size:clamp(1.9rem, 7.3vw, 2.65rem);
    line-height:1.14;
  }
}

/* VSGYM Élan 1.2.8 — Bandeau identitaire, rythme régulier et animation continue. */
.vsgym-logo-strip {
  --vsgym-logo-gap:clamp(32px,3.4vw,54px);
  color:#172633;
  background:#fff;
  border-block:1px solid #d7e4ec;
  overflow:hidden;
  padding:clamp(1.1rem,2vw,1.45rem) 0 clamp(1.3rem,2.4vw,1.7rem);
}
.vsgym-logo-strip__intro {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  flex-wrap:wrap;
  gap:.4rem 1.25rem;
  margin:0 auto clamp(.9rem,1.8vw,1.15rem);
  width:min(var(--vsg-wide),calc(100% - var(--vsg-gutter)*2));
}
.vsgym-logo-strip__eyebrow {
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.16em;
  color:#00689b;
}
.vsgym-logo-strip__text {
  font-size:.9rem;
  font-weight:600;
  color:#485c6b;
}
.vsgym-logo-strip__mask {
  position:relative;
  width:100%;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);
}
.vsgym-logo-strip__track {
  display:flex;
  align-items:center;
  width:max-content;
  animation:vsgym-logo-strip-marquee var(--vsgym-logo-duration, 56s) linear infinite;
  animation-play-state:running;
  will-change:transform;
}
.vsgym-logo-strip__group {
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:var(--vsgym-logo-gap);
  /* Half a gap on each edge maintains the same spacing across the loop seam. */
  padding-inline:calc(var(--vsgym-logo-gap) / 2);
}
.vsgym-logo-strip__item {
  display:flex;
  flex:0 0 166px;
  width:166px;
  min-width:0;
  height:83px;
  align-items:center;
  justify-content:center;
}
.vsgym-logo-strip__item img {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
/* Tailored to the transparent canvas ratio of the actual supplied club files. */
.vsgym-logo-strip__item.vsgym-logo-full img { max-width:98px; max-height:82px; }
.vsgym-logo-strip__item.vsgym-logo-lion img { max-width:75px; max-height:65px; }
.vsgym-logo-strip__item.vsgym-logo-wordmark img { max-width:162px; max-height:52px; }
.vsgym-logo-strip__item.vsgym-logo-footer img { max-width:99px; max-height:71px; }
/* Hovering or tabbing never pauses the carousel. */
@keyframes vsgym-logo-strip-marquee {
  from {transform:translateX(0);}
  to {transform:translateX(-50%);}
}
@media (max-width:600px) {
  .vsgym-logo-strip { --vsgym-logo-gap:24px; padding-block:1rem 1.2rem; }
  /* Mobile: progressive entry/exit rather than a sudden appearance at the edges. */
  .vsgym-logo-strip__mask {
    -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 16%,#000 84%,transparent 100%);
    mask-image:linear-gradient(to right,transparent 0%,#000 16%,#000 84%,transparent 100%);
  }
  .vsgym-logo-strip__intro { margin-bottom:.85rem; }
  .vsgym-logo-strip__item { flex-basis:125px; width:125px; height:66px; }
  .vsgym-logo-strip__item.vsgym-logo-full img { max-width:83px; max-height:68px; }
  .vsgym-logo-strip__item.vsgym-logo-lion img { max-width:65px; max-height:54px; }
  .vsgym-logo-strip__item.vsgym-logo-wordmark img { max-width:123px; max-height:42px; }
  .vsgym-logo-strip__item.vsgym-logo-footer img { max-width:78px; max-height:58px; }
  .vsgym-logo-strip__text { font-size:.8rem; }
  .vsgym-logo-strip__track { animation-duration:var(--vsgym-logo-duration, 56s); }
}
/* Accessibility: people requesting reduced motion see one static, wrapped set of logos. */
@media (prefers-reduced-motion:reduce) {
  .vsgym-logo-strip__mask { -webkit-mask-image:none; mask-image:none; }
  .vsgym-logo-strip__track { width:100%; animation:none; will-change:auto; }
  .vsgym-logo-strip__group { flex:1 1 100%; justify-content:center; flex-wrap:wrap; row-gap:.65rem; }
  .vsgym-logo-strip__group[aria-hidden="true"] { display:none; }
  .vsgym-logo-strip__item[aria-hidden="true"] { display:none; }
}

/* 1.2.9: continuous, viewport-filled strip without blank stretches; no hover pause. */
.vsgym-logo-strip__track { gap:0; }
.vsgym-logo-strip__group { white-space:nowrap; }

/* VSGYM 1.2.11: All club/federation logos link to their official sites; Villemomble Sports crest intentionally does not. */
.vsgym-logo-strip__link {
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  text-decoration:none; color:inherit; cursor:pointer; border-radius:5px;
}
.vsgym-logo-strip__link:hover img { filter:brightness(1.03); }
.vsgym-logo-strip__link:focus-visible {
  outline:3px solid #009eff; outline-offset:4px;
}
.vsgym-logo-strip__item.vsgym-logo-ffgym img { max-width:151px; max-height:72px; }
.vsgym-logo-strip__item.vsgym-logo-fsgt img { max-width:109px; max-height:75px; }
.vsgym-logo-strip__item.vsgym-logo-villemomble-sports img { max-width:79px; max-height:79px; }
@media (max-width:600px) {
  .vsgym-logo-strip__item.vsgym-logo-ffgym img { max-width:119px; max-height:55px; }
  .vsgym-logo-strip__item.vsgym-logo-fsgt img { max-width:81px; max-height:59px; }
  .vsgym-logo-strip__item.vsgym-logo-villemomble-sports img { max-width:59px; max-height:60px; }
}


/* VSGYM Élan 1.2.12 — première direction photographique. Seulement sur l'accueil.
   Le fond est une illustration générée, pas une photographie d'adhérents.
   Toujours privilégier l'ajout ultérieur de véritables photos VSGYM avec autorisations. */
body.home .vsgym-hero,
body.front-page .vsgym-hero {
  isolation: isolate;
  min-height: clamp(540px, 55vw, 710px);
  background-color: #071522;
  background-image:
    linear-gradient(90deg, #04111cef 0%, #061520e8 27%, #061522bc 49%, #06152244 72%, #06152218 100%),
    url('../images/vsgym-accueil-sol-2026.webp');
  background-position: center, center 49%;
  background-repeat: no-repeat;
  background-size: cover;
}
body.home .vsgym-hero::before,
body.front-page .vsgym-hero::before {
  z-index: -1;
  background-image:
    radial-gradient(circle at center, rgba(0,158,255,.64) 1.2px, transparent 1.7px),
    linear-gradient(135deg,transparent 40%,rgba(0,158,255,.06) 40.12%,transparent 40.3%);
  background-size: 22px 22px, cover;
  background-position: right 45px top 65px, center;
  background-repeat: repeat, no-repeat;
  mask-image: linear-gradient(90deg, transparent 52%, #000 100%);
  pointer-events: none;
  opacity: .33;
}
body.home .vsgym-hero::after,
body.front-page .vsgym-hero::after {
  z-index: 2;
  inset: auto auto 0 0;
  transform: none;
  width: min(320px, 25vw);
  height: 7px;
  background: #009eff;
  opacity: 1;
  pointer-events: none;
}
body.home .vsgym-hero-inner,
body.front-page .vsgym-hero-inner {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: min(1380px, calc(100% - var(--vsg-gutter)*2));
  padding-block: clamp(4.8rem, 9vw, 8.5rem);
  position: relative;
  z-index: 1;
}
body.home .vsgym-hero-inner > :first-child,
body.front-page .vsgym-hero-inner > :first-child {
  max-width: min(670px, 62vw);
}
body.home .vsgym-hero h1,
body.front-page .vsgym-hero h1 {
  font-size: clamp(3.7rem, 6vw, 6.5rem);
  max-width: 15ch;
  text-wrap: balance;
  text-shadow: 0 2px 22px rgba(0,0,0,.22);
}
body.home .vsgym-hero .vsgym-hero-text,
body.front-page .vsgym-hero .vsgym-hero-text {
  color: #e6f2f7;
  font-size: clamp(1.03rem, 1.5vw, 1.28rem);
  max-width: 47ch;
  line-height: 1.65;
}
body.home .vsgym-hero .vsgym-kicker,
body.front-page .vsgym-hero .vsgym-kicker { color: #bdeaff; }
body.home .vsgym-hero .vsgym-btn-row,
body.front-page .vsgym-hero .vsgym-btn-row {gap:.8rem;}
/* Le lion figure deja dans l'en-tete : sur cette page il ne cache pas la gymnaste. */
body.home .vsgym-hero-mark,
body.front-page .vsgym-hero-mark,
body.home .vsgym-hero-photo-slot,
body.front-page .vsgym-hero-photo-slot { display:none!important; }
body.home .vsgym-hero-illustration-note,
body.front-page .vsgym-hero-illustration-note {
  position: absolute;
  bottom: 20px;
  right: max(var(--vsg-gutter), calc((100vw - 1380px)/2));
  margin: 0;
  z-index: 3;
  color: #e6eff6;
  text-align: right;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .015em;
  text-shadow: 0 1px 4px #000;
}
/* Vocabulaire graphique VSGYM sur les autres blocs de la page d'accueil. */
body.home .vsgym-quick-grid,
body.front-page .vsgym-quick-grid {border-top: 3px solid #009eff;}
body.home .vsgym-discipline-card,
body.front-page .vsgym-discipline-card {border-top-width: 4px;}
body.home .vsgym-discipline-card:nth-child(even)::after,
body.front-page .vsgym-discipline-card:nth-child(even)::after {
  border-radius: 0;
  border: 0;
  width: 122px;
  height: 122px;
  background: radial-gradient(circle, rgba(0,158,255,.19) 2px, transparent 2.7px) 0 0 / 17px 17px;
  transform: rotate(-8deg);
  right: -12px;
  bottom: -10px;
}
@media (max-width: 900px){
  body.home .vsgym-hero, body.front-page .vsgym-hero { min-height: 575px; background-position: center, 62% center; }
  body.home .vsgym-hero-inner > :first-child, body.front-page .vsgym-hero-inner > :first-child {max-width: 70vw;}
}
@media (max-width: 750px){
  body.home .vsgym-hero, body.front-page .vsgym-hero {
    min-height: 0;
    background-image:
      linear-gradient(180deg, #04111cf3 0%, #04111ce8 45%, #0615209b 78%, #06152288 100%),
      url('../images/vsgym-accueil-sol-2026.webp');
    background-position: center, 64% center;
    background-size: cover;
  }
  body.home .vsgym-hero-inner, body.front-page .vsgym-hero-inner {
    width: min(100% - 36px, 650px);
    display: block;
    padding: 4.5rem 0 6rem;
  }
  body.home .vsgym-hero-inner > :first-child, body.front-page .vsgym-hero-inner > :first-child {max-width: 100%;}
  body.home .vsgym-hero h1, body.front-page .vsgym-hero h1 {font-size: clamp(3.15rem, 11vw, 5.2rem);max-width: 13ch;line-height: 1;}
  body.home .vsgym-hero-illustration-note, body.front-page .vsgym-hero-illustration-note {right:18px;bottom:14px;left:18px;}
}
@media (max-width: 430px){
  body.home .vsgym-hero h1, body.front-page .vsgym-hero h1 {font-size: clamp(2.8rem, 11.4vw, 3.7rem);line-height: 1.02;}
  body.home .vsgym-hero .vsgym-hero-text, body.front-page .vsgym-hero .vsgym-hero-text {font-size: 1rem;}
  body.home .vsgym-hero-inner, body.front-page .vsgym-hero-inner {padding: 3.8rem 0 5.5rem;}
}
@media (prefers-reduced-motion: reduce) {
  body.home .vsgym-hero, body.front-page .vsgym-hero {scroll-behavior: auto;}
}


/* VSGYM Élan 1.2.13 — photographie authentique fournie pour la maquette locale.
   Vérifier les droits des photographes et les autorisations des représentants légaux
   avant tout transfert de ces images sur le site public. */
body.home .vsgym-hero, body.front-page .vsgym-hero {
  background-color:#06111a;
  background-image:
    linear-gradient(90deg,rgba(2,13,21,.97) 0%,rgba(2,13,21,.93) 27%,rgba(2,13,21,.67) 48%,rgba(2,13,21,.13) 77%,rgba(2,13,21,.13) 100%),
    url('../images/vsgym-accueil-sol-2026.webp');
  background-position:center,center 47%;
}
/* Galerie éditoriale en sortie de hero ; tous les textes WordPress restent inchangés. */
.vsgym-photo-highlights { margin:0!important; background:#f4f8fb; border-bottom:1px solid #dce9ef; padding:clamp(2.8rem,5vw,5.1rem) 0 clamp(3.2rem,5vw,5.4rem); }
.vsgym-photo-highlights__inner {width:min(1320px,calc(100% - var(--vsg-gutter)*2));margin-inline:auto;}
.vsgym-photo-highlights__heading {margin-bottom:1.75rem;max-width:950px;}
.vsgym-photo-highlights__eyebrow {font-size:.76rem;font-weight:850;letter-spacing:.19em;color:#007fc9;}
.vsgym-photo-highlights__heading h2 {color:#081923;font-family:"Bebas Neue","Arial Narrow",Impact,sans-serif;font-size:clamp(2.0rem,4.2vw,3.8rem);line-height:1.08;margin:.6rem 0 .7rem;}
.vsgym-photo-highlights__heading p {font-size:1rem;color:#455967;margin:0;line-height:1.55;}
.vsgym-photo-highlights__grid {display:grid;grid-template-columns:1.13fr .9fr 1fr;gap:clamp(.8rem,1.5vw,1.3rem);}
.vsgym-photo-highlights__card {position:relative;min-width:0;overflow:hidden;background:#071822;color:#fff;isolation:isolate;min-height:310px;margin:0;border-radius:2px;}
.vsgym-photo-highlights__card::after {content:'';pointer-events:none;position:absolute;inset:24% 0 0;background:linear-gradient(180deg,transparent,#04121bd9);z-index:1;}
.vsgym-photo-highlights__card img {width:100%;height:100%;min-height:310px;max-height:390px;object-fit:cover;display:block;transition:transform .4s ease;}
.vsgym-photo-highlights__card:hover img {transform:scale(1.03);}
.vsgym-photo-highlights__card-body {position:absolute;z-index:2;inset:auto 1.4rem 1.15rem;}
.vsgym-photo-highlights__card-body span {color:#a9e4ff;font-size:.7rem;font-weight:800;letter-spacing:.17em;}
.vsgym-photo-highlights__card-body p {color:#fff!important;font-size:clamp(1.12rem,1.55vw,1.4rem);line-height:1.3;font-weight:720;margin:.38rem 0 0;}
.vsgym-photo-highlights__card:nth-child(2) img {object-position:50% 52%;}
.vsgym-photo-highlights__card:nth-child(3) img {object-position:50% 38%;}
/* Galerie / photo discipline remplace seulement les zones photo préexistantes. */
.vsgym-editorial-photo {margin:0!important;position:relative;width:100%;height:auto;overflow:hidden;background:#061923;min-height:260px;aspect-ratio:16/10;border-radius:2px;}
.vsgym-editorial-photo--compact {aspect-ratio:1.65;min-height:220px;}
.vsgym-editorial-photo img {display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.vsgym-editorial-photo figcaption {position:absolute;bottom:0;left:0;right:0;padding:2.8rem 1rem .95rem;color:#fff;background:linear-gradient(transparent,rgba(2,12,20,.88));font-size:.85rem;letter-spacing:.015em;font-weight:720;line-height:1.35;}
/* Zones non documentées : rendu cohérent en attendant des photos autorisées TeamGym/Baby/Adultes. */
.vsgym-photo-slot {background:#091b28;color:#c4e9fa;border:1px solid #315976;min-height:230px;}
.vsgym-photo-slot::before {inset:15px;border:1px solid #2d6889;background:radial-gradient(circle at 85% 15%,rgba(0,158,255,.22),transparent 55%);}
.vsgym-photo-slot p {z-index:1;color:#d3e9f5;}
@media(max-width:900px){
 .vsgym-photo-highlights__card:last-child {grid-column:1/-1;max-height:300px;}
 .vsgym-photo-highlights__card:last-child img {max-height:300px;}
}
@media(max-width:750px){
 body.home .vsgym-hero,body.front-page .vsgym-hero {
  background-image:linear-gradient(180deg,rgba(2,13,21,.95) 0%,rgba(2,13,21,.84) 52%,rgba(2,13,21,.63) 100%),url('../images/vsgym-accueil-sol-2026.webp');
  background-position:center,58% center;
 }
 .vsgym-photo-highlights__grid {grid-template-columns:1fr;}
 .vsgym-photo-highlights__card,.vsgym-photo-highlights__card img {min-height:240px;height:300px;}
 .vsgym-photo-highlights__card:last-child {grid-column:auto;max-height:none;}
 .vsgym-photo-highlights__heading h2 {font-size:clamp(1.8rem,8vw,2.9rem);}
 .vsgym-editorial-photo {aspect-ratio:4/3;min-height:200px;}
}
@media(prefers-reduced-motion:reduce){.vsgym-photo-highlights__card img {transition:none;}}

/* Ajustement final du hero : vraie photo dans la moitié droite, texte dégagé à gauche. */
body.home .vsgym-hero,body.front-page .vsgym-hero {
 background-image:linear-gradient(116deg,#03101a 0%,#051a27 59%,#062231 100%);
}
body.home .vsgym-hero::before,body.front-page .vsgym-hero::before {
 inset:0 0 0 42%;z-index:-1;
 background-image:linear-gradient(90deg,#04131f 0%,rgba(4,19,31,.21) 30%,rgba(4,19,31,.23) 100%),linear-gradient(rgba(2,16,28,.19),rgba(2,16,28,.19)),url('../images/vsgym-accueil-sol-2026.webp');
 background-repeat:no-repeat;background-position:center,center,42% 49%;background-size:cover;
 mask-image:none;opacity:1;
}
@media(max-width:900px){
 body.home .vsgym-hero::before,body.front-page .vsgym-hero::before {inset:0 0 0 36%;opacity:.68;}
}
@media(max-width:750px){
 body.home .vsgym-hero::before,body.front-page .vsgym-hero::before {
   inset:0;opacity:.32;
   background-image:linear-gradient(180deg,rgba(1,11,19,.7),rgba(1,11,19,.8)),url('../images/vsgym-accueil-sol-2026.webp');
   background-position:center,47% center;background-size:cover;
 }
}


/* VSGYM Élan 1.2.14 — système graphique sportif + galerie navigable.
   Motifs CSS non intrusifs, sans redessiner les logos officiels. */
body.home .vsgym-photo-highlights,
body.front-page .vsgym-photo-highlights {
  isolation:isolate;position:relative;overflow:hidden;
  padding:clamp(4rem,7vw,7.2rem) 0 clamp(4.4rem,7vw,7.4rem);
  background-color:#eff5f8;
  background-image:linear-gradient(140deg,rgba(0,158,255,.055) 0 16%,transparent 16.06% 100%),
    repeating-linear-gradient(90deg,transparent 0 159px,rgba(28,89,119,.04) 160px 161px);
  border:0;
}
.vsgym-photo-highlights::before {
  content:"";position:absolute;z-index:-1;top:1rem;right:max(1rem,calc((100vw - 1370px)/2));
  width:clamp(120px,22vw,360px);height:clamp(120px,22vw,360px);
  background:radial-gradient(circle,rgba(0,126,190,.22) 1.8px,transparent 2.6px) 0 0 / 17px 17px;
  mask-image:linear-gradient(115deg,transparent 0%,#000 48%,#000 100%);
  pointer-events:none;
}
.vsgym-photo-highlights::after {
  content:"";position:absolute;z-index:-1;right:-120px;bottom:22px;
  width:clamp(220px,29vw,470px);height:54px;transform:skewX(-28deg);
  border-top:10px solid rgba(0,158,255,.16);
  border-bottom:8px solid rgba(0,158,255,.09);pointer-events:none;
}
.vsgym-photo-highlights__inner {width:min(1320px,calc(100% - var(--vsg-gutter)*2));position:relative;}
.vsgym-photo-highlights__heading {max-width:990px;padding-left:clamp(0px,1.2vw,20px);border-left:4px solid #009eff;margin-bottom:clamp(2rem,3.5vw,3.4rem);}
.vsgym-photo-highlights__eyebrow {display:inline-flex;gap:.6rem;align-items:center;margin-left:clamp(.7rem,1.6vw,1.7rem);color:#0075aa;font-size:.77rem;letter-spacing:.2em;}
.vsgym-photo-highlights__heading h2 {font-size:clamp(2.3rem,4.6vw,4.7rem);margin:.65rem 0 .8rem clamp(.7rem,1.6vw,1.7rem);max-width:22ch;letter-spacing:-.01em;line-height:1.05;}
.vsgym-photo-highlights__heading p {margin-left:clamp(.7rem,1.6vw,1.7rem);max-width:63ch;line-height:1.6;}
.vsgym-photo-highlights__grid {gap:clamp(.8rem,1.65vw,1.5rem);grid-template-columns:1.13fr .9fr 1fr;}
a.vsgym-photo-highlights__card {display:block;position:relative;text-decoration:none!important;color:#fff!important;min-height:335px;overflow:hidden;cursor:pointer;box-shadow:0 14px 24px rgba(0,20,34,.09);border:1px solid rgba(7,42,60,.14);transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;}
a.vsgym-photo-highlights__card:hover {transform:translateY(-6px);box-shadow:0 22px 45px rgba(0,30,47,.20);}
a.vsgym-photo-highlights__card:focus-visible {outline:4px solid #0058b0;outline-offset:4px;}
.vsgym-photo-highlights__card::before {content:"";display:block;position:absolute;z-index:2;top:0;left:0;width:38%;height:6px;background:#009eff;transform:scaleX(.4);transform-origin:left;transition:transform .3s ease;pointer-events:none;}
.vsgym-photo-highlights__card:hover::before,.vsgym-photo-highlights__card:focus-visible::before {transform:scaleX(1);}
.vsgym-photo-highlights__card::after {inset:25% 0 0;background:linear-gradient(180deg,transparent,rgba(3,16,25,.92));}
.vsgym-photo-highlights__card img {display:block;width:100%;height:100%;max-height:none;min-height:335px;object-fit:cover;filter:saturate(.93);transition:transform .42s ease,filter .3s ease;}
.vsgym-photo-highlights__card:hover img {transform:scale(1.045);filter:saturate(1.04);}
.vsgym-photo-highlights__number {position:absolute;z-index:2;top:20px;right:19px;display:grid;place-items:center;width:49px;height:49px;border:1px solid rgba(255,255,255,.75);background:rgba(4,21,31,.45);backdrop-filter:blur(4px);font-weight:900;font-size:1.05rem;font-variant-numeric:tabular-nums;}
.vsgym-photo-highlights__card-body {position:absolute;z-index:3;bottom:1.3rem;left:1.4rem;right:1.35rem;display:flex;flex-direction:column;align-items:flex-start;gap:.38rem;}
.vsgym-photo-highlights__tag {font-size:.72rem;letter-spacing:.17em;font-weight:900;color:#a3e0ff;}
.vsgym-photo-highlights__card-title {display:block;font-weight:800;color:#fff!important;font-size:clamp(1.15rem,1.6vw,1.52rem);line-height:1.24;max-width:22ch;}
.vsgym-photo-highlights__action {margin-top:.65rem;border-top:1px solid rgba(255,255,255,.42);padding-top:.76rem;width:100%;display:flex;align-items:center;justify-content:space-between;gap:.9rem;color:#ebf9ff;font-size:.79rem;font-weight:750;letter-spacing:.01em;}
.vsgym-photo-highlights__arrow {font-size:1.5rem;line-height:1;color:#85d6ff;transition:transform .2s;}
.vsgym-photo-highlights__card:hover .vsgym-photo-highlights__arrow {transform:translate(3px,-3px);}
/* Key visual accents on existing home sections, not on legal pages. */
body.home .vsgym-quick-section,body.front-page .vsgym-quick-section {position:relative;}
body.home .vsgym-quick-section::before,body.front-page .vsgym-quick-section::before {content:"";position:absolute;left:0;top:0;width:min(310px,24vw);height:5px;background:#009eff;z-index:1;pointer-events:none;}
body.home .vsgym-discipline-grid .vsgym-discipline-card,body.front-page .vsgym-discipline-grid .vsgym-discipline-card {border-top-color:#009eff;}
body.home .vsgym-discipline-card:nth-child(3n+1)::before,body.front-page .vsgym-discipline-card:nth-child(3n+1)::before {content:"";position:absolute;top:-14px;right:28px;width:54px;height:124px;transform:skew(-21deg);border-left:9px solid rgba(0,158,255,.09);border-right:9px solid rgba(0,158,255,.06);pointer-events:none;}
@media(max-width:900px){
 .vsgym-photo-highlights__grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .vsgym-photo-highlights__card:last-child {grid-column:1 / -1;}
 .vsgym-photo-highlights__card:last-child img {max-height:335px;}
}
@media(max-width:750px){
 .vsgym-photo-highlights__grid {grid-template-columns:1fr;gap:1rem;}
 .vsgym-photo-highlights__card:last-child {grid-column:auto;}
 a.vsgym-photo-highlights__card,.vsgym-photo-highlights__card img {min-height:280px;height:310px;}
 .vsgym-photo-highlights__card:last-child img {max-height:none;}
 .vsgym-photo-highlights__heading h2 {font-size:clamp(2rem,8vw,3rem);}
 .vsgym-photo-highlights::before {opacity:.5;width:170px;height:170px;}
}
@media(prefers-reduced-motion:reduce){
 a.vsgym-photo-highlights__card,.vsgym-photo-highlights__card img,.vsgym-photo-highlights__card::before,.vsgym-photo-highlights__arrow {transition:none!important;}
}


/* VSGYM Élan 1.2.15 — Cartes uniformes, terminologie explicite, sous-menus au survol. */
.vsgym-discipline-grid {
  align-items: stretch;
  grid-auto-rows: 1fr;
}
.vsgym-discipline-grid > .vsgym-discipline-card {
  min-width: 0;
  min-height: 330px;
  height: 100%;
  margin: 0!important; /* Supprime les marges Gutenberg des cartes 2 et 3 */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  padding: clamp(1.35rem, 2.25vw, 2.15rem);
  isolation: isolate;
}
.vsgym-discipline-card > * { position: relative; z-index: 1; }
.vsgym-discipline-card > .vsgym-kicker {
  margin: 0 0 1.1rem!important;
  font-size: .7rem;
  line-height: 1.3;
  letter-spacing: .13em;
}
.vsgym-discipline-card > h3 {
  margin: 0 0 .35rem!important;
  line-height: 1.07;
  font-size: clamp(2rem, 2.8vw, 2.7rem);
  overflow-wrap: break-word;
}
.vsgym-discipline-card > .vsgym-discipline-fullname {
  display: block;
  min-height: 2.65em;
  margin: 0 0 1.15rem!important;
  color: #24475b;
  font-size: clamp(.82rem, 1.1vw, .92rem);
  font-weight: 780;
  line-height: 1.35;
  max-width: 32ch;
}
.vsgym-discipline-card > p:not(.vsgym-kicker):not(.vsgym-discipline-fullname):not(:last-child) {
  margin: 0 0 1.2rem!important;
  max-width: 36ch;
  line-height: 1.5;
}
.vsgym-discipline-card > p:last-child {
  margin: auto 0 0!important;
  padding-top: .9rem;
}
.vsgym-discipline-card > p:last-child a { min-height: 34px; display: inline-flex; align-items: center; }
/* Sur ordinateur avec pointeur : aucun clic nécessaire pour dérouler. */
@media (min-width: 1181px) and (hover: hover) and (pointer: fine) {
  .vsgym-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open)
  .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
  .vsgym-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open)
  .wp-block-navigation-item.wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container {
    display: block!important;
    visibility: visible!important;
    opacity: 1!important;
    width: max-content!important;
    max-width: min(400px, 85vw);
    height: auto!important;
    min-height: 0!important;
    overflow: visible!important;
    pointer-events: auto!important;
    clip: auto!important;
    transform: none!important;
  }
}
/* L'ouverture au clavier doit fonctionner aussi sur ordinateur sans souris. */
@media (min-width: 1181px) {
  .vsgym-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open)
  .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container,
  .vsgym-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open)
  .wp-block-navigation-item.wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container {
    display: block!important;
    visibility: visible!important;
    opacity: 1!important;
    width: max-content!important;
    max-width: min(400px, 85vw);
    height: auto!important;
    overflow: visible!important;
    pointer-events: auto!important;
  }
}
/* Le menu mobile reste piloté par le clic natif Gutenberg. */
@media (max-width: 750px) {
  .vsgym-discipline-grid > .vsgym-discipline-card { min-height: 295px; }
  .vsgym-discipline-card > .vsgym-discipline-fullname { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .vsgym-discipline-card { transition: none!important; }
}


/* VSGYM Élan 1.2.16 — Navigation en cartes homogènes, sans chiffres.
   Les blocs existants restent éditables, seuls leur affichage et interactions changent. */
.vsgym-quick-grid {
  gap: clamp(.75rem,1.25vw,1.15rem)!important;
  background: transparent!important;
  border: 0!important;
  grid-auto-rows: 1fr;
  padding: clamp(.9rem,1.6vw,1.4rem) var(--vsg-gutter)!important;
  transform: none!important;
}
body.home .vsgym-quick-grid, body.front-page .vsgym-quick-grid {
  border-top: 0!important;
}
.vsgym-quick-grid > .vsgym-quick-link, a.vsgym-quick-link {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: .52rem;
  isolation: isolate;
  min-width: 0;
  min-height: 195px;
  height: 100%;
  margin: 0!important;
  padding: clamp(1.35rem,2.05vw,2.2rem);
  overflow: hidden;
  border: 1px solid #d6e5ed;
  border-top: 4px solid #009eff;
  background: #f0f7fa;
  box-shadow: 0 9px 24px rgba(0,43,66,.045);
  color: #0c202a!important;
  text-decoration: none!important;
  transform: translateY(0);
  transition: transform .24s ease, box-shadow .24s ease, background .24s ease;
}
a.vsgym-quick-link:nth-child(even){background:#e5f4fc;}
a.vsgym-quick-link:hover,
a.vsgym-quick-link:focus-visible {
  color: #061a25!important;
  background: #d8effb;
  box-shadow: 0 17px 34px rgba(0,43,66,.13);
  transform: translateY(-5px);
}
a.vsgym-quick-link:focus-visible{outline:3px solid #005ba7;outline-offset:3px;}
.vsgym-quick-link::before {
  content: '';
  position: absolute;
  z-index: -1;
  right: -10px;
  top: 8px;
  width: 114px;
  height: 108px;
  opacity: .52;
  background: radial-gradient(circle,#009eff55 1.6px,transparent 2.1px) 0 0/15px 15px;
  transform: rotate(-10deg);
  pointer-events: none;
}
a.vsgym-quick-link:nth-child(2n)::before{
  background: repeating-linear-gradient(115deg,transparent 0 15px,#009eff19 16px 23px,transparent 24px 37px);
}
.vsgym-quick-link::after {
  content: '↗';
  position: absolute;
  bottom: 1.15rem;
  right: 1.3rem;
  color: #006a9a;
  font: 800 1.5rem/1 system-ui,sans-serif;
  pointer-events: none;
  transition: transform .22s ease;
}
a.vsgym-quick-link:hover::after,a.vsgym-quick-link:focus-visible::after{transform: translate(3px,-3px);}
.vsgym-quick-index {display:none!important;}
.vsgym-quick-link strong {font-size:clamp(1.7rem,2.1vw,2.15rem);line-height:1.08;letter-spacing:.005em;}
.vsgym-quick-link small {margin-top:0;line-height:1.45;max-width:25ch;font-size:.91rem;}
/* Les cartes disciplines deviennent des liens natifs sur toute leur surface. */
a.vsgym-discipline-card--linked {
  color:#102431!important;
  text-decoration:none!important;
  cursor:pointer;
  border:1px solid #cfe2eb;
  border-top:4px solid var(--vsg-blue);
  box-shadow:0 9px 24px rgba(0,43,66,.045);
  transition:background .22s ease,transform .22s ease,box-shadow .22s ease;
}
a.vsgym-discipline-card--linked:hover,a.vsgym-discipline-card--linked:focus-visible {
  color:#102431!important;
  background:#e0f1f9;
  box-shadow:0 17px 35px rgba(0,43,66,.13);
  transform:translateY(-5px);
}
a.vsgym-discipline-card--linked:focus-visible {outline:3px solid #005ba7;outline-offset:3px;}
a.vsgym-discipline-card--linked :where(h3,p) {color:inherit;}
a.vsgym-discipline-card--linked .vsgym-discipline-fullname {color:#24475b;}
a.vsgym-discipline-card--linked .vsgym-discipline-card__cta {
  display:inline-flex;
  gap:.5rem;
  align-items:center;
  padding-top:.65rem;
  font-size:.92rem;
  font-weight:800;
  color:#006a98;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.3em;
}
a.vsgym-discipline-card--linked:hover .vsgym-discipline-card__cta {color:#004f7a;}
a.vsgym-discipline-card--linked .vsgym-kicker{display:none!important;}
a.vsgym-discipline-card--linked .vsgym-discipline-fullname {min-height:2.55em;}
/* Retirer les badges numerotes de la galerie éditoriale (les liens et photos restent). */
.vsgym-photo-highlights__number {display:none!important;}
@media(max-width:1100px) {
  .vsgym-quick-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:600px) {
  .vsgym-quick-grid {grid-template-columns:1fr!important; padding:1rem 18px!important;gap:.7rem!important;}
  .vsgym-quick-grid > a.vsgym-quick-link {min-height:135px;padding:1.2rem 1.3rem;}
  .vsgym-quick-link strong{font-size:1.65rem;}
  .vsgym-quick-link::after{right:1.2rem;bottom:1rem;}
  a.vsgym-discipline-card--linked .vsgym-discipline-fullname{min-height:0;}
}
@media(prefers-reduced-motion:reduce) {
  .vsgym-quick-link, .vsgym-quick-link::after,
  a.vsgym-discipline-card--linked {transition:none!important;}
  a.vsgym-quick-link:hover,a.vsgym-discipline-card--linked:hover{transform:none;}
}

/* 1.2.16 — Accès rapides photographiques : mêmes codes visuels que la galerie.
   Les photographies sont celles déjà incluses dans le thème local 1.2.15. */
body.home .vsgym-quick-grid,
body.front-page .vsgym-quick-grid {
  width:min(1380px,calc(100% - var(--vsg-gutter)*2));
  margin-inline:auto;
  padding:clamp(1rem,2.4vw,2rem) 0!important;
  border:0!important;
}
body.home a.vsgym-quick-link,
body.front-page a.vsgym-quick-link {
  justify-content:flex-end;
  min-height:clamp(235px,20vw,302px);
  padding:clamp(1.2rem,2vw,1.8rem);
  border:1px solid #173e51;
  border-top:5px solid #009eff;
  color:#fff!important;
  background-color:#091b28;
  background-size:cover;
  background-position:center;
  box-shadow:0 12px 25px rgba(0,28,47,.13);
}
body.home a.vsgym-quick-link:nth-child(1),body.front-page a.vsgym-quick-link:nth-child(1) {
  background-image:linear-gradient(0deg,rgba(3,19,30,.96),rgba(3,19,30,.5) 54%,rgba(3,19,30,.15)),url('../images/club-action-secondaire.webp');
  background-position:center,58% center;
}
body.home a.vsgym-quick-link:nth-child(2),body.front-page a.vsgym-quick-link:nth-child(2) {
  background-image:linear-gradient(0deg,rgba(3,19,30,.96),rgba(3,19,30,.53) 54%,rgba(3,19,30,.13)),url('../images/club-salle-principal.webp');
  background-position:center,50% center;
}
body.home a.vsgym-quick-link:nth-child(3),body.front-page a.vsgym-quick-link:nth-child(3) {
  background-image:linear-gradient(0deg,rgba(3,19,30,.97),rgba(3,19,30,.51) 57%,rgba(3,19,30,.15)),url('../images/club-vie-groupe.webp');
  background-position:center,48% center;
}
body.home a.vsgym-quick-link:nth-child(4),body.front-page a.vsgym-quick-link:nth-child(4) {
  background-image:linear-gradient(0deg,rgba(3,19,30,.97),rgba(3,19,30,.52) 55%,rgba(3,19,30,.21)),url('../images/club-facade.webp');
  background-position:center,51% center;
}
body.home a.vsgym-quick-link:hover,body.home a.vsgym-quick-link:focus-visible,
body.front-page a.vsgym-quick-link:hover,body.front-page a.vsgym-quick-link:focus-visible {
  color:#fff!important;
  background-color:#091b28;
  box-shadow:0 22px 44px rgba(0,30,47,.25);
}
body.home a.vsgym-quick-link::before,
body.front-page a.vsgym-quick-link::before {
  z-index:0;
  top:0;
  right:0;
  width:38%;
  height:5px;
  opacity:1;
  transform:none;
  background:#009eff;
}
body.home a.vsgym-quick-link::after,
body.front-page a.vsgym-quick-link::after {color:#a3e5ff;}
body.home a.vsgym-quick-link strong,
body.front-page a.vsgym-quick-link strong,
body.home a.vsgym-quick-link small,
body.front-page a.vsgym-quick-link small,
body.home a.vsgym-quick-link > :not(.vsgym-quick-index),
body.front-page a.vsgym-quick-link > :not(.vsgym-quick-index) {position:relative;z-index:1;}
body.home a.vsgym-quick-link strong,
body.front-page a.vsgym-quick-link strong {
  color:#fff!important;
  font-size:clamp(1.65rem,2.05vw,2.3rem);
  line-height:1.02;
  text-shadow:0 1px 6px rgba(0,0,0,.2);
}
body.home a.vsgym-quick-link small,
body.front-page a.vsgym-quick-link small {
  color:#dfecf2!important;
  font-size:.9rem;
}
body.home a.vsgym-quick-link :where(.vsgym-quick-cta),
body.front-page a.vsgym-quick-link :where(.vsgym-quick-cta){color:#bce9ff!important;}
@media(max-width:1100px){
 body.home a.vsgym-quick-link,body.front-page a.vsgym-quick-link {min-height:230px;}
}
@media(max-width:600px){
 body.home .vsgym-quick-grid,body.front-page .vsgym-quick-grid {width:calc(100% - 36px);padding:1rem 0!important;}
 body.home .vsgym-quick-grid > a.vsgym-quick-link,
 body.front-page .vsgym-quick-grid > a.vsgym-quick-link {min-height:172px;padding:1.3rem;}
}


/* =========================================================
   VSGYM Élan 1.2.17 — GAF, première déclinaison premium
   Affichage front uniquement via .vsgym-page-gaf ; le contenu
   Gutenberg, le texte des 4 agrès et les CTA restent éditables.
   ========================================================= */
body.vsgym-page-gaf .vsgym-page-intro--gaf {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#061722;
  min-height:clamp(445px,43vw,570px);
  display:flex;
  align-items:center;
  padding:clamp(3.8rem,6vw,6.2rem) 0;
}
body.vsgym-page-gaf .vsgym-page-intro--gaf::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:
    linear-gradient(90deg,#061722 0%,rgba(6,23,34,.97) 26%,rgba(6,23,34,.78) 47%,rgba(6,23,34,.20) 79%,rgba(6,23,34,.32) 100%),
    url('../images/club-hero-action.webp');
  background-size:cover,cover;
  background-position:center, center 52%;
  pointer-events:none;
}
body.vsgym-page-gaf .vsgym-page-intro--gaf::after {height:7px;max-width:320px;width:32%;}
body.vsgym-page-gaf .vsgym-page-intro--gaf .vsgym-wrap {position:relative;z-index:1;width:min(1320px,calc(100% - 2 * var(--vsg-gutter)));}
body.vsgym-page-gaf .vsgym-page-intro--gaf .vsgym-kicker {
  color:#a9e5ff;letter-spacing:.21em;font-size:clamp(.75rem,1vw,.9rem);
}
body.vsgym-page-gaf .vsgym-page-intro--gaf h1 {
  font-size:clamp(3.5rem,6vw,6.5rem);
  line-height:.98;
  max-width:13ch;
  margin:.9rem 0 1.45rem;
  text-wrap:balance;
  text-shadow:0 8px 28px rgba(0,0,0,.15);
}
body.vsgym-page-gaf .vsgym-page-intro--gaf p:not(.vsgym-kicker) {max-width:37ch;color:#d8edf8;font-size:clamp(1rem,1.5vw,1.25rem);}
body.vsgym-page-gaf .vsgym-discipline-overview {
  padding:clamp(3rem,5vw,4.5rem) 0 clamp(1.5rem,3vw,2.5rem);
  background:linear-gradient(145deg,#fff,#fafdff);
}
body.vsgym-page-gaf .vsgym-discipline-overview .vsgym-discipline-summary {
  align-items:start!important;
}
body.vsgym-page-gaf .vsgym-discipline-summary>.wp-block-column:first-child {padding-left:clamp(15px,2vw,26px);border-left:4px solid #009eff;}
body.vsgym-page-gaf .vsgym-discipline-overview .vsgym-kicker {letter-spacing:.18em;}
body.vsgym-page-gaf .vsgym-discipline-apparatus {
  position:relative;
  isolation:isolate;
  padding:clamp(2.5rem,4vw,3.7rem) 0 clamp(3.1rem,5.5vw,5rem);
  overflow:hidden;
  background-color:#f4f9fc;
  background-image:radial-gradient(circle at 94% 7%,rgba(0,158,255,.13) 0 1.7px, transparent 1.9px);
  background-size:23px 23px;
}
body.vsgym-page-gaf .vsgym-discipline-apparatus > .vsgym-wrap {position:relative;z-index:1;}
body.vsgym-page-gaf .vsgym-discipline-apparatus h2 {max-width:18ch;}
body.vsgym-page-gaf .vsgym-apparatus-list {
  margin-top:clamp(1.5rem,3vw,2.6rem)!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.7rem);
  list-style:none;
  padding:0!important;
}
body.vsgym-page-gaf .vsgym-apparatus-list li {
  min-width:0;
  min-height:205px;
  box-sizing:border-box;
  border:1px solid #d8e7ef;
  border-top:5px solid #009eff;
  box-shadow:0 12px 33px rgba(5,49,70,.05);
  background:rgba(255,255,255,.96);
  padding:clamp(1.4rem,2.7vw,2.4rem);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.6rem;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
body.vsgym-page-gaf .vsgym-apparatus-list li::before {content:none!important;display:none!important;}
body.vsgym-page-gaf .vsgym-apparatus-list li::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:140px;height:140px;
  right:-72px;bottom:-75px;
  border:18px solid rgba(0,158,255,.07);
  border-radius:50%;
  pointer-events:none;
}
body.vsgym-page-gaf .vsgym-apparatus-list li strong {
  font-family:"Bebas Neue","Arial Narrow",Impact,sans-serif;
  font-size:clamp(1.9rem,2.8vw,2.7rem);
  line-height:1.08;
  color:#061b27;
  margin:0;
  letter-spacing:.005em;
}
body.vsgym-page-gaf .vsgym-apparatus-list li span {
  font-size:clamp(.95rem,1vw,1.06rem);
  line-height:1.55;
  color:#405968;
  margin:0;
  max-width:40ch;
}
@media(hover:hover) and (pointer:fine) {
 body.vsgym-page-gaf .vsgym-apparatus-list li:hover {transform:translateY(-5px);box-shadow:0 24px 44px rgba(8,63,91,.11);border-top-color:#0075b5;}
}
body.vsgym-page-gaf .vsgym-discipline-club {
  padding:clamp(3.2rem,6vw,5.5rem) 0 0;
  overflow:hidden;
  background-color:#061a26;
  background-image:repeating-linear-gradient(146deg,transparent 0 130px,rgba(40,168,241,.025) 132px 134px);
}
body.vsgym-page-gaf .vsgym-discipline-club .vsgym-discipline-club-grid {align-items:flex-start!important;}
body.vsgym-page-gaf .vsgym-discipline-club h2 {max-width:14ch;}
body.vsgym-page-gaf .vsgym-gaf-club-photo {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:clamp(2.5rem,5vw,4rem) auto 0;
  width:min(1320px,calc(100% - 2 * var(--vsg-gutter)));
  border-top:6px solid #009eff;
  min-height:290px;
  height:clamp(290px,29vw,420px);
  background:#061b28;
}
body.vsgym-page-gaf .vsgym-gaf-club-photo img {
  width:100%;height:100%;min-height:290px;display:block;object-fit:cover;
  object-position:center 48%;
}
body.vsgym-page-gaf .vsgym-gaf-club-photo::after {
  content:"";position:absolute;inset:45% 0 0;
  background:linear-gradient(transparent,rgba(4,15,24,.93));pointer-events:none;
}
body.vsgym-page-gaf .vsgym-gaf-club-photo figcaption {
  position:absolute;z-index:1;bottom:clamp(1.1rem,2vw,2.2rem);left:clamp(1.1rem,2vw,2.2rem);
  display:flex;flex-direction:column;gap:.4rem;line-height:1.1;
}
body.vsgym-page-gaf .vsgym-gaf-club-photo figcaption span {color:#a9e2ff;letter-spacing:.18em;font-size:.76rem;font-weight:800;}
body.vsgym-page-gaf .vsgym-gaf-club-photo figcaption strong {color:#fff;font-size:clamp(1.35rem,2.2vw,2rem);font-weight:800;}
body.vsgym-page-gaf .vsgym-discipline-practical {
  background:linear-gradient(110deg,#ecf7fd,#deeff8);
  border-top:1px solid #b5d6e7;
  padding:clamp(3.3rem,5vw,4.8rem) 0;
}
body.vsgym-page-gaf .vsgym-discipline-practical .vsgym-wrap {max-width:1060px;}
body.vsgym-page-gaf .vsgym-discipline-visual {
  padding:clamp(3.1rem,5vw,4.8rem) 0;
  background:#fff;
}
body.vsgym-page-gaf .vsgym-discipline-visual-grid>.wp-block-column:first-child {border-left:4px solid #009eff;padding-left:clamp(1rem,2vw,1.7rem);}
body.vsgym-page-gaf .vsgym-discipline-visual figure.vsgym-editorial-photo {
  margin:0;
  min-height:340px;
  aspect-ratio:1.75;
  border:1px solid #cddfe9;
  box-shadow:0 20px 46px rgba(5,29,47,.12);
}
body.vsgym-page-gaf .vsgym-discipline-visual .vsgym-editorial-photo img {width:100%;height:100%;object-fit:cover;object-position:center 50%;}
@media(max-width:900px) {
  body.vsgym-page-gaf .vsgym-page-intro--gaf h1 {font-size:clamp(3rem,7vw,4.8rem);}
  body.vsgym-page-gaf .vsgym-page-intro--gaf::before {
    background-image:linear-gradient(90deg,rgba(6,23,34,.98),rgba(6,23,34,.81) 53%,rgba(6,23,34,.42)),url('../images/club-hero-action.webp');
  }
}
@media(max-width:780px) {
  body.vsgym-page-gaf .vsgym-page-intro--gaf {min-height:440px;padding:3.5rem 0;}
  body.vsgym-page-gaf .vsgym-page-intro--gaf h1 {font-size:clamp(2.75rem,8.4vw,4.5rem);max-width:15ch;text-wrap:wrap;}
  body.vsgym-page-gaf .vsgym-page-intro--gaf::before {
    background-image:linear-gradient(180deg,rgba(6,23,34,.9),rgba(6,23,34,.78)),url('../images/club-hero-action.webp');
    background-position:center,58% center;
  }
  body.vsgym-page-gaf .vsgym-apparatus-list {grid-template-columns:1fr;gap:.85rem;}
  body.vsgym-page-gaf .vsgym-apparatus-list li {min-height:185px;padding:1.5rem;}
  body.vsgym-page-gaf .vsgym-discipline-overview .vsgym-discipline-summary {gap:1.2rem;}
  body.vsgym-page-gaf .vsgym-gaf-club-photo {min-height:220px;height:260px;}
  body.vsgym-page-gaf .vsgym-gaf-club-photo img {min-height:220px;}
  body.vsgym-page-gaf .vsgym-discipline-visual figure.vsgym-editorial-photo {aspect-ratio:4/3;min-height:230px;}
}
@media(max-width:430px) {
  body.vsgym-page-gaf .vsgym-page-intro--gaf {min-height:405px;padding:3rem 0;}
  body.vsgym-page-gaf .vsgym-page-intro--gaf h1 {font-size:clamp(2.45rem,10.4vw,3.5rem);line-height:1;}
  body.vsgym-page-gaf .vsgym-apparatus-list li {min-height:185px;}
  body.vsgym-page-gaf .vsgym-gaf-club-photo {height:220px;}
  body.vsgym-page-gaf .vsgym-gaf-club-photo figcaption strong {font-size:1.25rem;}
}
@media(prefers-reduced-motion:reduce) {
 body.vsgym-page-gaf .vsgym-apparatus-list li {transition:none!important;transform:none!important;}
}

/* =========================================================
   VSGYM Élan 1.2.18 — GAM, déclinaison premium
   Affichage front uniquement via .vsgym-page-gam ; le contenu
   Gutenberg, le texte des 4 agrès et les CTA restent éditables.
   ========================================================= */
body.vsgym-page-gam .vsgym-page-intro--gam {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#061722;
  min-height:clamp(445px,43vw,570px);
  display:flex;
  align-items:center;
  padding:clamp(3.8rem,6vw,6.2rem) 0;
}
body.vsgym-page-gam .vsgym-page-intro--gam::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:
    linear-gradient(90deg,#061722 0%,rgba(6,23,34,.97) 26%,rgba(6,23,34,.78) 47%,rgba(6,23,34,.20) 79%,rgba(6,23,34,.32) 100%),
    url('../images/club-gam-appareil.webp');
  background-size:cover,cover;
  background-position:center, center 52%;
  pointer-events:none;
}
body.vsgym-page-gam .vsgym-page-intro--gam::after {height:7px;max-width:320px;width:32%;}
body.vsgym-page-gam .vsgym-page-intro--gam .vsgym-wrap {position:relative;z-index:1;width:min(1320px,calc(100% - 2 * var(--vsg-gutter)));}
body.vsgym-page-gam .vsgym-page-intro--gam .vsgym-kicker {
  color:#a9e5ff;letter-spacing:.21em;font-size:clamp(.75rem,1vw,.9rem);
}
body.vsgym-page-gam .vsgym-page-intro--gam h1 {
  font-size:clamp(3.5rem,6vw,6.5rem);
  line-height:.98;
  max-width:13ch;
  margin:.9rem 0 1.45rem;
  text-wrap:balance;
  text-shadow:0 8px 28px rgba(0,0,0,.15);
}
body.vsgym-page-gam .vsgym-page-intro--gam p:not(.vsgym-kicker) {max-width:37ch;color:#d8edf8;font-size:clamp(1rem,1.5vw,1.25rem);}
body.vsgym-page-gam .vsgym-discipline-overview {
  padding:clamp(3rem,5vw,4.5rem) 0 clamp(1.5rem,3vw,2.5rem);
  background:linear-gradient(145deg,#fff,#fafdff);
}
body.vsgym-page-gam .vsgym-discipline-overview .vsgym-discipline-summary {
  align-items:start!important;
}
body.vsgym-page-gam .vsgym-discipline-summary>.wp-block-column:first-child {padding-left:clamp(15px,2vw,26px);border-left:4px solid #009eff;}
body.vsgym-page-gam .vsgym-discipline-overview .vsgym-kicker {letter-spacing:.18em;}
body.vsgym-page-gam .vsgym-discipline-apparatus {
  position:relative;
  isolation:isolate;
  padding:clamp(2.5rem,4vw,3.7rem) 0 clamp(3.1rem,5.5vw,5rem);
  overflow:hidden;
  background-color:#f4f9fc;
  background-image:radial-gradient(circle at 94% 7%,rgba(0,158,255,.13) 0 1.7px, transparent 1.9px);
  background-size:23px 23px;
}
body.vsgym-page-gam .vsgym-discipline-apparatus > .vsgym-wrap {position:relative;z-index:1;}
body.vsgym-page-gam .vsgym-discipline-apparatus h2 {max-width:18ch;}
body.vsgym-page-gam .vsgym-apparatus-list {
  margin-top:clamp(1.5rem,3vw,2.6rem)!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.7rem);
  list-style:none;
  padding:0!important;
}
body.vsgym-page-gam .vsgym-apparatus-list li {
  min-width:0;
  min-height:205px;
  box-sizing:border-box;
  border:1px solid #d8e7ef;
  border-top:5px solid #009eff;
  box-shadow:0 12px 33px rgba(5,49,70,.05);
  background:rgba(255,255,255,.96);
  padding:clamp(1.4rem,2.7vw,2.4rem);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.6rem;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
body.vsgym-page-gam .vsgym-apparatus-list li::before {content:none!important;display:none!important;}
body.vsgym-page-gam .vsgym-apparatus-list li::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:140px;height:140px;
  right:-72px;bottom:-75px;
  border:18px solid rgba(0,158,255,.07);
  border-radius:50%;
  pointer-events:none;
}
body.vsgym-page-gam .vsgym-apparatus-list li strong {
  font-family:"Bebas Neue","Arial Narrow",Impact,sans-serif;
  font-size:clamp(1.9rem,2.8vw,2.7rem);
  line-height:1.08;
  color:#061b27;
  margin:0;
  letter-spacing:.005em;
}
body.vsgym-page-gam .vsgym-apparatus-list li span {
  font-size:clamp(.95rem,1vw,1.06rem);
  line-height:1.55;
  color:#405968;
  margin:0;
  max-width:40ch;
}
@media(hover:hover) and (pointer:fine) {
 body.vsgym-page-gam .vsgym-apparatus-list li:hover {transform:translateY(-5px);box-shadow:0 24px 44px rgba(8,63,91,.11);border-top-color:#0075b5;}
}
body.vsgym-page-gam .vsgym-discipline-club {
  padding:clamp(3.2rem,6vw,5.5rem) 0 0;
  overflow:hidden;
  background-color:#061a26;
  background-image:repeating-linear-gradient(146deg,transparent 0 130px,rgba(40,168,241,.025) 132px 134px);
}
body.vsgym-page-gam .vsgym-discipline-club .vsgym-discipline-club-grid {align-items:flex-start!important;}
body.vsgym-page-gam .vsgym-discipline-club h2 {max-width:14ch;}
body.vsgym-page-gam .vsgym-gam-club-photo {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:clamp(2.5rem,5vw,4rem) auto 0;
  width:min(1320px,calc(100% - 2 * var(--vsg-gutter)));
  border-top:6px solid #009eff;
  min-height:290px;
  height:clamp(290px,29vw,420px);
  background:#061b28;
}
body.vsgym-page-gam .vsgym-gam-club-photo img {
  width:100%;height:100%;min-height:290px;display:block;object-fit:cover;
  object-position:center 48%;
}
body.vsgym-page-gam .vsgym-gam-club-photo::after {
  content:"";position:absolute;inset:45% 0 0;
  background:linear-gradient(transparent,rgba(4,15,24,.93));pointer-events:none;
}
body.vsgym-page-gam .vsgym-gam-club-photo figcaption {
  position:absolute;z-index:1;bottom:clamp(1.1rem,2vw,2.2rem);left:clamp(1.1rem,2vw,2.2rem);
  display:flex;flex-direction:column;gap:.4rem;line-height:1.1;
}
body.vsgym-page-gam .vsgym-gam-club-photo figcaption span {color:#a9e2ff;letter-spacing:.18em;font-size:.76rem;font-weight:800;}
body.vsgym-page-gam .vsgym-gam-club-photo figcaption strong {color:#fff;font-size:clamp(1.35rem,2.2vw,2rem);font-weight:800;}
body.vsgym-page-gam .vsgym-discipline-practical {
  background:linear-gradient(110deg,#ecf7fd,#deeff8);
  border-top:1px solid #b5d6e7;
  padding:clamp(3.3rem,5vw,4.8rem) 0;
}
body.vsgym-page-gam .vsgym-discipline-practical .vsgym-wrap {max-width:1060px;}
body.vsgym-page-gam .vsgym-discipline-visual {
  padding:clamp(3.1rem,5vw,4.8rem) 0;
  background:#fff;
}
body.vsgym-page-gam .vsgym-discipline-visual-grid>.wp-block-column:first-child {border-left:4px solid #009eff;padding-left:clamp(1rem,2vw,1.7rem);}
body.vsgym-page-gam .vsgym-discipline-visual figure.vsgym-editorial-photo {
  margin:0;
  min-height:340px;
  aspect-ratio:1.75;
  border:1px solid #cddfe9;
  box-shadow:0 20px 46px rgba(5,29,47,.12);
}
body.vsgym-page-gam .vsgym-discipline-visual .vsgym-editorial-photo img {width:100%;height:100%;object-fit:cover;object-position:center 50%;}
@media(max-width:900px) {
  body.vsgym-page-gam .vsgym-page-intro--gam h1 {font-size:clamp(3rem,7vw,4.8rem);}
  body.vsgym-page-gam .vsgym-page-intro--gam::before {
    background-image:linear-gradient(90deg,rgba(6,23,34,.98),rgba(6,23,34,.81) 53%,rgba(6,23,34,.42)),url('../images/club-gam-appareil.webp');
  }
}
@media(max-width:780px) {
  body.vsgym-page-gam .vsgym-page-intro--gam {min-height:440px;padding:3.5rem 0;}
  body.vsgym-page-gam .vsgym-page-intro--gam h1 {font-size:clamp(2.75rem,8.4vw,4.5rem);max-width:15ch;text-wrap:wrap;}
  body.vsgym-page-gam .vsgym-page-intro--gam::before {
    background-image:linear-gradient(180deg,rgba(6,23,34,.9),rgba(6,23,34,.78)),url('../images/club-gam-appareil.webp');
    background-position:center,58% center;
  }
  body.vsgym-page-gam .vsgym-apparatus-list {grid-template-columns:1fr;gap:.85rem;}
  body.vsgym-page-gam .vsgym-apparatus-list li {min-height:185px;padding:1.5rem;}
  body.vsgym-page-gam .vsgym-discipline-overview .vsgym-discipline-summary {gap:1.2rem;}
  body.vsgym-page-gam .vsgym-gam-club-photo {min-height:220px;height:260px;}
  body.vsgym-page-gam .vsgym-gam-club-photo img {min-height:220px;}
  body.vsgym-page-gam .vsgym-discipline-visual figure.vsgym-editorial-photo {aspect-ratio:4/3;min-height:230px;}
}
@media(max-width:430px) {
  body.vsgym-page-gam .vsgym-page-intro--gam {min-height:405px;padding:3rem 0;}
  body.vsgym-page-gam .vsgym-page-intro--gam h1 {font-size:clamp(2.45rem,10.4vw,3.5rem);line-height:1;}
  body.vsgym-page-gam .vsgym-apparatus-list li {min-height:185px;}
  body.vsgym-page-gam .vsgym-gam-club-photo figcaption strong {font-size:1.25rem;}
}
@media(prefers-reduced-motion:reduce) {
 body.vsgym-page-gam .vsgym-apparatus-list li {transition:none!important;transform:none!important;}
}


/* Six apparatus: 3 × 2 on wide screens, two columns on tablet, one on phone. */
@media(min-width:1101px) {
  body.vsgym-page-gam .vsgym-apparatus-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.95rem,1.6vw,1.6rem);}
  body.vsgym-page-gam .vsgym-apparatus-list li{min-height:214px;padding:clamp(1.2rem,2vw,2rem);}
  body.vsgym-page-gam .vsgym-apparatus-list li strong{font-size:clamp(1.7rem,2.15vw,2.3rem);}
}
@media(min-width:781px) and (max-width:1100px) {
 body.vsgym-page-gam .vsgym-apparatus-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
body.vsgym-page-gam .vsgym-page-intro--gam {background-color:#051521;}
body.vsgym-page-gam .vsgym-page-intro--gam::before {
  background-image:linear-gradient(90deg,#061722 0%,rgba(6,23,34,.97) 28%,rgba(6,23,34,.83) 50%,rgba(6,23,34,.35) 76%,rgba(6,23,34,.38) 100%),url('../images/club-gam-appareil.webp');
  background-position:center,70% 44%;
  filter:contrast(1.08);
}
/* The provided GAM team file is small; present it as an inset editorial image,
   not as a blurry full-width hero. */
body.vsgym-page-gam .vsgym-gam-club-photo {
  width:min(510px,calc(100% - 2 * var(--vsg-gutter)));
  height:clamp(225px,23vw,325px);
  min-height:225px;
  margin:clamp(2rem,4vw,3rem) max(var(--vsg-gutter),calc((100% - 1320px)/2)) 0 auto;
  border:1px solid rgba(153,219,248,.35);
  border-top:5px solid #009eff;
  box-shadow:0 20px 50px rgba(0,0,0,.19);
}
body.vsgym-page-gam .vsgym-gam-club-photo img{width:100%;height:100%;min-height:225px;object-fit:cover;object-position:center 50%;}
body.vsgym-page-gam .vsgym-gam-club-photo figcaption{right:1.1rem;left:1.1rem;}
body.vsgym-page-gam .vsgym-gam-club-photo figcaption strong{font-size:clamp(1.16rem,1.6vw,1.62rem);}
body.vsgym-page-gam .vsgym-discipline-apparatus {
 background-color:#f1f8fc;
 background-image:radial-gradient(circle at 96% 9%,rgba(0,158,255,.12) 0 1.6px,transparent 2px);
}
body.vsgym-page-gam .vsgym-discipline-club {
 background-color:#061722;
 background-image:repeating-linear-gradient(147deg,transparent 0 126px,rgba(35,166,243,.033) 127px 129px);
}
@media(max-width:780px) {
 body.vsgym-page-gam .vsgym-page-intro--gam::before {
  background-image:linear-gradient(180deg,rgba(6,23,34,.92),rgba(6,23,34,.77)),url('../images/club-gam-appareil.webp');
  background-position:center,57% center;
 }
 body.vsgym-page-gam .vsgym-apparatus-list{grid-template-columns:1fr;}
 body.vsgym-page-gam .vsgym-gam-club-photo{width:calc(100% - 2 * var(--vsg-gutter));height:235px;margin:2rem auto 0;}
}
@media(max-width:430px) {
 body.vsgym-page-gam .vsgym-page-intro--gam h1{font-size:clamp(2.25rem,9.4vw,3.4rem);line-height:1;max-width:17ch;}
 body.vsgym-page-gam .vsgym-gam-club-photo{height:220px;}
}


/* =====================================================
   VSGYM Élan 1.2.19 — GR, TEAMGYM, BABY GYM, ADULTES
   Editorial design on the public-facing render only.
   WordPress native blocks and their contents stay intact.
   ===================================================== */
body.vsgym-page-suite .vsgym-page-intro--discipline {
 position:relative; isolation:isolate; overflow:hidden;
 background:#071925; display:flex; align-items:center;
 min-height:clamp(380px,38vw,535px);
 padding:clamp(3.4rem,5.4vw,5.2rem) 0;
}
body.vsgym-page-suite .vsgym-page-intro--discipline::before {
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
 background:
  linear-gradient(90deg,#071925 0%,rgba(7,25,37,.98) 35%,rgba(7,25,37,.68) 100%),
  repeating-linear-gradient(148deg,transparent 0 140px,rgba(0,158,255,.13) 141px 143px);
}
body.vsgym-page-suite .vsgym-page-intro--discipline::after {height:7px;max-width:320px;width:34%;}
body.vsgym-page-suite .vsgym-page-intro--discipline .vsgym-wrap {position:relative;z-index:1;width:min(1320px,calc(100% - 2 * var(--vsg-gutter)));}
body.vsgym-page-suite .vsgym-page-intro--discipline .vsgym-kicker {color:#ace4ff;letter-spacing:.19em;}
body.vsgym-page-suite .vsgym-page-intro--discipline h1 {
 max-width:15ch;margin:.8rem 0 1.45rem;
 font-size:clamp(3.1rem,6vw,6.3rem);line-height:.98;
 text-wrap:balance;text-shadow:0 8px 30px rgba(0,0,0,.18);
}
body.vsgym-page-suite .vsgym-page-intro--discipline p:not(.vsgym-kicker) {color:#daeaf2;font-size:clamp(1rem,1.45vw,1.25rem);max-width:40ch;}
/* Specific identity for each discipline, without impersonating an action photo. */
body.vsgym-page-gr .vsgym-page-intro--gr::before {
 background:
  linear-gradient(90deg,#071925 0%,rgba(7,25,37,.98) 35%,rgba(7,25,37,.65) 70%,rgba(7,25,37,.35) 100%),
  url('../images/club-gr-podium.webp') 88% 50%/auto 92% no-repeat,
  repeating-linear-gradient(155deg,transparent 0 145px,rgba(0,158,255,.1) 147px 149px);
}
body.vsgym-page-gr .vsgym-page-intro--gr h1 {max-width:13ch;}
body.vsgym-page-teamgym .vsgym-page-intro--teamgym::before {
 background:
  linear-gradient(105deg,#071925 0%,rgba(7,25,37,.98) 42%,rgba(7,25,37,.36) 100%),
  repeating-linear-gradient(125deg,transparent 0 94px,rgba(0,158,255,.33) 95px 109px,transparent 111px 137px),
  radial-gradient(ellipse at 86% 42%,rgba(0,158,255,.24),transparent 48%);
}
body.vsgym-page-baby .vsgym-page-intro--baby-gym::before {
 background:
  linear-gradient(95deg,#071925 0%,rgba(7,25,37,.94) 48%,rgba(7,25,37,.50) 100%),
  radial-gradient(circle at 84% 64%,transparent 0 75px,rgba(0,158,255,.32) 77px 114px,transparent 116px 175px,rgba(0,158,255,.15) 177px 215px,transparent 217px),
  radial-gradient(circle at 87% 25%,rgba(0,158,255,.34),transparent 40%);
}
body.vsgym-page-adultes .vsgym-page-intro--adultes::before {
 background:
  linear-gradient(90deg,#071925 0%,rgba(7,25,37,.97) 44%,rgba(7,25,37,.24) 100%),
  repeating-linear-gradient(165deg,transparent 0 66px,rgba(0,158,255,.18) 68px 72px,transparent 74px 108px),
  radial-gradient(ellipse at 91% 35%,rgba(0,158,255,.28),transparent 48%);
}
/* Editorial summary: harmonised column balance, accent and whitespace */
body.vsgym-page-suite .vsgym-discipline-overview {padding:clamp(3.2rem,5vw,5.1rem) 0;background:linear-gradient(145deg,#fff,#f8fcfe);}
body.vsgym-page-suite .vsgym-discipline-summary {align-items:flex-start!important;gap:clamp(2rem,4vw,5rem);}
body.vsgym-page-suite .vsgym-discipline-summary>.wp-block-column:first-child {border-left:4px solid #009eff;padding-left:clamp(1rem,2vw,1.6rem);}
body.vsgym-page-suite .vsgym-discipline-overview h2 {max-width:15ch;}
/* Card grid: equal dimensions, no numbers, consistent blue stroke and graphic accents */
body.vsgym-page-suite .vsgym-discipline-apparatus {
 background-color:#f0f8fc;
 background-image:radial-gradient(circle,rgba(0,158,255,.13) 1.35px,transparent 1.65px);
 background-size:22px 22px;
 padding:clamp(3rem,5vw,4.6rem) 0 clamp(3.4rem,5.6vw,5rem);
}
body.vsgym-page-suite .vsgym-apparatus-list {
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:clamp(.85rem,1.6vw,1.45rem);margin-top:clamp(1.5rem,3vw,2.4rem)!important;
 list-style:none!important;list-style-type:none!important;padding:0!important;counter-reset:none!important;
}
body.vsgym-page-suite .vsgym-apparatus-list li {
 display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
 gap:.65rem;min-width:0;min-height:202px;box-sizing:border-box;
 border:1px solid #d3e4ef;border-top:5px solid #009eff;
 padding:clamp(1.25rem,2.5vw,2.1rem);margin:0;
 background:rgba(255,255,255,.97);position:relative;isolation:isolate;overflow:hidden;
 box-shadow:0 12px 30px rgba(4,40,63,.06);
 transition:transform .22s ease,box-shadow .22s ease;
}
body.vsgym-page-suite .vsgym-apparatus-list li::before {content:none!important;display:none!important;}
body.vsgym-page-suite .vsgym-apparatus-list li::after {
 content:"";position:absolute;z-index:-1;right:-68px;bottom:-78px;
 width:148px;height:148px;border:17px solid rgba(0,158,255,.065);border-radius:50%;pointer-events:none;
}
body.vsgym-page-suite .vsgym-apparatus-list li strong {
 display:block;grid-column:auto;font-family:"Bebas Neue","Arial Narrow",Impact,sans-serif;
 text-transform:uppercase;color:#061e2b;line-height:1.02;font-size:clamp(1.7rem,2.7vw,2.65rem);
}
body.vsgym-page-suite .vsgym-apparatus-list li span {display:block;grid-column:auto;color:#405e6c;margin:0;line-height:1.55;}
@media(hover:hover) and (pointer:fine){body.vsgym-page-suite .vsgym-apparatus-list li:hover{transform:translateY(-4px);box-shadow:0 20px 42px rgba(2,41,66,.13);}}
/* 5 apparatus GR: center the two cards in the last row. */
@media(min-width:1101px){
 body.vsgym-page-gr .vsgym-apparatus-list{grid-template-columns:repeat(6,minmax(0,1fr));}
 body.vsgym-page-gr .vsgym-apparatus-list li{grid-column:span 2;}
 body.vsgym-page-gr .vsgym-apparatus-list li:nth-child(4){grid-column:2/span 2;}
 body.vsgym-page-teamgym .vsgym-apparatus-list{grid-template-columns:repeat(3,minmax(0,1fr));}
}
/* Club section: distinctive understated slanted motion lines */
body.vsgym-page-suite .vsgym-discipline-club {
 background-color:#071b28;
 background-image:repeating-linear-gradient(145deg,transparent 0 142px,rgba(0,158,255,.028) 143px 145px);
 padding:clamp(3.4rem,5.6vw,5rem) 0;
}
body.vsgym-page-suite .vsgym-discipline-club-grid {align-items:flex-start!important;}
body.vsgym-page-suite .vsgym-discipline-practical {background:linear-gradient(112deg,#eaf7fd,#dff0f9);border-top:1px solid #b6d7e9;}
body.vsgym-page-suite .vsgym-discipline-visual {background:#fff;padding:clamp(3.2rem,5.4vw,5rem) 0;}
body.vsgym-page-suite .vsgym-discipline-visual-grid>.wp-block-column:first-child {border-left:4px solid #009eff;padding-left:clamp(1rem,2vw,1.6rem);}
body.vsgym-page-suite .vsgym-discipline-visual figure.vsgym-editorial-photo {border:1px solid #d5e4ee;min-height:290px;aspect-ratio:1.65;box-shadow:0 22px 46px rgba(3,37,57,.10);}
/* Purposefully graphic, original placeholders (not mislabelled photos of club members) */
.vsgym-editorial-graphic {margin:0;position:relative;overflow:hidden;aspect-ratio:1.62;min-height:310px;background:#081b28;border:1px solid #b0d6e8;box-shadow:0 20px 42px rgba(0,37,68,.12);color:#fff;}
.vsgym-editorial-graphic__art {position:absolute;inset:0;isolation:isolate;overflow:hidden;padding:clamp(1.4rem,3vw,2.4rem);display:flex;flex-direction:column;justify-content:center;gap:1rem;}
.vsgym-editorial-graphic__art::before {content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(105deg,#081923 0%,#063957 70%,#009eff 240%);}
.vsgym-editorial-graphic__label {color:#ade7ff;font-size:.69rem;font-weight:800;letter-spacing:.18em;position:relative;z-index:2;}
.vsgym-editorial-graphic__headline {position:relative;z-index:2;display:block;max-width:12ch;font-family:"Bebas Neue","Arial Narrow",Impact,sans-serif;font-weight:800;line-height:1.02;font-size:clamp(2.2rem,4vw,4.6rem);text-transform:uppercase;}
.vsgym-editorial-graphic__tags {display:flex;flex-wrap:wrap;gap:.55rem;position:relative;z-index:2;margin-top:.45rem;}
.vsgym-editorial-graphic__tags span {font-size:.68rem;font-weight:850;letter-spacing:.07em;color:#e7f8ff;border:1px solid rgba(178,233,255,.65);padding:.48rem .6rem;background:rgba(6,42,65,.7);}
.vsgym-art-ring {position:absolute;right:-10%;top:-18%;width:63%;aspect-ratio:1;border:clamp(25px,5vw,70px) solid rgba(0,158,255,.28);border-radius:50%;transform:rotate(-21deg);}
.vsgym-art-ring--b {width:42%;top:56%;right:-16%;border-width:clamp(12px,2.8vw,30px);opacity:.55;}
.vsgym-art-slash {position:absolute;right:28%;top:-30%;width:12%;height:170%;background:rgba(0,158,255,.16);transform:rotate(23deg);}
.vsgym-editorial-graphic figcaption {position:absolute;bottom:0;left:0;right:0;padding:.45rem 1rem;background:#fff;color:#466274;font-size:.7rem;font-weight:650;}
.vsgym-editorial-graphic--baby .vsgym-editorial-graphic__art::before {background:linear-gradient(115deg,#062233,#09517a);}
.vsgym-editorial-graphic--baby .vsgym-art-ring--a {border-color:rgba(0,158,255,.38);}
.vsgym-editorial-graphic--adultes .vsgym-editorial-graphic__art::before {background:linear-gradient(110deg,#091c28,#0b405a);}
.vsgym-editorial-graphic--adultes .vsgym-art-slash {background:rgba(177,235,255,.11);}
@media(min-width:781px) and (max-width:1100px){
 body.vsgym-page-suite .vsgym-apparatus-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:780px){
 body.vsgym-page-suite .vsgym-page-intro--discipline{min-height:360px;padding:3.4rem 0;}
 body.vsgym-page-suite .vsgym-page-intro--discipline h1{font-size:clamp(2.55rem,8.7vw,4.5rem);max-width:15ch;}
 body.vsgym-page-gr .vsgym-page-intro--gr::before {background:linear-gradient(90deg,rgba(7,25,37,.97),rgba(7,25,37,.7)),url('../images/club-gr-podium.webp') 100% 50%/auto 83% no-repeat;}
 body.vsgym-page-suite .vsgym-apparatus-list{grid-template-columns:1fr;gap:.85rem;}
 body.vsgym-page-suite .vsgym-apparatus-list li{min-height:165px;padding:1.5rem;}
 body.vsgym-page-suite .vsgym-discipline-visual figure.vsgym-editorial-photo {min-height:230px;aspect-ratio:4/3;}
 .vsgym-editorial-graphic{aspect-ratio:4/3;min-height:240px;}
}
@media(max-width:430px){
 body.vsgym-page-suite .vsgym-page-intro--discipline h1{font-size:clamp(2.45rem,10vw,3.55rem);}
 .vsgym-editorial-graphic__headline{font-size:clamp(1.9rem,9vw,3.2rem);}
 .vsgym-editorial-graphic__tags span{font-size:.61rem;}
}
@media(prefers-reduced-motion:reduce){body.vsgym-page-suite .vsgym-apparatus-list li{transition:none!important;transform:none!important;}}


/* ===============================================================
   VSGYM Élan 1.2.21 — Menu mobile: alignement + accordéons accessibles.
   Target ONLY the open native WordPress navigation overlay. Desktop is
   unchanged and a no-JavaScript visitor retains Gutenberg's fallback.
   =============================================================== */
@media (max-width:1180px) {
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open {
    inset:0!important;
    position:fixed!important;
    width:100vw!important;
    height:100vh!important;
    height:100dvh!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    background:#fff!important;
    color:#122636!important;
    text-align:left!important;
    z-index:10000!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
    width:100%!important;
    min-height:100%!important;
    margin:0!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
  }
  /* The Gutenberg close control stays functional, keyboard-focusable and visible. */
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    position:fixed!important;
    top:max(.95rem,env(safe-area-inset-top))!important;
    right:max(.9rem,env(safe-area-inset-right))!important;
    z-index:10005!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:48px!important;
    height:48px!important;
    padding:.65rem!important;
    background:#fff!important;
    border:1px solid #a7c7d9!important;
    border-radius:0!important;
    box-shadow:0 2px 9px rgba(0,25,44,.1);
    color:#082234!important;
    cursor:pointer;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
    width:25px!important;height:25px!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    display:block!important;
    width:100%!important;
    max-width:760px!important;
    margin:0 auto!important;
    padding:0 clamp(1rem,4vw,2rem) calc(2.5rem + env(safe-area-inset-bottom))!important;
    text-align:left!important;
  }
  /* The decorative mobile intro is inserted into the DOM by nav.js.
     When Safari's responsive device preview returns to desktop, that node
     remains present; without an explicit default it expands the desktop nav
     into a second row. Only reveal it inside the OPEN mobile overlay. */
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .vsgym-mobile-menu-intro {
    display:flex;
    align-items:center;
    gap:.8rem;
    margin:0 calc(-1 * clamp(1rem,4vw,2rem)) 1.4rem;
    padding:1rem 4.8rem 1rem clamp(1rem,4vw,2rem);
    min-height:92px;
    background:#071b28;
    color:white;
    border-bottom:4px solid var(--vsg-blue);
  }
  .vsgym-mobile-menu-intro img {width:47px!important;height:47px!important;object-fit:contain;flex:none;}
  .vsgym-mobile-menu-intro span {display:block;color:#a5d9f4;font-size:.63rem;letter-spacing:.115em;font-weight:850;line-height:1.5;}
  .vsgym-mobile-menu-intro strong {display:block;color:#fff;font-family:'Bebas Neue','Arial Narrow',Impact,sans-serif;font-size:1.6rem;text-transform:uppercase;letter-spacing:.03em;line-height:1.15;}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    display:flex!important;
    flex-flow:column nowrap!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    width:100%!important;
    gap:.55rem!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    background:#f4f8fa;
    border:1px solid #d5e4ec;
    border-left:4px solid #009eff;
    text-align:left!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > a.wp-block-navigation-item__content {
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    min-height:54px!important;
    margin:0!important;
    padding:.95rem 1.1rem!important;
    background:transparent!important;
    border:0!important;
    color:#071c2b!important;
    text-transform:uppercase!important;
    letter-spacing:.045em!important;
    font-weight:850!important;
    font-size:clamp(.93rem,2.6vw,1.08rem)!important;
    text-decoration:none!important;
    text-align:left!important;
    line-height:1.35!important;
    white-space:normal!important;
    overflow-wrap:break-word;
  }
  /* WordPress supplies the overview link again inside each submenu. */
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready .wp-block-navigation__container > .wp-block-navigation-item.has-child > a.wp-block-navigation-item__content {cursor:pointer;}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready .wp-block-navigation__container > .wp-block-navigation-item.has-child > a.wp-block-navigation-item__content::after {
    content:'';
    flex:0 0 10px;
    width:10px;
    height:10px;
    margin:0 .3rem 0 .9rem;
    border-right:2px solid #00689b;
    border-bottom:2px solid #00689b;
    transform:translateY(-3px) rotate(45deg);
    transition:transform .18s ease;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready .wp-block-navigation__container > .wp-block-navigation-item.vsgym-mobile-expanded > a.wp-block-navigation-item__content::after {
    transform:translateY(3px) rotate(225deg);
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > a.wp-block-navigation-item__content:hover,
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.vsgym-mobile-expanded > a.wp-block-navigation-item__content {
    background:#e4f3fc!important;
    color:#004e7a!important;
  }
  /* Hide the native submenu arrow only once the replacement anchor has ARIA. */
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation-submenu__toggle {display:none!important;}
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container {
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    overflow:hidden!important;
    opacity:0!important;
    position:static!important;
    transform:none!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready .wp-block-navigation__container > .wp-block-navigation-item.vsgym-mobile-expanded > .wp-block-navigation__submenu-container {
    display:flex!important;
    flex-flow:column nowrap!important;
    align-items:stretch!important;
    visibility:visible!important;
    position:static!important;
    opacity:1!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    margin:0!important;
    padding:.3rem 0 .5rem!important;
    border:0!important;
    border-top:1px solid #bfdce9!important;
    background:#fff!important;
    box-shadow:none!important;
    clip:auto!important;
    gap:0!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item {
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item > a.wp-block-navigation-item__content {
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    min-height:45px!important;
    margin:0!important;
    padding:.65rem 1rem .65rem 1.3rem!important;
    font-size:.91rem!important;
    font-weight:650!important;
    letter-spacing:0!important;
    line-height:1.4!important;
    color:#253f50!important;
    background:#fff!important;
    border:0!important;
    border-left:3px solid transparent!important;
    text-transform:none!important;
    text-align:left!important;
    white-space:normal!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item > a.wp-block-navigation-item__content:hover,
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item > a[aria-current="page"] {
    background:#e7f4fc!important;
    border-left-color:#009eff!important;
    color:#004d74!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.vsgym-nav-cta {
    margin-top:.45rem!important;
    border:2px solid #009eff;
    background:#009eff;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.vsgym-nav-cta > a.wp-block-navigation-item__content {
    justify-content:center!important;
    padding:1rem!important;
    font-weight:900!important;
    background:#009eff!important;
    color:#001f30!important;
    border:0!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.vsgym-nav-cta > a.wp-block-navigation-item__content:hover {
    background:#0078b8!important;color:white!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open a:focus-visible,
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open button:focus-visible {
    outline:3px solid #ae5000!important;
    outline-offset:2px!important;
  }
}
@media (max-width:380px) {
  .vsgym-mobile-menu-intro span{font-size:.53rem;}
  .vsgym-mobile-menu-intro strong{font-size:1.35rem;}
}
@media(prefers-reduced-motion:reduce) {
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.has-child > a.wp-block-navigation-item__content::after{transition:none!important;}
}

/* 1.2.21: Avoid Gutenberg's hidden mobile submenu parent controls.
   Only the explicit JS-generated group buttons are used in the open overlay. */
.vsgym-mobile-accordion-toggle { display:none!important; }
@media (max-width:1180px) {
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child > button.wp-block-navigation-item__content:not(.vsgym-mobile-accordion-toggle),
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-icon {
    display:none!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child > button.vsgym-mobile-accordion-toggle {
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:1rem!important;
    width:100%!important;
    min-height:56px!important;
    height:auto!important;
    margin:0!important;
    padding:.9rem 1.05rem!important;
    border:0!important;
    background:transparent!important;
    color:#071c2b!important;
    text-align:left!important;
    font:850 clamp(.95rem,2.6vw,1.09rem)/1.35 'Barlow',system-ui,sans-serif!important;
    letter-spacing:.035em!important;
    text-transform:uppercase!important;
    white-space:normal!important;
    cursor:pointer!important;
    text-decoration:none!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child > button.vsgym-mobile-accordion-toggle::after {
    content:'';
    display:block;
    flex:0 0 10px;
    width:10px;
    height:10px;
    margin-right:.3rem;
    border-right:2px solid #00689b;
    border-bottom:2px solid #00689b;
    transform:translateY(-2px) rotate(45deg);
    transition:transform .15s ease;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.vsgym-mobile-expanded > button.vsgym-mobile-accordion-toggle {
    background:#e4f3fc!important;
    color:#004e7a!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.vsgym-mobile-expanded > button.vsgym-mobile-accordion-toggle::after {
    transform:translateY(3px) rotate(225deg);
  }
}


/* ========================================================================
   VSGYM Élan 1.2.22 / Actualités — lisible, responsive, indépendant des pages
   ======================================================================== */
.vsgym-news-masthead{position:relative;isolation:isolate;overflow:hidden;background:#080f17;color:#fff;padding:clamp(5.2rem,8vw,8rem) 0 clamp(4rem,7vw,6.5rem)}
.vsgym-news-masthead::before{content:"";pointer-events:none;position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 42% 60% at 88% 65%,rgba(0,158,255,.22),transparent 90%),repeating-linear-gradient(147deg,transparent 0 87px,rgba(255,255,255,.025) 88px 90px)}
.vsgym-news-masthead::after{content:"";width:clamp(130px,27vw,420px);height:clamp(130px,27vw,420px);border:2px solid rgba(0,158,255,.24);position:absolute;right:-5%;top:12%;transform:rotate(25deg);pointer-events:none;z-index:-1}
.vsgym-news-masthead__inner,.vsgym-news-listing__inner{width:min(1240px,calc(100% - 2*var(--vsg-gutter)));margin-inline:auto}
.vsgym-news-masthead__eyebrow,.vsgym-news-single__kicker{font-size:.76rem;letter-spacing:.16em;font-weight:850;color:#b9e7fc;text-transform:uppercase;margin:0 0 1.4rem}
.vsgym-news-masthead__eyebrow span,.vsgym-news-single__kicker span{margin-inline:.5rem;color:var(--vsg-blue)}
.vsgym-news-masthead h1{margin:0;max-width:1000px;color:#fff;font-size:clamp(3.25rem,8vw,8.3rem);line-height:.97;word-break:normal;overflow-wrap:break-word;hyphens:none;text-wrap:balance;letter-spacing:-.025em}
.vsgym-news-masthead h1 span,.vsgym-news-listing__heading h2 span{color:var(--vsg-blue)}
.vsgym-news-masthead__lead{max-width:56ch;font-size:clamp(1rem,1.65vw,1.26rem);color:#d3e2ec;line-height:1.65;margin:1.8rem 0 0}
.vsgym-news-links{margin-top:2rem}
.vsgym-news-links .wp-block-button__link{background:var(--vsg-blue);color:#061018!important;font-size:.87rem;font-weight:850;padding:1rem 1.3rem;text-decoration:none;border-radius:0}
.vsgym-news-links .wp-block-button__link:hover{background:#fff;color:#050c13!important}
.vsgym-news-links .wp-block-button__link span{margin-left:1rem}
.vsgym-news-listing{padding:clamp(3.6rem,6vw,6rem) 0 clamp(5rem,8vw,8rem);background:#f6f9fb;position:relative;overflow:clip}
.vsgym-news-listing::before{content:"";pointer-events:none;position:absolute;right:0;top:0;width:240px;height:180px;opacity:.23;background-image:radial-gradient(#009eff 1.7px,transparent 2px);background-size:17px 17px;mask-image:linear-gradient(to left,#000,transparent)}
.vsgym-news-listing__heading{position:relative;max-width:850px;margin:0 0 2.75rem}
.vsgym-news-listing__heading h2{font-size:clamp(2.3rem,5vw,4.8rem);line-height:1.02;margin:.1rem 0 1rem;color:#080f17;overflow-wrap:break-word;word-break:normal;hyphens:none}
.vsgym-news-listing__heading p:not(.vsgym-kicker){max-width:64ch;color:#445764;font-size:1rem;margin:0}
.vsgym-news-feed{margin:0}
.vsgym-news-cards{list-style:none!important;margin:0!important;padding:0!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem!important;align-items:stretch}
.vsgym-news-cards>li,.vsgym-news-cards>.vsgym-news-card{background:#fff!important;margin:0!important;padding:0 0 1.65rem!important;border:1px solid #e1e9ee!important;border-bottom:4px solid var(--vsg-blue)!important;display:flex;flex-direction:column;min-width:0;min-height:440px;box-shadow:0 12px 28px rgba(8,30,44,.035);transition:transform .2s,box-shadow .2s}
.vsgym-news-cards>li:hover,.vsgym-news-cards>.vsgym-news-card:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(8,30,44,.12)}
.vsgym-news-cards>li>.wp-block-post-featured-image{margin:0!important;background:linear-gradient(135deg,#081a26,#003f64);height:205px;aspect-ratio:auto!important;flex:0 0 205px;overflow:hidden}
.vsgym-news-cards .wp-block-post-featured-image a,.vsgym-news-cards .wp-block-post-featured-image img{display:block;width:100%;height:100%}
.vsgym-news-cards .wp-block-post-featured-image img{object-fit:cover!important;object-position:center center!important;aspect-ratio:auto!important;transition:transform .28s}
.vsgym-news-cards>li:hover .wp-block-post-featured-image img{transform:scale(1.035)}
/* Card without a featured image: identity placeholder, not a misleading sports photo. */
.vsgym-news-cards>li:not(:has(>.wp-block-post-featured-image))::before{content:"VSGYM / ACTUALITÉS";height:205px;flex:0 0 205px;display:flex;align-items:end;padding:1.5rem;color:#b0e8ff;font-weight:900;letter-spacing:.13em;font-size:.76rem;background:radial-gradient(circle at 77% 31%,rgba(0,158,255,.52),transparent 44%),repeating-linear-gradient(153deg,transparent 0 45px,rgba(255,255,255,.05) 47px 49px),#081827}
.vsgym-news-cards>li>.wp-block-post-terms,.vsgym-news-cards>li>.wp-block-post-date,.vsgym-news-cards>li>.wp-block-post-title,.vsgym-news-cards>li>.wp-block-post-excerpt{margin-inline:1.5rem!important}
.vsgym-news-cards .wp-block-post-terms,.vsgym-news-single__cats{font-size:.72rem;font-weight:900;color:#005e88;letter-spacing:.07em;text-transform:uppercase;margin-top:1.4rem;display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}
.vsgym-news-cards .wp-block-post-terms a,.vsgym-news-single__cats a{background:#dcf3ff;padding:.35rem .6rem;text-decoration:none;color:#005a82;border-radius:2px}
.vsgym-news-cards .wp-block-post-terms a:hover,.vsgym-news-single__cats a:hover{background:var(--vsg-blue);color:#000}
.vsgym-news-cards .wp-block-post-terms__separator{font-size:0}
.vsgym-news-cards .wp-block-post-date{order:0;font-size:.78rem;color:#607583;margin-top:1.2rem;margin-bottom:0}
.vsgym-news-cards .wp-block-post-title{font-size:clamp(1.38rem,2vw,1.9rem);line-height:1.14;margin-top:.55rem!important;margin-bottom:.8rem!important;color:#090e15;letter-spacing:.002em;hyphens:none;word-break:normal;overflow-wrap:break-word;text-wrap:pretty}
.vsgym-news-cards .wp-block-post-title a{color:inherit;text-decoration:none}
.vsgym-news-cards .wp-block-post-title a:hover{color:#00689b;text-decoration:none}
.vsgym-news-cards .wp-block-post-excerpt{font-size:.9rem;color:#3e5462;line-height:1.65;margin-top:auto!important;margin-bottom:0!important}
.vsgym-news-cards .wp-block-post-excerpt__more-link{display:inline-flex;align-items:center;gap:.4rem;color:#005b86;font-weight:850;text-decoration:none;margin-top:.75rem;font-size:.85rem}
.vsgym-news-cards .wp-block-post-excerpt__more-link:hover{text-decoration:underline}
.vsgym-news-pagination{margin-top:3rem;display:flex;gap:1rem;align-items:center;font-weight:800}
.vsgym-news-pagination a{color:#00618d}
.vsgym-news-pagination a:hover{color:#002d47}
.vsgym-news-empty{position:relative;overflow:hidden;border:1px solid #d7e6ee;border-left:5px solid var(--vsg-blue);background:#fff;padding:clamp(2rem,5vw,4rem);max-width:950px;margin:0}
.vsgym-news-empty__icon{color:var(--vsg-blue)!important;font-size:2.7rem;margin:0 0 .7rem!important}
.vsgym-news-empty h3{font-size:clamp(1.9rem,4vw,3.3rem);margin:0 0 .8rem;color:#101720;word-break:normal}
.vsgym-news-empty>p:last-child{margin-bottom:0;color:#405765;max-width:57ch}
.vsgym-news-single__hero{background:#0a1018;color:#fff;position:relative;overflow:hidden;padding:clamp(4rem,6vw,6.5rem) 0 clamp(3.8rem,6vw,5rem)}
.vsgym-news-single__hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 90% 25%,rgba(0,158,255,.19),transparent 57%),repeating-linear-gradient(154deg,transparent 0 74px,rgba(255,255,255,.027) 75px 77px)}
.vsgym-news-single__hero-inner{position:relative;width:min(1140px,calc(100% - 2*var(--vsg-gutter)));margin-inline:auto}
/* 1.2.24: force the Gutenberg headline into its available column;
   keep normal word boundaries; protect only genuinely unbreakable long tokens.
   Non-breaking spaces between title WORDS are normalized in functions.php. */
.vsgym-news-single__hero h1{display:block;box-sizing:border-box;width:100%;max-width:1060px;min-width:0;margin:1.5rem 0 1.1rem;font-size:clamp(2.8rem,5vw,4.5rem);line-height:1.06;color:#fff!important;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;hyphens:none!important;text-wrap:balance;letter-spacing:-.012em}
.vsgym-news-single__hero .wp-block-post-date{color:#b9cbd6;font-size:.92rem;font-weight:650;margin:1.3rem 0 0}
.vsgym-news-single__hero .vsgym-news-single__cats{margin:1rem 0 0;display:flex;gap:.55rem}
.vsgym-news-single__hero .vsgym-news-single__cats a{color:#041c2c;background:var(--vsg-blue)}
.vsgym-news-single__body{width:min(1050px,calc(100% - 2*var(--vsg-gutter)));margin:clamp(2.5rem,6vw,5rem) auto clamp(5rem,8vw,8rem)}
.vsgym-news-single__featured{margin:0 auto clamp(3rem,6vw,5rem)!important;max-width:1050px;border:1px solid #dbe5eb;background:#071420}
.vsgym-news-single__featured img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;aspect-ratio:auto!important}
.vsgym-news-single__prose{max-width:800px;margin-inline:auto}
.vsgym-news-single__prose :is(p,ul,ol,blockquote){font-size:clamp(1rem,1.25vw,1.1rem);line-height:1.85;color:#273844;overflow-wrap:break-word}
.vsgym-news-single__prose p{margin:0 0 1.5rem}
.vsgym-news-single__prose h2{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.16;margin:2.6rem 0 1.1rem}
.vsgym-news-single__prose a{color:#005d87;text-decoration:underline}
.vsgym-news-single__prose img{height:auto}
.vsgym-news-single__footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid #e0e9ee;padding-top:1.7rem;max-width:800px;margin:3.5rem auto 0}
.vsgym-news-single__footer a{font-weight:850;color:#005f86;text-decoration:none}
.vsgym-news-single__footer a:hover{text-decoration:underline}
/* Dynamic results page: inherits its existing Gutenberg header without content loss. */
.vsgym-competition-feed{margin-top:0}
.vsgym-news-card{background:#fff}
.vsgym-news-card__image,.vsgym-news-card__placeholder{display:block;height:205px;width:100%;margin:0;overflow:hidden;background:#091929}
.vsgym-news-card__image img{height:100%;width:100%;object-fit:cover;object-position:center;transition:transform .25s}
.vsgym-news-card:hover img{transform:scale(1.04)}
.vsgym-news-card__placeholder{display:flex;align-items:end;padding:1.5rem;color:#bdeaff;font-size:.8rem;font-weight:850;letter-spacing:.15em;background:radial-gradient(ellipse at 88% 30%,rgba(0,158,255,.43),transparent 55%),#081827}
.vsgym-news-card__body{padding:1.5rem 1.5rem 0;flex:1;display:flex;flex-direction:column}
.vsgym-news-card__tag{align-self:start;background:#dcf3ff;padding:.35rem .6rem;color:#005b86;font-size:.72rem;font-weight:850;text-transform:uppercase}
.vsgym-news-card__body time{font-size:.78rem;color:#607583;margin-top:1.1rem}
.vsgym-news-card__body h3{font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.16;margin:.55rem 0 .8rem;word-break:normal;overflow-wrap:break-word}
.vsgym-news-card__body h3 a{text-decoration:none;color:#101820}
.vsgym-news-card__body h3 a:hover{color:#00689b}
.vsgym-news-card__excerpt{font-size:.9rem;line-height:1.65;color:#475966;margin:0 0 1rem}
.vsgym-news-card__read{font-weight:850;font-size:.85rem;text-decoration:none;color:#00689b;margin-top:auto}
.vsgym-news-card__read:hover{text-decoration:underline}
.vsgym-news-bottomlink{margin-top:3rem}
.vsgym-news-bottomlink a{display:inline-block;padding:1rem 1.25rem;color:#fff;background:#091826;font-weight:850;text-decoration:none}
.vsgym-news-bottomlink a:hover{background:#00618d;color:#fff}
/* Keep the small "latest articles" section on the homepage visually consistent. */
.vsgym-news-query .vsgym-post-grid .wp-block-post-title{font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.17;word-break:normal;overflow-wrap:break-word;hyphens:none}
.vsgym-news-query .vsgym-post-grid .wp-block-post-featured-image img{object-fit:contain;background:#0c2130}
@media(max-width:960px){.vsgym-news-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.vsgym-news-cards{grid-template-columns:1fr}.vsgym-news-cards>li,.vsgym-news-cards>.vsgym-news-card{min-height:0}.vsgym-news-masthead{padding:4.5rem 0 4rem}.vsgym-news-masthead h1{font-size:clamp(2.8rem,12vw,5rem)}.vsgym-news-masthead__eyebrow{font-size:.64rem}.vsgym-news-listing{padding:3.3rem 0 4rem}.vsgym-news-listing__heading h2{font-size:clamp(2.15rem,8vw,3.5rem)}.vsgym-news-single__hero h1{font-size:clamp(2rem,7vw,3rem);line-height:1.1}.vsgym-news-single__hero{padding:3.2rem 0 3.5rem}.vsgym-news-single__body{margin-top:2rem}.vsgym-news-single__prose :is(p,ul,ol){font-size:1rem}}
@media(prefers-reduced-motion:reduce){.vsgym-news-cards>li,.vsgym-news-cards>.vsgym-news-card,.vsgym-news-card__image img{transition:none!important;transform:none!important}}

/* 1.2.24: keep long French words whole on the narrowest phone widths. */
@media(max-width:370px){.vsgym-news-single__hero h1{font-size:clamp(1.78rem,8vw,2rem)}}

/* VSGYM Elan 1.2.25 — excerpts pasted with nonbreaking spaces must not
   extend outside news cards. Prefer wrapping at words; allow a last-resort
   break for genuine long tokens (URLs, identifiers, etc.). */
.vsgym-post-grid>li,
.vsgym-news-cards>.vsgym-news-card,
.vsgym-news-card__body { min-width:0; }
.vsgym-post-grid .wp-block-post-excerpt,
.vsgym-post-grid .wp-block-post-excerpt__excerpt,
.vsgym-news-cards .wp-block-post-excerpt,
.vsgym-news-cards .wp-block-post-excerpt__excerpt,
.vsgym-news-card__excerpt {
  min-width:0;
  white-space:normal;
  word-break:normal;
  overflow-wrap:anywhere;
  hyphens:none;
}

/* --------------------------------------------------------------
   1.2.26 — Dernières actualités de l'accueil
   Les cartes publiées reprennent le langage visuel du journal VSGYM.
   Les sélecteurs sont limités au bloc Query de la page d'accueil.
   -------------------------------------------------------------- */
.vsgym-news-query .vsgym-home-news-cards{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.4rem!important;
  align-items:stretch;
  margin:1.9rem 0 2rem!important;
}
.vsgym-news-query .vsgym-home-news-cards>li{
  min-width:0;
  min-height:420px;
  padding-bottom:1.5rem!important;
}
.vsgym-news-query .vsgym-home-news-cards>li>.wp-block-post-date{
  margin-top:1.1rem;
}
.vsgym-news-query .vsgym-home-news-cards .wp-block-post-title{
  font-size:clamp(1.32rem,2vw,1.8rem);
  line-height:1.16;
  overflow-wrap:break-word;
  word-break:normal;
  text-wrap:pretty;
}
.vsgym-news-query .vsgym-home-news-cards .wp-block-post-excerpt{
  margin-top:auto!important;
  line-height:1.6;
}
.vsgym-news-query .vsgym-home-news-cards .wp-block-post-excerpt__more-link{
  display:inline-flex;
  margin-top:1rem;
  font-weight:850;
  color:#005f86;
  text-decoration:none;
}
.vsgym-news-query .vsgym-home-news-cards .wp-block-post-excerpt__more-link:hover{
  text-decoration:underline;
}
.vsgym-home-news-cats{
  margin-top:1.4rem!important;
  flex-wrap:wrap;
}
.vsgym-home-news-empty{
  box-sizing:border-box;
  background:#f7fafc;
  border:1px solid #dce9f0;
  border-left:5px solid var(--vsg-blue);
  width:min(100%,850px);
  padding:clamp(1.75rem,4vw,3rem);
  margin:1.6rem 0 2.1rem;
}
.vsgym-home-news-empty__arrow{
  display:block;
  color:var(--vsg-blue);
  font-size:2.35rem;
  line-height:1;
  margin-bottom:.8rem;
}
.vsgym-home-news-empty h3{
  color:#0d1821;
  font-size:clamp(1.65rem,3.2vw,2.8rem);
  line-height:1.06;
  margin:0 0 1rem;
  overflow-wrap:break-word;
}
.vsgym-home-news-empty p{
  color:#415966;
  max-width:57ch;
  line-height:1.65;
  margin:0;
}
@media(max-width:960px){
  .vsgym-news-query .vsgym-home-news-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .vsgym-news-query .vsgym-home-news-cards{grid-template-columns:minmax(0,1fr)}
  .vsgym-news-query .vsgym-home-news-cards>li{min-height:0}
  .vsgym-home-news-empty{margin-block:1.25rem 1.7rem}
}
@media(prefers-reduced-motion:reduce){
  .vsgym-news-query .vsgym-home-news-cards>li{transform:none!important}
}


/* VSGYM Élan 1.2.27 — parcours d'inscription.
   WordPress's flow layout adds a block gap above siblings of a grid. Reset
   it locally so the four cards start at exactly the same y coordinate.
   Grid rows stretch to the same height; phone cards keep a natural height. */
.vsgym-signup-steps {
  align-items: stretch;
  row-gap: 1rem;
  column-gap: .75rem;
}
.vsgym-signup-steps > .vsgym-step {
  box-sizing: border-box;
  min-width: 0;
  height: 100%;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  align-self: stretch;
}
.vsgym-signup-steps > .vsgym-step :is(h3,p){
  overflow-wrap: break-word;
  word-break: normal;
}
@media(max-width:470px){
  .vsgym-signup-steps > .vsgym-step {
    height: auto;
  }
}


/* 1.3.0: discipline-card geometry is consolidated in refinements.css. */
/* Panneau Wilo sur chaque fiche discipline, placé APRES l'introduction, non dans le hero. */
.vsgym-wilo-feature{isolation:isolate;position:relative;overflow:hidden;background:#071923;color:#fff;padding:0 var(--vsg-gutter);}
.vsgym-wilo-feature::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
 background:radial-gradient(circle at 81% 48%,rgba(0,158,255,.22),transparent 44%),
 repeating-linear-gradient(151deg,transparent 0 64px,rgba(132,203,246,.055) 65px 67px,transparent 68px 132px);}
.vsgym-wilo-feature__inner{width:min(1230px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.79fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;min-height:325px;}
.vsgym-wilo-feature__copy{padding:clamp(2.25rem,4.5vw,4rem) 0;position:relative;z-index:2;}
.vsgym-wilo-feature__eyebrow{color:#8fd6f8!important;letter-spacing:.17em;font-size:.78rem;font-weight:850;text-transform:uppercase;margin:0 0 1.1rem!important;}
.vsgym-wilo-feature__eyebrow span{color:#009eff;padding-inline:.5rem;}
.vsgym-wilo-feature__copy h2{font-size:clamp(2.2rem,4.5vw,4.3rem);color:#fff!important;line-height:1.06;margin:0 0 1rem!important;text-wrap:balance;}
.vsgym-wilo-feature__line{color:#fff!important;font-size:clamp(1.1rem,1.6vw,1.35rem);font-weight:750;line-height:1.35;margin:0 0 .7rem!important;}
.vsgym-wilo-feature__note{color:#c0d7e4!important;max-width:45ch;line-height:1.55;font-size:.98rem;margin:0!important;}
.vsgym-wilo-feature__image{height:325px;align-self:end;display:flex;align-items:flex-end;justify-content:center;margin:0!important;position:relative;z-index:1;}
.vsgym-wilo-feature__image img{display:block;width:100%;height:100%;max-width:360px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 16px rgba(0,0,0,.2));}
@media(max-width:760px){
 .vsgym-wilo-feature__inner{grid-template-columns:minmax(0,1fr);gap:0;min-height:0;}
 .vsgym-wilo-feature__copy{padding:2.7rem 0 .8rem;}
 .vsgym-wilo-feature__copy h2{font-size:clamp(2.25rem,8vw,3.4rem);}
 .vsgym-wilo-feature__image{width:100%;height:270px;margin-top:.3rem!important;}
 .vsgym-wilo-feature__image img{max-width:340px;}
}
@media(max-width:390px){
 .vsgym-wilo-feature__image{height:225px;}
 .vsgym-wilo-feature__eyebrow{font-size:.71rem;letter-spacing:.1em;}
}

/* 1.3.0: original Wilo artwork is displayed without the old TeamGym mask. */

/* VSGYM Élan 1.2.31 — Bureau : véritables portraits de profil ronds.
   Portée limitée aux cartes .vsgym-member ; aucun autre visuel altéré.
   Les petites photos ne sont pas étirées en bandeaux mobiles. */
.vsgym-team-grid .vsgym-member-portrait {
  width: 148px!important;
  height: 148px!important;
  max-width: min(148px, 100%)!important;
  margin: 0 auto 1.25rem!important;
  position: relative;
  overflow: hidden;
  border: 4px solid #fff;
  border-radius: 50%;
  background: #dceef8;
  box-shadow: 0 0 0 2px #009eff;
  flex: 0 0 auto;
}
.vsgym-team-grid .vsgym-member-portrait img {
  display: block!important;
  width: 100%!important;
  height: 100%!important;
  min-height: 0!important;
  max-width: none!important;
  aspect-ratio: 1/1!important;
  object-fit: cover!important;
  object-position: 50% 50%;
  border-radius: 50%!important;
  background: #e5f3fb;
}
/* Portraits provisoires : afficher les initiales au sein des mêmes cercles.
   Le jour où un vrai portrait remplace l'image du thème, cette règle cesse
   automatiquement de s'appliquer à la carte concernée. */
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-dk."]) img,
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-cp."]) img,
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-al."]) img {
  opacity: 0;
}
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-dk."])::after,
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-cp."])::after,
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-al."])::after {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #006187;
  font: 800 3.5rem/1 system-ui, sans-serif;
  letter-spacing: -.04em;
  pointer-events: none;
}
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-dk."])::after { content: "DK"; }
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-cp."])::after { content: "CP"; }
.vsgym-team-grid .vsgym-member-portrait:has(img[src*="portrait-al."])::after { content: "AL"; }
@media(max-width:640px) {
  .vsgym-team-grid .vsgym-member-portrait img { aspect-ratio: 1/1!important; }
}

/* VSGYM Élan 1.2.31 — facilities deep link, clear of the sticky header. */
#installations,.vsgym-installations-anchor{scroll-margin-top:2rem}
.vsgym-installations-anchor{display:block;height:0;overflow:hidden}

/* VSGYM Élan 1.2.33 — parent pages are links, arrows are independent mobile controls.
   Hover/focus for desktop is preserved; no edit to Gutenberg's stored template. */
@media (max-width:1180px) {
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split {
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 56px;
    gap:0!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > a.vsgym-mobile-parent-link {
    display:flex!important;
    grid-column:1;
    grid-row:1;
    min-width:0;
    min-height:56px!important;
    padding:.85rem 1.05rem!important;
    justify-content:flex-start!important;
    align-items:center!important;
    background:transparent!important;
    color:#071c2b!important;
    font:850 clamp(.95rem,2.6vw,1.09rem)/1.35 'Barlow',system-ui,sans-serif!important;
    letter-spacing:.035em!important;
    text-transform:uppercase!important;
    text-align:left!important;
    border:0!important;
    text-decoration:none!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > a.vsgym-mobile-parent-link::after {
    display:none!important;
    content:none!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > a.vsgym-mobile-parent-link:is(:hover,:focus-visible),
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > a.vsgym-mobile-parent-link[aria-current="page"] {
    background:#e4f3fc!important;
    color:#004e7a!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > button.vsgym-mobile-accordion-toggle {
    display:flex!important;
    grid-column:2;
    grid-row:1;
    justify-content:center!important;
    align-items:center!important;
    min-width:56px!important;
    min-height:56px!important;
    width:56px!important;
    height:100%!important;
    padding:0!important;
    border-left:1px solid #cbdfe9!important;
    border-radius:0!important;
    background:#eef6fb!important;
    color:#004e7a!important;
    font-size:0!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > button.vsgym-mobile-accordion-toggle:is(:hover,:focus-visible) {
    background:#d9effc!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > button.vsgym-mobile-accordion-toggle::after {
    margin:0!important;
  }
  .vsgym-header .wp-block-navigation__responsive-container.is-menu-open.vsgym-mobile-menu-ready
  .wp-block-navigation__container > .wp-block-navigation-item.has-child.vsgym-parent-split > .wp-block-navigation__submenu-container {
    grid-column:1 / -1;
    grid-row:2;
    min-width:0;
  }
}

/* VSGYM Élan 1.2.34 — Safari mobile→desktop navigation safeguard.
   Do not remove the mobile intro from the document: it is useful in the open
   mobile menu. Hide it in every other state to avoid a duplicate logo/title
   and multi-line desktop header after the preview mode changes. */
.vsgym-header .vsgym-main-nav .vsgym-mobile-menu-intro {
  display:none!important;
}
@media (max-width:1180px) {
  .vsgym-header .vsgym-main-nav
  .wp-block-navigation__responsive-container.is-menu-open
  .vsgym-mobile-menu-intro {
    display:flex!important;
  }
}

/* -------------------------------------------------------------------------
 * VSGYM Élan 1.2.36 — Forminator, site public uniquement.
 * Fallback de présentation pour l'environnement WordPress local HTTP.
 * Sélecteurs volontairement limités aux formulaires Forminator.
 * Ne modifie ni le traitement des envois ni la liste native Safari ouverte.
 * ------------------------------------------------------------------------- */
body .forminator-ui.forminator-custom-form {
  --vsgym-form-accent: #009eff;
  --vsgym-form-border: #bed9e8;
  --vsgym-form-ink: #122733;
  width: 100%;
  max-width: 100%;
  color: var(--vsgym-form-ink);
  font-family: inherit;
}
body .forminator-ui.forminator-custom-form .forminator-row {
  margin-block: 0 1.4rem !important;
}
body .forminator-ui.forminator-custom-form .forminator-row:last-of-type {
  margin-block-end: 1.65rem !important;
}
body .forminator-ui.forminator-custom-form .forminator-col,
body .forminator-ui.forminator-custom-form .forminator-field {
  min-width: 0;
}
body .forminator-ui.forminator-custom-form .forminator-label,
body .forminator-ui.forminator-custom-form .forminator-field > label:not(.forminator-checkbox):not(.forminator-radio) {
  display: block !important;
  float: none !important;
  width: auto;
  max-width: 100%;
  margin: 0 0 .65rem !important;
  padding: 0 !important;
  color: #092334 !important;
  font-family: inherit !important;
  font-size: .98rem !important;
  font-weight: 750 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  position: relative;
}
body .forminator-ui.forminator-custom-form .forminator-required,
body .forminator-ui.forminator-custom-form .forminator-label .forminator-required {
  color: #00618e !important;
}
body .forminator-ui.forminator-custom-form :is(
  input.forminator-input,
  textarea.forminator-textarea,
  select.forminator-select,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  textarea,
  select
) {
  box-sizing: border-box !important;
  display: block;
  width: 100% !important;
  max-width: 100%;
  min-height: 52px;
  margin: 0 !important;
  padding: .85rem 1rem !important;
  border: 1px solid var(--vsgym-form-border) !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  color: var(--vsgym-form-ink) !important;
  box-shadow: inset 0 0 0 0 transparent !important;
  font: inherit !important;
  line-height: 1.4 !important;
  opacity: 1;
}
body .forminator-ui.forminator-custom-form :is(textarea, textarea.forminator-textarea) {
  min-height: 148px;
  height: auto;
  resize: vertical;
}
body .forminator-ui.forminator-custom-form :is(input,textarea)::placeholder {
  color: #647e8e !important;
  opacity: 1;
}
body .forminator-ui.forminator-custom-form :is(input,textarea,select):focus-visible {
  border-color: var(--vsgym-form-accent) !important;
  outline: 3px solid rgba(0,158,255,.24) !important;
  outline-offset: 1px !important;
  box-shadow: 0 0 0 1px #009eff !important;
}
body .forminator-ui.forminator-custom-form :is(input,textarea,select):hover:not(:disabled):not(:focus) {
  border-color: #5faed3 !important;
}
body .forminator-ui.forminator-custom-form .forminator-description {
  display: block;
  margin: .5rem 0 0 !important;
  color: #4d6675 !important;
  font-size: .87rem !important;
  line-height: 1.55 !important;
}
/* Forminator peut afficher un select natif ou un select enrichi (Select2). */
body .forminator-ui.forminator-custom-form select.forminator-select,
body .forminator-ui.forminator-custom-form .forminator-select2 select {
  padding-right: 2.5rem !important;
  cursor: pointer;
}
body .forminator-ui.forminator-custom-form .select2-container .select2-selection,
body .forminator-ui.forminator-custom-form .forminator-select2 .select2-selection {
  min-height: 52px !important;
  height: auto !important;
  border: 1px solid var(--vsgym-form-border) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--vsgym-form-ink) !important;
  display: flex !important;
  align-items: center;
}
body .forminator-ui.forminator-custom-form .select2-container .select2-selection__rendered {
  color: var(--vsgym-form-ink) !important;
  line-height: 1.45 !important;
  padding: .75rem 2.5rem .75rem 1rem !important;
}
body .forminator-ui.forminator-custom-form .select2-container .select2-selection__arrow {
  top: 50% !important;
  transform: translateY(-50%);
  right: .65rem !important;
}
body .forminator-ui.forminator-custom-form .select2-container--focus .select2-selection,
body .forminator-ui.forminator-custom-form .select2-container--open .select2-selection {
  border-color: #009eff !important;
  outline: 3px solid rgba(0,158,255,.24) !important;
}
body .forminator-ui.forminator-custom-form .forminator-checkbox,
body .forminator-ui.forminator-custom-form .forminator-radio {
  display: inline-flex !important;
  align-items: flex-start;
  gap: .7rem;
  line-height: 1.55 !important;
  color: var(--vsgym-form-ink) !important;
}
body .forminator-ui.forminator-custom-form :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: #009eff;
  flex: none;
  margin-top: .25rem;
}
body .forminator-ui.forminator-custom-form .forminator-checkbox-label,
body .forminator-ui.forminator-custom-form .forminator-radio-label {
  color: var(--vsgym-form-ink) !important;
  font-size: .95rem !important;
  line-height: 1.55 !important;
}
body .forminator-ui.forminator-custom-form :is(input[type="file"], .forminator-input-file) {
  box-sizing: border-box;
  max-width: 100%;
  color: var(--vsgym-form-ink);
  font: inherit;
}
body .forminator-ui.forminator-custom-form :is(input[type="file"], .forminator-input-file)::file-selector-button {
  margin-right: .9rem;
  border: 1px solid #006a9d;
  border-radius: 0;
  padding: .75rem 1rem;
  background: #eaf7ff;
  color: #004e76;
  font-weight: 750;
  cursor: pointer;
}
body .forminator-ui.forminator-custom-form .forminator-button-submit {
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  min-height: 52px !important;
  padding: .9rem 1.5rem !important;
  border: 2px solid #009eff !important;
  border-radius: 0 !important;
  background: #009eff !important;
  color: #061924 !important;
  font-family: inherit !important;
  font-size: .86rem !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
  letter-spacing: .035em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .18s, color .18s, border-color .18s;
}
body .forminator-ui.forminator-custom-form .forminator-button-submit:hover:not(:disabled) {
  background: #041c2b !important;
  border-color: #041c2b !important;
  color: #fff !important;
}
body .forminator-ui.forminator-custom-form .forminator-button-submit:disabled,
body .forminator-ui.forminator-custom-form .forminator-button-submit[aria-disabled="true"] {
  opacity: .56 !important;
  cursor: not-allowed;
}
body .forminator-ui.forminator-custom-form :is(.forminator-error-message,.forminator-error) {
  color: #9a3028 !important;
  font-size: .88rem !important;
  line-height: 1.5 !important;
  margin-top: .45rem;
}
body .forminator-ui.forminator-custom-form .forminator-response-message {
  border-left: 4px solid #009eff !important;
  padding: .95rem 1.2rem !important;
  background: #eaf7ff !important;
  color: #103447 !important;
  line-height: 1.6 !important;
  margin-block: 1rem 1.5rem !important;
}
@media (max-width: 600px) {
  body .forminator-ui.forminator-custom-form .forminator-row { margin-block-end: 1.25rem !important; }
  body .forminator-ui.forminator-custom-form :is(input.forminator-input,textarea.forminator-textarea,select.forminator-select) {
    font-size: 1rem !important; /* évite le zoom automatique sur iOS */
  }
  body .forminator-ui.forminator-custom-form .forminator-button-submit {
    width: 100%;
  }
}

/* -------------------------------------------------------------------------
 * VSGYM Élan 1.2.37 — Menu de sélection Forminator / Select2.
 * Lorsque les styles du plugin ne se chargent pas sur le WordPress HTTP
 * local, les options Select2 sont rendues hors du formulaire (souvent à la
 * racine de BODY). Les règles scoped .forminator-ui de 1.2.36 ne peuvent donc
 * pas s'y appliquer. Le menu doit avoir un fond opaque et défiler en interne,
 * plutôt que laisser apparaître les libellés/champs du formulaire derrière.
 * Ne change ni les options, ni la validation, ni le comportement des envois.
 * ------------------------------------------------------------------------- */

/* Le conteneur indépendant généré par Select2. Ne pas changer son positionnement
   inline : la bibliothèque gère son ancrage au champ, même près du bas d'écran. */
body .forminator-select.forminator-select-dropdown-container--open,
body .forminator-select-dropdown-container--open {
  z-index: 10050 !important;
  opacity: 1 !important;
}

body .forminator-select-dropdown-container--open .forminator-select-dropdown,
body .forminator-select-dropdown-container--open .select2-dropdown,
body .forminator-select .forminator-select-dropdown {
  box-sizing: border-box !important;
  display: block !important;
  overflow: hidden !important;
  background-color: #ffffff !important;
  background-image: none !important;
  color: #122733 !important;
  opacity: 1 !important;
  border: 1px solid #9fcde4 !important;
  border-radius: 0 !important;
  box-shadow: 0 14px 32px rgba(5, 31, 45, .22) !important;
  font-family: inherit !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
}

body .forminator-select-dropdown-container--open .select2-results,
body .forminator-select-dropdown-container--open .select2-results__options,
body .forminator-select .forminator-select-dropdown .select2-results__options {
  box-sizing: border-box !important;
  background-color: #fff !important;
  background-image: none !important;
  color: #122733 !important;
  opacity: 1 !important;
}

/* Un maximum clair permet au menu de défiler, sans envahir l'ensemble de la
   page. C'est le dropdown qui doit superposer le contenu, pas un texte nu. */
body .forminator-select-dropdown-container--open .select2-results__options,
body .forminator-select .forminator-select-dropdown .select2-results__options {
  display: block !important;
  max-height: min(260px, 42vh) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

body .forminator-select-dropdown-container--open .select2-results__option,
body .forminator-select .forminator-select-dropdown .select2-results__option {
  box-sizing: border-box !important;
  display: block !important;
  min-height: 43px !important;
  margin: 0 !important;
  padding: 11px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid #edf3f8 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #122733 !important;
  font-family: inherit !important;
  font-size: .97rem !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  opacity: 1 !important;
  cursor: pointer;
}

body .forminator-select-dropdown-container--open .select2-results__option:last-child,
body .forminator-select .forminator-select-dropdown .select2-results__option:last-child {
  border-bottom: 0 !important;
}
body .forminator-select-dropdown-container--open .select2-results__option--highlighted,
body .forminator-select-dropdown-container--open .select2-results__option[aria-selected="true"],
body .forminator-select-dropdown-container--open .select2-results__option--selected,
body .forminator-select-dropdown-container--open .select2-results__option:hover,
body .forminator-select .forminator-select-dropdown .select2-results__option--highlighted {
  background: #e6f5ff !important;
  color: #004e78 !important;
  font-weight: 700 !important;
}
body .forminator-select-dropdown-container--open .select2-results__option--highlighted[aria-selected="true"] {
  background: #ccecff !important;
  color: #003c60 !important;
}
body .forminator-select-dropdown-container--open .select2-search,
body .forminator-select-dropdown-container--open .select2-search--dropdown {
  box-sizing: border-box !important;
  background: #fff !important;
  padding: .5rem !important;
}
body .forminator-select-dropdown-container--open .select2-search__field {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  min-height: 42px !important;
  background: #fff !important;
  border: 1px solid #bed9e8 !important;
  border-radius: 0 !important;
  color: #122733 !important;
  padding: .5rem .75rem !important;
  font: inherit !important;
}
body .forminator-select-dropdown-container--open .select2-search__field:focus {
  outline: 2px solid #009eff !important;
  outline-offset: 0 !important;
}
/* Forminator : correction du contexte de superposition signalée par le support. */
body .forminator-ui.forminator-custom-form select.forminator-select2 + .forminator-select {
  z-index: initial !important;
}


/* ===========================================================================
   VSGYM Élan 1.2.38 — accueil, ajustements de prépublication uniquement.
   La page Gutenberg conserve ses blocs, textes et liens dans WordPress.
   =========================================================================== */

/* Les accès rapides : limiter les grands blancs (mobile 2 x 2 à partir de
   360 px). Cibler aussi les colonnes Gutenberg si le lien est imbriqué. */
body:is(.home,.front-page) .vsgym-quick-section {
  padding-block: clamp(.4rem,1.2vw,1rem) !important;
}
body:is(.home,.front-page) .vsgym-quick-grid {
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  grid-auto-rows: auto !important;
  align-items: stretch;
  gap: clamp(.65rem,1.2vw,1rem) !important;
  padding-block: .9rem !important;
  margin-block: 0 !important;
}
body:is(.home,.front-page) .vsgym-quick-grid > :is(a,.vsgym-quick-link,.wp-block-column,.wp-block-group) {
  box-sizing: border-box;
  min-width: 0;
  min-height: 134px !important;
  height: auto !important;
  margin-block: 0 !important;
  padding: clamp(1rem,1.5vw,1.35rem) !important;
  align-self: stretch;
  justify-content: center;
  border: 1px solid #cde4f0 !important;
  border-top: 4px solid #009eff !important;
  background: #f0f8fc !important;
  background-image: none !important;
  color: #092432 !important;
  box-shadow: none !important;
  text-decoration: none;
}
body:is(.home,.front-page) .vsgym-quick-grid > :is(a,.vsgym-quick-link,.wp-block-column,.wp-block-group):where(:nth-child(even)) {
  background: #e8f5fc !important;
}
body:is(.home,.front-page) .vsgym-quick-grid > :is(a,.vsgym-quick-link,.wp-block-column,.wp-block-group):hover {
  background: #dbf0fc !important;
}
body:is(.home,.front-page) .vsgym-quick-grid > * :is(strong,h2,h3,h4) {
  color: #092432 !important;
  font-size: clamp(1.35rem,1.9vw,1.9rem);
  line-height: 1.1;
  margin: 0 !important;
}
body:is(.home,.front-page) .vsgym-quick-grid > * :is(small,p,.vsgym-quick-cta) {
  color: #335367 !important;
  margin-block: .15rem !important;
}
body:is(.home,.front-page) .vsgym-quick-grid > * a:not(.vsgym-quick-link) {
  color: #00658e;
  font-weight: 800;
}
body:is(.home,.front-page) .vsgym-quick-link::before,
body:is(.home,.front-page) .vsgym-quick-link::after {
  opacity: .38;
}
@media (max-width: 1000px) {
  body:is(.home,.front-page) .vsgym-quick-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width: 600px) {
  body:is(.home,.front-page) .vsgym-quick-grid {
    width: calc(100% - 36px);
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: .65rem !important;
  }
  body:is(.home,.front-page) .vsgym-quick-grid > :is(a,.vsgym-quick-link,.wp-block-column,.wp-block-group) {
    min-height: 116px !important;
    padding: .9rem .8rem !important;
  }
  body:is(.home,.front-page) .vsgym-quick-grid > * :is(strong,h2,h3,h4) {
    font-size: clamp(1.22rem,5.6vw,1.55rem);
    overflow-wrap: normal;
  }
  /* Le visuel principal doit rester visible, sans compromettre le contraste. */
  body:is(.home,.front-page) .vsgym-hero::before {
    opacity: .62;
    background-image:
      linear-gradient(180deg,rgba(2,13,21,.43),rgba(2,13,21,.62)),
      url('../images/vsgym-accueil-sol-2026.webp');
    background-position: center, 20% center;
  }
}
@media (max-width: 359px) {
  body:is(.home,.front-page) .vsgym-quick-grid {
    grid-template-columns: minmax(0,1fr) !important;
  }
  body:is(.home,.front-page) .vsgym-quick-grid > :is(a,.vsgym-quick-link,.wp-block-column,.wp-block-group) {
    min-height: 94px !important;
    padding: .8rem 1rem !important;
  }
}
/* Override the older photograph-card white text after switching to light cards. */
body:is(.home,.front-page) .vsgym-quick-grid > a.vsgym-quick-link :is(strong,h2,h3,h4),
body:is(.home,.front-page) .vsgym-quick-grid > .vsgym-quick-link :is(strong,h2,h3,h4) {
  color: #092432 !important;
}
body:is(.home,.front-page) .vsgym-quick-grid > a.vsgym-quick-link :is(small,p),
body:is(.home,.front-page) .vsgym-quick-grid > .vsgym-quick-link :is(small,p) {
  color: #335367 !important;
}
body:is(.home,.front-page) .vsgym-quick-grid > a.vsgym-quick-link .vsgym-quick-cta,
body:is(.home,.front-page) .vsgym-quick-grid > .vsgym-quick-link .vsgym-quick-cta {
  color: #00658e !important;
}
@media (min-width:360px) and (max-width:600px) {
  body:is(.home,.front-page) .vsgym-quick-grid > a.vsgym-quick-link strong,
  body:is(.home,.front-page) .vsgym-quick-grid > .vsgym-quick-link strong,
  body:is(.home,.front-page) .vsgym-quick-grid > * :is(h2,h3,h4) {
    font-size: clamp(1.05rem,4.45vw,1.32rem) !important;
    letter-spacing: 0;
    overflow-wrap: anywhere;
    text-wrap: initial;
  }
}


/* ===============================================================
   VSGYM Élan 1.2.39 — Titres GAF / GAM sur mobile.
   Évite les césures automatiques Safari (FÉ-MININE, MASCU-LINE).
   Correctif limité aux bandeaux des deux disciplines.
   =============================================================== */
@media (max-width: 780px) {
  body.vsgym-page-gaf .vsgym-page-intro--gaf h1,
  body.vsgym-page-gam .vsgym-page-intro--gam h1 {
    width: 100%;
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    -webkit-hyphens: none;
    text-wrap: wrap;
  }
}
@media (max-width: 600px) {
  body.vsgym-page-gaf .vsgym-page-intro--gaf h1,
  body.vsgym-page-gam .vsgym-page-intro--gam h1 {
    font-size: clamp(1.8rem, 8.4vw, 3rem);
    line-height: 1.04;
  }
}

/* VSGYM Élan 1.2.41 — Une page Installations autonome et responsive. */
.vsgym-inst-hero{background:#061923;color:#fff;padding:clamp(4rem,8vw,7.7rem) max(var(--vsg-gutter),calc((100vw - 1280px)/2));position:relative;border-bottom:7px solid #009eff}
.vsgym-inst-hero .wp-block-heading{font-size:clamp(2.8rem,8vw,7.4rem);line-height:.96;max-width:16ch;color:#fff!important;letter-spacing:-.025em;margin:.65rem 0 1rem}
.vsgym-inst-hero .vsgym-inst-kicker{color:#a9e4ff!important}
.vsgym-inst-hero .vsgym-inst-lead{color:#d0e0e9;max-width:58ch;font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.6}
.vsgym-inst-kicker{color:#006a9f;font-size:.78rem;font-weight:850;letter-spacing:.18em;text-transform:uppercase;margin:0 0 1.3rem}
.vsgym-inst-intro{padding:clamp(3.5rem,6vw,6rem) var(--vsg-gutter);max-width:1320px}
.vsgym-inst-intro .wp-block-heading,.vsgym-inst-venues .wp-block-heading,.vsgym-inst-next .wp-block-heading{font-size:clamp(2.15rem,4.3vw,4.1rem);line-height:1.06;margin:.5rem 0 1.2rem}
.vsgym-inst-intro>p:not(.vsgym-inst-kicker),.vsgym-inst-venues>p:not(.vsgym-inst-kicker){max-width:72ch;line-height:1.75;color:#405361}
.vsgym-inst-gallery{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:1rem;margin:2.5rem 0 0}
.vsgym-inst-gallery__item{position:relative;overflow:hidden;margin:0;min-width:0;background:#eaf2f7;min-height:270px;isolation:isolate}
.vsgym-inst-gallery__item img{width:100%;height:100%;min-height:270px;max-height:380px;object-fit:cover;display:block}
.vsgym-inst-gallery__item:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(180deg,transparent,#04141cc7);pointer-events:none}
.vsgym-inst-gallery__item figcaption{position:absolute;z-index:1;bottom:1.2rem;left:1.2rem;right:1.2rem;color:#fff;font-size:.72rem;line-height:1.5;font-weight:850;letter-spacing:.1em}
.vsgym-inst-venues{background:#f1f6f9;padding:clamp(3rem,6vw,6rem) max(var(--vsg-gutter),calc((100vw - 1280px)/2))}
.vsgym-inst-venues-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem;margin-top:2.5rem}
.vsgym-inst-venues-grid .vsgym-inst-venue{margin:0;background:#fff;border-top:4px solid #009eff;border-left:1px solid #d4e4ed;border-right:1px solid #d4e4ed;border-bottom:1px solid #d4e4ed;padding:clamp(1.5rem,2.8vw,2.4rem);display:flex;flex-direction:column;align-items:flex-start;min-height:260px}
.vsgym-inst-venue-index{font-size:.71rem;color:#006c9e;letter-spacing:.13em;font-weight:900;margin:0 0 .6rem}
.vsgym-inst-venues-grid .vsgym-inst-venue h3{font-size:clamp(1.45rem,2.1vw,2rem);line-height:1.12;margin:.45rem 0 .9rem}
.vsgym-inst-address{color:#3d505c;font-size:.98rem;line-height:1.65;margin:0 0 1.4rem}
.vsgym-inst-map{margin-top:auto;margin-bottom:0;font-size:.92rem;font-weight:800}
.vsgym-inst-map a{color:#006b9d;text-underline-offset:4px}
.vsgym-inst-next{background:#061923;color:#fff;padding:clamp(3rem,6vw,5.5rem) max(var(--vsg-gutter),calc((100vw - 1280px)/2))}
.vsgym-inst-next .vsgym-inst-kicker{color:#9dddff}
.vsgym-inst-next .wp-block-heading{color:#fff!important}
.vsgym-inst-next>p:not(.vsgym-inst-kicker){max-width:73ch;color:#c8dbe5;line-height:1.7}
.vsgym-inst-actions{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2rem!important}
.vsgym-inst-actions a{display:inline-block;text-decoration:none;padding:1rem 1.2rem;background:#009eff;color:#071923!important;font-size:.82rem;letter-spacing:.025em;font-weight:850;border:2px solid #009eff}
.vsgym-inst-actions a+ a{background:transparent;color:#fff!important;border-color:#fff}
.vsgym-inst-actions a:hover{background:#fff;color:#071923!important;border-color:#fff}
.vsgym-inst-actions a:focus-visible,.vsgym-inst-map a:focus-visible{outline:3px solid #ffae00;outline-offset:4px}
@media(max-width:880px){.vsgym-inst-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.vsgym-inst-gallery__item:first-child{grid-column:1/-1}.vsgym-inst-gallery__item,.vsgym-inst-gallery__item img{min-height:215px;max-height:300px}}
@media(max-width:620px){.vsgym-inst-hero,.vsgym-inst-venues,.vsgym-inst-next{padding-left:var(--vsg-gutter);padding-right:var(--vsg-gutter)}.vsgym-inst-hero{padding-top:4rem;padding-bottom:4rem}.vsgym-inst-intro{padding:3.2rem var(--vsg-gutter)}.vsgym-inst-gallery{grid-template-columns:1fr;gap:.8rem}.vsgym-inst-gallery__item:first-child{grid-column:auto}.vsgym-inst-gallery__item,.vsgym-inst-gallery__item img{min-height:190px;max-height:260px}.vsgym-inst-venues-grid{grid-template-columns:1fr;gap:1rem}.vsgym-inst-venues-grid .vsgym-inst-venue{min-height:215px}.vsgym-inst-actions{flex-direction:column;align-items:flex-start}.vsgym-inst-actions a{width:100%;box-sizing:border-box;text-align:center}}


/* VSGYM Élan 1.2.43 — Façades des quatre équipements sur la page Installations.
   Les pages déjà publiées restent intactes dans la base WordPress. */
.vsgym-inst-venues-grid {
  width: 100%;
  max-width: none !important;
  min-width: 0;
  box-sizing: border-box;
}
.vsgym-inst-venues-grid .vsgym-inst-venue {
  width: 100%;
  max-width: none !important;
  min-width: 0;
  box-sizing: border-box;
  align-items: stretch;
  padding: 0;
  overflow: hidden;
  min-height: 0;
}
.vsgym-inst-venue-photo {
  margin: 0 0 1.6rem !important;
  padding: 0;
  width: 100%;
  max-width: none !important;
  overflow: hidden;
  background: #dae9f2;
  aspect-ratio: 16 / 9;
  display: block;
}
.vsgym-inst-venue-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
/* VSGYM Élan 1.2.44 — Uniformise la photo Anne Frank sans la recadrer.
   Le cliché source est au format 3:2, les autres sont au format 16:9.
   Préserver le cadre complet et son attribution en affichant un arrière-plan
   diffus issu de la même image dans les marges latérales. */
.vsgym-inst-venue-photo--anne-frank {
  position: relative;
  isolation: isolate;
}
.vsgym-inst-venue-photo--anne-frank::before {
  content: "";
  position: absolute;
  inset: -14px;
  background-image: url("../images/installation-anne-frank.webp");
  background-size: cover;
  background-position: center;
  filter: blur(12px) brightness(.82);
  z-index: 0;
  pointer-events: none;
}
.vsgym-inst-venue-photo--anne-frank img {
  position: relative;
  z-index: 1;
  object-fit: contain;
  object-position: center;
}
.vsgym-inst-venues-grid .vsgym-inst-venue > :not(.vsgym-inst-venue-photo) {
  margin-left: clamp(1.2rem, 2.8vw, 2.4rem);
  margin-right: clamp(1.2rem, 2.8vw, 2.4rem);
}
.vsgym-inst-venues-grid .vsgym-inst-venue .vsgym-inst-venue-index {margin-top: 0;}
.vsgym-inst-venues-grid .vsgym-inst-venue .vsgym-inst-map {margin-bottom: clamp(1.4rem, 2.8vw, 2.4rem);}
.vsgym-inst-venues-grid .vsgym-inst-venue:focus-within {outline: 2px solid #009eff;outline-offset: 3px;}
@media (max-width: 620px) {
  .vsgym-inst-venues-grid {grid-template-columns: minmax(0,1fr);}
  .vsgym-inst-venues-grid .vsgym-inst-venue {width:100%;min-height:0;}
  .vsgym-inst-venue-photo {margin-bottom:1.2rem!important;}
  .vsgym-inst-venues-grid .vsgym-inst-venue > :not(.vsgym-inst-venue-photo) {
    margin-left: 1.15rem;
    margin-right: 1.15rem;
  }
}


/* 1.2.45 — Dossier juridique : lisibilité, cohérence et motifs officiels. */
body.vsgym-legal-mentions .vsgym-page-intro,
body.vsgym-legal-privacy .vsgym-legal-hero {isolation:isolate;overflow:hidden;position:relative}
body.vsgym-legal-mentions .vsgym-page-intro::before,
body.vsgym-legal-privacy .vsgym-legal-hero::before{
  content:"";pointer-events:none;position:absolute;inset:0;
  background-image:url('../images/vsgym-motif-gauche.webp'),url('../images/vsgym-motif-droit.webp');
  background-position:left -105px center,right -105px center;
  background-size:auto 110%,auto 110%;background-repeat:no-repeat;
  opacity:.14;z-index:-1;
}
body.vsgym-legal-mentions .vsgym-page-intro>.vsgym-wrap,
body.vsgym-legal-privacy .vsgym-legal-hero>.vsgym-wrap{position:relative;z-index:1}
body.vsgym-legal-mentions .vsgym-page-intro h1,
body.vsgym-legal-privacy .vsgym-legal-hero h1{
  font-size:clamp(3.1rem,7.2vw,6.8rem);max-width:100%;line-height:.99;
  overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:balance;
}
body.vsgym-legal-mentions .vsgym-prose>.vsgym-narrow {width:min(900px,calc(100% - var(--vsg-gutter)*2));}
body.vsgym-legal-mentions .vsgym-prose .vsgym-narrow :is(h2,h3,.wp-block-heading){
  overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:pretty;
}
body.vsgym-legal-mentions .vsgym-prose .vsgym-narrow h2{
  font-size:clamp(2.15rem,3.1vw,2.85rem);line-height:1.12;letter-spacing:.005em;
  margin-top:2.35rem;margin-bottom:1rem;
}
body.vsgym-legal-mentions .vsgym-prose .vsgym-narrow h3{font-size:clamp(1.5rem,2.6vw,2rem)}
body.vsgym-legal-mentions .vsgym-prose .vsgym-narrow :is(p,li){line-height:1.7}
body.vsgym-legal-privacy .vsgym-legal-hero{padding-block:clamp(3.8rem,6vw,5.2rem);}
body.vsgym-legal-privacy .vsgym-legal-hero .vsgym-kicker{color:#c3eaff;letter-spacing:.16em}
body.vsgym-legal-privacy .vsgym-legal-hero__lead{max-width:53ch;color:#d1e8f4;font-size:clamp(1.03rem,1.65vw,1.2rem);line-height:1.55}
body.vsgym-legal-privacy .vsgym-legal-prose{padding:clamp(2.6rem,5vw,4.6rem) 0 clamp(3rem,5vw,5rem);background:#fff}
body.vsgym-legal-privacy .vsgym-legal-prose__inner{
  width:min(900px,calc(100% - var(--vsg-gutter)*2));margin-inline:auto;
  font-size:1.04rem;line-height:1.72;color:var(--vsg-ink);
}
body.vsgym-legal-privacy .vsgym-legal-prose__inner > :first-child{margin-top:0}
body.vsgym-legal-privacy .vsgym-legal-prose__inner :is(p,li,dt,dd){max-width:100%;overflow-wrap:break-word}
body.vsgym-legal-privacy .vsgym-legal-prose__inner p{margin-block:0 1.35rem}
body.vsgym-legal-privacy .vsgym-legal-prose__inner :is(h2,.wp-block-heading){
  font-size:clamp(2.05rem,3.05vw,2.65rem);line-height:1.12;
  margin:2.35rem 0 1rem;overflow-wrap:normal;word-break:normal;hyphens:manual;
}
body.vsgym-legal-privacy .vsgym-legal-prose__inner h2:not(:first-child){
  padding-top:1.65rem;border-top:1px solid #e1edf3;
}
body.vsgym-legal-privacy .vsgym-legal-prose__inner h3{font-size:clamp(1.4rem,2.7vw,1.9rem);margin:1.4rem 0 .7rem}
body.vsgym-legal-privacy .vsgym-legal-prose__inner ul{margin:0 0 1.8rem;padding-left:1.55rem}
body.vsgym-legal-privacy .vsgym-legal-prose__inner li{padding-left:.12rem;margin-block:.26rem}
body.vsgym-legal-privacy .vsgym-legal-prose__inner a,
body.vsgym-legal-mentions .vsgym-prose .vsgym-narrow a{color:#00689b;text-underline-offset:.22em}
body.vsgym-legal-privacy .vsgym-legal-prose__inner :is(h1,h2,h3,p,ul){min-width:0;max-width:100%}
@media(max-width:600px){
  body.vsgym-legal-privacy .vsgym-legal-hero h1,
  body.vsgym-legal-mentions .vsgym-page-intro h1{font-size:clamp(2.7rem,10.3vw,4.2rem)}
  body.vsgym-legal-mentions .vsgym-prose .vsgym-narrow h2,
  body.vsgym-legal-privacy .vsgym-legal-prose__inner h2{font-size:clamp(1.85rem,7.5vw,2.3rem)}
  body.vsgym-legal-privacy .vsgym-legal-prose__inner{font-size:.99rem;line-height:1.69}
  body.vsgym-legal-mentions .vsgym-page-intro::before,
  body.vsgym-legal-privacy .vsgym-legal-hero::before{
    background-position:left -165px center,right -165px center;opacity:.09;
  }
}
/* 1.2.45 — Social profiles (direct links, no third-party embed or tracker). */
.vsgym-social{max-width:100%;}
.vsgym-social-heading{font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:1.45rem 0 .75rem!important;font-size:.72rem;color:#c1e7f9}
.vsgym-social-links{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}
.vsgym-social-link{display:inline-flex;gap:.52rem;align-items:center;min-height:44px;padding:.5rem .8rem;border:1px solid #56707c;text-decoration:none!important;font-size:.88rem;font-weight:700;border-radius:4px;color:#e7f6ff!important;transition:background-color .18s,border-color .18s}
.vsgym-social-link:hover{background:#213a48;border-color:#94d5ff;color:#fff!important}
.vsgym-social-symbol{display:inline-grid;place-items:center;font-family:Arial,sans-serif;font-size:1.2rem;font-weight:900;line-height:1;width:1.15rem;height:1.15rem;flex-shrink:0}
.vsgym-social--footer{margin-top:1.4rem}
.vsgym-social-contact{background:#eef7fc;padding:2.5rem 0}
.vsgym-social--contact .vsgym-social-heading{font-size:.78rem;margin-top:0!important;color:#17435b}
.vsgym-social--contact .vsgym-social-link{background:#fff;border-color:#97bccc;color:#005b89!important}
.vsgym-social--contact .vsgym-social-link:hover{background:#005b89;color:#fff!important}
.vsgym-social--contact .vsgym-social-link:focus-visible,.vsgym-social--footer .vsgym-social-link:focus-visible{outline:3px solid #f9c264;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.vsgym-social-link{transition:none}}
/* 1.2.45 — Long legal H1: never clip “CONFIDENTIALITÉ” on narrow phones. */
@media(max-width:600px){
  body.vsgym-legal-privacy .vsgym-legal-hero h1{font-size:clamp(1.8rem,7.8vw,3.8rem);line-height:1.06;}
}
@media(max-width:360px){
  body.vsgym-legal-privacy .vsgym-legal-prose__inner h2{font-size:1.65rem;line-height:1.16;}
}
@media(max-width:360px){
  body.vsgym-legal-privacy .vsgym-legal-prose__inner :is(h2,.wp-block-heading){font-size:1.65rem;}
}


/* VSGYM Élan 1.2.46 — Galerie accueil : cartes compactes, cadrage maîtrisé.
   La photo verticale de la première carte ne doit plus imposer sa hauteur
   intrinsèque à la rangée de trois cartes. Ne concerne pas les pages juridiques. */
body:is(.home,.front-page) .vsgym-photo-highlights {
  padding-block: clamp(2.75rem, 4.1vw, 4rem) clamp(2.9rem, 4.4vw, 4.25rem);
}
body:is(.home,.front-page) .vsgym-photo-highlights__heading {
  margin-bottom: clamp(1.35rem, 2.5vw, 2.25rem);
}
body:is(.home,.front-page) .vsgym-photo-highlights__heading h2 {
  font-size: clamp(2.1rem, 3.55vw, 3.55rem);
  line-height: 1.06;
  max-width: 100%;
}
body:is(.home,.front-page) .vsgym-photo-highlights__grid {
  gap: clamp(.8rem, 1.4vw, 1.2rem);
}
body:is(.home,.front-page) a.vsgym-photo-highlights__card {
  height: 360px;
  min-height: 0;
  max-height: none;
}
body:is(.home,.front-page) .vsgym-photo-highlights__card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  object-fit: cover;
}
body:is(.home,.front-page) .vsgym-photo-highlights__card:nth-child(1) img {object-position: 50% 49%;}
body:is(.home,.front-page) .vsgym-photo-highlights__card:nth-child(2) img {object-position: 50% 52%;}
body:is(.home,.front-page) .vsgym-photo-highlights__card:nth-child(3) img {object-position: 50% 38%;}
body:is(.home,.front-page) .vsgym-photo-highlights__card-body {
  bottom: 1rem;
  left: 1.13rem;
  right: 1.13rem;
  gap: .33rem;
}
body:is(.home,.front-page) .vsgym-photo-highlights__card-title {
  font-size: clamp(1.12rem, 1.48vw, 1.38rem);
  line-height: 1.22;
}
body:is(.home,.front-page) .vsgym-photo-highlights__action {
  margin-top: .48rem;
  padding-top: .58rem;
  font-size: .73rem;
}
@media(max-width:1100px) {
  body:is(.home,.front-page) a.vsgym-photo-highlights__card {height: 315px;}
}
@media(min-width:751px) and (max-width:900px) {
  body:is(.home,.front-page) .vsgym-photo-highlights__card:last-child {grid-column:1 / -1;}
  body:is(.home,.front-page) a.vsgym-photo-highlights__card:last-child {height: 270px;}
}
@media(max-width:750px) {
  body:is(.home,.front-page) .vsgym-photo-highlights {
    padding-block: 2.45rem 2.8rem;
  }
  body:is(.home,.front-page) .vsgym-photo-highlights__heading {
    margin-bottom: 1.45rem;
  }
  body:is(.home,.front-page) .vsgym-photo-highlights__heading h2 {
    font-size: clamp(1.65rem, 7.1vw, 2.65rem);
    line-height: 1.08;
  }
  body:is(.home,.front-page) .vsgym-photo-highlights__grid {gap: .82rem;}
  body:is(.home,.front-page) a.vsgym-photo-highlights__card,
  body:is(.home,.front-page) a.vsgym-photo-highlights__card:last-child {
    height: 255px;
    min-height: 0;
    max-height: none;
  }
  body:is(.home,.front-page) .vsgym-photo-highlights__card-title {font-size: 1.12rem;}
  body:is(.home,.front-page) .vsgym-photo-highlights__card-body {
    left: 1rem;
    right: 1rem;
    bottom: .8rem;
  }
}
@media(max-width:360px) {
  body:is(.home,.front-page) a.vsgym-photo-highlights__card,
  body:is(.home,.front-page) a.vsgym-photo-highlights__card:last-child {height: 240px;}
  body:is(.home,.front-page) .vsgym-photo-highlights__action {font-size: .69rem;}
}


/* VSGYM Élan 1.2.47 — GR photography, three deliberately compact visual cards. */
.vsgym-gr-gallery {margin:0!important;padding:clamp(2.7rem,5vw,4.7rem) 0;background:#eef5f9;border-top:1px solid #d6e8f1;}
.vsgym-gr-gallery__inner {width:min(1280px,calc(100% - var(--vsg-gutter)*2));margin-inline:auto;}
.vsgym-gr-gallery__heading {border-left:4px solid #009eff;padding:0 0 0 clamp(.9rem,2vw,1.5rem);margin:0 0 clamp(1.2rem,2.7vw,2rem);max-width:800px;}
.vsgym-gr-gallery__eyebrow {font-size:.75rem;font-weight:850;letter-spacing:.18em;color:#0072aa;margin:0 0 .65rem!important;}
.vsgym-gr-gallery__heading h2 {font-size:clamp(2.3rem,4vw,3.75rem);line-height:1.05;margin:0 0 .65rem!important;color:#071923;}
.vsgym-gr-gallery__heading>p:last-child {font-size:1rem;line-height:1.55;color:#435b69;margin:0!important;max-width:65ch;}
.vsgym-gr-gallery__grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,1.7vw,1.3rem);}
.vsgym-gr-gallery__card {min-width:0;position:relative;overflow:hidden;height:315px;margin:0!important;background:#0a2434;border-top:5px solid #009eff;isolation:isolate;}
.vsgym-gr-gallery__card img {display:block;width:100%;height:100%;object-fit:cover;object-position:center 39%;transition:transform .45s ease;}
.vsgym-gr-gallery__card:nth-child(2) img {object-position:center 59%;}
.vsgym-gr-gallery__card:nth-child(3) img {object-position:center 31%;}
.vsgym-gr-gallery__card::after {content:"";position:absolute;inset:35% 0 0;background:linear-gradient(180deg,transparent,rgba(3,15,22,.9));z-index:1;pointer-events:none;}
.vsgym-gr-gallery__card figcaption {position:absolute;z-index:2;bottom:1rem;left:1.15rem;right:1.15rem;display:grid;gap:.35rem;}
.vsgym-gr-gallery__card figcaption span {font-size:.68rem;font-weight:850;letter-spacing:.15em;color:#aee5ff;}
.vsgym-gr-gallery__card figcaption strong {color:white;font-size:clamp(1.05rem,1.4vw,1.27rem);line-height:1.28;}
@media(min-width:750px) and (hover:hover){.vsgym-gr-gallery__card:hover img{transform:scale(1.025)}}
@media(max-width:750px){
  .vsgym-gr-gallery{padding:2.7rem 0;}
  .vsgym-gr-gallery__heading h2{font-size:clamp(2rem,8vw,2.6rem)}
  .vsgym-gr-gallery__grid{grid-template-columns:minmax(0,1fr);gap:.9rem}
  .vsgym-gr-gallery__card{height:235px}
  .vsgym-gr-gallery__card figcaption{left:1rem;right:1rem;bottom:.8rem}
}
@media(max-width:360px){.vsgym-gr-gallery__card{height:220px}}

/* 1.2.47 — progressive appearance/disappearance on selected visual components.
   No effects unless JavaScript initialized successfully. Focus is never hidden;
   legal prose, controls and menus are purposefully not included. */
@media (prefers-reduced-motion: no-preference) {
  .vsgym-motion-enabled [data-vsgym-reveal] {
    opacity:1;
    translate:0 0;
    transition:opacity .65s cubic-bezier(.2,.7,.2,1),translate .65s cubic-bezier(.2,.7,.2,1);
    transition-delay:var(--vsgym-delay,0ms);
  }
  .vsgym-motion-enabled [data-vsgym-reveal]:not(.vsgym-in-view):not(:focus-within) {
    opacity:0;
    translate:0 14px;
    transition-delay:0ms;
  }
  .vsgym-motion-enabled [data-vsgym-reveal]:focus-within,
  .vsgym-motion-enabled [data-vsgym-reveal]:focus-visible {
    opacity:1;
    translate:0 0;
  }
}
@media(prefers-reduced-motion:reduce){
  .vsgym-motion-enabled [data-vsgym-reveal]{opacity:1!important;translate:none!important;transition:none!important}
  .vsgym-gr-gallery__card img{transition:none!important}
}

@media print {
  .vsgym-motion-enabled [data-vsgym-reveal]{opacity:1!important;translate:none!important;transition:none!important;}
}
@media (prefers-reduced-motion: reduce) {html{scroll-behavior:auto!important;}}

/* 1.2.48 — Équipe technique VSGYM, insérée après le bureau existant, sans portraits fictifs. */
.vsgym-staff{background:#edf4f8;position:relative;padding:clamp(3.5rem,7vw,6.5rem) 0;overflow:clip;color:#0a1b26}
.vsgym-staff::before{content:"";position:absolute;top:0;left:0;width:min(26vw,300px);height:6px;background:#009eff}
.vsgym-staff__inner{width:min(1240px,calc(100% - 2*var(--vsg-gutter)));margin:0 auto}
.vsgym-staff__intro{max-width:860px;margin:0 0 clamp(1.5rem,3vw,2.5rem)}
.vsgym-staff__eyebrow{display:block;font-size:.76rem;letter-spacing:.19em;font-weight:850;color:#056a99;text-transform:uppercase;margin-bottom:.95rem}
.vsgym-staff__intro h2{font-size:clamp(2.5rem,6vw,5.25rem);line-height:1.03;margin:0 0 1.15rem;overflow-wrap:normal;hyphens:none}
.vsgym-staff__intro p{font-size:clamp(1rem,1.65vw,1.18rem);line-height:1.6;color:#385468;margin:0;max-width:68ch}
.vsgym-staff__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:stretch}
.vsgym-staff__card{background:#fff;border:1px solid #d0e1eb;border-top:5px solid #009eff;padding:clamp(1.15rem,2vw,1.65rem);display:flex;flex-direction:column;min-width:0;box-shadow:0 7px 24px rgba(0,30,46,.035)}
.vsgym-staff__card-head{padding:0 0 .9rem;border-bottom:1px solid #e1ebf0}
.vsgym-staff__abr{font-size:.77rem;letter-spacing:.15em;font-weight:900;color:#0074a9}
.vsgym-staff__card h3{font-size:clamp(1.35rem,2vw,1.9rem);line-height:1.14;overflow-wrap:normal;hyphens:none;margin:.45rem 0 0;color:#091a22}
.vsgym-staff__label{display:block;color:#587081;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850;margin-bottom:.55rem}
.vsgym-staff__lead{padding:1.1rem 0 .25rem}
.vsgym-staff__lead strong{display:inline-block;border-left:3px solid #009eff;padding:.4rem .75rem;background:#eaf6fd;color:#091d29;font-size:1.03rem}
.vsgym-staff__coaches{padding:1.25rem 0 1.4rem}
.vsgym-staff__coaches ul{list-style:none;margin:0!important;padding:0!important;display:flex;gap:.48rem;flex-wrap:wrap}
.vsgym-staff__coaches li{margin:0!important;padding:.42rem .7rem;background:#edf4f8;border:1px solid #d4e5ef;color:#173646;font-size:.9rem;font-weight:660;line-height:1.35;white-space:normal}
.vsgym-staff__link{margin-top:auto;padding:.95rem 0 0;border-top:1px solid #e1ebf0;display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#00699b!important;text-decoration:none!important;font-size:.79rem;font-weight:850;letter-spacing:.03em;min-height:44px}
.vsgym-staff__link:hover{text-decoration:underline!important;color:#003f64!important}
.vsgym-staff__link span{font-size:1.18rem}
.vsgym-staff__judges{margin-top:clamp(2.6rem,5vw,4.2rem);padding:clamp(1.2rem,3vw,2.1rem);background:#071821;color:#fff}
.vsgym-staff__judges .vsgym-staff__eyebrow{color:#76d2ff}
.vsgym-staff__judges-heading h3{font-size:clamp(2rem,4vw,3.1rem);margin:.2rem 0 .5rem;color:#fff}
.vsgym-staff__judges-heading p{font-size:.96rem;color:#c8dce5;line-height:1.56;max-width:66ch;margin:0 0 1.6rem}
.vsgym-staff__judges-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.vsgym-staff__judge-col{border-top:3px solid #009eff;padding:1.05rem;background:#122b39;min-width:0}
.vsgym-staff__judge-col h4{font-size:1.45rem;line-height:1.12;color:#fff;margin:0 0 1rem}
.vsgym-staff__judge-col ul{list-style:none;margin:0!important;padding:0!important;display:grid;gap:.65rem}
.vsgym-staff__judge-col li{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin:0!important;font-size:.96rem}
.vsgym-staff__judge-col li strong{color:#fff}
.vsgym-staff__judge-col li span{font-size:.81rem;color:#b1d5e7}
.vsgym-staff__pending{font-size:.85rem;color:#c1d1da;font-style:italic;margin:0}
.vsgym-staff__note{margin:1rem 0 0;font-size:.78rem;color:#536d7b;line-height:1.55}
@media(max-width:960px){.vsgym-staff__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.vsgym-staff__grid,.vsgym-staff__judges-grid{grid-template-columns:1fr}.vsgym-staff__card{padding:1.15rem}.vsgym-staff__judges{padding:1.2rem}.vsgym-staff__intro h2{font-size:clamp(2.3rem,10.5vw,3.3rem)}.vsgym-staff__card h3{font-size:1.55rem}}

/* 1.2.49 — Organigramme prêt à recevoir les portraits, sans images inventées. */
.vsgym-staff__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;align-items:stretch}
.vsgym-staff__card{padding:clamp(1.15rem,2vw,1.6rem);gap:0}
.vsgym-staff__card:last-child:nth-child(odd){grid-column:1/-1}
.vsgym-staff__lead{padding:1.25rem 0 .8rem;border-bottom:1px solid #edf2f6}
.vsgym-staff__lead .vsgym-staff__person{background:#eaf6fd;border:1px solid #d0e6f3;padding:.8rem;border-left:4px solid #009eff}
.vsgym-staff__person{display:flex;align-items:center;gap:.72rem;min-width:0}
.vsgym-staff__person-info{display:flex;flex-direction:column;gap:.14rem;min-width:0;overflow-wrap:anywhere}
.vsgym-staff__person-info strong,.vsgym-staff__lead .vsgym-staff__person-info strong{display:block!important;font-size:1rem!important;line-height:1.28!important;font-weight:850!important;letter-spacing:0!important;color:#102733!important;margin:0!important;border:0!important;background:none!important;padding:0!important}
.vsgym-staff__person-info span{color:#5d7484;font-size:.73rem;font-weight:640;line-height:1.35}
.vsgym-staff__portrait{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 62px;width:62px;height:70px;border:1px dashed #9bb6c7;background:linear-gradient(145deg,#deedf7,#f7fbfd);color:#82a9be;overflow:hidden;border-radius:4px}
.vsgym-staff__portrait svg{width:38px;height:38px;display:block}
.vsgym-staff__portrait--lead{width:100px;height:114px;flex-basis:100px;border-color:#95c7e8;background:linear-gradient(150deg,#cde7f9,#eef8ff)}
.vsgym-staff__portrait--lead svg{width:58px;height:58px}
.vsgym-staff__portrait--judge{flex-basis:57px;width:57px;height:66px;background:linear-gradient(160deg,#244657,#173441);border-color:#496c7e;color:#b4cddd}
.vsgym-staff__portrait--filled{border-style:solid;background:#e4edf2}
.vsgym-staff__portrait img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center 18%;display:block}
.vsgym-staff__coaches{padding:1.2rem 0 1.4rem}
.vsgym-staff__members{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.72rem .62rem}
.vsgym-staff__members>[role=listitem]{min-width:0}
.vsgym-staff__members .vsgym-staff__person{padding:.55rem;background:#f1f6f9;border:1px solid #deebf2;gap:.55rem;min-height:86px}
.vsgym-staff__members .vsgym-staff__portrait{flex-basis:55px;width:55px;height:63px}
.vsgym-staff__members .vsgym-staff__portrait svg{width:32px;height:32px}
.vsgym-staff__members .vsgym-staff__person-info strong{font-size:.89rem!important}
.vsgym-staff__members .vsgym-staff__person-info span{font-size:.68rem}
.vsgym-staff__single{font-size:.92rem;color:#547080;margin:0;line-height:1.55}
.vsgym-staff__judge-col{padding:1.2rem}
.vsgym-staff__judges-list{display:grid;gap:.8rem}
.vsgym-staff__judge-col .vsgym-staff__person{background:#1a394a;padding:.6rem;border:1px solid #35576b}
.vsgym-staff__judge-col .vsgym-staff__person-info strong{color:#fff!important}
.vsgym-staff__judge-col .vsgym-staff__person-info span{color:#a6d5ed}
.vsgym-staff__pending-slot{display:flex;align-items:center;gap:.9rem;min-height:77px}
.vsgym-staff__pending-picture{display:grid;place-items:center;width:58px;height:67px;flex:0 0 58px;border:1px dashed #537486;background:#1a394a;color:#88bbd7;font-size:1.4rem;font-weight:300}
.vsgym-staff__pending{line-height:1.5}
@media(min-width:1300px){.vsgym-staff__inner{width:min(1320px,calc(100% - 2*var(--vsg-gutter)))}}
@media(max-width:1150px){.vsgym-staff__members{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.vsgym-staff__grid{grid-template-columns:1fr}.vsgym-staff__card:last-child:nth-child(odd){grid-column:auto}.vsgym-staff__members{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.vsgym-staff__members{grid-template-columns:repeat(2,minmax(0,1fr))}.vsgym-staff__lead .vsgym-staff__person{padding:.62rem}.vsgym-staff__portrait--lead{flex-basis:90px;width:90px;height:103px}.vsgym-staff__members .vsgym-staff__person{gap:.5rem;padding:.4rem}.vsgym-staff__members .vsgym-staff__portrait{flex-basis:47px;width:47px;height:57px}.vsgym-staff__members .vsgym-staff__person-info strong{font-size:.83rem!important}}
@media(max-width:360px){.vsgym-staff__members{gap:.5rem}.vsgym-staff__members .vsgym-staff__portrait{flex-basis:43px;width:43px;height:53px}.vsgym-staff__members .vsgym-staff__person-info strong{font-size:.78rem!important}}

/* VSGYM Élan 1.2.50 — Les portraits de l'équipe technique reprennent les cercles du bureau. */
.vsgym-staff .vsgym-staff__portrait {
  width: 64px; height: 64px; flex: 0 0 64px; min-width:0;
  border: 3px solid #fff; border-radius:50%;
  box-shadow: 0 0 0 2px #009eff;
  background:linear-gradient(135deg,#d7eaf7,#eff8fd);
  color:#709cb3;
  aspect-ratio:1 / 1;
  overflow:hidden;
}
.vsgym-staff .vsgym-staff__portrait--lead {
  width: 104px; height:104px; flex:0 0 104px;
}
.vsgym-staff .vsgym-staff__members .vsgym-staff__portrait {
  width:55px; height:55px; flex:0 0 55px;
}
.vsgym-staff .vsgym-staff__portrait--judge {
  width:60px; height:60px; flex:0 0 60px;
  background:linear-gradient(135deg,#284757,#183746);
  color:#a7c7d8;
}
.vsgym-staff .vsgym-staff__portrait img {
  display:block!important;
  width:100%!important;height:100%!important;max-width:none!important;
  object-fit:cover!important;object-position:50% 34%!important;
  aspect-ratio:1 / 1!important;
  border-radius:50%!important;
}
.vsgym-staff .vsgym-staff__portrait--filled{background:#dceef8}
.vsgym-staff .vsgym-staff__pending-picture {
  width:60px;height:60px;flex:0 0 60px;
  border:2px dashed #8cb9d0;border-radius:50%;
  box-shadow:0 0 0 1px rgba(0,158,255,.16);
}
.vsgym-staff .vsgym-staff__members .vsgym-staff__person{min-height:76px}
@media(max-width:520px){
  .vsgym-staff .vsgym-staff__portrait--lead{width:90px;height:90px;flex-basis:90px}
  .vsgym-staff .vsgym-staff__members .vsgym-staff__portrait{width:48px;height:48px;flex-basis:48px}
}
@media(max-width:360px){
  .vsgym-staff .vsgym-staff__members .vsgym-staff__portrait{width:43px;height:43px;flex-basis:43px}
}

/* VSGYM Élan 1.2.53 — authentic brand marks: Instagram, Facebook, LinkedIn.
 * Brand glyphs: Font Awesome Free 6.7.2, CC BY 4.0; see licenses directory.
 * Direct external links only: no third-party network requests before a click. */
.vsgym-social-links{gap:.65rem;}
.vsgym-social .vsgym-social-link{
  gap:.62rem;
  padding:.4rem .88rem .4rem .42rem;
  border-radius:10px;
  line-height:1.35;
  white-space:nowrap;
}
.vsgym-social .vsgym-social-symbol{
  width:34px;
  height:34px;
  display:inline-grid;
  place-items:center;
  flex-shrink:0;
  border-radius:9px;
  color:#fff;
  background:#0784b0;
  box-shadow:0 1px 3px rgba(0,0,0,.12);
}
.vsgym-social .vsgym-social-icon{display:block;width:19px;height:19px;fill:currentColor;overflow:visible;}
.vsgym-social .vsgym-social-link[data-social="instagram"] .vsgym-social-symbol{
  background:linear-gradient(135deg,#6547c6 2%,#c13584 47%,#f56040 78%,#ffbe55 100%);
}
.vsgym-social .vsgym-social-link[data-social="facebook"] .vsgym-social-symbol{background:#1877f2;}
.vsgym-social .vsgym-social-link[data-social="linkedin"] .vsgym-social-symbol{background:#0a66c2;}
.vsgym-social .vsgym-social-link:is(:hover,:focus-visible) .vsgym-social-symbol{box-shadow:0 2px 8px rgba(11,84,130,.25);}
@media(max-width:380px){
  .vsgym-social .vsgym-social-link{font-size:.85rem;padding:.33rem .72rem .33rem .35rem;}
  .vsgym-social .vsgym-social-symbol{width:31px;height:31px;}
}
/* Footer keeps the three marks in one elegant row, even in the narrow identity column.
 * The full text labels remain visible on the Contact page and accessible to screen readers everywhere. */
.vsgym-social--footer .vsgym-social-link{
  width:48px;
  height:48px;
  min-width:48px;
  min-height:48px;
  padding:6px;
  justify-content:center;
  gap:0;
  border-radius:11px;
}
.vsgym-social--footer .vsgym-social-symbol{width:34px;height:34px;}
.vsgym-social--footer .vsgym-social-label{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* 1.4.10 — Standard 16:9 pour toutes les images mises en avant des cartes.
 * 1600×900 occupe exactement le cadre, sans bandes latérales ni coupe.
 * L'accueil, les archives et les résultats utilisent la même présentation. */
.vsgym-news-cards>li>.wp-block-post-featured-image{
  aspect-ratio:16/9!important;height:auto!important;flex:0 0 auto!important;
}
.vsgym-news-cards .wp-block-post-featured-image img{object-fit:cover!important;object-position:center!important}
.vsgym-news-card__image,.vsgym-news-card__placeholder{
  aspect-ratio:16/9;height:auto;flex:none;
}
.vsgym-news-cards>li:not(:has(>.wp-block-post-featured-image))::before{
  aspect-ratio:16/9;height:auto;flex:0 0 auto;box-sizing:border-box;
}

/* VSGYM Élan 1.4.10 — Agenda: typographie et palette conservées, sans plugin. */
.vsgym-agenda{width:min(1280px,calc(100% - 2rem));margin:0 auto;padding:3.5rem 0 5rem;color:#142736}
.vsgym-agenda__intro{margin-bottom:2.2rem}
.vsgym-agenda__intro h1,.vsgym-event-single .wp-block-post-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.7rem,6vw,5.5rem);font-weight:400;line-height:1.02;letter-spacing:.005em;color:#000;margin:.5rem 0 1rem}
.vsgym-agenda__intro h1 span{color:#007cbf}
.vsgym-agenda__intro>p:last-child{color:#435969;font-size:1.04rem;max-width:800px}
.vsgym-agenda__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.1rem;margin:2rem 0 1.3rem}
.vsgym-agenda__monthnav{display:flex;gap:.9rem;align-items:center}
.vsgym-agenda__monthnav h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.65rem,3vw,2.2rem);font-weight:400;margin:0;min-width:180px;text-align:center;text-transform:uppercase}
.vsgym-agenda__monthnav>a{width:44px;height:44px;display:grid;place-items:center;border:1px solid #bfd9e6;text-decoration:none;color:#006a9d;background:#fff;font-size:1.2rem}
.vsgym-agenda__monthnav>a:hover,.vsgym-agenda__monthnav>a:focus-visible{background:#e9f6ff;border-color:#009eff}
.vsgym-agenda__filters{display:flex;gap:.4rem;flex-wrap:wrap}
.vsgym-agenda__filters a,.vsgym-agenda__discipline button{font-family:Barlow,sans-serif;font-weight:750;text-decoration:none;color:#125071;background:#fff;border:1px solid #c2d9e6;padding:.7rem .9rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.vsgym-agenda__filters a.is-active,.vsgym-agenda__discipline button{background:#009eff;border-color:#009eff;color:#001a2b}
.vsgym-agenda__discipline{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:0 0 1.4rem}
.vsgym-agenda__discipline label{font-weight:800}
.vsgym-agenda__discipline select{background:#fff;border:1px solid #c2d9e6;padding:.55rem .7rem;min-height:44px;max-width:100%;font:inherit}
.vsgym-agenda__calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;background:#e5eff5;padding:4px;border:1px solid #d8e6ef;overflow:visible}
.vsgym-agenda__weekday{padding:.85rem .1rem;text-align:center;background:#0a2b40;color:#fff;font-weight:800;font-size:.83rem}
.vsgym-agenda__blank,.vsgym-agenda__day{background:#fff;min-width:0;min-height:112px;padding:.65rem;box-sizing:border-box}
.vsgym-agenda__day{position:relative}
.vsgym-agenda__blank{background:#f4f8fa}
.vsgym-agenda__day.has-event{background:#e8f6ff;border-top:3px solid #009eff}
/* Une période longue ou des vacances teintent TOUTES les cases, pas uniquement le premier jour. */
.vsgym-agenda__day.is-period,.vsgym-agenda__day.is-vacation{background:#e0e5ea;border-top:3px solid #8193a0}
.vsgym-agenda__day.is-period .vsgym-agenda__day-link,.vsgym-agenda__day.is-vacation .vsgym-agenda__day-link{color:#274052}
.vsgym-agenda__legend{display:flex;align-items:center;gap:.65rem 1.4rem;flex-wrap:wrap;margin:-.55rem 0 1rem;color:#405667;font-size:.85rem;font-weight:650}
.vsgym-agenda__legend>span{display:inline-flex;align-items:center;gap:.5rem}
.vsgym-agenda__legend-swatch{display:inline-block;width:18px;height:18px;flex-shrink:0;background:#e8f6ff;border:1px solid #bddce9;border-top:3px solid #009eff}
.vsgym-agenda__legend-swatch.is-period{background:#e0e5ea;border:1px solid #b9c7d1;border-top:3px solid #8193a0}
.vsgym-agenda__day.is-today .vsgym-agenda__number{background:#009eff;color:#000;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}
.vsgym-agenda__number{display:inline-flex;font-weight:800}
/* 1.4.15 : la case ouvre l'article, jamais une ancre vers la liste du mois. */
.vsgym-agenda__dots{display:none;color:#007cbf;font-size:1rem}
.vsgym-agenda__day-link{position:absolute;inset:0;display:block;padding:.65rem;box-sizing:border-box;text-decoration:none;color:#16445d;cursor:pointer;overflow-wrap:anywhere}
.vsgym-agenda__day-link:hover{background:rgba(0,158,255,.10);color:#003d63}
.vsgym-agenda__day.is-period .vsgym-agenda__day-link:hover{background:rgba(0,0,0,.055)}
.vsgym-agenda__day-link:focus-visible{outline:3px solid #005e91;outline-offset:-3px}
.vsgym-agenda__day-title{display:block;font-size:.75rem;line-height:1.22;font-weight:750;margin-top:.42rem;overflow-wrap:anywhere}
/* 1.4.16 : titres visibles les uns sous les autres dans les journées multi-événements. */
.vsgym-agenda__day-items{display:flex;flex-direction:column;gap:.3rem;margin-top:.48rem;min-width:0}
.vsgym-agenda__day-item{display:block;padding:.24rem .36rem;border-left:2px solid #009eff;background:rgba(255,255,255,.65);font-family:Barlow,sans-serif;font-size:.76rem;font-weight:750;line-height:1.25;color:#034d76;text-decoration:none;overflow-wrap:anywhere;hyphens:auto}
.vsgym-agenda__day.is-period .vsgym-agenda__day-item,.vsgym-agenda__day.is-vacation .vsgym-agenda__day-item{border-left-color:#8193a0;background:rgba(255,255,255,.58);color:#274052}
.vsgym-agenda__day-item:hover{background:#fff;text-decoration:underline;color:#003d63}
.vsgym-agenda__day-item:focus-visible{outline:3px solid #005e91;outline-offset:1px;background:#fff}
.vsgym-agenda__list{margin:3rem 0 0}
.vsgym-agenda__list>h2{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(2rem,4vw,3rem);margin:0 0 1.3rem}
.vsgym-agenda__empty{padding:1.5rem;background:#eff6fa;border-left:4px solid #009eff;color:#405667}
.vsgym-agenda__event{display:flex;gap:1.3rem;border:1px solid #dae7ee;border-left:4px solid #009eff;background:#fff;margin-bottom:.75rem;padding:1.1rem;align-items:start}
.vsgym-agenda__event-date{width:70px;min-width:70px;min-height:72px;background:#eaf6fd;display:flex;align-items:center;justify-content:center;flex-direction:column}
.vsgym-agenda__event-date strong{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;font-weight:400;line-height:1}
.vsgym-agenda__event-date span{text-transform:uppercase;font-size:.75rem;font-weight:800;color:#005b8c}
.vsgym-agenda__event-detail{min-width:0}
.vsgym-agenda__event-type{color:#005e91;font-weight:800;font-size:.79rem;text-transform:uppercase;letter-spacing:.07em;margin:0 0 .4rem}
.vsgym-agenda__event-detail h3{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.1;margin:0 0 .6rem}
.vsgym-agenda__event-detail h3 a{color:#101d28;text-decoration:none}
.vsgym-agenda__event-detail h3 a:hover{text-decoration:underline;color:#006aa2}
.vsgym-agenda__event-detail>p:last-child{color:#475f6e;margin:0;font-size:.95rem}
.vsgym-event-single{width:min(1050px,calc(100% - 2rem));margin:0 auto;padding:3.5rem 0 5rem}
.vsgym-event-single .wp-block-post-featured-image{margin:1.6rem 0;max-width:100%}
.vsgym-event-single .wp-block-post-featured-image img{width:100%;height:auto;object-fit:contain}
.vsgym-agenda__single-details{display:flex;gap:.8rem 1.8rem;flex-wrap:wrap;background:#eaf6fd;padding:1rem;border-left:4px solid #009eff;margin:1rem 0}
.vsgym-event-single__back{margin-top:3rem}
.vsgym-event-single__back a{color:#006c9e;font-weight:800}
@media(max-width:760px){
 .vsgym-agenda{padding:2rem 0 3rem;width:calc(100% - 1.25rem)}
 .vsgym-agenda__toolbar{align-items:flex-start;flex-direction:column}
 .vsgym-agenda__calendar{gap:2px;padding:2px}
 .vsgym-agenda__weekday{font-size:.7rem;padding:.65rem 0}
 .vsgym-agenda__blank,.vsgym-agenda__day{min-height:53px;padding:.3rem .2rem;text-align:center}
 .vsgym-agenda__number{font-size:.83rem;justify-content:center}
 .vsgym-agenda__dots{display:block;font-size:.7rem;line-height:1}
 .vsgym-agenda__day-link{padding:.3rem .2rem}
 .vsgym-agenda__day-title{display:none}
 /* Les noms des événements restent directement lisibles même sur petit écran. */
 .vsgym-agenda__day-items{gap:.22rem;margin-top:.2rem;text-align:left}
 .vsgym-agenda__day-item{font-size:.64rem;line-height:1.15;padding:.16rem .12rem;border-left-width:2px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
 .vsgym-agenda__event{gap:.7rem;padding:.8rem}
 .vsgym-agenda__event-date{width:55px;min-width:55px;min-height:64px}
 .vsgym-agenda__event-date strong{font-size:1.85rem}
}
@media(prefers-reduced-motion:reduce){
 .vsgym-agenda a,.vsgym-agenda button{transition:none!important;transform:none!important}
}

/* VSGYM 1.4.17 — Documents officiels / accessible PDF listings */
.vsgym-official-docs{padding:clamp(28px,5vw,64px) 0;background:#f2f6f8;color:#15212b}
.vsgym-official-docs__inner{max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.vsgym-official-docs h2,.vsgym-official-docs h3{font-family:"Bebas Neue",sans-serif;letter-spacing:.012em;color:#000}
.vsgym-official-docs h2{font-size:clamp(2rem,4.2vw,3.5rem);line-height:1.05;margin:8px 0 26px}
.vsgym-official-docs h2 span{color:#00689b}
.vsgym-official-docs h3{font-size:clamp(1.45rem,2.5vw,2rem);margin:24px 0 12px}
.vsgym-official-docs__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.vsgym-official-docs__list li{margin:0;padding:0}
.vsgym-official-docs__list a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;min-height:60px;text-decoration:none;background:#fff;border:1px solid #c4d9e5;border-left:4px solid #009eff;color:#004c73;font:600 1rem/1.3 "Barlow",sans-serif}
.vsgym-official-docs__list a:hover,.vsgym-official-docs__list a:focus-visible{background:#e1f4ff;border-color:#00689b;color:#003e61}
.vsgym-official-docs__format{flex-shrink:0;font-size:.8rem;font-weight:700;white-space:nowrap}
.vsgym-official-docs__note{font:400 1rem/1.5 "Barlow",sans-serif;margin:23px 0 0;color:#435565}
@media(max-width:700px){.vsgym-official-docs__list{grid-template-columns:1fr}.vsgym-official-docs__list a{padding:16px}}


/* VSGYM Élan 1.4.18 — Photographies intégrées aux disciplines (règles locales). */
body.vsgym-page-teamgym .vsgym-page-intro--teamgym::before {
  background:linear-gradient(90deg,#071925 0%,rgba(7,25,37,.98) 34%,rgba(7,25,37,.47) 100%),url('../images/vsgym-1418-teamgym.webp') 85% 48%/cover no-repeat;
}
body.vsgym-page-baby .vsgym-page-intro--baby-gym::before {
  background:linear-gradient(90deg,#071925 0%,rgba(7,25,37,.97) 36%,rgba(7,25,37,.46) 100%),url('../images/vsgym-1418-babygym.webp') 75% 50%/cover no-repeat;
}
body.vsgym-page-adultes .vsgym-page-intro--adultes::before {
  background:linear-gradient(90deg,#071925 0%,rgba(7,25,37,.97) 36%,rgba(7,25,37,.43) 100%),url('../images/vsgym-1418-yoga.webp') 75% 50%/cover no-repeat;
}
body.vsgym-page-suite .vsgym-1418-photo {aspect-ratio:1.62;min-height:280px;overflow:hidden;background:#071925;border:1px solid #b0d6e8;box-shadow:0 20px 42px rgba(0,37,68,.12);}
body.vsgym-page-suite .vsgym-1418-photo img {width:100%;height:100%;object-fit:cover;display:block;}
body.vsgym-page-baby .vsgym-1418-photo--baby img {object-position:50% 44%;}
body.vsgym-page-suite .vsgym-1418-mosaic {width:100%;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;aspect-ratio:1.62;min-height:280px;overflow:hidden;background:#071925;border:1px solid #b0d6e8;box-shadow:0 20px 42px rgba(0,37,68,.12);}
body.vsgym-page-suite .vsgym-1418-mosaic__tile {min-width:0;min-height:0;overflow:hidden;background:#102938;}
body.vsgym-page-suite .vsgym-1418-mosaic img {display:block;width:100%;height:100%;object-fit:cover;}
body.vsgym-page-adultes .vsgym-apparatus-list li {justify-content:flex-start;}
body.vsgym-page-adultes .vsgym-apparatus-list .vsgym-1418-activity-photo {display:block;flex:0 0 auto;width:100%;aspect-ratio:16/10;overflow:hidden;background:#0a2638;margin-bottom:.55rem;}
body.vsgym-page-adultes .vsgym-apparatus-list .vsgym-1418-activity-photo img {display:block;width:100%;height:100%;object-fit:cover;}
@media(max-width:780px) {
  body.vsgym-page-teamgym .vsgym-page-intro--teamgym::before,
  body.vsgym-page-baby .vsgym-page-intro--baby-gym::before,
  body.vsgym-page-adultes .vsgym-page-intro--adultes::before {background-position:center,60% center;background-size:cover;}
  body.vsgym-page-suite .vsgym-1418-photo,body.vsgym-page-suite .vsgym-1418-mosaic {aspect-ratio:4/3;min-height:220px;}
}


/* VSGYM Élan 1.4.25 — agenda tactile lisible sans changer le calendrier ordinateur. */
.vsgym-agenda__mobile-date,.vsgym-agenda__mobile-hint{display:none}
.vsgym-agenda__event{scroll-margin-top:110px}
.vsgym-agenda__list{scroll-margin-top:110px}
@media(max-width:760px){
 .vsgym-agenda__toolbar{gap:.75rem}
 .vsgym-agenda__monthnav{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;width:100%;align-items:center;gap:.3rem}
 .vsgym-agenda__monthnav h2{font-size:clamp(1.45rem,6.6vw,2rem);text-align:center;min-width:0;margin:0}
 .vsgym-agenda__monthnav a{width:46px;height:46px;min-height:46px;display:grid;place-items:center;padding:0}
 .vsgym-agenda__filters{width:100%;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:.45rem;padding-bottom:.3rem}
 .vsgym-agenda__filters a{flex:0 0 auto;min-height:43px;white-space:nowrap;padding:.52rem .8rem}
 .vsgym-agenda__discipline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin-bottom:.85rem}
 .vsgym-agenda__discipline label{grid-column:1 / -1}
 .vsgym-agenda__discipline select{min-width:0;width:100%}
 .vsgym-agenda__discipline button{white-space:nowrap}
 .vsgym-agenda__mobile-hint{display:block;font-size:.82rem;line-height:1.5;margin:0 0 .75rem;color:#405667}
 .vsgym-agenda__mobile-hint a{font-weight:700;color:#005b87;text-underline-offset:2px}
 .vsgym-agenda__legend{font-size:.72rem;gap:.4rem .8rem;margin:0 0 .7rem}
 .vsgym-agenda__legend-swatch{width:12px;height:12px}
 .vsgym-agenda__calendar{gap:2px;padding:2px;overflow:visible}
 .vsgym-agenda__weekday{padding:.56rem 0;font-size:.69rem}
 .vsgym-agenda__blank,.vsgym-agenda__day{min-height:48px;height:48px;padding:0;overflow:hidden}
 .vsgym-agenda__day{border-top-width:2px!important}
 .vsgym-agenda__day-link,.vsgym-agenda__day-items,.vsgym-agenda__day>.vsgym-agenda__number,.vsgym-agenda__day>.vsgym-agenda__dots{display:none!important}
 .vsgym-agenda__day:not(.has-event)>.vsgym-agenda__number{display:flex!important;align-items:center;justify-content:center;height:100%;font-size:.9rem}
 .vsgym-agenda__mobile-date{display:flex;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:44px;color:#053a57;text-decoration:none;font-weight:800;line-height:1.1;font-size:.93rem;touch-action:manipulation}
 .vsgym-agenda__mobile-date i{font-style:normal;color:#007cbf;font-size:.68rem;line-height:1.1}
 .vsgym-agenda__day.is-period .vsgym-agenda__mobile-date i,.vsgym-agenda__day.is-vacation .vsgym-agenda__mobile-date i{color:#546f80}
 .vsgym-agenda__mobile-date:focus-visible{outline:3px solid #005e91;outline-offset:-3px}
 .vsgym-agenda__day.is-today .vsgym-agenda__mobile-date>span{background:#009eff;color:#001c2e;border-radius:50%;width:27px;height:27px;display:grid;place-items:center}
 .vsgym-agenda__list{margin-top:2.1rem}
 .vsgym-agenda__list>h2{font-size:clamp(1.8rem,7vw,2.4rem)}
}
@media(max-width:360px){
 .vsgym-agenda__calendar{gap:1px;padding:1px}
 .vsgym-agenda__mobile-date{font-size:.86rem}
}

/* Deux événements ou plus un même jour : choix clair sans sacrifier les liens du bureau. */
.vsgym-agenda__mobile-details{display:none}
@media(max-width:760px){
 .vsgym-agenda__mobile-details{display:block}
 .vsgym-agenda__day-summary{display:none;padding:1rem;margin:1rem 0 0;background:#f2f8fc;border-left:4px solid #009eff;scroll-margin-top:110px}
 .vsgym-agenda__day-summary:target{display:block}
 .vsgym-agenda__day-summary h3{font-family:'Bebas Neue',sans-serif;font-size:1.55rem;margin:0 0 .5rem}
 .vsgym-agenda__day-summary p{margin:.2rem 0 .6rem;font-size:.9rem}
 .vsgym-agenda__day-summary ul{margin:.5rem 0 1rem;padding-left:1.1rem}
 .vsgym-agenda__day-summary li{margin:.45rem 0}
 .vsgym-agenda__day-summary li a,.vsgym-agenda__day-summary-close{color:#005b87;font-weight:750;text-underline-offset:2px}
 .vsgym-agenda__calendar{scroll-margin-top:105px}
}
