  :root{
    --red:#E4141C;
    --red-dark:#A80F16;
    --red-bright:#FF5C5C;
    --black:#000000;
    --charcoal:#17171A;
    --charcoal-2:#212125;
    --bone:#F2F0EA;
    --white:#FFFFFF;
    --line: rgba(255,255,255,0.12);
    --line-dark: rgba(0,0,0,0.12);
    --display: 'Anton', sans-serif;
    --label: 'Barlow Condensed', sans-serif;
    --body: 'Archivo', sans-serif;
    --maxw: 1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; scroll-padding-top:112px;}
  body{
    font-family:var(--body);
    background:var(--bone);
    color:var(--black);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
  /* Visible keyboard-focus ring everywhere, without adding a ring for mouse clicks */
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, .gallery-item:focus-visible, .lightbox-close:focus-visible{
    outline:2px solid var(--red-bright); outline-offset:3px; border-radius:1px;
  }
  .eyebrow{
    font-family:var(--label); font-weight:700; letter-spacing:.18em; text-transform:uppercase;
    font-size:15.5px; color:var(--red-dark);
  }
  .dark .eyebrow, .charcoal .eyebrow, .hero .eyebrow, .page-hero .eyebrow{color:var(--red-bright);}
  h1,h2,h3{font-family:var(--display); text-transform:uppercase; letter-spacing:.01em; line-height:1.02;}
  .section-title{font-size:clamp(32px,5vw,52px); margin:10px 0 14px; position:relative; padding-bottom:18px;}
  .section-title::after{content:""; position:absolute; left:0; bottom:0; width:56px; height:4px; background:var(--red);}
  .section-sub{font-family:var(--body); font-size:19px; color:#444; max-width:560px; margin-bottom:44px;}
  .section-sub--wide{max-width:900px;}
  .section-sub--lg{font-size:21px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px; font-family:var(--label); font-weight:700;
    letter-spacing:.06em; text-transform:uppercase; font-size:17.5px; padding:14px 26px;
    border-radius:2px; cursor:pointer; border:2px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .2s ease, color .2s ease;
  }
  .btn:hover{transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.25);}
  .btn-red{background:var(--red); color:var(--white);}
  .btn-red:hover{background:var(--red-dark); box-shadow:0 10px 24px rgba(228,20,28,.35);}
  .btn-outline{border-color:var(--white); color:var(--white);}
  .btn-outline:hover{background:var(--white); color:var(--black);}
  .btn-outline-dark{border-color:var(--black); color:var(--black);}
  .btn-outline-dark:hover{background:var(--black); color:var(--white);}
  .btn-outline-soft{border-color:rgba(255,255,255,.45); color:var(--white); border-style:dashed; font-size:14.5px; padding:12px 22px; opacity:.9;}
  .btn-ring-white{border-color:var(--white);}
  .btn-ring-white:hover{border-color:var(--white);}
  .btn-outline-soft:hover{background:rgba(255,255,255,.12); opacity:1; border-style:solid;}

  /* ===== NAV ===== */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(0,0,0,0.85); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
    transition:background .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  header.scrolled{background:rgba(0,0,0,0.97); box-shadow:0 8px 30px rgba(0,0,0,.4); border-bottom-color:rgba(228,20,28,.3);}
  .nav-wrap{max-width:1440px; margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; height:96px; gap:24px;}
  .nav-logo{display:flex; align-items:center; gap:18px; flex-shrink:0; padding:8px 16px 8px 4px; border-radius:8px;}
  .nav-logo-mark{
    position:relative; display:flex; align-items:center; justify-content:center; flex-shrink:0;
    width:78px; height:78px;
  }
  .nav-logo img{height:78px; width:auto; flex-shrink:0; transition:transform .3s ease, filter .3s ease; filter:drop-shadow(0 2px 10px rgba(0,0,0,.55));}
  .nav-logo:hover img{transform:scale(1.07) rotate(-2deg); filter:drop-shadow(0 0 18px rgba(228,20,28,.65));}
  .nav-logo .brand{display:flex; flex-direction:column; line-height:1;}
  .nav-logo .brand-single{
    font-family:var(--display); color:var(--white); font-size:22px; letter-spacing:.04em;
    text-transform:uppercase; white-space:nowrap;
  }
  .nav-links{display:flex; gap:17px; align-items:center; flex-wrap:nowrap;}
  .nav-links a{
    font-family:var(--label); font-weight:600; font-size:16px; letter-spacing:.03em; text-transform:uppercase;
    color:var(--white); opacity:.85; transition:opacity .2s, color .2s; position:relative; white-space:nowrap; padding-bottom:4px;
  }
  .nav-links a.active{opacity:1; color:var(--red-bright);}
  .nav-links a.active::after{transform:scaleX(1);}
  .nav-links a:not(.btn)::after{
    content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--red);
    transform:scaleX(0); transform-origin:right; transition:transform .25s ease;
  }
  .nav-links a:not(.btn):hover::after{transform:scaleX(1); transform-origin:left;}
  .nav-links a:hover{opacity:1; color:var(--red-bright);}
  .nav-cta{margin-left:6px; flex-shrink:0; position:relative; animation:ctaPulse 2.8s ease-in-out infinite;}
  @keyframes ctaPulse{
    0%,100%{box-shadow:0 0 0 0 rgba(228,20,28,.45);}
    50%{box-shadow:0 0 0 8px rgba(228,20,28,0);}
  }
  .nav-cta:hover{animation-play-state:paused;}
  .nav-toggle{
    display:none; position:relative; width:44px; height:44px; background:none; border:none; cursor:pointer;
    padding:0; flex-shrink:0;
  }
  /* ===== BACK TO TOP (navigation intuitive) ===== */
  .back-to-top{
    position:fixed; right:22px; bottom:22px; z-index:150; width:48px; height:48px; border-radius:50%;
    background:var(--red); color:var(--white); border:2px solid var(--white); font-size:20px; cursor:pointer;
    display:flex; align-items:center; justify-content:center; box-shadow:0 10px 24px rgba(0,0,0,.35);
    opacity:0; transform:translateY(14px) scale(.85); pointer-events:none;
    transition:opacity .25s ease, transform .25s ease, background .2s ease;
  }
  .back-to-top.show{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
  .back-to-top:hover{background:var(--red-dark);}
  @media (max-width:760px){ .back-to-top{right:14px; bottom:14px; width:44px; height:44px;} }
  @media (prefers-reduced-motion: reduce){ .back-to-top{transition:opacity .2s ease;} }
  .nav-toggle span{
    position:absolute; left:7px; width:26px; height:2px; background:var(--white); border-radius:2px;
    transition:transform .3s ease, opacity .3s ease, top .3s ease;
  }
  .nav-toggle span:nth-child(1){top:13px;}
  .nav-toggle span:nth-child(2){top:19px;}
  .nav-toggle span:nth-child(3){top:25px;}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){top:19px; transform:rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){top:19px; transform:rotate(-45deg);}

  /* ===== HERO ===== */
  .hero{
    position:relative; min-height:calc(100vh - 96px); margin-top:96px; background:var(--black); color:var(--white);
    display:flex; align-items:center; overflow:hidden;
  }
  .hero::before{
    content:""; position:absolute; inset:0;
    background:
      linear-gradient(135deg, transparent 0%, transparent 46%, var(--red) 46.3%, var(--red-dark) 100%);
    opacity:.94; z-index:0;
  }
  .hero::after{
    content:""; position:absolute; inset:0;
    background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 64px);
    z-index:0;
  }
  .hero-ghost{
    position:absolute; right:6%; top:54%; transform:translateY(-50%); width:min(40vw,480px);
    opacity:.22; z-index:0; filter:grayscale(1) brightness(6);
  }
  .hero-ghost--left{left:6%; right:auto; width:min(30vw,360px); opacity:.14;}
  .hero-inner{position:relative; z-index:2; padding:100px 0 90px; display:flex; flex-direction:column; align-items:center; text-align:center;}
  @keyframes fadeUp{ from{opacity:0; transform:translateY(28px);} to{opacity:1; transform:none;} }
  .hero-eyebrow, .hero h1, .hero-tag, .pills, .hero-ctas{
    opacity:0; animation:fadeUp .8s ease forwards;
  }
  .hero-eyebrow{animation-delay:.05s;}
  .hero h1{animation-delay:.18s;}
  .hero-tag{animation-delay:.34s;}
  .pills{animation-delay:.48s;}
  .hero-ctas{animation-delay:.6s;}
  @keyframes floatSlow{ 0%,100%{transform:translateY(-50%) translateX(0);} 50%{transform:translateY(calc(-50% - 14px)) translateX(-6px);} }
  @keyframes floatSlowLeft{ 0%,100%{transform:translateY(-50%) translateX(0);} 50%{transform:translateY(calc(-50% - 12px)) translateX(6px);} }
  .hero-ghost{animation:floatSlow 8s ease-in-out infinite;}
  .hero-ghost--left{animation:floatSlowLeft 9s ease-in-out infinite;}
  .hero-eyebrow{
    font-family:var(--label); font-weight:700; letter-spacing:.3em; text-transform:uppercase;
    font-size:15.5px; color:var(--white); opacity:.85; margin-bottom:18px; display:flex; align-items:center; gap:14px;
  }
  .hero-eyebrow::before, .hero-eyebrow::after{content:""; width:38px; height:2px; background:var(--white); display:inline-block; flex:none;}
  .h1-mixed{text-transform:none; display:inline-block;}
  .hero h1{
    font-size:clamp(48px,9vw,108px); color:var(--white); text-shadow:0 6px 30px rgba(0,0,0,.35);
    max-width:820px;
  }
  .hero h1 em{font-style:normal; color:var(--black); background:var(--white); padding:0 10px; display:inline-block;}
  .hero-tag{font-family:var(--label); font-size:23px; letter-spacing:.08em; margin:22px 0 36px; opacity:.9; max-width:640px;}
  .pills{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:42px; justify-content:center;}
  .pill{
    font-family:var(--label); font-weight:600; font-size:16.5px; letter-spacing:.06em; text-transform:uppercase;
    border:1px solid rgba(255,255,255,.4); padding:8px 16px; border-radius:999px;
  }
  .hero-ctas{display:flex; gap:16px; flex-wrap:wrap; justify-content:center;}
  .hero-cta-highlight{display:inline-flex; align-items:center; gap:12px;}
  .hero-cta-arrow{width:36px; height:18px; flex:none; animation:arrowPoint 1.3s ease-in-out infinite;}
  @keyframes arrowPoint{0%,100%{transform:translateX(0); opacity:.7;} 50%{transform:translateX(10px); opacity:1;}}
  .btn-float{
    animation:floatBtn 2.6s ease-in-out infinite, ctaPulse 2.4s ease-in-out infinite;
    box-shadow:0 10px 28px rgba(228,20,28,.45);
  }
  @keyframes floatBtn{0%,100%{transform:translateY(0);} 50%{transform:translateY(-7px);}}
  .btn-float:hover{animation-play-state:paused;}

  /* ===== TICKER / ACTU ===== */
  .ticker{background:var(--red); color:var(--white); padding:27px 0; overflow:hidden; position:relative; border-bottom:4px solid var(--black); border-top:4px solid var(--black);}
  .ticker-track{display:flex; gap:60px; white-space:nowrap; animation:scroll 110s linear infinite; width:max-content;}
  .ticker-track span{font-family:var(--label); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:23px; display:flex; align-items:center; gap:60px;}
  .ticker-track span::after{content:"●"; margin-left:60px; opacity:.6; font-size:12.5px;}
  .ticker-track span .ticker-new{background:var(--black); color:var(--white); font-size:13px; padding:2px 8px; border-radius:999px; letter-spacing:.04em; margin-left:10px;}
  .ticker-track span.is-past{opacity:.6;}
  .ticker-track em.ticker-past{font-style:normal; font-family:var(--label); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.7); color:var(--white); padding:2px 10px; border-radius:999px; margin-right:-40px; flex:none;}
  @keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ===== GENERIC SECTION ===== */
  section{padding:100px 0;}
  .dark{background:var(--black); color:var(--white);}
  .dark .section-sub{color:rgba(255,255,255,.65);}
  .charcoal .section-sub{color:rgba(255,255,255,.85);}
  .charcoal{background:var(--charcoal); color:var(--white);}

  /* ===== DISCIPLINES ===== */
  .disc-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark);}
  .disc-card{
    background:var(--bone); display:flex; flex-direction:column; text-align:left; font:inherit; color:inherit;
    border:none; cursor:pointer; padding:0; min-height:0;
    transition:background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease; position:relative; z-index:1;
  }
  .disc-card:hover{background:var(--black); color:var(--white); transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.35); z-index:2;}
  .disc-photo{position:relative; aspect-ratio:4/5; overflow:hidden; background:#000;}
  .disc-photo img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease, filter .4s ease; filter:grayscale(.15) contrast(1.05);}
  .disc-card:hover .disc-photo img{transform:scale(1.08); filter:grayscale(0) contrast(1.1);}
  .disc-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(0,0,0,.75) 100%);}
  .disc-zoom{
    position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:50%; background:rgba(228,20,28,.9);
    color:#fff; display:flex; align-items:center; justify-content:center; font-size:16.5px; opacity:0; transform:scale(.7);
    transition:opacity .25s ease, transform .25s ease; z-index:2;
  }
  .disc-card:hover .disc-zoom{opacity:1; transform:scale(1);}
  .disc-body{padding:24px; flex:1; display:flex; flex-direction:column;}
  .disc-num{font-family:var(--label); font-weight:700; color:var(--red-dark); font-size:15.5px; letter-spacing:.08em; transition:color .25s ease;}
  .disc-card:hover .disc-num{color:var(--red-bright);}
  .disc-card h3{font-size:25.5px; margin:14px 0 8px;}
  .disc-card p{font-size:17.5px; color:#444; line-height:1.55;}
  .disc-card:hover p{color:rgba(255,255,255,.7);}

  /* ===== CLUB / COACHES ===== */
  .coach-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
  .coach-card{background:var(--charcoal-2); border:1px solid var(--line); padding:26px; position:relative; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;}
  .coach-card:hover{transform:translateY(-6px); border-color:var(--red); box-shadow:0 16px 32px rgba(0,0,0,.4);}
  .coach-photo{
    aspect-ratio:1/1; width:100%; border-radius:4px; margin-bottom:18px; position:relative; overflow:hidden;
    background:linear-gradient(155deg, var(--charcoal-2) 0%, #000 100%);
    border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    transition:border-color .3s ease, box-shadow .3s ease;
  }
  .coach-card:hover .coach-photo{border-color:var(--red); box-shadow:inset 0 0 0 1px rgba(228,20,28,.4);}
  .coach-icon{
    width:44%; height:44%; fill:none; stroke:rgba(228,20,28,.75); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round;
    transition:transform .5s ease, opacity .3s ease; opacity:.9;
  }
  .coach-card:hover .coach-icon{transform:scale(1.1) translateY(-4px);}
  .coach-initials{
    position:absolute; bottom:10px; right:12px; font-family:var(--display); font-size:16.5px; letter-spacing:.05em;
    color:rgba(255,255,255,.35);
  }
  .coach-photo::before{
    content:"Photo à venir"; position:absolute; top:10px; left:12px; font-family:var(--label); font-size:10.5px;
    letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.3);
  }
  .coach-photo.has-photo::before, .coach-photo.has-photo .coach-icon, .coach-photo.has-photo .coach-initials{display:none;}
  .coach-photo.has-photo{cursor:pointer;}
  .coach-photo.has-photo:focus-visible{outline:2px solid var(--red-bright); outline-offset:3px;}
  .coach-zoom{
    position:absolute; top:10px; right:10px; width:32px; height:32px; border-radius:50%; background:rgba(228,20,28,.9);
    color:#fff; display:flex; align-items:center; justify-content:center; font-size:15.5px; opacity:0; transform:scale(.7);
    transition:opacity .25s ease, transform .25s ease; z-index:2;
  }
  .coach-card:hover .coach-zoom{opacity:1; transform:scale(1);}
  .coach-cta{
    font-family:var(--label); font-size:17.5px; letter-spacing:.02em; color:#555;
    margin:-30px 0 40px; white-space:nowrap;
  }
  .dark .coach-cta, .charcoal .coach-cta{color:rgba(255,255,255,.92);}
  @media (max-width:600px){ .coach-cta{white-space:normal;} }
  .coach-photo img{width:100%; height:100%; object-fit:cover; object-position:top center; transition:transform .5s ease;}
  .coach-card:hover .coach-photo img{transform:scale(1.06);}
  .coach-card h3{font-size:20.5px; font-family:var(--body); font-weight:700; text-transform:none; letter-spacing:0; margin-bottom:6px;}
  .coach-card .grade{font-family:var(--label); font-size:15.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--red-bright); font-weight:700;}
  .coach-card .role{font-size:15.5px; color:rgba(255,255,255,.55); margin-top:8px;}
  .badge-cutman{
    display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-family:var(--label);
    font-size:13.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--white);
    background:var(--red); padding:5px 10px; border-radius:2px;
  }

  .cutman-box{
    margin-top:56px; background:var(--red); color:var(--white); padding:44px; display:grid; grid-template-columns:auto 1fr; gap:28px; align-items:center;
  }
  .cutman-icon{width:60px; height:60px; flex:none;}
  .cutman-box h3{font-size:24px; margin-bottom:10px;}
  .cutman-box p{font-size:17.5px; opacity:.95; max-width:680px; line-height:1.55;}

  /* ===== CRENEAUX (fight card) ===== */
  .card-list{display:flex; flex-direction:column; border-top:2px solid var(--black);}
  .card-row{
    display:grid; grid-template-columns:160px 1fr auto; gap:24px; align-items:center;
    padding:26px 20px; border-bottom:2px solid var(--black); margin:0 -20px; transition:background .2s ease, padding-left .2s ease;
    border-left:4px solid transparent;
  }
  .card-row:hover{background:rgba(228,20,28,.05); border-left-color:var(--red);}
  .card-row .day{font-family:var(--display); font-size:28px;}
  .card-row .info h4{font-family:var(--body); font-weight:700; font-size:18.5px; margin-bottom:4px; white-space:nowrap;}
  .card-row .info p{font-size:17.5px; color:#444; white-space:nowrap;}
  .card-row .time{font-family:var(--label); font-weight:700; font-size:23px; letter-spacing:.03em; text-align:right; white-space:nowrap; color:var(--red-dark);}
  .new-flag{
    display:inline-block; margin-left:10px; background:var(--black); color:var(--white); font-family:var(--label);
    font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; padding:3px 8px; vertical-align:middle;
  }

  /* ===== ADHESION / AIDES ===== */
  .adh-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:start;}
  .steps{display:flex; flex-direction:column; gap:0;}
  .step{display:grid; grid-template-columns:54px 1fr; gap:22px; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.1);}
  .step:first-child{padding-top:0;}
  .step-num{font-family:var(--display); font-size:34px; color:var(--red-bright);}
  .step h4{font-size:23px; margin-bottom:8px; white-space:nowrap;}
  .step p{font-size:19px; color:rgba(255,255,255,.7); line-height:1.55;}
  .aid-card{background:var(--black); color:var(--white); padding:34px; margin-bottom:18px; transition:transform .25s ease, box-shadow .25s ease;}
  .aid-card:hover{transform:translateY(-4px); box-shadow:0 16px 32px rgba(0,0,0,.3);}
  .aid-card h4{font-family:var(--label); text-transform:uppercase; letter-spacing:.05em; font-size:18.5px; color:var(--red-bright); margin-bottom:10px; font-weight:700; white-space:nowrap;}
  .aid-card p{font-size:18px; color:rgba(255,255,255,.8); line-height:1.55;}
  .aid-sub{margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.15);}
  .aid-sub strong{color:var(--white); display:block; margin-bottom:4px; font-family:var(--label); letter-spacing:.03em; text-transform:uppercase; font-size:13.5px;}
  .ce-grid{grid-template-columns:repeat(4,1fr);}
  @media(max-width:980px){ .ce-grid{grid-template-columns:1fr 1fr;} }
  @media(max-width:600px){ .ce-grid{grid-template-columns:1fr;} }
  .aid-amount{font-family:var(--display); font-size:34px; display:block; margin:6px 0; color:var(--white);}

  /* ===== OU SOMMES NOUS ===== */
  .loc-wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:0; background:var(--charcoal); color:var(--white);}
  .loc-info{padding:64px; display:flex; flex-direction:column; justify-content:center;}
  .loc-info img{width:110px; margin-bottom:26px;}
  .loc-info h3{font-size:30px; margin-bottom:18px;}
  .loc-line{display:flex; gap:12px; font-size:17.5px; margin-bottom:10px; color:rgba(255,255,255,.8); white-space:nowrap;}
  .loc-map{min-height:420px; background:var(--bone); position:relative; overflow:hidden;}
  .loc-map iframe{width:100%; height:100%; border:0; filter:grayscale(.3) contrast(1.05);}

  /* ===== FOOTER ===== */
  footer{background:var(--black); color:rgba(255,255,255,.65); padding:70px 0 30px;}
  .foot-top{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid var(--line);}
  .foot-brand img{height:52px; margin-bottom:16px;}
  .foot-brand p{font-size:16.5px; max-width:270px; color:rgba(255,255,255,.6);}
  .foot-col h5{font-family:var(--label); letter-spacing:.08em; text-transform:uppercase; font-size:14.5px; color:var(--white); margin-bottom:16px;}
  .foot-col a, .foot-col li{display:block; font-size:17px; margin-bottom:10px; color:rgba(255,255,255,.65); white-space:nowrap;}
  .foot-col a:hover{color:var(--red-bright);}
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:24px; font-size:14.5px; flex-wrap:wrap; gap:10px;}

  /* ===== REVEAL ===== */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:none;}

  /* ===== RESPONSIVE ===== */
  @media (max-width:1220px){
    .nav-links{
      position:fixed; top:96px; left:0; right:0; background:var(--black); z-index:99;
      flex-direction:column; align-items:flex-start; padding:0 28px; gap:22px;
      max-height:0; overflow:hidden; opacity:0; visibility:hidden;
      border-bottom:1px solid var(--line); box-shadow:0 20px 40px rgba(0,0,0,.5);
      transition:max-height .35s ease, opacity .25s ease, padding .35s ease, visibility 0s linear .35s;
    }
    .nav-links.open{
      max-height:calc(100vh - 96px); overflow-y:auto; opacity:1; visibility:visible; padding:26px 28px 34px;
      transition:max-height .4s ease, opacity .3s ease .05s, padding .4s ease;
    }
    .nav-links a{font-size:18.5px; padding-bottom:8px; width:100%;}
    .nav-toggle{display:block;}
    .nav-cta{margin-left:0; animation:none;}
  }
  @media (max-width:980px){
    .disc-grid{grid-template-columns:repeat(2,1fr);}
    .coach-grid{grid-template-columns:repeat(2,1fr);}
    .adh-grid{grid-template-columns:1fr;}
    .loc-wrap{grid-template-columns:1fr;}
    .foot-top{grid-template-columns:1fr 1fr;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .grid-2-even{grid-template-columns:1fr;}
  }
  @media (max-width:760px){
    .nav-logo{gap:12px; padding:6px 8px 6px 2px;}
    .nav-logo-mark{width:56px; height:56px;}
    .nav-logo img{height:56px;}
    .nav-logo .brand-single{font-size:17.5px;}
    .disc-grid{grid-template-columns:1fr;}
    .coach-grid{grid-template-columns:1fr;}
    .card-row{grid-template-columns:1fr; gap:6px;}
    .card-row .time{text-align:left;}
    .cutman-box{grid-template-columns:1fr;}
    .foot-top{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:1fr 1fr;}
    section{padding:70px 0;}
    .page-hero{padding:130px 0 50px;}
    .hero-tag, .card-row .info h4, .card-row .info p, .step h4, .aid-card h4, .loc-line, .foot-col a, .foot-col li{white-space:normal;}
  }
  @media (max-width:480px){
    .gallery-grid{grid-template-columns:1fr;}
    .nav-wrap{padding:0 16px; height:84px;}
    .hero{min-height:calc(100vh - 84px); margin-top:84px;}
    .nav-logo-mark{width:48px; height:48px;}
    .nav-logo img{height:48px;}
    .nav-logo .brand-single{font-size:15.5px;}
    .nav-links{top:84px;}
    .nav-links.open{max-height:calc(100vh - 84px);}
    .hero-ctas{flex-direction:column; align-items:stretch;}
    .hero-ctas .btn{justify-content:center;}
  }
  body.nav-open{overflow:hidden;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .ticker-track{animation:none; width:auto; flex-wrap:wrap; justify-content:center; white-space:normal; gap:14px 40px; padding:0 20px;}
    .ticker-track > [aria-hidden="true"]{display:none;}
    .reveal{opacity:1; transform:none; transition:none;}
  }

/* ===== GALLERY ===== */
.gallery-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.gallery-tab{
  font-family:var(--label); font-weight:700; font-size:14.5px; letter-spacing:.06em; text-transform:uppercase;
  padding:10px 20px; border:1px solid var(--line-dark); background:transparent; cursor:pointer; color:var(--black);
  transition:background .2s ease, color .2s ease;
}
.gallery-tab.active, .gallery-tab:hover{background:var(--black); color:var(--white); border-color:var(--black);}
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media (max-width:980px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:760px){ .gallery-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:480px){ .gallery-grid{grid-template-columns:1fr;} }
.gallery-item{
  position:relative; aspect-ratio:1/1; background:linear-gradient(155deg,#e7e5df,#cfccc3);
  overflow:hidden; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.gallery-item img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.gallery-item .placeholder-mark{
  font-family:var(--label); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:rgba(0,0,0,.35); text-align:center; padding:10px;
}
.gallery-item--placeholder{cursor:default;}
.gallery-item::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.45), transparent 40%); opacity:0; transition:opacity .25s ease;}
.gallery-item:hover::after{opacity:1;}
.gallery-item .zoom-icon{
  position:absolute; bottom:10px; right:10px; width:30px; height:30px; border-radius:50%; background:var(--red); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-size:15.5px; opacity:0; transform:scale(.7); transition:opacity .25s ease, transform .25s ease;
}
.gallery-item:hover .zoom-icon{opacity:1; transform:scale(1);}
.gallery-cat{display:none;}
.gallery-cat.active{display:grid;}

