:root{
  --noir:#0d0d0d;
  --noir-2:#161613;
  --noir-3:#1e1e1a;
  --paper:#f2f1ea;
  --lime:#c6ff3d;
  --lime-deep:#9fd423;
  --line: rgba(242,241,234,0.12);
  --line-dark: rgba(13,13,13,0.1);
  --muted:#a3a294;
  --ease: cubic-bezier(0.22,1,0.36,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Manrope', sans-serif; background:var(--noir); color:var(--paper); line-height:1.6; -webkit-font-smoothing:antialiased;}
.display{font-family:'Bebas Neue', sans-serif; letter-spacing:0.01em;}
a{color:inherit;}
img{max-width:100%; display:block;}
ul{list-style:none;}
:focus-visible{outline:2px solid var(--lime); outline-offset:3px;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}

/* NAV */
nav{position:sticky; top:0; z-index:70; background:rgba(13,13,13,0.88); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
nav .wrap{display:flex; justify-content:space-between; align-items:center; height:74px;}
.brand{font-family:'Bebas Neue', sans-serif; font-size:26px; letter-spacing:0.06em; text-decoration:none; color:var(--paper); display:flex; align-items:center; gap:8px;}
.brand .dot{width:8px; height:8px; background:var(--lime); border-radius:1px; flex:none;}
.navlinks{display:flex; gap:30px; align-items:center;}
.navlinks a{position:relative; text-decoration:none; font-size:14px; color:var(--paper); opacity:0.7; transition:opacity 0.2s; font-weight:500;}
.navlinks a:hover, .navlinks a.active{opacity:1;}
.navlinks a:not(.cta)::after{
  content:""; position:absolute; left:0; right:100%; bottom:-4px; height:2px; background:var(--lime);
  transition:right 0.25s var(--ease);
}
.navlinks a:not(.cta):hover::after, .navlinks a.active:not(.cta)::after{right:0;}
.navlinks .cta{background:var(--lime); color:var(--noir); padding:10px 20px; font-weight:700; border-radius:2px; opacity:1; transition:background 0.2s, transform 0.2s;}
.navlinks .cta:hover{background:var(--lime-deep); transform:translateY(-2px);}
.status-pill{display:inline-flex; align-items:center; gap:7px; font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; opacity:0.85; font-weight:600;}
.status-pill .dot{width:6px; height:6px; border-radius:50%; background:var(--lime); flex:none;}
.status-pill.closed .dot{background:var(--muted);}
.status-pill.open .dot{animation:pulseDot 2.2s ease infinite;}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(198,255,61,0.5);} 70%{box-shadow:0 0 0 7px rgba(198,255,61,0);} 100%{box-shadow:0 0 0 0 rgba(198,255,61,0);}}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px;}
.burger span{width:20px; height:2px; background:var(--paper); display:block; transition:transform 0.25s, opacity 0.25s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-panel{display:none; flex-direction:column; background:var(--noir); border-bottom:1px solid var(--line); padding:8px 24px 20px;}
.mobile-panel.open{display:flex;}
.mobile-panel a{padding:14px 0; text-decoration:none; color:var(--paper); border-bottom:1px solid var(--line); font-size:15px;}
.mobile-panel a:last-child{border-bottom:none;}

/* HERO generique (pagehead) */
.pagehead{padding:64px 0 56px; position:relative; overflow:hidden;}
.pagehead .mesh{position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none;}
.pagehead .blob{position:absolute; border-radius:50%; filter:blur(90px); opacity:0.22; will-change:transform;}
.pagehead .blob.b1{width:460px; height:460px; background:var(--lime); top:-180px; right:-120px; animation:driftA 24s ease-in-out infinite;}
.pagehead .blob.b2{width:340px; height:340px; background:#3a4a1f; bottom:-160px; left:2%; opacity:0.4; animation:driftB 28s ease-in-out infinite;}
@keyframes driftA{0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-40px,30px) scale(1.12);}}
@keyframes driftB{0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(30px,-22px) scale(1.16);}}
.pagehead::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0.05; z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.pagehead .wrap{position:relative; z-index:1;}
.eyebrow{font-family:'Space Mono', monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.12em; color:var(--lime); margin-bottom:18px; display:flex; align-items:center; gap:9px; font-weight:500;}
.eyebrow::before{content:""; width:0; height:2px; background:var(--lime); transition:width 0.7s var(--ease) 0.1s;}
.pagehead .eyebrow::before{width:20px; transition-delay:0s;}
.reveal.in .eyebrow::before{width:20px;}
h1{font-family:'Bebas Neue', sans-serif; font-weight:400; font-size:clamp(46px,7vw,88px); line-height:0.98; letter-spacing:0.01em; text-transform:uppercase;}
h1 em{font-style:normal; color:var(--lime);}
.pagehead p.lede{max-width:520px; margin-top:22px; font-size:16.5px; color:#c8c7bd;}
.hero-cta{margin-top:34px; display:flex; gap:18px; flex-wrap:wrap; align-items:center;}
.btn{background:var(--lime); color:var(--noir); text-decoration:none; padding:15px 30px; border-radius:2px; font-size:14.5px; font-weight:700; display:inline-flex; align-items:center; gap:8px; transition:background 0.2s, transform 0.2s;}
.btn:hover{background:var(--lime-deep); transform:translateY(-2px);}
.btn span{transition:transform 0.25s var(--ease);}
.btn:hover span{transform:translateX(4px);}
.btn-outline{border:1px solid rgba(242,241,234,0.4); color:var(--paper); text-decoration:none; padding:14px 29px; border-radius:2px; font-size:14.5px; font-weight:600; transition:background 0.2s, color 0.2s, transform 0.2s, border-color 0.2s;}
.btn-outline:hover{background:var(--paper); color:var(--noir); border-color:var(--paper); transform:translateY(-2px);}

@keyframes riseIn{from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:translateY(0);}}
.pagehead .eyebrow{animation:riseIn 0.7s var(--ease) both;}
.pagehead h1{animation:riseIn 0.7s var(--ease) 0.08s both;}
.pagehead p.lede{animation:riseIn 0.7s var(--ease) 0.16s both;}
.pagehead .hero-cta{animation:riseIn 0.7s var(--ease) 0.24s both;}

