 :root{
      --bg:#f4efe7;
      --paper:#fbf7f1;
      --paper-2:#efe6d9;
      --ink:#121212;
      --muted:#5f5a54;
      --line:#d4c8b7;
      --accent:#c96f2d;
      --accent-2:#e6a05f;
      --green:#2f7d51;
      --max:1280px;
      --radius:28px;
      --radius-sm:18px;
      --shadow:0 20px 60px rgba(18,18,18,.08);
    }

    *{box-sizing:border-box}
html{
  scroll-behavior:smooth;
}

section[id]{
  scroll-margin-top:78px;
}

    body{
      margin:0;
      background:var(--bg);
      color:var(--ink);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      line-height:1.55;
	  padding-top:86px;
    }

    a{text-decoration:none;color:inherit}
    img{display:block;max-width:100%}
    button{font:inherit}


    .container{
      width:min(var(--max), calc(100% - 32px));
      margin-inline:auto;
    }

    .serif{
      font-family: Georgia, "Times New Roman", serif;
      letter-spacing:-.03em;
    }

    .smallcap{
      font-size:.74rem;
      text-transform:uppercase;
      letter-spacing:.16em;
      color:var(--accent);
      font-weight:800;
    }

    .section{
      padding:42px 0;
    }

.topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  padding:18px 0 12px;
  border-bottom:1px solid rgba(18,18,18,.08);
  backdrop-filter:blur(10px);
  background:rgba(244,239,231,.82);
}

    .topbar-inner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
    }
	
	@media (max-width: 680px){
  body{
    padding-top:74px;
  }
}
	
	/* TOP */

    .brand{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}

.brand-logo{
  display:block;
  width:160px;
  height:auto;
  flex:0 0 auto;
}

.brand-text{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}

.brand-title{
  margin:0;
  font-size:1.0rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.brand-sub{
  margin-top:6px;
  font-size:.98rem;
  line-height:1.3;
  color:var(--muted);
}

@media (max-width: 768px){
  .brand{
    gap:10px;
  }

  .brand-logo{
    width:110px;
  }

  .brand-title{
    font-size:1.1rem;
  }

  .brand-sub{
    font-size:.85rem;
  }
}

/* NAV */

    .nav{
      display:flex;
      align-items:center;
      gap:18px;
      font-size:.92rem;
      color:var(--muted);
    }

    .nav a:hover{color:var(--ink)}

    .cta-mini{
      display:inline-flex;
      align-items:center;
      gap:12px;
      padding:10px 14px;
      border-radius:999px;
      background:var(--ink);
      color:var(--paper);
      font-weight:800;
      font-size:.9rem;
    }

    .hero{
      padding:28px 0 24px;
    }

.hero-grid{
  display:grid;
  grid-template-columns:1.15fr .75fr;
  gap:24px;
  align-items:stretch;
}

.hero-main{
  position:relative;
  background:var(--paper);
  border:1px solid rgba(18,18,18,.08);
  border-radius:36px;
  box-shadow:var(--shadow);
  padding:28px;
  display:flex;
  flex-direction:column;
  gap:24px;
  overflow:hidden;
  isolation:isolate;
}


.hero-top{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:22px;
  align-items:start;
}

.hero-copy{
  min-width:0;
}

.hero-title{
  max-width:8ch;
  margin:10px 0 0;
  font-size:clamp(2rem, 4.4vw, 4.8rem);
  line-height:.94;
  letter-spacing:-0.04em;
}

.hero-sub{
  max-width:34ch;
  margin-top:18px;
  font-size:1.08rem;
  color:var(--muted);
}

.hero-note{
  position:relative;
  background:var(--paper-2);
  border:1px solid rgba(18,18,18,.08);
  border-radius:24px;
  padding:20px;
  overflow:hidden;
}

.hero-note::before{
  content:"PACK COMPLET";
  position:absolute;
  right:-48px;
  top:14px;
  background:var(--accent);
  color:#fff;
  padding:7px 52px;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.10em;
  transform:rotate(35deg);
  box-shadow:0 8px 18px rgba(0,0,0,.12);
  z-index:2;
}

.hero-note strong{
  display:block;
  font-size:1.05rem;
  margin-bottom:12px;
  padding-right:90px;
  line-height:1.2;
}

.hero-note p{
  margin:0 0 12px;
  color:var(--muted);
}

.hero-note p:last-child{
  margin-bottom:0;
} 

.hero-middle{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}

.hero-feature{
  background:var(--paper-2);
  border:1px solid rgba(18,18,18,.06);
  border-radius:22px;
  padding:18px;
}

.hero-feature-kicker{
  display:block;
  margin-bottom:10px;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--accent);
  font-weight:800;
}

