:root{
      --ink:#050605;
      --ink-2:#121712;
      --ice:#f2f5f0;
      --ice-2:#dcebd9;
      --blue:#20d832;
      --blue-2:#0dad22;
      --lime:#79ff35;
      --white:#ffffff;
      --muted:#aeb9ae;
      --text:#162016;
      --line:rgba(5,6,5,.12);
      --success:#20c95a;
      --warning:#ffb84d;
      --radius:24px;
      --shadow:0 24px 70px rgba(4,18,30,.18);
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      color:var(--text);
      background:var(--ice);
      font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height:1.45;
    }
    button,a,input,select{font:inherit}
    a{text-decoration:none;color:inherit}
    button{cursor:pointer}
    .prototype-bar{
      background:var(--lime);
      color:var(--ink);
      text-align:center;
      padding:8px 16px;
      font-size:12px;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
    }
    .nlh2-header{
      position:sticky;
      top:0;
      z-index:80;
      background:rgba(5,6,5,.94);
      backdrop-filter:blur(16px);
      color:white;
      border-bottom:1px solid rgba(255,255,255,.08);
    }
    .nav{
      max-width:1240px;
      margin:auto;
      min-height:76px;
      padding:0 22px;
      display:flex;
      align-items:center;
      gap:28px;
    }
    .brand{
      display:flex;
      align-items:center;
      gap:12px;
      margin-right:auto;
      font-weight:1000;
      letter-spacing:.04em;
    }
    .brand-mark{
      width:44px;
      height:44px;
      border:2px solid var(--lime);
      border-radius:50%;
      display:grid;
      place-items:center;
      color:var(--lime);
      position:relative;
      font-size:13px;
    }
    .brand-mark:after{
      content:"";
      position:absolute;
      width:54px;
      height:8px;
      border-top:2px solid var(--blue);
      transform:rotate(-18deg);
    }
    .brand small{
      display:block;
      color:var(--muted);
      font-size:10px;
      letter-spacing:.16em;
      font-weight:800;
    }
    .nav-links{
      display:flex;
      gap:24px;
      align-items:center;
      font-size:14px;
      font-weight:800;
    }
    .nav-links a{color:#dce8ee;transition:color .15s ease}
    .nav-links a:hover{color:var(--lime)}

    /* ---- Menu déroulant « Programmes » -------------------------------
       Regroupe l'horaire, la Perfection Zone et les gardiens, qui sont
       des sections de programmes plutôt que des rubriques distinctes.
       Ça garde la barre courte et laisse la place au Pro-Shop. */
    .nav-groupe{position:relative}
    .nav-groupe-tete{display:inline-flex;align-items:center;gap:5px}
    .nav-fleche{font-style:normal;font-size:10px;opacity:.7;transition:transform .15s ease}
    .nav-groupe:hover .nav-fleche,
    .nav-groupe:focus-within .nav-fleche{transform:translateY(1px);opacity:1}

    .nav-sous{
      position:absolute;
      top:100%;
      left:-14px;
      min-width:230px;
      display:flex;
      flex-direction:column;
      gap:2px;
      padding:10px;
      margin-top:10px;
      background:#0b0f0d;
      border:1px solid #1f2b23;
      border-radius:14px;
      box-shadow:0 24px 60px rgba(0,0,0,.5);
      opacity:0;
      visibility:hidden;
      transform:translateY(-6px);
      transition:opacity .15s ease, transform .15s ease, visibility .15s;
      z-index:60;
    }
    /* Une zone tampon invisible évite que le menu se ferme quand la
       souris traverse l'espace entre le lien et le panneau. */
    .nav-sous::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}

    .nav-groupe:hover .nav-sous,
    .nav-groupe:focus-within .nav-sous{opacity:1;visibility:visible;transform:translateY(0)}

    .nav-sous a{
      display:block;
      padding:9px 12px;
      border-radius:9px;
      font-size:13.5px;
      font-weight:700;
      white-space:nowrap;
    }
    .nav-sous a:hover,
    .nav-sous a:focus-visible{background:#152018;color:var(--lime)}
    .lang-toggle{
      display:flex;
      border:1px solid rgba(255,255,255,.16);
      border-radius:999px;
      padding:3px;
    }
    .lang-toggle button{
      border:0;
      color:#cddae1;
      background:transparent;
      border-radius:999px;
      padding:7px 10px;
      font-size:12px;
      font-weight:900;
    }
    .lang-toggle button.active{
      color:var(--ink);
      background:var(--lime);
    }
    .header-cta{
      background:var(--lime);
      color:var(--ink);
      border-radius:999px;
      padding:11px 16px;
      font-size:13px;
      font-weight:950;
    }
    .menu-btn{
      display:none;
      border:0;
      background:transparent;
      color:white;
      font-size:26px;
    }
    .hero{
      background:
        radial-gradient(circle at 50% 25%, rgba(121,255,53,.07), transparent 45%),
        linear-gradient(135deg,#020302,#0b100b 60%,#0a120a);
      color:white;
      position:relative;
      overflow:hidden;
    }
    .rink-lines{
      position:absolute;
      inset:0;
      opacity:.12;
      background:
        linear-gradient(90deg,transparent 49.8%,#fff 50%,transparent 50.2%),
        radial-gradient(circle at 50% 50%,transparent 0 90px,#fff 91px 93px,transparent 94px),
        linear-gradient(180deg,transparent 70%,rgba(255,255,255,.28) 70.2%,transparent 70.4%);
      pointer-events:none;
    }
    .hero-inner{
      max-width:1240px;
      margin:auto;
      padding:86px 22px 80px;
      display:grid;
      grid-template-columns:1.12fr .88fr;
      gap:60px;
      align-items:center;
      position:relative;
      z-index:2;
    }
    .eyebrow{
      display:inline-flex;
      gap:8px;
      align-items:center;
      color:var(--lime);
      text-transform:uppercase;
      letter-spacing:.16em;
      font-size:12px;
      font-weight:950;
    }
    .eyebrow:before{
      content:"";
      width:32px;
      height:2px;
      background:var(--lime);
    }
    h1{
      font-size:clamp(45px,7vw,92px);
      line-height:.92;
      margin:24px 0 26px;
      letter-spacing:-.055em;
      max-width:820px;
    }
    .outline{
      color:transparent;
      -webkit-text-stroke:1.5px rgba(255,255,255,.65);
    }
    .hero-copy{
      max-width:650px;
      color:#cbdbe4;
      font-size:18px;
    }
    .hero-actions{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      margin-top:34px;
    }
    .btn{
      border:0;
      border-radius:999px;
      padding:14px 20px;
      font-weight:950;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      text-align:center;
      gap:8px;
    }
    .btn-primary{background:var(--lime);color:var(--ink)}
    .btn-secondary{background:transparent;color:white;border:1px solid rgba(255,255,255,.28)}
    .btn-dark{background:var(--ink);color:white}
    .btn-blue{background:var(--blue);color:white}
    .trust-line{
      display:flex;
      gap:22px;
      flex-wrap:wrap;
      margin-top:36px;
      color:#9fb2c0;
      font-size:13px;
      font-weight:700;
    }
    .trust-line span:before{
      content:"✓";
      color:var(--lime);
      margin-right:7px;
      font-weight:1000;
    }
    .hero-visual{
      position:relative;
      min-height:540px;
    }
    .player-card{
      position:absolute;
      inset:15px 10px 70px 40px;
      border-radius:38px;
      background:
        linear-gradient(160deg,rgba(25,167,206,.2),rgba(255,255,255,.03)),
        repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 2px,transparent 2px 12px);
      border:1px solid rgba(255,255,255,.16);
      overflow:hidden;
      box-shadow:0 40px 100px rgba(0,0,0,.4);
    }
    .player-silhouette{
      position:absolute;
      inset:50px 70px 0;
      border-radius:46% 46% 18% 18%;
      background:linear-gradient(180deg,#31ef43,#0a7b19);
      transform:skew(-5deg);
      filter:drop-shadow(0 30px 20px rgba(0,0,0,.35));
    }
    .player-silhouette:before{
      content:"";
      position:absolute;
      width:120px;
      height:120px;
      border-radius:50%;
      background:#0a7b19;
      left:50%;
      top:-70px;
      transform:translateX(-50%);
      box-shadow:0 0 0 14px rgba(213,255,50,.18);
    }
    .player-silhouette:after{
      /* Écusson NLH sur le maillot (remplace l'ancien numéro « 91 »). */
      content:"";
      position:absolute;
      width:150px;
      height:150px;
      left:50%;
      top:96px;
      transform:translateX(-50%) skew(5deg);
      border-radius:50%;
      background:#050605 url("nlh-logo.webp") center/74% no-repeat;
      box-shadow:0 0 0 5px rgba(255,255,255,.92),
                 0 14px 28px rgba(0,0,0,.35);
    }
    .speed-line{
      position:absolute;
      height:7px;
      background:var(--lime);
      border-radius:99px;
      transform:rotate(-16deg);
      right:-22px;
    }
    .speed-line.one{width:260px;top:160px}
    .speed-line.two{width:190px;top:205px;right:20px;opacity:.65}
    .stat-float{
      position:absolute;
      background:white;
      color:var(--ink);
      padding:16px 18px;
      border-radius:18px;
      box-shadow:var(--shadow);
      min-width:170px;
    }
    .stat-float strong{display:block;font-size:25px}
    .stat-float small{color:#607484;font-weight:800}
    .stat-a{left:0;bottom:32px}
    .stat-b{right:0;top:45px;background:var(--lime)}
    .section{
      max-width:1240px;
      margin:auto;
      padding:90px 22px;
    }
    .section-header{
      display:flex;
      align-items:end;
      justify-content:space-between;
      gap:30px;
      margin-bottom:34px;
    }
    .section-header h2{
      color:var(--ink);
      font-size:clamp(34px,5vw,58px);
      line-height:1;
      margin:10px 0 0;
      letter-spacing:-.04em;
    }
    .section-header p{max-width:520px;color:#5e7281;margin:0}
    .path-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:18px;
    }
    .path-card{
      min-height:390px;
      background:white;
      border-radius:var(--radius);
      padding:28px;
      border:1px solid var(--line);
      box-shadow:0 14px 45px rgba(7,19,31,.07);
      position:relative;
      overflow:hidden;
      transition:.25s ease;
    }
    .path-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
    .path-card:after{
      content:"";
      position:absolute;
      width:210px;
      height:210px;
      right:-70px;
      bottom:-80px;
      border-radius:50%;
      background:var(--ice-2);
    }
    .path-card.featured{background:var(--ink);color:white}
    .path-card.featured:after{background:rgba(25,167,206,.24)}
    .path-number{
      color:var(--blue);
      font-weight:1000;
      font-size:13px;
      letter-spacing:.12em;
    }
    .path-card.featured .path-number{color:var(--lime)}
    .path-card h3{
      font-size:30px;
      margin:24px 0 12px;
      letter-spacing:-.03em;
    }
    .path-card p{color:#607484;max-width:280px}
    .path-card.featured p{color:#adc0cc}
    .program-tags{
      display:flex;
      flex-wrap:wrap;
      gap:7px;
      margin-top:24px;
      position:relative;
      z-index:2;
    }
    .program-tags span{
      padding:7px 10px;
      border-radius:999px;
      background:var(--ice);
      font-size:12px;
      font-weight:850;
      color:var(--ink);
    }
    .path-card.featured .program-tags span{background:rgba(255,255,255,.11);color:white}
    .card-link{
      display:inline-flex;
      gap:8px;
      align-items:center;
      margin-top:28px;
      color:var(--blue-2);
      font-weight:950;
      position:relative;
      z-index:2;
    }
    .path-card.featured .card-link{color:var(--lime)}
    .finder{
      max-width:1240px;
      margin:0 auto;
      padding:0 22px 90px;
    }
    .finder-shell{
      background:linear-gradient(120deg,#071007,#16b92a 58%,#36e34a);
      color:white;
      border-radius:32px;
      padding:40px;
      display:grid;
      grid-template-columns:.85fr 1.15fr;
      gap:45px;
      box-shadow:var(--shadow);
    }
    .finder h2{font-size:42px;line-height:1;margin:14px 0}
    .finder p{color:#d7f3fb}
    .finder-form{
      background:white;
      color:var(--text);
      border-radius:24px;
      padding:24px;
    }
    .question-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
    .field label{display:block;font-size:12px;font-weight:900;color:#607484;margin-bottom:6px}
    select{
      width:100%;
      padding:12px 11px;
      border-radius:12px;
      border:1px solid #d3e0e7;
      background:white;
      color:var(--text);
    }
    .finder-result{
      display:none;
      margin-top:15px;
      border-radius:15px;
      background:var(--ice);
      border:1px solid var(--ice-2);
      padding:15px;
    }
    .finder-result strong{color:var(--blue-2);font-size:19px}
    .events{
      background:white;
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
    }
    .event-list{display:grid;gap:12px}
    .event-card{
      display:grid;
      grid-template-columns:110px 1.3fr 1.4fr 150px;
      align-items:center;
      gap:18px;
      padding:20px;
      border:1px solid var(--line);
      border-radius:18px;
      background:#fbfdfe;
    }
    .event-date{
      text-align:center;
      background:var(--ink);
      color:white;
      border-radius:14px;
      padding:11px;
    }
    .event-date b{display:block;font-size:26px;color:var(--lime)}
    /* Le bouton d'ajout est enveloppé dans un <form> : sans style, celui-ci
       s'insère dans la grille comme une colonne de plus et pousse le bouton
       hors de la carte. On le fait donc se comporter comme le bouton qu'il
       remplace, et le bouton occupe toute sa largeur. */
    .nlh-ajout-direct{ margin:0;display:contents }
    /* display:contents fait du bouton le 4e enfant de la grille ; sans
       colonne assignée il retombait sous la vignette de date. On lui donne
       la même colonne que le bouton simple qu'il remplace. */
    .nlh-ajout-direct .btn{ width:100%;cursor:pointer;grid-column:4 }
    .event-title h3{margin:0 0 5px;font-size:20px}
    .event-title span,.event-meta{color:#667b89;font-size:13px}
    .spots{
      font-weight:900;
      color:var(--success);
    }
    .spots.low{color:#e98524}
    .nlh-toutes-seances{
      grid-column:1/-1;
      text-align:right;
      font-size:12.5px;
      color:#667b89;
      text-decoration:underline;
      margin-top:-6px;
    }
    .nlh-toutes-seances:hover{color:var(--lime,#0fdb6c)}
    .proof{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:50px;
      align-items:center;
    }
    .proof-visual{
      min-height:440px;
      background:
        linear-gradient(135deg,rgba(5,6,5,.94),rgba(15,28,15,.90)),
        repeating-linear-gradient(45deg,#0a100a 0 12px,#111a11 12px 24px);
      border-radius:32px;
      color:white;
      padding:34px;
      position:relative;
      overflow:hidden;
    }
    .proof-visual:before{
      content:"";
      position:absolute;
      width:330px;
      height:330px;
      border-radius:50%;
      border:70px solid rgba(32,216,50,.17);
      right:-120px;
      top:-80px;
    }
    .quote{
      max-width:440px;
      font-size:30px;
      line-height:1.13;
      letter-spacing:-.025em;
      position:relative;
      z-index:2;
    }
    .quote-mark{color:var(--lime);font-size:80px;height:58px}
    .coach-strip{
      display:flex;
      gap:12px;
      align-items:center;
      position:absolute;
      left:34px;
      bottom:30px;
    }
    .avatar{
      width:54px;height:54px;border-radius:50%;
      background:linear-gradient(135deg,#0ba31c,var(--lime));
      border:3px solid white;
    }
    .coach-strip b{display:block}
    .coach-strip small{color:#aac0cd}
    .proof-copy h2{
      color:var(--ink);
      font-size:52px;
      line-height:1;
      letter-spacing:-.04em;
      margin:14px 0 20px;
    }
    .proof-copy p{color:#607484;font-size:17px}
    .proof-list{display:grid;gap:12px;margin:26px 0}
    .proof-list div{
      background:white;
      border:1px solid var(--line);
      border-radius:14px;
      padding:14px 16px;
      font-weight:850;
    }
    .proof-list div:before{content:"✓";color:var(--blue);margin-right:9px}
    .app-preview{
      background:var(--ink);
      color:white;
      overflow:hidden;
    }
    .app-grid{
      display:grid;
      grid-template-columns:.9fr 1.1fr;
      gap:70px;
      align-items:center;
    }
    .app-copy h2{
      font-size:clamp(40px,6vw,70px);
      line-height:.95;
      letter-spacing:-.05em;
      margin:18px 0;
    }
    .app-copy p{color:#b3c5cf;font-size:17px}
    .app-list{display:grid;gap:11px;margin:26px 0}
    .app-list div{display:flex;gap:10px;align-items:center;font-weight:800}
    .app-list span{
      width:26px;height:26px;border-radius:50%;background:var(--lime);color:var(--ink);
      display:grid;place-items:center;font-size:12px;
    }
    .phones{
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:620px;
      position:relative;
    }
    .phone{
      width:290px;
      min-height:560px;
      background:#f4f8fa;
      border:10px solid #02090f;
      border-radius:42px;
      box-shadow:0 30px 90px rgba(0,0,0,.42);
      color:var(--text);
      overflow:hidden;
      position:relative;
    }
    .phone.second{
      position:absolute;
      right:0;
      transform:scale(.86) rotate(6deg);
      opacity:.85;
    }
    .notch{
      width:100px;height:24px;background:#02090f;border-radius:0 0 15px 15px;margin:auto;
    }
    .phone-head{background:var(--ink);color:white;padding:20px}
    .phone-head small{color:#a9bbc7}
    .phone-head h3{margin:6px 0 0;font-size:22px}
    .phone-body{padding:15px}
    .mobile-card{
      background:white;border:1px solid #dce7ec;border-radius:17px;padding:14px;margin-bottom:11px;
      box-shadow:0 8px 20px rgba(7,19,31,.06);
    }
    .mobile-card.highlight{background:var(--lime);border-color:var(--lime)}
    .mobile-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:1000;color:#667b89}
    .mobile-card h4{margin:7px 0 3px;font-size:16px}
    .mobile-card p{margin:0;color:#667b89;font-size:12px}
    .balance{font-size:34px;font-weight:1000;color:var(--ink);margin-top:4px}
    .mobile-nav{
      position:absolute;
      left:0;right:0;bottom:0;
      display:flex;justify-content:space-around;
      background:white;border-top:1px solid #dae6eb;padding:12px 6px;
      color:#718490;font-size:10px;font-weight:800;
    }
    .mobile-nav b{color:var(--blue-2)}
    .faq-grid{
      display:grid;
      grid-template-columns:.7fr 1.3fr;
      gap:50px;
    }
    .faq-grid h2{font-size:50px;line-height:1;margin:12px 0}
    details{
      border-bottom:1px solid #cbd9e0;
      padding:17px 0;
    }
    summary{font-weight:900;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
    summary:after{content:"+";color:var(--blue);font-size:22px}
    details[open] summary:after{content:"−"}
    details p{color:#607484}
    .final-cta{
      background:var(--lime);
      color:var(--ink);
      border-radius:34px;
      padding:48px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:30px;
    }
    .final-cta h2{margin:0;font-size:clamp(34px,5vw,56px);line-height:1;letter-spacing:-.04em}
    footer{
      background:#050d14;
      color:#a9bbc7;
      padding:50px 22px 28px;
    }
    .footer-grid{
      max-width:1240px;margin:auto;
      display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:30px;
    }
    footer h4{color:white;margin:0 0 14px}
    footer a{display:block;margin:7px 0;font-size:13px}
    .footer-bottom{
      max-width:1240px;margin:35px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);
      display:flex;justify-content:space-between;gap:20px;font-size:12px;
    }
    .mock-note{
      position:fixed;
      right:16px;
      bottom:16px;
      z-index:90;
      background:white;
      color:var(--ink);
      border:1px solid var(--line);
      box-shadow:var(--shadow);
      border-radius:16px;
      padding:12px 14px;
      font-size:12px;
      max-width:230px;
    }
    .mock-note b{color:var(--blue-2)}
    [data-lang="en"]{display:none}
    body.en [data-lang="fr"]{display:none}
    body.en [data-lang="en"]{display:initial}
    body.en div[data-lang="en"],body.en p[data-lang="en"],body.en section[data-lang="en"],body.en strong[data-lang="en"],body.en h1[data-lang="en"],body.en h3[data-lang="en"],body.en h4[data-lang="en"],body.en li[data-lang="en"]{display:block}

    /* Même bascule, mais par classes : les libellés du panier traversent
       wp_kses_post(), qui ne garantit pas de conserver un attribut
       data-lang. Une classe, elle, survit toujours. */
    .nlh-t-en{display:none}
    body.en .nlh-t-fr{display:none}
    body.en .nlh-t-en{display:inline}
    @media(max-width:1000px){
      .nav-links{display:none}
      .menu-btn{display:block}

      /* Menu mobile : le déroulant devient une simple liste, avec les
         sous-liens légèrement décalés. Le survol n'existe pas au doigt. */
      .nav.nlh-menu-ouvert .nav-groupe{width:100%}
      .nav.nlh-menu-ouvert .nav-fleche{display:none}
      .nav.nlh-menu-ouvert .nav-sous{
        position:static;opacity:1;visibility:visible;transform:none;
        background:none;border:none;box-shadow:none;
        min-width:0;margin:8px 0 0;padding:0 0 0 14px;
        border-left:1px solid #1f2b23;border-radius:0;
      }
      .nav.nlh-menu-ouvert .nav-sous a{padding:7px 0;font-size:14px}

      /* Les couleurs du menu mobile sont posées dans functions.php, où les
         règles portent !important — les mettre ici n'aurait aucun effet. */
      .hero-inner,.finder-shell,.proof,.app-grid,.faq-grid{grid-template-columns:1fr}
      .hero-visual{min-height:470px}
      .path-grid{grid-template-columns:1fr}
      /* Le lieu et l'heure étaient simplement masqués sous 1000 px —
         or c'est l'information dont un parent a le plus besoin pour
         décider. On les replace sous le titre plutôt que de les retirer. */
      .event-card{
        grid-template-columns:90px 1fr;
        grid-template-areas:
          "date titre"
          "meta meta"
          "action action"
          "toutes toutes";
        row-gap:12px;
      }
      .event-date{grid-area:date}
      .event-title{grid-area:titre}

      /* Titre des séances sur téléphone.
         « Masterclass | Perfection Zone » passait sur deux lignes. Trois
         réglages ensemble le ramènent sur une seule : la vignette de date
         perd 18 px, le titre suit la largeur de l'écran, et le nom de la
         marque est un peu plus petit que le nom du programme.
         Réduire la seule marque n'aurait pas suffi — c'est la vignette qui
         mangeait la place. */
      .event-card{ grid-template-columns:72px 1fr;column-gap:12px }
      .event-title h3{ font-size:clamp(15px,4.3vw,18px) }
      .nlh-pz{ font-size:.8em }
      .event-meta{grid-area:meta;display:block;line-height:1.5}
      .event-card > .btn,
      .event-card > .nlh-ajout-direct .btn{grid-area:action}
      .nlh-toutes-seances{grid-area:toutes;text-align:left;margin-top:0}
      .spots{display:none}
      .phones{min-height:590px}
      .phone.second{display:none}
      .footer-grid{grid-template-columns:1fr 1fr}
    }
    @media(max-width:680px){
      .prototype-bar{font-size:10px}
      .nav{padding:0 14px;min-height:66px}
      .brand .brand-text{display:none}
      .header-cta{display:none}
      .hero-inner{padding:58px 16px}
      h1{font-size:52px}
      .hero-copy{font-size:16px}
      .hero-visual{min-height:380px}
      .player-card{inset:20px 10px 60px}
      .player-silhouette{inset:60px 55px 0}
      .player-silhouette:after{width:104px;height:104px;top:74px;box-shadow:0 0 0 4px rgba(255,255,255,.92),0 10px 20px rgba(0,0,0,.35)}
      .stat-float{padding:12px;min-width:130px}
      .stat-float strong{font-size:20px}
      .section{padding:66px 16px}
      .section-header{display:block}
      .section-header p{margin-top:15px}
      .finder{padding:0 16px 66px}
      .finder-shell{padding:25px}
      .question-grid{grid-template-columns:1fr}
      .event-card{grid-template-columns:76px 1fr;padding:14px}
      .event-card .btn,
      .event-card .nlh-ajout-direct .btn{grid-column:1/-1}
      .proof-copy h2{font-size:42px}
      .proof-visual{min-height:390px;padding:24px}
      .quote{font-size:25px}
      .coach-strip{left:24px}
      .phones{min-height:580px}
      .phone{width:280px}
      .final-cta{padding:30px;display:block}
      .final-cta .btn{margin-top:22px}
      .footer-grid{grid-template-columns:1fr}
      .footer-bottom{display:block}
      .mock-note{display:none}
    }
  
    .brand-logo {
      width:58px;
      height:58px;
      object-fit:cover;
      border-radius:50%;
      flex:0 0 auto;
      filter:drop-shadow(0 0 11px rgba(121,255,53,.28));
    }
    .brand-logo.footer-logo {
      width:78px;
      height:78px;
    }
    .brand-text {
      display:flex;
      flex-direction:column;
      line-height:1.05;
    }
    .brand-text strong {
      color:white;
      font-size:15px;
      letter-spacing:.055em;
    }
    .player-card {
      box-shadow:0 40px 100px rgba(0,0,0,.55), inset 0 0 70px rgba(32,216,50,.05);
    }
    .path-card.featured {
      background:linear-gradient(155deg,#050605,#111a11);
      border-color:rgba(121,255,53,.28);
    }
    .path-card.featured:before {
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(120deg,transparent,rgba(121,255,53,.045),transparent);
      pointer-events:none;
    }
    .events {
      background:#ffffff;
    }
    .event-date {
      background:linear-gradient(160deg,#050605,#162316);
      border:1px solid rgba(121,255,53,.22);
    }
    .phone {
      border-color:#010201;
    }
    .phone-head {
      background:linear-gradient(145deg,#050605,#172417);
    }
    .app-preview {
      background:
        radial-gradient(circle at 85% 20%,rgba(32,216,50,.14),transparent 28%),
        linear-gradient(145deg,#020302,#0b110b);
    }
    .final-cta {
      background:linear-gradient(115deg,var(--lime),#3be84a);
    }
    footer {
      background:#020302;
    }

  
    /* ===== BLINDAGE V2 =====
       Le functions.php du thème injecte, sur toutes les pages :
         body, html { background:#020504 !important; color:#e0ede1 !important;
                      font-family:Barlow !important; }
         .site-header, .site-footer { display:none; }
       Ce bloc arrive APRÈS wp_head() dans le document, donc il l'emporte.
       (Le header a aussi été renommé .nlh2-header pour ne pas être masqué.) */
    html, body{
      background:var(--ice) !important;
      color:var(--text) !important;
      font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    }
    .nlh2-header{ display:block !important; }

/* ===== Page « Toutes les séances » ===== */
.nlh-filtres{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:22px;
}
/* Pastilles de filtre des séances.
   Fond foncé et nom du programme en couleur : le vert de Next Level, et le
   jaune de Perfection Zone pour ses trois programmes. Le jaune ne serait
   pas lisible sur un fond blanc — c'est le fond foncé qui rend ce
   codage possible. */
.nlh-puce{
  --puce:var(--accent, #00ff41);
  display:inline-block;
  padding:8px 16px;
  border:1.5px solid #2a3b30;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.01em;
  text-decoration:none;
  color:#0fdb6c;
  background:#152018;
  transition:border-color .15s, background .15s, color .15s;
}
.nlh-puce:hover{
  border-color:var(--puce);
  background:#1c2b21;
}
/* Perfection Zone : jaune, comme sa propre identité. */
.nlh-puce.zone-perfection{
  color:#f5c518;
}
.nlh-puce.zone-perfection:hover{
  border-color:#f5c518;
}
.nlh-puce.actif{
  background:#0fdb6c;
  border-color:#0fdb6c;
  color:#03150a;
}
.nlh-puce.zone-perfection.actif{
  background:#f5c518;
  border-color:#f5c518;
  color:#2b2205;
}
/* « Perfection Zone » à l'intérieur d'un nom de programme. Le vert est
   celui des liens sur fond clair — un vert plus vif serait illisible sur
   le blanc de la carte. */
/* Invitation vers la page À propos. Un bloc court et centré : il n'a rien
   à raconter, seulement à donner envie de cliquer. */
.nlh-invitation{ padding-top:10px;padding-bottom:10px }
.nlh-invitation-boite{
  max-width:680px;
  margin:0 auto;
  text-align:center;
  background:#fff;
  border:1px solid var(--line,rgba(5,6,5,.12));
  border-radius:24px;
  padding:44px 30px 40px;
  box-shadow:0 18px 50px rgba(4,18,30,.07);
}
.nlh-invitation-boite h2{ margin:10px 0 12px }
.nlh-invitation-boite p{ color:#607484;margin:0 0 24px }

@media (max-width:560px){
  .nlh-invitation-boite{ padding:32px 22px 30px;border-radius:20px }
}

/* Icône Instagram. Alignée sur la ligne de base du texte plutôt que centrée :
   une image en ligne se pose autrement qu'une lettre, et sans ça elle
   flotte un ou deux pixels trop bas. */
.nlh-ig{
  display:inline-block;
  vertical-align:-.18em;
  margin-right:.15em;
}
/* Le lien prend la couleur d'Instagram au survol, comme un rappel. */
a:hover > .nlh-ig{ color:#e1306c; transition:color .15s ease; }

.nlh-pz{
  font-style:italic;
  color:var(--blue-2, #0dad22);
  font-weight:inherit;
}

.nlh-mois{
  grid-column:1 / -1;
  margin:26px 0 2px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.5;
}
.nlh-mois:first-child{
  margin-top:0;
}
.spots.complet{
  color:#8a8f8a;
  opacity:.8;
}

@media (max-width:640px){
  /* Les filtres passent à la ligne au lieu de défiler.
     Le défilement latéral cachait la majorité des programmes : rien
     n'indiquait qu'il y avait une suite, et un rang tronqué se lit comme
     une liste complète. Tout afficher prend plus de hauteur, mais le
     parent voit enfin ce qui existe.
     Le suffixe « | Perfection Zone » est masqué ici : la pastille jaune
     dit déjà à quelle marque le programme appartient, et le nom complet
     reste dans le code pour les moteurs de recherche. */
  .nlh-filtres{
    flex-wrap:wrap;
    gap:8px;
  }
  .nlh-puce{
    flex:0 0 auto;
    font-size:12.5px;
    padding:7px 13px;
    max-width:100%;
  }
  .nlh-puce-suffixe{ display:none }
}

/* ==========================================================
   Pages programme
   ========================================================== */

.pgm-hero{
  background:var(--pgm-dark);
  color:var(--pgm-light);
  padding:56px 0 60px;
}
.pgm-hero-inner{
  display:grid;
  grid-template-columns:minmax(180px,260px) 1fr;
  gap:44px;
  align-items:center;
}
.pgm-logo{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  padding:22px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pgm-logo img{
  width:100%;
  height:auto;
  display:block;
}
.pgm-intro .eyebrow{
  color:var(--pgm-accent);
}
.pgm-intro h1{
  font-size:clamp(34px,5vw,60px);
  line-height:1.02;
  letter-spacing:-.02em;
  margin:10px 0 14px;
}
.pgm-resume{
  font-size:17px;
  max-width:54ch;
  opacity:.85;
  margin-bottom:22px;
}
.pgm-faits{
  list-style:none;
  padding:0;
  margin:0 0 26px;
  display:flex;
  flex-wrap:wrap;
  gap:14px 30px;
}
.pgm-faits li{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.pgm-faits b{
  font-size:19px;
  color:var(--pgm-accent);
}
.pgm-faits span{
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.6;
}
.pgm-avis{
  margin-top:26px;
  padding:16px 20px;
  border-left:4px solid var(--pgm-accent);
  background:rgba(0,0,0,.04);
  border-radius:0 12px 12px 0;
  font-size:14px;
}
.pgm-avis strong{
  display:block;
  margin-bottom:3px;
}
.pgm-texte{
  max-width:70ch;
}

/* --- Liste des programmes par parcours --- */

.pgm-parcours{
  margin-top:54px;
}
.pgm-parcours-tete{
  max-width:62ch;
  margin-bottom:22px;
}
.pgm-parcours-tete h3{
  font-size:clamp(24px,3vw,34px);
  margin:6px 0 8px;
}
.pgm-parcours-tete p{
  opacity:.72;
}
.pgm-grille{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:18px;
}
/* La carte empile un bandeau visuel puis le texte, au lieu de poser un
   petit logo à gauche. Le bandeau garde un rapport 16:9 dans les deux
   cas, avec ou sans photo, pour que des cartes voisines s'alignent. */
.pgm-tuile{
  --pgm-accent:#00ff41;
  --pgm-dark:#050605;
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.1);
  border-radius:20px;
  background:#fff;
  text-decoration:none;
  color:inherit;
  transition:border-color .18s, transform .18s, box-shadow .18s;
}
.pgm-tuile:hover{
  border-color:var(--pgm-accent);
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(0,0,0,.09);
}

.pgm-tuile-bandeau{
  position:relative;
  width:100%;
  /* Cadre carré, comme les visuels de Mike. Un logo carré y tient
     exactement : plus rien n'est rogné et plus aucune bande n'apparaît.
     C'est le seul rapport qui donne les deux à la fois. */
  aspect-ratio:1/1;
  background:var(--pgm-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-bottom:1px solid rgba(0,0,0,.08);
}
/* Vieux navigateurs sans aspect-ratio : une hauteur de repli. */
@supports not (aspect-ratio:1/1){
  .pgm-tuile-bandeau{ height:300px; }
}

/* L'image est affichée EN ENTIER, jamais recadrée.
   Les visuels de NLH sont des affiches qui portent du texte — « Rookie U8
   Hockey », « Perfection Zone », « Camp d'été ». Recadrer pour remplir le
   cadre leur coupait un mot, ce qui est pire qu'une bande vide sur le côté.
   Le fond aux couleurs du programme fait passer cette bande pour un choix
   plutôt que pour un manque. */
/* L'image est affichée en entier, jamais rognée. Dans un cadre carré avec
   un visuel carré, ça revient exactement au même que de le faire remplir —
   sans le risque de couper un mot le jour où une image ne serait pas tout
   à fait carrée.
   Ce jour-là, la bande restante est comblée par un agrandissement flou de
   l'image elle-même : le cadre paraît plein sans que rien ne soit perdu. */
.pgm-tuile-bandeau.a-photo::before{
  content:'';
  position:absolute;
  inset:-14px;
  background-image:var(--photo);
  background-size:cover;
  background-position:center;
  filter:blur(18px) saturate(1.2);
  z-index:0;
}
.pgm-tuile-bandeau.a-photo img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  transition:transform .3s ease;
}
.pgm-tuile:hover .pgm-tuile-bandeau.a-photo img{ transform:scale(1.03); }

/* Sans photo : le logo carré reste à sa taille, centré sur la couleur de
   marque. Étiré, il donnerait la grande boîte noire qu'on veut éviter. */
.pgm-tuile-bandeau.a-photo,
.pgm-tuile-bandeau.a-logo{
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(255,255,255,.07), transparent 70%),
    var(--pgm-dark);
}
.pgm-tuile-logo-repli{
  width:auto;
  height:64%;
  max-width:58%;
  object-fit:contain;
}
.pgm-tuile-initiale{
  font-family:'Bebas Neue',sans-serif;
  font-size:44px;
  font-weight:400;
  letter-spacing:.02em;
  color:var(--pgm-accent);
}

.pgm-tuile-texte{ padding:18px 20px 20px; }
.pgm-tuile-texte h4{
  font-size:17px;
  margin:0 0 4px;
  line-height:1.2;
}
.pgm-tuile-ages{
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.55;
  margin-bottom:7px;
}
.pgm-tuile-texte p{
  font-size:13.5px;
  opacity:.75;
  margin:0 0 10px;
}
.pgm-tuile .card-link{
  font-size:13px;
  font-weight:600;
  color:var(--pgm-accent);
}

@media (max-width:760px){
  .pgm-hero-inner{
    grid-template-columns:1fr;
    gap:26px;
  }
  .pgm-logo{
    max-width:180px;
  }
}

/* ==========================================================
   Page d'une séance : inscription
   ========================================================== */

.sea-places{
  display:inline-block;
  padding:8px 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
}
.sea-places.bas{
  background:rgba(255,196,0,.14);
  border-color:rgba(255,196,0,.5);
  color:#ffd34d;
}
.sea-places.complet{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.14);
  opacity:.7;
}
.sea-corps{
  padding-top:38px;
  padding-bottom:64px;
}
.sea-form{
  max-width:560px;
  margin-top:26px;
  padding:26px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:22px;
  background:#fff;
  box-shadow:0 16px 40px rgba(0,0,0,.06);
}
.sea-form h2{
  font-size:23px;
  margin:0 0 20px;
}
.sea-champ{
  margin-bottom:15px;
}
.sea-champ label{
  display:block;
  font-size:13px;
  font-weight:600;
  margin-bottom:5px;
}
.sea-champ label i{
  color:#c62828;
  font-style:normal;
}
.sea-champ input,
.sea-champ textarea{
  width:100%;
  padding:11px 13px;
  border:1.5px solid rgba(0,0,0,.16);
  border-radius:12px;
  font:inherit;
  font-size:15px;
  background:#fbfcfb;
  transition:border-color .15s;
}
.sea-champ input:focus,
.sea-champ textarea:focus{
  outline:none;
  border-color:var(--pgm-accent);
  background:#fff;
}
.sea-form .btn{
  margin-top:8px;
  width:100%;
  justify-content:center;
  border:none;
  cursor:pointer;
  font:inherit;
  font-weight:700;
}
.sea-note{
  margin:16px 0 0;
  font-size:12.5px;
  line-height:1.5;
  opacity:.65;
}

/* ===== Fil d'Ariane ===== */
.fil{
  padding:16px 0 0;
  font-size:13px;
}
.fil .section{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  padding-top:0;
  padding-bottom:0;
}
.fil a{
  color:inherit;
  opacity:.62;
  text-decoration:none;
  transition:opacity .15s;
}
.fil a:hover{
  opacity:1;
  text-decoration:underline;
}
.fil i{
  font-style:normal;
  opacity:.32;
}
.fil b{
  font-weight:600;
  opacity:.95;
}
@media (max-width:640px){
  .fil{font-size:12px}
}

/* ==========================================================
   Espace parent
   ========================================================== */

.par{ font-size:15px; }
.par-intro{ opacity:.75; margin-bottom:20px; }
.par h3{ font-size:19px; margin:0 0 14px; }

.par-avis{
  padding:14px 18px;
  border-radius:14px;
  margin-bottom:20px;
  font-size:14px;
  line-height:1.5;
}
.par-avis strong{ display:block; margin-bottom:3px; }
.par-avis-ok{ background:#e8f8ec; border-left:4px solid #17a34a; }
.par-avis-erreur{ background:#fdecec; border-left:4px solid #c62828; }
.par-avis-du{ background:#fff6e3; border-left:4px solid #e0a106; }

.par-vide{ opacity:.6; }

/* --- Liste des joueurs --- */
.par-joueurs{ display:grid; gap:10px; margin-bottom:26px; }
.par-joueur{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:14px;
  background:#fff;
}
.par-joueur-info{ display:flex; flex-direction:column; gap:2px; }
.par-joueur-info b{ font-size:15px; }
.par-joueur-info span{ font-size:12.5px; opacity:.6; }
.par-joueur-info em{ font-size:12.5px; opacity:.55; font-style:italic; }
.par-joueur-actions{ display:flex; align-items:center; gap:14px; }
.par-joueur-actions a{ font-size:13px; font-weight:600; }
.par-joueur-actions form{ margin:0; }
.par-lien-rouge{
  background:none; border:none; padding:0; cursor:pointer;
  font:inherit; font-size:13px; font-weight:600; color:#c62828;
}

/* --- Formulaire joueur --- */
.par-form{
  padding:20px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:18px;
  background:#fbfcfb;
  max-width:520px;
}
.par-champ{ margin-bottom:13px; }
.par-champ label{ display:block; font-size:13px; font-weight:600; margin-bottom:4px; }
.par-champ label i{ color:#c62828; font-style:normal; }
.par-champ input,
.par-champ textarea{
  width:100%;
  padding:10px 12px;
  border:1.5px solid rgba(0,0,0,.16);
  border-radius:11px;
  font:inherit; font-size:15px; background:#fff;
}
.par-champ input:focus, .par-champ textarea:focus{ outline:none; border-color:#00b833; }
.par-btn{
  padding:11px 22px; border:none; border-radius:999px;
  background:#050605; color:#fff; font:inherit; font-weight:700;
  cursor:pointer;
}
.par-annuler{ margin-left:14px; font-size:13px; }

/* --- Cartes d'inscription --- */
.par-liste{ display:grid; gap:10px; }
.par-liste-passe{ opacity:.62; }
.par-carte{
  display:grid;
  grid-template-columns:58px 1fr auto;
  gap:14px;
  align-items:center;
  padding:13px 16px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:14px;
  background:#fff;
}
.par-carte-du{ border-left:4px solid #e0a106; }
.par-carte-date{
  text-align:center; background:#050605; color:#fff;
  border-radius:11px; padding:7px 4px;
}
.par-carte-date b{ display:block; font-size:19px; line-height:1; }
.par-carte-date span{ font-size:10px; letter-spacing:.08em; opacity:.7; }
.par-carte-corps{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.par-carte-corps b{ font-size:15px; }
.par-carte-joueur{ font-size:13px; opacity:.8; }
.par-carte-meta{ font-size:12.5px; opacity:.6; }
.par-heure{ color:#00913a; }
.par-carte-attente{ font-size:12px; color:#b07800; }
.par-carte-statut{ text-align:right; display:flex; flex-direction:column; gap:4px; align-items:flex-end; }
.par-jeton{
  display:inline-block; padding:3px 11px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.03em;
}
.par-jeton-ok{ background:#e2f7e8; color:#17843e; }
.par-jeton-du{ background:#fff1d6; color:#a37500; }
.par-carte-statut small{ font-size:12.5px; opacity:.65; }

/* --- Connexion requise sur la page séance --- */
.sea-connexion p{ font-size:14.5px; opacity:.75; margin:0 0 18px; }
.sea-connexion .btn{ width:auto; }

@media (max-width:560px){
  .par-carte{ grid-template-columns:48px 1fr; }
  .par-carte-statut{ grid-column:2; align-items:flex-start; text-align:left; flex-direction:row; gap:10px; }
  .par-joueur{ flex-direction:column; align-items:flex-start; }
}

/* ==========================================================
   Pages WooCommerce — habillage V2
   (compte, panier, paiement, boutique)
   ========================================================== */

body.nlh-woo{
  background:var(--ice) !important;
  color:var(--text) !important;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
body.nlh-woo .nlh2-header{ display:block !important; }

.woo-tete{ padding-top:26px; padding-bottom:6px; }
.woo-tete .fil{ display:flex; gap:7px; align-items:center; padding:0 0 10px; }
.woo-tete h1{
  font-size:clamp(30px,4.4vw,46px);
  letter-spacing:-.02em;
  margin:0;
}
.woo-corps{ padding-top:22px; padding-bottom:70px; }

/* --- Colonnes connexion / inscription ---
   Structure réelle :
     div.woocommerce > ::before + .woocommerce-notices-wrapper
                     + div.u-columns.col2-set#customer_login + ::after
   La grille va sur #customer_login : mise sur .woocommerce, les
   pseudo-éléments de nettoyage deviendraient des cases de grille. */

body.nlh-woo #customer_login,
body.nlh-woo .u-columns.col2-set{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:22px;
  align-items:start;
  max-width:900px;
  width:100%;
  float:none !important;
}
body.nlh-woo #customer_login::before,
body.nlh-woo #customer_login::after,
body.nlh-woo .u-columns::before,
body.nlh-woo .u-columns::after{
  display:none !important;
}
body.nlh-woo .u-column1,
body.nlh-woo .u-column2,
body.nlh-woo .col2-set .col-1,
body.nlh-woo .col2-set .col-2{
  float:none !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:24px !important;
  border:1px solid rgba(0,0,0,.1);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 32px rgba(0,0,0,.05);
}
/* Le formulaire à l'intérieur d'une colonne n'a pas son propre cadre. */
body.nlh-woo .u-column1 > form,
body.nlh-woo .u-column2 > form,
body.nlh-woo .col-1 > form,
body.nlh-woo .col-2 > form{
  border:none !important;
  padding:0 !important;
  margin:0 !important;
  background:none !important;
  box-shadow:none !important;
}
body.nlh-woo h2{
  font-size:20px !important;
  margin:0 0 16px !important;
  letter-spacing:-.01em;
}
body.nlh-woo .woocommerce-form-login__submit,
body.nlh-woo .woocommerce-form-register__submit{ margin-top:6px; }

/* --- Champs --- */
body.nlh-woo form .form-row{
  display:block !important;
  width:100% !important;
  float:none !important;
  padding:0 !important;
  margin:0 0 14px !important;
}
body.nlh-woo form .form-row label{
  display:block;
  margin-bottom:5px;
  font-size:13px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  opacity:.85;
}
body.nlh-woo form .form-row input.input-text,
body.nlh-woo form .form-row textarea,
body.nlh-woo form .form-row select,
body.nlh-woo .select2-container--default .select2-selection--single{
  width:100% !important;
  box-sizing:border-box;
  padding:11px 13px !important;
  border:1.5px solid rgba(0,0,0,.16) !important;
  border-radius:12px !important;
  background:#fbfcfb !important;
  color:var(--text) !important;
  font:inherit !important;
  font-size:15px !important;
  height:auto !important;
}
body.nlh-woo form .form-row input.input-text:focus,
body.nlh-woo form .form-row textarea:focus,
body.nlh-woo form .form-row select:focus{
  outline:none;
  border-color:#00b833 !important;
  background:#fff !important;
}
body.nlh-woo .woocommerce-form__label-for-checkbox{
  display:flex !important;
  align-items:center;
  gap:8px;
  font-weight:400 !important;
}
body.nlh-woo .woocommerce-form__input-checkbox{
  width:auto !important;
  margin:0 !important;
}

/* --- Boutons --- */
body.nlh-woo .button,
body.nlh-woo button.button,
body.nlh-woo input.button,
body.nlh-woo a.button{
  display:inline-block;
  padding:12px 26px !important;
  border:none !important;
  border-radius:999px !important;
  background:var(--lime, #22c55e) !important;
  color:#050605 !important;
  font:inherit !important;
  font-size:14.5px !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  cursor:pointer;
  transition:transform .15s, box-shadow .15s;
}
body.nlh-woo .button:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
body.nlh-woo .checkout-button,
body.nlh-woo #place_order{
  width:100%;
  text-align:center;
}

/* --- Onglets du compte --- */
body.nlh-woo .woocommerce-MyAccount-navigation ul{
  list-style:none;
  padding:0;
  margin:0 0 26px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
body.nlh-woo .woocommerce-MyAccount-navigation li a{
  display:inline-block;
  padding:9px 17px;
  border:1.5px solid rgba(0,0,0,.14);
  border-radius:999px;
  background:#fff;
  font-size:13.5px;
  font-weight:600;
  text-decoration:none;
  color:inherit;
  transition:border-color .15s;
}
body.nlh-woo .woocommerce-MyAccount-navigation li a:hover{ border-color:#00b833; }
body.nlh-woo .woocommerce-MyAccount-navigation li.is-active a{
  background:#050605;
  border-color:#050605;
  color:#fff;
}
body.nlh-woo .woocommerce-MyAccount-navigation,
body.nlh-woo .woocommerce-MyAccount-content{
  float:none !important;
  width:100% !important;
}

/* --- Tableaux (panier, commandes) --- */
body.nlh-woo table.shop_table{
  border:1px solid rgba(0,0,0,.1) !important;
  border-radius:18px !important;
  border-collapse:separate !important;
  overflow:hidden;
  background:#fff;
  width:100%;
}
body.nlh-woo table.shop_table th{
  background:#f4f6f3;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:13px 16px !important;
}
body.nlh-woo table.shop_table td{
  padding:15px 16px !important;
  border-top:1px solid rgba(0,0,0,.07) !important;
  font-size:14.5px;
}
body.nlh-woo .cart_item dl.variation{
  font-size:12.5px;
  opacity:.7;
  margin:6px 0 0;
}
body.nlh-woo .cart_item dl.variation dt{ font-weight:600; }

/* --- Encadrés et messages --- */
body.nlh-woo .cart_totals,
body.nlh-woo #order_review,
body.nlh-woo .woocommerce-checkout-review-order{
  padding:22px;
  border:1px solid rgba(0,0,0,.1);
  border-radius:20px;
  background:#fff;
}
body.nlh-woo .woocommerce-message,
body.nlh-woo .woocommerce-info,
body.nlh-woo .woocommerce-error{
  padding:15px 18px !important;
  border:none !important;
  border-left:4px solid #17a34a !important;
  border-radius:0 14px 14px 0 !important;
  background:#e9f8ee !important;
  color:var(--text) !important;
  font-size:14.5px;
  list-style:none;
}
body.nlh-woo .woocommerce-info{
  border-left-color:#0284c7 !important;
  background:#e8f4fd !important;
}
body.nlh-woo .woocommerce-error{
  border-left-color:#c62828 !important;
  background:#fdecec !important;
}
body.nlh-woo .woocommerce-message::before,
body.nlh-woo .woocommerce-info::before,
body.nlh-woo .woocommerce-error::before{ display:none !important; }

body.nlh-woo .wc_payment_methods{
  list-style:none;
  padding:0;
  margin:0 0 18px;
}
body.nlh-woo .wc_payment_method{
  padding:14px 16px;
  border:1.5px solid rgba(0,0,0,.12);
  border-radius:14px;
  margin-bottom:10px;
  background:#fff;
}
body.nlh-woo .payment_box{
  margin-top:10px;
  padding:12px 14px;
  border-radius:12px;
  background:#f4f6f3;
  font-size:13.5px;
  line-height:1.5;
}

/* --- Espace parent : styles hérités en version claire --- */
body.nlh-woo .par-carte-date{ background:#050605; }

@media (max-width:820px){
  body.nlh-woo table.shop_table th{ display:none; }
}

/* ==========================================================
   Crédits
   ========================================================== */

.par-solde{
  display:flex;
  align-items:baseline;
  gap:10px;
  padding:22px 26px;
  border-radius:20px;
  background:#050605;
  color:#fff;
  margin-bottom:20px;
}
.par-solde-nombre{
  font-size:46px;
  font-weight:800;
  line-height:1;
  color:#00ff41;
}
.par-solde-mot{ font-size:14px; opacity:.8; }

.par-forfaits{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;
}
.par-forfait{
  position:relative;
  padding:22px 18px;
  border:1.5px solid rgba(0,0,0,.12);
  border-radius:18px;
  background:#fff;
  text-align:center;
}
.par-forfait.vedette{
  border-color:#00b833;
  box-shadow:0 12px 30px rgba(0,184,51,.14);
}
.par-forfait-ruban{
  position:absolute;
  top:-11px; left:50%;
  transform:translateX(-50%);
  padding:4px 13px;
  border-radius:999px;
  background:#00b833;
  color:#fff;
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.par-forfait-nb{
  display:block;
  font-size:38px;
  font-weight:800;
  line-height:1;
}
.par-forfait-mot{
  display:block;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.55;
  margin-bottom:12px;
}
.par-forfait-prix{ font-size:20px; font-weight:700; }
.par-forfait-prix del{ display:none; }
.par-forfait-unite{ font-size:12.5px; opacity:.6; margin-bottom:14px; }
.par-forfait .par-btn{ width:100%; text-align:center; text-decoration:none; display:inline-block; }

.par-mouvement{
  display:grid;
  grid-template-columns:130px 1fr 56px 46px;
  gap:10px;
  align-items:center;
  padding:11px 14px;
  border:1px solid rgba(0,0,0,.09);
  border-radius:12px;
  background:#fff;
  font-size:13.5px;
}
.par-mouvement-date{ opacity:.55; font-size:12.5px; }
.par-mouvement-raison{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.par-mouvement-nb{ text-align:right; font-weight:700; }
.par-mouvement-nb.plus{ color:#17843e; }
.par-mouvement-nb.moins{ color:#b07800; }
.par-mouvement-solde{ text-align:right; opacity:.5; font-size:12.5px; }

/* Choix du mode de paiement sur la page séance */
.sea-modes{ display:grid; gap:10px; margin:4px 0 18px; }
.sea-mode{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 15px;
  border:1.5px solid rgba(0,0,0,.14);
  border-radius:14px;
  background:#fbfcfb;
  cursor:pointer;
  transition:border-color .15s, background .15s;
}
.sea-mode:has(input:checked){
  border-color:var(--pgm-accent, #00b833);
  background:#fff;
}
.sea-mode input{ margin:0; }
.sea-mode span{ display:flex; flex-direction:column; gap:2px; }
.sea-mode b{ font-size:14.5px; }
.sea-mode small{ font-size:12.5px; opacity:.62; }

@media (max-width:560px){
  .par-mouvement{ grid-template-columns:1fr 56px; row-gap:4px; }
  .par-mouvement-date{ grid-column:1 / -1; }
  .par-mouvement-solde{ display:none; }
}

/* ==========================================================
   Raccourci écran d'accueil
   ========================================================== */

.nlh-raccourci{
  position:fixed;
  left:12px; right:12px; bottom:12px;
  z-index:9999;
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border-radius:18px;
  background:#050605;
  color:#fff;
  box-shadow:0 16px 44px rgba(0,0,0,.34);
  transform:translateY(140%);
  transition:transform .32s cubic-bezier(.2,.8,.3,1);
}
.nlh-raccourci.visible{ transform:translateY(0); }
.nlh-raccourci-txt{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.nlh-raccourci-txt b{ font-size:14.5px; }
.nlh-raccourci-txt span{ font-size:12.5px; opacity:.68; }
.nlh-raccourci-actions{ display:flex; gap:8px; margin-left:auto; flex:0 0 auto; }
.nlh-raccourci button{
  border:none;
  border-radius:999px;
  padding:9px 16px;
  font:inherit;
  font-size:13.5px;
  font-weight:700;
  cursor:pointer;
}
.nlh-raccourci-non{ background:rgba(255,255,255,.12); color:#fff; }
.nlh-raccourci-oui{ background:#00ff41; color:#050605; }

.nlh-raccourci-modale{
  position:fixed; inset:0; z-index:10000;
  display:flex; align-items:center; justify-content:center;
  padding:22px;
  background:rgba(0,0,0,.62);
}
.nlh-raccourci-boite{
  max-width:380px;
  padding:24px;
  border-radius:20px;
  background:#fff;
  text-align:center;
}
.nlh-raccourci-boite p{ margin:0 0 18px; font-size:15px; line-height:1.55; }
.nlh-raccourci-boite button{
  border:none; border-radius:999px;
  padding:11px 26px;
  background:#050605; color:#fff;
  font:inherit; font-weight:700; cursor:pointer;
}

/* Masqué une fois l'application installée */
@media (display-mode: standalone){
  .nlh-raccourci{ display:none !important; }
}
@media (min-width:900px){
  .nlh-raccourci{ left:auto; right:20px; bottom:20px; max-width:420px; }
}

/* ==========================================================
   Pro-Shop — catalogue et fiche produit
   Les cartes de WooCommerce reprennent l'allure des cartes de
   programme : fond blanc, coins arrondis, bouton vert.
   ========================================================== */

/* --- Avis de ramassage --- */

.nlh-ramassage-avis{
  background:#0b0f0d;
  border:1px solid #1f2b23;
  border-left:4px solid var(--lime,#0fdb6c);
  border-radius:12px;
  padding:16px 20px;
  margin:0 0 30px;
  color:#cfe8da;
  font-size:14px;
  line-height:1.6;
}
/* Le display:block est porté par le <b>, jamais par les <span data-lang>
   à l'intérieur — sinon il écraserait la règle qui cache la langue
   inactive, et les deux langues s'afficheraient ensemble. */
.nlh-ramassage-avis b{
  display:block;
  color:var(--lime,#0fdb6c);
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:5px;
}

/* --- Grille du catalogue --- */

body.nlh-woo ul.products{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:22px;
  margin:0 !important;
  padding:0 !important;
  list-style:none;
}
body.nlh-woo ul.products::before,
body.nlh-woo ul.products::after{ content:none !important; display:none !important; }

body.nlh-woo ul.products li.product{
  width:auto !important;
  margin:0 !important;
  float:none !important;
  background:#fff;
  border:1px solid var(--line,#e3ebe5);
  border-radius:18px;
  overflow:hidden;
  padding:0 !important;
  display:flex;
  flex-direction:column;
  transition:border-color .15s ease, transform .15s ease;
}
body.nlh-woo ul.products li.product:hover{
  border-color:var(--lime,#0fdb6c);
  transform:translateY(-2px);
}

body.nlh-woo ul.products li.product a img{
  margin:0 !important;
  aspect-ratio:1/1;
  object-fit:cover;
  width:100%;
  display:block;
  border-radius:0 !important;
  box-shadow:none !important;
}

body.nlh-woo ul.products li.product .woocommerce-loop-product__title{
  font-size:16px !important;
  font-weight:800;
  line-height:1.25;
  padding:18px 18px 0 !important;
  margin:0 !important;
  color:var(--ink,#050605);
}

body.nlh-woo ul.products li.product .price{
  display:block;
  padding:8px 18px 0;
  font-size:17px !important;
  font-weight:800;
  color:var(--ink,#050605) !important;
}
body.nlh-woo ul.products li.product .price del{ opacity:.45;font-weight:600 }
body.nlh-woo ul.products li.product .price ins{ text-decoration:none }

body.nlh-woo ul.products li.product .button{
  margin:14px 18px 20px !important;
  background:var(--lime,#0fdb6c) !important;
  color:#03150a !important;
  border-radius:999px !important;
  padding:12px 18px !important;
  font-weight:800 !important;
  font-size:13.5px !important;
  text-align:center;
  border:none !important;
}
body.nlh-woo ul.products li.product .button:hover{ filter:brightness(1.06) }

/* Étiquette « Promo » et rupture de stock */
body.nlh-woo span.onsale{
  background:var(--lime,#0fdb6c) !important;
  color:#03150a !important;
  border-radius:999px !important;
  font-weight:800;
  font-size:11px;
  text-transform:uppercase;
  padding:5px 12px !important;
  min-height:0 !important;
  line-height:1.4 !important;
  top:12px !important;
  left:12px !important;
  right:auto !important;
  margin:0 !important;
}
body.nlh-woo .stock.out-of-stock{ color:#b32d2e;font-weight:700 }

/* --- Fiche produit --- */

body.nlh-woo div.product{ display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start }
body.nlh-woo div.product .woocommerce-product-gallery{ width:auto !important;float:none !important;margin:0 !important }
body.nlh-woo div.product .woocommerce-product-gallery img{ border-radius:18px }
body.nlh-woo div.product .summary{ width:auto !important;float:none !important;margin:0 !important }

body.nlh-woo div.product .product_title{
  font-size:clamp(26px,3.4vw,40px) !important;
  line-height:1.05;
  letter-spacing:-.02em;
  margin:0 0 12px !important;
  max-width:none;
}
body.nlh-woo div.product p.price{
  font-size:26px !important;
  font-weight:800;
  color:var(--ink,#050605) !important;
  margin:0 0 18px !important;
}
body.nlh-woo div.product form.cart{ margin:0 0 22px !important;display:flex;gap:12px;flex-wrap:wrap;align-items:center }
body.nlh-woo div.product form.cart .quantity input{
  border:1px solid var(--line,#e3ebe5);border-radius:10px;padding:11px 10px;width:82px;font-weight:700;
}
body.nlh-woo div.product form.cart button.button{
  background:var(--lime,#0fdb6c) !important;
  color:#03150a !important;
  border-radius:999px !important;
  padding:14px 28px !important;
  font-weight:800 !important;
  border:none !important;
}
body.nlh-woo div.product .variations{ margin-bottom:16px }
body.nlh-woo div.product .variations td{ padding:6px 0 }
body.nlh-woo div.product .variations select{
  border:1px solid var(--line,#e3ebe5);border-radius:10px;padding:11px 12px;font:inherit;min-width:190px;background:#fff;
}

/* Onglets et produits liés : présentation simple, sans le style WooCommerce */
body.nlh-woo .woocommerce-tabs ul.tabs{ padding:0 !important;margin:0 0 16px !important;border:none !important }
body.nlh-woo .woocommerce-tabs ul.tabs::before{ display:none !important }
body.nlh-woo .woocommerce-tabs ul.tabs li{
  background:none !important;border:none !important;border-radius:0 !important;margin:0 18px 0 0 !important;padding:0 !important;
}
body.nlh-woo .woocommerce-tabs ul.tabs li::before,
body.nlh-woo .woocommerce-tabs ul.tabs li::after{ display:none !important }
body.nlh-woo .woocommerce-tabs ul.tabs li a{ font-weight:800;padding:0 0 6px !important }
body.nlh-woo .woocommerce-tabs ul.tabs li.active a{ border-bottom:2px solid var(--lime,#0fdb6c) }

body.nlh-woo .related.products > h2,
body.nlh-woo .up-sells > h2{ font-size:24px;margin:44px 0 18px }

@media (max-width:820px){
  body.nlh-woo div.product{ grid-template-columns:1fr;gap:24px }
}

/* --- Quantité dans le catalogue du Pro-Shop --- */

body.nlh-woo ul.products li.product .nlh-qte-form{
  display:flex;
  gap:10px;
  align-items:stretch;
  margin:14px 18px 20px;
}

body.nlh-woo ul.products li.product .nlh-qte-form .quantity{
  margin:0 !important;
  flex:0 0 72px;
}
body.nlh-woo ul.products li.product .nlh-qte-form .quantity input{
  width:100%;
  height:100%;
  border:1px solid var(--line,#e3ebe5);
  border-radius:999px;
  padding:11px 8px;
  text-align:center;
  font:inherit;
  font-weight:700;
  background:#fff;
  color:var(--ink,#050605);
}
body.nlh-woo ul.products li.product .nlh-qte-form .quantity input:focus-visible{
  outline:2px solid var(--lime,#0fdb6c);
  outline-offset:1px;
}

/* Le bouton du formulaire reprend l'allure du bouton simple, mais
   sans ses marges — c'est le formulaire qui les porte maintenant. */
body.nlh-woo ul.products li.product .nlh-qte-bouton,
body.nlh-woo ul.products li.product .nlh-voir-options{
  margin:0 !important;
  flex:1;
  background:var(--lime,#0fdb6c) !important;
  color:#03150a !important;
  border:none !important;
  border-radius:999px !important;
  padding:12px 16px !important;
  font-weight:800 !important;
  font-size:13.5px !important;
  text-align:center;
  cursor:pointer;
}
body.nlh-woo ul.products li.product .nlh-voir-options{
  display:block;
  margin:14px 18px 20px !important;
}
body.nlh-woo ul.products li.product .nlh-qte-bouton:hover,
body.nlh-woo ul.products li.product .nlh-voir-options:hover{ filter:brightness(1.06) }

/* Sur les cartes étroites, la quantité passe au-dessus du bouton. */
@media (max-width:420px){
  body.nlh-woo ul.products li.product .nlh-qte-form{ flex-wrap:wrap }
  body.nlh-woo ul.products li.product .nlh-qte-form .quantity{ flex:0 0 100% }
}

/* --- Avis des moyens de paiement, page Panier --- */

.nlh-avis-paiement{
  background:#0b0f0d;
  border:1px solid #1f2b23;
  border-left:4px solid var(--lime,#0fdb6c);
  border-radius:12px;
  padding:18px 22px;
  margin:0 0 30px;
  color:#cfe8da;
  font-size:14px;
  line-height:1.65;
}
.nlh-avis-paiement b{
  display:block;
  color:var(--lime,#0fdb6c);
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.nlh-avis-paiement li:last-child{ margin-bottom:0 }
.nlh-avis-paiement strong{ color:#e6f5ea }

/* Titre de séance cliquable. Il garde l'apparence d'un titre — pas de
   soulignement bleu — et ne se révèle au survol que par un léger passage
   au vert, comme les autres liens du site. */
.nlh-titre-lien{
  color:inherit;
  text-decoration:none;
  transition:color .15s ease;
}
.nlh-titre-lien:hover{ color:var(--blue-2, #0dad22) }

/* Bloc de saisie du joueur, en haut du panier. Reprend l'habillage de
   l'avis de paiement juste en dessous : le parent voit deux encadrés de la
   même famille plutôt que deux styles étrangers. */
.nlh-panier-joueurs{
  background:#0b0f0d;
  border:1px solid #1f2b23;
  border-left:4px solid #f5c518;
  border-radius:12px;
  padding:18px 22px;
  margin:0 0 22px;
  color:#cfe8da;
  font-size:14px;
}
.nlh-panier-joueurs > b{
  display:block;
  color:#f5c518;
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.nlh-pj-intro{ margin:0 0 16px;color:#9db3a5;font-size:13.5px }
.nlh-pj-seance{
  border-top:1px solid rgba(195,203,214,.14);
  padding:14px 0 4px;
}
.nlh-pj-titre{ font-weight:700;color:#e6f5ea;margin-bottom:10px }
.nlh-pj-date{ color:#9db3a5;font-weight:400;font-size:13px;margin-left:8px }
.nlh-pj-pour{ color:#9db3a5;font-weight:400;font-size:13px;margin-left:8px }
.nlh-pj-pour strong{ color:#e6f5ea }
.nlh-pj-champs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  margin-top:10px;
}
.nlh-panier-joueurs label{
  display:block;
  font-size:12px;
  font-weight:700;
  color:#9db3a5;
}
.nlh-panier-joueurs input,
.nlh-panier-joueurs select{
  width:100%;
  margin-top:4px;
  padding:9px 11px;
  background:rgba(8,19,40,.5);
  border:1px solid rgba(195,203,214,.28);
  border-radius:8px;
  color:#fff;
  font-size:14px;
  font-weight:400;
}
/* Question du jersey obligatoire, sous les champs d'un joueur. */
.nlh-pj-jersey{
  margin-top:12px;
  padding:12px 14px;
  background:rgba(245,197,24,.08);
  border:1px solid rgba(245,197,24,.35);
  border-radius:8px;
}
.nlh-pj-jersey-q{
  display:block;
  font-weight:700;
  color:#f5c518;
  font-size:13px;
  margin-bottom:8px;
}
.nlh-pj-jersey-opt{
  display:block;
  font-weight:400;
  color:#e6f5ea;
  margin:4px 0;
  cursor:pointer;
}
.nlh-pj-jersey-opt input{
  width:auto;
  margin:0 8px 0 0;
  vertical-align:middle;
}

.nlh-panier-joueurs button{
  margin-top:16px;
  background:#f5c518;
  border:none;
  color:#2b2205;
  font-weight:800;
  padding:11px 22px;
  border-radius:999px;
  cursor:pointer;
}
.nlh-panier-joueurs button:hover{ background:#ffd94a }

/* « Option #1 » et « Option #2 ». Le numéro remplace la puce : le parent
   voit tout de suite qu'il choisit entre deux voies, pas qu'il lit deux
   informations. Le jaune est celui de la Perfection Zone — la seule autre
   couleur d'accent du site, donc rien de nouveau n'entre dans la palette. */
.nlh-avis-paiement ul{ margin:0;padding-left:0;list-style:none }
.nlh-avis-paiement li{ margin-bottom:16px }
.nlh-avis-option{
  display:block;
  color:#f5c518;
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  margin-bottom:3px;
}

/* Marche à suivre du virement Interac : le parent doit pouvoir la suivre
   sans relire. Les étapes sont numérotées, pas à puces — l'ordre compte. */
.nlh-avis-etapes{
  margin:8px 0 0;
  padding-left:22px;
  list-style:decimal;
  color:#b6cfc0;
}
.nlh-avis-etapes li{ margin-bottom:4px }

/* L'adresse du virement est la seule chose à retenir : elle se lit d'un
   coup d'œil, et se sélectionne d'un double-clic. */
.nlh-avis-adresse{
  margin:12px 0 0;
  background:rgba(15,219,108,.09);
  border:1px solid rgba(15,219,108,.45);
  border-radius:10px;
  padding:12px 16px;
}
.nlh-avis-adresse .etiquette{
  display:block;
  color:var(--lime,#0fdb6c);
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:4px;
}
.nlh-avis-adresse .courriel{
  display:block;
  color:#fff;
  font-size:clamp(16px,3.4vw,21px);
  font-weight:800;
  letter-spacing:.01em;
  word-break:break-all;
  user-select:all;
}
.nlh-avis-note{
  margin:10px 0 0;
  font-size:13px;
  color:#9db3a5;
}

/* ==========================================================
   Calendrier d'équipe — espace membre
   ========================================================== */

.nlh-cal-equipe{ margin-bottom:34px }
.nlh-cal-titre{
  font-family:'Bebas Neue',sans-serif;
  font-size:28px;
  margin:0 0 4px;
  color:var(--ink,#050605);
}
.nlh-cal-joueurs{
  color:#6a7a70;font-size:13.5px;margin:0 0 18px;
}
.nlh-cal-vide{ color:#6a7a70;font-size:14.5px }

.nlh-cal-liste{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px }

.nlh-cal-item{
  display:grid;
  grid-template-columns:64px 1fr auto;
  gap:16px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line,#e3ebe5);
  border-left:4px solid #cbd5cd;
  border-radius:14px;
  padding:14px 18px;
}
.nlh-cal-item.est-match{ border-left-color:var(--lime,#0fdb6c) }
.nlh-cal-item.est-pratique{ border-left-color:#9db3a5 }

.nlh-cal-date{
  background:#0b0f0d;
  border-radius:12px;
  padding:9px 0;
  text-align:center;
  line-height:1.05;
}
.nlh-cal-date b{
  display:block;
  font-family:'Bebas Neue',sans-serif;
  font-size:26px;
  color:var(--lime,#0fdb6c);
}
.nlh-cal-date span{
  display:block;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.08em;
  color:#cfe8da;
}

.nlh-cal-quoi{
  font-weight:800;
  font-size:15.5px;
  color:var(--ink,#050605);
  margin-bottom:2px;
}
.nlh-cal-quoi em{ font-style:normal;font-weight:600;color:#44514a }
.nlh-cal-details{ color:#6a7a70;font-size:13.5px;text-transform:capitalize }

.nlh-cal-note{
  background:#fff6e3;
  border:1px solid #e8d59b;
  border-radius:999px;
  padding:5px 13px;
  font-size:11.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#7a5a09;
  white-space:nowrap;
}

/* Événement retouché après publication — la famille doit le voir. */
.nlh-cal-item.est-modifie{
  border-left-color:#e0a422;
  background:#fffdf7;
}
.nlh-cal-modifie{
  display:inline-block;
  vertical-align:2px;
  margin-left:8px;
  background:#fff3d6;
  border:1px solid #e0c479;
  border-radius:999px;
  padding:2px 9px;
  font-size:10.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#7a5a09;
}
.nlh-cal-changement{
  margin-top:3px;
  font-size:12.5px;
  font-weight:600;
  color:#8a6410;
}

@media (max-width:560px){
  .nlh-cal-item{ grid-template-columns:56px 1fr;row-gap:10px }
  .nlh-cal-note{ grid-column:1/-1;justify-self:start }
}