/* Lightbox */
.lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:300; display:none; align-items:center; justify-content:center;
  padding:40px; flex-direction:column; gap:16px;
}
.lightbox.open{display:flex;}
.lightbox img{width:min(90vw,900px); height:78vh; object-fit:contain; border:1px solid rgba(255,255,255,.1);}
.lightbox-caption{color:rgba(255,255,255,.85); font-family:var(--label); font-size:16.5px; letter-spacing:.04em; text-align:center; max-width:600px;}
.lightbox-close{
  position:absolute; top:24px; right:28px; color:var(--white); font-size:32px; cursor:pointer; line-height:1;
  width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.3); border-radius:50%;
  transition:background .2s ease; z-index:2;
}
.lightbox-close:hover{background:rgba(255,255,255,.1);}

/* ===== CONTACT FORM EXTRAS ===== */
.field-label{font-family:var(--label); font-size:14.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.65); margin-bottom:4px; display:block;}
.file-drop{
  border:2px dashed rgba(255,255,255,.25); padding:22px 16px; text-align:center; cursor:pointer;
  font-family:var(--label); font-size:14.5px; letter-spacing:.04em; color:rgba(255,255,255,.6); transition:border-color .2s ease, background .2s ease;
  position:relative;
}
.file-drop:hover{border-color:var(--red); background:rgba(228,20,28,.05);}
.file-drop input{position:absolute; inset:0; opacity:0; cursor:pointer;}
.file-list{margin-top:10px; font-size:15px; color:rgba(255,255,255,.7); font-family:var(--body);}
.file-remove{
  background:none; border:1px solid rgba(255,255,255,.3); color:rgba(255,255,255,.8);
  font-family:var(--label); font-size:12.5px; letter-spacing:.04em; text-transform:uppercase;
  padding:3px 10px; border-radius:20px; cursor:pointer; margin-left:8px; transition:border-color .2s ease, color .2s ease;
}
.file-remove:hover{border-color:var(--red); color:var(--red);}
.form-note{font-size:15px; color:rgba(255,255,255,.72); margin-top:8px; line-height:1.5;}