.hero-feature strong{
  display:block;
  margin-bottom:8px;
  font-size:1rem;
  line-height:1.2;
}

.hero-feature p{
  margin:0;
  color:var(--muted);
  font-size:.95rem;
}

.hero-bottom{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  padding-top:8px;
}

.hero-stat{
  padding:18px;
  border-top:1px solid rgba(18,18,18,.08);
  display:flex;
  flex-direction:column;
  align-items:center;
}

.hero-stat strong{
  display:block;
  font-size:2rem;
  line-height:1;
  margin-bottom:6px;
  text-align:center;
}

.hero-stat span{
  color:var(--muted);
  font-size:.95rem;
  text-align:center;
}

    .hero-panel{
      border-top:1px solid rgba(18,18,18,.08);
      padding-top:18px;
    }

    .hero-panel h3{
      margin:0 0 10px;
      font-size:.88rem;
      text-transform:uppercase;
      letter-spacing:.12em;
    }

    .hero-panel p{
      margin:0;
      color:var(--muted);
    }

.hero-side{
  display:flex;
  flex-direction:column;
  gap:18px;
  height:100%;
}

.hero-note-intro{
  margin:10px 0 14px;
  color:var(--muted);
}

.hero-note-points{
  margin:0 0 14px;
  padding-left:18px;
  display:grid;
  gap:6px;
  color:var(--muted);
}

.hero-note-points li{
  list-style:disc;
}

.hero-note-signature{
  margin:0;
  font-weight:700;
  line-height:1.4;
}


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

  .hero-top{
    grid-template-columns:1fr;
  }

  .hero-middle{
    grid-template-columns:1fr;
  }

  .hero-bottom{
    grid-template-columns:repeat(3, 1fr);
  }
}

@media (max-width: 680px){
  .hero-main{
    padding:20px;
    border-radius:26px;
  }

  .hero-title{
    max-width:none;
    font-size:clamp(2rem, 9vw, 3.4rem);
  }

  .hero-sub{
    max-width:none;
    font-size:1rem;
  }

  .hero-bottom{
    grid-template-columns:1fr;
    gap:8px;
  }

  .hero-stat{
    padding:14px 0 0;
  }
}

.price-box h2{
  margin:0;
  font-size:clamp(2rem, 4vw, 3.4rem);
  line-height:.96;
}

.price-box{
  gap:20px;
}
    .price-box,
    .manifesto,
    .proof-strip,
    .story-block,
    .pack-rail,
    .offer-block,
    .faq-wrap,
    .footer-box{
      background:var(--paper);
      border:1px solid rgba(18,18,18,.08);
      border-radius:32px;
      box-shadow:var(--shadow);
    }

    .price-box{
      padding:24px;
      display:grid;
      gap:18px;
      align-content:start;
    }

    .price-eyebrow{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      border:1px solid rgba(18,18,18,.1);
      border-radius:999px;
      padding:8px 12px;
      font-size:.82rem;
      font-weight:700;
      background:#fff;
    }

    .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--green);
    }

    .price-box h2{
      margin:0;
      font-size:clamp(2rem, 5vw, 3.6rem);
      line-height:.95;
    }

    .price-line{
      display:flex;
      align-items:end;
      gap:12px;
      flex-wrap:wrap;
    }

    .old{
      color:var(--muted);
      text-decoration:line-through;
      font-weight:700;
    }

    .new{
      font-size:clamp(2.3rem, 5vw, 4rem);
      line-height:1;
      font-weight:900;
      color:var(--accent);
    }

