/*
 Theme Name: Echecs92 Child
 Template: twentytwentyfive
 Version: 1.0
*/

/* Sticky wrapper for WordPress template part */
header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 2000;
  background:#ffffff;
  transition: box-shadow .3s ease, background-color .3s ease;
}
header.wp-block-template-part.is-elevated {
  background:#ffffff;
}

/* ---------- HEADER ---------- */
.cm-header{
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.07);
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Inter",Roboto,"Helvetica Neue",Arial,sans-serif;
  --logo-size: 72px;
  --header-height: calc(var(--logo-size) + 24px);
  min-height: var(--header-height);
  display:flex;
  align-items:center;
  transition: border-color .3s ease;
  width:100%;
}
header.wp-block-template-part.is-elevated .cm-header{
  border-bottom-color:rgba(15,23,42,0.12);
}
.cm-header-inner{
  max-width:1100px;
  width:100%;
  margin:0 auto;
  padding:12px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.cm-header-left{
  display:flex;
  align-items:center;
  flex:1;
}

/* Logo */
.cm-logo{display:flex; align-items:center; gap:8px; text-decoration:none;}
.cm-logo-img{display:block; height:var(--logo-size); width:auto;}
.cm-logo-title{font-weight:600; font-size:16px; color:#000; text-decoration:none;}

/* Nav desktop */
.cm-nav-desktop{display:none; gap:24px; align-items:center; margin-left:auto;}
.cm-nav-desktop a{
  position:relative;
  color:#0a0a0a;
  text-decoration:none;
  font-size:15px;
  font-weight:500;
  padding:4px 0;
  transition:color .2s ease;
}
.cm-nav-desktop a::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:#0a0a0a;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease, opacity .25s ease;
  opacity:0;
}
.cm-nav-desktop a:hover,
.cm-nav-desktop a:focus-visible{
  color:#111827;
}
.cm-nav-desktop a:focus-visible{
  outline:2px solid rgba(15,23,42,0.4);
  outline-offset:4px;
}
.cm-nav-desktop a:hover::after,
.cm-nav-desktop a:focus-visible::after,
.cm-nav-desktop a.is-active::after{
  transform:scaleX(1);
  opacity:1;
}

/* Burger */
.cm-burger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:10px 18px;
  min-height:44px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,0.18);
  background:rgba(15,23,42,0.04);
  cursor:pointer;
  transition:background-color .2s ease, border-color .2s ease, color .2s ease;
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#0f172a;
  margin-left:auto;
}
.cm-burger-icon{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  width:22px;
}
.cm-burger-icon span{
  width:100%;
  height:2px;
  background:currentColor;
  border-radius:1px;
  display:block;
  transition:transform .25s ease, opacity .25s ease, background-color .25s ease;
  transform-origin:center;
}
.cm-burger-label{
  font-size:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  text-transform:inherit;
  color:inherit;
  line-height:1;
}
.cm-burger:hover,
.cm-burger:focus-visible{
  border-color:rgba(15,23,42,0.28);
  background:rgba(15,23,42,0.08);
  outline:none;
}
.cm-burger.is-active{
  background:#0f172a;
  border-color:#0f172a;
  color:#ffffff;
}
.cm-burger.is-active .cm-burger-icon span{
  background:#ffffff;
}
.cm-burger.is-active .cm-burger-icon span:nth-child(1){
  transform:translateY(6px) rotate(45deg);
}
.cm-burger.is-active .cm-burger-icon span:nth-child(2){
  opacity:0;
}
.cm-burger.is-active .cm-burger-icon span:nth-child(3){
  transform:translateY(-6px) rotate(-45deg);
}

/* Menu mobile (fullscreen) */
.cm-nav-mobile{
  position:fixed;
  top:var(--header-height,64px);
  left:0;
  right:0;
  bottom:0;
  background:#ffffff;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:32px 20px 40px;
  gap:20px;
  z-index:1500;
  text-align:left;

  /* animation state */
  opacity:0;
  transform:translateY(-10px);
  transition:opacity .2s ease, transform .2s ease;
  pointer-events:none;
}