/* ===== PAGE HERO (sous-pages) ===== */
.page-hero{
  background:var(--black); color:var(--white); padding:150px 0 60px; position:relative; overflow:hidden;
}
@media (max-width:760px){ .page-hero{padding:130px 0 50px;} }
.page-hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, transparent 0%, transparent 60%, var(--red) 60.3%, var(--red-dark) 100%); opacity:.9;
}
.page-hero .wrap{position:relative; z-index:1;}
.page-hero .eyebrow{color:var(--white); opacity:.85;}
.page-hero h1{font-size:clamp(34px,6vw,64px); margin:10px 0;}
.breadcrumb{font-family:var(--label); font-size:15.5px; letter-spacing:.05em; text-transform:uppercase; opacity:.7; margin-bottom:14px;}
.breadcrumb a{text-decoration:underline;}

/* ===== UTILITY CLASSES (replace former inline styles) ===== */
.link-underline{text-decoration:underline;}
.grid-2-even{grid-template-columns:1fr 1fr; align-items:stretch;}
.grid-2-even .aid-card{display:flex; flex-direction:column; height:100%;}
.grid-2-even .aid-card p{flex:1;}
@media (max-width:980px){ .grid-2-even{grid-template-columns:1fr;} }
.btn-fit{width:fit-content;}
.mt-18{margin-top:18px;}
.mt-24{margin-top:24px;}
.doc-download-row{display:flex; flex-wrap:wrap; gap:14px; margin:22px 0 8px;}
.competition-callout{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px;
  background:linear-gradient(120deg, var(--red) 0%, var(--red-dark) 100%); color:var(--white);
  padding:28px 34px; border-radius:6px; margin-top:44px;
}
.competition-callout h3{font-size:24px; margin-bottom:6px;}
.competition-callout p{font-size:17.5px; opacity:.95; max-width:540px; line-height:1.5;}
.competition-callout .btn-red{background:var(--black);}
.competition-callout .btn-red:hover{background:#1a1a1a;}
.competition-band{padding:0;}
.competition-band .competition-callout{margin-top:0;}
.competition-callout .competition-next{margin-top:12px; font-family:var(--label); font-weight:700; font-size:15.5px; letter-spacing:.04em; text-transform:uppercase; opacity:1;}
.note-text{margin-top:24px; font-size:17.5px; color:#444; line-height:1.55;}
.dark .note-text, .charcoal .note-text{color:rgba(255,255,255,.7);}
.note-text--lg{font-size:18.5px; color:#333;}
.cutman-box--dark{background:var(--black);}
.sr-svg-defs{position:absolute; width:0; height:0; overflow:hidden;}
.scroll-progress{position:fixed; top:0; left:0; height:3px; width:0; background:var(--red); z-index:200; transition:width .08s linear;}

/* ===== FORM (contact page) ===== */
.form-grid{grid-template-columns:1fr 1fr; gap:22px;}
.form-col{display:flex; flex-direction:column; gap:16px;}
.form-field label{
  font-family:var(--label); font-size:13.5px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.55); margin-bottom:6px; display:block;
}
.optional-tag{
  font-family:var(--label); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,.45); font-weight:400; border:1px solid rgba(255,255,255,.3);
  padding:1px 7px; border-radius:999px; margin-left:6px; vertical-align:middle;
}
.form-input{
  width:100%; background:var(--charcoal-2); border:1px solid var(--line); color:var(--white);
  padding:14px 16px; font-family:var(--body); font-size:16.5px; transition:border-color .2s ease, background .2s ease;
}
.form-input:focus{border-color:var(--red); background:#26262b; outline:none;}
textarea.form-input{resize:vertical;}

/* ===== A11y: reduce motion for the CTA pulse too ===== */
@media (prefers-reduced-motion: reduce){
  .nav-cta{animation:none;}
}
.note-text--sm{font-size:17px; color:#444; line-height:1.55;}

/* ===== SKIP LINK (keyboard accessibility) ===== */
.skip-link{
  position:fixed; top:-60px; left:12px; z-index:300; background:var(--red); color:var(--white);
  font-family:var(--label); font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:15.5px;
  padding:12px 20px; border-radius:2px; transition:top .2s ease;
}
.skip-link:focus{top:12px;}

/* ===== HERO BANNER (badge SVG inspiré de l'ancienne bannière du club) ===== */
.hero-banner{
  width:min(92%, 560px); margin:0 0 34px; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.02s;
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.45));
}
.hero-banner svg{width:100%; height:auto; display:block;}
@media (max-width:760px){
  .hero-banner{width:100%; margin-bottom:26px;}
}

/* ===== SPLASH SCREEN (page d'accueil, rejouée à chaque chargement) ===== */
#splash{
  position:fixed; inset:0; z-index:500;
  background:radial-gradient(ellipse at center, #1a0405 0%, #000 70%);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  transition:opacity .5s ease, visibility 0s linear 0s;
}
#splash.splash-hide{opacity:0; visibility:hidden; transition:opacity .5s ease, visibility 0s linear .5s;}
body.splash-active{overflow:hidden; height:100vh;}

.splash-vignette{
  position:absolute; inset:0; background:radial-gradient(ellipse at center, rgba(228,20,28,.16) 0%, rgba(228,20,28,0) 60%);
  animation:splashVignette 2.6s ease-in-out infinite;
}
@keyframes splashVignette{ 0%,100%{opacity:.5; transform:scale(1);} 50%{opacity:1; transform:scale(1.08);} }

.splash-rope{
  position:absolute; left:0; right:0; height:14px; background:repeating-linear-gradient(90deg, var(--red) 0 26px, var(--white) 26px 30px);
  transform:scaleX(0); transform-origin:center;
}
.splash-rope--1{top:16%; animation:ropeIn .65s cubic-bezier(.2,.8,.3,1) .08s forwards;}
.splash-rope--2{top:50%; animation:ropeIn .65s cubic-bezier(.2,.8,.3,1) .22s forwards;}
.splash-rope--3{top:84%; animation:ropeIn .65s cubic-bezier(.2,.8,.3,1) .36s forwards;}
@keyframes ropeIn{ from{transform:scaleX(0);} to{transform:scaleX(1);} }

.splash-shake{position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center;}
.splash-shake.impact{animation:splashShake .4s ease .95s;}
@keyframes splashShake{
  0%{transform:translate(0,0) scale(1);} 8%{transform:translate(-10px,3px) scale(1.03);} 20%{transform:translate(8px,-4px) scale(1.01);}
  30%{transform:translate(-6px,4px) scale(1);} 40%{transform:translate(6px,-2px) scale(1);} 50%{transform:translate(-4px,2px) scale(1);}
  60%{transform:translate(3px,-2px) scale(1);} 100%{transform:translate(0,0) scale(1);}
}

.splash-jab{
  position:absolute; z-index:2; opacity:0; left:50%; top:50%; width:70px; height:70px; margin:-35px 0 0 -35px;
  animation:splashJab .5s cubic-bezier(.3,.7,.4,1) .4s forwards;
}
@keyframes splashJab{
  0%{opacity:0; transform:translateX(-420px) rotate(-20deg) scale(.7);}
  35%{opacity:1; transform:translateX(-30px) rotate(-4deg) scale(1);}
  55%{opacity:1; transform:translateX(0) rotate(0deg) scale(1.02);}
  100%{opacity:0; transform:translateX(-380px) rotate(-16deg) scale(.7);}
}

.splash-cross{
  position:absolute; z-index:3; opacity:0; left:50%; top:50%; width:128px; height:128px; margin:-64px 0 0 -64px;
  animation:splashCross .4s cubic-bezier(.25,.6,.3,1) .7s forwards;
}
@keyframes splashCross{
  0%{opacity:0; transform:translateX(460px) rotate(16deg) scale(.75);}
  60%{opacity:1; transform:translateX(0) rotate(0deg) scale(1.08);}
  80%{opacity:1; transform:translateX(0) rotate(0deg) scale(1);}
  100%{opacity:0; transform:translateX(100px) rotate(6deg) scale(.85);}
}

.splash-flash{
  position:absolute; z-index:4; width:340px; height:340px; border-radius:50%; left:50%; top:50%; margin:-170px 0 0 -170px;
  background:radial-gradient(circle, #fff 0%, rgba(255,255,255,0) 70%);
  opacity:0; animation:splashFlash .4s ease .93s forwards;
}
@keyframes splashFlash{ 0%{opacity:0; transform:scale(.3);} 30%{opacity:1; transform:scale(1);} 100%{opacity:0; transform:scale(1.6);} }

.splash-ring{
  position:absolute; z-index:3; width:60px; height:60px; left:50%; top:50%; margin:-30px 0 0 -30px;
  border-radius:50%; border:3px solid var(--red-bright); opacity:0;
  animation:splashRing .6s cubic-bezier(.2,.7,.3,1) .92s forwards;
}
@keyframes splashRing{ 0%{opacity:.9; transform:scale(.3);} 100%{opacity:0; transform:scale(7);} }

.splash-particle{
  position:absolute; z-index:3; width:6px; height:6px; left:50%; top:50%; border-radius:1px; background:var(--white); opacity:0;
  animation:splashParticle .6s cubic-bezier(.2,.7,.3,1) .92s forwards;
}
@keyframes splashParticle{
  0%{opacity:1; transform:translate(0,0) rotate(0deg) scale(1);}
  100%{opacity:0; transform:translate(var(--px),var(--py)) rotate(180deg) scale(.4);}
}

/* Prominent logo reveal — now the centerpiece of the animation */
.splash-content{position:relative; z-index:5; display:flex; flex-direction:column; align-items:center;}
.splash-logo-wrap{
  position:relative; width:150px; height:150px; margin-bottom:6px;
  opacity:0; transform:scale(.25) rotate(-35deg);
  animation:splashLogoPunch .65s cubic-bezier(.17,.89,.32,1.28) 1.05s forwards;
}
@keyframes splashLogoPunch{
  0%{opacity:0; transform:scale(.25) rotate(-35deg);}
  70%{opacity:1; transform:scale(1.08) rotate(4deg);}
  100%{opacity:1; transform:scale(1) rotate(0deg);}
}
.splash-logo-glow{
  position:absolute; inset:-30px; border-radius:50%;
  background:radial-gradient(circle, rgba(228,20,28,.55) 0%, rgba(228,20,28,0) 70%);
  opacity:0; animation:splashLogoGlow 1.2s ease 1.15s forwards;
}
@keyframes splashLogoGlow{ 0%{opacity:0; transform:scale(.6);} 40%{opacity:1;} 100%{opacity:.7; transform:scale(1);} }
.splash-logo-img{position:relative; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 10px 30px rgba(0,0,0,.6));}
.splash-shine{position:absolute; inset:0; overflow:hidden; border-radius:8px; pointer-events:none;}
.splash-shine::after{
  content:""; position:absolute; top:-50%; left:-60%; width:40%; height:200%;
  background:linear-gradient(75deg, transparent 0%, rgba(255,255,255,.75) 50%, transparent 100%);
  transform:translateX(-100%) rotate(8deg); opacity:0;
  animation:splashShine .9s ease 1.55s 1;
}
@keyframes splashShine{
  0%{transform:translateX(-100%) rotate(8deg); opacity:0;}
  15%{opacity:.9;} 60%{opacity:.5;}
  100%{transform:translateX(280%) rotate(8deg); opacity:0;}
}

.splash-word{
  font-family:var(--display); color:var(--white); text-align:center;
  font-size:clamp(28px,6.5vw,54px); letter-spacing:.04em; opacity:0;
  animation:splashWordPunch .5s cubic-bezier(.2,.7,.3,1.3) 1.62s forwards;
}
.splash-word span{display:block; color:var(--red-bright); font-size:.5em; letter-spacing:.12em; margin-top:2px;}
@keyframes splashWordPunch{ 0%{opacity:0; transform:scale(1.3) translateY(10px);} 60%{opacity:1;} 100%{opacity:1; transform:scale(1) translateY(0);} }

.splash-tag{
  text-align:center; font-family:var(--label); font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; font-size:13.5px; color:rgba(255,255,255,.55); opacity:0; margin-top:10px;
  animation:splashTagIn .6s ease 1.95s forwards;
}
@keyframes splashTagIn{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }

.splash-skip{
  position:absolute; bottom:34px; right:34px; z-index:9; background:none; border:1px solid rgba(255,255,255,.35);
  color:var(--white); font-family:var(--label); font-size:13.5px; letter-spacing:.1em; text-transform:uppercase;
  padding:9px 16px; cursor:pointer; opacity:0; animation:splashTagIn .4s ease .5s forwards; border-radius:2px;
}
.splash-skip:hover{background:rgba(255,255,255,.1);}
.splash-skip:focus-visible{outline:2px solid var(--red-bright); outline-offset:3px;}
@media (max-width:600px){
  .splash-logo-wrap{width:110px; height:110px;}
}
@media (prefers-reduced-motion: reduce){
  #splash{display:none !important;}
  body.splash-active{overflow:visible; height:auto;}
}

/* ===== FORM STATUS (envoi Formspree) ===== */
.form-status{
  margin-top:14px; padding:12px 16px; font-family:var(--body); font-size:15.5px; border-radius:2px; display:none;
}
.form-status.show{display:block;}
.form-status.is-sending{background:rgba(255,255,255,.08); color:rgba(255,255,255,.75);}
.form-status.is-success{background:rgba(60,180,100,.15); color:#8FE3AE; border:1px solid rgba(60,180,100,.35);}
.form-status.is-error{background:rgba(228,20,28,.15); color:var(--red-bright); border:1px solid rgba(228,20,28,.4);}

/* Honeypot anti-spam field (Formspree) — hidden from everyone, bots often fill it anyway */
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; display:none;}

/* ===== LIEUX (contact.html) ===== */
.lieux-grid{
  display:grid; grid-template-columns:1.4fr 1fr; grid-template-rows:1fr 1fr; gap:18px; height:560px;
}
.lieux-item{
  position:relative; border:none; padding:0; cursor:pointer; overflow:hidden; border-radius:4px;
  display:block; width:100%; height:100%; background:#000;
}
.lieux-main{grid-column:1; grid-row:1 / 3;}
.lieux-item img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease, filter .4s ease; filter:grayscale(.1) contrast(1.05);}
.lieux-item:hover img{transform:scale(1.06); filter:grayscale(0) contrast(1.1);}
.lieux-item::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.78) 0%, transparent 45%);}
.lieux-caption{
  position:absolute; left:18px; bottom:16px; right:18px; color:var(--white); font-family:var(--label); font-weight:700;
  font-size:16.5px; letter-spacing:.04em; text-transform:uppercase; display:flex; align-items:center; justify-content:space-between; z-index:1;
}
.lieux-zoom{
  width:32px; height:32px; border-radius:50%; background:var(--red); display:flex; align-items:center; justify-content:center;
  font-size:15.5px; opacity:0; transform:scale(.7); transition:opacity .25s ease, transform .25s ease; flex-shrink:0;
}
.lieux-item:hover .lieux-zoom{opacity:1; transform:scale(1);}
@media (max-width:980px){
  .lieux-grid{grid-template-columns:1fr; grid-template-rows:none; height:auto;}
  .lieux-main{grid-column:1; grid-row:auto; aspect-ratio:4/3;}
  .lieux-item:not(.lieux-main){aspect-ratio:4/3;}
}