.desc{
  color:var(--muted);
  font-size:1rem;
  line-height:1.5;
  max-width:40ch;
}

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      border:none;
      cursor:pointer;
      transition:.22s ease;
      border-radius:18px;
      padding:16px 18px;
      font-weight:900;
      text-align:center;
    }

    .btn-main{
      background:var(--ink);
      color:var(--paper);
    }

    .btn-main:hover{transform:translateY(-2px)}
    .btn-alt{
      background:#fff;
      color:var(--ink);
      border:1px solid rgba(18,18,18,.1);
    }

    .micro-list{
      display:grid;
      gap:10px;
      font-size:.94rem;
      color:var(--muted);
    }

    .micro-list div{
      display:flex;
      gap:10px;
      align-items:flex-start;
    }

    .micro-list div::before{
      content:"—";
      color:var(--accent);
      font-weight:900;
    }



/*  MANIFESTO  */

.manifesto{
  padding:30px 34px;
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:38px;
  align-items:start;
}

.manifesto-left h2{
  margin:8px 0 0;
  font-size:clamp(1.7rem, 3vw, 2.7rem);
  line-height:1.06;
  max-width:9ch;
}

.manifesto-right{
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.7;
  max-width:62ch;
  border-left:1px solid rgba(18,18,18,.08);
  padding-left:28px;
}

.manifesto-right p{
  margin:0 0 16px;
}