/* SECTION */
.section{padding:88px 0;}
.section-head{margin-bottom:48px;}
.eyebrow-2{font-family:'Space Mono', monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.1em; color:var(--lime); display:flex; align-items:center; gap:9px; font-weight:500;}
.eyebrow-2::before{content:""; width:0; height:2px; background:var(--lime); transition:width 0.7s var(--ease) 0.1s;}
.reveal.in .eyebrow-2::before{width:18px;}
.section h2{font-family:'Bebas Neue', sans-serif; font-size:clamp(32px,4.4vw,52px); font-weight:400; margin-top:12px; text-transform:uppercase; letter-spacing:0.01em;}
.section .sub{max-width:540px; margin-top:14px; color:#c8c7bd; font-size:15.5px;}

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

/* grilles generiques + cascade */
.grid-3{margin-top:48px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.grid-2{margin-top:48px; display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.grid-4{margin-top:48px; display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}

.grid-3 > *, .grid-2 > *, .grid-4 > *, .avis-grid > *, .stats > *{
  opacity:0; transform:translateY(18px); transition:opacity 0.55s ease, transform 0.55s ease;
}
.reveal.in .grid-3 > *, .reveal.in .grid-2 > *, .reveal.in .grid-4 > *,
.reveal.in .avis-grid > *, .reveal.in .stats > *{opacity:1; transform:translateY(0);}
.grid-3 > *:nth-child(1), .grid-2 > *:nth-child(1), .grid-4 > *:nth-child(1), .avis-grid > *:nth-child(1), .stats > *:nth-child(1){transition-delay:0.05s;}
.grid-3 > *:nth-child(2), .grid-2 > *:nth-child(2), .grid-4 > *:nth-child(2), .avis-grid > *:nth-child(2), .stats > *:nth-child(2){transition-delay:0.14s;}
.grid-3 > *:nth-child(3), .grid-2 > *:nth-child(3), .grid-4 > *:nth-child(3), .avis-grid > *:nth-child(3), .stats > *:nth-child(3){transition-delay:0.23s;}
.grid-4 > *:nth-child(4){transition-delay:0.32s;}

/* CARD generique */
.card{background:var(--noir-2); border:1px solid var(--line); padding:28px 26px; border-radius:3px; position:relative; transition:transform 0.3s var(--ease), border-color 0.3s;}
.card:hover{transform:translateY(-6px); border-color:rgba(198,255,61,0.4);}
.card .num{font-family:'Space Mono', monospace; color:var(--lime); font-size:12px; letter-spacing:0.04em;}
.card h3{font-family:'Bebas Neue', sans-serif; font-size:24px; font-weight:400; margin-top:14px; text-transform:uppercase; letter-spacing:0.01em;}
.card p{margin-top:10px; font-size:14px; color:#b7b6ac;}
.card .tag{display:inline-block; margin-top:14px; font-family:'Space Mono', monospace; font-size:10.5px; color:var(--lime); border:1px solid rgba(198,255,61,0.35); padding:3px 9px; border-radius:2px;}

/* tilt + spotlight */
.tilt::after{
  content:""; position:absolute; inset:0; opacity:0; transition:opacity 0.3s; pointer-events:none; border-radius:inherit;
  background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%), rgba(198,255,61,0.14), transparent 62%);
}
.tilt:hover::after{opacity:1;}

.photoblock{background:var(--noir-3); border-radius:3px; min-height:220px; display:flex; align-items:center; justify-content:center; color:var(--muted); font-family:'Space Mono', monospace; font-weight:400; font-size:12px; text-transform:uppercase; letter-spacing:0.06em; border:1px solid var(--line); transition:background 0.3s; position:relative;}
.photoblock:hover{background:#242420;}

/* ---------- STATS ---------- */
.stats{margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; text-align:center; border-top:1px solid var(--line); padding-top:44px;}
.stat b{display:block; font-family:'Bebas Neue', sans-serif; font-size:clamp(38px,5vw,58px); font-weight:400; color:var(--lime);}
.stat span{font-family:'Space Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:var(--muted); margin-top:8px; display:block;}

/* ---------- AVIS ---------- */
.avis-grid{margin-top:0; display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.avis-card{background:var(--noir-2); border:1px solid var(--line); padding:28px 24px; border-radius:3px; position:relative; transition:transform 0.3s var(--ease), border-color 0.3s;}
.avis-card:hover{transform:translateY(-6px); border-color:rgba(198,255,61,0.4);}
.avis-stars{color:var(--lime); font-size:13px; letter-spacing:2px;}
.avis-card p{margin-top:14px; font-size:14.5px; color:#d2d1c7; line-height:1.55;}
.avis-card .who{margin-top:16px; font-family:'Space Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.04em; color:var(--lime);}

/* ---------- BANDEAU CTA ---------- */
.cta-band{background:var(--lime); color:var(--noir); text-align:center;}
.cta-band h2{color:var(--noir);}
.cta-band .sub{color:rgba(13,13,13,0.75); margin-left:auto; margin-right:auto;}
.cta-band .btn{background:var(--noir); color:var(--lime);}
.cta-band .btn:hover{background:#1e1e1a;}

/* ---------- PRICING ---------- */
.pricing{margin-top:48px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.price-card{background:var(--noir-2); padding:36px 28px; display:flex; flex-direction:column; position:relative; transition:transform 0.3s var(--ease);}
.price-card:hover{transform:translateY(-6px); z-index:2;}
.price-card.highlight{background:var(--noir-3);}
.price-card .flag{position:absolute; top:20px; right:20px; color:var(--lime); font-family:'Space Mono', monospace; font-size:10.5px; font-weight:500; letter-spacing:0.03em;}
.price-card h3{font-family:'Bebas Neue', sans-serif; font-size:22px; letter-spacing:0.02em; color:var(--paper); text-transform:uppercase;}
.price-card .desc{font-size:13px; color:var(--muted); margin-top:8px;}
.price-card .amount{font-family:'Bebas Neue', sans-serif; font-size:56px; font-weight:400; margin-top:18px; line-height:1; color:var(--lime);}
.price-card .amount span{display:block; margin-top:8px; font-family:'Space Mono', monospace; font-size:12px; font-weight:400; color:var(--muted); text-transform:none; letter-spacing:0;}
.price-card ul{margin-top:22px; flex:1;}
.price-card li{font-size:13.5px; padding:10px 0; border-top:1px solid var(--line); color:#d2d1c7; display:flex; gap:9px;}
.price-card li::before{content:"–"; color:var(--lime); flex:none;}
.price-card li:first-child{border-top:none;}
.price-card a{margin-top:24px; text-align:center; text-decoration:none; font-weight:700; font-size:13.5px; padding:12px; border:1px solid var(--paper); border-radius:2px; color:var(--paper); transition:background 0.2s, color 0.2s;}
.price-card a:hover{background:var(--paper); color:var(--noir);}
.price-card.highlight a{background:var(--lime); color:var(--noir); border-color:var(--lime);}
.price-card.highlight a:hover{background:var(--lime-deep); border-color:var(--lime-deep);}
.price-note{margin-top:24px; font-size:13px; color:var(--muted); font-family:'Space Mono', monospace;}

/* ---------- FAQ ---------- */
.faq-mini{margin-top:20px; max-width:680px;}
.faq-mini details{border-bottom:1px solid var(--line); padding:18px 0;}
.faq-mini summary{cursor:pointer; font-weight:600; font-size:15.5px; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq-mini summary::-webkit-details-marker{display:none;}
.faq-mini summary::after{content:"+"; color:var(--lime); font-size:20px; transition:transform 0.3s;}
.faq-mini details[open] summary::after{transform:rotate(45deg);}
.faq-mini details p{margin-top:10px; font-size:14px; color:#c8c7bd; max-width:600px;}

/* ---------- HORAIRE TABLEAU ---------- */
.planning{margin-top:44px; border-top:1px solid var(--line);}
.planning-row{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:12px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line);}
.planning-row.head{font-family:'Space Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted);}
.planning-row .name{font-weight:600;}
.planning-row .name small{display:block; font-size:12px; color:var(--muted); font-weight:400; margin-top:3px;}
.planning-row span:not(.name){font-size:13.5px; color:#d2d1c7;}

/* ---------- CONTACT / FORM ---------- */
.contact-grid{margin-top:44px; display:grid; grid-template-columns:1fr 1fr; gap:56px;}
.infoline{padding:17px 0; border-bottom:1px solid var(--line);}
.infoline h3{font-family:'Space Mono', monospace; font-weight:500; font-size:11.5px; text-transform:uppercase; letter-spacing:0.07em; color:var(--lime);}
.infoline p{margin-top:7px; font-size:15px; color:var(--paper);}
form{display:flex; flex-direction:column; gap:16px;}
form label{font-size:12.5px; font-family:'Space Mono', monospace; font-weight:500; text-transform:uppercase; letter-spacing:0.06em; color:var(--lime); margin-bottom:7px; display:block;}
form input, form select, form textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:3px; background:var(--noir-2);
  font-family:'Manrope', sans-serif; font-size:14.5px; color:var(--paper); transition:border-color 0.2s, box-shadow 0.2s;
}
form input:focus, form select:focus, form textarea:focus{border-color:var(--lime); outline:none; box-shadow:0 0 0 3px rgba(198,255,61,0.14);}
form button{background:var(--lime); color:var(--noir); border:none; padding:14px; border-radius:3px; font-size:14.5px; font-weight:700; cursor:pointer; margin-top:6px; transition:background 0.2s, transform 0.2s;}
form button:hover{background:var(--lime-deep); transform:translateY(-2px);}

footer{background:var(--noir); color:rgba(242,241,234,0.4); font-size:12.5px; padding:28px 0; border-top:1px solid var(--line);}
footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

/* barre CTA flottante mobile */
.call-bar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:80; background:var(--lime); padding:12px 20px; text-align:center; box-shadow:0 -8px 24px -12px rgba(0,0,0,0.5);}
.call-bar a{color:var(--noir); text-decoration:none; font-weight:700; font-size:14.5px; display:flex; align-items:center; justify-content:center; gap:8px;}

@media (max-width:900px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:820px){
  .navlinks{display:none;}
  .burger{display:flex;}
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .grid-4{grid-template-columns:1fr;}
  .pricing{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr; gap:20px;}
  .avis-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr; gap:36px;}
  .planning-row{grid-template-columns:1fr; gap:4px; text-align:left;}
  .planning-row.head{display:none;}
  .planning-row span:not(.name)::before{content:attr(data-label) ": "; color:var(--muted);}
  .call-bar{display:block;}
  body{padding-bottom:58px;}
  .section{padding:64px 0;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important; animation:none !important;}
  .reveal, .grid-3 > *, .grid-2 > *, .grid-4 > *, .avis-grid > *, .stats > *{opacity:1; transform:none;}
  .pagehead .mesh{display:none;}
  .eyebrow::before, .eyebrow-2::before{width:18px;}
}