.splash-particle--1{--px:70px; --py:-60px;}
.splash-particle--2{--px:-70px; --py:-60px;}
.splash-particle--3{--px:90px; --py:20px;}
.splash-particle--4{--px:-90px; --py:20px;}
.splash-particle--5{--px:40px; --py:80px;}
.splash-particle--6{--px:-40px; --py:80px;}
.splash-particle--7{--px:0px; --py:-95px;}
.splash-particle--8{--px:0px; --py:95px;}

/* ===== EXPLORE / QUICK LINKS (index.html) ===== */
.explore-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.explore-card{
  position:relative; display:flex; flex-direction:column; background:var(--charcoal-2); border:1px solid var(--line);
  padding:26px 22px 24px; text-decoration:none; color:var(--white); transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.explore-card:hover{transform:translateY(-6px); border-color:var(--red); box-shadow:0 16px 32px rgba(0,0,0,.4);}
.explore-icon{font-size:30px; margin-bottom:14px;}
.explore-card h3{font-size:19.5px; font-family:var(--body); font-weight:700; text-transform:none; letter-spacing:0; margin-bottom:6px;}
.explore-card p{font-size:16.5px; color:rgba(255,255,255,.68); line-height:1.5; margin-bottom:18px; flex:1;}
.explore-arrow{
  font-family:var(--label); font-weight:700; color:var(--red-bright); font-size:19.5px; transition:transform .25s ease;
}
.explore-card:hover .explore-arrow{transform:translateX(6px);}
@media (max-width:980px){
  .explore-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
  .explore-grid{grid-template-columns:1fr;}
}

/* ===== CTA BAND (closing call-to-action, secondary pages) ===== */
.cta-band{
  position:relative; background:var(--black); color:var(--white); overflow:hidden; padding:80px 0;
}
.cta-band::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 0%, transparent 55%, var(--red) 55.3%, var(--red-dark) 100%);
  opacity:.92;
}
.cta-band .wrap{position:relative; z-index:1; text-align:center; display:flex; flex-direction:column; align-items:center;}
.cta-band h2{font-size:clamp(28px,4.5vw,44px); margin-bottom:14px;}
.cta-band p{font-family:var(--body); font-size:18.5px; color:rgba(255,255,255,.85); max-width:600px; margin-bottom:32px;}
.cta-band-buttons{display:flex; gap:16px; flex-wrap:wrap; justify-content:center;}