.manifesto-right p:first-child{
  margin-top:0;
}






    .split-band{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:18px;
    }

    .proof-strip{
      padding:22px;
    }

    .proof-grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:14px;
      margin-top:14px;
    }

    .proof-card{
      min-height:160px;
      background:var(--paper-2);
      border-radius:20px;
      padding:16px;
      border:1px solid rgba(18,18,18,.06);
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .proof-card strong{
      font-size:1rem;
      line-height:1.15;
    }

    .proof-card span{
      color:var(--muted);
      font-size:.92rem;
    }

    .story-block{
      padding:24px;
      display:grid;
      gap:16px;
      align-content:start;
	  margin-top:auto;
    }

.story-quote{
  font-size:1.6rem;
  line-height:1.15;
  max-width:18ch;
}

.story-text{
  color:var(--muted);
  font-size:.95rem;
  line-height:1.5;
  max-width:36ch;
}

    .rail-head{
      display:flex;
      align-items:end;
      justify-content:space-between;
      gap:18px;
      margin-bottom:16px;
    }

    .rail-head h2{
      margin:8px 0 0;
      font-size:clamp(2rem, 4vw, 3.4rem);
      line-height:.98;
    }

    .rail-controls{
      display:flex;
      gap:10px;
    }

    .rail-btn{
      width:46px;
      height:46px;
      border-radius:50%;
      border:1px solid rgba(18,18,18,.1);
      background:#fff;
      cursor:pointer;
      font-size:1.2rem;
    }

    .pack-rail{
      padding:24px;
      overflow:hidden;
    }

    .rail{
      display:flex;
      gap:16px;
      overflow:auto;
      scroll-behavior:smooth;
      scrollbar-width:none;
      padding-bottom:4px;
    }

    .rail::-webkit-scrollbar{display:none}

    .pack-card{
      flex:0 0 340px;
      min-height:300px;
      background:var(--paper-2);
      border:1px solid rgba(18,18,18,.08);
      border-radius:24px;
      padding:20px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .pack-no{
      font-size:.78rem;
      text-transform:uppercase;
      letter-spacing:.16em;
      color:var(--accent);
      font-weight:900;
    }

    .pack-card h3{
      margin:12px 0 10px;
      font-size:1.5rem;
      line-height:1.02;
    }

    .pack-card p{
      margin:0;
      color:var(--muted);
    }

    .pack-footer{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
      border-top:1px solid rgba(18,18,18,.08);
      padding-top:14px;
      margin-top:14px;
      font-size:.92rem;
    }

    .pack-tag{
      color:var(--ink);
      font-weight:800;
    }

    .editorial{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:18px;
    }

    .editor-card{
      background:var(--paper);
      border:1px solid rgba(18,18,18,.08);
      border-radius:30px;
      box-shadow:var(--shadow);
      padding:26px;
    }

    .editor-card h3{
      margin:12px 0 12px;
      font-size:2rem;
      line-height:.98;
    }

    .editor-list{
      display:grid;
      gap:12px;
      margin-top:14px;
    }

    .editor-list div{
      padding-top:12px;
      border-top:1px solid rgba(18,18,18,.08);
      color:var(--muted);
    }

    .editor-list strong{
      display:block;
      color:var(--ink);
      margin-bottom:3px;
    }

    .offer-block{
      padding:0;
      overflow:hidden;
    }

    .offer-grid{
      display:grid;
      grid-template-columns:1.05fr .95fr;
    }

    .offer-left{
      padding:30px;
      background:var(--ink);
      color:var(--paper);
    }

    .offer-left .smallcap{
      color:var(--accent-2);
    }

    .offer-left h2{
      margin:10px 0 14px;
	  margin-bottom:28px;
      font-size:clamp(2.2rem, 5vw, 4.3rem);
      line-height:.96;
    }

    .offer-left p{
      color:rgba(255,255,255,.72);
      margin-bottom:22px;
		line-height:1.6;
		max-width:520px;
		border-bottom:1px solid rgba(255,255,255,.08);
		padding-bottom:22px;
    }

    .offer-points{
      display:grid;
      gap:12px;
      margin:24px 0;
    }

    .offer-points div{
      display:flex;
      gap:10px;
      align-items:flex-start;
      color:rgba(255,255,255,.9);
    }

    .offer-points div::before{
      content:"+";
      color:var(--accent-2);
      font-weight:900;
    }

    .disclaimer{
      margin-top:18px;
      font-size:.85rem;
      color:rgba(255,255,255,.56);
    }

    .offer-right{
      padding:30px;
      background:var(--paper);
      display:grid;
      gap:18px;
      align-content:start;
    }

    .price-card{
      background:var(--paper-2);
      border:1px solid rgba(18,18,18,.08);
      border-radius:24px;
      padding:22px;
    }

    .price-card .new{
      display:block;
      margin-top:6px;
    }

    .pay-box{
      border:1px solid rgba(18,18,18,.08);
      border-radius:24px;
      padding:22px;
      background:#fff;
    }

    .pay-row{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin:14px 0 18px;
    }

    .pay{
      border:1px solid rgba(18,18,18,.1);
      border-radius:14px;
      padding:10px 12px;
      font-size:.9rem;
      font-weight:800;
      background:var(--paper);
    }

    .faq-wrap{
      padding:24px;
    }

    .faq-head{
      display:grid;
      grid-template-columns:.85fr 1.15fr;
      gap:24px;
      margin-bottom:14px;
    }

    .faq-head h2{
      margin:8px 0 0;
      font-size:clamp(2rem, 4vw, 3.4rem);
      line-height:.98;
    }

    .faq-head p{
      color:var(--muted);
      margin:0;
      align-self:end;
    }

    .faq-item{
      border-top:1px solid rgba(18,18,18,.08);
    }

    .faq-q{
      width:100%;
      border:none;
      background:none;
      padding:20px 0;
      display:flex;
      justify-content:space-between;
      gap:16px;
      text-align:left;
      cursor:pointer;
      font-weight:800;
      font-size:1rem;
    }

    .faq-q span:last-child{
      color:var(--accent);
      font-size:1.4rem;
      line-height:1;
      transition:.2s ease;
    }

    .faq-a{
      max-height:0;
      overflow:hidden;
      transition:max-height .28s ease;
    }

    .faq-a-inner{
      padding:0 0 18px;
      color:var(--muted);
      max-width:80ch;
    }

    .faq-item.open .faq-q span:last-child{
      transform:rotate(45deg);
    }

    .footer-box{
      padding:20px 24px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:18px;
      flex-wrap:wrap;
      margin-bottom:24px;
    }

    .footer-box .left{
      display:flex;
      gap:14px;
      align-items:center;
      color:var(--muted);
    }

    .footer-links{
      display:flex;
      gap:16px;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:.94rem;
    }

    .sticky-buy{
      position:fixed;
      left:12px;
      right:12px;
      bottom:12px;
      z-index:40;
      display:none;
    }

    .sticky-inner{
      border-radius:20px;
      background:rgba(18,18,18,.94);
      color:var(--paper);
      padding:12px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      box-shadow:0 20px 50px rgba(0,0,0,.22);
    }

    .sticky-inner strong{display:block}
    .sticky-inner span{color:var(--accent-2);font-weight:800}

    .reveal{
      opacity:0;
      transform:translateY(20px);
      transition:opacity .6s ease, transform .6s ease;
    }

    .reveal.visible{
      opacity:1;
      transform:none;
    }

    @media (max-width: 1100px){
      .hero-grid,
      .manifesto,
      .offer-grid,
      .faq-head,
      .editorial,
      .split-band{
        grid-template-columns:1fr;
      }

      .hero-top{
        grid-template-columns:1fr;
      }

      .proof-grid{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 860px){
      .nav{display:none}
      .hero-main{min-height:auto}
      .hero-bottom,
      .offer-grid{
        grid-template-columns:1fr;
      }

      .sticky-buy{display:block}
    }

    @media (max-width: 680px){
      .container{
        width:min(var(--max), calc(100% - 20px));
      }

      .hero-main,
      .price-box,
      .manifesto,
      .proof-strip,
      .story-block,
      .pack-rail,
      .editor-card,
      .faq-wrap,
      .footer-box,
      .offer-left,
      .offer-right{
        padding:20px;
      }

      .hero-title{
        max-width:none;
      }

      .pack-card{
        flex-basis:84%;
      }

      .topbar-inner{
        gap:12px;
      }

      .brand-sub{
        display:none;
      }

      .cta-mini{
        padding:10px 12px;
        font-size:.84rem;
      }

    }
	

/* 6 METHODES */
.pack-card{
  flex:0 0 320px;
  background:var(--paper-2);
  border:1px solid rgba(18,18,18,.08);
  border-radius:24px;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.pack-visual{
  border-radius:18px;
  overflow:hidden;
  background:#0c0c0c;
  aspect-ratio:1 / 1;
}

.pack-visual img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.pack-body h3{
  margin:0 0 8px;
  font-size:1.4rem;
  line-height:1.05;
}

.pack-body p{
  margin:0;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.5;
}


/* RAIL DES 6 MÉTHODES */
.rail{
  display:flex;
  gap:16px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  padding-bottom:10px;
}

/* cartes fixes dans le rail */
.pack-card{
  flex:0 0 320px;
}

/* barre visible */
.rail::-webkit-scrollbar{
  height:10px;
}

.rail::-webkit-scrollbar-track{
  background:rgba(18,18,18,.08);
  border-radius:999px;
}

.rail::-webkit-scrollbar-thumb{
  background:rgba(18,18,18,.28);
  border-radius:999px;
}

.rail{
  scrollbar-width:thin;
  scrollbar-color:rgba(18,18,18,.28) rgba(18,18,18,.08);
  flex-wrap:nowrap;
}

.pack-rail{
  position:relative;
}

.pack-rail::before,
.pack-rail::after{
  content:"";
  position:absolute;
  top:0;
  bottom:20px;
  width:28px;
  pointer-events:none;
}

.pack-rail::before{
  left:0;
  background:linear-gradient(to right, var(--paper), transparent);
}

.pack-rail::after{
  right:0;
  background:linear-gradient(to left, var(--paper), transparent);
}

.rail-dots{
  display:none;
  justify-content:center;
  gap:8px;
  margin-top:16px;
}

.dot{
  width:8px;
  height:8px;
  border-radius:50%;
   background:#d8d3c7;
  transition:.25s;
}

.dot.active{
  background:#111;
  transform:scale(1.3);
}



@media (max-width: 768px){
	
	 .rail-dots{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:18px;
  }

  .dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#d8d3c7;
    transition:.25s;
  }

  .dot.active{
    background:#111;
    transform:scale(1.3);
  }

	

  .rail-head{
    align-items:flex-start;
  }

  .rail-controls{
    display:none;
  }

  .rail{
    gap:14px;
    padding-bottom:12px;
    scroll-snap-type:x proximity;
  }
 
  
  

  .pack-card{
    flex:0 0 260px;
    scroll-snap-align:start;
	scroll-snap-align:start;
  }

  .pack-body h3{
    font-size:1rem;
  }

  .pack-body p{
    font-size:.95rem;
  }
}

/* AVIS */
.section-testimonials{
  background:#121212;
  color:#f4efe7;
}

.testimonials-head{
  margin-bottom:50px;
}

.section-testimonials .smallcap{
  color:#c96f2d;
}

.testimonials-head h2{
  margin:10px 0 0;
  font-size:clamp(2rem,4vw,3.4rem);
  line-height:1;
}

.testimonials-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}

.testimonial{
  position:relative;
  padding:34px 28px 28px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:26px;
  background:rgba(255,255,255,.02);
}

.quote{
  position:absolute;
  top:-16px;
  left:18px;
  font-size:70px;
  color:#c96f2d;
  font-family:Georgia,serif;
}

.testimonial p{
  margin:0 0 18px;
  line-height:1.7;
  font-size:1.05rem;
}

.author{
  font-weight:700;
  color:#c96f2d;
  letter-spacing:.04em;
}

@media (max-width:900px){
  .testimonials-grid{
    grid-template-columns:1fr;
  }
}
	
	
	/* REASSURANCE */
.reassurance{
  padding:40px 0;
  border-top:1px solid #e6e2dc;
  border-bottom:1px solid #e6e2dc;
}

.reassurance-inner{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  text-align:center;
}

.reassurance-item strong{
  display:block;
  font-size:1rem;
  margin-bottom:6px;
}

.reassurance-item span{
  font-size:.85rem;
  color:#6e6e6e;
}	


.price-proof{
  font-size:.86rem;
  margin-top:10px;
  color:var(--muted);
  font-weight:600;
}

.secure{
  font-size:.8rem;
  color:var(--muted);
  margin-top:12px;
  text-align:center;
  line-height:1.4;
}
	
/* LIMITE LARGEUR CONVERTFORM */
.convertforms,
.convertforms-form,
.cf-form-wrap {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}


/* Masquer le label "Jeton Joomla" */
.com-users-profile__custom.users-profile-custom-joomlatoken{
  display: none !important;
}

/* Masquer complètement le fieldset "Jeton Joomla" (formulaire utilisateur) */
fieldset:has(
  input[name^="jform[joomlatoken]"]
){
  display: none !important;
}



/* Paypal 4X sans frais */
.ot-paypal-4x {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  font-size: 13px;
  color: #555;
  text-align: center;
}

.ot-paypal-4x img {
  height: 18px;
  width: auto;
}

.offer-reassurance{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}

.offer-reassurance span{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.78);
  font-size:.84rem;
  line-height:1;
}

.offer-reassurance span::before{
  content:"•";
  color:var(--accent-2);
  margin-right:8px;
  font-weight:900;
}


/* HEADER ACTIONS */
.topbar-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex:0 0 auto;
}