/* visible state */
.cm-nav-mobile.is-open{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.cm-nav-mobile a{
  width:100%;
  padding:16px 4px;
  border-bottom:1px solid #eee;
  color:#0a0a0a;
  text-decoration:none;
  font-size:20px;
  font-weight:600;
  display:block;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .25s ease, transform .25s ease;
}
.cm-nav-mobile a:last-child{
  border-bottom:0;
}
.cm-nav-mobile.is-open a{
  opacity:1;
  transform:translateY(0);
}
.cm-nav-mobile.is-open a:nth-child(1){transition-delay:.05s;}
.cm-nav-mobile.is-open a:nth-child(2){transition-delay:.08s;}
.cm-nav-mobile.is-open a:nth-child(3){transition-delay:.11s;}
.cm-nav-mobile.is-open a:nth-child(4){transition-delay:.14s;}
.cm-nav-mobile.is-open a:nth-child(5){transition-delay:.17s;}
.cm-nav-mobile.is-open a:nth-child(6){transition-delay:.2s;}
.cm-nav-mobile.is-open a:nth-child(7){transition-delay:.23s;}
.cm-nav-mobile.is-open a:nth-child(8){transition-delay:.26s;}

/* Respecte l'attribut hidden globalement */
[hidden]{
  display:none !important;
}

/* Desktop breakpoint */
@media (min-width:900px){
  .cm-nav-desktop{display:flex;}
  .cm-burger{display:none;}
  #cm-mobile-menu{display:none !important;}
}

/* Optionnel : wrapper contenu principal */
.site-main{max-width:1100px; margin:0 auto; padding:24px 16px 64px;}

/* Lock scroll when menu open */
.cm-menu-open{
  overflow:hidden;
  height:100%;
}

/* Focus outline only for keyboard navigation */
:focus {
  outline: none;
}
:focus-visible {
  outline: 2px solid rgba(15,23,42,0.4);
  outline-offset: 4px;
}

/* ---------- FOOTER ---------- */
.cm-footer{
  background:#f8fafc;
  border-top:1px solid #e2e8f0;
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Inter",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:#1f2937;
  overflow-x:hidden;
}

.cm-footer__container{
  max-width:1100px;
  width:100%;
  margin:0 auto;
  padding:32px 16px 40px;
  display:flex;
  flex-direction:column;
  gap:32px;
  align-items:flex-start;
  box-sizing:border-box;
}

/* left: logo + nom comité */
.cm-footer__left{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  flex-shrink:0;
}
.cm-footer__logo{
  height:34px;
  width:auto;
  display:block;
}
.cm-footer__text{
  font-size:15px;
  font-weight:600;
  line-height:1.4;
  color:inherit;
}
.cm-footer__address{
  font-style:normal;
  font-size:13px;
  line-height:1.5;
  color:#475569;
  margin:0;
}

/* center: liens rapides */
.cm-footer__center{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:24px;
  width:100%;
}
.cm-footer__list-block{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
.cm-footer__title{
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#64748b;
  margin:0;
}
.cm-footer__nav,
.cm-footer__legal{
  width:100%;
}

.cm-footer__links{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.cm-footer__legal-links{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cm-footer__link{
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  color:inherit;
  text-decoration:none;
  display:inline-block;
  transition:color .2s ease;
}
.cm-footer__link:focus-visible,
.cm-footer__link:hover{
  text-decoration:underline;
  color:#0f172a;
}

/* right: crédit */
.cm-footer__right{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
  font-size:13px;
  font-weight:500;
  line-height:1.5;
  color:#475569;
  text-align:left;
  width:100%;
}
.cm-footer__social{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:flex-start;
}
.cm-footer__social-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#1f2937;
  text-decoration:none;
  font-weight:600;
  font-size:13px;
  padding:4px 0;
  transition:color .2s ease;
}
.cm-footer__social-link:focus-visible,
.cm-footer__social-link:hover{
  color:#0f172a;
  text-decoration:underline;
}
.cm-footer__social-icon{
  width:16px;
  height:16px;
  display:block;
}
.cm-footer__credit{
  color:inherit;
  font-size:inherit;
  font-weight:inherit;
  text-align:inherit;
}
.cm-footer__credit-link{
  color:#1f2937;
  text-decoration:none;
  font-weight:600;
  transition:color .2s ease;
}
.cm-footer__credit-link:focus-visible,
.cm-footer__credit-link:hover{
  color:#0f172a;
  text-decoration:underline;
}
.cm-footer__contact{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#1f2937;
  text-decoration:none;
  font-weight:600;
  font-size:13px;
  transition:color .2s ease;
}
.cm-footer__contact:focus-visible,
.cm-footer__contact:hover{
  color:#0f172a;
  text-decoration:underline;
}
.cm-footer__contact-icon{
  width:16px;
  height:16px;
  display:block;
}

/* ---------- LEGAL PAGES ---------- */
.legal-wrapper{
  max-width:1100px;
  margin:0 auto;
  padding:64px 32px 96px;
  box-sizing:border-box;
}
.legal{
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue",Arial,sans-serif;
  color:#1e293b;
  max-width:720px;
  margin:0;
  padding:0;
  font-size:16px;
  line-height:1.7;
}
.legal h1{
  font-size:30px;
  line-height:1.25;
  margin:0 0 24px;
  font-weight:700;
  color:#0f172a;
}
.legal h2{
  font-size:20px;
  line-height:1.4;
  margin:32px 0 12px;
  font-weight:650;
  color:#0f172a;
}
.legal p{
  margin:0 0 14px;
  color:#475569;
}
.legal ul,
.legal ol{
  margin:0 0 14px 22px;
}
.legal li{ margin-bottom:6px; }
.legal li:last-child{ margin-bottom:0; }
.legal a{ color:#1d4ed8; text-decoration:none; }
.legal a:hover,
.legal a:focus-visible{
  text-decoration:underline;
  outline:none;
}
.legal section{ margin-top:24px; }
.legal .legal__update{ margin-top:12px; font-size:13px; color:#64748b; }

@media (max-width:899px){
  .legal-wrapper{
    padding:56px 24px 80px;
  }
  .legal h1{ font-size:28px; }
  .legal h2{ font-size:18px; }
}

@media (max-width:599px){
  .legal-wrapper{
    padding:40px 18px 64px;
  }
  .legal h1{ font-size:24px; }
  .legal h2{ font-size:17px; }
  .legal ul,
  .legal ol{
    margin-left:18px;
  }
}

/* ---------- CONTACT PAGE ---------- */
.contact-wrapper{
  max-width:1020px;
  margin:0 auto;
  padding:56px 32px 80px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  gap:36px;
}
.contact-header{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:680px;
  position:relative;
  padding-bottom:18px;
}
.contact-header::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:48px;
  height:2px;
  background:#0b2e4c;
  border-radius:999px;
}
.contact-eyebrow{
  font-size:12px;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:#5b7187;
  margin:0;
}
.contact-title{
  font-size:30px;
  line-height:1.3;
  margin:0;
  font-weight:700;
  color:#0f172a;
}
.contact-subtitle{
  margin:0;
  font-size:16px;
  line-height:1.6;
  color:#3f4a5a;
}
.contact-assurances{
  border:1px solid #d8e0ea;
  border-radius:10px;
  padding:18px 22px;
  background:#f7fafc;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.contact-assurances__title{
  margin:0;
  font-size:18px;
  font-weight:650;
  color:#0f172a;
}
.contact-assurances__list{
  margin:0;
  padding-left:18px;
  display:flex;
  flex-direction:column;
  gap:6px;
  color:#475569;
  font-size:15px;
}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
}
.contact-card{
  background:#ffffff;
  border:1px solid #d8e0ea;
  border-radius:10px;
  padding:22px 24px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.contact-card__title{
  font-size:18px;
  font-weight:650;
  margin:0;
  color:#0f172a;
}
.contact-card__content{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:15px;
  color:#475569;
}
.contact-card__content a{
  color:#0b2e4c;
  text-decoration:underline;
  text-underline-offset:3px;
  font-weight:600;
}
.contact-card__content a:hover,
.contact-card__content a:focus-visible{
  color:#08233a;
  outline:none;
}
.contact-card__note{
  font-size:13px;
  color:#5f6b7a;
}
.contact-form-block{
  border:1px solid #d8e0ea;
  border-radius:12px;
  padding:26px 28px;
  background:#ffffff;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.contact-form__intro{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-width:580px;
}
.contact-form__title{
  margin:0;
  font-size:22px;
  font-weight:650;
  color:#0f172a;
}
.contact-form__subtitle{
  margin:0;
  font-size:15px;
  color:#475569;
  line-height:1.5;
}
.contact-form__container{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.cdje92-contact-form-wrapper{
  display:flex;
  flex-direction:column;
  gap:16px;
  width:100%;
}
.cdje92-contact-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.contact-form__notice{
  border-radius:8px;
  padding:12px 14px;
  font-size:14px;
  line-height:1.5;
}
.contact-form__notice--success{
  background:#e6f4ea;
  border:1px solid #9ad0a2;
  color:#215736;
}
.contact-form__notice--error{
  background:#fdeaea;
  border:1px solid #f3b1b1;
  color:#8b1c1c;
}
.contact-form__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px;
}
.contact-form__field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.contact-form__field--full{
  grid-column:1 / -1;
}
.contact-form__label{
  font-size:14px;
  font-weight:600;
  color:#2f3b4a;
}
.contact-form__label span{
  color:#8b1c1c;
  font-weight:400;
  margin-left:4px;
}
.contact-form__input,
.contact-form__textarea{
  border:1px solid #c7d2df;
  border-radius:6px;
  padding:10px 12px;
  font-size:15px;
  font-family:inherit;
  color:#1f2937;
  background:#ffffff;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.contact-form__input:focus,
.contact-form__textarea:focus{
  border-color:#0b2e4c;
  box-shadow:0 0 0 3px rgba(11,46,76,0.15);
  outline:none;
}
.contact-form__textarea{
  min-height:140px;
  resize:vertical;
}
.contact-form__hint{
  font-size:13px;
  color:#64748b;
}
.contact-form__submit{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 22px;
  border-radius:999px;
  border:none;
  background:#0b2e4c;
  color:#ffffff;
  font-weight:600;
  font-size:15px;
  cursor:pointer;
  transition:background-color .2s ease;
}
.contact-form__submit:hover,
.contact-form__submit:focus-visible{
  background:#08233a;
  outline:none;
}
.contact-form__legal{
  font-size:13px;
  color:#64748b;
  line-height:1.5;
}
.contact-form__hidden{
  position:absolute;
  left:-999em;
}
.contact-social{
  border:1px solid #d8e0ea;
  border-radius:10px;
  padding:20px 22px;
  display:flex;
  flex-direction:column;
  gap:12px;
  background:#f2f6fa;
}
.contact-social__title{
  font-size:18px;
  font-weight:650;
  margin:0;
  color:#0f172a;
}
.contact-social__links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.contact-social__link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 14px;
  border-radius:8px;
  background:#ffffff;
  border:1px solid #d8e0ea;
  color:#0b2e4c;
  text-decoration:none;
  font-weight:600;
  transition:border-color .2s ease, background-color .2s ease;
}
.contact-social__link:hover,
.contact-social__link:focus-visible{
  border-color:#0b2e4c;
  background:#e8f1f7;
  outline:none;
}
.contact-social__icon{
  width:16px;
  height:16px;
  display:block;
}

.contact-form__notice:empty{
  display:none;
}

@media (max-width:899px){
  .contact-wrapper{
    padding:48px 24px 72px;
  }
  .contact-grid{
    gap:16px;
  }
  .contact-form-block{
    padding:22px 22px;
  }
}

@media (max-width:599px){
  .contact-wrapper{
    padding:36px 18px 60px;
  }
  .contact-grid{
    gap:14px;
  }
  .contact-card{
    padding:20px 20px;
  }
  .contact-form-block{
    padding:20px 18px;
  }
  .contact-form__grid{
    grid-template-columns:1fr;
  }
  .contact-form__submit{
    width:100%;
    justify-content:center;
  }
  .contact-social{
    padding:18px 18px;
  }
  .contact-social__links{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* ---------- COMMITTEE PAGE ---------- */
.committee{
  max-width:1100px;
  margin:0 auto;
  padding:56px 24px 72px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  gap:48px;
}
.committee-hero{
  position:relative;
  padding-bottom:20px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.committee-hero::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:48px;
  height:2px;
  background:#0b2e4c;
}
.committee-hero__eyebrow{
  font-size:12px;
  font-weight:600;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:#5b7187;
  margin:0;
}
.committee-hero__title{
  margin:0;
  font-size:32px;
  line-height:1.25;
  color:#0f172a;
}
.committee-hero__description{
  margin:0;
  font-size:16px;
  line-height:1.5;
  color:#3f4a5a;
  max-width:680px;
}
.committee-section{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.committee-section__header{
  display:flex;
  flex-direction:column;
  gap:6px;
  border-bottom:1px solid #d8e0ea;
  padding-bottom:6px;
}
.committee-section__header h2{
  margin:0;
  font-size:24px;
  color:#0f172a;
}
.committee-governance__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px;
}
.gov-card{
  background:#ffffff;
  border:1px solid #d8e0ea;
  border-radius:10px;
  padding:20px 22px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.gov-card__title{
  margin:0;
  font-size:16px;
  font-weight:650;
  color:#0f172a;
}
.gov-card__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.gov-card__list li{
  position:relative;
  padding-left:16px;
  font-size:15px;
  color:#1f2937;
}
.gov-card__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#0b2e4c;
}
.gov-card__role{
  display:block;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#637187;
  font-weight:600;
}
.gov-card__name{
  display:block;
  font-weight:650;
  color:#0f172a;
}
.committee-figures__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:16px;
}
.figure-card{
  background:#ffffff;
  border:1px solid #d8e0ea;
  border-radius:10px;
  padding:18px 18px 20px;
  display:flex;
  flex-direction:column;
  gap:6px;
  border-left:4px solid #0b2e4c;
}
.figure-card__value{
  font-size:34px;
  font-weight:700;
  color:#0b2e4c;
  line-height:1.2;
}
.figure-card__label{
  font-size:15px;
  color:#1f2937;
}
.figure-card__note{
  font-size:13px;
  color:#637187;
}
.committee-docs__list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid #d8e0ea;
}
.committee-docs__list li{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid #d8e0ea;
}
.committee-docs__title{
  font-weight:600;
  color:#0f172a;
}
.committee-docs__actions{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:14px;
}
.committee-docs__actions a{
  color:#0b2e4c;
  text-decoration:underline;
  text-underline-offset:3px;
  font-weight:600;
}
.committee-partners__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:16px;
}
.partner-card{
  background:#ffffff;
  border:1px solid #d8e0ea;
  border-radius:10px;
  padding:18px 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.partner-card__logo{
  width:100%;
  max-width:120px;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.partner-card__logo img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.partner-card__caption{
  margin:0;
  font-size:13px;
  color:#475569;
  text-align:center;
}
.committee-callout{
  border:1px solid #0b2e4c;
  border-radius:12px;
  background:#f2f6fa;
  padding:24px 26px;
}
.committee-callout__inner{
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:flex-start;
}
.committee-callout__inner h2{
  margin:0;
  font-size:21px;
  color:#0b2e4c;
}
.committee-callout__inner p{
  margin:0;
  font-size:15px;
  color:#2e3a4a;
}
.committee-callout__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.committee-callout__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 18px;
  border-radius:20px;
  font-weight:600;
  font-size:14px;
  text-decoration:none;
  background:#0b2e4c;
  color:#ffffff;
}
.committee-callout__link--ghost{
  background:transparent;
  border:1px solid #0b2e4c;
  color:#0b2e4c;
}

@media (max-width:1023px){
  .committee{
    padding:48px 24px 64px;
    gap:40px;
  }
  .committee-hero__title{
    font-size:30px;
  }
}

@media (max-width:767px){
  .committee{
    padding:40px 18px 56px;
    gap:32px;
  }
  .committee-hero__title{
    font-size:26px;
  }
  .committee-hero__description{
    font-size:15px;
  }
  .committee-docs__list li{
    flex-direction:column;
    align-items:flex-start;
  }
  .committee-docs__actions{
    justify-content:flex-start;
  }
  .committee-callout{
    padding:20px 20px;
  }
}

@media (max-width:479px){
  .committee{
    padding:32px 16px 48px;
  }
  .figure-card__value{
    font-size:30px;
  }
  .committee-callout__link{
    width:100%;
    justify-content:center;
  }
}

@media (prefers-reduced-motion: reduce){
  .committee-callout__link{
    transition:none;
  }
}
/* Desktop layout */
@media (min-width:900px){
  .cm-footer__container{
    flex-direction:row;
    align-items:flex-start;
    justify-content:space-between;
    gap:48px;
  }

  .cm-footer__left{
    flex:0 0 auto;
    justify-content:flex-start;
  }

  .cm-footer__center{
    flex:1 1 auto;
    flex-direction:row;
    justify-content:flex-start;
    gap:48px;
  }
  .cm-footer__list-block{
    min-width:180px;
  }

  .cm-footer__right{
    flex:0 0 auto;
    align-items:flex-end;
    text-align:right;
    width:auto;
  }

  .cm-footer__social{
    justify-content:flex-end;
  }
}

/* Fallback: styles si WP sert le contenu par défaut au lieu de notre template fichier */
.page-slug-mentions-legales .wp-block-post-content,
.page-slug-politique-confidentialite .wp-block-post-content{
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue",Arial,sans-serif;
  color:#1e293b;
  max-width:760px;
  margin:80px auto 120px;
  padding:0 48px;
  box-sizing:border-box;
  font-size:16px;
  line-height:1.7;
}

/* ---------- CLUBS DIRECTORY ---------- */
.clubs-page{
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue",Arial,sans-serif;
  color:#0f172a;
  max-width:960px;
  margin:0 auto;
  padding:40px 16px 72px;
  box-sizing:border-box;
}
.clubs-page h1{
  font-size:36px;
  line-height:1.08;
  margin-bottom:8px;
  letter-spacing:-0.01em;
}
.clubs-page p{
  font-size:15px;
  line-height:1.6;
  margin-bottom:14px;
}
.clubs-search-block{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:20px;
  margin:24px 0 20px;
  border:1px solid #d6dbe7;
  border-radius:12px;
  background:#f5f7fb;
}
.clubs-field{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:#1f2937;
}
.clubs-field span{
  font-weight:600;
  color:#0f172a;
}
.clubs-input,
#clubs-location{
  width:100%;
  padding:12px 14px;
  border-radius:8px;
  border:1px solid #c7cfde;
  font-size:15px;
  line-height:1.4;
  background:#ffffff;
  box-sizing:border-box;
}
.clubs-input:focus,
#clubs-location:focus{
  outline:2px solid #1d4ed8;
  outline-offset:1px;
}
.clubs-search__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.clubs-search__status{
  min-height:20px;
  margin:0;
  font-size:13px;
  color:#334155;
}
.clubs-search__status[data-tone="success"]{
  color:#166534;
}
.clubs-search__status[data-tone="error"]{
  color:#b91c1c;
}
.clubs-options{
  margin:0 0 28px;
  border:1px solid #d6dbe7;
  border-radius:12px;
  background:#f9fafc;
  overflow:hidden;
}
.clubs-options>summary{
  padding:16px 20px;
  font-weight:600;
  font-size:15px;
  color:#0f172a;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  list-style:none;
}
.clubs-options>summary::after{
  content:'+';
  font-size:16px;
  font-weight:600;
  color:#1f2937;
}
.clubs-options>summary::marker,
.clubs-options>summary::-webkit-details-marker{
  display:none;
}
.clubs-options[open]>summary{
  border-bottom:1px solid #d6dbe7;
}
.clubs-options[open]>summary::after{
  content:'-';
}
.clubs-options__inner{
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:20px;
}
.clubs-location-box{
  background:#ffffff;
  border:1px solid #dce2ef;
  border-radius:10px;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.clubs-location-box__header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.clubs-location-box__header h2{
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#475569;
  margin:0;
}
.link-button{
  padding:0;
  border:none;
  background:none;
  color:#1d4ed8;
  font-weight:600;
  font-size:13px;
  text-decoration:underline;
  cursor:pointer;
}
.link-button:hover,
.link-button:focus-visible{
  color:#173eae;
  outline:none;
}
.clubs-location__label{
  font-size:14px;
  font-weight:600;
  color:#0f172a;
}
.clubs-location__control{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
}
#clubs-location{
  margin:0 0 10px 0;
}
#clubs-location-apply{
  margin:0 10px 0 0;
}
.clubs-location__status{
  min-height:20px;
  margin:0;
  font-size:13px;
  color:#334155;
}
.clubs-location__status[data-tone="success"]{
  color:#166534;
}
.clubs-location__status[data-tone="error"]{
  color:#b91c1c;
}
.clubs-map-box{
  background:#ffffff;
  border:1px solid #dce2ef;
  border-radius:10px;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.clubs-map-box h2{
  margin:0;
  font-size:16px;
  color:#0f172a;
}
.clubs-map-box p{
  margin:0;
  font-size:14px;
  color:#334155;
}
.clubs-map-box__cta{
  align-self:flex-start;
}
.clubs-sort-box{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid #e2e8f0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.clubs-sort-box h2{
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#475569;
  margin:0;
}
.clubs-sort__buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.clubs-sort__button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:14px;
  font-weight:600;
  color:#1d4ed8;
  background:#e8f1ff;
  border:1px solid #dbeafe;
  border-radius:999px;
  padding:6px 16px;
  cursor:pointer;
  transition:background-color .2s ease, border-color .2s ease, color .2s ease;
}
.clubs-sort__button:hover,
.clubs-sort__button:focus-visible{
  color:#0f172a;
  background:#dbeafe;
  border-color:#bfdbfe;
  outline:none;
}
.clubs-sort__button.is-active{
  color:#ffffff;
  background:#1d4ed8;
  border-color:#1d4ed8;
}
.clubs-sort__button.is-active:hover,
.clubs-sort__button.is-active:focus-visible{
  color:#ffffff;
  background:#1e40af;
  border-color:#1e3a8a;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 18px;
  border-radius:8px;
  border:1px solid #0f172a;
  background:#0f172a;
  color:#ffffff;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
}
.btn:hover,
.btn:focus-visible{
  background:#1e293b;
  border-color:#1e293b;
  outline:none;
}
.btn:active{
  transform:none;
}
.btn[disabled]{
  opacity:.6;
  cursor:progress;
}
.btn-secondary{
  background:#ffffff;
  color:#0f172a;
  border-color:#a3acc2;
}
.btn-secondary:hover,
.btn-secondary:focus-visible{
  background:#e6ebf4;
  border-color:#7b869b;
}
.clubs-total{
  font-size:15px;
  font-weight:600;
  color:#1d4ed8;
  margin:0;
}
.clubs-results-wrapper{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-top:24px;
}
.clubs-list{
  display:flex;
  flex-direction:column;
  gap:16px;
  position:relative;
}
#clubs-results.is-loading{
  opacity:0.55;
  pointer-events:none;
}
#clubs-results.is-loading::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  height:3px;
  width:100%;
  background:linear-gradient(90deg,#1d4ed8 0%,#60a5fa 50%,#1d4ed8 100%);
  transform-origin:left center;
  animation:clubsLoadingBar 1.4s ease-in-out infinite;
  z-index:2;
}
#clubs-results.is-loading::after{
  content:attr(data-loading-label);
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
  font-size:15px;
  color:#1d4ed8;
  background:rgba(245,247,251,0.92);
  z-index:1;
}
@keyframes clubsLoadingBar{
  0%{
    transform:scaleX(0);
    opacity:0.4;
  }
  35%{
    transform:scaleX(0.45);
    opacity:0.75;
  }
  70%{
    transform:scaleX(0.75);
    opacity:0.9;
  }
  100%{
    transform:scaleX(1);
    opacity:0.6;
  }
}
.clubs-more-button{
  align-self:flex-start;
  font-size:14px;
  font-weight:600;
  color:#0f172a;
  text-decoration:underline;
  display:inline-flex;
  padding:0;
  margin-top:8px;
}
.clubs-more-button:hover,
.clubs-more-button:focus-visible{
  color:#1d4ed8;
  outline:none;
}
.club-row{
  list-style:none;
}
.club-row__card{
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:24px 26px;
  border:1px solid #ccd8f0;
  border-radius:14px;
  background:#ffffff;
  text-decoration:none;
  color:#0f172a;
  transition:border-color .2s ease, background-color .2s ease;
  cursor:pointer;
  width:100%;
  box-sizing:border-box;
}
.club-row__card:hover,
.club-row__card:focus-visible{
  border-color:#1d4ed8;
  background:#eef3ff;
}
.club-row__card:focus-visible{
  outline:3px solid rgba(37,99,235,0.35);
  outline-offset:2px;
}
.club-row__top{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.club-row__heading{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  flex:1 1 auto;
  min-width:0;
}
.club-row__name{
  margin:0;
  font-size:20px;
  font-weight:700;
  color:#0f172a;
  line-height:1.3;
}
.club-row__commune{
  font-size:16px;
  font-weight:600;
  color:#1d4ed8;
  line-height:1.35;
  word-break:break-word;
}
.club-row__distance{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  font-size:13px;
  font-weight:600;
  color:#1d4ed8;
  background:#e8f1ff;
  border-radius:999px;
  padding:4px 14px;
  white-space:nowrap;
  flex-shrink:0;
  max-width:100%;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  order:-1;
  margin-bottom:2px;
  margin-top:2px;
}
.club-row__distance[data-tone="onsite"]{
  color:#047857;
  background:#d1fae5;
}
.club-row__card:hover .club-row__distance[data-tone="onsite"],
.club-row__card:focus-visible .club-row__distance[data-tone="onsite"]{
  text-decoration:underline;
  text-decoration-color:#047857;
}
.club-row__footer{
  display:flex;
  align-items:center;
  gap:10px;
  color:#1d4ed8;
  font-size:14px;
  font-weight:600;
  padding-top:12px;
  border-top:1px solid #eef2ff;
}
.club-row__card:hover .club-row__footer,
.club-row__card:focus-visible .club-row__footer{
  color:#0f172a;
}
.club-row__cta{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.club-row__cta::after{
  content:'›';
  font-size:18px;
  line-height:1;
  font-weight:700;
  transition:transform .2s ease;
}
.club-row__card:hover .club-row__cta::after,
.club-row__card:focus-visible .club-row__cta::after{
  transform:translateX(2px);
}
@media (min-width:600px){
  .club-row__top{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
  }
  .club-row__heading{
    gap:6px;
  }
  .club-row__distance{
    order:initial;
    align-self:center;
    margin-left:auto;
    margin-bottom:0;
    margin-top:0;
  }
}

@media (max-width:599px){
  .club-row__top .club-row__name{
    margin:6px 0 6px !important;
  }
}
@media (min-width:720px){
  .club-row__card{
    padding:26px 28px;
  }
  .club-row__name{
    font-size:21px;
  }
}
@media (prefers-reduced-motion:reduce){
  .club-row__card{
    transition:none;
  }
  .club-row__card:hover,
  .club-row__card:focus-visible{
    transform:none;
  }
  .club-row__card:hover .club-row__cta::after,
  .club-row__card:focus-visible .club-row__cta::after{
    transform:none;
  }
}
.clubs-empty,
.clubs-error{
  padding:20px;
  border-radius:12px;
  background:#fef2f2;
  border:1px solid #fecaca;
  color:#991b1b;
  font-weight:600;
  text-align:center;
}
.clubs-help{
  margin-top:24px;
  font-size:14px;
  color:#475569;
}
.legal .clubs-help{
  margin-top:24px;
}
.clubs-help a{
  color:#1d4ed8;
  text-decoration:none;
}
.clubs-help a:hover,
.clubs-help a:focus-visible{
  text-decoration:underline;
  outline:none;
}
.clubs-map__back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:16px;
}
.clubs-map-section{
  margin:32px 0;
}
.clubs-map__container{
  border:1px solid #d6dbe7;
  border-radius:12px;
  overflow:hidden;
  background:#f8fafc;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,0.02);
}
.clubs-map{
  width:100%;
  height:520px;
}
.clubs-map__status{
  margin:0;
  padding:12px 16px;
  font-size:13px;
  color:#334155;
  background:#ffffff;
  border-top:1px solid #e2e8f0;
}
.clubs-map__status[data-tone="success"]{
  color:#166534;
}
.clubs-map__status[data-tone="error"]{
  color:#b91c1c;
}
.club-map-section{
  margin-top:32px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.club-map__heading{
  margin:0;
  font-size:18px;
  font-weight:600;
  color:#0f172a;
}
.club-map__container{
  border:1px solid #d6dbe7;
  border-radius:12px;
  overflow:hidden;
  background:#f8fafc;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,0.02);
}
.club-map{
  width:100%;
  height:440px;
}
.club-map__status{
  margin:0;
  padding:12px 16px;
  font-size:13px;
  color:#334155;
  background:#ffffff;
  border-top:1px solid #e2e8f0;
}
.club-map__status[data-tone="success"]{
  color:#166534;
}
.club-map__status[data-tone="error"]{
  color:#b91c1c;
}
.club-map__directions{
  display:none;
  align-self:stretch;
  justify-content:center;
  box-sizing:border-box;
  width:100%;
  margin:0;
}
.club-detail-page{
  border:1px solid #d0d7e7;
  border-radius:12px;
  background:#ffffff;
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  gap:24px;
}
.club-detail__back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:24px;
  align-self:flex-start;
  font-size:14px;
  font-weight:600;
  color:#0f172a;
  text-decoration:underline;
}
.club-detail__back:hover,
.club-detail__back:focus-visible{
  color:#1d4ed8;
  outline:none;
}
.club-chip{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  background:#e2e8f0;
  color:#0f172a;
}
.club-chip--distance{
  background:#dbeafe;
  color:#1d4ed8;
}
.club-sheet{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.club-sheet__header{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.club-sheet__title{
  font-size:30px;
  margin:0;
  color:#0f172a;
}
.club-sheet__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.club-sheet__summary{
  font-size:15px;
  color:#475569;
  margin:0;
}
.club-sheet__share{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:14px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
}
.club-sheet__share-label{
  font-weight:600;
  color:#0f172a;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.club-sheet__share-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.club-share-button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:14px;
  font-weight:600;
  color:#1d4ed8;
  background:#e8f1ff;
  border:1px solid #dbeafe;
  border-radius:999px;
  padding:6px 16px;
  cursor:pointer;
  transition:background-color .2s ease, border-color .2s ease, color .2s ease;
}
.club-share-button:hover,
.club-share-button:focus-visible{
  color:#0f172a;
  background:#dbeafe;
  border-color:#bfdbfe;
  outline:none;
}
.club-share-button[data-tone="error"]{
  color:#b91c1c;
  border-color:#fecaca;
  background:#fee2e2;
}
.club-share-button[data-tone="error"]:hover,
.club-share-button[data-tone="error"]:focus-visible{
  color:#b91c1c;
  border-color:#fca5a5;
  background:#fecaca;
}
.club-share-button--primary{
  color:#fff;
  background:#1d4ed8;
  border-color:#1d4ed8;
}
.club-share-button--primary:hover,
.club-share-button--primary:focus-visible{
  color:#fff;
  background:#1e40af;
  border-color:#1e3a8a;
}
.club-section{
  border-top:1px solid #e2e8f0;
  padding-top:20px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.club-section:first-of-type{
  border-top:none;
  padding-top:0;
}
.club-section h2{
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:0;
  color:#475569;
}
.club-section__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  font-size:15px;
  color:#1f2937;
}
.club-section__item{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.club-section__label{
  font-weight:600;
  color:#0f172a;
}
.club-section__value{
  color:#1f2937;
}
.club-section__value a{
  color:#1d4ed8;
  text-decoration:none;
}
.club-section__value a:hover,
.club-section__value a:focus-visible{
  text-decoration:underline;
  outline:none;
}
@media (min-width:960px){
  .clubs-page{
    padding:56px 24px 96px;
  }
  .clubs-list{
    display:flex;
    flex-direction:column;
    gap:16px;
  }
}
@media (max-width:599px){
  .clubs-search-block{
    padding:16px;
  }
  .clubs-options>summary{
    padding:14px 16px;
  }
  .clubs-options__inner{
    padding:16px;
  }
  .clubs-location__control{
    flex-direction:column;
    align-items:stretch;
  }
  #clubs-location-apply{
    margin:0 0 10px 0;
  }
  #clubs-location-apply,
  #clubs-use-geoloc{
    width:100%;
  }
  .clubs-map{
    height:360px;
  }
  .club-map{
    height:320px;
  }
  .club-map__directions{
    display:inline-flex;
    margin-top:4px;
  }
}