/* ===== FAMILY / VALUES SECTION (index.html) ===== */
.family-section{padding:90px 0; text-align:center;}
.family-section .wrap{max-width:820px;}
.family-section .eyebrow{justify-content:center; display:flex; font-size:15px;}
.family-section h2{margin:10px 0 22px; font-size:clamp(34px,5.5vw,54px);}
.family-section p.family-text{font-family:var(--body); font-size:22.5px; line-height:1.75; color:#333; margin-bottom:34px;}
.family-section .cta-band-buttons{display:flex; gap:16px; flex-wrap:wrap; justify-content:center;}

/* ===== CALENDRIER DES COMPÉTITIONS (reglements.html) ===== */
.calendar-photo{display:block; width:100%; max-width:480px; margin:0 auto; padding:0; border:none; background:none; cursor:pointer; text-align:center; font:inherit; color:inherit;}
.calendar-photo img{display:block; width:100%; height:auto; border-radius:6px; box-shadow:0 18px 44px rgba(0,0,0,.45); transition:transform .4s ease, box-shadow .4s ease;}
.calendar-photo:hover img{transform:translateY(-4px); box-shadow:0 24px 54px rgba(0,0,0,.55);}
.calendar-photo-cta{
  display:inline-block; margin-top:22px; background:var(--red); color:var(--white); font-family:var(--label); font-weight:700; font-size:14px;
  letter-spacing:.05em; text-transform:uppercase; padding:10px 20px; border-radius:30px;
  box-shadow:0 4px 14px rgba(0,0,0,.35); transition:transform .25s ease, background .25s ease;
}
.calendar-photo:hover .calendar-photo-cta{transform:scale(1.06); background:var(--red-bright);}
.calendar-photo-credit{display:block; margin-top:10px; font-size:14px; color:rgba(255,255,255,.55);}
.calendar-legend{font-size:15.5px; color:rgba(255,255,255,.62); line-height:1.6; margin-top:18px;}
.calendar-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:26px;}

