@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Inter:wght@400;500;600;700&display=swap');
:root{--navy:#192557;--red:#ed1d24;--bg:#f5f7fa;--ink:#1b2855}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:15px/1.55 Inter,Arial,sans-serif}a{color:inherit}a:hover{color:var(--red)}.wrap{max-width:1220px;padding:0 27px;margin:auto}.top{border-top:6px solid var(--red);background:white}.nav{display:flex;min-height:98px;align-items:center;gap:30px}.brand{text-decoration:none;line-height:.87;font:900 31px 'Barlow Condensed',sans-serif}.brand span{color:var(--red)}.brand small{display:block;font:700 9px Inter,sans-serif;letter-spacing:2px;margin-top:10px}.links{display:flex;margin:auto;gap:25px}.links a{text-decoration:none;font-size:12px;font-weight:700}.ffgym{background:var(--navy);color:#fff;padding:17px 22px;text-align:center;text-decoration:none;font:900 20px/1.1 'Barlow Condensed',sans-serif}.ffgym small{display:block;font:600 9px Inter,sans-serif;letter-spacing:.8px;margin-top:5px}.hero{background:linear-gradient(112deg,#fff 0 43%,#e8f2fa 43%);overflow:hidden}.herogrid{display:grid;grid-template-columns:45% 55%;min-height:430px;align-items:center}.hero h1,.subhero h1{font:900 clamp(70px,10vw,135px)/.9 'Barlow Condensed',sans-serif;margin:15px 0;color:var(--navy)}.hero p{max-width:430px}.eyebrow{color:var(--red);letter-spacing:1.3px;font-weight:800;font-size:12px;text-transform:uppercase}.hero-copy{padding:40px 0;position:relative;z-index:1}.fact{font-weight:700;margin:8px 0}.fact b{color:var(--red)}.cta{display:inline-block;text-decoration:none;background:var(--red);color:white;padding:13px 22px;border-radius:5px;font-weight:800;margin-top:12px;box-shadow:0 5px 18px #e1242430}.cta:hover{background:#bd1519;color:white}.illustration{height:420px;position:relative;overflow:hidden;display:flex;align-items:center}.illustration svg{height:100%;width:100%}.slogan{position:absolute;right:16px;top:22px;background:#ffffffdb;padding:10px 16px;font:900 27px/1.1 'Barlow Condensed',sans-serif;transform:rotate(-3deg);text-align:right}.slogan em{font-style:normal;color:var(--red)}.section{padding:20px 0 28px}.duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{border-radius:8px;padding:23px 28px;min-height:215px}.card h2,.panel h2{font:900 35px 'Barlow Condensed',sans-serif;margin:7px 0}.card p{font-size:13px}.card.dark{color:white;background:linear-gradient(125deg,#1b2b67,#111944)}.card.light{background:#fff4f4;border:1px solid #efdedf}.card a{font-weight:800;font-size:13px}.label{font-size:11px;color:var(--red);text-transform:uppercase;letter-spacing:1px;font-weight:800}.dark .label{color:#ff9090}.sectiontitle{font:900 35px 'Barlow Condensed',sans-serif;margin:25px 0 12px;text-transform:uppercase}.sectiontitle:after{content:'';display:inline-block;height:4px;width:35px;background:var(--red);vertical-align:middle;margin-left:14px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.step{border-radius:7px;padding:18px;background:var(--bg);border:1px solid #dfe5ee;min-height:170px}.step.active{background:#fff7f7;border:2px solid var(--red)}.num{font:900 60px/.95 'Barlow Condensed',sans-serif}.step h3{font-size:13px;margin:10px 0 2px}.step p,.step a{font-size:12px}.step a{font-weight:800;color:var(--red)}.stories{display:grid;grid-template-columns:1fr 1fr;gap:15px}.story{background:var(--bg);padding:23px;border:1px solid #e3e6ec;border-radius:7px}.story h3{font:900 27px/1.1 'Barlow Condensed',sans-serif;margin:8px 0}.story p{font-size:13px}.footer{margin-top:25px;border-top:7px solid var(--red);background:#111a46;color:white;padding:30px 0}.foot{display:flex;justify-content:space-between;align-items:center;gap:25px}.footer h2{font:900 27px 'Barlow Condensed',sans-serif;margin:0}.footer p{font-size:12px;color:#d0d8ef}.footer a{font-size:12px;margin:10px;color:white}.subhero{background:linear-gradient(115deg,#fff,#d7eaf4);padding:48px 0}.subhero h1{margin:8px 0}.cols{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin:20px 0}.panel{padding:22px;background:var(--bg);border:1px solid #e1e5ed;border-radius:8px}.panel p{font-size:13px}.registration{margin:25px 0;border:1px solid #dfe4ed;border-radius:8px;overflow:hidden}.reghead{background:var(--navy);color:white;padding:21px 27px}.reghead h2{margin:0;font:900 35px 'Barlow Condensed',sans-serif}.regbody{padding:25px}.notice{border-left:4px solid #e99e37;background:#fff3e2;padding:14px 16px;font-size:13px}.regbody li{margin:6px 0}.embed{border:0;width:100%;min-height:850px}@media(max-width:850px){.nav{flex-wrap:wrap;padding:14px 0}.links{order:3;width:100%;overflow:auto;gap:18px;padding:7px 0}.ffgym{margin-left:auto}.herogrid{grid-template-columns:1fr}.illustration{height:240px}.duo,.cols,.stories{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.foot{display:block}.hero-copy{padding-bottom:12px}}@media(max-width:430px){.brand{font-size:24px}.ffgym{font-size:15px;padding:12px}.links a{white-space:nowrap}.wrap{padding:0 17px}.slogan{font-size:20px}.step{padding:12px}}
/* Accueil : photographie de Brest et signature régionale */
.home-ffgym{display:flex;align-items:center;justify-content:center;min-width:245px;padding:8px 10px;background:#092363}
.home-ffgym img{display:block;width:245px;max-width:100%;height:auto;object-fit:contain}
.home-brest-photo{background:#bdd9ee}
.home-brest-photo .home-hero-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:58% center}
.home-brest-photo .slogan{z-index:2}
@media(max-width:850px){.home-ffgym{min-width:205px}.home-ffgym img{width:205px}.home-brest-photo .home-hero-photo{object-position:64% center}}
@media(max-width:430px){.home-ffgym{min-width:145px;padding:7px}.home-ffgym img{width:145px}}


/* Logo régional : mêmes dimensions que l'en-tête de Brest.
   Adapter ces trois paliers ensemble si le logo change à l'avenir. */
.home-ffgym { min-width:295px; max-width:325px; padding:9px 12px; background:#092263; }
.home-ffgym img { width:300px; max-width:100%; height:auto; }
@media(max-width:930px) {
  .home-ffgym { min-width:230px; max-width:265px; }
  .home-ffgym img { width:250px; }
}
@media(max-width:630px) {
  .home-ffgym { min-width:130px; max-width:182px; padding:5px; }
  .home-ffgym img { width:174px; }
}


/* Pied de page accueil : signatures institutionnelles et liens accessibles. */
.home-footer { gap:42px; }
.home-footer-about { max-width:480px; }
.home-footer-about p { margin:8px 0 0; }
.home-footer-partners { display:flex; align-items:stretch; justify-content:flex-end; gap:14px; flex-wrap:wrap; }
.home-footer-partners a { margin:0; text-decoration:none; }
.home-footer-regional { display:flex; align-items:center; justify-content:center; padding:12px 15px; background:#092263; border:1px solid #516395; border-radius:7px; }
.home-footer-regional img { display:block; width:235px; max-width:100%; height:auto; }
.home-footer-national { display:flex; flex-direction:column; justify-content:center; gap:9px; min-width:188px; padding:13px 18px; border:1px solid #516395; border-radius:7px; background:#182759; }
.home-footer-national-name { color:#fff; font:700 12px/1.3 Inter,Arial,sans-serif; letter-spacing:.45px; }
.home-footer-national-name strong { font-size:14px; font-weight:800; }
.home-footer-national-link { color:#d4dff5; font-size:11px; }
.home-footer-partners a:hover { border-color:#fff; }
@media(max-width:850px) {
  .home-footer { display:flex; flex-direction:column; align-items:stretch; gap:20px; }
  .home-footer-partners { justify-content:flex-start; }
}
@media(max-width:430px) {
  .home-footer-regional img { width:185px; }
  .home-footer-national { min-width:170px; }
}
