:root{
  --bg:#f6f7fb; --ink:#0f172a; --muted:#6b7280;
  --brand:#ff7a1a; --brand-2:#ff4d00; --blue:#2563eb;
  --card:#ffffff; --line:rgba(15,23,42,.08);
}

/* base */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font:16px/1.55 system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink); background:var(--bg);
}
a{color:var(--blue); text-decoration:none}
.container{max-width:1120px; margin-inline:auto; padding-inline:16px}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:.5rem; padding:.9rem 1.2rem;
  border-radius:12px; font-weight:600; transition:.2s}
.btn.small{padding:.55rem .9rem; font-size:.9rem}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff; box-shadow:0 10px 24px rgba(255,122,26,.25)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-outline{border:2px solid var(--ink); color:var(--ink); background:#fff}
.btn-outline:hover{background:#f8fafc}
.btn-ghost{border:2px solid #fff; color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.1)}.btn{display:inline-flex; align-items:center; gap:.5rem; padding:.9rem 1.2rem;
  border-radius:12px; font-weight:600; transition:.2s}

/* header */
.site-header{position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line)}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:14px; padding-block:10px}
.brand-logo{height:75px}
.nav-right{display:flex; align-items:center; gap:14px}
.navlink{color:var(--ink); opacity:.9}
.navlink:hover{opacity:1}
.lang-switch{display:flex; align-items:center; gap:.35rem; margin-left:6px}
.lang{color:var(--ink); opacity:.7}
.lang.active{color:var(--brand-2); opacity:1}
.sep{opacity:.4}