/* ===== SAC DE SPORT (creneaux.html) ===== */
.sac-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:start;}
.sac-list h3{font-family:var(--display); text-transform:uppercase; font-size:21.5px; margin:24px 0 14px; color:var(--red-bright);}
.sac-list h3:first-child{margin-top:0;}
.sac-list ul{list-style:none; padding:0; margin:0 0 8px;}
.sac-list li{
  position:relative; padding-left:22px; margin-bottom:10px; font-size:17.5px; color:rgba(255,255,255,.82); line-height:1.5;
}
.sac-list li::before{content:"—"; position:absolute; left:0; color:var(--red-bright);}
.sac-photo{
  aspect-ratio:2/3; background:linear-gradient(155deg,#2a2a2e,#151517); border-radius:4px; overflow:hidden;
  position:relative; display:block; width:100%; border:none; padding:0; cursor:pointer;
}
.sac-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.sac-photo:hover img{transform:scale(1.04);}
.sac-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 35%); pointer-events:none;}
.sac-photo-cta{
  position:absolute; left:50%; bottom:16px; transform:translateX(-50%); z-index:1;
  background:var(--red); color:var(--white); font-family:var(--label); font-weight:700; font-size:14px;
  letter-spacing:.05em; text-transform:uppercase; padding:9px 18px; border-radius:30px; white-space:nowrap;
  box-shadow:0 4px 14px rgba(0,0,0,.35); transition:transform .25s ease, background .25s ease;
}
.sac-photo:hover .sac-photo-cta{transform:translateX(-50%) scale(1.06); background:var(--red-bright);}
@media (max-width:860px){
  .sac-grid{grid-template-columns:1fr;}
  .sac-photo{aspect-ratio:2/3; max-width:420px; margin:0 auto;}
}

/* ===== VIDEO CARD (galerie.html) ===== */
.video-card{background:#000; overflow:hidden;}
.video-embed{position:relative; aspect-ratio:16/9; background:#000;}
.video-embed iframe, .video-embed video{position:absolute; inset:0; width:100%; height:100%; border:0; object-fit:cover; background:#000;}
#cat-videos.gallery-grid{grid-template-columns:repeat(2,1fr);}
@media (max-width:760px){ #cat-videos.gallery-grid{grid-template-columns:1fr;} }
.video-caption{
  padding:14px 16px; font-family:var(--label); font-size:14.5px; letter-spacing:.04em; color:rgba(255,255,255,.8);
  background:#111;
}
