@font-face{font-family:Inter;src:url('inter-latin-wght-normal.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Space;src:url('space-grotesk-latin-wght-normal.woff2') format('woff2');font-weight:300 700;font-display:swap}

/* Shared identity. Page-specific PHP, URLs and data remain in their original files. */
:root{
 --brand:#1a237e;--accent:#b71c1c;--ink:#141a36;--muted:#687086;
 --line:#e1e6f0;--surface:#f5f7fb;--paper:#fff;
 --bleu-nuit:#1a237e;--bleu-clair:#3f51b5;--rouge-nuit:#b71c1c;--rouge-clair:#e53935;
 --gris-clair:#f5f7fb;--gris-fonce:#424242;--blanc:#fff;
 --bleu-gradient:linear-gradient(135deg,#1a237e,#283593);
 --rouge-gradient:linear-gradient(135deg,#b71c1c,#c62828);
 --primary:#1a237e;--primary-dark:#151d6b;--text-dark:#141a36;--text-light:#687086;
 --primary-color:#1a237e;--primary-gradient:linear-gradient(135deg,#1a237e,#283593);
 --hero-photo:url('../media/rejoindre.png');
}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{font-family:Inter,Arial,sans-serif!important;font-size:14px;line-height:1.75;background:#fff!important;color:var(--ink);overflow-x:clip}
body *{box-sizing:border-box;letter-spacing:0!important}
body :not(i):not([class^=fa]):not([class*=' fa-']){font-family:inherit}
body :is(h1,h2,h3,h4,.stat-number){font-family:Space,Inter,Arial,sans-serif!important;line-height:1.18;text-wrap:balance;overflow-wrap:break-word}
body p{line-height:1.85;text-wrap:pretty}
body img{max-width:100%}
body :is(button,input,select,textarea){font:inherit}
body :is(button,a){touch-action:manipulation}
body :is(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #e13c3c;outline-offset:4px}
body :is(.container,.mv2-inner){max-width:1220px;width:calc(100% - 80px);margin-inline:auto}
body :is(.history,.news,.presentation,.why-join,.clubs,.objectives,.stf2-section,.documents-section,.recent-documents,.contact-main,.location-section,.presentation-anciens,.anciens-responsables,.anciens-membres,.temoignages,.connection,.formations,.direction,.competitions-section){padding:56px 0;border-radius:0;box-shadow:none;background:#fff}
body :is(.news,.why-join,.connection,.direction,.recent-documents,.location-section){background:var(--surface)}
body :is(.section-title,.section-header,.stf2-entete,.gallery-intro){text-align:left;margin:0 0 28px;max-width:none}
body :is(.section-title,.section-header,.stf2-entete,.gallery-intro) h2{font-size:32px;color:var(--brand);margin:0 0 12px;padding:0;background:none;-webkit-text-fill-color:currentColor;text-transform:none}
body :is(.section-title,.section-header) h2::before,body :is(.section-title,.section-header) h2::after{display:none}
body .divider{height:2px;width:32px;background:var(--accent);margin:16px 0;border-radius:0}
body .section-header .divider{width:32px;height:2px;margin:16px 0;background:var(--accent)}
body .section-header .divider::before,body .section-header .divider::after{display:none}
body :is(.section-header,.section-title,.stf2-entete,.gallery-intro)>p{font-size:14px;color:var(--muted);max-width:760px;margin:0}
.section-kicker{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:750;color:var(--accent);text-transform:uppercase;margin-bottom:12px}
.section-kicker::before{content:'';width:24px;height:2px;background:currentColor}
body :is(.history-text,.presentation-text,.connection-text) p,
body :is(.club-card,.benefit-card,.avantage-card) p,
body :is(.objectives-list li,.spf2-bio,.profile-bio-text,.article-body p,.article-content p){text-align:justify;text-justify:inter-word;hyphens:auto;overflow-wrap:break-word}
body :is(.history-text,.presentation-text,.connection-text) p{font-size:14px;line-height:1.9;color:#586079;margin:0 0 16px}
body :is(.presentation-text,.connection-text) h3{font-size:23px;color:var(--ink);margin:0 0 18px}
body :is(.btn-primary,.btn-download,.appv2-btn,.submit-btn,.btn-submit,.actualite-link-featured){display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:12px 20px;background:var(--brand);border:1px solid var(--brand);color:#fff;border-radius:4px;box-shadow:none;font-size:12px;font-weight:650;text-decoration:none;transition:background .2s,transform .2s}
body :is(.btn-primary,.btn-download,.appv2-btn,.submit-btn,.btn-submit,.actualite-link-featured):hover{background:#283593;border-color:#283593;box-shadow:none;color:#fff;transform:translateY(-2px)}
body .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:11px 20px;border-radius:4px;background:transparent;border:1px solid var(--line);color:var(--brand);box-shadow:none;font-size:12px;text-decoration:none}
body :is(.btn-primary,.btn-secondary,.gallery-link,.news-link,.actualite-link) i{transition:transform .2s}
body :is(.btn-primary,.btn-secondary,.gallery-link,.news-link,.actualite-link):hover i{transform:translateX(4px)}
.public-skip{position:fixed;top:-100px;left:16px;padding:12px 18px;background:#fff;color:var(--brand);z-index:4000}
.public-skip:focus{top:12px}
body .header-top{background:var(--brand)!important;color:#fff;padding:5px 0!important;height:30px!important;font-size:10px!important}
body .info-label{background:var(--accent)!important;box-shadow:none;padding-inline:12px}
body .info-scroll-content{padding-left:130px;white-space:nowrap}
.header-top:hover .info-scroll-content,.header-top:focus-within .info-scroll-content{animation-play-state:paused}

/* A photographic, full-width stage; text is never enclosed in a floating panel. */
body .banner:has(.slides){position:relative;height:calc(100svh - 200px);min-height:500px;max-height:760px;background:var(--brand);border-radius:0;box-shadow:none;overflow:hidden}
body .slides{display:block;width:100%;height:100%;position:relative;transform:none!important;transition:none}
body .slide{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:flex-start;justify-content:flex-end;flex-direction:column;text-align:left;padding:48px max(40px,calc((100vw - 1220px)/2)) 110px;background:none!important;opacity:0;visibility:hidden;transform:scale(1.015);transition:opacity .8s,transform 1.1s,visibility .8s;isolation:isolate}
body .slide:first-child{opacity:1;visibility:visible}
body .slides.is-initialized .slide:not(.is-current){opacity:0;visibility:hidden}
body .slide.is-current{opacity:1;visibility:visible;transform:scale(1);z-index:1}
body .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
body .slide::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(9,17,64,.94),rgba(9,17,64,.2) 65%,transparent),linear-gradient(90deg,rgba(9,17,64,.32),transparent 70%)}
body .slide-content{padding:0;width:100%;max-width:850px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;position:relative;z-index:2;animation:none}
body .slide :is(h1,h2){color:#fff;line-height:1.08;text-shadow:none;font-size:56px;font-weight:650;margin:0 0 20px}
body .slide h1{font-size:88px}
body .slide h1 span{display:flex;align-items:center;gap:12px;font-family:Inter,Arial,sans-serif;font-size:12px;font-weight:550;line-height:1.5;margin-bottom:15px}
body .slide h1 span::before{content:'';width:28px;height:2px;background:#ff7777}
body .slide p{color:#fff;font-size:17px;font-weight:400;margin:0 0 26px;max-width:620px;text-shadow:none}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
body .slide .btn-primary{background:#b71c1c;border-color:#b71c1c;min-height:44px;padding:12px 21px;color:#fff}
body .slide .btn-primary:hover{background:#cc2424;border-color:#cc2424}
body .slide.is-current .slide-content{animation:hero-arrive .75s .12s both}
body .slide.is-current .hero-photo{animation:hero-photograph 7s ease-out both}
body .motion-paused .hero-photo{animation-play-state:paused}
@keyframes hero-photograph{from{transform:scale(1.025)}to{transform:scale(1)}}
body .banner-dots{display:flex;align-items:center;gap:24px;position:absolute;z-index:3;bottom:24px;left:max(40px,calc((100vw - 1220px)/2));right:max(40px,calc((100vw - 1220px)/2));transform:none}
body .banner-dots .dot{position:relative;display:flex;align-items:center;gap:9px;width:auto;height:38px;padding:8px 0 12px;border:0;border-radius:0;color:#e0e5ff;background:none;font-size:11px;font-weight:550;text-align:left;cursor:pointer;box-shadow:none;transform:none}
body .banner-dots .dot span{font-family:Space,Arial,sans-serif;font-size:10px;opacity:.7}
body .banner-dots .dot::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff4a}
body .banner-dots .dot.active{color:#fff}
body .banner-dots .dot.active::after{background:#fff}
.hero-pause{display:grid;place-items:center;margin-left:auto;width:36px;height:36px;border:1px solid #ffffff75;border-radius:4px;background:transparent;color:#fff;cursor:pointer}
.home-disciplines{background:#fff;border-bottom:1px solid var(--line)}
.home-disciplines .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.home-disciplines a{position:relative;display:flex;align-items:center;gap:14px;padding:24px 20px;border-right:1px solid var(--line);color:var(--brand);text-decoration:none;transition:background .25s}
.home-disciplines a:first-child{padding-left:0}
.home-disciplines a:last-child{border:0;padding-right:0}
.home-disciplines a>i:first-child{font-size:23px;width:26px;flex-shrink:0}
.home-disciplines a>i:last-child{margin-left:auto;color:var(--accent);font-size:10px;transition:transform .2s}
.home-disciplines a:hover{background:#f5f7fb}
.home-disciplines a:hover>i:last-child{transform:translateX(4px)}
.home-disciplines strong{display:block;font-family:Space,Arial,sans-serif;font-weight:650;font-size:16px}
.home-disciplines small{display:block;font-size:10px;color:var(--muted);margin-top:3px}
body .history-content,body .presentation-content,body .connection-content{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:center;background:none;box-shadow:none;border:0;border-radius:0;padding:0}
body .history-text{padding:0;min-width:0}
body .presentation-content>.presentation-text,body .connection-content>.connection-text{min-width:0;width:100%;padding:0}
body :is(.history-image,.presentation-image,.connection-image){position:relative;box-shadow:none;border-radius:5px;overflow:hidden;transform:none}
body .history-image{padding:10px;border:1px solid var(--line)}
body .history-image::before{content:'';position:absolute;top:0;left:0;width:48px;height:3px;background:var(--accent);z-index:1}
body .history-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:2px;box-shadow:none}
body .presentation-image img{width:100%;max-height:330px;object-fit:contain;box-shadow:none;border-radius:5px}
body[data-public-page=ucao-tech] .presentation-content{align-items:start}
body[data-public-page=ucao-tech] .presentation-text{background:none;box-shadow:none;border-radius:0}
body[data-public-page=ucao-tech] .presentation-text::before,body[data-public-page=ucao-tech] .presentation-text p::before{display:none}
body[data-public-page=ucao-tech] .presentation-text p{padding-left:0}
body .association-visual{display:block!important;margin:0;aspect-ratio:4/5;max-height:580px;background:var(--brand);isolation:isolate;overflow:hidden;border-radius:6px;position:relative}
body .association-visual::before,body .association-visual::after{display:none}
body .association-visual img.association-photo{display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center;border-radius:0;transform:none;transition:transform .7s}
body .association-visual:hover img.association-photo{transform:scale(1.035)}
body .association-signature{position:absolute;bottom:20px;left:20px;right:20px;display:flex;align-items:center;gap:16px;background:#fffffff5;padding:14px 18px;border-radius:4px;border-left:3px solid var(--accent);box-shadow:0 8px 24px #10194a20}
body .association-signature img{flex:0 0 64px;width:64px;height:64px;max-height:64px;object-fit:contain;padding:0;transform:none!important}
body .association-signature strong{display:block;font-family:Space,Arial,sans-serif;font-size:20px;color:var(--brand)}
body .association-signature span{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:4px}
body .connection-image img{display:block;width:100%;height:auto;border-radius:5px}
body .news-carousel{padding:0;overflow:hidden}
body .news-container{display:flex;gap:24px;transition:transform .55s cubic-bezier(.22,1,.36,1)}
body .news-card{flex:0 0 calc((100% - 48px)/3);background:#fff;border:1px solid var(--line);border-radius:5px;box-shadow:none;overflow:hidden;position:relative;transition:transform .25s,border-color .25s,box-shadow .25s}
body .news-image{height:190px;aspect-ratio:auto;position:relative;overflow:hidden}
body .news-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
body .news-card:hover{transform:translateY(-5px);border-color:#bfc8e1;box-shadow:0 15px 35px #1a237e0c}
body .news-card:hover img{transform:scale(1.04)}
body .news-date{background:#fff;color:var(--brand);border-radius:3px;padding:5px 8px;font-size:10px;box-shadow:none}
body .news-content{padding:22px}
body .news-content h3{font-size:20px;line-height:1.35;color:var(--ink);margin-bottom:12px}
body .news-content p{font-size:13px;line-height:1.7;color:var(--muted)}
body .news-categories span{font-size:9px!important;padding:3px 6px!important}
body .news-button{margin-top:20px;text-align:left}
body .history>.container{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:auto 1fr;gap:10px 48px}
body .history .section-title{grid-column:1;grid-row:1;margin-bottom:4px}
body .history-content{display:contents}
body .history-text{grid-column:1;grid-row:2}
body .history-image{grid-column:2;grid-row:1/3;align-self:center}
body .news .section-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 20px;align-items:center}
body .news .section-kicker{grid-column:1}
body .news .section-title h2{grid-column:1}
body .news .news-button{grid-column:2;grid-row:1/3;margin:0}
body .news .news-button a{background:none;color:var(--brand);border-color:var(--line);min-height:40px}
body .news .news-button a:hover{border-color:var(--brand);background:#fff}
body .carousel-controls{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
body .carousel-btn{width:40px;height:40px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--brand);box-shadow:none}
body .carousel-btn:disabled{opacity:.3;cursor:default}

/* Inner-page heroes share dimensions, contrast and framing. */
body[data-public-page=staff],body[data-public-page=anciens],body[data-public-page=birthdays]{--hero-photo:url('../media/background.png')}
body[data-public-page=egei]{--hero-photo:url('../media/slide2.png')}
body[data-public-page=contact]{--hero-photo:url('../media/background.png')}
body[data-public-page=galerie]{--hero-photo:url('../media/slide2.png')}
body :is(.page-banner,.contact-banner,.documents-banner,.anciens-banner,.competitions-banner,.details-banner,.inscription-banner,.stf2-banniere,.banner:not(:has(.slides)),header.gallery-header,.galerie-hero){
 position:relative;isolation:isolate;overflow:hidden;background:var(--brand)!important;
 color:#fff;min-height:clamp(400px,37vw,560px);height:auto;padding:64px 0;border:0;border-radius:0;box-shadow:none;text-align:left;display:flex;align-items:center;
}
body :is(.page-banner,.contact-banner,.documents-banner,.anciens-banner,.competitions-banner,.details-banner,.inscription-banner,.stf2-banniere,.banner:not(:has(.slides)),header.gallery-header,.galerie-hero)::before{content:'';position:absolute;inset:0;width:100%;background:var(--hero-photo) var(--hero-position,center top)/cover no-repeat;opacity:1;z-index:-2;transform:none;transform-origin:center top;border-radius:0;animation:inner-hero-image 4.8s ease-out both}
body :is(.page-banner,.contact-banner,.documents-banner,.anciens-banner,.competitions-banner,.details-banner,.inscription-banner,.stf2-banniere,.banner:not(:has(.slides)),header.gallery-header,.galerie-hero)::after{content:'';display:block;position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,24,93,.94),rgba(15,24,93,.63) 55%,rgba(15,24,93,.12));z-index:-1}
body :is(.banner-content,.banner-inner,.galerie-hero-content){position:relative;z-index:1;width:100%;max-width:none;margin:0;padding:0;text-align:left;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
body .banner-content{padding-left:23px;border-left:3px solid #ef6565}
body .banner-inner{padding:0}
body :is(.page-banner,.contact-banner,.documents-banner,.anciens-banner,.competitions-banner,.details-banner,.inscription-banner,.stf2-banniere,.banner:not(:has(.slides)),header.gallery-header,.galerie-hero) h1{font-size:42px;color:#fff!important;margin:0 0 14px;line-height:1.15;text-shadow:none;background:none;-webkit-text-fill-color:currentColor;text-transform:none;max-width:870px;text-align:left}
body .banner-content h1 span{color:inherit;font-size:inherit;text-align:left;text-transform:none}
body :is(.banner-content,.stf2-banniere,.galerie-hero-content) p{font-size:14px!important;line-height:1.8;color:#e4e9ff!important;max-width:720px;margin:0!important;text-align:left;text-shadow:none}
body .banner-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start;margin-top:24px}
body .banner-actions .btn-secondary{color:#fff;border-color:#ffffff75}
body .banner-actions .btn-secondary:hover{background:#ffffff18}
body header.gallery-header .header-container,body .galerie-hero-content{width:calc(100% - 80px);max-width:1220px;margin:auto}
body header.gallery-header :is(h1,p,a,.meta-item,.breadcrumb-item span){color:#fff}
body :is(.galerie-meta,.gallery-meta){justify-content:flex-start;gap:20px}
body .stf2-sur-titre{font-size:11px;color:#e3e8ff;margin:0 0 14px;text-transform:uppercase}
body .stf2-banniere .container{width:calc(100% - 80px);max-width:1220px}
body .stf2-stats{display:flex;justify-content:flex-start;gap:24px;margin-top:24px}
body .stf2-stat{padding:0 24px 0 0;background:none;border:0;border-right:1px solid #ffffff45;border-radius:0;backdrop-filter:none;min-width:0}
body .stf2-stat:last-child{border:0}
body .stf2-stat b{color:#fff;font-size:26px;font-family:Space,Arial,sans-serif}
body .stf2-stat span{color:#e4e9ff;font-size:11px}

/* Association, research domains and institutional content. */
body :is(.benefits-grid,.clubs-grid){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
body .benefit-card{position:relative;display:grid;grid-template-rows:48px 52px 1fr;gap:20px;padding:26px 24px;min-height:258px;border:1px solid #dfe5f1;border-radius:6px;box-shadow:0 8px 24px #1a237e05;background:#fff;text-align:left;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s}
body .benefit-card::after{content:'';position:absolute;bottom:0;left:24px;right:24px;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s}
body .benefit-card:hover{transform:translateY(-6px);border-color:#aebce0;box-shadow:0 16px 34px #1a237e12}
body .benefit-card:hover::after{transform:scaleX(1)}
body .benefit-icon{position:relative;display:grid;place-items:center;width:48px;height:48px;background:#f0f3fc;color:var(--brand);border:1px solid #e0e7f7;border-radius:5px;box-shadow:none;font-size:21px;margin:0;transition:transform .3s,background .3s}
body .benefit-icon::after{content:'';position:absolute;top:-1px;left:-1px;width:12px;height:12px;border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-radius:5px 0 0}
body .benefit-card:hover .benefit-icon{transform:translateY(-3px);background:#e6ecfb}
body .benefit-number{position:absolute;top:20px;right:20px;font-family:Space,Arial,sans-serif;font-size:44px;font-weight:600;line-height:1;color:#dfe5f2;user-select:none;pointer-events:none}
body .benefit-card h3{font-size:20px;color:var(--brand);margin:0;line-height:1.3;align-self:start}
body .benefit-card p{font-size:13px;color:#66708a;margin:0;line-height:1.8;hyphens:auto;align-self:start;transform:none}
body .benefit-card:first-child{background:var(--brand);border-color:var(--brand);box-shadow:none}
body .benefit-card:first-child h3{color:#fff}
body .benefit-card:first-child p{color:#e2e7ff}
body .benefit-card:first-child .benefit-number{color:#ffffff24}
body .benefit-card:first-child .benefit-icon{background:#ffffff12;border-color:#ffffff35;color:#fff}
body .benefit-card:first-child .benefit-icon::after{border-color:#ff7a7a}
body .benefit-card:first-child::after{background:#f26b6b}
body .club-card{position:relative;border:1px solid var(--line);border-radius:5px;box-shadow:none;background:#fff;overflow:hidden;scroll-margin-top:100px;transition:transform .25s,border-color .25s}
body .club-image{height:170px;background:#f5f7fb}
body .club-image img{width:100%;height:100%;object-fit:contain;padding:14px}
body .club-overlay{background:#1a237e90}
body .club-card h3{font-size:21px;margin:18px 18px 10px}
body .club-card p{padding:0 18px 22px;margin:0;font-size:12px;line-height:1.75}
body .club-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s}
body .club-card:hover{transform:translateY(-5px);border-color:#bac4df}
body .club-card:hover::after{transform:scaleX(1)}
body .presentation-stats,body .stats-anciens{display:flex;gap:26px;justify-content:flex-start;background:none;border-block:1px solid var(--line);border-radius:0;box-shadow:none;padding:20px 0;margin-top:25px}
body .stat-number{font-size:30px;font-variant-numeric:tabular-nums;background:none;-webkit-text-fill-color:currentColor;color:var(--brand)}
body .stat-label{font-size:11px;color:var(--muted)}
body .objectives-content{padding:0;background:none;box-shadow:none}
body .objectives-grid{display:block;min-width:0;width:100%}
body .objectives-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 40px;list-style:none;padding:0}
body .objectives-list li{background:none;box-shadow:none;border:0;border-top:1px solid var(--line);padding:18px 0 0;border-radius:0;font-size:13px;line-height:1.85}
body .objectives-list li::before{display:none}
body .objectives-list strong{display:block;font-family:Space,Arial,sans-serif;font-size:18px;color:var(--brand);margin-bottom:8px}
body .cta-section,body .contact-anciens{padding:40px 0;background:var(--bleu-gradient);color:#fff;border-radius:0;box-shadow:none}
body .cta-section::before,body .cta-section::after{display:none}
body :is(.cta-content,.contact-anciens .contact-content){text-align:left;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 40px;align-items:center}
body :is(.cta-content,.contact-anciens .contact-content) h2{font-size:28px;color:#fff}
body :is(.cta-content,.contact-anciens .contact-content) p{font-size:13px;color:#e4e9ff;max-width:680px}
body :is(.cta-buttons,.contact-buttons){grid-column:2;grid-row:1/3;margin:0}
body :is(.cta-buttons,.contact-buttons) .btn-secondary{color:#fff;border-color:#ffffff75}
body .formation-structure{max-width:none}
body .formation-level{padding:0 0 24px;margin-bottom:28px;border:0;border-top:1px solid var(--line);background:none;box-shadow:none;border-radius:0;transform:none}
body .formation-level-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 0;background:none;color:var(--brand);border-bottom:1px solid var(--line);border-radius:0}
body .formation-level-title{font-size:24px;min-width:0}
body .formation-level-duration{border-radius:4px;background:#edf0fa;color:var(--brand);font-size:11px;padding:6px 10px}
body .filiere-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:24px 0 0}
body .filiere-card{padding:20px;border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:5px;background:#fff;box-shadow:none;min-width:0;transition:transform .25s,border-color .25s}
body .filiere-card:hover{transform:translateY(-3px);border-left-color:var(--accent)}
body .filiere-name{font-size:17px;line-height:1.5;color:var(--brand);margin:0 0 10px;display:flex;align-items:flex-start;gap:12px}
body .filiere-name i{flex:0 0 22px;line-height:1.5;color:var(--accent)}
body .filiere-option{display:inline-block;font-size:12px;padding:5px 9px;background:#edf0fa;color:var(--brand);border-radius:3px}
body .filiere-description,body .specialite-item{font-size:13px;color:var(--muted)}
body .connection-text ul{margin:22px 0;padding:0}
body .connection-text li{font-size:13px;line-height:1.8;margin-bottom:13px}
body .direction-card{border:1px solid var(--line);border-radius:5px;overflow:hidden;box-shadow:none;background:#fff}
body .direction-card img{object-fit:cover}
body .direction-card h3{font-size:18px}
body .direction-cards-slider{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:0;transform:none!important}
body .direction-card-slide{display:grid;grid-template-columns:140px minmax(0,1fr);grid-template-rows:auto 1fr;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 20px #1a237e08;background:#fff;overflow:hidden;min-height:210px;transition:transform .25s,border-color .25s,box-shadow .25s;position:relative}
body .direction-card-slide::after{content:'';position:absolute;bottom:0;right:0;width:48px;height:3px;background:var(--accent);transition:width .3s}
body .direction-card-slide:hover{transform:translateY(-4px);border-color:#b9c4dd;box-shadow:0 12px 26px #1a237e12}
body .direction-card-slide:hover::after{width:calc(100% - 140px)}
body .direction-card-slide .member-photo-container{grid-column:1;grid-row:1/3;height:100%;min-height:210px;border-radius:0}
body .direction-card-slide .member-photo img{object-fit:cover;object-position:center top}
body .direction-card-slide .card-header{grid-column:2;padding:28px 24px 10px;background:none;border:0;border-radius:0;box-shadow:none;text-align:left;min-width:0}
body .direction-card-slide .card-body{grid-column:2;padding:6px 24px 24px;background:none;align-self:end;min-width:0}
body .direction-card-slide .member-titles{text-align:left}
body .direction-card-slide .member-name{font-size:20px;line-height:1.35;margin-bottom:8px;overflow-wrap:anywhere;text-align:left}
body .direction-card-slide .member-position{font-size:13px;line-height:1.5;color:var(--accent);text-align:left}
body .direction-card-slide .member-contact p{font-size:12px;line-height:1.65;overflow-wrap:anywhere;margin:0 0 6px;gap:8px}
body .direction-card-slide .member-contact i{flex:0 0 14px;margin:0}

/* Teams and profiles. */
body .stf2-grille-bureau{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
body .stf2-bcarte{display:flex;flex-direction:row;border:1px solid var(--line);background:#fff;border-radius:5px;min-height:190px;overflow:hidden;box-shadow:none;transition:transform .25s,border-color .25s}
body .stf2-bcarte::before{background:var(--accent);height:3px}
body .stf2-bcarte:hover{transform:translateY(-4px);border-color:#b9c4dd;box-shadow:none}
body .stf2-bphoto{flex:0 0 100px;aspect-ratio:auto;background:#edf0fa}
body .stf2-bphoto img{height:100%;width:100%;object-fit:cover;object-position:center top}
body :is(.stf2-binitiales,.stf2-initiales){color:var(--brand);font-family:Space,Arial,sans-serif;font-weight:500;font-size:32px}
body .stf2-bcorps{min-width:0;padding:18px 15px}
body :is(.stf2-bposte,.stf2-puce){font-size:10px;color:var(--brand);background:#edf0fa;border-radius:3px;padding:5px 8px}
body .stf2-bnom{font-size:17px;margin-top:10px}
body .stf2-bcontacts{gap:7px}
body .stf2-bcontacts li{font-size:11px;min-width:0}
body .stf2-bcontacts i{background:#f1f3fb;color:var(--brand);border-radius:4px}
body .stf2-bprofil{font-size:11px;color:var(--brand)}
body .stf2-rond{border-radius:4px;width:30px;height:30px}
body .stf2-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
body .stf2-grille-bureau{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
body .stf2-bcarte{display:flex;flex-direction:column;min-height:0;box-shadow:0 6px 20px #1a237e06}
body .stf2-bphoto{width:100%;flex:none;aspect-ratio:5/4;min-height:0;height:auto;max-height:none}
body .stf2-bphoto img{object-fit:cover;object-position:center 20%}
body .stf2-bcorps{padding:20px;min-width:0}
body .stf2-bnom{font-size:20px}
body .stf2-bcontacts li{font-size:12px;overflow-wrap:anywhere}
body .stf2-bactions{margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
body .stf2-tous-responsables{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
body .stf2-tous-responsables .stf2-panneau.active,body .stf2-tous-responsables .stf2-grille{display:contents}
body .stf2-tous-responsables .stf2-club-desc{display:none}
body .stf2-coord-text{margin-top:12px;display:grid;gap:5px;font-size:11px;color:var(--muted);overflow-wrap:anywhere;line-height:1.6}
body .stf2-carte{min-width:0;transition:transform .25s,box-shadow .25s}
body .stf2-carte:hover{box-shadow:0 12px 26px #1a237e12}
body .stf2-onglets{flex-wrap:wrap}
body .stf2-carte{border:1px solid var(--line);border-radius:5px;box-shadow:none;background:#fff}
body .stf2-photo{width:100%;aspect-ratio:1;background:#edf0fa;max-height:none}
body .stf2-initiales{color:var(--brand)}
body .stf2-poste-badge{border-radius:3px;background:#1a237ee8;font-size:10px}
body .stf2-infos{padding:17px 18px 8px}
body .stf2-nom{font-size:18px}
body .stf2-poste{font-size:12px;color:var(--brand)}
body .stf2-contacts a{border-radius:4px}
body .stf2-onglets{display:flex;gap:0;justify-content:flex-start;margin:0 0 24px;border-bottom:1px solid var(--line)}
body .stf2-onglet{border:0;border-bottom:3px solid transparent;padding:14px 18px;border-radius:0;background:none;box-shadow:none;font-size:12px;color:var(--muted)}
body .stf2-onglet.active{background:none;border-bottom-color:var(--accent);color:var(--brand);box-shadow:none}
body .stf2-onglet.active i{color:var(--accent)}
body .stf2-club-desc{max-width:none;margin:0 0 22px;text-align:left;font-size:13px}
body .stf2-vide{padding:30px;background:#f5f7fb;border:1px dashed var(--line);border-radius:5px;font-size:13px}
body .spf2-banniere{background:linear-gradient(90deg,#1a237ee8,#1a237e70),url('../media/background.png') center/cover;padding:36px 0 120px;border-bottom:3px solid var(--accent)}
body .spf2-banniere::before{display:none}
body .spf2-tete{margin-top:-68px}
body .spf2-tete-carte{display:flex;gap:32px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 32px #1a237e0b;align-items:center}
body .spf2-avatar{width:160px;height:180px;flex:0 0 160px;border-radius:5px;background:#edf0fa;box-shadow:none}
body .spf2-avatar span{color:var(--brand);font-size:38px}
body .spf2-identite{min-width:0}
body .spf2-nom{font-size:34px}
body .spf2-poste{font-size:14px;color:var(--muted)}
body :is(.spf2-badge,.spf2-competence){border-radius:3px;background:#edf0fa;color:var(--brand);font-size:11px;border-color:var(--line)}
body .spf2-btn{border-radius:4px;padding:10px 14px;font-size:12px}
body .spf2-btn-plein{background:var(--brand)}
body .spf2-contenu{grid-template-columns:minmax(0,1fr) 330px;gap:36px;padding:36px 0 48px}
body .spf2-carte{padding:24px 0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
body .spf2-carte h2{font-size:21px}
body .spf2-carte h2 i{border-radius:4px}
body .spf2-bio{font-size:14px;line-height:1.9}
body .spf2-coordonnees i{border-radius:4px}
body .spf2-contenu aside{border-left:1px solid var(--line);padding-left:28px;min-width:0}
body .spf2-coordonnees a{overflow-wrap:anywhere}
body .spf2-bio{white-space:normal;text-align:justify;hyphens:auto}
body .ancien-card{border:1px solid var(--line);border-radius:5px;box-shadow:none;overflow:hidden}
body .ancien-card{position:relative}
body .ancien-profile-link{position:absolute;inset:0;z-index:1;display:block}
body .ancien-contact{position:relative;z-index:2}
body .ancien-profile-link:focus-visible{outline-offset:-4px}
body .ancien-photo .photo-placeholder{background:#edf0fa;color:var(--brand)}
body .ancien-nom{font-size:20px}
body .ancien-content{padding:20px}
body .ancien-poste{color:var(--accent);font-size:12px}
body .profile-card{border:0;border-top:1px solid var(--line);border-radius:0;background:none;box-shadow:none}
body .profile-card-header{background:none;padding:24px 0 12px;color:var(--brand)}
body .profile-card-header h2{font-size:21px;color:var(--brand)}
body .profile-card-body{padding:12px 0 24px}
body .profile-avatar-circle{box-shadow:none;border-color:#fff}
body .profile-avatar-initials{background:var(--brand)}
body .profile-action-btn{border-radius:4px}
body .profile-main-grid{gap:40px}

/* Portraits remain entirely visible, including images added in the future. */
body .anciens-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
body .ancien-photo{height:auto;aspect-ratio:4/5;background:#f0f2f8;border-bottom:1px solid var(--line)}
body .ancien-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important}
body .ancien-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #1a237e10}
body .ancien-content{flex:1;min-width:0}
body .ancien-nom{font-size:18px;line-height:1.4;overflow-wrap:anywhere}
body .ancien-photo .photo-overlay{padding:20px;background:linear-gradient(0deg,#10184be6,transparent);display:flex;align-items:flex-end}
body .ancien-card:focus-within .photo-overlay{opacity:1}
body[data-public-page=ancien_profile]{--hero-photo:url('../media/rejoindre.png')}
body[data-public-page=ancien_profile] .container,body[data-public-page=anciens] .container{padding-inline:0}
body[data-public-page=ancien_profile] .ancien-hero-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;align-items:center;gap:64px}
body[data-public-page=ancien_profile] .banner-content{min-width:0}
body[data-public-page=ancien_profile] .banner-content h1{font-size:38px;overflow-wrap:anywhere}
body[data-public-page=ancien_profile] .banner-badges{justify-content:flex-start;gap:8px;margin-top:22px}
body[data-public-page=ancien_profile] .profile-badge{border-radius:4px;font-size:11px;padding:9px 12px;background:#ffffff12}
body[data-public-page=ancien_profile] .profile-avatar-wrapper{width:240px;height:300px;margin:0;z-index:1}
body[data-public-page=ancien_profile] .profile-avatar-circle{border-radius:6px;border:5px solid #fff;background:#eef1f8;transform:none;box-shadow:0 15px 35px #080e3820}
body[data-public-page=ancien_profile] .profile-avatar-circle img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transform:none}
body[data-public-page=ancien_profile] .profile-avatar-initials{border-radius:0}
body[data-public-page=ancien_profile] .ancien-back{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:#fff;margin-bottom:26px;text-decoration:none}
body[data-public-page=ancien_profile] .ancien-back:hover{text-decoration:underline;text-underline-offset:4px}
body[data-public-page=ancien_profile] .profile-action-grid{justify-content:flex-start;margin:28px 0 8px;gap:10px}
body[data-public-page=ancien_profile] .profile-action-btn{padding:12px 18px;font-size:12px;box-shadow:none}
body[data-public-page=ancien_profile] .profile-main-grid{grid-template-columns:minmax(0,1fr) 320px;gap:48px;margin-top:0;padding:24px 0 48px}
body[data-public-page=ancien_profile] .profile-main-grid>*{min-width:0}
body[data-public-page=ancien_profile] .profile-bio-text{font-size:14px;line-height:1.95}
body[data-public-page=ancien_profile] .profile-info-content p{overflow-wrap:anywhere}
body[data-public-page=ancien_profile] .profile-gallery-grid{padding:20px 0;grid-template-columns:repeat(3,minmax(0,1fr))}
body[data-public-page=ancien_profile] .profile-gallery-item{border-radius:5px;box-shadow:none;background:#eef1f8}
body[data-public-page=ancien_profile] .profile-gallery-item img{object-fit:contain;transform:none!important}
.public-inner-hero .banner-content{animation:inner-hero-copy .75s ease-out both}
@keyframes inner-hero-image{from{transform:scale(1.012);opacity:.8}to{transform:scale(1);opacity:1}}
@keyframes inner-hero-copy{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(min-width:769px) and (max-width:1050px){
 body .anciens-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body[data-public-page=ancien_profile] .ancien-hero-layout{gap:30px;grid-template-columns:minmax(0,1fr) 200px}
 body[data-public-page=ancien_profile] .profile-avatar-wrapper{width:200px;height:250px}
 body[data-public-page=ancien_profile] .profile-main-grid{grid-template-columns:minmax(0,1fr) 260px;gap:28px}
}

/* News, libraries and media. */
body .actualites-main{padding:40px 0;background:#fff}
body .actualites-layout{gap:30px!important}
body .actualites-layout>.sidebar{width:260px!important;flex:0 0 260px;padding-left:24px;border-left:1px solid var(--line)}
body .recent-actualites{padding:0;border:0;border-radius:0;box-shadow:none;background:none}
body .all-actualites-section{margin-top:40px;padding:28px 0 0;background:none;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
body :is(.all-actualites,.actualites-sidebar,.sidebar,.sidebar-widget){background:none;border-radius:0;box-shadow:none}
body .all-actualites{padding:0}
body .actualites-sidebar{padding:0 0 0 22px;flex:0 0 260px;border-left:1px solid var(--line)}
body .sidebar{padding:0}
body .actualite-card-featured{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:0;gap:0;border:1px solid var(--line);border-radius:5px;overflow:hidden;box-shadow:none}
body .actualite-image-featured{height:100%;min-height:285px;aspect-ratio:auto;border-radius:0;background:#f5f7fb}
body .actualite-image-featured img{width:100%;height:100%;object-fit:contain}
body .actualite-content-featured{padding:24px;min-width:0}
body .actualite-title-featured{font-size:24px;line-height:1.35;display:block;-webkit-line-clamp:unset;overflow:visible}
body .actualite-excerpt-featured{font-size:13px;color:var(--muted)}
body .actualite-meta{font-size:10px;flex-wrap:wrap;gap:10px}
body .actualite-card{border:1px solid var(--line);border-radius:5px;box-shadow:none;overflow:hidden}
body .actualite-image{height:180px;overflow:hidden}
body .actualite-content{padding:20px}
body .actualite-title{font-size:19px;line-height:1.4}
body .actualite-excerpt{font-size:12px;line-height:1.7}
body .actualite-link{font-size:12px;color:var(--brand)}
body .actualites-main>.container>section{padding:36px 0;border-radius:0;box-shadow:none;background:none}
body :is(.filter-btn,.page-btn,.pagination-btn){padding:9px 13px;font-size:11px;border-radius:4px;box-shadow:none;border-color:var(--line);background:#f3f5fa;color:#52607e}
body :is(.filter-btn.active,.page-btn.active,.pagination-btn.active){background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:none}
body .newsletter-section{padding:40px 0;background:#f1f4fb;color:var(--ink)}
body .newsletter-content{max-width:720px;margin:auto;text-align:center}
body .newsletter-content h2{font-size:29px;color:var(--brand)}
body .newsletter-content p{font-size:13px}
body .newsletter-form{gap:10px}
body .newsletter-form button{background:var(--accent);border-radius:4px;font-size:12px}
body .search-filters{background:#fff;padding:22px 0;border-bottom:1px solid var(--line);box-shadow:none}
body .search-container{gap:20px}
body .search-box{display:flex;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;box-shadow:none}
body .search-box input{min-width:0;background:none}
body .search-box{flex-direction:row;gap:10px}
body .search-box input{border:0!important;width:100%;padding:8px 6px;box-shadow:none!important}
body .search-box button{background:var(--brand);border-radius:4px;font-size:12px;white-space:nowrap}
body .filter-options{gap:12px}
body :is(.documents-stats,.competitions-stats){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}
body .stat-card{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:18px;background:#fff;border-radius:5px;box-shadow:none;min-width:0}
body .stat-card::before{display:none}
body .stat-icon{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:4px;background:#edf0fa!important;color:var(--brand);font-size:18px;box-shadow:none}
body .stat-card .stat-number{font-size:27px;background:none;-webkit-text-fill-color:currentColor;color:var(--brand)}
body .stat-card:nth-child(n) .stat-number{background:none;-webkit-text-fill-color:currentColor;color:var(--brand)}
body .stat-card:nth-child(n) .stat-icon{background:#edf0fa!important;color:var(--brand);box-shadow:none}
body .document-card{border:1px solid var(--line);border-radius:5px;box-shadow:none;background:#fff}
body .document-description{font-size:13px}
body .document-title{font-size:21px}
body .recent-card{border:1px solid var(--line);border-radius:5px;box-shadow:none}
body .documents-grid{min-height:0}
body .gallery-filters{justify-content:flex-start;gap:8px}
body .main-content{padding:44px 0;background:#fff}
body .gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
body .gallery-item{border:1px solid var(--line);border-radius:5px;box-shadow:none;background:#fff;overflow:hidden;transition:transform .3s,border-color .3s}
body .gallery-img{height:200px;overflow:hidden}
body .gallery-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
body .gallery-item:hover{transform:translateY(-5px);box-shadow:none;border-color:#b9c4dd}
body .gallery-item:hover img{transform:scale(1.04)}
body .gallery-content h3{font-size:21px}
body .gallery-link{color:var(--brand);font-size:12px}
body header.gallery-header .header-container{padding:0}
body .photos-grid{gap:18px}
body .photo-item{border-radius:4px}
body .photo-image{transition:transform .6s}
body .video-container{margin-top:36px}
body :is(.video-main,.playlist-sidebar,.video-card){border:1px solid var(--line);border-radius:5px;box-shadow:none}
body .video-title{font-size:25px}
body .video-content{padding:18px}
body .back-button{border-radius:4px;box-shadow:none;border:1px solid var(--line);font-size:12px}
body .article-hero{height:auto;min-height:380px;padding:65px 0;box-shadow:none;border-radius:0}
body .article-hero-overlay{background:linear-gradient(0deg,rgba(9,17,64,.94),rgba(9,17,64,.16))}
body .article-hero-content{width:calc(100% - 80px);max-width:1220px;margin:auto;text-align:left;background:none;backdrop-filter:none;padding:0;border:0;border-radius:0}
body .article-hero-title{font-size:42px;line-height:1.22;max-width:1050px;text-shadow:none}
body .article-body{font-size:15px;line-height:1.9}
body .article-body :is(h2,h3){color:var(--brand);margin-top:28px}
body .article-body h2{font-size:28px}
body .article-main-section{padding:44px 0;background:#fff}
body .article-container{max-width:1220px;width:calc(100% - 80px);display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:38px;margin:auto}
body .article-content-wrapper{padding:0;border:0;box-shadow:none;border-radius:0;background:none;min-width:0}
body .article-content-wrapper::before{display:none}
body .article-resume{border-left:3px solid var(--accent);border-radius:0;background:#f5f7fb;padding:20px;font-size:14px;box-shadow:none}
body .article-gallery-simple{padding:24px 0;background:none;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
body .article-gallery-simple .gallery-header{padding:0 0 16px;border:0;border-radius:0;background:none;color:var(--brand);height:auto;min-height:0}
body .article-sidebar .sidebar-section{padding:24px 0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:none;transform:none}
body .article-sidebar .sidebar-title{font-size:21px;color:var(--brand)}
body .similar-articles-section{max-width:1220px;width:calc(100% - 80px);margin:0 auto;padding:40px 0 48px;background:none}
body .similar-card{border:1px solid var(--line);border-radius:5px;box-shadow:none;overflow:hidden}
body .similar-title{font-size:19px}
body .similar-excerpt{font-size:12px}

/* Forms, applications, anniversaries and verification pages. */
body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]),select,textarea){max-width:100%;border:1px solid #d6deef;border-radius:4px;padding:11px 13px;color:var(--ink);background:#fff;box-shadow:none}
body :is(input,textarea,select):focus{border-color:#9baae0}
body .contact-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px}
body .contact-form-section{padding:0;background:none;border:0;border-radius:0;box-shadow:none}
body .contact-info-section{padding:26px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:5px;background:#fff;box-shadow:none}
body :is(.contact-form-section,.contact-info-section) h2{font-size:25px;color:var(--brand)}
body .contact-item{margin-bottom:22px;gap:15px}
body .contact-icon{border-radius:4px;background:#edf0fa;color:var(--brand);width:40px;height:40px;font-size:17px;box-shadow:none}
body .contact-details{min-width:0}
body .contact-details h3{font-size:16px}
body .contact-details p{font-size:12px;overflow-wrap:anywhere}
body .social-links .social-link{border-radius:4px;width:36px;height:36px;box-shadow:none}
body .map-container{border-radius:5px;box-shadow:none;border:1px solid var(--line)}
body .location-info{padding:24px 0;background:none;border:0;box-shadow:none}
body .adhesion-section{padding:0}
body .adhesion-container{width:100%;max-width:none;padding:0}
body .tarifs-section{max-width:1100px;width:calc(100% - 80px);margin:auto;padding:44px 0}
body .tarif-card{border:1px solid var(--line);border-radius:5px;box-shadow:none;max-width:none}
body .tarif-card::before{background:var(--accent);height:3px}
body .tarif-header{background:#f1f4fb;padding:20px;color:var(--brand)}
body .tarif-type{font-size:24px}
body .tarif-features{padding:22px}
body .tarif-features li{font-size:13px;padding-block:6px}
body .tarif-pricing{background:#f1f4fb;min-width:230px}
body .tarif-prix{font-size:32px;color:var(--brand)}
body .adhesion-container>.section-title{max-width:1100px;width:calc(100% - 80px);margin:0 auto 24px}
body .formulaire-container{display:grid!important;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start!important;max-width:1100px;width:calc(100% - 80px);margin:24px auto;gap:32px}
body .formulaire-section{width:100%;padding:26px;background:#fff;border:1px solid var(--line);border-radius:5px;box-shadow:none;min-width:0}
body .form-header{background:none;padding:0;border-radius:0}
body .form-header::before,body .form-header::after{display:none}
body #adhesion-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body #adhesion-form .form-group{min-width:0;margin-bottom:16px}
body #adhesion-form .form-control{min-height:42px;padding:10px 12px}
body .animation-section{position:sticky;top:100px;height:430px!important;min-height:0!important;padding:0;display:flex;align-items:flex-end;align-self:start;border-radius:5px;overflow:hidden;background:url('../media/rejoindre.png') center/cover}
body .animation-content{position:static;width:100%;margin:0;transform:none;padding:24px;background:#1a237eef;color:#fff;border-radius:0}
body .animation-title{font-size:25px!important;color:#fff;background:none;-webkit-text-fill-color:currentColor;text-transform:none}
body .animation-subtitle{font-size:13px;color:#fff;margin:0}
body .floating-elements,body .tech-icons{display:none}
body .avantages-section{max-width:1220px;width:calc(100% - 80px);margin:auto;padding:44px 0}
body .avantages-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
body .avantage-card{display:block;width:auto;min-width:0;padding:22px;border:1px solid var(--line);border-radius:5px;box-shadow:none;background:#fff;text-align:left}
body .avantage-icon{margin:0 0 18px;width:40px;height:40px;border-radius:4px;background:#edf0fa;color:var(--brand);box-shadow:none}
body .avantage-card h3{font-size:20px;overflow-wrap:normal;word-break:normal;margin:0 0 12px}
body .avantage-card p{font-size:12px;color:var(--muted);margin:0}
body .appv2-conteneur{max-width:1000px;padding:40px 20px 50px}
body .appv2-sous{text-align:left;max-width:720px}
body .appv2-carte{padding:24px;border:1px solid var(--line);border-radius:5px;box-shadow:none;background:#fff}
body .appv2-badge{border-radius:5px;background:#edf0fa}
body .appv2-vnum{font-size:25px;font-family:Space,Arial,sans-serif;color:var(--brand)}
body .appv2-vinfos{font-size:12px}
body .appv2-notes p{background:#f5f7fb;border-radius:4px}
body .appv2-etapes,body .appv2-ios{background:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:18px 0 0}
body .appv2-btn{display:flex}
body .appv2-ancienne{background:none;border-radius:0;border:0;border-bottom:1px solid var(--line);padding:16px 0}
body .birthday-grid{gap:22px}
body .birthday-card{border:1px solid var(--line);border-radius:5px;box-shadow:none;background:#fff}
body .birthday-date{background:var(--brand);border-radius:4px}
body .member-photo-container{box-shadow:none}
body .wish-stats{background:#f5f7fb}
body .popup-content{border-radius:8px}
body .empty-state{padding:36px 18px}
body .vm-carte,body .vf-card,body .vf-form{border:1px solid var(--line);border-radius:7px;box-shadow:0 18px 65px #1a237e13}
body .vm-entete{background:var(--bleu-gradient)}
body .vm-photo{border-radius:6px}
body .vm-infos{border-radius:4px}
body .vf-form button{border-radius:4px}
body .vf-row .val{min-width:0;overflow-wrap:anywhere}
body .competition-card{border:1px solid var(--line);border-radius:5px;box-shadow:none}
body .competition-title{font-size:22px}
body .competition-image{height:200px;overflow:hidden}
body .competition-content{padding:22px}
body .competition-description{font-size:13px;line-height:1.75}
body :is(.inscription-container,.details-container,.confirmation-container){width:calc(100% - 80px);max-width:1100px;margin-inline:auto}
body :is(.form-container,.success-card){border:1px solid var(--line);border-radius:6px;box-shadow:none;padding:26px;background:#fff}
body .form-section{background:none;padding:22px 0;border-radius:0;box-shadow:none;border:0;border-bottom:1px solid var(--line)}
body .form-section h3{font-size:22px;color:var(--brand)}
body .form-row{gap:18px}

/* Original blue footer; on mobile only brand/contact, then copyright. */
body .footer{background:var(--bleu-gradient);color:#dce3ff;padding:42px 0 0;border-radius:0;border-top:3px solid var(--accent)}
body .footer-content{display:grid;grid-template-columns:1.25fr .8fr 1fr 1.3fr;gap:35px;padding-bottom:30px;margin:0}
body .footer-column{display:block!important;min-width:0;width:auto;margin:0;text-align:left!important}
body .footer-logo{display:flex;justify-content:flex-start;margin-bottom:16px}
body .footer-logo img{width:62px;height:62px;object-fit:contain;padding:7px;background:#fff;border-radius:4px}
body .footer-slogan{font-family:Space,Arial,sans-serif;font-size:18px;line-height:1.55;font-style:normal;max-width:280px;margin:0 0 20px;text-align:left;color:#fff}
body .footer-column h3{font-size:14px;color:#fff;padding-bottom:12px;margin-bottom:15px;text-align:left}
body .footer-column h3::after{display:block;width:24px;height:2px;background:#f46a6a;left:0;transform:none}
body .footer-links{display:flex;flex-direction:column;align-items:flex-start;list-style:none;padding:0;margin:0}
body .footer-links li{font-size:12px;line-height:1.7;margin-bottom:10px;overflow-wrap:anywhere}
body .footer-links a{color:#dce3ff;text-decoration:none}
body .footer-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
body .footer-contact i{color:#c3ceff}
body .footer-social{display:flex;gap:10px;justify-content:flex-start!important}
body .footer-social a{display:grid;place-items:center;width:34px;height:34px;background:transparent;border:1px solid #ffffff40;border-radius:4px;color:#fff;font-size:15px;transition:background .2s,transform .2s}
body .footer-social a:hover{background:#ffffff15;transform:translateY(-3px)}
body .footer-bottom{margin:0;border-top:1px solid #ffffff27;padding:18px 0;text-align:left;font-size:10px;color:#ced6ff}
body .footer-bottom p{margin:0}
body .footer-bottom a{color:#fff}

/* Motion is finite, interruptible and disabled with the user's OS preference. */
.public-scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:#e53935;transform:scaleX(0);transform-origin:left;z-index:2000;pointer-events:none}
.public-reveal{animation:public-arrive .7s var(--reveal-delay,0ms) both}
@keyframes public-arrive{from{opacity:.15;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1150px){
 body .stf2-grille,body .stf2-tous-responsables{grid-template-columns:repeat(2,minmax(0,1fr))}
 body :is(.container,.mv2-inner){width:calc(100% - 48px)}
 body .slide{padding-left:24px;padding-right:24px}
 body .slide h1{font-size:70px}
 body .slide h2{font-size:48px}
 body .banner-dots{left:24px;right:24px}
 .home-disciplines a{padding:22px 12px;gap:10px}
 .home-disciplines strong{font-size:14px}
 .home-disciplines a>i:last-child{display:none}
 body .stf2-grille-bureau{grid-template-columns:repeat(2,minmax(0,1fr))}
 body .direction-cards-slider{grid-template-columns:repeat(2,minmax(0,1fr))}
 body :is(.benefits-grid,.clubs-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
 body .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body .history-content,body .presentation-content,body .connection-content{gap:32px}
 body .actualite-card-featured{grid-template-columns:1fr}
 body .actualite-image-featured{min-height:0;height:240px}
}
@media(max-width:760px){
 body .stf2-grille-bureau{grid-template-columns:repeat(2,minmax(0,1fr))}
 body .stf2-bphoto{width:100%;height:auto;flex:none}
 body .spf2-contenu aside{border-left:0;padding-left:0}
 body :is(.container,.mv2-inner,.stf2-banniere .container,header.gallery-header .header-container,.galerie-hero-content,.article-hero-content){width:calc(100% - 36px)}
 body :is(.history,.news,.presentation,.why-join,.clubs,.objectives,.stf2-section,.documents-section,.recent-documents,.contact-main,.location-section,.presentation-anciens,.anciens-responsables,.anciens-membres,.temoignages,.connection,.formations,.direction,.competitions-section){padding:36px 0}
 body :is(.section-title,.section-header,.stf2-entete,.gallery-intro) h2{font-size:27px}
 body .banner:has(.slides){height:calc(100svh - 200px);min-height:430px;max-height:600px}
 body .slide{padding:26px 18px 100px}
 body .hero-photo{object-position:44% 24%}
 body .slide h1{font-size:44px}
 body .slide h2{font-size:33px}
 body .slide h1 span{font-size:11px;margin-bottom:12px}
 body .slide p{font-size:14px;margin-bottom:22px}
 body .banner-dots{left:18px;right:18px;bottom:23px;gap:16px}
 body .banner-dots .dot{font-size:9px;gap:5px}
 body .banner-dots .dot span{font-size:9px}
 .hero-pause{width:30px;height:30px}
 .home-disciplines .container{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-disciplines a{padding:16px 10px;border-bottom:1px solid var(--line)}
 .home-disciplines a:nth-child(2n){border-right:0}
 .home-disciplines a:nth-child(3){padding-left:0}
 .home-disciplines a:nth-child(n+3){border-bottom:0}
 .home-disciplines a>i:first-child{width:20px;font-size:18px}
 .home-disciplines strong{font-size:13px}
 .home-disciplines small{font-size:9px}
 body .history-content,body .presentation-content,body .connection-content{grid-template-columns:1fr;gap:25px}
 body .association-visual{aspect-ratio:4/3;max-height:420px}
 body .association-signature{bottom:14px;left:14px;right:14px;padding:10px 12px;gap:12px}
 body .association-signature img{flex-basis:48px;width:48px;height:48px}
 body .association-signature strong{font-size:17px}
 body .history>.container{display:block}
 body .history .section-title{margin-bottom:22px}
 body .history-image{margin-top:24px}
 body .news .section-title{display:block}
 body .news .news-button{margin-top:18px}
 body .history-text p{font-size:13px}
 body .news-card{flex-basis:100%}
 body .news-image{height:200px}
 body :is(.page-banner,.contact-banner,.documents-banner,.anciens-banner,.competitions-banner,.details-banner,.inscription-banner,.stf2-banniere,.banner:not(:has(.slides)),header.gallery-header,.galerie-hero){min-height:330px;padding:40px 0;--hero-position:42% top}
 body :is(.page-banner,.contact-banner,.documents-banner,.anciens-banner,.competitions-banner,.details-banner,.inscription-banner,.stf2-banniere,.banner:not(:has(.slides)),header.gallery-header,.galerie-hero) h1{font-size:30px}
 body :is(.banner-content,.stf2-banniere,.galerie-hero-content) p{font-size:13px!important}
 body .banner-content{padding-left:17px}
 body .stf2-stats{gap:14px}
 body .stf2-stat{padding-right:14px}
 body .stf2-stat b{font-size:23px}
 body .stf2-stat span{font-size:9px}
 body .stf2-grille-bureau{grid-template-columns:1fr}
 body .stf2-bcarte{min-height:175px}
 body .stf2-onglets{gap:0;flex-wrap:wrap}
 body .stf2-onglet{padding:12px 10px;font-size:11px}
 body .objectives-list{grid-template-columns:1fr;gap:18px}
 body .benefit-card{min-height:230px;padding:22px 20px;gap:17px}
 body .benefit-card h3{font-size:19px}
 body .presentation-stats{gap:18px}
 body .presentation-stats,body .stats-anciens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 body :is(.presentation-stats,.stats-anciens) .stat-item{min-width:0;padding:5px;text-align:left}
 body .filiere-list{grid-template-columns:1fr}
 body .direction-cards-slider{grid-template-columns:1fr}
 body .direction-card-slide{grid-template-columns:100px minmax(0,1fr);min-height:180px}
 body .direction-card-slide .member-photo-container{min-height:180px}
 body .direction-card-slide .card-header{padding:20px 16px 8px}
 body .direction-card-slide .card-body{padding:6px 16px 18px}
 body .direction-card-slide .member-name{font-size:17px}
 body .direction-card-slide:hover::after{width:calc(100% - 100px)}
 body .formation-level-header{flex-wrap:wrap}
 body .formation-level-title{font-size:23px}
 body .formation-level-duration{font-size:9px}
 body :is(.cta-content,.contact-anciens .contact-content){display:block}
 body :is(.cta-buttons,.contact-buttons){margin-top:20px}
 body .spf2-tete-carte{gap:20px;padding:22px;flex-direction:column;align-items:flex-start}
 body .spf2-avatar{width:94px;height:94px}
 body .spf2-avatar{flex:0 0 94px}
 body .spf2-nom{font-size:29px}
 body .spf2-contenu{grid-template-columns:1fr;gap:0;padding-top:25px}
 body .profile-main-grid{grid-template-columns:1fr}
 body .actualites-layout{flex-direction:column!important}
 body .actualites-layout>.sidebar{width:100%!important;flex-basis:auto;padding:24px 0 0;border-left:0;border-top:1px solid var(--line)}
 body .actualites-sidebar{flex-basis:auto;padding:24px 0 0;border-left:0;border-top:1px solid var(--line)}
 body .actualite-card-featured{grid-template-columns:1fr}
 body .actualite-title-featured{font-size:23px}
 body .actualite-content-featured{padding:20px}
 body .newsletter-form{flex-wrap:wrap}
 body .search-container{flex-direction:column;gap:14px}
 body .search-box{width:100%}
 body .filter-options{width:100%;display:flex;flex-wrap:wrap;gap:10px}
 body :is(.documents-stats,.competitions-stats){grid-template-columns:1fr;gap:12px}
 body .documents-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
 body .documents-stats .stat-card{flex-direction:column;align-items:flex-start;gap:10px;padding:12px}
 body .documents-stats .stat-icon{width:28px;height:28px;font-size:13px}
 body .documents-stats .stat-number{font-size:23px}
 body .documents-stats .stat-label{font-size:9px;overflow-wrap:normal}
 body .stat-card{padding:15px}
 body .gallery-grid{grid-template-columns:1fr}
 body .article-hero{padding:44px 0;min-height:330px}
 body .article-hero-title{font-size:30px}
 body .article-container{width:calc(100% - 36px);grid-template-columns:1fr;gap:24px}
 body .similar-articles-section{width:calc(100% - 36px)}
 body .similar-grid{grid-template-columns:1fr}
 body .contact-grid{grid-template-columns:1fr;gap:30px}
 body :is(.tarifs-section,.formulaire-container,.adhesion-container>.section-title,.avantages-section){width:calc(100% - 36px)}
 body .tarif-content{flex-direction:column}
 body .tarif-pricing{min-width:0}
 body .formulaire-container{grid-template-columns:1fr}
 body #adhesion-form .form-grid{grid-template-columns:1fr;gap:0}
 body .formulaire-section{padding:22px}
 body .animation-section{position:relative;top:0;height:310px!important}
 body .avantages-grid{grid-template-columns:1fr}
 body .birthday-grid{grid-template-columns:1fr}
 body :is(.inscription-container,.details-container,.confirmation-container){width:calc(100% - 36px)}
 body .form-row{flex-direction:column}
 body :is(.form-container,.success-card){padding:22px}
 body .vf-row{flex-wrap:wrap;gap:6px}
 body .footer-content{display:flex;flex-direction:column;align-items:center;gap:32px;padding-bottom:28px}
 body .footer-column{width:100%;text-align:center!important}
 body .footer-column:nth-child(2),body .footer-column:nth-child(3){display:none!important}
 body .footer-logo{justify-content:center}
 body .footer-slogan{text-align:center;margin:0 auto 20px;max-width:280px;font-size:17px}
 body .footer-social{justify-content:center!important}
 body .footer-column h3{text-align:center;font-size:18px}
 body .footer-column h3::after{left:50%;transform:translateX(-50%)}
 body .footer-contact{align-items:center;gap:10px}
 body .footer-contact li{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;margin:0}
 body .footer-contact i{width:15px;margin:0}
 body .footer-bottom,body .footer-bottom p{text-align:center}
}
@media(max-width:420px){body :is(.benefits-grid,.clubs-grid){grid-template-columns:1fr}.home-disciplines strong{font-size:12px}body .benefit-card{grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;min-height:0;gap:16px;padding:22px}body .benefit-icon{grid-column:1;grid-row:1}body .benefit-card h3{grid-column:2;grid-row:1;align-self:center;padding-right:18px}body .benefit-card p{grid-column:1/-1;grid-row:2}body .benefit-number{top:16px;right:16px;font-size:32px}}
@media(max-width:768px){
 body .anciens-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 body[data-public-page=ancien_profile] .ancien-hero-layout{grid-template-columns:1fr;gap:28px}
 body[data-public-page=ancien_profile] .banner-content h1{font-size:29px}
 body[data-public-page=ancien_profile] .banner-badges{flex-direction:row;align-items:flex-start}
 body[data-public-page=ancien_profile] .profile-badge{width:auto}
 body[data-public-page=ancien_profile] .profile-avatar-wrapper{width:180px;height:225px}
 body[data-public-page=ancien_profile] .profile-main-grid{grid-template-columns:1fr;gap:12px}
 body[data-public-page=ancien_profile] .profile-sidebar{order:initial}
 body[data-public-page=ancien_profile] .profile-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body[data-public-page=ancien_profile] .profile-card-header h2{font-size:20px}
}
@media(max-width:520px){body .anciens-grid{grid-template-columns:1fr}body .ancien-photo{aspect-ratio:4/5;max-height:420px}body .ancien-content{padding:22px}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 body *,body *::before,body *::after{animation:none!important;transition:none!important}
 body :is(.public-reveal,.avantage-card,.stat-card,.document-card,.actualite-card,.recent-item,.birthday-card,[data-aos]){opacity:1!important;transform:none!important}
}
@media print{
 body .mv2-header,body .header-top,body .footer,body .banner-dots,.public-scroll-progress{display:none!important}
 body{background:#fff!important;color:#000!important}
 body *{animation:none!important;transform:none!important}
}