/* BOUTON BURGER */
.burger{
  display:none;
  width:46px;
  height:46px;
  border:none;
  border-radius:14px;
  background:var(--ink);
  color:var(--paper);
  cursor:pointer;
  padding:0;
  position:relative;
  justify-content:center;
  align-items:center;
  flex-direction:column;
  gap:5px;
}

.burger span{
  display:block;
  width:20px;
  height:2px;
  background:currentColor;
  border-radius:999px;
  transition:transform .22s ease, opacity .22s ease;
}

/* état ouvert */
.burger.is-open span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.burger.is-open span:nth-child(2){
  opacity:0;
}
.burger.is-open span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* MENU MOBILE */
.mobile-menu{
  display:none;
  border-top:1px solid rgba(18,18,18,.08);
  background:rgba(244,239,231,.98);
  backdrop-filter:blur(12px);
}

.mobile-nav{
  width:min(var(--max), calc(100% - 32px));
  margin:0 auto;
  padding:18px 0 20px;
  display:grid;
  gap:10px;
}

.mobile-nav a{
  display:block;
  padding:14px 16px;
  border:1px solid rgba(18,18,18,.08);
  border-radius:16px;
  background:var(--paper);
  font-weight:700;
}

.mobile-nav a:hover{
  background:#fff;
}