/* hero */
.hero{background:linear-gradient(135deg,#ff7a1a 0%,#ff4d00 38%, #ff6a00 100%); color:#fff; padding:56px 0}
.hero-inner{display:grid; grid-template-columns:1.15fr .95fr; gap:32px; align-items:center}
.hero-copy h1{font-size:52px; margin:0 0 12px}
.hero-copy p{font-size:18px; opacity:.95}
.hero-actions{display:flex; gap:12px; margin-top:18px}
.hero-art{display:flex; justify-content:center}
.hero-img{width:100%; max-width:520px; border-radius:28px; box-shadow:0 14px 40px rgba(0,0,0,.25)}

/* family CTA */
.family-cta{padding:80px 0}
.family-cta-inner{display:grid; grid-template-columns:1.1fr .9fr; gap:18px; align-items:center;
  background:linear-gradient(120deg,#fff, #fff7f0); border-radius:20px; padding:28px; box-shadow:0 10px 24px rgba(15,23,42,.06)}
.cta-left h2{margin:0 0 6px}
.cta-left p{margin:0 0 12px; color:var(--muted)}
.cta-actions{display:flex; gap:10px}
/* Accès familles */
.cta-right img{
  max-width: 280px;   /* 180px -> 280px */
  width: 100%;
  display: block;
  margin-inline: auto;
  border-radius: 14px;              
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
}

@media (max-width: 980px){
  .cta-right img{ max-width: 220px; }
}



/* sections */
.section{padding:56px 0}
.section-muted{background:#fff}
.section-title{text-align:center; margin:0 0 24px}

/* ===== Fonctionnalités ===== */
.section { padding: 56px 0; }
.section-title {
  text-align: center; font-size: 28px; font-weight: 800;
  margin: 0 0 28px; color: var(--ink);
}

.features-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(280px,1fr));
  gap:24px;
  max-width:1100px;
  margin:0 auto;
}

@media (max-width: 900px){
  .features-grid{ grid-template-columns:1fr; }
}

.feature-card{
  background:#fff; border-radius:16px; padding:24px;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
  text-align:center; display:flex; flex-direction:column; gap:12px;
}

.feature-card h3{ margin:0; font-size:20px; font-weight:700; }
.feature-card p{ margin:0; color:#52606d; }

.f-icon{
  width:56px;height:56px; border-radius:16px;
  display:inline-grid; place-items:center;
  font-size:26px; color:#fff;
  background: linear-gradient(135deg,#ff7a1a,#ff5400);
  margin:0 auto 4px;
  box-shadow:0 8px 18px rgba(255,84,0,.25);
}


.partners-slider{
  overflow:hidden; border-radius:18px; background:#fff;
  border:1px solid var(--line); padding:14px; box-shadow:0 10px 20px rgba(15,23,42,.04)
}
.partners-slider .track{
  display:flex; gap:24px; align-items:center;
  animation:slide-left 28s linear infinite
}
.partners-slider:hover .track{ animation-play-state: paused }
@keyframes slide-left{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }

.p-item{
  flex:0 0 auto; position:relative; width:210px; height:110px;
  display:grid; place-items:center; background:#fff; border-radius:14px;
  border:1px solid var(--line); box-shadow:0 6px 14px rgba(15,23,42,.06)
}
.p-item img{max-width:86%; max-height:70%; object-fit:contain; filter:none}
.verified{
  position:absolute; top:8px; left:10px; font-size:.75rem; font-weight:700;
  color:#0a7a2a; background:#e8f9ee; border:1px solid #b7efd0;
  padding:.15rem .4rem; border-radius:999px
}
@media (max-width: 980px){
  .p-item{ width:160px; height:96px }
}

/* about */
.about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:24px; align-items:center}
.about-img{width:100%; border-radius:18px; box-shadow:0 10px 26px rgba(0,0,0,.08)}

/* how */
.how-steps{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px}
.step{background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px}
.step-index{display:inline-grid; place-items:center; width:28px;height:28px; border-radius:50%;
  background:var(--brand-2); color:#fff; font-weight:700; margin-bottom:8px}

/* testimonials */
.testi-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px}
.testi-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px; text-align:center}
.testi-avatar{width:76px; height:76px; border-radius:50%; object-fit:cover; display:block; margin:0 auto 10px}

/* footer */
.site-footer{background:#0f172a; color:#cbd5e1; margin-top:32px}
.footer-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:24px; padding:28px 16px}
.foot-logo{height:60px; display:block; margin-bottom:12px}
.foot-contact h4{color:#fff; margin:6px 0}
.foot-contact .mail{color:#fff; text-decoration:underline}
.newsletter h4{color:#fff}
.nl-form{display:flex; gap:8px; margin-top:8px}
.nl-form input{flex:1; padding:.7rem .9rem; border-radius:10px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff}
.nl-form input::placeholder{color:#cbd5e1}
.footer-payments{margin-top:16px; text-align:center}
.footer-payments h4{color:#fff; font-size:1.05rem; margin-bottom:.6rem}
.payment-logos{display:flex; gap:16px; justify-content:center; align-items:center; flex-wrap:wrap}
.payment-logos img{height:30px; object-fit:contain; filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)); transition:.2s}
.payment-logos img:hover{transform:scale(1.08)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.08); padding:12px 0; text-align:center}
.foot-bottom a{color:#fff}

/* responsive */
@media (max-width: 980px){
  .hero-inner{grid-template-columns:1fr; text-align:center}
  .hero-actions{justify-content:center}
  .about-grid{grid-template-columns:1fr}
  .family-cta-inner{grid-template-columns:1fr; text-align:center}
  .feature-grid{grid-template-columns:1fr}
  .how-steps{grid-template-columns:repeat(2,1fr)}
  .testi-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .how-steps{grid-template-columns:1fr}
  .testi-grid{grid-template-columns:1fr}
}

/* ===== Pricing ===== */
.section-sub{ text-align:center; color:#667; margin:-10px 0 26px; }

.pricing-grid{
  max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,minmax(260px,1fr));
  gap:24px;
}

@media (max-width: 1050px){ .pricing-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 700px){ .pricing-grid{ grid-template-columns:1fr; } }

.price-card{
  position:relative; background:#fff; border-radius:18px; padding:26px 22px 24px;
  box-shadow:0 12px 30px rgba(0,0,0,.07); display:flex; flex-direction:column; gap:14px;
}

.price-card h3{ margin:0; font-size:20px; font-weight:800; }
.price-card .punch{ font-size:28px; font-weight:900; margin:2px 0 6px; }
.price-card .punch span{ font-size:14px; font-weight:600; color:#6b7280; margin-left:6px; }

.price-card .feat{ list-style:none; padding:0; margin:0 0 10px; display:grid; gap:8px; color:#52606d; }
.price-card .feat li::before{ content:"✓"; color:#22c55e; margin-right:8px; }

.price-card .btn-primary,
.price-card .btn-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:44px; border-radius:12px; text-decoration:none; font-weight:700;
}

.price-card .btn-primary{
  background: linear-gradient(135deg,#ff7a1a,#ff5400); color:#fff;
  box-shadow:0 10px 24px rgba(255,84,0,.25);
}

.price-card .btn-ghost{
  border:2px solid #e6e7eb; color:#111827; background:#fff;
}

.price-card.popular{ outline:3px solid rgba(255,124,32,.15); }
.price-card .badge{
  position:absolute; top:14px; right:14px; font-size:12px; font-weight:800;
  background:#fff3e8; color:#ff6a00; border:1px solid #ffd9bf; border-radius:999px;
  padding:6px 10px;
}

/* Accès familles – contrôle de l'image */
.family-cta .cta-img {
  width: 260px;         /* ajuste 240–320 si besoin */
  max-width: 30vw;      /* protège sur grands écrans */
  height: auto;
  border-radius: 14px;
  object-fit: cover;
}

/* En mobile, l'image passe pleine largeur mais reste raisonnable */
@media (max-width: 720px){
  .family-cta .cta-img {
    width: 100%;
    max-width: 420px;
    margin: 12px auto 0;
    display: block;
  }
}
/* Bouton héros contrasté */
.hero .btn-primary {
  background: #fff;
  color: #f76a0a;
  border: 2px solid #f76a0a;
}

.hero .btn-primary:hover {
  background: #f76a0a;
  color: #fff;
}

/* Ajustement image Accès familles */
.family-cta .cta-img {
  max-width: 180px;   /* largeur max fixée */
  border-radius: 12px;
  margin-left: auto;
}

/* === Communauté : carte blanche harmonisée === */
.community-landing{
  max-width:1200px; margin:2.5rem auto; padding:0 1rem;
}
.community-landing__wrap{
  border:1px solid #eee; border-radius:18px; background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
  padding:1.25rem;
}
.community-landing__head{ text-align:center; margin-bottom:1.25rem; }
.community-landing__head h2{ margin:.25rem 0 .35rem; font-size:1.7rem; }
.community-landing__head p{ margin:0; color:#444; }

.community-grid{
  display:grid; gap:1rem; grid-template-columns: repeat(4, 1fr);
}
.c-card{
  display:block; text-decoration:none; color:inherit;
  background:#fff; border:1px solid #eee; border-radius:16px; padding:1rem;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  transition:.15s ease transform, .15s ease box-shadow;
}
.c-card:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,.12); }
.c-card__icon{ font-size:1.6rem; }
.c-card h3{ margin:.5rem 0 .25rem; font-size:1.1rem; }
.c-card p{ margin:0; color:#555; font-size:.95rem; }

.community-cta{
  display:flex; justify-content:center; align-items:center;
  gap:1rem; margin-top:1.25rem;
}
.community-cta__btn{
  display:inline-block; background:#111; color:#fff; text-decoration:none;
  padding:.75rem 1.1rem; border-radius:12px; font-weight:800;
}
.community-cta__link{ color:#111; text-decoration:underline; }

@media (max-width: 1000px){
  .community-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .community-grid{ grid-template-columns: 1fr; }
}

/* === Section Vidéo === */
.video-promo{
  display:grid; gap:1.25rem; align-items:center;
  grid-template-columns: 1.2fr 1fr;
  max-width:1200px; margin:2rem auto; padding:0 1rem;
}
.video-promo__media{
  position:relative; width:100%; aspect-ratio:16 / 9;
  border-radius:16px; overflow:hidden; box-shadow:0 10px 26px rgba(0,0,0,.12);
  background:#000;
}
.video-promo__media video{ width:100%; height:100%; object-fit:cover; display:block; }
.video-promo__content h2{ margin:.25rem 0 .5rem; font-size:1.6rem; }
.video-promo__content p{ margin:0 0 1rem; color:#333; }

.btn-admin-cta{
  display:inline-block; background:#FB8515; color:#111; font-weight:800;
  text-decoration:none; padding:.7rem 1rem; border-radius:12px;
  box-shadow:0 6px 16px rgba(251,133,21,.35);
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-admin-cta:hover{ transform:translateY(-1px); box-shadow:0 10px 22px rgba(251,133,21,.5); }

@media (max-width: 900px){
  .video-promo{ grid-template-columns: 1fr; }
}

/* === Section Vidéo === */
.video-section{
  background:#fafafa;
  padding:2.5rem 1rem;
}
.video-section__container{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:2rem;
  align-items:center;
}
.video-section__media{
  position:relative;
  aspect-ratio:16 / 9;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
  background:#000;
}
.video-section__media video{
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.video-section__content h2{
  font-size:1.8rem; margin:.25rem 0 .75rem;
}
.video-section__content p{
  font-size:1rem; color:#444; margin:0 0 1.25rem;
}
.btn-primary{
  display:inline-block;
  background:#FB8515; color:#fff; font-weight:700;
  text-decoration:none; padding:.8rem 1.2rem;
  border-radius:12px; margin-right:.75rem;
  transition:.2s ease;
}
.btn-primary:hover{ background:#e66d0e; }
.btn-admin-cta{
  display:inline-block; background:#111; color:#fff;
  padding:.75rem 1.1rem; border-radius:12px;
  font-weight:700; text-decoration:none;
  transition:.2s ease; box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.btn-admin-cta:hover{ transform:translateY(-2px); }

@media (max-width: 900px){
  .video-section__container{ grid-template-columns: 1fr; }
  .video-section__content{ text-align:center; }
}

/* === Section Vidéo (fond blanc) === */
.video-section{
  background:#fff;                 /* fond blanc demandé */
  padding:2.5rem 1rem;
}
.video-section__container{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:2rem;
  align-items:center;
  border:1px solid #eee;           /* léger cadre pour détacher du reste (optionnel) */
  border-radius:18px;              /* coins doux */
  padding:1.25rem;                 /* respiration interne du conteneur */
  box-shadow:0 10px 24px rgba(0,0,0,.06); /* ombre douce (optionnel) */
  background:#fff;                 /* conteneur interne blanc aussi */
}
.video-section__media{
  position:relative;
  aspect-ratio:16 / 9;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
  background:#000;
}
.video-section__media video{
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.video-section__content h2{
  font-size:1.8rem; margin:.25rem 0 .75rem;
}
.video-section__content p{
  font-size:1rem; color:#444; margin:0 0 1.25rem;
}
.btn-primary{
  display:inline-block;
  background:#FB8515; color:#fff; font-weight:700;
  text-decoration:none; padding:.8rem 1.2rem;
  border-radius:12px; margin-right:.75rem;
  transition:.2s ease;
}
.btn-primary:hover{ background:#e66d0e; }
.btn-admin-cta{
  display:inline-block; background:#111; color:#fff;
  padding:.75rem 1.1rem; border-radius:12px;
  font-weight:700; text-decoration:none;
  transition:.2s ease; box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.btn-admin-cta:hover{ transform:translateY(-2px); }

/* === Menu principal + sous-menu === */
.menu{ display:flex; list-style:none; gap:1rem; margin:0; padding:0; }
.menu > li{ position:relative; }
.menu > li > a{ text-decoration:none; color:#333; font-weight:500; padding:.35rem .25rem; display:inline-block; }

/* Sous-menu */
.has-submenu .submenu{
  position:absolute; top:100%; left:0;
  background:#fff; border:1px solid #eee; border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  list-style:none; margin:.5rem 0 0; padding:.4rem;
  min-width:220px; display:none; z-index:20;
}
.has-submenu:hover .submenu{ display:block; }
.submenu li a{
  display:block; padding:.55rem .7rem; text-decoration:none; color:#222; border-radius:8px;
}
.submenu li a:hover{ background:#f6f6f6; }
.submenu .sep{ height:1px; margin:.35rem .4rem; background:#eee; }

/* Mobile : le survol n’existe pas, on garde visible via JS plus tard si besoin */
@media (max-width: 900px){
  .has-submenu .submenu{ position:static; box-shadow:none; border:0; margin:0; padding:.2rem 0; }
}

@media (max-width: 900px){
  .video-section__container{ grid-template-columns: 1fr; }
  .video-section__content{ text-align:center; }
}

/* Contexte de positionnement */
.main-nav { position: relative; }
.nav-right { position: relative; }

/* Le parent du sous-menu doit être "relative" */
.menu > li { position: relative; }
.has-submenu { position: relative; }

/* Sous-menu aligné à DROITE du bouton "Mon compte" */
.has-submenu .submenu{
  position: absolute;
  top: 100%;
  right: 0;         /* <- aligne le bord droit */
  left: auto;       /* évite le "collage" à gauche */
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
  list-style: none;
  margin: .5rem 0 0;
  padding: .4rem;
  min-width: 220px;
  display: none;
  z-index: 1000;
}

.has-submenu:hover .submenu { display: block; }

/* Liens internes */
.submenu li a{
  display:block; padding:.55rem .7rem;
  text-decoration:none; color:#222; border-radius:8px;
}
.submenu li a:hover{ background:#f6f6f6; }
.submenu .sep{ height:1px; margin:.35rem .4rem; background:#eee; }

/* Nav alignée: menu à gauche, switch langue à droite */
.main-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: .75rem 1rem;
}

.nav-left { display:flex; align-items:center; gap:2rem; }
.nav-right { display:flex; align-items:center; }

.lang-switch { display:inline-flex; gap:.5rem; align-items:center; }
.lang-link { display:inline-flex; align-items:center; gap:.35rem; }

/* Contexte et layout nav */
.main-nav{ position:relative; display:flex; justify-content:space-between; align-items:center; max-width:1200px; margin:0 auto; padding:.75rem 1rem; }
.nav-left{ display:flex; align-items:center; gap:2rem; }
.nav-right{ display:flex; align-items:center; position:relative; }

/* Menu & sous-menu */
.menu{ display:flex; list-style:none; gap:1rem; margin:0; padding:0; }
.menu > li{ position:relative; }
.menu > li > a{ text-decoration:none; color:#333; font-weight:500; padding:.35rem .25rem; display:inline-block; }

.has-submenu { position:relative; }
.has-submenu .submenu{
  position:absolute; top:100%; right:0; left:auto;
  background:#fff; border:1px solid #eee; border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  list-style:none; margin:.5rem 0 0; padding:.4rem;
  min-width:220px; display:none; z-index:1000;
}

/* Hover + clavier (focus-within) : restent ouverts */
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu{ display:block; }

/* "Pont" anti-trou : évite la fermeture lors du passage de la souris */
.has-submenu::after{
  content:""; position:absolute; left:0; right:0;
  top:100%; height:10px; /* petit pont invisible */
}

/* Liens du sous-menu */
.submenu li a{
  display:block; padding:.55rem .7rem; text-decoration:none; color:#222; border-radius:8px;
}
.submenu li a:hover{ background:#f6f6f6; }
.submenu .sep{ height:1px; margin:.35rem .4rem; background:#eee; }

/* Lang switch à droite */
.lang-switch{ display:inline-flex; gap:.5rem; align-items:center; }
.lang-link{ display:inline-flex; align-items:center; gap:.35rem; }

/* === Image entête communauté === */
.community-hero{
  max-width: 1100px;
  margin: 1.5rem auto 2rem;
  padding: 0 1rem;
}
.community-hero img{
  width: 80%;              /* réduit la largeur (80% du conteneur) */
  max-width: 800px;        /* limite absolue en pixels */
  height: auto;            /* garde les proportions */
  display: block;
  margin: 0 auto;          /* centre l'image */
  border-radius: 18px;     /* bords arrondis */
  box-shadow: 0 8px 22px rgba(0,0,0,.12); /* ombre douce */
}
/* === Layout commun === */
.site-header{ background:#fff; border-bottom:1px solid #eee; }
.main-nav{
  display:flex; align-items:center; justify-content:space-between;
  max-width:1200px; margin:0 auto; padding:.75rem 1rem;
}
.nav-left{ display:flex; align-items:center; gap:1rem; } /* gap réduit */
.logo{ text-decoration:none; color:#111; font-weight:800; }

/* Menu desktop */
.nav-center{ display:block; }
.menu{ display:flex; list-style:none; gap:1rem; margin:0; padding:0; flex-wrap:wrap; }
.menu>li{ position:relative; }
.menu>li>a{ text-decoration:none; color:#333; font-weight:500; padding:.35rem .25rem; }

/* Sous-menu (desktop) */
.has-submenu{ position:relative; }
.has-submenu .submenu{
  position:absolute; top:100%; right:0; left:auto;
  background:#fff; border:1px solid #eee; border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  list-style:none; margin:.5rem 0 0; padding:.4rem;
  min-width:220px; display:none; z-index:1000;
}
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu{ display:block; }
/* Pont anti-trou (évite fermeture quand la souris descend) */
.has-submenu::after{ content:""; position:absolute; left:0; right:0; top:100%; height:10px; }

.submenu li a{ display:block; padding:.55rem .7rem; text-decoration:none; color:#222; border-radius:8px; }
.submenu li a:hover{ background:#f6f6f6; }
.submenu .sep{ height:1px; margin:.35rem .4rem; background:#eee; }

/* Drapeaux à droite */
.nav-right{ margin-left:auto; display:flex; align-items:center; }
.lang-switch{ display:inline-flex; gap:.5rem; align-items:center; }
.lang-link{ display:inline-flex; align-items:center; gap:.35rem; }

/* === Mobile / Tablette === */
.nav-toggle{
  appearance:none; border:0; background:#111; color:#fff;
  width:40px; height:36px; border-radius:10px;
  display:none; align-items:center; justify-content:center; gap:3px;
}
.nav-toggle__bar{ display:block; width:20px; height:2px; background:#fff; }
@media (max-width: 900px){
  .nav-toggle{ display:inline-flex; }

  /* Le menu devient un panneau à partir du haut */
  .nav-center{
    position:fixed; top:60px; left:0; right:0;
    background:#fff; border-top:1px solid #eee;
    padding:.75rem 1rem;
    box-shadow:0 10px 22px rgba(0,0,0,.12);
    transform: translateY(-12px); opacity:0; pointer-events:none;
    transition: opacity .18s ease, transform .18s ease;
  }
  body.menu-open .nav-center{
    transform: translateY(0); opacity:1; pointer-events:auto;
  }

  .menu{ flex-direction:column; gap:.25rem; }
  .menu>li>a{ padding:.6rem 0; }

  /* Sous-menu en mobile : inline (pas en absolu) */
  .has-submenu .submenu{
    position:static; display:none; box-shadow:none; border:0;
    margin:0; padding:.25rem 0; border-radius:0; min-width:auto;
  }
  .has-submenu.open .submenu{ display:block; }
}

/* Accessibilité focus */
.menu a:focus, .lang-link:focus, .nav-toggle:focus{ outline:2px solid #FB8515; outline-offset:2px; }

.logo { display:inline-flex; align-items:center; }
.logo img { display:block; height:28px; width:auto; }

/* Conteneur de nav centré + padding latéral */
.main-nav{
  display:flex; align-items:center; justify-content:space-between;
  max-width:1200px; margin:0 auto;
  padding:.75rem 24px;          /* ← espace à gauche/droite */
}

/* Espace entre logo et menu */
.nav-left{ display:flex; align-items:center; gap:1.25rem; } /* 1–2rem selon goût */

/* Espace dans le menu */
.menu{ display:flex; list-style:none; gap:1rem; margin:0; padding:0; flex-wrap:wrap; }
.menu>li>a{ padding:.35rem .25rem; text-decoration:none; }

.main-nav{
  display:flex; align-items:center; justify-content:space-between;
  max-width:1200px; margin:0 auto;
  padding:.75rem 24px;
  flex-wrap:nowrap;   /* empêche les drapeaux de passer en dessous */
}

/* Logo et menu regroupés */
.nav-left{ display:flex; align-items:center; gap:1.5rem; flex:1; }

/* Le bloc drapeaux colle à droite */
.nav-right{ margin-left:auto; display:flex; align-items:center; gap:.75rem; }

.site-header{
  background:#fff;
  border-bottom:1px solid #eee;
  box-shadow:0 2px 6px rgba(0,0,0,.04); /* ombre légère sous la nav */
}
.main-nav{ padding:1rem 32px; } /* plus d’air en haut/bas */

/* --- Header anti-wrap --- */
.site-header{ background:#fff; border-bottom:1px solid #eee; }
.main-nav{
  position:relative;
  display:flex; align-items:center;
  justify-content:space-between;
  gap:16px;
  max-width:1200px; margin:0 auto; padding:12px 24px;
  flex-wrap:nowrap;          /* empêche le retour à la ligne */
}

.nav-left{ 
  display:flex; align-items:center; gap:16px;
  flex:1 1 auto;             /* prend la place disponible mais peut rétrécir */
  min-width:0;               /* autorise la compression du contenu */
}
.logo{ display:inline-flex; align-items:center; }
.logo img{ display:block; height:28px; width:auto; }

.menu{
  display:flex; align-items:center;
  gap:14px;                  /* réduit l’espace entre items */
  margin:0; padding:0; list-style:none;
  flex:0 1 auto;             /* peut se compresser */
  flex-wrap:nowrap;          /* pas de retour à la ligne du menu */
  min-width:0;
}
.menu > li > a{ text-decoration:none; color:#333; font-weight:500; padding:6px 2px; }

/* Drapeaux à droite, jamais sur une nouvelle ligne */
.nav-right{
  flex:0 0 auto;             /* taille fixe, ne se compresse pas en dessous */
  margin-left:auto;
  display:flex; align-items:center;
  white-space:nowrap;        /* FR EN restent sur une ligne */
}
.lang-switch{ display:inline-flex; gap:8px; align-items:center; white-space:nowrap; }
.lang-link{ display:inline-flex; align-items:center; gap:6px; }

/* Responsive : si la largeur se réduit, on compacte encore le menu */
@media (max-width: 1100px){
  .menu{ gap:10px; }
}
@media (max-width: 980px){
  .menu{ gap:8px; }
  .menu > li > a{ padding:6px 0; }
}
/* Option : sur très petit écran, n’afficher QUE les icônes des drapeaux */
@media (max-width: 760px){
  .lang-link { gap:4px; }
  .lang-link:nth-child(1)::after,
  .lang-link:nth-child(2)::after{ content:""; } /* supprime le "FR"/"EN" si tu veux */
}

/* === Header anti-wrap, logo, espacements === */
.site-header{ background:#fff; border-bottom:1px solid #eee; }
.main-nav{
  position:relative;
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  max-width:1200px; margin:0 auto; padding:14px 28px;
  flex-wrap:nowrap;              /* empêche le retour à la ligne */
}
.nav-left{ display:flex; align-items:center; gap:18px; flex:1 1 auto; min-width:0; }
.logo{ display:inline-flex; align-items:center; }
.logo img{ display:block; height:75px; width:auto; }

.menu{
  display:flex; align-items:center;
  gap:14px; margin:0; padding:0; list-style:none;
  flex:0 1 auto; min-width:0; flex-wrap:nowrap;
}
.menu>li{ position:relative; }
.menu>li>a{ text-decoration:none; color:#333; font-weight:500; padding:6px 2px; }

/* Sous-menu (desktop) + pont anti-trou */
.has-submenu{ position:relative; }
.has-submenu .submenu{
  position:absolute; top:100%; right:0; left:auto;
  background:#fff; border:1px solid #eee; border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  list-style:none; margin:.5rem 0 0; padding:.4rem; min-width:220px;
  display:none; z-index:1000;
}
.has-submenu:hover .submenu, .has-submenu:focus-within .submenu{ display:block; }
.has-submenu::after{ content:""; position:absolute; left:0; right:0; top:100%; height:10px; }

.submenu li a{ display:block; padding:.55rem .7rem; color:#222; text-decoration:none; border-radius:8px; }
.submenu li a:hover{ background:#f6f6f6; }
.submenu .sep{ height:1px; margin:.35rem .4rem; background:#eee; }

/* Drapeaux à droite (ne passent jamais à la ligne) */
.nav-right{ flex:0 0 auto; margin-left:auto; display:flex; align-items:center; white-space:nowrap; }
.lang-switch{ display:inline-flex; gap:.5rem; align-items:center; }
.lang-link{ display:inline-flex; align-items:center; gap:.35rem; }

/* Si ça manque encore de place, on réduit légèrement les gaps */
@media (max-width: 1100px){ .menu{ gap:10px; } }
@media (max-width: 980px){ .menu{ gap:8px; } .menu>li>a{ padding:6px 0; } }

/* (Plan B forcé) — décommente si nécessaire :
.main-nav{ position:relative; }
.nav-right{ position:absolute; right:28px; top:50%; transform:translateY(-50%); }
*/

/* === Header global === */
.site-header{ background:#fff; border-bottom:1px solid #eee; }
.main-nav{
  position:relative;
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  max-width:1200px; margin:0 auto; padding:14px 28px;
  flex-wrap:nowrap;
}

/* Logo + menu aligné au bas du logo */
.nav-left{
  display:flex; align-items:flex-end;  /* <-- au bas du logo */
  gap:2.25rem; flex:1 1 auto; min-width:0;
}
.logo{ display:inline-flex; align-items:center; }
.logo img{ display:block; height:75px; width:auto; }

/* Menu */
.nav-center{ display:block; }
.menu{
  display:flex; align-items:flex-end;  /* <-- au bas */
  gap:1.25rem; margin:0; padding:0; list-style:none;
  flex:0 1 auto; min-width:0; flex-wrap:nowrap;
}
.menu>li{ position:relative; }
.menu>li>a{ text-decoration:none; color:#333; font-weight:500; padding:6px 2px; }

/* Sous-menu desktop + pont anti-trou */
.has-submenu{ position:relative; }
.has-submenu .submenu{
  position:absolute; top:100%; right:0; left:auto;
  background:#fff; border:1px solid #eee; border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  list-style:none; margin:.5rem 0 0; padding:.4rem; min-width:220px;
  display:none; z-index:1000;
}
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu{ display:block; }
.has-submenu::after{ content:""; position:absolute; left:0; right:0; top:100%; height:10px; }
.submenu li a{ display:block; padding:.55rem .7rem; color:#222; text-decoration:none; border-radius:8px; }
.submenu li a:hover{ background:#f6f6f6; }
.submenu .sep{ height:1px; margin:.35rem .4rem; background:#eee; }

/* Drapeaux à droite */
.nav-right{ flex:0 0 auto; margin-left:auto; display:flex; align-items:center; gap:.5rem; white-space:nowrap; }
.lang-switch{ display:inline-flex; gap:.5rem; align-items:center; }
.lang-link{ display:inline-flex; align-items:center; gap:.35rem; }

/* Spacing adaptatif */
@media (max-width: 1100px){
  .nav-left{ gap:1.75rem; }
  .menu{ gap:1rem; }
}
@media (max-width: 900px){
  .nav-left{ gap:1.25rem; }
  .menu{ gap:.85rem; }
}

/* === Mobile / Burger < 768px === */
.nav-toggle{
  display:none; appearance:none; border:0; background:#111; color:#fff;
  width:40px; height:36px; border-radius:10px; align-items:center; justify-content:center;
}
@media (max-width: 768px){
  .nav-toggle{ display:inline-flex; }

  .nav-center{
    position:absolute; top:100%; left:0; right:0;
    background:#fff; border-top:1px solid #eee;
    box-shadow:0 10px 22px rgba(0,0,0,.12);
    padding:.75rem 1rem;
    transform-origin:top; transform:scaleY(0);
    opacity:0; pointer-events:none;
    transition: transform .18s ease, opacity .18s ease;
    z-index:50;
  }
  body.menu-open .nav-center{ transform:scaleY(1); opacity:1; pointer-events:auto; }

  .menu{ flex-direction:column; gap:.5rem; }
  .menu>li>a{ display:block; padding:.6rem 0; }

  /* Sous-menu en mobile : inline/toggle */
  .has-submenu .submenu{
    position:static !important; display:none;
    border:0; box-shadow:none; margin:0; padding:.25rem 0; min-width:auto;
  }
  .has-submenu.open .submenu{ display:block; }

  /* Drapeaux : garder compacts, possibilité de masquer labels */
  .lang-link .lang-text{ display:inline; }
  @media (max-width: 480px){
    .lang-link .lang-text{ display:none; } /* ne garder que les drapeaux */
    .lang-link{ gap:0; }
  }
}

.site-header { transition: box-shadow .18s ease; }
.site-header.elevated { box-shadow: 0 4px 14px rgba(0,0,0,.06); }

.nav-left{ gap:2.5rem; }    /* au lieu de 2.25rem */
.main-nav{ padding:16px 32px; }

/* Ajustement vertical du menu */
.menu{
  position: relative;
  top: 4px;    /* descend tout le menu de 4px */
}

.community-features .feature-card img {
  height: 75px;   /* ou 72px pour encore plus grand */
  width: auto;
  margin-bottom: 0.75rem; /* espace sous l’icône */
}

.hero-text h1 {
  font-size: 2.2rem;
  margin-bottom: 1rem;
}

.hero-text p {
  font-size: 1.15rem;
  color: #444;
  margin-bottom: 2rem; /* <-- on augmente l’espace sous le texte */
}

.hero-cta {
  display: flex;
  gap: 1rem;
  margin-top: 0.5rem; /* petit bonus d’espace au-dessus des boutons */
}

/* === Community hero : espace entre texte/CTA et image === */
.hero-grid{
  /* Si c'est du grid */
  column-gap: 3rem;
  /* Si c'est du flex */
  gap: 3rem;
}

.hero-text{ flex:1; }
.hero-image{ flex:1; display:flex; justify-content:center; }
.hero-image img{ max-width:100%; height:auto; border-radius:12px; } /* arrondis optionnels */

.hero-cta {
  display: flex;
  gap: 1rem;
  margin-top: 0.5rem;   /* espace au-dessus des boutons */
  margin-bottom: 2.5rem; /* <-- espace en dessous des boutons */
}

/* ===== Mobile: Hero Community ===== */
@media (max-width: 768px){
  .hero-grid{ display:block; }               /* texte puis image en colonne */
  .hero-text{ padding: 0 1rem; }
  .hero-cta{
    display:flex; flex-direction:column;     /* boutons l'un sous l'autre */
    align-items:stretch;
    gap:.75rem;
    margin-top:.75rem;
    margin-bottom:1.5rem;                    /* <-- espace SOUS les boutons */
  }
  .hero-image{ margin-top: 1rem; }           /* espace entre CTA et image */
}

/* ===== Mobile: Header layout fixes ===== */
@media (max-width: 768px){
  .main-nav{ padding-right: 64px; }          /* réserve de place à droite */
  .nav-right{
    position:absolute; right:14px; top:50%;
    transform:translateY(-50%);
    z-index:1;                               /* sous le burger */
  }
  .nav-toggle{ z-index:2; }                  /* au-dessus des drapeaux */

  /* compacter les drapeaux sur petit écran */
  .lang-link .lang-text{ display:none; }
  .lang-link img{ width:18px; height:14px; }
}

@media (max-width: 768px){
  .nav-center{
    position:absolute; top:100%; left:0; right:0;
    background:#fff; border-top:1px solid #eee;
    box-shadow:0 10px 22px rgba(0,0,0,.12);
    padding:.75rem 1rem;
    transform-origin:top; transform:scaleY(0);
    opacity:0; pointer-events:none;
    transition: transform .18s ease, opacity .18s ease;
    z-index:50;
  }
  body.menu-open .nav-center{
    transform:scaleY(1);
    opacity:1; pointer-events:auto;
  }

  /* Sous-menu dans le panneau (clic pour ouvrir) */
  .has-submenu .submenu{
    position:static !important; display:none; border:0; box-shadow:none; margin:0; padding:.25rem 0;
  }
  .has-submenu.open .submenu{ display:block; }
}

/* ===== Mobile Menu ===== */
@media (max-width: 768px){
  .nav-center {
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: #fff;
    border-top: 1px solid #eee;
    box-shadow: 0 8px 20px rgba(0,0,0,.12);
    padding: 1rem;
    transform: translateY(-20px);
    opacity: 0;
    pointer-events: none;
    transition: transform .25s ease, opacity .25s ease;
  }
  body.menu-open .nav-center {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .nav-center ul { flex-direction: column; gap: .75rem; }
  .nav-toggle { position: relative; z-index: 100; }
  .lang-switch { position: absolute; right: 3.5rem; top: 50%; transform: translateY(-50%); }
}

/* ===== Mobile: CTA du hero ===== */
@media (max-width: 768px){
  /* bloc hero en colonne */
  .hero-grid{ display:block; }

  /* texte du hero */
  .hero-text{ padding: 0 1rem; }

  /* CTA : 2 boutons pleines largeur + respirent */
  .hero-cta{
    display: grid;
    grid-template-columns: 1fr;
    gap: .9rem;              /* espace entre les 2 boutons */
    margin-top: .75rem;      /* espace au-dessus */
    margin-bottom: 1.75rem;  /* <-- espace SOUS les CTA */
  }
  .hero-cta .btn{
    width: 100%;
    padding-block: .95rem;   /* hauteur confortable */
    border-radius: 16px;
  }

  /* image du hero séparée des CTA */
  .hero-image{ margin-top: 1rem; }

  /* sécurité : le hero ne se fait pas recouvrir */
  .hero-community{ position: relative; z-index: 1; }

  /* et la section suivante ne remonte pas trop près */
  .hero-community + section{ margin-top: 1.25rem; }
}

/* ===== CTA - VERSION DESKTOP ===== */
.hero-cta {
  display: flex;
  gap: 1rem;                 /* espace entre les boutons */
  margin-top: 1rem;          /* espace au-dessus */
  margin-bottom: 2rem;       /* espace sous les CTA */
}
.hero-cta .btn {
  padding: 0.9rem 1.8rem;    /* confort de clic */
  border-radius: 12px;
}

/* ===== CTA - VERSION MOBILE ===== */
@media (max-width: 768px){
  .hero-cta {
    flex-direction: column;   /* empile en colonne */
    align-items: stretch;     /* largeur 100% */
    gap: 0.9rem;
    margin-top: 0.75rem;
    margin-bottom: 2.25rem;   /* un peu plus d'air */
  }
  .hero-cta .btn {
    width: 100%;             /* pleine largeur */
    padding-block: 1rem;
    border-radius: 16px;     /* plus arrondis sur mobile */
  }
}

/* ===== Style global des CTA ===== */
.hero-cta .btn {
  display: inline-block;
  font-weight: 600;
  text-align: center;
  padding: 0.9rem 1.8rem;
  border-radius: 12px;
  transition: all 0.25s ease;
  box-shadow: 0 4px 10px rgba(0,0,0,.1);
  color: #fff;
}

/* Orange = Primaire */
.hero-cta .btn-primary {
  background: #f17a1a;     /* orange */
  border: 2px solid #f17a1a;
}
.hero-cta .btn-primary:hover {
  background: #d9670f;
  border-color: #d9670f;
}

/* Bleu = Secondaire */
.hero-cta .btn-secondary {
  background: #2563eb;     /* bleu */
  border: 2px solid #2563eb;
}
.hero-cta .btn-secondary:hover {
  background: #1e4db8;
  border-color: #1e4db8;
}

/* ===== Desktop ===== */
.hero-cta {
  display: flex;
  gap: 1rem;
  margin-top: 1rem;
  margin-bottom: 2rem;
}

/* ===== Mobile ===== */
@media (max-width: 768px){
  .hero-cta {
    flex-direction: column;
    align-items: stretch;
    gap: 0.9rem;
    margin-top: 0.75rem;
    margin-bottom: 2.25rem;
  }
  .hero-cta .btn {
    width: 100%;
    padding-block: 1rem;
    border-radius: 16px;
  }
}

/* ===== Style global des CTA ===== */
.hero-cta .btn {
  display: inline-block;
  font-weight: 600;
  text-align: center;
  padding: 0.95rem 1.8rem;
  border-radius: 14px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  color: #fff;
  text-decoration: none;
}

/* Orange gradient = Primaire */
.hero-cta .btn-primary {
  background: linear-gradient(135deg, #ff8c1a, #ff5e00);
  border: none;
}
.hero-cta .btn-primary:hover {
  background: linear-gradient(135deg, #e67300, #cc5200);
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0,0,0,.2);
}

/* Bleu gradient = Secondaire */
.hero-cta .btn-secondary {
  background: linear-gradient(135deg, #2563eb, #1e40af);
  border: none;
}
.hero-cta .btn-secondary:hover {
  background: linear-gradient(135deg, #1e4db8, #16367f);
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0,0,0,.2);
}

/* ===== Desktop ===== */
.hero-cta {
  display: flex;
  gap: 1rem;
  margin-top: 1rem;
  margin-bottom: 2rem;
}

/* ===== Mobile ===== */
@media (max-width: 768px){
  .hero-cta {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    margin-top: 0.75rem;
    margin-bottom: 2.25rem;
  }
  .hero-cta .btn {
    width: 100%;
    padding-block: 1rem;
    border-radius: 18px;
  }
}

/* ===== Header mobile: drapeaux + burger ===== */
@media (max-width: 768px){
  .main-nav{ position: relative; }

  /* Burger tout à droite */
  .nav-toggle{
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;                 /* au-dessus des drapeaux */
  }

  /* Drapeaux juste à gauche du burger */
  .lang-switch{
    position: absolute;
    right: 60px;                /* espace réservé au burger (40px + marge) */
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    gap: 8px;
    z-index: 2;                 /* sous le burger */
  }
  .lang-switch .lang-text{ display:none; }   /* on ne garde que les icônes */
  .lang-switch img{ width:18px; height:14px; }
  
  /* Panneau menu déroulant au-dessus du contenu */
  .nav-center{
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: #fff;
    border-top: 1px solid #eee;
    box-shadow: 0 10px 22px rgba(0,0,0,.12);
    transform: translateY(-10px);
    opacity: 0; pointer-events: none;
    transition: transform .2s ease, opacity .2s ease;
    z-index: 50;
  }
  body.menu-open .nav-center{
    transform: translateY(0);
    opacity: 1; pointer-events: auto;
  }
}

/* ===== Sections centrées ===== */
#families, .families-section,
#how, .how-section{
  text-align: center;
}

.families-grid, .how-grid{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.25rem;
  justify-content: center;     /* <-- centrage horizontal des cartes */
  max-width: 1100px;
  margin-inline: auto;
}

.families-grid .card, .how-grid .step{
  width: clamp(240px, 30%, 320px); /* largeur fluide mais centrée */
}

/* === Community hero : centrage mobile === */
@media (max-width: 768px){
  .hero-grid{ display:block; }                /* texte puis image */
  .hero-text{
    max-width: 720px;
    margin: 0 auto;                           /* centre le bloc */
    padding: 0 1rem;
    text-align: center;                       /* <-- Titre & phrase centrés */
  }
  .hero-text h1{ margin-bottom: .75rem; }
  .hero-text p{
    margin: 0 auto 1.25rem;                   /* espace sous le texte */
    color: #555;
  }

  .hero-cta{
    display: flex;
    flex-direction: column;
    align-items: center;                      /* <-- centre les boutons */
    gap: 1rem;
    margin-bottom: 1.75rem;                   /* air au-dessus de l’illustration */
  }
  .hero-cta .btn{
    width: min(460px, 100%);                  /* boutons centrés et pas trop larges */
    padding-block: 1rem;
    border-radius: 18px;
  }

  .hero-image{ margin-top: .5rem; }
  .hero-image img{ display:block; margin: 0 auto; }
}

/* CTA : pousser légèrement vers la droite */
.hero-cta{
  /* garde l'alignement horizontal normal */
  gap: 1rem;
  margin-top: 1rem;
  margin-bottom: 2rem;

  /* <<< déplacement vers la droite >>> */
  width: fit-content;         /* le groupe prend juste la place des boutons */
  margin-left: auto;          /* pousse le groupe à droite */
  margin-right: 1rem;         /* petit retrait du bord */
}

/* Mobile : même logique mais sans coller complètement au bord */
@media (max-width:768px){
  .hero-cta{
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;

    width: min(480px, 100%);
    margin-left: auto;        /* reste à droite */
    margin-right: 1.5rem;       /* garde 1rem d’air côté bord droit */
    margin-top: .75rem;
    margin-bottom: 2rem;
  }
  .hero-cta .btn{
    padding-block: 1rem;
    border-radius: 18px;
  }
}

/* Panneau du menu mobile fermé par défaut */
@media (max-width:768px){
  .main-nav{ position: relative; }

  .nav-center{
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: #fff;
    border-top: 1px solid #eee;
    box-shadow: 0 10px 22px rgba(0,0,0,.12);
    overflow: hidden;

    max-height: 0;            /* fermé */
    opacity: 0;
    pointer-events: none;
    transition: max-height .25s ease, opacity .2s ease;
    z-index: 50;
  }
  body.menu-open .nav-center{
    max-height: 70vh;         /* ouvert */
    opacity: 1;
    pointer-events: auto;
  }

  /* Sécurité de superposition */
  .nav-toggle{ position:absolute; right:12px; top:50%; transform:translateY(-50%); z-index: 101; }
  .lang-switch{ position:absolute; right:60px; top:50%; transform:translateY(-50%); z-index: 100; }
}

/* === Community hero : centrage desktop (optionnel) === */
.hero-community .container{ max-width: 1100px; margin-inline: auto; }
.hero-text{
  text-align: center;
}
.hero-cta{
  justify-content: center;                    /* centre les deux CTA côte à côte */
}

/* Section Accès familles - centrer les deux CTA */
#families .card-actions,
#families .actions,
#families .families-actions {
  display: flex;
  justify-content: center;   /* centre horizontalement */
  gap: 1rem;                 /* espace entre les deux boutons */
  margin-top: 1rem;
  margin-bottom: 1rem;
}

/* Sur mobile, ils passent l’un en dessous de l’autre mais toujours centrés */
@media (max-width: 768px) {
  #families .card-actions,
  #families .actions,
  #families .families-actions {
    flex-direction: column;
    align-items: center;    /* centre verticalement */
    gap: .75rem;
  }

  #families .card-actions .btn,
  #families .actions .btn,
  #families .families-actions .btn {
    width: min(280px, 100%);  /* largeur max lisible */
  }
}

/* Choisis le sélecteur qui correspond à ton HTML
   (décommente-en UN et laisse les autres commentés) */

/* 1) Si tes boutons sont dans .card-actions */
#families .card-actions{
  display:flex; justify-content:flex-end; gap:.75rem;
  margin-top:1rem; margin-bottom:1rem;  /* espace avec le visuel */
}

/* 2) Si tes boutons sont dans .actions */
/* #families .actions{
  display:flex; justify-content:flex-end; gap:.75rem;
  margin-top:1rem; margin-bottom:1rem;
} */

/* 3) Si tes boutons sont dans .families-actions */
/* #families .families-actions{
  display:flex; justify-content:flex-end; gap:.75rem;
  margin-top:1rem; margin-bottom:1rem;
} */

/* Mobile : pile à droite, propre */
@media (max-width:768px){
  #families .card-actions,
  #families .actions,
  #families .families-actions{
    flex-direction:column; align-items:flex-end; gap:.75rem;
  }
  #families .card-actions .btn,
  #families .actions .btn,
  #families .families-actions .btn{
    width:min(280px, 100%);   /* boutons pas trop larges */
  }
}

/* =========================================================
   1) COMMUNITY — recentrer les deux CTA (ils étaient poussés à droite)
   ========================================================= */
#community-hero .hero-cta,
.community-hero .hero-cta {
  display: flex;
  gap: 1rem;
  width: max-content;                          /* le groupe ne prend que la largeur des boutons */
  margin-left: auto !important;                /* centre horizontalement */
  margin-right: auto !important;               /* ^ */
  justify-content: center !important;          /* au cas où un justify existant force à droite */
}

@media (max-width: 768px){
  #community-hero .hero-cta,
  .community-hero .hero-cta{
    flex-direction: column;
    align-items: center !important;            /* toujours centré en mobile */
    width: min(480px, 100%);
  }
  #community-hero .hero-cta .btn,
  .community-hero .hero-cta .btn{
    width: 100%;
  }
}

/* =========================================================
   2) ACCÈS FAMILLES — recentrer les deux CTA (ils étaient bloqués à gauche)
   Adapte le sélecteur ci-dessous à ta structure si besoin :
   - .card-actions ou .actions ou .families-actions
   ========================================================= */
#families .card-actions,
#families .actions,
#families .families-actions{
  display: flex;
  gap: 1rem;
  justify-content: center !important;          /* centre les deux boutons */
  width: max-content;                           /* pour éviter d'occuper toute la ligne */
  margin: 1rem auto;                            /* centre le bloc dans la carte */
}

@media (max-width: 768px){
  #families .card-actions,
  #families .actions,
  #families .families-actions{
    flex-direction: column;
    align-items: center;
    gap: .75rem;
  }
  #families .card-actions .btn,
  #families .actions .btn,
  #families .families-actions .btn{
    width: min(280px, 100%);
  }
}

/* Centrage simple et robuste pour TOUS les groupes marqués cta-row */
.cta-row{
  display:flex;
  gap:1rem;
}
.cta-row--center{
  justify-content:center;
  width:max-content;
  margin:1rem auto;      /* centre le bloc lui-même */
}

/* Mobile : en colonne mais toujours centré */
@media (max-width:768px){
  .cta-row{
    flex-direction:column;
    align-items:center;
  }
  .cta-row .btn{
    width:min(320px,100%);
  }
}

/* =============== PALETTE CTA (dégradés) =============== */
.btn--orange,
.hero-cta a:first-child,
#families .card-actions a:last-child,
#families .actions a:last-child,
#families .families-actions a:last-child {
  background: linear-gradient(135deg, #ff8c1a, #ff5e00);
  color: #fff !important;
  border: none !important;
}
.btn--orange:hover {
  background: linear-gradient(135deg, #e67300, #cc5200);
}

.btn--blue,
.hero-cta a:last-child,
#families .card-actions a:first-child,
#families .actions a:first-child,
#families .families-actions a:first-child {
  background: linear-gradient(135deg, #2563eb, #1e40af);
  color: #fff !important;
  border: none !important;
}
.btn--blue:hover {
  background: linear-gradient(135deg, #1e4db8, #16367f);
}

/* ===== HERO COMMUNITY ===== */
/* 1) Mettre le 1er CTA en ORANGE et le 2e en BLEU (si styles existants en “outline/white”) */
.hero-cta a { box-shadow: 0 6px 14px rgba(0,0,0,.12); border-radius: 14px; }

/* 2) Espace entre les CTA et l’illustration (libérer l’image) */
.hero-cta { margin-bottom: 1.5rem; }                 /* un peu d’air sous les CTA */
.hero-cta + .hero-image,
.hero-cta + figure,
.hero-cta + img { margin-top: .75rem; }             /* pousse l’illustration */

/* Si le groupe est trop à droite: centre-le */
#community-hero .hero-cta,
.community-hero .hero-cta{
  display:flex;
  gap:1rem;
  width:max-content;
  margin-left:auto !important;
  margin-right:auto !important;
  justify-content:center !important;
}

/* ===== ACCÈS FAMILLES ===== */
/* 1) Centrer / libérer les CTA sur grand écran (le mobile est OK) */
#families .card-actions,
#families .actions,
#families .families-actions{
  display:flex;
  gap:1rem;
  justify-content:center !important;   /* centre les deux boutons */
  width:max-content;
  margin: 1rem auto 1.25rem;           /* centre le bloc dans la carte */
}

/* 2) Couleurs : premier = BLEU, deuxième = ORANGE  (déjà plus haut via :first-child/:last-child) */

/* 3) Mobile — pile et toujours centrés (rendu déjà bon, on sécurise) */
@media (max-width: 768px){
  #community-hero .hero-cta,
  .community-hero .hero-cta{
    flex-direction:column;
    align-items:center;
    width:min(480px,100%);
  }
  #families .card-actions,
  #families .actions,
  #families .families-actions{
    flex-direction:column;
    align-items:center;
  }
  .hero-cta .btn,
  #families .card-actions .btn,
  #families .actions .btn,
  #families .families-actions .btn{
    width:min(320px,100%);
    border-radius:18px;
  }
}

/* === COMMUNITY: forcer ORANGE puis BLEU, avec priorité élevée === */
#community-hero .hero-cta a:nth-child(1),
.community-hero .hero-cta a:nth-child(1){
  /* annule un éventuel "outline/white" */
  background: none !important;
  background-image: none !important;
  border: none !important;

  /* dégradé ORANGE */
  background: linear-gradient(135deg,#ff8c1a,#ff5e00) !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.12) !important;
  border-radius: 14px !important;
}

#community-hero .hero-cta a:nth-child(2),
.community-hero .hero-cta a:nth-child(2){
  background: none !important;
  background-image: none !important;
  border: none !important;

  /* dégradé BLEU */
  background: linear-gradient(135deg,#2563eb,#1e40af) !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.12) !important;
  border-radius: 14px !important;
}

/* === ACCÈS FAMILLES: mapping par URL pour forcer les couleurs === */
/* BLEU pour "Se connecter" / login / connexion */
#families a[href*="login"],
#families a[href*="connect"],
#families a[href*="connexion"]{
  background: none !important;
  background-image: none !important;
  border: none !important;

  background: linear-gradient(135deg,#2563eb,#1e40af) !important;
  color:#fff !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.12) !important;
  border-radius: 14px !important;
}

/* ORANGE pour "S’inscrire" / register / inscription */
#families a[href*="register"],
#families a[href*="inscription"],
#families a[href*="inscrire"]{
  background: none !important;
  background-image: none !important;
  border: none !important;

  background: linear-gradient(135deg,#ff8c1a,#ff5e00) !important;
  color:#fff !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.12) !important;
  border-radius: 14px !important;
}

/* Un peu d’air entre CTA et illustration hero-community */
#community-hero .hero-cta,
.community-hero .hero-cta{ margin-bottom: 1.5rem !important; }

#community-hero .hero-cta + .hero-image,
#community-hero .hero-cta + img,
.community-hero .hero-cta + .hero-image,
.community-hero .hero-cta + img{ margin-top: .75rem !important; }

/* === HERO COMMUNITY : forcer les couleurs & l'espacement === */
/* On couvre plusieurs conteneurs probables du hero pour être sûrs */
.page-community .hero a,
#community-hero a,
.community-hero a,
.hero a {
  /* rien ici: on garde les sélecteurs pour renforcer la spécificité plus bas */
}

/* === HERO COMMUNITY : forcer les couleurs & l'espacement === */
/* On couvre plusieurs conteneurs probables du hero pour être sûrs */
.page-community .hero a,
#community-hero a,
.community-hero a,
.hero a {
  /* rien ici: on garde les sélecteurs pour renforcer la spécificité plus bas */
}

/* ORANGE pour "Créer mon compte" (ou register/inscription) */
.page-community .hero a[href*="register"],
.page-community .hero a[href*="inscription"],
.page-community .hero a[href*="inscrire"],
#community-hero a[href*="register"],
#community-hero a[href*="inscription"],
#community-hero a[href*="inscrire"],
.community-hero a[href*="register"],
.community-hero a[href*="inscription"],
.community-hero a[href*="inscrire"]{
  background: none !important;
  background-image: none !important;
  border: none !important;
  background: linear-gradient(135deg,#ff8c1a,#ff5e00) !important;
  color:#fff !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.12) !important;
  border-radius: 14px !important;
}

/* BLEU pour "J’ai déjà un compte" (ou login/connexion) */
.page-community .hero a[href*="login"],
.page-community .hero a[href*="connexion"],
.page-community .hero a[href*="connect"],
#community-hero a[href*="login"],
#community-hero a[href*="connexion"],
#community-hero a[href*="connect"],
.community-hero a[href*="login"],
.community-hero a[href*="connexion"],
.community-hero a[href*="connect"]{
  background: none !important;
  background-image: none !important;
  border: none !important;
  background: linear-gradient(135deg,#2563eb,#1e40af) !important;
  color:#fff !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.12) !important;
  border-radius: 14px !important;
}

/* Espace sous le groupe de CTA avant l'illustration */
#community-hero .hero-cta,
.community-hero .hero-cta,
.page-community .hero .hero-cta{
  margin-bottom: 1.5rem !important;
}
#community-hero .hero-cta + .hero-image,
.community-hero .hero-cta + .hero-image,
.page-community .hero .hero-cta + .hero-image{
  margin-top: .75rem !important;
}

/* =======================
   ACCÈS FAMILLES — LAYOUT
   ======================= */

/* 1) Base mobile : 1 colonne (texte + CTA au-dessus, image dessous) */
#families .card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem 2rem;
  align-items: center;
}

/* Normaliser les noms possibles du bloc texte et du média */
#families .card > .card-body,
#families .card > .families-copy,
#families .card > .content { order: 1; }

#families .card > figure,
#families .card > .families-media,
#families .card > img {
  order: 2;
  justify-self: center;
  max-width: 520px;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* 2) Desktop : 2 colonnes — texte/CTA à gauche, image à droite */
@media (min-width: 992px){
  #families .card {
    grid-template-columns: 1fr 520px;  /* ajuste 520px selon ta maquette */
  }

  #families .card > .card-body,
  #families .card > .families-copy,
  #families .card > .content { order: 1; }

  #families .card > figure,
  #families .card > .families-media,
  #families .card > img {
    order: 2;
    justify-self: end;    /* plaque à droite */
  }
}

/* 3) CTA — centrer en mobile, libérer en desktop, et annuler les règles qui forçaient le centrage global */
#families .card-actions,
#families .actions,
#families .families-actions{
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin: 1rem 0;
}

@media (min-width: 992px){
  #families .card-actions,
  #families .actions,
  #families .families-actions{
    justify-content: flex-start;    /* pas centré en desktop */
    width: auto !important;         /* annule width:max-content */
    margin-left: 0 !important;      /* annule margin:auto */
    margin-right: 0 !important;
  }
}

/* Layout utilitaires */
.section { padding: 3rem 0; }
.container { max-width: 1120px; margin: 0 auto; padding: 0 1.25rem; }
.center { text-align: center; }

/* How it works */
.how-grid {
  display: grid; gap: 1.25rem; grid-template-columns: repeat(3,1fr);
}
@media (max-width: 900px){ .how-grid { grid-template-columns: 1fr; } }

.how-step {
  background: #fff; border-radius: 16px; padding: 1.25rem;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.how-badge {
  display:inline-grid; place-items:center; width:38px; height:38px; border-radius:50%;
  font-weight:700; color:#fff; background:linear-gradient(135deg,#2563eb,#1e40af);
  margin-bottom:.5rem;
}
.how-cta { margin-top: 1rem; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* CTA final */
.cta-panel {
  background:#0f172a; color:#fff; border-radius:20px; text-align:center;
  padding:2rem 1.5rem; box-shadow:0 12px 30px rgba(15,23,42,.25);
}
.cta-actions { margin-top:1rem; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* Boutons dégradés (réemploient ta palette) */
.btn { display:inline-flex; align-items:center; justify-content:center; font-weight:700;
       padding:.9rem 1.2rem; border-radius:16px; text-decoration:none; border:none; }
.btn-lg { padding:1rem 1.25rem; border-radius:18px; }
.btn--orange { background:linear-gradient(135deg,#ff8c1a,#ff5e00); color:#fff; }
.btn--orange:hover { filter:brightness(.97); }
.btn--blue { background:linear-gradient(135deg,#2563eb,#1e40af); color:#fff; }
.btn--blue:hover { filter:brightness(.98); }

/* Ajoute de l’espace sous la section "Comment ça marche ?" */
.how-section {
  margin-bottom: 50px; /* ajuste la valeur (px) selon l’espace désiré */
}

/* Ou bien directement après les cartes si besoin */
.how-section .card-container {
  margin-bottom: 40px;
}

/* ===== Espace entre "Comment ça marche ?" (.howit) et le CTA final (.section-cta) ===== */

/* Valeur fluide : 24px en mobile -> ~56px en desktop */
section.howit,
.howit,
#how {
  padding-bottom: clamp(24px, 4vw, 56px) !important;
  /* Empêche l'effondrement de marge avec la section suivante */
  margin-bottom: 0 !important;
}

/* On neutralise la marge supérieure du bloc suivant,
   et on insère l'espace via un pseudo-élément pour éviter la collapse */
section.section-cta,
.section-cta {
  position: relative;
  margin-top: 0 !important;
}

section.section-cta::before,
.section-cta::before {
  content: "";
  display: block;
  height: clamp(24px, 4vw, 56px);
}

/* ===== Stats / Counters ===== */
.stats-grid{
  display:grid; gap:1rem;
  grid-template-columns: repeat(3,1fr);
}
@media (max-width: 900px){ .stats-grid{ grid-template-columns:1fr; } }

.stat-card{
  background:#fff; border-radius:18px;
  padding:1.25rem 1.1rem;
  box-shadow:0 8px 22px rgba(0,0,0,.07);
  display:flex; flex-direction:column; align-items:center; text-align:center;
}

.stat-icon{
  width:56px; height:56px; border-radius:14px;
  display:grid; place-items:center; font-size:1.35rem; color:#fff;
  margin-bottom:.5rem;
}
.stat-icon--orange{ background:linear-gradient(135deg,#ff8c1a,#ff5e00); }
.stat-icon--blue{   background:linear-gradient(135deg,#2563eb,#1e40af); }

.stat-value{
  font-size:2.4rem; line-height:1; font-weight:800; color:#0f172a;
  letter-spacing:.5px; margin:.35rem 0 .25rem;
}
.stat-label{ color:#475569; margin:0; }

/* Points “live” (vert par défaut) + variantes orange/bleu */
.stat-label.live::before{
  content:""; display:inline-block; width:8px; height:8px; border-radius:50%;
  margin-right:6px; vertical-align:middle;
  background:#22c55e; /* vert */
  box-shadow:0 0 0 0 rgba(34,197,94,.7);
  animation:pulseLive 2s infinite;
}
.stat-label.live.live--orange::before{
  background:#ff8c1a;
  box-shadow:0 0 0 0 rgba(255,140,26,.7);
}
.stat-label.live.live--blue::before{
  background:#2563eb;
  box-shadow:0 0 0 0 rgba(37,99,235,.7);
}
@keyframes pulseLive{
  0%{ box-shadow:0 0 0 0 rgba(0,0,0,0); }
  70%{ box-shadow:0 0 0 10px rgba(0,0,0,0); }
  100%{ box-shadow:0 0 0 0 rgba(0,0,0,0); }
}

/* un peu d’air vertical si besoin */
.stats.section{ padding-top:2rem; padding-bottom:2rem; }

/* ===== Community subpages ===== */
.breadcrumb{ font-size:.9rem; color:#64748b; margin:1rem 0 0; }
.breadcrumb a{ color:#1e40af; text-decoration:none; }
.breadcrumb a:hover{ text-decoration:underline; }

.page-head{ padding: 2rem 0 1rem; }
.page-head .h1{ font-size:2rem; margin:.25rem 0 .5rem; }
.page-head p.lead{ color:#475569; margin:0; }

/* barre d’outils / filtres */
.toolbar{ display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; margin:1rem 0 1.25rem; }
.toolbar input[type="search"], .toolbar select{
  padding:.65rem .8rem; border:1px solid #e5e7eb; border-radius:12px; min-width: 220px;
}
.toolbar .btn{ padding:.75rem 1rem; border-radius:12px; }

/* grilles */
.grid-3{ display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); }
.grid-2{ display:grid; gap:1rem; grid-template-columns:repeat(2,1fr); }
@media (max-width: 1024px){ .grid-3{ grid-template-columns:repeat(2,1fr);} }
@media (max-width: 640px){ .grid-3,.grid-2{ grid-template-columns:1fr; } }

/* cartes */
.card{
  background:#fff; border-radius:16px; padding:1rem 1rem 1.1rem;
  box-shadow:0 6px 18px rgba(0,0,0,.06); display:flex; flex-direction:column; gap:.5rem;
}
.card .meta{ font-size:.85rem; color:#64748b; }
.card .actions{ margin-top:auto; display:flex; gap:.5rem; flex-wrap:wrap; }

/* liste forum */
.topic{ padding:1rem; background:#fff; border-radius:14px; box-shadow:0 6px 16px rgba(0,0,0,.05); display:grid; grid-template-columns:1fr auto; gap:.5rem; }
.topic .topic-meta{ color:#64748b; font-size:.9rem; }
.topic .badge{ font-size:.75rem; padding:.15rem .5rem; border-radius:999px; background:#f1f5f9; }
.topic .count{ font-weight:700; color:#0f172a; }

/* états vides */
.empty{
  background:#f8fafc; border:1px dashed #e2e8f0; border-radius:16px;
  padding:1.25rem; text-align:center; color:#64748b;
}

/* pagination simple */
.pagination{ display:flex; gap:.5rem; justify-content:center; margin:1rem 0; }
.pagination .btn{ padding:.6rem .9rem; border-radius:10px; }