.mobile-cta{
  margin-top:6px;
  background:var(--ink) !important;
  color:var(--paper) !important;
  text-align:center;
  font-weight:800;
}

/* RESPONSIVE */
@media (max-width: 860px){
  .nav-desktop,
  .cta-desktop{
    display:none;
  }

  .burger{
    display:flex;
  }

  .mobile-menu.is-open{
    display:block;
  }

  .topbar-inner{
    align-items:center;
  }
}

@media (max-width: 680px){
  .topbar{
    padding:12px 0;
  }

  .topbar-inner{
    gap:10px;
  }

  .brand{
    min-width:0;
    flex:1 1 auto;
  }

  .brand-logo{
    width:96px;
  }

  .brand-title{
    font-size:.95rem;
  }

  .brand-sub{
    display:none;
  }

  .burger{
    width:42px;
    height:42px;
    border-radius:12px;
  }

  .mobile-nav{
    width:min(var(--max), calc(100% - 20px));
  }
}


/* ===== FIXES MOBILE ===== */

/* 1. Empêcher tout débordement horizontal */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* 2. Reassurance : passer en colonne sur mobile */
@media (max-width: 768px) {
  .reassurance-inner {
    grid-template-columns: 1fr;
    gap: 24px;
    text-align: left;
  }

  .reassurance-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e6e2dc;
  }

  .reassurance-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

/* 3. Offre et paiement : contenir le contenu */
@media (max-width: 860px) {
  .offer-grid {
    grid-template-columns: 1fr;
  }

  .offer-left,
  .offer-right {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  .offer-left h2 {
    font-size: clamp(1.8rem, 7vw, 2.8rem);
  }

  .offer-points div {
    word-break: break-word;
  }
}

/* 4. Sticky bar : éviter le débordement */
@media (max-width: 480px) {
  .sticky-buy {
    left: 8px;
    right: 8px;
    bottom: 8px;
  }

  .sticky-inner {
    border-radius: 16px;
    padding: 10px 12px;
  }
}

@media (max-width: 860px) {
  .offer-grid {
    grid-template-columns: 1fr !important;
    display: block;
  }

  .offer-left,
  .offer-right {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* OFFRE - fix mobile complet */
@media (max-width: 860px) {

  .offer-block {
    overflow: hidden;
    border-radius: 32px;
  }

  .offer-grid {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }

  .offer-left,
  .offer-right {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 24px !important;
  }

  .offer-left h2 {
    font-size: clamp(1.8rem, 7vw, 2.8rem);
  }
}

/* ===== FIXES MOBILE ===== */

/* 1. Empêcher tout débordement horizontal */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* 2. Reassurance : passer en colonne sur mobile */
@media (max-width: 768px) {
  .reassurance-inner {
    grid-template-columns: 1fr;
    gap: 24px;
    text-align: left;
  }

  .reassurance-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e6e2dc;
  }

  .reassurance-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

/* 3. Offre et paiement : contenir le contenu */
@media (max-width: 860px) {
  .offer-grid {
    grid-template-columns: 1fr;
  }

  .offer-left,
  .offer-right {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  .offer-left h2 {
    font-size: clamp(1.8rem, 7vw, 2.8rem);
  }

  .offer-points div {
    word-break: break-word;
  }
}

/* 4. Sticky bar : éviter le débordement */
@media (max-width: 480px) {
  .sticky-buy {
    left: 8px;
    right: 8px;
    bottom: 8px;
  }

  .sticky-inner {
    border-radius: 16px;
    padding: 10px 12px;
  }
}

/* ===== FIX DÉBORDEMENT MOBILE BLOC PAIEMENT ===== */
@media (max-width: 768px){

  .offer-block,
  .offer-grid,
  .offer-right,
  .pay-box{
    min-width:0;
  }

  .offer-right{
    overflow:hidden;
  }

  .pay-box{
    overflow:hidden;
  }

  /* tout le contenu injecté dans le bloc paiement doit rester dans la largeur */
  .pay-box *{
    max-width:100%;
    box-sizing:border-box;
  }

  /* iframe / boutons PayPal / conteneurs dynamiques */
  .pay-box iframe,
  .pay-box div,
  .pay-box form{
    max-width:100% !important;
  }

  /* très utile quand PayPal injecte une largeur inline */
  .pay-box iframe{
    width:100% !important;
    min-width:0 !important;
  }

  /* textes trop longs */
  .pay-box,
  .pay-box *{
    word-wrap:break-word;
    overflow-wrap:anywhere;
  }
}

@media (max-width: 768px){
  .offer-right{
    padding:20px !important;
  }

  .price-card,
  .pay-box{
    padding:18px;
    border-radius:20px;
  }
}

.mobile-footer{
  transition:opacity .25s ease;
}



/* ===============================
			CGV
================================ */

.cgv{
  width: min(980px, calc(100% - 28px));
  margin: 30px auto 60px;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: #0f172a;
}

.cgv__header{
  text-align: center;
  margin-bottom: 18px;
}

.cgv__logo img{
  display: block;
  margin: 0 auto 14px;
  width: min(420px, 90%);
  height: auto;
}

.cgv__title{
  margin: 0 0 8px;
  font-size: clamp(22px, 3vw, 32px);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: #ffffff;
}

.cgv__lead{
  margin: 0 auto;
  max-width: 75ch;
  color: #475569;
  line-height: 1.65;
  font-size: 15px;
}

.cgv__card{
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(2,6,23,.08);
  padding: 22px;
}

/* Titres */
.cgv__h2{
  margin: 18px 0 8px;
  font-size: 18px;
  letter-spacing: -0.01em;
}

.cgv__h3{
  margin: 16px 0 8px;
  font-size: 15px;
  letter-spacing: -0.01em;
  color: #111827;
}

/* Texte */
.cgv__card p{
  margin: 0 0 10px;
  line-height: 1.75;
  color: rgba(15,23,42,.88);
  font-size: 14.5px;
}

/* Liens */
.cgv__link{
  color: #2563eb;
  text-decoration: none;
  border-bottom: 1px solid rgba(37,99,235,.28);
}
.cgv__link:hover,
.cgv__link:focus{
  color: #1d4ed8;
  border-bottom-color: rgba(37,99,235,.55);
}

/* Listes */
.cgv__list{
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}
.cgv__list li{
  padding-left: 16px;
  position: relative;
  line-height: 1.6;
  color: rgba(15,23,42,.85);
  font-size: 14px;
}
.cgv__list li::before{
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  opacity: .55;
}

/* Encadrés */
.cgv__notice{
  margin: 14px 0 12px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(15,23,42,.03);
  padding: 14px;
}

.cgv__notice--accent{
  border-color: rgba(37,99,235,.22);
  background: rgba(37,99,235,.06);
}

.cgv__noticeTitle{
  margin: 0 0 6px;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: #0f172a;
}

.cgv__noticeText{
  margin: 0;
  color: rgba(15,23,42,.86);
}

/* Notes */
.cgv__small{
  margin-top: 6px !important;
  font-size: 12.5px !important;
  color: rgba(71,85,105,.95) !important;
}

/* Footer */
.cgv__foot{
  margin: 14px 0 0;
  text-align: center;
  color: rgba(71,85,105,.9);
  font-size: 13px;
}

/* Mobile */
@media (max-width: 520px){
  .cgv__card{ padding: 18px; }
  .cgv__h2{ font-size: 17px; }
}


/* =========== HCAPTCHA ========== */
/* Petits mobiles (480px et moins) */
@media (max-width: 480px) {
  .cf-captcha-fix {
    width: 304px;
    max-width: none;
    min-height: 74px;
    transform: scale(0.78);
    -webkit-transform: scale(0.78);
    transform-origin: left top;
    -webkit-transform-origin: left top;
    margin-left: -8px;
    margin-bottom: -14px;
  }
}

/* Très petits écrans (360px et moins) */
@media (max-width: 360px) {
  .cf-captcha-fix {
    transform: scale(0.65);
    -webkit-transform: scale(0.65);
    margin-left: -12px;
    margin-bottom: -26px;
  }
}

/* Très très petits écrans (320px et moins) */
@media (max-width: 320px) {
  .cf-captcha-fix {
    transform: scale(0.55);
    -webkit-transform: scale(0.55);
    margin-left: -16px;
    margin-bottom: -36px;
  }
}
